I did a bit of searching on this site but surprisingly, I didn't find much relevant information, and my knowledge of DSP is very very limited.
My goal is quite simple : I want to program an algorithmic reverb in C++ which sounds really good. Or more exactly, the best option would be to let the end user choose the trade-off between quality and cpu-usage.
From what I found out so far is that, to create a reverb, you must feed the dry signal into a early reflections algorithm, then to a late reflections algo. Is this correct ?
Now, I found an extensive article on the late reflections part, using Feedback Delay Network (REDUCING ARTIFICIAL REVERBERATION REQUIREMENTS USING TIME-VARIANT FEEDBACK DELAY NETWORKS). From what I've read, FDN is a high quality, not too expansive (cpu wise) way of simulating the late reflexions. Furthermore, I guess you can control the quality/cpu charge trade-off by changing the number of delay lines.
However I have absolutely no idea of how to program the early reflections algo (remember ? I'm really ignorant in the DSP domain).
It would sound logical to me to use a kind of multi delay, which has the advantage to be easy to program and computationally inexpensive. But that sounds too simple to be true.
Furthermore, my instinct tells me that one or several filters must be included somewhere in the signal path.
Could some one please clarify this topic a bit for me ?
Two notes :
- I'm not after a convolution reverb at all. I don't really care about the realism of the reverb, but instead I want a good sounding, tweakable, not to cpu-hungry reverb.
- Also, the coding part isn't what worries me, I'd ask on stackoverflow otherwise. It's really the DSP part, and just that part, which I'm after :)