<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">It would be useful to make a list of things objects often do that abstractions can't​ (or can't do easily).</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">1) Variable numbers of xlets (except with initbang and dynamic patching, which is tough to rely on for a library like cyclone) - e.g. [trigger].</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">2) Main signal inlets that also take messages (e.g. [tabread4~]).</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">3) Signal inlets which are initialized by an argument and can be set by a float, where the argument/float value returns if the signal is disconnected (e.g. [osc~].</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">4) Inlets which take signals or messages depending on the argument (e.g. [*~ ] vs [*~ 0.5]).</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">You can all think of others.<br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Feb 13, 2016 at 1:59 PM, Alexandre Torres Porres <span dir="ltr"><<a href="mailto:porres@gmail.com" target="_blank">porres@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">As Ivica mentioned, abstractions are preferable from an educational point of view. And they are easier to maintain... So I see no problem adding them just like [teeth~]. If performance gets an issue, it is always possible to code that object, or its critical part, in c.<br></blockquote><div><br></div></span><div>The problem with teeth~ now is that it has no arguments. Ok, that's easy to fix, but there's a problem managing arguments with abstractions, and this is what I was trying to explain in response to Ivica's email.</div><div><br></div><div>For example, in [comb~], if you send a signal to an inlet, it overwrites the argument value, but if you disconnect that signal connection it will revert to the argument's value. That's how it works in Max too and I don't know any other way to achieve this other than with an external.</div><div><br></div><div>Please find attached an example with comb~ that illustrates this, when you disconnect the signal connection (value of 0) it'll restore the argument value (0.99).</div><div><br></div><div>Anyway, this is a common behaviour for such objetcs, so even if it's cool and easy to make an abstraction, ot's just best for the design if you code an external.</div><div><br></div><div>Another issue I could point with an abstraction in Pd for [teeth~] is that the delay objects are kinda buggy in Pd, where you can't really go up to the specified delay lenght. I've already reported this by the way. So, a more accurate delay network could be achieved with an external.</div><div><br></div><div>Moreover, it should be really easy to make a teeth~ external from the code in  comb~</div><div><br></div><div>cheers</div><div><br></div></div></div></div>
<br>_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="http://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
<br></blockquote></div><br></div></div>