         x-res         (:num-steps state)
         step-width    (/ w (:num-steps state))
         y             (/ h 2)
-        tick-height   (/ h NUM_SLICES)
+        tick-height   (/ h (:num-slices state))
         num-steps    (:num-steps state)
         line-padding  0]
 
     (draw g (rect 0 0 w h) background-fill)
 
-    (dotimes [i 20]
+    (dotimes [i (:num-slices state)]
       (draw g (line 0 (* i tick-height) w (* i tick-height)) background-stroke))
 
     (dotimes [i num-steps]


(defn- on-press-drag
  [state e]
  (let [
        x-cell        (int (/ (.getX e) (/ (.getWidth (.getComponent e)) (:num-steps state))))
        y-cell        (int (/ (.getY e) (/ (.getHeight (.getComponent e)) 2)))
        tick-height  (/ (.getHeight (.getComponent e)) NUM_SLICES)
        current-value (- (int (/ (.getY e) tick-height)) 10)]
    (assoc (assoc-in state [:steps x-cell] current-value)
           :current-value current-value)))


                   (dseq (map #(+ 60 %) (:steps @(:state pstep)))))
        src (saw (midicps note))]
    (* [0.2 0.2] src)))

; Or give the stepinator a func to call and it will show a Stepinate button
(stepinator
  :steps   32
  :slices  50
  :width   640
  :height  480
  :stepper (fn [steps]
             (demo 5
                   (let [note (duty (dseq [0.2 0.1] INF)
                                    0
                                    (dseq (map #(+ 60 %) steps)))
                         a (saw (midicps note))
                         b (sin-osc (midicps (+ note 7)))]
                     [(* 0.2 a) (* 0.2 b)]))))
)
