A collection of various Max/MSP objects for creative patching coded in C++. This package was born as a collection of some custom externals I made for different projects, so they are not really linked by a common thread. They anyway more or less deal with math, artificial intelligence and weird sounds.
Currently finished externals are:
sonus.bytebeat~
A bytebeat parser and generatorsonus.byteplay~
An efficient player of many bytebeat formulassonus.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 generator
sonus.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.cryptoverb~
Eerie stereo reverberatorsonus.fselector~
Continuous selector/mixersonus.quadpan~
Quadraphonic pannersonus.summer~
Simple signal mixersonus.wavesets
Wavesets based sample manipulation
sonus.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 implementation
sonus.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.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" tuner
The 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 8/Packages
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 -j4
option where "4" is the number of cores to use. 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 -j4
option where "4" is the number of cores to use. This can help speed up your builds, though it may sometimes interleave the error output, making troubleshooting more challenging.