Building Interactive Media Software 101, Courtesy of ‘Max’

Miller Smith Puckette (b. 1959) is the associate director of the Center for Research in Computing and the Arts as well as a professor of music at the University of California, San Diego, where he has been since 1994. He is best known for authoring Max, a graphical development environment for music and multimedia synthesis.

Puckette originally wrote Max at Paris’ IRCAM (a French institute for science about music and sound, as well as avant garde electro-acoustical art) in the mid-1980s, as the patcher editor for the Macintosh to provide composers with an authoring system for interactive computer music.

Max’s first majorly successful commercial implementation was by Philippe Manoury and Ilmo Ranta in 1988. He wrote a piano and computer piece named Pluton, which synchronized a computer to a piano and controlled a Sogitec 4X (a primitive digital sound processing workstation) for audio processing. The song features Ranta on piano, accompanied by Manoury on Max.

Philippe Manoury, Pluton (released in 1988 / revised in ’89)

Max is typically learned through acquiring a vocabulary of objects and how they function within a patcher. Max programs (named patches) are made by arranging and connecting building-blocks of objects within a patcher, or visual canvas. These objects act as self-contained programs (in reality, they are dynamically-linked libraries), each of which may receive input (through one or more visual inlets), generate output (through visual outlets), or both. Objects pass messages from their outlets to the inlets of connected objects.

Most objects are non-graphical, consisting only of an object’s name and several arguments-attributes (in essence class properties) typed into an object box. Other objects are graphical, including sliders, number boxes, dials, table editors, pull-down menus, buttons, and other objects for running the program interactively. Max/MSP/Jitter comes with about 600 of these objects as the standard package; extensions to the program can be written by third-party developers as Max patchers (e.g. by encapsulating some of the functionality of a patcher into a sub-program that is itself a patch), or as objects written in C, C++, Java, or JavaScript.

Max documents (named patchers) can be bundled into stand-alone applications and distributed free or sold commercially. In addition it also can be used to author audio plugin software for major audio production systems, namely, Ableton.

General Uses:
• MIDI programs
• Audio granular synthesis
• Video/graphics programming
• Make HTTP requests (fetching and posting web data)
• Interfacing with Arduino, LEGO® MINDSTORMS® EV3, OSC, etc.

The Main Five Parts:
1. Max (patching with numbers and events; creating user interfaces)
2. MSP (patching with audio signals)
3. Jitter (video/graphics patching)
4. Gen (an add-on that compiles patches into code for improved performance)
5. Max for Live (integration with Ableton Live, allowing audio and MIDI devices made in Max to run in Ableton)

The Patcher Window

An example program, used for converting audio amplitude into video.

The Object Box


Building programs is a lot like building a modular synthesizer, each module serves a specific purpose. Being able to trace the signal chain (like in our proficiency tests) is an absolute must.

Vizzie

Vizzie is included in 5.1.7 (or later), and is free for existing Max/MSP/Jitter 5 owners. For new users, Max features a 30-day demo to experience the Vizzie magic. These modules are a great way to use and learn Max easily. They are also a major part of the tutorials included with Max.

Insert VIZZIE modules into your existing patch to test out new effects chains, connect your hardware or create a performing interface or graphic display

BEAP

BEAP is a new set of free modules for Max for Live, new to Ableton 9. They further bridge the learning gap by providing a set of easy to use higher-level building blocks, akin to a modular synthesizer. Stretta, aka Cycling ’74 employee Matthew Davidson, oversaw the development of BEAP. The BEAP library is a collection of modules that emulate the function and signaling of hardware modular synthesizers.

(Location: Stretta’s home studio)

Max also comes with a number of lessons which provide step-by-step tutorials for building a variety of applications. These are easily accessible, along with easy-to-comprehend help menus and descriptions.

X