KSPROPSETID_Hrtf3d

KSPROPSETID_Hrtf3d 属性集用于为 DirectSound 缓冲区配置 3D 标头相对传输函数(HRTF)。 此集包含 DirectSound 引脚实例上 3D 节点 (KSNODETYPE_3D_EFFECTS) 的可选属性。

并非所有 3D 节点都支持 HRTF 处理。 客户端可以将 HRTF 属性的基本支持查询发送到 3D 节点,以确定该节点是否能够执行 HRTF 处理。 支持 KSPROPSETID_Hrtf3d 属性集的 3D 节点必须支持集中的所有三个属性。

此属性集的定义假定 HRTF 算法是使用无限脉冲响应(IIR)筛选器实现的,这些筛选器表示音频源在单个位置的效果。

数字筛选器通常具有初始暂时性响应。 将源从一个位置移动到下一个位置时,筛选器系数会发生变化,HRTF 算法将筛选器在旧位置的输出交叉淡化到位于新位置的筛选器。 KSDS3D_HRTF_INIT_MSG 结构的 FilterTransientMuteLength 成员指定延迟交叉淡出的示例数,以避免呈现新筛选器的初始暂时性。 在此期间,输出仅来自旧筛选器。 FilterOverlapBufferLength 成员(同一结构)指定要静音和交叉淡化筛选器输出的样本总数。

当源从右半平面向左移动时,筛选器会切换。 此开关可能会导致可听到的弹出声。 KSDS3D_HRTF_PARAMS_MSG 结构的 SwapChannels 成员告知 HRTF 算法将输出交换,以将源的位置反转到另一半平面。 CrossFadeOutput 成员(同一结构)告诉算法在经过方位角零的转变之后对输出通道进行交叉淡化。 KSDS3D_HRTF_INIT_MSG 的 OutputOverlapBufferLength 成员指定要在此转换发生时交叉淡化的示例数。

由于对称性,当方位角为零时,只有一半的筛选器系数需要下载到 HRTF 算法。 KSDS3D_HRTF_PARAMS_MSG 的 ZeroAzimuth 成员指示发生此情况的时间。

有关通过 DirectSound API 配置 HTRF 处理的信息,请参阅 Microsoft Windows SDK 文档。

KSPROPSETID_Hrtf3d 属性集包含以下三个成员:

KSPROPERTY_HRTF3D_FILTER_FORMAT

KSPROPERTY_HRTF3D_INITIALIZE

KSPROPERTY_HRTF3D_PARAMS