• 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: bus count and channel info confusion
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bus count and channel info confusion


  • Subject: Re: bus count and channel info confusion
  • From: Frank Hoffmann <email@hidden>
  • Date: Fri, 16 Jul 2004 17:14:04 +0200

Hi Marc,

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: no channel info or {-1, -1}
[edited]

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.

You are right. To provide no channel info is also correct and should be preferred.

8. Stereo Synth (Music Device)
Input Bus Count: 0, not writeable
Output Bus Count: 1, not writeable
Channel Info: no channel info or {0, 2}
[edited]
Correct. * (see footnote)

Yes.


10. Music Device that can output Mono or Stereo and has an optional side chain input, which can be mono or stereo
[edited]
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.

Yes, I clarified that in the description. The audio side chain input of most synths is optional, but doesn't have to be.


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?

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?

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.
2) in scenario 12 the host decides about the amount of busses. In scenario 11 the plug-in does.

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.

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: no channel info or {0,2}
[edited]

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.

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.

Thanks Marc.

Frank
_______________________________________________
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.


References: 
 >bus count and channel info confusion (From: Frank Hoffmann <email@hidden>)
 >Re: bus count and channel info confusion (From: Marc Poirier <email@hidden>)

  • Prev by Date: Re: bus count and channel info confusion
  • Next by Date: Re: bus count and channel info confusion
  • Previous by thread: Re: bus count and channel info confusion
  • Next by thread: Re: bus count and channel info confusion
  • Index(es):
    • Date
    • Thread