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
  • 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