• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Channels and frames
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Channels and frames


  • Subject: Re: Channels and frames
  • From: "john smith" <email@hidden>
  • Date: Thu, 03 Nov 2005 23:52:04 +0100

William,

thanks for your patience.

We would argue that there is nothing "strange" about a configuration of 1,1 on bus 0, and 2,2 on bus 1 (if you say you support 1,2 and 2,2). Rather we would look at your list above and say that this is a strange set of restrictions to impose?

Please, let's not get into a discussion about why I want a certain channel configuration. Thanks.


What are all these 0's for output on Bus 1? You have no Bus 1 output right?

No, bus 1 is a side-chain input. A lot of hardware boxes would call it "key" or "key input". Such a (mono) compressor would have 2 inputs and 1 output. In AU terminology the first input and the single output would be 1,1 on bus 0. The last input would be the input in a 1,0 configuration on bus 1.


The problem is that you could also have this - and your AU has to deal with this:
Input B0: 1 Chan, B1: 2 Chan
Output B0: 2 Chan

Yes, I understand. This is a problem for me. I may have to deliver this as several plug-ins in order to avoid it (ducking to avoid things thrown at me).


The point of view we've taken with this really is to try to distinguish between the capabilities an AU has - and these are expressed without reservation or qualification. Now these might not work *that* well - but then that's the kind of problem where "it hurts when I do this" - ok, well "don't do that"! In other words, explain (through UI, documentation, etc) what you expect users to do, and how you expect them to configure you.

But that would require us to document every host available. An idea I'm sure the people writing the manuals will not like.


There is NO CONCEPT of zero channels. An AU can have a bus, but that bus may not be in use. In AU Lab for instance, I can add an AUMerger or AUSplitter, but only use the first bus - the second bus is still there and the host HAS to configure this properly (in use or not), but that's not your problem. Or, I can add Reaktor, which tells me it has 16 channels I can use (and bus these in any way I see fit), but I can just use it as a single stereo input-output effect....

Sure... But... since the channel count is "virtual" (i.e. not neccasarily side-chain) I must expect some host using the output. Which is why I ask what I should do with it.


Also, since bus 1 may have output channels, what should I do with it? Zero it? Copy input to output?

If it has been connected, then what is its role?

No role. It's only there because I cannot avoid it (as you say yourself, 0 channels doesn't exist).


How does your AU deal with it? That question is for you to answer. If in doubt, silence is fine (and set the silence flag so we can ignore its output)

Ok. I may have to get back to you on the silence flag, but I'll try to look for it first.



You have to ensure of course that when the AU is initially opened, that the configuration you provide is compatible. You can do this in your constructor after calling CreateElements(), you get the element for each input and output and set the number of channels appropriately.

What do you mean? I don't understand what it is you want me to do in the constructor.


I was previously told that channel configurations were made by overriding GetNumChannels(...)

Have a look at the AUPulseDetector in the SDK.

I don't seem to have it. Probably my SDK is too old, but honestly I'm somewhat afraid of upgrading. Why knows if upgrading will ruin my setup (it took me quite some time to configure my mac for developement).


I also searched on developer.apple.com, but it wasn't here.

Thanks,

Michael Olsen


Bill



Thanks,

Michael Olsen



On 03/11/2005, at 11:13 AM, john smith wrote:


William,

thanks for the reply, but I think there's been some misunderstanding. If I understand you correctly, then you're talking about the first bus here, something I now know how to configure.

My question is regarding a second bus (for side-chain). How do I configure the channel count for that?

No, this isn't limited to the first bus - this goes across all the buses.


An AU doesn't configure buses, the host does. An AU publishes what channel capabilities it can deal with, it is expected to deal with them across all buses it publishes, and the host uses that information to configure the AU.

Have a look at how this is presented in AU Lab - the AUMerger is perhaps a good example - its in the Sidechains section of the pop=up menu for an insert effect.


1 input channel, and 1 output channel). You cannot have mixed channel counts on input or output buses.

Do you mean to say that if the channel count is, say, 2,2 for the first bus, then it will always be the same for the second bus?
If so, what happens to the output channel(s) of the second bus? Should I zero it, or copy from the input?

You have to ensure of course that when the AU is initially opened, that the configuration you provide is compatible. You can do this in your constructor after calling CreateElements(), you get the element for each input and output and set the number of channels appropriately.


After that, the host does everything. The AU should just validate that the channel configuration provided to it at Initialisation is legal according to what it published.

The approach we take to this is that if the AU is going to deal with uneven channel counts (mono input and stereo output), then it has to be prepared to deal with the full ramifications of that feature.

I'm sorry, I don't understand. What ramifications? Do you mean to say that 1,2 is not supported?

No, it means that if you say you can do { 1, 2 } as well as { 2, 2 }, there is no limitations on which input buses can be mono, which stereo, provided that (in this case) all of the output buses are stereo. That is what this means, if you have stereo outputs, *any* input can be mono or stereo.


Bill



Thanks,

Michael Olsen

Here are your choices:

* { {2, 2} {1, 1} }

What this means is that regardless of your number of buses, the AU can be configured to have 2 input channels and 2 output channels (or 1 input channel, and 1 output channel). You cannot have mixed channel counts on input or output buses.

* { {2, 2} {1, 1}, {1, 2} }
That is, you want to allow mono or stereo inputs and stereo outputs, and for a mono output only mono inputs are legal.


(And for completeness)
* { {2, 2} {1, 1}, {2, 1} }
That is, you want to allow mono or stereo inputs and mono output, and for a stereo output only stereo inputs are legal.


* { {2, 2} {1, 1}, {2, 1}, {1, 2}}
Any combination of mono or stereo inputs or outputs are allowed.

The approach we take to this is that if the AU is going to deal with uneven channel counts (mono input and stereo output), then it has to be prepared to deal with the full ramifications of that feature. We've looked at ways to somehow publish more restricted lists, but don't like the complexities this involves.

You can use AU Lab => /Developer/Applications/Audio to test this - is has support for input and output side chains. CAAudioUnit (in PublicUtility in the SDK) has code to validate channel configurations if you want to look at how the host deals with these. auval will correctly validate these configs.

Bill

On 03/11/2005, at 7:36 AM, john smith wrote:

Hi,

Please disregard my previous question about the output bus. I think I understand it now.

But... (and someones gonna kill me for asking.)...

an additional "sidechain" input for AU effects is described as a separate bus - so in your case the AU must specify that it can handle mono and stereo inputs and outputs (config list: [1,1], [2,2]) and it must provide two input busses and one output bus.

How can I inform the host about the channel count on the second bus?

And how can I make sure that it only connect with 1 channel on the second bus when running in mono mode, and with 2 channels on the second bus when running in stereo mode?
(i.e. avoid mono sidechains when running in stereo and vice versa).



Thanks,

Michael Olsen


Best, Stefan

Am 03.11.2005 um 12:35 schrieb john smith:

I'm about to create a channel strip product for a client.

Besides the "usual" channel configurations (1->1, 1->2, 2- >2) it has some alternative configurations, namely 2->1 and 4->2. The thing about those configurations is that they have extra side- chain inputs.

For instance, the one I call 2-> has 1 audio in, 1 side- chain in (which is of course also audio, but I'm sure you're catching my drift), and 1 audio out.

My question is: If I tell the host (Logic or otherwise) that I can accept 2 channels in and 1 channel out, will the host know what the second input is a side-chain input?


_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/ onm00200471ave/ direct/01/


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40apple.com


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
___________________________________________________________________ __ ___ __



_________________________________________________________________
Don't just search. Find. Check out the new MSN Search! http:// search.msn.com/



--
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
_____________________________________________________________________ ___ __



_________________________________________________________________
Don't just search. Find. Check out the new MSN Search! http:// search.msn.click-url.com/go/onm00200636ave/direct/01/



-- 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 ________________________________________________________________________ __


_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/


_______________________________________________
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


  • Prev by Date: More of Process
  • Next by Date: Re: Channels and frames
  • Previous by thread: Re: Channels and frames
  • Next by thread: Re: Channels and frames
  • Index(es):
    • Date
    • Thread