[LAD] Lv2 port replication [was Re: the role of lv2 extensions]

Fons Adriaensen fons at kokkinizita.net
Wed Aug 12 21:29:19 UTC 2009


On Wed, Aug 12, 2009 at 05:04:05PM -0400, David Robillard wrote:

> On Wed, 2009-08-12 at 23:00 +0200, Fons Adriaensen wrote:

> > That is the essential difference between a plugin being used in 
> > a multichannel stream and one being used for polyphonic synthesis,
> > where the cutoff frequency could be a per-voice envelope.
> > Provided the plugin can do both, it is the *host* that has to make
> > clear what's required. 
> 
> ++
> 
> Though in the latter case, it's probably best to just instantiate the
> thing twice as hosts currently do (and will likely need to implement
> regardless).

Yes, the 'polyphonic' case is the only one where just replicating
the complete plugin would make sense (*). But even in that case there
could be some shared parameters - maybe we just have to accept the
cost of them being evaluated N times.

OTOH, there is a big difference between e.g. a lowpass filter in a
mixer strip and one being used as part of synthesiser patch.

In the first case the cutoff parameter would be static 99.999% of
the time, while in the other it's bound to be very dynamic. In both
cases you'd want 'zipper free' performance, but the tradeoffs would
be quite different.

My current view on this is that plugins should be either 'audio
processing' (the mixer case) or 'synthesis', and not try to be both.

Ciao,

(*) Also for 'organisational' reasons: other parts of the patch are
likely to be organised in that way. Or the synth just instantiates
the basic monophonic patch as many times as required, making the
whole replication transparent to the plugin.


-- 
FA

Io lo dico sempre: l'Italia è troppo stretta e lunga.




More information about the Linux-audio-dev mailing list