Algorithmische Komposition
# Algorithmische Komposition

Als Algorithmische Komposition (AK) bezeichnet man jene Kompositionsverfahren, bei denen die Partitur durch einen automatischen, mathematisch beschreibbaren Prozess oder Algorithmus erzeugt wird.
Im Prinzip lässt sich jedes Musikstück als eine Folge von Zahlen darstellen: Ist es bei einem Instrument möglich, die Tonhöhe sowie die Anschlagsstärke und -dauer einer Note zu variieren, dann ist jede Note mit drei Zahlen darstellbar.
AK ist etwas vereinfacht die Entwicklung von Regeln, die solche musikalisch interpretierbaren Zahlenfolgen erzeugen. In der heutigen Praxis ist das meist die Entwicklung eines Computerprogramms; Computer sind jedoch nicht zwingend erforderlicher Bestandteil der AK.
Viele AK-Systeme arbeiten nach dem Prinzip der iterativen Rückkopplung, das Programm erzeugt abhängig von einer Eingabe eine Ausgabe, die im nächsten Schritt als neue Eingabe verwendet wird.
Die Grenzen zwischen „traditioneller Komposition“ und AK sind fließend. Jede Verwendung einer Regel bei der Komposition – sei es das Bluesschema oder der Kontrapunkt – könnte man streng genommen bereits als algorithmisch bezeichnen.

## Konzepte und Modelle

Neben Musiktheoretischen Erkenntnissen werden zahlreiche andere Wissensgebiete genutzt:
* Künstliche Intelligenz, (Neuronale Netze)
Neuronale Netze analysieren akustische und musikalische Daten.
Symbolische KI, ursprünglich eher für die Analyse und -synthese sprachlicher und mathematischer Ausdrücke entwickelt wird auf musikalische Strukturen angewendet.
* Künstliches Leben, (Zelluläre Automaten, L-Systeme, Genetische Algorithmen)
Einfache Algorithmen erzeugen komplexe Strukturen.
Manuelle oder automatische Auswahlprozesse steuern eine künstliche Evolution.
* Linguistik
Endliche Automaten erzeugen mittels Konzepten der Generativen Grammatik Musik aus einem Alphabet und Ableitungsregeln.
* Statistik und Stochastik, (Markow-Ketten)
Kompositionen von z. B. J. S. Bach werden statistisch analysiert, um mittels Markow-Ketten „Bach-artige“ Musik zu erzeugen.
* Zahlentheorie
Die in der Folge der natürlichen Zahlen vorhandenen Strukturen werden „hörbar“ gemacht.
* Informationstheorie und Theorie der Komplexen Systeme
* Chaostheorie und Fraktale
* Kognitionswissenschaft
* Psychoakustik
Kriterien für eine Klassifizierung von Konzepten:
* Top-down oder Bottom-up (Mischformen üblich)
* Determiniert oder gesteuert durch Zufallszahlen (Mischformen üblich)
* Diskret oder Kontinuierlich
* Echtzeit oder Modellzeit
* Bei Echtzeit: Eingriff in den Kompositionsprozess möglich oder nicht?

## Schritte

Die AK lässt sich sinnvoll in drei bis vier Schritte untergliedern, auch wenn sie in der Regel innerhalb eines Computers und sogar innerhalb eines Programms oder einer Programmierumgebung stattfinden:
* 1. Die Entwicklung des Programms
* 2 a) Die Wahl der Parameter dieses Programms
* 2 b) Die Wahl der Starteingabe
* 3. Die Umsetzung der von dem Programm erzeugten Daten in akustische Ereignisse.

## Historisches

* 1026 schlug Guido d’Arezzo vor, den Silben eines religiösen Textes Tonhöhen zuzuweisen. Er gilt als der Vater der Solmisation.
* 1650 entwickelte Athanasius Kircher seine Arca musarithmica, eine Komponiermaschine.
* 1757 erschien Johann Philipp Kirnbergers Allzeit fertiger Polonaisen- und Menuettenkomponist, eine Anleitung mittels zweier Würfel zu komponieren.
* um 1790 veröffentlicht auch Joseph Haydn solche Komponieranleitungen.
* 1793 erschien postum W. A. Mozarts Anleitung zum Componieren von Walzern, die ein Bestseller wurde (→Musikalisches Würfelspiel).
* um 1960 schreibt der griechische Komponist Iannis Xenakis in der Sprache FORTRAN Programme, die Partituren erzeugen, welche mit traditionellen Instrumenten gespielt werden.

## Programmiersprachen und Programmierumgebungen

* SoundHelix – freies Java-Framework für zufallsbasierte algorithmische Komposition, MIDI-basiert
* ChucK
* Common Music – Lisp-basiert
* OpenMusic – Lisp-basiert
* PWGL – Lisp-basiert – eine visuelle Programmiersprache für Algorithmische Komposition und Klangsynthese
* Csound
* Max/MSP – graphische Echtzeit-Programmierumgebung für MIDI und Sound
* Pure Data – Open Source – Derivat von Max/MSP
* Mathematica – ein Computeralgebra – System, dessen Resultate auch sonifizierbar sind
* SuperCollider – an Smalltalk angelehnte, objektorientierte Sprache
* FractMus – Fractal Music Composition Software
* Music Laboratories - Algorithmic Composition – Midi-basierte automatische Komposition

## Zeitgenössische Komponisten

* Autechre
* Clarence Barlow
* John Cage
* David Cope
* Charles Dodge
* Karlheinz Essl
* Orm Finnendahl
* Wilhelm Fucks
* Lejaren Hiller
* Gottfried Michael Koenig
* Hanspeter Kyburz
* Paul Lansky
* Otto Laske
* Laurie Spiegel
* Iannis Xenakis