On Jul 27, 2005, at 1:30 PM, Miller Puckette wrote:
On Wed, Jul 27, 2005 at 08:52:10AM -0400, B. Bogart wrote:
Hey all,
I've been barely able to keep up with this thread. Lots of ideas and changes. Here I agree with everything that HC has to say.
I'm also a bit confused (anoyed) about the whole list vs nonlist things just for the reasons HC mentions. Miller, you said it is probably "better" to use lists rather than lists that do not start with "list" as the first element, non-lists. Why is this?? I think a list should be:
interpreted in many cases as a non-list. (ie creating OSC names for example, [list send /hello/blah value] automatically gets rid of the "list" part because it knows what to do about it.
be able to contain a mix of symbols and float atoms
there be only be one "list-like" thing, I don't know what this would make a non-list into... an undefined list? One would not need a non-list if the first point above was true and the "list" part not considered part of the list. (NOT the first element, but something invisible that you never need to see, like "float [float]" where I have never had the need to worry about it but the damn list selector comes up all the time. :(
Thats all for me.
Well, there's an attempt to straighten this out in a subpatch of the "list" help window...
Ok, I just did a quick survey of Max/MSP's behavior. Max handles the [route one] example properly (both output from the left outlet):
[one 2 three( | [list one 2 three( |/ [route one]
Max does [route list] badly, Pd outputs on the correct outlets (but it seems a little odd to me that [route list] would not output a list on its left outlet):
[1 two 3] | [list 1 two three( | /[one 2 three( | //[list one 2 three( |/// [route list]
(which outlet) Max Pd ----------------------------------------- 1 two 3 left left list 1 two 3 left left one 2 three right right list one 2 three right left
And lastly, [print]. Max is more consistent, but it would be nice to see the selectors when they exist:
[1 two 3] | [list 1 two three( | /[one 2 three( | //[list one 2 three( |/// [print] Max Pd ----------------------------------------- 1 two 3 1 two 3 1 two 3 list 1 two 3 1 two 3 1 two 3 one 2 three one 2 three one 2 three list one 2 three one 2 three list one 2 three
This investigation lead me to another odd behavior: [route symbol] outputs a symbol on its left outlet, while [route list] outputs a non-list. While it is definitely useful to have an object with can strip off the "list" selector, I don't think it should be called [route list]. [route list] should output a list for every list it receives on its inlet.
I added an example of this to my collection:
.hc
________________________________________________________________________ ____
¡El pueblo unido jamás será vencido!