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. _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
