4.5.1. Der Time Slot

Allen Ereignisklassen in Common Music ist gemeinsam, dass sie eine Instanzvariable :time besitzen. Beim Auswerten der Instanz einer Ereignisklasse (bzw. im Rückgabewert der new Funktion) wird dieser Slot nicht dargestellt. Man kann ihn allerdings bei Inspektion einer Instanz mit Hilfe der Funktion inspect (am besten in der REPL) sehen (Hinweis: Um den Inspektor wieder zu verlassen, muss die Taste "q" gefolgt von der Eingabetaste eingegeben werden) 11

CM> (inspect *testevent*)

The object is a STANDARD-OBJECT of type MIDI.
0\. TIME: "unbound"
1\. KEYNUM: 65
2\. DURATION: 2
3\. AMPLITUDE: 0.3
4\. CHANNEL: 3
> q

; No value
CM>

Ein Defaultwert für den time Slot ist in Common Music nicht definiert. Wenn der time Slot eines Events bei der Initialisierung nicht spezifiziert wurde, erzeugt Die Abfrage des Wertes von :time daher eine UNBOUND-SLOT Condition:

(sv *testevent* :time)
;;; -> The slot COMMON-LISP:TIME is unbound in the object
;;;    #i(midi keynum 65 duration 2 amplitude 0.3 channel 3).
;;;    [Condition of type UNBOUND-SLOT]

Die Condition kann man durch das Drücken von "q" bzw. "0" beenden und zum Ausgangspunkt zurückkehren. Anschließend kann man mit den oben beschriebenen Methoden den Wert des :time Slots setzen:

(setf (sv *testevent* :time) 0) ;;; -> 0

(sv *testevent* :time) ;;; -> 0
11: Eine erheblich komfortablere Form der Inspektion bietet Slime unter emacs. Dazu positioniert man den Cursor hinter das letzte Zeichen des zu inspizierenden Ausdrucks und drückt die Tastenkombination "C-c I". Im Minibuffer wird der zu inspizierende Ausdruck noch einmal angezeigt, den man durch Eingabe der Returntaste bestätigen muss. Der Inspektor öffnet sich dann in einem neuen Emacs Buffer. Auch hier verlässt man den Inspektor mit der Taste "q".

results matching ""

    No results matching ""