You’ve got an instrument or effect running in Pure Data, for free, on your computer. (If you don’t know how to do that, more in a moment.) Leave the computer at home. Play that sound creation on your iPhone (or iPad).

The implementation of Pd on iOS and Android started its life with RjDj. But PdParty (and PdDroidParty before it) have gone steadily further. Now you can almost treat the graphical patching environment Pd on the computer as your development environment – patch away on your computer, then duplicate that patch complete with UI on your phone. It also means that you can ditch the laptop and run everything on an iOS gadget, perfect for integrating Pd with other gear. (There are other hardware solutions to that, too – I’ll have to do a round-up soon.)

PdParty goes the furthest yet.

Here’s how it works:

You patch normally in Pd. Once you’re thinking you’ll run a patch on the iOS gadget, there are templates that help you adapt to that scenario – with audio in and out, and the appropriate screen layouts. Choose those widgets you want for the UI, organize them so they’ll fit on the screen, and wire up sound and make some minor adjustments, and you’re good to go.

Your iOS device then runs a server that lets you load onto the phone/tablet.

But wait – there’s more. PdParty adds some features on top of that, some inspired by RjDj and PdDroidParty, but some new.

All the fixin’s

Custom widgets make it easy to adjust audio input level, turn on or off sound operation, and start or stop recording of whatever you’re doing (perfect for capturing ideas).

Play back files via a prepared widget.

OSC. Send and receive OpenSoundControl messages.

MIDI. Send and receive MIDI – now, that works with other apps, with connected hardware, and over a network to a Mac (that should be hackable to PC, too).

Game controllers. MiFi game controller input support works, too, on top of those MIDI gadgets.

Use sensors. You can also read data from the iOS gadget’s various sensors – that includes motion, location, and other inputs.

Backwards compatibility. Out of the box, you can add scenes from tools like RjDj.

Native widgets for UI. Basically, Pd sliders and checkboxes and knobs all work on the iPhone. It’s the next best thing to running Pd directly (which isn’t possible — yet).

Who would do such a thing?

Why, Dan Wilcox would. The need to do so became apparent because Dan was regularly in the habit of dressing up as a robot and running around parties playing music. Clearly, strapping an iPhone or iPod touch to a belt then makes loads of sense.

What? Of course this is the use case. It’s obvious. (Thanks, Dan, as always – brilliant engineering work, applied to brilliant party ideas. That’s the power of Pd party engineering.)



Getting started

This is definitely for people interested in Pd patching. But it could also be a fun way to start learning.

You’ll want to work with vanilla Pd patches, but you can add rjlib. Actually, even if you’re not terribly good at patching, you can use rjlib as a free library of lots of cool synths and effects and so on, plus a mess of abstractions that make life easier.

With rjlib in hand, I think anyone could get something working in a few days. I recommend the following resources to get started: (a bit easier) (a bit more focused on synthesis/sound – including some stuff the other link leaves out – and available in German and Spanish as well as English)

If you have a tutorial in mind, though, I’m thinking of writing a simplified one. It could be a nice way to celebrate 20 years of Pd.

And if you’re in New York, later this month there’s a conference.

Plus, if you want to write full-fledged mobile apps powered by Pd, check libpd. I’m working on some updates to this shortly. (Teaching Pd at the moment is helping, for sure!)

  • GovernorSilver

    Nice article. However, a followup is needed to compare with MobMuPlat, which beat PdParty to, well, the Pd party on iPhone

  • lala

    Mobmuplat runs inside audiobus

  • rimwolf

    A hardware alternative to add to that roundup, if it’s not already on your radar, is Bela ( This is a cool add-on board (“cape”) for Beaglebone Black that adds audio in/out, uses the onboard real-time processors for low audio latency, and is programmable in PD, Faust, or C/C++.

  • Igor Molochevski

    Dude are you for real?! Mobuplat has been around for ages, This was done more then 2 years ago

  • Dan Wilcox

    Those that mention MobMuPlat are correct. It was released first, but so was RjDj 🙂 In fact, I basically had PdParty working when Daniel put out MMP and sort of lowered the urgency to release PdParty. We were working on similar ideas at the same time without even knowing it. 🙂

    MobMuPlat and PdParty share the same libpd core but simply represent different approaches. In fact, the native GUIs in MMP are those I wrote for PdParty which are based on those in Pure Data. We share bug fixes and updates between both projects. Open source benefits us all. There is no “rivalry.” Use what work works best for you.

    Also, yes PdParty doesn’t have AudioBus or Link support, but I’ll probably add these in a couple months. They were not high priority as they are not core requirements of mine.

  • cpc464freak

    Great stuff, it’s wonderful to see how much easier it is to DSP sound data without hammering away at a C++ compiler for weeks on end!