High quality reverb algorithm 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 :)
You need to generate early reflections with a few taps of delays (= convolution with the sum of a handful of diracs) ; and the "tail" with what is usually implemented with a network of all-pass (AP) and comb filters.

The first part is trivial to implement but difficult to get to sound right. It might help to look at the positioning of peaks at the head of pre-recorded impulse responses to get an idea of what kind of responses are "natural". It's hard to make it easily parametrizable by a few settings, though you could get away with it by offering a bunch of presets for this part to get an "hybrid" reverb à la Virsyn Reflect.

The tail is where algorithmic reverbs shine (no pun intended), since it is easy to parametrize. The grandfather of algorithmic reverbs is Schroeder's algorithm. Note that it only generates a "tail", not early reflections - you could augment it with a few taps of delays to give it a head. It does not sound very good (very "grainy") but it's a decent start - with that you have something to mess with and it helps understanding the impact of each parameter. Many praised algorithmic reverbs, especially those from the 80s (Lexicon, Eventide, Publison) are just finely tuned topologies of all-pass filters and comb filters. I suspect this involved a lot of trial and error by trained ears who got very good at figuring out how changes in parameters or topology would sound, rather than any scientific approach. Here is another interesting read - showing Keith Barr's favorite reverb topology. The original midiverb might not be your definition of "high quality algorithmic reverb", but it sounded sweet, and it puts thing in perspective to know it was made with a "dsp" only capable of MACs with coefficients of 0.5...

Valhalla room is my favorite software algorithmic reverb - take some time to read its developer's blog to find inspiration about the kind of things that help getting it right.