Gráfico de audio XAudio2

El conjunto de todas las voces, con sus efectos contenidos y sus interconexiones, se conoce como gráfico de procesamiento de audio. El gráfico toma un conjunto de secuencias de audio del cliente como entrada, los procesa y entrega el resultado final a un dispositivo de audio. Todo el procesamiento de audio tiene lugar en un subproceso independiente con una periodicidad definida por el cuántico del grafo (actualmente 10 milisegundos en Microsoft Windows y 5 milisegundos de 1/3 milisegundos en Xbox 360). Cada milisegundos cuánticos, el subproceso se activa y dispersa milisegundos cuánticos de datos de audio a través de todo el grafo. Para obtener un ejemplo de cómo crear un grafo de audio básico, consulte How to: Build a Basic Audio Processing Graph.

Un gráfico de audio simple:

un gráfico de audio simple

El cliente puede controlar el estado del grafo dinámicamente mientras se ejecuta. Las acciones de control pueden incluir agregar y quitar entradas y salidas, cambiar los efectos internos e interconexiones, establecer parámetros en los efectos, habilitar y deshabilitar partes del gráfico, etc. Para obtener un ejemplo de cambio dinámico de un gráfico de audio, vea How to: Dynamically Add or Remove Voices From an Audio Graph.

Procesamiento del grafo

Cualquier llamada de método que afecte a cualquier objeto del grafo se considera que está afectando a un cambio de estado del grafo. Los cambios de estado del grafo incluyen lo siguiente:

  • Creación y destrucción de voces
  • Inicio o detención de voces
  • Cambio de los destinos de una voz
  • Modificación de cadenas de efectos
  • Habilitación o deshabilitación de efectos
  • Establecer parámetros en los efectos o en los SRC integrados, filtros, volúmenes y mezcladores

Cualquier conjunto de cambios de estado del grafo se puede combinar y realizar como una transacción atómica. Estas operaciones atómicas se conocen como conjuntos de operaciones. Se describen en la introducción a los conjuntos de operaciones XAudio2 .

Representación interna de datos

Los datos de audio dentro del gráfico XAudio2 siempre se almacenan y procesan en formato PCM de punto flotante de 32 bits. Sin embargo, el recuento de canales y la frecuencia de muestreo pueden variar dentro del gráfico. El formato en el que una voz determinada procesa el audio viene determinado por el tipo de voz y los parámetros usados para crear la voz.

Tipo de voz Parámetros
IXAudio2SourceVoice Recuento de canales y frecuencia de muestreo de las voces a las que la voz de origen envía audio.
IXAudio2SubmixVoice y IXAudio2MasteringVoice Los argumentos InputChannels y InputSampleRate usados para crear la voz de submezcla/mastering.

 

Conversión de formato

XAudio2 controla cualquier frecuencia de muestreo o conversiones de canal necesarias a medida que el audio viaja de una voz a otra, con las siguientes limitaciones:

  • Todas las voces de destino de una voz determinada deben ejecutarse con la misma frecuencia de muestreo.
  • Los efectos de una cadena de efectos pueden cambiar el recuento de canales del audio, pero no su frecuencia de muestreo
  • El recuento de canales de salida de una cadena de efectos debe coincidir con el de las voces a las que envía.
  • No se puede realizar ningún cambio dinámico del grafo, lo que interrumpiría las reglas anteriores.

En el lado de entrada, las voces de origen pueden leer datos en cualquier formato PCM válido o en cualquiera de los formatos comprimidos admitidos por XAudio2. Si los datos de entrada se comprimen, se descodifican en PCM de punto flotante antes de que se realice cualquier procesamiento adicional.

En el lado de salida, la creación de voces de maestro solo puede generar datos PCM. Estos datos siempre cumplirán las mismas restricciones descritas anteriormente para los datos de PCM de entrada.

Gráficos de audio

Guía de programación de XAudio2

Cómo: crear un gráfico de procesamiento de audio básico

Cómo: agregar o quitar voces de un gráfico de audio dinámicamente

Cómo: usar voces de submezcla

Cómo: crear un efecto en cadena