summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/unheard/midi.clj17
-rw-r--r--src/unheard/midi_test.clj26
2 files changed, 26 insertions, 17 deletions
diff --git a/src/unheard/midi.clj b/src/unheard/midi.clj
index d47e5b1..a44c01b 100644
--- a/src/unheard/midi.clj
+++ b/src/unheard/midi.clj
@@ -279,23 +279,6 @@
:else
result)))))))
-(defn test-msg [cmd ch d1 d2]
- (ShortMessage. cmd ch d1 d2))
-
-(comment
- (into []
- (transduce
- short-message->notes
- conj
- []
- (conj
- (map (fn [[cmd d1]] (test-msg cmd 0 d1 9))
- [[ShortMessage/NOTE_ON 1]
- [ShortMessage/CONTROL_CHANGE 1]
- [ShortMessage/NOTE_ON 2]
- [ShortMessage/NOTE_OFF 2]
- [ShortMessage/NOTE_OFF 1]])))))
-
;; TODO: Move this logic into bus fn
(defn short-messages
[>device-name]
diff --git a/src/unheard/midi_test.clj b/src/unheard/midi_test.clj
new file mode 100644
index 0000000..cbf3d5a
--- /dev/null
+++ b/src/unheard/midi_test.clj
@@ -0,0 +1,26 @@
+(ns unheard.midi-test
+ (:require [unheard.midi :as sut]
+ [hyperfiddle.rcf :refer [tests]])
+ (:import [javax.sound.midi ShortMessage]))
+
+(defn test-msg [cmd ch d1 d2]
+ (ShortMessage. cmd ch d1 d2))
+
+(tests "short-message->notes"
+ (let [msgs (into [] (map (fn [[cmd d1]] (test-msg cmd 0 d1 9))
+ [[ShortMessage/NOTE_ON 1]
+ [ShortMessage/CONTROL_CHANGE 1]
+ [ShortMessage/NOTE_ON 2]
+ [ShortMessage/NOTE_OFF 2]
+ [ShortMessage/NOTE_OFF 1]
+ [ShortMessage/NOTE_ON 3]
+ [ShortMessage/NOTE_ON 4]]))]
+ (into []
+ (transduce
+ sut/short-message->notes
+ conj
+ []
+ (conj
+ msgs
+ (ShortMessage. ShortMessage/CONTROL_CHANGE 0 123 0))))
+ := [#{1} #{1 2} #{1} #{} #{3} #{4 3} #{}]))