                            (label :text ""
                                   :size [100 :by 30])
                            (label "Instrument:")
-                           (combobox :model ["Flute" "Piano" "Mooger" "CS80"
-                                             "SSaw" "Ticker" "Ping"]
+                           (combobox :model instruments
                                      :id :instChooser
                                      :listen [:action inst-chooser])
                            (label "Tonic:")

      (concat (list newnote) (string-to-midi tail)))
    '()))

(def melody (atom [(note-to-midi major)]))

(defn melody-chooser [e]
  (let [val (value (.getSource e))]
    (case val
      "Art of Fugue"  (reset! melody [(note-to-midi aof-subject)])
      "Major Scale"   (reset! melody [(note-to-midi major)])
      "Minor Scale"   (reset! melody [(note-to-midi minor)])
      "Patterns"      (reset! melody false)
      )))


        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))))
