diff options
author | Thomas White <taw@bitwiz.me.uk> | 2021-01-19 21:16:31 +0100 |
---|---|---|
committer | Thomas White <taw@bitwiz.me.uk> | 2021-01-19 21:16:31 +0100 |
commit | e092fcd3c7f4deae473d282442b3a9b485bb3c3d (patch) | |
tree | f501e4ab6a1b723f0b441b5847d6a7726c51634d /guile/starlet | |
parent | 581686787d86af3ed9294b29ec68f6d39cd5906d (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')
-rw-r--r-- | guile/starlet/midi-control/faders.scm | 16 |
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)) |