2011-08-01 7 views
1

次のように私は何を達成しようとしていることは基本的には次のとおりです。どうすれば素早くオーディオのチャンクをループし、Core Audioのサンプル値(振幅/パワーレベル/ etc)を決めることができますか?

  1. は、ファイルを開いて、私はXのサンプルにファイルを分割
  2. その期間に基づいて必要になりますどのように多くの「サンプル」を決定。各サンプルの(平均)出力レベル/振幅を決定する。これらのサンプル値を使用して
  3. 、(おそらくthese guidelines以下、)オーディオを表した波形を描くに進み

私は細心の注意を払って無駄とオンラインフォーラム、書籍やAPIを介して検索、約3日間を過ごしてきました。私は最も重要なステップに固執している - >オーディオのチャンク(バッファ)のパワーレベルを決定する。

次のCore Audio bookのほとんどを読んで、私はAudioQueues、Audio Units、そしてある程度はOpenALという低レベルの環境に慣れてきました。しかし、私が見た例や説明はすべて、オーディオファイルの再生中または録音中(リアルタイムで)のいずれかで、パワーレベルの値を決定することに取り組んでいます。

私の目的は、ディスク上のこれらの値をリアルタイムで再生することなく、迅速かつ効率的に決定することです。私が見なければならない図書館、機能に対する指導は、非常に高く評価されます。

ありがとうございました。

+0

あなたはこれを理解しましたか、私は同じ問題を抱えています。 – tommys

答えて

1

これを実現する方法はいくつかあります。ファイル全体をメモリに読み込んで解析を適用することができます。または、ファイルのチャンクを読み込み、AudioFile.hのAudioFileReadPackets(...)を使って各チャンクの平均レベルを取得します。

0

あなたはどこにいるのですか?私はまだ読書やファイルを書くことで遊んでいないので、他の誰かがあなたにその面を助けることができます。しかし、実際にオーディオストリームを処理するという観点からすると、アクセラレーションフレームワークを使用することになります。これには、必要なデータを取得するための関数が含まれています。パワーレベルを得るために、まず信号をFFTする必要があるかどうかはわかりません。

アクセラレーションフレームワークでFFTを実行する方法について、長年の回答Using the Apple FFT and Accelerate Frameworkを書いています。

私は関数のリストを調べていますが、信号のピーク電力と平均電力を求める関数があります。これらの機能を利用するには、オーディオ信号をフロートとして読み込むことをお勧めします。

関連する問題