CRI ADX  Last Updated: 2024-11-26 16:51 p
バイノーラル再生
バイノーラル再生は、サラウンドスピーカー向けに用意されたマルチチャンネル音声やAmbisonics、オブジェクトベースオーディオ等を、ステレオヘッドホン環境で疑似的に再現する技術です。
通常、ステレオにダウンミックスされた音声をヘッドホンで聴いても、音源は両耳間にしか定位しません。しかし、バイノーラル再生では頭部伝達関数(HRTF)などのアルゴリズムを用いて、前後左右上下の定位を疑似的に再現します。これにより、リスナーが音に囲まれているかのような感覚を作り出すことが可能となります。
CRI ADXはバイノーラライザーというバイノーラル処理を行うモジュールを搭載しており、ADXで再生する音声をバイノーラル再生することができます。
この処理は全てADXの中で行われるため、マルチプラットフォームでも同じ出音が維持されます。

バイノーラライザーの切り替え

ADX内のバイノーラライザーは、 criAtomExAsr_EnableBinauralizer 関数を実行することで有効・無効を切り替えます。
この切り替えは、ライブラリー内の全てのバイノーラライザーに一律に適用されます。また、音声再生中でも切り替えが可能です。
注意
現行のバイノーラライザーは、ステレオヘッドホン環境を想定した信号処理を行います。そのため、ユーザーがスピーカー経由で音声を出力している場合、意図した効果が得られません。
バイノーラライザーの有効・無効を切り替える場合には、アプリケーションで再生環境の情報を取得するか、またはアプリケーションの設定UIでユーザーに機能の有効・無効を選択させるといった対応が必要となります。

立体音響のバイノーラル再生

ADXで再生するチャンネルベース、Ambisonics、オブジェクトベースの音声は、全てバイノーラル音声として再生可能です。

チャンネルベース

チャンネルベースの音声をバイノーラル化すると、仮想的なスピーカーの位置から聞こえるように再生されます。
バイノーラル処理そのものは常にスピーカーの数分だけ行われるため負荷が安定する一方、音源の位置とスピーカー配置によっては定位感が弱くなる恐れがあります。
メイン出力のASRでバイノーラル再生を行いたい場合、ライブラリ初期化時に CriAtomExAsrConfig::sound_renderer_type に ::CRIATOM_SOUND_RENDERER_SPATIAL を指定する必要があります。
一方、CRI Atom Craft で専用のミキサーを作成するように設定したデータを再生する場合、この操作は不要です。
(サウンドレンダラタイプに ::CRIATOM_SOUND_RENDERER_SPATIAL を指定した専用ミキサーが自動的に作成されます。)

Ambisonics

Ambisonicsの音声をバイノーラル再生すると、内部的にチャンネルベースに変換してバイノーラル化されます。
そのため、チャンネルベースと同様に処理負荷は一定です。
CRIATOM_SOUND_RENDERER_AMBISONICS で作成したAmbisonics再生用のASRラックは必ずバイノーラライザーが一緒に作成されます。
バイノーラライザーを有効にすると必ずバイノーラル再生が行われます。

オブジェクトベース

オブジェクトベースで再生した音声は、1音毎にバイノーラル処理が行われます。
チャンネルベースに比べ高精度の結果が得られますが、処理負荷は同時再生数に比例して増加します。
また、 フォールバック再生 した音声はオブジェクトベースではなく、チャンネルベースで再生される点に注意が必要です。
CRIATOM_SOUND_RENDERER_OBJECT で作成したオブジェクトベース再生用のASRラックは必ずバイノーラライザーが一緒に作成されます。
バイノーラライザーを有効にすると必ずバイノーラル再生が行われます。

プラットフォーム機能との関係

一部プラットフォームはエンドユーザーの設定によってOSのバイノーラル処理が加えられる場合があります。
バイノーラル処理を二重で行うのは望ましくないため、ADXがバイノーラル再生を行う際には、プラットフォームのバイノーラル処理が適用されないよう制御されます。
そのため、バイノーラル処理の優先度は常にADXのものが高く設定されています。
例えばチャンネルベースの音声をバイノーラル再生するプラットフォームでは、ADXは以下のように動作します。
  • ADXのバイノーラライザーが有効な場合、プラットフォームより優先的にADXのバイノーラル処理が適用されるため、プラットフォームの処理は回避されます。
  • ADXのバイノーラライザーが無効な場合、ADXは通常のチャンネルベースで再生を行います。その後プラットフォームのバイノーラル処理などがADXとは別に行われます。

Sound xR

ADXにはバイノーラライザーとしてCRI内製のものに加え、ヤマハ株式会社の Sound xR を搭載しています。
Sound xR を使用するためには、Atom Craftから専用のACF・ACBファイルを作成する必要があります。
詳しくは「 立体音響 」を参照してください。

ネイティブで Sound xR を有効化する場合は、ライブラリの初期化前に criAtomExAsr_RegisterSoundxRInterface 関数で Sound xR プラグインインターフェースを登録してください。
Sound xR プラグインインターフェースは ::criSoundxR_GetInterface 関数で取得することができます。
詳しくは「 criatom_samples_oba_playback 」のサンプルをご確認ください。