Skip navigation.
ホーム
BLOG-ROMMER 日高のブログ

Windows APO と Equalizer APO

2021年後半、Windows APO を開発した。開発を経験して今まで知らなかった事を少し理解して来たので、何回かに分けて記事を書く。Windows APO (オーディオ処理オブジェクト Audio Processing Objects) は、あらゆる Windows Audio を処理するカスタマイズ可能なミドルウェア(群)である。実体は COM のDLLであり、ユーザーモードのドライバーでもある。ユーザーが指定、あるいはアプリケーションが指定して、またははより低位(物理層)のオーディオデバイスドライバーが指定して、オーディオ関連処理を実行することが出来る。

既定のAPO

低音処理や仮想サラウンドなどの一般的な機能は、Windows の既定のAPO として実装されていて、INFで指定して低位のドライバーと組み合わせて利用出来る。以下は既定のAPOの設定UIパネルの例である。

ベンダー提供APO

ゲーム用オーディオヘッドセット等のゲームギアや、高品質サウンドカードなどのオーディオに特化したハードウェアを提供するメーカーでは、Windows ドライバーとともに自社製品の性能を発揮させるためのAPOを用意することが多い。

以下は Realtek社のベンダー提供APOの設定UIパネルの例である。

Equalizer APO

さらには OSS でオーディオデバイス汎用で使える、イコライザーや各種オーディオバンドフィルターやプラグインを提供する次の Equalizer APO が有名かつ分かり易い。

この操作画面が示す通り、直感的に操作可能なバンドイコライザーや各種フィルターを備えるほか、VSTプラグインも利用できる。

インストールは簡単で、以下の Equalizer APO のページで Download ボタンをクリックして、EqualizerAPO64-1.2.1.exe ファイルを入手、実行するだけである。

インストール時、次の様に Equalizer APO を適用する物理デバイスを選択する。後で変更可能だ。

インストール後、再起動で利用可能だ。C:\Program Files\EqualizerAPO 以下の Editor.exe を起動して、15チャンネルグラフィックイコライザーを設定できる。

APO の開発

個別対応などのカスタム APO の開発は敷居が高い。公式情報は以下の DOCS ページと、WDK サンプル sysvad だけだ。
4種ある APO サンプルの中では、下記
オーディオ処理オブジェクトの実装
で解説の、出力デバイス用 SwapAPO のコードが分かり易い。

DOCS 参考文献

日本語ページは機械翻訳がおかしいので、英語ページを合わせて参照することをお勧めする。

他の参考情報

APO 部分だけを実デバイスとは切り離して実装するという、Equalizer APO と同様の実装方法については、以下の フラチキさんブログ の方法が動作することを確認した。sysvad に含まれる コンポーネント APO も同様に APO 単体での実装を狙ったもののようだが、現在のところこのサンプルだけでは動作しない。