Re: bus count and channel info confusion
Re: bus count and channel info confusion
- Subject: Re: bus count and channel info confusion
- From: William Stewart <email@hidden>
- Date: Tue, 20 Jul 2004 19:33:20 -0700
Interesting discussion... posting again in two parts because its too
big...
PART 2
Comments below...
>
> 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?
Bus configuration is somewhat dependent on how the host is using an AU
- Even if an AU publishes 6 output buses, the host may only be using 2
of them. In general I don't believe the AU should be making this
change.
In fact, its the host's responsibility to ensure that it both saves and
restores the bus counts of an AU that are in use in a document (where
of course, those bus counts are writable).
>
>
>
> 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?
No for case 11, but 12 is really the better way to handle these.
>
> Then, Frank Said:
>
> Are you sure that these scenarios shouldn't be handled in the manner
>
> described in 12?
>
>
This is an interesting question. How much freedom is given to the
>
Audio Units? Is it legal to set up the amount of busses and their
>
stream configuration in the plug-in GUI?
No. The bus configuration is only provided by the host... Reaktor does
this quite well.. It provides you the UI to patch to the different
output channels (and vice-versa for input), then you would bus those
channels appropriately at the host side.
>
Aside from this consideration, there are 2 main differences:
>
1) the plug-in has a fixed bus count and on every bus a fixed stream
>
format. This is most easily achieved with providing no channel info.
yes
>
2) in scenario 12 the host decides about the amount of busses. In
>
scenario 11 the plug-in does.
yes (and of course 12 is more flexible and interesting I think)
>
>
>
> 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).
>
>>>
These are all wrong. The AUValidation tool explicitly tests against
this kind of mis-reporting and fails these AU's as being
non-conformant.
>
>
> 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.
>
> Then Frank Said:
>
It is maybe unfortunate that Audio Units are allowed to do one thing
>
several ways, but it is still correct. I agree that to provide no
>
channel info is the more elegant way here.
>
Hosts have to be able to handle both ways.
In the SDK, CAAudioUnit will do alot of this parsing for you... the
only addition you need to make to that is to grab the default
configuration when you open the AU, so you know its starting out point.
Bill
--
mailto:email@hidden
tel: +1 408 974 4056
________________________________________________________________________
__
Culture Ship Names:
Ravished By The Sheer Implausibility Of That Last Statement [GSV]
I said, I've Got A Big Stick [OU]
Inappropiate Response [OU]
Far Over The Borders Of Insanity And Still Accelerating [Eccentric]
________________________________________________________________________
__
_______________________________________________
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.