CRI ADX  Last Updated: 2026-05-28 14:38 p
CriAtomExAsr/CriAtomAsrについて
CriAtomExAsr/CriAtomAsr は ASR(Atom Sound Renderer)にアクセスするためのAPIです。
ASR(Atom Sound Renderer)はソフトウェア実装のサウンドレンダラモジュールです。 マルチチャンネルミキシング、リサンプリング、フィルタ、エンベロープ、 バスセンドルーティング、リバーブやエコーといったDSPエフェクト等の機能を有し、 柔軟で強力なサウンドレンダリングを実現します。
ASRは以下のサブモジュールを持っています。

ASRラック

ASRラックはミキサー1つと対応付けられるモジュールで、複数のバスを保持しています。
各バスに入力された音声をレンダリングして、出力バスからサウンドデバイスに出力します。
Atomライブラリの初期化時にデフォルトラックとして1つ作成されます。
またACFファイルを適用した際、AtomCraftで作成した ミキサー のうち、 デフォルトミキサー がデフォルトラックにアタッチされます。

ミキサーの運用方式

ミキサーをアタッチした際の挙動は、ミキサーの運用方式によって異なります。 詳細は「 ミキサーの運用方式について 」をご確認ください。
ミキサー Version2 では、1つのミキサーで複数の出力バスを使用できますが、 ミキサー Version1 では、単一の出力バスしか使用できません。
そのため、ミキサー Version1 で複数の出力バスを使用する場合は追加のASRラックを作成する必要があります。
追加のASRラックの詳細は、「 ミキサー Version1 における特記事項 」をご確認ください。
ミキサー Version2 をアタッチすると、AtomCraftで設定した出力バスの設定が適用されます。
詳細は「 出力バス 」をご確認ください。
ミキサー Version2 を使用しない場合の出力バスの設定方法は、「 ミキサー Version1 における特記事項 」をご確認ください。

ASRボイス

デコーダーから受け取ったPCMデータに対し、ボイスの信号処理を行った後バスへの出力を行うモジュールです。
ボイスプールで確保されるボイスの内部モジュールです。
モジュール機能
  • プリディレイ
    再生リクエストしてから実際に再生されるまでのディレイを制御します。
  • リサンプリング
    レンダラーと異なるサンプリング周波数の音声が入力されたとき、合うようにサンプリング周波数を変換します。
    また、ピッチパラメーターが指定された際にも使用されます。
  • インサーションDSP
    タイムストレッチ等のエフェクトを追加することができます。
  • バイクワッドフィルタ
    フィルタタイプを選ぶことができるイコライジング用途のフィルタです。
  • バンドバスフィルタ
    カットオフ周波数を低域と高域に指定することができるフィルタです。
  • エンベロープコントローラー
    Attack,Hold,Decay,Sustain,Releaseといったエンベロープを制御します。
  • チャンネルストリップ
    複数のバスへPCMデータを出力します。
使用方法
CriAtomExVoicePoolHnCriAtomPlayerHn を作成する際、コンフィグの sound_renderer_type に CRIATOM_SOUND_RENDERER_ASR を指定することで内部でASRボイスが作成されます。
現行機種のデフォルトのサウンドレンダラータイプはすべてCRIATOM_SOUND_RENDERER_ASRです。
API
ASRボイスに直接アクセスするためのAPIは存在しません。
基本的には CriAtomExPlayer APICriAtomExPlayback API を経由して行います。

バス

複数のASRボイスやバスから音声信号を入力しサブミックスを行います。
その後、そのサブミックスの結果に対しDSPエフェクト処理を実行します。
最後にチャンネルストリップとバスセンドルーターに従い、他のバスへ音声信号を出力します。
モジュール機能
  • サブミキサー
    ASRボイスや別のバスから送られてきたPCMデータをミックスします。
  • DSPエフェクトチェーン
    最大8個までのDSPエフェクトを実行します。
  • チャンネルストリップ
    複数のバスへPCMデータを出力します。
  • レベル測定器
    バスを通る音声のピークとRMSを計測します。
使用方法
criAtomEx_AttachDspBusSetting を呼ぶことでまとめて作成されます。
API
バスにアクセスするためのAPIは以下の通りです。
criAtomExAsr_SetBusVolume バスのボリュームの設定
criAtomExAsr_SetBusMatrix バスのレベル行列の設定
criAtomExAsr_SetBusSendLevel バスのセンドレベルの設定
criAtomExAsr_AttachBusAnalyzerByName バスにレベル測定機を追加
criAtomExAsr_GetBusAnalyzerInfoByName バスのレベル測定結果を取得
criAtomExAsr_DetachBusAnalyzerByName バスのレベル測定機を削除

DSPエフェクト

サウンドに対して様々なエフェクトを掛けることができるモジュールです。
1つのバスに8個まで取り付けることができます。
ASRが使用できるDSPエフェクトは以下の通りです。

空間系

イコライザ系

周波数系

モジュレーション系

音圧制御系

歪み系

ルーティング系

使用方法
AtomCraftでミキサーのバスに対してエフェクトを設定できます。詳細は「 エフェクトの追加 」をご確認ください。
ASRラックにミキサーをアタッチすると、エフェクトが適用されます。
デフォルトラックの場合は デフォルトミキサー が自動的にアタッチされるため、API呼び出しは不要です。
別のミキサーをアタッチする場合は、 criAtomEx_AttachDspBusSetting を使用します。
API
DSPエフェクトにアクセスするためのAPIは以下の通りです。
criAtomExAsr_SetDspParameter DSPパラメーター設定
criAtomExAsr_SetDspBypass DSPバイパス設定
criAtomEx_AttachDspBusSetting ミキサー(旧DSPバス設定)をアタッチ
criAtomEx_DetachDspBusSetting ミキサー(旧DSPバス設定)をデタッチ

ミキサー Version1 における特記事項

ミキサー Version1 では出力バスを1つしか使用できないため、追加のASRラックを作成する必要があります。
本項では、以下の3点について説明します。
  • 出力バスの設定方法
  • 追加のASRラックの作成方法
  • 追加のASRラックで使用するAPI

出力バスの設定方法

設定項目は以下の通りです。
  • スピーカーマッピング
  • 出力チャンネル数
  • サウンドレンダラータイプ
スピーカーマッピングは出力バスのチャンネル構成を示します。
出力チャンネル数はミキサーのレンダリング結果を出力に渡す際のチャンネル数を設定します。
サウンドレンダラータイプは出力バスのサウンドレンダラの種別を指定します。
デフォルトラックの場合、Atomライブラリの初期化時に出力バスの設定が可能です。
追加のASRラックの場合、 criAtomExAsrRack_Create 関数に渡す CriAtomExAsrRackConfig 構造体で出力バスの設定が可能です。
スピーカーマッピング、出力チャンネル数の設定について
デフォルトでは出力チャンネル数は各プラットフォームの標準的なチャンネル数に設定されています。 また、スピーカーマッピングには CRIATOM_SPEAKER_MAPPING_AUTO が設定されており、出力チャンネル数に応じた値が自動的に設定されます。
スマートフォンでの出力チャンネル数はデフォルトで2chとなっており、スピーカーマッピングに CRIATOM_SPEAKER_MAPPING_AUTO が設定されている場合、内部的には CRIATOM_SPEAKER_MAPPING_STEREO が指定されます。
一部エフェクト(ヘッドホンバーチャルサラウンド、マルチタップディレイ、サラウンダーなど)を使用する場合、スピーカーマッピングで CRIATOM_SPEAKER_MAPPING_5_1CRIATOM_SPEAKER_MAPPING_7_1 を設定する必要があります。
その為、スマートフォンで当該エフェクトを使用する場合はスピーカーマッピングに CRIATOM_SPEAKER_MAPPING_5_1CRIATOM_SPEAKER_MAPPING_7_1 を指定してご利用ください。
なお、出力チャンネルに対してレンダリングされた音声のチャンネル数が大きい場合はダウンミックスされます。

追加のASRラックの作成方法

criAtomExAsrRack_Create を使って作成します。
この関数に渡す CriAtomExAsrRackConfig 構造体で出力バスの設定が可能です。
追加で作成したASRラックにミキサーをアタッチしない場合も、出力バスは MasterOut に限られます。

追加のASRラックで使用するAPI

追加で作成したASRラックにアクセスするためのAPIは以下の通りです。
引数で求められる rack_id には criAtomExAsrRack_Create の戻り値で得られた CriAtomExAsrRackId を指定してください。
criAtomExAsrRack_Create ASRラック作成
criAtomExAsrRack_Destroy ASRラック破棄
criAtomExAsrRack_SetBusVolume ASRラック内のバスのボリュームの設定
criAtomExAsrRack_SetBusMatrix ASRラック内のバスのレベル行列の設定
criAtomExAsrRack_SetBusSendLevel ASRラック内のバスのバスセンドの設定
criAtomExAsrRack_AttachBusAnalyzerByName ASRラック内のバスにレベル測定機を追加
criAtomExAsrRack_GetBusAnalyzerInfoByName ASRラック内のバスのレベル測定結果を取得
criAtomExAsrRack_DetachBusAnalyzerByName ASRラック内のバスのレベル測定機を削除
criAtomExAsrRack_SetDspParameter ASRラック内のDSPパラメーター設定
criAtomExAsrRack_SetDspBypass ASRラック内のDSPバイパス設定
criAtomExAsrRack_AttachDspBusSetting ASRラックにミキサー(旧DSPバス設定)をアタッチ
criAtomExAsrRack_GetAttachedDspBusSettingName ASRラックにアタッチ済みのミキサー(旧DSPバス設定)の名前取得
criAtomExAsrRack_DetachDspBusSetting ASRラックのミキサー(旧DSPバス設定)をデタッチ