               {:name "a", :default 0.2}
               {:name "b", :default 0.4}
               {:name "c", :default 0.6}
-              {:name "d", :default 0.8}]}
+              {:name "d", :default 0.8}]
+       :default-rate :kr}
 
       {:name "MostChange"
        :args [{:name "a", :default 0.0 :doc "first input"}
               {:name "b", :default 0.0 :doc "second input"}]
+       :default-rate :kr
        :doc "output whichever signal changed the most"}
 
       {:name "LeastChange", :extends "MostChange"

      {:name "LastValue"
       :args [{:name "in", :default 0.0 :doc "input signal"}
              {:name "diff", :default 0.01 :doc "difference threshold"}]
       :doc "output the last value before the input changed by a threshold of diff"}])

       :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"
