 
                update-status
                (fn [status]
-                 (prn "status changed:")
+                 (prn "audio player: status changed")
                  (prn "   - source: " @source)
                  (prn "   - status: " status)
                  (swap! state assoc-in [:status] status))]

                                         (.load audio))
                                       (.play audio) (recur))
                    [:pause]       (do (.pause audio) (recur))
                    [[:seek time]] (do (set! (.-currentTime audio) time) (recur))
                    :else nil))))

       :component-will-unmount
       (fn [this]

                                       (/ (.-offsetWidth (.-target %)))
                                       (* (:duration @state))))

               enable-preload
               #(go (>! command-ch :preload))

               seek-time
               #(go (>! command-ch [:seek @mouse-time])
                    (>! command-ch :play))]

    [:div.audio-player {:class (str "state-" (clj->js (:status @state))
                                    (when (is-playing) " is-playing")
