MaxMSP is a visual programming language that helps you build complex, interactive programs without any prior experience writing code.  MaxMSP is especially useful for building audio, MIDI, video, and graphics applications where user interaction is needed.  This Instructable is part of a 3-part workshop I'm running at Women's Audio Mission, it's part one of three Instructables that I'll be publishing over the course of the next week.  (Part 2 - intermediate MaxMSP) (Part 3 - getting Max to talk to hardware)

MaxMSP is split into several parts - "Max" handles discrete operations and MIDI, this is the easiest place to start getting familiar with the tool.  "MSP" deals with signal processing and audio.  And "Jitter" is for graphics rendering and video manipulation.  This course will cover Max and MSP.

Here are some examples of awesome things you can do with Max.  My favorite Max applications are the ones that incorporate some kind of hardware interface.  There's tons of way to do this, here are a few:

ReacTIVision is a free, open source tool that communicates with MaxMSP and allows you to track objects with a camera by printing out and attaching small paper markers on them.  The software tracks x and y position and rotation and it's great for incorporating real world objects into your MaxMSP patch and making table top interfaces.  It was originally written for the ReacTable, a table top multitouch instrument:

Some examples of ReacTIVision and MaxMSP:

An interactive dining table (by my friend Evan!):

Table Top mixer:

Interactive structure:

Chain reaction arpeggiator (I don't think this actually used reacTIVision, but it could):

The XBox Kinect is a hackable depth sensing camera and gesture tracking device.  Data from the Kinect can be imported into MaxMSP through an application called Synapse.  Synapse allows you to track x, y, and z coordinates of each major joint of the body (head, elbow, hand, knee, etc).  Here are some cool projects that use Max and the Kinect:

Gestural instrument/Composition

Little Boxes: interactive installation

Arduino is a tiny computer that can be programmed to control circuits in all kinds of crazy-cool projects.  With the addition of Arduino, it's possible to extend your MaxMSP patches into the physical world.  There are a lot of ways to get Arduino and Max to talk (I will definitely be writing an Instructable about this in the future), including MIDI, Serial, and any of the options listed on the Arduino website.  Some options (like Arduino2Max) allow you to read directly from the Arduino pins, and others rely on USB communication.    Here are some examples of projects that use a combination of MaxMSP and Arduino to facilitate unique physical interactions:

Robotic Drum Kit

Noisy Jelly - Tangible Jelly synthesizer interface

Musical Iron:

Fine Collection of Curious Sound Objects (this actually uses Processing instead of Max, but it could be done with Max)

Underwater - A realtime visualization of ocean data

There is a third type of MaxMSP object that I won't have time to get into here, but once you've got Max and MSP down you should check out Jitter.  Jitter lets you manage video and graphics inside Max, so you can import data from a camera or create realtime visuals for your app.

Dyskograf - a drawing based sequencer:

Audio Interface with realtime video output

Interactive projection mapping

The MaKey MaKey is a usb device that you can clip to anything conductive to transform that thing into an interface.  Essentially what it does is trick your computer into thinking that it is an external keyboard, then the things you clip to it become keys.  You can read these commands using the "key" object in max, no external software required.  This one is super easy and fun!

Vegetable Instruments:

One last note: Pure Data is essentially the free, open source version of Max.  The main ideas and most of the objects are nearly identical, though I've found that I prefer Max's interface a little better.  But if you don't have the funds to shell out for a copy of Max, Pure Data is an excellent option.

Step 1: Example Projects - Max and MIDI

Chopin: as you play piano, the patch listens to what you're playing and plays an accompaniment:

Harmonic Table Sequencer: a 2D spatial sequencer based on the harmonic table

Visual Arpeggiator

Generative physics sequencer:

Polyrhythmic sequencer

Tree Ring Music Player

<p>Excel Software makes tools to protect, license and sell any kind of software application including MAX MSP. See http://www.excelsoftware.com/max</p>
<p>Thank you, step by step and useful pics. </p>
Superb guide.
This is a fantastic resource Amanda! Really well done and SO appreciated. THANK YOU!
oh wow this is an awesome post Amanda. Looking forward to more! ;) Thank you
<3 thank you.

About This Instructable




Bio: I'm a grad student at the Center for Bits and Atoms at MIT Media Lab. Before that I worked at Instructables, writing code for ... More »
More by amandaghassaei:OTCA Metapixel - Conway's Game of Life "9 Degrees of Freedom" IMU Twitter Controlled Pet Feeder 
Add instructable to: