Windows Audio Session API 規格 (WASAPI)について
SoundID Reference の Virtual Windows オーディオドライバ(WASAPI モード)が Windows 環境にどのように適合するかを理解するために、Windows における WASAPI 標準の基本を知っておくことが役立ちます。
すべてのデフォルトのオーディオアプリケーションにおいて、Windows はオーディオインターフェース標準規格として Windows Audio Session API (WASAPI) を利用しています。WASAPI は Windows マシン上におけるオーディオストリームのルーティング、制御を担います。つまり、あらゆるオーディオ再生アプリケーションからのオーディオ信号が、Windows オーディオエンジンによって処理され、コンピュータに接続されたオーディオインターフェースなど出力デバイスへと送出されます。
SoundID Reference(WASAPI モード)をこのフローに加える場合、SoundID Reference 仮想オーディオデバイスが Windows オーディオエンジンから送られてくるオーディオ信号を処理、SoundID Reference アプリがキャリブレーションされた信号を再び Windows オーディオエンジンに戻すことで、出力デバイスへと届けられます。
このドライバタイプは、システム全体のキャリブレーション=システムワイドの補正に最も適しています。おおよそのレイテンシのパフォーマンスは 40~160ms となります。なお、このドライバタイプは、WDM ドライバを持たない ASIO 専用デバイスでは動作しません。
Virtual Windows ドライバのセットアップ
SoundID Reference アプリを起動し、出力デバイスを追加して、アプリがオーディオ信号処理に使用するドライバタイプを選択します。
1. Add new output をクリック。
2. Device type: WASAPI を選択。
3. リストからお使いのオーディオインターフェースを選択。
4. Driver type: Virtual Windows audio driver を選択。
5. キャリブレーションプロファイルをロードします。
なぜ WASAPI モードで仮想オーディオデバイスが必要なのか?
WASAPI モードでオーディオキャリブレーションを処理するために、SoundID Reference はコンピュータ上に仮想オーディオデバイスを作成します。これには以下の理由があります。
- オーディオ信号処理: キャリブレーションを適用するため。
- システム全体への適用: コンピュータ上のすべてのオーディオソースのサウンドを調整するため。
- 二重処理の防止: サウンドが一度だけキャリブレーション処理されるようにします。SoundID Reference の前段で他のソフトウェアが音を修正してしまう問題を回避できます。
- 互換性: 多くのオーディオ再生ソフトウェアに対し適正に動作するため、普段使うミュージックプレイヤーやブラウザ、 DAW にも使用できます。
- 物理的制限をバイパス: オーディオデバイス(ヘッドホンやスピーカー)に送信される前にサウンドのキャリブレーションが可能です。
サンプルレート
WASAPI モードにおけるサンプルレートについては、SoundID Reference アプリは独自の内部サンプルレートで処理・動作するため、出力デバイスのサンプルレート設定と一致させる必要があります。
WASAPI モードでの動作中、SoundID Reference アプリ内でサンプルレートを調整することはできません。変更は、デバイスのコントロールソフトウェアや物理スイッチを使用するなど、出力デバイス(オーディオインターフェース)側で行う必要があります。変更はSoundID Reference で自動的に出力デバイスの設定として反映されます。
サンプルレート設定は、以下の「Device Settings」メニューで確認できます。
1. 左側の出力パネルでお使いのデバイスに移動します。
2. ⋯ メニュー > Device settings をクリックします。
3. Sample rate ボックスをクリックして値を確認します。
ご注意: 以下の状況ではサンプルレートが変更できない、あるいは適用されない場合があります:ハードウェアやドライバの制限、アプリケーションによる独占的な制御(排他モード)、オーディオの再生中、または複数のプログラムで共有されている場合。
バッファサイズ
WASAPI モードでは、SoundID Reference は出力デバイスのバッファサイズとは別に、アプリ内の「Buffer Size」設定で定義された独自の内部バッファを使用して信号を処理します。この場合、両者は別々のデバイスと機能で動作するため、WASAPI モードのバッファサイズを出力デバイスの設定と一致させる必要はありません。
バッファサイズは、SoundID Reference アプリが一度に処理できるオーディオデータの量を表します。これは以下の2点に影響します。
- レイテンシー: 音の反応の速さ。バッファが小さいほど反応は速くなりますが、より多くの CPU パワーを必要とします。
- CPU負荷: コンピュータの負荷。バッファが大きいほど、コンピュータは余裕を持ってオーディオを準備できるため負荷は軽くなりますが、反応は遅くなります。
SoundID Reference アプリ内の Device settings > Buffer size からバッファサイズを変更することができます。
セーフティバッファサイズ
通常のバッファサイズ設定に加え、WASAPI モードでは「セーフティバッファ」の調整が可能です。これは、音にノイズ(アーティファクト)が発生したり、クロックのずれが生じたりする場合に役立ちます。システムが高負荷な場合や中断が発生する場合でも、スムーズな再生を確保するために調整します。
1. SoundID Reference アプリを開く
2. 左側の出力パネルでお使いのデバイスに移動します。
3. ⋯ メニュー > Device settings をクリックします。
4. Safety buffer size ボックスをクリックして値を変更します。
注意! セーフティバッファのパフォーマンスと効果は、通常の「Buffer Size」設定に依存します。一律に最適な設定というものはなく、最大値に設定しても問題が解決しない場合があります。最適な値を見つけるには、まず希望の通常バッファサイズを設定してから、セーフティバッファを最小から順に試していくことをお勧めします。
- 必要なまたはより適したバッファサイズを設定する
- 最小から最大まで、異なるセーフティバッファの値を試す
- 通常のバッファサイズが変更された場合は、再度異なるセーフティバッファ値を試す
参照元情報