How does reverse delay effect work?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

I've been curious about this for a while. How exactly does reverse delay or reverse reverb work? It's puzzling me because you have your delay buffers filled with samples a-z, and then you have your next batch of samples a2-z2 etc... But you cannot possibly play multiples batches of samples in reverse (z3-a3 then a2-z2 then z-a); eventually you have to stop 'looking ahead' because this is a real-time process. So how exactly do you take samples a-z, reverse them into z-a, and then somehow stitch this batch of samples to the next batch of reversed samples? Theoretically the sequential output batches wouldn't join up correctly.

So I have no idea. Does anyone have the answer?

Post

I believe traditional reverse reverb/delay is done by simply bouncing a track into audio, reversing the whole thing, applying reverb/delay and then reversing the result again. The audio itself is not reversed, rather just the effect.

If the impulse response of the reverb (or delay) is finite (eg. convolution reverb), then instead of going through the trouble of bouncing and reversing and re-reversing we can equivalently also just reverse the impulse response (and add latency to dry signal so it aligns).

Post

There's also quite famously been some reverse reverb programs in some hardware reverbs, which IIRC were achieved by adding a delay (something like half a second total, maybe more) with multiple taps in front of a short reverb. The taps of the delay start very quiet and then get louder, creating the impression that the reverb is backwards. The trick here is to select the average distance of the tabs, the increase in volume (= envelope) and the size/decay of the reverb so that it gels together to what could be a reverse reverb.

Reverse delays (i.e. not reverb) are commonly achieved by two or more parallel delay lines which take turns in filling their buffers in quiet, then play them back backwards aloud. The algorithm to fill a delay in quiet and play back backwards can be set up to do both simultaneously, so two delay lines are sufficient, even when doing some crossfading.

Post

I recently came across this paper (A Pitch Shifting Reverse Echo Audio Effect), which may have some useful ideas: https://ccrma.stanford.edu/~jingjiez/po ... Effect.pdf
My audio programming blog: https://audiodev.blog

Post

Here is one of the midiverb algos for reverse reverb.

https://gearspace.com/board/showpost.ph ... tcount=922

Post

A reverse delay or reverb can be implemented with two delays like Urs suggested. It might be tricky though to get musically meaningful results, since typcially the reversed audio would be out-of-sync.

Btw, this may be nit-picking, but if we reverse the reverb envelope is this not called a gated reverb?

Richard
Synapse Audio Software - www.synapse-audio.com

Post

Richard_Synapse wrote: Thu Jul 20, 2023 12:51 pm Btw, this may be nit-picking, but if we reverse the reverb envelope is this not called a gated reverb?
I thought gated reverb originally refers to a setup where the reverb is literally gated with a noise gate. Especially with drums you get a strong ambience on transients, but the gate cuts off the reverb decay early. Truncating an impulse response also results in a similar effect, although somewhat more "predictable" for better or worse. I suppose there's some similarity to reversed impulse response.

Then there's the inverse effect as well where you compress the reverb tail with dry audio in the side-chain, so you get more clarity for something like vocals with a stronger reverb filling the gaps, not sure what that one is called. Perhaps offtopic, but I suppose you could call that "gated" as well, because in a sense the dry signal is gating the reverb so the two don't overlap (or .. at least not as strongly).

Post

mystran wrote: Thu Jul 20, 2023 2:20 pm I thought gated reverb originally refers to a setup where the reverb is literally gated with a noise gate. Especially with drums you get a strong ambience on transients, but the gate cuts off the reverb decay early. Truncating an impulse response also results in a similar effect, although somewhat more "predictable" for better or worse. I suppose there's some similarity to reversed impulse response.
I thought the latter is standard, ever since the Nonlinear reverb from the AMS about 40 years ago, which is commonly referred to as a gated reverb. I personally don't see the purpose of a level-dependent reverb when we can have one that works exactly as intended, but as always there may be exceptions.

Richard
Synapse Audio Software - www.synapse-audio.com

Post

Richard_Synapse wrote: Thu Jul 20, 2023 3:00 pm
mystran wrote: Thu Jul 20, 2023 2:20 pm I thought gated reverb originally refers to a setup where the reverb is literally gated with a noise gate. Especially with drums you get a strong ambience on transients, but the gate cuts off the reverb decay early. Truncating an impulse response also results in a similar effect, although somewhat more "predictable" for better or worse. I suppose there's some similarity to reversed impulse response.
I thought the latter is standard, ever since the Nonlinear reverb from the AMS about 40 years ago, which is commonly referred to as a gated reverb. I personally don't see the purpose of a level-dependent reverb when we can have one that works exactly as intended, but as always there may be exceptions.

Richard
So... https://en.wikipedia.org/wiki/Gated_reverb
Gated reverb or gated ambience is an audio processing technique that combines strong reverb and a noise gate. As one of the more prominent effects in many pop and rock songs of the 1980s, it was brought to mainstream attention in 1979 by producer Steve Lillywhite and engineer Hugh Padgham while working on Peter Gabriel's self-titled third solo album, after Phil Collins played drums without using cymbals at London's Townhouse Studios. The effect is most quintessentially demonstrated in Collins' hit song "In the Air Tonight".
The page also tells us something about AMS:
One of the first electronic reverb units to be powered by a microprocessor was the AMS RMX16, which was introduced in 1982, and could replicate otherwise expensive and physically large methods of generating reverb effects.[13]

Gated reverb was used on countless drum tracks during the 1980s, to the point that the sound became a defining characteristic of that decade's popular music.[13]
My impession is that there is a long history in audio effects with regards to people trying to imitate something using a different method, which then sometimes becomes recognized as a separate effect. Feedback delays as substitute for expensive reverberators, phasers as substitutes for inconvenient tape flanging... and so on.

If there is a gated reverb effect in AMS units, it's entirely possible that it might be a different take in order to produce a technique that was newly becoming popular. I don't know how gated reverb in these units work, but arguably if you want to cut the tail short, then a truncated impulse response is certainly more predictable and easier to work with, where as the noise gate approach is something you could put on a record with existing gear before anyone actually built a specialized unit.. or even have the computing power to perform convolution.

There's actually a third way you can do the same thing: rather than using a separate noise gate, build the gate into an algorithmic reverb directly, so that it drastically increases damping once the tail decays below a threshold. This is arguably better than a separate noise gate, because if the gate opens again, it still prevents earlier already gated tails for reappearing, rather only the new signal gets a new tail... or you can detect the dry input level and run a timer that keeps the reverb algorithm active (ie. not strongly damped) for a certain time interval after the dry input drops below a threshold.

Lots of possibilities on how to implement the "cut reverb tails short" effect and I'd imagine most vendors might label most of them "gated reverb" independent of how exactly their variant works. :)

Post

Some of the old gated reverbs use a distinct set of feed-forward delays without feedback, followed by some diffusion. Similar to what many reverbs use to create early reflections, so simple stuff. Today of course convolution can be used to achieve any shape and density instead.

The third approach you mention is interesting, I don't think I've seen it yet (in fact I do not recall that many reverbs with a gate built in, which makes me wonder whether that classic reverb->gate chain is really that popular. From what I remember the vintage Yamaha SPX-90 multi-effect may have used this approach).

Richard
Synapse Audio Software - www.synapse-audio.com

Post

Richard_Synapse wrote: Thu Jul 20, 2023 6:31 pm The third approach you mention is interesting, I don't think I've seen it yet (in fact I do not recall that many reverbs with a gate built in, which makes me wonder whether that classic reverb->gate chain is really that popular. From what I remember the vintage Yamaha SPX-90 multi-effect may have used this approach).
I have absolutely no idea if anyone has implemented something like this, but it just seems like the most obvious approach if (1) we want to have an algorithmic reverb (2) we want to solve the "previous signal" problem when the "gate" reopens.

Post

mystran wrote: Thu Jul 20, 2023 2:20 pm I thought gated reverb originally refers to a setup where the reverb is literally gated with a noise gate. Especially with drums you get a strong ambience on transients, but the gate cuts off the reverb decay early. Truncating an impulse response also results in a similar effect, although somewhat more "predictable" for better or worse.
My understanding is that the reverb is in fact gated, but how that works is a little different from what you've described (or at least how I'm reading it). I believe that the transient opens the gate, but the effect relies on a hold that keeps the gate open for a short period (maybe 1/3 second or so depending upon musical demands) and the abruptly shuts. You could throw in some compression but that's not necessary if the impulse response is flat for the duration of the hold.

Post

dmbaer wrote: Thu Jul 20, 2023 8:27 pm
mystran wrote: Thu Jul 20, 2023 2:20 pm I thought gated reverb originally refers to a setup where the reverb is literally gated with a noise gate. Especially with drums you get a strong ambience on transients, but the gate cuts off the reverb decay early. Truncating an impulse response also results in a similar effect, although somewhat more "predictable" for better or worse.
My understanding is that the reverb is in fact gated, but how that works is a little different from what you've described (or at least how I'm reading it). I believe that the transient opens the gate, but the effect relies on a hold that keeps the gate open for a short period (maybe 1/3 second or so depending upon musical demands) and the abruptly shuts. You could throw in some compression but that's not necessary if the impulse response is flat for the duration of the hold.
Sure, lots of variations possible. Keying off the input with a gate hold might be more predictable.

Post

Rainwaves wrote: Wed Jul 19, 2023 8:19 am I've been curious about this for a while. How exactly does reverse delay or reverse reverb work? It's puzzling me because you have your delay buffers filled with samples a-z, and then you have your next batch of samples a2-z2 etc... But you cannot possibly play multiples batches of samples in reverse (z3-a3 then a2-z2 then z-a); eventually you have to stop 'looking ahead' because this is a real-time process. So how exactly do you take samples a-z, reverse them into z-a, and then somehow stitch this batch of samples to the next batch of reversed samples? Theoretically the sequential output batches wouldn't join up correctly.

So I have no idea. Does anyone have the answer?
A lowpass filter is a lowpass filter; a reverse delay is whatever the developer decides it is. Because you can only reverse over samples in the past, by continuing to play samples further in the past, and at some point you have to figure out what to do next.

For Echo Farm and the DL4 delay stompbox, I decided a reverse echo is: A normal delay, with feedback and modulation, but the delay line is read out in reverse. Note it takes twice as much memory per second of delay time to play in reverse. You are adding a sample from the input each sample period; if you only stepped back one sample each time, you'd stand still, so you need to step two samples to go the same rate in reverse. So, you'll run into the starting point in one second for a two-second delay (note: I mean this conceptually, between the read and write pointers—unless the delay time is the full length of the delay line, you'll have to reset the read pointer explicitly). At the point, you'll need roll back to the end (we're playing backwards, remember—end to start). There will be a glitch, so you need to get slightly more complicated and crossfade the start/end boundary.

Also, you mention buffers. I think you're talking about the input buffers that might be 64 samples, or whatever the user has configured, since you said "multiple batches". Realize those aren't your delay buffers, you need to keep your own, much larger delay buffer. You'd loop through it, processing a sample at a time and getting an output (probably your reverse-read delay mixed with the input sample), deposit it in the output buffer, and continue through all the samples.
My audio DSP blog: earlevel.com

Post Reply

Return to “DSP and Plugin Development”