Hello,
I must to convert manually a Pure Data patch in Max/MSP but I have a problem...
In Max/MSP, if an object's outlet is connected to several destinations, corresponding messages are always sent in right-to-left screen order. But in Pure Data, the messages are sent in the order you made the connections in.
How then I do to know the order in which objects were placed?
A person said me that I must to put some "triggers" in the PD file and that it should be checked that it functions correctly... And then I put "triggers" in a Max/MSP file for working in the same order... But is there no other solutions???
Thanks a lot!!!
Claudio Cunha
Hallo, CUNHA Claudio hat gesagt: // CUNHA Claudio wrote:
I must to convert manually a Pure Data patch in Max/MSP but I have a problem...
In Max/MSP, if an object's outlet is connected to several destinations, corresponding messages are always sent in right-to-left screen order. But in Pure Data, the messages are sent in the order you made the connections in.
How then I do to know the order in which objects were placed?
You just don't!
That's why the correct way to patch is to always use [trigger]-objects. (Never believe a patch unless it has a [t] object inside!)
A person said me that I must to put some "triggers" in the PD file and that it should be checked that it functions correctly... And then I put "triggers" in a Max/MSP file for working in the same order... But is there no other solutions???
No other solution: you have to use triggers!
Frank Barknecht _ ______footils.org_ __goto10.org__
I think the question here is "how can I tell which order they were connected in the Pd patch" (in order to rebuild it in Max). I am unsure about this, but as I said on the forum - read the Pd file because the order of the connection matrix is the order of creation. But since the *evaluation order* is undefined I don't really think this will help.
On Tue, 25 Sep 2007 09:47:49 +0200 Frank Barknecht fbar@footils.org wrote:
Hallo, CUNHA Claudio hat gesagt: // CUNHA Claudio wrote:
I must to convert manually a Pure Data patch in Max/MSP but I have a problem...
In Max/MSP, if an object's outlet is connected to several destinations, corresponding messages are always sent in right-to-left screen order. But in Pure Data, the messages are sent in the order you made the connections in.
How then I do to know the order in which objects were placed?
You just don't!
That's why the correct way to patch is to always use [trigger]-objects. (Never believe a patch unless it has a [t] object inside!)
A person said me that I must to put some "triggers" in the PD file and that it should be checked that it functions correctly... And then I put "triggers" in a Max/MSP file for working in the same order... But is there no other solutions???
No other solution: you have to use triggers!
Ciao
Frank Barknecht _ ______footils.org_ __goto10.org__
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hallo, Andy Farnell hat gesagt: // Andy Farnell wrote:
I think the question here is "how can I tell which order they were connected in the Pd patch" (in order to rebuild it in Max). I am unsure about this, but as I said on the forum - read the Pd file because the order of the connection matrix is the order of creation. But since the *evaluation order* is undefined I don't really think this will help.
If you spot more than one message connection leaving an outlet in a patch ("fanning") than you're generally looking at a broken patch.
But if you already have such a buggy patch which wasn't using triggers to specify execution order and was instead relying on the current implementation, where the order of creation specifies the order of execution, and if you forgot the order of creation, one approach to find out the order of execution is to use lots of named [print] objects and watch the console. It's tedious, but that's the price to pay for not using triggers in the first place. :(
Frank Barknecht _ ______footils.org_ __goto10.org__
hey, in many cases it is not relevant, which of two messages are sent first, when they are not are not connected to hot inlets.
if you look at a patch and know what it does, you should be able to tell which connection has to go first.
to really see which object connection was created first you can also copy the related objects including their connections into a new empty patch and open it then with a texteditor. the file will give you something like #N canvas 0 22 454 304 10; #X obj 165 101 +; #X floatatom 165 56 5 0 0 0 - - -; #X connect 1 0 0 1; #X connect 1 0 0 0; ignore the first line. the second line is a [- ] ("minus") object, the third a numberbox. then you have the connections: connect object #1, outlet #0 to object #0, outlet #1. object 1 (the counting is 0-based) is the numberbox, which was created after the [- ], so it appears after the [- ] in the textfile. the last line then makes the other connection (from the numberbox to the left inlet of [-]) of course this works for every number of objects and connection, but if you have too many objects, counting can be difficult. hans christoph also wrote a patch, that creates itself in another window step by step, by reading its own pd-file. there you can watch the creation and also look at the order in which the objects are connected. that said, I only can repeat what posters said before, you _have_ to use trigger, because this behaviour of first creation is not garantueed to work in every situation, it might change with future versions of pd, or when you convert to another fileformat (like max...), or whatever. marius.
Andy Farnell wrote:
I think the question here is "how can I tell which order they were connected in the Pd patch" (in order to rebuild it in Max). I am unsure about this, but as I said on the forum - read the Pd file because the order of the connection matrix is the order of creation. But since the *evaluation order* is undefined I don't really think this will help.
On Tue, 25 Sep 2007 09:47:49 +0200 Frank Barknecht fbar@footils.org wrote:
Hallo, CUNHA Claudio hat gesagt: // CUNHA Claudio wrote:
I must to convert manually a Pure Data patch in Max/MSP but I have a problem...
In Max/MSP, if an object's outlet is connected to several destinations, corresponding messages are always sent in right-to-left screen order. But in Pure Data, the messages are sent in the order you made the connections in.
How then I do to know the order in which objects were placed?
You just don't!
That's why the correct way to patch is to always use [trigger]-objects. (Never believe a patch unless it has a [t] object inside!)
A person said me that I must to put some "triggers" in the PD file and that it should be checked that it functions correctly... And then I put "triggers" in a Max/MSP file for working in the same order... But is there no other solutions???
No other solution: you have to use triggers!
Ciao
Frank Barknecht _ ______footils.org_ __goto10.org__
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hallo, marius schebella hat gesagt: // marius schebella wrote:
to really see which object connection was created first you can also copy the related objects including their connections into a new empty patch and open it then with a texteditor. the file will give you something like #N canvas 0 22 454 304 10; #X obj 165 101 +; #X floatatom 165 56 5 0 0 0 - - -; #X connect 1 0 0 1; #X connect 1 0 0 0; ignore the first line. the second line is a [- ] ("minus") object, the third a numberbox. then you have the connections: connect object #1, outlet #0 to object #0, outlet #1. object 1 (the counting is 0-based) is the numberbox, which was created after the [- ], so it appears after the [- ] in the textfile. the last line then makes the other connection (from the numberbox to the left inlet of [-])
Hey, that's a nice solution. (Your "minus" object is a "plus" object though, in case anyone is wondering.)
Frank Barknecht _ ______footils.org_ __goto10.org__
CUNHA Claudio wrote:
Hello,
A person said me that I must to put some "triggers" in the PD file and that it should be checked that it functions correctly... And then I put "triggers" in a Max/MSP file for working in the same order... But is there no other solutions???
no there is none (that i know of). what is wrong with using triggers?
personally i think that the "feature" of max to respect the left-to-right order is really a bug, but that is just me...
fma.sr IOhannes
On Tue, 25 Sep 2007, IOhannes m zmoelnig wrote:
personally i think that the "feature" of max to respect the left-to-right order is really a bug, but that is just me...
The feature of respecting right-to-left order of wires could make sense if patches remained simple, as it makes the diagrams visually simpler, but it doesn't scale well, so as soon as a patch gets bigger, it complicates patching more than it simplifies it... and we know how big pd patches can get even when trying hard to keep habits of often turning things into abstractions and subpatches.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada