Next: Der Lisp Inspector , Previous: Aufgaben , Up: Allgemeine Einführung , Home: Allgemeine Einführung

Algorithmische Komposition mit Common Lisp

Musikalische Objekte, Listen und Funktionen

Schauen wir uns das erste Beispiel aus Abb. 4 etwas genauer an:

(output (new sfz))
;; No values

Wie schon erwähnt, führt die Auswertung des Ausdrucks dazu, dass ein Ton ausgegeben wird. Die runden Klammern des Ausdrucks begrenzen eine Liste, eine der wichtigsten Elemente der Sprache Lisp.1

Das output in dem Ausdruck bedeutet, dass etwas ausgegeben werden soll und der darauf folgende Ausdruck (new sfz) beschreibt, was ausgegeben werden soll.

Wenn wir den Ausdruck (new sfz) auswerten, können wir genauer erfahren, was ausgegeben wird:

(new sfz)
;; => #i(sfz keynum 60 amplitude 0 duration 1
;;       preset :flute-nv oneshot nil pan 0.5 startpos 0 chan 100)

Das #i zu Beginn des Ausdrucks bedeutet, dass es sich um die Instanz einer Klasse handelt. In der darauffolgenden Liste ist zuerst der Typ dieser Klasse (sfz) angegeben und anschließend eine Reihe von Paaren, die verschiedene Instanzvariablen und deren Werte zeigen. Die Instanzvariablen und deren Werte beschreiben Parameter des Tons, wie Tonhöhe (keynum), Dauer (duration), Instrument (preset), etc.

Fußnoten:

1

das Wort LISP steht für LIS t P rocessing