max/msp

What is Max/MSP?

(cc) M. S. Heiser, 2014

Max/MSP is a visual data-flow computer programming platform named after computer music pioneer Max Matthews. It is capable of: generating, receiving and processing digital performance and audio data; sound synthesis; video manipulation, and can be used with little-to-no prior programming skills. Despite being marketed commercially, its design encourages a community of open-source code sharing. Such a community – where individuals can strip out parts of others’ programs and freely integrate them into their own work – echoes the 1960s folk-boom with its variations upon shared stories and song fragments. It’s no exaggeration to say that Max/MSP freed me as a popular-music creative practitioner at a time when I’d become exasperated with the inflexibility/inefficiency of project studio tools. Platforms such as Max/MSP and Pd constitute technological tools worthy of the time invested necessary to master them (or at least parts thereof).

The need for Max: My project studio creative practice problem:

As a popular musician engaged in project studio creative practice, I became frustrated about 10 years ago with the inflexibility of Digital Audio Workstation (DAW) software applications and their hardware interface options. It seemed that DAW designers were hell-bent on packing in as many “bells and whistles” as possible without giving adequate consideration to how the total package impacted on the real-time/gestural experience and frame of mind of the end-user.

Each system demanded an unnecessarily high level of extra-musical mastery in addition to that already required to reach my core goal of simply making music. Instead of experiencing creative flow, I found myself continually distracted and frustrated by the steep learning curves inherent in DAW “proprietary” architectures and having to cognitively filter out the “noise” created by an over-abundance of features – most of which have far less to do with rethinking outmoded tacit assumptions regarding recording practice/process, and more to do with achieving a fine-grained level of control either unnecessary or unwanted by DIY recording musicians. I also had to make unnecessary creative and performance compromises due to ill-considered user interface design that seemed to be bogged down in (mullet-haired) 1980s, MIDI-keyboard player sensibilities!” These “project studio” tools had been designed more for the Hans Zimmer’s of the world and less so for the people actually buying them – i.e., the new wave (no…tsunami) of 21st century DIY project studio creatives.

Rant continues..:

A cellular automata app(Processing) and FM synth (Max/MSP) interfaced using OSC protocol.

DAW-makers seemed oblivious to the “linear-bias” their products imposed upon users with their piano-roll programming and timeline editing windows, despite the fact that they were inherently non-linear devices. The advent of Ableton Live went some way to addressing this problem but now, instead of the keyboard player model, a DJ view of the musical world was similarly imposed upon users. What if you had different needs and biases? What if you wanted to embrace processes that challenged your own tacit habits and prompted new ways of working (such as artists should be in the business of doing).

Hallejulah!:

A watershed moment came when, while researching alternate user-interface options in 2011, I discovered Max/MSP. This system allows musicians with little-to-no programming experience an affordable entry point into the world of computer-music recording/sound-synthesis/user-interface design. Instead of spending countless hours learning to work around the quirks of someone else’s DAW system I could spend countless hours learning how to build my own discreet project studio tools, each designed to do perform one task optimally rather than many less-than-adequately.

A brief history of Max:

Max was originally developed by Miller Puckette at IRCAM, Paris in the 1980s as a control language allowing computers to interface with hardware synths and samplers. 1989 saw its first commercial release thru Opcode and then later in 1997 Cycling ’74 was set up by David Zicarelli to market and further expand Max’s capabilities, starting with real-time audio signal processing/internal synthesis capabilities (MSP). The same year, Puckette released an open-source cousin named Pure Data (Pd) – see here for details). In 2003, 3D graphics and real-time video processing (Jitter) were added to Max/MSP. Max/MSP/Jitter (Max for short) is currently in its Max7 iteration and has recently been bought-out by Ableton (which was itself originally developed using Max).

Architecture:

Max/MSP 7

Like Pd, Max is organised as an array of interconnected “objects” upon a “patcher” window. Each object equates to a function in a text-based computer platform or can take the form of a Graphic User Interface (GUI) tool. Instead of triggering functions via script commands, Max triggers objects using virtual graphic patch-chords in a manner that will be familiar to anyone who’s ever seen a Moog modular synthesiser (think Keith Emerson’s telephone switchboard-like rig with its twisted mass of cables). It is this visual and overtly modular approach to programming that I personally find so liberating. The visual data-flow approach makes for a great audio/synthesis signal-flow teaching tool, since students can follow (virtual) scenarios over the classroom overhead projector and then practice creating their own signal paths at their computers, hearing the outcomes as they go.

Objects receive real-time triggers called “bangs” through their inputs, which can be passed onto other objects in turn. As well as receiving control data, some Max objects process audio signals – as designated by a tilde symbol suffix (~). Max interfaces seemlessly with the Audio/MIDI interface capabilities of the host computer, allowing for easy and reliable integration with all aspects of contemporary project studio operation. In addition to sending and receiving audio or data to/from speakers/live inputs and hardware synths/controllers (via Open Sound Control (OSC), as well as, MIDI), Max integrates with projectors, lighting rigs and Arduino-based electronics extensions including motors, sensors and DIY-designed user interfaces. Even in the software realm Max interfaces just as easily with text-based computer programming platforms such as the “creative coding”-orientated OpenFrameworks (C++) and Processing (Java).

Enjoy my Max-related posts such as this and…this!

(c) Dr MarshallHeiser, 2016.