Pure Data
An open-source visual dataflow language for building real-time audio, music, and multimedia systems by patching objects together on a canvas.
Created by Miller Puckette
Pure Data (usually abbreviated Pd) is an open-source visual programming language for building real-time audio, music, and multimedia systems. Instead of typing lines of code, you place objects on a canvas — called a patch — and connect them with cords, building a directed graph through which control messages and audio signals flow. Created by Miller Puckette, Pd is one of the defining tools of computer music: free, cross-platform, endlessly extensible, and used by composers, sound designers, researchers, game studios, and media artists around the world.
History and Origins
Pure Data is the open-source descendant of a much longer line of work by Miller Puckette. While at IRCAM in Paris in the late 1980s, Puckette created The Patcher (around 1988), the program that introduced the now-ubiquitous idea of building interactive music software by connecting graphical boxes with virtual patch cords. That work matured into the commercial Max environment, and later into IRCAM’s real-time signal engine FTS (“Faster Than Sound”).
Pd itself emerged after Puckette moved to the University of California, San Diego. He presented the paper “Pure Data: another integrated computer music environment” at the 1996 International Computer Music Conference, which marks the system’s first public appearance. The motivation was partly technical and partly philosophical: Puckette wanted a system that performed both control-rate and audio processing directly on the host CPU (rather than offloading synthesis to dedicated DSP hardware, as early Max had), and one that was open and freely redistributable so that the research and music communities could extend it without proprietary constraints. Notably, the audio-processing approach pioneered in Pd fed back into the commercial world: David Zicarelli’s MSP signal-processing extensions to Max — yielding Max/MSP — drew on ideas Puckette developed in Pd.
Design Philosophy
Pd’s design reflects a few consistent commitments:
- Patching over text. A program is a patch — a visual graph of objects and connections. This lowers the barrier for musicians and artists who are not traditional programmers, while still scaling to large, sophisticated systems.
- Real time, on the host CPU. Pd was always intended to do its synthesis and control processing live on a standard computer, making interactive performance and responsive installations first-class use cases.
- Open and extensible. Released under the permissive BSD license, Pd encourages a vast ecosystem of community-written externals (objects written in C and other languages) and abstractions (patches reused as objects).
- Small, sharp core. The core distribution maintained by Puckette — known as Pd-vanilla — is deliberately lean. Extra functionality lives in externals you add as needed, keeping the foundation stable and portable.
How a Patch Works
Pd distinguishes between two kinds of data flowing through a patch, and the distinction is fundamental:
- Control messages — discrete events such as numbers, symbols, and lists — pass between objects whenever something happens (a key press, a metronome tick, a slider move). These travel through ordinary connections.
- Audio signals — continuous streams of samples computed in blocks (commonly 64 samples at a time, at sample rates like 44,100 Hz) — flow through special “signal” connections, drawn as thicker cords. By convention, signal-processing objects end in a tilde, e.g.
osc~(oscillator),*~(signal multiply), anddac~(digital-to-analog output).
A trivial example, expressed as the objects and cords you would place on the canvas:
| |
That three-object patch is a complete, runnable sine-wave synthesizer. Building from primitives like these — oscillators, filters, delays, envelopes, message routers, and timing objects — Pd patches grow into full synthesizers, samplers, effects racks, generative composition engines, and interactive instruments.
Key Features and Ecosystem
- Externals and abstractions. Functionality is extended through C-written externals and through abstractions — patches saved and reused as if they were single objects — which together form a deep library of reusable building blocks.
- GEM. The Graphics Environment for Multimedia, originally written by Mark Danks, adds real-time OpenGL rendering, video playback, and image processing, turning Pd into an audiovisual platform rather than an audio-only one.
- Networking with FUDI. Pd patches can exchange messages over the network using the simple FUDI protocol, enabling distributed and collaborative setups.
- libpd. Begun by Peter Brinkmann around 2010, libpd repackages Pd’s core as an embeddable library, so a patch can serve as the audio engine inside a mobile app, game, or other host program — “Pd without the GUI.”
- Cross-platform. Pd runs on common desktop operating systems and, via libpd, on mobile platforms; specific platform support should always be checked against the current official documentation.
Distributions and Evolution
Because Pd is open source, several distributions have grown up around the same core:
- Pd-vanilla — Miller Puckette’s official, minimal reference distribution, still actively maintained. Recent releases include the 0.55 series (2024) and the 0.56 series (2025).
- Pd-extended — a once-popular community distribution that bundled vanilla with a large set of externals for convenience. Its final release came in 2013, after which it was abandoned; the community shifted back to vanilla plus on-demand package management (the deken package finder is bundled into modern Pd).
- Purr Data — a maintained successor in the Pd-l2ork lineage, with Purr Data 2.0 released in 2017, offering a modernized cross-platform interface and bundled externals.
Current Relevance
Three decades after its debut, Pure Data remains a living, widely used tool. It is a staple of university computer-music and digital-arts curricula, a workhorse for live electronic performers and installation artists, and — through libpd — an audio engine embedded in commercial games and mobile apps. Its closest relative, the commercial Max/MSP, shares the same patching heritage and a partial interoperability, and the two are often discussed together as the principal members of the “Patcher family” of visual music languages. Pd’s permissive license and stable, portable core continue to make it the default choice when a project needs free, embeddable, real-time audio that can be reshaped on the fly.
Why It Matters
Pure Data helped make a powerful idea ordinary: that you can build a real-time sound system by drawing it. By giving musicians and artists a free, open, visual way to wire together signal flow — and by running it all live on an ordinary computer — Pd democratized digital signal processing and interactive multimedia. Its influence runs from the procedural soundtracks of mainstream video games to tangible instruments, mobile apps, gallery installations, and the classrooms where a new generation first learns to think about sound as data flowing through a graph.
Timeline
Notable Uses & Legacy
Electronic Arts — Spore
EA's 2008 simulation game Spore used EAPd, an embedded build of Pure Data, to generate its soundtrack procedurally in real time, stitching together short musical fragments under rule-based control so the music responds to gameplay rather than looping a fixed track.
Reactable
The Reactable tangible tabletop synthesizer, developed at Universitat Pompeu Fabra in Barcelona, used Pure Data as part of its audio engine, mapping physical pucks moved across an illuminated surface to a live dataflow patch.
Mobile and embedded apps via libpd
Through the libpd library, Pd patches are embedded as the audio engine inside iOS and Android applications, interactive installations, and music apps — letting sound designers prototype in Pd and ship the same patch in a native app.
Live electronic music and performance
Composers and laptop performers use Pd to build custom synthesizers, effects, generative scores, and live-coding-style instruments, valuing its open licensing and the ability to reconfigure signal flow on stage.
Interactive art and installations
Media artists pair Pd's audio engine with the GEM library and sensor input to drive responsive sound-and-video installations, where physical interaction modulates a running patch in real time.
Education and computer-music research
Pd is widely taught in computer-music and digital-arts programs as an accessible, free introduction to digital signal processing and dataflow thinking, and it remains a platform for academic research into synthesis and interaction.