• 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
AUMixers issues
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AUMixers issues


  • Subject: AUMixers issues
  • From: anton demonk <email@hidden>
  • Date: Wed, 31 Aug 2011 13:59:05 +0200

Hi,

I am struggling with an AUGraph that has 3 AUMixers (with n inputs) connected to a "main" AUMixer (with 3 inputs), connected to a RemoteIO unit.

n Bus -- Mixer 0 ---
                             |
n Bus -- Mixer 1 -------- Main Mixer -- RemoteIO
                             |
n Bus -- Mixer 2 ---

Some unexpected issues I have encountered :

1 - the Main Mixer uses AudioUnitRender (see code below) to call the Callback functions associated to each mixers. Strangely enough, the AudioUnitRender call only works for the inBusNumber "0" of my main Mixer. (the AudioUnitRender calls on inBusNumber 1 and 2 don't perform)

2 - I thave tried to add a AUGraphAddRenderNotify call to Mixer1 and Mixer2 and they don't seem to perform either.
 
3 - at last, it looks like the AUMixer have some kind of "normalizing" integrated function. If I have 10 sounds being played in a AUMixer, the output level is the same that if I have only one sound. In other words, one played sound will sound considerably louder one its own that n sounds played through the same mixer.

I am sure all this are newbie issues and that they are some settings that I have missed somewhere. But if anyone could point me towards some tutorials or examples of a AUGraph with multiple mixers, using AudioUnitRender and AUGraphAddRenderNotify, that would be greatly appreciated and it would also help me to stop pulling my hair like hell.

Many thanks.

Anton

------------------------------

static OSStatus mainMixerCallback(void *inRefCon,
                                  AudioUnitRenderActionFlags *ioActionFlags,
                                  const AudioTimeStamp *inTimeStamp,
                                  UInt32 inBusNumber,
                                  UInt32 inNumberFrames,
                                  AudioBufferList *ioData)
{ 
    SoundEngine*    se        = (SoundEngine*) inRefCon;
    if (se.sessionIsLoading) return noErr;
    Session*        session    = (Session *)     se.currentSession;

    if (inBusNumber==0){
        AudioUnitRender((AudioUnit)se.auMixer0, ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames, ioData);
    }
    if (inBusNumber==1){
        if (session->effectsOn[0]){
            AudioUnitRender((AudioUnit)se.auMixer1 ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames, ioData);
        }
    }
    if (inBusNumber==2){
        if (session->effectsOn[1]){
            AudioUnitRender((AudioUnit)se.auMixer2 ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames, ioData);
        }
    return noErr;
}   

 _______________________________________________
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: issues with AUMixers
  • Next by Date: iOS: Setting kAudioOutputUnitProperty_StartTime for Remote-I/O Unit return kAudioUnitErr_InvalidProperty?
  • Previous by thread: issues with AUMixers
  • Next by thread: iOS: Setting kAudioOutputUnitProperty_StartTime for Remote-I/O Unit return kAudioUnitErr_InvalidProperty?
  • Index(es):
    • Date
    • Thread