Next: Starten von Clamps und der Echtzeitverarbeitung im Detail , Previous: Clamps/Common Music , Up: Clamps/Common Music , Home: Allgemeine Einführung

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.