Über kompositorisches Denken mit und vor dem Computer

(Eine leicht gekürzte Fassung erschien in Band 141 der Zeitschrift MusikTexte, Köln)

[Download as pdf]

Zwei Welten

Neue Musik und Elektronische Musik kommen aus zwei ganz unterschiedlichen Traditionslinien. Das, was etwas hilflos seit ungefähr hundert Jahren „Neue Musik" genannt wird, setzt - nicht zuletzt im Selbstverständnis der Komponierenden - eine jahrhunderte lange Tradition westlicher Kunstmusik fort; mit allem, was dazugehört an Kenntnis der Literatur, der Instrumente, der Notation, der früheren und gegenwärtigen Kompositionstechniken. „Elektronische", „elektroakustische" oder „Computer"musik heissen nicht zufällig nach technischen Gerätschaften: Sie sind entstanden, weil verrückte Leute aus etwas, das zu einem ganz anderen Zwecken entstanden war, Musik gemacht haben. Das betrifft die Signalgeneratoren der 50er Jahre (ursprünglich Messgeräte) ebenso wie den Computer, der als unförmige Rechenmaschine startete und als Büromaschine sein heutiges Aussehen bekommen hat.

Es ist also kein Wunder, dass viele wichtige Komponisten und Komponistinnen zeitgenössischer Musik von „der Elektronik" nicht viel wissen wollten, oder zumindest kaum etwas in diesem Medium produziert haben. Zu verschieden ist die Art, wie man in beiden Bereichen arbeitet: Schreiben und mit ausführenden, interpretierenden Menschen arbeiten hier; Beschäftigung mit und oft enormer Zeitaufwand für Technik dort.

Umgekehrt liegt es natürlich auch von seiten „der Elektronik“ aus keineswegs auf der Hand, die solcherart mit technischen Geräten erzeugte Musik mit zeitgenössischen Kompositionswerkzeugen zu produzieren.¹ Bleibt von seiten derjenigen Komponisten, die sich „mal“ mit Elektronik beschäftigen, diese oft an der Oberfläche von „interessanten Klängen“ oder „Effekten“, so verwenden diejenigen, die von der technischen Seite der Elektronik herkommen, oft musikalische Mittel, die vom Standpunkt Neuer Musik aus unreflektiert und überkommen erscheinen müssen.

Es geht aber auch anders, und dort wird es wirklich spannend. Dort, wo es zu einer inneren Beziehung der beiden - ursprünglich getrennten - Bereiche kommt. Wenn beispielsweise Nono in seiner Live-Elektronik der 80er Jahre das fortsetzt, was ihn in dieser Zeit als Komponist überhaupt interessiert: in die Klänge hinein zu gehen, Zeit zu dehnen, Dimensionen in einem Klang, und dessen Resonanzen, zu öffnen. Die Elektronik setzt das fort, sie transformiert es auf eine neue Ebene. Die Elektronik wird aber auch selber dadurch unverwechselbar geformt; sie wird aus einer Ansammlung von Geräten und Techniken zu einem wirklichen (und individuellen) Instrument.

Ich möchte hier einer anderen Art von innerer Verbindung zwischen den Bereichen "Elektronik" und "modernes Komponieren" nachgehen. Einer Verbindung, die nicht - wie so häufig - bei den Klängen ansetzt, sondern die eine Vorgehensweise, eine Art zu denken betrifft. Ich möchte an zwei paradigmatischen Stücken der frühen 50er Jahre zeigen, dass sich hier ein kompositorisches Denken ausprägt, das sich vollkommen mit dem deckt, was man tut, wenn man ein Computerprogramm schreibt. Mit anderen Worten: Komponisten "programmieren" ihre Musik -- zu einer Zeit, als die höheren Programmiersprachen erst entstehen, und ohne Kenntnis der Vorgänge in diesem Zweig der technischen Welt.²

Es geht also um den Aufweis einer fundamentalen "Verwandtschaft" zwischen der Kompositionstechnik und einem Vorgang, der dem Computer essentiell ist: dem Programmieren. Ich werde dazu zunächst kurz auf die Entwicklung des Computers, und vor allem der zum Computer führenden Denkweise eingehen. In diesem Zusammenhang soll der Begriff des Algorithmus besprochen werden. Vor diesem Hintergrund analysiere ich dann das Vorgehen von Stockhausen in Studie II und von Cage in Williams Mix. Abschließend diskutiere ich die Frage, was die spezifischen Qualitäten von Cages und Stockhausens Vorgehen als Komponisten sind: Wenn das, wie vorgegangen wird, so viele Ähnlichkeiten zu einem quasi automatischen Prozess hat, worin liegen dann die eigentlich künstlerischen Qualitäten?

Denken, Formalisieren, Computer

Elektronische Musik wird heute fast ausschließlich mit dem Computer produziert. Er hat alle früheren selbständigen technischen Einheiten (Signalgeneratoren, Bandmaschine, Filter etc. pp.) in sich aufgesogen. Woher diese Fähigkeit?

Auf der Seite des äußeren Geräts, der Hardware, ist der Prozess ebenso einfach wie langweilig zu beschreiben: Der Computer wird immer schneller, immer kleiner, immer billiger. Der ENIAC von 1946 stand auf einer Fläche von 10 X 17 Metern, wog 27 Tonnen und kostete nach heutigen Preisen etwa 5.000.000 €.³ Er hatte einen Speicher von 80 Bytes. Der IBM 7090 von 1960 kostete etwa dasselbe, hatte aber schon 150 KB Arbeitsspeicher. Der erste „Personal Computer“ HP-9100A von 1968 ließ sich schon auf einen Schreibtisch stellen; er hatte allerdings verglichen mit den Großrechnern nur wenig Speicher, kostete dafür aber auch nur etwa 70.000 €. Die im heutigen Sinne ersten „PC“s Ende der 70er Jahre hatten etwa 10 KB Speicher und kosteten um die 5.000 €.

Ein heutiges „Tablet“ wiegt einige hundert Gramm, hat Gigabytes an Speicher, kann das zig-fache von früheren Großrechnern und kostet etwa 500 €.

Aber das ist nicht der Grund dafür, dass der Computer alle möglichen anderen Geräte in sich aufnehmen kann. Der Grund dafür liegt in seiner Programmierbarkeit. Diese Programmierbarkeit stellt eine neue Qualität in der Entwicklung von Maschinen dar. Sie setzt eine Formalisierung voraus, und diese Formalisierung und „Ausführbarkeit“ ist es, die eine Verbindung zwischen der programmierbaren Maschine und wichtigen Tendenzen in Neuer Musik darstellt. Für die Entstehung des Computers sind dabei Diskussionen in der Mathematik besonders bedeutsam. Auf sie soll daher kurz eingegangen werden. Sie stellen den wissenschaftsgeschichtlichen Hintergrund dar, zu dem sich manche kompositorische Verfahrensweisen in Bezug setzen lassen.

David Hilbert versuchte die Grundlagenkrise in der Mathematik zu Beginn des 20. Jahrhunderts durch einen konsequenten Selbstbezug der mathematischen Verfahrensweisen zu lösen. Es ging nicht mehr um eine Verbindung aus „unmittelbar einleuchtenden“ Axiomen und daraus abgeleiteten logischen Folgerungen,¹⁰ sondern um ein in sich selbst, quasi ohne Außenbezug, stimmiges System.¹¹ Dazu musste vor allem gezeigt werden, dass ein solches System vollständig ist,¹² und dass irgendeine Aussage in ihm entscheidbar ist.

Kurt Gödel bewies jedoch 1931, dass ein hinreichend komplexes System zwangsläufig unvollständig ist - es muss Aussagen enthalten, die sich nicht in ihm begründen lassen. „In jedem genügend reichhaltigen System lassen sich Sätze formulieren, die innerhalb des Systems weder beweis- noch widerlegbar sind, es sei denn das System wäre selbst inkonsistent.“¹³ Gödel beweist das - stark vereinfacht gesagt - durch Untersuchung des Satzes „Diese Satz ist nicht beweisbar“.¹⁴

Operierte schon dieser Beweis in merkwürdiger Weise mit Zahlen (das berühmte „gödelisieren“),¹⁵ so ging Alan Turing 1936 in On Computable Numbers, with an Application to the Entscheidungsproblem¹⁶ noch einen Schritt weiter. Er führte nämlich eine mathematische Berechnung auf eine extrem einfache Maschine zurück, die das formalisiert, was man beim Rechnen „mit der Hand“ auf Kästchenpapier macht.¹⁷ Diese Maschine kann also lesen, schreiben, und das Band nach links oder rechts transportieren.¹⁸ Durch das modellhaft-konsequente Durchspielen der möglichen Zustände, in denen sich die Maschine befinden kann, kommt Turing zu dem Schluss, dass das Entscheidungsproblem unlösbar ist:
„I propose, therefore, to show that there can be no general process for determining whether a given formula A of the functional calculus K is provable, i.e. that there can be no machine which, supplied with any one A of these formulae, will eventually say whether A is provable. “ (259) „We are now in a position to show that the Entscheidungsproblem cannot be solved. Let us suppose the contrary. Then there is a general (mechanical) process for determining whether Un is provable. By Lemmas 1 and 2, this implies that there is a process for determining whether Un ever prints 0, and this is impossible, by §8. Hence the Entscheidungsproblem cannot be solved.“ (262)

Mit anderen Worten: Ein hochabstraktes mathematisches Problem wird mit Hilfe einer (gedachten, modellierten) Maschine durchgespielt und „gelöst“.¹⁹ Einen ähnlichen Weg, zwar ohne das Gedankenmodell der Maschine, aber in einer Formulierung, die von einer Maschine verstanden werden kann, geht zur gleichen Zeit Alonso Church.²⁰ Er formalisiert mathematische und logische Operationen mit Hilfe des sogenannten Lambda Kalküls. Auch dies „with an application to the Entscheidungsproblem“: auch er bewies, dass die Hilbertsche Forderung nicht einlösbar ist.²¹ Der Lambda Kalkül aber wurde in den 50er Jahren das Grundmodell eines Zweigs der höheren Programmiersprachen.²²

Werfen wir abschließend noch einen Blick auf eine Arbeit von Claude Shannon aus dem Jahre 1938, betitelt A Symbolic Analysis of Relay and Switching Circuits. Hier geht es nicht um das Hilberprogramm, aber es wird gezeigt, dass sich logische Strukturen unmittelbar in Schaltkreise mit einfachen Ein/Aus-Schaltern abbilden lassen: "Due to this analogy any theorem of the true calculus of propositions is also a relay theorem if interpreted in terms of circuits."²³ Symbolische Logik lässt sich also elektrifizieren, und es spielt dabei keine Rolle, ob die Schalter mechanische Relais, Röhren, Transistoren oder elektronische Gatter sind.

Der Computer ist also kein Gerät wie jedes andere. Er ist Teil und materieller Ausdruck einer fundamentalen Entwicklung, die sich mit Begriffen wie Abstrahierung, Rationalisierung oder Formalisierung beschreiben lässt. Diese Entwicklung findet weit vor den ersten materiellen Realisierungen ihren Ausdruck in bis heute gültigen Denkmodellen wie der Turingmaschine und ihrer Programmierbarkeit. Auf dem Gebiet zeitgenössischer Kompositionstechnik gibt es Ausprägungen, die dieser Entwicklung ebenfalls entsprechen und ihr einen je spezifischen Ausdruck verleihen.

Wie schon Al-Chwarizmi sagt²⁴

Man könnte diese Technik als generatives oder programmierendes Komponieren bezeichnen. Meist wird hier aber ein Begriff verwendet, der sich tatsächlich auch im Zusammenhang der Turingmaschine findet: Algorithmus.²⁵ Ich möchte diesen Begriff an einigen Beispielen erläutern, um anschaulich zu machen, was gemeint ist.

Der Begriff des Algorithmus bezeichnet in der einfachsten Form einen Rechentrick,²⁶ durch den man einen arithmetischen Ausdruck umformen und so „lösen“ kann. Wahrscheinlich bekommen die meisten von uns ein langes Gesicht, wenn wir uns vorstellen sollen, was passiert, wenn man eine Hälfte durch drei Fünftel teilt. Aber mit dem Rechentrick geht alles wie von selbst: Man dividiert einen Bruch durch einen anderen Bruch, indem man ihn mit dem Kehrwert des zweiten multipliziert. Also:

kehrwert

Dieses Vorgehen lässt sich mit den Begriffen Eingabe (Input) - Transformation - Ausgabe (Output) beschreiben. Input sind die Brüche 1/2 und 3/5. Transformiert wird die Eingabe durch bestimmte beschreib- und ausführbare Vorgänge: Vertausche bei der zweiten Zahl Zähler und Nenner, dann multipliziere die beiden Zähler und Nenner miteinander. Als Ergebnis dieses „Algorithmus“ erhalte ich dann eine Ausgabe, die mir entweder als solche genügt, oder die Grundlage für den nächsten Transformationsprozess bildet.

Von einer anderen Perspektive aus gesprochen: Wenn ich einen Vorgang so beschreiben kann, kann ich ihn auch programmieren. Die Programmierung, das Schreiben eines Programms ist dann die konkrete „Implementierung“ des Algorithmus. Das kann in verschiedenen Sprachen geschehen. Ein Beispiel, in dem der obige Algorithmus als Funktion in der Programmiersprache Python definiert wird:²⁷

def teilen((zaehler1, nenner1), (zaehler2, nenner2)):  
    zaehler = zaehler1 * nenner2  
    nenner = nenner1 * zaehler2  
    print '%d/%d' % (zaehler,nenner)

Diese Funktion kann ich dann mit zwei Zahlen aufrufen und erhalte das Ergebnis:

teilen((1, 2), (3, 5))  
-> 5/6

Ein weiteres Beispiel, mit dem der griechische Mathematiker Euklid den größten gemeinsamen Teiler zweier Zahlen bestimmt.²⁸

EINGABE  
    Zwei (natürliche) Zahlen  
TRANSFORMATION  
    Ziehe die kleinere von der größeren Zahl ab. Wenn das Ergebnis Null ist, ist der größte gemeinsame Teiler gefunden. 
    Wenn nicht, wiederhole den Vorgang mit dem Ergebnis und der vorigen kleineren Zahl.  
AUSGABE  
    Größter gemeinsamer Teiler.

Ausführung mit der Hand am Beispiel der Zahlen 21 und 6:

21 - 6 = 15
15 - 6 = 9
9 - 6 = 3
6 - 3 = 3
3 - 3 = 0

Ergebnis: Der größte gemeinsame Teiler von 21 und 6 ist 3.

Bei der Ausführung in einem Computerprogramm muss berücksichtigt werden, dass ich bei meinen Subtraktionen oben immer die größere Zahl zuerst gesetzt habe, „weil ich ja gesehen habe“, dass es die größere ist. Der Computer sieht es aber nicht, und so muss ich immer zuerst untersuchen, welche der beiden Zahlen die größere ist. Dies ist eine mögliche Implementierung:

def euklid(zahl1, zahl2):  
    # welches ist die groessere zahl 
    if zahl1 > zahl2: 
        groessere = zahl1 
        kleinere = zahl2 
    else: 
        kleinere = zahl1 
        groessere = zahl2 
    # differenz berechnen 
    diff = groessere - kleinere 
    # ergebnis herausgeben wenn differenz null 
    if diff == 0: print kleinere 
    # sonst weiter mit differenz und kleinerem 
    else: euklid(diff, kleinere)

euklid(21,6) 
-> 3

Das ist ein einfaches Beispiel für die so genannte Rekursion: Eine Funktion ruft sich selbst auf, bis eine Abbruchbedingung erfüllt ist. Diese Rekursion ist hier praktisch, denn man weiss ja nicht vorher, wie viele Schritte gebraucht werden, um das Ergebnis zu ermitteln.²⁹

Nun noch ein ganz anderes Beispiel für einen Algorithmus:

EINGABE 
    1 Ei 
    75 ml Milch 
    1 EL Zimt 
    1 TL Vanillearoma 
    1 Prise Salz 
    4 Scheiben helles Brot 
TRANSFORMATION
    1. Ei, Milch, Zimt, Vanillearoma und Salz verschlagen. Eine leicht gefettete Brat- oder gusseiserne Pfanne bei mittlerer Hitze erwärmen. 
    2. Die Brotscheiben von jeder Seite in die Eiermischung legen und 20 Sekunden die Flüssigkeit aufsaugen lassen. 
    3. Brotscheiben in der Pfanne von beiden Seiten goldbraun und knusprig braten. Arme Ritter schmecken am besten heiß! 
AUSGABE
    ...

Mit anderen Worten: Ein Algorithmus kann sehr lecker sein. Wer einwendet, dass dasselbe Kochrezept bei zwei Köchen zu unterschiedlichen Ergebnissen führt, hat natürlich recht. Bevor ich aber auf die verschiedenen Abweichungen oder „Zufälle“, die in einem Algorithmus stecken können, näher eingehe, möchte ich das Kochrezept untersuchen, dem Stockhausen in seiner elektronischen Studie II folgt.

Das Eine in Allem: Studie II als Programm

Es gibt wohl wenige Stücke elektronischer Musik, die besser analysiert sind und lieber besprochen werden als Stockhausens Studie II (1954).³⁰ ³¹ Das hat seinen Grund im paradigmatischen - eben studienhaften - Vorgehen einer seriellen Kompositionsweise. Im Unterschied zur Komposition für Instrumente kann Stockhausen bei diesem rein elektronischen Stück auch die Klänge selbst aus den Reihen entwickeln. Es ist also hier so etwas wie eine serielle Totalität möglich.³²

Vom Standpunkt des Programmierens aus: Umso besser! Es müsste also möglich sein, ein Programm zu schreiben, das aus einem Input alles, das ganze Stück erzeugt. Und in der Tat ist das möglich,³³ und es ist umso faszinierender, als der Input nur aus fünf Zahlen besteht: der Reihe 3 - 5 - 1 - 4 - 2.

In der Übersicht sieht es also so aus:

EINGABE
    3 5 1 4 2
TRANSFORMATION
    verschiedenste Verfahren, siehe unten
AUSGABE
    das Stück mit seinen 380 Klängen

Um nochmal auf den Begriff des Algorithmus zurückzukommen: Es ist gleich, ob man diese Generierung in einer gesprochenen Sprache formuliert, oder in einer Programmiersprache.³⁴ Es geht nur um eine Handlungsanweisung, die ausgeführt werden kann und bei der Ausführung zu einem definierten Ergebnis führt.

Studie II lässt sich also auch als Text formulieren, der beschreibt, was man zu tun hat, um von den fünf Zahlen zu den Tonhöhen, den Lautstärken, den Dauern, den Rhythmen zu kommen. Das wird ziemlich lang,³⁵ und mag nicht unbedingt seinen Platz in den Bestsellerlisten finden.³⁶ Hier zur Illustration nur einige Auszüge aus diesem Text, gefolgt von einer Version in Programmiersprache.³⁷ ³⁸

Beispiel 1. Die Generierung des ersten „Zahlenquadrats“, also vier weiterer Reihen aus der ersten Eingabe, geht so vor sich:³⁹

EINGABE
    3 5 1 4 2
TRANSFORMATION
    Entwickele aus dieser Zeile vier weitere Zeilen, indem du die zweite Zeile mit der zweiten Zahl (5) beginnen lässt, die dritte mit der dritten, usw; die übrigen Zahlen einer Zeile ergeben sich dann als Transposition der „Intervalle“ der ersten Zeile.
AUSGABE
    3 5 1 4 2
    5 2 3 1 4
    1 3 4 2 5
    4 1 2 5 3
    2 4 5 3 1

Eine Möglichkeit der Programmierung:⁴⁰

# hilfsfunktion zum addieren von 1 bis mod
def addmod(zahl1, zahl2, mod): 
    return  (zahl1 + zahl2 - 1) % mod + 1

# hilfsfunktion zur ausgabe einer matrix 
def printMatr(matrix): 
    for zeile in matrix: 
        for element in zeile: 
            print element, 
        print '\n',

# eigentliche berechnung
reihe = [3, 5, 1, 4, 2] 
# erste zeile ist kopie der reihe
quadrat = [reihe] 
# fuer alle anderen zeilen
for zeile in range(1, len(reihe)): 
    # transpositionsintervall ermitteln
    intervall = reihe[zeile] - reihe[0] 
    # neue reihe schreiben
    reiheNeu = [addmod(wertNeu, intervall, len(reihe)) for wertNeu in reihe] 
    # ans ergebnis anhaengen
    quadrat.append(reiheNeu) 
# als quadrat (matrix) ausgeben
printMatr(quadrat)

-> 3 5 1 4 2 
   5 2 3 1 4 
   1 3 4 2 5 
   4 1 2 5 3 
   2 4 5 3 1

Beispiel 2. Um die in dem Stück überhaupt vorkommenden Frequenzen zu bestimmen, werden, beginnend bei 100 Hz, 81 Frequenzen im Abstand ²⁵√5 zueinander ermittelt:⁴¹

EINGABE
    100 Hz als Basisfrequenz, ²⁵√5 bzw 5^1/25 als Faktor
MODIFIKATION
    Die Grundfrequenz mit den Faktoren 5^n/25 für n = 0, 1, 2, ... 81 multiplizieren.
AUSGABE
    Eine Liste mit den 81 Frequenzen (auf ganze Hertz gerundet).

Der Code umfasst hier nur eine Zeile:

Alle_Frequenzen = [int(round(100*5**(n/25.))) for n in range(81)]
print Alle_Frequenzen
-> [100, 107, 114, 121, 129, 138, 147, 157, 167, 178, 190, 203, 217, 231, 246, 263, 280, 299, 319, 340, 362, 386, 412, 440, 469, 500, 533, 569, 607, 647, 690, 736, 785, 837, 892, 952, 1015, 1083, 1155, 1231, 1313, 1401, 1494, 1593, 1699, 1812, 1932, 2061, 2198, 2344, 2500, 2666, 2844, 3033, 3234, 3449, 3679, 3923, 4184, 4462, 4759, 5076, 5413, 5773, 6157, 6566, 7003, 7469, 7965, 8495, 9060, 9662, 10305, 10990, 11721, 12500, 13331, 14218, 15163, 16171, 17247]

Beispiel 3. Ein konkreter Klang („Tongemisch“)⁴² besteht aus fünf Frequenzen. Für ihre Ermittlung braucht man drei Zahlen. Also:

EINGABE
    Drei Zahlen zur Festlegung der Gruppe (G), der Spalte (S) und der Position (P). Beispiel: G = 5, S = 5, P = 3
TRANSFORMATION
    Durch G komme ich auf den Basiston einer Gruppe, indem ich in der Frequenzliste für jede Gruppe fünf Frequenzen höher gehe. Gruppe 1 steht also auf 100 Hz, Gruppe 2 steht auf 138 Hz, Gruppe 5 (das Beispiel) steht auf 362 Hz.
    Durch S wird angegeben, wie groß die Abstände zwischen den einzelnen Teiltönen des Tongemischs sind: 1 = jede aufeinanderfolgende Frequenz, 2 = jede zweite, ..., 5 = jede fünfte Frequenz der Basisliste („Alle_Frequenzen“) wird benutzt. Im Beispiel sind also die Frequenzen 362, 500, 690, usw. möglich.
    Durch P wird angegeben, auf welcher dieser (durch S ermittelten) möglichen Frequenzen dieser Klang tatsächlich steht: 1 = auf dem ersten, 2 = auf dem zweiten, usw. Im Beispiel mit P = 3 steht also der Klang auf der Frequenz 690 Hz.
    Von dieser Frequenz aus werden nun 4 weitere Frequenzen ermittelt; in dem Abstand, den S gesetzt hatte. Zusätzlich zu 690 Hz treten also die Frequenzen 952, 1313, 1812 und 2500 Hz.
AUSGABE
    Ein „Tongemisch“ aus 5 Frequenzen.

Der Code ist wiederum erheblich kürzer⁴³ und macht sich zunutze, dass es eigentlich nur um das Aufsuchen von Positionen innerhalb der Liste aller möglichen Frequenzen geht:

# Input 
G = 5 
S = 5 
P = 3

# Index (in Alle_Frequenzen) für die Basisfrequenz der Gruppe bestimmen 
Index_G = (G-1)*5

# Index für die tiefste Frequenz der Mischung ermitteln 
Index_P = Index_G + (P-1)*S

# die Liste herausgeben 
Tongemisch = [Alle_Frequenzen[Index_P + n*S] for n in range(5)] 
print Tongemisch

-> [690, 952, 1313, 1812, 2500]

klanggruppen
Stockhausen Studie II Tonhöhen und Klanggruppen (Silberhorn S. 17, vgl. Partitur S. V)

Die Zahlen G, S und P kommen nun aus verschiedenen Reihen.⁴⁴ Der Ablauf dieser Reihen (in je verschiedenen Geschwindigkeiten) erzeugt somit „geradeheraus“ die Tongemische in den verschiedenen Teilen. Die folgende Abbildung zeigt das für den Anfang:⁴⁵

frequenzen_anfang
Stockhausen Studie II Reihenablauf für die Tonhöhen am Anfang (Silberhorn S.128)

Ich hoffe, es ist ein Eindruck davon entstanden, wie man Studie II als Programm verstehen und in einer geläufigen Programmiersprache generieren kann. Tut man das, gerät man allerdings auch auf Ereignisse, die dem Programmierer zu schaffen machen, und die deshalb für mein Thema besonders interessant sind. Dazu später mehr.

Immer anders kochen: Williams Mix

Als es vorhin um das Kochrezept als Beispiel für einen Algorithmus ging, tauchte die Frage auf, warum ein und dasselbe Rezept bei verschiedenen Köch(inn)en verschieden schmeckt. Die wissenschaftlich-trockene Antwort ist einfach: Der eine nimmt eben etwas mehr Salz, die andere lässt die armen Ritter schärfer schmoren. Die Ausführung des Algorithmus ist also nicht gleich, und wäre sie es, wären auch die Ergebnisse gleich wohlschmeckend, fade oder versalzen.

Das mag wohl sein, doch führt die Beobachtung von Abweichungen zu einem gänzlich anderen Typ von Algorithmus als dem bei Stockhausen (bzw. in der seriellen Musik) zu studierenden. Es gibt nämlich Algorithmen, in die Abweichungen mit eingeschrieben sind. Das können zufällige Abweichungen sein, oder auch Entscheidungen, die den Ausführenden überlassen werden.⁴⁶ Zu beiden Begriffen - dem Zufall und der Entscheidung - lohnt sich eine kleine Abschweifung.

Zufall. Immer wieder hört man, wenn es auf das Thema Zufall kommt, etwas wie: „Ah, Zufall - dann ist ja alles egal!“ Das ist aus mehreren Gründen sehr oberflächlich: (a) Zufall findet nur in einem bestimmten Rahmen statt, (b) Zufall findet in einer bestimmten Verteilung statt, (c) Zufall findet in einer bestimmten Skalierung statt. Nehmen wir als Beispiel eine „zufällige Tonhöhe“:
(a) Was sind die Grenzen? Eine Anzahl zufälliger Tonhöhen zwischen 20 Hz und 10000 Hz wird sich ziemlich anders anhören als eine Anzahl zufälliger Tonhöhen zwischen 1000 Hz und 1001 Hz.
(b) Angenommen ich habe zufällige Tonhöhen zwischen 100 und 800 Hz. Dann ist die Frage, wie sich diese Tonhöhen auf den Bereich verteilen: Gleichverteilt, so wie bei vielen Münzwürfen etwa gleich oft „Kopf“ und „Zahl“ kommt?⁴⁷ Oder in irgendeiner ungleichen Verteilung, wie sie in der Natur oft anzutreffen sind?⁴⁸
(c) Wenn ich die bei (b) ermittelten Tonhöhen von einem Klavier spielen lasse, werden sie „von selbst“ auf die gleichschwebende chromatische Stimmung skaliert. In der Elektronik bin ich normalerweise frei, die Skalierung selbst zu bestimmen.⁴⁹ In aller Regel werden die Grenzen, die Verteilung und die Skalierung (also alles vorgenommene Setzungen und keine „Zufälle“) das klangliche Ergebnis viel stärker bestimmen als die konkrete Ausprägung des Zufalls.

Entscheidung. Entscheidung klingt nach dem, was man vielleicht als Gegenstück einer algorithmischen Anweisung assoziieren mag: Freiheit. Aber zumindest sollte man sich klar machen, dass es auf die Art der Entscheidung ankommt, die jemandem angeboten wird. Wenn ich zwischen zwei Klängen wählen kann, kann das eine wichtige Entscheidung sein (wenn beispielsweise die Klänge sehr verschieden sind); es kann aber auch belanglos sein. Zu anderen Aspekten von Entscheidung komme ich später noch.

Cage hat in Williams Mix eine Konzeption geschaffen, die auf verschiedenen Ebenen immer wieder neu realisiert werden kann. Jedesmal entsteht ein neues Williams Mix - unter Umständen sehr verschieden von dem Cageschen, aber doch programmierbar, und doch eine Erfüllung seiner Konzeption. Beginnen wir mit einem Blick auf die Partitur, um die ersten Ebene des „immer neu“ zu diskutieren.

cage_partitur
Cage Williams Mix Partitur S. 5 (Kostelanetz, Cage, S. 158)

Jede Partiturseite besteht aus zwei Akkoladen. Jede Akkolade enthält eine maßstabsgetreue⁵⁰ Abbildung der acht einzelnen Tonbänder.⁵¹ Nun sieht man auf jedem der einzelnen Schnipsel eine Folge von einem großen und drei kleinen Buchstaben. Die Großbuchstaben beziehen sich auf die sechs Kategorien, in die Cage die Klänge einteilt:⁵²

A) Stadtklänge
B) Landklänge
C) Elektronische Klänge
D) Manuell produzierte Klänge einschließlich solcher der Musikliteratur
E) Mit Atem erzeugte Klänge einschließlich der Lieder
F) Leise Klänge, die elektrisch verstärkt werden müssen, damit man sie zusammen mit den anderen hören kann

Sehen wir also rechts unten einen Schnipsel mit der Bezeichnung Dvvc, stammt dieser aus der Gruppe manuell produzierter Klänge, also beispielsweise ein Ausschnitt aus einer Beethovensonate, oder das Klopfen an der Tür. Drei Spuren darüber steht Cccv und unmittelbar darüber Ccvc; beide Klänge stammen also aus der Kategorie der elektronischen Klänge.

Die kleinen Buchstaben geben nun an, ob ein solcher Klang bearbeitet (c = controlled) oder unbearbeitet (v = variable) auftreten soll, und zwar in den Parametern Tonhöhe, Klangfarbe und Lautstärke. Der Unterschied zwischen den Klängen Cccv und Ccvc besteht also darin, dass Cccv in der Lautstärke verändert wurde, während bei Ccvc in die Klangfarbe eingegriffen wurde (beispielsweise durch Filter).

Die erste Ebene von Veränderung besteht also darin, auf Basis der gegebenen Vorschrift⁵³
* andere Klänge („Samples“) einzusetzen, und/oder
* andere Modifikationen vorzunehmen.⁵⁴

Diese erste Ebene ergibt schon eine enorme Breite an möglicher Veränderung.⁵⁵ Cage hat das bewusst freigelassen: „Das ist eine sehr freie Art, die Herstellung zu ermöglichen, und ich lasse den Ingenieuren, die die Klänge machen, völlig freie Hand. Ich gebe ihnen einfach eine Liste mit den Klängen, die ich brauche, z.B. EvcvFvvv (zweifache Klangquelle).“⁵⁶

Kann man diese Veränderungen programmieren? Ja, gewiss; nur dass das Programm gewisse Zufallsanteile (random choices) aufweist. Die Struktur wäre so:
* Es gibt eine Datenbank mit sechs Gruppen von Klängen.
* Es gibt eine Sammlung definierter Veränderungen der Tonhöhe,⁵⁷ der Klangfarbe⁵⁸ und der Lautstärke.

Bekommt das Programm nun an einer Stelle die Anweisung Dvvc, so sucht es zunächst aus der Gruppe D einen Klang, ermittelt die Stelle, von wo er abgespielt werden soll, und verändert schließlich dessen Lautstärke. Um einen Eindruck zu geben, wie ein Code aussehen könnte, der einen zufälligen Klang aus einer Gruppe aussucht:

D = ["beethoven.wav", "tuer.wav", "trommel.wav", "hey_joe.wav", "jazz.wav"]
from random import randint
Zufallsauswahl = D[randint(0,4)] 
print Zufallsauswahl

-> trommel.wav (beim ersten Mal)
-> jazz.wav (beim zweiten Mal)

Die zweite Ebene von Veränderung betrifft das, was wir als Partitur vorfinden. Das sind nicht nur die Buchstaben für die Klänge und deren Modifikationen. Es ist auch das gesamte „Schnittmuster“, also die Dauer eines Klanges und dessen Ein- und Ausblende. All diese Bestimmungen, die dann konkret gefüllt bzw. ausgeführt werden können, sind generiert worden. Cage arbeitet dazu mit Kärtchen und Tabellen, die nach einem ziemlich komplizierten Verfahren mit Hilfe von Münzwürfen zu allen („zufälligen“) Festlegungen führen.⁵⁹

Mit anderen Worten: Man könnte aus ebendiesen Tabellen und Kärtchen viele andere Partituren von Williams Mix erzeugen - sei es per Hand oder mit Hilfe eines Computerprogramms. Man würde also Partiturvarianten generieren, die strukturell untereinander ganz ähnlich sind, aber doch immer andere Zusammensetzungen im Einzelnen aufweisen.

Und schließlich die dritte Ebene: Die Tabellen und die Art, wie mit ihnen umgegangen wird, beruht auf kompositorischen Grundentscheidungen, beispielsweise über die mögliche Dichte von Ereignissen. Hier ließen sich andere Entscheidungen treffen; ganz ähnlich zu den verschiedenen Arten, wie Stockhausen in Studie II die Reihenabläufe liest.

Insgesamt gibt es also in Williams Mix drei Ebenen, deren jede unendlich viele Variationsmöglichkeiten aufweist.⁶⁰ Jede Realisierung ist eine Auswahl aus einer Anzahl von Möglichkeiten.

cage_ebenen

Die Auswahl kann entweder von Menschen mit teils „freien“ („diesen Klang will ich jetzt nehmen“), teils „zufälligen“ (drei Münzen werfen) Entscheidungen vorgenommen werden, oder von einem Computerprogramm. Strukturell ist das kein Unterschied.

Wo bleibt da die Kunst

Wenn dem so ist, und man sowohl Studie II als auch Williams Mix als Computerprogramm realisieren kann:⁶¹ was unterscheidet dann beide Stücke von einer mathematischen Formel? Was ist das spezifisch Künstlerische an diesem „algorithmischen“ kompositorischen Denken, und welche Qualitäten, welche Unterschiede gibt es innerhalb dieser Art zu komponieren?

Verrücktheit. Schon die sechs Kategorien von Klängen in Williams Mix sind bei genauerem Hinsehen recht merkwürdig. Eigentlich wäre mit den ersten beiden (Stadt- und Landklänge) alles abgedeckt, was es an Klängen gibt. Abgedeckt und --- langweilig. Es geht hier nämlich nicht um eine Kategorisierung im Sinne eines wissenschaftlichen Erfassens,⁶² sondern um einen eigentümlichen Blick auf die (klingende) Wirklichkeit. Eigentümlich ist immer auch ein wenig verrückt, und Verrücktheit gehört zur Kunst. Erfrischend verrückt ist bei Cage nicht nur die Kategorisierung der Klänge, sondern auch das hyperdetaillierte Vorgehen in der Ausarbeitung, das die alte chinesische Orakeltradition „wendet“.⁶³ All dies steht einem „Denken mit dem Computer“ nicht entgegen, da der Computer ja nur „konsequent“ ausführt, was an Rahmenbedingungen gesetzt wurde.

(Selbst-) Kritisches Hören. Es ist äußerst faszinierend zu beobachten, wie Stockhausen während der Arbeit an „Studie II“ auf das reagiert, was da generiert wird, und in der Folge zu bestimmten Veränderungen des ursprünglichen Plans (Algorithmus') kommt. Das sind Veränderungen auf folgenden Ebenen:
* Die Auswahl der Tonhöhen ergeben sich bei Studie II aus insgesamt neun Gruppen, wie wir sahen.⁶⁴ Stockhausen hatte offenbar geplant, für jeden der fünf Teile fünf nebeneinander liegende Gruppen auszuwählen. Die Regel dafür ist: Eine Reihe bestimmt die Auswahl einer Gruppe (1-5), und dazu kommt für einen Teil ein konstanter „Transpositionsfaktor“.⁶⁵ Nachdem Stockhausen das in den ersten beiden Teilen mit den Transpositionen 3 und 5 durchgeführt hatte, ändert er im dritten Teil die Regel. Statt einer konstanten 1 nimmt er eine andere Reihe und lässt diese so schnell durchlaufen, dass alle neun Gruppen in diesem Teil vorkommen. - Der Grund für diese Veränderung dürfte darin liegen, dass Stockhausen für diesen „Staccato“ Teil mehr und extremere Sprünge wollte. Wäre er „stur“ bei seiner ursprünglichen Methode geblieben, hätte dieser Teil ein anderes (und blasseres) Gesicht bekommen.⁶⁶
* Grundsätzlich gilt in der gesamten Komposition, dass Stockhausen das, was ihm die Reihen erzeugen, von Teil zu Teil verschieden liest. Das betrifft vor allem die Dauern. Durch verschiedene Lesart der Einsatzabstände kommt Stockhausen beispielsweise dazu, dass Teil 3 aus kurzen Klängen besteht, während sich die Klänge in Teil 4 zu großen Schichtungen auftürmen.
* Dies alles lässt sich ohne weiteres programmieren, da es zwar die Regel ändert, aber in sich regelhaft bleibt.⁶⁷ Anders ist es dagegen im fünften Teil. Hier will Stockhausen alle bisherigen Fakturen kombinieren, und in der Arbeitspartitur finden sich am rechten Rand Bemerkungen, die darauf hindeuten, dass diese Auswahl spontan geschah.⁶⁸ Das ist sehr aufregend zu sehen, und hier findet gleichzeitig die Programmierbarkeit ihre Grenze. Diese Entscheidungen sind offensichtlich weder regelhaft noch zufällig, sondern musikalisch-intuitiv. Das kann man beim Nachprogrammieren nicht nachbilden - es sei denn man fände übergeordnete Gesetze dieser Intuition -, und der daraus entstehende Code ist eine Qual für jeden Programmierer, weil er die Ereignisse nur nachpinseln kann, anstatt sie wirklich zu generieren.⁶⁹
Das heisst: Der Algorithmus ist kein Selbstzweck, sondern er dient dazu, eine bestimmte künstlerische Idee zu verwirklichen. Die Arbeit am Algorithmus ist es, die dazu führt, dass die künstlerische Idee mehr oder weniger erreicht wird. Diese Arbeit, diese Fähigkeit zum Sich-Zuhören und Sich-Korrigieren, kann man an Studie II wunderbar studieren.

Intuition. Zu diesem Sich-selbstkritisch-Zuhören gehört ebenfalls die Frage nach der kompositorischen Intuition. Bei Cage betrifft das etwa die Frage nach der Dichte der musikalischen Faktur. Wenn man einmal die Gelegenheit hat, Williams Mix als Originalversion für 8 Lautsprecher zu hören, und dann zum Vergleich in einer Zusammenmischung auf Stereo, merkt man, was das heisst. Letzteres ist „zu dicht“; man kann hörend nicht mehr genug unterscheiden und das Ganze wird zu einer recht undurchdringlichen Wand. Das heisst umgekehrt, dass Cages Intuition für die Achtkanalversion richtig war - dort ist es „dicht genug“ um verwirrend zu sein, aber es gibt noch genug „Luft“ für Unterschiede.

Wandel der Phantasie. Es geht also auch in dieser scheinbar so automatischen Kompositionsweise um „Ideen“, und es gibt langweilige oder spannende Ideen.⁷⁰ Ich denke, dass beide hier diskutierten Stücke zu einem Typus in Neuer Musik gehören, bei dem sich die kompositorische Phantasie a) auf die Imagination des Ganzen, und b) auf die Methoden seiner Generierung richtet. Wer also nach der Phantasie sucht, sucht an falscher Stelle, wenn er auf die Ausführung der Ableitungen schaut. Die Phantasie ist da, und unverzichtbar, aber sie ist woanders hingewandert.

Algorithmische Komposition beginnt also in der elektronischen Musik längst vor der Einführung des Computers. Cage und Stockhausen „programmieren“ ihre Musik zu einer Zeit, als diese Programmierung noch nicht mit dem Computer umgesetzt werden konnte. Ihre Stücke zeigen, dass ein tiefer innerer Zusammenhang besteht zwischen dem, was sich in der Neuen Musik der 50er Jahre an Kompositionstechnik entwickelte, und dem, was sich gleichzeitig an Programmierbarkeit des Computers herausbildete. Williams Mix und Studie II zeigen gerade in ihrer Unterschiedlichkeit, worauf es ankommt, wenn algorithmische Komposition originell und zum Hören bestimmt sein soll: Die Regelhaftigkeit stets daraufhin zu befragen, ob sie dem imaginierten musikalischen Bild dient, anstatt sie zu einem Fetisch zu machen. Es scheint, dass zu einer Zeit, in der die algorithmische Komposition noch in den Kinderschuhen steckte, bei aller persönlichen Mühsal⁷¹ entscheidende künstlerische Fragestellungen schärfer gesehen und produktiver gelöst wurden, als in vielen Erzeugnissen einer Zeit, in der es leicht ist, ohne Idee eine Musik zu erzeugen, deren Algorithmen so schnell bei der Hand sind wie eine „App“.