Hallo, Matteo Sisti Sette hat gesagt: // Matteo Sisti Sette wrote: > However, I can't see any difference between the output of the message box > (*) in (4) and in (1-3). > If I connect that message box to a [print] in any of the four examples > above, the output is always "label 43".
[print] is very bad for showing these kinds of things. > However, this does not explain the following: > > * Isn't the output of [makefilename] in example (4) just the same as [symbol > 43( of example 3?? It isn't: [makefilename] always generates real symbols and it's the only (usual) way to really numeric symbols. There was a thread on pd-dev about this some time ago. The 43 in a message box [symbol 43( is not a real numeric symbol. Actually "symbol 43" is kind of an illegal message in Pd, as a proper symbol-message is built from the word "symbol" and another "word", not a number. So to build a proper word "43" first you need to generate a 43-symbol using [makefilename]. > Then why doesn't example 3 work as well??? > > Also, consider this: > > (5) > [label 43( > | > [unpack s f] > > and this > > (6) > [symbol 43( > | > [label $1( (**) > | > [unpack s f] > > In example (5), the second outlet of unpack outputs float 43, which is > (somewhat) coherent with the fact that example (1) didn't succeed to set the > canvas label > However, in example (6) unpack gives the error "unpack: type mismatch"... so > I guess that the "$1" (i.e. the "43") in (**) is seen as a symbol, not a > float....... It's neither a symbol nor a float: To be a float, it would need to have a selector of "float" or no selector at all, to be a symbol, the data part of the message should be a symbol, but it is a float (43) so your message is not valid. > Oh shit!!!!!!! > > Now I see that the following: > [symbol 43( > | > [print] > > just outputs "symbol " Yes, [print] gets confused about the invalid message. > while > [43( > | > [makesymbol %d] > | > [print] > > outputs "symbol 43" as expected.... However this "43" now is indeed a symbol and you cannot input it into a numberbox anymore. Try this: [43( | [makefilename %d] | [$1( | [+ 10] You get the error message: error: +: no method for '43' which indicates, that "43" now is a symbol-selector! (Let that sink for a while ...) Numeric symbol selectors aren't used by many objects. [select] can handle them, you can label GUI elements with them, you can use them as targets for [send] through the second inlet, but you cannot build a receiver for them: [r 43] is not valid, as in this case "43" is still a float. > isn't it weird?????? Ah, the fun of Pd's message system! But once you get to grips with it you may see, that it's limited, but actually rather consistent. It'd recommend an afternoon of list-archive reading, as this confuses many people. Ciao -- Frank Barknecht _ ______footils.org_ __goto10.org__ _______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
