       all)))
 
 (defn fuzz! [{:keys [duration pitch]}]
-  (>>> (oscillate "sawtooth" pitch 1.5)
+  (>>> (saw pitch 1.5)
        (percuss 0.1 0.5)
        (volume 0.3)
        destination))

(defn >>> [& nodes]
  (reduce wire nodes))

(defn oscillate [type freq duration]
  (fn [at context]
    (doto (.createOscillator context)
      (-> .-frequency .-value (set! freq))
      (-> .-type (set! type))
      (.start at)
      (.stop (+ at duration)))))

(defn destination [at context]
  (.-destination context))

  (let [freqs [pitch (* pitch 1.01) (* pitch 0.99)]
        envelopes [[0.3 0.2] [0.05 0.1] [0.1 0.1]]]
    (->> (map (fn [freq [attack decay]]
                (>>> (saw freq 1.5)
                     (percuss attack decay)
                     (volume 0.05)
                     destination))
