다음을 통해 공유


XAudio2 볼륨 및 피치 컨트롤

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

볼륨 제어

볼륨 수준은 -XAUDIO2_MAX_VOLUME_LEVEL 및 XAUDIO2_MAX_VOLUME_LEVEL(-224~224) 사이의 부동 소수점 진폭 승수로 표현되며 최대 게인은 144.5dB입니다. 볼륨이 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 프로그래밍 지침

방법: 음성 피치 변경

방법: 음성 볼륨 변경