[linux-audio-dev] Simple reverbs

David Olofson david at olofson.net
Tue Jan 28 03:57:00 UTC 2003


Well, I got the new device subsystem working in Audiality, although 
I've only finished the SDL audio driver. ALSA 0.9 rawmidi more or 
less finished, OSS audio is a mess, and there's no OSS rawmidi yet. 
(Although that's rather trivial; basically a stripped down version of 
ALSA rawmidi.)

Anyway, I got sidetracked - as usual. ;-)

First, I started playing with a noise modulated delay line, but didn't 
find the results very interesting. So I decided to run a bunch of 
fixed feedback delay lines in parallel - and that sounded a lot more 
interesting: It became a pretty neat reverb. :-)

With 16 delays and exponential or exponential +/- Golomb ruler, it 
sounds great for "normal" sounds, but has some problems with 
transients; it's not dense enough. However, with these uneven delay 
time distributions, it doesn't sound metallic at all. It rather turns 
the transients into some sort of "noise" (sounds like random granular 
synthesis, basically), that soon becomes this "shhhh" most of us 
desire.

With even/linear delay time distribution, it still sounds pretty good, 
but it starts to remind of a gong simulator or something. Plate 
reverb, maybe... Interesting, but not what I was looking for - 
although I'm throwing all interesting variants in, so they can be 
selected through a plugin control.

With 32 delays, it starts to sound *real* interesting - but it also 
starts to abuse my PC133 RAM pretty seriously. It won't run real time 
on my P-III 933 above some 48 delay lines, although this is with 32 
bit buffers of 8192 samples each. This can be improved upon a lot, 
since I'm only using a tiny fraction of the maximum delay times with 
that dense settings. (Like 300 +/- 100 samples.) Also, it's all 
integer, so I could probably use 16 bits.


I have no feedbacks in beetween delays; just one local, LP filtered 
feedback per delay. Every other pair of delays is stereo reversed. 
Tried some network feedback setups, but I couldn't figure out any 
truly useful configurations.


Untested idea: Have multiple feedbacks for each delay line. (The old 
"reverb" of Audiality is actually just one stereo delay line with 
multiple feedbacks, BTW.) The idea is that, while not as effective as 
separate delays, this is a lot cheaper, so I might get more 
density/cycle.


Oh, and I'll try the well known delay time modulation trick, of 
course. Maybe using filtered noise instead of periodic LFO waveforms?


Thoughts? Any ideas for useful cross feedback configurations?


//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---------------------------> http://olofson.net/audiality -'
   --- http://olofson.net --- http://www.reologica.se ---




More information about the Linux-audio-dev mailing list