5.2 Grafisches Programmieren mit Cycling’74 Max/MSP

Grafisches Programmieren ist eine der zahlreichen Programmierformen, die sich mit der IT Welt entwickelt hat. Dabei handelt es sich nicht direkt um eine Programmiersprache, sondern um eine Programmierumgebung. Grob ausgedrückt unterscheidet sich grafisches Programmieren vom klassischen textlichen (z. B. C++) Programmieren darin, dass dem Entwickler grafische Objekte mit speziellen Eigenschaften zur Verfügung stehen, die er meistens intuitiv miteinander verknüpfen kann. Es gibt zahlreiche kostenlose und –pflichtige Anwendungen (z. B. Max/MSP, Pure Data, Reaktor usw.), die speziell für den multimedialen Bereich geeignet sind.

Im Folgenden werde ich mich näher auf Max/MSP von Cycling’74 beziehen. Das Programm wurde nach dem „Vater der Computer Musik“ Max Mathews benannt. Max Mathews war ein Standford Professor und hatte seine Forschung auf die computergenerierte unkonventionelle Form der Soundbearbeitung konzentriert. 1962 bis 1985 war er Leiter des „Acoustical and Behavioral Research Center“ und entwickelte mit seinem Forschungsteam eine Möglichkeit, Sprache zu digitalisieren. Daraus entwickelte er die Überlegung, digitale Quellen zur Sounderzeugung zu nutzen und diese Technologie für Nichtwissenschaftler brauchbar zu machen. Mit diesen Ansätzen entwickelte Mathews das Programm „Music“, das Grundlage für zahlreiche weitere multimediale Programmieransätze ist (Csound, CMIX und Max). John Chowning sagte, dass Max der Samen sei und die Standford University der Nährboden. (Vgl. Stanford University, 2011)

Miller Pucket, u.a. Entwickler von Pure Data, entwickelte die Max Umgebung weiter. Mit David Zicarelli und seiner Firma Cycling’74 wurde Max/MSP mit zusätzlichen Erweiterungen ausgestattet, überarbeitet und kommerzialisiert (vgl. Cipriani & Maurizio Giri, 2010, S. XI). Dadurch dass Pure Data und Max/MSP den gleichen Entwicklungsursprung haben, sind bis heute viele Max und Pure Data Projekte zwischen den beiden Plattformen weitgehend kompatibel. Pure Dara ist etwas puristischer gestaltet und bietet weniger Informationen an, sodass viele Informationen erst über zusätzliche Quellen herangezogen werden müssen. Die Max/MSP Programmierungsumgebung ist besonders geeignet für den Einstieg in die multimediale Programmierwelt. Der Grundgedanke Mathews, die Umgebung für nichtfachkundige Personen zu gestalten, ist bis heute eine Leitmaxime und zeigt sich deutlich in der Struktur von Max/MSP – z.B. die Autovervollständigung bei der Eingabe eines Objekttyps. In Max/MSP gibt es sog. „Object“- und „Message“-Boxen, die komplexe Abläufe vereinfacht dargestellt ausführen. Durch virtuelle „Kabel“ werden diese Objekte miteinander verbunden und können vernetzt zusammen interagieren (siehe Abb. 5).

Abb. 5 Die "message" Box sendet den Inhalt an das "print" Object. Die eingehenden Signale können im "Max" Fenster (rechts) betrachtet werden.

Abb. 5 Die “message” Box sendet den Inhalt an das “print” Object. Die eingehenden Signale können im “Max” Fenster (rechts) betrachtet werden.

Diese virtuellen Kabel können jegliche Signale transportieren. Die gebildeten Gruppen können als „Abstraction“ bzw. als sog. „Extensions“ exportiert und anderen zur Verfügung gestellt werden. Weitere entsprechende „Extensions“ können in der C Programmiersprache selbst entwickelt oder z. B. über das „mxj“ Objekt in Java eingebunden werden. Die zahlreichen Schnittstellen, die in Max/MSP integriert sind, ermöglichen es dem Endanwender, schnell eigene Programme zu entwickeln. Die in Max/MSP integrierten Funktionen sind betriebssystemübergreifend kompatibel, sodass die Projekte einfach untereinander geteilt werden können, was die kollektive Fehlersuche deutlich vereinfacht. Falls mehr Informationen zu einem Objekt und seinen Eigenschaften notwendig sind, können diese über einen Rechtsmausklick auf das Objekt selbst – im Untermenü unter „Help“, „Informationen“ – können zusätzliche Beschreibungen aufgerufen werden und der Anwender bekommt zudem zahlreiche weitere Empfehlungen von potenziellen Objekten, die für das aktuelle Objekt geeignet sind. Dadurch erschließen sich auch für Anfänger schon zu Beginn relativ schnell Lösungswege, sodass das Experimentieren gefördert wird. Cycling’74 bietet mit seiner Programmierumgebung zahlreiche zusätzliche kostenlose Dokumentationen an, die zum einen im Programm selbst integriert sind, aber auch jederzeit online abgerufen werden können. Die Informationsdichte dieser Dokumentationen, kombiniert mit dem Wissensfundus der zahlreichen Max/MSP Foren und Blogs, erübrigt meist zusätzliche Literatur. Das sieht man auch daran, dass es kaum bis keine Printliteratur für diese Software gibt, was nicht an der Beliebtheit der Software liegt. Max/MSP hat sich in vielerlei Hinsicht als Standard etabliert, weil es eben benutzerorientiert und -effizient ausgerichtet ist. Daraus sind zahlreiche weitere Kooperationspartnerschaften entstanden, die den Leistungsumfang stetig erweitert haben, sodass Max/MSP heute ein Standard für kreativ-technologische Projekte darstellt (vgl. ebd., S. XI). Das zusätzliche Bildungsengagement, wie z. B. spezielle Schüler-, Studenten-, Lehrpersonal- und Bildungseinrichtungsrabatte, qualifizieren Max/MSP zusätzlich für den ökonomischen Einsatz auf diesem Gebiet und haben diese Software weltweit an vielen Schulen und Universitäten (u.a. Universität der Künste Berlin, Stanford University) etabliert. Von diesem Joint Venture profierten beide Parteien. Cycling’74 etabliert sich auf dem Bildungsmarkt mit einer grundsoliden Softwarebasis und die Community, die sich um diese Software bildet, entwickelt selbst eigene Erweiterungen oder Hilfsmedien, die das Potenzial der Software stetig erweitern, ohne dass Cycling’74 selbst weitere Investitionen für neue Innovationen tätigen müsste. Die daraus resultierenden Ergebnisse sind z. B. die OSC (vgl. Zbyszynski, et al.) Implementierung, wodurch sich zahlreiche neue Anwendungsgebiete erschließen und durch die sich u. a. iPhones oder iPads mit einer OSC Applikation (TouchOSC, Control usw.) über ein Wlan Netzwerk verbinden lassen. Über eine serielle Schnittstelle können nativ Mikroprozessoren wie die Arduino Plattform oder Teensy angesteuert und ausgelesen werden. Entsprechend dem erworbenen Softwarepaket Max/MSP Jitter, Gen, Cyclops und Max4Live können umfangreiche multimediale Inhalte in Echtzeit produziert, aufgezeichnet und manipuliert werden. Durch die grafische Oberfläche werden viele Datenverarbeitungs- prozesse für den Anwender sichtbar. Dies fördert das „predictiv knowledge“ nach Joel Chadabe. (Vgl. Cipriani & Maurizio Giri, 2010, S. VII)

Fasst man die Vorteile des grafischen Programmierens mit Max/MSP zusammen, dann sind besonders die hohe kostenlose und frei zugängliche Informationsdichte, die auch durch die Community erreicht wird, und nicht zuletzt die kostengünstige Umsetzung hervorzuheben. Hat man eine Lizenz erworben, sind die einzigen weiteren anfallenden Kostenfaktoren die Arbeitszeit und der Strom für den Rechner.

|  5.1 Der „DJ“ – R-/Evolution durch Technologie |

5.3 Konzept & Projektaufbau |