Sndpipe
Max / MSP externals using the Soundpipe DSP Library
Install / Use
/learn @shakfu/SndpipeREADME
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:
-
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
Credits
Thanks to Paul Batchelor for sharing his very welcoming Soundpipe library!
Related Skills
node-connect
354.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
