Skip to content

magnetophon/DigiDrie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

143 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DigiDrie

A monster monophonic synth, written in faust. image

features

  • 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.

macros

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.

installation

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.

Linux

# 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/DigiDrie

The 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.

macOS

# 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.clap

Substitute 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.

Windows

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.

themes (optional)

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.

building

Faust

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.svg

The 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.

Plugin

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 -j

Plugins 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.

issues

Bug reports, feature requests and other issues welcome!

About

A monster monophonic synth, written in faust.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages