Skip to content

while

A syntactic looping construction.

Syntax

while condition do
... od

Performance

The statements between the do and od form the body of a loop which is obeyed while the conditional remains true.

Examples

Here is an example of the while construction. It uses the file while.csd.

Example of the while opcode.
<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

See also

Program Flow Control: Looping Constructions

Credits

John ffitch.

New in Csound version 6.04