   function."
   [show device-filter & args]
   {:pre [(some? show) (some? device-filter)]}
+  @controller-binding-loader  ; Make sure controller implementations are finished registering
   (let [port-in  (first (amidi/filter-devices device-filter (amidi/open-inputs-if-needed!)))
         port-out (first (amidi/filter-devices device-filter (amidi/open-outputs-if-needed!)))
         identity (when (every? some? [port-in port-out]) (identify port-in port-out))]

(def maximum-bpm
  "The highest BPM value which controllers are allowed to set."
  200)

(defonce
  ^{:private true

  detected."
  [show device-filter & args]
  {:pre [(have? some? show) (have? some? device-filter)]}
  @controller-binding-loader  ; Make sure controller implementations are finished registering
  (let [idle (atom true)
        controller (atom nil)]
    (letfn [(disconnection-handler []
