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.
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.
This is a production class. 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 homework, class participation and attendance. All students must maintain web pages with catalogues of their homework to date and weblogs of their progress, frustrations, advice, fears and triumphs in reference to the class, learning Max and completing the final project.
I am open to 4th 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 the web pages:
If you do not know how to maintain a web page and/or a blog, it is your responsibility to learn. If you do not maintain the webpage throughout the class, you will fail it. Don't worry about making it pretty! I have zero interest in the design of your site; I just want to get a sense of how well you are doing with the material by perusing it. If you spend more than 10 minutes on designing the web pages, you are wasting your own time.
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. My office hours in the lab are 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. |
I will have office hours either in the main lab or at another location (you will have plenty of warning if this happens!) practically every tuesday evening, same time as the class. This will be the best time to reach me or ask me questions. I also check ema il 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.
Jan 29 | First class. Introduction to Max. How to run it, how to install it. A few dire warnings. Discussion of class requirements and structure. Meet and greet. Preparing media for live work. Why you don't want to take this class.
Assignments for 2/5:
|
Feb 5 | Jitter 101. Controlling Quicktime with Jitter. Mixing and compositing. What is a matrix? What is digital video?
Files from the class session. Remember that the files are going to work both on Macs and PCs, if you add a .pat extension. Assignments for 2/12:
|
Feb 12 | Midi 101. What is MIDI? Music, control. Simplesynth. External controllers. The serial object (possibly- let's see if it works yet). Keyboard and mouse control. A very first look at MSP. Files from the class in two parts: here and here. Files from office hours on 2-17 here.
Oh, and a little bonus. Some patches that generate nifty MIDI. Assigments for 2/19:
|
Feb 19 | MSP 102. The basics of buffer~ playback and manipulation. What is digital sound? Also: an introduction to encapsulation, modularity, abstractions and bpatchery. The #n thingy. Patches from class are here.
Patches from office hours are here. Assignments for 2/26:
|
Feb 26 | Live input and color tracking- the cv.jit package. More on audio. Teasing people with softVNS 2. Remember to mention that you're in my class if you ask David for a demo.
Assignment for 3/4:
|
Mar 4 | Random topics and catchup. Performance strategies. Synesthesia. Cube of video patch is here. |
Mar 11 | Midterm clinic. We will work in the lab today. Patches from class |
Mar 17 | Midterm Performance. Be at Remote Lounge at 8:30 PM. The show will start at 9 PM. Invite everyone and anyone.
|
Mar 18 | Short class. Display of non-Remote midterms. Description of final project. No Homework Over Break- relax! |
Mar 25 | No class or office hours this week- Spring Break! |
April 1 | Guest lectures by crazy people who make their own MSP musical interfaces.
Also a brief introduction to jit.openGL. Patch here. |
April 8 |
One more guest lecturer, plus final project clinic. Please mail me final project ideas by April 10. |
April 15 | Guest lectures by two programmer-performer-renaissance men: |
April 22 | Final project clinic sessions. |
April 29 | Final project clinic sessions. |
May 6 | Final project clinic sessions. |
May 13 | Final projects due. Guests encouraged at this class. |
There are no books in the bookstore for this class. All texts are in freely downloadable PDF files and web links. It is strongly, strongly encouraged for you to print them out. Kill a tree, save your brain.
The standard platform for this class will be OS X. Max/MSP for OS 9 is no longer actively developed by Cycling '74, and now that all of the Design & Technology lab computers are running OS X, it seems silly to continue to work with OS 9. We will use OS X in classroom sessions, and the idiosyncracies of dealing with OS 9 Max applications will no longer be actively taught. The lab machines will always run the latest version of the Max/MSP/Jitter betas, and you are encouraged to keep up as well.
Max/MSP 4.3 for Windows XP was released in late August. Jitter remains in beta for the Windows platform, and the school has not yet bought licenses of the Windows software. You are welcome to experiment with the new port, but all work done for the class must be compatible with Max/MSP version 4.3 for OS X. This may be the final semester of Mac bigotry in this class, depending upon the release schedule of Cycling '74.
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 third-party software we are putting on the lab machines is contained in a stuffed archive here, for those of you playing at home.
There are many sites about Max on the web. This list will grow throughout the class.
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.
Last updated