awesome, thanks a lot, really helpful. I was suspecting something like that, but couldn't get to this implementation.
And then, one question, doesn't the feedback given by tabsend theoretically count as a second delay line?
cheers
2013/10/6 Mike Moser-Booth mmoserbooth@gmail.com
It's not that either implementation is wrong, they are just two ways of doing the same thing. The version that uses two delay lines is the Direct Form I. By doing some rearranging of the filter, you convert it to the Direct Form II, which only uses one delay line. The end results are the same, just one is more efficient.
Look inside [pd allpass] in the attached patch for an ASCII art illustration of it.
On Sat, Oct 5, 2013 at 3:35 PM, Alexandre Torres Porres porres@gmail.comwrote:
on curtis roads' computer music tutorial, page 418, it shows the same formula, but the figure of the design seems to contradict it. I'm confused. I don't seem to get the same result with one delay line. maybe if you send me a patch that sounds the same as cyclone's allpass I can check it.
cheers
2013/10/5 Alexandre Torres Porres porres@gmail.com
i dont think there is one way or proper way of doing this, and it is a general form, from an equation you can find in other references. So, I don't know why, but Max/Cyclone's allpass use this one: y(n) = -g x(n) + x(n)-(DR/1000) + g y(n)-(DR/1000)
2013/10/5 Chris Clepper cgclepper@gmail.com
That means cyclone's allpass~ is not done properly. Why not do it the standard and more efficient way? When it comes time to do dozens of allpasses it will make a difference.
On Sat, Oct 5, 2013 at 1:00 PM, Alexandre Torres Porres < porres@gmail.com> wrote:
but this way it won't be the same as cyclone's [allpass~], the way I did it is equivalent to it (and max's).
cheers
2013/10/3 Chris Clepper cgclepper@gmail.com
You only need one delay line for the allpass.
feedforward = input * -gain feedback = delayout * gain delayin = input + feedback output = delayout + feedforward
http://www.spinsemi.com/knowledge_base/effects.html#Reverberation
On Thu, Oct 3, 2013 at 11:29 AM, Alexandre Torres Porres < porres@gmail.com> wrote:
> i hope i guess i figured it out on how to implement it with delay > lines. see attachment. And I realize you can't do this with [fexpr~] or > [biquad~] because the sample delay length is kinda big for that, right? > > cheers > > > 2013/10/3 Alexandre Torres Porres porres@gmail.com > >> cool, but do you know how to implement cyclone's [allpass~] with >> it? >> >> It's really unclear to me what is the relation of this pass filter >> with the one you can generate with biquad coefficients, or with raw >> poles/zeros objects for that matter. >> >> Well, one way or another, it's also unclear to me how to do it with >> delay lines. >> >> seems that it is related to a comb filter, right? >> >> cheers >> >> >> 2013/10/2 Chris Clepper cgclepper@gmail.com >> >>> Allpass for reverb is easy to do with delwrite~ and vd~. I used >>> 32 of them today to recreate a famous 'deep space' reverb. >>> >>> >>> On Wed, Oct 2, 2013 at 1:53 AM, Alexandre Torres Porres < >>> porres@gmail.com> wrote: >>> >>>> hi there, i see the biquad's coefficients can be set as an >>>> allpass filter, generated by frequency and "Q" parameters. But can it do >>>> the same as cyclone's [allpass~] filer? If yes, them how since the >>>> parameters for [allpass~] are different (delaytime and such). >>>> >>>> One way or another, I guess that my real question is: how to >>>> implement [allpass~] from vanilla objects? >>>> >>>> thanks >>>> >>>> _______________________________________________ >>>> Pd-list@iem.at mailing list >>>> UNSUBSCRIBE and account-management -> >>>> http://lists.puredata.info/listinfo/pd-list >>>> >>>> >>> >> >
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list