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 8bit numbers, or video frames.
We will also touch on David Rokeby's outstanding SoftVNS 2.0 suite of objects, which are specifically tuned for live video 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.
This is a production class. A final Max programming project, consisting either of an installation piece or a performance, 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 30 minutes on designing the web pages, you are wasting your own time.
I will have office hours in the main lab every tuesday evening, same time as the class. 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.
Jan 30 | First class. Introduction to Max. How to run it, how to install it. A few dire warnings- the horror of OMS. Quick and dirty introduction to MIDI. Discussion of class requirements and structure. Meet and greet. Demonstration of some Max projects.
Assignment: The first 23 Max tutorials. (Max tutorial files are here, tutorial manuals are on the max manuals page. You will need both, and I recommend you keep your own copy of the tutorial files.) Set up your class website. Supplementary info: Information about MIDI. Some great images of MIDI control patches. |
Feb 6 | Getting deeper into Max. Questions and answers about the tutorials. Abstractions, custom externals, bpatchers. Max programming advice. How to share patcher files.
Assignment: Make an autonomous MIDI bot. Put it on your website. Some examples of MIDI bots by Josh are here. Here's David Zicarelli's qtmusic object, for getting the Quicktime MIDI synthesizer to work in X-Max. It has one problem: instruments picked via the 'pick $1' command must be picked twice to function. |
Feb 13 | The basics of MSP. A brief history of computers and sound. Discussion of sound formats.
Assignment: The first 20 MSP tutorials. MSP tutorial files are here. |
Feb 20 | More on MSP. A review class, a question & answer session. Milena Iossifova and the voiceMutator.
Here's the harmonic explorer patch that was playing on the screen at the beginning of class. Assignment: Make an MSP sound toy. Put it on your website. |
Feb 27 | Max and Video: Jitter I. An introduction to video file formats and video control in Max. Demonstrating the capabilities of Jitter. What is a matrix? Video tracking, Quicktime manipulation, OpenGL possibilities. Tying it all together: jit.peek~ and jit.poke~.
Assignment: The first 21 Jitter tutorials. Jitter tutorial files are here. |
March 6 | The fork in the road: installation or performance? Answering Jitter questions. Lindenmayer systems, particle systems, more on OpenGL.
Assignment: Make something cool with Jitter. Put it on your website. |
March 13 | How to make standalones. Pulling it all together: what's it for? Is this art? Can it be? How can Max patches transcend the 'nifty' factor and actually become art? The role of technology in art, and vice versa.
here's the jit.findbounds patch that actually works. Here's the crossfading-between-two-halves-of-the-movie patch. Assignment: Take one of your previous patches and extend it into something more finished. Make it into a standalone. Consider this the midterm. |
March 20 | Demonstration of midterm patches by students. Introducing SoftVNS, if there's time. |
March 27 | No class; spring break. |
April 3 | Final project proposals and presentations due. Some patches from this class, and from after class:
|
April 8 | Special makeup session: Intro to SoftVNS. Grrr... |
April 10 | Performance guest speaker: Kurt Ralske |
April 17 | Guest instructor: Luke duBois. Luke will teach half the class, and after class is over I'll go over to SVA to talk to his students over there. Join me if you wish! |
April 24 | Installation guest speaker: HC Gilje |
May 1 | In-class presentations and demonstrations. here's the scripting example patch for anjali. |
May 8 | In-class presentations and demonstrations.
|
May 15 | Final show and critiques. |
There are no books in the bookstore for this class. All texts are in freely downloadable PDF files and web links. You do not have to print them out, but some of you may find it easier to do so.
XMax, or Max/MSP 4.2, has not yet left beta. If you are adventurous, or if your Macintosh is so new that it can no longer boot into OS 9, you are welcome to join the XMax beta. Information on it is here. I have no problem with you using XMax on a daily basis, but it is your responsibility to make sure that your publicly posted patches run on 9, so that the X-challenged folk in the class do not feel left behind. Jeremy Bernstein is occasionally maintaining a list of external object pages that have been updated to work with Xmax.
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