Pure Data (aka Pd) is an open source visual programming language. Pd enables musicians, visual artists, performers, researchers, and developers to create software graphically, without writing lines of code. Pd is used to process and generate sound, video, 2D/3D graphics, and interface sensors, input devices, and MIDI. Pd can easily work over local and remote networks to integrate wearable technology, motor systems, lighting rigs, and other equipment. Pd is suitable for learning basic multimedia processing and visual programming methods as well as for realizing complex systems for large-scale projects.
Pd is free software and can be downloaded in different versions. The two principal distributions of Pd are:
- Pd vanilla (or simply Pd): the core of Pure Data, mainly written by Miller Puckette, focusing on audio signal and MIDI processing.
- Pd extended: a version of Pd vanilla that comes with many libraries written by the community. Pd extended can be used for graphics rendering (GEM library), OSC communications, binary file processing, audio-visual streaming, physical modeling, sensor-based performances, and much more. As of 2014, Pd extended is no longer being maintained. A growing number of libraries are forked independently and made available via the Pd vanilla (deken plug-in).
Both distributions are available for GNU/Linux, Windows, or Mac OSX as well as for other operating systems. Pd is multi-platform and portable; it runs on anything from an old laptop to a Raspberry Pi to a brand new desktop, and even on tablets and smartphones thanks to projects like libpd, pddroidparty and RjDj.
Pd is a so-called data flow programming language, where software called patches are developed graphically. Algorithmic functions are represented by objects, placed on a screen called canvas. Objects are connected together with cords, and data flows from one object to another through this cords. Each object performs a specific task, from very low level mathematic operations to complex audio or video functions such as reverberation, fft transform, or video decoding. Objects can be:
- built-in Pd objects;
- abstractions, that is, reusable patches created in Pd itself;
- externals, i.e. objects developed in another programming language.
The work of many developers is included in Pd-extended or can be downloaded separately, and complete patches from the community can be found on this site and elsewhere on the web.
Pd is a major branch of the family of patcher programming languages known as Max (Max/FTS, ISPW Max, Max/MSP, jMax, DesireData, etc.), originally developed by Miller Puckette at IRCAM. Pd was created to further the Max paradigm by extending data processing to applications other than audio and MIDI, such as real-time video and web interaction.
This site is a contribution of the IEM to the Pd community. Everybody using Pd is welcome to join and write/contribute some documentation, reports, news, announcing events and add comments. The site is run on a Linux server with Zope / CMF / Plone and administrated and driven by the Pd community.