<div dir="ltr">> <span style="font-size:12.8000001907349px">What do you want me to check?</span><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">I was just more curious to see if you understood the similarities between comb~ and teeth~ since it seemed you were still in doubt on how it behaved.</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">Did you see that comb~ has also two delay lines?</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">> If comb~ and teeth~ are so close, one </span></div><div><span style="font-size:12.8000001907349px">> wonders why there are two objects </span><span style="font-size:12.8000001907349px">at all. </span><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">Well, they are that close... the only thing is that teeth~ is a bit more flexible, but it can act exactly like comb~ if the delay values are the same for the feedforward and the feedback. </span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">I guess they made it in the case anyone wanted a filter that is a bit more flexible.</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">On that note, you may realize that the structure of the [allpass~] object is also exactly the same as [comb~]! This means that you can make an [allpass~] out of [comb~], just make it sure, in comb~, that b = 1 and that c = a * -1! </span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">So it's kinda like [comb~] is the same as [allpass~] but more flexible. And teeth~ is an even more flexible unit than comb~ (and yeah, you can also make allpass~ with teeth~).</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">Hope that was clearer and not more confusing.</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">cheers</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-06-25 4:08 GMT-03:00 Fred Jan Kraan <span dir="ltr"><<a href="mailto:fjkraan@xs4all.nl" target="_blank">fjkraan@xs4all.nl</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Alexandre,<br>
<br>
What do you want me to check?<br>
<br>
If comb~ and teeth~ are so close, one wonders why there are two objects<br>
at all. In hindsight, the early development of objects in Max/MSP<br>
doesn't look very organized. Almost like the pd-extended collection :-).<br>
<br>
Greetings,<br>
<br>
Fred Jan<br>
<span class=""><br>
On 2015-06-25 12:20 AM, Alexandre Torres Porres wrote:<br>
> were you able to check it? I'm curious to see if we are on the same page :)<br>
> cheers<br>
><br>
> 2015-06-23 13:52 GMT-03:00 Alexandre Torres Porres <<a href="mailto:porres@gmail.com">porres@gmail.com</a><br>
</span>> <mailto:<a href="mailto:porres@gmail.com">porres@gmail.com</a>>>:<br>
<span class="">><br>
>     > Well, not quite. You also need another delay line,<br>
>     > as each has different input (input and output signal).<br>
><br>
>     Not really, because [comb~] also has two delay lines, one for input<br>
>     and another for output, in the same way! The thing is that it'll<br>
>     have the same delay time for both lines, whereas in teeth~ you can<br>
>     specify different times for each delay.<br>
><br>
>     see my patch attached comparing them.<br>
><br>
>     cheers<br>
><br>
>     2015-06-23 12:08 GMT-03:00 Fred Jan Kraan <<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a><br>
</span>>     <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a>>>:<br>
<span class="im HOEnZb">><br>
>         Hi Alexandre,<br>
><br>
>         > hello, I had plans to try working on a .c code for it, and my idea was<br>
>         > to just adapt from [comb~].<br>
>         ><br>
>         > Yeah... Teeth is almost identical to [comb~]!<br>
>         ><br>
>         > In [comb~] you have the same delay time for the feedforward and the<br>
>         > feedback. In [teeth~] you can specify different time delays for<br>
>         > feedforward and feedback. So you basically have only one extra time<br>
>         > delay parameter to include in [comb~] and... voilà, you've got [teeth~]!<br>
><br>
>         Well, not quite. You also need another delay line, as each has<br>
>         different<br>
>         input (input and output signal). And writing code is more fun than<br>
>         reading/understanding/adapting. I prefer the array aproach above the<br>
>         pointer arithmetic that real programmers use :-).<br>
>         ><br>
>         > Hope this makes it clear for you.<br>
>         ><br>
>         > Cheers<br>
><br>
>         Greetings,<br>
><br>
>         Fred Jan<br>
>         ><br>
>         > 2015-06-23 4:56 GMT-03:00 Fred Jan Kraan <<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a> <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a>><br>
</span><div class="HOEnZb"><div class="h5">>         > <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a> <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a>>>>:<br>
>         ><br>
>         >     Hi Alexandre,<br>
>         ><br>
>         >     Just now I completed the c code for a teeth~ object, which doesn't seem<br>
>         >     to crash instantly and sounds* the same as your abstraction which is now<br>
>         >     in cyclone.<br>
>         ><br>
>         >     The block diagram in your help patch made it very clear what should  be<br>
>         >     coded. The only thing (what an expert told me), was that 'z' applies to<br>
>         >     samples, and teeth~ is controlled in milli-seconds.<br>
>         ><br>
>         >     While coding, I found the delay time has to be zero or positive, but the<br>
>         >     gain coefficients can be negative too, adding the delayed signal out of<br>
>         >     phase.<br>
>         ><br>
>         >     I have no plans to add the object to cyclone anytime soon. First spend<br>
>         >     some time figuring out that i really does what I think it does. It<br>
>         >     doesn't crash instantly, and output looks sinusoid with a sinus input,<br>
>         >     but that doesn't prove much. And at least some form of interpolation<br>
>         >     should be added before it is ready for prime time.<br>
>         ><br>
>         >     Greetings,<br>
>         ><br>
>         >     Fred Jan<br>
>         ><br>
>         >     *) the help patch sounds equally weird with both, using only the<br>
>         >     positive gains<br>
>         ><br>
>         >     On 2015-06-15 04:14 PM, Alexandre Torres Porres wrote:<br>
>         >     > it's just a preview, I'm gonna still work on them and help files :)<br>
>         >     ><br>
>         >     > 2015-06-15 10:38 GMT-03:00 Fred Jan Kraan <<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a> <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a>><br>
>         >     <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a> <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a>>><br>
>         >     > <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a> <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a>><br>
>         <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a> <mailto:<a href="mailto:fjkraan@xs4all.nl">fjkraan@xs4all.nl</a>>>>>:<br>
>         >     ><br>
>         >     >     Hi Alexandre,<br>
>         >     ><br>
>         >     >     Thanks for the abstractions. I will include them in<br>
>         the svn<br>
>         >     repository<br>
>         >     >     and the next binary deken compatible builds. Only<br>
>         rect~ didn't<br>
>         >     work.<br>
>         >     ><br>
>         >     >     I applied some minor modification by replacing [pi],<br>
>         which doesn't<br>
>         >     >     appear to be vanilla by [3.141593(.<br>
>         >     ><br>
>         >     >     Greetings,<br>
>         >     ><br>
>         >     >     Fred Jan<br>
>         >     ><br>
>         >     >     P.S. Wouldn't mind if the future supplied<br>
>         help-patches were<br>
>         >     already<br>
>         >     >     cyclone-standard formatting ;-).<br>
>         >     ><br>
>         >     >     On 2015-06-14 10:14 PM, Alexandre Torres Porres wrote:<br>
>         >     >     >> Any object or abstraction that implements something<br>
>         >     >     >> present in Max(5) could be part of cyclone.<br>
>         >     >     ><br>
>         >     >     > i've made 13 abstractions so far<br>
>         >     >     ><br>
>         >     >     > - atodb<br>
>         >     >     > - atodb~<br>
>         >     >     > - dbtoa<br>
>         >     >     > - dbtoa~<br>
>         >     >     > - freqshift~<br>
>         >     >     > - rect~<br>
>         >     >     > - saw~<br>
>         >     >     > - scale<br>
>         >     >     > - scale~<br>
>         >     >     > - teeth~<br>
>         >     >     > - thresh~<br>
>         >     >     > - tri~<br>
>         >     >     > - trunc~<br>
>         >     >     ><br>
>         >     >     > Gonna try and do a few of these more, I have more<br>
>         5 in mind<br>
>         >     so far. I<br>
>         >     >     > guess some make much more sense as objects, like<br>
>         >     >     [rect~]/[tri~]/[saw~].<br>
>         >     >     > Here's a preview attached.<br>
>         >     >     ><br>
>         >     >     > cheers<br>
>         >     ><br>
>         >     ><br>
>         ><br>
>         ><br>
><br>
><br>
><br>
</div></div></blockquote></div><br></div>