Nosredna
Nosredna

Reputation: 86196

Good audio reverb source?

Is there any good C or C-like source code for an audio reverb (besides Freeverb). There are endless examples of low-pass filters that sound great, but it's terribly difficult to find source for a good-sounding reverb.

Why is that? Is it a hard enough problem that the good implementations are held onto and not published?

Upvotes: 13

Views: 9400

Answers (4)

Robert Harvey
Robert Harvey

Reputation: 180787

How about this one? I know you said you didn't want freeverb, but this is episode 3 of freeverb, and to my eye it looks like it has been vastly improved.

alt text
(source: soundonsound.com)

This version is a convolution reverb that supports impulse response. For those of you who don't know what that is, engineers take microphones into a space that they want to model (i.e. a performance hall) and fire a starter pistol, measuring the echoes produced. These echoes are then used to model the reverb. This process provides a very realistic reverb, that mirrors the characteristics of the performance hall.

http://freeverb3.sourceforge.net/

Upvotes: 8

kent
kent

Reputation: 6566

realistic reverberation algorithms are a bit of the 'holy grail' of audio DSP programming... there are two basic approaches in the pro-audio market today:

  • convolution reverb (using impulse responses)
  • delay/feedback/dampening networks

the main challenge behind impulse response convolution has been the efficiency versus quality tradeoff (incl. latency!). whereas the main challenge behind delay matrix networks has been generating vast lattices of delays with little harmonic re-inforcement.

professionals pay vast amounts of money for realistic sounding reverbs... a "good" sounding reverberator can retail for $2000+, and "really good" ones for much more.

welcome to the pro-audio industry...

Upvotes: 6

Dave Gamble
Dave Gamble

Reputation: 4174

You could do a lot worse than read John Dattorro's paper on the subject found here, on his homepage. Dattorro worked at Lexicon and the paper I've referenced includes extensive discussion on the design of high quality reverb.

Outside of this, the various links at musicdsp, and scant reference in the literature, the design of great reverb is shrouded in secrecy. The finest reverbs are designed either by people who have worked with the designers of the last generation of great reverbs, or by obsessives who invest extraordinary quantities of time into the subject. In either case, the designers seem to become quite tight-lipped regarding their methodologies.

Upvotes: 4

MusiGenesis
MusiGenesis

Reputation: 75296

Are you kidding? Reverb is the easiest thing in the world to do programatically:

for (int i = 0; i < input.Length; i++)
{
    output[i] += input[i];
    output[i + delay] += input[i] * decay; 
}

I write this kind of stuff full time now, so maybe it just seems easy. Do you mean you're looking for more general echo or spatial effects, that might include frequency-modulated delay lines and chorusing and so on?

Upvotes: 10

Related Questions