Hi,
I'm looking for way to built a "frozen" reverb. Is there anybody who knows how to built one. Or maybe someone has ever done that.
I'll apreciate any clue, or advice.
Frozen reverb
Hi,
I'm looking for way to built a "frozen" reverb. Is there anybody who knows how to built one. Or maybe someone has ever done that.
I'll apreciate any clue, or advice.
See /pd/doc/3.audio.examples/G08.reverb.pd -- if you set the feedback to 100% it lasts forever. The problem is if you keep feeding audio into it, it gets louder and louder...
Attached is a really simple reverb abstraction based on G08.reverb.pd, next post will be an example of adjusting the feedback level so it doesn't blow up.
"Frozen reverb" is a misnomer. It belongs in the Chindogu section along with real-time timestretching, inflatable dartboards, waterproof sponges and ashtrays for motorbikes. Why? Because reverb is by definition a time variant process, or a convolution of two signals one of which is the impulse response and one is the signal. Both change in time. What you kind of want is a spectral snapshot.
Claudes suggestion above, a large recirculating delay network running at 99.99999999% feedback.
Advantages: Sounds really good, its a real reverb with a complex evolution that's just very long.
Problems: It can go unstable and melt down the warp core. Claudes trick of zeroing teh feedback is foolproof, but it does require you to have an apropriate control level signal. Not good if you're feeding it from an audio only source.
Note: the final spectrum is the sum of all spectra the sound passes through, which might be a bit too heavy. The more sound you add to it, with a longer more changing sound, the closer it eventually gets to noise.
A circular scanning window of the kind used in a timestretch algorithm
Advantages: It's indefinitely stable, and you can slowly wobble the window to get a "frozen but still moving" sound
Problems: Sounds crap because some periodicity from the windowing is always there.
Note: The Eventide has this in its infiniverb patch. The final spectrum is controllable, it's just some point in the input sound "frozen" by stopping the window from scanning forwards (usually when the input decays below a threshold). Take the B.14 Rockafella sampler and write your input to the table. Use an [env~]-[delta] pair to find when the
input starts to decay and then set the "precession percent" value to zero, the sound will freeze at that point.
Resynthesised spectral snapshot
Advantages: Best technical solution, it sounds good and is indefinitely stable.
Problems: It's a monster that will eat your CPUs liver with some fava beans and a nice Chianti.
Note: 11.PianoReverb patch is included in the FFT examples. The description is something like "It punches in new partials when theres a peak that masks what's already there". You can only do this in the frequency domain. The final spectrum will be the maxima of the unique components in the last input sound that weren't in the previous sound. Just take the 11.PianoReverb patch in the FFT examples and turn the reverb time up to lots.
Use the Source.
thanks a lot for your quick answer.
I'll have a look to Claudes stuffs and to obiwannabes. Anyway, thank you for your very interesting, and very sharp explaination of the so-called "frozen reverb". It will help me to get clear with it.
Sorry, wannabe: I was looking for that 11.PianoReverb patch, but couldn't find it. Where are these fft examples exactly?
It's actually Help Browser -> PureData -> 3.audio.examples -> I08.pvoc.reverb.pd
thanks. may I ask if you know any patch with a similar scheme that is well documented? I'm looking for an "infinite reverb", or sound freeze. But I never got to study the fft objects that well. Too many imaginary numbers for me to understand
Freeverb~ has an option to toggle this effect
lead,
that's true, and it works quite well with reverb. but I couldn't get the settings right to get a pure "freeze sound", without any timbre changes in it - even after I reduced all parameters (room size, etc) to a minimum. do you have any suggestions?
João
Oops! Looks like something went wrong!