hrtfer — Crée de l'audio 3D pour deux haut-parleurs.
La sortie audio en 3D est binaurale (casque stéréo).
Note | |
---|---|
Cet opcode est obsolète ; utiliser plutôt hrtfstat ou un opcode similaire. |
kAz -- valeur d'azimut en degrés. Les valeurs positives représentent les positions à droite, les valeurs négatives les positions à gauche.
kElev -- valeur d'élévation en degrés. Les valeurs positives représentent les positions au-dessus de l'horizontale, les valeurs négatives les positions sous l'horizontale.
Actuellement, le seul fichier qui peut être utilisé avec hrtfer est HRTFcompact. Il doit être passé à l'opcode en dernier argument entre guillements comme ci-dessus.
On peut aussi obtenir HRTFcompact par ftp anonyme depuis : ftp://ftp.cs.bath.ac.uk/pub/dream/utilities/Analysis/HRTFcompact
Ces générateurs unitaires placent un signal d'entrée mono dans un espace 3D virtuel autour de l'auditeur en faisant une convolution entre l'entrée et les données HRTF appropriées spécifiées par les valeurs d'azimut et d'élévation de l'opcode. hrtfer accepte que ces valeurs soient de taux-k, ce qui permet une spatialisation dynamique. hrtfer ne peut placer l'entrée qu'à la position demandée car le HRTF est chargé à l'initialisation (souvenez-vous qu'actuellement Csound limite à 20 le nombre de fichiers qu'il peut garder en mémoire sans causer d'erreur de segmentation). Il faut ajuster la sortie soit en utilisant balance soit en la multipliant par une constante de mise à l'échelle.
Note | |
---|---|
Le taux d'échantillonnage de l'orchestre doit être de 44.1 kHz. C'est le taux auquel les HRTFs ont été mesurés. Si l'on veut utiliser les HRTFs à un taux différent, il faut les rééchantillonner au taux désiré. |
Voici un exemple de l'opcode hrtfer. Il utilise les fichiers hrtfer.csd, HRTFcompact et beats.wav.
Exemple 1330. Exemple de l'opcode hrtfer.
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 ; Audio out Audio in No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o hrtfer.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 2 instr 1 kaz linseg 0, p3, -360 ; move the sound in circle kel linseg -40, p3, 45 ; around the listener, changing ; elevation as its turning asrc soundin "beats.wav" aleft,aright hrtfer asrc, kaz, kel, "HRTFcompact" aleftscale = aleft * 200 arightscale = aright * 200 outs aleftscale, arightscale endin </CsInstruments> <CsScore> i 1 0 2 e </CsScore> </CsoundSynthesizer>