[LV2] self automating plugins - RFC
Hanspeter Portner
ventosus at airpost.net
Sun Feb 21 02:32:35 PST 2016
On 20.02.2016 12:44, Robin Gareus wrote:
> 0) user initiates analysis mode (either via a standard control or a
> dedicated plugin specific GUI)
>
> 1) The plugin tells the host that it entered analysis mode by sending:
>
> atom:Object a auto:setup;
>
> 2) the first time a plugin "touches" a parameter it sends
>
> atom:Object a auto:start; auto:parameter <int> ;
>
> This is to allow the host to add guard-points. it's like to a user
> touching a control-knob on a touch-sensitive control-surface.
>
> 3) plugin sends a sequence of
>
> a auto:event; auto:parameter <int> ; auto:value <float> ;
>
> 4) The plugin releases touch on a parameter by sending
>
> atom:Object a auto:end; auto:parameter <int> ;
>
> 5) the plugin may go back to step 2 anytime or tell the host to complete
> the process (usually user initiated) by sending
>
> atom:Object a auto:finalize;
Thanks, I too have an application in mind that could profit from such a flow, e.g. training neural nets on events and/or
audio.
* Points 0, 5 make sense to me.
* Are points 2, 4 really necessary? Can't the host figure this out by itself as it knowns to have entered analysis mode?
* Point 3 is only needed because you seem to base your RFC on lv2:ControlPort|lv2:InputPort which are write-only by host
and read-only by plugin.
Why not use lv2:Parameter in the first place? They are read-write by both host and plugin (via patch:Get and patch:Set
messages). There would be no need for additional message types apart from the already existing patch:Set.
e.g. simpler flow based on lv2:Parameter and patch:Set
1) the plugin tells the host that it entered analysis mode
a patch:Set;
patch:property <auto:analysis>;
patch:value true .
2) the plugin sends a sequence of
a patch:Set;
patch:property <myplugin:parameterX>;
patch:value
a atom:Int|Long|Float|Double|Bool|... .
3) the plugin may go back to step 2 anytime or tell the host to complete the process
a patch:Set;
patch:property <auto:analysis>;
patch:value false .
More information about the Devel
mailing list