藤本健のDigital Audio Laboratory

第622回

WASAPI対応ソフトを! Windows 10のオーディオ進化を望む

Technical Previewで検証

 前回の記事でWindows 10 Technical Previewをインストールして試してみたところ、FLACとApple Losslessのコーデックがサポートされていたが、期待していたUSB Audio Class 2.0のサポートはなく、オーディオに関して言えば実質的には大きな進展が見られなかったことをレポートした。とはいえ、もしかしたらMicrosoftが音質改善のための手段として推奨するWASAPIを、今度こそ、しっかり使ったシステムになっているのでは……という淡い期待を胸に、実際どうなっているのかをチェックしてみた。

Windwos 10

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をインストールしてみたのだが、やはり蹴られてしまった。

ローランドのQUAD-CAPTURE
QUAD-CAPTUREのドライバをWindows 10 Technical Previewをインストールしてみたが、使えなかった

 そこで作戦変更。デジタル出力を持つデバイスとデジタル入力を持つデバイスをそれぞれ別に用意し、これらをデジタルケーブルで接続して実験するという方法だ。出力側はマザーボード搭載のものでもよかったが、いまいち信用できないので、DOS/V POWER REPORTのムックの付録になっていたUSB DAC「DVK-UDA01」を使用。一方の入力側は手元にあったTASCAMの「US-366」を使用してみた。このUS-366に同軸デジタル入力があるので、DVK-UDA01の同軸デジタル出力と接続してみたのだ。

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ドライバを使って接続している。録音した後に、スタート地点のマークを見つけて、それより前の無音部分をトリミングしたので、これをオリジナルと比べるわけだ。

44.1kHz/16bitのWAVファイル(先頭の1サンプルに-12.0dBの信号を入れている)
Windows Media Playerで再生
Sound Forgeで録音
録音後、スタート地点のマークを見つけて、それより前の無音部分をトリミングした
WaveCompareでビットbyビット比較したが全く一致せず

 比較方法としては、まずefu氏開発のフリーウェア、WaveCompareを用いて、ビットbyビットでの比較を行なった。その結果、まったく一致するところがなく、ダメ。これは、リミッターが効いていないところでも、下位数ビットに揺れがあるために生じてしまう問題。まあ、そんな揺れがあること自体が大きな問題なのだが、これは以前から確認されている現象だ。

 続いて行なったのは、オリジナル波形を反転させたものを、録音結果と重ね合わせて、音が消えるのかという比較実験。一見、完全に波形が消えて、まっさらな状態になったようにも思えるが、拡大してみるとご覧の通りで、やはりリミッターが効く部分で大きな違いが生じている。そう、Windows 7、Windows 8での結果とまったく同じ状況。要するに、MMEドライバは何も変わっていないし、Windows Media PlayerがMMEドライバしか扱えない状況は変わらないので、何も変わっていないわけだ。

オリジナル波形を反転させて重ねあわせた。一見、完全に波形が消えて、まっさらな状態になったようにも思えるが……
拡大してみると違いが発生している
Windows Media Playerのバージョンは12.0.9800.0dで、Windows 8.1と変更なし

 ちなみに前回の記事でも触れたとおり、Windows 10 Technical Previewに入っているWindows Media Playerのバージョンは12.0.9800.0で、Windows 8.1に入っているバージョンとほぼ同じであり、機能的には進化していないようだ。少なくともWASAPIを選択するような機能は存在していない。

 では、ミュージックのほうは、どうなのか……。これについても、Windows Media Playerとまったく同じ実験を行なった。その結果、やはりWindows Media Playerとほぼ同じ結果となった。このミュージック、設定項目がいくつかあるので、もしや……と思って探してみたが、やはりWASAPIに関する設定のようなものは見当たらなかった。

ミュージックアプリでもチェック
ミュージックもWindows Media Playerと結果は同じ
ミュージックの設定にもWASPI関連はない

foobarでは問題なし。Windowsのオーディオ進化のためにWASAPI対応を

 最後に、この実験方法について、何か問題がないかを検証するために、foobar2000にWASAPIのプラグインを入れて、同じ実験を行なってみた。

foobar2000にWASAPIのプラグインを入れて実験

 その結果、WaveCompareでもピッタリ一致するし、Sound Forgeで反転ミックスしても、完全に消えた状態になる。やはりすべての問題は、Windowsのオーディオエンジンを通すMMEドライバにあり、Windows標準のプレーヤーソフトがWASAPIをサポートしていない以上、進展はないというわけだ。

foobar2000の実験では、WaveCompareで一致
Sound Forgeの反転ミックスでは、完全に消える

 そこで、今回のWindows 10 Technical Previewを使った上で、Microsoftへの要望として、ぜひ以下の2点の実現をお願いしたい。

・USB Audio Class 2.0対応ドライバの実装
 これに対応することで、現在する大半のUSB DACが利用可能になると同時に24bit/192kHzでの再生も可能になる

・WASAPI対応の音楽プレーヤーの標準搭載
 現在のWindows Media Player、ミュージックに機能追加する形でもいいし、新たなプレーヤーソフトの搭載でもいいので、WASAPIに対応したプレーヤーを搭載してもらいたい

 どちらも、難しいことはまったくないはず。たったこれだけで、Windowsのオーディオの世界での評価は大きく上がるはずなので、ぜひ正式版のWindows 10のリリースまでに準備を進めていただきたい。

藤本健

 リクルートに15年勤務した後、2004年に有限会社フラクタル・デザインを設立。リクルート在籍時代からMIDI、オーディオ、レコーディング関連の記事を中心に執筆している。以前にはシーケンスソフトの開発やMIDIインターフェイス、パソコン用音源の開発に携わったこともあるため、現在でも、システム周りの知識は深い。  著書に「コンプリートDTMガイドブック」(リットーミュージック)、「できる初音ミク&鏡音リン・レン 」(インプレスジャパン)、「MASTER OF SONAR」(BNN新社)などがある。またブログ型ニュースサイトDTMステーションを運営するほか、All AboutではDTM・デジタルレコーディング担当ガイドも務めている。Twitterは@kenfujimoto