Hi Guys,
i'm currently in the process of trying to implement reverberation. For this i tried to implement a feedback combfilter (used in Schroeder's or Moorer's reverb algorithms), similar to this AW-video:
https://www.youtube.com/watch?v=rBiTogpym-Y&t=16s
AudioWeaver setup:
I set the feedback-gain to 0.75 and the Delay-Module to 1 sample and configured the feedback wire. For measuring, i sent an impulse from a "PeriodicFuncGen". It worked, but by looking at the impulse response i noticed, that in between the impulses, i got the set delay (1 sample) + an additional delay of 256 samples. So exactly the block size of the system.
For comparison i implemented the same combfilter in matlab (feedback_com.m), computed sample by sample, and of course it worked as it was supposed to do.
The comparison between both impulse responses:
Now here are my questions on that:
Is it actually possible to calculate it sample-wise in AW?
And if so, how to implement it without causing big CPU consumption?
Does anybody know if it even matters when having larger delay times (e.g. for application in reverb plugins) ?
And how is it actually implemented in real Reverb-PlugIns? How do they achieve that?
I'm quite a newbie to signal signal processing, so of course feel free to correct me if i get something completely wrong in understanding.
Furthermore, i also made the same process for a manual implemented allpass filter as shown here:
https://ccrma.stanford.edu/~jos/pasp/Allpass_Two_Combs.html
The problem is the same here, but with this behavior the allpass filter does not fulfill its actual purpose (namely a flat frequency response), right?
I found the AllpassDelay-Module in AudioWeaver and of course, this is working properly and is giving me the expected impulse response with no additional delay in between the impulses. But how is this Allpass-Delay-Module designed? Is it computing sample by sample? Unfortunately, i can't see the digital system shown for the Allpass on the "help" page within AudioWeaver.
For the sake of completeleness, here my measurements on the Allpass:
Layout to compare manual implemented allpass and Allpass Delay module:
Comparison of the to impulse responses:
I would be very grateful if somebody of you could help me out on that. Maybe i'm also missunderstanding something.
Maybe also somebody got some links or information for me of implemented reverb in audio weaver?
Greetings from Germany,
Henrik
7:00pm
Hello Henrik,
Single sampling processing is possible in the inner module code, but the overall AWD layout process' audio in blocks of data. This is why you are seeing the results you explain. Have you checked out our Reverb_Example.awd, located in the 'C:\DSP Concepts\<AWE Designer>\Examples' directory of your Audio Weaver Designer folder?
Thanks,
Kevin
10:26am
Hi Kevin,
okay, that's what i thought. Thank you!
So it doesn't seem to be a problem for "easy" feedbacks.
I just tested your Reverb_Example.awd, it sounds much better than my approaches did. But i would really get what the thoughts behind this were. Are there any further explanations for the design of this reverb? Except as the information in the Module User's Guide, as just describing the feedback. I'm asking this, because i'd like to have a more scientific approach on reverberation (need this for my thesis). But of course, i also read that a lot of this is trial and error...
Thanks, and i really appreciate your fast responses!
Henrik
11:14am
Hello Henrik,
Glad you were able to access the Reverb_Example.awd! What we have on our https://dspconcepts.com/docs page is the extent to which we have Reverb documentation, but there are many DSP/FX books and resources publicly available.
Thanks,
Kevin