From 730ed8b6b63bb3fdce9db8320e5b37963616e41e Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 12 Sep 2021 18:08:10 +0200 Subject: Variable sensitivity for jogwheels Use make-sensitivity-knob --- guile/starlet/midi-control/faders.scm | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'guile/starlet/midi-control/faders.scm') 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 -- cgit v1.2.3