loop_le — Constructions de boucle.
indx -- variable de taux-i, compteur de la boucle.
incr -- valeur d'incrément de la boucle.
imax -- valeur maximale de l'index de la boucle.
kndx -- variable de taux-k, compteur de la boucle.
kncr -- valeur d'incrément de la boucle.
kmax -- valeur maximale de l'index de la boucle.
L'action de loop_le est équivalente à
indx = indx + incr if (indx <= imax) igoto label
ou à
kndx = kndx + kncr if (kndx <= kmax) kgoto label
Voici un exemple de l'opcode loop_le. Il utilise le fichier loop_le.csd.
Exemple 530. Exemple de l'opcode loop_le.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<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>
Sa sortie contiendra des lignes comme celles-ci :
play instance 0 play instance 1 play instance 2 play instance 3 play instance 4 play instance 5
Plus d'information sur cet opcode : http://www.csoundjournal.com/2006summer/controlFlow_part2.html, écrit par Steven Yi. Et dans les Floss Manuals : https://flossmanual.csound.com/csound-language/control-structures