On 30/03/11 07:40 AM, Stefano D'Angelo wrote:
2011/3/30 David Robillard<d(a)drobilla.net>et>:
On 29/03/11 02:59 PM, Tim Goetze wrote:
[Philipp �berbacher]
Excerpts from Stefano D'Angelo's message
of 2011-03-28 22:59:46 +0200:
> This means, if you change the port signature and maintain the same
> UniqueID, we would have incompatibilities in the LV2 world. If you
> create a new plugin or don't touch ports, instead, everything's fine.
>
> Stefano
>
>
I'd say you'd even have incompatibilities in LADSPA world. Even fixes in
LADSPA plugins would sometimes need a new ID (This was discussed a while
ago regarding a LADSPA that has an unintuitive port order).
Lacking sufficient knowledge of all the LADSPA hosts out there, I'm
unable to judge how many will cope with the addition of a port to an
existing plugin and how many will not.
/Adding/ a port is probably fine, since hosts can just use the default
value
or connect it to silence.
However, "adding" here really means "appending": the new ports must
be added
on to the end of the ports (by index). Definitely do NOT change existing
indices for ports, that will definitely break a lot of things in horrible
ways! It's not even possible to properly cope with that situation.
Mmm.. so I could maybe add the port number to the URI and add
dc:replaces, like this:
<urn:ladspa:1234:5> a lv2:Plugin ; dc:replaces<urn:ladspa:1234> .
You could to this, but the URI is changed, and that URI doesn't adhere
to the standard LADSPA URI scheme (don't do that).
Yet, I should send patches to those plugin authors
providing both LV2
and LADSPA versions of their plugins (the same holds true for DSSI, I
guess).
At the moment I don't seem to be able to come up with a better solution. :-S
In LV2, the way to do this correctly is to add a connectionOptional
port, and the URI does not have to change. You would have to special
case this, I suppose.
We could also just port CAPS :)
-dr