A Max/MSP package for sound experimentation and algorithmic composition
An open source Max/MSP package for sound experimentation and algorithmic composition. A collection of externals coded in C++ and dealing with math, autonomous systems and experimental sound design.
Currently finished externals are:
sonus.bytebeat~ A bytebeat parser and generatorsonus.byteplay~ An efficient player of many bytebeat formulassonus.collatz~ Collatz conjecture based wavetable oscillatorsonus.ecaosc~ Elementary cellular automata oscillatorsonus.harmosc~ Harmonic additive oscillatorsonus.lorenz~ Lorenz attractor based generatorsonus.neurosc~ Neural network based oscillatorsonus.nwosc~ User defined wavetable oscillatorsonus.nowave~ Scrambled wavetable oscillatorsonus.pdosc~ Phase distorted oscillatorsonus.pulsar~ Pulsar oscillatorsonus.roessler~ Rössler attractor based generatorsonus.rsosc~ Oscillator with random shapessonus.vaosc~ Multishape bandlimited oscillatorsonus.window~ Window functions generatorsonus.bitinv~ Bitcrusher and bit invertersonus.bitman~ Bit manipulatorsonus.biquads~ Parallel biquad filterssonus.buffx Apply effects to bufferssonus.bufsnap Save snapshots of a buffersonus.cheby~ Chebyshev waveshapersonus.crossloop~ Buffer loop player with crossfadesonus.cryptoverb~ Eerie stereo reverberatorsonus.fselector~ Continuous selector/mixersonus.halaphon~ Circular panner across multiple speakerssonus.quadpan~ Quadraphonic pannersonus.summer~ Simple signal mixersonus.wavesets Wavesets based sample manipulationsonus.acti Activation functionssonus.acti~ Activation functions (signal rate)sonus.ca Cellular automata systemsonus.dnn Deep neural network implementationsonus.ga Genetic algorithm implementationsonus.ga.num Genetic algorithm implementation (numbers version)sonus.linden Lindenmayer generative systemsonus.neuron Artificial neuron implementationsonus.perceptron~ Classic perceptron implementationsonus.blist Output different items from a listsonus.bozo Output a 1 and then a 0 when a bang is receivedsonus.edist Euclidean distance between two pointssonus.ftomel Frequency to mel convertersonus.hop Hot inlets operationssonus.lline Similar to line, but for list of numberssonus.logistic Logistic map calculatorsonus.lrandom Random items from a listsonus.lurn Non repeating random sequencessonus.mathc Mathematical constantssonus.mbox Pop up dialogs generatorsonus.meltof Mel to frequency convertersonus.mima~ Signal extremes analyzersonus.multirandom Multi-outlet version of random objectsonus.mumul Multiply numbers for the same factorsonus.mumul~ Multiply signals for the same factorsonus.quadpanner Quadraphonic panner coefficientssonus.summer Numbers summatorsonus.tent Tent map calculatorsonus.wtp “The Well-Tuned Piano” tunerThe collection also features six Max for Live devices that use some sonus externals to create synths, effects and modulators.
Compiled binaries for both Windows and macOS can be found in the Releases section. Please note that some of the listed externals may not yet be available in the latest compiled version.
Grab the source inside your Documents/Max 9/Packages (or Max 8, according to your Max/MSP version) folder with git clone https://github.com/valeriorlandini/sonus.git --recursive
cd sonus and then mkdir build to create a folder with your various build files.
cd build to put yourself into that folder.
Run cmake -G Xcode ..
Next run cmake --build . --config Release or open the Xcode project from this “build” folder and use the GUI.
Note: you can add the -jX option where X is the number of cores to use (e.g. -j4). This can help speed up your builds, though it may sometimes interleave the error output, making troubleshooting more challenging.
If you are running on a Mac M1+ machine, you will likely see an error cannot be loaded due to system security policy when loading your externals in Max. To resolve this, you can ad-hoc codesign your external with codesign --force --deep -s - myobject.mxo.
You can run cmake --help to get a list of the options available.
Visual Studio 2022:
cmake -G "Visual Studio 17 2022" ..
Visual Studio 2019:
cmake -G "Visual Studio 16 2019" ..
Visual Studio 2017:
cmake -G "Visual Studio 15 2017 Win64" ..
Having generated the projects, you can now build by opening the .sln file in the build folder with the Visual Studio app (just double-click the .sln file) or you can build on the command line like this:
cmake --build . --config Release
Note: you can add the -jX option where X is the number of cores to use (e.g. -j4). This can help speed up your builds, though it may sometimes interleave the error output, making troubleshooting more challenging.
If you are using sonus in an academic context, you are welcome to cite this paper:
Orlandini, V. (2026). sonus, an open-source Max/MSP package for sound experimentation and algorithmic composition. Zenodo. https://doi.org/10.5281/zenodo.18600750