この存在、全く知らなかったのだが…
Windowsの音質問題
私がこのBlogでハイレゾ音楽の話をしていたちょっと前、同じくこのBlogでWindowsの音質は悪いという話を書いた。
この事はもちろん事実で、だからこそ音に拘る人はWindowsでもASIOドライバを使ったり、WASAPI排他モードを使用して音楽を聴いたりするのだが、もちろんそういう聴き方をすると、その音しか聞こえなくなり、他のWindows上で動作しているアプリケーションの音が一切聞こえなくなる。
これはWindowsの仕様であり、音質劣化を避けながら通常のWindowsの音環境を実現する方法は存在しない。
Windows10になったとき、この音問題は解決してくれるもの、と思っていたのだが、実のところ未だに解決しておらず、PCオーディオを楽しむWindowsユーザーとしては、未だ限定的な方法でオーディオを楽しむしかない状況が続いている。
Windowsは、通常利用しているとオーディオエンジンを通った音が再生される。このエンジンによって、Windowsはサンプリングレートを自動変換したり、音のbit数を変換したり、或いは複数の音を再生する際に音をミックスするが、そのミックスによって最大音量である0dbを超えて歪まないように調整をしたりしている。
この3つの行為は、どれも必要な事ではあるが、やり過ぎると音質劣化を招く。いや、もっと正確に言えば、精度の高い変換をすれば著しい劣化になったりしないのだが、Windowsが処理する精度では劣化にしかならなかったりする事が原因である。
だからサンプリングレートやbit数の変換に関しては自動変換しないようにしたり、或いは上位の設定に固定しておけば、悪さはしない。
だが、問題は複数の音をミックスする行為である。
この行為によって、Windowsはピークリミッターをかけて対応するのだが、このピークリミッターを調整する術がWindowsには存在しない。この事が、Windowsオーディオが劣化した音を出しているという事を言われる所以である。
ピークリミッターを外す?
この問題に対し、解決策の一端となる情報が、impressのAV Watchに掲載された。
AV Watch 藤本健のDigital Audio Laboratory
http://av.watch.impress.co.jp/docs/series/dal/20160411_752552.html
この情報によると、2013年にはある方法でピークリミッターを解除、音質改善が可能だったようだ。
詳しい話は上記サイトを参照してもらうとして、ここで紹介されている「Disable Peak Limiter in Windows Audio Engine」というフリーソフトは、物理メモリに常駐するWindows Audio Engineのコードを書き換え、一つのアプリケーションのみから出ている音の時にはピークリミッターを働かないようにし、0dbを超える音が再生される時にピークリミッターを働くように作用させるソフトだという。
確かに単一のアプリケーションでは0dbを超えるような音は再生されないし、ギリギリまでピークリミッターが働かないようにできれば、音質劣化は避けられる。
さらに万が一複数のアプリケーションから音が出て、0dbを超えるような事があっても、リミッターが作動して問題回避できる。実に理にかなったソフトと言える。
記事にも書いてあったが、本来はこういう機能こそ、Microsoftから提供されなければならないものだと思うのだが…ま、いつもの事である。
とりあえず、Windowsで少しでも良い音を求めたい人は、このフリーソフトを使わせてもらうのが良いのではないかと思う。
注意すべきは、このフリーソフトはあくまでも物理メモリ上のコードを書き換える為のものなので、PCをシャットダウンしたり、再起動したりすると、メモリがクリアされてしまうため効果がなくなる。なので毎回起動した後にフリーソフトをローディングしなければならない。
面倒だと思えば、コイツの起動プログラムもしくはショートカットをスタートアップに組み込んで自動起動するようにしても良いかも知れない。