On Nov 23, 2010, at 12:32 PM, Frank Barknecht wrote:
On Tue, Nov 23, 2010 at 11:57:26AM -0500, Hans-Christoph Steiner
wrote:
On Nov 23, 2010, at 3:52 AM, Frank Barknecht wrote:
Is there a special reason tha I'm missing for voicepoly using
[initbang]
instead of [loadbang]?
It makes the coding much easier, IMHO. Also, it gives the
possibilities
for dynamically creating inlets and outlets. But the objects don't
currently do that, so I am open to someone converting them to use
[loadbang]. They do require ggee/getdir tho, I think there is no
replacement for that. I just got rid of a zexy requirement, so its
currently [initbang] and [ggee/getdir] AFAIR.
The problem with initbang is that currently it requires a patched
version of Pd
so it's not as easy to install as an external. Unless you create
inlets or
outlets dynamically, initbang IMO is superflous and patching with
loadbang is
almost as easy: Just add one "loadbang" message box and trigger it
at the end.
It is true that [initbang] is not easy to use with Pd-vanilla. I think
its a good idea to use [loadbang] instead, as long as it provides the
same functionality. I'll try it.
Creating inlets/outlets dynamically can be useful, but actually it
would be
most useful to get rid of the nasty wrapper abstractions, but for
that you'd
ideally need a way to detect the number of inlets/outlets a
dynamically created
object has. I think, iemguts has something for that. The rj polys
don't use
wrappers, but they require your abstractions to be designed
specially, for
instance midi-note pairs in and stereo outs. In practice this is
sufficient in
many cases.
Check out bundle, instances, and instances~. They don't use the
wrapper abstraction. But they also don't do voice allocation
management. To do that without the wrapper abstraction would be the
real win. I guess that would be possible using your dynamic send
technique, perhaps keeping a list of busy instances. I guess you are
using [poly] to do the voice allocation, which doesn't work for more
generic things.
I didn't look in detail at how [getdir] is used, but for the rj poly
objects we
just require that the things you want to create dynamically are in
your search
path, just like for [polypoly]. I think, that's probably a reasonable
assumption.
That's a dangerous assumption on anything but a small, tightly
controlled system. That takes us back to the bad old days when if you
used an external library, chances are your patch would not run on
anyone else's machine. A library should work regardless of the user's
path setup, etc. getdir is used to get the full path to the
abstraction that's given to the poly object, and then each instance is
created using the full path.
ggee uses the Tcl/Tk license, so I think you would be able to
distribute it via the Apple iTunes store (i.e. not GPL).
.hc
----------------------------------------------------------------------------
"It is convenient to imagine a power beyond us because that means we
don't have to examine our own lives.", from "The Idols of
Environmentalism", by Curtis White
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list