vdelayxwq

vdelayxwq — Opcode de délai variable avec interpolation de grande qualité.

Description

Opcode de délai variable avec interpolation de grande qualité.

Syntaxe

aout1, aout2, aout3, aout4 vdelayxwq ain1, ain2, ain3, ain4, adl, \
      imd, iws [, ist]

Initialisation

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.

Exécution

ain1, ain2, ain3, ain4 -- signaux audio en entrée.

aout1, aout2, aout3, aout4 -- signaux audio en sortie.

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.

Les opcodes multicanaux (par exemple vdelayxq) permettent de retarder 2 ou 4 variables à la fois (signaux stéréo ou quadro) ; c'est bien plus efficace que d'utiliser un opcode séparé pour chaque canal.

[Note] Notes

  • La durée du délai est mesurée en secondes (à la différence de vdelay et de vdelay3), et doit être de taux-a.

  • Le délai minimum autorisé est de iws/2 échantillons.

  • Il est permis d'utiliser les mêmes variables en entrée et en sortie dans ces opcodes.

  • Dans vdelayxw*, le changement de la durée du délai à des effets sur le volume de sortie :

    a = 1 / (1 + dt)

    où a est le gain en sortie et dt est la valeur du changement du délai par seconde.

  • Ces opcodes sont plus adaptés à la version de Csound en double précision.

Exemples

Voici un exemple de l'opcode vdelayxwq. Il utilise le fichier vdelayxwq.csd.

Exemple 963. Exemple de l'opcode vdelayxwq.

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 vdelayxwq.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 4
0dbfs  = 1

instr 1 

ims  =	.5				;maximum delay time in seconds
iws  =	1024				;best quality
adl  =	.5				;delay time
aout1  diskin2 "beats.wav", 1, 0, 1	;loop beats.wav
aout2  diskin2 "fox.wav", 1, 0, 1	;loop fox.wav
aout3  diskin2 "Church.wav", 1, 0, 1	;loop Church.wav
aout4  diskin2 "flute.aiff", 1, 0, 1	;loop flute.aiff
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
aout1, aout2, aout3, aout4 vdelayxw aout1, aout2, aout3, aout4, adl, ims, iws	;use the LFO to control delay time
     outq aout1, aout2, aout3, aout4

endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1

i 1 0 10

e
</CsScore>
</CsoundSynthesizer>


Voir aussi

vdelayx, vdelayxq, vdelayxs, vdelayxw, vdelayxws