KSPROPSETID_Hrtf3d
Le KSPROPSETID_Hrtf3d
jeu de propriétés est utilisé pour configurer la fonction de transfert 3D relative à la tête (HRTF) pour une mémoire tampon DirectSound. Cet ensemble contient les propriétés facultatives d’un nœud 3D (KSNODETYPE_3D_EFFECTS) sur un instance de broche DirectSound.
Tous les nœuds 3D ne prennent pas en charge le traitement HRTF. Un client peut envoyer une requête de prise en charge de base pour une propriété HRTF à un nœud 3D afin de déterminer si ce nœud est capable d’effectuer un traitement HRTF. Un nœud 3D qui prend en charge le KSPROPSETID_Hrtf3d
jeu de propriétés doit prendre en charge les trois propriétés du jeu.
La définition de ce jeu de propriétés part du principe que l’algorithme HRTF est implémenté avec des filtres de réponse impulsionnelle infinie (IIR) qui représentent les effets d’une source audio à une position unique.
Les filtres numériques ont généralement une réponse temporaire initiale. Lors du déplacement d’une source d’une position à l’autre, les coefficients de filtre changent et l’algorithme HRTF effectue un fondu croisé des sorties du filtre à l’ancienne position vers le filtre à la nouvelle position. Le membre FilterTransientMuteLength de la structure KSDS3D_HRTF_INIT_MSG spécifie le nombre d’échantillons par lesquels retarder le fondu croisé afin d’éviter le rendu temporaire initial du nouveau filtre. Pendant ce temps, la sortie provient uniquement des anciens filtres. Le membre FilterOverlapBufferLength (même structure) spécifie le nombre total d’exemples sur lesquels désactiver et réduire en fondu les sorties de filtre.
Lorsque la source se déplace du demi-plan droit vers la gauche, les filtres basculent. Ce commutateur peut provoquer une pop sonore. Le membre SwapChannels de la structure KSDS3D_HRTF_PARAMS_MSG indique à l’algorithme HRTF d’échanger les sorties pour inverser l’emplacement de la source sur l’autre demi-plan. Le membre CrossFadeOutput (même structure) indique à l’algorithme de passer en fondu croisé des canaux de sortie après une transition sur l’angle azimut zéro. Le membre OutputOverlapBufferLength de KSDS3D_HRTF_INIT_MSG spécifie le nombre d’échantillons sur lesquels passer en fondu lorsque cette transition se produit.
En raison de la symétrie, seule la moitié des coefficients de filtre doivent être téléchargés sur l’algorithme HRTF lorsque l’angle d’azimut est égal à zéro. Le membre ZeroAzimuth de KSDS3D_HRTF_PARAMS_MSG indique quand cette condition se produit.
Pour plus d’informations sur la configuration du traitement HTRF via l’API DirectSound, consultez la documentation Microsoft Windows SDK.
Le KSPROPSETID_Hrtf3d
jeu de propriétés contient les trois membres suivants :