     (surface-add-widget s (dial #(reset! decay* (* 4 %)))  120 50)
     (surface-add-widget s (dial #(reset! sustain %))       120 90)
     (surface-add-widget s (dial #(reset! release (* 6 %))) 120 130)
+    (surface-add-widget s (fader #(reset! bass-rate %))    160 15)
+    (surface-add-widget s (fader #(reset! bass-release %)) 200 15)
     s))
 
 (defn tb3 []

  (let [next-tick (+ time sep)
        [note vol] (first notes:vols)
        vol (/ vol 50)]
    (at time (tb303 :note note :vol vol :wave @wave :cutoff @cutoff* :r @r
                    :attack @attack :decay @decay* :sustain @sustain :release @release))
    (apply-at #'play-scale next-tick next-tick (next notes:vols) sep)))

(defn reich [tempo phase]

    (* amp drum)))

(defonce wave (atom 1))
(defonce cutoff* (atom 579))
(defonce r (atom 0.309))
(defonce attack (atom 0.059))
(defonce decay* (atom 0.039))
(defonce sustain (atom 0.269))
(defonce release (atom 3.6))
(defonce bass-release (atom 0.1))
(defonce bass-rate (atom 0.38))

(defn- tb303-gui []
  (let [s (surface "Overtone-303" 300 200)]
    (surface-add-widget s (fader  #(reset! cutoff* (* % 2000))) 20 15)
    (surface-add-widget s (button #(reset! wave (if % 1 0))) 50 85)
    (surface-add-widget s (fader  #(reset! r %)) 80 15)
