 
 (defn control? [obj]
   (isa? (type obj) ::control))
-
-;; TODO:
-;; * Need to write a function that takes a ugen-spec, and generates a set
-;; of ugen functions for that spec.  Each of these functions will automatically
-;; set the rate for the ugen.
 
 (defn- ugen-docs
   "Create a string representing the documentation for the given ugen-spec."

(defn- with-floated-args [spec ugen]
  (assoc ugen :args (floatify (:args ugen))))

; TODO: Refactor these init functions so everything just takes a ugen and a spec
   ; and outputs an updated ugen...  Should have done it like this initially...
(defn- with-init-fn
  "Creates the final argument initialization function which is applied to arguments
  at runtime to do things like re-ordering and automatic filling in of arguments.

    (println (apply str (interpose " -> " cat)))))

(def UGEN-RATE-SORT-FN
  (zipmap UGEN-RATE-PRECEDENCE (range (count UGEN-RATE-PRECEDENCE)))

(defn- print-ugen-rates [rates]
  (let [rates (sort-by UGEN-RATE-SORT-FN rates)]
