If I understand the issue correctly to the best of my knowledge you should 
create another mixer input buss and add the render callback to the graph.  You 
can not have a render callback on the same input that you are using for the 
AudioFilePlayer AU.
Here is a snippet from some test code I have that renders multiple tracks of 
audio using graph render callbacks.

    UInt32 inputBuss = 0;
    for (int t=0; t < trackCount; ++t)
    {
        AURenderCallbackStruct input;
        input.inputProc = AudioTrackRenderProc;
        input.inputProcRefCon = &tracks[t];
      
        CheckError(AudioUnitSetProperty(mixerUnit, 
kAudioUnitProperty_StreamFormat,
                                        kAudioUnitScope_Input, inputBuss, 
streamFormat, sizeof(AudioStreamBasicDescription)),
                   "Failed to set mixer buss input stream format.\n");
        AUGraphSetNodeInputCallback(graph, mixerNode, inputBuss, &input);
        ++inputBuss;
    }

And whatever you do, don’t forget to match the steam formats or you may get an 
earful of noise that you won’t soon forget.

Hope this helps.
- Matt




> On Jul 20, 2016, at 12:20 PM, Matt Grippaldi <[email protected]> 
> wrote:
> 
> If I understand the issue correctly to the best of my knowledge you should 
> create another mixer input buss and add the render callback to the graph.  
> You can not have a render callback on the same input that you are using for 
> the AudioFilePlayer AU.
> Here is a snippet from some test code I have that renders multiple tracks of 
> audio using graph render callbacks.
> 
>     UInt32 inputBuss = 0;
>     for (int t=0; t < trackCount; ++t)
>     {
>         AURenderCallbackStruct input;
>         input.inputProc = AudioTrackRenderProc;
>         input.inputProcRefCon = &tracks[t];
>       
>         CheckError(AudioUnitSetProperty(mixerUnit, 
> kAudioUnitProperty_StreamFormat,
>                                         kAudioUnitScope_Input, inputBuss, 
> streamFormat, sizeof(AudioStreamBasicDescription)),
>                    "Failed to set mixer buss input stream format.\n");
>         AUGraphSetNodeInputCallback(graph, mixerNode, inputBuss, &input);
>         ++inputBuss;
>     }
> 
> And whatever you do, don’t forget to match the steam formats or you may get 
> an earful of noise that you won’t soon forget.
> 
> Hope this helps.
> 
> - Matt Grippaldi
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>> On Jul 20, 2016, at 6:31 AM, Marcin Rakowski <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Hi, I have a graph in which two separate AudioFilePlayer AUs are feediing 
>> into a Mixer unit that then outputs to Output unit. It works fine.
>> 
>> Then I set up a render callback on the Mixer unit, but it never gets called.
>> 
>>     AURenderCallbackStruct input;
>> 
>>     input.inputProc = SineWaveRenderProc;
>> 
>>     input.inputProcRefCon = &mixerCallback;
>> 
>>     CheckError(AudioUnitSetProperty(mixerUnit,
>> 
>>                                     kAudioUnitProperty_SetRenderCallback,
>> 
>>                                     kAudioUnitScope_Output,
>> 
>>                                     0,
>> 
>>                                     &input,
>> 
>>                                     sizeof(input)),
>> 
>>                "AudioUnitSetProperty failed");
>> 
>> 
>> Is this expected behaviour? The mixer is receiving samples on both inputs. 
>> Is there a way to switch where the unit is pulling data from, ie. inputs or 
>> RenderCallback?
>> 
>> -- 
>> 
>> Marcin
>> http://google.com/+MarcinRakowskiConnect 
>> <http://google.com/+MarcinRakowskiConnect>
>> _____________________________________
>> "There are many paths, but only one journey."
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Coreaudio-api mailing list      ([email protected] 
>> <mailto:[email protected]>)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/coreaudio-api/mattg%40kinematicsystems.com
>>  
>> <https://lists.apple.com/mailman/options/coreaudio-api/mattg%40kinematicsystems.com>
>> 
>> This email sent to [email protected]
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to