SkillAgentSearch skills...

Sndpipe

Max / MSP externals using the Soundpipe DSP Library

Install / Use

/learn @shakfu/Sndpipe
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

sndpipe

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

Compilation for Use

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

Externals developed to date

  • 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.

Externals under-development (NOT YET WORKING)

  • compressor~: a basic compressor.
  • smoothdelay~: Smooth variable delay line without varispeed pitch.

Development

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:

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

Credits

Thanks to Paul Batchelor for sharing his very welcoming Soundpipe library!

Related Skills

View on GitHub
GitHub Stars4
CategoryDevelopment
Updated2mo ago
Forks0

Languages

C

Security Score

75/100

Audited on Jan 29, 2026

No findings