2.3.1. 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 "cm-utils") ;;; Laden von Common Music 2 (cm) mit Realtime Erweiterung. (in-package :cm) (incudine:rt-start) ;;; Starten der Echtzeitverarbeitung von incudine (midi-open-default :direction :output) ;;; Erzeugen des incudine JACKMIDI outputs (*midi-out1*) (setf *rts-out* (new incudine-stream :output *midi-out1*)) ;;; Anbindung des MIDI outputs an Common Music (output (new midi)) ;;; Spielen einer Note