hrtfmove2
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## hrtfmove2

hrtfmove2 — Génère un signal audio dynamique 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).

## Syntaxe

    aleft, aright hrtfmove2 asrc, kAz, kElev, ifilel, ifiler [,ioverlap, iradius, isr]

## Initialisation

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

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

ioverlap -- facultatif, nombre de chevauchements pour le traitement de la TFCT (4 par défaut). Voir la section du manuel sur la TFCT.

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 : valeurs autorisées : 44100, 48000 et 96000.

## Exécution

asrc -- Signal source.

kAz -- 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.

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

Les trajectoires sans artefact définies par l'utilisateur sont rendues possibles par 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 de l'opcode à source dynamique utilise un algorithme de Transformation de Fourier à Court Terme pour éviter les artefacts causés par les changements des spectres de phase dérivés. Le traitement par TFCT signifie que cet opcode est plus gourmand en ressources que hrtfmove qui tronque la phase, mais la phase est constamment actualisée par hrtfmove2.

## Exemples

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

Exemple 391. Exemple de l'opcode hrtfmove2.

    <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

     kaz	linseg 0, p3, 720		;2 full rotations

     aleft,aright hrtfmove2 gasrc, kaz,0, "hrtf-44100-left.dat","hrtf-44100-right.dat"

     outs	aleft, aright

    endin

    </CsInstruments>
    <CsScore>

    ; Play Instrument 1: a simple arpeggio
    i1 0 .2 15000 8.00
    i1 + .2 15000 8.04
    i1 + .2 15000 8.07
    i1 + .2 15000 8.11
    i1 + .2 15000 9.02
    i1 + 1.5 15000 8.11
    i1 + 1.5 15000 8.07
    i1 + 1.5 15000 8.04
    i1 + 1.5 15000 8.00
    i1 + 1.5 15000 7.09
    i1 + 1.5 15000 8.00

    ; Play Instrument 10 for 10 seconds.
    i10 0 10

    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

hrtfmove, hrtfstat, hrtfer.

Plus d'information sur cet opcode : http://www.csoundjournal.com/issue9/newHRTFOpcodes.html, écrit par Brian Carty.

## Crédits

Auteur : Brian Carty
Maynooth
2008

Précédent | Niveau supérieur | Suivant
hrtfmove | Sommaire | hrtfreverb