Arquitectura de objetos de procesamiento de audio
Los objetos de procesamiento de audio (APO), proporcionan procesamiento de señal digital basado en software personalizable para secuencias de audio de Windows.
Windows permite a los OEM y a los fabricantes de hardware de audio de terceros incluir efectos de procesamiento de señales digitales personalizados como parte de las características de valor añadido de su controlador de audio. Estos efectos se empaquetan como objetos de procesamiento de audio (APO) en modo de usuario.
Los objetos de procesamiento de audio (APO), proporcionan procesamiento de señal digital basado en software para secuencias de audio de Windows. Un APO es un objeto host COM que contiene un algoritmo que se escribe para proporcionar un efecto específico de procesamiento de señal digital (DSP). Esta funcionalidad se conoce informalmente como un "efecto de audio". Algunos ejemplos de API incluyen ecualizadores gráficos, reverberación, tremolo, cancelación de eco acústico (AEC) y control de ganancia automática (AGC). Las API son objetos basados en COM, en tiempo real y en proceso.
Nota Las descripciones y la terminología de esta documentación se refieren principalmente a los dispositivos de salida, como los altavoces. Sin embargo, la tecnología es simétrica y funciona esencialmente en sentido inverso para los dispositivos de entrada.
API de software frente a DSP de hardware
Un procesador de señales digitales de hardware (DSP) es un microprocesador especializado (o un bloque SIP), con su arquitectura optimizada para las necesidades operativas del procesamiento de señales digitales. Puede haber importantes ventajas para implementar el procesamiento de audio en hardware creado específicamente frente al uso de un APO de software. Una ventaja es que el uso de CPU y el consumo de energía asociado pueden ser menores con un DSP implementado por hardware.
Hay otras ventajas y desventajas que se deben tener en cuenta, específicas de los objetivos y restricciones de los proyectos que querrá tener en cuenta antes de implementar un APO basado en software.
Los efectos basados en software se insertan en la canalización del dispositivo de software en la inicialización de la secuencia. Estas soluciones realizan todo su procesamiento de efectos en la CPU principal y no dependen del hardware externo. Este tipo de solución es mejor para soluciones tradicionales de audio de Windows, como dispositivos HDAudio, USB y Bluetooth cuando el controlador y el hardware solo admiten el procesamiento RAW. Para obtener más información sobre el procesamiento RAW, consulte Modos de procesamiento de señal de audio.
APO de proxy para DSP de hardware
Los efectos aplicados en el DSP de hardware deben anunciarse a través de un APO de proxy. Microsoft proporciona un APO de proxy predeterminado (MsApoFxProxy.dll). Para usar el APO proporcionado por Microsoft, se debe admitir este conjunto de propiedades y la propiedad .
Opcionalmente, puede implementar su propio APO de proxy.
API proporcionadas por Windows (sistema)
Windows instala un conjunto predeterminado de API que proporcionan una serie de efectos de audio diferentes. Para obtener una lista de los efectos APO proporcionados por el sistema, consulte Modos de procesamiento de señal de audio.
Los OEM pueden incluir todas las API proporcionadas por el sistema o reemplazar algunas o todas por API personalizadas.
API personalizadas
Es posible crear API personalizadas para mejorar la experiencia de audio de Windows agregando efectos de audio adicionales.
El OEM puede incluir cualquier combinación de las API de Windows proporcionadas y las API personalizadas cuando envían Windows.
Un OEM o un tercero pueden instalar un APO personalizado para mejorar la experiencia de audio una vez adquirido el dispositivo. Cuando los usuarios instalan un controlador de dispositivo de audio mediante el archivo INF estándar, tienen acceso automáticamente a las API del sistema. Los proveedores de hardware independientes (IHD) y los fabricantes de equipos originales (OEM) pueden proporcionar efectos de sistema personalizados adicionales mientras siguen usando los controladores de clase de Microsoft. Para ello, empaquetan sus algoritmos DSP como API y modifican el archivo INF estándar para insertar sus API en el gráfico de procesamiento de señales del motor de audio.
Para obtener más información sobre cómo crear API personalizadas, consulte Implementación de objetos de procesamiento de audio.
Aplicación de soporte técnico de APO personalizada
Para permitir al usuario configurar las opciones asociadas con el APO personalizado, el enfoque recomendado es crear una aplicación de soporte técnico de hardware. Para obtener más información, consulte Aplicación de soporte técnico de hardware (HSA): Pasos para desarrolladores de controladores.
Requisitos y pruebas de APO personalizados
Microsoft HLK proporciona pruebas que se pueden usar con las API. Para obtener más información sobre las pruebas de audio, consulte Device.Audio Testing y Device.Audio Tests.
Estas dos pruebas pueden ser especialmente útiles al trabajar con API.
Comprobar efectos de audioDiscovery (manual): certificación
Para obtener información sobre los requisitos de audio para admitir LAS API, consulte Requisitos de Device.Audio.
Herramientas y utilidades de APO personalizadas
Puede usar el "Ejemplo de detección de efectos de audio" para explorar los efectos de audio disponibles. En este ejemplo se muestra cómo consultar los efectos de audio en dispositivos de representación y captura de audio y cómo supervisar los cambios con los efectos de audio. Se incluye como parte de los ejemplos del SDK y se puede descargar mediante este vínculo:
Ejemplo de detección de efectos de audio
Reconocimiento del efecto de audio de la aplicación
Las aplicaciones tienen la capacidad de llamar a las API para determinar qué efectos de audio están activos actualmente en el sistema. Para obtener más información sobre las API de reconocimiento de efectos de audio, vea Clase AudioRenderEffectsManager.
Colocación de efectos de audio
Hay tres ubicaciones diferentes para los efectos de audio implementados como API. Están en efectos de secuencia (SFX), efectos de modo (MFX) y efectos de punto de conexión (EFX).
Efecto de secuencia (SFX)
Un APO de efecto de flujo tiene una instancia del efecto para cada secuencia. Los efectos de flujo son antes de la mezcla (representar) o después del tee (captura) para un modo determinado y se pueden usar para cambiar el recuento de canales antes del mezclador. Los efectos de flujo no se usan para flujos sin procesar.
Algunas versiones de Windows, como optimización, no cargan las API de SFX o MFX en modo RAW.
- Windows 8.1 no carga RAW SFX o RAW MFX
- Windows 10 carga RAW MFX, pero no RAW SFX
Efecto de modo (MFX)
Los efectos de modo (MFX) se aplican a todas las secuencias asignadas al mismo modo. Los efectos de modo se aplican después de la combinación (representación) o antes del tee (captura) para un modo determinado, pero antes de la combinación (representación) o después del tee (captura) de todos los modos. Cualquier efecto o efecto específico del escenario que no necesite los detalles del efecto de secuencia debe colocarse aquí. Es más eficaz usar un efecto de modo, ya que hay una instancia de varias secuencias que comparten las mismas características, como la periodicidad y el formato.
Efecto de punto de conexión (EFX)
El efecto de punto de conexión (EFX) se aplica a todos los flujos que usan el mismo punto de conexión. Siempre se aplica un efecto de punto de conexión, incluso a flujos sin procesar. Es decir, es después de la combinación (representar) o antes del tee (captura) de todos los modos. Los efectos del punto de conexión deben usarse con cuidado y, en caso de duda, un efecto debe colocarse en el área Modo. Algunos efectos que se deben colocar en el área del punto de conexión son la protección del hablante y la compensación del hablante.
En este diagrama se muestran las posibles ubicaciones para los efectos de flujo (SFX), modo (MFX) y punto de conexión (EFX) para Windows 10.
Varios efectos de APO personalizados
Es posible configurar varios efectos basados en APO para trabajar con diferentes aplicaciones.
En este diagrama se muestra cómo varias aplicaciones pueden acceder a varias combinaciones de efectos de flujo, modo y APO de punto de conexión. Todas las API se basan en COM y se ejecutan en modo de usuario. En este escenario, ninguno de los efectos se ejecuta en hardware o en modo kernel.
Nota Puede usar la barra de desplazamiento en la parte inferior de esta página para ver todo este diagrama.
Efectos del modo de software y efectos de punto de conexión de hardware para representar y capturar
En este diagrama se muestran los efectos del modo de software y los efectos del punto de conexión de hardware para representar y capturar.
Sistema equipado DSP con efectos de hardware
En este diagrama se muestra un sistema equipado con DSP que implementa efectos en el hardware. En este escenario, se debe crear un APO de proxy para informar a las aplicaciones de los efectos que se implementan en el hardware.
Objetos de procesamiento de audio de Windows
Implementación del controlador de audio descargado de hardware