Fig. 1: This is an example of a simple monophonic synth patch. In Max, Objects are wired together like this to produce any multimedia configuration you can imagine.
Cycling '74 Max has been around in some form for 20 years, and over that time it has become a particularly important and widely used tool for electronic musicians, especially those who are more experimentally inclined. Max was first commercially available in 1990. MSP, the audio-processing component, was added in the late 1990s, and a suite of video Objects called Jitter was added in 2003. (The previous major upgrade, Max 4.0/MSP 2.0, was reviewed in the April 2002 issue, available at emusician.com.)
In working with Max, you create programs (called patches) in a Patcher window by choosing from a huge library of Max, MSP, and Jitter Objects and then hooking them together with patch cords. Typically, you hook the outlet of one Object to the inlet of another. The patches you produce might be software synthesizers, audio or MIDI processors, algorithmic-music machines, interactive controls, animations that respond to music, music that responds to live video input, or any other multimedia project you can dream up. Your patches could be simple utilities that you create in a short time or complex programs that take months to design. Fig. 1 shows a simple example of a patch: a monophonic synthesizer that you play with an onscreen keyboard.
Max 5 makes very few changes in the Objects themselves — for the most part, you still have the same massive collection of more than 600 (see the online bonus material “Object Oriented” at emusician.com for a list of some new and enhanced Objects). The improvements in Max 5 come in the documentation and the user interface.
What's Up, Docs?
Previous versions of Max offered contextual help: you right-clicked on an Object to get a help document that summarized the features of that Object. One of the coolest aspects of the contextual help system was that the help page was a working version of an example patch, not just a graphic diagram of an example. So while reading the information, you could also experiment with the working example, and even copy all or part of it to your own patch for reuse.
In previous versions, there was also a more detailed reference manual, but you had to open that document separately to search for the information you wanted. In Max 5, there is now a link from the shorter contextual help page to the larger and more complete reference manual page for a particular Object. In fact, in Max 5, all of the documents are linked together, making it much easier to navigate through this extensive collection of online reference materials. A comprehensive Search feature also lets you look throughout the documents for any keywords.
When you place the mouse over an Object's inlet or outlet, a large balloon with a big arrow appears, describing what that inlet or outlet is used for. (The previous version showed a small and much-harder-to-read notation in the lower left of the screen.) There is also a new floating Clue window that gives a brief but helpful description of any Object the mouse moves over (see Fig. 2). With these improvements in the documentation, now you can spend most of your time building patches and less time figuring out how to do that.
Many features of the user interface have been improved. I'll cover the ones that seem the most significant.
In previous versions of Max, it was possible to create a front panel for your patches that showed only the Objects that were essential to operation (for instance, the knobs, displays, and other controls that the user changes and views in operating the patch) while hiding the underlying circuitry from view. But it was a little unwieldy to do this. Max 5 has improved greatly in this area with the addition of a Presentation mode that lets you effortlessly create an attractive and uncluttered front panel for your patch.
Most Objects in Max perform simple functions (such as adding two numbers together), and these Objects are created simply by typing the name of the Object into a blank Object box. Max 5 has added a handy Auto-completion feature to simplify the process as you type. There are also User Interface (UI) Objects such as buttons, LEDs, level meters, number displays, and many others. In previous versions, the UI Objects were in a toolbar at the top of the screen. Now they appear in a nicely organized floating palette that is created any time you double-click in the Patcher window (see Fig. 3). The new Patcher palette is organized by Object type, the icons are larger and easier to identify, and you can add your own customized Objects (called Prototypes). Work is also speedier in Max 5 because there are new shortcut keys to quickly create the most common Objects.
Max handles polyphony with an Object called poly~. In Max 5, poly~ can take advantage of multiple processors to allow faster processing time.
There are many other changes, including Multiple Undo; a Zoom feature; the ability to maintain multiple views of your patch; a Grid and a Snap To Grid option that makes it easier to create tidy and clear patches; and a more uniform and powerful Inspector window that improves consistency when customizing the appearance and functionality of Objects. A new File Browser makes it much easier to keep track of the many files you'll be producing with Max.
Other new additions worth mentioning relate to timing increments and tempo. In previous versions of Max, time was referenced in milliseconds. But in Max 5, you can also work with traditional musical time values using ticks (1/480 of a quarter note) or note values (such as 1n for a whole note, 4n for a quarter note, 16n for a 16th note, 4nt for a quarter triplet, and so on). You can also use a bar:beat:tick notation (bar 1, beat 1, tick 240 would be notated 1:1:240). A new Transport Object and a Global Transport window let you start, stop, and pause the music, change tempo, and otherwise control the flow of sound in your patch.
The changes in Max 5 don't alter the program in a substantive way, but they do make it significantly easier to learn and use the program, organize and customize patches and Objects, and share or collaborate with others. There are many large changes and countless small ones, all of which are welcome. Your patches will be clearer and better-looking, and you'll have a much easier and funner time building applications that do what you want them to do (see the online bonus material “A Max Example” for a patch I created in version 5). I strongly recommend the upgrade (starting at $129) for existing Max users. And for anyone considering a modular toolkit of this sort, be sure to download the Max 5 demo and give it a try.
Peter Hamlin teaches electronic music, theory, and composition at Middlebury College and plays in the live electronic improv band Data Stream.
sound-programming environmentMax$250 (MSRP)Max/MSP$495 (MSRP)Max/MSP/Jitter$699 (MSRP)(educational pricing also available)
PROS: Much-improved user interface and documentation. Huge collection of Objects. Unlimited potential for creating multimedia interactive tools.
CONS: A program of this nature takes some effort to master.
FEATURES 1 2 3 4 5EASE OF USE 1 2 3 4 5 AUDIO QUALITY 1 2 3 4 5VALUE 1 2 3 4 5
Cycling 74 Resource Guide
This site provides links to third-party Objects and other resources. Collections of third-party External Objects are listed in six categories: Audio Objects, Composition and MIDI Objects, General and miscellaneous Objects, Hardware Sensor Objects, Networking Objects, and Video and Graphics Objects.
Percolate is a collection of synthesis, signal processing, and image-processing Objects. The collection includes some nice physical-modeling instruments.
Stephania Serafin Physical Modelling Objects
This set includes an extended Karplus-Strong plucked-string instrument, a musical glass, and a musical saw.
This site offers an accurate and extremely useful frequency analysis Object called “fiddle~,” among other things.
This outfit sells a Make Controller Kit for $109. You can use this circuit board to create your own unique interactive controllers and communicate with them using Max.
Eric Singer''s Cyclops
Cyclops lets you analyze a video feed in various ways. For example, you can track the movements of performers in the camera''s view and use that information to control any musical or audio event in Max. Unfortunately, Cyclops is not yet compatible with version 5.