4.8.2. Verschachtelte Prozesse

Besonders hervorzuheben ist die Möglichkeit, Prozesse als Bestandteile anderer Prozesse zu verwenden.

Das oben definierte Arpeggio lässt sich beispielsweise als Bestandteil eines Prozesses definieren, der eine wiederholte Repetition von Arpeggios erzeugt.

(defun arpeggio-repeat (chord numrepeats dtime)
  (process
    repeat numrepeats
    sprout (arpeggio chord dtime)
    wait (* (length chord) dtime)))

;; Abspielen dieses Prozesses mit sprout bzw. events:

(sprout (arpeggio-repeat '(60 66 71 77) 4 0.2))

Diese Funktion wiederum kann in einer Funktion verwendet werden, die eine rhythmisierte Akkordfolge arpeggiert.

(defun arpeggio-akkordfolge (akkordfolge wiederholungen dtime)
  (process
    for chord in akkordfolge
    for repeats in wiederholungen
    sprout (arpeggio-repeat chord repeats dtime)
    wait (* (length chord) repeats dtime)))

;; Abspielen dieses Prozesses:

(sprout
 (arpeggio-akkordfolge
  '((60 66 71 77)
    (60 65 73)
    (62 68 73 81)
    (61 69 71 74 77 83)
    (55 61 66 72 67 63 57)
    (41 43 47 51 57 63 65 71 74 80 82))
  '(4 2 3 1 1 1) 0.1))

(sprout
 (arpeggio-akkordfolge
  '((60 64 67 72 76 67 72 76)
    (60 62 69 74 77 69 74 77)
    (59 62 67 74 77 67 74 77)
    (60 64 67 72 76 67 72 76))
  '(2 2 2 2) 0.12))

results matching ""

    No results matching ""