IT用語集 › プログラミング › オーディオコールバック

オーディオコールバック

プログラミング Svenska → 更新: 2026-10-28

次のバッファを埋める必要が生じるたびにオーディオドライバが呼び出す関数で、決して遅れてはならないもの。

ASIOやCore Audio、JACK、Web Audioなど、ほぼすべてのオーディオAPIが同じモデルを採っている。プログラムが関数を登録しておくと、ドライバが優先度の高いスレッドから、毎秒千回近くその関数を呼び出す。渡されるのは空のバッファで、関数が戻るまでに満たさなければならない。64サンプル・48 kHzの場合、使える時間はおよそ1.3ミリ秒である。

そこで、Ross Bencinaが2011年に「時間は誰も待ってくれない」という趣旨で整理した規則が生まれた。メモリ確保、ロック、ファイルやネットワークのI/O、ブロックしうるシステムコールはいずれも禁止である。mallocは普通は速いが、常にではない。その「常にではない」がクリック音として聞こえてしまう。プログラムの他の部分との連携は、ロックフリーのキューを介して行う。ガベージコレクション言語がこの分野で苦戦するのも同じ理由による。

← 用語集に戻る