1

私は、両耳間時間差(ITD)のモデリングのレベルまで、非常に正確な位置オーディオを必要とするアプリを構築しています。これは、リスナーに対するサウンドの位置によって変化するステレオチャネル間のわずかな遅延差です。残念ながら、iPhoneのOpenALの実装にはこの機能がなく、SDKで遅延オーディオユニットが提供されていません。

少し読んだ後、この問題に取り組む最善の方法は、AudioQueueを操作して自分の遅延を実装することであると判断しました(将来、このようなことを学ぶ必要があるプロジェクトもいくつか見られるので、これは次のようになります学ぶための良い言い訳)。ただし、低レベルのオーディオプログラミングの経験はまったくなく、AudioQueueの経験もありません。両方を学ぼうとしています:

a)オーディオ処理の一般理論

b)AudioQueueがその理論を実装する方法の詳細

一度にすべてを取り込むにはあまりにも多くを証明しています:(


だから、私の質問は次のとおりです。

1)DSPと、オーディオの生成と処理が一般的にどのように機能するか(オーディオデータがメモリ内でどのように構造化されているか、ミキシングがどのように機能するかなど)について学び始めるのに適した場所はどこですか?

2)AudioQueueがこれをどのように行うかを理解するための良い方法は何ですか?AudioFileReadPacketsAppleのSpeakHereの例のように、ファイルのビットをオンデマンドでフェッチするのではなく、生成されたリングバッファから読み取る方法の良い例はありますか?

最も重要な

3)私が見落としていたこれを行うためのより簡単な方法はありますか?

4

2 に答える 2

1
  1. Richard Lyons の「Understanding Digital Signal Processing」は、DSP の入門書として広く評価されていると思いますが、すべて数学であり、コードはありません。
  2. タイミングが非常に重要な場合は、レイテンシの高いオーディオ キューではなく、リモート I/O オーディオ ユニットを使用することをお勧めします。キャプチャにリモート I/O ユニットを使用し、FFT を実行して周波数を取得する「aurioTouch」の例のように、オーディオ ユニットの例の一部がここで役立つ場合があります。
  3. ビルトインの AL でそれができない場合は、「クレイジー ハード」レベルの難易度を選択したと思います。

おそらく、Apple の Core Audio エンジニアがたむろしている coreaudio-api リスト (lists.apple.com) にあなたがいるはずです。

于 2009-09-22T20:24:30.887 に答える
0

DSP の基礎とそのアプリケーションを学習するためのもう 1 つの優れたリソースは、Steven W. Smith によるデジタル信号処理に関する科学者および技術者のガイドです。http://www.dspguide.com/からオンラインで無料で入手できますが、印刷版を注文することもできます。

著者が基本的な理論を非常に口当たりの良い方法で構築する方法が本当に好きです.

さらに、/Developer/Extras/CoreAudio/PublicUtility にある Core Audio Public Utility を確認してください。CoreAudio を操作するために必要な基本的な構造の多くをカバーしています。

于 2010-01-02T15:00:39.467 に答える