Next: Der gesamte Code , Previous: Visualisierung , Up: James Tenney: Spectral Canon , Home: Allgemeine Einführung

Algorithmische Komposition mit Common Lisp

Erweiterung von Clarence Barlow

Von der Komposition existiert auch eine Extended Version von Clarence Barlow aus dem Jahr 1991. In dieser Version bricht das Stück nicht am Ende der ersten Stimme ab, sondern der gesamte Kanon wird noch einmal symmetrisch am Ende des Originalkanons gespiegelt und läuft als Krebs des Originals ab. Der folgende Code erzeugt diese Version.

(defun spectral-canon-barlow (&optional dur)
  "Return a list of sfz Instances for the extended version of the
Spectral Canon by James Tenney suggested by Clarence Barlow."
  (let ((original (spectral-canon))
        (total-duration (get-time 384 1)))
    (append
     original
     (loop
       for evt in original
       if (< (sv evt :time) (get-time 384 1))
         collect (let ((new (copy-object evt)))
                   (setf (sv new :time)
                         (- (* 2 total-duration) (sv evt :time)))
                   new)))))