         newpanhash (assoc panhash :root newroot)
         numpitbut (select newroot [(keyword (s/join ["#kb-" (str id) "-numpitch"]))])
         numbeabut (select newroot [(keyword (s/join ["#kb-" (str id) "-numbeats"]))])
+        instrubut (select newroot [(keyword (s/join ["#kb-" (str id) "-instr"]))])
         ]
     (value! numpitbut (get panhash :pitches))
     (value! numbeabut (get panhash :beats))
+    (value! instrubut (get panhash :instr))
     (restore-circles id oldid panel circhash)
     (swap! melody-map assoc id newpanhash)))
 

        mellist (map #(keyword (s/join [melprefix (str %)])) (range mellen))
        rhylist (map #(keyword (s/join [rhyprefix (str %)])) (range rhylen))
        idlist (vec (concat mellist rhylist))
        circhash (atom {})]
    (doseq [k idlist]
      (let [w (select panel [k])]
        (swap! circhash assoc k (value w))))

(defn new-panel [e]
  (swap! counter inc)
  (make-melody-panel @counter))

(def keyboard 
  (let [oct1 (map #(s/join [% "3"]) c-scale)
