다음을 통해 공유


DirectSound Node-Ordering 요구 사항

DirectSound 2D 또는 3D 믹서 핀에는 다음 노드 시퀀스가 포함된 노드 체인이 있어야 합니다.

이 목록의 노드는 핀으로 스트리밍되는 데이터에서 발생하는 순서대로 표시됩니다. 위의 순서가 유지되는 경우 문제를 일으키지 않고 이러한 노드 간에 다른 노드를 인터리브할 수 있습니다.

2D 핀에는 선택 사항인 3D 노드를 제외한 이전 목록의 모든 노드가 필요합니다. 3D 핀에는 3D 노드를 포함하여 목록의 모든 노드가 필요합니다.

SRC(샘플 속도 변환) 노드는 SUM 노드 앞에 와야 합니다. 이 요구 사항은 아니지만 SRC 및 SUM 노드는 일반적으로 인접합니다. IDirectSoundBuffer::SetFrequency 메서드(Microsoft Windows SDK 설명서 참조)는 SRC 노드의 리샘플링 속도를 방해합니다.

SRC 및 SUM 노드만 포함하는 믹서는 SWMidi 및 Redbook과 같은 시스템 드라이버에서 관리하는 스트림을 혼합하는 데 충분하지만( SWMidi 시스템 드라이버Redbook 시스템 드라이버 참조) DirectSound에는 두 개의 볼륨 노드와 슈퍼믹서 노드가 SUM 노드 앞에 와야 합니다. DirectSound는 IDirectSoundBuffer::SetVolume 호출로 인한 볼륨 변경 내용을 첫 번째 볼륨 노드로 보내고 IDirectSoundBuffer::SetPan 호출에서 두 번째 볼륨 노드로 이동 효과를 보냅니다.

DirectSound는 SetVolume, SetPan 및SetFrequency 호출을 사용하여 볼륨 및 SRC 노드를 제어하여 2D 핀에 3D 효과를 생성할 수 있습니다.

  • SetVolume 호출은 수신기에서 사운드 소스의 거리 변경을 시뮬레이션할 수 있습니다.

  • SetPan 호출은 수신기를 기준으로 사운드 소스의 방향 변경을 시뮬레이션할 수 있습니다.

  • SetFrequency 호출은 Doppler 효과 및 HRTF(헤드 관련 전송 함수)를 시뮬레이션할 수 있습니다.

supermixer 노드는 M 입력 채널을 N 출력 채널에 연결하는 크로스바 매트릭스입니다. 여기서 N은 디바이스의 최종 출력 스트림에 있는 채널 수와 같아야 합니다.

선택적 3D 노드는 하드웨어 가속 3D 효과를 관리하는 데 필요하지만( WDM 오디오에서 3D DirectSound 가속 지원 참조) 소프트웨어 에뮬레이트된 3D 처리에는 필요하지 않습니다. 대부분의 기존 구현은 SRC 노드 앞에 3D 노드를 배치하고 첫 번째 볼륨 노드와 슈퍼믹서 노드 사이에 배치하지만 다른 구성은 가능합니다.

3D 노드에 대한 입력 스트림에는 일반적으로 단일 채널이 포함됩니다. DirectSound 8.0 이상에서는 3D 효과로 모노 PCM 버퍼만 만들 수 있습니다. 그러나 이전 버전의 DirectSound는 모노 및 스테레오 입력 스트림을 모두 사용하는 3D 노드를 지원하며 드라이버는 이전 애플리케이션과의 호환성을 보장하기 위해 둘 다 지원해야 합니다.