 
 (defn- boot-internal-server
   "Boots internal server by executing it on a daemon thread."
-  []
-  (let [sc-thread (Thread. internal-booter)]
+  [opts]
+  (let [sc-thread (Thread. #(internal-booter opts))]
     (.setDaemon sc-thread true)
     (println "--> Booting internal SuperCollider server...")
     (log/debug "Booting SuperCollider internal server (scsynth)...")


       (let [port (if (nil? port) (+ (rand-int 50000) 2000) port)]
         (case connection-type
           :internal (boot-internal-server)
           :external (boot-external-server port opts))
         (wait-until-deps-satisfied :server-ready)))
     (print-ascii-art-overtone-logo


(defn- internal-booter
  "Fn to actually boot internal server. Typically called within a thread."
  [opts]
  (log/info "booting internal audio server")
  (on-deps :internal-server-booted ::connect-internal connect-internal)
  (let [server    (scsynth osc-msg-decoder opts)
        full-opts (merge-sc-args opts)]
    (dosync (ref-set sc-world* server)
            (alter connection-info* assoc :opts full-opts))

    (scsynth-listen-udp server 57110)
    (log/info "The internal scsynth server has booted...")
    (satisfy-deps :internal-server-booted)
