          (-> .-Q (plug q context at duration))
          (-> .-type (set! type)))))))
 
-(def low-pass (partial biquad-filter "lowpass"))
-(def high-pass (partial biquad-filter "highpass"))
+(def ^:export low-pass (partial biquad-filter "lowpass"))
+(def ^:export high-pass (partial biquad-filter "highpass"))
 
 
 ; Effects
 
-(defn stereo-panner
+(defn ^:export stereo-panner
   "Pan the signal left (-1) or right (1)."
   [pan]
   (fn [context at duration]

    (js/window.AudioContext.)
    (js/window.webkitAudioContext.)))

(defn current-time
  "Return the current time as recorded by the audio context."
  [context]
  (.-currentTime context))

          node (adshr attack decay sustain hold release)]
      (-> node (run-with context at duration)))))

(defn ^:export percussive
  "A simple envelope."
  [attack decay]
  (envelope [attack 1.0] [decay 0.0]))
