Über die Emotionalität des Programmierens
Wir stellen Rechenvorschriften für eine Maschine auf. Diese formulieren wir in einer bestimmten Sprache zu einem Quellcode, der anschließend in Maschinensprache übersetzt wird. Dazu schreiben wir Dinge auf wie z.B.:
…iftdb, iftenv, indxnotabs, indxnote, icount xin
idb tab_i indxnotabs, iftdb
ienv tab_i indxnotabs, iftenv
if indxnote != icount-1 then
idbnext tab_i indxnotabs+1, iftdb
ienvnext tab_i indxnotabs+1, iftenv
else
idbnext = 0
ienvnext = 1
endif
if ienv == 1 then
idb1 = -40
idb2 = idb
elseif indxnote == icount-1 || ienvnext == 1 || idbnext > idb then
idb1 = idb
idb2 = -40
else…
Unter Kollegen würden wir das wahrscheinlich eher so ausdrücken:
„Hey, schau mal, es wäre richtig klasse, wenn du bitte für die Gestaltung der Lautstärken Sorge tragen könntest, dass die crescendi immer getrennt voneinander ausgeführt werden, und dass sie auch immer in geschmackvollem piano beginnen. Und wenn’s geht, dann führe bitte alle diminuendi ebenso gewissenhaft aus wie die crescendi, so dass du am Ende wieder die Anfangslautstärke des nächsten crescendos triffst. Alter, das wär echt geschmeidig!“
Beim Programmieren geht es um eine effiziente Nutzung von Funktionen, eine möglichst elegant zusammengefasste Schreibweise (weniger bzw. kürzerer Code ist mehr!) und um zweckmäßige Formulierungen, und nicht um höfliches Bitten oder das Ausdrücken von Empfindungen, Schönheitsumschreibungen oder philosophischem Gedankengut.
Stattdessen teilen wir einer Maschine Informationen mit wie:
beginne zu lesen an Punkt x // ändere die Dauer der Frequenz x von x ms auf y ms // analysiere das Signal in einer Bündelung von x Einzelstückchen // leere den Zwischenspeicher // mache eine neue Liste auf // zähle bis x, wenn Wert x erreicht, dann lies File yz von Festplatte blablabla // transformiere ein Signal von Zeitbereich in Frequenzbereich // wenn das, dann tu das und das // usw.
Von außen betrachtet ist das erstmal ein absolut rational orientierter Vorgang, der mit Emotionalität wenig zu tun hat.
Aus Befehlsketten werden Emotionsketten
Mit dem Schreiben solcher Texte verbringen wir Stunden, ganze Tage und Nächte, kurzum ziemlich viel Lebenszeit. Und es konfrontiert uns unter Umständen mit Problemstellungen, deren Lösung uns echt Nerven, Kaffee, Energy-Drinks und Strom kostet! In übernächtigten Schreibtisch-Sessions entwickelt sich dabei ein äußerst ausgeprägter Wille, Problemen endlich auf die Spur zu kommen oder überhaupt mal zu checken, wo sich der Denk- und Rechenfehler versteckt, um dann zu versuchen, ihn zu lösen. Gelingt es uns solche Durststrecken zu überstehen, erwartet uns ein Gefühlscocktail aus Zufriedenheit, Freude und vielleicht auch Stolz, der uns umso mehr anspornt und beflügelt, weiterzumachen.
Und egal wie viele Computer man im Laufe seines Lebens verwendet und wie tief man in die unterschiedlichen Rechen-Ebenen dieser Maschine eintaucht, eines bleibt doch immer gleich: Die Programmiersprache des Vertrauens.
Schließlich hat man doch so viel gemeinsame Zeit darauf verwendet, einander näher zu kommen (= ok, wie ist diese Sprache jetzt aufgebaut? Was? Es gibt nicht nur eine Hochsprache, sondern auch unterschiedliche Dialekte, die nicht richtig dokumentiert sind ??).
Unzählige Male hat man versucht, die richtigen Worte zu treffen (= welches Objekt brauche ich dafür nochmal? Gibt‘s das überhaupt schon, oder muss ich mir das erstmal in C selber schreiben?).
Und oft genug ging es um‘s Durchhalten in wachen (= yay, ich hab den ganzen Abend Zeit!)
wie in übermüdeten Zeiten (= oh Gott, es wird schon wieder hell draußen und das Patch läuft immer noch nicht zuverlässig!).
Das schweißt zusammen!
Die Verzweiflung, das Übermaß an Freude, der Stolz, die Nervosität, die Ungeduld, der Ehrgeiz, … . Für den Rechner sind es nur Befehlsketten. Für uns sind es E M O T I O N S – Ketten!! Und das intensive Durchmachen dieser emotionalen Irrfahrten führt irgendwann dazu, dass die Sprache, in der wir programmieren, zu „unserer“ Sprache wird.
Die „eigene“ Programmiersprache verinnerlicht man im Laufe der Zeit so stark, dass sie vergleichbar ist mit einer gesprochenen Sprache. Wer mit Elektronik arbeitet, lernt in seiner künstlerischen Laufbahn nicht nur eine Sprache kennen, sondern schnuppert in verschiedene rein. Diejenige, bei der man hängenbleibt, wird dann irgendwann zu so etwas wie einer Muttersprache, von der aus man Prinzipien und Vorgänge in andere Sprachen überträgt.
Die „eigene“ Programmiersprache beherrscht man also mit der Zeit fließend. Sie wird zu einer Sprache, in der man denkt. Und damit wird sie zu etwas, zu dem wir eine persönliche Verbindung aufbauen.
User-Planschbecken oder Schwimmerbecken
Eine Programmiersprache ist natürlich einerseits ein Tool um einer Rechenmaschine Befehle mitzuteilen. Andererseits geht sie darüber in manchen Bereichen weit hinaus. So z.B. in der Audio-Programmierung.
Man könnte jetzt gegen-argumentieren und sagen: Hey, ganz ehrlich, was soll das Gelaber? Zu meiner Notensatz-Software oder meinem Internet-Browser hab ich auch keine emotionale Bindung, obwohl ich mit denen auch ewig viel Zeit verbringe, Filme online anschaue, die mich zum Weinen bringen und Emails bekomme, über die ich mich freue, usw.!
Richtig. Aber weder eine Notensatz-Software noch ein Internet-Browser beeinflussen die Art wie wir uns ausdrücken. In welchem Browser ich meine Emails lese oder schreibe, beeinflusst weder deren Inhalt noch meinen Schreibstil. Und in welcher Notensatz-Software ich meine Kompostionen druckreif verewige, beeinflusst auch nicht meine Tonsprache. In beiden Fällen bleibt man entspannt im User-Planschbecken sitzen. Wer allerdings programmiert, springt ins tiefe Schwimmerbecken rein, in dem man Möglichkeiten entwickeln muss, um sich über Wasser zu halten, weil man sonst gnadenlos untergeht.
Programmierung als Ausdrucksebene
Kommen wir daher noch einmal zurück zur Audio-Programmierung:
Im Falle von elektroakustischen Kompositionen oder Stücken für Instrument(e) und (Live-) Elektronik wird die verwendete Programmiersprache zu einem Teil der kompositorischen Ausdrucksweise. Jede Programmierumgebung hat eine bestimmte, für sie typische Klanglichkeit. Das hängt mit digitaler Signalverarbeitung, Algorithmen, der Audio-Engine und sonst noch lauter so Nerd-Zeug zusammen… . Jedenfalls, wenn wir uns dafür entscheiden, in einer bestimmten Sprache zu arbeiten, egal ob in textbasierten oder graphischen Sprachen, dann wird die damit einhergehende Klanglichkeit zwangsläufig Teil unserer Musik.
In jedem Kompositionsprozess stellen wir uns daher der Herausforderung, die Möglichkeiten unserer Programmierumgebung so geschickt auszuloten, dass wir so nah wie möglich an das herankommen, was in unserem inneren Ohr an klanglichen Vorstellungen herumschwirrt. Denn im Gegensatz zum Komponieren für akustische Instrumente, die als solche schon existieren, müssen wir ja in der Elektronischen und Elektroakustischen Musik erstmal unsere Instrumente und deren Klang entwickeln.
Da es beim Programmieren auch darum geht, Code möglichst elegant, also nicht zu umständlich zu formulieren, wird auch die Schreibweise als solche zu einem Ausdrucksmittel. Es gibt daher Komponisten, welche die Elektronik nicht nur graphisch in ihren Partituren festhalten, sondern sogar den kompletten Code dazuschreiben. Außerdem könnte man das Patch zu einem Stück auch als Erweiterung der Partitur betrachten.
Programmieren in der Community
Und dann kommt noch ein Aspekt hinzu: Wer programmiert, hat Freunde die auch programmieren! Man unterstützt sich gegenseitig und macht sich bei Bedarf auch mal gemeinsam auf die Suche nach Lösungen. Das macht dann auch richtig Spaß (okay, andere lösen stattdessen vielleicht lieber Kreuzworträtsel oder Sudoku)! Und über den persönlichen Freundeskreis hinaus, spielen auch online-Communities der jeweiligen Programmierumgebung eine wichtige Rolle im Austausch über Projekte und in der Weiterentwicklung der Sprache. Je verlässlicher und regelmäßiger der Austausch im Online-Forum ist, desto stärker entwickelt sich auch die Gruppenzugehörigkeit und Identifikation mit der Community und letztlich mit der Software bzw. Sprache.
Denn bei der Entscheidung für eine Programmiersprache geht es nicht nur darum, eine Umgebung zu finden, die so aufgebaut ist, dass diese optimal zur eigenen Denk- und Arbeitsweise passt. Ebenso wenig wählt man sie danach aus, ob das GUI (Graphische Benutzeroberfläche) ästhetisch das Muster der Wandtapete ergänzt. Oftmals ist die Entscheidung für oder gegen eine Programmiersprache an eine bestimmte Haltung geknüpft. Das beste Beispiel dafür ist die alte Frage danach, ob man eher Open Source – oder kommerzielle Software nutzen sollte. Die einen verteufeln die kommerzielle Software profitorientierter Hersteller, die anderen belächeln die user-unfreundliche Software mit frei zugänglichem Code, an der jeder vermeintlich herurumpfuschen kann. Und so batteln sich die Klischees…
Do it yourself!
Daher zum Schluss noch ein paar Empfehlungen um der Emotionalität des Programmierens näher auf den Grund zu gehen:
– Ladet demnächst doch mal ein paar Elektroakustische – Musik – KomponistInnen aus eurer Nachbarschaft zum Grillen ein, und fragt sie nach den Vorzügen ihrer jeweiligen Programmiersprachen im Vergleich zueinander. Der Abend könnte lang und nervenaufreibend werden…
– Schnuppert in Online-Foren rein und beobachtet mal, was da alles los ist, wenn so, wie unlängst, eine Software von einer anderen droht aufgefressen zu werden, weil die eine Herstellerfirma die andere „aus Freundschaft“ übernimmt.
– Oder gleich der Selbstversuch: Fangt doch schon heute einfach mal an eine Programmiersprache zu lernen. Egal ob Csound, SuperCollider, Pure Data, Kyma, Max, Python, Lisp, C++, Java, Chuck oder Brainfuck …wir sprechen uns dann nach der ersten durchgemachten Nacht!
Julia Mihály definiert sich als composer-performer, sprengt mit Freude alle Schubladen, in die man sie stecken möchte, arbeitet gelegentlich als Radioautorin und engagiert sich im Vorstand der DEGEM.
Hallo,
in einem Punkt würde ich widersprechen. In welchem Interbrowser ich meine Emails schreibe und in welchem Notensatzprogramm meine Noten, beeinflusst auf jeden Fall meine Emails und meine Noten! Interfaces beeinflussen meiner Meinung nach immer die Ideen auf die man kommt. Beim Emails schreiben im Browser mag das noch recht gering sein, falls ich jedoch die eigentliche Kompositionsarbeit (kreativ und so..) in meinem Notensatzprogramm erledige und um ein Crescendo zu setzen 10 Klicks brauche, leidet vielleicht die dynamische Setzung meiner Musik darunter.
Liebe Grüße
Tim
Lieber Tim,
ich kann deine Argumente nachvollziehen. Interfaces beeinflussen Userverhalten. Das sehe ich auch so. Um dein Beispiel mit den 10 Klicks für ein Cresc. aufzugreifen: Wenn du in einer Software 10 Klicks dafür benötigst, nervt dich das so lange, bis du einfach eine andere Software verwendest. Wenn du aber einen bestimmten Klang im Ohr hast, den du verwenden willst, und keine Library stellt diesen genau so zur Verfügung, wie du ihn dir vorstellst, dann bist du gezwungen, entweder mit einer künstlerischen Einschränkung zu leben oder aber selbst aktiv zu werden. Dann musst du ihn selbst programmieren. Wenn sich dann aber rausstellt, dass genau dies ein wahnsinnig komplexes Verfahren erfordert, was dich Tage und Nächte kosten wird, dann bist du gemessen am Arbeitsaufwand emotional sicher stärker involviert, als bei den 10 Klicks für die du halt einfach ein anderes Programm verwendest. Weißt du, was ich meine?
Liebe Grüße
Julia
Liebe Julia Mihály,
ich freue mich, endlich auch einmal eine Komponistin hier im BBoM anzutreffen!
Inhaltlich bin ich aber mit deinem Artikel nicht einverstanden. Mich stört weniger das, was du schreibst, als das, was du nicht schreibst.
Dass programmiersprachenbasiertes Komponieren intellektuell und emotional stimulierend und lohnend sein kann – klar. Dass speziell diese Variante kreativer Arbeit auch ein gemeinschaftsstiftendes Moment haben kann – logisch, denn – mal ganz allgemein gesagt – je stärker formalisierbar eine Angelegenheit, desto schneller entstehen soziale Strukturen.
Was mir fehlt in deinem Text, ist ein Gedanke zum Warum? all der Arbeit. Wenn ich dich richig verstehe, siehst dich als Künstlerin (Kunstmusikkomponistin), für die Programmierkompetenz Mittel zum Zweck ist. Ich bekomme beim Lesen deines Text aber gelegentlich einen anderen Eindruck: Die Lösung anspruchvollster musikalisch-technischer Probleme schiebt sich vor die eigentliche Aufgabe des Künstlers, die man als sinnliche Vermittlung ästhetischer Erfahrung beschreiben könnte.
Dass einem programmiertechnische Brillanz innerhalb der Community Ansehen einbringt, ist klar. Das hat aber nichts mit künstlerischem Erfolg zu tun. Letzterer stellt sich – wieder ganz allgemein gesprochen – erst dann ein, wenn er die Community-Blase transzendiert.
Die Kunstmusik (früher: Neue Musik) hierzulande neigt aufgrund ihrer Akademisiertheit (vgl. Moritz‘ Artikel allhier vor einigen Tagen) ohnehin zur, pardon, „Sozialonanie“. Mit einer Fokussierung auf programmiertechnische Kompetenz als Selektionsmechanismus scheint sich mir das noch zu verstärken: Wer’s „kann“ bzw. wer’s „draufhat“, ist „drin“. Wer nicht, der nicht.
Aber was ist das anderes als die Übertragung des meritokratischen Prinzips der Mathematik und Naturwissenschaften auf die Kunst? Bester Intellekt = bester Künstler.
Was meinst du, übertreibe ich hier?
Lieber Stefan Hetzel,
vielen Dank für deine Gedanken zum Thema.
Es ist richtig, wer mit Elektronik arbeitet, befindet sich oftmals im Spannungsfeld zwischen dem Lösen technischer Probleme und dem kreativen Prozess des Komponierens. Und man erinnert sich häufig genug daran, dass man doch in erster Linie KomponistIn ist, und nicht ProgrammiererIn, und dementsprechend mehr Zeit für das Entwickeln der Musik als für die Programmierung irgendwelcher Schaltungen o.ä. verwenden möchte. Und zeitweise ist es auch so, dass sich im Entstehungsprozess einer Komposition die Lösung technischer Probleme vor das „Musik-Machen“ schiebt. Das passiert aber genauso, wenn man erstmal dasitzt und sich ein besonders komplexes System zur Tonhöhen-Strukturierung o.ä. auf dem Papier zurechtschustert. Das man sich dann innerhalb des Entstehungsprozesses einer Komposition auch emotionsgeladener an einzelnen Arbeitsschritten aufhält, schließt doch das Vermitteln ästhetischer Erfahrungen durch die fertige Komposition nicht aus.
Und im Grunde genommen mache ich mit meinem Text nichts anderes, als mir einen Arbeitsschritt des Komponierens herauszupicken und mit der Lupe zu betrachten. Die Audio-Programmierung ist ein Werkzeug zur Klangerzeugung. Trotzdem gestaltet sich die Nutzung dieses Werkzeuges in der Praxis nicht unemotional.
Wenn ich den halben Tag in der prallen Sonne stehe und alleine einen dicken Baum mit einer Axt fälle, weil der Garten dann eher meiner optischen Idealvorstellung entspricht, dann ist das zwar auch erstmal eine zweckmäßige Handlung. Trotzdem werde ich nicht leugnen können, dass ich zwar während dessen geflucht und mich geärgert habe, dass ich hinterher aber total stolz und glücklich bin, das geschafft zu haben. Und wenn ich dann irgendwann diese Axt wieder in die Hände nehme, werde ich vielleicht mit Stolz daran zurückdenken, wie ich mit ihr gearbeitet habe, um die ästhetische Erfahrung des Gartens meinen Vorstellungen anzupassen.
Programmieren und Community:
Klar, wer herausragende Skills draufhat, ist in der Community auch bekannt, veröffentlicht in der Regel seine eigene Tutorial-Reihe und wird geschätzt dafür. Darum geht es aber im Austausch innerhalb der Community erstmal nicht. Es geht vielmehr darum, dass man Kontakt zu einem Wissens-Pool hat. Es geht nicht darum, zu zeigen, was für ein/e brillante/r ProgrammiererIn man ist, sondern darum, Erfahrungen auszutauschen und sich gegenseitig zu helfen. Im Ernstfall konnten dadurch schon manche Projekte in letzter Sekunde gerettet werden. Online-Communities sind keine Plattformen für künstlerischen Erfolg.
Elektroakustische Musik findet traditionell im institutionellen Rahmen statt. Das ist richtig. Das hat geschichtlich damit etwas zu tun, dass früher die benötigten Rechner und sonstige Gerätschaften nun mal in Studios von Rundfunkanstalten oder Universitäten standen, weil dort die finanziellen Mittel vorhanden waren. Noch vor der Zeit von PC, MIDI & Co war es so gut wie unmöglich, zu Hause elektronische Musik zu produzieren. Niemand konnte sich das leisten. Heutzutage sind alle nötigen Devices problemlos relativ kostengünstig zu erwerben. Trotzdem befindet sich die Elektroakustische Musik immer noch in einem Elfenbeinturm, was ich allerdings eher auf die etwas schwerere Konsumierbarkeit, als auf das Verhalten der entsprechenden Künstler zurückführe. Wir haben da das gleiche Problem wie die KollegInnen aus der zeitgen. Instrumentalmusik.
Wenn ich jetzt gleich auf die Straße gehen und drei beliebigen Leuten erzählen würde, dass ich Elektronische Musik mache, dann würden wahrscheinlich alle drei zu erst denken, dass ich Techno produziere. Und dass führe ich in diesem Fall nicht darauf zurück, dass Frankfurt eine starke Techno-Vergangenheit hat ;-)
Die meisten Menschen kennen diese Form von Musik ja überhaupt nicht. Die Elektroakustische Musik ist die Nische der Nische der Nische. Es ist eine Ansammlung von vergleichsweise wenigen Spezialisten, die aber in keiner Weise für sich beanspruchen, dadurch dass sie etwas beherrschen, was andere weniger können, bessere Künstler zu sein!
Über mehr Aufmerksamkeit und Akzeptanz in der klassischen Musik würden sich die meisten sehr freuen, klar! Aber solange wir immer noch darum kämpfen müssen, z.B. bei Musikverwertungsgesellschaften wirklich ernstgenommen zu werden, sind wir ganz weit davon entfernt, uns als die besseren Künstler anzusehen!
Ich muss der Behauptung „Wer’s kann, ist drin. Wer nicht, der nicht“ ganz klar widersprechen. Ich freue mich über jede/n, der / die auch anfängt zu programmieren und nicht einfach nur irgendein vorproduziertes Soundmaterial verwendet.
Je mehr Leute dazukommen, desto besser! Und dieser Geist herrscht auch in den Online-Communities. Davon bezeugen alle vielfach und hilfreich beantworteten Threads, in denen Leute schreiben „Hey, ich bin neu hier und kenn mich in Sprache X noch nicht so gut aus. Vielleicht könnt ihr mir helfen…“.
Und wenn ich im BBoM über sehr nerdige Themen aus dem Bereich der Elektronischen Musik schreibe, dann geht es auch immer darum, die eigenen Klischees zu reflektieren und ein wenig auf’s Korn zu nehmen ;-)