From a5b9740fdbde423d4830c8eb8cafa70011cfe948 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 27 Dec 2020 11:06:35 +0100 Subject: Add fader control --- guile/starlet/midi-control/faders.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 guile/starlet/midi-control/faders.scm (limited to 'guile/starlet/midi-control/faders.scm') diff --git a/guile/starlet/midi-control/faders.scm b/guile/starlet/midi-control/faders.scm new file mode 100644 index 0000000..db1e986 --- /dev/null +++ b/guile/starlet/midi-control/faders.scm @@ -0,0 +1,25 @@ +(define-module (starlet midi-control faders) + #:use-module (starlet midi-control base) + #:use-module (starlet base) + #:export (on-fader)) + + +(define (on-fader channel cc-number state) + (let ((fader (make-midi-controller! #:channel channel + #:cc-number cc-number))) + (register-state! + (lighting-state + (state-for-each + (lambda (fix attr val) + (if (intensity? attr) + + ;; Intensity parameters get scaled according to the fader + (at fix attr (lambda (time) + (* 0.01 + val + (get-controller-value fader)))) + + ;; Non-intensity parameters just get set in our new state + (at fix attr val))) + + state))))) -- cgit v1.2.3