[PD] (breaking symbols) was Re: find a list of numbers in a text file
Jonathan Wilkes
jancsika at yahoo.com
Sun Sep 4 19:54:50 CEST 2011
----- Original Message -----
> From: Martin Peach <martin.peach at sympatico.ca>
> To: Jonathan Wilkes <jancsika at yahoo.com>
> Cc: Mathieu Bouchard <matju at artengine.ca>; "pd-list at iem.at" <pd-list at iem.at>; Chris McCormick <chris at mccormick.cx>; Miller Puckette <msp at ucsd.edu>
> Sent: Sunday, September 4, 2011 1:10 AM
> Subject: Re: [PD] (breaking symbols) was Re: find a list of numbers in a text file
>
> On 2011-09-03 22:47, Jonathan Wilkes wrote:
>> ----- Original Message -----
>>
>>> From: Mathieu Bouchard<matju at artengine.ca>
>>> To: Jonathan Wilkes<jancsika at yahoo.com>
>>> Cc: Chris McCormick<chris at mccormick.cx>; Miller
> Puckette<msp at ucsd.edu>; "pd-list at iem.at"<pd-list at iem.at>
>>> Sent: Saturday, September 3, 2011 1:20 PM
>>> Subject: Re: [PD] (breaking symbols) was Re: find a list of numbers in
> a text file
>>>
>>> On Wed, 31 Aug 2011, Jonathan Wilkes wrote:
>>>
>>>> Keep in mind that [list implode] must be smart enough to output
> the float
>>>> atom "12" given the input "49 50". If it
> gives you
>>> "symbol 12" then your
>>>> back to the [makefilename] madness from my original vanilla
> solution.
>>>
>>> It's not that simple.
>>
>> It needs to be that simple for the general case because Pd Vanilla has no
> (sensible) mechanism to convert
>> a symbol atom into a float.
>>
>> If symbol atoms which look like numbers to the naked eye are going to start
> flying around more freely in Pd
>> then the docs need to explain how atoms are a kind of weird file cabinet
> where the label on the cabinet tells
>> you which file-folder inside actually holds the data. So if you send the
> symbol-atom "15" to [max], the file clerk will
>> complain because it's looking for a number but the label on the cabinet
> says "A_SYMBOL". (Additionally, if you tell
>> the clerk to ignore the label and just pull out a number, the clerk will
> look in "A_FLOAT" and give you a "0", because
>> the "15" is in the "A_SYMBOL" file-folder.)
>>
>> Hm... is there a way you can tell the clerk to be a real go-getter when
> looking for a float atom inside a
>> cabined labeled "A_SYMBOL" by just going ahead and seeing if the
> data in the "A_SYMBOL" file-folder looks like a
>> number, and if so convert it to a float and send it on its way?
>
> Any external can do that easily enough if it wants to by using sscanf with a
> format string:
>
> int symbol_to_float (t_atom *atom, t_float *afloat)
> {
> int n;
> n = sscanf(atom->a_w.w_symbol->s_name, "%f", afloat);
> return n; /* afloat is valid if n is 1 */
> }
>
> But there are more ways of writing numbers than a single sscanf call can handle,
> so a real version would have to check all the expected input styles.
>
> The function pd_defaultsymbol in m_class.c is the default symbol handler for
> objects that have no explicit symbol method. It could check to see if a
> non-default float method exists and if so try to convert the symbol to a float
> for the float method to eat.
Right-- at that point it's already just going to output an error anyway.
>
> Martin
>
More information about the Pd-list
mailing list