Re: bus count and channel info confusion
Re: bus count and channel info confusion
- Subject: Re: bus count and channel info confusion
- From: Marc Poirier <email@hidden>
- Date: Fri, 16 Jul 2004 10:15:39 -0400
Hi Frank. I don't know about some of these, but I will respond
(hopefully correctly) about the ones that I think I know about, to
start with...
On Jul 16, 2004, at 5:13 AM, Frank Hoffmann wrote:
1. Mono Audio Effect
Input Bus Count: 1, not writeable
Output Bus Count: 1, not writeable
Channel Info: {1,1}
Correct.
2. Stereo Audio Effect:
Input Bus Count: 1, not writeable
Output Bus Count: 1, not writeable
Channel Info: {2,2}
Correct.
3. Audio Effect with the ability to do Mono in Mono, Mono in Stereo
and Stereo in Stereo processing
Input Bus Count: 1, not writeable
Output Bus Count: 1, not writeable
Channel Info: {1,1}, {1,2}, {2,2}
Correct.
4. Audio Effect with any ability to process any number of channels
where the number of input channels has to be equal to the number of
output channels
Input Bus Count: 1, not writeable
Output Bus Count: 1, not writeable
Channel Info: {-1, -1}
Technically correct, but the preferred way (and way which you should
recognize since it's what most N-N effects do) is to not supply any
Channel Info, it will return an error from GetPropertyInfo() because
the property is not being supported.
5. Audio Effect with the ability to process any number of channels
where the number of input channels has not to be equal to the number
of output channels
Input Bus Count: 1, not writeable
Output Bus Count: 1, not writeable
Channel Info: {-1, -2} or {-2, -1}
Correct.
7. Audio Effect that processes stereo only, but has a side chain input
that can be mono or stereo.
Input Bus Count: 2, not writeable
Output Bus Count: 1, not writeable
Channel Info: Not possible to describe
Yeah, I think that you just can't do this, though I'm not sure about
that.
8. Stereo Synth (Music Device)
Input Bus Count: 0, not writeable
Output Bus Count: 1, not writeable
Channel Info: {0, 2}
Correct. * (see footnote)
9. Music Device that can output Mono or Stereo
Input Bus Count: 0, not writeable
Output Bus Count: 1, not writeable
Channel Info: {0, 1}, {0, 2}
Correct.
10. Music Device that can output Mono or Stereo and has a side chain
input, which can be mono or stereo
Input Bus Count: 1, not writeable
Output Bus Count: 1, not writeable
Channel Info: {0, 1}, {0, 2}, {1, 1}, {1, 2}, {2, 1}, {2, 2}
Assuming the input is a "sidechain" and optional, correct. Otherwise
it shouldn't have any of the {0, X} configurations. Also, it may
choose to not support mixed {2, 1} or {1, 2} configurations if the i/o
are tied together in some way. Anyway, depends on the AU, but I could
see either of those possibly being the case.
11. MusicDevice that can configure its Outputs according to user
settings like LinPlug RM IV, Native Instruments Kontakt, Steinberg
Halion 3, etc.
Input Bus Count: 0, not writeable
Output Bus Count: X, not writeable
Channel Info: No ChannelConfig provided. This is a special case
described in IOChannelConfigurations.rtf.
X is the number of Output Busses configured in the GUI of the plug-in.
If the setup reads two stereo and two mono outs, then X would be 4. X
would be 4 as well, if the user has setup four stereo outs and zero
mono outs. The host will read the stream formats of all busses and
does change only the sample rate. For rendering the host iterates over
all output busses and renders each output buffer seperatly with the
channels found in the stream formats.
Question 1: Is it legal to send a property notificaiton to the host,
that the number of busses changed? If yes, then the host should
uninitilaize the Audio Unit, negociate the new setup with the plug-in
and initialize it again?
Question 2: Is it legal to render all channels on bus 0? The above
example with two stereo and two mono busses. Is it legal to setup a
stream format with 6 channels on bus 0? I think no, because the
plug-in can't say which channels are mono or stereo. The host has no
idea about mono and stereo in this case as well.
Are you sure that these scenarios shouldn't be handled in the manner
described in 12?
12. Audio Unit that is able to serve a fixed number of channels
configured in selectable mono or stereo pairs. Example: Native
Instruments Reaktor.
Input Bus Count: X, WRITABLE
Output Bus Count: Y, WRITEABLE
Channel Info: {-N, -M}
N and M are the number of channels the plug-in can serve on input and
ouput busses. The host will set X and Y according to its needs and set
the stream formats for the X and Y busses as required using max N
channels for the input busses and max M channels for the output busses
in total. Rendering will be done for every bus for one time slice
seperate with the number of channels setup in the stream formats.
Note that it is never legal to use 1 or 2 for N or M.
I think correct.
I found many plug-ins that feature a single stereo out but have a
output bus count of 2.
That's definitely incorrect. That's mixing up channels and busses.
Most plug-ins I am aware of implement multi-outs by providing
ChannelConfigs like {0,8} with an output bus count of 8 to describe 4
stereo outs. This is totally wrong to my understanding and how I
interpret statements by Bill Steward on this list. Maybe I am wrong,
so please correct me. There is definetely a need to sort this out.
Yeah, that is totally incorrect, too. This, I think, was done by some
AUs unfortunately to get multi-bus behavior from Logic when Logic was
not supporting multi-bus AUs correctly (I'm not sure if this is still
the case or not).
13. A Music Device with two stereo outs like Korg Wavestation for
example.
Input Bus Count: 0, not writeable
Output Bus Count: 2, not writeable
Channel Info: {0,2}
Correct. * (see footnote)
* Although, in both of these MusicDevice examples, they also could
simply not support ChannelInfo and instead configure their own bus(ses)
to 0,2 to start with (well, either way, they have to configure
themselves to that to start with). MusicDevices, unlike effects, are
allowed to do that, since not supplying ChannelInfo should not be
interpretted in the same way as with effects, and instead that signals
that only one channel configration is supported, and that is the
configuration that the MD is already set to, and that configuration
can't be changed.
Marc
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.