Cycling '74s Max/MSP software is highly regarded in the full-on, 0s-and-1s audio programming world as one of the most flexible - and powerful - music apps on the market. However, the program's depth and level of involvement has caused Max to be seen as inaccessible by some.
Now, Cycling '74 has updated Max with the biggest overhaul of the program in years, with accessibility a driving factor in the new release's development. So, can version 5 appeal to a larger user-base whilst still keeping the 'serious' tech-heads happy?
The history: what is Max/MSP?
Max is the brainchild of mathematician Miller Puckette and music programmer David Zicarelli. While at IRCAM in the late 80s, Puckette created a scheduler to coordinate the timing of dense event streams for use in real-time music and multimedia projects. Zicarelli developed a graphical user interface for the scheduler, and widened its vocabulary with a slew of new objects. In 1990, Puckette, Zicarelli, IRCAM and Opcode joined forces to distribute a commercial version of the scheduler, named Max, after celebrated music pioneer Max Mathews.
In 1997, a set of audio synthesis and signal processing extensions called MSP was added to Max, making up the Max/MSP package that forward-thinking computer musicians have come to know and love - this is the product we're reviewing here, although we'll refer to it simply as Max for brevity. In 2003, a real-time video and 3D system called Jitter was also rolled in, completing the full-on Max/MSP/Jitter bundle.
Max, in a nutshell, is an object-based visual programming language for creating interactive audio and multimedia systems, or patches. Each Max object is an autonomous software 'device' that carries out a specific task, such as multiplying two numbers, sending a MIDI message, or synthesising a digital sine wave.
Objects communicate with each other via virtual patch cords, much as in a modular synthesizer. Max's 400+ built-in objects can control virtually all aspects of digital audio. And if you run into a limitation, you can build your own objects using C, C++ or Java if you're of the computer-programming persuasion.
For anyone who works in the live multimedia arena, Max could very well be just what the doctor ordered. True to its IRCAM event scheduler heritage, Max excels at real-time interactive MIDI - and other - processing. This technology can be used to control and interface with all manner of systems - audio, graphics, lights, movies, CD/DVD players, power gloves, body suits, and just about any electronically controlled interactive device one could conjure can be interfaced with.
Max 5 is filled to the brim with new and improved features. For the most part, these are GUI-centric changes to make the user experience more efficient and satisfying. To paraphrase Zicarelli: Max 5 is easier to learn, easier to use, and easier to deal with. The patcher has been revamped, for example, with multiple levels of undo (at last!), multiple independent views, zooming, grids and a toolbar. It also supports customisable keyboard shortcuts (defaults include N for 'New object', B for 'Button') and object name auto-completion.
Clickable buttons are now easy to create - something that Max 4 users will be glad to hear. The Object Palette is now transparent and easily resized. The File Browser allows easy access (find, preview and load) to all types of Max files; Presentation Mode enables the creation of user-friendly interfaces for your patches; and the Inspector lets you view and edit attributes of objects and editors.
Example 1 - Groove sync patch
Example 2 - Advanced noises patch
Example 3 - Weird, FM-like and ring modulation sounds patch
The Inspector window
One of the most user-friendly additions for patch-builders is the Inspector. Inspectors enable you to view and edit the attributes of objects residing in patcher windows. You select the desired object, click on the Inspector button, et voilà: all of the object's attributes are laid out clearly for you to view and modify as necessary.
Select a new object and the Inspector automatically changes to expose its attributes. Working with the Inspector window open places all object attributes at your fingertips.
Pictured above is an Inspector for a metro (metronome) object. The All tag is selected, revealing all of the metro's attributes, settings, and values.
Additional tabs filter the listing by category: metro (object properties), Appearance (patcher and presentation display properties), Behavior (object actions), Colour (background, border, text colours), Font (font type, size and style), and Hint (annotation, hint, scripting name).
The Inspector model is used for several of the Max 5 editors, including File Preferences, MIDI Setup, and System Preferences.
Max 5's help system is integrated deep within the patch-creation workflow, with context-sensitive information on objects, tools and attributes always just a click away. Object reference pages have an integrated web browser, too.
Debugging has been greatly improved, with the Watchpoints window enabling you to monitor and record the messages flowing through any patch cord. You can stop program flow and examine current object states via the Debug window, while the Audio Signal Probe provides real-time meter and numerical readout of the data flowing through any patch cord you mouse over.
Pushed to the Max?
Having spent a somewhat unhealthy amount of time investigating the many facets of Max 5, it's a relief to be able to report that the software is every bit as impressive as it promised to be. Max users are a passionately devoted crew, and when it comes to its specific areas of expertise - academia and serious experimentation - Max has no real rivals, except, perhaps, for Pd and Csound.
Cycling '74 could have rested on its laurels somewhat with a new release of Max without losing much - if any - of its user support, but they've taken quite the opposite approach. Max 5 represents a thorough, root-and-branch revamp of the Max GUI, but what may not be so obvious are the significant improvements that have been made under the hood. These include a new and improved multi-processor-capable kernel, timing object sync to tempo, host sync to plug-in, a 2D vector graphics API (accessible via JS), and a new textual file format based on JSON.
Into the future
Cycling '74 calls Max 5 "Max for the next 20 years". This is not just a nod to the fact that Max has been running on technology Puckette developed at IRCAM 20 years ago, but also a bold prediction that the new and improved Max 5 is robust enough to last another two decades. Confident words indeed, but while that obviously remains to be seen, it's certainly hard to imagine how Max/MSP circa 2028 could be much better than it is right now with v5.