On 11/8/2009, "David Robillard" <dave(a)drobilla.net> wrote:
On Tue, 2009-08-11 at 19:01 +0100, Steve Harris wrote:
> On 11 Aug 2009, at 18:41, David Robillard wrote:
You might
actually want a struct of { int channels; float *data[]; }
though to keep all the pertinent stuff together.
Good point... this also sets things up to be compatible with
plugin-allocated dynamic output buffers in the future without needing
any hokey mechanism just to say how many are there, which can't hurt.
Maybe we should go a teeny bit further and make the struct extensible,
putting the data pointer first.
For the purposes I've been thinking of (not synthesis and polyphony) the
outputs would of course need to be replicated just the same as the
inputs. I'm thinking perhaps this is obvious and you're talking about
synthesis and polyphony, in which case, how would this fit in with the
purposes of simple plugins which need the same count of outputs as
inputs?
Say you have a LP filter plugin processing a stereo stream. It has one
port for the cutoff and two ports for input, therefor two for output.
What happens if you decide you want independent control over the cutoff
for the two channels?
... therefor the multichannel port property might be optional or switch
on/off...
Could that be handled for instance with the dynparam extension?
Obviously the audio ins/outs would always be mutlichannel (in this
context) but some plugins should provide a choice as to whether the
control ports are single (ie provide the same value for all channels) or
multichannel (each channel has it's own control port).
James.