v0.1.0.nightly2309052316
Pre-release
Pre-release
github-actions
released this
05 Sep 23:32
·
1083 commits
to trunk
since this release
Anklang 0.1.0.nightly2309052316
Development version - may contain bugs or compatibility issues.
Merge branch 'version-fixes' # 2022-07-29 Tim Janik 61e8d05
* version-fixes:
ASE: remove unneeded version postfix from AnklangSynthEngine
MISC: version.sh: fix development postfix for shallow versions
MISC: version.sh: fix build id with development postfix
MISC: Makefile.mk, version.sh: fix release tag missing 'v'-prefix
Merge branch 'jack-driver' # 2022-07-29 Tim Janik cc1cb08
* jack-driver:
DOC: ch-install.md: merge jack howto into driver-setup section
DOC: ch-install.md: add chapter about download and installation
ASE: main.cc: print the real executable_name() for --version and usage
ASE: driver.cc: load jackdriver.so
ASE: Makefile.mk: optionally build jackdriver.so
MISC: config-checks.mk: check if jack.pc >= 0.125.0 is present
Jack 0.125.0 ships with Ubuntu-20.04.
ASE: driver-jack.cc: turn into a working PCM driver for Ase
ASE: driver-jack.cc: adapto to Ase namespace
ASE: merge original Jack driver by Stefan Westerfeld
Initial version of Jack driver using the new driver API
Add minimal jack howto
Block SIGPIPE to avoid crashes when jackd dies
Driver: return read and write latency for a pcm driver separately
For instance for synchronizing the play position pointer ui with the audio
buffering, you want to know how much write latency you have, but don't care
about the amount of read latency.
Add list with possible improvements from PR 31
https://github.com/tim-janik/beast/pull/31
Add some minor fixes as requested in review
ASE: engine.cc: consistently calculate buffer size for multiple channels
ASE: datautils.hh: add fast_copy() for floats and ints
ASE: driver-alsa.cc: adjust debug messages, remove unused variable
ASE: main.cc: require command line options to enable JSIPC logging
Merge branch 'freeverb' # 2022-07-31 Tim Janik 554794d
* freeverb:
DEVICES: freeverb/freeverb.cc: turn into a working AudioProcessor for Ase
DEVICES: freeverb/freeverb.cc: make query_info() const, i.e. MT-Safe
DEVICES: freeverb/freeverb.cc: move all code completely into Anon namespace
DEVICES: freeverb/freeverb.cc: use explicit add_param() IDs and fix arguments
DEVICES: freeverb: implement STK and VLC damping
Avoid reinforcing feedback loop in the original damping code,
by providing VLC and STK damping modes. The latter is likely
closest to the original intention so it is now the default.
This also reorders some parameters and removes the original
freezing mode, that does not really make sense for Processors.
DEVICES: freeverb/freeverb.cc: add Freeverb Processor
DEVICES: freeverb/revmodel.cpp: fix missing `int i` decls
DEVICES: freeverb/Freeverb*: remove unused vst files
DEVICES: freeverb/: fix up whitespace and \n without \r everywhere
DEVICES: freeverb/: Freeverb - free public domain reverb SOURCE CODE
Freeverb - Free, studio-quality reverb SOURCE CODE in the public domain
Written by Jezar at Dreampoint - http://www.dreampoint.co.uk
DEVICES: freeverb/Makefile.mk: add source file to devices/4ase.ccfiles
DEVICES: freeverb/GNUmakefile: allow subdir builds
DEVICES: Makefile.mk: add dependencies, clean rule, etc for devices/ sources
DEVICES: blepsynth/Makefile.mk: simply add source files to devices/4ase.ccfiles
UI: b/contextmenu.vue: allow 0 as valid menuitem.uri value
UI: b/cliplist.vue: only call non-null Shell.piano_current_tick()
README.md: fix manual link
Merge branch 'dist-tarball' - create distribution tarballs # 2022-08-06 Tim Janik 50d9c06
Adjust versioning and build rules to support proper distribution tarballs
that will build without .git/ history.
* dist-tarball:
MISC: Dockerfile-apt: provide zstd
MISC: Makefile.mk: re-enable nightly asset builds
Makefile.mk: work around git 2.25.1 not handling Format:%(describe:match)
Ubuntu 20.04 still runs git 2.25.1.
MISC: version.sh: work around git 2.25.1 not handling Format:%(describe:match)
Ubuntu 20.04 still runs git 2.25.1.
MISC: Dockerfile-apt: add universal-ctags
MISC: dbuild.sh: recognize --help
Makefile.mk: use wildcard for toplevel CLEANFILES
MISC: Makefile.mk: list Nightly changes
MISC: Makefile.mk: fix upload-release
MISC: Makefile.mk: use TARBALL version for build-assets
MISC: Makefile.mk: minor fixups
MISC: Makefile.mk: only check-copyright if .git/ exists
MISC: Makefile.mk: remove versioned ChangeLog generation
Makefile.mk: ChangeLog: use slightly longer hashes
Makefile.mk: fix ChangeLog range
Makefile.mk: use ls-tree.lst to generate TAGS
MISC: Makefile.mk: use ls-tree.lst
DOC: Makefile.mk: use ls-tree.lst
Makefile.mk: create and distribute ls-tree.lst
MISC: config-utils.mk: provide only $(HAVE_GIT) which is true if .git/ exists
Using the old WITHGIT or WITHOUTGIT did not really work.
MISC: Makefile.mk: avoid -j, rely on MAKEFLAGS for parallel submakes
MISC: Makefile.mk: build-nightly: create and build dist tarball
MISC: dbuild.sh: use .dlcache subdir for dockerized ccache
MISC: Makefile.mk: build-assets: build from sources in $(TARBALL)
MISC: Makefile.mk: record and use artifacts in build-assets
MISC: Makefile.mk: add 'build-version' rule
MISC: Makefile.mk: call version.sh --make-nightly for nightly builds
MISC: Makefile.mk: check nightly versions
MISC: Makefile.mk: add 'versioned-manuals' rule
DOC: Makefile.mk: use packaged doc/copyright if Git is missing
GITHUB: workflows/testing.yml: build with --no-tex and SKIP_LATEX=true
Only the PDF manuals need Tex, skipping LaTex installation
significantly speeds up the CI builds.
MISC: dbuild.sh: add --no-tex (replaces --tex)
MISC: Dockerfile-apt: default to building with Tex
DOC: Makefile.mk: build PDF manuals, unless SKIP_LATEX=true
DOC: Makefile.mk: skip misc/mkcopyright.py if .git is not present
MISC: mkdeb.sh: use `misc/version.sh --commit-hash` instead of git
MISC: version.sh: add --commit-hash
MISC: version.sh: remove extra version printout for --make-nightly
MISC: version.sh: add --help and --make-nightly
MISC: version.sh: use the same COMMITINFO for archives and .git repos
Makefile.mk: dist: allow packaging with NEWS.md worktree changes
Makefile.mk: simplify make dist
Makefile.mk: add hard dependency on ctags-universal
Builds from Git need ctags-universal to reliably generate TAGS for
make dist.
Makefile.mk: provide $(builddir) and $>/ early on
Makefile.mk: check misc/version.sh execution
ASE: Makefile.mk: add missing minizip/mz_zip.h dependency
DOC: copyright.ini: list freeverb sources under Public Domain dedication
DEVICES: freeverb/freeverb.cc: license under MPL-2.0
Merge branch 'docker-caching' # 2022-08-11 Tim Janik 433f9bd
* docker-caching:
MISC: dbuild.sh: skip TeX during docker image build with -T
MISC: Dockerfile.focal: cleanup early to shrink docker image, possibly skip TeX
MISC: dbuild.sh: use misc/Dockerfile.focal by default, remove -d, change -f
MISC: Dockerfile.focal: rename from Dockerfile-apt, use FROM ubuntu:20.04
ASE: Makefile.mk: add missing dependencies for includes
ASE: sortnet.hh: include <functional> for std::less
Makefile.mk: use `ctags` executable
GITHUB: workflows/testing.yml: fix cache-hit detection
GITHUB: workflows/testing.yml: skip docker caching on cache miss
GITHUB: workflows/testing.yml: invalidate cache if misc/dbuild.sh changes
GITHUB: workflows/testing.yml: remove docker image test
MISC: get rid of --no-tex and $NO_TEX (now unused)
GITHUB: workflows/testing.yml: remove '--no-tex'
Avoiding Tex installation was only needed without docker image caching.
MISC: dbuild.sh: fix SIGPIPE when searching docker image for INITIALIZE
MISC: dbuild.sh: debug wrong INITIALIZE setting
MISC: dbuild.sh: use 'ubuntu:20.04' as base instead of 'ubuntu:focal'
Both are tags for the same image, but the former is already present
on Github's stock system.
GITHUB: workflows/testing.yml: fix grep exit status
GITHUB: workflows/testing.yml: invalidate cache if misc/Dockerfile-apt changes
GITHUB: workflows/testing.yml: stop forcing a docker build step
GITHUB: workflows/testing.yml: upgrade to actions/[email protected]
GITHUB: workflows/testing.yml: cache docker image via github cache
GITHUB: workflows/testing.yml: find version inside docker
GITHUB: workflows/testing.yml: always use the same build arg for docker
MISC: version.sh: ignore missing tags in Format:%(describe) workaround
Merge branch 'arch-ci' # 2022-08-11 Tim Janik 76c6214
* arch-ci:
.gitignore: add ignores
GITHUB: workflows/testing.yml: cleanup after each platform build
GITHUB: workflows/testing.yml: build and test on arch, cache arch docker image
MISC: Dockerfile.arch: setup archlinux dependencies for building Anklang
Use upstream CastXML, the AUR version seems outdated and broken.
Merge branch 'dockerize-asset-builds' # 2022-08-11 Tim Janik 2fd2f5f
* dockerize-asset-builds:
MISC: Makefile.mk: adjust release-message
MISC: Makefile.mk: export $V for build scripts
MISC: Makefile.mk: simplify builds, merge upload-nightly and upload-release
Makefile.mk: fix ls-tree.lst generation in tarballs
MISC: mkassets.sh: extract release info, make AppImage
MISC: mkAppImage.sh: move AppImage build logic here
MISC: mkassets.sh: build binary packages from tarball
MISC: mkdeb.sh: pass $V to make
MISC: dbuild.sh: pass $V into docker env
MISC: dbuild.sh: remove unused .dbuild/ handling
MISC: Dockerfile.focal: reduce layers
MISC: Dockerfile.focal: always become 'builder' user, prepare /ootbuild/
Merge branch 'fix-scripts' # 2022-08-12 Tim Janik a169887
* fix-scripts:
MISC: mkassets.sh: handle unbound $V
MISC: mkdeb.sh: handle unbound $V
MISC: mkAppImage.sh: handle unbound $V
MISC: dbuild.sh: handle unbound $V
Merge branch 'sse+fma-synth-engine' - build releases with SSE + FMA support # 2022-08-12 Tim Janik 5f77129
* sse+fma-synth-engine:
ASE: Makefile.mk: build FMA variant iff MODE=production INSN=sse
MISC: mkassets.sh: build releases with MODE=production INSN=sse
MISC: Makefile.mk: remove INSN build remnants
Merge branch 'clap-file-reference' # 2022-08-24 Tim Janik 031c81f
* clap-file-reference:
ASE: clapplugin: clean up load_state() and save_state()
ASE: *.cc: use operator<< where needed for serialization
ASE: serialize.hh: add operator>> and operator<< to support pure const serialization
ASE: serialize.hh: operator&: catch serialization into const at compile time
ASE: project.cc: merge asset_hashes
ASE: project.cc: use Error::NO_PROJECT_DIR if anklang.project is missing
ASE: api.hh: add Error::NO_PROJECT_DIR
ASE: clapplugin: implement file collection
ASE: clapplugin.cc: save_state: request plugin_file_reference->save_resources()
ASE: clapplugin.cc: add CLAP_EXT_FILE_REFERENCE skeleton
ASE: serialize.cc: use TelemetryField for simple serialization tests
ASE: serialize: support external serialize(T&,WritNode&) impls via ADL
ASE: serialize.cc: test tuple serialization
ASE: project.cc: loader_resolve: lookup and resolve files from project dir
ASE: project.cc: serialize file hashes as tuple array
ASE: serialize.hh: serialize tuple<...> types
UI: b/menubar.vue: use project.saved_filename() as "Save" location
ASE: api.hh: add Project.saved_filename()
ASE: Makefile.mk: upgrade to clap-1.1.1.tar.gz
UI: b/app.js: use save_project()
ASE: api.hh: rename Project.save_project()
ASE: project.cc: canonicalize project file name when saving
ASE: project: properly implement writer_collect()
ASE: project: add API to collect external files
ASE: strings: add strings_version_sort()
ASE: path: add dircontains() to check dir hierarchy and compute relative path
ASE: path: add copy_file(), use FICLONE ioctl to create CoW clone if possible
Currently, FICLONE is supported under Linux for XFS and BTRFS.
Use `filefrag -v` to detext or debug shared file extents.
ASE: path: add file_size(), gracefully handle errors
ASE: clapplugin: derive ClapPluginHandle from GadgetImpl
ASE: api.hh: print user notes and allow `rest` argument
ASE: api.hh: introduce Gadget._project()
ASE: strings: add string_to_hex()
ASE: main.cc: add --blake3 <FILE> to test Blake3 hashing
ASE: compress: add blake3_hash_file() and blake3_hash_string()
ASE: storage: add stream_reader_from_file()
ASE: Makefile.mk: compile BLAKE3 with SSE and AVX variants
ASE: Makefile.mk: provide blake3.h from BLAKE3-1.3.1.tar.gz
ASE: Makefile.mk: use SOURCE2_O
MISC: config-uname.mk: add $(call SOURCE2_O) to create object extensions
ASE: clapplugin.cc: fix warnings
MISC: config-checks.mk: show sha256sum command used failing downloads
Merge branch 'automatic-backup' # 2022-08-24 Tim Janik 72174fb
* automatic-backup:
ASE: project.cc: automatically backup existing project files
ASE: path: add glob()
ASE: path: add rename()
ASE: utils: add now_strftime()
Merge branch 'remote-gc' # 2022-09-14 Tim Janik f59890b
* remote-gc:
UI: startup.js: renew_gc() on object finalization, report_gc() when requested
ASE: jsonapi.cc: support renew_gc() and report_gc() to start new GC cycle
The basic idea behind remote GB by the UI requesting renew_gc() and the
Jsonapi server swapping wrapper tables in response is described here:
https://testbit.eu/2014/rapicorn-remote-reference-counting
ASE: jsonapi.cc: test conscise erase() loop over std::map<>
Checks the erase() loop used by Jsonipc over std::map<>, in
particular ++end must be avoided for empty maps.
JSONIPC: jsonipc.hh: support clear/swap/size/move_into for instance ptr map
MISC: config-uname.mk: use -Og for debugging which improves debug info
Using -Og is a better choice than -O0, because some compiler passes that
collect debug information are disabled at -O0. (gcc docs)
UI: startup.js: properly namespace Jsonapi/Trigger
ASE: jsonapi.cc: properly namespace Jsonapi/Trigger
DOC: ch-development.md: properly namespace Jsonapi/Trigger
DOC: ch-development.md: minor update
UI: startup.js: request Ase.Server via Jsonapi/initialize after handshake
ASE: jsonapi.cc: provide Ase.Server object as Jsonapi/initialize reply
JSONIPC: jsonipc.hh: reply to Jsonipc/handshake with protocol version 1
JSONIPC: jsonipc.js: require Jsonipc/handshake with protocol version 1
UI: startup.js: maintain $id GC list via Jsonipc.finalization_registration
JSONIPC: jsonipc.js: call Jsonipc.finalization_registration hook from ctors
UI: GNUmakefile: allow subdir builds
Merge branch 'low-latency-sched' # 2022-09-14 Tim Janik 5184d18
* low-latency-sched:
ASE: engine.cc: request low latency scheduling for the synthesis engine
ASE: platform: add sched_{set|get|fast}_priority()
ASE: dbus: add DBus methods rtkit_make_high_priority + rtkit_get_min_nice_level
MISC: mkdeb.sh: postinst: add cap_sys_nice to AnklangSynthEngine
MISC: config-checks.mk: add dbus-1 to ase dependencies
ASE: utils.cc: allow mixed case debug keys
ASE: Makefile.mk: use ASEDEPS_CFLAGS and ASEDEPS_LIBS
MISC: config-checks.mk: provide just ASEDEPS_CFLAGS and ASEDEPS_LIBS for ase/
Merge branch 'build-improvements' # 2022-09-27 Tim Janik 931a674
* build-improvements:
MISC: config-uname.mk: enable link time optimization via -flto for MODE=production
MISC: Makefile.mk: clean mkdeb/ if left over
MISC: Dockerfile.focal: install libgtk-3-dev which also provides libdbus-1-dev
Merge branch 'prefault-pages' # 2022-09-27 Tim Janik 9cf276d
* prefault-pages:
ASE: main.cc: prefault heap and stack pages
ASE: main.cc: tune malloc via mallopt to reduce page fault probability
Merge branch 'fix-gc' - plugs a GC race condition # 2022-09-27 Tim Janik 6caa570
* fix-gc:
JSONIPC: jsonipc.hh: InstanceMap: remove unused swap and move_into
ASE: jsonapi.cc: fix GC bookkeeping with mark_unused() and purge_unused()
JSONIPC: jsonipc.hh: InstanceMap: add mark_unused() and purge_unused()
JSONIPC: jsonipc.hh: add CallbackInfo::classname() to improve error messages
Merge branch 'fix-vue-3.2.28' # 2022-09-28 Tim Janik 6628472
* fix-vue-3.2.28:
UI: b/shell.vue: work around vue-3.2.38 breaking $forceUpdate() before mount()
Avoid the Shell calling $forceUpdate() from created().
That used to work up until Vue-3.2.27, but with .28 and .29 results in:
vue.js:1843 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'id')
at queueJob (vue.js:1843:17)
at i.f.i.f (vue.js:4591:44)
Aparently $forceUpdate() calls are now broken before mount().
UI: Makefile.mk: fix wildcard for lit.js to not catch little.js
Merge branch 'print-class-tree' # 2022-09-28 Tim Janik 8bde98a
* print-class-tree:
DOC: Makefile.mk: anklang-internals: add "Ase Class Inheritance Tree"
ASE: main: add --class-tree to print the class tree
JSONIPC: jsonipc.hh: add ClassWalker
ASE: internal.hh: add assert_unreached()
ASE: engine: minor fixes
Merge branch 'x11test' # 2022-10-10 Tim Janik 662fd7a
* x11test:
X11TEST: play1note.json: add recording to play a single MIDI note
GITHUB: workflows/testing.yml: run x11test-v on Ubuntu build and upload result
Makefile.mk: docuemnt x11test and x11test-v
Makefile.mk: add x11test, x11test-v to run (headless) end-to-end tests
X11TEST: replay.sh: play Anklang DevTools recording in Electron via Puppetteer
X11TEST: ereplay.cjs: use Electron and Puppetteer to replay DevTools recording
X11TEST: x11rec.sh: run and record a command in a virtual or nested X11 session
MISC: package.json.in: add puppeteer packages
MISC: Dockerfile.focal: provide xvfb 9wm ffmpeg
Merge branch 'ci-job-split' # 2022-10-11 Tim Janik bd540be
* ci-job-split:
GITHUB: workflows/testing.yml: split jobs for Ubuntu, Arch, IRC
DOC: copyright.ini: assume MPL-2 for x11test/*.json
Merge branch 'activate+deactivate' # 2022-10-12 Tim Janik 4e5ac8b
* activate+deactivate:
ASE: object.cc: properly check Connection ptr before use
ASE: track.cc: remove over eager assertion
ASE: project.cc: start_playback(): switch current engine project on demand
Makefile.mk: allow make default to configure INSN
ASE: project: move activate/deactive to Project
ASE: engine.cc: fix loss of "change:prefs" notification connection
ASE: engine: add API to set up exclusive Engine + Project relation
ASE: track: require Project as parent of track
ASE: gadget: add flags field to be used for gadgets and derived types
ASE: clapplugin: rename clap_deactivate() and variants
ASE: api.hh: use GadgetImpl as parent pointer
ASE: api.hh: derive Track from Device
ASE: api.hh: derive Project from Device
ASE: device: rename and move Device::extract_info() here
ASE: clapdevice.cc: fix call to inherited methods
ASE: nativedevice: provide remove_all_devices(), implement activation
ASE: api.hh: Device: provide _activate() _deactivate() is_active()
ASE: nativedevice.cc: clarify TODO
ASE: split DeviceImpl into Device and NativeDevice
ASE: engine: turn the engine into a global singleton
ASE: engine: simnply wrap AudioEngineImpl calls into AudioEngine methods
ASE: engine: rename AudioEngineImpl
ASE: main: export main_loop_wakeup()
Merge branch 'package-updates' # 2022-10-12 Tim Janik 84e7c32
* package-updates:
ASE: clip.cc: fix macro clash
MISC: package.json.in: update various npm packages
Makefile.mk: clean x11test/ output dir
Merge branch 'litelement-menu' # 2022-10-21 Tim Janik 8032e64
* litelement-menu:
X11TEST: play-notes.json: update UI test
UI: b/*: assign aria-label where appropriate
UI: b/*.vue: add html id to context menus
UI: b/menuitem.js: always strip slot_label
UI: util.js: remove unused dropdown()
UI: b/color-picker.vue: fix menu and support click-drag selection
UI: b/contextmenu.js: expose dialog via part=dialog to CSS rules
UI: b/trackview.vue: popup context menu at cursor
UI: b/piano-roll.vue: fix popup position
UI: b/piano-ctrl.js: avoid stealing unhandled key presses
UI: b/dialog.vue: close on regular Escape presses, avoid stealing Escape
UI: b/contextmenu.js: stop handled dialog Escape key from bubbling further
UI: util.js: allow shields without Escape key stealing
UI: b/choice.vue: fix menu and key handling to work like all menus
UI: b/contextmenu.js: provide .open read-only property
UI: b/menuitem.js: remove unused code
UI: b/contextmenu.js: fix data-contextmenu styling
UI: b/fed-picklist.vue: remove unused component
UI: b/devicepanel.vue: fix menu origin and insertion pos
ASE: nativedevice.cc: fix device insertion order
UI: b/contextmenu.js: close menu on backdrop clicks
UI: util.js: dialog_backdrop_mousedown(): close dialogs on backdrop clicks
UI: b/menubar.vue: use b-contextmenu .activate and .isactive
UI: b/piano-roll.vue: use b-contextmenu .activate and .isactive
UI: b/deviceeditor.vue: use b-contextmenu .activate and .isactive
UI: b/treeselector-item.vue: use frame stamp to ignore duplicate clicks
UI: b/menubar.vue: use frame stamp to ignore duplicate clicks
UI: b/contextmenu.js: make FF auto-focus an element on showModal(), like Chrome
UI: b/contextmenu.js: use frame stamp to ignore duplicate clicks and popup()s
Note that keyboard presses, mouse clicks, drag selections and event bubbling can
all cause menu item clicks and contextmenu activation.
In order to deduplicate multiple events that arise from the same user interaction,
*one* popup request and *one* click activation is processed per animation frame.
UI: util.js: add frame_stamp(), retrieve a timestamp unique per animation frame
UI: kbd.js: move_focus(): fallback to move focus inside body
UI: kbd.js: list_focusables(): take [open]:modal in shadow DOMs into account
UI: kbd.js: list_focusables(): take [open]:modal dialogs into account
UI: b/treeselector-item.vue: fix single-click menu activation and styling
UI: b/trackview.vue: fix menu activation
UI: b/piano-roll.vue: fix menu activation, allow click-drag menu selection
UI: b/devicepanel.vue: fix menu activation
UI: b/menubar.vue: allow click-drag menu selection
UI: b/menuitem.js: use .activate and .isactive callbacks for item activation
UI: b/contextmenu.js: use .activate and .isactive callbacks for menu activation
ASE: project.cc: fix some missing notify::dirty emissions
UI: b/menubar.vue: adapt context menu clicks, popup menus early (mousedown)
UI: b/menuitem.js: adjust for b-contextmenu as LitElement
UI: kbd.js: fix keydown_move_focus() for shadow DOMs
UI: util.js: add prevent_event()
UI: b/contextmenu.js: port b-contextmenu to LitElement
UI: b/menuitem.js: use 'b-menurow' CSS selector
UI: b/menurow.js: port b-menurow to LitElement
UI: b/menuitem.js: pass b-menurow turn / noturn attributes to button
UI: util.js: add closest() for shadow DOMs
UI: b/trackview.vue: always use the b-icon ic="" attribute
UI: b/menuitem.js: export KeymapEntry as this.keymap_entry
UI: b/contextmenu.vue: collect and register KeymapEntry props from descendants
UI: kbd.js: support add+remove of global keymaps
UI: b/menuitem.js: port b-menuitem to LitElement
UI: util.js: add lrstrip() and collect_text_content()
UI: kbd.js: make activeElement and list_focusables shadow DOM aware
This allows transparent handling of custom focus navigation and hotkey
activation in shadow DOMs.
UI: util.js: extend has_ancestor() to support open shadow DOMs
UI: b/contextmenu.vue: support click, keymap, b-contextmenu-menudata on Element
UI: b/icon.js: port b-icon from vue to LitElement
UI: util.js: add adopt_style() and add_style_sheet()
UI: b/*.vue: always use the b-icon ic="" attribute
GITHUB: workflows/testing.yml: update github actions
Merge branch 'pdf-artifacts' # 2022-10-25 Tim Janik e0272bd
* pdf-artifacts:
GITHUB: workflows/testing.yml: build PDF and upload 'docs' build artifact
MISC: mkassets.sh: use 'pdf' shorthand in build rule
DOC: Makefile.mk: require explicit 'pdf' rule to build PDF manuals via TeX
By default, only the HTML manuals are built and installed (without TeX
dependency). The PDF variants can be built explicitely with `make pdf`.
The PDF manuals are installed if they are present at install time.
GITHUB: workflows/testing.yml: enable CI for 'next' and PRs
Merge branch 'update-sanitizers' # 2022-10-26 Tim Janik a252fc9
* update-sanitizers:
JSONIPC: jsonipc.hh: fix atexit memory leak
ASE: formatter.hh: properly handle nullptr_t for %p
ASE: nativedevice.cc: fix signedness
ASE: serialize.cc: fix unit test memory leak
UI: Makefile.mk: ignore asan when running AnklangSynthEngine
DOC: Makefile.mk: ignore asan when running AnklangSynthEngine
MISC: config-uname.mk: update sanitizer linkage
GITHUB: workflows/testing.yml: upgrade actions/checkout and actions/cache to v3
MISC: Dockerfile.focal: comment fixups
GITHUB: workflows/testing.yml: allow TeX installation during CI builds
Merge branch 'mwc256-prng' # 2022-10-26 Tim Janik 153071d
* mwc256-prng:
ASE: randomhash.cc: add FastRng jump ahead tests
ASE: main.cc: add --rand64 to generate 64bit FastRng numbers on stdout
This can be used to test the PRNG quality with for example PractRand:
AnklangSynthEngine --rand64 | RNG_test stdin64 -multithreaded
ASE: randomhash: add FastRng, a multiply-with-carry PRNG with period 2^255
ASE: tests/benchmarks.cc: use 3k as max chunk size to avoid memset benchmarking
ASE: sortnet.cc: speed up test by reducing the checked 10-element permutations
Merge branch 'loft' # 2022-10-26 Tim Janik 84ff17e
* loft:
ASE: main.cc: configure Loft and concurrently preallocate pages on demand
ASE: tests/benchmarks.cc: benchmark loft_calloc()
ASE: loft: add Loft - a lock- and obstruction-free thread memory allocator
Squashed commits of Loft development:
ASE: loft: implement mmap() based bump allocator
ASE: loft: implement MpmcStack based bucket allocator
ASE: loft: add loft_alloc()
ASE: loft: add loft_make_unique() and LoftFree::operator()()
ASE: loft: add loft_calloc()
ASE: loft: add multithreaded allocator stress test
ASE: loft: use FastRng for testing
ASE: loft: add loft_bucket_size()
ASE: loft: add loft_get_stats(), loft_stats_string()
ASE: loft: add loft_get_config(), loft_set_config(), config flags
ASE: loft: add loft_grow_preallocate(), loft_set_notifier()
ASE: loft: issue a warning if allocations via syscall happen inline
ASE: atomics.hh: add MpmcStack.peek
ASE: atomics.cc: fix signedness
ASE: atomics.cc: add test for MpmcStack<>
ASE: atomics.hh: add MpmcStack<>, a lock-free stack for non-reclaimable memory
Merge branch 'opus-wav-flac' - capture engine output # 2022-10-28 Tim Janik bb7a442
* opus-wav-flac:
UI: b/aboutdialog.vue: display FLAC version
ASE: api: export get_flac_version()
UI: b/aboutdialog.vue: show Opus version
Remove unused Vorbis version.
ASE: api.hh: export Opus version
Remove unused Vorbis and MP3 version export.
MISC: Dockerfile.focal: provide libopus
MISC: config-checks.mk: provide ogg-1.3.4 and opus-1.3.1
Remvoe Vorbis requirement, which is unused.
ASE: main.cc: exit with atquit_run() upon SIGINT
ASE: loop: USignalSource::install_sigaction(): install unix signal handler
ASE: utils: provide atquit handlers
ASE: loop.hh: minimize latency of signal handlers by running at high priority
ASE: main: add -o wavfile to the CLI
ASE: engine: support engine output capturing into wave files
Squashed commits of engine capturing development:
ASE: engine: add queue_capture_start() and queue_capture_stop()
ASE: engine.cc: stall engine once program is aborted (atquit_triggered)
ASE: engine.cc: capture output via wave_writer_create_opus()
ASE: engine.cc: capture output via wave_writer_create_wav()
ASE: engine.cc: capture output via wave_writer_create_flac()
ASE: wave: add wave file writer for WAV, OPUS, FLAC
Squashed commits of wave file development:
ASE: wave.hh: add WaveWriter interface
ASE: wave: add writer for WAV files with support for PCM and FLOAT
ASE: wave: implement Opus writer and export Opus version
ASE: wave.cc: write extension header for FLOAT format
For example SoX(1) complains about float WAV files 'missing extended part of fmt chunk'
ASE: wave: add FLAC writer and export FLAC version
ASE: wave: install atquit handlers to flush/finalize wave files
ASE: main: load projects without '--preload' and support --play-autostart
ASE: main.cc: auto-load projects passed on the CLI
Merge branch 'time-autostop' # 2022-11-03 Tim Janik 6d531e6
* time-autostop:
GITHUB: workflows/testing.yml: add repository and gh-user to IRC notifications
GITHUB: workflows/ircbot.py: support -R for initiating repository name
GITHUB: workflows/testing.yml: skip IRC bot name
GITHUB: workflows/ircbot.py: set "YYBOT" as bot name
ASE: main: add autostop handling and implement -t <time> to trigger autostop
ASE: project: start_playback(): pass autostop into engine
ASE: engine: add autostop handling and delay capture until transport is running
ASE: defs.hh: add D64MAX
ASE: strings.cc: add string_to_seconds()
ASE: formatter.cc: test atomic<bool> which is a struct and needs %s
UI: b/treeselector-item.vue: use ContextMenu.valid_uri() to check valid uri
UI: b/contextmenu.js: always use valid_uri() for uri in boolean contexts
Merge branch 'swesterfeld-vcf-cutoff-fix' # 2022-11-03 Tim Janik 203c246
* swesterfeld-vcf-cutoff-fix:
DEVICES: blepsynth: fix cutoff frequency modulation for filter
Fix frequency scaling problems: the freq_in array now passes its frequency to
the filter as plain Hz.
Merge branch 'zoom-ui' # 2022-11-16 Tim Janik 8e65adf
* zoom-ui:
UI: b/menubar.vue: support Zoom In/Out/Reset for Electron
ELECTRON: main.js: export zoom_level() to allow UI zoom adjustments
UI: kbd.js: match_key_event: split 'Ctrl++' only once
DOC: ch-development.md, ch-intro.md: fix testbit.eu URL
ASE: randomhash: fix testbit.eu URL
ASE: track.cc: fix MASTER_TRACK flag
Merge branch 'sprite-knob' # 2022-11-16 Tim Janik 439c3b8
* sprite-knob:
MISC: Dockerfile.focal: install librsvg2-bin for rsvg-convert
UI: remove unused eknob.svg embedding
UI: b/knob.vue: remove Vue based knob implementation
UI: b/pro-input.vue: remove unused knob handling
UI: b/pro-group.vue: use b-knob for scalar Property editing
UI: b/knob.js: rewrite b-knob as LitElement with sprites
UI: b/deviceeditor.vue: use Util.extend_property() to cache Property fields
UI: Makefile.mk: provide control knob sprite assets
Makefile.mk: include images/knobs/Makefile.mk
IMAGES: knobs/cknob.svg: add MPL-2.0 license
IMAGES: knobs/Makefile.mk: build bi- and unidirectional control knob sprites
IMAGES: knobs/mksprite.py: rotate svg knob and add level indicator
IMAGES: knobs/cknob.svg: add rotatable control knob
UI: util.js: wheel_delta: adjust factors for modern Firefox and Chrome versions
UI: startup.js: set CONFIG.dpr_movement for Chrome<=100 and Gecko
As of Firefox-106, dpr_movement is needed and for Chrome-107 it is not.
UI: util.js: use internal Symbol for request_pointer_lock() state handling
UI: util.js: fix value updates of extended properties
Catch the right event and normalize the value in JS.
UI: util.js: add methods to handle destroy callbacks on objects
UI: b/shell.vue: comment fixup
UI: b/databubble.vue: hook into App.zmove for all event handling
Also, fix stuck bubbles when rehovering the same element.
UI: b/app.js: generate zmove events for pointerdown, pointermove, pointerup
UI: b/app.js: make sure "mousemove" triggers ZMove updates
ASE: processor.cc: keep constant number of characters for % values
ASE: processor: send property notifies early, account for inflight values
ASE: api.hh: add missing const
ASE: crawler: use emit_notify() and avoid emit during ctor
ASE: *.cc: use emit_notify() where possible
Merge branch 'swesterfeld-blepsynth-adsr-time-fix' # 2022-11-17 Tim Janik 54726cd
* swesterfeld-blepsynth-adsr-time-fix:
DEVICES: blepsynth: use non-linear mapping for ADSR times
ASE: sortnet.hh: update URLs in comments
Merge branch 'cursors' # 2022-12-22 Tim Janik 32b1518
* cursors:
IMAGES: anklangicons.sh: fixes for svgo 2.8.0 and Inkscape >= 1.0
IMAGES: anklangicons.sh: remove unused cursor commands
RAND: hotspots.sh: add simple script to debug hotspot coords in cursors
UI: b/piano-roll.vue: remove AnklangCursors.scss references
UI: Makefile.mk: remove AnklangCursors.scss copy
UI: Makefile.mk: copy cursors/cursors.css and all cursor SVGs
UI: little.js: allow runtime postcss imports from cursors/cursors.css
UI: cursors/cursors.css: add CSS vars for: cross eraser hresize knife move pen
UI: cursors/knife.svg: add 28x28 pixel "knife" cursor
UI: cursors/hresize.svg: add 28x28 pixel "horizontal resize" cursor
UI: cursors/cross.svg: add 28x28 pixel "cross" cursor
UI: cursors/move.svg: add 28x28 pixel "move" cursor
UI: cursors/eraser.svg: make cursor 28x28 pixels
UI: cursors/pen.svg: make cursor 28x28 pixels
UI: cursors/: move eraser.svg and pen.svg here
Merge branch 'piano-roll-and-shell-grid-layout' # 2022-12-22 Tim Janik 5772625
* piano-roll-and-shell-grid-layout:
UI: b/pianoroll.js: document piano-roll use and fix hover handling
UI: b/piano-ctrl.js: add convenient tool registration helpers
UI: eslintrc.js: allow empty blocks
UI: util.js: allow PointerDrag cleanup handler
UI: b/pianoroll.js: fix scroll and select notes_canvas tool on hover
UI: b/piano-ctrl.js: implement note resize tool
UI: b/piano-ctrl.js: implement select, paint, erase as dedicated tools
UI: b/pianoroll.js: context menu cleanup
UI: b/clipview.vue: let the canvas fill parentElement
UI: styles.scss, startup.js: turn HFlex & VFlex into LitElement
UI: b/pianoroll.js: use one source for DPR calculations
UI: b/pianoroll.js: properly align toolmenu button
UI: b/pianoroll.js: fix background color
UI: b/pianoroll.js: add pianorollmenu items
UI: b/treeselector-item.vue: fix 'event' reference
UI: b/knob.js: fix 'event' reference
UI: b/editable.vue: fix 'event' reference
UI: eslintrc.js: warn if a global 'event' is referenced
UI: b/piano-ctrl.js: fix merging of selection changes with note modifications
UI: b/pianoroll.js: handle menu hotkeys
UI: b/contextmenu.js: fix unmapping in map_kbd_hotkeys()
UI: kbd.js: handle document.activeElement == null
UI: b/piano-ctrl.js: stop event if a key was handled
UI: b/pianoroll.js: grab focus
UI: b/piano-ctrl.js: adjust piano_roll access patterns
UI: b/pianoroll.js: provide .srect property, repaint upon changes
UI: b/pianoroll.js: handle tool menu and hook up piano-ctrl
UI: theme.scss: move scrollbar styling here to work inside shadow DOMs
UI: startup.js: turn CGrid into a LitElement to work inside shadow DOMs
UI: b/pianoroll.js: work around FireFox exception when ctx.font is assigned
UI: b/shell.vue: allow notification callbacks on get_note_cache()
UI: b/statusbar.vue: use elementsFromPoint() to find Tips inside shadowRoots
UI: b/contextmenu.js: support @activate="handler" notifications
UI: b/menubar.vue: move comment to work around Vue's template child handling
UI: b/knob.js: ignore hscrolls to allow horizontal device panel scrolling
UI: b/devicepanel.vue: adjust to b-shell grid layout
UI: b/pianoroll.js: fix scrollbar style
UI: b/pianoroll.js: add indicator to show the current tick
UI: b/shell.vue: use <grid/> for the basic layout
UI: b/pianoroll.js: implement <b-piano-roll/> as LitElement
UI: b/pianoroll.js: add skeleton
UI: b/piano-roll.vue: remove Vue based piano-roll
Merge branch 'documentation-sections' # 2022-12-22 Tim Janik 11d3cc2
* documentation-sections:
DOC: Makefile.mk: link to and search for ui/cursors/
UI: b/pianoroll.js: add data-f1="#piano-roll" to link F1 to piano roll manual
UI: b/shell.vue: popup manual on 'F1', support anchors via data-f1="#anchor"
UI: kbd.js: allow event.keyCode filtering
DOC: Makefile.mk: include docs from pianoroll and piano-ctrl
DOC: ch-editing.md: add brief editing introduction
UI: Makefile.mk: extract Markdown sections from JS files into doc/b/*.md
UI: xbcomments.js: extract Markdown sections from JavaScript comment blocks
Merge branch 'build-fixes' # 2022-12-28 Tim Janik 215830f
* build-fixes:
UI: Makefile.mk: add missing dependency from ui/colors.js on ui/zcam-js.mjs
This fixes postcss errors due to missing zcam-js.mjs.
X11TEST: play-notes.json: adjust simlpe UI test to UI path changes
UI: cursors/cursors.css: add MPL-2 copyright
Merge branch 'fix-embed-fd-hangs' # 2022-12-28 Tim Janik ea7b53b
* fix-embed-fd-hangs:
ASE: clapplugin.cc: map PollFD::NVAL to CLAP_POSIX_FD_ERROR
ASE: loop.*: support POLLWRBAND, always pass on POLLNVAL, POLLERR and POLLHUP
Merge branch 'lit-clipview' # 2023-01-07 Tim Janik ee3d1f0
* lit-clipview:
ASE: api.hh: add Clip.all_notes read-only property
Enable property caching UI code for fetching notes and updates.
UI: b/pianoroll.js: use Util.wrap_ase_object() to fetch Clip notes
UI: b/piano-ctrl.js: use Util.wrap_ase_object() to fetch Clip notes
UI: b/clipview.js: use wrap_ase_object() to access Clip properties
UI: util.js: export the wrapper.js API
UI: wrapper.js: add AseObject wrapper to cache properties
UI: startup.js: add class name to GC debug messages
UI: b/shell.vue: provide Shell.piano_roll
UI: Makefile.mk: use Vue production build unless MODE=debug
This avoids massive memory leaks of Vue components.
UI: Makefile.mk: fix missing dependency
MISC: package.json.in: upgrade to vue-3.2.45 and lit-2.5.0
UI: Makefile.mk: use 'npm --prefer-offline' only when rebuilding
MISC: config-checks.mk: do not force '--prefer-offline' on npm
MISC: config-uname.mk: define __UIDEBUG__=1 for MODE=debug
UI: b/pianoroll.js: remove old debug()
UI: b/contextmenu.js: remove useless performance hog
UI: b/tracklist.vue: add new track on dblclick on track list only
UI: b/pianoroll.js: fix stale play cursor on clip change
UI: b/clipview.js: port BClipView to LitElement
UI: b/: use Track.list_launcher_clips()
ASE: api.hh. track: rename Track.list_launcher_clips()
Merge branch 'lit-cliplist' # 2023-01-07 Tim Janik 2724283
* lit-cliplist:
UI: b/partlist.vue: disable old code
DOC: Makefile.mk: add docs from b/cliplist.md
ASE: api.hh: rename Track.launcher_clips() and ass 'notify:launcher_clips'
UI: b/statusbar.vue: use Util.find_element_from_point()
UI: b/shell.vue: determine F1 anchor from find_element_from_point()
UI: util.js: add find_element_from_point(), supporting shadow DOMs
UI: b/clipview.js: fix properties
UI: b/cliplist.js: support F1 help for ClipList
UI: b/cliplist.js: port to LitElement
UI: b/app.js: add App.zmove_last()
UI: b/pianoroll.js: minor rename
Merge branch 'lit-editable' # 2023-01-08 Tim Janik b1b949d
* lit-editable:
UI: b/trackview.vue: adjust b-editable use
UI: b/positionview.vue: adjust property editing
ASE: project.cc: add missing notifications
UI: b/editable.js: port <b-editable/> to LitElement
Merge branch 'lit-trackview' # 2023-01-08 Tim Janik 529af30
* lit-trackview:
UI: b/trackview.js: render sound level meter from telemetry
UI: b/cliplist.js: minor formatting
ASE: track.cc: add dbspl0 and dbspl1 to telemetry
ASE: combo: add sound level probing in dB to AudioChain
ASE: datautils: add square_max()
ASE: midilib.cc: reserve space to avoid malloc
ASE: datautils: add square_sum() for FPU floats
ASE: cxxaux.hh: add ASE_ALIGNED16() and ALIGNMENT16()
UI: b/app.js: maintain App.current_track, notify <b-trackview/> accordingly
ASE: track: support midi_channel changes
UI: b/*.js: fix ${ref} syntax
UI: b/trackview.js: port <b-trackview/> to LitElement
Merge branch 'lit-tracklist' # 2023-01-10 Tim Janik 3e64716
* lit-tracklist:
UI: b/tracklist.js: hide HEADER and FOOTER
UI: b/tracklist.js: add scrollshadow at the top
UI: theme.scss: remove fragile parts of scrollbar styling
UI: b/tracklist.js: fix layout for few tracks
UI: b/tracklist.js: support x/y scrolling
UI: b/cliplist.js: clipview children must not shrink
UI: b/tracklist.js: port <b-tracklist/> to LitElement
UI: b/trackview.js: increase width of level meters
UI: b/clipview.js: use track.$id for colorization
UI: b/cliplist.js: fix setting of b-clipview.track property
UI: b/app.js: provide App.project
ASE: object.cc: skip notifications for objects without shared_ptr
ASE: api.hh: rename and notify Project.all_tracks() (former list_tracks)
Merge branch 'api-docs' # 2023-03-03 Tim Janik 63bd26e
* api-docs:
GITHUB: workflows/testing.yml: rename CI jobs
GITHUB: workflows/testing.yml: add step to build and upload API docs
MISC: Dockerfile.arch: provide doxygen openssh and poxy via pip
MISC: Dockerfile.arch: first update archlinux-keyring
This works around an outdated keyring in the archlinux:latest docker image.
MISC: dbuild.sh: add support for the docker -p <PORTS> option
DOC: poxy.sh: setup AUTHOR/COMITTER EMAIL/NAME, GIT_SSH_COMMAND for uploads
DOC: poxy.sh: provide NODE_PATH
DOC: poxy.sh: add program doc/ dir to documentation output
DOC: poxy.sh: add README as main index page
DOC: poxy.sh: add project version to docs
DOC: poxy.sh: upload to the `publish` branch
DOC: poxy.sh: support conditional builds
DOC: poxy.sh: move build commands into poxy_build function
DOC: poxy.sh: add -u for upload
DOC: poxy.sh: support accesskey="f" for Search
DOC: poxy.sh: support -s to serve html/ contents
DOC: poxy.sh: add NEWS.md
DOC: poxy.sh: add ch-scripting.md to UI docs
DOC: poxy.sh: generate API reference documentation with Poxy
UI: Makefile.mk: remove rules to build JS docs
DOC: Makefile.mk: build scripting docs from ui/host.js and ch-scripting.md
DOC: copyright.ini: fix doc/jsdocrc.json path
DOC: ch-scripting.md: move here from ui/
DOC: jsdoc2md.js: generate markdown from *.js via jsdoc-api
DOC: jsdocrc.json: configure JsDoc to use doc/jsdoc-slashes.js
DOC: jsdoc-slashes.js: move here from ui/slashcomment.js
DOC: jsdoc2md.js: guard aganst doclets with non-string name
I.e. doclet.meta.code.name can be an Integer.
MISC: package.json.in: add jsdoc-api
UI: b/shell.vue: add basic docs
ASE: testing.hh: document Test namespace
ASE: api.hh: add docu comment to Ase namespace
README.md: fix github workflow badge URL
Merge branch 'jsdoc-search' # 2023-03-05 Tim Janik dc2f640
* jsdoc-search:
DOC: poxy.sh: ignore case during search
UI: util.js: add PointerDrag comment
DOC: poxy.sh: extend searchdata-v2.js with token list from JS docs
DOC: poxy.sh: avoid fake 'Export' prefix for JS symbols
DOC: jsdoc2md.js: use <a/> for anchors, add data-4search to anchors
The old empty span anchors could be removed by some HTML processors.
DOC: poxy.sh: jsdoc2md will now directly generate markdown from JS
Merge branch 'reactive-render' # 2023-03-08 Tim Janik 6f6d3be
* reactive-render:
UI: startup.js: rerender all LitElements and known Vue components on resize
UI: little.js: export LitComponent, which has reactive render() and updated()
UI: little.js: add lit_update_all()
UI: wrapper.js: improve error message for missing getters
UI: wrapper.js: support reactive_wrapper() callbacks for wrap_ase_object() fields
UI: wrapper.js: implement define_reactive() and reactive_wrapper()
Merge branch 'build-time-postcss' # 2023-03-15 Tim Janik 54353a7
* build-time-postcss:
UI: split styles into dark, grid, domstyles, mixins, shadow, globals SCSS files
globals.scss: styles for the LightDOM only
shadow.scss: styles only for ShadowDOM components
domstyles.scss: common styles for the LightDOM and ShadowDOM
grid.scss: provide <grid/> helpers
mixins.scss: base to customize components
dark.scss: basic theme, allow switching via import $themename_scss;
cursors/cursors.css: provide CSS variables for custom cursors
UI: cursors/cursors.css: fix quotes
UI: cursors/cursors.css: introduce --svg-cursor-* variables at :root{} scope
This is needed to make cursors.css actualy valid CSS.
UI: index.html: remove postfix and css validator, load vue-styles.css, fix preloads
UI: b/clipview.js: use zcam directly
UI: b/*.js: embed and load CSS via JsExtract
UI: b/positionview.vue: use $b-lcdscreen-fg, $b-lcdscreen-bg
UI: b/: fix $b-button-radius $b-button-radius $b-track-meter-gap $b-track-meter-thickness
UI: b/pianoroll.js: import grid.scss
UI: b/positionview.vue: use t-lcdscreen-fg, t-lcdscreen-bg
UI: b/trackview.js: add --track-meter-thickness, --track-meter-gap
UI: b/*.vue: use --button-radius
UI: b/*.js: use --button-radius
UI: b/*.js: use var(--button-radius);
UI: b/*.vue: use var(--button-radius);
UI: b/deviceeditor.vue, b/pro-group.vue: use --device-radius
UI: b/shell.vue: remove unused styles
UI: b/pianoroll.js: remove useless color assignment
UI: b/textinput.js: include mixins.scss to use SCSS variable
UI: b/menuseparator.js: include mixins.scss to use SCSS variable
UI: b/*.js: extend componenets from LitComponent instead of LitElement
UI: b/dialog.vue: inline box-shadow styling
UI: b/pianoroll.js: import grid helpers from grid.css
UI: b/menubar.vue: specify 'justify-content: space-between' directly
UI: b/pianoroll.js: rely on global cursors.css import
UI: startup.js: remove unused postcss import
UI: jsextract.js: document jsextract.js usage
UI: jsextract.js: extract JsExtract.scss`` marker snippets into *.jscss files
UI: little.js: document JsExtract usage
UI: little.js: fix .css URL construction to always have an extension
UI: little.js: load <link rel=stylesheet href=shadow.css> into shadow roots
UI: little.js: add ./shadow.css to LitComponent
UI: little.js: remove postcss
UI: little.js: export JsExtract with scss`` and fetch_css()
UI: little.js: add default define $themename_scss:dark.scss;
Also, disable csstree-validator which yields outdated warnings.
UI: little.js: load shadow.scss into all LitComponent elements
UI: little.js: LitComponent: always adopt shadow.css in createRenderRoot()
UI: little.js: CSS import: remove premature fetch + caching, always import all
UI: little.js: remove cursors/cursors.css from memorized imports
MISC: package.json.in: add stylelint
MISC: package.json.in: remove perfectionist-dfd
UI: sfc-compile.js: extract *.vuecss files
UI: Makefile.mk: remove csstree-validator and postcss browserify bundling
UI: Makefile.mk: run stylelint from output dir
UI: stylelintrc.cjs: add stylelint config
UI: Makefile.mk: extract, process and run stylelint on *.jscss files
UI: Makefile.mk: process *.vuecss files
UI: Makefile.mk: run stylelint on processed styles
UI: Makefile.mk: generate vue-styles.css
UI: Makefile.mk: remove Vue css rules
UI: Makefile.mk: take quoted cursor urls into account
UI: Makefile.mk: move theming into ui/dark.scss, build .css from .scss
UI: Makefile.mk: use postcss.js with --map and -i
UI: Makefile.mk: fix install pattern for ui/b/
UI: postcss.js: support stdout output
UI: postcss.js: fix exit code by re-throwing errors
UI: postcss.js: add -Dvar=value for predefined variables
UI: postcss.js: add -C <working-dir> to find imports
UI: postcss.js: directly print PostCSS exceptions to provide useful stacktraces
UI: postcss.js: support fetching imports from network
UI: postcss.js: remove perfectionist-dfd, auto-import *.scss unless -i is given
UI: postcss.js: add zlerp() CSS function
UI: postcss.js: add zmod4() CSS function
UI: postcss.js: make source map configurable
UI: colors.js: add zlerp() for color interpolation
UI: colors.js: fix missing ZCAM attributes
UI: colors.js: add zmod4() to debug ZCAM attributes for colors
UI: colors.js: support missing first zmod() color argument
DOC: jsdoc2md.js: fix @file docu being ignored in some cases
DOC: jsdoc2md.js: add anchor to constants
ASE: websocket.cc: allow caching of duplicate requests within 1 second
Merge branch 'transportinfo', closes #5 # 2023-05-12 Tim Janik 3819f90
* transportinfo:
ASE: clapplugin: provide transport information for the plugin
MISC: config-uname.mk: link -shared: allow undefined symbols with sanitizers
Merge branch 'libstdc++-13' # 2023-05-17 Tim Janik c0f01a0
* libstdc++-13:
ASE: cxxaux.hh: patch up make_shared() to make libstdc++13 happy
* Move shared ptr allocator out of function scope (to allow template specialization)
* Add rebind<> template to shared ptr allocator which derives from std::allocator
* Specialize rebind<> so it yields the same allocator for only the shared ptr
value type
* This "fixes" two static assertions that were added in libstdc++13, see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72792#c12
ASE: cxxaux.hh: remove unused FriendAllocator<>
ASE: cxxaux.hh: fix missing <string> include
ASE: loop.hh: always use ASE_DEFINE_MAKE_SHARED() to implement make_shared()
ASE: formatter.hh: include cstdint for int32_t
ASE: clapplugin.cc: add missing braces for clap_event_transport_t initializer
UI: wrapper.js: add missing Util import
Makefile.mk: add simple rule to generate +compile_commands.json
Merge branch 'g++-fixes' # 2023-05-17 Tim Janik 8404380
* g++-fixes:
ASE: cxxaux.hh: fix internal member typedef name
ASE: cxxaux.hh: use std::conditional_t<> for rebind::other, fix for g++-12
With template specializations, g++-11 and g++-12 error out with "explicit
specialization in non-namespace scope", so we use std::conditional_t<> which
seems to work with g++-12 and clnag++-15.
Merge branch 'ci-build-updates' # 2023-05-19 Tim Janik 580cf66
* ci-build-updates:
MISC: Makefile.mk: use gh, keed *-dev version number for Nightly releases
* Use gh instead of hub to create releases
* Keep the development version number for Nightly releases
* Add a brief disclaimer about Nightly releases
MISC: version.sh: simplify, support --commit-date and $RELEASE_VERSION
GITHUB: workflows/testing.yml: add named step "Fetch last release tag"
GITHUB: workflows/testing.yml: fetch git history since last release tag
GITHUB: workflows/testing.yml: update ping deps
GITHUB: workflows/testing.yml: fix workflow names
GITHUB: workflows/testing.yml: run (full) docu upload on Ubuntu
GITHUB: workflows/testing.yml: run X11 tests on Arch
DOC: poxy.sh: include all Anklang docs in upload
MISC: Dockerfile.focal: install pip, doxygen and poxy
MISC: Dockerfile.focal: install twm for x11test
MISC: Dockerfile.arch: install libgtk3 and libnss for Electron
MISC: Dockerfile.arch: install xvfb ffmpeg twm for x11test-v
X11TEST: x11rec.sh: switch to using twm with auto placement
GITHUB: workflows/testing.yml: use full doc/ install dir as doc artifact
GITHUB: workflows/testing.yml: test clang builds under Ubuntu
GITHUB: workflows/testing.yml: remove unused env var from Arch build rule
Merge branch 'nightly-version' # 2023-05-20 Tim Janik 8459bbb
* nightly-version:
MISC: Makefile.mk: update Nightly releases to avoid excessive emails
MISC: gh_delete_assets.sh: add script to delete all release assets via gh
README.md: update documentation links
MISC: version.sh: use 0.1.2.dev3 for development versions for proper ordering
Using .dev[0-9] postfixes properly sorts: 0.1.2 < 0.1.2.dev3 < 0.1.3
This works for sort -V, dpkg, rpm and PIP versions.
See: https://peps.python.org/pep-0440/#public-version-identifiers
MISC: Makefile.mk: fix typo
Merge branch 'typescript-jsdoc-checks' # 2023-06-05 Tim Janik 819895c
* typescript-jsdoc-checks:
UI: types.d.ts: allow App, Data, Shell Ase globals
UI: index.html: add importmap to allow lit module imports
UI: tsconfig.json: configure typescript checks, allow JS type checks + imports
UI: wrapper.js: add @param type
UI: little.js: add @ts-check, add types, add explicit exports for tsc
UI: b/app.js: add @ts-check and missing property decl
UI: b/cliplist.js: add @ts-check, missing imports, exports and initializations
UI: b/clipview.js: export class
UI: wrapper.js: add @ts-check and type annotations
UI: b/statusbar.vue: use material icons for info and instrument panel
UI: b/icon.js: fix material-icons size
UI: Makefile.mk: add 'tscheck', 'stylelint' and 'lint' rules
* add 'lint' dependency to run all of stylelint eslint tscheck
* add 'tscheck' rule to selectively run typescript checks
* add explicit 'stylelint' rule
* simplify lit.js rollup
* ui/vue.js: leave eslint cache alone
* install material-icons from npm
* cleanup eslint rule
* ui/rebuild: avoid bg jobs, no need to print dir in sub MAKE
MISC: package.json.in: cleanup serve and rebuild scripts
MISC: package.json.in: remove eslint script, use make eslint instead
MISC: package.json.in: install [email protected]
Makefile.mk: whitespace fix
GITHUB: workflows/testing.yml: use git fetch --unshallow
Apparently `git fetch --shallow-since` does not work with the merge commit
created by PR checkouts. Using `git fetch --unshallow` might be less efficient
for regular branches, but at least works with trunk and PRs.
MISC: package.json.in: upgrade lit, electron, vue, postcss, etc
UI: b/pianoroll.js: fix indicator interacting with the cursor
MISC: package.json.in: install typescript to enable code checks
Merge branch 'jsdoc-tsimport' # 2023-06-05 Tim Janik c184b5e
* jsdoc-tsimport:
UI: b/cliplist.js: jsdoc-tsimport-plugin does not support a blank after import
DOC: jsdocrc.json: use jsdoc-tsimport-plugin to parse tsc file imports
* Fix JsDoc choking on typescript import statements that import typed from
other JS files.
* See also: https://github.com/jsdoc/jsdoc/issues/1645#issuecomment-768293857
MISC: package.json.in: install jsdoc-tsimport-plugin
Merge branch 'fix-imports' # 2023-06-06 Tim Janik 1b47b9e
* fix-imports:
UI: util.js: add missing Kbd import
UI: eslintrc.js: remove 'Util' global
UI: b/*.vue: add missing Util imports
UI: b/*.js: add missing Util imports
Merge branch 'appimage-dependencies' # 2023-06-06 Tim Janik 1696a12
* appimage-dependencies:
MISC: mkAppImage.sh: reduce workarounds by using linuxdeploy --deploy-deps-only
MISC: mkAppImage.sh: add ELF dependencies for AnklangSynthEngine and gtk2wrap
This adds libFLAC.so, libogg.so, libopus.so and
libgdk-x11-2.0.so, libgtk-x11-2.0.so to the AppImage.
Closes #13.
Merge branch 'appimage-rpath-fix' # 2023-06-07 Tim Janik f609e1e
* appimage-rpath-fix:
MISC: mkAppImage.sh: avoid `linuxdeploy {-e|-l}` which change binary locations
Avoid `linuxdeploy {-e|-l}`, these options change the binary locations by copying.
The copies mess up ELF location detection and restoring the original locations
causes wrong relative $ORIGIN paths. We just use --deploy-deps-only now, which
keeps the binaries in place and correctly adjusts the relative $ORIGIN path.
MISC: mkAppImage.sh: remove unused command
Merge branch 'swesterfeld-fix-pcg-ub' # 2023-06-07 Tim Janik 1d49d48
* swesterfeld-fix-pcg-ub:
ASE: randomhash: fix undefined behaviour in Pcg32Rng
Left shifting a 32bit value by 32 bits is UB.
* Closes #14
Merge branch 'sorted-vector' # 2023-06-08 Tim Janik 7b3b380
* sorted-vector:
ASE: sortnet: implement SortedVector
ASE: testing.hh: TFLOATS(): assert float equality within an apsilon
ASE: combo.cc: add SPL link
Merge branch 'clang-tidy' # 2023-06-18 Tim Janik 29cc5ff
* clang-tidy:
MISC: mkassets.sh: always use /tmp/anklang-mkassets/ for release builds
GITHUB: workflows/testing.yml: fix key file permissions
GITHUB: workflows/testing.yml: fixup permissions at CI end
GITHUB: workflows/testing.yml: remove missing variable reference
GITHUB: workflows/testing.yml: fix arch perms and focal redirection
GITHUB: workflows/testing.yml: use $DOCKER_RUN and ghcr.io for all tasks
* use $DOCKER_RUN and ghcr.io caching for Focal-Docs
* adjusting git.safe.directory is not needed for Lunar
* use $DOCKER_RUN and ghcr.io caching for Arch-Replay
MISC: Dockerfile.focal: remove unused RUNs, rename user to ubuntu
* remove unused OOTBUILD, rename builder user to ubuntu
* add a comment howto build and run this image
* use fixed user and group id of 1000
MISC: Dockerfile.arch: use fixed user and group ids of 1000
MISC: Dockerfile.arch: remove unused OOTBUILD and unused poxy
MISC: Dockerfile.lunar: remove unused OOTBUILD
GITHUB: workflows/testing.yml: directly use docker run for lunar and fix perms
MISC: Dockerfile.lunar: upgrade to nodejs-20
MISC: package.json.in: upgrade npm build tools and electron-25
MISC: package.json.in: remove unused rollup-plugin-node-resolve
MISC: Makefile.mk: fix missing directory dependency
GITHUB: workflows/testing.yml: add Lunar-Clang-Tidy, rename Focal-Docs
MISC: Dockerfile.lunar: provide build environment with clang-17 on ubuntu:23.04
MISC: colorize.sh: colorize error, warning, note and special case Emacs
MISC: Makefile.mk: reimplement clang-tidy and clang-tidy-clean rules
Makefile.mk: defined CLANG_TIDY
Makefile.mk: create ls-tree.d and provide $(LS_TREE_LST)
Merge branch 'component-styling' # 2023-06-21 Tim Janik 234bf99
* component-styling:
UI: b/playcontrols.js: use JsExtract.css_url()
UI: b/icon.js: use JsExtract.css_url()
UI: b/textinput.js: make this a shadowless component
UI: little.js: add JsExtract.css_url()
UI: little.js: use cast to work around TS2425
UI: b/playcontrols.js: port to LitComponent
UI: Makefile.mk: remove temporary file
UI: b/*.vue: remove useless mixins import
UI: index.html: import globals.css
UI: globals.scss: import elements.scss which includes mixins
UI: Makefile.mk: create globals.css and auto-import mixins.scss for vue styles
UI: elements.scss: rename from domstyles.scss
UI: b/button-bar.vue: port to LitComponent
UI: b/*.js: access only LitComponent fields (not LitElement)
UI: little.js: remove LitElement export
UI: startup.js: derive from LitComponent (not LitElement)
UI: b/*.js: derive from LitComponent (not LitElement)
UI: b/partlist.js: embed and load CSS via JsExtract
UI: Makefile.mk: fix dependenc for scss rebuilds
UI: b/partlist.js: import Util
UI: types.d.ts: declare __DEV__ global
UI: b/pianoroll.js: extend LitComponent and use reactive_wrapper to track notes
Also, merge multiple repaint requests into the same micro task.
UI: b/clipview.js: leave width to parent
UI: b/cliplist.js: set 'data-f1' only once suffices
UI: b/trackview.js: render b-trackview context menu on demand
UI: b/contextmenu.js: fix close() and synchronize updates
* await this.updateComplete before showModal()
* properly emit 'close', take nesting into account
UI: b/partlist.js: port to LitElement
UI: mixins.scss: add transparent-scrollbars mixin
Merge branch 'InterDisplay', based on InterVariable-4.0 font # 2023-06-22 Tim Janik 89c9d01
* InterDisplay:
UI: dark.scss: add a fallback font stack
UI: theme.scss: remove outdated font stuff
UI: mixins.scss: move b-kbd-hotkey here
UI: elements.scss: use b-font-weight-bold() and b-font-weight-bolder()
UI: b/*.vue, b/*.js: use b-font-weight-bold() and its variants
UI: dark.scss: define b-font-weight-{normal|bold|bolder} mixins
UI: b/menutitle.js: use drop-caps while InterVariable-4.0 small-caps are broken
See also: https://github.com/rsms/inter/issues/556#issuecomment-1598010623
UI: elements.scss: leave font handling to theme, globals and shadow
UI: b/pianoroll.js: use b-canvas-font
UI: b/partthumb.vue: use b-canvas-font
UI: b/clipview.js: use b-canvas-font
UI: shadow.scss: use b-ui-font() inside shadow DOMs
UI: globals.scss: make use of b-ui-font()
UI: dark.scss: configure b-ui-font() for "InterVariable" in InterDisplay style
UI: globals.scss: leave font-face defs to index.html
UI: index.html: cleanup preloads, add @font-face for "InterVariable"
UI: b/icon.js: add small comment
UI: Makefile.mk: download InterVariable.woff2
UI: stylelintrc.cjs: disable "font-family-name-quotes" to allow quoted font names
Merge branch 'fix-lit-html' # 2023-06-22 Tim Janik 31da2dd
* fix-lit-html:
UI: b/*.js: fix trailing-solidus in html`` markup
UI: eslintrc.js: add plugin:lit/recommended to linting rules
MISC: package.json.in: install eslint-plugin-lit
Merge branch 'inputs-as-litelement' # 2023-06-27 Tim Janik 2ddfe22
* inputs-as-litelement:
X11TEST: play-notes.json: adjust recording for new web components
ASE: server.cc: listen on "notify" emissions from properties
ASE: properties.cc: fix notifications, emit notify:identifier
UI: util.js: turn xprop.value_ into a reactive property
UI: b/choiceinput.js: take b-objecteditor into account in CSS
UI: b/pro-input.vue: use @valuechange on b-choiceinput
UI: b/preferencesdialog.vue: use b-objecteditor
UI: util.js: avoid extending the same property twice
UI: util.js: export fullstop()
UI: Makefile.mk: use tsc with --pretty false only inside emacs
UI: b/objecteditor.js: port to LitComponent
* Turn into shadowless component
* Properly prefix CSS classes
* Listen on and handle @valuechange events
* Do not freeze extended properties that we keep mutating
* Remove old resize blocker logic
UI: startup.js: load basic custom components early on
UI: b/basics.js: move h-flex, v-flex, c-grid, push-button here, shadowless
Make these simple basic containers shadowless, i.e. without shadow root.
UI: b/pro-input.vue: add support for b-choiceinput
UI: little.js: export 'nothing' from Lit
UI: types.d.ts: add debug() global
UI: b/fed-object.vue: add support for b-choiceinput
UI: b/choiceinput.js: port to LitComponent, render on demand only
UI: b/tracklist.js: fix stacking of top border shadow
UI: b/switchinput.js: allow LEFT/RIGHT/UP/DOWN to toggle
UI: b/fed-object.vue: add support for b-switchinput
UI: b/switchinput.js: port to LitComponent
UI: types.d.ts: declare global CONFIG
UI: b/fed-object.vue: add support for b-numberinput
UI: b/numberinput.js: simplify and fix sizing
UI: b/numberinput.js: port to LitComponent
UI: b/textinput.js: dispatch value changes as valuechange "event"
Merge branch 'ts-check-lit-components', add ts-check and fix lint issues # 2023-07-03 Tim Janik a7ea5f4
* ts-check-lit-components:
UI: b/app.js: reload UI on project changes
UI: b/objecteditor.js: fix output
UI: util.js: add missing type annotations
UI: kbd.js: add missing type annotations
UI: b/trackview.js: add @ts-check and missing type annotations
UI: b/tracklist.js: add @ts-check and missing properties
UI: b/playcontrols.js: add @ts-check
UI: b/pianoroll.js: add @ts-check and missing type annotations
UI: b/piano-ctrl.js: minor type fix
UI: b/partlist.js: add @ts-check
UI: b/more.js: add @ts-check
UI: b/menutitle.js: add @ts-check
UI: b/menuseparator.js: add @ts-check
UI: b/menurow.js: add @ts-check
UI: b/menuitem.js: add @ts-check
UI: b/knob.js: add @ts-check and missing type annotations
UI: b/editable.js: add @ts-check
UI: b/contextmenu.js: add @ts-check and missing type annotations
UI: b/clipview.js: add @ts-check and missing type
UI: b/buttonbar.js: add @ts-check
README.md: escape FIXME keywords
UI: Makefile.mk: grep for reminders in ui/lint
DEVICES: Makefile.mk: grep for reminders in devices/lint
Makefile.mk: at the end of 'all', grep for reminder keywords in known sources
Makefile.mk: ls-tree.d needs GITCOMMITDEPS, i.e. misc/config-utils.mk
ASE: Makefile.mk: grep for reminders in ase/lint
Makefile.mk: add 'lint' as toplevel phony rule
UI: b/tracklist.js: cleanup CSS
UI: b/textinput.js: cleanup CSS
UI: b/switchinput.js: cleanup CSS
UI: b/shell.vue: cleanup CSS
UI: b/positionview.js: cleanup CSS
UI: b/pianoroll.js: cleanup CSS
UI: b/noteboard.vue: cleanup CSS
UI: b/menutitle.js: cleanup CSS
UI: b/menurow.js: cleanup CSS
UI: b/menuitem.js: cleanup CSS
UI: b/knob.js: cleanup CSS
UI: b/icon.js: cleanup CSS
UI: b/folderview.vue: cleanup CSS
UI: b/filedialog.vue: cleanup CSS
UI: b/editable.js: cleanup CSS
UI: b/dialog.vue: cleanup CSS
UI: b/databubble.vue: cleanup CSS
UI: b/contextmenu.js: cleanup CSS
UI: b/clipview.js: cleanup CSS
UI: b/basics.js: inlcude v-flex mixin
UI: theme.scss: fix color syntax
UI: startup.js: fix import path
UI: Makefile.mk: use stylelint with -f unix only inside emacs
UI: Makefile.mk: add missing ui/spinner.scss dependency
UI: stylelintrc.cjs: ignore whitespace rules
UI: Makefile.mk: add Ase.server @type
UI: mixins.scss: add v-flex mixin
UI: mixins.scss: use $b-font-stack-kbd-mono
UI: dark.scss: define $b-font-stack-kbd-mono for hotkey rendering
UI: b/menubar.js: port to LitComponent
* Cleanup <b-positionview/> markup
* Cleanup CSS
UI: b/positionview.js: port to LitComponent
UI: b/basics.js: use h-flex()
UI: mixins.scss: add h-flex() mixin
MISC: Dockerfile.arch: install unzip
Merge branch 'poxystyle' # 2023-07-24 Tim Janik 7134954
* poxystyle:
DOC: poxy.sh: allow doc/poxystyle.css to fixup colors
DOC: poxystyle.css: fix light theme colors and sizes
UI: b/cliplist.js: minor edit
README.md: update roadmap with items from Stefan Westerfeld
Merge branch 'modern-normalize' # 2023-07-24 Tim Janik aa3a6b6
* modern-normalize:
UI: little.js: load globals.css into every LitComponent
UI: index.html: give globals.css precedence over vue-styles.css
UI: index.html: remvoe shadow.css
UI: Makefile.mk: remove ui/elements.scss ui/shadow.scss
Makefile.mk: run 'lint' during `make check`
UI: remove unused files elements.scss and shadow.scss
UI: globals.scss: merge styles from elements.scss and shadow.scss
UI: globals.scss: use normalize.css to normalize latest Chrome & Firefox
UI: normalize.css: leave font-family setting to our own theme
MISC: mkcopyright.py: fix MIT License pattern to deal with case and 'd'-ending
UI: normalize.css: insert MIT License and add Copyright notices
UI: normalize.css: add renamed modern-normalize.css version 2.0.0
Add modern-normalize.css from https://github.com/sindresorhus/modern-normalize
licensed MIT.
Merge branch 'dark-palette' # 2023-07-24 Tim Janik 61e1ecd
* dark-palette:
UI: dark.scss, globals.scss: use palette for body colors
UI: Makefile.mk: add palette.scss to scss files
UI: palette.scss: add warm grey palette based on ZCAM Jz (lightness) steps
Merge branch 'aboutdialog-lit' # 2023-07-27 Tim Janik 874535f
* aboutdialog-lit:
UI: index.html: add comments to start_view_transition()
UI: globals.scss: add b-dialog styling
UI: b/contextmenu.js: use transparent backdrop for menus
UI: globals.scss: add view-transition-group defaults, add scale0 keyframes
UI: dark.scss: add b-animation-duration and b-dialog-colors
UI: tsconfig.json: avoid checks of postcss.js.tst.js
UI: b/menubar.js: make use of Shell.show_about_dialog()
UI: b/app.js: leave aboutdialog handling to Shell.show_about_dialog()
UI: b/shell.vue: use b-aboutdialog.shown, add show_about_dialog(), handle close
* Use proper internal state for showing b-aboutdialog
* Expose showing/hiding through show_about_dialog()
* Allow animated closing of b-aboutdialog with start_view_transition
UI: b/aboutdialog.js: display Lit version number
UI: b/aboutdialog.js: port to LitComponent
UI: eslintrc.js: declare start_view_transition as global symbol
UI: index.html: define start_view_transition()
This is a Vue-aware wrapper around document.startViewTransition() (atm Chrome
specific), that still does the right thing on Firefox and has a disable flag.
UI: Makefile.mk: index.html: add lit_version to config_json
Merge branch 'postcss-normalize-charset' # 2023-07-27 Tim Janik 746575f
* postcss-normalize-charset:
UI: postcss.js: postprocess CSS with postcss-normalize-charset
MISC: package.json.in: install postcss-normalize-charset
UI: postcss.js: add support for -I to add include paths
Merge branch 'globalscss-4-litcomponents' # 2023-07-27 Tim Janik 709f4e9
* globalscss-4-litcomponents:
UI: Makefile.mk: run stylelint on ui/globals.css
UI: b/positionview.js: add CSS to globals.css, avoid shadowRoot
UI: b/playcontrols.js: add CSS to globals.css, avoid shadowRoot
UI: b/pianoroll.js: add CSS to globals.css, avoid shadowRoot
UI: b/partlist.js: add CSS to globals.css, avoid shadowRoot
UI: globals.scss: only style button and push-button for LightDOM
UI: b/objecteditor.js: add CSS to globals.css, avoid shadowRoot
UI: b/switchinput.js: add CSS to globals.css, avoid shadowRoot
UI: b/numberinput.js: add CSS to globals.css, avoid shadowRoot
UI: b/textinput.js: add CSS to globals.css, avoid shadowRoot
UI: b/more.js: add CSS to globals.css, avoid shadowRoot
UI: b/tracklist.js: add CSS to globals.css, avoid shadowRoot
UI: b/trackview.js: add CSS to globals.css, avoid shadowRoot
UI: b/menubar.js: fix b-menuseparator
UI: b/trackview.js: fix b-menuseparator
UI: b/menutitle.js: add CSS to globals.css
UI: b/menuseparator.js: make b-menuseparator a simple HTMLHRElement
UI: b/menurow.js: add CSS to globals.css, avoid shadowRoot
UI: b/menuitem.js: add CSS to globals.css
UI: b/menubar.js: add CSS to globals.css, avoid shadowRoot
UI: b/knob.js: add CSS to globals.css, avoid shadowRoot
UI: b/icon.js: add CSS to globals.css
UI: b/editable.js: add CSS to globals.css
UI: b/contextmenu.js: add CSS to globals.css
UI: b/clipview.js: add CSS to globals.css, avoid shadowRoot
UI: b/cliplist.js: add CSS to globals.css, avoid shadowRoot
UI: b/choiceinput.js: add CSS to globals.css, avoid shadowRoot
UI: b/buttonbar.js: add CSS to globals.css, avoid shadowRoot
UI: b/basics.js: add CSS to globals.css, cleanups
UI: b/aboutdialog.js: add CSS to globals.css, avoid shadowRoot
UI: globals.scss: merge contents of grid.scss
UI: Makefile.mk: fix globals.scss cleanup
UI: Makefile.mk: include *.jscss contents in globals.css
Merge branch 'csshash-2fix-fouc' # 2023-07-27 Tim Janik 0b1e7e7
* csshash-2fix-fouc:
UI: index.html: mark globals.css as data-4litcomponent
UI: little.js: clone stylesheet links marked data-4litcomponent into shadowRoot
UI: index.html: reload vue-styles.css and globals.css once the CSSHASH changes
UI: Makefile.mk: support @--CSSHASH--@ insertions fro index.html
ASE: websocket.cc: send "forever" Cache-Control with text/css to reduce FOUC
Merge branch 'globalscss-icon-fonts' # 2023-07-27 Tim Janik 7a7dd7e
* globalscss-icon-fonts:
UI: b/app.js: add comment for spinner testing
UI: index.html: adjust font resource paths
UI: globals.scss: import all icon SCSS defs
UI: dom.js: properly quote font names
ASE: websocket.cc: use CACHE_AUTO since we do not handle conditional requests
UI: b/menuseparator.js: fix customElements extends specification
UI: b/icon.js: leave icon font loading to globals.scss, assert font presence
UI: b/shell.vue: spinner.scss is already imported by globals.scss
UI: Makefile.mk: move fonts into ui/ and merge globals.scss dependencies
UI: globals.scss: rename normalize.scss for merging import
UI: postcss.js: keep .css imports, include all others
UI: b/icon.js: assert "Material Icons" font_family instead of loading material-icons.css
UI: globals.scss: directly include material-icons.css
UI: Makefile.mk: prepare ui/material-icons.css for globals.css
UI: dom.js: add font_family_loaded()
UI: dom.js: add file for DOM utilities
Merge branch 'global-css-rename' # 2023-07-27 Tim Janik c402d5e
* global-css-rename:
UI: index.html: load global.css
UI: Makefile.mk: generate global.css
UI: b/shell.vue: fix comment
UI: global.scss: rename (from globals.scss) b/c it now contains global CSS
Merge branch 'simple-vue-ports' # 2023-07-27 Tim Janik 1c13e75
* simple-vue-ports:
UI: Makefile.mk: adapt make install wildcards
UI: b/statusbar.js: port to LitComponent
UI: b/databubble.js: port to native HTML component
UI: b/partthumb.vue: retire partthumb which is superceded by clipview
UI: b/hscrollbar.vue: retire hscrollbar code until we really need one
UI: b/color-picker.vue: retire color picker code until we really need one
Merge branch 'swesterfeld-piano-roll-note-length', closes #15 # 2023-07-27 Tim Janik d115723
* swesterfeld-piano-roll-note-length:
UI: b/piano-ctrl.js: cleanup note_duration_delta at the end of a drag
UI: b/piano-ctrl.js: support resizing multiple notes in a selection
Merge branch 'docker_build_run_clean' # 2023-07-31 Tim Janik acafef2
* docker_build_run_clean:
GITHUB: workflows/testing.yml: remove duplicate chown invokation
GITHUB: workflows/testing.yml: use misc/docker_build, docker_run, docker_clean
MISC: docker_clean: cleanup permissions and CI image tag
MISC: docker_run: run in a CI image built by docker_build
MISC: docker_build: build a Dockerfile CI image with ghcr.io cache support
UI: Makefile.mk: make sure all JS files are built before running tscheck
Merge branch 'make-dist-and-assets' # 2023-07-31 Tim Janik 4694aa8
* make-dist-and-assets:
GITHUB: workflows/release.yml: add Ping-IRC job
GITHUB: workflows/release.yml: use misc/docker_run
GITHUB: workflows/release.yml: add action to build & create releases from tags
Makefile.mk: dist: assign release version to misc/version.sh:BAKED_DESCRIBE
MISC: version.sh: prepare BAKED_DESCRIBE variable to define baked in version
MISC: version.sh: support lightweight release tags via exact match
UI: Makefile.mk: fix unintentional tscheck remakes
DOC: Makefile.mk: add doc/ch-releasing.md to internal manual
ASE: Makefile.mk: rebuild ase/buildversion*.cc if GITCOMMITDEPS changes
Makefile.mk: rebuild package.json if GITCOMMITDEPS changes
MISC: config-utils.mk: take tags and packed-refs into account for GITCOMMITDEPS
DOC: ch-releasing.md: elaborate on releases and assets
DOC: ch-releasing.md: start describing versioning and the release process
MISC: mknews.sh: add development version disclaimer
MISC: Makefile.mk: remove partial release build rules
MISC: mkassets.sh: simplify to just make dist and trigger release asset builds
MISC: mkAppImage.sh: build AppImage in assets/
MISC: mkAppImage.sh: use tools from appimagetools/ dir
MISC: Makefile.mk: cache downloads of appimage tools
Makefile.mk: make dist: also generate assets/ChangeLog
MISC: mkdeb.sh: create debian package in assets/
DOC: Makefile.mk: support building assets/pdf
MISC: Makefile.mk: avoid depending on appimage-runtime-zstd for normal builds
UI: tsconfig.json: remove exclude section
Makefile.mk: grep-reminders: only inspect existing files
Makefile.mk: add recent commits to NEWS.md
Makefile.mk: build dist tarball in assets/ with high compression
ASE: main.cc: for --version, show short version and build id
MISC: config-checks.mk: use version_short
ELECTRON: Makefile.mk: use version_short
ASE: Makefile.mk: use version_short
Makefile.mk: extract version_hash, use version_short for brief version identifiers
* Remove version_m.m.m use version_short instead
* Remove version_buildid, that is actually version_short + version_hash
MISC: Makefile.mk: remove unused release-news
MISC: mknews.sh: generate most recent section of NEWS.md
MISC: mkdeb.sh: parse hash from misc/version.sh
MISC: version.sh: reduce logic to produce baked/git/fallback version/hash/date
Merge branch 'poxy-on-jammy' # 2023-08-02 Tim Janik 3be13e1
* poxy-on-jammy:
GITHUB: workflows/testing.yml: run poxy on ubuntu:22.04
MISC: docker_run: fix interactive invocations
MISC: Dockerfile.jammy: setup development tools for ubuntu:22.04 builds
Merge branch 'x11test-delay' # 2023-08-02 Tim Janik 8712b43
* x11test-delay:
X11TEST: ereplay.cjs: add delay to mitigate a UI-reload race on project changes
X11TEST: replay.sh: simplify AnklangSynthEngine executable check
Merge branch 'toggle-as-lit' # 2023-08-03 Tim Janik 0eba7de
* toggle-as-lit:
UI: b/pro-input.vue: handle @valuechange on b-toggle
UI: b/toggle.js: port to LitComponent
Merge branch 'jsdoc-elements' # 2023-08-03 Tim Janik 9d0c8de
* jsdoc-elements:
DOC: poxystyle.css: fix dark theme colors
DOC: jsdoc2md.js: use pandoc anchors everywhere with data-4search hints
DOC: poxy.sh: forbid raw-html and support data-4search on <span/>
UI: b/*.js: reformat documentation to use @class and @description commands
See also: https://jsdoc.app/tags-description.html
DOC: poxy.sh: parallelize JsDoc processing
DOC: poxy.sh: fix exit code and compact markdown
DOC: poxy.sh: add ui/ch-*.md files to poxy docs
DOC: jsdoc2md.js: allow descriptions of virtual classes as docu sections
DOC: copyright.ini: assign MPL-2 to ch-*.md documentation files
DOC: Makefile.mk: integrate ui/ch-component.md
Makefile.mk: add html/ to CLEANDIRS
Makefile.mk: clean poxy/ and assets/
DOC: ch-development.md: explicitely describe ASE
UI: ch-component.md: describe lit components
UI: ch-component.md: rename from ui/b/ch-vue.md
README.md: add Star History Chart
Merge branch 'swesterfeld-piano-roll-move', closes #16 # 2023-08-03 Tim Janik ec26905
* swesterfeld-piano-roll-move:
UI: b/piano-ctrl.js: support moving/copying notes with the mouse
UI: b/cliplist.js: restore user manual docs
Merge branch 'anklang-internals+jsdocs' # 2023-08-19 Tim Janik b554e80
* anklang-internals+jsdocs:
UI: b/basics.js: small docu update
DOC: Makefile.mk: integrate JS component docs into internal manual
DOC: jsdoc2md.js: skip extra subsection indentation
UI: Makefile.mk: optimize *.jscss build, fix anklang-internals.html dependency
UI: b/*.js: use three hashes '###' to indent docu subsections
Merge branch 'fix-raw-tex' # 2023-08-19 Tim Janik 64882dc
* fix-raw-tex:
UI: xbcomments.js: properly quote special characters in docs
DOC: Makefile.mk: do not parse source comments as raw_tex
Merge branch 'b-propinput-litcomponent' # 2023-08-23 Tim Janik a7ab348
* b-propinput-litcomponent:
UI: b/propinput.js: port to LitComponent
UI: b/choiceinput.js: support label attribute as choice tip
UI: little.js: add LitComponent.request_update_()
UI: util.js: add addnotify_() and delnotify_() to extended properties
UI: b/pro-group.vue: use <b-propinput/>
UI: b/knob.js: simplify
MISC: package.json.in: extend nodemon delay to reduce conflicts with lint rules
Sometimes when ui/lint is triggered, files are written and make serve also runs
rebuild rules due to nodemon.
Merge branch 'propgroup-litcomponent' # 2023-08-30 Tim Janik 3957579
* propgroup-litcomponent:
UI: b/pianoroll.js: add todo comment
UI: b/knob.js: use fixed adjustment factors for wheel events
UI: util.js: wheel_delta: normalize delta to pixels for modern browsers
Work around Firefox changing deltaY vs deltaMode depending on the order
of access! Throw away old compat code.
UI: b/knob.js: fix invalid field access
UI: b/propgroup.js: avoid shadowRoot
UI: util.js: refuse pointer lock grabbing on orphans and shadowRoot descendants
UI: b/propgroup.js: port to LitComponent
UI: b/deviceeditor.vue: use b-propgroup
UI: b/propinput.js: support readonly + disabled state
UI: b/propinput.js: add support for <b-knob/> as property field
UI: b/propinput.js: let labeled default to false
UI: b/toggle.js: store pressed button number
UI: util.js: add uuname()
Merge branch 'fix-unstyled-content-flashing' # 2023-09-01 Tim Janik 39ac286
* fix-unstyled-content-flashing:
UI: b/contextmenu.js: fix layout interference inside flexbox during popup
UI: index.html: load global.css via style+@import, mark as data-4litcomponent
UI: little.js: add adopt_component_styles() for simple style+@import cloning
This allows to work around FOUC issues with Chrome, see comments.
Merge branch 'rebuild-focal' # 2023-09-06 Tim Janik 2a4c7de
* rebuild-focal:
MISC: Dockerfile.focal: remove NOTEX argument
MISC: mknews.sh: print news in chronological order