Releases
v0.2.0
Anklang 0.2.0
Hardware and System Requirements
Linux - the Anklang deb and AppImage are based on Ubuntu 20.04.
Packaged sound engine binaries support SSE-only or AVX+FMA optimizations.
Documentation
Integrated documentation from JS components into the user manual and API reference.
Various improvements to the documentation and architecture descriptions, as well as manual refinements were made.
Added continuous API reference documentation generation to the CI: https://tim-janik.github.io/docs/anklang/index.html
Integrated JavaScript docs into Poxy docs and search (API reference).
Added dedicated documentation sections for the ClipList, PartList and PianoRoll.
Integrate PDF manual builds using TeX, automated via CI.
Added integration for JsDoc and TypeScript annotations.
Audio Synthesis
Added support for clap_event_transport_t, fixes #5 . [stw]
Implemented non-linear mapping for the BlepSynth ADSR times. [stw]
Fix BlepSynth cutoff frequency modulation for its filter, pass frequencies in Hz. [stw]
Implemented the CLAP draft extension for file references.
Incorporated Freeverb by Jezar at Dreampoint with damping mode fixes.
Added a Jack PCM driver based on Stefan Westerfelds code and howto.
ASE
Automatically stop audio playback with the new -t time
command line argument.
Added --class-tree
to print out the class inheritance tree.
Added -o audiofile
support for capturing output into WAV, OPUS and FLAC files.
Added --blake3 FILE
to test Blake3 hashing.
Added SortedVector to unify several vector sorting code paths.
Fix potential undefined behavior in the Pcg32Rng code, when left shifting a 32bit value by 32 bits. [stw]
Added various code cleanups and fixed imports.
Adjusted main loop PollFD handling to avoid engine hangs after UI exit.
Added Loft, a lock- and obstruction-free concurrent memory allocator.
Added a very fast multiply-with-carry PRNG, with a period of 2^255.
Fixed atexit memory leaks, proper handling of nullptrs and compiler sanitizers.
Implemented single Project/Engine relation and new API for activating and deactivating projects.
Properly implemented garbage collection of remote JSONIPC handles.
Improved performance by prefaulting heap and stack pages and malloc tuning.
Enabled link time optimization for production builds.
Implemented low-latency scheduling for the synthesis engine via sched_* or RtKit.
Implemented remote reference counting for the JSONIPC API.
Introduced automatic backup creation when saving project files.
Improved serialization for projects, allowing dedicated resource file inclusion.
Integrated building of releases with SSE + FMA support into ASE.
Updated the code to compile cleanly with g++-12, libstdc++-13 and clang++-15.
User Interface
Added support for context help via F1 key in Lit components (handling shadowRoots)
Fix flashing of unstyled content in Chrome and layout artefacts during context menu popups.
Adapted mouse wheel normalization and sensitivity to modern browsers.
Improved tooltips and change notification handling on properties.
Added support for moving and copying (with CTRL key) piano roll notes using the mouse. #16 [stw]
Support resizing multiple selected notes at once by dragging with the mouse in piano roll view. #15 [stw]
Unified all (non-Vue) CSS styles into a single build and simplified its structure.
Updated all icon sets and UI fonts.
Implemented caching for static assets like stylesheets and invalidation handling via content hashes.
Added a new warm grey palette based on ZCAM Jz (lightness) steps, which allows subtler color gradients to enhance overall appearance.
Added the latest modern-normalize.css style resets to improve consistency across browsers.
Added TypeScript annotations and type checking to improve UI JavaScript code quality.
Added support for state toggling using LEFT/RIGHT/UP/DOWN keys to Switch inputs.
Switched the main font to the variable font variant of InterDisplay.
Implemented simple and fast SCSS extraction of JavaScript css`` literals.
Moves SCSS snippet processing to postcss at build time.
Implemented a reliable reactive wrapper that keeps Lit components and C++ components in sync.
Added tracklist scrolling and improved tracklist styling.
Added sound level meter rendering from telemetry data in the Track View component.
Introduced caching of (remote) properties across several different web components.
Improved piano roll layout by moving to HTML grid.
Rewrote and extended all piano roll note editing tools.
Reimplemented the Knob component to use PNG sprites instead of SVG layers.
Added support for Zoom In/Out/Reset functionality in the menubar.
Improved support for click-drag menu item selection in various menus, including track view, piano roll and device panel.
Fixed Vue 3.2.28 breaking $forceUpdate() calls before mounting.
Several web components were ported from Vue to Lit to simplify code and better efficiency.
Eliminated shadowRoot uses for most components, saving resources.
Packaging
Added fix so all AppImage executable properly operate $ORIGIN relative.
Fixed missing dependencies in AppImage builds so all needed libraries are included.
Improved version handling and added missing Git info to distribution tarballs.
Streamlined asset builds and other technical aspects of the release process.
Ensure release assets are always built in the same reproducible environment.
Started regular Nightly releases via the CI toolchain on every significant trunk merge commit.
Testing
Introduced end-to-end testing using X11 with headless runs.
Added replay functionality via Puppeteer of DevTools event recordings.
Added clang-tidy to the CI rules to improve code quality
Added regular Arch Linux test builds.
You can’t perform that action at this time.