metro
Max Reference
Open Help

metro

Output a bang message at regular intervals

Description

Acts as a metronome which outputs bang s at a regular, specified interval. This object uses the Max time format syntax, so the interval that the metro object uses can be either fixed or tempo-relative.

Examples

Repeatedly send a message or trigger a process

Discussion

The object's output can be quantized using tempo-relative syntax, and if the autostarttime attribute is set, the object can also start at a tempo-relative point.

Arguments

interval [number]

Optional
Unitsms

The optional first argument sets an initial value for the time interval at which metro sends its output. This time interval can be either a number which specifies time in milliseconds (e.g. metro 100) or notevalue (e.g. metro 4n).

Note: While the metro 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. metro @interval 11025 samples ).

If there is no argument, the initial time interval is 5 milliseconds.

Attributes

active [int]

Turns the metro on and off.

autostart [int]

If turned on (non-zero) the metro will begin running automatically at the time specified with the autostarttime attribute.

autostarttime [10 atoms]

If the autostart attribute is enabled (non-zero) the metro will begin running automatically at the time specified with the this attribute. The autostart operates as a timepoint object that is internal to metro.

defer [float]

Turn this on to send output in the low-priority queue.

interval [10 atoms]

Sets the The time interval at which metro sends out a bang . Time can be specified in any of the time formats used in Max.

quantize [10 atoms]

Send output only on the specified time-boundary if appropriate. 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.

If the applicable time is a 'fixed' unit (for example: ms, seconds, hz, samples, etc.) then this attribute will have no effect.

transport [symbol]

This attribute names a master time transport. If the time is specified using a 'relative' unit (for example: ticks, bars.beats.units, or notevalues), then the named transport is used to determine delay times based on tempo, time-signature, and other related information.

Common Box Attributes

annotation [symbol]

Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.

background [int] (default: 0)

Adds or removes the object from the patcher's background layer. background 1 adds the object to the background layer, background 0 removes it. Objects in the background layer are shown behind all objects in the default foreground layer.

color [4 floats]

Sets the color for the object box outline.

fontface [int]

Sets the type style used by the object. The options are:

plain
bold
italic
bold italic

Possible values:

0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'

fontname [symbol]

Sets the object's font.

fontsize [float]

Sets the object's font size (in points).

Possible values:

'8'
'9'
'10'
'11'
'12'
'13'
'14'
'16'
'18'
'20'
'24'
'30'
'36'
'48'
'64'
'72'

hidden [int] (default: 0)

Toggles whether an object is hidden when the patcher is locked.

hint [symbol]

Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.

ignoreclick [int] (default: 0)

Toggles whether an object ignores mouse clicks in a locked patcher.

patching_rect [4 floats] (default: 0. 0. 100. 0.)

Sets the position and size of the object in the patcher window.

position [2 floats]

g/s(set)

Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.

presentation [int] (default: 0)

Sets whether an object belongs to the patcher's presentation.

presentation_rect [4 floats] (default: 0. 0. 0. 0.)

Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.

rect [4 floats]

g/s(set)

Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).

size [2 floats]

g/s(set)

Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.

textcolor [float]

Sets the color for the object's text in RGBA format.

textjustification [int]

Text Justification

Possible values:

0 = 'left'
1 = 'center'
2 = 'right'

varname [symbol]

Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.

Messages

bang

In left inlet: starts the metro object.

int

Arguments

input [int]
In left inlet: Any number other than 0 starts the metro object. At regular intervals, metro sends a bang out the outlet. 0 stops metro.

In right inlet: The number is the time interval, in milliseconds, at which metro sends out a bang . A new number in the right inlet does not take effect until the next output is sent.

float

Arguments

input [float]
Performs the same function as int .

list

Arguments

input [list]
In right inlet: A list may be used to specify time in one of the Max time formats.

anything

Arguments

interval [list]
Same as list .

clock

Arguments

name [symbol]
The word clock , followed by the name of an existing setclock object, sets the metro object to be controlled by that setclock object rather than by Max’s internal millisecond clock. The word clock by itself sets the metro object back to using Max’s regular millisecond clock.

stop

In left inlet: Stops metro.

Output

bang

bang is sent immediately when metro is started, and at regular intervals thereafter.

See Also

Name Description
clocker Report elapsed time, at regular intervals
counter Keep count based on bang messages
cpuclock Retrieve the CPU time
delay Delay a bang
setclock Create and control an alternative clock
tempo Output numbers at a metronomic tempo
transport Control a master clock
uzi Send many bang messages
Max Basic Tutorial 4: Metro and Toggle Max Basic Tutorial 4: Metro and Toggle