From b9b9e2c51c2dae1343eefa49f0566b6636bfe4d4 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 4 Apr 2021 09:59:00 +0200 Subject: New state-on-fader --- guile/starlet/midi-control/faders.scm | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'guile/starlet/midi-control/faders.scm') diff --git a/guile/starlet/midi-control/faders.scm b/guile/starlet/midi-control/faders.scm index 99e2560..606bd72 100644 --- a/guile/starlet/midi-control/faders.scm +++ b/guile/starlet/midi-control/faders.scm @@ -15,26 +15,27 @@ (lighting-state (state-for-each (lambda (fix attr val) - (let ((cc-val (get-cc-value cc-number #:channel channel))) - (format #t "Have val ~a\n" cc-val) + (at fix attr + (lambda (time) - ;; Fader position known? - (if cc-val + (let ((cc-val (get-cc-value cc-number #:channel channel))) - (if (intensity? attr) + ;; Fader position known? + (if cc-val - ;; Intensity parameters get scaled according to the fader - (at fix attr (lambda (time) - (* 0.01 val (ccval->percent cc-val)))) + (if (intensity? attr) - ;; Non-intensity parameters just get set in our new state, - ;; but only if the fader is up! - (if (> cc-val 0) - (at fix attr val) - 'no-value)) + ;; Intensity parameters get scaled according to the fader + (* 0.01 val (ccval->percent cc-val)) - ;; Fader position unknown - 'no-value))) + ;; Non-intensity parameters just get set in our new state, + ;; but only if the fader is up! + (if (> cc-val 0) + val + 'no-value)) + + ;; Fader position unknown + 'no-value))))) state)))) -- cgit v1.2.3