Re: Multi Output AU
Re: Multi Output AU
- Subject: Re: Multi Output AU
- From: William Stewart <email@hidden>
- Date: Wed, 29 Aug 2007 15:20:53 -0700
Supported num channels is the capacity to produce some number of
channels on any individual bus. so your config below is saying you
could do either 2 channel output (on any bus) or 13 channel output
(on any bus) - not what you mean.
So, you have some choices:
(1) Support any output having either mono or stereo: { 0, 2} { 0, 1}
(2) Support just stereo: {0, 2}
(3) Support 1 stereo and 11 mono outs: NO channel config. (For a
music device if it doesn't provide a "supported num channels" then
the host is to assume that the initial config is the only valid one).
You should also make sure that any attempt to change num channels on
any output is rejected in this case
There is no way to publish the capabilities you want (either 2 buses
with stereo, or 1 bus stereo, 11 mono). We had floated a proposal for
providing pre-configurations (which would allow this) but this was
not broadly accepted or agreed too, so we dropped it).
Regardless of the solution you do, you can create the number of
output elements as you need in the constructor. So, if you went for
(3), you would create 0 inputs, and 12 outputs (1 stereo, 11 mono)
If you want to change the number of elements after construction, have
a look at the SetElementCount property implementation in AUBase
Bill
On 28/08/2007, at 5:40 AM, email@hidden wrote:
I've been searching the archives for a while and haven't found a
solution
to this problem.
My AU (Music Device) is to support multiple outputs and
configurations,
either 2 outputs (standard stereo out) or 2+11 outputs (one stereo
out,
and 11 mono outputs).
Current I do:
Call MusicDeviceBase with numOutputs = 1 (this refers to the number of
output buses right? I only need one).
In Constructor call ChangeStreamFormat() with mChannelsPerFrame =
13 after
CreateElements() (This can't be right, since I want to support
either 2 or
13 outputs. Also if I do this before before CreateElements() I get
crashes
and CreateElements() does the buffer allocation as far as I can tell).
In SupportedNumberOfChannels() I report
{0,2} and {0,13}
I respond to getProperty() kAudioUnitProperty_SupportedNumChannels
So far the results have been either auval refusing to validate the
AU with
a "can't perform render tests" due to channel reporting errors, or
I can
get the AU to validate with 13 outputs, but the buffers handed to
me are
not properly allocated (resulting in crashes).
What do I need to implement to get this working?
Any help would be greatly appreciated..!
Best regards,
Mike Janney
AudioRealism
www.audiorealism.se
_______________________________________________
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