Cómo implementar un ecualizador

Sé que hay muchas preguntas sobre ecualizadores, pero no entendí lo que estaba buscando. Lo que quiero hacer es un ecualizador para modificar muestras de audio de la siguiente manera:

equalizer.eqAudio(audiosamples, band, gain)

No estoy seguro de si esa es la interfaz exacta que quiero porque sé poco sobre DSP en términos de implementación (utilicé filtros, limitadores, compresores, pero no los hice).

Así que busqué en Google sobre esto. Debo leer que debo hacer un FFT a las muestras para obtener los datos por rangos de frecuencia en lugar de amplitud, procesarlos como deseo y luego hacer la inversa de la FFT para obtener nuevamente el resultado en muestras de audio. . Busqué una implementación de este FFT y encontré JTransform para Java. Esta biblioteca tiene una implementación de un algoritmo relacionado con FFT llamado Discrete Cosine Transform (DCT).

Mis preguntas son:

Bueno, ¿estoy en el camino correcto?Dado que FFT me da datos sobre la frecuencia, debo pasar al algoritmo de FFT una parte de las muestras. ¿Qué tan grande debe ser este trozo?¿Hay un buen libro sobre programación de DSP que explique ecualizadores?

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta