ぽよメモ

レガシーシステム考古学専攻

foobar2000での再生時のノイズ

高音質プレーヤーとしてオーディオ界隈では頻繁に用いられるfoobar2000ですが、僕の環境においてはASIOやWASAPI等の排他モードでの再生ではなぜか頻繁に音が途切れるようになってました。
タスクマネージャから優先度を上げただけでは多少マシにはなるものの解決には至らず、多少気になりながらも多少途切れる環境で音楽を聞いていましたが、今回多少マシになったので解決法を残しておきます。
Viata以降のOSにおいてはMMCSS( Multimedia Class Scheduler Service)が実装されています。これは簡単にいえば、「マルチメディアの再生に全力を注がせる」というものです。
通常の再生では音楽の再生中にもCPUへの割り込み処理が次から次へと入ることになるのですが、こいつはそれを出来る限り音楽再生のみに特化させるわけです。もう少し詳しいことが知りたい人はこの辺りを参考にしてください。 NyaRuRuが地球にいたころ - Multimedia Class Scheduler Service (MMCSS)
Microsoft - Multimedia Class Scheduler Service
foobar2000にはコイツに関する設定項目も実は存在しており、これを設定することで音飛びを緩和できるのです。
まずはPrefarences > Advanced > Playbackを開き、Use MMCSSにチェックを入れMMCSSを「ProAudio」に。バッファーサイズを適当に上げておき、再起動します。
以上。簡単ですね。

あとは再生するときにfoobar2000とASIOHostプロセスの優先度をリアルタイムまで上げておけばかなり改善します。 しかしこの状態でもたまに途切れることが有ります。CPUがちょっと古い性能もそこまでなやつを使ってるからという可能性もありますが…
具体的にはKrileのデータベース書き込みのタイミング。後はエクスプローラを立ちあげた時。ブラウザを新規で立ちあげた時。などが有ります。
Krileに関してはインメモリデータベースモードに変更しても継続して音飛びが発生する場合があり、きちんと音楽を聞く際には起動しないようにしています。その他に関してもPCに負荷がかかったため以外に原因がなさそうで、なんというか腑に落ちない感じが…
後、ローカルに保存した音楽ファイルよりも、LAN内にあるファイルサーバ上の音楽ファイルを直接読み込んで再生させるほうが(最初の再生開始時に多少時間がかかってもたつくものの)途切れにくいように感じました。特にエクスプローラでHDDにアクセスした際の音飛びが改善されたような気がします。
ASIOとWASAPIはよくわからないですね…