yeah, this happens a bit, what is most likely happening is that you are applying a 16 bit effect to a 32 bit sample.
what
I would do first is check the format you are receiving from the outputs
of your graph, what bit size are they, and are they matching the inputs.
you can do this like so, the below code will get an output from a unit
called crossFaderMixerUnit and print a description, then you can
(manually) compare it to the inputs, and see its bit size.. what i have
started doing is setting the inputs to be the outputs of the node
previous in the graph.
AudioUnitGetProperty(
crossFaderMixerUnit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Output,
0, // bus
&inputHardwareASBD,
&asbdSize);
NSLog (@"got crossFaderMixerUnit bus 0 output ASBD. rate: %f, %d channels, %d bits per channel",
inputHardwareASBD.mSampleRate, inputHardwareASBD.mChannelsPerFrame,
inputHardwareASBD.mBitsPerChannel);
AudioUnitGetProperty(remoteIOUnit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Input,
0, // bus
&inputHardwareASBD,
&asbdSize);
NSLog (@"got RIO bus 0 input ASBD. rate: %f, %d channels, %d bits per channel",
inputHardwareASBD.mSampleRate, inputHardwareASBD.mChannelsPerFrame,
inputHardwareASBD.mBitsPerChannel);
cheers
aran.