次の方法で共有


KSPROPSETID_Hrtf3d

KSPROPSETID_Hrtf3d プロパティ セットは、DirectSound バッファーの 3D ヘッド相対転送関数 (HRTF) を構成するために使用されます。 このセットには、DirectSound ピン インスタンスの 3D ノード (KSNODETYPE_3D_EFFECTS) の省略可能なプロパティが含まれています。

すべての 3D ノードが HRTF 処理をサポートしているわけではありません。 クライアントは、HRTF プロパティの Basic サポート クエリを 3D ノードに送信して、そのノードが HRTF 処理を実行できるかどうかを判断できます。 KSPROPSETID_Hrtf3d プロパティ セットをサポートする 3D ノードは、セット内の 3 つのプロパティすべてをサポートする必要があります。

このプロパティ セットの定義では、1 つの位置でのオーディオ ソースの効果を表す無限インパルス応答 (IIR) フィルターを使用して HRTF アルゴリズムが実装されていることを前提としています。

通常、デジタル フィルターには最初の一時的な応答があります。 ソースをある位置から次の位置に移動すると、フィルター係数が変化し、HRTF アルゴリズムによって、古い位置のフィルターから新しい位置のフィルターに出力がクロスフェードされます。 KSDS3D_HRTF_INIT_MSG 構造体の FilterTransientMuteLength メンバーは、新しいフィルターの初期一時的なレンダリングを回避するためにクロス フェードを遅延させるサンプルの数を指定します。 この間、出力は古いフィルターからのみ取得されます。 FilterOverlapBufferLength メンバー (同じ構造体) は、フィルター出力をミュートおよびクロスフェードするサンプルの合計数を指定します。

ソースが右半平面から左に移動すると、フィルターが切り替わります。 このスイッチにより、音が鳴る可能性があります。 KSDS3D_HRTF_PARAMS_MSG 構造体の SwapChannels メンバーは、ソースの位置を他の半面に反転するように出力をスワップするよう HRTF アルゴリズムに指示します。 CrossFadeOutput メンバー (同じ構造体) は、方位角 0 の遷移後に出力チャネルをクロスフェードするようにアルゴリズムに指示します。 KSDS3D_HRTF_INIT_MSG の OutputOverlapBufferLength メンバーは、この遷移が発生したときにクロスフェードするサンプルの数を指定します。

対称性のため、方位角が 0 の場合は、フィルター係数の半分のみを HRTF アルゴリズムにダウンロードする必要があります。 KSDS3D_HRTF_PARAMS_MSG の ZeroAzimuth メンバーは、この状態が発生するタイミングを示します。

DirectSound API を使用した HTRF 処理の構成については、Microsoft Windows SDK のドキュメントを参照してください。

KSPROPSETID_Hrtf3dプロパティ セットには、次の 3 つのメンバーが含まれています。

KSPROPERTY_HRTF3D_FILTER_FORMAT

KSPROPERTY_HRTF3D_INITIALIZE

KSPROPERTY_HRTF3D_PARAMS