[PD] opening patch from pd message

Christof Ressi christof.ressi at gmx.at
Tue Nov 26 17:51:57 CET 2019


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 at fastmail.com>
> An: pd-list at lists.iem.at
> Betreff: Re: [PD] opening patch from pd message
>
> * IOhannes m zmölnig <zmoelnig at iem.at> [2019-11-26 16:03]:
> > Am 26. November 2019 15:49:07 MEZ schrieb Roman Haefeli <reduzent at 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 at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
>





More information about the Pd-list mailing list