Le 2011-11-17 à 10:42:00, Miller Puckette a écrit :
This leads to an interesting larger design issue. I've so far resisted the idea of using send/receive as a back channel for getting return values because of the unreadablity of the resulting patch.
It doesn't have to be written as such in the patch. A send/receive pair can be bundled together as one object. It would solve a more general problem of making things more readable in pd which would reach beyond just [samplerate~] or queries to canvases.
A few convenient shortcuts are sometimes all it takes to make a big difference in readability. Trying to stick to a minimal set of basic constructs forces the user to do more work than what would be necessary.
The other way, assuming you want locality, would be to confect a unique symbol name and then somehow to "receive" it (I'm not even sure that's possible without making a self-editing patch).
Pd has a cool and very important feature named « abstractions », and using $0, you can create a unique receiver name without even having to think about it. No need for dynamic naming.
But if you want dynamic naming, there's [receives] with an s, which allows a single object to receive from many names at once and distinguish them while having always 2 outlets. You can use it with 1-element lists if you want. See this patch (screenshot) :
http://gridflow.ca/help/receives-help.html
BTW, [receives] was actually meant to manage large number of GUI objects matching attributes, method names, and a get-method, without making patches unreadable.
although it's migraine-inducing, the neatest solution would be to allow "info" style objects to have a right-hand outlet that you connect to, say, the "textfile" object like so:
You don't give any explanation of why you think it's migraine-inducing. I don't think that it's obvious why [get( and right-outlet could be more migraine-inducing than the average pd construct.
I think Krzystof Chaya did something like this in his wonderful "xeq" object (first Pd convention, Graz.)
I don't remember Czaja's talk in particular, but the idea must have been in the air back then. Flext 0.4 (nov 2002) introduced Jitter-style attributes in Pd, and I added my own kind of attributes in GridFlow in 2005 by introducing parsing of the comma in objectboxes so that attributes setters always counted as ordinary messages.
| Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal, QC