[LV2] LV2 C++ Tools Additions

David Robillard d at drobilla.net
Fri Sep 21 13:22:32 PDT 2012

On Thu, 2012-09-20 at 13:41 -0500, Michael Fisher wrote:
> Hello LV2
> I really hope this is an appropriate list for this. If not, my apologies.
> A few months back I checked the-status-of LV2 and was excited to see
> so many new features becoming stable.  Great Work!  And being a fan of
> lv2-c++-tools, I was hoping to see some of these new features there.
> Not so much.
> I took the time to add some of these, which I didn't publish until yesterday.
> You can find my unofficial lv2-c++-tools repository on github ( hope
> its ok to do that ).  github apparently doesn't like "+"'s in repo
> names so...
> https://github.com/mfisher31/lv2-cpp-tools
> ... is where my stuff is.

Speaking of names, the pkg-config name of this package has always caused
a ton of user confusion.  It's really bad for third party libraries to
be using the names lv2-plugin and lv2-gui!

Given that AFAIK Lars is MIA and this package is unmaintained, maybe it
would be a good idea for you to just fork the thing, give it a distinct
name, which would make the ambiguity go away and hopefully let the
community move to the active project and get away from these names and
other problems?

> All of this depends on the latest lv2-1.0.0.tar.bz2 package from the
> lv2plug.in site.
> So far I have the beginnings (working) c++ versions of.
>  - LV2 Atom
>  - LV2 State
>  - LV2 Worker
>  - LV2 URID


> I figured the rest of the world should see what I'm doing.  Maybe let
> me know if I'm on the right track with it.  I certainly don't want to
> step on any toes.
> So how am I testing all of that?  Good question.  I started a plugin
> collection based off my initials, mrf-plugins ;)
> https://github.com/mfisher31/mrf-plugins
> So far I've only started one plugin.  I call it Drumbot.  Eventually
> it will become an Advanced LV2 sampler, but for the time being is a
> testing ground for the above LV2 C++ stuff.  For example, I'm
> implementing in C++ the state feature which embeds an XML document
> (hydrogen kit) into an LV2 preset.  That's not really what I'm going
> for in the end plugin.
> I don't want to blab on and on, but one key thing I'd like to
> implement for the sampler is controls on a key-by-key basis.  So for
> each key on the keyboard there is a set of common controls like
> volume, stereo balance, cutoff,  pitch, ???.  And to further
> complicate that idea, each key can also hold more than one "layer" of
> samples.  Each of those layers would also need a common control.  The
> last thing I want to do is define a few hundred control ports to
> handle that.  Any ideas?  Is that dynamic manifest territory?  lol,
> sorry for my LV2 feature ignorance.

Per-note or per-key control like this are certainly best done with
events.  I don't think any other way is really feasible.

> One resolution floating around in my head is to define a "selected
> key" port, followed by a "selected key layer" port followed by "common
> controls".  the selected key would let the plugin know which key/layer
> to work with.  Not sure if that's conventional in terms of LV2
> standards and still seems a bit messy.

Ick.  Adding a "context" like this will break all kinds of things.  I
don't think you want to go this route.

Thanks for taking this on,


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.lv2plug.in/pipermail/devel-lv2plug.in/attachments/20120921/00bc7a5c/attachment-0002.pgp>

More information about the Devel mailing list