[LAD] State of Plugin API's

David Robillard dave at drobilla.net
Sun Nov 1 16:00:24 UTC 2009

On Sun, 2009-11-01 at 01:11 +0100, Jörn Nettingsmeier wrote:
> David Robillard wrote:
> <many, many things>
> dave, if you'd really read the my post in its entirety and not jumped at
> the one provocative catchphrase, you might have noticed that we're
> pretty much on the same side. heck, i've even begun to dig into larsl's
> lv2 tutorial.
> to re-iterate what i had thought i had been communicating:
> lv2 is a *very* *sexy* piece of *software* *engineering*.
> the problem is, many people are looking for a *standard*.
> as a standard, lv2 is ages behind ladspa, because you just don't know
> what your host will support until a canonical set of extensions has
> emerged and is generally implemented. don't give me that graceful
> degradation thing - if a plugin author wants an extension, it's
> generally mission-critical and the plugin will be unusable except in
> those few carefully crafted examples you gave.

"Core" LV2 is more powerful than LADSPA.  In addition, there's other
features you can use.  Saying this is ages behind LADSPA makes no sense

I don't think your "mission critical" statement is true at all.  GUIs,
presets, most port types, can all easily gracefully degrade.  Calling
these "well-crafted" examples is a bit of a stretch.  Where are your
well crafted examples? ;)

> let me dig out the tired old analogy: lv2 is xml. you can define what
> you need, and anything goes. in principle.
> ladspa is html. it's ugly, kludgy, non-extensible. but if i put
> something in <a></a>, then every friggin browser in the world will
> underline it in blue and make it perform the action the user expects
> when she clicks on it. that's quite lame from a software architecture
> standpoint, but it's really cool for users.

A is fundamental.  Embedded SVG is not.  X(HT)ML supports embedded SVG.
If your browser doesn't support it, that part simply doesn't work.

You are arguing that any browser that does not support embedded
SVG /should not work at all/.  Does that make sense to developers?  No.
Does it make sense to users?  No.  Is that how the web works?  No.  Why?
Because it's stupid and has no advantage whatsoever.

> i'll be the first to admit that my programming skills are more akin to a
> html "programmer" than anything real. i can write a ladspa plugin in no
> time. i could also write a simple ladspa-equivalent lv2 plugin in no
> time, but using all those cool extensions or probably designing my own
> is beyond me. hence, no win, and no inclination to pick up lv2.
> world domination implies you gotta win at least a percentage of the dumb
> fucks like me, not just the hotshots.

Using them can't be beyond you if writing a basic plugin isn't.  Writing
one may be.  So what?  Wait until the hotshots finish those extensions,
then.  You are just whining that such and such a feature hasn't been
done yet.  The mechanism, for the 9 billionth time, has nothing to do
with this.  You are assuming that the whole thing is just so dreadfully
complex to use in order to make this argument, which is not true.

> please, dig this: i'm talking about the standards aspect, not the
> engineering aspect. i don't know shit about software engineering, and
> never claimed otherwise. however, i do know which things pick up
> momentum and which linger half-dead in the water.
> actually, the largest part of my post was about strategies to help lv2
> pick up momentum.

You can give a silly name to LV2 + some "standard" package of extensions
if you please.  You can invent 18 different baroque little "categories"
of extensions for no reason whatsoever if you like.  It is a more or
less completely pointless thing to do, but if you like marketing, feel
free.  You can design pretty little logos and everything, whee.  It
doesn't change anything.

> don't give me that M$ FUD shit, either. heck, i've been doing more linux
> audio advocacy in my life than is good for me, and i really don't see
> why you're perceiving a little provocative discourse as some sort of
> intrigue from evil incarnate. just relax.
> that said, i hope you know i appreciate and respect the work that went
> into lv2. hence,

No personal ill-will.  I'm plenty relaxed, but somebody has to set the
record straight of the constant stream of misleading LV2 slander you're
pumping out.  If it's not obvious, this kind of thing irks me because
your arguments are completely false and ridiculous, dripping with
fallacy and hand waving and all the other infuriating things about
people being stupid on the internet.  That /is/ evil incarnate ;)

My point with the FUD thing was that, even though I'm sure you and
(some) others aren't malicious, saying things like this does harm LV2.
I have seen it happen, developers write the whole thing off because they
read things like your criticism and figure the whole thing is a hopeless
mess.  It is not a hopeless mess, the sky is not falling, and all this
"standards" crap is just hand-waving.  The things you are saying are
false and misleading.  Not very good advocacy...

Yes, There are some features that still need doing.  You claim the
problem is a lack of "standards".  Extensions are standards.  You want
to give one label to an approved set of extensions or something like
that - well how are you going to give a label to a set of extensions

Really it's just an obfuscated and faulty argument that masks the actual
point that "some things I want are not there yet".  This is true, and I
agree, and the sooner they gets sorted out the better.  But the problem
is simply that these things need doing.  A bunch of pointless
bureaucracy and baroque "standard" definitions and pretty names and
labels or whatever the hell worthless nonsense is being pitched here
will not get them done, period.

Again: the problem is only that some things aren't done, period.
The ONLY thing that solves that is actually getting them done, period.

All that is needed as far as making things clear is, as always,
documentation, and I of course agree all generally well-accepted and
reviewed extensions should be easy to find and well-documented.  I've
written a tool to automatically generate documentation about extensions
from the .ttl towards this end.  Here is some of its output:

You'll notice that, say, e.g. ramped control ports aren't there.  You
seem to think that defining a (meta-)"standard" with a pretty name that
includes this feature among others will solve some problem.  Okay, let's
pretend this gets done.  We'll call it LV2 Control Pack XP Ultra(TM).
Great!  A "standard"!  Just what we apparently need! ... Exactly what
problem has been solved again?  The feature still does not exist.  I
don't see how you're even going to describe such a thing in terms of a
feature that does not exist anyway.  No problem is solved at all,
because the whole idea is nonsense.

Notice how this chicken little stuff never comes from people who
actually work on LV2 stuff?  It's not a coincidence.  There are some
features that would be nice to have, and people will get around to
solving them eventually.  Meanwhile, l-a-* will sporadically erupt with
people complaining about those other people not doing it fast enough for
them, and coming up with all sorts of hilarious non-solutions that never
seem to involve actually doing the work.  Imagine that.


More information about the Linux-audio-dev mailing list