Imagine an old telephone switchboard, with operators unplugging and replugging wires into a giant patchbay. Instead of telephones on the other ends of all those connections, we have various electronic modules, such as the filters, oscillators, and amplifiers found in modular analog synthesizers. Now, replace all of these analog electronic circuits with modern digital software. Slap a user-friendly GUI on top and you end up with Pure Data, or Pd, as it is often called.
Pure Data is more than merely another audio programming language. Units with various inlets and outlets connect through cables you draw to each other and to sliders you can move in real time. This creates a powerful dataflow environment which allows you to process signals in ways hardly conceivable with other tools. The graphical layout of the programs, called “patches” in Pd, lets even someone with no prior programming experience get an intuitive sense for what groups of units do. Of course, a background in audio synthesis helps as that is what a great deal of Pd’s basic units are for. However, various libraries exist which extend Pd’s functionality, most notably the Graphics Environment for Multimedia (GEM), which gives the ability to manipulate and synthesize video data. Users with knowledge of C++ could create new units, or even whole new libraries. Documentation on how to do this is included with Pd.
Pd has extensive built-in documentation. All basic units have a help patch which shows the unit in context and lets you see what the inlets and outlets do. A series of tutorials shows many synthesis techniques: modulation, filtering, delay, polyphony, the list goes on. These example patches serve as great help to someone who wants to learn about digital audio processing in general, as well as show how to make basic patches with Pd. If exploring all the documentation prepackaged with Pd leaves you desiring more knowledge, there’s a free book called The Theory and Technique of Electronic Music which goes into further detail about the synthesis techniques shown in Pd’s tutorial patches, and also explores the mathematics of audio fairly in-depth. The book, the tutorial patches, and Pd itself were all written by Dr. Miller Puckette.
Puckette is best known for developing Max, an environment similar to Pd which is currently maintained by San Fransisco software company Cycling ’74. Unlike its commercial cousin Max, Pd is free and open source. The Theory and Technique of Electronic Music is also free to download from Puckette’s website. At the time of this writing, Puckette is a professor of music at the University of California in San Diego. Though Puckette’s involvement with Pd has waned somewhat recently, the community which has grown around the program is more vibrant than ever. Not a day goes by without seeing a new extension or a wacky performance Pd made possible. Also, the Pure Data Forum is quite active, and the discussions are a great source of inspiration for your own patches.
Programming with Pd is a lot of fun. Being able to rearrange and manipulate parameters in realtime lets the programmer implement ideas with ease and quickness. I have been using Pd for almost a year now, and though I still have much to learn, I’ve never found a more enjoyable environment to code in. Huge blocks of text packed full of arcane symbols can be intimidating, not to mention an eyestrain. While some of the larger and more complex Pd patches can still be daunting to comprehend, the code has a certain beauty, looking like a spider web of information. In some cases your code may be more aesthetically pleasing than the output of your code. This tends to happen a lot when you’re first learning. On that subject, I recommend investing in a decent pair of headphones, as it allows you hear many of the subtler nuances of your audio output with the added bonus of not bothering your roommates. Though, once they figure out what you’re up to, chances are that they’ll want to learn all about it too.
Pd is an ideal tool for multimedia artists of all shapes and sizes. Visual learners and those with prior programming experience will have a natural advantage, but most anyone should be able to catch on quickly. When it first starts up, load the Test Audio and MIDI patch to make sure your soundcard is configured properly, and go from there. Try to combine a few of the tutorial patches, or create a patch of your own from scratch. The only limits now are your processing power and your imagination.