                                     :onClick #(handle-change % owner state :type)
                                     :onKeyDown #(when (= 13 (.-which %))
                                                   (om/update-state! owner (fn [s] (merge s {:state :immutable})))
-                                                  (if-not (= "grid" (:type state))
-                                                    (om/transact! cursor (fn [c] (assoc c "type" (:type state))))
+                                                  (condp = (:type state)
+                                                    "synth"
+                                                    (om/transact! cursor (fn [c] (assoc c
+                                                                                        "type" (:type state)
+                                                                                        "synth-params" {})))
+                                                    "sample"
+                                                    (om/transact! cursor (fn [c] (assoc c
+                                                                                        "type" (:type state)
+                                                                                        "sample-params" {})))
+                                                    "grid"
                                                     (let [grid-id (new-id)
                                                           grid {"name" ""
                                                                 "grid-id" grid-id

                                 (clj->js
                                  (conj s {"type" "none"
                                           "beats" (repeat % [0])
                                           "params" {}
                                           "fx" []}))))
            width-selection (fn [w s]
                              (dom/span #js {:onClick

                                                  (go (>! set-state-ch id)))}
                               (dom/option nil "synth")
                               (dom/option nil "sample")
                               (dom/option nil "grid"))
        :immutable (dom/span nil (get cursor "type"))))))

