diff options
author | Thomas White <taw@bitwiz.me.uk> | 2020-12-29 22:23:51 +0100 |
---|---|---|
committer | Thomas White <taw@bitwiz.me.uk> | 2020-12-29 22:23:51 +0100 |
commit | 4fde57ac712f2a199a03dc408044a717b1e29a00 (patch) | |
tree | ab621cb5733473772fc63e184463402361eaac6e /guile/starlet/midi-control/faders.scm | |
parent | dba09268be532aba80e62a5c1e94d0b8c099b7cf (diff) |
Simplify MIDI control interface
This removes the midi-led and midi-control classes, which only seemed to
be making things more complicated.
Diffstat (limited to 'guile/starlet/midi-control/faders.scm')
-rw-r--r-- | guile/starlet/midi-control/faders.scm | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/guile/starlet/midi-control/faders.scm b/guile/starlet/midi-control/faders.scm index db1e986..5abbe8a 100644 --- a/guile/starlet/midi-control/faders.scm +++ b/guile/starlet/midi-control/faders.scm @@ -4,22 +4,22 @@ #:export (on-fader)) -(define (on-fader channel cc-number state) - (let ((fader (make-midi-controller! #:channel channel - #:cc-number cc-number))) - (register-state! - (lighting-state - (state-for-each - (lambda (fix attr val) - (if (intensity? attr) +(define* (on-fader cc-number state + #:key (channel #f)) + (register-state! + (lighting-state + (state-for-each + (lambda (fix attr val) + (if (intensity? attr) - ;; Intensity parameters get scaled according to the fader - (at fix attr (lambda (time) - (* 0.01 - val - (get-controller-value fader)))) + ;; Intensity parameters get scaled according to the fader + (at fix attr (lambda (time) + (* 0.01 + val + (scale-127-100 (get-cc-value cc-number + #:channel channel))))) - ;; Non-intensity parameters just get set in our new state - (at fix attr val))) + ;; Non-intensity parameters just get set in our new state + (at fix attr val))) - state))))) + state)))) |