Algorithmische Komposition mit Common Lisp
Clamps/Common Music
Common Music erweitert Common Lisp um musikspezifische Funktionalität.
Dazu zählt unter anderem:
Midi:
Komplette Implementierung des MIDI Protokolls, Lesen und Schreiben von Mididateien, Midi Input/Output
Ereignisse und Streams1
Umfangreiche Implementation von Ereignis- und Dateiklassen (MIDI, FUDI, Csound, OSC, FOMUS) samt damit verbundener streambasierter print, input und output Methoden.
Prozesse
Einheitliche Spezifikation einer Prozesssyntax, die unabhängig von dem Ausgabetyp (der Ereignisklasse) ist.
- Patterns
- Skalen, Mikrotonalität, Rhythmische Abstraktionen, Umrechnungsfunktionen
Eine komplette Übersicht der Common Music Funktionen findet man
nach der Installation im Common Music Dictionary unter
"<home>/quicklisp/local-projects/cm/doc/dict/index.html
".
Für online help kann man in emacs den Cursor auf das Ende eines common music Keywortes positionieren und dann das Tastaturkürzel "C-c C-d c" verwenden. Dadurch wird die entsprechende Webseite automatisch an der entsprechenden Stelle geöffnet.
Eine Kopie des Common Music Dictionary ist zusätzlich online auf diesem Server unter dieser Adresse verfügbar.
Clamps ist eine Übermenge von Common Music. Es enthält sämtliche Funktionen von Common Music und erweitert sie um
- Echtzeitfunktionalität durch die Einbindung von Incudine
- Zusätzliche Ausgabeformate, wie svg
- Zusätzliche Eventtypen, wie sfz
- ats-cuda zur Analyse, Bearbeitung und Resynthese von Spektralanalysen von Klängen
- GUI Funktionalität mit Hilfe von CLOG.
Wichtiger Hinweis:
Für die Beispiele der nächsten Abschnitte ist es erforderlich, dass zuvor Jack (Webseite) und ein Softwaresynthesizer (beispielsweise Qsynth) gestartet wurden.
Fußnoten:
Streams sind bei Computern Abstraktionen für Ein- und Ausgabeoperationen, ähnlich eines softwarebasierten Interfaces. Sie vereinheitlichen Ausgaben auf den Bildschirm, in eine Datei oder auf ein Ausgabegerät, wie beispielsweise einen Hard- oder Softwaresynthesizer, so dass mit den selben Funktionen die Funktionalität von Ein- und Ausgabe in ihrer gesamten Bandbreite abgedeckt werden kann.