Reverse Reverb

Algorithm development and general DSP issues

Moderator: frank

Post Reply
youngpedals
Posts: 7
Joined: Fri May 08, 2009 10:05 am

Reverse Reverb

Post 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
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Post 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.
Frank Thomson
Experimental Noize
youngpedals
Posts: 7
Joined: Fri May 08, 2009 10:05 am

Reverse Reverb

Post 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.
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Post 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
Frank Thomson
Experimental Noize
youngpedals
Posts: 7
Joined: Fri May 08, 2009 10:05 am

Post 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.
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Post 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 :)
Frank Thomson
Experimental Noize
youngpedals
Posts: 7
Joined: Fri May 08, 2009 10:05 am

Post 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
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Post 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.
Frank Thomson
Experimental Noize
Post Reply