loop_le

loop_le — Looping constructions.

Description

Construction of looping operations.

Syntax

loop_le  indx, incr, imax, label
loop_le  kndx, kncr, kmax, label

Initialization

indx -- i-rate variable to count loop.

incr -- value to increment the loop.

imax -- maximum value of loop index.

Performance

kndx -- k-rate variable to count loop.

kncr -- value to increment the loop.

kmax -- maximum value of loop index.

The actions of loop_le are equivalent to the code

         indx  =  indx + incr
         if (indx <= imax) igoto label

or

         kndx  =  kndx + kncr
         if (kndx <= kmax) kgoto label

Examples

Here is an example of the loop_le opcode. It uses the file loop_le.csd.

Example 435. Example of the loop_le 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
-odac     ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o loop_le.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

seed 0
gisine ftgen 0, 0, 2^10, 10, 1

instr 1 ;master instrument

ininstr = 5 ;number of called instances
indx = 0
loop:
      prints "play instance %d\\n", indx
ipan  random 0, 1
ifreq random 100, 1000
iamp  = 1/ininstr
event_i "i", 10, 0, p3, iamp, ifreq, ipan
loop_le indx, 1, ininstr, loop

endin

instr 10

ipeak random 0, 1 ;where is the envelope peak
asig  poscil3 p4, p5, gisine
aenv  transeg 0, p3*ipeak, 6, 1, p3-p3*ipeak, -6, 0
aL,aR pan2 asig*aenv, p6
      outs aL, aR

endin

</CsInstruments>
<CsScore>
i1 0 10
e
</CsScore>
</CsoundSynthesizer>


Its output should include a line like this:

play instance 0
play instance 1
play instance 2
play instance 3
play instance 4
play instance 5
      

See Also

loop_ge, loop_gt and loop_lt.

More information on this opcode: http://www.csoundjournal.com/2006summer/controlFlow_part2.html , written by Steven Yi. And in the Floss Manuals: http://en.flossmanuals.net/csound/ch018_c-control-structures

Credits

Istvan Varga.

New in Csound version 5.01