aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/midi-control/faders.scm
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.me.uk>2020-12-29 22:23:51 +0100
committerThomas White <taw@bitwiz.me.uk>2020-12-29 22:23:51 +0100
commit4fde57ac712f2a199a03dc408044a717b1e29a00 (patch)
treeab621cb5733473772fc63e184463402361eaac6e /guile/starlet/midi-control/faders.scm
parentdba09268be532aba80e62a5c1e94d0b8c099b7cf (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.scm32
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))))