vdelay — Un délai variable avec interpolation.
C'est un délai variable avec interpolation qui n'est pas très différent de l'implémentation existante (deltapi), il est simplement plus facile à utiliser.
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 -- 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 vdelay. Il utilise le fichier vdelay.csd.
Exemple 1166. Exemple de l'opcode vdelay.
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 vdelay.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 poscil3 ims/2, 1/p3, 1 ;make an LFO a2 = a2 + ims/2 ;offset the LFO so that it is positive asig vdelay aout, a2, ims ;use the LFO to control delay time outs asig, asig endin </CsInstruments> <CsScore> f1 0 8192 10 1 ;sine wave 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.