Skip to content

Instantly share code, notes, and snippets.

@josephwilk
Last active January 1, 2016 18:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save josephwilk/8185995 to your computer and use it in GitHub Desktop.
Save josephwilk/8185995 to your computer and use it in GitHub Desktop.
(ns overtone.bug
(:require [overtone.midi :as midi]))
(defn ping-event [& _] (Thread/sleep 10) (print ".") (flush))
(defn- detect-midi-devices [] (midi/midi-sources))
(defn- add-listener-handles!
"Adds listener handles to send incoming messages to Overtone's event
stream. Devices that a handler can't be added to are dropped. Returns
a filtered and modified sequence of device maps"
[devs]
(doall (filter
(fn [dev]
(try
(midi/midi-handle-events (midi/midi-in dev) #(overtone.bug/ping-event dev %1))
true
(catch Exception e
(println "Can't listen to midi device: " dev "\n" e)
false)))
devs)))
(def midi-connected-devices (-> (detect-midi-devices) add-listener-handles!))
;;Wiggle sliders like crazy
(.isOpen (:device (first midi-connected-devices)))
;;=> true
(comment
(.close (:device (first midi-connected-devices))))
;; Freezes
;;60 -> ETIMEDOUT
;;__semwait_signal(0x1C07, 0x0, 0x1) = -1 Err#60
;;__semwait_signal(0x1C07, 0x0, 0x1) = -1 Err#60
;;__semwait_signal(0x1C07, 0x0, 0x1) = -1 Err#60
;;__semwait_signal(0x1C07, 0x0, 0x1) = -1 Err#60
;;__semwait_signal(0x1C07, 0x0, 0x1) = -1 Err#60
;;psynch_cvwait(0x7F9B38C14B68, 0x100000100, 0x0) = -1 Err#316
;;gettimeofday(0x11B171DC0, 0x0, 0x1) = 1388430532 0
;;gettimeofday(0x11B171CA0, 0x0, 0x1) = 1388430532 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment