mirror of
https://codeberg.org/armin/sm-26.git
synced 2026-10-11 17:01:53 +02:00
Add README, thread-safe engine, standalone format
This commit is contained in:
parent
8734ac25f1
commit
001a5a5324
4 changed files with 78 additions and 2 deletions
58
README.md
Normal file
58
README.md
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# SM-26
|
||||
|
||||
A simple subtractive synthesizer plugin built with JUCE / C++.
|
||||
|
||||
* **VST3** + **Audio Unit** (macOS arm64), **VST3** (Linux)
|
||||
* 4 rotary knobs on the front panel whose meaning follows the selected preset
|
||||
* 52 factory presets (Bass / Lead / Pad / Keys / Pluck / FX / Stab / Arp)
|
||||
* tempo-synced delay (follows the host transport / BPM)
|
||||
* 4x80 HD44780-style pixel display with a cascaded on-screen menu
|
||||
* left/right/up/down navigation diamond + ENTER / ESC controls the menu
|
||||
* status footer with the git revision and local build time
|
||||
|
||||
## Build
|
||||
|
||||
Requires a C++17 compiler, CMake >= 3.22 and (on Linux) X11/ALSA dev headers.
|
||||
|
||||
```sh
|
||||
make # clones JUCE (once) into deps/ and builds
|
||||
make install # installs + ad-hoc signs + un-quarantines
|
||||
make uninstall # removes the installed plugins
|
||||
make distclean # wipes build/
|
||||
```
|
||||
|
||||
* macOS installs to `~/Library/Audio/Plug-Ins/` (AU + VST3).
|
||||
* Linux installs to `~/.vst3/`.
|
||||
|
||||
If a freshly installed AU is not visible to `auval` / your DAW:
|
||||
|
||||
```sh
|
||||
sudo killall -HUP coreaudiod
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
* Ship MIDI into the plugin; the 4 front-panel knobs drive whichever
|
||||
parameters the current preset maps them to (e.g. cutoff/resonance/
|
||||
envelope/delay, but many other routings exist).
|
||||
* **Nav diamond + ENTER/ESC** drive the on-screen menu:
|
||||
* root menu -> PRESETS / OSCILLATORS / FILTER / ENVELOPE / DELAY / SYSTEM
|
||||
* up/down = move, left/right = adjust value, ENTER = open/confirm, ESC = back
|
||||
* The LCD shows the current preset, the four knob mappings with live values,
|
||||
host BPM and voice count. The delay can be set to a rhythmic subdivision
|
||||
(SYNC) and locks to the host tempo.
|
||||
|
||||
## Layout
|
||||
|
||||
```
|
||||
Build: Makefile -> CMake -> JUCE (deps/juce)
|
||||
Source/
|
||||
PluginProcessor.* audio processor + DSP shell
|
||||
SynthEngine.* osc/filter/ADSR/delay voice engine
|
||||
Presets.* 52 preset definitions + knob routings
|
||||
SynthParams.* parameter model + formatting
|
||||
PluginEditor.* panel, knobs, nav diamond, footer
|
||||
LcdDisplay.* 4x80 HD44780-style display renderer
|
||||
MenuSystem.* cascaded menu state machine
|
||||
tools/gen_buildinfo.sh generates git-version + build-time header
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue