vision and sound with max
parsons cdt fall 2008
joshua goldberg

overviewrequirementsjoshschedulelinks and resourcesphotos
fall 2007 page is here


Max is a graphical multimedia programming environment. It was originally developed by Miller Puckette as a MIDI mediation language at IRCAM, and is now currently maintained and sold by David Zicarelli's company Cycling'74.

It is an ideal environment for developing two kinds of applications: realtime processing of data, such as serial input, MIDI messages, sound, video, 3D and system messages; and mapping data from one format to another in wildly creative ways.

Max is the core language, used for MIDI, basic data manipulation & interface design. MSP is the digital signal processing architecture of Max, used for manipulating frequency, or streams of numbers at extremely high speeds. Jitter is Cycling'74's extension for fast processing of large grids of numbers, or matrices. It is especially optimized at points for 4-plane grids of eight bit numbers, or video frames. It also is an extraordinarily powerful development environment for nontraditional 3d graphics work.

This is a course for two different kinds of students: those interested in using Max to program installation pieces, such as physical computing projects or dynamic site-specific artworks; and those interested in developing custom interfaces for performance. Be warned: this is both a math class for artists and an art class for math people. If you do not have interest in either one of these areas, drop the class now.


A final Max programming project, consisting of an installation piece, a performance or a generative artwork, will count for 50% of the final grade.

The other 50% of the grade will depend on student participation, in the form of

I am open to 3rd semester students using Max in their theses for final credit, as long as it takes the form of an installation or a performance.

I am also quite open to students collaborating on final projects, or doing one project for two classes.

A note about class participation:

In my experience, people who are quiet in class fall into two categories: those who understand the material completely and are bored, and those who are terrified because of their ignorance. If you fall into the first category, your work had better be incredibly impressive, because you should be inspiring the class to work harder and learn more, so everyone else can get up to your level. If you fall into the second category, you should have dropped the class.

What I mean to say is this: there is practically no excuse for reticence in my classroom. We have a lot of material to get through, and I talk fast. If you don't understand something, and you don't immediately speak up and say that you don't understand, you are asking for trouble come midterms and finals time, because I will have been laboring under the assumption that you knew it all.


I am the kind of teacher who wants to be surprised and challenged by my students.

My time in the lab is for working with students on ideas and techniques which may not have been covered in class, so that projects can be better developed and independent work can be done. They are NOT for retreading issues I had believed were completely understood.

You will never look bad in my eyes for admitting you don't understand something.

You will look terrible if you do not.

the instructor

I will have office hours either in the main lab or at another location (you will have plenty of warning if this happens!) at a time to be announced after the first class of the semester. This will be the best time to reach me or ask me questions. I also check email frequently.

More information on me is available on my outdated and inconsistent website. My work is occasionally interesting, but not under any circumstances to be aped. You are all incredibly bright, gifted students. I have no doubt that the work you produce in this class will make mine look cheap, uninteresting and gimmicky. Make me proud.


Warning: My professional life can verge on the chaotic. At least two classes are already missed; makeups will be attempted as best we can. Here's the New School's academic calendar, for your reference.

Class 1 9/9 Why not to take this class. Max 101: Ints, floats, symbols, lists. How timing works. The LCD object. MIDI 101.

Due for class 2:

  • Download and install the latest version of the application.
  • Watch the Tutorial Zero video and read "How The Documentation Works".
  • Read the following sections in the in-application Max Help: "The Basic Activities of Making Patches", "Editing Objects", "Working with Files". Also look at the "Tips and Shortcuts" section.
  • Do all of the Max Basics tutorials, and make yourself understand how every single one of those patches works. Those of you who are ravenous for more should keep going into the MIDI and Data stuff. It won't hurt, it WILL help, and you'll be a hero.
  • Open the LCD help patch and make sure you understand EVERYTHING about it, except for the regions, clipping and sprites stuff. (Be prepared for in-class grilling.)
  • Make something with LCD. Extra super special bonus points for incorporating MIDI in some way. Homework must be placed in the drop box before the start of class 2. Those of you with laptops should have your homework READY TO GO; you will show it on your own machine, using the projector.

This should take you at least 5-7 hours, not including the printout time. Anything less and it's fair to say that you are giving the class short shrift, and should consider dropping it now. If it takes you much more time than that, it's a fair assumption that you are doing the right thing.

If you are having trouble, you should take advantage of the itp-sound mailing list. Daniel Palkowski, Luke DuBois and I assign membership of this list to our students, and many alumnae and alumni of our classes stick around. The list's prime function is a safe space for beginning Maxers to ask what they may assume are stupid questions. Hit a wall? Don't give up, and don't beat yourself up. Ask the list.

Patches from class here.

Class 2 9/23

Showing first LCD efforts. Some more discussion of MIDI.

Due for class 3:

  • Read the following: What is a Matrix? Jitter Attributes, and Appendix A (Quicktime). These can be found in the Max Help section, under Jitter.
  • Make four 15 second movie clips to use in your patches instead of the stock media.
    • They MUST be in this format: Quicktime .mov format, PhotoJPEG codec, 15fps, 320x240, High quality, non-fast-start, no sound.

Patches from class here. Sorry they're late. :(

Class 3 9/30

Jitter 1: Quicktime and camera input. Complexity and encapsulation.

Homework due Class 4:

  • Do the following Jitter tutorials: 1-20, and 29. This is a HUGE amount of material. Plan your time accordingly, and don't forget to use the list as a resource.

Patches from class here.

Class 4 10/7

Jitter 2: Matrix manipulations and intermediate tricks.

Homework due Class 5:

  • A Jitter bot. Make a Jitter patch that does something interesting, using the footage you compressed for Class 3. Extra credit: Use the LCD patchwork you made for Class 2 as an alpha channel!

Patches from class here.

Class 5 10/14 Jitter 3: Jitter assignment presentations.

Homework due class 6:

  • Print out the following manuals: MSP Tutorials and Topics, MSP Reference.
  • Download the tutorial files.
  • Read the following: Introduction, How Digital Audio Works, How MSP Works, Audio I/O
  • Do the following tutorials: MSP tutorials 1-17. You've got two weeks to do this. Make it count! This stuff is the hardest material yet, and it is DENSE. Start early.

Patches from class here. Sorry they're late.

Class 6 10/21 MSP 1: Sound file playback and manipulation

Patches from class here.

Class 7 10/28 MSP 2: Synthesis and Synesthesia.

Homework due Class 8:

  • An MSP bot. Make an MSP patch that does something interesting. Use found sound or live recorded sound, or pure synthesis, but do not use the example media in the program! You will play it for two minutes in class.

Patches from class here.

Class 8 11/4 MSP 3: MSP assignment presentations.

Homework due Class 9:

  • Midterm project proposal.

Patches from class here.

Class 9 11/11 Collab clinic sessions.
Class 10 11/18 Collab clinic sessions.

Class 11 11/25

Collab performances. Guests encouraged at this class; we will also try to get a decent venue.

Due Class 12:

  • Final project proposal
Class 12 12/2 Final project proposal presentations.
Class 13 12/9 Final project clinic sessions.
Class 14 12/16 Final projects due. Guests encouraged at this class.

links and resources

Texts for the class:

There are no books in the bookstore for this class. All texts are in freely downloadable PDF files and web links.

A note on computers for this class:

Here's a sad truth: People who bring Mac laptops to my class will have a distinct advantage.

I am a Macintosh bigot, and have been so for decades. Windows, especially Windows Vista, is a subpar environment for the software we will be using for this class. Driver issues, DirectX inconsistencies, idiosyncratic audio tools; the reasons for my warning are legion. I can fix problems like that on the Mac side, but not on the Windows side. Working with a Mac will save my time and yours.

Max is an idiosyncratic environment. You will, over the course of the semester, develop a workflow for your patches which will be greatly dependent upon the general workflow of your own computing environment. Having your own laptop is the easiest way to deal with this. Even the low-cost Apple MacBooks will be superior to using Windows or depending upon the lab computer infrastructure.

You are encouraged to purchase a limited-time student license of Max/MSP/Jitter from Cycling '74. Start saving your quarters now; those of you who wish to continue to the Max 2 class may find yourselves in need of the real $450 thing.

That being said, most of the lab machines have up-to-date copies of Max/MSP/Jitter on them. Use them in a pinch, but I cannot recommend relying upon them, and will not accept tech issues as excuses for late or incomplete homework.

A note on extensions:

There is a rich tapestry of third-party extensions for Max. Many of these work very well with OS X. Installing these is quite easy if you have administrative access to your working machine- i.e. if you're working on your own personal laptop. The lab Macintoshes have the third-party extensions judged relevant and necessary. If you feel there is an extension set you would like placed on the lab machines, please talk to me; you're probably right and I'll put it on there.

Max links:

There are many sites about Max on the web.

Mailing lists:

There is no better way to learn Max than to ask questions. Asking questions is easy when you have the patience for mailing lists. Joining one or all of these is not required for the course, but you will find it much much easier to learn the material with community support.

class photos

Alexis Feurer Bruce Drummond Cecilia Elguero
Clayton Ewing Dan Kramer Ira Goldberg
Julia Valeria Lev Kanter Matt Meade
Simeon Paulin

Last updated Mon, Nov 10, 2008, by Joshua Goldberg.