• 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: Hexaphonic AudioUnits in AUGraph that mixes to stereo
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hexaphonic AudioUnits in AUGraph that mixes to stereo


  • Subject: Re: Hexaphonic AudioUnits in AUGraph that mixes to stereo
  • From: Brian Willoughby <email@hidden>
  • Date: Mon, 16 Jun 2008 04:27:24 -0700

I may have overlooked a simpler solution: AUMixer. But I get the impression that AUMixer would not be happy with a 6-channel input. The implication is that the AUMixer only supports mono and stereo inputs, but not anything else. Correct?

Thanks for the notes on AUMatrixMixer, Bill. I should have that up and running in no time.

Brian Willoughby
Sound Consulting


On Jun 13, 2008, at 19:44, William Stewart wrote:
Here's the thing. The matrix mixer is ultimately just a collection of input channels and output channels. It doesn't really matter how these channels are bussed (that is, divided up into separate audio unit elements) because for that mixer at the end it is a 2x2 matrix of input and output channels.

So, you can just take your 6 channel output as a single 6 channel input to the matrix mixer, and then address the volume for:
- each input channel
- each input to output channel
- each output channel


So, if you have a 6 in channel, 2 out channel, then each input channel has a volume control for its overall input level, and how much it is going to contribute to each output channel.

You address these volume by using the element ID in Get/Set Parameter as a cross point (the top 16 bits represent the input channel, the bottom 16 bits represent the output channel).

So, to set the volume scalar for an input channel:
0x0001FFFF (where FFFF is masking the output channel, so this doesn't apply this to volume to the output channel but rather to "every" output channel - and the 0001 is applying the parameter to the second input channel) - its a zero based index of course


To set the volume for the first input channel (0x0) and the second output channel (0x1), your element ID for this cross point is:

0x00000001

or ((input channel << 16) | output channel)

If you want to set the global volume - a scalar that is applied to every crosspoint in the mixer, then the element ID is (0xFFFFFFFF).

You have to initialise all of the volumes (they default to 0) after you have initialised the mixer. There's a print matrix mixer volumes method in Public Utility that can help out here.

Bill

On Jun 13, 2008, at 12:54 PM, Brian Willoughby wrote:
I'm still not quite sure whether AUMatrixMixer would accept 6 mono busses from one unit and allow panning of each as if they came from separate subgraphs. Same with AU3DMixer.

2008/6/13 Brian Willoughby <email@hidden>:
I've created an AudioUnit which supports hexaphonic processing. In other
words, it allows six channels of audio to be processed independently, but
all on one bus. The distinction is that this is not a 5.1 surround
arrangement, but a six-channel guitar effect. The output could be to a
stereo or surround device, but there would be no direct mapping of input
channel to speaker. In other words, the multichannel bus has different
meanings in the beginning of the graph versus the final output.


How do I build an AUGraph to do this? I'm pretty sure I understand how to
set up a 6-channel source bus, instantiate my AU with 6 channels on one bus,
and put that into a graph. However, I need to take the output bus of my AU
and then mix each of the 6 channels into its own pan position with an
AUMatrixMixer, probably stereo, but potentially surround. How do I get from
a 6-channel hexaphonic bus to a matrix mixer input where I can pan each
channel independently?


Would it be possible to use an AUSplitter to take a 6-channel bus on input
and deliver 6 mono bus outputs? If so, I could then attach each output bus
to its own matrix mixer input, and then I would have control over mapping
the channels to the output device. The 3D Mixer might also work, but I
assume that the real challenge is splitting the channals onto their own
busses.
_______________________________________________
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


  • Follow-Ups:
    • Re: Hexaphonic AudioUnits in AUGraph that mixes to stereo
      • From: William Stewart <email@hidden>
References: 
 >Hexaphonic AudioUnits in AUGraph that mixes to stereo (From: Brian Willoughby <email@hidden>)
 >Re: Hexaphonic AudioUnits in AUGraph that mixes to stereo (From: "tahome izwah" <email@hidden>)
 >Re: Hexaphonic AudioUnits in AUGraph that mixes to stereo (From: Brian Willoughby <email@hidden>)
 >Re: Hexaphonic AudioUnits in AUGraph that mixes to stereo (From: William Stewart <email@hidden>)

  • Prev by Date: Re: Inconsistencies in getting kAudioObjectPropertyName
  • Next by Date: Re: Inconsistencies in getting kAudioObjectPropertyName
  • Previous by thread: Re: Hexaphonic AudioUnits in AUGraph that mixes to stereo
  • Next by thread: Re: Hexaphonic AudioUnits in AUGraph that mixes to stereo
  • Index(es):
    • Date
    • Thread