On Fri, 2009-08-14 at 22:31 +0200, Fons Adriaensen wrote:
On Fri, Aug 14, 2009 at 01:52:38PM -0400, David
Robillard wrote:
I generally think of this problem in terms of
"plugin telling the host
precisely what it's I/O is". Hosts can be as clever as they like :)
Or a plugin telling a host what its I/O *can* be - i.e. offering
several options and letting the host or user decide which one
makes sense. For example a plugin could offer to do the right thing
for either general multichannel (all equal) or for some AMB format.
Then it depends on the host or user to select the right mode. It's
this sort of thing I had in mind when writing that maybe you can't
just rely on port properties alone.
You can pretty much literally describe anything with port properties (or
similar), since RDF is a fully powerful data model. Something like this
will involve some binary things as well, yes. As usual that is kept to
a minimum because data is more flexible.
I agree both things you mention here (listing the specific formats a
group can support, or 'general multi-channel) are needed. This isn't
too bad, it could e.g. support 5.1 or WXY or whatever, or any number of
channels from 1 through 16.
The only thing I can think of that would make it hairier is if, say, the
plugin could only support multiples of some number of channels. Is this
necessary where the upper limit is infinity? Are there any more complex
requirements that are reasonable? I can't think of any, this seems way
beyond reasonable to me.
Ideally (IMO),
hosts would look at all the plugins they have to find
converters. For example, if you have stereo, and need to convert it
into 5.1, check all your plugins for something with a stereo in
corresponding to a 5.1 out. Hardcoded logic in hosts for this kind of
thing is unfortunate, especially for e.g. ambisonics where it's far from
trivial behaviour.
True... But take into account that such conversions would be the
exception rather than the rule. You could have a 5.1 mixdown session
that at the end is converted to stereo for a CD release, but you would
normally never have anything that converts between different formats
more than once. So it's perfectly acceptable to require a user decision
in case such a conversion is needed. But I do agree 100% that there
should be no hardcoded logic for such things - it would get it wrong
most of the time, no matter how hard you try.
Sure. Just a host/UI issue. Even using plugins to do it you'd probably
have to defer to the user to ask which one to use anyway.
-dr