A monophonic synthesizer for Max for Live and Max inspired by mooD by Eugenio Giordani and Alessandro Petrolati, which in turn follows the Minimoog Model D. It is built on three Csound opcodes ported to plain C and wrapped as Max and Pd externals:
| External | Csound opcode | Author of the algorithm | Role in the synth |
|---|---|---|---|
squinewave~ |
squinewave |
Rasmus Ekman | the three oscillators |
moogladder2~ |
moogladder2 |
Victor Lazzarini, after Antti Huovilainen | the ladder filter |
reverbsc2~ |
reverbsc2 |
Sean Costello | stereo reverb on the output |
The DSP code is Csound's, freed from the Csound API (core/), with a thin wrapper per host
(pd/, max/). The externals are general purpose: use them in your own Max and Pd patches too.
Not affiliated with Moog Music, nor with the authors of mooD. "Minimoog" and "Model D" are trademarks of their owners and are used here only to describe the design this instrument follows.
From Releases:
| File | Contents |
|---|---|
mood.amxd |
the Max for Live device, frozen: the externals for macOS and Windows are inside |
mood-<version>-macos.zip |
max/: device, mood.maxpat, .mxo (arm64 + x86_64); pd/: .pd_darwin |
mood-<version>-windows-x64.zip |
max/: device, mood.maxpat, .mxe64; pd/: .dll |
mood-<version>-linux-x86_64.zip |
pd/: .pd_linux |
mood-<version>-linux-aarch64.zip |
pd/: .pd_linux (Raspberry Pi 4/5, Bela, ...) |
Max does not run on Linux, so the Linux zips have the Pd externals only. Every zip includes the help patches of the three objects.
Max for Live. Drop mood.amxd on a MIDI track. The device is frozen with its externals,
nothing else to install.
Max. Add max/ to Options > File Preferences and open mood.maxpat or the help files.
Pd. Copy the files of pd/ into a folder of Pd's path (or use [declare -path ...]) and open
the -help.pd patches.
macOS. The externals are ad-hoc signed, not notarized. If macOS blocks them after the download:
xattr -dr com.apple.quarantine path/to/max path/to/pdDependencies, not included in this repository:
- Max SDK: Cycling74/max-sdk-base (MIT), cloned
as
max-sdk-base/(ignored by git) or pointed to withMAX_SDK=.../c74support - Pd sources: the
srcfolder of a Pd installation,PD_SRC=...(default: Pd 0.56-2 in/Applications) - zig for the Linux and Windows builds, Xcode command line tools for macOS, python3 to regenerate the patches
git clone https://github.com/Cycling74/max-sdk-base
make # macOS: build/macos/{pd,max}, universal, ad-hoc signed
make cross # Linux x86_64/aarch64 (Pd), Windows x64 (Pd, Max) in build/
make release # both, then the zips in dist/
make patches # regenerate patches/mood.maxpat and mood.amxd from the Python scriptsmake patches overwrites the device and the patch saved by Max: the committed device is frozen
and may have edits made in Max that the scripts do not have.
core/:squinewave.c,vafilters.c(Csound'snewfils.cfilters,moogladder2among them),reverbsc.cpd/,max/: the wrappers and the help patches.vafilter~.cbuilds one filter of the table incore/vafilters.cchosen with-DVA_NAME;reverbsc~.cbuildsreverbsc2~with-DREVERBSC2patches/:mood.amxd(frozen),mood.maxpatand the Python scripts that generated themscripts/: cross builds and release zips
LGPL 2.1, like Csound: see LICENSE. The Max externals are linked with code of the Max SDK
(Cycling '74, MIT): see LICENSE-MAX-SDK.md. The SDK itself is not in this repository.