A Postmodern Programming Platform

Max is a graphical programming environment for audio-visual signal processing and realtime control. Released in the late 1980s, its growing popularity established the Apple Macintosh as a platform for computer music, and the Max 'visual patchcord' paradigm (modeled on early analog music synthesizers) as the standard graphical user interface for computer music software. The commercial version is called Max/MSP, published by Cycling'74 for the MacOS and WinXP platforms [1].

Max users are primarily musicians, sound designers and media artists, and only incidentally programmers. They want to do exciting things with computers, they enjoy improvisation and experiment, and they want to see their creations working right away. As artists they can appreciate the kind of proliferating organic chaos that's so easy to produce (if sometimes hard to contain) with Max's visual patching paradigm. Max programming involves laying out various types of boxes (Max objects) on the screen, and drawing patchcords to hook up their inlets and outlets. The resulting 'patch' is in effect a special purpose virtual analog computer.

Max/MSP comes with over 200 built-in objects: math and logic functions, sliders and buttons and dials, sound generators and filters, even a TCP-IP networking interface. Via MIDI, Max programs can control lights, electric motors, QuickTime movies, audio files and external DVD players, virtually anything capable of receiving or sending a signal. With the Jitter modules, Max/MSP programs can incorporate realtime video, 3D animation, and sophisticated image processing routines. As well, numerous specialized extensions have been created by Max programmers for use by the Max community.

What makes Max a quintessentially postmodern programming environment [2] is its unashamed embrace of 'bricolage' [3], the artistic practice of forming new works as ad-hoc assemblages of found materials and readymade parts. A patch is a pastiche of existing patches and objects, pasted together to control what is often an impromptu patchwork of physical sensors, speakers, lights, projectors and media playback devices. Like spoken language, Max coding is more akin to recollection than it is to following formal rules: a matter of being acquainted with a wide repertoire of strategies and being able to reach into memory in order to improvise and repurpose them [4].

"Useful Abstractions"

Useful Abstractions is a collection of Max/MSP/Jitter patches and interactive help files developed by Martin Gotfrit and Kenneth Newby to support the Computational Poetics projects and workshops. The UA package contains patches for working with video and audio files, setting up local and remote network connections, generating and shaping different types of noise processes, spatializing sound, manipulating video, detecting patterns in images and speech, as well as a number of general purpose utilities and data structures.




Download "Useful Abstractions"

for Macintosh (SIT archive, 356 K)

for Windows (ZIP archive, 407 K)


Notes and References

[1] A trial version of Max/MSP can be downloaded from: http://www.cycling74.com/

[2] James Noble, Robert Biddle (2002). "Notes on Postmodern Programming" Victoria University, Wellington NZ.

[3] 'Bricolage' — a French term for 'puttering around' or 'doing odd jobs'. Claude Levi-Strauss used the word to refer to a kind of shamanic spontaneous creativity accompanied by a willingness to make do with whatever is at hand rather than fuss over technical expertise. (apted from Robert J. Belton, "Words of Art".)

[4] Bolinger, Dwight. "Meaning and Memory." Forum Linguisticum 1/1: 1-14, 1976.