 
 ;;Replies to sender with the following message.
 ;;status.reply
-;;	int - 1. unused.
-;;	int - number of unit generators.
-;;	int - number of synths.
-;;	int - number of groups.
-;;	int - number of loaded synth definitions.
-;;	float - average percent CPU usage for signal processing
-;;	float - peak percent CPU usage for signal processing
-;;	double - nominal sample rate
-;;	double - actual sample rate
+;;      int - 1. unused.
+;;      int - number of unit generators.
+;;      int - number of synths.
+;;      int - number of groups.
+;;      int - number of loaded synth definitions.
+;;      float - average percent CPU usage for signal processing
+;;      float - peak percent CPU usage for signal processing
+;;      double - nominal sample rate
+;;      double - actual sample rate
 (defn status
   "Check the status of the audio server."
   []
   (if (connected?)
     (let [p (promise)
           handler (fn [event]
-                   (deliver p (parse-status (:args event)))
-                   (remove-handler "status.reply" ::status-check)
-                   (remove-handler "/status.reply" ::status-check))]
+                    (deliver p (parse-status (:args event)))
+                    (remove-handler "status.reply" ::status-check)
+                    (remove-handler "/status.reply" ::status-check))]
       (on-event "/status.reply" ::status-check handler)
       (on-event "status.reply" ::status-check handler)
 

(defonce status*        (ref :disconnected))
(defonce synth-group*   (ref nil))

; The base handler for receiving osc messages just forwards the message on
; as an event using the osc path as the event key.
(on-sync-event :osc-msg-received ::osc-receiver
               (fn [{{path :path args :args} :msg}]
                 (event path :path path :args args)))

  names with different drivers or hardware then we need to find a better strategy to auto-connect."
  ([] (connect-jack-ports 2))
  ([n-channels]
     (let [port-list (sh "jack_lsp")
           sc-ins         (re-seq #"SuperCollider.*:in_[0-9]*" port-list)
           sc-outs        (re-seq #"SuperCollider.*:out_[0-9]*" port-list)
           system-ins     (re-seq #"system:capture_[0-9]*" port-list)
           system-outs    (re-seq #"system:playback_[0-9]*" port-list)
           interface-ins  (re-seq #"system:AC[0-9]*_dev[0-9]*_.*In.*" port-list)
           interface-outs (re-seq #"system:AP[0-9]*_dev[0-9]*_LineOut.*" port-list)
           connections (partition 2 (concat
                                     (interleave sc-outs system-outs)
                                     (interleave sc-outs interface-outs)
                                     (interleave system-ins sc-ins)
                                     (interleave interface-ins sc-ins)))]
       (doseq [[src dest] connections]
         (sh "jack_connect" src dest)
         (log/info "jack_connect " src dest)))))

;; We have to do this to handle the change in SC, where they added a "/" to the
;; status.reply messsage, which it should have had in the first place.
(defn- setup-connect-handlers []
  (let [handler-fn
        (fn []
