LV2 Development Test Host

I’m developing some LV2 plugins. Using a mix of Carla and Ardour (source build alpha), and finding documentation on inline GUI is a bit sparse. It’s quite a nice tool though, that I’ll have to learn deeper. I’ve used Cubase … on AtariST and WindowsXP, plus others.

As I must attempt to sell plugins for a token minimal price (beer money), I’m using only liberal licencing libraries such as Xputty GUI.

So apart from the docs, are there any build flags to assist in “debug/analysis” of LV2 plugins?

Cheers.

Some resources and tools that might help:

  • Use lv2lint to check your plugin’s TTL files for completeness and correctness.
  • Use lv2bm to check for performance improvements / degradation.
  • Use pluginval to check your plugin’s compatibility with JUCE-based hosts.

Also, in case you have specific questions, ask around on IRC (libera.chat) on #lad or on the LV2 mailing list.

Finally, as always with FLOSS, read the source, for example of Carla, Ardour and the lilv library.

1 Like

It sadly was never accepted as official extension. I suppose the easiest is to glean from existing plugins. The ones that come with Ardour (search for render_inline in Ardour’s source tree) or LSP, drumgizmp, x42-plugins,…

The API itself has some sparse documentation: Ardour: LV2_Inline_Display_Image_Surface Struct Reference and the header-file may be useful as well: ardour/libs/ardour/ardour/lv2_extensions.h at 0ff0d4df8b52e8593702958c4dc76582fa4664ca · Ardour/ardour · GitHub

As for general testing: debug builds of Ardour come with a “Dummy” audio-engine (Menu > Window > Audio/MIDI setup). That not just has some handy signal generators (noise, sine waves…), but also a “Demolition” mode, which produces NaN, inf, denormals,…

image

Some plugins with internal state will not recover after seeing unusual input.

If you edit the plugin in “Generic Mode” (no custom GUI), Ardour shows the transfer function, and CPU time profiling:

2 Likes

I think the “default” GUI is good enough for control, but I might make a “visualization GUI” for the plugin after audio considerations, maybe even fullscreen.

Great information I’ll look over some of it this weekend.

Ok, so after a git checkout 8.10 and adding export ARCH=$(gcc -dumpmachine) and export LV2_PATH=/usr/local/lib/$ARCH/lv2 (something to do with multiarch and cross-compilers being on the system (occasional rust and other compiles for arm64 with low memory). I get an eventual scan with an error on “unsupported port type” as CVPort is not supported. I’m not sure if it would affect anything else and there’s no option to connect to an automation. But, yes, it does load via a Carla patchbay. I think it might be a feature request.

Still nice though as the Carla patchbay (VST) “instrument” loads (it might be yabridge). I found the nice side-chaining dialog really nice, but with a second redundant automatic/manual widget.

And I found out how to do the “maker” field in the plugin list. Cool. And OSC too. :grinning:

Yes. Ardour does not allow CV ports (unless they are marked as connectionOptional).