   [scale]
   {:piano-keys (into (sorted-map) (map (fn [freq] [freq {}])
                                        scale))
-   :notes [] :w 0 :h 0})
+   :notes [] :w 0 :h 0 :sound-ready false})
 
 (defn add-synths-to-instrument
   [instrument]
-  (reduce (fn [a x] (assoc-in a [:piano-keys x :synth] (create-note-synth x)))
-          instrument
-          (-> instrument :piano-keys keys)))
+  (assoc (reduce (fn [a x] (assoc-in a [:piano-keys x :synth] (create-note-synth x)))
+                 instrument
+                 (-> instrument :piano-keys keys))
+    :sound-ready true))
 
 (defn audio-time []
   (.-currentTime js/audioCtx))

    (or (and f-instrument (f-instrument instrument event))
        instrument)))

(defn update-size [instrument canvas-id]
  (let [{w :w h :h :as window-size} (util/get-window-size)]
    (do (util/set-canvas-size! canvas-id window-size)

               (recur instrument)))))))

  (go
   (loop [instrument (update-size (create-instrument (scales/c-minor)) canvas-id)]
     (>! c-instrument instrument)
     (let [[data c] (alts! [c-touch c-orientation-change])]
       (condp = c
         c-orientation-change (recur (update-size instrument canvas-id))
         c-touch (recur (fire-touch-data-on-instrument instrument data))))))
  )
