aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/midi-control/faders.scm
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2021-09-12 18:08:10 +0200
committerThomas White <taw@physics.org>2021-09-12 18:14:09 +0200
commit730ed8b6b63bb3fdce9db8320e5b37963616e41e (patch)
tree2fb50126442d8a39b244b851e9e385db44fd902f /guile/starlet/midi-control/faders.scm
parent4167a41b3a0137651316ccb046a73893e3cf3e63 (diff)
Variable sensitivity for jogwheels
Use make-sensitivity-knob
Diffstat (limited to 'guile/starlet/midi-control/faders.scm')
-rw-r--r--guile/starlet/midi-control/faders.scm19
1 files changed, 15 insertions, 4 deletions
diff --git a/guile/starlet/midi-control/faders.scm b/guile/starlet/midi-control/faders.scm
index bd2da95..2af57e3 100644
--- a/guile/starlet/midi-control/faders.scm
+++ b/guile/starlet/midi-control/faders.scm
@@ -107,16 +107,26 @@
val))))
+(define (attr-scale controller attr)
+ (let ((sens-level (get-controller-sensitivity controller)))
+ (cond
+ ((= sens-level 1) 0.02)
+ ((= sens-level 2) 0.1)
+ ((= sens-level 3) 0.5)
+ ((= sens-level 4) 1.5)
+ ((= sens-level 5) 3.0))))
+
+
(define* (at-midi-jogwheel controller
fixture-list
attr
cc-number
#:key (led #f))
- (define (ccval->offset a)
+ (define (ccval->offset controller a)
(if (eq? a 127)
- -1
- 1))
+ (- (attr-scale controller attr))
+ (attr-scale controller attr)))
(let ((fixtures (car (fixtures-with-attr fixture-list attr))))
(unless (null? fixtures)
@@ -130,7 +140,8 @@
controller
#:cc-number cc-number
#:func (lambda (prev-cc-val new-cc-value)
- (set! offset (+ offset (ccval->offset new-cc-value)))
+ (set! offset (+ offset (ccval->offset controller
+ new-cc-value)))
(for-each (lambda (fix old-val)
(let ((attr-obj (find-attr fix attr)))
(when (and attr-obj