[LV2] Configurable channels for LV2 plugins

Harry van Haaren harryhaaren at gmail.com
Sun Mar 24 09:14:57 PDT 2013


Hi everybody,

I've been thinking a bit about how to let the host decide how many channels
a plugin should handle.
Currently I'm only considering mono / stereo but of course future
expandability is important.

Reading around, the port-groups extension seems designed to describe the
audio I/O formats.
Setting the port group type could be done using the Options interface.

We'd need to make an extension like "instance-port-configuration" (but a
better shorter name)
#define PLUGIN_PORT_CONFIGURATION "
http://lv2plug.in/ns/ext/pluginPortConfiguration"

What I'd imagine the "running order" of a host wanting to set up a stereo
plugin (an supports options):
-plugin is tagged with opts:requiredOption pluginPortConfiguration:atSetup
-plugin lists pg:monoGroup and pg:stereoGroup as understood types.
-host passes "options" LV2_Feature to plugin,
-plugin iters over the provided "options" and finds one with the Key field
set to URID mapped PLUGIN_PORT_CONFIGURATION

Plugin interprets "option":
-context LV2_OPTIONS_INSTANCE, so ignores subject
-subject 0
-key URID mapped PLUGIN_PORT_CONFIGURATION, (how this option was identified
as the configure option by plugin)
-size 0
-type URID mapped pg:stereoGroup.
-value pointer 0

Issues I've not resolved / don't know how to deal with:
-the plugin must change the amount of ports that it connects, dynamic
manifest? Its supported by very few hosts..
-always expose the max channel count the plugin can process (say 5.1: 6
channels) but only process the ones as per the pg:stereoGroup?


This is my first attempt at getting designing LV2 extension, so I'm sure
theres some inconsistencies with the accepted formatting of extensions..
I'm intrested to hear what others think of the design here, am I missing
out something?
Cheers, -Harry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lv2plug.in/pipermail/devel-lv2plug.in/attachments/20130324/46d450e9/attachment.htm>


More information about the Devel mailing list