Skip to content

Step Sequencer

Latest

Choose a tag to compare

@midilab midilab released this 20 Sep 22:49
· 2 commits to main since this release
2f1b059

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.

jc303

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-screen SeqKeyboard (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

  • @dfl made their first contribution in #34

Full Changelog: v0.12.3...v0.13.0