(ns scratch (:require [midi :refer [print-all-midi-devices >bus 128 (midi/|channels (midi/|short-messages f))) [note note-messages] (m/?> 128 (midi/|notes ch-messages))] (println [ch note (m/?< (m/relieve (m/reductions (fn [_prev curr] (when (some? curr) (cond (= (.getCommand ^ShortMessage curr) ShortMessage/NOTE_ON) (.getData2 ^ShortMessage curr) (= (.getCommand ^ShortMessage curr) ShortMessage/POLY_PRESSURE) (.getData2 ^ShortMessage curr) (= (.getCommand ^ShortMessage curr) ShortMessage/NOTE_OFF) nil))) nil note-messages)))])) #_(let [[ch >ch-messages] (m/?> 128 (midi/|channels (midi/|short-messages f))) #_#_[note >note-messages] (m/?> 128 (midi/|notes >ch-messages))] (println "CH" ch) #_#_(println "HELLO") [ch note (m/?< >note-messages)]))))) (def cancel (run prn prn)) (cancel)