WASAPI(排他モード)で176.4KHzが再生できない

(4/17 用語間違い修正、解決記事へのリンクを追加して更新)

 Windows XP Pro(32bit)環境からWindows 7 Pro(64bit)に移行して、ずっと困っていた問題がよくやく解決に進み始めたのでまとめておきたい。Windows 7についてはこっち方面はまだまだ地雷を踏む人が足りず、人柱がたくさんいるな~とおもって移行には躊躇していたのだが、もうやるしかない。
 問題は多いがまず愛用していたFoobar200でのカーネルストリーミング(KS)再生が失敗するということである。あの音が聞けないなんてショックではあったが、VISTAから導入したWASAPIならいけるだろうと思って試すとこちらもだめ。「Unsupported Stream Format」とは違うことが起きているエラーのようである。

 しょうがないので最後の手段であるDS方式で聴いていたが、微妙に聞こえるホワイトノイズがミキサーを通しているなーという証拠。また全体として音楽ソフトでレイテンシーが適切でないときにに現れるプチプチ音、プチプチノイズが現れる。再生バッファを10秒とかとってもだめなので、こちらも何か違う問題が起きているという気がする。
 まず切り分けとして、Onkyo社で提供しているSE-90PCIのWindows7(64bit)対応とうたっているドライバを入れたが解決せず。またチップ製造元のVIA社のドライバを入れても解決せず。いずれもドライバをアンインストール再起動して元の状態に。
 次にWASAPIを勉強する。なかなか資料がみつからないが、英語サイトの開発関係のページを一週間ほどあさる。アーキテクチャとしてはとてもいいではないか。これを使わない手はないが、この構造だと...カーネルモードでの問題?もしそうだとするとOSレベルなので手は出せない。
 別の切り分けとして、他のWASAPIが使えるプレイヤーを試すことにした。XMPlayという再生ソフトではこちらのインターフェイスが使える。しかしプチプチ音は改善されない。ということは本当にOSレベルの最下層の話になる。これはまずい...。

 ユーザレベルでできることは、OSやBIOSのインターフェイスでできることだけである。まずコントロールパネルのオーディオでデバイスを確認する。下の画像では外した後なので載ってはいないが、マザーボードに搭載されたオーディオデバイスと、最新のグラフィックカードには付いているのだろうかHDMI出力時のオーディオデバイスが付いていることを確認した。
 早速どちらもプロパティを開いて無効にする。そしてシャットダウンして起動、BIOS画面を開きそのレベルでHD Audio機能をDisableにする。また念のため、マザーボードとフロントパネルにつながっている出力ケーブルも外す。グラフィックカードで無効にする方法はわからないのでとりあえずOSレベルで無効にした状態でがまんする。

 Foobar2000のOutputでも他のデバイスが消えていることを確認して、

 いざ再生すると「Unsupported Buffer Size」が表示された。こちらの環境では2000ms以上だとこのエラーになった。2000ms以下にバッファを落としてから再生すると...

 できた!ちなみにKSでもOKであった。プチプチ音も少しは改善されたとおもう。残念ながら”少しは”である。ホワイトノイズはXP環境のレベルまで減少したかもしれない。しかし地雷はまだまだ続く。再生対象が192KHzから176.4KHzのソースになると、Foobar2000では最初の「Unsupported stream Format」エラーが出現。メッセージだけをみるとなんだWASAPIレベルでの対応の話かとおもうが、XMPlayではWASAPIでこのソースも再生できるのでそうではないとおもわれる。96KHzでも44.1KHzでもだめである。どうやらEnvy Adudio Deckの「Sample Rate」を合わせれば再生できるのだが、176.4KHZという選択肢はないし、しかしそもそもWindows XPではあったAUTOがなんでなくなったんだ?いちおうFoobar2000のPeter氏に報告しておくか。VISTAのときにWASAPI関連で修正して改善された経緯がある。
 Windows 7は長いベータテスト期間があり、全般的に品質は高いが、この分野のテストはどうしてもおろそかになる。そしてまだサービスパックも出ていない製品である。これはドライバも同様で、XPのときもVIA社のドライバのアップデートでだいぶ改善された。気長に待つとしよう。外部のD/A変換に変更することも考えるが、まだいいものが出ていないようだ。40万クラスになると別だが、ヘッドフォンシステムではオーバースペック。入力もいらない。出力に特化したものがいい。せっかくマザーボードがUSB3.0対応なので、USB3.0対応をうたいそのメリットがあるものが出たら検討はぜひしてみたい。
 最後に現在の状況をまとめておく。44.1KHzのアップサンプリングは4倍固定のもの(FuseやWaveUpConverter)では無理なので、SSRCかUPCONVの非整数倍サンプルレート変換を使用することで192KHzにアップサンプリングできる。

 Windows 7 Professional(64bit) + SE-90PCI+Foobar2000+WASAPI
 192KHzソースはOK
 176.4KhzソースはNG
 使用しないオーディオデバイスはOSレベルまたはBIOSレベルで無効にすること