Algorithmische Komposition mit Common Lisp
Ein komplettes Beispiel
Bevor wir uns mit den einzelnen Komponenten näher befassen, wird hier ein kurzes komplettes Beispiel gezeigt, das eine MidiNote über JackMidi ausgibt. Die nachfolgenden Abschnitte beschreiben und erklären dann die einzelnen Schritte im Detail.
Der Code des Beispiels kann entweder zeilenweise in der REPL oder aus einer Datei evaluiert werden (siehe dazu die Erklärungen in Allgemein).
Damit die Note klingt, muss nach dem Öffnen des JackMidi Streams
durch Evaluation des Ausdrucks
(midi-open-default :direction :output)
zunächst im externen Jack
Programm (beispielsweise QjackCtl oder JackPilot) eine
Verbindung zwischen incudine und einem Softwaresynthesizer (oder
alternativ auch mit einem externen Hardwaresynthesizer)
hergestellt werden.
Anschließend sollte bei Auswertung des Ausdrucks (output (new
midi))
vom Softwaresynthesizer ein mittleres C mit einer Dauer
von 0.5 Sekunden wiedergegeben werden.
(ql:quickload "clamps") ;;; Laden von Clamps. (clamps) ;;; Starten des rt Threads, von MIDI und GUI. (in-package :clamps) (output (new midi)) ;;; Spielen einer MIDI Note über die MIDI Ausgänge.