다음을 통해 공유


XAudio2 볼륨 및 피치 컨트롤

이 항목에서는 XAudio2 볼륨 및 피치 컨트롤에 대해 설명합니다.

볼륨 제어

볼륨 수준은 최대 이득이 144.5dB인 -XAUDIO2_MAX_VOLUME_LEVEL 및 XAUDIO2_MAX_VOLUME_LEVEL(-224~224) 사이의 부동 소수점 진폭 승수로 표현됩니다. 볼륨이 1.0이면 감쇠나 게인이 없음을 의미합니다. 0은 침묵을 의미합니다. 음수 수준을 사용하여 오디오의 위상을 반전할 수 있습니다. 볼륨 단위 간을 변환하기 위해 XAudio2.h에 두 개의 인라인 함수가 제공됩니다. XAudio2DecibelsToAmplitudeRatioXAudio2AmplitudeRatioToDecibels.

XAudio2 그래프를 통해 흐르는 여러 지점에서 오디오에 볼륨 수준을 적용할 수 있습니다.

  • 모든 음성 유형은 입력에 전체 볼륨 수준을 적용하며 IXAudio2Voice::SetVolume 메서드를 사용하여 제어합니다. 서브믹스 및 마스터링 음성에서 전체 볼륨 수준은 음성의 기본 제공 필터 및 효과 체인 바로 앞에 적용됩니다. 원본 음성에서 전체 볼륨 수준은 음성의 기본 제공 필터 및 효과 체인 후에 적용됩니다.
  • 음성은 IXAudio2Voice::SetChannelVolumes 메서드를 사용하여 제어하는 채널별 볼륨 수준을 출력에 적용합니다. 채널별 볼륨 수준은 음성의 최종 샘플 속도 변환 직후 및 다른 음성으로 전송되기 전에 적용됩니다.
  • 한 음성과 다른 음성 간의 모든 연결에는 각 원본 채널에서 각 대상 채널로 오디오를 보내는 데 사용되는 수준 테이블이 있으며, IXAudio2Voice::SetOutputMatrix 메서드를 사용하여 제어됩니다.

모든 전체 볼륨 및 채널 볼륨은 처음에 1.0으로 기본 설정됩니다. 모든 송신 수준 행렬은 신호 전원 및 채널 위치를 가능한 한 정확하게 유지하는 적절한 값으로 기본 설정됩니다. 자세한 내용은 XAudio2 기본 채널 매핑 개요를 참조하세요.

메모

XAudio2는 사용자의 화자 설정에 따라 볼륨 수준을 자동으로 조정하여 구성 간에 일관된 볼륨 수준을 유지합니다. 사용자의 설정이 실제 구성과 일치하지 않으면 볼륨이 정확한 설정이 있는 시스템에 비해 너무 크거나 너무 부드럽습니다. 예를 들어 두 개의 스피커만 연결된 5.1 서라운드 사운드 스피커에 대해 구성된 시스템은 너무 부드러운 소리를 내야 합니다. XAudio2는 사용자 스피커 설정이 실제 설정과 올바르게 일치하는지 여부를 감지할 수 없습니다.

 

피치 컨트롤

피치는 1/1,024에서 1,024/1 사이의 입력 속도/출력 비율(포함)으로 표현됩니다. 1/1,024의 비율은 피치를 10 옥타브로 낮추고, 1,024/1의 비율은 10 옥타브로 올립니다. IXAudio2SourceVoice::SetFrequencyRatio 메서드를 사용하여 원본 음성에 피치 조정을 적용하고 XAUDIO2_VOICE_NOPITCH 플래그를 사용하여 만들지 않은 경우에만 사용할 수 있습니다. 기본 주파수 비율은 1/1입니다. 즉, 피치 변경이 없습니다. 두 개의 인라인 함수가 XAudio2.h에서 제공되어 주파수 비율과 세미톤 간을 변환합니다. XAudio2FrequencyRatioToSemitonesXAudio2SemitonesToFrequencyRatio.

볼륨 및 피치 컨트롤

XAudio2 프로그래밍 가이드

방법: 음성 피치 변경

방법: 음성 볼륨 변경