On Mon, 28 Nov 2005, Frank Barknecht wrote:
You have this problem with the generated objects as well - as they, too, need to be built out of messages. That is, if you provide a symbol box to let users type in the name, they cannot type $0 or $1, instead they need to type in the values of $0 or $1.
Plus: There is no "$0" variable in messages! $0 is an object variable, so to get it into a message, the messages needs to use another $x, like $1, and replace that with the incoming value of [f $0] or [symbol $0-aa] or [f $0]-[makefilename pd-%d-patch].
BTW, if you consider:
an object construction as a message sent thru [s objectmaker]
abstraction instantiation as being the abstraction classname and arguments sent as a message to [s objectmaker] as if it were a messagebox banged and sending to object constructors as if they were messageboxes too
Then $ can be seen as consistent across objectboxes and messagebox. Let me give an easy example:
say you have foo.pd containing just [bar $2 $4] and then in another patch you create a [foo 2 3 5 7]. Then it's as if the [bar] object was created by banging this chain:
[foo 2 3 5 7( | [bar $2 $4( | [s objectmaker]
do I make sense here?
PS: However, my former proposal that $0 in messagebox could mean "get the selector of the incoming message" is not consistent with the above because it confuses the classname with the instance id.
Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju Freelance Digital Arts Engineer, Montréal QC Canada