Pure Data is an open source patch programming language, similar to Max/MSP, written by Miller Puckette. It’s a high-level visual programming environment, where you add input and data manipulation objects to a stage and drag connections between them to define how messages are passed through the system when it is running. With a minor amount of effort, it’s possible to create applications that perform complex real-time manipulation of audio and video data.

I was introduced to Pure Data (Pd) this afternoon by my friend Vince Veneziani. He’s working on creating a tutorial for Pd and sent over an introduction to the programming environment, including a sample application patch that plays video on the faces of a bunch of spinning cubes, which can be controlled in real time as the application runs.

About six months ago, I was reading up on music creation and the program Max/MSP, a graphical workflow environment for creating and manipulating audio and video. Very complex, but powerful stuff. The author of Max/MSP, Miller S. Puckette, later created a piece of similar, open-source software called Pure Data (pd). Pure Data is similar to Max/MSP except that it’s free for anyone to use and make stuff with.

In this post, we’ll go over what exactly I managed to do with PD. It involved using an M-Audio MIDI controller to manipulate videos in a real-time graphical environment. Sound too complicated or scary for you? It’s really not. C’mon, I’ll show you how it works.

I mentioned that Pd is a graphical programming environment, but like any language, there’s a steep initial learning curve, and you’ll need to figure out a lot about the types of objects that are available and how they function. I’ve only started playing with this, myself, but thankfully there are a number of helpful tutorials in the Pd documentation.

Have you used Pd before? If you have any tips, tricks, tutorials, or a cool patch you’d like to share, add it to the comments!

Pure Data
Vince’s Pd Introduction – Video MIDI Mixer
Pd Tutorials

10 thoughts on “Pure Data – open source audiovisual processing environment

  1. hi! PD is great, I use it less than I’d like but it is a great tool.

    I made two simple patches to allow different computers in a network communicate sending MIDI over ethernet (or the local network, wifi/wired):

    You can download them here:

    I also use pd for checking OSC behaviour of the music controller I made for the wiimote and mac osx:

    Inspit the scripts are very simple, I hope you find them useful.

  2. Thanks a lot for the tutorial on video manipulation, also you guys can take a look at “The Theory and Technique of Electronic Music” is easy to find in google ( I heard the book now is free download legally )and is all abaut audio manipulation and generation and all the examples are made in pD.

  3. Hopefully Pd isn’t news to most of you. I’ve been using Pd for years. It is great ‘glue’ for most any project that involves a computer. Where Pd shines above Max/Msp is the inclusion of a wide range of opensource libraries, as well as being one of the best community supported projects I’ve seen. Yes, makers, it can talk to the arduino as well, using Hans-Christoph Steiner’s Firmata. I recommend heading over to There’s a wealth of knowledge in the archives, and questions are appreciated. I’m ‘nestor’ over there If anybody wants to PM me.

  4. Thanks for posting this guys. I often see makes/hacks using pd or Max patches and while Max seems a little pricey (about £300?) pd is obviously open source. The downside is that pd seemed like a completely opaque development environment with very little community or tutorials for beginners. I guess I was wrong!

    I have seen so much cool stuff done with these two programs that I am gonna have to give pd a go for myself.

  5. here’s a bunch of patches:

    ecktribe is the most usable (it’s a pure data re-imaging of the korg ER-1 analog modeled drum machine) , with rex_clone being the second most – a sub-sample player with musically relevant offsets.

    the are all tar gz files. download and rename .tgz should work on all platforms using pd-extended

    and here’s a project for an OSC controller specifically for PD. imagined by me and mostly implemented by Jeff Hoefs:

    based on pic microcontroller and some multiplexers.

Comments are closed.