 
 (def aof-subject '([:d4 2] [:a4 2] [:f4 2] [:d4 2] [:c#4 2] [:d4 1]
                    [:e4 1] [:f4 2.5] [:g4 0.5] [:f4 0.5] [:e4 0.5] [:d4 1]))
-(def major '([:c4 1] [:d4 1] [:e4 1] [:f4 1] [:g4 1] [:a4 1] [:b4 1] [:c5 1]))
-(def minor '([:c4 1] [:d4 1] [:eb4 1] [:f4 1] [:g4 1] [:ab4 1] [:bb4 1] [:c5 1]))
+(def major
+  (let [half '([:c4 1] [:d4 1] [:e4 1] [:f4 1] [:g4 1] [:a4 1] [:b4 1] [:c5 1])
+        rev (drop 1 (reverse half))]
+    (concat half rev)))
+(def minor
+  (let [half '([:c4 1] [:d4 1] [:d#4 1] [:f4 1] [:g4 1] [:a4 1] [:b4 1] [:c5 1])
+        rev (concat '([:a#4 1] [:g#4 1]) (drop 3 (reverse half)))]
+    (concat half rev)))
+
 
 (defn inst-chooser [e]
   (let [val (value (.getSource e))]
     (case val
       "Flute"  (def inst-cur flute)
+      "Piano"  (def inst-cur piano)
+      "Mooger" (def inst-cur mooger)
       "CS80"   (def inst-cur cs80)
       "SSaw"   (def inst-cur ssaw)
       "Ticker" (def inst-cur tick)

                                     :id :tonicChooser
                                     :listen [:action tonic-chooser])
                           (label "Tuning:")
                           (combobox :model ["Equal" "Pythagorean" "Just"]
                                     :id :tuningChooser
                                     :listen [:action tuning-chooser])
                           (label "Melody:")

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