Clone wiki

pure-lang / PureData

Using Pure with Pure Data

Pure Data (Pd for short) is Miller Puckette's sophisticated open-source computer music and multimedia software which enables you to create interactive real-time applications in a convenient graphical data flow programming environment. The signal flow is handled by Pd in real-time, and Pd also provides the necessary interfaces to handle both control data (such as MIDI and OSC) and synchronous (sample based) signal data (usually audio, but support for rendering 3D graphics and videos is provided through 3rd party plugins).

The pd-pure module is a Pure "loader" extension for Pd, which embeds the Pure interpreter in Pd, so that you can write Pd control and signal processing objects in Pure. If you're into graphical/visual programming then this module provides you with an interesting way to run Pure in Pd by connecting ("patching") Pure functions and other Pd objects to do complex signal processing tasks in real-time.


This module is often used in conjunction with Pure's Faust interface which enables you to handle signal data in an efficient way. In particular, there's also a pd-faust module available which lets you load Faust modules dynamically in Pd, and provides for MIDI and OSC message processing, as well as generating Pd GUI interfaces for Faust dsps in an automatic fashion.


Both modules will work with different Pd flavors. A very nice implementation is Jonathan Wilkes' cross-platform version Purr Data of Ivica Ico Bukvic's Pd-l2ork, depicted above. It runs on Linux, Mac and Windows, comes with an abundance of 3rd party plugins, and has a much nicer GUI than Puckette's "vanilla" Pd version. A quick introduction to Purr Data can be found here.