Sobre el proyecto
audio-engine-core es una capa de procesamiento de audio independiente de la aplicación, diseñada para reproductores de música de alta calidad y aplicaciones de audio en tiempo real. Implementa una cadena de procesamiento que consiste en Decode → Resample → Loudness → DSP → Analyze → Stream, separando deliberadamente el procesamiento de audio de la UI, la salida del dispositivo y la gestión de la biblioteca multimedia.
Características técnicas clave incluyen:
- Seguridad en tiempo real: Utiliza instantáneas atómicas de parámetros sin bloqueo basadas en generación para evitar asignaciones en el heap, bloqueos que impiden el progreso y operaciones de I/O dentro de la devolución de llamada de audio.
- Calidad y medición de audio: Incluye validación objetiva para la loudness EBU R128, detección de true-peak y rendimiento del remuestreador (THD+N y atenuación de alias).
- Capacidades DSP: Proporciona un ecualizador IIR biquad de 10 bandas, EQ FIR lineal/minimum-phase, convolución FFT, Bauer crossfeed, saturación oversampled y limitación true-peak.
- Remuestreo: Soporta tanto un backend nativo SoX VHQ (a través de libsoxr) como un backend puro Rust (a través de rubato).
- Gestión de loudness: Separa el análisis offline EBU R128 de la aplicación de ganancia atómica en tiempo real.
- Renderizado offline: Soporta renderizado compensado por latencia con políticas configurables de cola de efectos.
La biblioteca está construida sobre Symphonia para la decodificación y proporciona una API `PlaybackPipeline` para una fácil integración en devoluciones de llamada de audio.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.