CriAtomExAsr API


モジュール

 ASRバスエフェクトのパラメーター

構成

struct  CriAtomExAsrConfigTag
 ASR初期化用コンフィグ構造体 [詳細]
struct  CriAtomExAsrBusAnalyzerConfig
 レベル測定機能アタッチ用コンフィグ構造体 [詳細]
struct  CriAtomExAsrRackConfigTag
 ASRラック作成用コンフィグ構造体 [詳細]

マクロ定義

#define CRIATOMEXASR_MAX_CHANNELS   (8)
 最大チャンネル数
#define CRIATOMEXASR_DEFAULT_NUM_BUSES   (8)
 デフフォルトのバス数
#define CRIATOMEXASR_MAX_BUSES   (64)
 最大チャンネル数
#define CRIATOMEXASR_RACK_DEFAULT_ID   (0)
 デフォルトASRラックID
#define CRIATOMEXASR_RACK_ILLEGAL_ID   (-1)
 不正なラックID
#define CRIATOMEXASR_MAX_NUM_USER_EFFECT_INTERFACES   (256)
 ユーザ定義エフェクトインターフェースの最大登録数
#define CRIATOMEXASR_AMPLITUDE_ANALYZER_NAME   "CRIWARE/AmplitudeAnalyzer"
 振幅解析器のエフェクト名
#define CRIATOMEXASR_BUS_BUFFER_POOL   "CRIWARE/BusBufferPool"
 バス・バッファープールのエフェクト名
#define CRIATOMEXASR_BIQUAD_FILTER_NAME   "CRIWARE/Biquad"
 バイクアッドフィルターのエフェクト名
#define CRIATOMEXASR_BANDPASS_FILTER_NAME   "CRIWARE/Bandpass"
 バンドパスフィルター(2次のバターワースフィルター)のエフェクト名
#define CRIATOMEXASR_CHORUS_NAME   "CRIWARE/Chorus"
 コーラスのエフェクト名
#define CRIATOMEXASR_FLANGER_NAME   "CRIWARE/Flanger"
 フランジャーのエフェクト名
#define CRIATOMEXASR_COMPRESSOR_NAME   "CRIWARE/Compressor"
 コンプレッサーのエフェクト名
#define CRIATOMEXASR_LIMITER_NAME   "CRIWARE/Limiter"
 リミッタのエフェクト名
#define CRIATOMEXASR_DELAY_NAME   "CRIWARE/Delay"
 ディレイのエフェクト名
#define CRIATOMEXASR_ECHO_NAME   "CRIWARE/Echo"
 エコーのエフェクト名
#define CRIATOMEXASR_MULTITAP_DELAY_NAME   "CRIWARE/MultiTapDelay"
 マルチタップディレイのエフェクト名
#define CRIATOMEXASR_DISTORTION_NAME   "CRIWARE/Distortion"
 ディストーションのエフェクト名
#define CRIATOMEXASR_I3DL2_REVERB_NAME   "CRIWARE/I3DL2Reverb"
 I3DL2リバーブのエフェクト名
#define CRIATOMEXASR_MATRIX_NAME   "CRIWARE/Matrix"
 マトリクスのエフェクト名
#define CRIATOMEXASR_3BANDS_EQUALIZER_NAME   "CRIWARE/3BandsEQ"
 3バンドイコライザのエフェクト名
#define CRIATOMEXASR_32BANDS_EQUALIZER_NAME   "CRIWARE/32BandsEQ"
 32バンドイコライザのエフェクト名
#define CRIATOMEXASR_PITCH_SHIFTER_NAME   "CRIWARE/PitchShifter"
 ピッチシフタのエフェクト名
#define CRIATOMEXASR_REVERB_NAME   "CRIWARE/Reverb"
 リバーブのエフェクト名
#define CRIATOMEXASR_SURROUNDER_NAME   "CRIWARE/Surrounder"
 サラウンダのエフェクト名
#define CRIATOMEXASR_BIT_CRUSHER_NAME   "CRIWARE/BitCrusher"
 ビットクラッシャーのエフェクト名
#define CRIATOMEXASR_PHASER_NAME   "CRIWARE/Phaser"
 フェーザーのエフェクト名
#define criAtomExAsr_SetDefaultConfig(p_config)
 ASRの初期化コンフィグ構造体にデフォルト値をセット
#define criAtomExAsr_SetDefaultConfigForBusAnalyzer(p_config)
 レベル測定機能コンフィグ構造体にデフォルト値をセット

型定義

typedef enum CriAtomAmbisonicsOrderTypeTag CriAtomAmbisonicsOrderType
 Ambisonics指定タイプ
typedef CriAtomExAsrConfigTag CriAtomExAsrConfig
 ASR初期化用コンフィグ構造体
typedef CriSint32 CriAtomExAsrRackId
 ASRラックID
typedef CriAtomExAsrRackConfigTag CriAtomExAsrRackConfig
 ASRラック作成用コンフィグ構造体

列挙型

enum  CriAtomAmbisonicsOrderTypeTag { CRIATOMAMBISONICS_ORDER_TYPE_NONE = 0, CRIATOMAMBISONICS_ORDER_TYPE_FIRST, CRIATOMAMBISONICS_ORDER_TYPE_1P = CRIATOMAMBISONICS_ORDER_TYPE_FIRST }
 Ambisonics指定タイプ [詳細]

関数

CriSint32 CRIAPI criAtomExAsr_CalculateWorkSize (const CriAtomExAsrConfig *config)
 ASR初期化用ワーク領域サイズの計算
void CRIAPI criAtomExAsr_SetConfigForWorkSizeCalculation (const CriAtomExAsrConfig *config)
 ワーク領域サイズ計算用コンフィグ構造体の設定
void CRIAPI criAtomExAsr_Initialize (const CriAtomExAsrConfig *config, void *work, CriSint32 work_size)
 ASRの初期化
void CRIAPI criAtomExAsr_Finalize (void)
 ASRの終了
void CRIAPI criAtomExAsr_SetBusVolumeByName (const CriChar8 *bus_name, CriFloat32 volume)
 バスのボリュームの設定
void CRIAPI criAtomExAsr_GetBusVolumeByName (const CriChar8 *bus_name, CriFloat32 *volume)
 バスのボリュームの取得
void CRIAPI criAtomExAsr_SetBusPan3dByName (const CriChar8 *bus_name, CriFloat32 pan3d_angle, CriFloat32 pan3d_distance, CriFloat32 pan3d_volume)
 バスのパンニング3Dの設定
void CRIAPI criAtomExAsr_GetBusPan3dByName (const CriChar8 *bus_name, CriFloat32 *pan3d_angle, CriFloat32 *pan3d_distance, CriFloat32 *pan3d_volume)
 バスのパンニング3Dの取得
void CRIAPI criAtomExAsr_SetBusMatrixByName (const CriChar8 *bus_name, CriSint32 input_channels, CriSint32 output_channels, const CriFloat32 matrix[])
 バスのレベル行列の設定
void CRIAPI criAtomExAsr_SetBusSendLevelByName (const CriChar8 *bus_name, const CriChar8 *sendto_bus_name, CriFloat32 level)
 バスのセンドレベルの設定
void CRIAPI criAtomExAsr_SetEffectParameter (const CriChar8 *bus_name, const CriChar8 *effect_name, CriUint32 parameter_index, CriFloat32 parameter_value)
 エフェクト動作時パラメーターの設定
void CRIAPI criAtomExAsr_UpdateEffectParameters (const CriChar8 *bus_name, const CriChar8 *effect_name)
 エフェクト動作時パラメーターの反映
CriFloat32 CRIAPI criAtomExAsr_GetEffectParameter (const CriChar8 *bus_name, const CriChar8 *effect_name, CriUint32 parameter_index)
 エフェクト動作時パラメーターの取得
void CRIAPI criAtomExAsr_SetEffectBypass (const CriChar8 *bus_name, const CriChar8 *effect_name, CriBool bypass)
 エフェクトのバイパス設定
void CRIAPI criAtomExAsr_AttachBusAnalyzerByName (const CriChar8 *bus_name, const CriAtomExAsrBusAnalyzerConfig *config)
 レベル測定機能の追加
void CRIAPI criAtomExAsr_DetachBusAnalyzerByName (const CriChar8 *bus_name)
 レベル測定機能の削除
void CRIAPI criAtomExAsr_GetBusAnalyzerInfoByName (const CriChar8 *bus_name, CriAtomExAsrBusAnalyzerInfo *info)
 レベル測定結果の取得
void CRIAPI criAtomExAsr_SetBusFilterCallbackByName (const CriChar8 *bus_name, CriAtomExAsrBusFilterCbFunc pre_func, CriAtomExAsrBusFilterCbFunc post_func, void *obj)
 波形フィルターコールバック関数の登録
CriSint32 CRIAPI criAtomExAsr_GetNumBuses (void)
 最大バス数を取得
CriBool CRIAPI criAtomExAsr_RegisterEffectInterface (CriAtomExAsrAfxInterfaceWithVersionPtr afx_interface)
 ユーザ定義エフェクトインターフェースの登録
void CRIAPI criAtomExAsr_UnregisterEffectInterface (CriAtomExAsrAfxInterfaceWithVersionPtr afx_interface)
 ユーザ定義エフェクトインターフェースの登録解除
CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSize (const CriAtomExAsrRackConfig *config)
 ASRラック作成用ワーク領域サイズの計算
CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSizeForDspBusSettingFromConfig (const CriAtomExAsrRackConfig *config, const CriChar8 *setting)
 DSPバス設定のアタッチ用ワークサイズの計算
CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSizeForDspBusSettingFromAcfDataAndConfig (void *acf_data, CriSint32 acf_data_size, const CriAtomExAsrRackConfig *rack_config, const CriChar8 *setting)
 DSPバス設定のアタッチ用ワークサイズの計算
CriAtomExAsrRackId CRIAPI criAtomExAsrRack_Create (const CriAtomExAsrRackConfig *config, void *work, CriSint32 work_size)
 ASRラックの作成
void CRIAPI criAtomExAsrRack_Destroy (CriAtomExAsrRackId rack_id)
 ASRラックの破棄
CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSizeForDspBusSetting (CriAtomExAsrRackId rack_id, const CriChar8 *setting)
 DSPバス設定のアタッチ用ワークサイズの計算
void CRIAPI criAtomExAsrRack_AttachDspBusSetting (CriAtomExAsrRackId rack_id, const CriChar8 *setting, void *work, CriSint32 work_size)
 DSPバス設定のアタッチ
void CRIAPI criAtomExAsrRack_DetachDspBusSetting (CriAtomExAsrRackId rack_id)
 DSPバス設定のデタッチ
void CRIAPI criAtomExAsrRack_ApplyDspBusSnapshot (CriAtomExAsrRackId rack_id, const CriChar8 *snapshot_name, CriSint32 time_ms)
 DSPバススナップショットの適用
const CriChar8 *CRIAPI criAtomExAsrRack_GetAppliedDspBusSnapshotName (CriAtomExAsrRackId rack_id)
 適用中のDSPバススナップショット名の取得
void CRIAPI criAtomExAsrRack_SetBusVolumeByName (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, CriFloat32 volume)
 バスのボリュームの設定
void CRIAPI criAtomExAsrRack_GetBusVolumeByName (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, CriFloat32 *volume)
 バスのボリュームの取得
void CRIAPI criAtomExAsrRack_SetBusPan3dByName (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, CriFloat32 pan3d_angle, CriFloat32 pan3d_distance, CriFloat32 pan3d_volume)
 バスのパンニング3Dの設定
void CRIAPI criAtomExAsrRack_GetBusPan3dByName (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, CriFloat32 *pan3d_angle, CriFloat32 *pan3d_distance, CriFloat32 *pan3d_volume)
 バスのパンニング3Dの取得
void CRIAPI criAtomExAsrRack_SetBusMatrixByName (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, CriSint32 input_channels, CriSint32 output_channels, const CriFloat32 matrix[])
 バスのレベル行列の設定
void CRIAPI criAtomExAsrRack_SetBusSendLevelByName (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, const CriChar8 *sendto_bus_name, CriFloat32 level)
 バスのセンドレベルの設定
void CRIAPI criAtomExAsrRack_SetEffectParameter (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, const CriChar8 *effect_name, const CriUint32 parameter_index, const CriFloat32 parameter_value)
 エフェクト動作時パラメーターの設定
void CRIAPI criAtomExAsrRack_UpdateEffectParameters (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, const CriChar8 *effect_name)
 エフェクトの動作時パラメーターの反映
CriFloat32 CRIAPI criAtomExAsrRack_GetEffectParameter (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, const CriChar8 *effect_name, const CriUint32 parameter_index)
 エフェクトの動作時パラメーターの取得
void CRIAPI criAtomExAsrRack_SetEffectBypass (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, const CriChar8 *effect_name, const CriBool bypass)
 エフェクトのバイパス設定
void CRIAPI criAtomExAsrRack_AttachBusAnalyzerByName (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, const CriAtomExAsrBusAnalyzerConfig *config)
 レベル測定機能の追加
void CRIAPI criAtomExAsrRack_DetachBusAnalyzerByName (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name)
 レベル測定機能の削除
void CRIAPI criAtomExAsrRack_GetBusAnalyzerInfoByName (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, CriAtomExAsrBusAnalyzerInfo *info)
 レベル測定結果の取得
void CRIAPI criAtomExAsrRack_SetBusFilterCallbackByName (CriAtomExAsrRackId rack_id, const CriChar8 *bus_name, CriAtomExAsrBusFilterCbFunc pre_func, CriAtomExAsrBusFilterCbFunc post_func, void *obj)
 波形フィルターコールバック関数の登録
void CRIAPI criAtomExAsrRack_SetAlternateRackId (CriAtomExAsrRackId rack_id, CriAtomExAsrRackId alt_rack_id)
 代替ASRラックIDの設定
CriSint32 CRIAPI criAtomExAsrRack_GetNumBuses (CriAtomExAsrRackId rack_id)
 最大バス数を取得

マクロ定義

#define CRIATOMEXASR_MAX_CHANNELS   (8)

最大チャンネル数

説明:
ASRが処理可能な最大チャンネル数です。

#define CRIATOMEXASR_DEFAULT_NUM_BUSES   (8)

デフフォルトのバス数

説明:
デフォルトのバス数です。

#define CRIATOMEXASR_MAX_BUSES   (64)

最大チャンネル数

説明:
ASRが処理可能な最大バス数です。

#define CRIATOMEXASR_RACK_DEFAULT_ID   (0)

デフォルトASRラックID

説明:
初期化時に自動的に作成されるASRラックIDです。
参照:
criAtomExAsrRack_Create, criAtomExAsrRack_Destroy

#define CRIATOMEXASR_RACK_ILLEGAL_ID   (-1)

不正なラックID

説明:
criAtomExAsrRack_Create 関数に失敗した際に返る値です。
参照:
criAtomExAsrRack_Create, criAtomExAsrRack_Destroy

#define CRIATOMEXASR_MAX_NUM_USER_EFFECT_INTERFACES   (256)

ユーザ定義エフェクトインターフェースの最大登録数

説明:
登録可能なユーザ定義エフェクトインターフェースの最大数です。
参照:
criAtomExAsr_RegisterEffectInterface, criAtomExAsr_UnregisterEffectInterface

#define criAtomExAsr_SetDefaultConfig ( p_config   ) 

値:

{\
    (p_config)->server_frequency = 60.0f;\
    (p_config)->num_buses = CRIATOMEXASR_DEFAULT_NUM_BUSES; \
    (p_config)->output_channels = CRIATOM_DEFAULT_OUTPUT_CHANNELS;\
    (p_config)->output_sampling_rate = CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE;\
    (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_NATIVE;\
    (p_config)->context = NULL;\
    (p_config)->max_racks = 8;\
    (p_config)->ambisonics_order_type = CRIATOMAMBISONICS_ORDER_TYPE_NONE;\
}
ASRの初期化コンフィグ構造体にデフォルト値をセット

説明:
criAtomExAsr_Initialize 関数に設定するコンフィグ構造体 ( CriAtomExAsrConfig )に、デフォルト値をセットします。
参照:
criAtomExAsr_Initialize, CriAtomExAsrConfig

#define criAtomExAsr_SetDefaultConfigForBusAnalyzer ( p_config   ) 

値:

{\
    (p_config)->interval = 50;\
    (p_config)->peak_hold_time = 1000;\
}
レベル測定機能コンフィグ構造体にデフォルト値をセット

説明:
criAtomExAsr_AttachBusAnalyzer 関数に設定するコンフィグ構造体 ( CriAtomExAsrBusAnalyzerConfig )に、デフォルト値をセットします。
参照:
criAtomExAsr_AttachBusAnalyzer, CriAtomExAsrBusAnalyzerConfig


型定義

typedef enum CriAtomAmbisonicsOrderTypeTag CriAtomAmbisonicsOrderType

Ambisonics指定タイプ

説明:
Atomライブラリが再生に使用するAmbisonicsのオーダータイプを表します。
ASR初期化時( criAtomExAsr_Initialize 関数 )に CriAtomExAsrConfig 構造体にて指定します。
参照:
criAtomExAsr_Initialize, CriAtomExAsrConfig

typedef struct CriAtomExAsrConfigTag CriAtomExAsrConfig

ASR初期化用コンフィグ構造体

ASR(Atom Sound Renderer)の動作仕様を指定するための構造体です。
criAtomExAsr_Initialize 関数の引数に指定します。

備考:
デフォルト設定を使用する場合、 criAtomExAsr_SetDefaultConfig マクロで 構造体にデフォルトパラメーターをセットした後、 criAtomExAsr_Initialize 関数 に構造体を指定してください。
注意:
将来的にメンバが増える可能性があるため、 criAtomExAsr_SetDefaultConfig マクロを使用しない場合には、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照:
criAtomExAsr_Initialize, criAtomExAsr_SetDefaultConfig

typedef CriSint32 CriAtomExAsrRackId

ASRラックID

説明:
ASRラック管理用のID型です。
criAtomExAsrRack_Create 関数でASRラックを作成すると取得できます。
参照:
criAtomExAsrRack_Create, criAtomExAsrRack_AttachDspBusSetting

typedef struct CriAtomExAsrRackConfigTag CriAtomExAsrRackConfig

ASRラック作成用コンフィグ構造体

ASR(Atom Sound Renderer)の動作仕様を指定するための構造体です。
criAtomExAsrRack_Create 関数の引数に指定します。

備考:
デフォルト設定を使用する場合、 criAtomExAsrRack_SetDefaultConfig マクロで 構造体にデフォルトパラメーターをセットした後、 criAtomExAsrRack_Create 関数 に構造体を指定してください。
注意:
将来的にメンバが増える可能性があるため、 criAtomExAsrRack_SetDefaultConfig マクロを使用しない場合には、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照:
criAtomExAsrRack_Create, criAtomExAsrRack_SetDefaultConfig


列挙型

enum CriAtomAmbisonicsOrderTypeTag

Ambisonics指定タイプ

説明:
Atomライブラリが再生に使用するAmbisonicsのオーダータイプを表します。
ASR初期化時( criAtomExAsr_Initialize 関数 )に CriAtomExAsrConfig 構造体にて指定します。
参照:
criAtomExAsr_Initialize, CriAtomExAsrConfig
列挙型の値:
CRIATOMAMBISONICS_ORDER_TYPE_NONE  未設定
CRIATOMAMBISONICS_ORDER_TYPE_FIRST  1st Order
CRIATOMAMBISONICS_ORDER_TYPE_1P  1 Periphonic(1st Orderと同義)


関数

CriSint32 CRIAPI criAtomExAsr_CalculateWorkSize ( const CriAtomExAsrConfig config  ) 

ASR初期化用ワーク領域サイズの計算

引数:
[in] config ASR初期化用コンフィグ構造体
説明:
ASR(Atom Sound Renderer)の初期化に必要なワーク領域のサイズを取得します。
criAtomEx_SetUserAllocator マクロによるアロケーター登録を行わずに criAtomExAsr_Initialize 関数でASRの初期化を行う場合、 本関数で計算したサイズ分のメモリをワーク領域として渡す必要があります。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
ASRの初期化に必要なワークメモリのサイズは、ASR初期化用コンフィグ 構造体( CriAtomExAsrConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定 ( criAtomExAsr_SetDefaultConfig 適用時と同じパラメーター)で ワーク領域サイズを計算します。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
参照:
criAtomEx_SetUserAllocator, criAtomExAsr_Initialize

void CRIAPI criAtomExAsr_SetConfigForWorkSizeCalculation ( const CriAtomExAsrConfig config  ) 

ワーク領域サイズ計算用コンフィグ構造体の設定

引数:
[in] config ASR初期化用コンフィグ構造体
説明:
ワーク領域サイズの計算用に、ASR初期化用コンフィグ構造体 ( CriAtomExAsrConfig 構造体)を仮登録します。

エフェクトのアタッチに必要なワーク領域のサイズは、 ASR初期化時( criAtomExAsr_Initialize 関数実行時) に設定する構造体のパラメーターによって変化します。
そのため、通常はエフェクトのアタッチに必要なワーク領域サイズを計算する前に、 ASRを初期化する必要があります。
本関数を使用してASR初期化用コンフィグ構造体を登録した場合、 エフェクトのアタッチに必要なワーク領域のサイズを、 初期化処理なしに計算可能になります。
criAtomEx_CalculateWorkSizeForDspBusSettingFromAcfData 関数が実行可能となります。)
備考:
引数( config )に NULL を指定した場合、デフォルト設定 ( criAtomExAsr_SetDefaultConfig 適用時と同じパラメーター)で ワーク領域サイズを計算します。

現状、本関数で一旦コンフィグ構造体を設定すると、 設定前の状態(未初期化状態でのワーク領域サイズ計算をエラーとする動作) に戻すことができなくなります。
(関数を再度実行してパラメーターを上書きすることは可能です。)
注意:
本関数で登録した初期化用コンフィグ構造体は、 ASR未初期化状態でのワーク領域サイズ計算にしか使用されません。
ASR初期化後には本関数に設定したパラメーターではなく、 初期化時に指定されたパラメーターがワーク領域サイズの計算に使用されます。
(本関数で登録する構造体のパラメーターと、 ASRの初期化に使用する構造体のパラメーターが異なる場合、 ワーク領域サイズが不足し、ハンドルの作成に失敗する恐れがあります。)

本関数を実行した場合でも、 criAtomExAsr_CalculateWorkSizeForDspBusSetting 関数は使用できません。
DSPバス設定アタッチ用ワーク領域サイズの計算には、 criAtomEx_CalculateWorkSizeForDspBusSettingFromAcfData 関数を使用してください。)
例:
    CriAtomExAsrConfig asr_config;
    
    // ワーク領域計算用にASR初期化設定を仮登録
    criAtomExAsr_SetDefaultConfig(&asr_config);
    criAtomExAsr_SetConfigForWorkSizeCalculation(&asr_config);
    
    // DSPバス設定アタッチ用ワーク領域サイズの計算
    dsp_work_size = criAtomEx_CalculateWorkSizeForDspBusSettingFromAcfData(
        acf_data, acf_data_size, "DspBusSetting_0");
        :
参照:
criAtomEx_CalculateWorkSizeForDspBusSettingFromAcfData

void CRIAPI criAtomExAsr_Initialize ( const CriAtomExAsrConfig config,
void *  work,
CriSint32  work_size 
)

ASRの初期化

引数:
[in] config ASR初期化用コンフィグ構造体
[in] work ワーク領域
[in] work_size ワーク領域サイズ
説明:
ASR(Atom Sound Renderer)の初期化を行います。
本関数を実行することでASRが起動しASRラックが1個追加され、レンダリング結果の出力を開始します。
備考:
ASRの初期化に必要なワークメモリのサイズは、ASR初期化用コンフィグ 構造体( CriAtomExAsrConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定
criAtomExAsr_SetDefaultConfig 適用時と同じパラメーター)で初期化処理を行います。

引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意:
本関数は完了復帰型の関数です。
本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。
音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
本関数を実行後、必ず対になる criAtomExAsr_Finalize 関数を実行してください。
また、 criAtomExAsr_Finalize 関数を実行するまでは、本関数を再度実行しないでください。
参照:
criAtomEx_SetUserAllocator, criAtomExAsr_Finalize, criAtomExAsrRack_Create

void CRIAPI criAtomExAsr_Finalize ( void   ) 

ASRの終了

説明:
ASR(Atom Sound Renderer)の終了処理を行います。
本関数を実行することで、レンダリング結果の出力が停止されます。
criAtomEx_SetUserAllocator マクロを使用してアロケーターを登録済みの場合、 ASR初期化時に確保されたメモリ領域が解放されます。
(ASR初期化時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
注意:
本関数は完了復帰型の関数です。
本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。
音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、
本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
参照:
criAtomEx_SetUserAllocator, criAtomExAsr_Initialize

void CRIAPI criAtomExAsr_SetBusVolumeByName ( const CriChar8 *  bus_name,
CriFloat32  volume 
)

バスのボリュームの設定

引数:
[in] bus_name バス名
[in] volume ボリューム値
説明:
バスのボリュームを設定します。
センドタイプがポストボリューム、ポストパンのセンド先に有効です。

ボリューム値には、0.0f〜1.0fの範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
ボリュームのデフォルト値はCRI Atom Craftで設定した値です。

void CRIAPI criAtomExAsr_GetBusVolumeByName ( const CriChar8 *  bus_name,
CriFloat32 *  volume 
)

バスのボリュームの取得

引数:
[in] bus_name バス名
[in] volume ボリューム値
説明:
バスのボリュームを設定します。
センドタイプがポストボリューム、ポストパンのセンド先に有効です。

ボリューム値は実数値で得られます。
ボリュームのデフォルト値はCRI Atom Craftで設定した値です。

void CRIAPI criAtomExAsr_SetBusPan3dByName ( const CriChar8 *  bus_name,
CriFloat32  pan3d_angle,
CriFloat32  pan3d_distance,
CriFloat32  pan3d_volume 
)

バスのパンニング3Dの設定

引数:
[in] bus_name バス名
[in] pan3d_angle Pan3D 角度
[in] pan3d_distance Pan3D インテリア距離
[in] pan3d_volume Pan3D 音量
説明:
バスのパンニング3Dのパラメーターを設定します。
センドタイプがポストパンのセンド先に有効です。

Pan3D角度は、-180.0f 〜 180.0fの範囲で設定します。

Pan3Dインテリア距離は、0.0f 〜 1.0fの範囲で設定します。

Pan3Dボリュームは、0.0f 〜 1.0fの範囲で設定します。
通常のボリュームと掛け合わされます。
パン3Dのデフォルト値はCRI Atom Craftで設定した値です。

void CRIAPI criAtomExAsr_GetBusPan3dByName ( const CriChar8 *  bus_name,
CriFloat32 *  pan3d_angle,
CriFloat32 *  pan3d_distance,
CriFloat32 *  pan3d_volume 
)

バスのパンニング3Dの取得

引数:
[in] bus_name バス名
[out] pan3d_angle Pan3D 角度
[out] pan3d_distance Pan3D インテリア距離
[out] pan3d_volume Pan3D 音量
説明:
バスのパンニング3Dのパラメーターを取得します。

void CRIAPI criAtomExAsr_SetBusMatrixByName ( const CriChar8 *  bus_name,
CriSint32  input_channels,
CriSint32  output_channels,
const CriFloat32  matrix[] 
)

バスのレベル行列の設定

引数:
[in] bus_name バス名
[in] input_channels 入力チャンネル数
[in] output_channels 出力チャンネル数
[in] matrix レベル行列を1次元に表したレベル値の配列
説明:
バスのレベル行列を設定します。
センドタイプがポストパンのセンド先に有効です。

レベルマトリックスは、音声データの各チャンネルの音声を、どのスピーカーから どの程度の音量で出力するかを指定するための仕組みです。
matrixは[input_channels * output_channels]の配列です。
入力チャンネルch_inから出力チャンネルch_outにセンドされるレベルは matrix[ch_in * output_channels + ch_out]にセットします。
レベル行列のデフォルト値は単位行列です。

レベル値には、0.0f〜1.0fの範囲で実数値を指定します。
レベル値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのレベルで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。

void CRIAPI criAtomExAsr_SetBusSendLevelByName ( const CriChar8 *  bus_name,
const CriChar8 *  sendto_bus_name,
CriFloat32  level 
)

バスのセンドレベルの設定

引数:
[in] bus_name バス名
[in] sendto_bus_name センド先のバス名
[in] level レベル値
説明:
センド先バスに音声データを送る際のレベルを設定します。

レベル値には、0.0f〜1.0fの範囲で実数値を指定します。
レベル値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのレベルで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
レベルのデフォルト値はCRI Atom Craftで設定した値です。

void CRIAPI criAtomExAsr_SetEffectParameter ( const CriChar8 *  bus_name,
const CriChar8 *  effect_name,
CriUint32  parameter_index,
CriFloat32  parameter_value 
)

エフェクト動作時パラメーターの設定

引数:
[in] bus_name バス名
[in] effect_name エフェクト名
[in] parameter_index エフェクト動作時パラメーターインデックス
[in] parameter_value エフェクト動作時パラメーター設定値
説明:
デフォルトのASRラックIDを使用してエフェクトの動作時パラメーターを設定します。
動作時パラメーターを設定する際は、本関数呼び出し前にあらかじめ criAtomEx_AttachDspBusSetting 関数でバスが構築されている必要があります。
どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。
指定したバスに指定したIDのエフェクトが存在しない場合、関数は失敗します。
セットしたパラメーターはcriAtomExAsr_UpdateParameter関数を呼ぶまで実際にエフェクトに反映されません。
パラメーターインデックスと実際のパラメーターの対応については、各エフェクトのパラメーターインデックス( ASRバスエフェクトのパラメーター )をご参照下さい。
参照:
criAtomEx_AttachDspBusSetting, criAtomExAsr_UpdateEffectParameters

void CRIAPI criAtomExAsr_UpdateEffectParameters ( const CriChar8 *  bus_name,
const CriChar8 *  effect_name 
)

エフェクト動作時パラメーターの反映

引数:
[in] bus_name バス名
[in] effect_name エフェクト名
説明:
デフォルトのASRラックIDを使用してエフェクトの動作時パラメーターを反映します。
動作時パラメーターを実際に反映するには、criAtomExAsr_SetEffectParameter の他にも本関数を呼び出して下さい。
参照:
criAtomEx_AttachDspBusSetting, criAtomExAsr_SetEffectParameter

CriFloat32 CRIAPI criAtomExAsr_GetEffectParameter ( const CriChar8 *  bus_name,
const CriChar8 *  effect_name,
CriUint32  parameter_index 
)

エフェクト動作時パラメーターの取得

引数:
[in] bus_name バス名
[in] effect_name エフェクト名
[in] parameter_index エフェクト動作時パラメーターインデックス
戻り値:
指定したパラメーターインデックスのエフェクト動作時パラメーター値を返します。
説明:
デフォルトのASRラックIDを使用してエフェクトの動作時パラメーターを取得します。
動作時パラメーターを取得する際は、本関数呼び出し前にあらかじめ criAtomEx_AttachDspBusSetting 関数でバスが構築されている必要があります。
どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定した名前のエフェクトが存在しない場合、関数は失敗します。
動作時パラメーターの詳細については、各エフェクトのパラメーターインデックス( ASRバスエフェクトのパラメーター )をご参照下さい。
参照:
criAtomEx_AttachDspBusSetting

void CRIAPI criAtomExAsr_SetEffectBypass ( const CriChar8 *  bus_name,
const CriChar8 *  effect_name,
CriBool  bypass 
)

エフェクトのバイパス設定

引数:
[in] bus_name バス名
[in] effect_name エフェクト名
[in] bypass バイパス設定(CRI_TRUE:バイパスを行う, CRI_FALSE:バイパスを行わない)
説明:
エフェクトのバイパス設定を行います。
バイパス設定されたエフェクトは音声処理の際、スルーされるようになります。
エフェクトのバイパス設定をする際は、本関数呼び出し前にあらかじめ criAtomEx_AttachDspBusSetting 関数でバスが構築されている必要があります。
どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定したIDのエフェクトが存在しない場合、関数は失敗します。
注意:
音声再生中にバイパス設定を行うとノイズが発生することがあります。
参照:
criAtomEx_AttachDspBusSetting

void CRIAPI criAtomExAsr_AttachBusAnalyzerByName ( const CriChar8 *  bus_name,
const CriAtomExAsrBusAnalyzerConfig config 
)

レベル測定機能の追加

引数:
[in] bus_name バス名
[in] config レベル測定機能のコンフィグ構造体
説明:
バスにレベル測定機能を追加し、レベル測定処理を開始します。
本関数を実行後、 criAtomExAsr_GetBusAnalyzerInfo 関数を実行することで、 RMSレベル(音圧)、ピークレベル(最大振幅)、ピークホールドレベルを 取得することが可能です。 複数バスのレベルを計測するには、バスごとに本関数を呼び出す必要があります。
例:
    // レベル測定情報取得用構造体
    CriAtomExAsrBusAnalyzerInfo info;
    
    // 0番バス(マスターバス)にレベル測定機能の追加
    criAtomExAsr_AttachBusAnalyzer(0, NULL);
    
      :
    
    // レベル測定情報の取得
    criAtomExAsr_GetBusAnalyzerInfo(0, &info);
    
    // 計測結果の表示
  for (i = 0; i < CRIATOMEXASR_MAX_CHANNELS; i++) {
        printf("[%d] RMS: %1.6f, Peak: %1.6f, Hold: %1.6f", 
            i, info.rms_levels[i], info.peak_levels[i], info.peak_hold_levels[i]);
  }
注意:
本関数は criAtomEx_AttachDspBusSetting 関数と同一のリソースを操作します。
そのため、現状は criAtomEx_AttachDspBusSetting 関数を実行すると、 criAtomExAsr_GetBusAnalyzerInfo 関数による情報取得ができなくなります。
本関数と criAtomEx_AttachDspBusSetting 関数を併用する際には、 criAtomEx_AttachDspBusSetting 関数を実行する前に一旦 criAtomExAsr_DetachBusAnalyzer 関数でレベル測定機能を無効化し、 criAtomEx_AttachDspBusSetting 関数実行後に再度本関数を実行してください。
// DSPバス設定の変更前に一旦レベル測定機を無効化
    criAtomExAsr_DetachBusAnalyzer(0);
    
    // DSPバス設定の更新
    criAtomEx_AttachDspBusSetting("DspBusSetting_0", NULL, 0);
    
    // レベル測定機の再アタッチ
    criAtomExAsr_AttachBusAnalyzer(0, NULL);
        :
参照:
criAtomExAsr_GetBusAnalyzerInfo, criAtomExAsr_DetachBusAnalyzer

void CRIAPI criAtomExAsr_DetachBusAnalyzerByName ( const CriChar8 *  bus_name  ) 

レベル測定機能の削除

引数:
[in] bus_name バス名
説明:
バスからレベル測定機能を削除します。
参照:
criAtomExAsr_AttachBusAnalyzer

void CRIAPI criAtomExAsr_GetBusAnalyzerInfoByName ( const CriChar8 *  bus_name,
CriAtomExAsrBusAnalyzerInfo info 
)

レベル測定結果の取得

引数:
[in] bus_name バス名
[out] info レベル測定結果の構造体
説明:
バスからレベル測定機能の結果を取得します。
参照:
criAtomExAsr_AttachBusAnalyzer

void CRIAPI criAtomExAsr_SetBusFilterCallbackByName ( const CriChar8 *  bus_name,
CriAtomExAsrBusFilterCbFunc  pre_func,
CriAtomExAsrBusFilterCbFunc  post_func,
void *  obj 
)

波形フィルターコールバック関数の登録

引数:
[in] bus_name バス名
[in] pre_func エフェクト処理前のフィルターコールバック関数
[in] post_func エフェクト処理後のフィルターコールバック関数
[in] obj ユーザ指定オブジェクト
説明:
バスに流れている PCM データを受け取るコールバック関数を登録します。
登録されたコールバック関数は、サウンドレンダラが音声処理を行ったタイミングで呼び出されます。
エフェクト処理前とエフェクト処理後の2種類の使用しないほうはNULL指定が可能です。
注意:
コールバック関数内で、AtomライブラリのAPIを実行しないでください。
コールバック関数はAtomライブラリ内のサーバー処理から実行されます。
そのため、サーバー処理への割り込みを考慮しないAPIを実行した場合、 エラーが発生したり、デッドロックが発生する可能性があります。

波形フィルターコールバック関数内で長時間処理をブロックすると、音切れ等の問題 が発生しますので、ご注意ください。
参照:
CriAtomExPlayerFilterCbFunc

CriSint32 CRIAPI criAtomExAsr_GetNumBuses ( void   ) 

最大バス数を取得

戻り値:
最大バス数
説明:
利用可能な最大バス数を取得します。
デフォルト設定では CRIATOMEXASR_DEFAULT_NUM_BUSES を返します。
最大バス数を変更するには、CriAtomExAsrConfignum_buses を変更して ASRラックを作成してください。
参照:
CriAtomExAsrConfig, criAtomExAsr_Create, criAtomExAsr_SetDefaultConfig

CriBool CRIAPI criAtomExAsr_RegisterEffectInterface ( CriAtomExAsrAfxInterfaceWithVersionPtr  afx_interface  ) 

ユーザ定義エフェクトインターフェースの登録

引数:
[in] afx_interface ユーザ定義エフェクトのバージョン情報付きインターフェース
戻り値:
登録に成功したか?(CRI_TRUE:登録に成功した, CRI_FALSE:登録に失敗した)
説明:
ユーザ定義エフェクトインターフェースをASRに登録します。
ユーザ定義エフェクトインターフェースを登録したエフェクトはDSPバス設定をアタッチする際に使用できるようになります。
以下の条件に該当する場合は、ユーザ定義エフェクトインターフェースの登録に失敗し、エラーコールバックが返ります:
  • 同一のエフェクト名を持つユーザ定義エフェクトインターフェースが既に登録されている
  • Atomが使用しているユーザ定義エフェクトインターフェースと異なる
  • ユーザ定義エフェクトインターフェースの登録数上限( CRIATOMEXASR_MAX_NUM_USER_EFFECT_INTERFACES )に達した
注意:
本関数はCRI ADX2 Audio Effect Plugin SDKで作成したユーザ定義エフェクトを登録する場合にのみ使用して下さい。
ユーザ定義エフェクトインターフェースは、ユーザ定義エフェクトを含むDSPバス設定をアタッチする前に
本関数によって登録を行って下さい。
ACFにデフォルトDSPバス設定が存在する場合、ACFの登録( criAtomEx_RegisterAcfFile, criAtomEx_RegisterAcfData 関数)によってもDSPバス設定がアタッチされるため、
ユーザ定義エフェクトがデフォルトDSPバス設定に含まれている場合はACFを登録する前にユーザ定義エフェクトインターフェースを登録して下さい。
一度登録を行ったインターフェースのポインタは、DSPバス設定をアタッチしている間参照され続けます。
Atomライブラリ使用中にインターフェースの登録解除を行う場合は、 criAtomExAsr_UnregisterEffectInterface を使用して下さい。
参照:
criAtomExAsr_UnregisterEffectInterface, criAtomEx_AttachDspBusSetting, criAtomEx_DetachDspBusSetting, criAtomEx_RegisterAcfFile, criAtomEx_RegisterAcfData

void CRIAPI criAtomExAsr_UnregisterEffectInterface ( CriAtomExAsrAfxInterfaceWithVersionPtr  afx_interface  ) 

ユーザ定義エフェクトインターフェースの登録解除

引数:
[in] afx_interface ユーザ定義エフェクトのバージョン情報付きインターフェース
説明:
エフェクトインターフェースの登録を解除します。
登録を解除したエフェクトはDSPバス設定をアタッチする際に使用できなくなります。
登録処理を行っていないエフェクトインターフェースの登録を解除することはできません(エラーコールバックが返ります)。
注意:
本関数はCRI ADX2 Audio Effect Plugin SDKで作成したユーザ定義エフェクトを登録解除する場合にのみ使用して下さい。
登録を行ったユーザ定義エフェクトインターフェースはDSPバス設定がアタッチされている間参照され続けるため、
本関数は必ず criAtomEx_DetachDspBusSetting の呼び出しの後に行って下さい。
Atomライブラリの終了時(criAtomEx_Finalize 関数の呼び出し時)には全てのユーザ定義エフェクトインターフェースの登録が解除されます。
参照:
criAtomExAsr_RegisterEffectInterface, criAtomEx_AttachDspBusSetting, criAtomEx_DetachDspBusSetting

CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSize ( const CriAtomExAsrRackConfig config  ) 

ASRラック作成用ワーク領域サイズの計算

引数:
[in] config ASR初期化用コンフィグ構造体
説明:
ASRラックの作成に必要なワーク領域のサイズを取得します。
criAtomEx_SetUserAllocator マクロによるアロケーター登録を行わずに criAtomExAsrRack_Create 関数でASRの初期化を行う場合、 本関数で計算したサイズ分のメモリをワーク領域として渡す必要があります。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
ASRラックの初期化に必要なワークメモリのサイズは、ASRラック初期化用コンフィグ 構造体( CriAtomExAsrRackConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定 ( criAtomExAsr_SetDefaultConfig 適用時と同じパラメーター)で ワーク領域サイズを計算します。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
参照:
criAtomEx_SetUserAllocator, criAtomExAsrRack_Create

CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSizeForDspBusSettingFromConfig ( const CriAtomExAsrRackConfig config,
const CriChar8 *  setting 
)

DSPバス設定のアタッチ用ワークサイズの計算

引数:
[in] config ASRラック作成用コンフィグ構造体
[in] setting DSPバス設定の名前
戻り値:
CriSint32 必要ワーク領域サイズ
説明:
DSPバス設定からバスを構築するのに必要なワーク領域サイズを計算します。
本関数を実行するには、あらかじめcriAtomEx_RegisterAcfConfig 関数でACF情報を 登録しておく必要があります
configには criAtomExAsrRack_Create 関数に指定するものと同じ構造体を指定してください。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
DSPバス設定のアタッチに必要なワークメモリのサイズは、CRI Atom Craftで作成した DSPバス設定の内容によって変化します。
参照:
criAtomExAsrRack_AttachDspBusSetting, criAtomEx_RegisterAcfConfig

CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSizeForDspBusSettingFromAcfDataAndConfig ( void *  acf_data,
CriSint32  acf_data_size,
const CriAtomExAsrRackConfig rack_config,
const CriChar8 *  setting 
)

DSPバス設定のアタッチ用ワークサイズの計算

引数:
[in] acf_data ACFデータ
[in] acf_data_size ACFデータサイズ
[in] rack_config ASRラック作成用コンフィグ構造体
[in] setting DSPバス設定の名前
戻り値:
CriSint32 必要ワーク領域サイズ
説明:
DSPバス設定からバスを構築するのに必要なワーク領域サイズを計算します。
criAtomExAsrRack_CalculateWorkSizeForDspBusSettingFromConfig 関数と違い、 メモリ上にロード済みのACFデータを使用してワークメモリサイズの計算が可能です。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
DSPバス設定のアタッチに必要なワークメモリのサイズは、CRI Atom Craftで作成した DSPバス設定の内容によって変化します。
参照:
criAtomExAsrRack_AttachDspBusSetting, criAtomEx_RegisterAcfConfig

CriAtomExAsrRackId CRIAPI criAtomExAsrRack_Create ( const CriAtomExAsrRackConfig config,
void *  work,
CriSint32  work_size 
)

ASRラックの作成

引数:
[in] config ASR初期化用コンフィグ構造体
[in] work ワーク領域
[in] work_size ワーク領域サイズ
戻り値:
CriAtomExAsrRackId ASRラックID
説明:
ASRラックの作成を行います。
ASRラックとはバスの集合体のことで、DSPバス設定をアタッチすることができます。
本関数を実行することでASRにASRラックが追加され、レンダリング結果の出力を開始します。
この関数で追加したASRラックは出力先を選択することができ、プラットフォームネイティブの サウンドレンダラか、ASRを選択することで他のASRラックに出力することも可能です。
備考:
criAtomExAsr_Initialize 関数を実行すると、デフォルトのASRラックが追加されます。
criAtomExAsr_*** 関数はデフォルトのASRラックを操作するAPIになります。

ASRの初期化に必要なワークメモリのサイズは、ASR初期化用コンフィグ 構造体( CriAtomExAsrConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定
criAtomExAsr_SetDefaultConfig 適用時と同じパラメーター)で初期化処理を行います。

引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
ASRラックの生成に成功した場合は、本関数は生成したASRラックIDを返します。 生成に失敗した場合は -1 を返します。
注意:
本関数は完了復帰型の関数です。
本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。
音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
参照:
criAtomEx_SetUserAllocator, criAtomExAsrRack_Destroy, criAtomExAsrRack_AttachDspBusSetting

void CRIAPI criAtomExAsrRack_Destroy ( CriAtomExAsrRackId  rack_id  ) 

ASRラックの破棄

説明:
ASRラックの破棄を行います。
本関数を実行することで、レンダリング結果の出力が停止されます。
criAtomEx_SetUserAllocator マクロを使用してアロケーターを登録済みの場合、 ASRラック作成時に確保されたメモリ領域が解放されます。
(ASRラック作成時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
注意:
本関数は完了復帰型の関数です。
本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。
音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、
本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
参照:
criAtomEx_SetUserAllocator, criAtomExAsrRack_Create

CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSizeForDspBusSetting ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  setting 
)

DSPバス設定のアタッチ用ワークサイズの計算

引数:
[in] rack_id ASRラックID
[in] setting DSPバス設定の名前
戻り値:
CriSint32 必要ワーク領域サイズ
説明:
DSPバス設定からバスを構築するのに必要なワーク領域サイズを計算します。
本関数を実行するには、あらかじめcriAtomEx_RegisterAcfConfig 関数でACF情報を 登録しておく必要があります

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
DSPバス設定のアタッチに必要なワークメモリのサイズは、CRI Atom Craftで作成した DSPバス設定の内容によって変化します。
参照:
criAtomExAsrRack_AttachDspBusSetting, criAtomEx_RegisterAcfConfig

void CRIAPI criAtomExAsrRack_AttachDspBusSetting ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  setting,
void *  work,
CriSint32  work_size 
)

DSPバス設定のアタッチ

引数:
[in] rack_id ASRラックID
[in] setting DSPバス設定の名前
[in] work ワーク領域
[in] work_size ワーク領域サイズ
説明:
DSPバス設定からバスを構築してASRラックにアタッチします。
本関数を実行するには、あらかじめcriAtomEx_RegisterAcfConfig 関数でACF情報を 登録しておく必要があります
備考:
DSPバス設定のアタッチに必要なワークメモリのサイズは、 CRI Atom Craftで作成したDSPバス設定の内容によって変化します。
注意:
本関数は完了復帰型の関数です。
本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。
音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
参照:
criAtomExAsrRack_DetachDspBusSetting, criAtomEx_RegisterAcfConfig

void CRIAPI criAtomExAsrRack_DetachDspBusSetting ( CriAtomExAsrRackId  rack_id  ) 

DSPバス設定のデタッチ

引数:
[in] rack_id ASRラックID
説明:
DSPバス設定をASRラックからデタッチします。
criAtomEx_SetUserAllocator マクロを使用してアロケーターを登録済みの場合、 DSPバス設定アタッチ時に確保されたメモリ領域が解放されます。
(DSPバス設定アタッチ時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
注意:
本関数は完了復帰型の関数です。
本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。
音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
参照:
criAtomExAsrRack_AttachDspBusSetting

void CRIAPI criAtomExAsrRack_ApplyDspBusSnapshot ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  snapshot_name,
CriSint32  time_ms 
)

DSPバススナップショットの適用

引数:
[in] rack_id ASRラックID
[in] snapshot_name スナップショット名
[in] time_ms 時間(ミリ秒)
説明:
DSPバススナップショットを適用します。
本関数を呼び出すと、スナップショットで設定したパラメーターに time_ms 掛けて変化します。
参照:
criAtomExAsrRack_AttachDspBusSetting

const CriChar8* CRIAPI criAtomExAsrRack_GetAppliedDspBusSnapshotName ( CriAtomExAsrRackId  rack_id  ) 

適用中のDSPバススナップショット名の取得

引数:
[in] rack_id ASRラックID
説明:
ASRラックIDを指定して適用中のDSPバススナップショット名を取得します。 スナップショットが適用されていない場合はCRI_NULLが返ります。
参照:
criAtomExAsrRack_ApplyDspBusSnapshot

void CRIAPI criAtomExAsrRack_SetBusVolumeByName ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
CriFloat32  volume 
)

バスのボリュームの設定

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] volume ボリューム値
説明:
バスのボリュームを設定します。
センドタイプがポストボリューム、ポストパンのセンド先に有効です。

ボリューム値には、0.0f〜1.0fの範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
ボリュームのデフォルト値はCRI Atom Craftで設定した値です。

void CRIAPI criAtomExAsrRack_GetBusVolumeByName ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
CriFloat32 *  volume 
)

バスのボリュームの取得

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] volume ボリューム値
説明:
バスのボリュームを設定します。
センドタイプがポストボリューム、ポストパンのセンド先に有効です。

ボリューム値は実数値で得られます。
ボリュームのデフォルト値はCRI Atom Craftで設定した値です。

void CRIAPI criAtomExAsrRack_SetBusPan3dByName ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
CriFloat32  pan3d_angle,
CriFloat32  pan3d_distance,
CriFloat32  pan3d_volume 
)

バスのパンニング3Dの設定

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] pan3d_angle Pan3D 角度
[in] pan3d_distance Pan3D インテリア距離
[in] pan3d_volume Pan3D 音量
説明:
バスのパンニング3Dのパラメーターを設定します。
センドタイプがポストパンのセンド先に有効です。

Pan3D角度は、-180.0f 〜 180.0fの範囲で設定します。

Pan3Dインテリア距離は、0.0f 〜 1.0fの範囲で設定します。

Pan3Dボリュームは、0.0f 〜 1.0fの範囲で設定します。
通常のボリュームと掛け合わされます。
パン3Dのデフォルト値はCRI Atom Craftで設定した値です。

void CRIAPI criAtomExAsrRack_GetBusPan3dByName ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
CriFloat32 *  pan3d_angle,
CriFloat32 *  pan3d_distance,
CriFloat32 *  pan3d_volume 
)

バスのパンニング3Dの取得

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[out] pan3d_angle Pan3D 角度
[out] pan3d_distance Pan3D インテリア距離
[out] pan3d_volume Pan3D 音量
説明:
バスのパンニング3Dのパラメーターを取得します。

void CRIAPI criAtomExAsrRack_SetBusMatrixByName ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
CriSint32  input_channels,
CriSint32  output_channels,
const CriFloat32  matrix[] 
)

バスのレベル行列の設定

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] input_channels 入力チャンネル数
[in] output_channels 出力チャンネル数
[in] matrix レベル行列を1次元に表したレベル値の配列
説明:
バスのレベル行列を設定します。
センドタイプがポストパンのセンド先に有効です。

レベルマトリックスは、音声データの各チャンネルの音声を、どのスピーカーから どの程度の音量で出力するかを指定するための仕組みです。
matrixは[input_channels * output_channels]の配列です。
入力チャンネルch_inから出力チャンネルch_outにセンドされるレベルは matrix[ch_in * output_channels + ch_out]にセットします。
レベル行列のデフォルト値は単位行列です。

レベル値には、0.0f〜1.0fの範囲で実数値を指定します。
レベル値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのレベルで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。

void CRIAPI criAtomExAsrRack_SetBusSendLevelByName ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
const CriChar8 *  sendto_bus_name,
CriFloat32  level 
)

バスのセンドレベルの設定

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] sendto_bus_name センド先のバス名
[in] level レベル値
説明:
センド先バスに音声データを送る際のレベルを設定します。

レベル値には、0.0f〜1.0fの範囲で実数値を指定します。
レベル値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのレベルで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
レベルのデフォルト値はCRI Atom Craftで設定した値です。

void CRIAPI criAtomExAsrRack_SetEffectParameter ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
const CriChar8 *  effect_name,
const CriUint32  parameter_index,
const CriFloat32  parameter_value 
)

エフェクト動作時パラメーターの設定

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] effect_name エフェクト名
[in] parameter_index エフェクト動作時パラメーターインデックス
[in] parameter_value エフェクトパラメーター設定値
説明:
エフェクトの動作時パラメーターを設定します。
エフェクトパラメーターを設定する際は、本関数呼び出し前にあらかじめ criAtomEx_AttachDspBusSetting 関数でバスが構築されている必要があります。
どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定した名前のエフェクトが存在しない場合、関数は失敗します。
また、 エフェクトのパラメーターは、各エフェクトのパラメーターインデックス( ASRバスエフェクトのパラメーター )をご参照下さい。
参照:
criAtomEx_AttachDspBusSetting, criAtomExAsrRack_UpdateEffectParameters

void CRIAPI criAtomExAsrRack_UpdateEffectParameters ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
const CriChar8 *  effect_name 
)

エフェクトの動作時パラメーターの反映

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] effect_name エフェクト名
説明:
エフェクトの動作時パラメーターを反映します。
動作時パラメーターを実際に反映するには、criAtomExAsrRack_SetEffectParameter の他にも本関数を呼び出して下さい。
参照:
criAtomEx_AttachDspBusSetting, criAtomExAsrRack_SetEffectParameter

CriFloat32 CRIAPI criAtomExAsrRack_GetEffectParameter ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
const CriChar8 *  effect_name,
const CriUint32  parameter_index 
)

エフェクトの動作時パラメーターの取得

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] effect_name エフェクト名
[in] parameter_index エフェクトの動作時パラメーターインデックス
戻り値:
指定したパラメーターインデックス値のエフェクトパラメーター値を返します。
説明:
エフェクトの動作時パラメーターを取得します。
動作時パラメーターを取得する際は、本関数呼び出し前にあらかじめ criAtomEx_AttachDspBusSetting 関数でバスが構築されている必要があります。
どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定した名前のエフェクトが存在しない場合、関数は失敗します。
エフェクトの動作時パラメーターの詳細は、各エフェクトのパラメーターインデックス( ASRバスエフェクトのパラメーター )をご参照下さい。
参照:
criAtomEx_AttachDspBusSetting

void CRIAPI criAtomExAsrRack_SetEffectBypass ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
const CriChar8 *  effect_name,
const CriBool  bypass 
)

エフェクトのバイパス設定

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] effect_name エフェクト名
[in] bypass バイパス設定(CRI_TRUE:バイパスを行う, CRI_FALSE:バイパスを行わない)
説明:
エフェクトのバイパス設定を行います。
バイパス設定されたエフェクトは音声処理の際、スルーされるようになります。
エフェクトのバイパス設定をする際は、本関数呼び出し前にあらかじめ criAtomEx_AttachDspBusSetting 関数でバスが構築されている必要があります。
どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定した名前のエフェクトが存在しない場合、関数は失敗します。
注意:
音声再生中にバイパス設定を行うとノイズが発生することがあります。
参照:
criAtomEx_AttachDspBusSetting

void CRIAPI criAtomExAsrRack_AttachBusAnalyzerByName ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
const CriAtomExAsrBusAnalyzerConfig config 
)

レベル測定機能の追加

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] config レベル測定機能のコンフィグ構造体
説明:
バスにレベル測定機能を追加し、レベル測定処理を開始します。
本関数を実行後、 criAtomExAsrRack_GetBusAnalyzerInfo 関数を実行することで、 RMSレベル(音圧)、ピークレベル(最大振幅)、ピークホールドレベルを 取得することが可能です。 複数バスのレベルを計測するには、バスごとに本関数を呼び出す必要があります。
注意:
本関数は criAtomExAsrRack_AttachDspBusSetting 関数と同一のリソースを操作します。
そのため、現状は criAtomExAsrRack_AttachDspBusSetting 関数を実行すると、 criAtomExAsrRack_GetBusAnalyzerInfo 関数による情報取得ができなくなります。
本関数と criAtomExAsrRack_AttachDspBusSetting 関数を併用する際には、 criAtomExAsrRack_AttachDspBusSetting 関数を実行する前に一旦 criAtomExAsrRack_DetachBusAnalyzer 関数でレベル測定機能を無効化し、 criAtomExAsrRack_AttachDspBusSetting 関数実行後に再度本関数を実行してください。
参照:
criAtomExAsrRack_GetBusAnalyzerInfo, criAtomExAsrRack_DetachBusAnalyzer

void CRIAPI criAtomExAsrRack_DetachBusAnalyzerByName ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name 
)

レベル測定機能の削除

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
説明:
バスからレベル測定機能を削除します。
参照:
criAtomExAsrRack_AttachBusAnalyzer

void CRIAPI criAtomExAsrRack_GetBusAnalyzerInfoByName ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
CriAtomExAsrBusAnalyzerInfo info 
)

レベル測定結果の取得

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[out] info レベル測定結果の構造体
説明:
バスからレベル測定機能の結果を取得します。
参照:
criAtomExAsrRack_AttachBusAnalyzer

void CRIAPI criAtomExAsrRack_SetBusFilterCallbackByName ( CriAtomExAsrRackId  rack_id,
const CriChar8 *  bus_name,
CriAtomExAsrBusFilterCbFunc  pre_func,
CriAtomExAsrBusFilterCbFunc  post_func,
void *  obj 
)

波形フィルターコールバック関数の登録

引数:
[in] rack_id ASRラックID
[in] bus_name バス名
[in] pre_func エフェクト処理前のフィルターコールバック関数
[in] post_func エフェクト処理後のフィルターコールバック関数
[in] obj ユーザ指定オブジェクト
説明:
バスに流れている PCM データを受け取るコールバック関数を登録します。
登録されたコールバック関数は、サウンドレンダラが音声処理を行ったタイミングで呼び出されます。
エフェクト処理前とエフェクト処理後の2種類の使用しないほうはNULL指定が可能です。
注意:
コールバック関数内で、AtomライブラリのAPIを実行しないでください。
コールバック関数はAtomライブラリ内のサーバー処理から実行されます。
そのため、サーバー処理への割り込みを考慮しないAPIを実行した場合、 エラーが発生したり、デッドロックが発生する可能性があります。

波形フィルターコールバック関数内で長時間処理をブロックすると、音切れ等の問題 が発生しますので、ご注意ください。
参照:
CriAtomExPlayerFilterCbFunc

void CRIAPI criAtomExAsrRack_SetAlternateRackId ( CriAtomExAsrRackId  rack_id,
CriAtomExAsrRackId  alt_rack_id 
)

代替ASRラックIDの設定

引数:
[in] rack_id ASRラックID
[in] alt_rack_id 代替ASRラックID
説明:
指定したIDのASRラックが存在しない場合に、代わりになるASRラックのIDを設定します。
( rack_id のASRラックが存在しない場合に、その音声を alt_rack_id のASRラック経由で出力します。)

デフォルト設定は CRIATOMEXASR_RACK_DEFAULT_ID (指定したIDのASRラックがなければデフォルトASRから出力する)です。
備考:
存在しないASRラックへの出力をエラーとして扱いたい場合、 alt_rack_id に rack_id と同じ値を設定してください。

CriSint32 CRIAPI criAtomExAsrRack_GetNumBuses ( CriAtomExAsrRackId  rack_id  ) 

最大バス数を取得

引数:
[in] rack_id ASRラックID
戻り値:
最大バス数
説明:
指定したIDのASRラックで利用可能な最大バス数を取得します。
デフォルト設定では CRIATOMEXASR_DEFAULT_NUM_BUSES を返します。
最大バス数を変更するには、CriAtomExAsrRackConfignum_buses を変更して ASRラックを作成してください。
参照:
CriAtomExAsrRackConfig, criAtomExAsrRack_Create, criAtomExAsrRack_SetDefaultConfig


CRI Middleware logo Copyright (c) 2006-2018 CRI Middleware Co., Ltd.