Build: dd36b8f4 (latest commit: Plugin scan: NI VST3s (FM8, Massive, Kontakt) no longer end up blocklisted).
Fresh off the major Slice Beat, Drummer Model, and Live Set milestone, this new TOMiC 0.6 update delivers an essential architectural breakthrough: full native VST3 plugin hosting in Standalone mode, an overhauled and unified Plugins interface, a hardened out-of-process plugin scanner that solves third-party teardown crashes, CLAP note names with an expanded 16-channel MIDI mapping, refined hi-hat filter acoustics, and natural musical-order tempo sync pickers.
Here is everything included in this latest update:
🔌 1. Native VST3 Hosting via Zero-Allocation VST3-to-CLAP Shim
TOMiC Standalone can now host third-party VST3 instruments and effects right alongside CLAP and native Omniplugins:
- Full VST3-to-CLAP Shim Architecture (
src/clap_host/vst3_host): VST3 plugins are wrapped inside a compliantclap_pluginvtable. Because of this architectural bridge, the entire battle-tested TOMiC CLAP hosting infrastructure — channel insert effects, Master bus effects, OSC and NOISE voice instrument slots, the 20 host parameter knobs with modulation pinning, LFO / ModEnv targets, MRU mapping,.tomicsession persistence, and offline audio export — serves VST3 plugins transparently without duplicate code paths. - Zero Audio-Thread Allocations: Host COM objects, load/teardown order, and GUI editor window message loops are ported from Omni DAW's rock-solid engine (
vst3_plugin.rssupporting Windows HWND and Linux X11 +IRunLoop). Per-block parameter queues have been re-engineered using a fixed preallocated pool, ensuringprocess()never executes dynamic heap allocations on the real-time audio thread. - Verified Industry Compatibility: Verified against complex synthesizers and processors including Surge XT, Odin2, Vital, TomicDrumSynth, and Surge XT Effects.
- New Build Target: Enabled in Standalone builds via the new
vst3-hostCargo feature (which impliesclap-host), integrated directly intobuild-windows.ps1.
🎛️ 2. Unified Plugins UI: One FX Strip & One "+ Instrument" Picker
To complement multi-format plugin hosting, the channel interface has been redesigned for speed and clarity:
- Unified "Plugins" FX Tab: The previously separate CLAP ("FX") and OMNI tabs have been merged into a single, cohesive Plugins tab. Both external and native plugin chains now sit in one continuous strip in true signal order with a single clean
+button. - Single "+ Instrument" Button: In the voice sound generator headers (OSC and NOISE), separate format selectors have been replaced by a single
+ Instrumentbutton. - Shared Multi-Format Picker: Clicking
+or+ Instrumentopens an interactive picker modal neatly organized by format (VST3, CLAP, and Omni). It features instantaneous search filtering, a "Browse..." button for locating loose binaries, and a one-click "Rescan" trigger.
🛡️ 3. Resilient Out-of-Process Scanner & NI VST3 Crash Cure
Plugin discovery is faster, safer, and immune to third-party memory corruption:
- The Native Instruments Teardown Fix: Well-known VST3 plugins from Native Instruments (such as FM8, Massive, and Kontakt) describe their audio buses and parameters correctly during scanning, but historically crashed or hung during background DLL teardown (
DLL_PROCESS_DETACHand C++ static destructors). In earlier versions, this caused the probe to time out and falsely blocklist the plugin. - Immediate Exit via
TerminateProcess/_exit: Isolated scanner child processes (--clap-scanand--vst3-scan) now exit immediately after flushing their valid JSON result file, bypassing third-party static destructors entirely. - Fault-Tolerant Probe Collector: A unified
run_probe()function reads complete result files even if the child process hangs or faults during exit, terminating the worker safely. - Automatic Blocklist Recovery:
ScanDbnow tracksprobe_version. Obsolete blocklists written by older scanners are automatically discarded on startup, allowing previously blocked plugins (like Massive, FM8, and Kontakt) to be rescanned and restored automatically. - Instant Metadata Scan: VST3 bundles equipped with
moduleinfo.jsonare parsed directly from disk in milliseconds without executing plugin binaries.
🥁 4. Tamed Hi-Hat Engine & Resonance Limiting
The internal drum synthesis engine and algorithmic patch randomizers receive important acoustic refinements:
- Capped Resonance (
FilRes): Lowered base filter resonance across hi-hat generators (808 Band-Pass, Plaits High-Pass, and 909 noise Q). Strict resonance ceilings per filter model ensure analog filter modes cannot accidentally enter runaway self-oscillation at piercing 5–10 kHz frequencies. - Automated Regression Testing: Backed by a dedicated
hihats_do_not_ringheadless rendering test and a newringcolumn in patch quality stats, guaranteeing tight, punchy transients with clean decays and zero harsh resonant tails.
🎹 5. CLAP Note Names & Extended 16-Channel MIDI Layout
Integrating TOMiC with your favorite DAW is now much more informative and flexible:
- CLAP Note Names Extension: Built via a new
nih_plugwrapper hook andnote_namesmodule. When loaded inside a CLAP-compatible host DAW (such as Omni DAW, Bitwig Studio, or Reaper), piano roll keys dynamically display the exact channel names, drum archetypes, and slice labels instead of generic MIDI note numbers. - Full 16-Channel MIDI Mapping: MIDI note assignments have been expanded to accommodate all 16 drum channels simultaneously (assuming C3 = 60):
- C1 – D#2 (36–51) — Trigger: Manual one-shot audition for all channels 1–16 (ideal for pad controllers and finger drumming).
- E2 – G3 (52–67) — Gate: Sequencer gate for channels 1–16 (Note 52 = Channel 1). When Gate Mode is active, holding a key allows that specific channel's sequencer steps to run.
- C4 – B4 (72–83) — Pattern: Direct pattern triggers for Variations A through L (Gate Mode ON). Holding a note plays the pattern from Step 0 with last-note priority.
⏱️ 6. Musical-Order Sync-Division Pickers
Selecting tempo divisions across LFOs and effects is now intuitive and musically arranged:
- Natural Duration Sorting: A new unified
LfoSyncDiv::MENUarranges all 21 tempo-synced divisions by actual musical length. Dotted values (e.g.1/4.,1/8.) now sit directly adjacent to their straight and triplet equivalents rather than being banished to the end of the menu after8/1. - Standardized Across Panels: Replaced 12 disparate copy-pasted picker lists across FX, LFO, and modulator panels (which previously missed
8/1and8/1.in 5 panels). Preset serialization and enum indices remain 100% untouched and backward-compatible.
Summary of Commits in Build dd36b8f4
dd36b8f4— Plugin scan: NI VST3s (FM8, Massive, Kontakt) no longer end up blocklisted814aa272— VST3 hosting via a VST3->CLAP shim; one Plugins FX tab and one "+ Instrument" picker5dd5e522— Tame ringing generated hi-hats; CLAP note names + MIDI note layout; plans611ad8ec— Sync-division pickers: one shared musical-order menu (dotted values next to straight/triplet)

