         scaled-init (* (/ (- init-val min-val)
                           (double (- max-val min-val)))
                        SLIDER-MAX)
-        slider (slider :value scaled-init :min 0 :max SLIDER-MAX :orientation :vertical)
+        slider (slider :value scaled-init :min 0 :max SLIDER-MAX :orientation :horizontal)
         label  (label name)
-        pane   (vertical-panel :items [slider spinner label])]
+        items  [[label "width 80:80:100"]
+                [spinner "width 80:80:80"]
+                [slider "wrap"]]]
     (bind/bind slider
                (bind/transform (fn [v]
                                  (let [val (+ min-val (* (- max-val min-val)

(ns overtone.gui.control
  (:use overtone.libs.event
        seesaw.core)
  (:require [seesaw.bind :as bind]
            [clojure.set :as set]))

(native!)


               slider)
    (bind/bind spinner val-atom)
    (bind/bind val-atom spinner)
    items))

(defn synth-controller
  "Create a GUI for the given synth or instrument.  Requires sufficient parameter metadata in the synthdef.
