 
           int   - trigger ID
 
-          float - trigger value"
-
-    :args [{:name "in"
-            :doc "input trigger signal"
-            :default 0.0 }
-
-           {:name "id"
-            :doc "an integer that will be passed with the trigger
-                  message. This is useful if you have more than one
-                  SendTrig in a SynthDef"
-            :default 0 }
-
-           {:name "value"
-            :doc "A UGen or float that will be polled at the time of
-                  trigger, and its value passed with the trigger
-                  message"
-            :default 0.0 }]
-    :default-rate :kr
-    :num-outs 0
-    :check [(same-rate-as-first-input)]}
+          float - trigger value"}
 
 
    {:name "SendReply"
-    :description "Send information via OSC to Overtone"
+    :summary "Send information via OSC to Overtone"
+    :args [{:name "trig"
+            :default 0.0
+            :doc "Input trigger signal"}
+
+           {:name "cmd-name"
+            :default "/reply"
+            :doc "A string or symbol, as a message name."
+            :mode :append-string }
+
+           {:name "values"
+            :default 0.0
+            :doc "Array of ugens, or valid ugen inputs"
+            :mode :append-sequence }
+
+           {:name "reply-id"
+            :default -1
+            :doc "Integer id (similar to that used by send-trig)"}]
+    :default-rate :kr
     :doc "Send an array of values from the server via an
           message. The OSC message is formed with cmd-name as the path,
           followed by two compulsary args: node-id (the id of the node

    :default-rate :kr}

   {:name "Fold", :extends "InRange"
    :description "Fold a signal outside given thresholds."
    :doc "Folds input wave to within the lo and hi thresholds. This
         differs from the ugen fold2 in that it allows one to
         set both low and high thresholds."}

   {:name "Clip"
    :description "Clip a signal outside given thresholds."
    :doc "Clip a signal outside given thresholds. This differs from the
          ugen clip2 in that it allows one to set both low and high
          thresholds."

  [

   {:name "TWindex"
    :summary "Triggered window"
    :args [{:name "trig"
            :doc "Trigger - can be any signal. A trigger happens when
                  the signal changes from non-positive to positive." }

           {:name "array",
            :doc  "list of probabilities"
            :array true }

           {:name "normalize",
            :default 0
            :doc "normalise flag - 0 off, 1 on"}]
    :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)."


    :default-rate :kr}


   {:name "Trig1"
    :summary "Timed trigger"
    :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 in seconds."}]
    :signal-range :unipolar
    :default-rate :kr
    :doc "Outputs one for dur seconds whenever the input goes from
          negative to positive, otherwise outputs 0."}


   {:name "Trig" :extends "Trig1"
    :summary "Timed trigger"
    :doc "When a nonpositive to positive transition occurs at the input,
          Trig outputs the level of the triggering input for the
          specified duration, otherwise it outputs zero."}


   {:name "TDelay"
    :summary "Trigger delay"
    :args [{:name "trig",
            :default 0.0
            :doc "input trigger signal."}

           {:name "dur"
            :default 0.1
            :doc "delay time in seconds."}]
    :signal-range :unipolar
    :default-rate :kr
    :check [(same-rate-as-first-input)]
    :doc "Delays an input trigger by dur, ignoring other triggers in the
          meantime"}


   {:name "SendTrig"
    :summary "Send a /tr OSC message to Overtone"
    :args [{:name "in"
            :default 0.0
            :doc "input trigger signal"}

           {:name "id"
            :default 0
            :doc "an integer that will be passed with the trigger
                  message. This is useful if you have more than one
                  SendTrig in a SynthDef"}

           {:name "value"
            :default 0.0
            :doc "A UGen or float that will be polled at the time of
                  trigger, and its value passed with the trigger
                  message"}]

    :default-rate :kr
    :num-outs 0
    :check [(same-rate-as-first-input)]
    :doc "On receiving a trigger sends a :trigger event with id and
          value. This command is the mechanism that synths can use to
          trigger events in clients.
