# metro

## List audio cue points

To set a list of cue points in an audio file and have them played in order, use either sfplay~ (with a set of cues established by preload messages to sfplay~ or to sflist~) or buffer~ (with start messages to play~, the parameters of which are stored in a coll).

## Algorithmic counting

This patch demonstrates an application of modular arithmetic to wrap a series of numbers around within a defined range. The algorithm produces a series of expanding steps: 0, 1, 3, 6, 10, 15, 21, etc. The difference between each number and its predecessor in the series increases with each step—1-0=1, then 3-1=2, 6-3=3, 10-6=4, and so on. We do this by incrementing a counter and adding its output to the previous output of the + object.

## Flashing LED with metro

If you have a patch in which you are flashing a button object using metro, the flashing may be delayed due to different degrees of operation priorities when used in a more complicated patch. Here are few things to consider if you’d like to prioritize or have more control over the flashing.

## Poly-rhythm generator

To create a poly-rhythm generator, this example chooses a division and articulates every attack point of that division. Use a metro synched to the transport to specify the divisions (or the tempo object, if preferred), and then use a counter (or a % object with the output of tempo) to specify the articulation points.

## Syncing Visuals To Transport

This example shows how can you create a visual metronome, synced to the transport, that flashes white at the beginning of each bar.

## Using Metro with Transport

When using a tempo-relative timing unit (such as ticks) for metro, rather than the tempo-independent ms, the metro becomes linked to the transport. In such cases, the transport has to be running for the metro to work. This example shows 2 tempo-relative metro objects.

## Convert between musical time and clock time

The translate object performs conversions from one kind of time unit to any other, and is particularly useful when you need to convert from a tempo-relative time unit to a clock time unit (e.g., convert note values to milliseconds) or vice versa. In this example, try changing the bpm tempo of the transport, and you'll see that the translate object sends out updated information whenever the tempo changes.

## Store numbers on keypress with coll

This example demonstrates how to assign an index number to an incoming number. Storage to the coll object is triggered with the keypress object.