puredata
Transitioning from SuperCollider to Puredata…
- SuperCollider
- a language (sclang) for describing audiographs, patterns/sequences, and controls; code generates OSC messages
- a server (scsynth) that compiles and runs these graphs, sequences, and controls given OSC messages
- graph representation is done using the SynthDef file format
- Puredata (pd)
- a “data flow” language for describing audio and control graphs
- a runtime/server that compiles and implements these graphs
- graph representation is done using the pd file format
Homework 4
Re-write SubSynth from Homework 3 in puredata. Your patch should play notes with randomized parameters every 500 milliseconds using [metro 500].
PD (puredata)
History
- Written by Miller Puckette
- Miller Puckette worked with Barry Vercoe and knew Music11 well
- MAX
- Developed in 1985 by Miller Puckette to do control signal processing on IRCAM’s 4X system
- The first versions of MAX had no graphical interface!
- Interprocess Communication and Timing in Real-Time Computer Music Performance (ICMC 1986)
- They were essentially a control-only real-time version of a Music-N language
- i.e. control in / control out
- Drew inspiration from Max Matthews’ RTSKED and Vercoe’s and Puckette’s Synthetic Performer
- Real-time interactive scheduling and processing
- Towards the end of the 80s, he started work on “The Patcher”
- PD is a re-write of Max to enable it to have generic data types like audio, graphics and spectral data
- Puckette’s thoughts on the rewrite
- “My own journey into the open source movement came about because I got burned by the old model”
- “I left IRCAM, and when it became clear that they would not permit my further work on Max to be disseminated, I gave up and started a new project, Pd”
- Announced in 1996
- Pure Data another integrated computer music environment (ICMC 1996)
- “PD’s first application has been to prepare the figures for an upcoming signal processing paper by Puckette and Brown”
- http://puredata.info
##Language
- Client/Server model, but not as separate as SuperCollider
- client displays information from the server and instantiating server nodes
- client offers graph editing
- Not real-time safe as SC, requests or data to/from the GUI can block the audio thread
- Domain specific, data/signal flow language
- the processes done to signals are described as a connected visual graph
- like other MUSIC-N systems abstracts the fact that there is an internal audio processing loop implicitly called
- Audio is processed by blocks, but control signals are asynchronous
- i.e. control data is not a continuous stream, but is comprised of events
- Control events trigger the rest of the chain underneath
- Control data is not a signal but an event
- To generate control signal, many events are generated one after the other
- timing can be an issue: order of events move right to left, top to bottom
- so node placement determines event order
- use [t l b] to explicitly order events
- Object based but not object oriented
- Objects with properties and methods
- No inheritance (in the strict sense)
- Types
- float (no integers!)
- symbol (like a string)
- list
- bang
- Basic elements
- Object
- Bang
- Number
- Slider
- Toggle
- Message
- Connections are either control connections or audio connections
- Because control connections are asynchronous and they can carry any type of data
- things like video use “control” connections