init — Puts the value of the i-time expression into a k-, a-rate or t- variable.
ares init iarg
ires init iarg
kres init iarg
ares, ... init iarg, ...
ires, ... init iarg, ...
kres, ... init iarg, ...
tab init isize[, ival]
Puts the value of the i-time expression iarg into a k-, a-rate or t- variable, i.e., initialize the result. Note that init provides the only case of an init-time statement being permitted to write into a perf-time (k- or a-rate) result cell; the statement has no effect at perf-time.
Since version 5.13 it is possible to initialise upto 24 variables of the same class in one statement. If there are more output variables than input expressions then the last one is repeated. It is an error to have more inputs than outputs.
The t-variable form was introduced in 5.14 and allocated space for a vector or the given size, initialised to the given value (default value is zero).
Here is an example of the init opcode. Play init.csd
Example 468. Example of the init opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -n ;no sound output </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ;shows what init does kinit init 0 kinit = kinit + 1 printk .1, kinit endin instr 2 ;shows what an assignment does knoinit = 0 knoinit = knoinit + 1 printk .1, knoinit endin </CsInstruments> <CsScore> ;play one second each i1 0 1 i2 2 1 e </CsScore> </CsoundSynthesizer>
Its output should include lines like these:
i 1 time 0.00073: 1.00000 i 1 time 0.10014: 138.00000 i 1 time 0.20027: 276.00000 i 1 time 0.30041: 414.00000 i 1 time 0.40054: 552.00000 i 1 time 0.50068: 690.00000 i 1 time 0.60009: 827.00000 i 1 time 0.70023: 965.00000 i 1 time 0.80036: 1103.00000 i 1 time 0.90050: 1241.00000 i 2 time 2.00054: 1.00000 i 2 time 2.09995: 1.00000 i 2 time 2.20009: 1.00000 i 2 time 2.30023: 1.00000 i 2 time 2.40036: 1.00000 i 2 time 2.50050: 1.00000 i 2 time 2.59991: 1.00000 i 2 time 2.70005: 1.00000 i 2 time 2.80018: 1.00000 i 2 time 2.90032: 1.00000
Other information on this opcode can be found in the Floss Manuals: https://flossmanual.csound.com/csound-language/initialization-and-performance-pass