KSPROPSETID_Hrtf3d
Il KSPROPSETID_Hrtf3d
set di proprietà viene usato per configurare la funzione di trasferimento head-relativo 3D (HRTF) per un buffer DirectSound. Questo set contiene proprietà facoltative di un nodo 3D (KSNODETYPE_3D_EFFECTS) in un'istanza del pin DirectSound.
Non tutti i nodi 3D supportano l'elaborazione HRTF. Un client può inviare una query di supporto di base per una proprietà HRTF a un nodo 3D per determinare se tale nodo è in grado di eseguire l'elaborazione HRTF. Un nodo 3D che supporta il KSPROPSETID_Hrtf3d
set di proprietà deve supportare tutte e tre le proprietà del set.
La definizione di questo set di proprietà presuppone che l'algoritmo HRTF venga implementato con filtri IIR (Infinite Impulse Response) che rappresentano gli effetti di un'origine audio in una singola posizione.
I filtri digitali in genere hanno una risposta temporanea iniziale. Quando si sposta un'origine da una posizione all'altra, i coefficienti di filtro cambiano e l'algoritmo HRTF fa passare gli output dal filtro nella posizione precedente al filtro in corrispondenza della nuova posizione. Il membro FilterTransientMuteLength della struttura di KSDS3D_HRTF_INIT_MSG specifica il numero di campioni in base al quale ritardare la fade incrociata per evitare di eseguire il rendering dell'temporaneo iniziale del nuovo filtro. Durante questo periodo, l'output proviene solo dai filtri precedenti. Il membro FilterOverlapBufferLength (stessa struttura) specifica il numero totale di campioni su cui disattivare e sovrascrivere gli output del filtro.
Quando l'origine passa dalla metà destra a sinistra, i filtri cambiano. Questo commutatore potrebbe causare un pop udibile. Il membro SwapChannels della struttura KSDS3D_HRTF_PARAMS_MSG indica all'algoritmo HRTF di scambiare gli output per invertire la posizione dell'origine all'altro piano di metà. Il membro CrossFadeOutput (stessa struttura) indica all'algoritmo di sfumare i canali di output dopo una transizione tra uno zero angolo azimuth. Il membro OutputOverlapBufferLength di KSDS3D_HRTF_INIT_MSG specifica il numero di campioni su cui eseguire la transizione incrociata.
A causa della simmetria, è necessario scaricare solo la metà dei coefficienti di filtro nell'algoritmo HRTF quando l'angolo azimuth è zero. Il membro ZeroAzimuth di KSDS3D_HRTF_PARAMS_MSG indica quando si verifica questa condizione.
Per informazioni sulla configurazione dell'elaborazione HTRF tramite l'API DirectSound, vedere la documentazione di Microsoft Windows SDK.
Il KSPROPSETID_Hrtf3d
set di proprietà contiene i tre membri seguenti: