私は、両耳間時間差(ITD)のモデリングのレベルまで、非常に正確な位置オーディオを必要とするアプリを構築しています。これは、リスナーに対するサウンドの位置によって変化するステレオチャネル間のわずかな遅延差です。残念ながら、iPhoneのOpenALの実装にはこの機能がなく、SDKで遅延オーディオユニットが提供されていません。
少し読んだ後、この問題に取り組む最善の方法は、AudioQueueを操作して自分の遅延を実装することであると判断しました(将来、このようなことを学ぶ必要があるプロジェクトもいくつか見られるので、これは次のようになります学ぶための良い言い訳)。ただし、低レベルのオーディオプログラミングの経験はまったくなく、AudioQueueの経験もありません。両方を学ぼうとしています:
a)オーディオ処理の一般理論
と
b)AudioQueueがその理論を実装する方法の詳細
一度にすべてを取り込むにはあまりにも多くを証明しています:(
だから、私の質問は次のとおりです。
1)DSPと、オーディオの生成と処理が一般的にどのように機能するか(オーディオデータがメモリ内でどのように構造化されているか、ミキシングがどのように機能するかなど)について学び始めるのに適した場所はどこですか?
2)AudioQueueがこれをどのように行うかを理解するための良い方法は何ですか?AudioFileReadPackets
AppleのSpeakHereの例のように、ファイルのビットをオンデマンドでフェッチするのではなく、生成されたリングバッファから読み取る方法の良い例はありますか?
最も重要な
3)私が見落としていたこれを行うためのより簡単な方法はありますか?