# Max/MSP

Max/MSP ist eine graphische Integrierte Entwicklungsumgebung für Musik und Multimedia von Cycling '74 (Ableton), die für Echtzeitprozesse ausgelegt ist. Sie wird von Komponisten, Musikern, Softwareentwicklern und Künstlern eingesetzt, um interaktive Software selbst zu erstellen – unabhängig von den ästhetischen Vorgaben kommerzieller Produkte. Insbesondere im Live-Betrieb ist diese Sprache in der akademischen elektronischen Musik, im Bereich des Live-Video und unter Laptop-Künstlern weit verbreitet.

## Geschichte

Die erste Version Max wurde von Miller Puckette Mitte der 1980er Jahre am IRCAM in Paris entwickelt. Anfang 1990 wurde eine kommerzielle Version von Opcode Systems veröffentlicht (entwickelt und erweitert von David Zicarelli). Seit 1999 wird die Software über Zicarellis Firma Cycling'74 vertrieben. Max ist nach Max Mathews benannt und kann als Nachfolger von MUSIC-N angesehen werden, obwohl Max auch für andere Zwecke als Musik eingesetzt werden kann.

## Allgemeines zur Sprache

Max/MSP ist eine modular aufgebaute, datenstromorientierte, objektbasierte Programmiersprache. Die Objekte existieren entweder als in C geschrieben „externals“ oder als „abstractions“, die aus einer Zusammenschaltung mehrerer „externals“ bestehen. Über visuelle Programmierung lassen sich diese Module, ähnlich den durch Kabel verbundenen Funktionsgruppen eines echten Synthesizers, in vielfältigen Formen zusammenschalten. Max/MSP stellt damit eine Form von Software-Synthesizer dar, kann aber auch für andere Anwendungen, etwa Messtechnik oder Automatisierung genutzt werden. Neben kommerziell erhältlichen MIDI-Controllern können mit Max/MSP eine Vielzahl von Sensoren benutzt werden, um die Software-Patches zu steuern.
Inzwischen stehen zwei prinzipielle Erweiterungen der Sprache Max als Objektsammlungen zur Verfügung, die ebenfalls über Cycling'74 erhältlich sind:
* MSP (Max Signal Processing) für Synthese und Audioverarbeitung in Echtzeit (seit 1997)
* Jitter für Videobearbeitung und 3D-Grafik in Echtzeit (seit 2002)
Darüber hinaus finden sich zahlreiche Sammlungen von Externals im Web, die meisten davon sind frei erhältlich.

## Hello world

Nachfolgende Abbildungen zeigen die Implementierung und Ausführung eines Hallo-Welt-Programms. Bei Betätigung des oberen Message-Objekts wird im Max Window durch das print-Objekt der entsprechende Ausdruck ausgegeben.
* Implementierungsansicht
* Max Window

## Ähnliche Software

Es gibt einige Verwandte des Systems:
* Pure Data ist eine freie Open-Source-Version, die vom ursprünglichen Max-Programmierer Miller Puckette entwickelt wird.
* jMax war eine Java-basierte Version, die auch am IRCAM entwickelt wurde, seit 2001 aber nicht weiter gepflegt wurde. Einige Funktionen flossen danach in die FTM-Library für Max und 2007 in Pure Data ein.
* Native Instruments schuf mit Reaktor eine Softwareanwendung, die einfacher als Max/MSP zu handhaben ist, jedoch einen ähnlichen Umfang an Modulationsmöglichkeiten beinhaltet. Max/MSP ist als modulare Programmiersprache universeller, während Reaktor im Wesentlichen wie ein frei zusammenschaltbares Tonstudio konzipiert ist. Während es mit Reaktor einfacher ist, Klangerzeuger und -prozessoren zu erstellen, ist bei Max/MSP die Echtzeitsteuerung mittels einer Vielzahl von externen Controllern möglich.
* Die deutsche Firma Meso Digital Media Systems Design bietet mit vvvv einen fernen Verwandten von Max/Msp. vvvv ist im Vergleich zu Max eher auf die Verarbeitung von Echtzeit-Videodaten ausgelegt, setzt aber ebenfalls auf eine patchbasierte Entwicklungsoberfläche.
* SynthMaker ist eine kostenpflichtige Entwicklungsumgebung für VST Instrumente und Effekte, mit der sich ebenso in Echtzeit Objekte einfügen lassen. SynthMaker bietet noch erweiterte Möglichkeiten, auch kompliziertere User Interfaces zu erstellen.
* Plogue Bidule bietet ebenso ein objektorientiertes System für Audio-, MIDI- und OSC-Fluss an. Bidule setzt besonders auf spektrale Audiostreamverarbeitung, wofür es einige Module gibt.