• 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: Playing multiple sounds
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Playing multiple sounds


  • Subject: Re: Playing multiple sounds
  • From: Mark Pauley <email@hidden>
  • Date: Sat, 25 Aug 2007 12:19:01 -0700

Don't worry about changing the output unit's settings, in this case the cannonical format will be converted into the actual format before core audio renders to the hardware. I think that in this case you can also effectively ignore the original stream format of the default output unit as long as the call to change stream format succeeded.

It may be the case however that your job will be easier by simply dealing with non-interleaved streams because you can do simple channel duplication when going from mono to stereo by duplicating the audio buffer pointer in the bufferlist.

_Mark

On Aug 25, 2007, at 4:26 AM, Andreas Falkenhahn <email@hidden > wrote:

Ok, thanks. I've now successfully installed a render callback on
the mixer.
But now there's a new problem: When the render proc is called,
ioData->mNumberBuffers
is 2 now, which makes AudioConverterFillComplexBuffer() exit with a
paramErr
because it obviously expects only one buffer.

What am I doing wrong here?

The format is mismatched - the version 1 AUs (that you were using)
were using interleaved floats. The format for v2 units use
deinterleaved floats. Have a look at the SetCanonical call in
CAStreamBasicDescription.cpp (in PublicUtility in /Developer/ Examples/
CoreAudio)

Ok, thanks. Now it's playing correctly. But: Am I not somewhat overriding
the user's default settings by applying SetCanonical() on the default output
format gotten through AudioUnitGetProperty()? I'm just wondering because
SetCanonical() sets mBitsPerChannel to 32, mChannelsPerFrame to 2,
BytesPerFrame to sizeof(Float32), etc.


Why do I need to get the default stream format at all then if I'm overriding it
with my own settings (using SetCanonical) right after I got it?


Andreas

_______________________________________________
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
_______________________________________________
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: Playing multiple sounds
      • From: William Stewart <email@hidden>
References: 
 >Playing multiple sounds (From: "Andreas Falkenhahn" <email@hidden>)
 >Re: Playing multiple sounds (From: Mark Pauley <email@hidden>)
 >Re: Playing multiple sounds (From: Mark Pauley <email@hidden>)
 >Re: Playing multiple sounds (From: "Andreas Falkenhahn" <email@hidden>)
 >Re: Playing multiple sounds (From: Mark Pauley <email@hidden>)
 >Re: Playing multiple sounds (From: "Andreas Falkenhahn" <email@hidden>)
 >Re: Playing multiple sounds (From: "Andreas Falkenhahn" <email@hidden>)
 >Re: Playing multiple sounds (From: William Stewart <email@hidden>)
 >Re: Playing multiple sounds (From: "Andreas Falkenhahn" <email@hidden>)
 >Re: Playing multiple sounds (From: William Stewart <email@hidden>)
 >Re: Playing multiple sounds (From: "Andreas Falkenhahn" <email@hidden>)

  • Prev by Date: Re: Playing multiple sounds
  • Next by Date: AudioConverterNew() failure
  • Previous by thread: Re: Playing multiple sounds
  • Next by thread: Re: Playing multiple sounds
  • Index(es):
    • Date
    • Thread