MSP / Jitter Quick Start
being an overview, by no means comprehensive, of the digital media processing capabilities of Max/MSP/Jitter,
organized into functional groups of objects with brief annotations.
Based on Max/MSP/Jitter version 5.0.5. Randy Jones, January 2009.
1 INTRODUCTION
The Max visual programming environment is a very effective way to work with digital media, in applications from
prototype to finished product. Max was created in the mid 1980’s, and its flexible message-passing architecture has
enabled it to evolve fairly gracefully since that time, incorporating features unimagined at the time of its initial design.
MSP and Jitter are groups of Max objects that deal with signals and matrix data respectively. Each started out as a separate
product that extended Max, but both extensions are now becoming more and more part of the standard distribution.
With all of the options available in Max/MSP/Jitter come a fairly steep learning curve. Basic programming in Max
itself is relatively quick to learn, but just as there is no way around studying vocabulary when learning a new language,
getting to know a large number of the roughly 500 objects in Max/MSP/Jitter is necessary in order to use it well. This
document provides a list of some MSP and Jitter objects divided by functional groups. It is by no means comprehensive.
I have tried to mention the most useful and commonly-used objects in each of some main categories. After finding an
object in a given category, the help file for that object, in particular its “See Also” section, is a good gateway to further
possibilities. A basic knowledge of Max patching, such as can be gained from going through the first five Max tutorials
or so, is assumed here for brevity.
Many objects can be found by category in Max using the New Object List. This is a text list, different from the UI
object palette that appears when the canvas is double-clicked. To use the New Object List, press ‘n’ to create a new object,
then move the mouse to hover over the lower right corner of the object. An equals sign in a blue circle should appear;
clicking on this little guy brings up the New Object List.
2 MSP
MSP and its many objects allow digital signal processing (DSP) within the Max framework. DSP is fundamentally
different from the message-based processing done by Max. Every signal is an isochronous stream of samples: each
sample must follow the next at a constant rate, typically 44,100 or 96,000 samples per second. The computer must do all
of the DSP calculations fast enough to keep an audio interface suppled with samples at this rate, or we will hear clicks
and pops in its output. MSP objects have names ending in a tilde (∼) to help avoid confusion with Max objects.
2.1 Audio Fundamentals
We can represent any signal such as an audio channel in two complementary ways: the time domain and the frequency
domain. Signals in the time domain are sequences of samples one after the other; each sample represents an instantaneous
value of the signal. Sending the stream of samples to a digital to analog converter using the dac∼ or ezdac∼ objects
lets us hear them as sound. Attaching a scope∼ object lets us see a graph of the signal’s samples similar to what an
oscilloscope would produce. Use this object with some caution though: it skips samples of the signal in order to draw fast
enough, and is not as reliable a diagnostic tool as a real oscilloscope.
The frequency domain gives us an alternate representation for sound that more closely parallels our own perception.
The Fourier theorem states that any continuous, periodic signal can be exactly described as a sum of sinusoidal waves
of different frequencies. Where a time-domain graph of a signal shows its changing amplitude over time, a frequency-
domain graph shows the amplitude of each sinusoidal frequency that makes up the current signal over a very short time
window. The spectrogram∼ object lets us see a signal in the frequency domain.
A sampled signal can store information at a range of frequencies from 0 Hertz (a signal with a constant value) to one
half the sampling rate. If a signal contains frequencies outside of this range, and is sampled without proper filtering,
aliasing, or a non-physical folding of harmonics, will result. Listening to the output of phasor∼, a geometric sawtooth
wave, versus saw∼, an antialiased sawtooth wave, can give us some feel for what aliasing sounds like. In scientific