aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/midi-control/faders.scm
diff options
context:
space:
mode:
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))))