Summary
This is a major feature release. It adds a complete acid step sequencer ported
from Aciduino V2, two new DSP contributions (a Pirkle diode ladder filter and
an SH-101-style LFO), a brand-new midilabv2 GUI theme, plus standalone builds
and a Docker cross-compile builder for Linux.
Features
1. Aciduino V2 Acid Step Sequencer (major)
Full JUCE port of the Aciduino V2 engine
(engine_303.cpp + harmonizer.cpp) into src/sequencer/AcidSequencer303.h,
ticked sample-accurately from processBlock().
- PPQN-agnostic timing derived from the host/internal resolution; authentic
303 note length (50% gate), slide overhang, and tie-extension ratios - Three sync modes: Internal, Host (AudioPlayHead), MIDI Clock
- Transport-aware start via host play / MIDI Start or note-triggered
- Rec mode: record notes live from the plugin keyboard or MIDI input via the
on-screenSeqKeyboard(octave control via mouse wheel, notes only in rec —
accent/slide/tie are not overwritten) - Generative controls: harmony, sequence shift, sequence length
- Randomize and clear-track; slide/tie bridge correctly from the last step back
to the first - UI command channel (play/stop/generate/clear) consumed on the audio thread to
avoid race conditions; CPU usage tuned for the audio thread - New shared GUI components:
MenuPage.h,SeqKeyboard.h, step selector,
switch/step-button components
Contributors
- midilab — port and UI/UX implementation (original Aciduino engine by
Romulo Silva, MIT License)
2. Diode Ladder Filter (major)
New dfl_DiodeLadderFilter (DSP from the Pirkle diode ladder) integrated into
the Open303 voice with selectable filter type plus a "Filter Model" editor
parameter.
- Filter types: TB-303 TeeBee, Diode Ladder (4-pole, 24 dB/oct),
Diode Octave (1st pole one octave above, ~18 dB/oct) - SATURATION drive into the diode saturator (~4.5 dB default) and passband
(bass) compensation to offset high-resonance thinning - Wired into the new menu page and mods schema
Contributors
- David Löwenfels — Pirkle diode ladder filter implementations
- midilab — integration into the GUI (MenuPage), mods schema, and parameter
plumbing
3. LFO Modulation
SH-101-inspired LFO with sine/triangle/sawtooth/square/sample-&-hold/noise
waveforms and square pulse-width control.
- Refactored to a single modulation destination at a time with a global depth
(fewer interface knobs), plus volume as a destination for vibrato-style
effects - Pitch modulation restored, square pulse width now driven by the symmetry
parameter
Contributors
- David Löwenfels — LFO implementation and pulse-width modulation
- midilab — destination/depth refactor, parameter-map fixes, volume-pitch
destinations wording
4. midilabv2 Theme (major)
New full-fidelity GUI theme replacing the old panel, reusing the whole feature
set (sequencer UI, menu page, mods). Includes new resources: photorealistic
screws, knobs, LCD fonts, sequencer step selector artwork, and a redesigned
drop-down menu.
Contributors
- midilab
5. Standalone Build & Docker Cross-Compile
- Added Standalone to the JUCE plugin formats with a new app icon
- Docker builder supporting native and cross-compiled x86_64 / arm64
Linux releases (--build-arg RELEASE_ARCH=X86_64|ARM64), documented in the
README
Contributors
- midilab
What's Changed
- feat: LFO modulation (and PWM) - inspired by SH-101 by @dfl in #34
- Feature/aciduino step sequencer by @midilab in #54
- feat: add Pirkle diode ladder filter with filter type selection by @dfl in #33
- feat: new theme by @midilab
New Contributors
Full Changelog: v0.12.3...v0.13.0
