v — Provides for locally variable time warping of score events.
The v statement takes effect with the following i statement, and remains in effect until the next v statement, s statement, or e statement.
The value of p1 is used as a multiplier for the start times (p2) of subsequent i statements.
i1 0 1 ; note1 v2 i1 1 1 ; note2
In this example, the second note occurs two beats after the first note, and is twice as long.
Although the v statement is similar to the t statement, the v statement is local in operation. That is, v affects only the following notes, and its effect may be cancelled or changed by another v statement.
Carried values are unaffected by the v statement (see Carry).
i1 0 1 v2 i. + . i. . .
In this example, the v statement has no effect.
Here is an example of the v statement. It uses the file v.csd.
Example 1089. Example of the v 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 v.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 .4*aenv, p4, 1 outs asig, asig endin </CsInstruments> <CsScore> f 1 0 16384 10 1 ;sine wave ;because note 3 and 5 are played simultaneously and are nearly of the same frequency, ;played together they will create a "beating" sound. i 1 0 2 110 ; note1 v2 i 1 3 . 220 ; note2 i 1 6 . 110 ; note3 v1 i 1 9 . 880 ; note4 i 1 12 . 100 ; note5 e </CsScore> </CsoundSynthesizer>
In this example, note3 and note5 occur simultaneously, while note4 actually occurs before note3, that is, at its original place. Durations are unaffected.