Early-stage project containing experiments with Max/MSP externals and the nifty Soundpipe DSP library.
My initial goal was to learn MSP external programming by using a DSP library, however it's so quick to develop with Soundpipe DSP that there's now a secondary goal to produce a set of Max/MSP objects which correspond on a one-to-one basis with Soundpipe modules.
Please note that is a macOS only package and it includes cycling 74's maxsdk as a submodule in the source
directory, so you will have to do the following in the project root after cloning the repo.
git submodule init
git submodule update
This project uses Xcodegen to generate an xcode project of a max external from a yaml spec
For convenience, libsoundpipe.a
and libsndfile.a
are included. Please feel free to compile these separately.
After compilation, to install, just soft link or copy this folder to $HOME/Documents/Max 8/Packages/sndpipe
-
sp_bigverb~: A nice-sounding spaceout reverb.
-
sp_bitcrush~: Digital signal degradation.
-
sp_brown~: Brownian noise generator.
-
sp_delay~: A simple clear-sonding delay.
-
sp_osc~: A simple oscillator with sine and triangle waveforms.
-
sp_pshift~: A pitch-shifter effect.
-
sndpipe~: A kitchensink of things.
- compressor~: a basic compressor.
- smoothdelay~: Smooth variable delay line without varispeed pitch.
To speed up conversion of soundpipe modules to Max/MSP externals, this project uses code generation of the subproject elements.
To create a new subproject. Pick a module from Sound pipe. Let's use bitcrush
in this example. We see from the module lua description that it has two (optional) params:
- int bitdepth with default: 8, min: 1, and max: 16
- float srate with default: 1000.0
The other important files during development of the external are:
-
The module code.
-
The module test file.
So let's generate the subproject skeleton:
cd sndpipe/source/dev
./scripts/gen.py bitcrush -p bitdepth int 8 1 16 -p srate float 1000.0
The new subproject will be generated in the dev
folder as sp_bitcrush~
.
To build it:
cd sp_bitcrush~
./build.sh
Thanks to Paul Batchelor for sharing his very welcoming Soundpipe library!