Hi Olaf, list
it seems we've created very similar things... Based on Krzysztof's rabin~ code I've made an external called 'clone' that can load several instances of an abstraction. A first experimental prerelease can be found at http://www.akustische-kunst.org/puredata/clone/ (Win and OS X at the moment; but should compile for Linux as well). See the attached PDF for a short overview what it does.
Great - looks nice.
Is it possible to avoid the proxy objects in any way?
Why? - 'clone' uses proxy inlets / outlets as well and I haven't found any other way to do it.
simply to avoid the parsing that goes on.
- Signals. (Should be straightforward, I think... it might even work
already...?)
... have a look at clone (or rabin~) to see how it could be done.
yup - thanks that does look quite straightforward
- Can this be done as an external?
Yes and now. Your solution calls a lot of Pd's internal routines which aren't exportet. On the other hand it's possible to use other functions to do (nearly) the same thing.
yes - I started off as an internal so I could call PD code without duplicating its functionality. Can someone tell me if there's a way to get the "newest" object from an external?
I figure that I should carefully look at the S__N and S__X symbols to get a hang of how they're used.
- Should I just programmatically create a canvas with my
objects (inlets
and outlets) in it and connect them together (avoids custom
ainlet/aoutlet
classes).
If you mean dynamic patching I guess it depends on what you want to do. If you need it to be dynamic while your abstraction is running it's probably a good idea. In case you just want to load a fixed abstraction it's at least easier to create just one object box instead of all the things needed to build your abstraction dynamically...
I was suggesting doing the dynamic patching programmatically... trying to avoid any duplication of PD internal code and make a clone/array that is more robust.
I'm glad that these objects have appeared - very useful and nice to avoid having to script any dynamic patching stuff which always seems like a step out of the patching paradigm.
As an aside, is it really true that nobody has created an sprintf external for PD yet? Now there's a project for this weekend...
Daniel