From e092fcd3c7f4deae473d282442b3a9b485bb3c3d Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 19 Jan 2021 21:16:31 +0100 Subject: on-fader: Soft pickup This is a bit nasty, because we might not know what value the fader was at before it was moved. --- guile/starlet/midi-control/faders.scm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 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 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)) -- cgit v1.2.3