hrtfreverb — Une réverbération binaurale à champ de diffusion basée sur un réseau de lignes à retard rétroactives (Feedback Delay Network) dynamique.
Cet opcode fonctionne de manière autonome comme une réverbération souple et efficace. Il est cependant conçu pour être utilisé avec hrtfearly pour obtenir une réverbération spatialement précise avec des trajectoires de la source définissables par l'utilisateur. Il fournit aussi une cohérence inter-oreilles précise.
Un champ réverbérant efficace, fonction de la fréquence, est créé en se basant sur les durées de réverbération souhaitées pour les basses et les hautes fréquences. L'opcode est conçu pour fonctionner avec hrtfearly, utilisant idéalement les sorties de ce dernier comme entrées. Cependant, on peut utiliser hrtfreverb de manière autonome. La stabilité est renforcée.
aleft, aright, idel hrtfreverb asrc, ilowrt60, ihighrt60, ifilel, ifiler [,isr, imfp, iorder]
ilowrt60 - durée de réverbération des basses fréquences.
ihighrt60 - durée de réverbération des hautes fréquences.
ifilel - fichier des données spectrales HRTF de gauche.
ifiler - fichier des données spectrales HRTF de droite.
Note | |
---|---|
Des fichiers de données spectrales (basés sur la base de données HRTF du MIT) sont disponibles sous trois différents taux d'échantillonnage : 44.1, 48 et 96 kHz et sont nommés en conséquence. Le sr d'entrée et de traitement doit correspondre au sr du fichier de données. Les fichiers doivent se trouver dans le répertoire courant ou dans SADIR (voir Variables d'environnement). |
Note | |
---|---|
Les fichiers de données HRTF à utiliser avec hrtfmove, hrtfmove2, hrtfstat, hrtfearly et hrtfreverb ont été mis à jour pour les versions 5.15 et ultérieures de Csound (le code a été mis à jour et il est plus efficace). Les anciens fichiers de données sont maintenant obsolètes. |
isr - facultatif, 44.1kHz par défaut. Valeurs acceptées : 44100, 48000 et 96000.
imfp - facultatif, chemin libre moyen, celui d'un pièce de taille moyenne par défaut. Si cet opcode est utilisé avec hrtfearly, le chemin libre moyen de la pièce peut être utilisé pour calculer le retard approprié pour la réverbération tardive. Intervalle accepté : le chemin libre moyen de la plus petite pièce autorisée par hrtfearly (0.003876) 1.
iorder - facultatif, ordre du traitement des premières réflexions. Si cet opcode est utilisé avec hrtfearly, l'ordre des premières réflexions peut être utilisé pour calculer le retard pour la réverbération tardive.
asrc - Signal source en entrée.
idel - Si cet opcode est utilisé avec hrtfearly, ce paramètre est le retard approprié pour la réverbération tardive, basé sur la pièce et l'ordre du traitement.
Voici un exemple des opcodes hrtfearly et hrtfreverb. Il utilise le fichier hrtfearly.csd.
Exemple 443. Exemple de l'opcode htrfearly.
<CsoundSynthesizer> <CsOptions> ; Select flags here ; realtime audio out -o dac ; file ouput ; -o hrtf.wav </CsOptions> <CsInstruments> nchnls = 2 gasrc init 0 ;global instr 1 ;a plucked string, distorted and filtered iamp = 15000 icps = cpspch(p4) a1 pluck iamp, icps, icps, 0, 1 adist distort1 a1, 10, .5, 0, 0 afilt moogvcf2 adist, 8000, .5 aout linen afilt, 0, p3, .01 gasrc = gasrc + aout endin instr 10 ;uses output from instr1 as source ;simple path for source kx line 2, p3, 9 ;early reflections, room default 1 aearlyl,aearlyr, irt60low, irt60high, imfp hrtfearly gasrc, kx, 5, 1, 5, 1, 1, "hrtf-44100-left.dat", "hrtf-44100-right.dat", 1 ;later reverb, uses outputs from above arevl, arevr, idel hrtfreverb gasrc, irt60low, irt60high, "hrtf-44100-left.dat", "hrtf-44100-right.dat", 44100, imfp ;delayed and scaled alatel delay arevl * .1, idel alater delay arevr * .1, idel outs aearlyl + alatel, aearlyr + alater gasrc = 0 endin </CsInstruments> <CsScore> ; Play Instrument 1: a simple arpeggio i1 0 .2 8.00 i1 + .2 8.04 i1 + .2 8.07 i1 + .2 8.11 i1 + .2 9.02 i1 + 1.5 8.11 i1 + 1.5 8.07 i1 + 1.5 8.04 i1 + 1.5 8.00 i1 + 1.5 7.09 i1 + 4 8.00 ; Play Instrument 10 for 13 seconds. i10 0 13 </CsScore> </CsoundSynthesizer>