Hallo, Jonathan Wilkes hat gesagt: // Jonathan Wilkes wrote:
I'm not comfortable with the right inlet of [symbol] rejecting [pitch(, nor with [pitch( working only in the first inlet of pack. And not so comfortable really with [list one two(--[route one] behaving differently than [list 1 2(--[route 1].
...
Maybe they're nothing special to you because you already understand and are comfortable with all the special cases. But I can imagine a beginner getting really confused over [route symbol] not stripping the selector off of [symbol pitch(.
How many of your patches actually use [route symbol]?
(In general to strip off selectors, [list trim] should be used nowadays.)
It's confusing and inconsistent, and symbols/lists in Pd are limited enough that a comprehensive list of behaviors for the basic symbol-handling objects is doable. (see below)
Object behaviour is vocabulary - you have to memorize it for each object separately just like irregular verbs. The message system with selector and all that is grammar that describes the general rules to form sentences. The message system itself is easy - it almost fits into this: "a message is a selector + data". Memorizing all objects of course is hard(er), and indeed there are some inconsistencies in objects like [route] stripping off list-, but not symbol-selectors.
But all these things are behaviours of single objects and thus vocabulary. You could write a [route] which would strip off the symbol-selector of "symbol pitch" or which would not strip off any list-selectors. Or build a [symbol] that does accept non-symbol-messages or even floats into its right inlet. Maybe someone already did it as an external.
But they would be different objects - and would still work with the same message system grammar of Pd.
Ciao