Specifications

5
CHAPTER 2
Starting with
Pure Data
SECTION 2.1
Pure Data
Pure Data is a visual signal programming language which makes it easy to
construct programs to operate on signals. We are going to use it extensively in
this textbook as a tool for sound design. The program is in active development
and improving all the time. It is a free alternative to Max/MSP
TM
that many
see as an improvement.
The prima ry application of P ure Data is processing sound, which is what it
was designed for. However, it has grown into a general purpose signal processing
environment with many other uses. Collections of video processing externals
exist called Gem, PDP and Gridflow which can be used to create 3D scenes
and manipulate 2D images. It has a great collection of inter facing objects, so
you ca n easily attach joysticks, sensors and motors to prototype ro botics or
make interactive media installations. It is also a wonderful teaching tool for
audio signal processing. Its economy of visual expression is a blessing: in other
words it doesn’t look too fancy, which makes looking at complex programs much
easier on the eye. There is a very powerful idea behind “The diagram is the
program”. Each patch contains its complete state visually so you can reproduce
any example just from the diagram. That makes it a visual description of sound.
The question is often asked “Is Pure Data a programming lang uage?”. The
answer is yes, in fact it is a Turing complete language capable of doing anything
that can be expre ssed algorithmically, but there are tas ks such as building text
applications or websites that Pure Data is ill suited to. It is a specialised
programming language that does the job it was designed for very well, processing
signals. It is like many other GUI frameworks or DSP environments which
operate inside a “canned loop”
1
and are not truly open programming languages.
There is a limited conce pt of iteration, programmatic branching, and conditional
behaviour. At heart dataflow programming is very simple. If you understand
object oriented programming, think of the objects as having methods which are
called by data, a nd can only return data. Behind the scenes Pure Data is q uite
sophisticated. To make signal programming simple it hides away behaviour like
1
A canned loop is used to refer to languages in w hich the real low level programmatic flow
is handled by an interpreter that the user is unaware of