Pure Data


Pure Data

Pure Data (or Pd) is a graphical programming language developed by Miller Puckette in the 1990s for the creation of interactive computer music and multimedia works. Though Puckette is the primary author of the software, Pd is an open source project and has a large developer base working on new extensions to the program. It is released under a license similar to the BSD license.

Pd is very similar in scope and design to Puckette's original Max program (developed while he was at IRCAM), and is to some degree interoperable with Max/MSP, the commercial successor to the Max language. Both Pd and Max are arguably examples of Dataflow programming languages. In such languages, functions or "objects" are linked or "patched" together in a graphical environment which models the flow of the control and audio. Unlike the original version of Max, however, Pd was always designed to do control-rate and audio processing on the host CPU, rather than offloading the synthesis and signal processing to a DSP board (such as the Ariel ISPW which was used for Max/FTS). Pd code forms the basis of David Zicarelli's MSP extensions to the Max language to do software audio processing.

Like Max, Pd has a modular code base of "externals" or objects which are used as building blocks for programs written in the software. This makes the program arbitrarily extensible through a public API, and encourages developers to add their own control and audio routines, either in the C programming language or, with the help of other externals, in Python, Ruby, Scheme and many other languages as well. However, Pd is a programming language in its own right. Modular, reusable units of code written natively in Pd, called "patches" or "abstractions", are used as standalone programs and freely shared among the Pd user community, and no other programming skill is required to use Pd effectively.

With the addition of the Graphics Environment for Multimedia (GEM) external, and externals designed to work with it (like Pure Data Packet / PiDiP for Linux, framestein for Windows, GridFlow for n-dimensional matrix processing that integrates pure data with the Ruby programming language, etc.), it is possible to create and manipulate video, OpenGL graphics, images, etc. in realtime with seemingly endless possiblilities for interactivity with audio, external sensors, etc.

Additionally, Pd is natively designed to enable live collaboration across networks or the internet, allowing musicians connected via LAN or even in disparate parts of the globe to create music together in real time.

Language features

Like Max, Pd is a data flow programming language. As with most DSP software, there are two primary rates at which data is passed: sample (audio) rate, usually at 44100 samples per second, and control rate, at 1 block per 64 samples. Control messages and audio signals generally flow from the top of the screen to the bottom between "objects" connected via inlets and outlets.

Pd supports 4 basic types of text entities: messages, objects, atoms, and comments. Atoms are the most basic unit of data in Pd, and they consist of either a float, a symbol, or a pointer to a datastructure. (In Pd, all numbers are stored as 32-bit floats). Messages are composed of one or more atoms and provide instructions to objects. A special type of "content-less" message called a bang is used to initiate events and push data into flowing, much like pushing a button.

Pd's native objects range from the basic mathematical, logical, and bitwise operators found in every programming language, to general and specialized audio-rate DSP functions (designated by a tilde (~) symbol), such as wavetable oscillators, the fft~, and a range of standard filters. Data can be loaded from file, read in from an audio board, MIDI, via Open Sound Control (OSC) through a Firewire, USB, or network connection, or generated on the fly, and stored in tables, which can then be read back and used as audio signals or control data.

Data structures

One of the key innovations in Pd over its predecessors has been the introduction of graphical data structures, which can be used in an endless variety of ways, from composing musical scores, sequencing events, to creating visuals to accompany Pd patches or even extending Pd's GUI.

Living up to Pd's name, data structures enable Pd users to create arbitrarily complex static as well as dynamic or animated graphical representations of musical data. Much like C structs, Pd's structs are composed of any combination of floats, symbols, and array data, which can be used as parameters to describe the visual appearance of the data structure or, conversely, to control messages and audio signals in a Pd patch. In Puckette's words:

quote|Pd is designed to offer an extremely unstructured environment for describing data structures and their graphical appearance. The underlying idea is to allow the user to display any kind of data he or she wants to, associating it in any way with the display. To accomplish this Pd introduces a graphical data structure, somewhat like a data structure out of the C programming language, but with a facility for attaching shapes and colors to the data, so that the user can visualize and/or edit it. The data itself can be edited from scratch or can be imported from files, generated algorithmically, or derived from analyses of incoming sounds or other data streams.|Miller Puckette
[http://crca.ucsd.edu/~msp/Pd_documentation/x2.htm#s9 Pd Documentation Chapter 2 — 2.9. Data structures]

See also

* Graphics Environment for Multimedia
* Max/Msp
* reacTable, a physical interface for Pure Data.
*
* Comparison of audio synthesis environments

References

*Danks, M. (1996). The graphics environment for max. In: Proceedings of the International Computer Music Conference, pp. 67-70. International Computer Music Association.
*Danks, M. (1997). Real-time image and video processing in Gem. In: Proceedings of the International Computer Music Conference, pp. 220-223. International Computer Music Association.
*Puckette, M. S. (1996) [http://crca.ucsd.edu/~msp/Publications/icmc96.ps Pure Data] . Proceedings, International Computer Music Conference. San Francisco: International Computer Music Association, pp. 269-272.
*Puckette, M. S. (1997). Pure data. In: Proceedings of the International Computer Music Conference, pp. 224-227. International Computer Music Association.

Literature

cite book
editor= Pd~graz (ed.)
title = bang. Pure Data
publisher = Wolke Verlag Hofheim
year = 2006
url = http://pd-graz.mur.at/label/book01/bangbook
isbn = 978-3936000375

cite book
last = Puckette
first = Miller Smith
authorlink = Miller Puckette
title = The Theory and Technique of Electronic Music
publisher = World Scientific Press, Singapore
year = 2007
url = http://www-crca.ucsd.edu/~msp/techniques.htm
isbn = 978-9812705419

External links

* [http://www-crca.ucsd.edu/~msp/software.html Software by Miller Puckette] — the latest Pd releases, documentation, and source code
* [http://puredata.info/ Pure Data Portal]


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Pure data — Saltar a navegación, búsqueda Captura de pantalla de Pure Data Pure Data (o Pd) es un lenguaje de programación gráfico desarrollado por Miller Puckette durante los años 90 para la creación de música computarizada interactiva y obras de multimedia …   Wikipedia Español

  • Pure Data — (или Pd) графический язык программирования, который Миллер Пакет разработал в 1990 с целью создания интерактивной компьютерной музыки и мультимедийных работ. Несмотря на то, что Пакет основной автор программы, она является открытой, и в её… …   Википедия

  • Pure data — (Pd) es un entorno gráfico de programación en tiempo real, diseñado para el procesamiento de sonido, vídeo y gráficos. Hace parte de la familia de lenguajes gráficos de programación conocidos como Max (Max/FTS, ISPW Max, Max/MSP, jMax, etcétera) …   Enciclopedia Universal

  • Pure Data — Ein Programm in Pure Data Pure Data (Abkürzung: Pd) ist eine datenstromorientierte Programmiersprache und Entwicklungsumgebung, die visuelle Programmierung benutzt. Sie wird vor allem zur Erstellung von interaktiver Multimedia Software eingesetzt …   Deutsch Wikipedia

  • Pure data — Ein Programm in Pure Data Pure Data (Abkürzung: Pd) ist eine datenstromorientierte Programmiersprache und Entwicklungsumgebung, die visuelle Programmierung benutzt. Sie wird vor allem zur Erstellung von interaktiver Multimedia Software eingesetzt …   Deutsch Wikipedia

  • Pure Data — Pour les articles homonymes, voir PD. Pure Data Développeur Miller Pu …   Wikipédia en Français

  • Pure Data — noun A visual programming language for the creation of interactive computer music and multimedia works …   Wiktionary

  • Pure data — Константы, неизменяемые данные …   Краткий толковый словарь по полиграфии

  • Pure and Applied Chemistry —   Titre abrégé Pure Appl. Chem. Discipline Chimie Langue Anglais Russe …   Wikipédia en Français

  • Pure (игра) — Pure Разработчик …   Википедия


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.