
In this post Shawn Greenlee writes about his experience getting the Pure Data real-time audio synthesis tool working with Processing. Shawn is a musician and Foundation faculty at the Rhode Island School of Design in Providence. Take it away Shawn:
Lately I’ve been using libPd and Processing to prototype audio apps for iOS on my laptop. I recently did this in the development of Fluxama’s DR-OM app, a collection of three mini-synthesizers or “drone ready oscillator modules.” We’re using libPd for the audio in our apps.
I decided to speed things up on the sound design by making use of the recently updated (but still beta) “libPd for Processing” by Peter Brinkmann. Combined with the Processing libraries controlP5 and oscP5, along with a mobile app that can send multitouch OSC messages (like TB Midi Stuff or TouchOSC), I have a solid prototyping platform that allows me to fine tune things at a quick pace.
There is a great benefit beyond just prototyping for mobile devices here. The ability to make standalone applications for laptops and desktops by combining Processing (for visuals) and Pure Data (for audio) is reason enough to try this out, especially if you like developing in a patcher-style audio programming environment.
To share a bit of my process, I’ve uploaded some commented tutorial examples to GitHub that will get you going with the essentials for piecing together one of my prototype DR-OMs (a protoDrom).
If you are new to Processing and Pure Data, there’s plenty of resources online and in print. Check out books from O’Reilly, especially Peter Brinkmann’s Making Musical Apps and Casey Reas and Ben Fry’s Getting Started with Processing.
Important to note is that as of this writing libPd for Processing is only available for Mac and Linux, and for good measure I’ll let you know that I am running a Macbook Pro with the 10.8.1 OS (so if you’re working on another OS, mileage may vary).
OK, before grabbing the code examples, first you’ll need a few things:
- Processing. I’m using Processing 2 Beta 3.
- Pure Data. You’ll want the “vanilla” version, not Pd-extended. I am using Pure Data 0.43.2.
- Processing Libraries. Copy these to your libraries folder; see respective sites for installation instructions.
- libPd for Processing: Unpack pdp5.zip into your Processing libraries folder
- controlP5: For GUI elements
- oscP5: To integrate P5 and OSC
- You’ll also need an app on your mobile device capable of sending OSC messages. TouchOSC and TB Midi Stuff are popular options that will let you customize the OSC messages sent.
Once you have everything installed, run some examples included with the Processing libraries to make sure everything is working properly.
And then check out the DR-OM tutorial code that I’ve uploaded to GitHub:
https://github.com/s3g/protodrom.
Here’s what you’ll find:
- Drom tutorial 1: A Processing sketch that demonstrates the basics of sending messages to your Pd patch in conjunction with the controlP5 library.
- Drom tutorial 2: A Processing sketch adding OSC communication to the first tutorial using oscP5.
- Drom tutorial 3: A Processing sketch for one of the synths. Export your own standalone for best performance.
- A TB Midi Stuff template with the OSC controls all set up.
— Shawn Greenlee
6 thoughts on “ProtoDROM: Prototyping with Pure Data and Processing”
Comments are closed.
[…] DR-OM Pd patch from protoDROM version (Processing+ libPd) available at github.com/s3g/protodrom blog.makezine.com/2012/09/24/protodrom-prototyping-with-pure-data-and-processing/ […]
do you have a little more in explanation about exactly where to unpack the libraries? the pdp5 has a second puredata folder and then all the lib/examples/reference in that. Do you put the puredata folder in the main libraries folder, or the pdp5 folder there. I’m getting an error on the “pd = new PureData(this, 44100, 0, 2);” line because i think the .jar isn’t creating the PureData method because of broken links.
[…] DR-OM Pd patch from protoDROM version (Processing+ libPd) available at github.com/s3g/protodrom blog.makezine.com/2012/09/24/protodrom-prototyping-with-pure-data-and-processing/ […]
dear Shawn: the procedure to get a synth usin both, pure data and processing, is very interesting. I’m wandering: is it possible hide the pure data mask, and hide the processing mask so you only had the graphic mask of the sinthesizer?? Is it easy and possible to put everything in one individual executable file?