NATO.0+55+3d modular, page 01/14
Introduction / Background

This article is written for the benefit of non- NATO.0+55+3d modular users, but might offer some insights for experienced users as well. I am going to assume a basic knowledge of video and computer graphics terminology. Although prior knowledge of Max will assist in understanding some of the examples, it is not assumed. If you are an old hand at Max, please excuse the efforts made on behalf of those who are not.

The continuing changes to this overview involve several developments. First, NATO is in a constant state of evolution, and since the initial article, there have been some upgrades and new objects. Second, my work with NATO has changed. When writing the original piece, I was focused primarily on (non-live) standalone work that incorporates image playback and manipulation. My use of NATO has shifted a bit since then, and I spend a lot of time working in live performance situations. Third, I've been exploring NATO from a development perspective, authoring numerous extensions to the system, mostly for my own use. In doing so, I've gained an enormous amount of understanding (some of it admittedly guesswork, but educated guesswork) about how NATO is operating behind the scenes. So, my perspective has changed a bit. Hopefully, the additions will prove useful.

A Little Background - Max/MSP

An understanding of NATO.0+55+3d modular is impossible without a basic understanding of NATO's underlying platform, Cycling '74's Max programming environment. Max was initially developed at IRCAM (http://www.ircam.fr/) by Miller Puckette, about 10 years ago, and has subsequently been taken over by David Zicarelli (first, through Opcode Systems (http://www.opcode.com/) and, more recently, through David's own company, Cycling '74 (http://www.cycling74.com/)).

Max was conceived as a toolkit or `kitchen` for electronic music (which, given the technology of the day, meant MIDI). It utilizes a graphical paradigm in which various `objects` (representing programming routines) are connected using virtual patchcords (indicating data flow). It's sort of like building a flowchart, or working with an analog synthesizer. Max comes with all sorts of basic objects to get MIDI information in and out, move numerical data around, transform the data in various ways and control some elements of the user interface. (If you don't know what MIDI is, it's basically control information for a wide variety of electronic devices, like sound synthesizers and lighting boards).

A couple of years ago, Cycling '74 introduced MSP, which extends Max by adding _audio capabilities into the same basic architecture. With MSP, Max became a fully configurable software synthesizer, sampler and sound laboratory. As with Max, functions are provided to get audio in and out (with support for numerous 3rd party sound cards), move audio data around and alter it with filters, numerical functions, whatever. Max and MSP can interact, of course, which means that the control structures built in Max can interface with the new audio objects -- the audio can be controlled and affected by MIDI data.

Max is extensible in 2 ways: if you create a `patch` -- your own configuration of objects that performs a particular task -- you can save it, and call up your patch as if it were a built-in function of Max; and if you know C, you can program your own `externals` -- optimized Max objects which perform whatever functions you could dream of. Which is where NATO.0+55+3d modular comes in...

top
forward

all materials on this site (text, images, etc.) © 2000-2001 Jeremy Bernstein

legal information