Controle de volume e de tom XAudio2
Este tópico descreve o volume XAudio2 e o controle de tom.
Controle de volume
Os níveis de volume são expressos como multiplicadores de amplitude de ponto flutuante entre -XAUDIO2_MAX_VOLUME_LEVEL e XAUDIO2_MAX_VOLUME_LEVEL (-224 a 224), com um ganho máximo de 144,5 dB. Um volume de 1.0 significa que não há atenuação ou ganho; 0 significa silêncio; e níveis negativos podem ser usados para inverter a fase do áudio. Duas funções embutidas são fornecidas em XAudio2.h para converter entre unidades de volume: XAudio2DecibelsToAmplitudeRatio e XAudio2AmplitudeRatioToDecibels.
Você pode aplicar um nível de volume ao áudio em vários pontos à medida que ele flui pelo grafo XAudio2:
- Todos os tipos de voz aplicam um nível de volume geral à sua entrada, que eles controlam usando o método IXAudio2Voice::SetVolume. Em vozes de submixagem e masterização, o nível de volume geral é aplicado pouco antes da cadeia de efeitos e filtro interno da voz. Nas vozes de origem, o nível geral do volume é aplicado após o filtro interno da voz e a cadeia de efeitos.
- As vozes aplicam um nível de volume por canal à saída, que eles controlam usando o método IXAudio2Voice::SetChannelVolumes. O nível de volume por canal é aplicado logo após a conversão de taxa de exemplo final da voz e antes de ser enviado para outras vozes.
- Cada conexão entre uma voz e outra tem uma tabela de níveis usada para enviar áudio de cada canal de origem para cada canal de destino, que é controlado usando o método IXAudio2Voice::SetOutputMatrix.
Todos os volumes gerais e volumes de canal são padrão para 1,0 inicialmente. Todas as matrizes de nível de envio são padrão para valores apropriados que preservam a energia do sinal e o posicionamento do canal da maneira mais precisa possível. Consulte a visão geral de mapeamento de canal padrão do XAudio2 para obter detalhes.
Nota
O XAudio2 ajusta automaticamente os níveis de volume com base nas configurações do alto-falante do usuário para manter um nível de volume consistente entre as configurações. Se as configurações do usuário não corresponderem à configuração física, o volume será muito alto ou muito flexível em comparação com um sistema com configurações precisas. Por exemplo, um sistema configurado para alto-falantes de som surround 5.1 que só tem dois alto-falantes conectados soará muito suave. O XAudio2 não consegue detectar se as configurações do alto-falante do usuário correspondem corretamente à configuração física.
Controle de pitch
Os arremessos são expressos como taxas de entrada/taxa de saída entre 1/1.024 e 1.024/1, inclusive. Uma taxa de 1/1.024 reduz o tom em 10 oitavas, enquanto uma taxa de 1.024/1 aumenta em 10 oitavas. Você só pode usar o método IXAudio2SourceVoice::SetFrequencyRatio para aplicar ajustes de tom às vozes de origem e somente se elas não foram criadas com o sinalizador XAUDIO2_VOICE_NOPITCH. A taxa de frequência padrão é 1/1: ou seja, nenhuma alteração de tom. Duas funções embutidas são fornecidas em XAudio2.h para converter entre taxas de frequência e semitones: XAudio2FrequencyRatioToSemitones e XAudio2SemitonesToFrequencyRatio.
Tópicos relacionados
-
Guia de Programação do XAudio2
-
Como alterar o de tom de voz