Skip to main content

Changelog

[0.2.4] - 2026-03-23

  • Licensing: Hardened the current licensing implementation after file corruption recovery, restoring missing Postgres error formatting and audit-event logging helpers in src/licensing.rs.
  • Licensing: Expanded the commercial-vs-open-source boundary language across project docs to clarify that the shipped TLBX-1 product is closed-source and license-bound while substantial DSP engines/devices are intended for separate open reuse.
  • Docs: Added deeper developer/db-admin licensing documentation, including concrete Neon/Postgres operational queries and admin workflows.
  • Docs: Added docs-site sync coverage for repo docs, including a dedicated mirrored licensing page and broader docs/ directory syncing during docs-site prebuild.
  • Docs Site: Shifted the Docusaurus site toward a product-site structure with Home, About, product-facing landing content, and docs retained as a subordinate documentation surface.
  • Docs Site: Restricted the public Docusaurus build to product-facing and user-facing material only, removing developer/internal repo documentation from the public navigation/sync path.
  • Docs Site: Removed public repo/developer-facing navigation cues and kept the public site focused on product, user manual, and release-note content.
  • Docs Site: Fixed mirrored-doc broken links and MDX sync/build issues (user-manual.md, crate-split-plan.md) so repo-doc rendering is stable.
  • Docs Site: Aligned version display with the software version instead of date-based fallback output.
  • Tooling: Enhanced version:sync so it can auto-increment patch versions or accept an explicit version argument, and added docs-site/package.json, docs-site/api/package.json, and docs-site/config/version.yml to the sync targets.
  • CI/Release: Reduced GitHub Actions scope to docs-site deployment only and documented that app packaging/releases remain local/manual for now while other CI approaches are still being evaluated.
  • CI/Release: Updated GitHub Pages deployment flow so docs-site publishing is triggered from release branch pushes after the maintainer version bump step.
  • CI/Release: Brought the public docs-site live on GitHub Pages with the custom domain https://tlbx.mmistudios.io, including corrected pnpm workflow setup and custom-domain/baseUrl deployment settings.
  • Docs: Added a dedicated maintainer-oriented Release and Maintenance section to internal onboarding docs covering branch promotion (development -> master -> release), version bump flow, and release hygiene expectations.

[0.2.3] - 2026-03-22

  • Licensing: Added in-app standalone license activation modal with email/license-key activation and local license.json import.
  • Licensing: Added src/bin/tlbx1-licensing-api.rs with REST/JSON endpoints for /v1/license/activate, /v1/license/refresh, and /v1/license/deactivate.
  • Licensing: Moved app-side activation to an online-first model using TLBX_LICENSE_API_URL; local license.json now acts as a signed device-bound cache token with refresh support.
  • Licensing: Added PostgreSQL/Neon licensing schema and API contract docs for customers, licenses, activations, and license events.
  • Licensing: Added proprietary licensing/compliance groundwork with deny.toml, cargo-deny policy, and npm run tlbx:license-audit.
  • Runtime: Fixed standalone startup so plugin-only license enforcement no longer blocks the standalone activation flow.
  • Build/Packaging: Split standalone and plugin workflows into dedicated scripts (tlbx:dev-standalone, tlbx:dev-plugin, tlbx:build-standalone, tlbx:build-plugin) and added staged release packaging (tlbx:stage-release, tlbx:package).
  • Build/Packaging: Added default-run = "tlbx-1" so normal cargo run-based app workflows continue working after adding the licensing API binary.
  • Windows Tooling: Updated Visual Studio toolchain assumptions to support VS 18 Professional paths in setup/build docs and wrappers.
  • Docs: Reconciled roadmap docs against current code, including licensing, Animate, and SynDRM status, and updated docs/HANDOFF.md / docs/SESSION_LATEST.md for ongoing handoff hygiene.
  • Docs Site: Cleaned template leftovers from the copied Docusaurus setup, fixed broken doc routing/theme defaults, and added a dedicated tlbx docs color theme aligned with the app UI.

[0.2.2] - 2026-03-09

  • Core: Migrated FFmpeg bindings from ffmpeg-next 6.x to 8.x (root crate + crates/tlbx1-io) to align with current Windows FFmpeg ABI (libavformat 62.x).
  • Core: Removed root Cargo.toml patch overrides for vendored ffmpeg-next / ffmpeg-sys-next to eliminate mixed links = "ffmpeg" conflicts.
  • Build (Windows): Hardened scripts/windows/cargo-asio.ps1 to require pinned vcpkg root, enforce ABI preflight, set deterministic pkg-config/bindgen env, and prepend FFmpeg runtime DLL paths before launch.
  • Tooling (Windows): Added scripts/windows/set-dev-env.ps1 for one-shot env setup with optional -Persist.
  • Tooling (Windows): Added scripts/windows/doctor-ffmpeg.ps1 and npm run tlbx:doctor-asio for fail-fast toolchain validation.
  • Tooling: Updated scripts/check-build-matrix.js to run the Windows ASIO doctor preflight by default on Windows.
  • Docs: Added scripts/windows/README.md quickstart with the standard 4-command setup/build flow.
  • Docs: Updated onboarding + env + workstation docs to codify the new Windows ASIO/FFmpeg baseline and recovery workflow.
  • Docs: Updated docs/HANDOFF.md and docs/SESSION_LATEST.md with current known-good state, resume block, and required handoff-maintenance policy.
  • Packaging/Artifacts: Staged current portable build output to dist/windows/standalone/.

[0.2.1] - 2026-03-09

  • Core: Switched nih_plug dependency from local vendor path to pinned git revision.
  • Core: Removed nih_plug/asio-driver from asio-driver feature list (feature not available in pinned nih_plug).
  • Docs: Updated developer onboarding (repo + Docusaurus) with Windows ASIO + FFmpeg + LLVM/libclang + vcpkg requirements, env var examples, and path discovery guidance.
  • Docs: Clarified Windows prerequisites (MSVC v143, Windows SDK, optional CMake) and ASIO SDK requirement only for ASIO builds.
  • Docs: Marked crate-split validation and metrics re-baseline as completed across onboarding/handoff/plan docs.
  • Docs: Added Windows (ASIO) setup block and npm run tlbx:dev-asio guidance to README.

[0.2.0] - 2026-03-07

  • Core: Created tlbx1-shared crate and moved common constants/types currently duplicated or global into it.
  • Core: Created tlbx1-midi-sync crate and moved transport manager/shared state and MIDI sync helpers into it.
  • Core: Created tlbx1-io crate and moved project serialization, sample/file dialogs backend handling, media decode/encode wrappers, and file writing into it.
  • Core: Created tlbx1-audio-core crate and moved reusable DSP primitives (envelopes, filter wrappers, interpolation/resampling helpers, etc) into it.
  • Core: Created tlbx1-engines crate and moved engine state + per-sample/per-block processing for each engine into it.
  • Core: Created tlbx1-devices crate and moved device state + per-sample/per-block processing for each device into it.
  • Core: Added tlbx1-ui-bridge crate and moved UI projection/index/mapping/settings helper logic out of the root crate.
  • Core: Completed crate-separation closeout and manual validation (MIDI transport parity + audible regression pass).
  • Core: Integrated ASIO driver capabilities into the tlbx1-audio-core crate.
  • Recording: Live jam WAV writer now opens with the actual app sample rate (e.g. 48k when app runs at 48k).
  • Tooling: Added profile-aware build metrics/timings scripts (default, opengl, asio-opengl, embedded placeholder).
  • Tooling: Added Windows metrics peak-memory capture path.
  • Developer UX: Added cross-workstation handoff tooling/docs (npm run tlbx:handoff, continuity docs, bootstrap prompt).

[0.1.29] - 2026-02-16

  • Core: Began breaking application out into separate crates.
  • Recording: Decoupled top-level transport Record from Tape-Deck track recording.
  • Recording: Added transport Record modal with mode selection.
  • Recording: Added Live Audio Jam Session mode to capture post-master stereo output to WAV after save dialog selection.
  • Recording: Kept Tape-Deck Record isolated to engine UI for per-track buffer capture.
  • Recording: Added Motion Recording as a placeholder mode in the transport Record modal.
  • Updated documentation.

[0.1.28] - 2026-02-15

  • Win Installer: Patched installer.nsi with uninstaller generation, and Add/Remove Programs registry entries (HKLM).
  • Win Installer: Updated uninstall section to match path and clean ARP entry.
  • MonoMI: Reformatted the dense MonoMI step knob rows into multiline blocks for readability and safer wiring review.
  • MIDI: Added transport start/stop sync with standalone MIDI input/output device routing.
  • MIDI: Improved external clock slave sync behavior with deterministic tick-driven transport alignment.
  • MIDI: Fixed start/restart step alignment issues in slave mode (step-1 start consistency).
  • MIDI: Added MIDI Clock Offset Compensation setting in Audio/MIDI Settings (-30ms..+30ms).
  • Updated documentation.

[0.1.27] - 2026-02-11

  • Added new MonoMI engine, a 3-oscillator subtractive mono-synth and wired it to all downstream devices.
  • Updated 3rd-party RDS UI Component Kit Slint library.
  • Added maintenance script to check if the UI library API is compatible with current code-base, "scripts/check-ui-component-api.js"

[0.1.26] - 2026-02-08

  • FMMI: Added ADSR amp envelope with per-step controls and Modul8 param targets.
  • FMMI: Added per-step gate/note-length controls and Modul8 param targets.
  • FMMI: Added control for adjusting the amount of randomness applied to params when a user initiates a randomization.
  • FMMI: Added control for adjusting the amount of randomness applied to note/step-trigger when a user initiates a randomization.
  • FMMI: Added a scale picker that drives the note randomization and keybed highlighting. Scales can be added to scales.json.
  • FMMI: Added a switchable mono/poly mode to switch between note/gate-cutting mono mode and a new mode with 8 voices with its own phases/envelopes per voice.
  • Updated documentation.

[0.1.25] - 2026-02-08

  • Increased the number of steps for G8 device to 64 and made it full-width in all the engine UIs.
  • Fixed issue with G8 and Modul8 devices not working in SynDRM engine.
  • Fixed issue with Modul8 targets not being selectable from the combobox.
  • Added additional targets for Tape-Deck and SynDRM engines in Modul8 device.
  • Updated the Resonance Designs Slint UI Component Kit to version 0.1.13.
  • Added bias/center control to LFOs of the Modul8 device.
  • Updated documentation.

[0.1.24] - 2026-02-07

  • Added new Modul8 device (8 LFO modulation section) with engine-scoped targets for the loaded engine plus downstream devices, and full-range modulation depth.
  • Removed hardcoded color literals and replaced with Theme constants across all engines and devices.
  • UI layout improvements across all engine's devices section.

[0.1.23] - 2026-02-05

  • Added new FMMI engine (two-operator FM synth) as a standalone engine option.
  • Project I/O: ensured .tlbx (JSON-based) project files are accepted in load workflows.
  • Docs: added dedicated FMMI docs and updated user/developer documentation to include FMMI and current engine/device architecture.

[0.1.22] - 2026-02-03

  • SynDRM: expanded to 14 drum channels (kick, snare, hat, clap, perc 1/2, crash, and sample channels 1–7).
  • SynDRM: added per-step retrig (toggle + 1/2, 1/4 rate) across all lanes with DSP support.
  • SynDRM: added per-lane probability knobs and randomization amount control.
  • SynDRM: added Cut Group / Cut By controls for channel choking.
  • SynDRM: added Utility Functions mode (Randomize/Clear/Copy-Paste) with copy/paste rules for steps/params.
  • SynDRM: edit-step outline highlight and 1-based page/step navigation.
  • SynDRM: tightened hat decay minimum for shorter hits.
  • UI: improved button label clipping/elide to keep long sample filenames inside buttons.

[0.1.21] - 2026-02-01

  • SynDRM: tweaked step editor layout so Page/Step/Lane sit on one row, and Clear actions are always visible.
  • UI components: added sizing/offset props for RDSNumStepper/RDSTextStepper and customizable RDSSequencerCell dimensions/text.
  • SynDRM: lane label alignment and readout font adjustments for clearer navigation.

[0.1.20] - 2026-02-01

  • Added Reflect (Vast/Space) device with UI + DSP (delay + reverb chain, time divisions, clear/freeze).
  • Laid out Texture + Reflect side-by-side across all engines to prevent overlap.
  • Suppressed warnings in vendored ffmpeg-next and ffmpeg-sys-next crates (with inline comments).

[0.1.19] - 2026-02-01

  • Added Texture (Color/Deform) device with UI + DSP (drive/compress/crush/tilt/noise + gate, wet/dry) and wired it into all engines.
  • Fixed Texture crush scaling so 0 is clean and 1 is fully crushed.

[0.1.18] - 2026-01-29

  • Void Seed: added Moog filter + drive with pre/post toggle, Close Decay, and stereo width control.
  • Void Seed now feeds the downstream device chain (Granulator, Silk, G8).

[0.1.17] - 2026-01-29

  • Added G8 trance gate device (64-step per-track gate) with UI and DSP, placed after Ring in the downstream chain.
  • Added Granulator rate sync behavior: first half of the control locks to BPM divisions (1, 1/2, 1/4, 1/8, 1/16); second half is free-rate.
  • Documentation updates for G8 and Granulator rate sync.

[0.1.16] - 2026-01-27

  • Significant UI updates to the main app header/bar.
  • Removed Storybook and folded it's content into docusaurus site.
  • Improved some UI components.
  • Attempting to implement a shift-modifier for click action on track buttons to mute the track.
  • Significant UI updates to the Tape-Deck engine, Granulator device, and Silk device.
  • Updated to latest version of the RD Slint UI Component Kit.
  • Rearranged the SynDRM interface
  • Did some rewiring for pre/post filter processing on SynDRM tracks
  • Improved knob, label, and selector components
  • Added code comments
  • Added options for pre/post filter switching per drum track on the SynDRM engine
  • Added pitch envelope to SynDRM kick drum
  • More SynDRM UI improvements
  • Can now switch drum channel filters between pre/post of overdrive
  • Changed range of LFO's in Animate engine
  • Experimental: Tape engine can load video files and display playback in place of the waveform (audio still drives playback).

[0.1.15] - 2026-01-23

  • Cleaned build warnings by removing unused fields/helpers and tightening follow_host_tempo field usage across TLBX1/SlintEditor/SlintWindow, plus simplified loops.
  • Removed unused project serialization structs/helpers. Fixed browser panel padding by wrapping in a layout.
  • Adjusted the spectrum display to be less “wide” and show more movement.
  • Per-engine mute toggles for Animate, SynDRM, Void Seed, and Tape UI.
  • Transport decoupling to allow synth voice tails after transport stops.
  • Void Seed output boost (+3 dB).
  • Non-tape engine mixing fix (un-nesting track mix block).
  • Added a public commit() function on RDSNumericKeypad and wired the modal “Okay” button to call it, so it uses the same committed path as the keypad.
  • Removed "Quit" button and relocated "Browser" button.
  • Reintroduced Void Seed smoothing in the DSP path and synced the reset/init path so the smooth atoms track the raw values again.

[0.1.14] - 2026-01-23

  • Renamed SimpKick to SynDRM and add snare synth lane + DSP params (drive, filters, attack)
  • Migrated SynDRM DSP to FunDSP with per‑track chains and new filter types
  • Overhauled SynDRM sequencer UI (pages/lanes/step editor, randomize/clear tooling)
  • Extracted Mosaic (Granulator) and Ring (Silk) devices into dedicated components
  • Added reusable UI components: XY pad, numeric keypad modal, keybed
  • Integrated keybed in Animate UI and wired via global bus to avoid TLBX1 callback crashes
  • Updated all relevant documentation.

[0.1.13] - 2026-01-23

  • Added Void Seed engine: a 12-oscillator generative drone swarm with chaotic LFO modulation, integrated feedback/diffusion delay, and "Chaos/Entropy" XY pad.
  • Updated user manual and developer onboarding documentation

[0.1.12] - 2026-01-22

  • Fixed bug where granulator and silk devices were affecting audio processing for all tracks instead of just the track it's loaded on.
  • Attempts to fix no keyboard input issue.
  • Updated win support crate to 0.61.2 and added Win32_UI_Input_KeyboardAndMouse dependency.
  • Moved engine components to their own folder.

[0.1.11] - 2026-01-21

  • Added SimpKick engine UI with a 16-step sequencer
  • Added SimpKick attack control for click smoothing
  • Added project/library browser panel for quick loading
  • Updated docs to reflect current engine lineup and UI component usage

[0.1.10] - 2026-01-21

  • A little polish to the Tape-Deck UI.

[0.1.9] - 2026-01-21

  • Added Animate engine UI component (animate_engine.slint)
  • Introduced a custom RDSComboBox with a popup list
  • Theme updates for shared fonts and UI tokens
  • Documentation updates for UI components and kit usage

[0.1.8] - 2026-01-20

  • Renamed the project to TLBX-1 across UI, packaging, and docs
  • Updated plugin identifiers for TLBX-1 (VST3/CLAP)
  • Logging now respects RUST_LOG via env_logger init
  • Added branding to UI

[0.1.7] - 2026-01-20

  • Consolidated visualizer and meter components into viz.slint
  • Split visualizers into dedicated oscilloscope/spectrum/vectorscope components
  • Renamed Waveform visualizer component to RDSWaveformViz

[0.1.6] - 2026-01-20

  • Extracted Tape engine UI into tape_engine.slint for cleaner component structure
  • Added lo-fi knob rendering path for performance and new indicator styles (circle/line/carrot)
  • Settings panel now opens as a modal with Escape-to-close support in standalone

[0.1.5] - 2026-01-19

  • Reorganized UI layout with a consolidated 4x3 control grid for tape engine parameters
  • Moved global transport controls (Play/Stop) to the application header
  • Introduced momentary "Audition" button for per-track targeted playback
  • Refactored Slint UI structure for better responsiveness and codebase stability

[0.1.4] - 2026-01-15

  • Added ring modulator effect with adjustable parameters including cutoff, resonance, decay, pitch, tone, tilt, slope, wet/dry mix, detuning, waveform selection, and noise integration
  • Metronome with count-in support for playback and recording modes
  • Global tempo control with host tempo synchronization capability
  • Tempo settings persistence across project saves and loads

[0.1.3] - 2026-01-14

  • Added Mosaic parameter smoothing and full DSP mapping
  • Added local docs deployment, app Docs link, and installer docs bundling

[0.1.2] - 2026-01-14

  • Added Mosaic granular buffer with per-track bypass
  • Added Mosaic parameter controls and grouped Tape/Mosaic sections
  • Added full-window UI scrolling for tall layouts
  • Added docs tooling (Docusaurus + Storybook MDX) and onboarding guide
  • Added cross-platform packaging scripts (NSIS/pkgbuild/Linux staging)
  • Added npm scripts for app/dev/build workflows

[0.1.1] - 2026-01-13

  • Added per-track engine loader with confirmation prompt
  • Default UI now starts minimal and reveals controls after engine load

[0.1.0] - 2026-01-13

  • Switched UI to Slint with baseview + softbuffer renderer
  • Added global transport and per-track playback
  • Added per-track level/mute and loop controls (start/length/x-fade)
  • Added project save/load (JSON)
  • Added standalone audio settings panel
  • Fixed waveform rendering and mono->stereo playback routing
  • Added per-track level smoothing to reduce crackle on fast changes
  • UI now uses full window space with scrolling support