     (let [maximum 5]
       (doto (.createDelay context maximum)
         (-> .-delayTime (plug time context at duration))))))
-

  "Plug an input into an audio parameter,
  accepting both numbers and ugens."
  (if (fn? input)
    (.connect (input context at duration) param)
    (.setValueAtTime param input at)))

(defn gain [level]


(defn add [& ugens]
  (fn [context at duration]
    (let [sink (-> (gain 1.0) (run context at duration))]
      (doseq [ugen ugens]
        (-> ugen (run context at duration) (.connect sink)))
      sink)))


