Partilhar via


Gráfico de áudio XAudio2

O conjunto de todas as vozes, com seus efeitos contidos e suas interconexões, é referido como o gráfico de processamento de áudio. O gráfico pega um conjunto de fluxos de áudio do cliente como entrada, processa-os e entrega o resultado final a um dispositivo de áudio. Todo o processamento de áudio ocorre em um thread separado com uma periodicidade definida pelo quantum do gráfico (atualmente 10 milissegundos no Microsoft Windows e 5 1/3 milissegundos no Xbox 360). A cada milissegundos quânticos, o thread acorda e dispersa milissegundos quânticos de dados de áudio através de todo o gráfico. Para obter um exemplo de criação de um gráfico de áudio básico, consulte Como: criar um gráfico de processamento de áudio básico.

Um gráfico de áudio simples:

um gráfico de áudio simples

O cliente pode controlar o estado do gráfico dinamicamente enquanto ele está em execução. As ações de controle podem incluir adicionar e remover entradas e saídas, alterar os efeitos internos e interconexões, definir parâmetros sobre os efeitos, habilitar e desabilitar partes do gráfico, e assim por diante. Para obter um exemplo de alteração dinâmica de um gráfico de áudio, consulte Como adicionar ou remover vozes dinamicamente de um gráfico de áudio.

Processamento do gráfico

Qualquer chamada de método que afete qualquer objeto no gráfico é considerada como efetuando uma alteração de estado do gráfico. As alterações de estado do gráfico incluem o seguinte:

  • Criar e destruir vozes
  • Iniciar ou parar vozes
  • Mudar os destinos de uma voz
  • Modificando cadeias de efeitos
  • Ativar ou desativar efeitos
  • Definição de parâmetros sobre os efeitos ou sobre os SRCs, filtros, volumes e misturadores integrados

Qualquer conjunto de alterações de estado do gráfico pode ser combinado e executado como uma transação atômica. Estas operações atómicas são conhecidas como conjuntos de operações. Eles são discutidos no XAudio2 Operation Sets visão geral.

Representação de dados internos

Os dados de áudio dentro do gráfico XAudio2 são sempre armazenados e processados em formato PCM de ponto flutuante de 32 bits. No entanto, a contagem de canais e a taxa de amostragem podem variar dentro do gráfico. O formato em que uma determinada voz processa o áudio é determinado pelo tipo de voz e pelos parâmetros usados para criar a voz.

Tipo de voz Parâmetros
IXAudio2SourceVoice A contagem de canais e a taxa de amostragem das vozes para as quais a voz de origem envia áudio.
IXAudio2SubmixVoice e IXAudio2MasteringVoice O InputChannels e argumentos de InputSampleRate usados para criar a voz de submixagem/masterização.

 

Conversão de formato

O XAudio2 lida com qualquer taxa de amostragem ou conversões de canal que são necessárias à medida que o áudio viaja de uma voz para outra, com as seguintes limitações:

  • Todas as vozes de destino de uma voz específica devem estar sendo executadas na mesma taxa de amostragem
  • Os efeitos em uma cadeia de efeitos podem alterar a contagem de canais do áudio, mas não sua taxa de amostragem
  • A contagem de canais de saída de uma cadeia de efeitos deve corresponder à das vozes para as quais ela envia
  • Nenhuma alteração dinâmica do gráfico pode ser feita que quebre as regras acima

No lado da entrada, as vozes de origem podem ler dados em qualquer formato PCM válido ou em qualquer um dos formatos compactados suportados pelo XAudio2. Se os dados de entrada forem compactados, eles serão decodificados para PCM de ponto flutuante antes que qualquer processamento adicional seja feito.

No lado da saída, a masterização de vozes só pode produzir dados PCM. Estes dados satisfarão sempre as mesmas restrições descritas acima para os dados PCM de entrada.

Gráficos de áudio

Guia de Programação XAudio2

Como: Criar um gráfico de processamento de áudio básico

Como: Adicionar ou remover vozes dinamicamente de um gráfico de áudio

Como usar o Submix Voices

Como: Criar uma cadeia de efeitos