A monster monophonic synth, written in faust.

- 4 oscillators in double crossfade configuration, so iow Vector Synthesis.
- each osc is a CZ style osc, where you can choose between 9 waveforms
- each osc is phase-locked to a single master oscillator.
- but the phase can be changed and modulated, also by other oscillators.
- each osc can smoothly crossfade between octaves
- the phase signal feeding the CZ oscs can be passed trough a set of lowpass-filters.
This sounds similar yet very different from filtering the output of an oscillator. For example: when you filter the phase input of a sine-wave, it creates harmonics and you can kind of hear the character of the filter.
- there are a couple of lowpass-types (moog/oberheim/ms20) that can be dynamically mixed, but the sum of the mix is always 1
- the synth is fully stereo: each parameter has a main slider and a left-right difference slider
- each parameter (and it's l-r-diff brother) can be morphed between 8 settings, called macros, in a 3D cross-fade configuration.
- each macro can be modulated by 4 envelopes and 4 lfo's
- the number of envelopes, lfos can be easily changed at compile time
Here are two short audio demo's.
You can think of the macros as modulate-able presets, arranged in a cube. Each of the "modulation->1/2/3" settings cross-fades between two sides of the cube, in either the x,y or z dimension.
So: "modulation->1" cross-fades from preset 1,3,5 and 7 to 2,4,6,8. "modulation->2" cross-fades from preset 1,2,5,6 to 3,4,7,8. "modulation->3" cross-fades from preset 1,2,3,4 to 5,6,7,8.
By default, "modulation->1/2/3" are all 0, so you hear preset 1. When you turn up "modulation->1", the settings morph to preset 2.
Prebuilt binaries are attached to each release for Linux (x86_64 and aarch64), macOS (x86_64 and Apple Silicon), and Windows (x86_64). Pick the archive matching your platform, extract it, and copy the plugin into your host's plug-in folder. DigiDrie ships as VST2, VST3, LV2, and CLAP on every platform, plus AU on macOS and a JACK standalone on Linux. Logic Pro and other AU-only macOS hosts are supported through the AU build.
# VST2
cp -r DigiDrie-linux-x86_64/lib/vst/DigiDrie-vst.so ~/.vst/
# VST3 — copy the whole bundle directory (the .so is inside)
mkdir -p ~/.vst3
cp -r DigiDrie-linux-x86_64/lib/vst3/DigiDrie.vst3 ~/.vst3/
# LV2 — same, copy the whole bundle directory
cp -r DigiDrie-linux-x86_64/lib/lv2/DigiDrie.lv2 ~/.lv2/
# CLAP
mkdir -p ~/.clap
cp -r DigiDrie-linux-x86_64/lib/clap/DigiDrie.clap ~/.clap/If you want the JACK standalone:
mkdir -p ~/.local/bin
cp DigiDrie-linux-x86_64/bin/DigiDrie ~/.local/bin/
chmod +x ~/.local/bin/DigiDrieThe chmod +x step is needed because GitHub's artifact format doesn't preserve file modes; release downloads via the releases page have it already set, but artifacts grabbed directly from a CI run will not.
# VST2 — DigiDrie.vst is a bundle directory; move the whole thing
cp -r DigiDrie-macos-aarch64/lib/vst/DigiDrie.vst ~/Library/Audio/Plug-Ins/VST/
# VST3 — same, a bundle directory
cp -r DigiDrie-macos-aarch64/lib/vst3/DigiDrie.vst3 ~/Library/Audio/Plug-Ins/VST3/
# AU — for Logic Pro etc.; .component is a bundle directory
cp -r DigiDrie-macos-aarch64/lib/au/DigiDrie.component ~/Library/Audio/Plug-Ins/Components/
# LV2 — same: the .lv2 is a directory
cp -r DigiDrie-macos-aarch64/lib/lv2/DigiDrie.lv2 ~/Library/Audio/Plug-Ins/LV2/
# CLAP — same shape as VST2 on macOS
cp -r DigiDrie-macos-aarch64/lib/clap/DigiDrie.clap ~/Library/Audio/Plug-Ins/CLAP/
# Strip Gatekeeper's quarantine attribute on the downloaded files,
# otherwise hosts will silently refuse to load them.
xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/VST/DigiDrie.vst
xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/VST3/DigiDrie.vst3
xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/Components/DigiDrie.component
xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/LV2/DigiDrie.lv2
xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/CLAP/DigiDrie.clapSubstitute macos-x86_64 for macos-aarch64 on Intel Macs.
The binaries are ad-hoc codesigned but not Developer-ID-signed and not notarized, which is why the quarantine step is needed.
VST2 plugin lookup paths vary by host — Reaper, Bitwig, Studio One, etc.
all read different locations and most let you configure the scan path in settings.
A common system-wide spot is C:\Program Files\Common Files\VST2\; per-user, hosts usually accept anywhere under your profile.
Copy DigiDrie-vst.dll (and the DigiDrie.lv2 directory, if your host supports LV2) into whichever folder your host scans.
For VST3, copy the DigiDrie.vst3 directory into %COMMONPROGRAMFILES%\VST3\ (system-wide) or %LOCALAPPDATA%\Programs\Common\VST3\ (per-user) — these are the standard Steinberg-defined locations and almost every host scans them automatically.
For CLAP, the conventional location is %COMMONPROGRAMFILES%\CLAP\ system-wide or %LOCALAPPDATA%\Programs\Common\CLAP\ per-user; copy DigiDrie.clap there.
The plugin reads magnetophon/style/style.json from $XDG_CONFIG_HOME (typically ~/.config/ on Linux and macOS) and falls back to /usr/local/etc/ and /etc/.
The style/ directory bundled in the archive contains presets you can drop in there; if you don't, the plugin uses a built-in default theme.
git clone https://github.com/magnetophon/DigiDrie/
cd DigiDrie/faust/To get a jack standalone app:
faust2jack -t 0 -time -midi DigiDrie.dsp && ./DigiDrie
It's quite a long compile for a single faust program, +/- 7 minutes on my hardware. The compiler is not hanging! ;)
To look at a block diagram:
faust -lang ocpp -t 0 -time -svg -f 1 DigiDiagram.dsp -o -drf /dev/null && xdg-open DigiDiagram-svg/process.svgThe file DigiDiagram.dsp is slightly different from the main dsp, in that it doesn't use a cludge written in faust to work around the poor monophonic handeling faust currently has.
It increases the size of the diagram a lot, and doesn't help to clarify the actual synth.
This is work in progress. If something is not working, please open issue.
Building from source works on Linux (x86_64 and aarch64), macOS (x86_64 and Apple Silicon), and Windows via MSYS2 MinGW64.
The CI workflow at .github/workflows/build.yml is the authoritative reference for the toolchain and dependencies on each platform.
git clone --recursive https://github.com/magnetophon/DigiDrie/
cd DigiDrie/plugin/dpf
make -jPlugins are built into plugin/dpf/bin/.
Filenames depend on the platform — .so on Linux, .dylib (wrapped into a .vst bundle on macOS by the CI workflow), .dll on Windows.
On Linux you additionally get a DigiDrie JACK standalone.
To build plugin from Faust code, see plugin/data/README.md.
Bug reports, feature requests and other issues welcome!