hrtfer

hrtfer — Crée de l'audio 3D pour deux haut-parleurs.

Description

La sortie audio en 3D est binaurale (casque stéréo).

Syntaxe

aleft, aright hrtfer asig, kaz, kelev, « HRTFcompact »

Initialisation

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

Exécution

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] 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é.

Exemples

Voici un exemple de l'opcode hrtfer. Il utilise les fichiers hrtfer.csd, HRTFcompact et beats.wav.

Exemple 355. 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>


Voir aussi

hrtfmove, hrtfmove2, hrtfstat.

Crédits

Auteurs : Eli Breder et David MacIntyre
Montréal
1996

Correction de l'exemple grâce à un message d'Istvan Varga.