Pure data
Pure Data (abbreviation: Pd ) is a data stream-oriented programming language and development environment that uses visual programming . It is primarily used to create interactive multimedia software, such as software synthesizers in electronic music .
Program structure
A program is called a patch in Pd and consists of objects and the data streams between them. The patches are created in a graphical user interface and look very similar to data flow diagrams .
Objects
When creating a patch, the predefined object types available in Pd are used. This is done by creating a new object and giving it the appropriate name. Basically, the object types can be divided into three groups:
- swell
- such as microphone, camera, network, sine wave generator
- node
- manipulate data streams, for example by inverting; Addition of several data streams or other mathematical operations such as B. Distortion by taking the root of the volume values
- Reduce
- these are output devices such as speakers and screens
Data stream
The inputs and outputs of the objects are connected with the mouse by drawn lines that indicate the path the data stream takes.
Messages
Messages are commands or messages that are sent to a pure data object and cause a change in the type of signal or data processing. The count down message that is sent to a counter object could, for example, cause it to reverse the counting direction.
Abstractions
In Pd there is the possibility of using an entire patch as an object within another patch: every patch file that Pd can find in its search path is automatically available as an object. In Pd jargon, such patches are also called abstractions. They roughly correspond to the functions in text-based languages such as C or Python and, like these, can be initialized differently by passing arguments. Changes to the original abstraction file are automatically passed on to all occurrences of the object.
Subpatches
In contrast to abstractions, subpatches are saved as part of their parent patch. Subpatches are generally used to group the objects of a patch in a meaningful way and to use the limited screen space effectively. Subpatches can also be modified by messages and play an important role when working with “Data Structures” in Pd.
Array
The data in an array are displayed as a graph, can be manipulated by changing the graph and can be read out by other objects.
Processing of audio signals
Most operations are not only possible on a stream of numbers, but also on audio signals . Their processing takes place within Pure Data in floating point representation (usually 32 bits wide) , the sampling rate used can be freely selected, the default value is 44,100 Hz. As with Max / MSP , the objects for audio signals have the same name as for operations by agreement Numbers, only with a tilde ~ attached.
history
Pure Data was developed by Miller Puckette in the 1990s to create interactive computer music. In its scope and goals, Pure Data is very similar to the original Max, also developed by Puckette and the predecessor of the commercial MSP. In contrast to Max / MSP, Pd is free / open source software. Pd has an active developer community . They met in autumn 2004 for the first international pd ~ convention in Graz , where workshops, performances and lectures were offered for developers and users. Further conventions took place in Montreal in 2007 , in São Paulo in 2009 and in Weimar / Berlin in 2011.
Extensions
The standard Pd package only contains the objects required for processing serial number streams (e.g. MIDI data) and audio signals, but there are numerous extensions ( plug-ins , libraries ), e.g. B. for video data (PDP (Pure Data Packet) , PiDiP (PiDiP Is Definitely In Pieces) ), graphic data (Gem (Graphics Environment for Multimedia) ) etc.
Extensions can be made both in Pd itself and in a general high-level programming language such as B. C , C ++ , Python , Ruby . The Faust programming language, developed for real-time processing of audio signals, offers the creation of Pd extensions in addition to other plug-in formats.
Graphics libraries for Pd
- Graphics Environment for Multimedia (GEM) is mainly used in 3D.
- GridFlow is a raster-oriented video processing library.
- PiDiP / PDP video processing library
application areas
Pure data is currently used widely in art, science and teaching, especially for interactive multimedia projects. The ability to work and interact across a network is often interesting for artists.
literature
- Puckette, Miller: The Theory and Technique of Electronic Music ISBN 981-270-077-3 online
- Zimmer, Fränk: Bang: Pure Data Wolke Verlag, Hofheim 2006, ISBN 3-936000-37-9
- Kreidler, Johannes : loadbang. Programming Electronic Music in Pure Data . Wolke Verlag, Hofheim 2009, ISBN 978-3-936000-57-3 online
- Farnell, Andy: Designing Sound ISBN 0-262-01441-6 obiwannabe.co.uk Code examples
- Brinkmann, Peter: Making Musical Apps - Real-time audio synthesis on Android and iOS 2012 ISBN 978-1-4493-1490-3 (E-Book ISBN 978-1-4493-1489-7 )
- Barkl, Michael: Composition: Pure Data as a Meta-Compositional Instrument ISBN 3-8383-1647-9
- Sei Matsumura: Pd Recipe Book ―Pure Data で は じ め る サ ウ ン ド プ ロ グ ラ ミ ン グ ISBN 978-4-86100-780-4