vdelay3 — Un délai variable avec interpolation cubique.
vdelay3 est expérimental. Il est semblable à vdelay sauf qu'il utilise l'interpolation cubique. (Nouveau dans la version 3.50.)
imaxdel -- Valeur maximale du délai en millisecondes. Si adel reçoit une valeur supérieure à imaxdel celle-ci est repliée autour de imaxdel. Cela est à éviter.
iskip (facultatif) -- L'initialisation est ignorée s'il est présent et différent de zéro.
Avec ce générateur unitaire il est possible de faire des effets Doppler ou de chorus et de flanger.
asig -- Signal en entrée.
adel -- Valeur courante du délai en millisecondes. Noter que les fonctions linéaires n'ont pas d'effet de modification de la hauteur. Des valeurs de adel changeant rapidement provoqueront des discontinuités dans la forme d'onde ce qui donne du bruit.
Voici un exemple de l'opcode vdelay3. Il utilise le fichier vdelay3.csd.
Exemple 1167. Exemple de l'opcode vdelay3.
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 vdelay3.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ims = 100 ;maximum delay time in msec aout poscil .8, 220, 1 ;make a signal a2 poscil ims/2, 1/p3, 1 ;make an LFO a2 = a2 + ims/2 ;offset the LFO so that it is positive asig vdelay3 aout, a2, ims ;use the LFO to control delay time outs asig, asig endin </CsInstruments> <CsScore> f1 0 8192 10 1 i 1 0 5 e </CsScore> </CsoundSynthesizer>
Deux points importants ici. D'abord, la valeur du retard doit toujours être
positive. Ensuite, même si la valeur du retard peut être contrôlée au taux-k,
il n'est pas prudent d'agir ainsi, car des changements de durée soudains
provoqueront des clics.