[PD] [biquad~] as cyclone's [allpass~]?

Alexandre Torres Porres porres at gmail.com
Mon Oct 7 05:24:23 CEST 2013


cool, could you readapt the patch then? I'd appreciate that a lot as I'm
just not being able to nail it. It'd be really careful. Thanks


2013/10/6 Mike Moser-Booth <mmoserbooth at gmail.com>

> Yeah, I tend to use them for feedback loops because they only need to be
> the block size. Though now that I think about it, you don't need them in
> this case. You can just feed [vd~] in to [delwrite~] without that silly
> order forcing I did.
>
> .mmb
>
>
> On Sun, Oct 6, 2013 at 8:43 PM, Alexandre Torres Porres <porres at gmail.com>wrote:
>
>> 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 at 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 at gmail.com> wrote:
>>>
>>>> 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at iem.at mailing list
>>>>>>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Pd-list at iem.at mailing list
>>>> UNSUBSCRIBE and account-management ->
>>>> http://lists.puredata.info/listinfo/pd-list
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20131007/41ace391/attachment-0001.htm>


More information about the Pd-list mailing list