       (ugen context at duration))))
 
 (defn percussive [attack decay]
-  (line [attack 1.0] [decay 0.0]))
+  (envelope [attack 1.0] [decay 0.0]))
 
 
 ; Combinators

      node)))

(defn adshr [attack decay sustain hold release]
  (line [attack 1.0] [decay sustain] [hold sustain] [release 0]))

(defn adsr [attack decay sustain release]
  (fn [context at duration]


; Envelopes

(defn envelope
  "Build an envelope out of [dx y] coordinates, starting at [0 0]."
  [& corners]
  (fn [context at duration]
    (let [node (.createGain context)
