vdelayxw — Opcode de délai variable avec interpolation de grande qualité.
imd -- durée maximale du délai (en secondes).
iws -- taille de la fenêtre d'interpolation (voir ci-dessous).
ist (facultatif) -- l'initialisation est ignorée s'il est différent de zéro.
aout -- signal audio en sortie.
ain -- signal audio en entrée.
adl -- durée du délai en secondes.
Cet opcode utilise une interpolation de grande qualité (et peu rapide), qui est bien plus précise que les interpolations linéaire et cubique couramment disponibles. Le paramètre iws fixe le nombre d'échantillons en entrée utilisés pour le calcul d'un échantillon en sortie (les valeurs permises sont des multiples entiers de 4 compris entre 4 et 1024) ; plus les valeurs sont élevées, meilleure est la qualité et plus lent le processus.
Les opcodes vdelayxw* changent la position d'écriture dans la ligne à retard (au contraire de tous les autres générateurs unitaires de délai qui déplacent la position de lecture), et sont particulièrement utiles pour implémenter l'effet Doppler dans lequel la position de l'auditeur est fixe alors que la source est en mouvement.
Notes | |
---|---|
|
Voici un exemple de l'opcode vdelayxw. Il utilise le fichier vdelayxw.csd.
Exemple 1171. Exemple de l'opcode vdelayxw.
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 vdelayxw.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ims = .5 ;maximum delay time in seconds iws = 1024 ;best quality adl = .5 ;delay time asig diskin2 "flute.aiff", .5, 0, 1 ;loop flute.aiff at half speed a2 poscil3 .2, .1, 1 ;make an LFO, 1 cycle per 2 seconds adl = a2 + ims/2 ;offset the LFO so that it is positive aout vdelayxw asig, adl, ims, iws ;use the LFO to control delay time outs aout, aout endin </CsInstruments> <CsScore> f1 0 8192 10 1 i 1 0 10 e </CsScore> </CsoundSynthesizer>