藤本健のDigital Audio Laboratory

第674回:Windowsの音質問題を無料ツールで回避。ピークリミッター解除の効果を試す

第674回:Windowsの音質問題を無料ツールで回避。ピークリミッター解除の効果を試す

 「Windowsは音が悪い」、これは標準のドライバを使って再生する限りはどうしようもない問題で、これまでも何度も検証してきたとおりであり、Windows 10になっても改善されていない。もちろんASIOやWASAPI排他モードを使うことで、そうした問題を避けることは可能ではあるが、標準ドライバを使わざるを得ないiTunesやWindows Media Player、またWindows 10のGrooveミュージックやWindows 8/8.1のミュージックにおいては、どうしても音が劣化してしまう。ところが、そんな問題を解決してくれる非常に強力なフリーウェアが存在していた。川本優氏が作ったもので、2013年に登場し、アップデートによりWindows 10にも対応した。これで本当に問題が解決するのか実際にチェックした。

Windows 10

「Window標準ドライバで音質劣化」を改めて検証

 PCオーディオ好きな人であればUSB DACを使い、foobar2000などのソフトを利用して楽しんでいるので、問題はないが、大半の人はiTunesやWindows Media Playerで聴いているわけであり、それはすなわち音質劣化した再生を意味する。Macなら問題ないのに、Windowsだと音が悪いというのは、やっぱり不幸なことだ。

 なぜ、そうした問題が起こるのかは、これまでDigital Audio Laboratoryで何度も取り上げてきたが、一言でいえばWindowsの「オーディオエンジン」というところを通るためだ。このオーディオエンジンによる音の劣化には、以下の3通りの問題がある。

  1. サンプリングレート自動変換による劣化
  2. 低品質ディザーによる劣化
  3. ピークリミッターによる音質劣化

 1のサンプリングレートの自動変換は、再生する音と、オーディオデバイスのサンプリングレートが異なっていた場合、自動でWindowsがリサンプリングを行なうというもので、そのリサンプリング時の精度のためか、音質劣化してしまうというもの。これはサウンド設定でサンプリングレートを合わせておくことで問題を避けられるが、仮に44.1kHzを96kHzなどにアップサンプリングしたとしても音が劣化してしまうので注意が必要だ。

サウンド設定でサンプリングレートや量子化ビット数を変更

 2のディザーとは、24bitを16bit変換するような場合に生じる音質劣化を抑えるものなのだが、おそらくWindowsでは単純に下位8bitを切り捨てているだけなのか、自動変換されると音が劣化する。また、16bitを正しく再生する上でもWindowsのオーディオエンジンを通すことで下位1、2bitが常に化けてしまうため、24bitモードで再生するのが無難だ。そのため、これについてもサンプリングレートと同じ設定のところで24bitに固定しておくことで、多くの問題は避けられるようになっている。

 問題となるのがピークリミッター。これはWindows Vista以降に搭載されたものであり、再生する音の音量が0dB近くになってくると勝手にリミッターが効いてしまうというもの。確かに、Windows Vista以降は複数のソフトで同時に音を出すことが可能になっているため、それがミックスされた結果、0dB(最大音量)を超えてしまうと歪んでしまうため、それを避けるためにリミッターが必要なのは事実。でも、音楽プレーヤーソフトで再生しているだけなら、リミッターなど無用の長物であり、音を劣化させるだけのものなのだ。

 改めて、どんな問題が起きているのかを実証してみよう。2012年11月の記事で行なったのと同じ実験をWindows 10で追試してみる。CDからリッピングした44.1kHz/16bitのWAVファイルをWindows 10標準のプレーヤーソフトであるGrooveミュージックで再生し、この音をSound Forgeへとデジタルレコーディングする。ここでは以前と同様にRolandのQUAD-CAPTUREのループバック機能を用いているので、出力音が劣化なしに取り込めるようになっている。

Grooveミュージックで再生してSound Forgeでデジタルレコーディング

 オリジナルの波形とGrooveミュージックで再生したものを取り込んだ波形を比較しても、まったく同じように見えるが、片方の波形の位相を反転させた上でもう一つと重ね合わせてみると、その差分が見えてくる。この縮尺だとあまりはっきりわからないが、拡大すると結構なノイズが入っているのが見えてくる。これがピークリミッターによる悪影響なのだ。

オリジナルの波形
Grooveミュージックで再生したものを取り込んだ波形
片方の波形の位相を反転させた上で、もう一方と重ね合わせる
拡大すると、ノイズが入っているのがわかる

 これはGrooveミュージックだけでなく、iTunesでも、Windows Media Playerでも、全く同じ結果となる。

iTunes
Windows Media Player

 2012年の実験は、サウンド・オーディオ関連の開発を専門に手掛けているエンジニアである、ありぱぱ氏と共同で行なったものだったが、このありぱぱ氏が最近開発した高精度なスペクトラムアナライザーを用いて見てみると、ここでもハッキリとした問題が見えてくる。行なった実験は1kHzでピークが0dBになるサイン波を再生させるとどうなるか、というもの。

1kHzでピークが0dBになるサイン波を再生させる

 元の波形を解析すると、当然1kHzだけに集約される成分がみられるわけだが、Windowsのオーディオエンジンを通すと、音量が下がるだけでなく、リミッターが効いた結果、別の周波数成分がいっぱい入ってきてしまった。

1kHzに集約される成分が見える
Windowsのオーディオエンジンを通すと、音量が下がるだけでなく、リミッターが効いた結果、別の周波数成分が入ってくる

 ちなみに、このスペクトラムアナライザーはVSTプラグインによるもので、ありぱぱ氏自身の開発用ツールとして使っているものだそうだが、将来的にはデザインを整えて製品化するかもしれないと話をしていた。

ピークリミッター対策の方法と効果は?

 ここからが今回の本題。前述した川本優氏が、「Disable Peak Limiter in Windows Audio Engine」というツールを作り、これを無料公開していたのだ。これはいま見てきたピークリミッターを無効化するというもの。

 川本氏によると「Windowsの設定を変更するにはレジストリ等を編集することが一般的ですが、残念ながらピークリミッターがあるWindows Audio Engineは著作権保護のためにリミッターの設定を変更できないようになっています。また同様の理由でWindows Audio Engine関係のファイルを書き換えることもできません。そこでメモリ上にあるピークリミッターのコードを書き換え、一つの音声の再生ではピークリミッターが働かないようにし、音質の劣化を防ぐプログラムを作りました」とのこと。つまりOS自体を書き換えているわけではなく、PCの物理メモリ上にあるWindows Audio Engineのコードにパッチを当てることで実現していたのだ。川本氏によると、その具体的な数値は「単精度浮動小数点型の0.985、すなわち20*log(0.985)=-0.13dBとなっているものを、1.0(同0dB)に置き換える」とのこと。

 つまり「Disable Peak Limiter in Windows Audio Engine」という名称ではあるけれど、ピークリミッターを無効化するのではなく、0dBを超えるまでは有効化しないツールとなっている。結果として、複数のソフトから音を出して0dBを超えるような場合にはしっかりとリミッターがかかってくれるというわけだ。

 なかなかトリッキーなことを行なっているわけだが、だからこそ、Windows Updateがあっても問題にならないし、このツール一つでWindows Vista、Windows 7、Windows 8/8.1と対応しており、Windows 10でもしっかりと使えてしまうのだ。

 最近、川本氏と筆者、ありぱぱ氏とTwitter、メールなどでやりとりをしている中、'13年12月リリースのこのツールが、'16年の4月9日にVer.1.1へとアップデートされた。今回のアップデートではWindows 10に正式対応するとともに、リミッターが効き始める位置、つまりスレッショルドの設定ができるようになった。さらにリミッターを完全に効かせないようにすることも可能になっている。これらの設定はコマンドラインで行なうものだが、特に指定せずにそのまま実行すれば、従来通りの設定になるので、通常はこれがよさそうだ。

スレッショルドの設定や、リミッターを効かせないようにする設定も可能になった

 では、実行した後、本当にリミッターが解除されているのか、実際にテストしてみた。手順としては、先ほどとまったく同じことをしただけだが、Sound Forgeでの波形の結果を見てもまったくノイズは入ってきていない。同様に、スペクトラムアナライザーの結果を見てもオリジナルの通りだ。

Sound Forgeでの波形
スペクトラムアナライザーの結果

 以上の結果から見ても、Windowsのオーディオエンジンにおける音質劣化の最大の原因、ピークリミッターを解除できたことが実証できた。これならiTunesを使ってもWindows Media Playerを使っても大丈夫そうだ。とっても単純な話なのだから、こうしたことは本来マイクロソフトに対応してもらいたかったことだが、これがユーザーの手によって実現できたのはうれしいことだ。

 なお、このツール、「Disable Peak Limiter in Windows Audio Engine」は、その仕組み上、PCを再起動すると元に戻ってしまうため、Windows起動時には再度実行してリミッターを無効化、つまり0dBまで効かなくさせる必要があるので、ここは注意しておきたい。

藤本健

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