2011年1月23日日曜日

VSTHost と ASIO4ALL で PC の音声出力に対してリアルタイムにイコライザーをかける

1. Windows における USB スピーカーの音質の設定

USB スピーカー「Olasonic TW-S7」の音は良いけれど、普段使いでは高音域が耳につく。

コントロールパネル > サウンド > 再生 > 音の明瞭化」で設定できる項目は限られており、高音域を抑えるためにイコライザーをかけることができない。

CropperCapture[37]

USB スピーカーに出力する前に、Windows から出力される音声をつかまえて、エフェクトをかけるツールはないのだろうか?

CropperCapture[41]


 

2. 設定の概略

Windows の音声にエフェクトをかける方法は下図の通り。

CropperCapture[24]

簡単にまとめると、

  1. 「ステレオミキサー」を有効にする
  2. 音声の出力先を「ステレオミキサー」と同じ「サウンドデバイス」のスピーカーに設定
  3. エフェクトをかけるための環境に、プラグインとしてイコライザーを導入
  4. 上記環境で、入出力の関係を「ステレオミキサー」から USB スピーカーへと設定

… とは言ったものの、細かいことはよく分からず、適当に設定をしたらイコライザーをかけることができたという程度なので、設定が妥当なのか分からない。 (+_+)

 

3. ステレオミキサーの有効化

  • コントロールパネル > サウンド > 録音

において右クリック  > 「無効なデバイスの表示」 をチェック。

ステレオミキサーを右クリックして有効にする。自分の PC での名称は `SoundMAX’ だった。

CropperCapture[27]

このステレオミキサーの プロパティ > レベル の「ステレオミキサー」の値を適当に大きくしておく。

 

4. 再生デバイスの設定

次に再生デバイスを USB スピーカーから変更する。

  • コントロールパネル > サウンド > 再生

において、上記ステレオミキサーと同じサウンドデバイスのスピーカーを既定値に設定。先ほど述べたように、自分の PC では `SoundMAX‘ 。

CropperCapture[28]

 

5. VSTHost

音声にエフェクトをかけるための環境としては VSTHost を利用する。

先ほどの全体図と自分の環境を対応させると、以下のようになる。

CropperCapture[26]

VSTHost のメニューより「Devices > Wave...」。入出力のデバイスを設定。

  • Input port : MME: ステレオミキサー (SoundMAX Int
  • Output Port: MME: スピーカー(4-USB Audio DAC

CropperCapture[29]

ただし、自分の PC では 「DS: ステレオミキサー、スピーカー」 を選択した場合は音が出なかった。

 

設定値の自動保存

各種設定値を変更したときに自動的に保存し、起動したときに保存した値がロードされるように、以下の項目にチェックを入れておく。

メニューより、

  • Plugin
    • Autosave Bank
    • Reload Bank
  • Performance
    • Autosave
    • AutoSave PlugIn Banks

 

優先度の設定

VSTHost の優先度を設定しておく。これは、自分の環境に合わせて調整した方が良い。

  • メニューより、Engine > Configure… > Priorities

Process : High, UIThread: Above Normal, Audio Thread: Above Normal としておいた。

img_0055

優先度が高いと、他のアプリケーションに影響を与える。また、逆に Normal だと音が飛ぶことがある。

 

6. イコライザー (プラグイン) の設定

イコライザーは VSTHost のプラグインとして、「Free VSTe Plugins 《VST Effects イコライザー・フィルター》」 で紹介されていた TENTION Digital Audio の 「TDAe EQ2008S」 を使った。 理由はシンプルで使いやすそうだったから。

Download the latest Version より最新のものをダウンロードして解凍すると、以下の DLL ファイルが見つかる。

  • TDAe EQ2008S.dll

VSTHost においてメニューの File > New Plugin… より上記 DLL を指定して読み込む。(もしくは D&D)

下図のようにイコライザーを配線する。

CropperCapture[30]

パラメータを編集するために、プラグイン右上のアイコン CropperCapture[30][5] をクリック。

左右パラメータの値を同じ値に設定するために、中央右の `LINK’ ボタンを押した後、適当にイコライザーを調整した。

CropperCapture[31]

 

7. ASIO4ALL で音声の遅延を改善

これで一応音声にイコライザーをかけることができるようになった。しかし、動画を見ると音声が映像に対して遅れている。これを改善するための規格が ASIO 。

【テクニカル用語】ASIOドライバって何? - [DTM・デジタルレコーディング] All About によると、

このASIOというのは「アジオ」と読むのですが、正確には
Audio Stream Input Output の略で、オーディオドライバの規格なのです。...

Windowsでは従来よりMMEドライバDirectSoundドライバという2つが存在していました。

MMEドライバというのは、Windowsのごく標準のドライバを指しており、コントロールパネルのマルチメディアを開いて扱える通常のオーディオドライ バのことを意味しています。このMMEというのはMultiMediaExtentionの略であり、もうあまり聞かなくなりましたが元々は Windows3.0時代にWindowsの拡張用として登場したマイクロソフトの規格なのです。

またDirectSoundドライバはその後に登場したDirectXという一連の技術の中のDirectSoundに対応しているドライバです。さらに、現在のWindowsではWDMドライバというものも登場しており、ちょっと複雑な状況にあります。

PCオーディオを始めよう(その1)~「オーディオインターフェイス」を用意しよう!

PC が扱う音楽ファイルには様々な種類があります。しかし、実際にPCを操作していてその様な違いを意識することはほとんどありません。何故な ら、Windowsでは音声データは全て「カーネルミキサー」と呼ばれるところを通過するように設計されていて、その「カーネルミキサー」においてビット 数やサンプリングレートの違いなどを吸収しているからです。 ...

基本的にPCは音楽再生に特化したツールではありません。ですから、「カーネルミキサー」に音楽再生にも耐えられるほどのクオリティを期待するの は無理です。... PCオーディオを志すものにとっては、「カーネルミキサー」はどんなことがあっても迂回しないといけないのです。

... その心強い味方が「ASIOドライバー」と呼ばれるものなのです。...
何をするのかと言えば、... Windowsの「カーネルミキサー」をパスして、音楽のデジタル情報を速やかにパソコンの外に送り出してくれるということに尽きます。

この ASIO という規格に対して、ASIO4ALL というものがあり、

ASIOドライバーのないオーディオインターフェイスをASIO対応にできるソフト。WDMドライバーで動作しているオーディオインターフェイスを、ASIOドライバーで動作させることが可能

(窓の杜 - asio4all より)

ということで、ASIO4ALL - Universal ASIO Driver より ASIO4ALL 2.10 - English をダウンロードしてインストール。

追記(2014/10/19): もし、インストールできない場合、Comodo ファイアウォール が影響している。その場合、誤ってブロックしたアプリケーションを許可。または、再起動した後、インストールを許可する。

 

VSTHost のデバイスの設定

CropperCapture[32]VSTHost のメニューにおいて、再び「Devices > Wave...」

  • Output Port: ASIO: ASIO4ALL v2

に変更する。

 

全体として下図のような構成になるのかな?

CropperCapture[43]

 

ASIO4ALL の設定

次に、同じく VSTHost のメニューより「Devices > Asio Control Panel…」

ASIO4ALL の設定ダイアログが表示されたら、右下のレンチのアイコンをクリックして、Advanced Option を表示させる。

下図のように、これまでに設定した入出力のサウンドデバイスを選択。

  • SoundMAX Integrated Digital HD Audio
    • SoundMAX HD Auido I
  • USB Audio DAC

CropperCapture[42]

この設定により音声の遅延がなくなった。音が出ない場合は、一度 VSTHost を再起動すると良い。

以上で Olasonic TW-S7 の高音域を抑えることができるようになった。 ^^

追記 (2011.2.11) : ASIO4ALL の設定をして音が出ない場合は、一度 VSTHost で ASIO4ALL を使わないときの設定をし、音が出るのを確認してから再度 ASIO4ALL に戻すと良い。

 

参考サイト

3コメント:

Hugme さんのコメント...

はじめまして。私と同じことに悩んですでに解決されているようで、とても為になる記事です。ありがとうございます。当方ノートパソコン所有で記事に関連して分からないことがあるので、お助けいただけますでしょうか。設定にしたがってASIOドライバを導入し、Olasonicのスピーカーから音が出るようになりましたが、遅延を解消できないようです。ASIOドライバの設定は、デバイス選択のほかにどんな設定が必要でしょうか。

Jute Memo さんのコメント...

その他には、ASIO Buffer Size を変更したくらいです。
自分の環境では、長いこと音楽を再生していると、徐々に音が遅延します。
そういう場合、VSTHost のメニューより、Engine > Restart を選択して対処してます。

匿名 さんのコメント...

はじめまして。PC全体にイコライザをかけたいと思いチャレンジしてみましたが音は出ましたが2秒ほど遅延があり動画などでは使えず、ASIOを試してみたいと思いoutput portをASIOに設定してみたのですが入力側のバーが振れていなく音が出ませんでした。UA-25というのを使っているのですが分かるようであれば教えて下さい。