Pesquisei um pouco neste site, mas surpreendentemente não encontrei muita informação relevante e meu conhecimento do DSP é muito, muito limitado.
Meu objetivo é bem simples: quero programar um reverb algorítmico em C ++ que pareça muito bom. Ou, mais exatamente, a melhor opção seria deixar o usuário final escolher o compromisso entre qualidade e uso da CPU.
Do que descobri até agora, é que, para criar um reverb, você deve alimentar o sinal seco em um algoritmo de reflexão precoce e depois em algo de reflexão tardia. Isso está correto?
Agora, encontrei um artigo extenso sobre a parte das reflexões tardias, usando a Rede de Retardo de Feedback ( REDUZENDO OS REQUISITOS DE REVERBERAÇÃO ARTIFICIAL USANDO REDES DE ATRASO DE FEEDBACK VARIANTES ). Pelo que li, o FDN é uma maneira de alta qualidade e não muito expansiva (em termos de CPU) de simular as reflexões tardias. Além disso, acho que você pode controlar a troca de qualidade / cobrança da CPU, alterando o número de linhas de atraso.
No entanto, não tenho absolutamente nenhuma idéia de como programar as primeiras reflexões (lembre-se? Sou realmente ignorante no domínio DSP).
Seria lógico para mim usar um tipo de atraso múltiplo, que tem a vantagem de ser fácil de programar e computacionalmente barato. Mas isso parece simples demais para ser verdade.
Além disso, meu instinto me diz que um ou vários filtros devem ser incluídos em algum lugar no caminho do sinal.
Alguém poderia esclarecer um pouco esse tópico para mim?
Duas notas:
- Não estou buscando um reverb de convolução. Eu realmente não me importo com o realismo do reverb, mas, em vez disso, quero um bom som, tweakable, para não reverb com fome de CPU.
- Além disso, a parte de codificação não é o que me preocupa, eu perguntaria no stackoverflow de outra forma. É realmente a parte DSP, e exatamente essa parte, que eu estou procurando :)