[LAU] LV2 control-ports and midi binding -- was Re: [ANN] setBfree v0.8

Rui Nuno Capela rncbc at rncbc.org
Tue Jun 23 18:34:48 UTC 2015


On 06/23/2015 05:59 PM, Filipe Coelho wrote:
> On 06/23/2015 06:46 PM, Rui Nuno Capela wrote:
>> i still think that a simple standard defined message for a plugin to
>> tell its host the following:
>>
>>   "-- i've made some changes onto my own internal state, including
>> some, if not all of (my) parameters (aka. input control ports), so
>> please scrap all your current view state of me from this moment on and
>> get it all re-freshened up, will you? btw. you can also opt to set
>> your session dirty flag, as for saving my (partial new) state later on."
> Please don't.
>
> Plugin ports are only valid during run, which means the plugin can only
> send such message during run.
> If you have a host like ardour or carla that splits the processing into
> smaller blocks this will get very ugly.
>

i'm afraid i don't follow you there

the moments when a plugin would make such kind of changes are rather 
eventual, in response to some sparse, special or rare external stimuli, 
be that MIDI input or else. sure no one expects an eg.MIDI 
program_change to be sample-accurate or real-time safe, would s/he?

fwiw. yours truly qtractor is also a lv2 host and it suffers from the 
same, although to a lesser extent perhaps: it always honours 
dereferencing of a plugin's input port value at all times, especially 
during run ie. a plugin's parameter value takes precedence or priority 
over eg. automation, which in fact is effective only on playback start, 
rolling and stop times. well, on play-head relocation too. nb. under 
qtractor, a plugin is always in run state, provided it's activated.


> Sending some dirty flag to the host is fine. Attempting to change some
> input port value is not.
>
>
> This is simple.
> If you have some internal data that the plugin needs to modify during
> run - don't export that data to the host.
>

no, i'm sure it is NOT that simple

so, you're there saying that a lv2 plugin's state must be completely 
isolated and entirely independent from its own parameters or input 
control ports?

i'd say that's an utter complication from a plugin author's pov. i'm 
afraid it sounds like lv2 puritanism, which i won't bother to discuss 
here any further. so sorry.

byee.
-- 
rncbc aka. Rui Nuno Capela


More information about the Linux-audio-user mailing list