mirror of
https://codeberg.org/armin/monostep.git
synced 2026-09-01 04:10:46 +02:00
1.9 KiB
1.9 KiB
MonoStep
A monophonic 2-oscillator step-sequencer synthesizer implemented as a VST3 plugin with JUCE.
Features
- 16-step monophonic sequencer (pattern length 1-16)
- 2 oscillators with sine / triangle / saw / square waves, detune, and mix
- Subtractive filter (cutoff, resonance) with ADSR and glide
- Per-step gates, pitches (+/- 6 semitones), fine tuning (cents), and slide (legato)
- Matrix editor with click-to-toggle steps, drag-to-pitch, and a slide row
- Rotary-knob GUI with zoom (100% - 200%), a step panel with fine-tune, and a live red play-position marker
- Footer status bar showing the git commit and build date
- Pattern stored in the plugin state (save/restore with the DAW)
Requirements
- macOS 12.0 or later (arm64)
- CMake 3.22 or newer
- A C++17 compiler (Xcode command-line tools)
- JUCE
Building
The build expects JUCE in ../juce relative to this repository. If JUCE lives
somewhere else, point JUCE_DIR at it during configuration.
# 1. Get JUCE next to this repository:
git clone --depth 1 https://github.com/juce-framework/JUCE.git ../juce
# 2. Configure:
cmake -S . -B build
# or, for a custom JUCE location:
cmake -S . -B build -DJUCE_DIR=/path/to/juce
# 3. Build the plugin:
cmake --build build --target MonoStep_VST3
The VST3 plugin is written to:
build/MonoStep_artefacts/Release/VST3/MonoStep.vst3
Installing
Copy the bundle into your DAW's VST3 directory:
cp -R build/MonoStep_artefacts/Release/VST3/MonoStep.vst3 \
~/Library/Audio/Plug-Ins/VST3/
Running the tests
Build the headless host test and run it against the built plugin:
cmake --build build --target MonoStepTestHost
build/MonoStepTestHost_artefacts/Release/MonoStepTestHost \
build/MonoStep_artefacts/Release/VST3/MonoStep.vst3
The host scans the VST3, renders a buffer, and verifies that the pattern
survives a state save/load round-trip. Expect ALL TESTS PASSED.