void configureAndStartAudioProcessingGraph(AUGraph graph) { int result = 0; uint framesPerSlice = 0; result = ioUnit.Initialize(); if (result != 0) { throw new Exception("Unable to Initialize the I/O unit. Error code: " + result); } var status = ioUnit.SetSampleRate(graphSampleRate, AudioUnitScopeType.Output); if (status != AudioUnitStatus.NoError) { throw new Exception("AudioUnitSetProperty (set Sample output stream sample rate). Error code: " + (int)status); } framesPerSlice = ioUnit.GetMaximumFramesPerSlice(AudioUnitScopeType.Global); samplerUnit.SetSampleRate(graphSampleRate, AudioUnitScopeType.Output); samplerUnit.SetMaximumFramesPerSlice(framesPerSlice, AudioUnitScopeType.Global); if (graph != null) { result = (int)graph.Initialize(); if (result != (int)AUGraphError.OK) { throw new Exception("Unable to initialize AUGraph object. Error code: " + result); } result = (int)graph.Start(); if (result != (int)AUGraphError.OK) { throw new Exception("Unable to start audio processing graph. Error code: " + result); } // TODO: CAShow Console.WriteLine(graph); } }