XAudio2 음성
XAudio2 음성 개체에는 소스, 서브믹스 및 마스터링 음성의 세 가지 유형이 있습니다. 원본 음성은 클라이언트에서 제공한 오디오 데이터에서 작동합니다. 원본 및 서브믹스 음성은 해당 출력을 하나 이상의 서브믹스 또는 마스터링 음성으로 보냅니다. 서브믹스 및 마스터링 음성은 해당 음성을 공급하는 모든 음성으로부터 오디오를 믹싱하고 그 결과에서 작동합니다. 마스터링 음성은 오디오 데이터를 오디오 디바이스에 기록합니다.
모든 음성에서 수행하는 작업
모든 음성은 이동하는 오디오에서 순서대로 다음 작업을 수행합니다.
- 전체 볼륨 조정으로 모든 오디오 채널에 영향을 줍니다. IXAudio2Voice::SetVolume을 참조하세요.
- 기본 제공 반향 또는 IXAPO 인터페이스에서 정의한 사용자 효과와 같은 하나 이상의 DSP 효과에 대한 선택적 클라이언트 지정 체인입니다. XAudio2 오디오 효과를 참조하세요.
- 채널별 출력 볼륨 조정. IXAudio2Voice::SetChannelVolumes를 참조하세요.
- 각 대상 음성 또는 음성 마스터를 위한 오디오 출력 디바이스에 행렬 혼합을 구분합니다. 이 혼합은 필요한 경우 오디오의 채널 수를 변경합니다.
원본 음성
원본 음성을 사용하여 오디오 데이터를 XAudio2 처리 파이프라인에 제출합니다. XAudio2 오디오 그래프의 진입점입니다. 직접 또는 중간 서브믹스 음성을 통해 들을 수 있도록 음성 데이터를 마스터링 음성으로 보내야 합니다.
모든 음성에서 수행하는 작업 외에도 원본 음성은 다음 작업을 수행합니다.
- 필요한 경우 디코더가 먼저 실행되어 인코딩된 원본 데이터를 PCM(Pulse Code Modulation)으로 변환합니다.
- SRC(가변 속도 샘플 속도 변환)는 음성의 원본 오디오 데이터를 필요한 경우 대상 음성에서 예상하는 샘플 속도로 변환하고 동적 피치 변경도 지원합니다.
- 선택적 상태 변수 필터를 사용하여 다양한 방법으로 소리를 색칠할 수 있습니다. IXAudio2Voice::SetFilterParameters를 참조하세요.
- 선택적 필터는 음성의 출력에 적용할 수 있습니다. IXAudio2Voice::SetOutputFilterParameters를 참조하세요.
서브믹스 음성
서브믹스 음성은 주로 성능 향상 및 효과 처리에 사용됩니다. 서브믹스 음성에 직접 데이터 버퍼를 제출할 수 없습니다. 마스터링 음성에 제출하지 않으면 들을 수 없습니다. 서브믹스 음성을 사용하여 특정 음성 데이터 집합이 동일한 형식으로 변환되도록 하고 집합적 결과에 대해 특정 효과 체인을 처리할 수 있습니다.
모든 음성에서 수행하는 작업 외에도 서브믹스 음성은 다음 작업을 수행합니다.
- 고정 속도 SRC는 필요한 경우 음성의 출력에서 실행되어 오디오를 대상 음성이 예상하는 샘플 속도로 변환합니다.
- 선택적 상태 변수 필터를 사용하여 다양한 방법으로 소리를 색칠할 수 있습니다. IXAudio2Voice::SetFilterParameters를 참조하세요.
- 선택적 필터는 음성의 출력에 적용할 수 있습니다. IXAudio2Voice::SetOutputFilterParameters를 참조하세요.
음성 마스터
마스터 음성을 사용하여 오디오 출력 디바이스를 나타냅니다. 마스터링 음성에 직접 데이터 버퍼를 제출할 수는 없지만 다른 유형의 음성에 제출된 데이터는 들을 수 있는 마스터링 음성으로 이동해야 합니다.
모든 음성에서 수행하는 작업 외에도 음성 마스터는 다음 작업을 수행합니다.
- 오디오 디바이스에서 지원하지 않는 명시적 InputSampleRate 값으로 마스터링 음성을 만드는 경우 고정 속도 SRC를 사용하여 디바이스에서 지원하는 가장 가까운 샘플 속도로 변환합니다.
- 출력 디바이스에 필요한 경우 최종 출력 오디오를 클리핑합니다.
관련 항목