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. It uses the file 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