           data (.getChannelData buffer 0)]
       (doseq [i (range sample-rate)]
         (aset data i (generate-bit! i)))
-      (doto (.createConvolver context)
-        (-> .-buffer (set! buffer))))))
+      (section
+        (doto (.createConvolver context)
+          (-> .-buffer (set! buffer)))))))
 
 (def reverb
   (let [duration 5

(defn oscillator
  [type freq]
  (fn [context at duration]
    (doto (.createOscillator context)
      (-> .-frequency .-value (set! 0))
      (-> .-frequency (plug freq context at duration))
      (-> .-type (set! type))
      (.start at)
      (.stop (+ at duration 1.0))))) ; Give a bit extra for the release

(def sine (partial oscillator "sine"))
(def sawtooth (partial oscillator "sawtooth"))

          data (.getChannelData buffer 0)]
      (doseq [i (range sample-rate)]
        (aset data i (generate-bit!)))
      (section
        (doto (.createBufferSource context)
          (-> .-buffer (set! buffer))
          (.start at))))))

(def white-noise
  (let [white #(-> (js/Math.random) (* 2.0) (- 1.0))]
