Skip to main content

SetShapeFiltVolCommand

Inicializa un comando FLTVOL de SHAPE.

Sintaxis

Parámetros

command   _Inout_
Tipo: SHAPE_FLOWGRAPH_COMMAND*
Comando SHAPE_FLOWGRAPH_COMMAND que se va a inicializar. contextId   
Tipo: UINT32
Identificador (índice) del contexto de filtro/volumen al que hará referencia este comando. inputMixBuffer   
Tipo: UINT32
Identificador del búfer de mezcla de entrada. outputMixBuffer   
Tipo: UINT32
Identificador del búfer de mezcla de salida.

Valor devuelto

Tipo: HRESULT Si la función se ejecuta correctamente, devuelve S_OK. Si uno o varios de los argumentos no son válidos, la función devuelve E_INVALIDARG.

Comentarios

El bloque de filtro/volumen (FLTVOL) se usa para modelar la oclusión de los sonidos, es decir, el sonido que rodea o atraviesa un objeto, y distribuye la energía del sonido entre varios altavoces para modelar la dirección desde la que llega el sonido. El bloque FLTVOL toma un solo canal de datos de entrada de un búfer de mezcla, lo filtra y le aplica una escala de volumen, y escribe la salida en un búfer de mezcla. Normalmente, se usan varios controles FLTVOL para generar una panoramización de una entrada y varias salidas, como una panoramización de sonido envolvente. El panoramizador se usa normalmente para tomar un sonido y realizar una panoramización de n altavoces, además de uno o varios efectos de reverberación. La incorporación del filtro de variable de estado permite que un título cree fácilmente efectos de distancia mejorados, así como efectos de oclusión y obstrucción de estilo I3DL2. El filtro de variable de estado, por su naturaleza, puede crear resonancias que hagan que los valores intermedios superen 1.0 (o -1.0). Para mitigar los problemas creados por la saturación de valores intermedios, el bloque FLTVOL tiene una cantidad programable de escalado de margen que se aplica a la señal entrante y luego se compensa en la salida. El escalado se logra desplazando aritméticamente los datos a la derecha un número determinado de bits. El campo headroom del contexto especifica el número de bits de desplazamiento a la derecha que recibe la señal entrante antes del procesamiento FLTVOL (0, 1, 2 o 3). Por lo tanto, al especificar un valor de headroom de 3, el filtro de variable de estado puede mantener 3 bits adicionales (18 dB) de margen para las resonancias y desbordamientos creados internamente. Por supuesto, desplazar los datos entrantes a la derecha reduce necesariamente la precisión en el extremo inferior. Los bits de margen más bajos de la señal de audio entrante se pierden para siempre. Por lo tanto, los bits de margen generalmente solo deben especificarse como distintos de cero si se determina que se ha producido saturación interna en el filtro de variable de estado. Esto se puede hacer comprobando el valor del bit de desbordamiento interno en el contexto FLTVOL. En el caso de que los datos de origen originales sean de 16 bits, por ejemplo, si los datos de origen originales son XBOX Media Audio (XMA), los bits de margen normalmente pueden establecerse en su máximo (3) sin un cambio perceptible en el sonido, ya que los bits de orden inferior se rellenan con ceros de todos modos. La implementación flexible del filtro de variable de estado también permite aplicar filtrado resonante a una voz para ayudar a crear efectos de audio interesantes y generar variación. Los parámetros del filtro y los atributos de volumen se ajustan gradualmente muestra a muestra para proporcionar una transición suave entre los puntos de ajuste de entrada y de salida. El bloque FLTVOL se implementa como un filtro Chamberlin. El filtro proporciona tres modos: paso alto, paso bajo y paso de banda, con un control de Q (ancho de banda) variable. Los parámetros del filtro Chamberlin se calculan de la siguiente manera.
Los parámetros f y q los calcula el software fuera del bloque del motor de procesamiento de audio por hardware escalable (SHAPE). Cuando se actualiza un coeficiente, se aplica una rampa hasta el nuevo valor a lo largo de un fotograma de audio. Los bits de control se usan para determinar qué salida (rechazo de banda, paso alto, paso de banda o paso bajo) se usa como salida final del bloque FLTVOL. Los datos de contexto de cada canal o secuencia se almacenan en la memoria del sistema. Aunque el rendimiento está limitado a 2560 secuencias simultáneas de 48 kHz, lo que significa que SHAPE puede procesar hasta 2560 contextos FLTVOL por fotograma de audio, el número de contextos direccionables en memoria es mayor para simplificar los escenarios de reutilización de secuencias. El comportamiento del filtrado está diseñado para ser idéntico al de XAudio2.

Requisitos

Encabezado: shapeflowgraph.h Plataformas compatibles: consolas de la familia XBOX One y consolas XBOX Series

Consulte también

Información general sobre ACP Información general de SHAPE shapeflowgraph
Última modificación el 28 de agosto de 2026