On Thu, Jul 29, 2004 at 09:17:03AM +0100, Chris Cannam wrote:
On Thursday 29 Jul 2004 12:42 am, Dave Robillard
wrote:
I vaguely remember a discussion here about LADSPA
ID's (unsigned
long UniqueID) not actually being globally unique to a plugin like
the header implies, but I can't find it in the archives.
So.. unique or not? Basically I need to know what the "proper"
information is to send a synth in order to load a plugin.
The outcome was that (i) LADSPA _does_ appear to specify that the
unique ID should be globally unique, but (ii) it's not in practice
easy to guarantee that, for generated or wrapper plugins (e.g. a vst
wrapper that doesn't know how many plugins will be in the .so until
it's counted your VSTs), and (iii) some plugin developers (Steve!)
thought the LADSPA docs said differently anyway, so it's possible
they may have made plugins with duplicate IDs.
Personally I've only done that by accident! But it has happened. My buil
process now has a bozosity checker run, that looks for silly mistakes,
like two plugins with the same ID. I do learn eventually :)
/* This identifier can be used as a unique,
case-sensitive
identifier for the plugin type within the plugin file. Plugin
types should be identified by file and label rather than by index
or plugin name, which may be changed in new plugin
versions. Labels must not contain white-space characters. */
To me this makes it pretty plain that filename and label is at least
intended to be a valid unique ID within your filesystem, and in
practice I'd expect it to be an effective id for the plugin anywhere
in the world.
I think it should be: local filenames are unique, and labels are
required to be unique in the file.
A problems with using UIDs for this kind of thing is that they dont have
to change with plugin versions, so you can end up with two plugins iwth
the same ID and ports, but different paths nad different effects/bugs, and
you dont know which one to load.
One problem is that there seems to be an informal
understanding that
if you change the port specifications for a plugin you should also
change its unique ID, but I don't think there's any such
understanding for labels, so you don't have the reassurance of
knowing you're using the version you actually intended.
All this and more :)
- Steve