2016-05-22 11 views
0

のピッチシフトの簡単なドラムパッドマシンアプリケーションを実装しようとしています。私はAVAudioEngine APIを使用しています。

アプリ内にのパッドがあります。各パッドには独自のクラスがあり、AVAudioPlayerNodeです。接続されている他のフィルタがない場合、アプリケーションはかなり高速に動作しています。ほとんど遅れることなく
AVAudioUnitTimePitchをチェーンに添付しようとすると、CPUの使用率が100%に上昇し、初期化後にアプリケーションがハングアップします。試験したのはiPad3です。

このコードは、パッドの初期化ごとに表示されます。
AVAudioEngine API:AVAudioUnitTimePitchのCPU使用量が多すぎます

_playerNode = [[AVAudioPlayerNode alloc] init]; 
_pitchFilter = [[AVAudioUnitTimePitch alloc] init]; 

[_audioEngine attachNode:_playerNode]; 
[_audioEngine attachNode:_pitchFilter]; 

[_audioEngine connect:_playerNode to:_pitchFilter format:_buffer.format]; 
[_audioEngine connect:_pitchFilter to:_audioEngine.mainMixerNode format: _buffer.format]; 

何らかの理由でCPU使用量を減らす方法はありますか?

P.S.また、私はiPad Airでこのアプリをテストしました。そして、それは動作します。しかし、CPU使用率は依然としてかなり高いです。initの後に25-30%です。そして、約約50%オーディオを再生中。

答えて

0

ここでは多くの処理を行っています...サンプルレート、チャンネル数、またはビット深度を減らしてみてください。 AFAIKでは、AVAudioEngineのバッファサイズを変更する方法はありません。

関連する問題