• 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: 3D Mixer Equal Power Panning - Follow up on panning
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 3D Mixer Equal Power Panning - Follow up on panning


  • Subject: Re: 3D Mixer Equal Power Panning - Follow up on panning
  • From: Richard Dobson <email@hidden>
  • Date: Tue, 17 Apr 2007 23:12:22 +0100

This may be a case of over-specification. With the .amb file format, the interpretation of the channels is unique (unambiguous) for all combinations of order (such as 2nd order horizontal with 1st-order height), up to 16 channels. So there is no need to use the dwChannelMask field of WAVE_EX for anything to do with B-format. ~Maybe~ one might try to define X and Y alone to signify a mid/side recording; but otherwise, all those B-format signals tend to go around together.

The problem with labelling individual channels in this way is that there is little to stop all sorts of spurious chimeric combinations. The trick with a file format being not only to descrfibe what is meaningful, but to avoid what is not!

Richard Dobson


James McCartney wrote:

...
We could add a tag for 3 channel B format. However you can also do that already:

AudioFileID afid;
...
AudioChannelLayout *acl = (AudioChannelLayout*)calloc(1, sizeof (AudioChannelLayout) + 2 * sizeof(AudioChannelDescription));
acl->mChannelLayoutTag = kAudioChannelLayoutTag_UseChannelDescriptions;
acl->mNumberChannelDescriptions = 3;
acl->mChannelDescriptions[0].mChannelLabel = kAudioChannelLabel_Ambisonic_W;
acl->mChannelDescriptions[1].mChannelLabel = kAudioChannelLabel_Ambisonic_X;
acl->mChannelDescriptions[2].mChannelLabel = kAudioChannelLabel_Ambisonic_Y;
UInt32 propertySize = sizeof(acl);
OSStatus err = AudioFileSetProperty(afid, kAudioFilePropertyChannelLayout, propertySize, acl);
free(acl);


The bit field in WAVE headers does not provide bits for these channel labels, so you can't set these layouts currently on WAVE files.



_______________________________________________
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


References: 
 >NxM-Effects in Logic (From: Stefan Huber <email@hidden>)
 >Re: NxM-Effects in Logic (From: Stefan Gretscher <email@hidden>)
 >Re: NxM-Effects in Logic (From: William Stewart <email@hidden>)
 >3D Mixer Equal Power Panning (From: Bob Lang <email@hidden>)
 >Re: 3D Mixer Equal Power Panning (From: William Stewart <email@hidden>)
 >Re: 3D Mixer Equal Power Panning (From: Bob Lang <email@hidden>)
 >Re: 3D Mixer Equal Power Panning - Follow up on panning (From: Bob Lang <email@hidden>)
 >Re: 3D Mixer Equal Power Panning - Follow up on panning (From: William Stewart <email@hidden>)
 >Re: 3D Mixer Equal Power Panning - Follow up on panning (From: Richard Dobson <email@hidden>)
 >Re: 3D Mixer Equal Power Panning - Follow up on panning (From: Shawn Erickson <email@hidden>)
 >Re: 3D Mixer Equal Power Panning - Follow up on panning (From: William Stewart <email@hidden>)
 >Re: 3D Mixer Equal Power Panning - Follow up on panning (From: James McCartney <email@hidden>)

  • Prev by Date: Re: Coreaudio-api Digest, Vol 4, Issue 108
  • Next by Date: auval calling GetTailTime() before initialization...
  • Previous by thread: Re: 3D Mixer Equal Power Panning - Follow up on panning
  • Next by thread: rewiring on the fly and AUGraphUpdate
  • Index(es):
    • Date
    • Thread