MMCSS for ASIO オン!で様子をみることにする

 先週、Babyfaceのドライバがアップデートされた。ファームウェアも先月バージョンアップされていたようなのでまとめて更新することにした。

 ファームウェアは204に、ドライバは1.036になった。ReadMeを見るとTotalMix FX の更新が入っており、ミキサーに大きな変更が入っているようだ。見た目もブラッシュアップされ、いろいろ面白そうだが今度いじることにする。

 さてアップデートしておもったのは、以前放棄したASIO接続を再トライしてみようということ。


 
 まずは下層のUSB Settingsから変更する。Aboutにある「Enable MMCSS for ASIO」を有効にする。これについてはReadmeに以下の記述がある。変更はASIO reset後に有効になるとあるが、具体的なresetの方法が不明なので、とりあえずPCを再起動する。
- Note: At this time, activating this option seems to be useful mostly with the latest Cubase/Nuendo at higher load. With other software this option can decrease performance. The change becomes active after an ASIO reset. Therefore it is easy to quickly check which setting works better.
 MMCSSは、Multimedia Class Scheduler Serviceの略で公式の説明にあるように、CPUの使用優先度を宣言するもので、音楽だけではなく映像などの文字通りマルチメディア処理で使用される。

 またこのMMCSSは、以前の記事等でたびたび紹介している排他モードとも深い関わりがあり、Windows Vista以降でOSの安定性とパフォーマンスのバランスを高いレベルで実現してくれるもので、WindowsXPでオーディオを楽しんできたユーザにとっては、感謝感激、ありがたやーのしくみである。

 ただReadmeの記述にもあるように、他のソフトウェア(の処理)が低下する可能性があるので、他にリアルタイム性を要求される仕事をされる方には向かないかもしれない。

 さてここで1つ困ったことがある。このあたりの詳細な説明がRME社のサイトで見つからないのである。だからあくまでもこうなっているはずとという推測というか期待で楽しむことにする。

 ちなみに、別のオーディオベンダーのドライバのソースコードをみると、次のようになっていて、Pro AudioAVRT_PRIORITY_CRITICALの部分に興奮する人がいれば、お仲間であるが、、、、これ以上は触れないことにする。
hAv = fnAvSetMmThreadCharacteristics("Pro Audio",&AvTaskIdx);
if (hAv){
 fnAvSetMmThreadPriority(hAv,AVRT_PRIORITY_CRITICAL);
 dpf("======= Boosting ASIO driver thread priority with MMCSS\n");
}
 さて下層の設定が終わったので、次は上層の設定である。Foobar2000のPreferencesの一番下にAdvancedがある。ここでUse MMCSSにチェックを入れ、Fb2kの再起動を行う。

 1つ上の項目、Thread priorityは7になっているのでそのままにする(もしかして以前、自分で変更したままかもしれません)。この数値がMMCSSでのPriorityとすると低い優先度なのだが、これ以上大きい数字をいれても7に戻されるのでこれで我慢。


 これでしばらく楽しむことにします。