sverb, a simple order 15 CFDN reverb.
It should sound good.
It was created under GNU/Linux. It may work on a lot of
systems with OSS sound support.
It is in the public domain.
Maybe some code inside it is based on patented stuff, I don't know. Check it if you want to use it in commercial applications.
Any improvement is very welcome.
February, 7th, 2006.
Some presets were added, found with
generate.c. Some minor fixing in the code also.
It begins to be something!
January, 24th, 2006.
There was no
free in some function! (
What a shame and pity!
I added a little program (
generate.c) that will guess values
for the delay lines. It's far from perfect. If you know a good method
to generate good values for the delay lines, contribute!
January, 4th, 2006.
Fixing compiling errors for
(You should not forward-declare functions inside functions, at least
if they are static.)
January, 2nd, 2006.
The initial release. Not very good parameters. Help wanted!
You need gtk+ 2.0. Audio is based on OSS.
README file to install it.
Launch the program. It has documentation.
It is of course possible to extract the algorithm to use it in other programs. Just read the code, it's all explained there.
The early reflections are not modeled.
Some low-pass filters could be added before/after the reverb stage, to improve naturalness.
For you to know what kind of sound you are looking for, here (3,909,010 bytes) are some reverbs coming from some places of the Internet (I think I remember I took them from here, but the ftp server that hosted the files has erased them, so I provide them). Some sound very good (AcousticMirror, HyperVerb). Listen to them to know what to target.
This code is based on serious and nice research done by other people.
The main paper it is based on is
Diffusive Yet Efficient Feedback Delay Networks for Artificial
Reverberation by Davide Rocchesso.
There is also Circulant and elliptic feedback delay networks for artificial reverberation by Davide Rocchesso and Julius O. Smith.
The webpage of Julius O. Smith on reverberation is a must-read.
With the fast computers of today, it is possible to directly use an impulse response and do the convolution in realtime.
Some software do it. For the free world, there is BruteFIR.
You will need some impulse responses. Go to NoiseVault to get some. There is also echochamber.ch.
(I should provide a comparison between such an approach and sverb, both in terms of quality and of CPU usage.)
I wonder if we can do good reverb with less CPU consumption. After all, a reverb is some kind of resonator which ends with some kind of white noise after a while. Do we need so much processing for that?
Are there some theoretical limits or is it that we didn't find the best way to do it yet?
Mon, 02 Jan 2006 11:09:54 +0100
Last update: Mon, 14 Apr 2008 13:36:03 +0200
Powered by a human brain, best viewed with your eyes (or your fingers if you are blind).