Max/MSP/Jitter is a “do-anything” construction kit that uses numbers as building blocks to do many different things: numbers that control things, numbers that represent sounds, numbers that represent video. It has a rich array of input-output methods, from keyboard and mouse input to MIDI messages to controllers like the Arduino microcontroller, and even video itself, once broken down into manageable numbers.
There are a number of excellent resources available for learning MAX and solving problems while programming. These are:
Tutorials
Documentation; reference pages
"back" button functionality
Help Files
esp the "object" box in the lower right corner
Built-in help features: Clue window, object auto-fill and “=” lists
Max Object Thesaurus
Website: Cycling74.com - community forums etc.
Sharing with others ("save as text"; storing/mailing .zip files).
The special province of MAX is real time, indeterminate activity – i.e. it is not a time based player/recorder like Pro Tools or an editor like Final Cut, or an editing-&-rendering program like Photoshop, though those functions can be emulated in MAX. (NB - sequencing events is now done in MAX-world by combining it with Ableton Live, which is used as a sequence based front end for max via the app Max4Live.
Numbers (float or integer), MAX objects, bangs, symbols (i.e. words and text that do something), & comments (which do nothing).
Bangs: the GO button
Objects: many different objects and types
Connections that may be drawn between all these things in the screen interface. Connections for audio and video are distinguished by color.
Edit mode yes/no; presentation mode yes/no.
Simple example: typing on a keyboard generates numbers (ASCII codes).
Each MIDI note is a list of numbers for pitch, velocity, MIDI channel.
control items like program change, etc.
streaming controller data
USB
Arduino and microcontrollers – see arduino.cc
sensors, etc. flow, pressure, switches, bend/twist
encoders/step motors
“Symbols” in MAX are bits of text that can have meaning in terms of determining what the program does; either as commands and arguments, or labels, or names of files, etc. They can be single words or codes, lists, 2-dimensional tables, or larger arrays.
("arguments" are messages entered directly into the object box)
assembling messages using set, prepend, append; sending them places with route objects
collect collects a stream of numbers into a non-temporal, but sequential list: a one-dimensional array
Objects seq and mtr collect and play back performed MIDI data in real time (i.e. timed the way it was timed when it went in).
table and itable collect pairs of integers into editable tables
coll object collects items and lists of anything – including symbols – into a table
Signals are fast streaming numbers (44.1K per sec and up). Max/MSP objects can do numerical operations on streams of numbers.
MSP features special objects but also some of the same types as regular MAX objects: add, subtract; multiplication by ±1.0 = a volume control, etc.
Things Max can do with streams of audio data: generate, scale, record/playback, modify in RT (filter, compress, etc.), modify in time (delay, stretching pitch &/or time), and analyze
Special functions with readymade objects: FFT, compression/limiting, granulation, filters
Video is matrices: multidimensional arrays of data. Matrix math.
Video is a series of 3 dimensional matrices: 640 x 480-pixel tables of R, G, B, and alpha data, sequenced at a rate of 12-60 fps.
Jitter data matrices: jit.cellblock
Max window
Inspector window
Hiding and showing things
Presentation mode
Creating Hints and Clues
Messages to MAX: show/hide menubar, cursor, etc.
data in leftmost inlet initiates action, while data in other inlets are stored; bang in left inlet also initiates; right to left activation
often it will take two or more objects to get a technique to work.
special objects: loadbang and loadmess
commas in message boxes vs commas in coll lists
expr and expr~: use regular expression syntax to build equations
zl process streaming lists
poly~ spawn multiple instances of a patcher