Beware of NOT wiring enough.&nbsp; <br><br>Of course, we've all seen what beautifully unintelligible spiderweb artwork people are capable of spewing out when they don't patch with the courtesy of showing their ideas methodically.&nbsp; But an invisible web of sends and recieves can be just as misleading.&nbsp; 
<br><br>I like to use a combination, where there is a single [inlet] to a [route] that uses local [send]/[recieve] pairs within the abstraction.&nbsp; I really like this idea of Frank's to use one &quot;master&quot; send/recieve pair and then weed it all out with [route] objects:&nbsp; it makes it easier to remember what to type!
<br><br>~Kyle<br><br><div><span class="gmail_quote">On 10/12/06, <b class="gmail_sendername">Phil Stone</b> &lt;<a href="mailto:pkstone@ucdavis.edu">pkstone@ucdavis.edu</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Pardon me for replying in this clumsy way, but I'm not sure how to<br>maintain thread integrity on my replies, since I receive PD-list in<br>digest mode.&nbsp;&nbsp;Since Kyle was kind enough to write me directly, I'm<br>hoping replying to him and his cc of the list will preserve the thread.
<br>In reality, though, I'm replying to a few people at once here.<br><br><br>Kyle Klipowicz wrote:<br>&gt; I can already anticipate what some might suggest:&nbsp;&nbsp;try using a single<br>&gt; inlet and then pipe that to [route] or [OSCroute].
<br>&gt;<br>&gt; Then you can use descriptive messaging to both a) provide better<br>&gt; information about what data is going where, and b) cut down on having<br>&gt; a zillion inlets at the top of your abstractions.<br>
&gt;<br>&gt; Using OSC style messaging is handy too--just look at RRadical for an<br>&gt; example.<br>&gt;<br>&gt; ~Kyle<br><br>This does seem like a good idea, and Frank's follow-up is intriguing,<br>too.&nbsp;&nbsp;My only objection to it is that you still have a lot of wiring
<br>that you wouldn't have with my second approach, i.e., you still have to<br>patch the output of [route] or [OSCroute] to the various places the data<br>is needed.&nbsp;&nbsp;Plus, you need to pack the sent information in one place on
<br>the parent patch -- another jumble of wires or an additional set of<br>send-receives.&nbsp;&nbsp; I think symbolic routing is a good idea in general,<br>though, so maybe these are not such important considerations.<br><br><br>carmen writes:
<br>&gt; &gt;Now it occurs to me that I could eliminate the inlets entirely, and just write to send/receive pairs &gt;directly<br>&gt;<br>&gt;<br>&gt; how do you find out which instance to send to. are you accessing the abstraction's $0 from outside the abstraction
<br><br>One idea, which I've used successfully on another patch, is to add a<br>parameter to the abstraction which is a message prefix.<br><br>So, if I called [a_grain~ env samp xyz]&nbsp;&nbsp;the third argument 'xyz' would<br>be the message prefix (it could be anything one liked, even '$0' if you
<br>only needed to distinguish one set of messages for an abstraction).<br>Senders in the parent patch would send to xyz-(whatever), as in [s<br>xyz-pointerhop].<br><br>The abstraction has [receive] objects of the form&nbsp;&nbsp;[r $3-pointerhop].
<br>Each instantiation of that abstraction will therefore only receive<br>messages intended for it, and one can address as many copies as one likes.<br><br>What I like about this is the lack of wires.&nbsp;&nbsp;In the parent patch,
<br>there's no wiring (!).&nbsp;&nbsp;I just assign appropriate sends, with the<br>correct prefix, to my sliders, number boxes, etc.&nbsp;&nbsp;In the<br>abstraction(s), there's an appropriately named (with the $3 prefix)<br>receive object sitting right next to whatever needs the message.
<br><br>I do want to go to the next stage and learn how to persist presets, so<br>Frank's tutorial is particularly appreciated.&nbsp;&nbsp;I'll probably adopt his<br>system for its obvious advantages.&nbsp;&nbsp;I'm just trying to train myself to
<br>&quot;think PD&quot; in the most efficient way, in the meantime.<br><br>Thanks for the responses,<br><br><br>Phil Stone<br>UC Davis<br><br>&gt;<br>&gt; On 10/12/06, *Phil Stone* &lt; <a href="mailto:pkstone@ucdavis.edu">
pkstone@ucdavis.edu</a><br>&gt; &lt;mailto:<a href="mailto:pkstone@ucdavis.edu">pkstone@ucdavis.edu</a>&gt;&gt; wrote:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; I've been playing with Jamie Bullock's 'a_grain' lately (see<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.puredata.org/Members/jb/a_grain%7E/view">
http://www.puredata.org/Members/jb/a_grain%7E/view</a> ), and in order to<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; understand it better, I've been refactoring it.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; A_grain has 14 inputs to control various parameters; my first<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; approach
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; to cleaning it up was to put all the inlets, in the correct order, at<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; the top of the patch -- I then connected those inlets to 'send'<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; objects<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; with $0 variables, placing matching 'receive's close by where they
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; are<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; needed.&nbsp;&nbsp;This really cleaned up the wiring quite a bit, and made it<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; easier to &quot;read&quot;.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Now it occurs to me that I could eliminate the inlets entirely,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; and just<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; write to send/receive pairs directly (perhaps also passing in a<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &quot;prefix&quot;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; as an argument that is prepended to all receives inside the<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; abstraction,
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; which would allow multiple instantiations of the abstraction, with<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; independent control of each).&nbsp;&nbsp;At the UI-level patch, I could use<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; named<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; senders (from number boxes, sliders, whatever) just hovering
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; nearby the<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; a_grain abstraction; no wires, no mess.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; I'm wondering what experienced PD architects consider the best<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; practice<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; here; if the second approach is better, I begin to question the
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; advisability of wired inlets for more than two or three<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; arguments.&nbsp;&nbsp;The<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; left-to-right ordering of them, along with the rats-nest wiring caused<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; by high numbers of inputs, seem to argue against them.&nbsp;&nbsp;The only
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; downside I can see to the second method is that if it's not done<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; neatly,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; i.e., the senders are placed indiscriminately and not necessarily near<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; the abstraction they're sending to -- it could become very hard to
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; understand/maintain the patch.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; I'll be interested to hear other PD user's thoughts on this.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Phil Stone<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; UC Davis<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; _______________________________________________
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:PD-list@iem.at">PD-list@iem.at</a> &lt;mailto:<a href="mailto:PD-list@iem.at">PD-list@iem.at</a>&gt; mailing list<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; UNSUBSCRIBE and account-management -&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://lists.puredata.info/listinfo/pd-list">
http://lists.puredata.info/listinfo/pd-list</a><br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; --<br>&gt;<br>&gt; <a href="http://theradioproject.com">http://theradioproject.com</a><br>&gt; <a href="http://perhapsidid.blogspot.com">
http://perhapsidid.blogspot.com</a><br>&gt;<br>&gt; (((())))(()()((((((((()())))()(((((((())()()())())))<br>&gt; (())))))(()))))))))))))(((((((((((()()))))))))((())))<br>&gt; ))(((((((((((())))())))))))))))))))__________<br>
&gt; _____())))))(((((((((((((()))))))))))_______<br>&gt; ((((((())))))))))))((((((((000)))oOOOOOO<br><br></blockquote></div><br><br clear="all"><br>-- <br><br><a href="http://theradioproject.com">http://theradioproject.com
</a><br><a href="http://perhapsidid.blogspot.com">http://perhapsidid.blogspot.com</a><br><br>(((())))(()()((((((((()())))()(((((((())()()())())))<br>(())))))(()))))))))))))(((((((((((()()))))))))((())))<br>))(((((((((((())))())))))))))))))))__________
<br>_____())))))(((((((((((((()))))))))))_______<br>((((((())))))))))))((((((((000)))oOOOOOO