An Introduction To Pure Data (2012)

Back by popular demand, it's the Dorkbot PDX Introduction to Pure Data. This course is geared at students new to Pd or those who have tinkered in the past and would like another primer.


  • When: Sunday, April 1st, 2012
  • Where: Collective Agency (322 NW 6th Ave, Suite 200) in Portland, OR
  • Time: 1-5pm
  • Instructors: Collin, Alex, Jesse, Jason
  • Cost: FREE

About Pd

Pd (aka Pure Data) is a real-time graphical programming environment for audio, video, and graphical processing. It is the third major branch of the family of patcher programming languages known as Max (Max/FTS, ISPW Max, Max/MSP, jMax, etc.) originally developed by Miller Puckette and company at IRCAM. The core of Pd is written and maintained by Miller Puckette and includes the work of many developers, making the whole package very much a community effort.


  • bring a computer with working sound subsystem and Pd-extended installed.
    • Headphones might be nice!
    • Tabletop/mini amplifier might be nice.
  • If your prefer to install externals yourself, install Pd-vanilla.

Course Outline

NOTE This is a work in progress.

phase 1: examples/inspiration (~15 minutes)

  • show some example projects done in pd
    • pure-software example
    • example with hardware
    • killer one-liner

phase 2: pd primer (~15 minutes)

  • history and comparisons to Max
  • basics of visual language
  • basics of dataflow, relative to other languages
    • what is this? the picture is the program.
  • the Pd help system

phase 3: basics

  • primitive data types
    • float, bang, list, message, signal
  • basic graphical objects:
    • bang
    • toggles
      • properties dialog
    • number box
    • message box
    • sliders
    • object box
      • [print]
        • creation arguments
        • hook above into print
      • [osc~]
        • creation arguments
        • differences between audio and signal graphs (and what that means)
      • [dac~]
        • Ouch, that's loud -- how to control it
        • [*~] and slider

phase 4: learn how to build a counter

    • [float]
    • [+]
      • now is a good time to show the help for [+] etc
    • hot/cold inlets

phase 5: outlet ordering

  • outlet ordering
  • how to do 1 / x?
    • [trigger] to the rescue

phase 6: putting it together

  • [mod]
  • [select]
  • wire counter to oscillator
  • we have made a simple sequencer
  • [mtof]
  • introducing [metro]
  • introducing [vline~] (for notes, volume)
  • [spigot]
  • [route]

Bonus: If time allows....

  • delread~, delwrite~, vd~
  • env~
  • lop~
  • hip~
  • bp~
  • phasor~, signal~
  • send, receive (throw~/catch~)
  • tabread, tabwrite
  • tables and arrays
  • abstractions and sub-patches
  • GOP

where to find more: