     (= (type device-filter) :midi-device)
     (describe-device-filter (:info device-filter))
 
+    (vector? device-filter)
+    (clojure.string/join "or " (map describe-device-filter device-filter))
+
     (ifn? device-filter)
     (format "returning true when passed to %s " device-filter)
 

    (filter #(= (:info %) device-filter) devices)

    (= (type device-filter) :midi-device)
    (filter #(= (@midi-device-key %) (@midi-device-key device-filter)) devices)

    (ifn? device-filter)
    (filter device-filter devices)

  only the device it describes.

  * A `:midi-device` map, which will match only itself.

  * A `vector` of device filters, which will match any device that
  matches any filter.

  * A function, which will be called with each device, and the device
  will be included if the function returns a `true` value.
