On Mon, Jul 6, 2009 at 5:01 AM, David
Robillard<dave(a)drobilla.net> wrote:
There are conflicts with the unique ID too, but
there's no accounting
for broken plugins I guess.
Filename/label can be made to work; "unique" ID can't, for any dynamic
or automatically generated plugin library.
Take dssi-vst for example. It consists of a single library that
publishes many LADSPA plugins, whose number and type are unknown until
run time. It can't map them onto a reserved range because it doesn't
know in advance what plugins it may have to wrap. It can't
realistically generate a good hashed value, because of the range
limitation given in the LADSPA header ("below 0x1000000") and the need
to avoid reserved ranges. It can't pass through the VST plugin's
existing numerical ID, because these are typically generated by
mapping from strings or hashing, and consequently are also usually out
of range, and anyway it can't know whether a LADSPA plugin of the same
ID already exists.
I was sorely tempted to make it use the unique ID of 1 for every
plugin. I didn't, but the method it actually uses is really no better
in practice.
I realise many on this list won't care about wrapping VSTs, but any
generated wrapper plugin (e.g. from Faust) will have the same problem.
Never rely on the "unique" ID of a LADSPA plugin.
(URIs are far better than either filename/label or numerical ID of course.)