0

ピッチシフトフィルターを使用して、単純なドラムパッドマシンアプリケーションを実装しようとしています. AVAudioEngine APIを使用しています。

アプリには12個のパッドがあります。各パッドには、独自のAVAudioPlayerNodeを持つ独自のクラスがあります。他のフィルターが接続されていない場合、アプリは非常に高速に動作します。ほとんど遅延なし。
しかし、AVAudioUnitTimePitchをチェーンにアタッチしようとすると、CPU使用率が 100% まで上昇し、初期化後にアプリがハングアップします。iPad3でテストされました。

このコードは、パッドの初期化ごとに実行されます。

_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使用率を下げる方法はありますか?

PS また、このアプリをiPad Airでテストしました。そして、それは機能します。しかし、CPU 使用率は依然としてかなり高く、初期化後は25 ~ 30%です。オーディオの再生中は約50%です。

4

1 に答える 1