Interactive Arts Programming


This page contains links to explanations and example Max patches that are intended to give instruction on some basic concepts of interactive arts programming using Max/MSP and Jitter.

The examples were written for use by students in the Interactive Arts Programming course at UCI, and are made available on the WWW for all interested Max/MSP/Jitter users and instructors. If you use the text or examples provided here, please give due credit to the author, Christopher Dobrian.

There are also some examples from the previous years' classes available on the Web: MSP examples and Jitter examples from 2004's class, and some other examples from 2005's class and examples from 2006's class.

You can find even more MSP examples on the professor's web page for Music 147: Computer Audio and Music Programming.

And you can find still more Max/MSP/Jitter examples from the Summer 2005 COSMOS course on "Computer Music and Computer Graphics".

[Click on an image below for a text version of the actual Max patch.]

Max/MSP/Jitter Examples

April 3, 2007

Example 1: Count numbers, use them to play notes

Example 1

Shows several of the most basic and useful Max objects.
Uses a metronome (a scheduler of timed, repeated triggering messages) to trigger a counter (which keeps track of, and reports, how many events it has received), and then uses the numbers from the counter to play notes on a MIDI synthesizer.

April 5, 2007

Example 2: Draw random multicolored lines

Example 2

Shows the use of random number generators, the LCD object for drawing graphics, and the use of replaceable $ arguments in a message box. Also uses the counter and select object to note how many times something has happened, and take an action when a certain number is reached.

April 10, 2007

Example 3: Minimal loops, using a portion of a table

Example 3

Shows the use of fast and slow metro objects (for individual events and longer-term events), counter objects (for cyclic repetition), random objects (for crude decision making), and table objects (for storing specific patterns of pitches and velocities) to make a minimal composer program that plays chosen patterns from within a stored melody.

Example 4: Soundfile player in MSP

Example 4

Shows the use of sfplay~ to play pre-recorded sound files, the use of gain~ to control their loudness, and a few other features of controlling soundfile playback in MSP.

April 12, 2007

Example 5: Play a movie in Jitter, fade in/out, jump around

Example 5

Shows the basics of displaying a movie with Jitter, and also shows the use of movie attributes to learn and use important information about the movie, how to jump around randomly within the movie, an easy way to fade the movie in or out, and how to fill the computer screen with the movie.

May 22, 2007

Example 6: Simplest way to record a sound

Example 6

Shows the basics of how to record and play back a sound file.

Example 7: Record a sound, with quick fade in and out

Example 7

Shows a slight improvement on the basic way of recording and playing back a sound file, fading the sound in and out quickly when recording in order to avoid clicks.

Example 8: Recording to and playing back from RAM (instead of a file)

Example 8

Storing and recalling sound in RAM using the buffer~ object and the various objects that can access a buffer.

Example 9: Adding subtitles to a movie

Example 9

Uses jit.lcd to draw black text on a white background, inverts the image, and then adds that to a movie.

Example 10: Colored subtitles

Example 10

Uses jit.lcd to draw white text on a black background, uses that monochrome image as the color and alpha channels, colorizes the text using jit.scalebias, and then does an alphablend of the text with a movie.

More examples will be added after each class session.

This page was last modified May 24, 2007.
Christopher Dobrian