5. Informatische Grundlagen
In diesem Kapitel werden Konzepte und Methoden der Informatik und Mathematik in
ihrer Anwendung auf die Musik vorgestellt und diskutiert, die im weiteren Verlauf dieser
Arbeit von Bedeutung sind.
Die mathematische Untersuchung der Musik begann bereits im Altertum
durch Pythagoras. Seit der Entwicklung der ersten Computer gab es
auch bald musikalische Anwendungen wie die Illiac Suite von Hiller und
Isaacson, die bereits 1956 mit Hilfe eines Computerprogramms komponiert
wurde.1
Die
Uraufführung wurde allerdings nicht vom Computer sondern von einem Streichquartett gespielt.
Die Leistungsfähigkeit neuerer Computer machen auch die Bearbeitung von Musik direkt
mit dem Computer möglich. Insbesondere der MIDI-Standard (Musical Instrument Digital
Interface)
2 ,
der eine Repräsentation auf der Notenebene und Anbindung an viele elektronische
Musikinstrumente ermöglicht, hat zu einer weiten Verbreitung musikalischer
Anwendungen des Computers geführt. In den letzten Jahren ist mit der steigenden
Rechenleistung und Speicherkapazität von preisgünstigen Computern auch zunehmend
die Bearbeitung von Audiodaten in den Mittelpunkt getreten, die allerdings hier nur am
Rande betrachtet wird.
Die ersten Anwendungen von Computern für Musik setzten schon allein aufgrund der
beschränkten Möglichkeiten damaliger Computer nicht auf der klanglichen Ebene auf.
Sie arbeiteten stattdessen mit Daten, die Elemente von Musik mit einem hohen
Abstraktionsgrad repräsentieren, z.B. mit den kodierten Noten einer Partitur. Diese
Daten repräsentieren komplexe Ereignisse in stark reduzierter Form. Man spricht von
symbolischer Repräsentation. Auf der Basis dieser Symbole wurden Regeln und
Verfahren definiert, die die Verarbeitungsschritte bestimmen.
Der Ansatz prozeduraler Programmierung beinhaltet, ein Programm als eine Folge
von Anweisungen zu definieren, die durch den Rechner abgearbeitet werden.
Dabei möchte man den Programmierer von der Detailarbeit möglichst entlasten,
indem man Teilprogramme bereitstellt, die einzelne Aufgaben lösen und fertig
verwendet werden können. Die konsequente Erweiterung dieses Ansatzes führt zur
deklarativen Programmierung, die in Programmiersprachen wie PROLOG umgesetzt
wurde. Hier werden nur noch die formalisierten Regeln angegeben und durch
das Programm auf Daten angewandt. Noch weiter gehen konnektionistische
Modelle wie Neuronale Netze, da hier die Regeln der Verarbeitung nicht explizit
angegeben werden. Man konstruiert statt dessen ein System, das aufgrund seiner
Konstruktion und durch die Adaption an Beispieldaten ein gewünschtes Verhalten
erlernen soll. Im weiteren werden verschiedene konnektionistische und deklarative
Konzepte und Methoden vorgestellt, soweit sie für diese Arbeit von Bedeutung
sind.