Kapitel 1. Allgemeine Einführung
Diese Publikation dient als Begleitskript für die Lehrveranstaltung 'Einführung in die algorithmische Komposition' an der HfMDK Frankfurt. Sie beruht teilweise auf Materialien zu einer gleichlautenden Lehrveranstaltung von Johannes Quint aus dem Jahr 2014, der freundlicherweise seine Materialien für dieses online Skript zur Verfügung stellte. Sie wurden zum Teil (in leicht überarbeiteter Form) integriert. In der Lehrveranstaltung werden Methoden vermittelt, musikalische Abläufe mit Hilfe von Computeralgorithmen zu definieren und zu simulieren. Im Kurs wird die Computersprache Common Lisp eingesetzt. Lisp ist eine der ältesten Computersprachen und wurde ursprünglich speziell für 'Symbolische Datenverarbeitung' entwickelt (im Unterschied und als Erweiterung zu 'Numerischer Datenverarbeitung'). Für musikalische Anwendungen existieren spezifische Erweiterungen (sogenannte 'Packages') der Sprache, die von der Ansteuerung von Klangmodulen bis zur formalen Beschreibung musikalischer Phänomene und Zusammenhänge reichen.
Für die Lehrveranstaltung werden folgende Common Lisp Packages verwendet:
Common Music (cm)
Common Music ist ein Package, das vor allem der metasprachlichen Definition von musikalischen Abläufen dient, die eine zentrale Rolle bei der algorithmischen Komposition spielt. Neben vielen Funktionen zur Beschreibung und Bearbeitung musikalischer Prozesse enthält das Paket auch eine umfangreiche Anbindung an das MIDI Protokoll, mit dem beispielsweise Software Synthesizer angesteuert werden können. Common Music wird seit 1989 von Rick Taube entwickelt. Zunächst in Common Lisp geschrieben, beruht die aktuelle Version 3 ausschließlich auf dem Lisp-Dialekt 'scheme'. Da in dem Kurs mit Common Lisp gearbeitet wird, basiert das Kursmaterial daher auf der Version 2 von Common Music. Die von Version 3 abweichende Dokumentation dieser Version ist an dieser Stelle einsehbar.
incudine
Incudine ist ein relativ neues Package, das auf Echtzeitverarbeitung von Klängen zielt. Insofern ist es vergleichbar mit Systemen, wie Supercollider oder Pure Data. Da incudine über einen sehr präzisen und effizienten Scheduler verfügt, lässt sich mit dessen Hilfe Common Music so erweitern, dass man die in Common Music definierten Algorithmen in Echtzeit abspielen kann.
cl-collider (sc)
cl-collider ist eine Implementation der Funktionalität der Sprache von Supercollider mit einer Lisp Syntax. Mit Hilfe von cl-collider lassen sich also dsp Algorithmen definieren und mit Hilfe des incudine Schedulers steuern, die von einer separat gestarteten Instanz eines SuperCollider Servers ausgeführt werden.
fomus
Fomus ist ein Paket, das die Ausgabe von algorithmischen Abläufen bzw. allgemeinen Lisp Daten in Notenschrift ermöglicht. Das Paket wurde von David Psenicka, einem ehemaligen Studenten von Rick Taube, ursprünglich als Erweiterung zu Common Music 2005-2007 entwickelt.
fudi
FUDI ist das Netzwerkprotokoll von Pure Data. Dieses Paket ermöglicht die Steuerung von pd-Patches mit Hilfe von Common Lisp, Common Music und incudine.
Da viele der Pakete nicht auf aktuelle Common Lisp Implementierungen angepasst sind, gibt es an dieser Stelle speziell angepasste Pakete, die für die Lehrveranstaltung geeignet sind. Für diese Publikation wird davon ausgegangen, dass ein fertig konfiguriertes Lisp System mit den entsprechenden Paketen und einem Editor vorhanden ist. Als Editor empfiehlt sich GNU Emacs, bei Einsatz von incudine ist die SBCL Common Lisp Implementation erforderlich. In diesem Fall ist zusätzlich die Installation von Jack erforderlich (Download über diese Webseite). Für die Midibeispiele empfiehlt sich die Installation eines Softwaresynthesizers, wie beispielsweise Qsynth. Als Betriebssysteme werden aktuell (2017) nur Linux und ein aktuelles OSX unterstützt.
Dieser Text ist auch als pdf Dokument unter algorithmische-komposition.pdf abrufbar.