Raspberry Pi running Pure Data

example video


PD extended…


and this update


Running PD on a headless RP


Here’s a comprehensive install script for PD-extendended from 9/2012


and another





Slew limiter in Max

Setting the  cutoff frequency of a lowpass filter to sub audio frequencies creates a portamento effect when used with control signals.

This Max example was adapted from a Pd jet engine patch by Andy Farnell in “Designing Sound”. Its used as an inertial delay, or portamento to ramp up and down the pitch of the engine.

The LPF needs to be extremely low frequency.


max-projects: https://github.com/tkzic/max-projects

folder: slew-limiter

  • slew-limiter.maxpat


Pd expr~ object

Helpful for pd->max conversions.

By Graham Wakefield, at the Cycling 74 forum

Hi all,

I’ve just coded up a signal rate version of expr (in the last hour, so
consider it beta!). I’ve named it expr~ since it should be pretty much
backwards compatible with expr~ object that used to be available.

Universal Binary, no Windows version yet (I don’t have a Windows box with
VS near me):




differences between Pd and Max

From the Pd manual


5.3. differences from Max/MSP

It wasn’t anyone’s intention to make Pd a Max/MSP clone, but on the other hand, if there’s no reason for a feature to appear differently in Pd than in Max/MSP, the choices in Pd tend to hew to those in Max/MSP. Moreover, some effort has been undertaken (but more is needed) to make the two interoperable.

You can use Pd to import and export patches to Max/MSP; just save as text to a file with extension “.pat”, and then open it in Pd. You’ll at least get something. If you stick to common or commonizable features you can actually develop patches for both platforms.

When specific objects exist on one platform and not on the other, it’s often possible to make abstractions to imitate the missing objects, in a kind of personalized compatibility library.

There are, however, differences in semantics you’ll want to know about; a partial list follows.

abstraction arguments. In Pd you can edit instantiations of abstractions and save the result back to the file of the abstraction. This isn’t possible in Max, because the instantiations are different from the abstraction itself in that “#1”, etc., are replaced by the instantiation arguments. In Pd, these arguments appear as “$1”, etc, and are translated at a slightly later stage of the instantiation process so that you still see them as “$” variables in the instantiation. (see Section 2.7. abstractions)

In Pd, to make current all instantiations of the abstraction, either delete and recreate them or close and open the patch; this is done automatically in Max/MSP.

In Pd, if you select “save” while in a subpatch, the parent is saved. In Max/MSP, if you do this a dialogue box comes up asking if you want to save the subpatch as a separate file. (if you want to save a subpatch to a file in Pd, you have to copy and paste the contents to a new document.

In Pd, inlets and outlets are ordinary text objects; in Max/MSP they’re “gui” objects from the palette.

In Max/MSP, if an object’s outlet is connected to several destinations, corresponding messages are always sent in right-to-left screen order. In Pd, the messages are sent in the order you made the connections in. In either case, in situations where you care about the order it’s appropriate to use a “trigger” object to specify.

In Pd, there’s no “gate”; instead it’s “spigot” with the inlets in the opposite, more natural order.

Switching subsets of the DSP patch on and off is done in completely different ways in Pd and Max/MSP, and block sizes are handled differently as well.

Max offers many “GUI” objects such as sliders, dials, VU meters, piano keyboards, even “bpatchers.” Until version 0.34, the only two in Pd were the number box and graphical arrays. Starting in version 0.34, Pd incorporates Thomas Musil’s GUI objects: sliders, switches, and so on. (Thanks Thomas!) Beyond this essential collection of GUI objects, it’s unlikely you’ll ever find any commonality between the two. Also, as of 0.34, importing and exporting to Max doesn’t know about the Musil objects; I’ll try to get that fixed for 0.35.

In Pd there’s no “preset” object (I now think it’s basically a bad idea) and you have to use explicit sends and receives to restore values to number boxes. Then just make a “message” box to re-send the values you want.

In Macintosh land, instead of getting tabosc4~ and arrays, you get cycle~ and buffer~. The only gotcha is that you probably can’t draw in buffer~ with the mouse as you can with arrays, but at least it’s possible to make a patch that copies a “table” into a “buffer~”.

The “bpatcher” feature in Max has a correlate, “graph on parent” subpatches, in Pd; however, Pd’s version is quite different from Max’s.

pd to Max converting wrap~


Use [pong~ 1.] instead of [%~ 1.] see note below about negative numbers…

hi julien,

for non-negative input you will get the same output from [%~ 1.], as from wrap~. However, for the whole domain, wrapping pong~, [pong~ 1], does the job (although it costs more)


juli@tremplin-utc.net wrote: …

is the Max/MSP object [%~ 1.] an equivalent to the Pd object [wrap~] ?

Converting car engine sounds from Pd to Max

From “Designing Sound” By Andy Farnell

Update 6/2014: This project is at: https://github.com/tkzic/automax

original post

Yesterday I converted Andy Farnell’s car engine patch into Max. Some general suggestions about Pd to Max conversion:

  • You can save the Pd patch as a .pat file and load it into Max
  • [pow] object inlets reversed
  • look at translations from previous post for common objects – more on this later
  • I wrote a translation for [vd~] – more on that later…
  • In Pd all numbers are floats – so any non-signal objects in Max need to be explicitly set to float.
  • I am working to come up with a set of diagnostic tools in Pd for reading for probing into signal path, when debugging conversions.
  • the Pd [inlet~] does an implicit conversion from float to signal. In Max, you need to use [sig~]

The patches are currently in my tkzic/Pd folder. Will be moving them into a specialized folder for Andy Farnell stuff.