 
 (defmacro synth
   "Define a SuperCollider synthesizer using the library of ugen
-  functions provided by overtone.sc.ugen.  This will return callable
+  functions provided by overtone.sc.ugen. This will return callable
   record which can be used to trigger the synthesizer.
   "
   [& args]

    [(with-meta s-name md) params ugen-form]))

(defmacro defsynth
  "Define a synthesizer and return a player function.  The synth
  definition will be loaded immediately, and a :new-synth event will
  be emitted.

  (defsynth foo [freq 440]
    (sin-osc freq))

  is equivalent to:

  (def foo
    (synth [freq 440] (sin-osc freq)))

  A doc string can also be included:
  (defsynth bar

    [] (...))
  "
  [s-name & s-form]
  {:arglists '([name doc-string? params ugen-form])}
  (let [[s-name params ugen-form] (synth-form s-name s-form)]
    `(def ~s-name (synth ~s-name ~params ~ugen-form))))

