hrtfstat

hrtfstat — Génère un signal audio statique 3D binaural pour casque en utilisant un modèle de Woodworth de tête sphérique avec précision améliorée de la phase en basse fréquence.

Description

Cet opcode prend un signal source et le spatialise dans les trois dimensions entourant l'auditeur en utilisant des filtres basés sur une fonction de transfert en relation avec la tête (HRTF). Il produit une sortie statique (les paramètres d'azimut et d'élévation sont de taux-i), car une source statique permet un traitement bien plus efficace que hrtfmove et hrtfmove2.

Syntaxe

      aleft, aright hrtfstat asrc, iAz, iElev, ifilel, ifiler [,iradius, isr]
    

Initialisation

iAz -- valeur d'azimut en degrés. Les valeurs positives représentent les positions sur la droite, les valeurs négatives les positions sur la gauche.

iElev -- 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 (min -40).

ifilel -- fichier des données spectrales HRTF de gauche.

ifiler -- fichier des données spectrales HRTF de droite.

[Note] Note

Des fichiers de données spectrales (basés sur la base de donnée HTRF du MIT) sont disponibles dans trois taux d'échantillonnage : 44.1, 48 et 96 kHz et sont nommés en conséquense. Le sr d'entrée et de traitement doit concorder avec celui du fichier de données. Les fichiers doivent se trouver dans le répertoire courant ou le SADIR (voir Variables d'Environnement).

iradius -- facultatif, rayon de la tête en centimètres utilisé pour le calcul du spectre de phase (9.0 par défaut).

isr - facultatif (44.1 kHz par défaut). Les valeurs autorisées sont 44100, 48000 et 96000.

Exécution

Une spatialisation statique sans artefact définie par l'utilisateur est rendue possible au moyen d'un algorithme basé sur l'interpolation de magnitude spectrale et un spectre de phase dérivé basé sur le modèle de tête sphérique de Woodworth. La précision de l'ensemble de données fourni est augmentée en extrayant et en appliquant au spectre de phase un facteur de pondération dépendant de la fréquence, ce qui conduit à un délai interaural plus précis dans les basses fréquences. On peut contrôler le rayon de la tête pour la dérivation de la phase ce qui donne un niveau simple d'individualisation. La version à source statique de l'opcode utilise la convolution par chevauchement et addition (le traitement par TFCT n'est pas nécessaire, voir hrtfmove2), et elle est ainsi considérablement plus efficace que hrtfmove2 ou hrtfmove, mais elle ne peut pas générer de sources en mouvement.

Exemples

On le trouve dans le fichier htrfstat.csd.

Exemple 301. Exemple de l'opcode htrfstat.

<CsoundSynthesizer>
<CsOptions>
    ; Select flags here
    ; realtime audio out
 -o dac
    ; For Non-realtime ouput leave only the line below:
   ; -o hrtf.wav
  
</CsOptions>
<CsInstruments>

    sr = 44100
    kr = 4410
    ksmps = 10
    nchnls = 2

    gasrc init 0

    instr 1		;a plucked string

    kamp = p4
    kcps = cpspch(p5)
    icps = cpspch(p5)

    a1 pluck kamp, kcps, icps, 0, 1

    gasrc = a1

    endin

    instr 10	;uses output from instr1 as source

    aleft,aright hrtfstat gasrc, 90,0, "hrtf-44100-left.dat","hrtf-44100-right.dat"

    outs	aleft, aright

    endin

  
</CsInstruments>
<CsScore>

    ; Play Instrument 1: a plucked string
    i1 0 2 20000 8.00

    ; Play Instrument 10 for 2 seconds.
    i10 0 2

  
</CsScore>
</CsoundSynthesizer>

Voir Aussi

hrtfmove, hrtfmove2, hrtfer.

Crédits

Auteur : Brian Carty
Maynooth
2008