Resonate es un algoritmo de análisis espectral diseñado para extraer información perceptible de señales de audio (y de otro tipo) con baja latencia, mínima huella de memoria y reducido coste computacional. A diferencia de los métodos basados en la transformada de Fourier, Resonate emplea un modelo de resonador que actualiza su estado muestra a muestra mediante una media móvil ponderada exponencialmente (EWMA), un filtro paso bajo que otorga más peso a los valores recientes y hace decaer exponencialmente las contribuciones más antiguas.
Cada resonador se caracteriza por su frecuencia de resonancia y se representa mediante un número complejo R, cuya magnitud refleja la contribución de la señal en torno a dicha frecuencia. El estado se actualiza de forma recursiva con un fasor P, empleando solo unas pocas operaciones aritméticas por muestra y sin necesidad de almacenamiento intermedio. Un único parámetro α, relacionado con una constante de tiempo, gobierna la dinámica del sistema.
Un banco de resonadores, ajustado a escalas frecuenciales perceptualmente relevantes (escala log-frecuencia o escala Mel), calcula de forma instantánea y eficiente el contenido espectral de una señal. La complejidad por muestra es lineal en el número de resonadores e independiente de la duración de la señal, y todas las operaciones pueden paralelizarse.
Resonate produce espectrogramas con mayor resolución temporal que los métodos FFT y permite calcular características de audio en tiempo real. El autor, Alexandre R.J. François, ha publicado el trabajo en la International Computer Music Conference 2025 —donde recibió el Best Paper Award— y en la conferencia AIMLA 2025 de la AES. Existen implementaciones abiertas en Python (noFFT) y Swift (Oscillators), junto con una aplicación de demostración y vídeos en YouTube.
