My first contact with the digital audio, a work done during my academic studies. Basically it was to implement the audio processing illustrated below.

If we study this scheme can be seen that the stereo input signal is converted to mono and that there isn't any output branch. That's because the output is a linear combination of the different nodes of the scheme, each of them delayed a number of samples.
Left channel output
float outputL = null;
outputL = scale_factor * NODE1[266];
outputL += scale_factor * NODE1[2974];
outputL -= scale_factor * NODE2[1913];
outputL += scale_factor * NODE3[1996];
outputL -= scale_factor * NODE4[1990];
outputL -= scale_factor * NODE4[187];
outputL -= scale_factor * NODE5[1066];
Left channel output
float outputL = null;
outputL = scale_factor * NODE1[266];
outputL += scale_factor * NODE1[2974];
outputL -= scale_factor * NODE2[1913];
outputL += scale_factor * NODE3[1996];
outputL -= scale_factor * NODE4[1990];
outputL -= scale_factor * NODE4[187];
outputL -= scale_factor * NODE5[1066];
Right channel output
float outputR = null;
outputR = scale_factor * NODE6[353];
outputR += scale_factor * NODE6[3627];
outputR -= scale_factor * NODE4[1228];
outputR += scale_factor * NODE5[2673];
outputR -= scale_factor * NODE1[2111];
outputR -= scale_factor * NODE2[335];
outputR -= scale_factor * NODE3[121];
Listening the code
All this stuff has no sense without any actual implementation in reality.
Here you can listen a piece of an original composition, without the effect applied.
And finally here is the same piece of song with the reverb applied. Sometimes you hear a very annoying background noise, but to be my first effect (about year 2003) I am satisfied.
You can download source code an read more about here.