Just think like that: a message selector can't be a number (or pointer), that's why [1( automatically gets a "float" selector and [1 foo bar( automatically gets the "list" selector. Otherwise, the first item is the selector, so [foo bar( is a "foo" message, but [symbol foo( is a symbol message.
If you want to turn Pd lists into messages, you have to strip the "list" selector with [route list]. This obviously doesn't work if the next item is a number, so [list 1 2 3( -> [route list] passes the message unchanged, but [list foo 1 2( -> [route list] results in the message [foo 1 2( because "foo" is a valid selector.
A message [stop( to a [delay] object does not require "stop" to be prefixed by a "symbol" selector.
because [stop( is a "stop" message and [symbol stop( is a "symbol" message.
If you want to know the gritty details, you have to study the C code, I'm afraid...
Christof
Gesendet: Dienstag, 26. November 2019 um 16:59 Uhr Von: "Peter P." peterparker@fastmail.com An: pd-list@lists.iem.at Betreff: Re: [PD] opening patch from pd message
- IOhannes m zmölnig zmoelnig@iem.at [2019-11-26 16:03]:
Am 26. November 2019 15:49:07 MEZ schrieb Roman Haefeli reduzent@gmail.com:
On Tue, 2019-11-26 at 15:12 +0100, Csaba Láng wrote:
Dear list,
I want to open from a pd patch a pd patch withe the message:
[; pd open $1.pd /path-topatch;(
[...]
just to be clear, if I want to open cat.pd, a message [cat( will not make it happen.
Use [symbol cat(.
and if you have many, many files (msgboxes) you can convert (almost) any selector toa symbol with [symbol]:
jumping on this I must admit that I never understood when a selector such as "symbol" or "list" has to be provided explicitely, or to be trimmed off.
From https://puredata.info/docs/manuals/pd/x2.htm#s3.1 I understand that the message [1( has an implicit selector of "float" and is equivalent to [float 1(
Also the message [1 2 3( has an implicit selector of "list" and is equivalent to [list 1 2 3(
It seems the selector is always a symbol (one or many characters without whitespace nor semicolons nor commas).
It seems symbols themselves have no selector(?) as [foo( seems to be the selector "foo" itself and is not the same as [symbol foo( at least not when printing to the console window.
Now is this why [cat( in the original poster's question did not have a selector "symbol" and one had to be added eg. with [symbol]. Was this because it was used in another message box or in a $1 substitution?
A message [stop( to a [delay] object does not require "stop" to be prefixed by a "symbol" selector.
Why does this still seem a mixup of symbols with and symbols without a "symbol" selector to me? Can this be clarified somehow?
Thanks to everyone, P
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list