               {:name "loop", :default 1.0}
               {:name "trigger", :default 1.0}
               {:name "action", :default 0 :map DONE-ACTIONS}]
-       :doc "record a stream of values into a buffer"}
+       :doc "record a stream of values into a buffer. If recLevel is 1.0 and preLevel is 0.0 then the new input overwrites the old data. If they are both 1.0 then the new data is added to the existing data. (Any other settings are also valid.) Note that the number of channels must be fixed for the SynthDef, it cannot vary depending on which buffer you use."}
 
       {:name "ScopeOut",
        :args [{:name "inputArray", :mode :append-sequence}
               {:name "bufnum", :default 0.0}],
+       :rates #{:ar}
        :num-outs 0}
 
       ;; TODO investigate local bufs system, flesh out LocalBuf

      ;; }

      {:name "TGrains",
       :args [{:name "numChannels" :mode :num-outs :default 2}
              {:name "trigger", :default 0}
              {:name "bufnum", :default 0}
              {:name "rate", :default 1}
              {:name "centerPos", :default 0}
              {:name "dur", :default 0.1}
              {:name "pan", :default 0.0}
              {:name "amp", :default 0.1}
              {:name "interp", :default 4}],
       :rates #{:ar}
       :check (num-outs-greater-than 1)
       :doc "sample playback from a buffer with fine control for doing granular synthesis"}

      {:name "BufRd",
       :args [{:name "numChannels"    :default 1, :mode :num-outs,

       :doc "reads the contents of a buffer at a given index."}

      {:name "BufWr",
       :args [{:name "inputArray", :mode :append-sequence :doc "input ugens (channelArray)"}
              {:name "bufnum", :default 0 :doc "the index of the buffer to use"}
              {:name "phase", :default 0.0 :doc "modulatable index into the buffer (has to be audio rate)."}
              {:name "loop", :default 1.0 :doc "1 means true, 0 means false.  This is modulatable"}]
       :check (when-ar (nth-input-ar 1))
       :doc "writes to a buffer at a given index. Note, buf-wr (in difference to buf-rd) does not do multichannel expansion, because input is an array."}

      {:name "RecordBuf",
       :args [{:name "inputArray", :mode :append-sequence}
