Personal tools
You are here: Home development PDDP GraphicalDataflowProgramming

Graphical Dataflow Programming

The idea of graphical dataflow languages have existed for decades, yet this idea has not found the same level of acceptance as OO or procedural programming. There are two grapical dataflow languages which have gained widespread acceptance in specific realms: Max and LabView?. This course focuses on Pd (aka Pure Data) which is a member of the Max family of languages. It will start out with the basics of the Pd programming language, and move from the fundamentals of the language itself to how to organize large projects. The Max paradigm will also be compared to object oriented languages to get an idea of the differences and similarities.

week 1 Pd Overview

  • what is Pd?
  • what can you do with Pd?
  • examples of works done with Pd.

week 2 objects and connections

  • objects and connections
  • bang
  • always running

week 3 data and message types

  • numeric and symbolic "atoms, pointers
  • "symbol", "float", "list"
  • selectors

week 4 processing generic messages

  • [route]?, [select]?, [list]?
  • lists vs. selector sets

week 5 audio

  • control rate versus audio rate
  • special data type with distinct connection type

week 6 arrays

  • storing numeric data
  • visual representation of that data
  • read, write, modify methods

week 7 graphical data structures

  • structs and pointers
  • arrays and structs
  • visualization of data

week 8 encapsulation

The key to building large projects is encapsulating ideas into reusable chunks.

  • subpatches
  • writing objects in Pd
  • Pd vs. Object Oriented Programming

week 9 video

  • video tracking: grid, blob, color, movement
  • realtime effects

week 10 OpenGL?

  • Using 3D objects to represent interface ideas
  • displaying data in 3D

Example: VIFE

RBL soft

week 11 input and output

  • tablets, joysticks, gamepads, mice, keyboards
  • serial, parallel, usb, HID

week 12 networking

  • interacting across distances
  • collaborative enviroments

Example: netpd

week 13 final project presentations


  • Composing Interactive Music, by Todd Winkler ( MIT Press, ISBN 0-262-23193-x)

Optional Readings

This is a collection of readings on related topics for anything that you migth want to delve deeper into.


Pure Data





Ideas to Add

the difference between a code block and a function: subpatches are code blocks and abstractions are functions, kind of. The real power of abstractions is not, that they are in their own files so they can be used for code reuse. The real power is, that they can accept arguments.

Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser