バグがなくても動かない場合があるって、知っていますか?
仕様にバグがある場合、優秀なテストチームがどれだけバグを摘出して、優秀な実装者がバグを修整しても、製品がゴミになることがあります。
先日もハッカニュースを眠り薬の代わりに読んでいたら、そんな記事がありました。
Android’s 10 Millisecond Problem The Android Audio Path Latency Explainer
記事自体はセルフ提灯記事であり、商用ライブラリの販促ネタに過ぎませんが、ようするに安堂ロイドで音アプリを構築するのが大層大変だということのようです。
ちゃんとしたALSAの上でJavaのちゃんとしたオーディオライブラリが構築されていても、チエンがあったらどうしようもありません。
アプリをいくら正しく実装しても、どうにもならないチエンがあったら、ほんとうにどうにもならないのです。
いまだに遅延の問題を
シナのアンドロイド端末はCPUが2周遅れだから
とか
Javaでリアルタイム処理は無理ゲー
などというトンチンカンな珍説を耳にすることになるのです。
それもまぁ、因果律の薄い壁をイロイッカイズツで突破するまでの我慢かもしれませんが。
過去の遅延:
ジジィの迷い箸として以下の点について書いておきます。
- サンプルレートを下げるとチエンは増大する
- モノラルなら倍のチエン
- 内部でフォーマット変換されるから関係ない
- 自前でミキシングなんて狂気の沙汰