Was ist MaxMSP?


MaxMSP ist eine grafische Programmierumgebung.

Wofür kann man das brauchen?


Anwendungen der Live-Elektronik, Klanginstallationen, Entwicklung von Plugins (mit der Erweiterung Pluggo), Rapid Prototyping. Mit der Erweiterung jitter auch zur Echtzeitbearbeitung von Videomaterial geeignet.
Max entlastet den Entwickler von der Notwendigkeit, auf maschinennaher Ebene Code entwickeln zu müssen.

Wofür ist Max nicht geeignet?


Alle Aufgaben, die sich mit herkömmlichen Sequencerprogrammen besser erledigen lassen.

Was sind die Nachteile gegenüber der Programmentwicklung z.B. mit C++?


Größere Patcher werden schnell ineffizient, was die Ausnutzung der Rechnerressourcen angeht. Die pseudo-Parallelität der Ereignisverarbeitung in Max ist bei großen Projekten eine Quelle schwer zu beseitigender Bugs (Abhilfe: immer trigger benutzen).

Woher kommt der Name?


Es handelt sich um eine Referenz an den Computermusikpionier Max Mathews, dem Erfinder der Musiksprachen Music I bis V.

Was braucht man an Vorwissen?


Wer Schaltpläne lesen und zeichnen kann, hat das Vorwissen, um Max-Patches zu erstellen. Interesse ist nötig und der Wunsch, Musik auf eine Weise zu machen, die mit konfektionierten Musikprogrammen nicht möglich ist. Im Weiteren sollten aber grundlegende Konzepte des Softwareengineerings bekannt sein oder erworben werden, z.B. mit Hilfe von C, Java, Smalltalk.

Die wichtigsten Bedienkonzepte:


Apfel-n: neues Patcherfenster
Apfel-Klick ins leere Fenster: Umschaltung Edit/Verriegelung
Mehrfachselektion von Objekten erfolgt wie bei anderen Programmen.
Hilfesystem: alt-Klick auf Objekt öffnet Demopatch für selbiges.

screenshot_02

Ein neues leeres Patcherfenster mit geöffneter Objektpalette.

Max-Objektarten


"Boxes", "User Interface", "Dekoration"

Einfache Objektboxen bilden die Funktionselemente von Patchern:

screenshot_03

Dateneingabe und Anzeige erfolgt mit User-Interface Objekten:

screenshot_04

Dekoration schliesslich sind Kommentare, Bilder und Panels. Sie haben keine Funktion im Patch und dienen der visuellen Unterteilung des Patcherfensters:
Stacks Image 783
Einem Unterprogramm bei herkömmlichen Programmiersprachen entspricht der Subpatcher in Max. Im Patcher selbst enthaltene Subpatcher werden mit dem p- Objekt gebildet. Als eigenständige Dateien gespeicherte Subpatcher werden im Max-Jargon Abstraction genannt und werden mit ihrem Namen in einer Objektbox in das aktuelle Patcherfenster geladen (instanziiert). Dabei können bis zu 9 Argumente übergeben werden (#1 … #9). Sonderfall: "bpatcher", ein "sichtbarer" Subpatcher. Daten gelangen über "inlets" und "outlets" in und aus Subpatchern.
Darüber hinaus besteht die Möglichkeit, via "send" und "receive" Daten zu verschicken. Ein "send" verhält sich wie ein Radiosender, der von allen "receives" mit dem entsprechenden Namen empfangen wird.
Ein weiteres Datenversandsystem ist rund um die pattr-Objektfamilie gebaut.

Welche Arten von Daten gibt es?


  • diskrete Nachrichten: bang, Integerzahlen, Fließkommazahlen, Symbole, Listen, "messages"
  • kontinuierliche Daten: Audiosignale, die allerdings als "Vektoren", also als "Pakete" verarbeitet werden.
  • mehrdimensionale Matrizen in jitter.