From 5974c633576b2658f5bf3821c167e43c3cb6a0a8 Mon Sep 17 00:00:00 2001 From: armin Date: Wed, 5 Aug 2026 19:56:39 +0200 Subject: [PATCH] Add README with build and test instructions --- README.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..d269c28 --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +# 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](https://github.com/juce-framework/JUCE) + +## Building + +The build expects JUCE in `../juce` relative to this repository. If JUCE lives +somewhere else, point `JUCE_DIR` at it during configuration. + +```sh +# 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: + +```sh +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: + +```sh +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`.