 |
| What is Max? Max is a graphical programming environment
for music and media applications. It currently runs on the Mac OS. The Windows version is
in development and will be released this year. One of the main goals of Max is to let you
control anything with anything. For instance, you can use MIDI to control a laserdisk
player, or mouse movement to control the playback of a Quicktime movie. Max excels as a
way to customize the logic of building an interface to interactive media. It lets you
schedule events with millisecond accuracy, create complex mappings for incoming data, and
run a large number of operations in parallel.
Cycling '74 released Max 4, the first major upgrade to
the software in almost five years, which features extensive new user-interface building
tools and advanced features such as scripting and high-precision scheduling.
Building applications with Max is fun and interactive.
You create programs by wiring together objects. The moment you connect the wire, the
program is working. If it doesn't work the way you want, just try something else. For
example, here's a very simple program that makes an awful racket by letting you play MIDI
notes as fast as you can move the onscreen slider. |
 |
The boxes labelled makenote and noteout
above are objects, as is the blue slider. The wires connecting them send numbers; the
numbers flow from top to bottom. In the above example, when you move the knob of the
slider, a number comes out the bottom of the slider, travels down the wire into the
makenote object, causing numbers to come out both the left and right outputs of makenote.
These flow to the noteout object, which interprets the numbers as specifying a MIDI note
event, which it formats and sends to a MIDI device. With the addition of MSP, Max can handle audio as well as MIDI.
One of the best things about Max is that it can be easily
extended with a well-documented interface for writing new objects (we call them external
objects). Hundreds and hundreds of external objects have been written since Max's
initial release. Our MSP audio objects are a good example. Other large collections of
objects include PeRColate, a large suite of free experimental audio objects that work with
MSP, nato.0+55, a set of modular video processing and Quicktime control objects, and the
MegaMax collection, a set of enhanced user-interface construction tools.
The fact that you can extend Max may not seem important
if you're not a C programmer, but the sizable collection of mostly freely available
third-party Max resources means it's likely that someone else has already made Max work
with what you need, whether it's an interface for a hardware device or a connection to an
obscure part of the operating system software. We've made an attempt to collect
third-party Max resources in the
annotated Max/MSP resource guide.
Max is a very popular way to experiment with new ways of
controlling your computer. The
resource guide lists numerous hardware products that work well with Max. Some of them let
you build your own control devices and instruments, others are ready-made devices with
extensive possible applications.
A little historical information:
Max was originally developed at IRCAM, a music research institute in Paris, France, by
Miller Puckette. Max is named for Max Mathews, a pioneer of computer music who worked with
Miller Puckette in developing a scheduling algorithm similar to that used in the software.
Max was further developed for commercial release by David Zicarelli and published by
Opcode Systems until 1999. Cycling '74, founded by Zicarelli in 1997, has been developing
and supporting Max and is now its exclusive publisher.
What's
Included with Max?
Max includes over 200 objects that
cover the following areas:
- User interface tools: sliders, buttons, number display
boxes, pop-up menus, dials, switches, picture-based controls and sliders, keyboards,
import movies and graphics files (using Quicktime), matrix switch control, text editing,
dialog boxes, color selection, radio buttons and checkboxes, menu bar customization,
window customization.
- MIDI input and output: notes, controllers, pitch bend,
sequence recording and playback, MIDI files, parsing and assembly of MIDI messages, system
exclusive, easy handling of note-offs, OMS device names, patch names, and note names.
- Scheduling: metronomes, delays, pipes, processing priority
levels. Scheduler is millisecond-accurate; when used with MSP it can be accurate to two
samples.
- Arithmetic and Logic: basic arithmetic, C-like
expressions, trigonometric and transcendental functions, comparisons, minimum/maximum,
operations on vectors, random number generators, counters, bitwise operators, coordinate
transforms.
- Devices: support for MIDI sample dump, serial devices, CD
audio, Apple DVD player application
- Quicktime: play any file readable by Quicktime,
controllable scrubbing, looping, movie sequencing, matrix transforms, file preview
- Logic: counters, gates, switches, if/then/else, message
routing
- Data structures: tables, collections, functions, data
capture
- Sequencing: timeline, graphical sequence display,
multi-track recorder, score following
Other Max features include a freely distributable runtime
version, the ability to transform programs into standalone applications with no licensing
fees, and a trace feature for debugging and understanding data flow in Max programs. There
is also an elegant on-line help system; a working example that demonstrates each object is
just a click away.
Max includes 850 pages of
documentation including 47 interactive tutorials, reference information on each object,
and articles on special topics such as MIDI, debugging, and program efficiency.
What is
Max/MSP?
Max/MSP combines the Max graphical
programming environment with MSP audio extensions. Together you'll have close to 400
objects, the building blocks of a complete audio application development environment.
Max/MSP costs only a little more than Max alone, so if
you're at all interested in audio processing, we think you'll want to consider purchasing
the combined package. The current version, Max 4 + MSP 2, is a substantial upgrade over
previous versions. If you're familiar with the software, you can read more about the
features of current version.
In Max, you build programs by connecting graphical
objects together. Some of these objects perform calculations and others make up the user
interface of your program. MSP adds a large set of objects that you connect together to
make audio patches where signals flow from one object to the next. The concept may be
familiar to you from modular synthesizers, either the real ones or the software
imitations. But MSP lets you work at a level of detail that is unmatched by other software
synthesizers. At the same time, its intuitive interface is far easier to learn than
text-based software synthesis programs. For instance, the filtergraph~ object shown below
allows you to design seven different types of filters graphically.
|
 |
|
Using Max/MSP To build a program with Max/MSP you need to a
couple of simple things. First, that there are two kinds of objects: regular Max objects
that deal with events (such as MIDI and timing pulses), and MSP audio objects that
deal with signals. The example shown below performs simple FM synthesis
controllable from MIDI. The plain black patch cords handle events, and the
black-and-yellow striped patch cords carry audio signals. The objects with a tilde (~)
character at the end are signal objects, the others are Max objects.
 |
How does this patch work? The audio and
control signals flow from top to bottom. At the top, MIDI notes are received by the notein
object. The MIDI pitch number is converted to frequency to control two oscillators, a
carrier (the green cycle~) and a modulator (the blue cycle~). The base
frequency and the modulation amount are combined by the orange +~ object to create
FM. The modulation index is scaled
by the graphic function envelopes. Using the select 0, the attack envelope
is selected when a MIDI note-on is received and the velocity is non-zero, while the
release envelope is selected when a note-off is received. These envelopes are sent to the
melon-colored line~ below them, which controls both the modulation index and the
overall amplitude. The line~ goes into a multipler *~, ramping the output
signal over time to create the envelope. Finally, the overall output is logarithmically
scaled by the lowest *~ based on the input velocity, calculated by the linedrive
object. You can listen to the sound by clicking on the speaker button ezdac~, which
also serves as the audio output object. This example should give you some idea of how
Max/MSP integrates seamlessly into Max, and how it's easy to work with audio signal
networks and control networks at the same time.
 |
| Education Max is a popular basis for many electronic and computer music
classes at the university level. Students find they can be creative with it immediately
while learning how to work with a variety of interactive media. Max/MSP can be used for
teaching the basics of sound, synthesis, and signal processing. With its graphical
oscilloscope, waveform editor, and filter design objects, you can see up close what you're
hearing. Max/MSP users work through interactive experimentation, just as you would in a
classic analog studio. The 560-page MSP manual, with 31 interactive tutorials, can serve
as a basic text in the fundamentals of audio. (Max/MSP has over 1500 pages of
documentation.)
Sound Design
Max/MSP is a sound design tool that lets you experiment
with techniques that other hardware and software have declared to be off-limits. Rather
than accept the standard parameter ranges chosen for you by a synthesizer manufacturer or
audio editing program, you can try any value and change it in any way you see fit.

|
Unlike a text-based synthesis language, the
feedback you get from Max/MSP is immediate and intuitive. We would also argue that just as
the notion of interacting with a compositional process (as in M) can be rewarding
and effective, real-time interaction with an audio process you design can steer you into
new universe of sounds. You could, for example, loop a disk-based audio file while
adjusting how you process it. When it comes time to save your work, you can record back
into an audio file. Up to 16 tracks are supported in most popular formats with up to
64-bit resolution.
 |
| Performance
Max/MSP lets you apply the power of
the Max environment to the details of synthesis and signal processing. It is particularly
well-suited to interactive audio performance. You can build your own custom environment
for performing and tour the world with little more than a laptop. The ability to trigger
and manipulate sounds and audio files in a stunning variety of ways make Max/MSP a
formidable sampler.
Audio Features
and Compatibility
MSP features over 170 audio objects in the following
categories:
- Audio Routing: audio gates, switches, routing matrix
- Analysis: Convert audio signals to events, detect edges,
zero-crossings, RMS averaging, peak detection, signal capture
- Audio File Recording and Playback: includes looping,
varispeed, sample-accurate cue creation and triggering, audio file information
- Audio Visualization: filter design, signal level meter,
oscilloscope, waveform display and editing
- Filters and Delays: recursive and non-recursive (FIR)
filters, resonant filterbank, state-variable filter, comb filters, allpass filter, phase
shifter, interpolating delay with feedback
- FFT Processing: forward and inverse FFT, manager for
spectral processing applications with windowing and overlap, frame-based calucations,
polar-to-Cartesian coordinate transformation
- Functions: sample-and-hold, breakpoint functions,
non-linear functions, function editor, counters, noise-generators, random line-segment
generators, windowing functions
- Input/Output: audio input, audio output, I/O channel
remapping, host VST plug-ins, host ReWire devices, play sample-accurate digital audio
direct from CD
- Modifiers: sample-word and bit-depth reduction, clipping,
downsampling, distortion, phase wrapping, phase distortion, smoothing, rounding,
truncation, sample-and-hold
- Operators: scaling, offset, divide, trigonometric and
transcendental functions, bitwise operators, sample comparisons
- Plug-in Support: parameter management, define inputs and
outputs, plug-in configuration management, preset storage, host synchronization support,
parameter modulation, parameter morphing
- Polyphony: manager for making any algorithm polyphonic,
control CPU resources by switching voices on and off
- Sampling: sample import and export, indexed playback,
interpolated playback, recording, granular sampling, looping, extract sample info
- Synthesis: wavetable oscillators, ramp generators,
oscillator banks, FM applications
Max/MSP supports a number of audio I/O standards,
including:
- Apple Sound Manager
- ASIO (an audio hardware interface specification created by
Steinberg), with up to 512 input and output channels
- VST (the Max/MSP application can operate as a VST plug-in,
and it hosts most VST effect and instrument plug-ins)
- DirectConnect (for sending audio into ProTools)
- ReWire (for hosting ReWire device applications such as
software synthesizers...Max/MSP can also be a ReWire device hosted by applications such as
Cubase and Digital Peformer)
- Reads and writes AIFF, Sound Designer II, WAVE, NeXT/Sun,
and raw audio file formats from 8 to 64-bit resolution
- MP3 and movie soundtrack import using QuickTime
- Non-real-time operation
The DSP Status window (shown below) lets you monitor and
control all audio parameters. The fact that the DSP Status window was built in Max/MSP
means you can integrate this control into your own applications. |

|
|
|
|
|
|
|
|Home|Contact|Forum|About|Events|Getting
Here|Resources|
|