Product Review: Cycling '74 Max/MSP 4.6 With Jitter 1.6

In every era, creative expression has been both empowered and limited by the available tools. And while there are plenty of great off-the-shelf power tools out there that allow today's entertainment technologists to do their jobs, the vast majority of that media hardware and software is still largely specialized to do the things the majority of users need. But where do you turn when you need to break the mold? One very versatile solution comes in the form of Cycling '74's MaxMSP and Jitter — “Max” for short — a modular construction set for video, audio, MIDI, and interactivity for PC and Mac.

Max began nearly 20 years ago at IRCAM in Paris as a visual patching software environment for MIDI (the communication protocol that musicians use to connect and control electronic instruments, computers, and more). Cycling '74, a boutique virtual company based in San Francisco, has stewarded the ongoing development of Max most of the time since then. As computers became faster, Cycling '74 rolled in MSP, a suite of modules designed for digital audio signal processing. And after yet another quantum leap in computing power, the company added the optional Jitter package for digital video processing. The result is a multimedia environment that is incredibly flexible in any one of the component media — and one of the only tools that lets you cross-pollinate them at a low level of control. As you might expect, there are a few artifacts and legacy ways of doing things that owe to its 20-year evolutionary journey.

Max comprises a visual programming environment and a collection of software objects. Each object performs a specific function, much like the modules of the original Moog analog synthesizers, for example. You create a Max program (called a patch) by dragging the desired modules into the workspace and then dragging virtual patch cords between the various inputs and outputs. Max/MSP boasts several hundred objects, and Jitter adds another 150-plus.

One of the incredibly cool things about Max is that the environment — and by extension, your patch — is always running, even while you're creating and tweaking it. This may not seem unusual in the context of audio and video hardware, but software programmers are all too accustomed to the unintuitive process of writing code, saving it, and then formally executing it before they see any results or changes. That's not to say that you can't have Start and Stop buttons — but they are objects you put where you want. You can also tap any points in a video signal path and route them to display windows of any size to see exactly what's happening.

Max patches can get rather visually complex very quickly. Fortunately, you can create subpatches that contain and hide entire groupings of functionality, including calling instances of them. You might, for example, create an audio and/or video channel strip subpatch and then invoke as many instances of it as you need in your main patch.

Max's visual programming paradigm makes it possible for people who are not programmers to create formidable custom applications. In the end, however, it's just a different flavor of programming with demands that scale with your ambition. In fact, having experience with traditional programming languages can be as much a bane as a boon because Max represents such a different — and for some standard logic and data tasks, more cumbersome — methodology.

Max is also highly extensible. There is a limited Javascript interface for weaving in more traditional programming elements. It's also possible to write your own objects using C or Java. In fact, there's a tremendous wealth of additional third-party objects (mostly shareware or freeware) at the independent www.maxobjects.com.

The most advanced video processing comes in the form of objects that process video directly on the faster GPU of your graphics card rather than your CPU. Harnessing this power can quickly require another level of technical understanding, since it can easily lead you into the realm of 3D and OpenGL programming.

What can you do with Max? Columbia University and numerous other schools use it to teach media technology. More than one commercial VJ software company has built their product using Max and Jitter. (Yes, you can have separate video outputs dedicated to controls and full-screen output.) Cycling '74 created its Radial live music performance application and dozens of Pluggo audio effects using it. Adventurous users have cooked up all manner of installation art. While there is no formal DMX integration, MIDI at Max's core provides a pathway to DMX. Some intrepid users have even figured out how to control stepper motors from Max — and the list goes on. You could create a patch that uses a camera to motion-sense a dancer's movement that, in turn, influences the visuals that same dancer is interacting with, while also generating contextual soundscapes and audio effects. Cycling '74 says with pride that its customers are continually blowing them away with applications their engineers never dreamed of. The fact is, Max is at once built for no application and any application.

Alas, that forte is also its weakness: The incredible volume of objects that makes Max flexible enough to create just about anything imaginable makes for a steep learning curve before the average user can harness all that potential for a practical real-world project. It can take a lot of time just getting out of the gate understanding what the various puzzle pieces at your disposal are and what they do, let alone how you might put them together effectively.

Several factors help mitigate this situation. The electronic docs are largely excellent, mostly taking the form of tutorials complete with working patches. Option-clicking on an object also produces a contextual live help patch that illustrates by example. Between the two, you can easily experiment and often hack provided elements into your own project.

The Max user community is relatively small, but rather active on Cycling '74's Web forum — which also serves somewhat passably as (along with e-mail) the company's only tech support. Feedback can range from generous example patches to terse engineer-speak to silence. And as you dive deeper into the realms of advanced programming, GPU processing, and external language interface, the number of people on the planet who even understand it narrows the help pool significantly. Cycling '74 would do well to implement a paid support/consulting service that would help professional customers cut development time or get them out of jams.

Max is decidedly an acquired taste. For those who truly need a multimedia Swiss Army knife oriented to live performance, it can prove indispensable. If you think Max might be for you, then start by exploring www.cycling74.com, including some of the mind-bending user spotlights and the forum that may one day be your lifeline. Next, download the 30-day trial version when you have the time to take advantage of it, and start in on the tutorials. (You can also just download the docs to get a jump on the process.) Max 4.6 with Jitter 1.6 ($895) runs on both PC and Mac (Intel and PPC).

Jeffrey Paul Berger (www.jeffreypaulstudios.com) is a multimedia installation artist/producer.