今回はどんなサウンドデバイスも(とは断言できないが)バーチャルサラウンドに対応させる方法を取り上げようと思う。
後述するソフトの設定や特性上、GSX1000のような使い方になったので疑似GSX1000化とも言えるかもしれない。
ただし、手元のGSX1000実機と比べるとやはり違うのであくまでも疑似的なものだとお断りしておこう。
(Windows10の立体音響では再生デバイスがステレオと認識される問題をクリアできないのでパス)

使用するものは
・お手持ちのサウンドデバイス … ステレオであればなんでも良い。オンボードでも良い。
・VB-Cable … 7.1chと認識される仮想デバイスを追加する
・EqualizerAPO … 特定のデバイスに様々な音響効果を付与する
・HeSuVi … EqualizerAPOをサラウンド処理に特化させる
・VBRedirect (自前のソフト) … VB-Cableへの出力を他のデバイスへ転送する (記事内にダウンロードリンクあり)

流れとしては以下。
①VB-Cableのインストール
②EqualizerAPOのインストール
③HeSuViのインストール
④各設定の変更
⑤VBRedirectのインストール
⑥仕上げの設定

●注意事項
ドライバやAPO周りの変更を行うので作業は失敗を覚悟の上で自己責任で。
既にVB-Cableを使用している環境では問題が発生するので諦めること。
使用するソフトの制限からWindows10 64bit以外では動作しない
ヘッドホン用バーチャルサラウンドなのでスピーカーではイマイチ。

●構成図
上記ソフトを使用して下図のような構成に仕上げる。
img180411_09.png


①VB-Cableのインストール
VB-Cableは再生と録音にそれぞれ1つの仮想デバイスを追加するソフト。
再生側のVB-Cableに音声を流すと録音側のVB-Cableでそれを取り出すことができる。
7.1chとして認識される上にAPOも付与できるので手持ちのデバイスのチャンネル数やソフトを気にしなくていい。
ここからダウンロードしたzipファイルを解凍し、VBCABLE_Setup_x64.exeを右クリック、「管理者権限として実行」を選ぶ。
(64bit版ではなぜかインストーラーに管理者実行属性がついていないため)
インストーラー画面右下の大きな[Install Driver]ボタンを押すとインストールがはじまる。
完了すると「仕上げに再起動してね!」的なメッセージボックスが出るものの今はそのまま続ける。
解凍したファイルの中にあるVBCABLE_ControlPanel.exeを実行してメニューのOptionから48000Hzを選んでおく。
このメニューの中には遅延の設定もあり、smp数を少なくするほど遅延が小さくなっていく。
環境によって選ぶ数字が変わってくるのでよくわからない場合は触らなくていい。
たぶん録音側デバイスへPCM転送するときの遅延だと思うからいじる必要はなさそうだが・・・
img180411_10.png
「再起動後に有効になるよ!」的なメッセージが出るがスルーして次の作業へ。


②EqualizerAPOのインストール
EqualizerAPOは指定したサウンドデバイスに音響処理のためのAPOを付与する。
HeSuViを使用するので設定をいじることはないけど、OS標準ドライバで動作するサウンドデバイスの味付けに便利。
VSTプラグインが使用できるので音の加工はほぼなんでもできると言ってもいいかもしれない。
ここからダウンロードしたexeファイルを実行し、インストール画面を進めていく。
インストール先などはすべて標準のままで以下の画面まで進める。
EqualizerAPO
一覧からCABLE Input VB-Audio Virtual Cableを探してチェックマークを付ける。
既存のAPOを上書きするので他のデバイスに適用しないよう注意。Capture devicesのタブは触れなくていい。
OKを押して完了すると「設定ツールでいじれるからよろしく!」的なメッセージボックスが出るが問題ない。


③HeSuViのインストール
HeSuViはEqualizerAPOでバーチャルサラウンドを実現する設定セットのようなもの。
インストールするとEqualizerAPOの設定が上書きされる。なのでEqualizerAPOの設定を直接いじる必要がない。
HeSuViには多くのバーチャルサラウンドのインパルス応答データ(※)が収録されていて自分の好みに合わせて
選択することができる。例えばCreativeのSBXやDTS Headphone:X、Dolby Headphoneなど。
(※インパルス応答データは乱暴に言うと音の変換テーブルのようなもの)
ここからダウンロードしたexeファイルを実行し、インストール画面を進めていく。
これもインストール先は標準のままでOK。インストールが終わると勝手に設定画面が出るが、今は閉じてしまおう。


④各設定の変更
まずは一旦再起動する。
再起動後、タスクトレイのボリュームコントロールを右クリックしてメニューから再生デバイスを選択。

Playback Devices
CABLE Input(VB-Audio Virtual Cable)を「既定のデバイス」に、転送先のデバイスを「既定の通信デバイス」に設定。

7.1 Surround
更にCABLE Input(VB-Audio Virtual Cable)を選択した状態で「構成」ボタンを押し、「7.1 サラウンド」にする。
このときスピーカーの種類ごとにチェックボックスがいろいろ出てくるが、すべてチェックを入れた状態でいい。
逆に「既定の通信デバイス」となる転送先のデバイスはステレオにしないといけない。

VB-Cable Property
同項目のプロパティを開き、[詳細]タブの中の既定の形式を「16ビット、48000Hz (DVDの音質)」にしてOKしておく。
他のフォーマットでの動作テストを忘れていたので念のためVB-Cableと揃えておく。

Communication device
プロパティを閉じたあとサウンド設定の右端にある[通信]タブを選択し、「何もしない」を選ぶ。
⑤をインストールするまではまだ音は出ない。


⑤VBRedirectのインストール
このソフトはVB-Cableへの出力を「既定の通信デバイス」へ転送し、VB-Cableデバイスのボリュームコントロールを
転送先とシンクロさせる。Windowsサービスとしてバックグラウンドで動作する。
「既定の通信デバイス」を使う仕様からDiscordやSkypeからの音声はVB-Cableを通らない。
なのでバーチャルサラウンドの効果がボイスチャットに乗らず音響的に分離してくれるはず。
(この仕様はGSX1000と同じで後述の設定で音も似せることができることから冒頭で疑似GSX1000化と表現したよ)
ここからダウンロードしたファイルをどこかちゃんとした場所(例えばC:\Program Files\VBRedirectなど)に展開する。
中のInstall.batを右クリック、「管理者権限として実行」を選ぶ。これでサービスの登録は完了。
展開したファイルはそのままにすること。
VBRedirectの作成にあたってWASAPIの自動フォーマット変換を採用したためWindows10以外では動かない・・・と思う。
仮想マシンでテストはしたものの、環境によっては動作しない可能性もあるのでそのときは「猿ちぃ」などの録音から再生へ
リダイレクトするソフトで代用してほしい。



⑥仕上げの設定
⑤までインストールできた段階で音がでるようになったので、ここからバーチャルサラウンドそのものの設定をする。
HeSuViのインストール先がデフォルトのままなら
C:\Program Files\EqualizerAPO\config\HeSuVi\HeSuVi.exe を実行する。
何度も実行して調整することになると思うのでデスクトップにショートカットを作っておくといいかもしれない。

HeSuVi Setting1
左上の赤枠部分がバーチャルサラウンドの種類。いろんな機種から集めたインパルス応答データ一覧。
どれを選ぶかで聞こえ方がまるで違うのでゲームや映画を再生しつつ自分好みの設定を見つけてほしい。
個人的にはシンプルなgsx-.wavがオススメ。

HeSuVi Setting2
右上のこの部分がイコライザ。最初はバーがない空の状態なので、赤枠の[+]ボタンを押すことでバーを追加できる。
バーの下には対応する周波数が自由に設定できる。10バンドイコライザであれば画像のとおり10本のバーで
31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 16000 となる。
これらのバーを動かすことで低音を強化して迫力をあげたり足音を聞き取りやすくしたりといった音の成分ごとの
強弱を調整することができる。音楽を再生しながら一本のバーを極端に上げ下げするとその変化を感じられるはず。
注意点として一般的なPC用イコライザではバーの1刻みが1デシベルなのに対し、HeSuViのイコライザは1刻みが
0.1デシベルとなっているので他のソフトの設定を持ってくる場合は10倍にしないといけない。


●完了!
以上で全行程が完了。サラウンド対応のゲームや映画で新鮮な体験をしてみてほしい。


●再生テストやインパルス応答のあれこれ
ネット上にあふれる7.1chテストの動画はどれも実際には7.1chではないので注意。
理由は2つで1つは7.1chに対応しているブラウザがごく一部なこと。
もう1つはyoutubeなどの動画サイトは動画がアップロードされた時点で強制的にステレオに再コンバートされること。
一番確実な方法は7.1chのwavやwmaといった録音データをダウンロードしてMPC-BEなどで再生する。
(まちがってもサラウンド非対応なソフトで再生しないこと。ステレオになってしまう。)
ロジクールが公開しているサンプルでもいいけど、個人的にはLogicoolゲームソフトウェアと一緒にインストールされる
「71ChannelCheckSound.wma」が一番テストに向いていると思う。
インパルス応答についてはハード実装のバーチャルサラウンドだと必ずアナログ出力から取り込む必要があるので
オリジナルと同等とはならない可能性があったり、バーチャルサラウンド変換が条件によって動的に変化するタイプの
ものでは応答データで再現できないのであくまでも「それっぽいもの」であることを覚えておこう。


●遅延について
VB-CableやVBRedirectといった音の転送を扱うソフトにはどうしても遅延が存在する。
雑に説明するなら 水が湧き出る泉A(音の発生源) と 水を注ぎ込みたい水田B(出力先) があるとする。
AからBへ水を移すためにはバケツ(バッファ)で汲み取って移し替えるしかない。
小さなバケツだとすぐに汲み取れる(遅延小)が、頻繁にAとBを行き来しないといけないため少しでももたつくと
Bの水が枯れてしまう(音飛び)。そのため一切のリズムを崩さない高い能力が要求される。
大きなバケツだと汲み取るのにやや時間がかかる(遅延大)が、AとBを往復する数は少なくすむので
多少リズムが崩れてもBの水が枯れにくい。
VB-Cableインストール時の設定をふまえてさらに説明すると、サンプリングレートというのは1秒間に
音のデータ(サンプル=smp)をいくつ含むかという数値で、今回採用した48000Hzであれば1秒間に48000個の
データが詰まっていることになる。サンプリングレートが高いほど音を精緻に表現できるが処理するデータも
大幅に増えるので負荷が高くなる。(特にVSTプラグインが重くなる)
そしてVB-Cableの遅延設定にあったsmpはバケツに貯めこめるデータ数のことだ。
今回は48000で1秒なので、デフォルトの7168smpでは149.3ミリ秒=約9フレームの遅延。
最小の512smpだと10.6ミリ秒=1フレーム未満の遅延があることになる。(60fpsとして)

...いや、どうも文字数が多くなりがちだけどここまで読んでくれた方ありがとう&お疲れ様でした。

[2018/07/07]
VBRedirectのファイルを新しいものに差し替えました。
・極端に重い環境下での音ズレを修正

2018.04.12 01:57 | PC | トラックバック(-) | コメント(-) |