Est. 1996 Intermediate

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

Paradigm Visual dataflow programming for real-time audio and multimedia
Typing Dynamic; messages and audio signals flow between objects on a patch
First Appeared 1996
Latest Version Pd 0.56-2 (November 2025)

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), and dac~ (digital-to-analog output).

A trivial example, expressed as the objects and cords you would place on the canvas:

1
2
3
4
5
[osc~ 440]      ; a 440 Hz sine oscillator (a signal)
    |
[*~ 0.1]        ; scale its amplitude to 10%
    |
[dac~]          ; send to the sound card's left/right outputs

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

1988
Miller Puckette's 'The Patcher' debuts at IRCAM in Paris, establishing the visual 'patching' paradigm — connecting boxes with cords — that later becomes the commercial Max and, in turn, the conceptual ancestor of Pure Data.
1996
Puckette, now at the University of California, San Diego, presents 'Pure Data: another integrated computer music environment' at the International Computer Music Conference, marking Pd's first public appearance.
1997
Mark Danks releases GEM (Graphics Environment for Multimedia), an external library that adds real-time OpenGL graphics, video, and image processing to Pd — extending it from an audio tool into a general multimedia environment.
2008
Electronic Arts ships the game Spore with EAPd, a customised embedded build of Pure Data, generating its adaptive, procedurally-composed soundtrack in real time — one of the most visible commercial uses of Pd.
2010
Peter Brinkmann begins libpd, a port of Pd's core as an embeddable library; announced in October 2010, it lets developers run Pd patches inside iOS, Android, and other host applications as an audio engine.
2013
The community-maintained Pd-extended distribution — which bundled Pd-vanilla with a large collection of externals — sees its final release (0.43.4) and is subsequently abandoned, pushing users back toward Pd-vanilla plus on-demand package management.
2017
Purr Data 2.0 is released by Jonathan Wilkes (continuing the Pd-l2ork lineage), offering a modernized cross-platform GUI and bundled externals as a maintained successor to Pd-extended.
2025
Pd-vanilla 0.56 is released (the 0.56-0 series began with a test build in June 2025, with 0.56-1 and 0.56-2 bugfix releases later in the year), continuing Puckette's decades-long maintenance of the core system.

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.

Language Influence

Influenced By

Max FTS

Influenced

Max/MSP Purr Data

Running Today

Run examples using the official Docker image:

docker pull
Last updated: