Control de volumen y tono XAudio2
En este tema se describe el volumen Y el control de inclinación de XAudio2.
Control de volumen
Los niveles de volumen se expresan como multiplicadores de amplitud de punto flotante entre -XAUDIO2_MAX_VOLUME_LEVEL y XAUDIO2_MAX_VOLUME_LEVEL (-224 a 224), con una ganancia máxima de 144,5 dB. Un volumen de 1,0 significa que no hay atenuación ni ganancia; 0 significa silencio; y los niveles negativos se pueden usar para invertir la fase del audio. Se proporcionan dos funciones insertadas en XAudio2.h para convertir entre unidades de volumen: XAudio2DecibelsToAmplitudeRatio y XAudio2AmplitudeRatioToDecibels.
Puede aplicar un nivel de volumen al audio en varios puntos a medida que fluye a través del gráfico XAudio2:
- Todos los tipos de voz aplican un nivel de volumen general a su entrada, que controlan mediante el método IXAudio2Voice::SetVolume . En las voces de submezcla y de maestro, el nivel de volumen general se aplica justo antes de la cadena de efectos y filtros integrados de la voz. En las voces de origen, el nivel de volumen general se aplica después de la cadena de efectos y el filtro integrados de la voz.
- Las voces aplican un nivel de volumen por canal a su salida, que controlan mediante el método IXAudio2Voice::SetChannelVolumes . El nivel de volumen por canal se aplica justo después de la conversión final de frecuencia de muestreo de la voz y antes de enviarlo a otras voces.
- Cada conexión entre una voz y otra tiene una tabla de niveles que se usa para enviar audio desde cada canal de origen a cada canal de destino, que se controla mediante el método IXAudio2Voice::SetOutputMatrix .
Todos los volúmenes generales y volúmenes de canal se establecen inicialmente en 1,0. Todas las matrices de nivel de envío están predeterminadas en los valores adecuados que conservan la potencia de señal y el posicionamiento del canal con la mayor precisión posible. Consulte la introducción a la asignación de canales predeterminada de XAudio2 para obtener más información.
Nota
XAudio2 ajusta automáticamente los niveles de volumen en función de la configuración del altavoz del usuario para mantener un nivel de volumen coherente entre configuraciones. Si la configuración del usuario no coincide con su configuración física, el volumen será demasiado alto o demasiado suave en comparación con un sistema con una configuración precisa. Por ejemplo, un sistema configurado para los altavoces de sonido envolvente 5.1 que solo tiene dos altavoces conectados son demasiado suaves. XAudio2 no puede detectar si la configuración del hablante del usuario coincide correctamente con su configuración física.
Control de inclinación
Las inclinaciones se expresan como relaciones de velocidad de entrada/velocidad de salida entre 1/1.024 y 1.024/1, ambos inclusive. Una proporción de 1/1.024 puntos inferiores en 10 octavas, mientras que una proporción de 1.024/1 lo eleva en 10 octavas. Solo puede usar el método IXAudio2SourceVoice::SetFrequencyRatio para aplicar ajustes de tono a las voces de origen y solo si no se crearon con la marca XAUDIO2_VOICE_NOPITCH. La relación de frecuencia predeterminada es 1/1: es decir, ningún cambio de tono. Se proporcionan dos funciones insertadas en XAudio2.h para convertir entre relaciones de frecuencia y semitones: XAudio2FrequencyRatioToSemitones y XAudio2SemitonesToFrequencyRatio.
Temas relacionados