aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/midi-control/faders.scm
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.me.uk>2021-01-19 21:16:31 +0100
committerThomas White <taw@bitwiz.me.uk>2021-01-19 21:16:31 +0100
commite092fcd3c7f4deae473d282442b3a9b485bb3c3d (patch)
treef501e4ab6a1b723f0b441b5847d6a7726c51634d /guile/starlet/midi-control/faders.scm
parent581686787d86af3ed9294b29ec68f6d39cd5906d (diff)
on-fader: Soft pickup
This is a bit nasty, because we might not know what value the fader was at before it was moved.
Diffstat (limited to 'guile/starlet/midi-control/faders.scm')
-rw-r--r--guile/starlet/midi-control/faders.scm16
1 files changed, 14 insertions, 2 deletions
diff --git a/guile/starlet/midi-control/faders.scm b/guile/starlet/midi-control/faders.scm
index d0363d7..1fd3003 100644
--- a/guile/starlet/midi-control/faders.scm
+++ b/guile/starlet/midi-control/faders.scm
@@ -8,8 +8,9 @@
sel))
-(define* (on-fader cc-number state
- #:key (channel #f))
+(define (state-on-fader cc-number
+ channel
+ state)
(register-state!
(lighting-state
(state-for-each
@@ -30,6 +31,17 @@
state))))
+(define* (on-fader cc-number state
+ #:key (channel #f))
+ (register-midi-cc-callback!
+ #:cc-number cc-number
+ #:func (lambda (old-val new-val)
+ (when (or (eqv? old-val 0)
+ (and (not old-val)
+ (< new-val 10)))
+ (state-on-fader cc-number channel state)))))
+
+
(define (current-values fixture-list attr-name)
(map (lambda (fix)
(current-value fix attr-name))