I tried to implement something like it and didn't get what I hoping for either. I think there's a lot of work in tuning the delay times. But it's not just you!
I wonder if Loti is powerful enough for a decent convolution reverb...
I tried to implement something like it and didn't get what I hoping for either. I think there's a lot of work in tuning the delay times. But it's not just you!
I wonder if Loti is powerful enough for a decent convolution reverb...
Have also tried Many different approaches With No luck yet.
The next thing I'm gonna try is convolution. Acoloti only has a fir filter but some say it doesn't have enough coefficients, only 16. I'll try and serial connect a few of them and see wHat happens. Haven't explored into thus before so it's just going to be an experiment to check if serial connecting fir could be a solution. I did ask if Johannes would consider implementing a new object hit convolution but haven't heard from him on this issue yet. Will see ehat happens?
convolution - Johannes has stated it should be possible for short convolutions (<33ms), see here
this will be cool for certain kinds of things, e.g. cabinets, resonators.
but need something different for longer/lush reverbs... I'm hoping to do this by the delay line methods, and just hoping I can some how control the high frequency content a bit. (perhaps LP in feedback loops), as I'm find current reverbs are a bit metallic for my taste.
(though they are nice in some contexts)
if I can get a nice reverb going, Id leave it permanently on one of my Axolotls
Yeah, i even found this NM G2 implementation which i liked alot when i had one. Iirc it sounded pretty lush and big compared to G2 stock module.
http://electro-music.com/patchviewer/?URL=/forum/download.php?id=24236
Could be good exercise to port it to axoloti i guess.
Also this one (you should click FX button to see it) seems to be something like Valhalla UberMod i guess. I'm not familiar with this patch.
http://electro-music.com/patchviewer/?URL=/forum/download.php?id=31062
http://electro-music.com/forum/viewtopic.php?p=364638#364638
I think, with emphasis on think, that he actually stated the opposite, that it is not possible. From same thread by Marlow:
Johannes answer to that:
I think JOhannes explained what was possible if we had a convolution object. Or maybe I udnerstand it wrong. Anyway, I stil havent given up on it. I think that chaining up a few FIR objects could be a solution. Since no one answer this question, I interped that like no one has tried and it could be possible Trying to be optimistic Going to try it and see how it works out. Still need to do a lot more reading before I know how to grasp this.
Have tried making many different verbs using delay lines and havent really come up with anything that sounds "natural" yet. But havent given up on the idea yet either
I have also tried making another granular reverb, using tables, not delay lines. First version sucked second version a ittle bit better and third version I hope will be even better and actually sound like a reverb
I spent quite some time looking up reverb algorithms, and I have to say Sean from valhalladsp has a lot of information (and knowledge, and talent) about reverbs of all kind.
Using axoloti, I tried to do a Schroeder Reverberator using all pass filters and feedback comb filters. The problem was I had no idea on what I was doing (I'm very bad in all sciences), and tuning the filters and delay times was very much hit and miss. But it didn't sound too bad sometimes.
But I'd love to hear some new sounding reverbs in Axoloti.
I wouldn't mind understanding better how the reverb object works actually too.
If anyones is interested in digging into FIR filters and possible creation of reverb/amp modeling, here is what I have found for now:
FIR filter basics:
http://dspguru.com/dsp/faqs/fir/basics
Introduction to FIR filters. Pretty cool video explanation:
FIR and reverb from some university:
http://musicweb.ucsd.edu/~sdubnov/Mu172/Lectures/ReverberationDevicesAndGettingStarted.pdf
Sampling, convolution & FIR filtering:
http://www.diku.dk/~jda/biosignal/lab07.pdf
IIR filter basic(used for longer verbs). We dont have this in Axoloti, though:
http://dspguru.com/dsp/faqs/iir/basics
This is what I have found by now. I wish my math was better. Some of the stuff here i dont understand. But i guess watching them a few times brings some clarity to issue.
Yep. They make some of the best plug ins out there. Do you have a link to Seans info on reverb? would love to read it.
another +1 for vahalladsp reverbs, love them all
ooh, lots of information to digest in this thread... keep it coming, some good late night reading !
@jaffasplaffa , axoloti allows you to write your own objects, so anyone with the relevant experience could write this today.
(reality is, its probably not C/C++ experience thats the hurdle, but the DSP/maths )
I hope the object editor/community library will expand the object base outside of what johannes has time to write.
about convolution:
Possible but nowhere going to be close to an efficient solution, this needs a dedicated object. In fact I developed a draft in the meantime that does 1024 sample direct convolution at 68% load, which I'll share when it's ready.
That will not scale up to much larger impulse responses as the load scales linearly with impulse response length (unlike FFT convolution and partitioned FFT convolution, they deal much better with long impulse responses, but those algorithms are much more complex to implement and I'm not sure it is possible, and I have no current plans to develop this). It is a solution for speaker cab modelling or adding "instrument body" resonances, but not for reverb.
In contrary, almost all filters in the object library are IIR.
A good didactic resource on artificial reverb is
https://ccrma.stanford.edu/~jos/Reverb/
Cool thanks guys
Yeah some good info here
I wish I had that skill, then I would be all over it. Anyway, Axoloti can do so much al ready, with all the low level objects. In the beginning I asked you guys a lot for new objects, but I know you have enough to do and at the moment are focusing on other things than objects, so I just try to work with what I have, efficient or non efficient
Anyway, it is also a learning process, figuring out how to create effects in different ways and just working with dsp in general
Sounds pretty awesome. Cant wait to see what that can be done with it
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).
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)
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).
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.