 (ns overtone.gui.sequencer
   (:use [overtone.sc server]
         [overtone.music time]
-        [seesaw core mig border])
+        [overtone.gui.control :only [synth-controller]]
+        [seesaw core mig border]
+        [seesaw.swingx :only [hyperlink]])
   (:require [seesaw.bind :as bind]))
 
 (defn- make-initial-state [metro steps instruments]

                                        "bpm"])
          seq-pane     (mig-panel :constraints [(str "wrap " (+ 2 steps)) "" ""]
                                  :items (concat
                                           [["step" "gap 5px, gapright 10px"]]
                                              (for [lbl step-lbls] [lbl "width 25:25:25"])
                                              [["" ""]]
                                           (mapcat #(step-row % steps state-atom) instruments)))


(defn- step-row
  [ins steps state-atom]
  (let [ins-btn (hyperlink :text (:name ins) :tip "Click for synth controls") 
        btns (repeatedly steps #(toggle :selected? false))
        btns-constrained (map (fn [b] [b "width 25:25:25"]) btns)
        clear (button :text "clear"
