Prototype

This commit is contained in:
Armin 2026-08-05 23:12:17 +02:00
commit 4271fc34bb
14 changed files with 950 additions and 169 deletions

View file

@ -1,4 +1,4 @@
# MonoStep
# Monostep
A monophonic 2-oscillator step-sequencer synthesizer implemented as a VST3 plugin with JUCE.
@ -10,7 +10,7 @@ A monophonic 2-oscillator step-sequencer synthesizer implemented as a VST3 plugi
- 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
live orange play-position highlight
- Footer status bar showing the git commit and build date
- Pattern stored in the plugin state (save/restore with the DAW)
@ -37,13 +37,13 @@ cmake -S . -B build
cmake -S . -B build -DJUCE_DIR=/path/to/juce
# 3. Build the plugin:
cmake --build build --target MonoStep_VST3
cmake --build build --target Monostep_VST3
```
The VST3 plugin is written to:
```
build/MonoStep_artefacts/Release/VST3/MonoStep.vst3
build/Monostep_artefacts/Release/VST3/Monostep.vst3
```
### Quick start with make
@ -58,11 +58,11 @@ make clean # remove the build directory
### Installing (manual copy)
The VST3 plugin ships as a macOS bundle (`MonoStep.vst3`). Copy the whole
The VST3 plugin ships as a macOS bundle (`Monostep.vst3`). Copy the whole
bundle into your DAW's VST3 directory:
```sh
cp -R build/MonoStep_artefacts/Release/VST3/MonoStep.vst3 \
cp -R build/Monostep_artefacts/Release/VST3/Monostep.vst3 \
~/Library/Audio/Plug-Ins/VST3/
```
@ -71,19 +71,19 @@ Notes for macOS:
- The per-user VST3 directory is `~/Library/Audio/Plug-Ins/VST3/`; create it
with `mkdir -p` if it does not exist. A system-wide copy would go to
`/Library/Audio/Plug-Ins/VST3/` but requires `sudo`.
- When updating, remove the old bundle first (`rm -rf` on the `MonoStep.vst3`
- When updating, remove the old bundle first (`rm -rf` on the `Monostep.vst3`
inside the target directory) so stale files do not remain.
- Your DAW may cache the plugin list — quit and relaunch it (or rescan plugins)
after installing before looking for MonoStep.
after installing before looking for Monostep.
## Running the tests
Build the headless host test and run it against the built plugin:
```sh
cmake --build build --target MonoStepTestHost
build/MonoStepTestHost_artefacts/Release/MonoStepTestHost \
build/MonoStep_artefacts/Release/VST3/MonoStep.vst3
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