t Statement (Tempo Statement)
Prev | Score Statements and GEN Routines | Next

## t Statement (Tempo Statement)

t — Sets the tempo.

## Description

This statement sets the tempo and specifies the accelerations and decelerations for the current section. This is done by converting beats into seconds.

## Syntax

    t  p1  p2  p3  p4 ... (unlimited)

## Initialization

p1 -- Must be zero.

p2 -- Initial tempo on beats per minute.

p3, p5, p7,... -- Times in beats (in non-decreasing order).

p4, p6, p8,... -- Tempi for the referenced beat times.

## Performance

Time and Tempo-for-that-time are given as ordered couples that define points on a "tempo vs. time" graph. (The time-axis here is in beats so is not necessarily linear.) The beat-rate of a Section can be thought of as a movement from point to point on that graph: motion between two points of equal height signifies constant tempo, while motion between two points of unequal height will cause an accelarando or ritardando accordingly. The graph can contain discontinuities: two points given equal times but different tempi will cause an immediate tempo change.

Motion between different tempos over non-zero time is inverse linear. That is, an accelerando between two tempos M1 and M2 proceeds by linear interpolation of the single-beat durations from 60/M1 to 60/M2.

The first tempo given must be for beat 0.

A tempo, once assigned, will remain in effect from that time-point unless influenced by a succeeding tempo, i.e. the last specified tempo will be held to the end of the section.

A t statement applies only to the score section in which it appears. Only one t statement is meaningful in a section; it can be placed anywhere within that section. If a score section contains no t statement, then beats are interpreted as seconds (i.e. with an implicit t 0 60 statement).

N.B. If the CSound command includes a -t flag, the interpreted tempo of all score t statements will be overridden by the command-line tempo.

## Examples

Here is an example of the t statement. It uses the file t.csd.

Example 1274. Example of the t statement.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac     ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if RT audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o t.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1

    aenv expseg .01, p3*0.25, 1, p3*0.75, 0.01
    asig poscil3 .8*aenv, p4, 1
         outs asig, asig

    endin
    </CsInstruments>
    <CsScore>
    f 1 0 16384 10 1	;sine wave

    t 0 240 12 30 15 240	;start tempo = 240

    i 1 0 2 110		;tempo = 240
    i 1 3 2 220		;slow down &
    i 1 6 2 440		;slow down &
    i 1 9 2 880		;slow down &
    i 1 12 2 110		;slow down to 30 at 12 seconds
    i 1 15 2 220		;speed up to 240 again
    i 1 18 2 440		;stay at tempo 240
    i 1 21 2 880
    e
    </CsScore>
    </CsoundSynthesizer>

## See Also

Score Statements

Prev | Up | Next
s Statement | Home | v Statement