藤本健のDigital Audio Laboratory
第622回:WASAPI対応ソフトを! Windows 10のオーディオ進化を望む
第622回:WASAPI対応ソフトを! Windows 10のオーディオ進化を望む
Technical Previewで検証
(2015/2/9 12:25)
前回の記事でWindows 10 Technical Previewをインストールして試してみたところ、FLACとApple Losslessのコーデックがサポートされていたが、期待していたUSB Audio Class 2.0のサポートはなく、オーディオに関して言えば実質的には大きな進展が見られなかったことをレポートした。とはいえ、もしかしたらMicrosoftが音質改善のための手段として推奨するWASAPIを、今度こそ、しっかり使ったシステムになっているのでは……という淡い期待を胸に、実際どうなっているのかをチェックしてみた。
WASAPIとはなにか
「Windowsで再生すると音が悪い」そんな評価をする人がいるが、「それは内蔵のサウンドデバイスで再生しているからだろう」なんて思っていたが、実はWindowsのシステム自体に問題があったことを以前の記事「Windowsオーディオエンジンで音質劣化」で突き止めた。Windows標準のサウンドドライバを用いて再生すると、オーディオエンジン(旧カーネルミキサー)を経由する際に、自動的にリミッターがかかる形になっているために、音が劣化というか変化してしまうのだ。
残念ながらこのリミッターを切ることができない仕組みになっているので、MMEドライバやDirectSoundといったものを通じて音を出す限り、どうしてもオリジナルの音をそのまま出すことができない。
そこで、これまで広く使われてきたのがWindows標準のドライバを使わない方法。独Steinbergが規格化したASIOドライバを用いることで、このリミッターなどを通さず、ストレートに音を出すことができるのだ。別にASIOはそのために誕生したものではないが、オーディオ再生においてASIOを使うことは半ば常識になっている。
もっとも、こうした問題についてはMicrosoft自身も理解しており、それを解決するためにWindows Vista SP1の時点でWASAPIというドライバをリリースし、これを通すことで音が勝手に変化してしまう問題を避けることが可能になっている。WASAPIには排他モード、共有モードの2種類があるが、排他モードを使うことで、これが実現できるのだ。
ところが、せっかくWASAPIという仕組みを用意したのにも関わらず、大きな問題がある。それはWindows標準のミュージックプレーヤーソフトであるWindows Media Playerや、Windows 8で搭載されたModernUI用のアプリである「ミュージック」がMMEドライバのみの対応となっているため、普通にWindowsで再生してもWASAPIの恩恵にあずかることがまったくできないのだ。
ドライバ周りを作る部門と、アプリケーションを作る部門が異なる大会社、Microsoftだから、こうした問題が生じているのだろうが、オーディオを扱う立場から見れば、Windowsの欠点であるといえる。この問題がWindows 10で解消されているのではないか……というのが、「淡い期待」なのだ。
Windows 10におけるWASAPI対応を検証
そこで、実際にどうなったかを以前と同じ方法を用いて検証してみることにする。
方法は、Windows Media Playerおよび「ミュージック」を用いて再生した音を、別アプリを用いて録音し、元の音と、録音した音に違いがないのかを比較してみる、というもの。もちろん、ここでアナログを介在させると、絶対に信号が変わってしまうので、デジタルで再生したものをデジタルのまま録音するという手法が必要になる。
以前、実験した際は、ループバック機能を持つオーディオインターフェイス、ローランドのQUAD-CAPTUREを用いて行なったので、これで試してみようと思ったのだが、QUAD-CAPTUREのドライバをWindows 10にインストールすることができなかった。ローランドのドライバは従来からWindowsのバージョンをチェックした上でインストールする形により、現行のドライバはWindows 10の存在を知らないため、インストールできないのだ。試しに、一度Windows 8.1に戻した上でQUAD-CAPTUREのドライバを入れ、その環境を引き継ぐ形でWindows 10 Technical Previewをインストールしてみたのだが、やはり蹴られてしまった。
そこで作戦変更。デジタル出力を持つデバイスとデジタル入力を持つデバイスをそれぞれ別に用意し、これらをデジタルケーブルで接続して実験するという方法だ。出力側はマザーボード搭載のものでもよかったが、いまいち信用できないので、DOS/V POWER REPORTのムックの付録になっていたUSB DAC「DVK-UDA01」を使用。一方の入力側は手元にあったTASCAMの「US-366」を使用してみた。このUS-366に同軸デジタル入力があるので、DVK-UDA01の同軸デジタル出力と接続してみたのだ。
これで準備は完了。以前用いた、スタート地点のマークを付けた44.1kHz/16bitのWAVファイルがあったので(先頭の1サンプルに-12.0dBの信号を入れている)、これをWindows Media Playerで再生。それをSound Forgeで録音してみたのだ。ちなみにSound Forge側は取りこぼしやミスがないように、US-366のASIOドライバを使って接続している。録音した後に、スタート地点のマークを見つけて、それより前の無音部分をトリミングしたので、これをオリジナルと比べるわけだ。
比較方法としては、まずefu氏開発のフリーウェア、WaveCompareを用いて、ビットbyビットでの比較を行なった。その結果、まったく一致するところがなく、ダメ。これは、リミッターが効いていないところでも、下位数ビットに揺れがあるために生じてしまう問題。まあ、そんな揺れがあること自体が大きな問題なのだが、これは以前から確認されている現象だ。
続いて行なったのは、オリジナル波形を反転させたものを、録音結果と重ね合わせて、音が消えるのかという比較実験。一見、完全に波形が消えて、まっさらな状態になったようにも思えるが、拡大してみるとご覧の通りで、やはりリミッターが効く部分で大きな違いが生じている。そう、Windows 7、Windows 8での結果とまったく同じ状況。要するに、MMEドライバは何も変わっていないし、Windows Media PlayerがMMEドライバしか扱えない状況は変わらないので、何も変わっていないわけだ。
ちなみに前回の記事でも触れたとおり、Windows 10 Technical Previewに入っているWindows Media Playerのバージョンは12.0.9800.0で、Windows 8.1に入っているバージョンとほぼ同じであり、機能的には進化していないようだ。少なくともWASAPIを選択するような機能は存在していない。
では、ミュージックのほうは、どうなのか……。これについても、Windows Media Playerとまったく同じ実験を行なった。その結果、やはりWindows Media Playerとほぼ同じ結果となった。このミュージック、設定項目がいくつかあるので、もしや……と思って探してみたが、やはりWASAPIに関する設定のようなものは見当たらなかった。
foobarでは問題なし。Windowsのオーディオ進化のためにWASAPI対応を
最後に、この実験方法について、何か問題がないかを検証するために、foobar2000にWASAPIのプラグインを入れて、同じ実験を行なってみた。
その結果、WaveCompareでもピッタリ一致するし、Sound Forgeで反転ミックスしても、完全に消えた状態になる。やはりすべての問題は、Windowsのオーディオエンジンを通すMMEドライバにあり、Windows標準のプレーヤーソフトがWASAPIをサポートしていない以上、進展はないというわけだ。
そこで、今回のWindows 10 Technical Previewを使った上で、Microsoftへの要望として、ぜひ以下の2点の実現をお願いしたい。
・USB Audio Class 2.0対応ドライバの実装
これに対応することで、現在する大半のUSB DACが利用可能になると同時に24bit/192kHzでの再生も可能になる
・WASAPI対応の音楽プレーヤーの標準搭載
現在のWindows Media Player、ミュージックに機能追加する形でもいいし、新たなプレーヤーソフトの搭載でもいいので、WASAPIに対応したプレーヤーを搭載してもらいたい
どちらも、難しいことはまったくないはず。たったこれだけで、Windowsのオーディオの世界での評価は大きく上がるはずなので、ぜひ正式版のWindows 10のリリースまでに準備を進めていただきたい。