sndloop — Une boucle de son avec contrôle de la hauteur.
Cet opcode enregistre l'entrée audio et la restitue dans une boucle avec une durée définie par l'utilisateur et un fondu enchainé. On peut également contrôler la hauteur de la boucle et sa lecture à l'envers.
asig -- signal de sortie.
krec -- signal d'activation de l'enregistrement, 1 lors de l'enregistrement, 0 sinon.
kpitch -- contrôle de la hauteur (rapport de transposition) ; avec des valeurs négatives, la boucle est jouée à l'envers.
ktrig -- signal de déclenchement : lorsqu'il vaut 0, le traitement est suspendu. Lorsqu'il change (ktrig >= 1), l'opcode commence à enregistrer jusqu'à ce que la mémoire de la boucle soit pleine. Puis il restitue ensuite le son en boucle jusqu'au prochain changement (ktrig = 0). Un autre enregistrement peut recommencer lorsque ktrig >= 1.
Voici un exemple de l'opcode sndloop. Il utilise le fichier sndloop.csd.
Exemple 982. Exemple de l'opcode sndloop.
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 realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o sndloop.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 0dbfs = 1 nchnls = 2 instr 1 itrig = p4 asig diskin2 "beats.wav", 1, 0, 1 ;get the signal in, loop it ktrig line 0, itrig, 1 ;when to trigger signal = p4 kpitch line 1.2, p3, .5 ;vary pitch of recorded signal aout,krec sndloop asig, kpitch, ktrig, .4, 0.05 ;rec starts at p4 sec, for .4 secs and 0.05 crossfade printk2 krec ; prints the recording signal outs aout, aout endin </CsInstruments> <CsScore> i1 0 5 .5 ;trigger in seconds (=p4) i1 + 5 .8 i1 + 10 1.2 e </CsScore> </CsoundSynthesizer>
L'exemple ci-dessus montre l'opération de base de sndloop. La hauteur peut-être contrôlée au taux-k, l'enregistrement commence dès que le signal de déclenchement est >= 1. L'enregistrement peut recommencer en fixant la valeur du signal de déclenchement à 0 puis de nouveau à 1.