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.