From 39b8c0e3f0e47ebd70ce42ede9810a19de5900c6 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 19 Aug 2020 17:10:28 +0200 Subject: Set all notes (LEDs) off at start --- examples/demo.scm | 2 +- guile/guile-midi/control.scm | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/examples/demo.scm b/examples/demo.scm index 1ff0832..457718d 100644 --- a/examples/demo.scm +++ b/examples/demo.scm @@ -10,7 +10,7 @@ (start-ola-output) (start-midi-control "/dev/snd/midiC1D0") - +(all-notes-off! 14) ;; Light up some LEDs on the MIDI controller (define led1 diff --git a/guile/guile-midi/control.scm b/guile/guile-midi/control.scm index e3ff848..548eead 100644 --- a/guile/guile-midi/control.scm +++ b/guile/guile-midi/control.scm @@ -9,6 +9,7 @@ get-controller-value make-midi-led set-midi-led! + all-notes-off! register-midi-note-callback!)) @@ -114,6 +115,13 @@ 0))) +(define (all-notes-off! channel) + (let again ((l 0)) + (enqueue-midi-bytes! (+ #b10000000 channel) l 0) + (unless (= l 127) + (again (+ l 1))))) + + (define (handle-cc-change! channel cc-number value) (for-each (lambda (a) (atomic-box-set! (get-value-box a) value)) -- cgit v1.2.3