        :args [{:name "in", :default 0.0 :doc "The signal to be clipped"}
               {:name "lo", :default 0.0, :doc "Low threshold of clipping. Must be less then hi"}
               {:name "hi", :default 1.0, :doc "High threshold of clipping. Must be greater then lo"}]
+       :default-rate :kr
        :doc "Clip a signal outside given thresholds. This differs from the BinaryOpUGen clip2 in that it allows one to set both low and high thresholds."}
 
       {:name "Wrap", :extends "InRange"

       :args [{:name "trig", :default 0.0 :doc "trigger. Trigger can be any signal. A trigger happens when the signal changes from non-positive to positive."}
              {:name "reset", :default 0.0 :doc "resets the counter to zero when triggered."}]
       :check [same-rate-as-first-input]
       :doc "each input trigger increments a counter value that is output."}

      {:name "SetResetFF", :extends "PulseCount"

       :args [{:name "trig" :doc "trigger. Trigger can be any signal. A trigger happens when the signal changes from non-positive to positive."}
              {:name "array", :array true :doc "list of probabilities"}
              {:name "normalize", :default 0 :doc "normalise flag - 0 off, 1 on"}]
       :default-rate :kr
       :doc "When triggered, returns a random index value based on array as a list of probabilities. By default the list of probabilities should sum to 1.0, when the normalize flag is set to 1, the values get normalized by the ugen (less efficient)"}

      {:name "Trig1"
       :args [{:name "trig", :default 0.0 :doc "trigger. Trigger can be any signal. A trigger happens when the signal changes from non-positive to positive."}
              {:name "dur", :default 0.1 :doc "duration of the trigger output."}]
       :signal-range :unipolar
       :default-rate :kr
       :doc "outputs one for dur seconds whenever the input goes from negative to positive"}

      {:name "Trig", :extends "Trig1"
