Page 1 of 1

Reverse Reverb

Posted: Fri May 08, 2009 10:47 am
by youngpedals
Hello All,

I'm new to the forum and new to DSP (although i did a little FPGA work in school).

I am interested in making a reverse reverb. The only specifics i understand is the impulse response. Instead of the impulses increasing in magnitude like traditional "Karaoke" reverbs, its exactly the opposite. Would this effect still be realized with all pass filters? Could someone maybe get me going with pseudo code if not?

A good example of this effect is the Yamaha SPX-90. Yamaha gives a little theory/ impulse responses in the original manual.

Thanks for your help

Posted: Sun May 10, 2009 10:35 am
by frank
Basically a reverse reverb is a multi-tap delay with exponentially increasing coefficients and some all-passes. Can be done in an FV-1.

Reverse Reverb

Posted: Thu May 14, 2009 12:57 pm
by youngpedals
Hello Frank,

On the topic of the stereo inputs with respect to the code:

I'm debating over stereo vs. mono operation, so i'm looking at ways to have both available. Whats the best way to do this? For the mono case: feed the signal into InputLeft AND invert (via op-amp) into InputRight, or just use InputLeft as a default? In either case, if i used both input channels, would i have to duplicate the code for each "channel?"

I've done stereo outputs, but i'm fairly new to stereo inputs. I'm thinking the limitation here is the available memory, but i guess thats where you can answer this question.

Posted: Thu May 14, 2009 9:02 pm
by frank
Well, I am no expert with reverse reverb but for a normal reverb, the inputs are summed together and fed into the reverb routine. We just select differnt taps for left and right

Posted: Fri May 15, 2009 6:51 am
by youngpedals
I'm certainly no expert on reverse reverb myself (working on that :D ). But i think following your "normal reverb" routine would work great. So, this input summation is done as the first chunk of code, then you apply the reverb code to that one entity? i don't quite see how this works together with tap selection like you say. Is there a good code example you can point me at?

Remember this is very new to me, and i'm going through tons of code examples (this is definitely not verilog!). thanks for all the help.

Posted: Fri May 15, 2009 9:21 am
by frank
Best place to start are Keith's notes on reverb: http://www.spinsemi.com/knowledge_base/ ... erberation

Then review the reverb code in the download area, rom_rev1.spn is a nice one and a bit more complex, it does put left and right through separate all-passes before injecting the results into the same reverb loop (at different points).

Nope, this isn't verilog. I did sim the chip using verilog but don't think that helps at this stage :)

Posted: Tue Jun 09, 2009 6:38 am
by youngpedals
Hey frank,

I've been going through code examples, and i'm slowly getting the hang of things. Now that i'm understanding the reverb algorithms more and more, i'm about ready to try and tackle the reverse reverb.

So my main question is about coefficients in the all-pass filters. How can i calculate these to get the exponential (increase) response i'm looking for in the reverb envelope?

thanks

Posted: Tue Jun 09, 2009 9:12 am
by frank
As I understand it, the exponentially increasing coefficients are the tap coefficients, not the all-pass coefficients. Try just using 0.5 for the all-pass filters. As to the number of taps and the coefficients, best to just experiment. I know of no method to calculate the positions or values.