Hi,
i mean message boxes. i think there is the misunderstanding. you dont send $1 as a message, too. not as message nor creation argument. its an expanded string inside an object or when it leaves a messagebox. georg
IOhannes m zmoelnig schrieb:
On Fri, Feb 06, 2009 at 11:08:05PM +0100, Georg Werner wrote:
hi,
can somebody explain why there is a "3rd rule of $-expansion: 'there is no $0 in message-boxes'". i stumble every now and then about it and it is IMHO not self-explanatory. it is not hard to implement and wouldn't make problems with existing patches - because $0 is never used in messages. and would make things easier not only for beginners.
please explain what "$0 in messages" would mean to you. (note that i say "message" not "message-box" here).
if a message is just a context-free .. message, then it cannot have a notion of $0. a message-box is just a way to write down a message.
mga.sdr IOhannes
just my 2 cents.
Hallo, Georg Werner hat gesagt: // Georg Werner wrote:
i mean message boxes. i think there is the misunderstanding. you dont send $1 as a message, too. not as message nor creation argument. its an expanded string inside an object or when it leaves a messagebox.
$0 is just an abstraction counter shifted by 1000. How about making $0 in messages be a message counter?
;-)
Frank Barknecht Do You RjDj.me? _ ______footils.org__
hi,
Frank Barknecht:
How about making $0 in messages be a message counter?
if somebody really needs that - i dont ;)
ok, i give up. i think we are on a rather philosophical point now. but i had a lot of times when students where asking why they have to write [f $0]-[foobar $1( instead of [foobar $0(. so this came up from a users point of view. after getting all your input (thanks). i think Claude brought up the most logical solution, because this makes the different functions of $ obvious and obsolete. And it would help users and devs. (i know it will be a long way - cause it will break some patches ... :( )
$ in message boxes is unfortunate. If there was a different symbol, perhaps #, you could combine both phases in one object box to avoid jumping through pointless hoops. [$0-#1-$2-#3( would be nice, but as Pd is now, it's a nightmare.
not a nightmare, but this is one point why Pd is harder to learn for beginners than it has to. georg
Quoting "Georg Werner" georg@fricklr.de:
hi,
Frank Barknecht:
How about making $0 in messages be a message counter?
if somebody really needs that - i dont ;)
ok, i give up. i think we are on a rather philosophical point now.
yes, that's m point
but i had a lot of times when students where asking why they have to write [f $0]-[foobar $1( instead of [foobar $0(. so this came up from a users point of view.
i think it is simple, if the users understand the philosophical idea
behind $args in message-boxes vs objects. hence my long explanations.
once you understand what you are doing, it becomes quite simple to
make Pd what you want (and why it does make sense the way it is done)
fgmasdra IOhannes
This message was sent using IMP, the Internet Messaging Program.
On Mon, 9 Feb 2009, zmoelnig@iem.at wrote:
i think it is simple, if the users understand the philosophical idea behind $args in message-boxes vs objects. hence my long explanations. once you understand what you are doing, it becomes quite simple to make Pd what you want (and why it does make sense the way it is done)
Even after understanding that contents of objectboxes are just messages, it doesn't necessarily make much more sense, as you could have had completely different messageboxes in pd while still considering contents of objectboxes to be just messages. But it does make a lot more sense if we don't think about how else it could have been and instead just accept it as it is... (which may include working around it and not using messageboxes anymore).
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
On Tue, Feb 10, 2009 at 11:57:06AM -0500, Mathieu Bouchard wrote:
But it does make a lot more sense if we don't think about how else it could have been and instead just accept it as it is...
the winter sunshine, cold hands connecting boxes; Pd crashed again.
[bang(/[until],
Chris.
On Wed, 11 Feb 2009, Chris McCormick wrote:
the winter sunshine, cold hands connecting boxes; Pd crashed again. [bang(/[until],
#N canvas 599 200 450 300 10; #X obj 30 49 t a; #X obj 0 0 loadbang; #X obj 0 19 t a a; #X connect 0 0 2 0; #X connect 1 0 2 0; #X connect 2 0 0 0; #X connect 2 1 0 0;
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
On Mon, 9 Feb 2009, Frank Barknecht wrote:
Georg Werner hat gesagt: // Georg Werner wrote:
i mean message boxes. i think there is the misunderstanding. you dont send $1 as a message, too. not as message nor creation argument. its an expanded string inside an object or when it leaves a messagebox.
$0 is just an abstraction counter shifted by 1000. How about making $0 in messages be a message counter?
If it were just a side-effect of the logical similarity between messages and objects, it would be fine, but otherwise, messages are too transient for this to have any meaning, so I wouldn't bother with writing any code to support that.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
Quoting "Georg Werner" georg@fricklr.de:
Hi,
i mean message boxes. i think there is the misunderstanding. you dont send $1 as a message, too. not as message nor creation argument.
ok.
i am only trying to explain why it is like it is without resorting to
implementation-issues, but instead based on a more conceptual basis
(which i don't have any guarantee to be true, since i have not
designed the system; this is my view of the world i have come up with
after a long time of paptching)
to reiterate:
a message-box works only on messages.
a message-box is only a way to "freeze" a message in time (it's hard
to patch messages that only exist in an instant of time otherwise).
it is concerned only with messages!
$-args in message-boxes are a way to modify messages.
since messages don't have a patch-context, neither have (their
patchable instances) message-boxes.
mfgasd IOhannes
This message was sent using IMP, the Internet Messaging Program.
Hi,
there were a lot of things thrown together in the last replies. thanks for all your thoughts about abstraction arguments - but i never talked about them. i only talked about $0 and that is not one of them. and i wanted to bring more consistency into Pd (think of a $0 which means at all times in all contexts this special number shifted by 1000 - because of that i dont think it is very consistent to have
abstraction $0: set by pd, unique abs instance identifier, common to
all object boxes
message box $0: set by user through msg box, common to all
abstraction instance msg's )
And another thing - not only about consistency (i've checked this only on windows with pd-extended, maybe this is only happening in this combination - i doubt it):
a message-box works only on messages. a message-box is only a way to "freeze" a message in time (it's hard
to patch messages that only exist in an instant of time otherwise). it is concerned only with messages!
in fact it is not hard - and message boxes not only freeze messages. see the attachment: if you load a file through [openpanel] which has spaces in its path or filename the messagebox is set to the whole path - as expected? - even when you send this message again by clicking on the messagebox [read $1( prints read and the whole path. As there is no escape character/mechanism in Pd this is not consistent. And you see this by saving, closing and reopening that Patch. Everything looks the same, but the message behaves now as list (thats not how i understand freezing) should i file a bug report? i really liked the behaviour (i want an escape-character/mechanism!) until i realized that its not working no more after i saved a patch. georg
#N canvas 0 0 450 300 10; #X obj 31 81 openpanel; #X obj 31 21 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 31 265 print; #X msg 31 242 read $1; #X msg 90 153 set symbol $1; #X msg 89 175 symbol C:/Documents and Settings/All Users/NTUSER.DAT ; #X connect 0 0 4 0; #X connect 0 0 3 0; #X connect 1 0 0 0; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 5 0 3 0;