[LV2] LV2 C++ Tools Additions

Jeremy Salwen jeremysalwen at gmail.com
Thu Sep 20 23:35:10 PDT 2012

On Thu, Sep 20, 2012 at 2:41 PM, Michael Fisher <mfisher31 at gmail.com> 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.
> 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.
> 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!
> Mike
> _______________________________________________
> Devel mailing list
> Devel at lists.lv2plug.in
> http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in

Hi Mike,

Great stuff!  I'm happy to see some more contributions to the LV2 ecosystem.

One thing is that you leave the original readmes from lv2-c++-tools.
Especially on a place like github, it's not clear the role of the
repository to a newcomer.  Announce the purpose of your version of the code
right at the top of the readme (and therefore prominently on the github
page).  You can still preserve the original readme somewhere else (or even
just after your header), but it helps a lot to have a version specific
README if you fork.

As for more precise and flexible controls, there's been some talk 'round
these parts about supplanting LV2 control ports with some sort of
event-based control system.  I'm not really sure about the timeline or
expected features, but hopefully David will comment.

Good Luck,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lv2plug.in/pipermail/devel-lv2plug.in/attachments/20120921/2cb7abc7/attachment-0001.htm>

More information about the Devel mailing list