while — A syntactic looping construction.
The statements between the do and od form the body of a loop which is obeyed while the conditional remains true.
Here is an example of the while construction. Play while.csd
Example 1223. Example of the while 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 ; Audio out Audio in -odac -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o ifthen.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 instr 1 lab99: if p4<0 goto lab100 p4 = p4-1 print p4 goto lab99 lab100: endin instr 2 while p4>=0 do p4 = p4-1 print p4 od endin </CsInstruments> <CsScore> i 1 1 1 4 i 2 2 1 4 e </CsScore> </CsoundSynthesizer>
Its output should include lines like this:
B 0.000 .. 1.000 T 1.000 TT 1.000 M: 0.0 new alloc for instr 1: instr 1: p4 = 3.000 instr 1: p4 = 2.000 instr 1: p4 = 1.000 instr 1: p4 = 0.000 instr 1: p4 = -1.000 B 1.000 .. 2.000 T 2.000 TT 2.000 M: 0.0 new alloc for instr 2: instr 2: p4 = 3.000 instr 2: p4 = 2.000 instr 2: p4 = 1.000 instr 2: p4 = 0.000 instr 2: p4 = -1.000 B 2.000 .. 3.000 T 3.000 TT 3.000 M: 0.0