loop_le
Prev | Orchestra Opcodes and Operators | Next

## 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

| Note
Adviced is to use the 'modern' while or until opcodes for looping constructions.

## Examples

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

Example 533. 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

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

## Credits

Istvan Varga.

New in Csound version 5.01

Prev | Up | Next
loop_gt | Home | loop_lt