Pure Data: Recent Progress
Pure Data: Recent Progress
Pure Data: Recent Progress
Miller S. Puckette
Department of Music, UCSD
msp@ucsd.edu; http://man104nfs.ucsd.edu/ mpuckett/
c 1997 Keio University. Reprinted from Proceedings, Third Intercollege Computer
Music Festival, Tokyo, pp. 1-4.
1 Introduction
The Pd program [1]; [2] has been under development for about a year and a half. At the same time, Mark
Danks has been developing Gem [3], a real-time graphical synthesis/processing/rendering environment which
runs in concert with Pd. The goals of the Pd and Gem development e orts can be summarized as:
a real-time patchable environment ala Max;
management of audio and image processing in the same environment;
adaptability to a wide range of platforms;
long-term stability;
a newer and more exible set of tools to manipulate data.
Pd follows the Max paradigm for object interconnection and message-passing between objects. Along
with Opcode Max-style \control" messages, Pd supports ISPW-style signal connections, so that a part of a
Pd patch can be a Moog-style patch. Similarly, using Danks's Gem package, a Pd patch can include a chain
of Open GL directives linked in much the same way as the audio, but giving rise to a graphical rendering
procedure.
Some progress has been made toward the goals shown above. Pd's development has recently been driven
by the production of Lemma 1 (Thessaloniki, Sep. 27, 1997) by Vibeke Sorensen, Rand Steiger, and Miller
Puckette, and of pushit (San Diego, Nov. 8) by Mark Danks. Both of these performances integrate live
instrumental players with live computer graphics controlled by the sound of the musical instruments.
The setup of Lemma 1 is shown in Fig. 1. A live trombonist and trap drum set player (George Lewis
and Steven Schick) are on stage at either side of a large projection screen. An audio computer does real-time
analyses of the two instrumental signals. This analysis data is sent to a graphics computer which uses Gem
to render live graphics which can be animated in a variety of ways by the analyzed instrumental sound.
Sorensen, Steiger, and Puckette plan to develop Lemma 1 further into a series of improvisations over the
next few years, incorporating the additional idea of networking two or more sites into a combined event. In
this con guration we would send analyzed data from the instruments of each site over the network so that
other sites could use the data to control either sound synthesis or graphics.
local network
audio graphics
computer computer video
projector
MIDI
synth
On another computer, a netsend object can then be asked to connect to the netreceive's socket, using
its internet host name and port number. If the connection succeeds, the netsend can be asked to forward
any Pd message to the receiving computer.
There is no guaranteed maximum latency for the transfer; this depends on how the messages are routed
over the internet. Overall latency might be reduced by making a direct telephone connection between the
two machines, either analog or ISDN, and running TCP/IP directly over the phone line. There is also no
built-in time stamping feature in netsend/netreceive, although the designer of a Pd patch could easily
embed time stamps in some or all of the messages transmitted.
old spectrum
known spectra
Figure 2: The \bonk" object measures the growth in the spectrum of a sound over a short interval of time. If
the energy rises enough overall, the \new" energy (in black at top) is compared with a collection of pre-stored
spectral templates to determine what kind of attack has occurred.
The discrete outputs report stabilized pitches and attacks. A stabilized pitch is found if any of the
(from one to three) pitch tracks has varied no more than a certain amount over a certain period of time
(both quantities may be set by the user.) An attack is a suciently abrupt rise in overall amplitude
(where \abruptness" is de ned through other user-speci able parameters.) Discrete pitches and attacks
might be interesting in a score following context, whereas the continuous outputs might be more useful for
analysis/resynthesis applications.
It would be very useful to extend the functionality of fiddle~ to report spectral envelopes, both of
detected pitch tracks and of the signal overall, not only for analysis/resynthesis applications but also because
the spectral envelope might be an interesting source of control (over a graphical synthesis process as in Lemma
1, for example.) This development will have to await a time when Pd o ers a bit more of the necessary
infrastructure.
The bonk~ object is intended for analysis of noisy sounds (as opposed to sounds with discrete spectra,
which jack~ and fiddle~ are concerned with.) Rather than starting with an FFT and nding peaks, the
analysis front end of bonk~ is a constant-Q (half-octave) lterbank giving 21 envelopes at di erent regions
of the spectrum. Since bonk~ is intended for use with percussion instruments, the analysis window is kept
extremely small (six milliseconds); the analysis is carried out every three msec. (In contrast, a typical
analysis window for ddle is 20-40 msec.)
It is well known that envelope following alone is usually inadequate to detect percussive events. In most
percussion playing, new instruments are often hit while the same or a di erent instrument is still \ringing;"
the relative amplitude increase may be small compared to the natural amplitude uctuations in the sound
of ringing instruments. The approach taken for bonk~ is to hope that a new instrumental strike will at least
be marked by a rapid rise in the energy in some frequency band, even if the overall energy does not rise.
The energy growth (shown in black in Fig. 2) can then be compared to a collection of energy templates
corresponding to the known spectra of the instruments to be played. The spectrum which matches most
closely furnishes a guess as to which instrument has been hit.
4 Platforms
Four platform families now enjoy some level of Pd support. At UCSD, we maintain Pd for Intel platforms
running the NT operating system, and for IRIX (the SGI operating system.) The Gem package also runs on
both of these, using their indigenous OpenGL systems. In principle, Pd could be run under Windows 95 as
well as NT, but there will doubtless be sound and MIDI driver trouble, and no OpenGL package is known
to exists there.
Guenther Geiger has ported Pd and Gem to Linux for PC compatible computers. This platform o ers
a high-quality, low-cost alternative to Microsoft operating systems.
Finally, in a most unexpected but welcome return to Max's root platform, David Zicarelli has taken Pd's
audio package as a starting point for his very highly acclaimed MSP (\Max Signal Processing") package,
which runs under Opcode Max. Although the long-term viability of the Mac as a real-time platform is
uncertain, in the next few years (and perhaps for much longer than that) MSP will be the most popular
real-time signal processing package available.
5 Acknowledgements
This research, and the series of improvisations are both made possible by a generous grant from the Intel
Corporation. We have also received support from SGI and E-mu corporations.
References
[1] Puckette, M., 1996. \Pure Data: another integrated computer music environment." Proc. the Second
Intercollege Computer Music Concerts, Tachikawa, pp. 37-41.
[2] Puckette, M., 1997. \Pure Data." Proc. ICMC, Thessaloniki, pp. 224-227.
[3] Danks, M., 1997. \Real-time image and video processing in GEM." Proc. ICMC, Thessaloniki, pp.
220-223.