Skip to content


ATS/Sound 3053:  Programming for Sound: Max/MSP

Rough Syllabus

Below is a ROUGH syllabus for the class (subject to change once we are underway and I have a better sense of the learning speed / background / needs of the class members):

Week 1:


Class Overview

Overview / quick History of Max/MSP, IRCAM, etc.

Max/MSP installation

Quickstart – A Brief Tour of Max – overview of basic components

assignments for next week:

Max Tutorials:  Hello, Bang!, Numbers and Lists, Metro and Toggle, Message Ordering

Week 2:

Visual Programming in Max –  Basics

Objects and Patchcords

The Patch / the Max Window

Basic editing / interface issues:  The Hello patch

Messages types: The Bang message, Numbers, Lists

basic User Interface Objects:  Button, Toggle, number box

Ordering of messages

creating basic timing:  the metro object

assignments for next week:

Max Tutorials:  Simple Math, Numeric User Interfaces, Keyboard and Mouse input

Week 3:

More Max Basics

Solutions: the trigger object.

Doing Math / problems with using two inlets

Solutions:  the bondo object

More user interfaces: Sliders and Dials

an introduction to data input objects: rslider, Pictslider, Radiogroup, menus

Doing complicated expressions (regular expressions) – expr

looping and iteration: the counter object!!!

getting basic input: the key and mousedown objects


assignments for next week:

Max Tutorials: Timing, Mouse Drawing, Random Drawing,


More Essential Objects

download  examples: moreEssentialObjects

basic video playback

a quick  introduction to lists

a quick intro to the table object

Basic Scheduling of events

Basic drawing objects

Jpeg objects

assignments for next week:

Assignment 1: make 3 different timer loops that each trigger a separate event.  Events could be the appearance/disappearance of text, changes (hopefully interesting ones) in any of the graphical objects, etc.

Week 5:


download Midi examples: MIDI examples

MIDI – history / ideas

anatomy of a MIDI message

the MIDI hardware settup

getting MIDI message in/out of Max – using the built in synth

Generating and managing Note events

Controller messages

Parsing MIDI


assignments for next week:

Max Tutorials:  MIDI section:  Basics, Note Management, MIDI parsing

Week 6:


creating patchers  (Download encapsulation files)

the abstraction

including arguments

structurally how to use encapsulation

Inline patchers: bpatcher

building your own library of objects

using send/receive

pattr – state control and storage within encapsulated patches

Example: Programming Random processes – building a ranged random number abstraction

Week 7:

Data Management

download maxDataTutorialsTutorials on basic objects for handling data – collections, tables, etc.

The table object – revisted

using route with lists

gates and switches – revisited

collections – how to store more complex data – the coll object

using message boxes to store complex data

assignments for next week:

Midterm Project

Use 3 different loops of different lengths  to generate a pattern of MIDI pitches.  Each loop is responsible for a different period of time – one for long phrases – one for short phrases  – one for intermediate phrases.  These loops can either be embedded within each other, or can operate simultaneously (and separately).  Either way, do this by making a “phrasing” abstraction that creates phrases of a length given as an argument and that then you can use with different arguments to create the different phrases. Write a separate abstraction to generate rhythms that is used within the “phrasing” abstraction – generating starting times and durations for each MIDI note.  Use the built-in synth, or your own MIDI device to play the resulting composition/performance/sequence.  This patch can be extended as you like, but should contain the above as a minimum.

Week 8:

MSP Basics

Basics of Digital audio A/D and D/A object – Audio DSP settings – Audio patch cords

The cycle~ object

the multiply (*~) and its effect on signals

the gain~ object

routing and switching signals

assignments for next week:

Max Tutorials:  MSP Section:  Introduction, How MSP Works, Audio I/O, MSP Tutorials 1-6

Week 9:

Basic Audio Playback and control

Using buffer~ and groove~

The waveform~ object

An example sample playback object (Download samplePlayer files)

ideas for sample playback control interfaces

storing audio into buffers

graphic display of buffer contents

the groove~ object

scrubbing, looping, and other sample playback techniques

assignments for next week:

assignment 4: Sample Playback patch – create a simple performance patch that uses audio opened into 3 or more separate buffers, presets which control settings for looping, etc. and waveform objects for display.

Week 10:

Introduction to Synthesis Techniques

Control/audio pairs

Cycle~ and line~ revisited

Controlling amplitude envelopes, and other functions through time.

Generating noise~

Additive synthesis

Wavetable synthesis

assignments for next week:

Assignment 5: Create a patch which does a simple additive synthesis instrument using a minimum of 6 sine/amplitude envelope combinations.  Use an abstraction which plays each partial, and a preset which stores all envelope values, etc. for several different sounds.  Your patch should have at least 5 separate sounds.

Week 11:

Recording and Processing Live Audio

Using the record~ object

Compression and other basic signal treatments

Filtering – quad~, filtgraph~ and other filtering options

assignments for next week:

Week 12:

More live audio Processing / advanced display options/ basic Video

Live recording and resampling using buffer~



Basic Quicktime control

File access / building menus, etc.

assignments for next week:

Assignment 6: Create a patch which takes a live audio input, and processes it in some way – take the ideas presented around compression and filtering, and adapt ad combine them to do something interesting.

Week 13:

Introduction to Jitter

Using basic jitter objects

Creating Matrixes,

Math operations on Matrices

Transforming video signals – colors, levels, etc.

download Jitter Examples

assignments for next week:

Begin working on Final Project



Week 14:

Jitter  – part 2:

Simple mixing of video signals


Matrix positioning

Recording video

assignments for next week:

Continue working on Final Project

Week 15:

Final Project presentations:

%d bloggers like this: