musikinformatik-wise-24.org
Automation
Automation mit process
Ganz analog zum Kapitel Scheduling kann das process
Makro von
Common Music auch für Automationen von Slidern genutzt werden. Um
den ersten Slider aus Beispiel 2 des letzten Kapitels zu bewegen,
könnte man z.B. den folgenden Code verwenden:
(in-package :clamps) (sprout (let ((duration 2) ;; Dauer (resolution 0.01) ;; zeitliche Auflösung (start 0) ;; Startwert (end 127)) ;; Endwert (process repeat (1+ (round (/ duration resolution))) for x from 0 by (/ resolution duration) do (set-val *slider1* (n-lin x start end)) wait resolution))) ;;; mit Hilfe einer Abstraktion: (defun line-process (ref start end duration &optional (resolution 0.01)) (process repeat (1+ (round (/ duration resolution))) for x from 0 by (/ resolution duration) do (set-val ref (n-lin x start end)) wait resolution)) (sprout (line-process *slider1* 0 127 2)) (sprout (line-process *slider2* 0 127 3)) ;;; generatoren: (defun phasor-proc (freq max ref &optional (resolution 0.01)) (process repeat 100000 for x = 0 then (mod (+ x (* freq resolution)) 1) do (set-val ref (* max x)) wait resolution)) (defun lfo-proc (freq max ref &optional (resolution 0.01)) (process for x = 0.5 then (mod (+ x (* freq resolution)) 1) do (set-val ref (* max (abs (- (* 2 x) 1)))) wait resolution)) (sprout (phasor-proc 0.5 127 *slider2*)) (sprout (lfo-proc 0.5 127 *slider1* 0.1)) (sprout (lfo-proc 0.5 127 *slider2* 0.1)) (sprout (lfo-proc 0.5 127 *slider3* 0.1))
Created: 2025-02-12 Mi 20:35