pipe Reference

Delay numbers, lists or symbols



Delays numbers, lists of numbers or symbols. pipe uses the Max time format syntax, so the delay interval can be either fixed or tempo-relative.


One or more numbers can be delayed with pipe


initialization [list]


The number of arguments to the pipe object depends on the number of items in a list you wish to delay, but the final argument is always used to set the initial value for the delay time.

If no argument is specified, the initial value is 0 and the delay time is 0 ms.

If there is one argument, this sets the delay time.

If there are two arguments, the first argument sets an initial value to be stored in pipe, and the second argument sets the delay time.

If more than two arguments are present, pipe creates additional inlets and outlets for delaying additional numbers.

The pipe object allows you to specify time intervals using either a number which specifies time in milliseconds (e.g. pipe 200) or a notevalue (e.g. pipe 2n).

Note: While the pipe object lets you specify time in any of Max's standard time formats, the interval attribute argument should be used when specifying time in any other time unit besides milliseconds or notevalues (e.g. pipe @ interval 11025 samples ).

If notevalue, ticks, or bars.beats.units are specified for the delay interval, the object will not operate unless the transport is running.


clock [symbol]

Use the clock attribute to specify a named setclock object for timing rather than by Max’s internal millisecond clock. The word clock by itself sets the pipe object back to using Max’s regular millisecond clock.

delaytime [10 atoms]

Sets the delay time for this object using any of Max's time formats

quantize [10 atoms]

Quantizes the output of pipe to a specified time-boundary. This is achieved by making internal adjustments to the times used for sending output. The quantization can be specified in the following time formats: bars.beats.units, ticks or note values.

Fixed time units (for example: ms, seconds, hz, samples, etc.) will have no effect.

Common Box Attributes



Re-triggers the numbers currently stored in the pipe to be output again after the specified time (in addition to any numbers already being delayed).



delay [int]
In left inlet: Sets value and triggers delay

In middle inlets: Sets value without triggering delay

In right inlet: Sets the delay time



delay [float]
Float is converted to int unless the inlet was initialized with a float argument.

In left inlet: Sets value and triggers delay

In middle inlets: Sets value without triggering delay

In right inlet: Sets the delay time


In left inlet: For each character provided, a value will be set for each corresponding input and triggers a delay.

In middle inlets: The middle inlets of pipe use the first character and set the stored value for the input inlet.

In right inlet: Specify time in one of the Max time formats.


See the list listing


Halts all output


Immediately sends out all values currently being delayed by pipe, and clears the pipe object's memory. Values are sent out each outlet in reverse order from that in which they were received in the corresponding inlet.


Halts all output



When a value is received in the pipe object's left inlet, it is delayed by the time specified, then sent out the left outlet. If there are middle inlets, the values in those inlets are also delayed and sent out their corresponding outlet, in response to a value is received in the left inlet. Unlike delay, more than one value at a time can be delayed in a pipe. When a new delay time is received in the right inlet, it does not affect when the values already being delayed by pipe will come out.

See Also

Name Description
Max Basic Tutorial 19: Timing Max Basic Tutorial 19: Timing