KSPROPSETID_Hrtf3d

KSPROPSETID_Hrtf3d 속성 집합은 DirectSound 버퍼에 대한 HRTF(3D 헤드 상대 전송 함수)를 구성하는 데 사용됩니다. 이 집합에는 DirectSound 핀 instance 3D 노드(KSNODETYPE_3D_EFFECTS)의 선택적 속성이 포함되어 있습니다.

모든 3D 노드가 HRTF 처리를 지원하는 것은 아닙니다. 클라이언트는 HRTF 속성에 대한 기본 지원 쿼리를 3D 노드로 보내 해당 노드가 HRTF 처리를 수행할 수 있는지 여부를 확인할 수 있습니다. 속성 집합을 지원하는 3D 노드는 KSPROPSETID_Hrtf3d 집합의 세 가지 속성을 모두 지원해야 합니다.

이 속성 집합의 정의에서는 HRTF 알고리즘이 단일 위치에서 오디오 소스의 효과를 나타내는 IIR(무한 임펄스 응답) 필터로 구현된다고 가정합니다.

디지털 필터에는 일반적으로 초기 일시적인 응답이 있습니다. 원본을 한 위치에서 다음 위치로 이동하면 필터 계수가 변경되고 HRTF 알고리즘이 이전 위치의 필터에서 새 위치의 필터로 출력을 교차 페이드합니다. KSDS3D_HRTF_INIT_MSG 구조체의 FilterTransientMuteLength 멤버는 새 필터의 초기 일시적 렌더링을 방지하기 위해 교차 페이드를 지연할 샘플 수를 지정합니다. 이 시간 동안 출력은 이전 필터에서만 제공됩니다. FilterOverlapBufferLength 멤버(동일한 구조체)는 필터 출력을 음소거하고 교차 페이드할 샘플의 총 수를 지정합니다.

원본이 오른쪽 반면에서 왼쪽으로 이동하면 필터가 전환됩니다. 이 스위치로 인해 가청 팝이 발생할 수 있습니다. KSDS3D_HRTF_PARAMS_MSG 구조체의 SwapChannels 멤버는 출력을 교환하여 원본 위치를 다른 반면으로 되돌리도록 HRTF 알고리즘에 지시합니다. CrossFadeOutput 멤버(동일한 구조체)는 azimuth 각도 0에서 전환한 후 출력 채널을 교차 페이드하도록 알고리즘에 지시합니다. KSDS3D_HRTF_INIT_MSG OutputOverlapBufferLength 멤버는 이 전환이 발생할 때 교차 페이드할 샘플 수를 지정합니다.

대칭 때문에 아지무스 각도가 0일 때 필터 계수의 절반만 HRTF 알고리즘에 다운로드해야 합니다. KSDS3D_HRTF_PARAMS_MSG ZeroAzimuth 멤버는 이 조건이 발생하는 시기를 나타냅니다.

DirectSound API를 통해 HTRF 처리를 구성하는 방법에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

속성 집합에는 KSPROPSETID_Hrtf3d 다음 세 멤버가 포함됩니다.

KSPROPERTY_HRTF3D_FILTER_FORMAT

KSPROPERTY_HRTF3D_INITIALIZE

KSPROPERTY_HRTF3D_PARAMS