that 's an interesting idea but I don't know if this is possible with pd-vanilla, I didn't try it yet. I made this patch to be able to save all files that I need for one patch. As Luigi also noticed, it would be good if this patch searched for abstractions within abstractions, I might try this one of the following weeks (time... holidays:). I guess I'll have to save the main output in a new [textfile] object that will be printed after the searching is finished because a lot of error messages will be printed in the main screen once I try to open abstractions within abstrations (some of them will be externals which can't be opened...) I use vanilla because it's very good for teaching purposes, the structure is never hidden (as in an external where you have to be able to read the source file). I also got tired of wasting my time with looking for the right externals for windows and apple for my students, now I'm sure that everyone can use the files that I make.
hans r
Date: Wed, 09 Jul 2008 09:50:51 +0100 To: João Pais jmmmpais@googlemail.com From: Hans Roels hans.roels@versateladsl.be Subject: Re: [PD] print all abstractions and externals
At 23:06 6/07/2008, you wrote:
Hi,
I would like to reply with a couple of suggestions:
Have you thought about another technique? instead of making several [select]s with lots of variables (which will have to be checked now and then, as we don't know fow now which version of vanilla was your reference version), you could take on a more environment-dependent approach: pd scans the extra folder (including subfolders) for installed externals/abstractions and writes the names of the installed objects in a list (or [textfile] (or [msgfile]) ) - they're easy to find if you look for the endings .pd (abstractions), or .dll / .pd_linux / .darwin [actual non-windows extensions are wrong, I think]. That would create a personal database for each pd installation for each user (assuming that users add something to their extra folder or a user has several versions of pd installed). Then the patch->environment comparation process you already programmed would take place. Meaning, you could test quite easily if a patch you want to open has any elements your system doesn't have.
One option to look automatically for objects in abstractions could be: pre-scan the patch folder (+ subfolders, if any?), and see if they come up in the results. if so, just open those files automatically afterwards.
For what use did you thought the patch might be useful? I think it's quite useful if I want to make a "standalone" patch, which has to be packaged with the program with it - and for that vanilla+ is better as extended. But from my opinion, I don't know nowadays how many people are working with vanilla instead of with extended (except some hardcore users). I guess new users use extended, since both are now in parallel versions.
As it was replied, [5] isn't "wrong". for example, if [5] is triggered by another object (and not a message), it's more efficient to have [object]->[object] than [object]->[message(, as data types don't have to be converted. (as I read some years ago in this list) But if you (rightfully) don't want floats to go in your list, you can filter them out, a [route float] with no connection from the first outlet does it. (I just tried it)
João Pais
PS: for GUI design, I always say "GOP is your friend" - specially now, when you can even hide the creation name/arguments
I've made a patch that might be useful for others. In the attached patch you can open a pd-file and the main window prints all the abstractions or externals that you need to make the patch work. It doesn't detect abstractions within abstractions though and it also prints objects like [5] or [$1], I didn't find a solution for this (small) problem yet. (I'd think it is bad pratice to use [5] in sted of [5( or am I wrong?) I wanted to make a patch that copied all the necessary abstractions and the file itself to a new folder but I ended up with this simpler solution...
hans r
-- Friedenstr. 58 10249 Berlin Deutschland Tel +49 30 42020091 Mob +49 162 6843570 jmmmpais@googlemail.com skype: jmmmpjmmmp http://www.puredata.org/Members/jmmmp IBM Thinkpad R51, XP, Ubuntu GG Pd-Ext-0.39-2-t5, Pd Van 0.40-t2