Windowsの最大音量を制限する
Windowsのオーディオの最大音量をフリーソフトを使って制限する方法。(2010.2.12)
画像追加(2010.3.19)
ASIO4ALLの安定性に疑問があるため、記述変更。[Priorities]の設定も追加(2010.5.12)
タスクトレイへの常駐方法を追加(2010. 7.12)
Windows Vista以降の場合を追加(2010.7.15)
YouTubeなどにアップロードされている動画の類を見ようとしたとき、いきなり想定外に大きな音が出て驚いたことがある人は少なくないはずだ。深夜などは近所迷惑だし、なにより自分自身心臓に悪い。大音響が響くなかボリュームを絞ろうとするが、なぜかそんなときに限ってタスクトレイの反応が悪かったりして、実に苛立たしいものでもある。
要するに、アップロードされた動画の録音レベルがまちまちなのである。自分としてはボリュームを適切に調節しておいたつもりでも、めいっぱい高いレベルで録音されている動画では、予想外に大きな音がすることがある。それに合わせてボリュームを絞っても、録音レベルの低い、つまりは音が小さくしか聞こえない動画を見ようとすれば、どうしてもまたボリュームを上げて音を大きくすることになり、次に見る動画がまたも高いレベルで録音されていたときには、結局スピーカから大音響が出力されてしまう。YouTubeを見るときは必ずマスタボリュームコントロールを表示させ、動画を表示させる直前にはそのたびにマスタボリュームを絞って、再生開始後に少しずつボリュームを上げるということにすればいいわけではあるが、実際にそんな面倒なことをしたい人はあまりいないだろう。
また、何の予告もなく音声付きで再生されるFlashを貼り付けたWebサイトも未だ後を絶たない。これは不意打ちだから、ボリュームを絞る暇がない。
そういうことになんとか対応策がないものかとネットを探し回ったところ、以下の通りいくつかの方法が見つかったので記しておく。
Windows Vista以降の場合
使用しているOSがWindows Vistaや7、2008の場合、音量を平均化する機能が標準で備わっているので、まずそれを試すのがよい。
コントロールパネルの[サウンド]アプレットで、[再生]タブの下にある使用中のスピーカを選択して[プロパティ]をクリック(又はそのままダブルクリック)し、表示されたスピーカのプロパティ画面の[音の明瞭化]タブの下にある[ラウドネス イコライゼーション]にチェックを入れて[OK]をクリックする。これで小さめの音はやや増幅されてより大きく、大きめの音はやや抑圧されてより小さく出力されるため、出力レベルの大きい動画などを再生したときでも、それが小さい動画を再生したときでも、大体似たような音量で再生される。したがって、マスターボリュームでほどほどの大きさに設定しておけば、それ以上の爆音では再生されにくいことになる。
ただ、筆者の環境であるWindows 2003(Windows XP相当)では、この方法は使えない(それ以前のWindowsでも同様である)。また、正確に言うと、これは最大音量を制限するだけでなく小さな音量の音を増幅することもしていて、その増幅がちょっと効き過ぎているようで不自然に感じられることがあった。
そこで、別の道を探したところ、以下の通りフリーソフトを利用する方法が2つほど見つかった。
GoVolume
第一は、GoVolumeを使う方法である(窓の杜の紹介記事はこちら)。「リアルタイム自動音量調整ソフト」と銘打たれている通り、出力される波形を常時監視し、振幅が大きすぎるときは自動的にマスタボリュームを絞ってくれるというものである。もちろん、振幅が小さくなれば元に戻してくれる。
この方法には、後述する第二の方法に比べてインストールが比較的手軽だという利点がある(ただし、インストール直後には、ヘルプの記述に従って若干煩雑な初期設定をする必要がある)。また、ログオン時に自動的に起動してタスクトレイに常駐してくれるのも便利である。
ただ、このソフトには、そのロジック上、どうしても若干反応が鈍くなってしまうという問題がある。そのために、鳴り始めの一瞬は大きな音が出るのを防止できない。また、例えば音楽が含まれる動画では、その中にドラムスの低音のような、人間の耳には聞こえにくいが振幅としては大きく出、しかも常時鳴り続けているようなものが含まれていると、ボリュームがそれに合わせて大きく絞られ、曲がよく聞こえなくなってしまうことがある。
ただ、前述のように手軽にインストールできるので、とりあえずまず試してみるのがいいだろう。
なお、あまりないかとは思うが、録音に対応していないオーディオデバイスしかない環境、若しくはそのデバイスの録音源として「ステレオミキサー」又はそれと同等のものが選択できない環境には、このソフトは対応していない。
VSTeプラグイン(リミッター)
第二の方法は、リミッターのVSTeプラグインを使用する方法である。
リミッターというのは、元々は音響機器の一つで、入力された音声信号の最大音量を設定したレベルに制限するもののことだが、今回使用するのは、この機器としてのリミッターの動作をエミュレーションするソフトウェアである。これをWindowsのオーディオに対して使用するわけだ。
また、VSTeというのは、オーディオデータに対して一定のエフェクトを施すDTM用ソフトウェアモジュールのための規格である。それに準拠したソフトウェアモジュールがVSTeプラグインで、これはVSTホストと呼ばれる種類のDTMソフトウェア本体に組み込む形でのみ動作させることができる。したがって、VSTホストも同時に導入することになる。
この方法では、ボリュームを絞るのではなく、オーディオデータを直接加工して音量が設定を超えた部分を抑えるので、GoVolumeにあった反応の悪さや絞られすぎの問題がなく、その意味で理想的である。ただ、複数のソフトを導入しなければならず、初めてだと少々骨が折れるかも知れない。以下で導入の一例を示す。
導入手順の例
CPUはAMD Athlon64 3500+、OSはWindows Server 2003 (32bit)、オーディオデバイスはSoound Blaster Digital Music SX(USBサウンドデバイス)という環境で確認した手順だが、Windows XP等でもほぼ同様と思われる。
VST Host(VSTホスト)
上述のように、VSTeプラグインを動作させるにはVSTホストがなければならない。フリーのVSTホストにもいろいろあるが、ここではそのものズバリの名称を持つ「VST Host」のVersion 1.47を利用することにする。
- VST HostのWebサイトからvsthost.zipをダウンロードし、適当な場所に展開する。インストーラはなく、展開した場所でそのまま使うことになるので、ドライブのルート直下あたりにディレクトリ(フォルダ)を作ってそこに展開するのがいいだろう。以下ではこのディレクトリをc:\vsthostとする。
- 必須ではないが、ドキュメントが欲しいときは別途同サイトからダウンロードし、c:\vsthostに置いておく。
- c:\vsthostの下に適当な名前でディレクトリを作成する。ここではpluginsとする。
BuzComp Free(VSTeプラグイン)
次いで、リミッターのVSTeプラグインをダウンロードする。フリーで評判もいいBuzComp Free版(ver1.2)を利用することにする。
- buzroomのWebサイト上にあるダウンロードページからbuzcompfree_v12.zipをダウンロードし、その中の.dllで終わる名前のファイルをc:\vsthost\pluginsに、BuzFont.TTFをWindowsのシステムディレクトリ下のFontsフォルダ(%WINDIR%\fonts)に展開する。
Aimersoft WMA Media Converter
Windows上で再生されるオーディオをそのままVSTホストへ入力できるようにするには、そのための仮想オーディオドライバが必要である。これは純粋な意味でのフリーのものが見つからないのだが(VADplusというのはあったが完成度があまり高くないようだし、試してみると筆者の環境ではノイズ混じりで正常に動かなかった)、Aimersoft WMA Converterという製品の無料の試用版に付属しているものがあるので、それを利用させてもらうことにする。
- Aimersoft WMA Media ConverterのWebサイトで、「Free Trial」をクリックして試用版のインストーラをダウンロード後実行し、画面の指示に従ってインストールする。
- Windowsのコントロールパネルから「サウンドとオーディオデバイス」をダブルクリックして「サウンドとオーディオのプロパティ」を開く。[オーディオ]タブをクリックして、[音の再生]と[録音]の[既定のデバイス]をいずれも[WsAudioDeviceS(1)]にし、[OK]をクリックする。この段階から一旦Windows上で音が出なくなる。導入を中止して音が出るようにしたいときは、[音の再生]の[既定のデバイス]を元のオーディオデバイスのものに戻す。
ASIO4ALL
(オプション) VSTeプラグイン(リミッター)により加工されたオーディオを遅延なく出力するためには、オーディオデバイス(サウンドカード等)の側に低遅延出力用のASIOドライバというものが必要となる。しかし、大抵のオーディオデバイスではASIOドライバが用意されていないので、その代わりとして以下のようにASIO4ALLという汎用ASIOドライバを導入する必要がある。これらがなくとも一応音は出せるが、遅れが発生するので動画などを見るとき気になる(例えば、踊りのリズムがなんとなく合っているようでいて実は半拍遅れているといった状態になることがある)。ただし、ASIO4ALLには若干安定性に疑問があるため、とりあえずこれなしで試してみて、気になるようなら導入してみるといいだろう。
- www.ASIO4ALL.comからASIO4ALL 2.9 - Englishのインストーラをダウンロードし、実行する。なお、このページには最新ベータ版のVersion 2.10 Beta 1もアップロードされているが、筆者の環境では正常に動作しなかった。
- インストーラでは画面の指示に従い大体デフォルトで進めていけばよいが、インストールするコンポーネントの選択(Choose Components)画面では、[ASIO4ALL v2]の他に[Off-Line Settings]も選択しておいたほうがいいだろう(必須ではない)。
VST Hostの設定
リミッターであるGeneCompをVST Host上で使えるようにする。
- エクスプローラ等からc:\vsthost\vsthost.exeを起動する。
- [Engine]-[Configure...]で[Priorities]タブをクリックし、[Process]で[High]を、[Audio Thread]で[Highest]を選択して[OK]をクリック。
- [Devices]-[Wave...]をクリックする。すると「Select Wave Devices」ボックスが開くので、[Input port]で[WsAudioDevice(1)]を、[Output port]で[DS: <オーディオデバイス名>]を選択する。ただし、ASIO4ALLをインストールした場合などでASIOドライバを使用するときは、[Output port]で[ASIO: ASIO4ALL v2]を選択する。次に[Buffer Size]に差し当たり[600 samples](ASIOドライバ使用時は[256 samples])あたり、[Sampling Rate]に[48000]を選択しておいて、[OK]をクリックする。
- (ASIO4ALLを使用する場合のみ) [Devices]-[Asio Control Panel...]をクリックする。ASIO4ALLの設定画面が開く。
- (ASIO4ALLを使用する場合のみ) まず右下のスパナをクリックしてAdvanced Optionsのモードに切り替える。
- (ASIO4ALLを使用する場合のみ) [WDM Device List]のツリーにある[WsAudioDeviceS(1)]のアイコンをクリックする。水色に変わったことを確認する。ツリーを展開して、「In: 2x11,0-64kHz, 16bits」の左のアイコンをクリックして同様に水色の状態にする。また、「Out: 2x11,0-64kHz, 16bits」の左のアイコンをクリックして水色でない状態にする。
- (ASIO4ALLを使用する場合のみ) 同様に、[WDM Device List]で、実際に使っているオーディオデバイス(サウンドカード等)のアイコンもクリックして水色にする。ツリーを展開して、「In: ...」の左のアイコンをクリックして水色でない状態にする。また、「Out: ...」の左のアイコンをクリックして水色の状態にする。
- (ASIO4ALLを使用する場合のみ) 以上がおわったらASIO4ALLのダイアログボックスを閉じる。
- [File]-[Set PlugIn Path...]をクリックする。すると「VST Plugin Paths」ボックスが開くので、「c:\vsthost\plugins」と入力して[OK]をクリックする。
- [File]-[PlugIns]-[GeneComp]をクリックする。するとメインウインドウの中に「GeneComp」と書かれた箱が追加される。その箱と、「Engine Input」及び「Engine Output」と書かれた箱との青端子間が黄色い線で結ばれている。箱が重なっていると分かりづらいが、それぞれの箱のアイコンのない部分をドラッグすると移動できる。
- 「GeneComp」の箱の中にある丸いツマミのような絵のアイコン(「Plugin Edit」というツールチップが表示されるもの)をクリックする。すると機器のツマミ等を模した設定画面が現れる。ツマミはドラッグすることで調節できるので、例えば以下のように設定する。
ドラッグ中には設定値が上部の表示部に表示される。なおGeneCompのツマミはカーソルキーでも操作できる。Shiftキーを押しながらだと細かく動かせる。
- [INPUT] - INPUT GAIN: 0.0DB (真ん中のまま)
- [RATIO] - RATIO : 8.0 : 1(3時の位置)くらい。あるいはめいっぱい右に回す(∞ : 1)のでも良い
- [KNEE] - KNEE : HARD (めいっぱい左)
- [ATTACK] と [RELEASE] - 真ん中のまま。なお、その脇の「AUTO」が点灯した状態なのを確認する。点灯していないときはクリックする。
- [MASTER OUT] - OUTPUT GAIN : 0.0 dB (真ん中のまま)
- この状態で、Windowsのマスターボリュームを最大にした上で、ブラウザなどで(なるべく録音レベルの高い)動画を再生するなどして、音を出してみる。当然うるさいはずなので、[THRESHOLD]のツマミを左に回す。すると音量制限が効き始める。このツマミはどのくらいの最大音量に制限するかを設定するもので、所望の最大音量より少し大きいくらいのところに調節しておく。
- [File]-[Autosave PlugIn Banks]をクリックし、チェックを付ける。
- [View]-[Minimize to System Tray]をクリックし、チェックを付ける。これで最小化したときタスクトレイに納まるようになる。
- メインウインドウ内の各箱を適当に移動して整理し、メインウインドウのサイズなども適当に調節した上で、一旦vsthostを終了する。また音は出なくなる。
- これでわかるように、VST Hostが起動していないとシステムの音が出ないので、ログオンしたときに自動的にvsthost.exeが起動するように、vsthost.exeへのショートカットを作り、スタートメニューの[スタートアップ]に登録しておく。ショートカットのプロパティを最小化で起動するように設定しておくといいだろう。
- スタートアップのそのショートカットから再度VST Hostを起動して正常に動作するか確かめる。
GeneCompのそれぞれのツマミの意味については、こちらのページの解説が参考になる。コンプレッサという言葉が出てくるが、コンプレッサはリミッターの一般化で、コンプレッサのRATIOを高い値にするとリミッターとして動作する。GeneCompも実はコンプレッサである。
補足
- ブツブツとノイズが乗るときは、VST Host上で[Devices]-[Wave...]の[Buffer Size]を増やしてみる。また、ASIO4ALL使用時は、[Devices]-[Asio Control Panel...]をクリックして出てくるASIO4ALLの設定画面の[ASIO Buffer Size]や[Kernel Buffers]も調整してみる。ただしいずれもあまり大きくすると若干の遅延が現れてくる可能性がある。筆者の環境では、ASIO4ALLで出力オーディオデバイスのKernel Buffersを3くらいに増やすのが一番効きが良かった。また、なぜか[ASIO Buffer Size]は増やすと逆にノイズが乗るようであった。環境によっては、時折軽くノイズが乗るのは、どう設定しても避けられないかも知れない。
- ASIOドライバ使用時、YouTubeで360pと480pの切り替えを行ったり、別の動画を再生したりしたときなどに、その後しばらく音がズレることがある。VST Hostの[Engine]-[Restart]のところをクリックするか、ツールバーの歯車ボタンを2回クリックするととりあえず直る。この場合も、VST Hostの[Buffer Size]を増やす。ただこれまた同様に、環境によってはたまにこの現象が起こるのは避けられないかも知れない。音が鳴り始めたときの負荷が高いとこうなりやすいようで、最新型のCPUを搭載したPCなら問題ないかも。
- まったく音が出ないときは、[Devices]-[Asio Control Panel...]をクリックして出てくるASIO4ALLの設定画面をいじってみる。また、VST Hostの[Engine]-[Run]のところにチェックが付いているかも要確認。付いていないと音は出ない。
- VST Hostのメインウインドウ上のGeneCompの箱の左下のスピーカのアイコンをクリックすると、リミッターを一時的に無効にできる。効き具合の確認に便利である。もう一度クリックすると元に戻る。
- VST Hostの箱の青端子はオーディオデータの入出力を、赤端子はMIDIデータの入出力を表わす。今回はMIDIデータは関係ないので赤端子は使わないことになる。
- GeneCompの処理が優秀なのであまりそうとは感じさせないが、実際にはリミッターが効いて音量を抑えている状態ではオリジナルと比べて歪んだ音が出ていることになる。このため、GeneCompのTHRESHOLDは常に少し大きめに設定しておき、YouTubeを見ていて音の大きい動画に出くわすなどでリミッターが効いていそうな状態になったときは、Windowsのマスタボリュームや動画プレイヤーなどのソース側の音量調節で、ある程度音を絞るようにしたほうがいいと思う。
- プラグインとしてGeneCompでなくGeneComp3を選択すると、低音・中音・高音別にリミッターを制御できる。
- 環境を元に戻したいときは、コントロールパネルの「サウンドとオーディオデバイス」で[オーディオ]タブをクリックして、[音の再生]と[録音]の[既定のデバイス]を元のオーディオデバイスのものに戻す。
コンピュータ関連記事一覧へ