emusik.info Foren-Übersicht
Portal  •  Kalender  •  Forum  •  Profil  •  Suchen   •  Registrieren  •  Einloggen, um private Nachrichten zu lesen  •  Login   

 In Bildern komponieren

Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
Hahne
Site Admin



Geschlecht:
Alter: 57
Anmeldungsdatum: 17.08.2005
Beiträge: 14
Wohnort: NRW ganz oben links


germany.gif

BeitragVerfasst am: 17.08.2005 01:51    In Bildern komponieren Antworten mit ZitatNach oben

In Bildern komponieren

Die grafische Programmiersprache Max/MSP (Teil 1)

Jeder Komponist, der seine Musik mit Hilfe von Computern und Computerprogrammen produziert, stößt früher oder später an die Grenzen seiner Werkzeuge. Werkzeuge werden geplant und hergestellt, um eine verallgemeinerte Funktion ausführen und dadurch eine ganze Reihe von Aufgaben lösen zu können. Ein Werkzeugmacher kann jedoch kaum alle möglichen Aufgaben, für die sein Werkzeug jemals eingesetzt werden wird, vorwegnehmen. Wie fabelhaft wäre es, könnte man seine Werkzeuge selbst herstellen und ein Orchester mit Instrumenten, die passend zum zu lösenden musikalischen Problem entworfen wurden, realisieren!

Die Programmierung von Computern gilt gemeinhin als kryptische Angelegenheit. Sie scheint lediglich Spezialisten vorbehalten, die willens sind, große Mengen Zeit und Kraft darin zu investieren, abstrakte, dem menschlichen Maße unangemessene Texte zu lesen und zu schreiben. Mittels dieser Texte wird die in ihrem Aufbau und ihrer Funktionsweise noch unverständlichere und noch menschenfernere Rechenmaschine in Bewegung gesetzt und durch Hilfsmittel wie grafische Oberflächen und Mauszeiger bedienbarer gemacht. Das ist im Wesentlichen zutreffend und verweist auf eine zentrale Eigenschaft, durch die sich Programmiersprachen voneinander unterscheiden lassen: wie viele der intrikaten technischen Details der Computerhardware werden vor dem Programmierer beziehungsweise Anwender mit Hilfe von Abstraktionen verborgen. Oder andersherum, welche der Möglichkeiten, die eine gegebene Computerhardware bietet, möchte der Programmierer nutzen und auf diese zugreifen können.

Eine der wichtigsten Prämissen für die Wahl einer Programmiersprache ist demnach, wie nah oder wie fern der Maschine ein Autor sich verorten möchte. Eine Sprache, die von der Hardware stark abstrahiert, hat den Vorteil, dass Paradigmen aus der „realen“ Welt zur Veranschaulichung als Metapher gewählt werden können. Diese Paradigmen sind dem Nutzer bekannt, so dass er sie mit überschaubarem Aufwand auf den Computer übertragen kann und nicht ein neues erlernen muss. Ein Beispiel hierfür wäre der „Schreibtisch“ einer grafischen Benutzeroberfläche, auf dem „Dokumente“ abgelegt werden, die vom Bild (Icon) eines beschriebenen Papierblatts symbolisiert werden. Diese Dokumente können mit dem „Mauszeiger“ als Stellvertreter der Hand angefasst, an einen anderen „Ort“ geschoben, in einen „Recycler“ genannten Mülleimer befördert oder per elektronischer „Post“ an eine andere Adresse „verschickt“ werden. Nachteilig an diesem metaphorischen Paradigma ist, dass dem Anwender im Falle einer technischen Panne deren Ursachen verborgen bleiben und in aller Regel keine grafisch aufbereiteten Werkzeuge zur Verfügung stehen, um die Störung auf der metaphorischen Ebene analysieren und beheben zu können.

Auf die Domäne der Software-Entwicklung übertragen würde sich der Vorteil einer metaphorischen Darstellung in einer leichten Handhabbarkeit der Programmiersprache unter Verwendung von Alltagswissen ausbuchstabieren. Die Schattenseite würde gebildet durch eine Einschränkung der Möglichkeiten, auf die der Entwickler zugreifen kann, wie auch die geringere Effizienz einer solchen Sprache gegenüber maschinennahen, denn der Bedienkomfort kommt nicht ganz umsonst, sondern kostet immer auch Rechenzyklen.
Eine kurze Geschichte von Max/MSP

Mit dieser Präambel möchte ich die Programmiersprache Max/MSP vorstellen, die sich schlüssig in die oben genannten Kriterien einordnen lässt. Die Geschichte von Max beginnt 1986, als der Komponist und Software-Entwickler Miller Puckette am Pariser Ircam einen grafischen Hochsprachen-Editor namens Patcher für die Apple-Plattform veröffentlichte, dessen Funktionalität auf die Erzeugung und Verarbeitung von Kontrolldaten per MIDI beschränkt war. Patcher steuerte damit den „4X“, eine externe Recheneinheit zur Echtzeit-Klangsynthese. 1990 wurde Patcher an die amerikanische Firma Opcode lizensiert, dort von David Zicarelli erweitert und nach dem Vornamen eines der bedeutendsten Pioniere der Computermusik, Max Mathews, in Max umgetauft.

Ebenfalls 1990 wurde am Ircam eine um Software-Module zur Audio-Verarbeitung erweiterte Fassung von Max vorgestellt. Aufgrund der aus heutiger Sicht geringen Rechenleistung von PC- und Workstation-Computern wurde eine dedizierte Hardware-Plattform namens ISPW (Ircam Signal Processing Workstation) entwickelt, die als Einschubkarte für Workstations der Firma NeXT vermarktet wurde. Die ISPW-Plattform stellte zusammen mit der Programmiersprache Max/ISPW für viele Jahre eines der flexibelsten Systeme zur Realisierung von Kompositionen dar, die auf Echtzeit-Prozesse zurückgriffen. Dem entsprechend hoch war in dieser Phase bis circa 1998 ihre Beliebtheit unter Komponisten und zahllose musikalische Werke sind für diese Plattform entstanden.

Ende 1997 veröffentlichte Zicarelli eine Modul-Bibliothek zur Audioverarbeitung, MSP („Max Signal Processing“), die derjenigen von Max/ISPW sehr ähnlich war und nahtlos in die Max-Umgebung integriert werden konnte. Im Unterschied zu Max/ISPW benötigte sie jedoch keine besondere und äußerst kostspielige Audio-Hardware mit dazugehöriger Workstation, sondern lief bereits sinnvoll auf den schnelleren Modellen der damals erhältlichen Apple-Computer. 2002 wurde Max/MSP durch die ebenfalls nahtlos integrierte Bibliothek „Jitter“ zur effizienten Generierung und Verarbeitung von Grafik-Daten und Bewegtbild erweitert. Jüngst wurde eine Version von Max/MSP/Jitter für Apples reformiertes Betriebssystem OS X veröffentlicht. Eine Version für Windows XP ist angekündigt.

Am Ircam wird Max in einem anderen Strang ebenfalls weiterentwickelt. Verfügbar ist dort das Produkt jMAX (Java MAX), das mit ähnlichem Umfang wie Max/MSP ausgestattet, jedoch als Open Source frei erhältlich und bisher auf die Betriebssysteme Linux, Windows und OS X übertragen worden ist.
Programme zeichnen

Was macht es so reizvoll mit Max/MSP zu arbeiten, was ist das Besondere daran? Zum einen handelt es sich um eine Hochsprache in dem Sinne, dass sie über sehr umfangreiche Sammlungen fertiger und getesteter Programm-Module („Objekte“) verfügt, die oft benötigte Funktionen bereitstellen. Diese können baukastenartig miteinander zu größeren Einheiten verknüpft werden. Zum anderen werden diese Module nicht durch einen Zeichen für Zeichen einzugebenden Text miteinander in Beziehung gesetzt, sondern mithilfe einer grafischen Repräsentation, in der die verwendeten Module als „Bauklötzchen“ mit „Ein-“ und „Ausgängen“ dargestellt sind. Die Verbindungen zwischen den Klötzchen werden durch „Kabel“ hergestellt, durch die die Module miteinander „Nachrichten“ austauschen, die je nach Bedarf ausgelöst und an die angeschlossenen Module verschickt werden. Die eingangs genannten Vor- und Nachteile von mehr oder minder großer Hardwarenähe greifen hier freilich in vollem Umfang.

Eine weitere Erleichterung für die Entwicklung von Programmen ist, dass der Prozess des Programmierens bei Max/MSP nicht zweigeteilt ist in die Erstellung des Befehlscodes in einem Texteditor und die darauffolgende Übersetzung in maschinenlesbaren, ausführbaren Code (Kompilierung). Dieses unter Programmiersprachen sehr weit verbreitete Modell hat den Nachteil, dass bei jeder auch noch so kleinen Änderung am Programm das alte Programm beendet, der Befehlscode editiert, übersetzt und das neue Programm gestartet werden muss. Erfolg oder Misserfolg der Änderung kann erst nach Ablauf dieser Schritte beurteilt werden.
Die Trennung zwischen menschenlesbarem Befehlscode und maschinenlesbarem Programm ist im Gegensatz dazu bei Max/MSP auf ein Minimum reduziert. Die Erstellung eines Programms kann gewissermaßen „am offenen Herzen“ geschehen.

Dies liegt hauptsächlich im Konzept der Sprache begründet. Um eine Funktion zu erweitern, wird ein Modul aus einer Bibliothek ausgewählt und in den Befehlstext eingefügt. Es mag paradox klingen, aber dadurch es ist möglich, Programme zu ändern, während sie laufen, und das Ergebnis der Änderung unmittelbar zu evaluieren. Die auf diese Weise entstehenden kurzen Wege zwischen Aktion durch den Programmautor und Reaktion durch das Konstrukt beschleunigen in Kombination mit sehr brauchbaren Modul-Bibliotheken die Programmentwicklung in Max/MSP auf ein hohes Maß. Diese Eigenschaft macht Max/MSP ideal für die rasche Entwicklung von Prototypen, in deren Verlauf viele verschiedene Möglichkeiten zur Lösung eines Problems probiert und evaluiert werden sollen.

Als Beispiel sei das in der Abbildung gezeigte simple Programm („Patch“) zur Tonhöhen-Transposition gegeben. Eine Bildschirm-Tastatur zur Noteneingabe ist über ein Berechnungs-Modul [ + 12 ] mit einer weiteren Bildschirm-Tastatur zur Notenausgabe verbunden. Zusätzlich wird jeder Notenwert vor und nach der Transposition als Notenname symbolisch angezeigt. Eine per Bildschirm-Tastatur erzeugte „Note“, C2, wird nun durch das Berechnungs-Modul [ + 7 ] um eine Quinte aufwärts transponiert und auf der unteren Bildschirm-Tastatur grafisch angezeigt. Wird während der Laufzeit des Programms das Berechnungs-Modul nach [ - 7 ] geändert, berechnet das Programm bei der nächsten eintreffenden „Note“ eine Transposition um sieben Halbtöne nach unten.

Dieses recht einfache Beispiel beleuchtet das Konzept des grafisch repräsentierten Moduls, das grafische Erstellen von Programmen durch Verbindung von Modulein- und -ausgängen mit Verbindungslinien, die Kommunikation der Module bei Bedarf mittels Nachrichten sowie die daraus entstehende Möglichkeit, das Programm während seiner Ausführung zu ändern.
Im zweiten Teil werden umfangreichere Beispiele, Reflexionen über die ästhetischen Implikationen der Sprache sowie ihren Einfluss auf das kompositorische Denken aufgezeigt.

Torsten Belschner, dataphonic.de

Links
www.cycling74.com (Max/MSP)
www.ircam.fr/equipes/temps-reel/jmax/en/index.php3 (jMAX)

Quelle: http://www.nmz.de/nmz/2003/05/internet-maxmsp.shtml

OfflineBenutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen    
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


 Gehe zu:   



Berechtigungen anzeigen


Forensicherheit

1999 Angriffe abgewehrt

Powered by Orion based on phpBB © 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
Alle Zeiten sind GMT + 2 Stunden



[ Page generation time: 0.0233s (PHP: 80% - SQL: 20%) | SQL queries: 21 | GZIP disabled | Debug on ]