 (defn rand-direction [] (rand-nth [1 -1]))
 
 (s/fdef rand-direction
-  :args (s/cat)
-  :ret #{-1 1})
+        :args (s/cat)
+        :ret #{-1 1})
 
 (defn vary-pitch [{:keys [::pitch ::variation ::direction]}]
   (let [direction (or direction [-1 1])
-        a         (descriptor->value pitch)
-        b         (+ a (* (descriptor->value variation)
-                          (descriptor->value direction)))]
+        a (descriptor->value pitch)
+        b (+ a (* (descriptor->value variation)
+                  (descriptor->value direction)))]
     [a b]))
 
 (s/fdef vary-pitch
-  :args (s/cat :data (s/keys :req [::pitch ::variation]))
-  :ret (s/tuple ::audio/semitone ::audio/semitone))
+        :args (s/cat :data (s/keys :req [::pitch ::variation]))
+        :ret (s/tuple ::audio/semitone ::audio/semitone))
 
 (om/defui ^:once PitchDetection
   static uc/InitialAppState

                                    "Play Again")))))
                          (dom/div #js {:id "hintsarea"}
                            (for [[hint i] (map vector (take hints-used hints) (range))]
                              (dom/p #js {:key i} (template/translate hint props)))))
                        (dom/div #js {:id "answer_area_wrap"}
                          (dom/div #js {:id "answer_area"}
                            (dom/form #js {:id "answerform" :name "answerform" :onSubmit #(do

  static IExercise
  (new-round [_ props]
    (let [{::keys [read-note-order read-note]} props
          pos (rand-int-new (count read-note-order) read-note)
          note (get read-note-order pos)
          octave (if (> pos 4) 4 3)
          notes [(str note octave)]]
      (assoc props
        ::read-note pos
        ::notes notes
