[LV2] LV2 C++ Tools Additions

Michael Fisher mfisher31 at gmail.com
Thu Sep 20 11:41:11 PDT 2012

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...


... is where my stuff is.

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

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 ;)


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.

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.

The sampler should also discover available samples via lv2 resource bundles.

Keep an eye on my github page for new developments if interested.  I
finally broke some time to revive my LV2 C++ adventure, but this time
its on github and you guys know about it.

The goal for C++ tooling, is more than just implement what I
personally need in my stuff.  I'd also like to cover the entire LV2
(stable) feature set

Thanks for reading!

More information about the Devel mailing list