Hice un poco de búsqueda en este sitio, pero sorprendentemente, no encontré mucha información relevante, y mi conocimiento de DSP es muy, muy limitado.
Mi objetivo es bastante simple: quiero programar una reverberación algorítmica en C ++ que suene realmente bien. O más exactamente, la mejor opción sería dejar que el usuario final elija la compensación entre calidad y uso de la CPU.
Por lo que descubrí hasta ahora es que, para crear una reverberación, debes alimentar la señal seca a un algoritmo de reflexiones tempranas y luego a un algoritmo de reflexiones tardías. Es esto correcto ?
Ahora, encontré un extenso artículo sobre la parte de reflexiones tardías, utilizando la Red de Retraso de Comentarios ( REDUCCIÓN DE LOS REQUISITOS DE REVERBERACIÓN ARTIFICIAL UTILIZANDO REDES DE RETARDO DE VOTACIONES VARIANTES ). Por lo que he leído, FDN es una forma de simulación de reflexiones tardías de alta calidad, no demasiado expansiva (CPU sabia). Además, supongo que puede controlar la compensación de calidad / carga de la CPU cambiando el número de líneas de retraso.
Sin embargo, no tengo ni idea de cómo programar algo de las reflexiones tempranas (¿recuerdas? Soy realmente ignorante en el dominio DSP).
Me parecería lógico utilizar una especie de retardo múltiple, que tiene la ventaja de ser fácil de programar y de bajo costo computacional. Pero eso suena demasiado simple para ser verdad.
Además, mi instinto me dice que uno o varios filtros deben incluirse en algún lugar de la ruta de la señal.
¿Podría alguien aclararme un poco este tema?
Dos notas:
- No busco una reverb de convolución en absoluto. Realmente no me importa el realismo de la reverberación, pero en cambio quiero una buena reverberación, modificable, no hambrienta de CPU.
- Además, la parte de codificación no es lo que me preocupa, de lo contrario pediría en stackoverflow. Es realmente la parte de DSP, y solo esa parte, que busco :)