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成員 (相同的結構) 告訴演算法在跨 azimuth 角度零的轉換之後交叉淡出輸出通道。 KSDS3D_HRTF_INIT_MSG的 OutputOverlapBufferLength 成員會指定要在此轉換發生時交叉淡出的樣本數目。

由於對稱性,當 azimuth 角度為零時,只需要將一半的篩選係數下載到 HRTF 演算法。 KSDS3D_HRTF_PARAMS_MSG的 ZeroAzimuth 成員指出發生此狀況的時間。

如需透過 DirectSound API 設定 HTRF 處理的相關資訊,請參閱Microsoft Windows SDK檔。

屬性 KSPROPSETID_Hrtf3d 集包含下列三個成員:

KSPROPERTY_HRTF3D_FILTER_FORMAT

KSPROPERTY_HRTF3D_INITIALIZE

KSPROPERTY_HRTF3D_PARAMS