Algorithmische Komposition mit Common Lisp
Allgemeine Einführung
Diese Publikation dient als Begleitskript für die Lehrveranstaltung Einführung in die algorithmische Komposition an der HfMDK Frankfurt. 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:
- Clamps ist ein Metapaket, das No description for this link, Incudine, Fomus und Clog zusammenfasst und um einige Funktionalität erweitert, um eine integrierte Arbeitsumgebung für den gesamten Arbeitsbereich von algorithmischer Komposition, elektronischer Musik und live-interaktiver Performance mit browserbasierten, grafischen Oberflächen zu realisieren.
Common Music (cm)
Common Music ist ein Paket, 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.
Incudine
Incudine ist ein relativ neues Paket, 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.
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.
Clog
CLOG ist ein Common Lisp Paket zur browserbasierten Realisation von grafischen Benutzeroberflächen. Dieses System wurde für Clamps um Standardobjekte für die Arbeit mit Musik, wie z.b. Slidern, Schaltern, Nummernboxen, etc. erweitert.
Als Editor empfiehlt sich GNU Emacs, für Clamps 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 (2025) nur Linux und ein aktuelles OSX unterstützt.