sonus
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:
Generators
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
Effects and Sample Manipulation
sonus.bitinv~Bitcrusher and bit invertersonus.bitman~Bit manipulatorsonus.biquads~Parallel biquad filterssonus.buffxApply effects to bufferssonus.bufsnapSave 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.wavesetsWavesets based sample manipulation
Neural Networks and AI
sonus.actiActivation functionssonus.acti~Activation functions (signal rate)sonus.caCellular automata systemsonus.dnnDeep neural network implementationsonus.gaGenetic algorithm implementationsonus.ga.numGenetic algorithm implementation (numbers version)sonus.lindenLindenmayer generative systemsonus.neuronArtificial neuron implementationsonus.perceptron~Classic perceptron implementation
Math and Utilities
sonus.blistOutput different items from a listsonus.bozoOutput a 1 and then a 0 when a bang is receivedsonus.edistEuclidean distance between two pointssonus.ftomelFrequency to mel convertersonus.hopHot inlets operationssonus.llineSimilar to line, but for list of numberssonus.logisticLogistic map calculatorsonus.lrandomRandom items from a listsonus.lurnNon repeating random sequencessonus.mathcMathematical constantssonus.mboxPop up dialogs generatorsonus.meltofMel to frequency convertersonus.mima~Signal extremes analyzersonus.multirandomMulti-outlet version of random objectsonus.mumulMultiply numbers for the same factorsonus.mumul~Multiply signals for the same factorsonus.quadpannerQuadraphonic panner coefficientssonus.summerNumbers summatorsonus.tentTent 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
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.
How to build
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.
Mac
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.
Windows
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.