   (dosync (ref-set instruments* {})))
 
 (defmacro pre-inst
-  [inst-bus & args]
+  [& args]
   (let [[sname params param-proxies ugen-form] (normalize-synth-args args)]
     `(let [~@param-proxies]
        (binding [*ugens* []

         (with-overloaded-ugens
           (let [form# ~@ugen-form
                 n-chans# (count form#)
                 inst-bus# (audio-bus n-chans#)]
             (out inst-bus# form#)
             [~sname
              ~params


(defmacro inst
  [sname & args]
  `(let [[sname# params# ugens# constants# n-chans# inst-bus#] (pre-inst ~sname ~@args)
         new-inst# (get @instruments* sname#)
         container-group# (or (:group new-inst#)
                              (group :tail @inst-group*))
         instance-group#  (or (:instance-group new-inst#)
                              (group :head container-group#))
         fx-group#        (or (:fx-group new-inst#)
                              (group :tail container-group#))
         imixer#    (or (:mixer new-inst#)
                        (inst-mixer :tgt container-group# :pos :tail :in-bus inst-bus#))
         sdef#      (synthdef sname# params# ugens# constants#)
         arg-names# (map :name params#)
