transport

Metronome using General MIDI sounds

When you’re trying to synchronize musical events to a timeline, it’s sometimes useful to have a metronome that tells you where the computer thinks the beat is. The metronome makes a percussive sound on each beat, and ideally makes a unique sound on the first beat of each measure. Most DAW and MIDI sequencing programs have such a feature.

Multiple simultaneous tempi using named transports

One of the most intriguing features of the transport object is that there can be multiple independent transports in action at the same time. If a transport object has not had its name attribute set, it refers to the one global transport. However, you can create an independent transport by giving the transport object a name (i.e., by setting its name attribute to some name of your choice).

Using timepoints for interactive sequencing

The timepoint object sends out a bang when the transport reaches a specified time position. This can be useful for causing something to happen—or for starting an entire process—at a particular instant during the transport's progress. A timepoint might, for example, even trigger a new time position value to be sent to the transport object itself, thus causing the transport to leap to a different time.

Tempo-relative timing for MSP LFO control

The MSP phasor~ object is frequently used as a low-frequency control signal for audio. Because it is often used to control other signals over a specific period of time, phasor~ can use tempo-relative timing, too. The frequency (rate) of a phasor~ is normally specified in Hertz, but you can alternatively give phasor~ a time interval, using tempo-relative time units, and it will use the inverse of that to determine its frequency.

The translate object updates its output when the tempo changes

The translate object converts a message from one type of time unit to another. It uses the tempo and the time signature of the transport to do that calculation. If the tempo or the time signature changes, the result of the calculation would be different, so translate always resends its output whenever the transport receives a change to one of those values.

Other basic functionality of the transport object

This patch does some of the same things as the "GlobalTransport" patch in the Extras menu, and shows what is likely going on behind the scenes in that patch. The toggle labeled "Start/Stop" starts the transport and immediately turns on the metro to begin triggering time reports. The button labeled "Rewind" sends a time position of bar 1, beat 1, 0 ticks to the transport to reset its time.