loop_ge — Looping constructions.
indx -- i-rate variable to count loop.
idecr -- value to decrement the loop.
imin -- minimum value of loop index.
kndx -- k-rate variable to count loop.
kdecr -- value to decrement the loop.
kmin -- minimum value of loop index.
The actions of loop_ge are equivalent to the code
indx = indx - idecr if (indx >= imin) igoto label
or
kndx = kndx - kdecr if (kndx >= kmin) kgoto label
Note | |
---|---|
Adviced is to use the 'modern' while or until opcodes for looping constructions. |
Here is a group example for all loop_xx opcodes, comparing the different loop_ opcodes. It uses the file loop_-group.csd.
Example 531. Group example of the loop_xx opcodes.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> -n </CsOptions> <CsInstruments> ;example by joachim heintz sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ;loop_lt: counts from 1 upwards and checks if < 10 icount = 1 loop: print icount loop_lt icount, 1, 10, loop prints "Instr 1 terminated!%n" endin instr 2 ;loop_le: counts from 1 upwards and checks if <= 10 icount = 1 loop: print icount loop_le icount, 1, 10, loop prints "Instr 2 terminated!%n" endin instr 3 ;loop_gt: counts from 10 downwards and checks if > 0 icount = 10 loop: print icount loop_gt icount, 1, 0, loop prints "Instr 3 terminated!%n" endin instr 4 ;loop_ge: counts from 10 downwards and checks if >= 0 icount = 10 loop: print icount loop_ge icount, 1, 0, loop prints "Instr 4 terminated!%n" endin </CsInstruments> <CsScore> i 1 0 0 i 2 0 0 i 3 0 0 i 4 0 0 </CsScore> </CsoundSynthesizer>
Program Flow Control: Looping Constructions
More information on this opcode: http://www.csoundjournal.com/2006summer/controlFlow_part2.html written by Steven Yi, and in the Floss Manuals: https://flossmanual.csound.com/csound-language/control-structures