I've been intending to build a rough Lexicon reverb clone in Axoloti since I found this talk that Tom Erbe gave on the process of designing the Make Noise Erbe-verb.
It's extremely useful as he goes into pretty great detail about the history of feedback delay network based reverbs & demonstrates various different topologies (including one from a classic Lexicon verb) and talks about the relative advantages of each (& the reasoning for those developments).
Reverbs creation
Thanks for this reminder about Tom Erbe. I love and use his plugins alot. Found this paper about Erbe-Verb:
http://quod.lib.umich.edu/cgi/p/pod/dod-idx/building-the-erbe-verb-extending-the-feedback-delay-network.pdf?c=icmc;idno=bbp2372.2015.054
which inspired me to build this FDN reverb (Erbe-Verb utilizes cortex m4 too, by the way)
FDN-Demo.axp (97.5 KB)
Feel free to modify it for optimisations and improvements. I wouldn't mind against proper infinite sustain for example
Slightly optimized update (eats 29% CPU)
FDN-DemoUPD.axp (94.5 KB)
March 2016 - Effects Patches (challenge/discussion)
I looked at this FDN reverb and it looks good. Having only four lines in the tank (the part that generates a reverb tail by feeding back the signal on itself) is a bit low, but understandable considering the limitations we’re dealing with here.
The only thing that I would have done differently would be to have a series of allpass filters placed before the main reverb tank; by having five to ten all pass filters (filter/allpass.axo) in series before the main tank, we can smear percussive transients so that they do not rattle in the reverberant tail. Another way to smear the transients is to use a short noise burst in a convolution; even a 10-30ms noise burst convoluted should reduce or eliminate the rattle of a percussive sound before it hits the main reverb tank. I don’t see a convoluter in the objects, but the CMSIS library ARM made and included in the main Axoloti distribution has a few optimized convolution libraries.
I also find it interesting that all four lines in this FDN tank have the same initial delay time, but, of course, since they are modulated differently, they end up having different delay times.
Also: While the Schroeder reverberator is frequently published in the academic community, it’s almost never used commercially. It tends to sound metallic and unpleasant; even the highly optimized “Freeverb” Schroeder reverb (which probably sounds as good as a Schroeder can) doesn’t sound that good to my ears. One good starting point is the Griesinger-based (that means Lexicon) reverb algorithm (the “figure eight” design), which became a matter of public record back in 1997: https://ccrma.stanford.edu/~dattorro/EffectDesignPart1.pdf
Thanks for your feedback and this tutorial, interesting read. I suspect, Jon Dattorro is responsible why my ensoniq dp/2 sounds so good.
Another thing: Reading Erbe’s paper, I observe that his FDN has an allpass before each delay line in the FDN tank, but you design seems instead to have a highpass filter instead of those allpass filters right after the lowpass filters (and before the delay lines). Also, there is a FDN4 object (reverb/fdn4.axo) but it does not appear to have modulated delay lines in its tank, so it should be more static sounding than the tank you made.
There are 4 patchers right after hipass filters. Each patcher contains 2 xfading allpass filters with different delay times since we can't modulate them (yet).
Module requests
Thanks for pointing out that those allpasses hidden in the patchers in the middle of the FDN tank.
I wonder how much the sound will suffer if we just use static allpasses in the reverb tank, compensating for that by using a six-line FDN instead of a four-line FDN and by putting 10 static allpasses in series before the main FDN tank.
Time for me to get my own Axoloti and find out for myself.
this is sounding pretty lush! using it and comparing it to @kausto's effort - very different reverbs!
ill probably end up using the Schroeder for a lot more sounds, but the Keith Barr reverb lends some really interesting textures to standard house/techno sequences
i cant get either of these to open in the latest release :[
Thanks @kausto for your reverb patches, I'm really enjoying them, they sound very nice. Great work
I made more hi-fi version with improved modulation section. It consumes 42%CPU and almost whole SRAM
LushFDN.axp (93.4 KB)
Wishlist of objects
https://clyp.it/vb4bfvw0
Little example (made with more early version which had improved sound engine but non-improved modulation section).
Synth1 VST is sequenced in Renoise being sent to Axoloti and then returns back into Renoise.
https://clyp.it/sh0bo2rl
This one was made with latest version. I'm pretty impressed
Amazing! Sounds really great. Insert a pitch shifter in a feedback loop and you would be in Brian Eno heaven!
i rebuilt that keith barr reverb in pure data ... with a few added twists like rhythmic/chaotic modes. i used higher order primary numbers for the allpass filters and no time shifts so its more a cross between an echo chamber and a reverb.
here is a track with it, sound source is a tiny yamaha qy-10 sampler: http://tindeck.com/listen/fezoa
.
.