[LV2] Multiple questions related to parameter handling and UIs
Reuben Thomas
reuben.thomas at me.com
Tue Feb 16 00:35:17 PST 2021
I'm currently investigating adding LV2 support to a plugin framework. For the
most part, the process has been very straightforward and enjoyable, thanks to
the documentation and also to the abundance of open-source plugins and hosts
that are available for testing. It's clear that a lot of work has gone into the
LV2 ecosystem, so thanks for that!
Unfortunately, I've run into a few issues that I'm not sure how to resolve.
Would anyone here be able to answer these questions?
- Firstly, I have some questions about parameters. Plugins built in the plugin
framework currently have VST-like parameters which can change themselves at
any time. It seems that such parameters should not be exposed as control
ports, because hosts expect that control port values will never be changed
directly by the plugin. The 'patch' extension seems like a better fit, but
it's not clear how to replicate some features of control ports with the patch
API. Specifically:
- The 'touch' feature of the UI extension expects that each parameter
corresponds to a unique port, but the patch API uses a single port for
multiple parameters. Is there a convention for communicating 'touch'
information with the patch API?
- Some of the PortProperties in the core spec would be useful to apply to
parameters, rather than individual control ports. Is it valid to declare
`ScalePoint`, `enumeration`, `integer`, and `toggled` on a Parameter
rather than a Port? If not, is there some alternative way of conveying
this information?
- My plugin framework allows defining parameters with custom functions to
convert to/from string. This is a little more flexible than the LV2
system, which provides the host with parameter ranges and units, and
leaves all the string conversions to the host. Is there any way to allow
an LV2 plugin to format its own parameter value strings?
- I also have a UI-related question: When a UI requests a resize via the resize
struct, should the returned size incorporate the scale factor passed as an
option to the UI? That is, is the requested value in pixels or points? I
could work this out empirically by testing some plugins which implement
'scaleFactor', but it'd be nice if this was documented in the spec.
I hope that's not too much all at once. Thanks for reading!
Reuben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lv2plug.in/pipermail/devel-lv2plug.in/attachments/20210216/390db79a/attachment.html>
More information about the Devel
mailing list