Bug Fixes
Windows: fixed Cakewalk Sonar hanging on exit after the Retromulator window had been opened. The GPU images used by the rack and the CA-72 panel are now freed when the window closes, not when the host unloads the plugin
Bug Fixes
Matrix-1000: fixed every note playing one octave higher than the hardware. The oscillator timers now run at 2 MHz as on the real unit, so the lowest notes stop dropping in pitch at a low B (as on the hardware) instead of one octave above it. The boot calibration and filter range follow the new clock, so the sound of each patch is unchanged apart from the pitch
Improvements
88emu: notes play one audio block sooner (about 11 ms at 512 samples) on every Sound Canvas model
SC-55mkII: a controller value still waiting for the MIDI input, such as pitch bend, mod wheel or aftertouch, is replaced by the newest one, so notes no longer wait behind a burst of controller messages
Bug Fixes
SC-55mkII: fixed notes playing a half step flat until a GS Reset. The settings memory is now initialised the first time the board starts
SC-88VL, SC-88Pro: fixed GM System On and Master Volume being ignored
SC-88, SC-88Pro: fixed SysEx parameter changes to the 08 and 0C address blocks being dropped, including the SC-88Pro's SC-88 mode switch
SC-88 family, SC-8850: fixed amplitude ramps after a hold and the output clipping level of the sound chip
SC-8850: fixed the voice control timer running at 125 Hz instead of 100 Hz
SC-55mkII, SC-88 family: fixed the CPU's A/D converter stopping when the firmware switched input groups during a scan
Improvements
CA-72: new POLY switch plays four voices, each rendered on its own CPU core
CA-72: new UNISON switch stacks three mono voices at left, right and centre, the outer two detuned by 10 cents
CA-72: POLY and UNISON have their own MIDI CCs (60 and 61) and host parameters. Presets leave them as they are unless they set them
CA-72: All Sound Off (CC 120) fades the output out over 5 ms and resets the voices. Reset All Controllers (CC 121) resets pitch bend and mod wheel
CA-72: two new factory presets, Brass Choir and Cycle of Fifths, and updated Horn Bloom, Smoke Flute, Swarm Riser and Warp Field
Bug Fixes
Fixed long menu items overlapping the submenu arrow
Improvements
CA-72: new Hide CA-72 Panel item in the bank menu, which leaves only the rack. Each instance saves its own setting with the project
Bug Fixes
Fixed the CA-72 panel lettering looking bold and blurry at 100% display scale on Windows and Linux
New Hardware Cores
CA-72: Minimoog Model D modelled from its circuit by Idle Foundry. Every board of a 1972 Model D was transcribed into SPICE netlists and the real-time model was calibrated against a real instrument
CA-72: the front panel opens below the Retromulator rack, with the strip of extra controls for note priority, retrigger, DOUBLE, SPREAD, ENTROPY, QUALITY, DRIVE and LEVEL
CA-72: LO, HI and ULTRA quality in real time, and offline bounces always render with the 4x engine
CA-72: Factory and User banks of .fxp presets with Save Preset, .fxb bank import and export, and MIDI Program Change
CA-72: every panel control has a MIDI CC and a host parameter, and panel edits are saved with the project
Bug Fixes
Fixed OpenB3 Rotary Speed not following the mod wheel and sustain pedal in the host and the plugin window
New Hardware Cores
OpenB3: Hammond B3 organ with Leslie speaker, based on the setBfree engine by Michele Perrone. Upper, lower and pedal drawbars, percussion, vibrato and chorus, overdrive, reverb and three Leslie cabinets (122/147, 145, 16 Vibratone)
OpenB3: Factory and User banks. Presets are .fxp files, imported or saved from the bank menu, and MIDI Program Change selects them
OpenB3: keyboard split from the bank menu, with pedals below C2, lower manual from C2 to B3 and upper manual from C4
OpenB3: all parameters are saved with the project, including edits made after loading a preset
Improvements
DX7: the mod wheel, breath control, foot control and aftertouch now default to range 99 with pitch, amplitude and EG bias on, so the modulation set in each patch takes effect
DX7: the bank menu has a setup entry for each controller, to set its range and turn pitch, amplitude and EG bias on or off. The settings are saved with the project
Matrix-1000: the oscillators now restart on the edges of the emulated 8254 timers, as on the hardware, so the phase between DCO 1 and DCO 2 follows the firmware
Matrix-1000: DCO sync follows the circuit in the schematic. Soft, Medium and Hard sync now work as on the hardware and sound different from earlier versions
Matrix-1000: control voltages use the hardware's DAC ranges and sample and hold network, which rounds the steps in envelopes, filter sweeps and pulse width modulation
Matrix-1000: pulse width 31 is an exact square wave
Matrix-1000: the VCA curves follow the CEM3396 datasheet, filter FM comes from the DCO 1 wave without the pulse, and the filter adds a second harmonic at high resonance
Matrix-1000: the output stage is linear and no longer compresses chords
Matrix-1000: the core calibrates again the first time it loads after this update
Bug Fixes
Fixed Matrix-1000 DCO 2 taking twice as long as the hardware to settle on a new pitch after a note change
Improvements
Wurlitzer 200A: the OpenWurli model is updated to version 0.9.0, with a field-solved pickup model, reed swing and air damping from per-note hammer tables, a new preamp solver, a tremolo with the real LED response, and the power amp and volume control networks from the schematic
Wurlitzer 200A: parameter changes are smoothed, and the random pitch jitter is removed
Wurlitzer 200A: the Pickup switch is now called MLP Corrections and is off by default
Matrix-1000: CC 3 also picks the bank file, for hosts such as Logic that do not pass Bank Select on to plugins
Bug Fixes
Fixed noise in Matrix-1000 oscillator sync sounds: DCO 1 missed the sync when both oscillators restarted within the same sample
Fixed aliasing on Matrix-1000 pulse waves with pulse width modulation
Fixed the Matrix-1000 going silent after parameter edits from host parameters or MIDI CC
Fixed the Matrix-1000 filter closing at high VCF Frequency settings
Fixed Matrix-1000 Bank Select going back to the first bank file when the host sent CC 32 after CC 0
Improvements
New MIDI CC Table at the end of every core's bank menu, listing each mapped controller in columns with a Copy button
Matrix-1000: MIDI Bank Select (CC 0 or CC 32) picks the bank file and Program Change picks the patch, the same as choosing them in the menus
Tracker core: new Loop In and Loop Out points, set from the playing order with the F0 and G0 keys or with the host parameters and CC 20 and CC 21
Tracker core: new Wait for Pattern End option, on by default, so position keys jump when the playing pattern ends instead of cutting it off
Bug Fixes
Fixed the Matrix-1000 AU going silent in Logic when the host sent SysEx meant for other devices
New Hardware Cores
Oberheim Matrix-1000: the original firmware runs on an emulated Motorola 6809 board that drives six CEM3396 voice models, oversampled 2x with band-limited oscillators. Banks 2 to 9 load from the patch EPROM, and every one of the 96 patch parameters has a MIDI CC
Improvements
Matrix-1000 LFO 1 and LFO 2 can sync to the host tempo or incoming MIDI clock, set from the bank menu and stored in the session
The iOS firmware picker accepts several files at once, for cores that need two ROM dumps
Bug Fixes
Fixed the iOS app hanging when switching from a DSP core such as the Virus to None
Improvements
Host parameters now show the values of the loaded patch on the JE-8086, Virus, MicroQ, XT, N2X and DX7 cores
New host parameters: Virus sub oscillator, ring modulator, unison, keyfollow and LFO symmetry; MicroQ glide rate, Osc 2 FM and more envelope stages; XT glide time, FM amount, Osc 2 octave and modifier amounts; N2X filter envelope attack; Tracker volume
Parameters that had no effect on a core are now hidden
88emu: system SysEx in MIDI files, such as mode and part input settings, now reaches the SC-88 firmware
Bug Fixes
Fixed JE-8086 filter cutoff and other sound parameters not responding to host automation
Fixed 88emu cutoff, resonance, envelope and vibrato automation on the SC-55mkII, SC-88, 88VL and 88Pro, and the delay level, feedback and send to reverb parameters changing the wrong setting
Fixed the Sustain and Portamento parameters never switching on
Fixed host automation going out on the wrong MIDI channel after editing an 88emu part other than part 1
Fixed DX7 Expression having no effect at full volume, and Wurli Expression replacing the volume setting
Fixed the Wurli Pickup switch not turning on
Fixed Akai S1000 volume, pan, modulation and expression not applying to notes played after the change
Fixed the Ayumi envelope shape parameters reaching only part of their range
Fixed the iOS standalone app losing the loaded synth and patch when iOS closed it in the background
Fixed truncated MIDI files being read past the end of a track in the 88emu player
Improvements
The iOS standalone app can now play through AirPlay speakers and receivers
Tracker core: new Shuffle and Stop at Playlist End options for playlists. Songs that end in long silence now move on after five seconds in a playlist or a render
88emu MIDI player: new playlist with folder import, M3U import and export, Shuffle, Stop at Playlist End and MIDI notes for previous and next song. A playlist can be rendered offline to WAV or MP3 (WAV or AAC on iOS)
Popup menus opened from the bank selector now use the same row height as the bank menu
Improvements
Faster Sinc512 offline render in the Tracker core, with a SIMD interpolation kernel and the channels mixed in parallel
Bug Fixes
Fixed the render progress bar moving backwards in the Tracker core
Fixed MOD files playing in mono in the Tracker core
New Hardware Cores
Tracker — XM, MOD, S3M and IT module player. XM and MOD play through the Fasttracker 2 replayer, S3M and IT through the Schism Tracker player, with Nuked OPL3 for Adlib instruments. The program combo lists the song positions, the nav pill becomes play and stop, and the 16-column meter shows the mixed audio of each channel
Improvements
Tracker transport from MIDI notes: C0 restarts the song, D0 stops it, C#0 and D#0 step to the previous and next playlist entry, and note 24 + n starts at position n. The position list shows the note for each position
Tracker keyboard control: space toggles play and stop, left and right move the song position, up and down step through the playlist
Tracker tempo can follow the host playhead or incoming MIDI clock
Tracker playlists from several files, a dropped folder (scanned recursively) or an .m3u / .m3u8 file, with Import Playlist and Export Playlist. The playlist and its current entry are stored in the session, and songs advance with the editor closed
Offline render of a module to WAV or MP3, and Render Playlist, which writes every entry into a folder in playlist order
File associations in the standalone app: modules, playlists and folders open in the Tracker core, MIDI files in the Sound Canvas core. Several modules become a playlist, and drops on the macOS dock icon work
Bug Fixes
Fixed offline renders appending to an existing file instead of replacing it
New Hardware Cores
Roland SC-88, SC-88VL, SC-88Pro, SC-8850 and SC-55mkII — the Sound Canvas GS modules behind a generation of MIDI files, emulated with the H8/500 and SH-2 CPU cores and the GP, LSP and XP custom chips, with x86 and ARM64 JIT backends. Drum kit and tone names are read from the board ROM, and the selected board is stored in the session so a reload boots the module the project was written with
Improvements
Host automation for every core — a fixed pool of 128 parameters with permanent IDs, rebound per core on each synth swap. The count and the IDs never change, which is what AU, VST3 and AAX require for saved automation to survive a reload. Parameter tables are linked into the binary, so every format on every platform finds them with no install-time file copying; a table in <dataFolder>/Params still overrides a core without a rebuild
MIDI song player for the Sound Canvas cores — standard MIDI files play through the board from the bank combo, with the song name and a 16-channel activity meter on the LCDs, and the transport exposed as a host parameter
Offline render to WAV or MP3 320 for Sound Canvas songs, faster than real time
Command line rendering in the standalone build: --render with --board, --rom, --out and --format, plus --list-boards and --list-tones for the tone and drum kit tables
GS tone and drum kit names shown for variation banks instead of raw bank numbers
macOS deployment target set to 12.0
Bug Fixes
Fixed periodic cracks on cores whose sample rate differs from the host — when the resampler consumed only part of its input, the leftover audio was replayed and the fresh audio discarded.
New Hardware Cores
General Instrument AY-3-8910 / Yamaha YM2149 PSG — the sound of the ZX Spectrum 128, Amstrad CPC, Atari ST and MSX, emulated with Ayumi by Peter Sovietov, with a voice engine ported from Ym2149Synth by trash80: 3-voice polyphony, switchable YM2149 / AY-3-8910 engine, CC 1–11 control mapping, .ay patch files browsed from a folder, MIDI Program Change and < > preset navigation
Improvements
AY/YM banks split into Factory and User — Factory stays fixed so its MIDI Program Change numbers never shift, and imports always land in User
Export zips the User bank; Delete removes a single User preset while Factory presets are protected
AY/YM state persistence: engine selection, CC 1–11 values and preset name restored on project reload, with live CC edits taking priority over the stored preset values
DX7 controllers now respond — the firmware never initialises its controller table, which on hardware survives in battery RAM; mod wheel, aftertouch, breath (CC 2) and foot (CC 4) are given usable defaults after boot
Bug Fixes
Fixed DX7 tuning and note range — two equal-and-opposite errors in the key offset and EGS pitch constant cancelled each other out while silently dropping the top two notes; the playable range is now C2–C7 and A4 measures 440.17 Hz
Fixed DX7 mod wheel transposing the pitch by a semitone at full travel instead of adding vibrato
Fixed OPL3 patch not being reloaded from its .sbi file when a project was reopened
Empty banks now show an "Empty" placeholder instead of a blank combo box
Improvements
SID GoatTracker .sid (PSID/RSID) bank loading — extracts instruments and macro tables from PSID files packed by GoatTracker 2's exporter; algorithm adapted from 2bt/sid2sng with automatic detection of per-export feature flags (nopulse, nofilter, noinstrvib, fixedparams)
Bug Fixes
Fixed SID program combo showing only the index (e.g. "001") with no instrument name after bank load — the patch-name update path was clearing the authoritative name from the bank file
Bug Fixes
Fixed DX7 tuning — corrected -75 cents in the EGS pitch register so A4 sits at 440 Hz
Fixed DX7 tuning loss after bulk dump on Logic AU reload — master tune is now re-applied after the firmware reloads its parameter set
New Hardware Cores
Commodore 64 SID 6581 / 8580 — cycle-accurate emulation via reSID by Dag Lem with 3-voice polyphony, oldest-voice stealing, RESAMPLE high-quality sampling, and a full 50 Hz macro playback engine driving wavetable, pulsetable, filtertable, and speedtable per voice
Improvements
SID GoatTracker bank loading: .sng files (formats GTS3/4/5) appear in the Bank dropdown with every instrument exposed in the Patch dropdown; standalone .ins files (GTI3/4/5) loaded as single-patch banks
SID live MIDI control: CC 1 vibrato depth (6 Hz LFO scaled by mod wheel), CC 22 pitch bend range (1–48 semitones), CC 64 sustain pedal, CC 71 filter resonance (auto-routes all 3 voices through the filter), CC 74 filter cutoff (full 11-bit, auto-arms low-pass mode), CC 75 12-bit pulse width on all 3 voices
SID CC override semantics: touching cutoff, resonance, or pulse width suspends the corresponding patch macro for the rest of the note so DAW automation isn't overwritten by the 50 Hz frame ticker; cleared on next note-on (per voice for PW, globally on all-notes-off / program change for filter)
SID state persistence: bank file path and selected instrument restored on project reload
Bug Fixes
Fixed DX7 master tuning offset — firmware boots with cleared battery RAM causing the EGS pitch register to compute ~1.25 semitones (107 freq-units) sharp; compensated in updateFrequency to keep A4 at 440 Hz
Fixed resampler stale rate on synth swap — Plugin::setDevice now re-resolves the device samplerate so the resampler reconfigures correctly when switching to a synth with a different native rate (e.g. DX7's fixed 49096 Hz)
Fixed OpenWurli tremolo depth/swing curve being non-monotonic at high settings — depth=1.0 produced less modulation than depth=0.75 because the 50 kΩ vibrato pot was double-counted into both the LED drive path and the feedback shunt path
Fixed OpenWurli noteOff not clamping to the valid MIDI range like noteOn did — out-of-range notes could become unreleasable
Improvements
OpenWurli 0.4: post-speaker gain raised from +10.5 dB to +19.5 dB to hit industry-standard output levels (-10 to -14 dBFS for single ff notes at vol=0.50) without touching any circuit model
OpenWurli 0.4: bass onset ramp 30 ms upper clamp removed — heavy bass reeds now show audible velocity dependence in attack timing (C2 ff: 38 ms, C2 pp: 77 ms)
OpenWurli 0.4: MLP per-note level compensation added so ds_correction adjusts timbre without shifting overall level
OpenWurli sustained voice handling reworked — re-striking a sustained note releases the old voice first (one reed per pitch), and stealing priority is now Free > Releasing > Sustained > Held
Bug Fixes
Fixed OpenWurli tremolo depth/swing curve being non-monotonic at high settings — depth=1.0 produced less modulation than depth=0.75 because the 50 kΩ vibrato pot was double-counted into both the LED drive path and the feedback shunt path
Fixed OpenWurli noteOff not clamping to the valid MIDI range like noteOn did — out-of-range notes could become unreleasable
Bug Fixes
Fixed OpenWurli stuck notes when re-triggering the same key while sustain pedal is held — deferred note-off counter was a boolean flag, losing track of multiple releases
Fixed OpenWurli MIDI panic (CC 123) not clearing sustain pedal state — sustained notes could remain stuck after All Notes Off
Improvements
DX7: added pitch bend support — uses patch PB range when set, defaults to +/- 2 semitones when patch has range 0
DX7: added mod wheel support — uses patch mod sensitivity when set, defaults to vibrato when sensitivity is 0
DX7: aftertouch, breath controller, and foot controller now delivered to firmware via sub-CPU protocol
Improvements
OpenWurli 0.3: melange-generated 12-node DK preamp circuit solver replaces analytical DkPreamp — closer match to Wurlitzer 200A preamp nonlinearity
OpenWurli 0.3: Twin-T circuit tremolo oscillator replaces sine LFO — fixed ~5.6 Hz rate matching real hardware (tremolo rate parameter removed)
OpenWurli 0.3: recalibrated post-speaker gain from +13 dB to +10.5 dB to match Brad Avenson's 2–7 mV measurement
OpenWurli 0.3: speaker tanh saturation bypassed at character=0 to prevent nonlinear coloration on polyphonic ff chords
OpenWurli 0.3: removed unused filter classes (OnePoleHpf, OnePoleLpf, TptLpf, DcBlocker)
Replaced libresample with Speex resampler (quality 5) — SNR improved from 75 dB to 107 dB at the same CPU cost
Added Disk Operations backup/restore on None machine core
Bug Fixes
Fixed OPL3 preset navigation switching bank instead of stepping through patches
Fixed Standalone preset not sounding on project reopen — deferred sysex resend was never triggered because the Standalone host provides no BPM transport
Fixed AU setCurrentProgramStateInformation overwriting DX7 voice bank RAM on state restore
Improvements
Updated firmware-missing dialogs to reference official ROM filenames: Virus TI asks for firmware.bin, MicroQ for mq_2_23.mid, XT explains that two 128 KB IC dump .bin files are required
Firmware-missing dialog now triggers automatically on state restoration when ROM is not found
Replaced M_PI with juce::MathConstants in SFZero sinc resampler for cross-platform compatibility
Improvements
Enabled filter coefficient interpolation in libresample for cleaner sample rate conversion on non-integer ratios (e.g. DX7 49096→44100 Hz)
Bug Fixes
Fixed crash/freeze on plugin unload when GUI was opened — editor timers are now stopped before destruction
Fixed MIDI clock drift causing arpeggiator to go out of sync
Improvements
Added Virus preset converter for C→B/A downgrade
Shift+< > navigation to jump between bank folders
Synth core listing sorted alphabetically
Waldorf XT bank SingleDump redirected to edit buffer for immediate playback
GUI window size now persisted in settings.xml across all instances
Bug Fixes
Fixed OpenWurli upper register metallic plink and ringing harmonics
Fixed high CPU usage caused by libresample filter parameter regression
Fixed crash on macOS Mojave by disabling PMR
Fixed auto-slice count not resetting when loading a new sample
New Hardware Cores
Wurlitzer 200A — physical model piano via OpenWurli, ported from ~3,000 lines of Rust to C++ and integrated directly into the JUCE plugin framework. OpenWurli models the tine, pickup, and tone bars of the classic electric piano with per-voice physics — a wonderful open-source instrument we are deeply grateful to bring inside Retromulator
Yamaha OPL3 — FM synthesis via Nuked OPL3 v1.8 cycle-accurate emulation by Nuke.YKT, with SBI instrument loading, folder-based bank browsing, and zip import support
Improvements
OpenWurli settings panel with live parameter editing via combo and navigation pill
Akai S1000 browse folder mode with auto-slice drum mapping and state persistence
Akai S1000 ISO/BIN/CUE disk image loading
CC20 global tuning support with auto-slice and tuning state recall
Import/Export/Delete and drag & drop support for all cores
Engine author credits in synth selector
Bug Fixes
Fixed DX7 AU: preset changes after project reload now sound correctly — Logic Pro floods CC100/CC101 (RPN) into the DX7 serial RX buffer every block; the buffer is now flushed on bulk voice dump receipt and CC100/CC101 are blocked at input, ensuring Program Change bytes are not delayed or lost
Fixed DX7 AU: switching synth type to None and back to DX7 no longer produces silence
Fixed DX7 pitch being 2 semitones too low
Fixed DX7 preset navigator resetting to position 1 after project reload when the bank file path was not yet restored
New Hardware Cores
Akai S1000 sampler — SF2, SFZ, ZBP, and ZBB sample bank playback via the SFZero v3.0.0 MIT-licensed engine with 8-point sinc interpolation, extended SFZ/SF2 opcode support, discoDSP Bliss sampler format (.zbp/.zbb), MIDI CC support (mod wheel vibrato, volume, expression, pan), sustain pedal, and pitch bend
Yamaha DX7 — full hardware-level emulation via VDX7 of the Hitachi HD6303R sub-CPU, Yamaha YM21280 EGS, and YM21290 OPS chip set with 16 KB firmware ROM and 32 KB factory voice data
Improvements
JP-8000 .pfm performance bank loading support
SysEx preset and bank export with embedded patch names
Virus ABC/TI sysex cross-detection on patch import — loads ABC patches into TI and vice versa
Nord Lead 2X sysex patch name support expanded from 10 to 20 bytes with backward compatibility
Per-synth remembered file chooser directory persisted across sessions
Hardened runtime with JIT entitlement for macOS code signing
DSP thread stack increased to 64 MB for stability
AAX plugin format support
Bug Fixes
Fixed sysex hang when using external patch editors
Fixed Linux build: ptypes semaphore shadowing, POSIX compatibility, and GNU extensions
Fixed Windows data folder path corruption on sysex file load
Fixed Standalone last used MIDI device not being remembered across sessions
Resolved all compiler warnings across the codebase
Retromulator 1.0 is the initial release of DiscoDSP's hardware synthesizer emulation plugin. The virtual analog synths run on a cycle-accurate Motorola DSP 56300. Supported synths include the Access Virus ABC/TI, Waldorf MicroQ, Waldorf XT, Nord Lead 2X, and Roland JP-8000 — available on macOS, Windows, and Linux as AAX, AU, VST3, and Standalone. Built on Gearmulator, an open-source synthesizer emulation project by the dsp56300 team.
Hardware Cores
Access Virus ABC and TI emulation with sysex patch loading and ROM preset extraction to bank combo
Nord Lead 2X (N2X) emulation with per-program sysex navigation, edit buffer patch support, and output level correction by summing DSP A and DSP B voices at full scale
Roland JP-8000 (JE-8086) emulation with ROM preset extraction, patch browsing, multi-performance bank loading, and AU MIDI latency fix running at 44100 Hz
Waldorf MicroQ and XT emulation via dsp56300 cycle-accurate DSP engine with folder-per-bank ROM loading
SRC (sample rate conversion) with high-quality Rolloff 0.97 / Beta 9 settings
Firmware & ROM Management
Browse dialog accepts .bin, .mid, and .zip files; ZIP archives are extracted flat to the ROM folder with automatic multi-synth detection — all recognised firmware files are saved in one pass
Required ROM files per synth (filename is not checked — any file of the correct size and content is accepted):
Virus ABC/C — virus_c.bin (512 KB)
Virus TI — virus_ti.bin (6–9 MB)
Nord Lead 2X — nord_lead_2x.bin (512 KB)
Roland JP-8000 — jp8000.bin (512 KB); can be assembled automatically from 8 original firmware MIDI dump files
Waldorf MicroQ — micro_q.bin (512 KB); can be assembled automatically from the original firmware MIDI dump
Waldorf XT — xt.bin (256 KB); can be assembled automatically from two 128 KB IC dump files
Assembled ROM binaries are written to the ROM folder and source MIDI/IC dumps deleted, so subsequent launches load instantly from a single .bin
Firmware-missing browse flow on synth type change with synth-specific instructions
Per-synth patch name extraction and bank/program combo selectors
Plugin & Standalone
AAX, AU, VST3, and Standalone plugin formats with DAW state persistence
Resizable editor window with aspect ratio enforcement and in-editor corner resizer for AU host resize support
Window size persists across DAW sessions
DAW notified of state changes on preset and synth updates