      (connect host port)
      (log/info "status check: " (status)))))
 
-(defn quit 
+(defn quit
   "Quit the SuperCollider synth process."
   []
   (log/info "quiting supercollider")

        (set! *data* new-data)
        {:synth sname
         :controls ctls})
      (do 
        (set! *data* (next *data*))
        {:synth sname}))))

(defn- parse-node-tree-helper [ctls?]
  (let [[id n-children & new-data] *data*]
    (set! *data* new-data)
    (cond 
      (neg? n-children) (parse-synth-tree ctls?) ; synth
      (= 0 n-children) {:group id :children nil}
      (pos? n-children) 
      {:group id
       :children (doall (map (fn [i] (parse-node-tree-helper ctls?)) (range n-children)))})))


    (apply snd "/s_new" synth-name id position target args)
    id))

(defn node-free
  "Instantly remove a node from the graph."
  [node-id & node-ids]
  (apply snd "/n_free" node-id node-ids))
