diff options
author | Thomas White <taw@physics.org> | 2021-04-04 09:59:00 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2021-04-04 09:59:00 +0200 |
commit | b9b9e2c51c2dae1343eefa49f0566b6636bfe4d4 (patch) | |
tree | 2cf9df4df2c22b325b8b86aedb1672ac3f2cd9f0 /guile/starlet/midi-control | |
parent | 8e5aee3ec7919096aa669290d589c69cc882ce9b (diff) |
New state-on-fader
Diffstat (limited to 'guile/starlet/midi-control')
-rw-r--r-- | guile/starlet/midi-control/faders.scm | 31 |
1 files changed, 16 insertions, 15 deletions
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)))) |