PD bob~ ported for Max
Hey,
I’ve just released a Max/MSP external port of bob~, the classic Moog ladder filter simulation originally implemented in Pure Data by Miller Puckette.
bob~ models the Moog transistor ladder using Runge–Kutta numerical integration of a nonlinear differential equation, following work by Stilson, Stinchcombe and Huovilainen. It’s a very interesting approach compared to more common digital ladder approximations, because the solver integrates the circuit dynamics directly and includes a nonlinear saturation stage.
The port happened a bit unexpectedly: during a recent training session, a student brought up the original bob~ implementation and we started discussing it. That conversation made me want to port it to Max and make it available as a simple external.

The object behaves like the original:
Inlets
signal input
cutoff frequency (Hz) — signal or float
resonance — signal or float
Attributes
@oversample / Oversampling factor for the Runge–Kutta solver.
@saturation / Controls the nonlinear saturation function.
The external has been compiled for:
macOS (Intel + Apple Silicon)
Windows
and the full source code is available.
Repository: https://github.com/gluon/bob-for-max
Credit of course goes to Miller Puckette and contributors for the original bob~ implementation in Pure Data.
If anyone finds it useful, or wants to experiment further with nonlinear ladder models inside Max, feel free to use or modify it.
Reso-saturate it !