From 3c4c9a2c89defe50ad40c544e383f50eb0aa040e Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sat, 11 Sep 2021 12:15:14 +0200 Subject: Re-assert MIDI control map on parameter change This makes the MIDI controller stay in sync with the programmer state values. It's kind of a coarse solution, though. It would be better to: 1. Only re-assert the map if the changed parameter currently appears on the MIDI control surface 2. Only re-assert the part of the map related to the parameter Almost as a side-effect, this enables switching between multiple control maps. Just call 'set-midi-control-map!' on the controller with the new map. --- guile/starlet/midi-control/base.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'guile/starlet/midi-control/base.scm') diff --git a/guile/starlet/midi-control/base.scm b/guile/starlet/midi-control/base.scm index 08310ae..9363e81 100644 --- a/guile/starlet/midi-control/base.scm +++ b/guile/starlet/midi-control/base.scm @@ -33,7 +33,9 @@ send-note-off register-midi-note-callback! register-midi-cc-callback! - remove-midi-callback!)) + remove-midi-callback! + get-parameter-controller + set-parameter-controller!)) (define-class () @@ -52,7 +54,12 @@ (send-queue #:init-form (make-atomic-box '()) - #:getter get-send-queue)) + #:getter get-send-queue) + + (parameter-controller + #:init-value #f + #:getter get-parameter-controller + #:setter set-parameter-controller!)) (define-class () -- cgit v1.2.3