2009/6/25 David Robillard <dave(a)drobilla.net>et>:
On Wed, 2009-06-24 at 21:47 +0100, Chris Cannam
wrote:
(I've never really got on with the idea of
using ~/.ladspa instead of
~/ladspa -- these are perhaps substantial binary files, why hide them
in a configuration directory? -- but it seemed to be widespread for
LADSPA hosts at the time DSSI was thought up, so we copied it for the
first DSSI hosts.)
It would be nice to stick with this, but it doesn't seem to really have
a place for plugins:
http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html
Uhm, maybe we should talk to the author?
Anyway, regarding multiple occourrences of plugins, the following
stuff emerged so far:
* LADSPA header asks hosts to identify plugins by filename and label,
which implies:
- two plugins with same UniqueID and/or label are different plugins (lame);
- files containing sessions/patches/etc. are not portable beetween
different systems or different versions of the same system (lame).
* LV2 identifies plugins by URI, which means:
- in case of multiple plugins with the same URI someone has to decide
which one to use - the host, maybe by choosing according to the
discovery order (bad for the unaware end user, and maybe even
inconsitent in case the two bundles are in the same directory) or the
user (better, but maybe a bit harder to handle in support libraries
like SLV2?).
* DSSI header file does not specify how a DSSI plugin should be
identified by the host, but a DSSI plugin descriptors contains
reference to a LADSPA plugin descriptors, which maybe implies the same
kind of identification maybe?
* what about VAMP? (VampPluginDescriptor.identifier maybe??)
It would be cool to use the same "strategy" with all APIs (and this is
the right time to do it, new versions of LV2 and LADSPA in the
making), but at least we need well defined rules for each API.
Then, we are missing:
* LADSPA: default paths on Windows and Mac OS X;
* LV2: defaults paths on Windows (I read a *TODO* there);
* DSSI: default paths for DSSI_PATH;
* VAMP: default paths (we could use Vamp SDK's ones?).
* LRDF: default paths in any case.
Then, we also have other free APIs such as libzzub/Armstrong,
gstreamer, etc. - maybe we could steal from there?
Stefano