At first sight, Cycling '74's epic modular audio/MIDI/video design environment Max looks like a patchable synth construction kit with modules, patch cords and all the rest of it. But dig deeper and you'll see that there's much, much more to it than just that.
The Max part of Max/MSP began life as a MIDIevent and SysEx processor, and it still features a quirky collection of modules devoted to processing numbers, word lists and user interaction. Most modules - even those that process and generate audio - are controlled by text messages and numbers.
"Gen enables you to create super-efficient custom modules without having to write code in C/C++"
Once you've learned how messages work, you can start to build simple MIDI effects such as splitters and velocity scalers. It's not much harder to build more complex toys, such as scale quantisers and chord recognisers.
Potentially, you could build a complete MIDI performance system with auto-generated live support crafted to order - just ask ambient/techno maestro Apparat!
About 15 years ago, audio processing was added to Max in the shape of MSP. It includes a fine selection of sample players, waveform generators, filters, audio delays, envelopes and more.
MSP's built-in spectral processing features also enable the creation of pitchshifters and spectral delays, and if you've got the DSP skills you can even design custom filters from scratch.
In 2003, a table and array processor called Jitter arrived alongside Max 4. Jitter is mostly used for video and graphics - video frames are just number arrays - but it can also be used for any other applications that use tables, including menu tables and statistical analysis. Like MSP, Jitter is still very much part of Max.
Most recently, in 2009, Cycling '74 teamed up with Ableton and released Max for Live, intended to give Live and Max users a bridge between their worlds, bringing timeline-based workflow to Max users, and giving Live users custom-built devices, expanded interface access, and new levels of hardware control.
The power of 6
Max 6, then, is Cycling '74's (long overdue, some might say) attempt to bring all the elements of Max/MSP together and make them more accessible to newcomers. Visually, the interface has been tidied up, with curvy new patch cords and object alignment lines making it easier to create clean-looking, easy-to-follow patches.
Max can still be seriously hard to get into. Even if you're an expert synth programmer, it takes a while to learn the most useful modules and get used to its quirky feature-set.
There are many small idiosyncrasies to remember - patches are called 'patchers', for example - and a few bigger ones, like the fact that events run through modules from top-right to bottom-left.
To ease the pain, Max 6 includes some of the best help features we've ever seen. There is a series of introductory tutorials for Max, MSP and Jitter, and every single module comes with its own demo/help patch - sorry, patcher - that interactively demonstrates its features.
There's also a further reference page for each module that contains a detailed summary of every message and signal it can create or receive.
The Max interface has been redesigned, with modules and objects now contained in a handy sidebar, including an auto-completing search function. Clicking a module in the sidebar brings up a brief description, and after a bit of a 'training period', this makes module memorisation much easier than in previous versions.
There's also a colourful new floating 'wheel' menu that gives quick access to the aforementioned features when the mouse is hovered to the left of an object. It feels awkward to start with, but once you get used to it, it enables pretty speedy navigation.
The most important new addition to Max for many users, though, will be Gen - an optional add-on enabling you to create super-efficient custom modules without having to write code in C/C++ and run it through an external compiler.
Gen is a big, big win for DSP programmers, but it's also simple enough to provide some basic speed enhancements for almost any user. (Jitter includes an equivalent jitter.gen module.)
For musicians, the rest of the changes are largely 'under the hood' (the new audio engine is 64-bit throughout, for example), performance-related or administrative - check out the Cycling '74 website for the full list.
If you fancy a visual feast, you'll be happy to hear that Max 6 places a greater emphasis on graphics than its predecessors. Jitter now includes extended OpenGL features for graphics programming - which in plain English means that it's easier to create custom shapes and objects, and animate and light them. This isn't quite up tothe power of a full 3D animation package, but VJs and video artists will be intrigued.
So, what's the verdict? If you were to buy Max 6 purely for synth design, you'd be wasting a lot of its potential and making life unnecessarily difficult for yourself.
If you're bored with conventional synths and samplers and are looking for new performance possibilities, Max 6 will win you over. If you aren't, it'll seem like a lot of work for not much reward.
Still intrigued? Then download the free 30-day trial and try it for yourself.