Personal tools
You are here: Home development PDDP GraphicalDataflowProgramming

Edit history

Edit: -1 of 1
Time: 2006-12-20 12:40:27
Note: /pd/pd/portal_catalog/manage_catalogRebuild

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


 - Pd Manual

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


- Buxton, W. (1990). The Natural Language of Interaction: A Perspective on Non-Verbal Dialogues.

- Buxton, W. (1990). A Three-State Model of Graphical Input.

Pure Data

- Puckette, M. 1991. "Combining Event and Signal Processing in the MAX Graphical Programming Environment." Computer Music Journal 15(3): 68-77.

- Puckette, M. 1996. "Pure Data: another integrated computer music environment." Proceedings, Second Intercollege Computer Music Concerts, Tachikawa, Japan, pp. 37-41.

- Puckette, M. 1996. "Pure Data." Proceedings, International Computer Music Conference. San Francisco: International Computer Music Association, pp. 269-272.

- Puckette, M. 1997. "Pure Data: recent progress." Proceedings, Third Intercollege Computer Music Festival, Tokyo, Japan, pp. 1-4.

- Puckette, M. *Max at 17*, Computer Music Journal, Volume 26, Number 4, 1 December 2002, pp. 31-43(13)

- Puckette, M. 2002. "Using Pd as a score language." Proceedings, ICMC, pp. 184-187


- Physical Computing


- Computer Vision for Artists and Designers 



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