Hi Daniel,
I don't know if it has advantages, but it is possoble to open/close patches from another patch. Maybe an advantage would be that it is faster, because you don't have to resart pd. but I don't know how to handle crashes... anyway, have a look at manuals/pd-msg/2.message_and_pd/2.open_close.pd you open a patch by using a message to pd (starting with ";pd"). the first argument is open, the second the patchname and the third the directory. to close you give the argument menuclose and then the prefix "pd-" and the patchname. some time ago it was not possible to use abbreviations for directories (like a dot). maybe this works now. but you can always use the full path name. regarding closing, many people are talking about a "closebang" but I am not sure if that is about shutting down pd or closing a patch. it should provide a clean shutdown. maybe this affects serial connections? I don't know. For me it worked the way I described it above and I had no problems. [that is a message( [;pd open mypatch.pd /home/marius/pd( [;pd menuclose pd-mypatch.pd(
marius.
Daniel Wilcox wrote:
Hi,
So this is my first post to the list.
back story: I'm running pd in Linux on a small wearable computer. I do not use a screen, mouse, or keyboard, just an arduino box with a button and some other doo dads to control patch loading / activation.
I've successfully automated pd in Windows using a python windows testing library to grab widgets and send keys to applications, but the Gnome alternative cannot see tcl/tk widgets ... I'm better off running without a gui anyway. :P
I've hacked a quick controller patch using the ;open message for a show, but that was only a temp fix as I have no way to close patches from within pd ... or is there? I do not want to have to open an entire set of patches at once as my machine only has 256 Mb of ram and, if I start using lots of samples, this could be a problem.
So now I'm exec launching and SIGINT'ing pd in C :
- lauch pd with the current patch and remember the process id
- the patch contains an osc object to receive all of my controllers
- sigint pd when I'm done (btw Whats the cleanest kill signal to send?)
Now my questions are:
- Is there a built in way to close an open pd patch from within pd ...?
My thinking is that I can open pd with a small control patch that receives messages to open and close patches.
- If not, has anyone made an automation object? Would anyone be
interested if I attempted to write one?
- Does having a built-in method to do this provide any advantage over my
current solution of launching/killing pd?
The advantage I have now is that I can monitor the running status of pd so if it crashes, which it has done when using the aforementioned temp hack, I can safely kill and restart on the current patch.
Thanks!
-- Dan Wilcox danomatika www.robotcowboy.com http://www.robotcowboy.com
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list