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

(let [canvas-id "canvas"
      c-instrument (chan)
      c-orientation-change (util/listen js/window :orientation-change)
      c-input (create-input-channel canvas-id)]

  (go
   (let [draw-ctx (util/get-ctx canvas-id)]

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