Puredata! (thread)


I think… a lot of people want it to be a ‘free as in money’ max/msp, which is… understandable I guess! On the other hand pd vanilla’s design aligns well with:

  • graphical programming is a waste of time
  • cement complex musical instrument controller designs in C, commit gestures to muscle-memory (e.g whitewhale, cascades, kria etc)
  • patching is the best way to hook up inputs/outputs (e.g re-use your same controller for midi/osc/whatever)


I’ve seen a lot of iphone/iPad based sound apps that use libpd as a DSP engine without a GUI. Not sure if that’s the same thing as you’re talking about.

I think on Linux there’s a -nogui runtime parameter.


Yep, it’s totally capable of running headless, if you’re conscious about it.


I think the idea is that you create the patch graphically, then use it headless to perform.
From this perspective I don’t see the issue with deken depending from a GUI. You should not have to do set-up stuff in a performing context


Exactly. It is a graphical patching environment after all.

In using pd these last few months, I’ve used Deken precisely once: to download the cyclone lib.


made decent progress today mashing up a couple of the grid apps from BEES into puredata objects without bundling the whole of BEES into a gigantic mega-mudball.

So far I’ve got a ‘raw grid’ external, which just does lights & buttons, ezra’s step op from BEES, the machinery for clean focus-switching & a placeholder glyph when no op has focus. meadowphysics, whitewhale & kria shouldn’t be more complicated than step!



(nothing but pure data)


@tehn, @zebra, @shellfritsch, @drewsky, @murray I finally got round to porting aleph’s grid apps over to pd, huzzah! https://github.com/boqs/pd-grid - all the rest of BEES has been stripped away from this, leaving something that hopefully resembles a ‘regular’ pd library!

There are versions of:

  • kria
  • whitewhale
  • step
  • meadowphysics
  • a trivial grid op which circumvents the usual OSC plumbing

There’s a README and some example/help patches. There’s some focus-swapping magic pilfered from BEES. Let me know if anyone can see ways to improve the design - make it more idiomatic to pd. Let me know if there are problems building or using this stuff.

I’m planning on building some patches to integrate with my hardware midi setup so I’ll post those too once I have them…


Is there a database anywhere of similar objects that have different names in Max & PD? I’d like to make PD versions of some of my Max patches to load onto microcomputers for installation, but it’s frustrating when certain basic things differ or don’t work in each app.




perfect, thank you! :slight_smile:


At the risk of extending the tangent a little bit more…

If you want to run Puredata on a minimal Pi system, here’s what I do: I run it with a very small image, with just enough to connect via VNC and run graphically when I need to develop or debug on the Pi. But when performing, I run w/o the X system started, and Puredata runs headless.

Here are the parts. This is probably adaptable to many other Puredata installations as well.


  • start with Rapian “lite” image
  • update, then stuff needed for a minimal set up that you can VNC into:
    sudo apt-get update ; sudo apt-get dist-upgrade
    sudo apt-get install --no-install-recommends
        screen vim \
        git make \
        xserver-xorg xinit \
        realvnc-vnc-server realvnc-vnc-viewer
    sudo apt-get install raspberrypi-ui-mods
    sudo apt-get -y purge "pulseaudio*"
    sudo systemctl disable cups
    sudo systemctl stop cups

This all fits in under 3G of disk. (Perhaps even less, I have build tools on there as well, as I’m building Puredata externals.)


  • use a script like the following to start Puredata:
    export XAUTHORITY=/home/pi/.Xauthority
    export DISPLAY=:0
    if xhost > /dev/null 2> /dev/null; then
        unset XAUTHORITY
        unset DISPLAY
    # these will vary with your setup
    PD_AUDIO='alsa -audioadddev pisound -audiobuf 10 -channels 2 -r 48000'
    PD_MIDI='-alsamidi -mididev 1,2 '
    nohup puredata $PD_GUI $PD_AUDIO $PD_MIDI -send ";pd dsp 1" "$PD_PATCH" > /tmp/pdout  2>&1 &

If you are VNC’d in and run this script, Puredata will start with a GUI and it will pop up on your screen. If you are running headless and run this script, Puredata will run without a GUI.


What do you use X/VNC for?


VNC is so that I don’t have to have a physical display connected to the Pi - I just connect from my main computer and get a graphical window there as if it were the display on the Pi.


20 characters of … Why not SSH?


yeah, if your using a mac (due to easy xquartz install ) or Linux , then ssh -x is the way forward… this is what i do for both organelle and pi dev.


Having only put one Pi project together a couple of years back, what would the command be to have the audio set to an iMic or similar? My current Pi uses the built-in, and very noisy, audio out, which is actually a benefit for that instrument, but I’d like cleaner audio in future.


No, I meant, why X? What are you doing with graphics that requires it?

Sorry, I do not know. I’m using the Pisound sound card.


i’ll look into the pisound!


It’s a pretty great 2x2 card.

Audioinjector makes cards with more I/O, but much patchier documentation and irregular availability on that.