Re: Channels and frames (correction)
Re: Channels and frames (correction)
- Subject: Re: Channels and frames (correction)
- From: William Stewart <email@hidden>
- Date: Mon, 7 Nov 2005 10:42:26 -0800
One correction:
On 04/11/2005, at 7:32 PM, William Stewart wrote:
In thinking of how best to summarise this discussion (and answer
some of the misconceptions, confusions, etc that were raised), I
generally think this is best explained in the docs we already have
prepared for this:
/Developer/Examples/CoreAudio/Documentation/AudioUnits/
IOChannelConfigurations.rtf
Please read this document with some attention, as I doubt I can put
this in better detail than has been explained there.
Just to try to clarify (I hope!) a couple of points:
Think of the stereo mixer we ship. It has multiple inputs and a
single output. Its output is always stereo. Its inputs can be mono
or stereo. We express this AU's channel handling capabilities
through the following:
{ {1, 2} {2, 2} }
These pair of entries describe the relationship that can exist for
*any* input of this mixer, to *any* (in this case one) of its output
(s). There is no expression of any constraints here - there is no
limitation that some buses would only be mono, or others stereo,
etc... but rather any (and every) input bus can be either mono or
stereo.
The mono to stereo case was included in Michael's post about this
question originally - he stated in that post that he wanted to
allow the following configs (and that any other configs would be
"strange" - his quotes, not mine):
(A) In0:1 In1:1 Out0:1
(B) In0:1 In1:1 Out0:2
(C) In0:2 In1:2 Out0:2
This would be expressed as:
{ {1, 1} {1, 2} {2, 2} }
To express these three possibilities, you have two possibilities
that overlap, that is: { 1, 2 } and { 2, 2 }
Once you publish this, we explicitly state that you must accept any
possible configuration and "do your best". So, the two following
configurations are also valid:
(D) In0:1 In1:2 Out0:2
(E) In0:2 In1:1 Out0:2
He wanted to express the constraint I believe, that the input
channels should all be the same (either mono or stereo) on both
buses. As I said previously, this constraint cannot be expressed.
Finally, if you wanted to just deal with mono or stereo, then the
situation is much less complex, because you don't have an
overlapping case. Thus:
{ {1, 1} {2, 2}}
would result in 2 possible channel configurations for an AU
(regardless of how many inputs or outputs it had):
(A) In0:1 In1:1 Out0:1
(C) In0:2 In2:1 Out0:2
Should read:
(C) In0:2 In1:2 Out0:2
We've erred on the side of caution as we have found that trying to
express constrained capabilities (such as all input buses must have
the same number of channels, etc... ) are not easily generalised
and quickly become overly complex. We believe the AU developer can
achieve the affect they want (a flexible feature for the user) with
some good UI or documentation that describes how different features
of an AU are used to best advantage.
Bill
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
--
mailto:email@hidden
tel: +1 408 974 4056
________________________________________________________________________
__
"Much human ingenuity has gone into finding the ultimate Before.
The current state of knowledge can be summarized thus:
In the beginning, there was nothing, which exploded" - Terry Pratchett
________________________________________________________________________
__
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden