Class CriAtomExAsr
CriAtomExAsr API
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public static class CriAtomExAsr
Fields
DefaultNumBuses
デフフォルトのバス数
Declaration
public const int DefaultNumBuses = 8
Field Value
Type | Description |
---|---|
int |
Remarks
説明: デフォルトのバス数です。
MaxNumUserEffectInterfaces
ユーザ定義エフェクトインターフェースの最大登録数
Declaration
public const int MaxNumUserEffectInterfaces = 256
Field Value
Type | Description |
---|---|
int |
Remarks
説明: 登録可能なユーザ定義エフェクトインターフェースの最大数です。
See Also
RackDefaultId
デフォルトASRラックID
Declaration
public const int RackDefaultId = 0
Field Value
Type | Description |
---|---|
int |
Remarks
説明: 初期化時に自動的に作成されるASRラックIDです。
See Also
RackIllegalId
不正なラックID
Declaration
public const int RackIllegalId = -1
Field Value
Type | Description |
---|---|
int |
Remarks
説明: CriAtomExAsrRack(in Config, IntPtr, int) 関数に失敗した際に返る値です。
See Also
Properties
BusFilterCallbackByName
バスフィルターコールバック登録用のオブジェクト
Declaration
public static CriAtomExAsr.BusFilterCbList BusFilterCallbackByName { get; }
Property Value
Type | Description |
---|---|
CriAtomExAsr.BusFilterCbList |
Remarks
バスフィルターコールバックにはバス毎に異なるコールバック関数を指定できます。 また、エフェクト処理の前後それぞれに異なる関数を指定可能です。 本プロパティで取得できるオブジェクトは、各コールバックオブジェクトを取得可能なリストとして振る舞います。 例として、バス名"MasterOut"のバスのエフェクト処理後のコールバックを登録する場合、次のようになります。
CriWare.CriAtomExAsr.BusFilterCallbackByName["MasterOut"].Post.Event += CallbackMethod;
Methods
AttachBusAnalyzerByName(ArgString, in BusAnalyzerConfig)
レベル測定機能の追加
Declaration
public static void AttachBusAnalyzerByName(ArgString busName, in CriAtomExAsr.BusAnalyzerConfig config)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
CriAtomExAsr.BusAnalyzerConfig | config | レベル測定機能のコンフィグ構造体 |
Remarks
説明: バスにレベル測定機能を追加し、レベル測定処理を開始します。 本関数を実行後、 ::criAtomExAsr_GetBusAnalyzerInfo 関数を実行することで、 RMSレベル(音圧)、ピークレベル(最大振幅)、ピークホールドレベルを 取得することが可能です。 複数バスのレベルを計測するには、バスごとに本関数を呼び出す必要があります。
注意: 本関数は AttachDspBusSetting(ArgString, IntPtr, int) 関数と同一のリソースを操作します。 そのため、現状は AttachDspBusSetting(ArgString, IntPtr, int) 関数を実行すると、 ::criAtomExAsr_GetBusAnalyzerInfo 関数による情報取得ができなくなります。 本関数と AttachDspBusSetting(ArgString, IntPtr, int) 関数を併用する際には、 AttachDspBusSetting(ArgString, IntPtr, int) 関数を実行する前に一旦 ::criAtomExAsr_DetachBusAnalyzer 関数でレベル測定機能を無効化し、 AttachDspBusSetting(ArgString, IntPtr, int) 関数実行後に再度本関数を実行してください。
CalculateWorkSize(in Config)
ASR初期化用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSize(in CriAtomExAsr.Config config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsr.Config | config | ASR初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int |
Remarks
説明: ASR(Atom Sound Renderer)の初期化に必要なワーク領域のサイズを取得します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに Initialize(in Config, IntPtr, int) 関数でASRの初期化を行う場合、 本関数で計算したサイズ分のメモリをワーク領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ASRの初期化に必要なワークメモリのサイズは、ASR初期化用コンフィグ 構造体( CriAtomExAsr.Config )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
See Also
DetachBusAnalyzerByName(ArgString)
レベル測定機能の削除
Declaration
public static void DetachBusAnalyzerByName(ArgString busName)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
Remarks
説明: バスからレベル測定機能を削除します。
See Also
EnableBinauralizer(NativeBool)
バイノーラライザーの有効化
Declaration
public static void EnableBinauralizer(NativeBool enabled)
Parameters
Type | Name | Description |
---|---|---|
NativeBool | enabled | 有効フラグ |
Remarks
説明: バイノーラライザーの有効を指定します。
備考: バイノーラライザーは sound_renderer_type が Spatial であるASRラックでのみ使用可能です。 バイノーラライザーのスペシャライザーインタフェースが登録されている場合、登録したスペシャライザーを使用します。 登録されていない場合、Atom内蔵のスペシャライザーを使用します。
Finalize()
ASRの終了
Declaration
public static void Finalize()
Remarks
説明: ASR(Atom Sound Renderer)の終了処理を行います。 本関数を実行することで、レンダリング結果の出力が停止されます。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 ASR初期化時に確保されたメモリ領域が解放されます。 (ASR初期化時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
See Also
GetBusAnalyzerInfoByName(ArgString, out BusAnalyzerInfo)
レベル測定結果の取得
Declaration
public static void GetBusAnalyzerInfoByName(ArgString busName, out CriAtomExAsr.BusAnalyzerInfo info)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
CriAtomExAsr.BusAnalyzerInfo | info | レベル測定結果の構造体 |
Remarks
説明: バスからレベル測定機能の結果を取得します。 本関数呼び出し前に AttachBusAnalyzerByName(ArgString, in BusAnalyzerConfig) 関数を呼び出す必要があります。
See Also
GetBusPanInfoByName(ArgString, out BusPanInfo)
バスのパン情報の取得
Declaration
public static void GetBusPanInfoByName(ArgString busName, out CriAtomExAsr.BusPanInfo panInfo)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
CriAtomExAsr.BusPanInfo | panInfo | パン情報 |
Remarks
説明: バスのパン情報を取得します。
備考: 本関数はデフォルトの ASR ラックの DSP バス設定を参照します。 任意の ASR ラックの DSP バス設定を参照する場合、 GetBusPanInfoByName(ArgString, out BusPanInfo) 関数を使用してください。
GetBusVolumeByName(ArgString, in float)
バスのボリュームの取得
Declaration
public static void GetBusVolumeByName(ArgString busName, in float volume)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
float | volume | ボリューム値 |
Remarks
説明: バスのボリュームを設定します。 センドタイプがポストボリューム、ポストパンのセンド先に有効です。 ボリューム値は実数値で得られます。 ボリュームのデフォルト値はCRI Atom Craftで設定した値です。
GetEffectParameter(ArgString, ArgString, uint)
エフェクト動作時パラメーターの取得
Declaration
public static float GetEffectParameter(ArgString busName, ArgString effectName, uint parameterIndex)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
ArgString | effectName | エフェクト名 |
uint | parameterIndex | エフェクト動作時パラメーターインデックス |
Returns
Type | Description |
---|---|
float |
Remarks
説明: デフォルトのASRラックIDを使用してエフェクトの動作時パラメーターを取得します。 動作時パラメーターを取得する際は、本関数呼び出し前にあらかじめ AttachDspBusSetting(ArgString, IntPtr, int) 関数でバスが構築されている必要があります。 どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定した名前のエフェクトが存在しない場合、関数は失敗します。
See Also
GetIrReverbPerformanceInfo(out IrReverbPerformanceInfo)
IRリバーブエフェクトの負荷計測
Declaration
public static void GetIrReverbPerformanceInfo(out CriAtomExAsr.IrReverbPerformanceInfo info)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsr.IrReverbPerformanceInfo | info | IRリバーブの負荷計測情報構造体 |
Remarks
説明: DSPバス上のIRリバーブエフェクトの負荷をまとめて計測します。
備考: DSPバスにIRリバーブエフェクトがセットされていなくても本関数を呼び出すことは可能ですが、何も処理されません。
注意: プラットフォームによって計測される内容が異なる場合があります。 詳しくは各プラットフォームのCRI ADX マニュアルの IR リバーブを参照してください。
See Also
GetNumBufferedSamples()
PCMデータ残量の取得
Declaration
public static int GetNumBufferedSamples()
Returns
Type | Description |
---|---|
int | PCMデータ残量(サンプル数単位) |
Remarks
説明: GetPcmDataFloat32(int, int, float[][]) 関数で取得可能なサンプル数を返します。
See Also
GetNumBuses()
最大バス数を取得
Declaration
public static int GetNumBuses()
Returns
Type | Description |
---|---|
int |
Remarks
説明: 利用可能な最大バス数を取得します。 デフォルト設定では DefaultNumBuses を返します。 最大バス数を変更するには、CriAtomExAsr.Config::num_buses を変更して ASRラックを作成してください。
See Also
GetPcmBufferSize()
PCMバッファーサイズの取得
Declaration
public static int GetPcmBufferSize()
Returns
Type | Description |
---|---|
int |
Remarks
説明: Atomライブラリ内で設定されているPCMデータの保存に使用するバッファーのサイズを取得します。 (サイズはサンプル数単位で取得します。)
備考: SetPcmBufferSize(int) 関数にて設定を行っていない場合、 0 が返却されます。
See Also
GetPcmDataFloat32(int, int, float[][])
PCMデータの取得
Declaration
public static int GetPcmDataFloat32(int outputChannels, int outputSamples, float[][] outputBuffer)
Parameters
Type | Name | Description |
---|---|---|
int | outputChannels | 出力バッファーのチャンネル数 |
int | outputSamples | 出力バッファーに格納可能なサンプル数 |
float[][] | outputBuffer | 出力バッファー |
Returns
Type | Description |
---|---|
int | 取得できたサンプル数 |
Remarks
説明: Atomライブラリの出力PCMデータを取得します。 本関数を使用するには、事前に InitializeForUserPcmOutput(in ConfigForUserPcmOutput, IntPtr, int) 関数を使用してライブラリを初期化しておく必要があります。
注意: 本関数の呼び出しは、独立したスレッド上で定期的に行う必要があります。 現状、AtomライブラリのAPIには、 PCMデータが出力されるまで処理を返さないものがいくつか存在します。 (ボイスプールの破棄処理等。) こういった関数と本関数とを同一スレッド上で順番に呼び出すと、 当該APIがPCMデータの出力を永遠に待ち続ける形になり、 処理が復帰しなくなる可能性があります。
See Also
Initialize(in Config, IntPtr, int)
ASRの初期化
Declaration
public static void Initialize(in CriAtomExAsr.Config config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsr.Config | config | ASR初期化用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: ASR(Atom Sound Renderer)の初期化を行います。 本関数を実行することでASRが起動しASRラックが1個追加され、レンダリング結果の出力を開始します。
備考: ASRの初期化に必要なワークメモリのサイズは、ASR初期化用コンフィグ 構造体( CriAtomExAsr.Config )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で初期化処理を行います。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。 本関数を実行後、必ず対になる Finalize() 関数を実行してください。 また、 Finalize() 関数を実行するまでは、本関数を再度実行しないでください。
See Also
IsEnabledBinauralizer()
バイノーラライザーの有効化状態の取得
Declaration
public static bool IsEnabledBinauralizer()
Returns
Type | Description |
---|---|
bool | false:無効) |
Remarks
説明: バイノーラライザーの有効化状態を取得します。
RegisterEffectInterface(IntPtr)
ユーザ定義エフェクトインターフェースの登録
Declaration
public static bool RegisterEffectInterface(IntPtr afxInterface)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | afxInterface | ユーザ定義エフェクトのバージョン情報付きインターフェース |
Returns
Type | Description |
---|---|
bool | false:登録に失敗した) |
Remarks
説明: ユーザ定義エフェクトインターフェースをASRに登録します。 ユーザ定義エフェクトインターフェースを登録したエフェクトはDSPバス設定をアタッチする際に使用できるようになります。 以下の条件に該当する場合は、ユーザ定義エフェクトインターフェースの登録に失敗し、エラーコールバックが返ります: - 同一のエフェクト名を持つユーザ定義エフェクトインターフェースが既に登録されている - Atomが使用しているユーザ定義エフェクトインターフェースと異なる - ユーザ定義エフェクトインターフェースの登録数上限( MaxNumUserEffectInterfaces )に達した
注意: 本関数はCRI ADX Audio Effect Plugin SDKで作成したユーザ定義エフェクトを登録する場合にのみ使用して下さい。 ユーザ定義エフェクトインターフェースは、ユーザ定義エフェクトを含むDSPバス設定をアタッチする前に 本関数によって登録を行って下さい。 ACFにデフォルトDSPバス設定が存在する場合、ACFの登録( RegisterAcfFile(CriFsBinder, ArgString, IntPtr, int), RegisterAcfData(ReadOnlySpan<byte>) 関数)によってもDSPバス設定がアタッチされるため、 ユーザ定義エフェクトがデフォルトDSPバス設定に含まれている場合はACFを登録する前にユーザ定義エフェクトインターフェースを登録して下さい。 一度登録を行ったインターフェースのポインタは、DSPバス設定をアタッチしている間参照され続けます。 Atomライブラリ使用中にインターフェースの登録解除を行う場合は、 UnregisterEffectInterface(IntPtr) を使用して下さい。
See Also
RegisterSoundxRInterface(IntPtr)
SoundxRプラグインインターフェースの登録
Declaration
public static bool RegisterSoundxRInterface(IntPtr soundxrInterface)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | soundxrInterface | SoundxRプラグインのインターフェース |
Returns
Type | Description |
---|---|
bool | false:登録に失敗した) |
Remarks
説明: SoundxRプラグインのインターフェースを登録します。 ツール上でバイノーラライザーに Sound xR を設定した ACF を登録する必要があります。 異なるバイノーラライザー設定の ACF を登録した場合は以下の挙動になります。 - バイノーラライザー設定が存在しない古い ACF : バイノーラル結果が無音になる。 - バイノーラライザー設定が CRI Binauralizer の ACF : バイノーラル結果が無音になる。
注意: 本関数は、ライブラリの初期化前に実行してください。
ResetIrReverbPerformanceInfo()
IRリバーブエフェクトの負荷計測リセット
Declaration
public static void ResetIrReverbPerformanceInfo()
Remarks
説明: ASRエフェクトのIRリバーブの負荷計測をリセットします。
備考: DSPバスにIRリバーブエフェクトがセットされていなくても本関数を呼び出すことは可能ですが、何も処理されません。
See Also
SetBinauralizerVolume(float)
バイノーラライザーのボリューム設定
Declaration
public static void SetBinauralizerVolume(float volume)
Parameters
Type | Name | Description |
---|---|---|
float | volume | ボリューム値 |
Remarks
説明: バイノーラライザーのボリュームを指定します。 本関数を使用することで、バイノーラル処理を経由する音声の音量のみを制御することが可能です。 ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。 例えば、1.0fを指定した場合、出力音声はデフォルトの音量で出力されます。 0.5fを指定した場合、音声波形の振幅を半分にしたデータと同じ音量(-6dB)で音声が出力されます。 0.0fを指定した場合、音声はミュートされます(無音になります)。
注意: 現状、本機能はAtom内蔵のスペシャライザーを使用する場合にのみ機能します。 ハードウェア固有のバイノーラライザーを使用する場合や、Sound xRプラグインを使用する場合、 本関数でバイノーラル音声の音量を変更することはできません。
SetBusFilterCallbackByName(ArgString, delegate* unmanaged[Cdecl]<IntPtr, PcmFormat, int, int, IntPtr*, void>, delegate* unmanaged[Cdecl]<IntPtr, PcmFormat, int, int, IntPtr*, void>, IntPtr)
波形フィルターコールバック関数の登録
Declaration
public static void SetBusFilterCallbackByName(ArgString busName, delegate* unmanaged[Cdecl]<IntPtr, CriAtom.PcmFormat, int, int, IntPtr*, void> preFunc, delegate* unmanaged[Cdecl]<IntPtr, CriAtom.PcmFormat, int, int, IntPtr*, void> postFunc, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
delegate* unmanaged[Cdecl]<IntPtr, PcmFormat, int, int, IntPtr*, void> | preFunc | エフェクト処理前のフィルターコールバック関数 |
delegate* unmanaged[Cdecl]<IntPtr, PcmFormat, int, int, IntPtr*, void> | postFunc | エフェクト処理後のフィルターコールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: バスに流れている PCM データを受け取るコールバック関数を登録します。 登録されたコールバック関数は、サウンドレンダラが音声処理を行ったタイミングで呼び出されます。 エフェクト処理前とエフェクト処理後の2種類の使用しないほうはnull指定が可能です。
注意: コールバック関数内で、AtomライブラリのAPIを実行しないでください。 コールバック関数はAtomライブラリ内のサーバー処理から実行されます。 そのため、サーバー処理への割り込みを考慮しないAPIを実行した場合、 エラーが発生したり、デッドロックが発生する可能性があります。 波形フィルターコールバック関数内で長時間処理をブロックすると、音切れ等の問題 が発生しますので、ご注意ください。
See Also
SetBusMatrixByName(ArgString, int, int, float[])
バスのレベル行列の設定
Declaration
public static void SetBusMatrixByName(ArgString busName, int inputChannels, int outputChannels, float[] matrix)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
int | inputChannels | 入力チャンネル数 |
int | outputChannels | 出力チャンネル数 |
float[] | matrix | レベル行列を1次元に表したレベル値の配列 |
Remarks
説明: バスのレベル行列を設定します。 センドタイプがポストパンのセンド先に有効です。 レベルマトリックスは、音声データの各チャンネルの音声を、どのスピーカーから どの程度の音量で出力するかを指定するための仕組みです。 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を指定した場合、音声はミュートされます(無音になります)。
SetBusPanInfoByName(ArgString, in BusPanInfo)
バスのパン情報の設定
Declaration
public static void SetBusPanInfoByName(ArgString busName, in CriAtomExAsr.BusPanInfo panInfo)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
CriAtomExAsr.BusPanInfo | panInfo | パン情報 |
Remarks
説明: バスのパン情報を設定します。 センドタイプがポストパンのセンド先に有効です。
備考: 本関数はデフォルトの ASR ラックの DSP バス設定を参照します。 任意の ASR ラックの DSP バス設定を参照する場合、 SetBusPanInfoByName(ArgString, in BusPanInfo) 関数を使用してください。 パン情報のデフォルト値はCRI Atom Craftで設定した値です。
SetBusSendLevelByName(ArgString, ArgString, float)
バスのセンドレベルの設定
Declaration
public static void SetBusSendLevelByName(ArgString busName, ArgString sendtoBusName, float level)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
ArgString | sendtoBusName | センド先のバス名 |
float | level | レベル値 |
Remarks
説明: センド先バスに音声データを送る際のレベルを設定します。 レベル値には、0.0f~1.0fの範囲で実数値を指定します。 レベル値は音声データの振幅に対する倍率です(単位はデシベルではありません)。 例えば、1.0fを指定した場合、原音はそのままのレベルで出力されます。 0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。 0.0fを指定した場合、音声はミュートされます(無音になります)。 レベルのデフォルト値はCRI Atom Craftで設定した値です。
SetBusVolumeByName(ArgString, float)
バスのボリュームの設定
Declaration
public static void SetBusVolumeByName(ArgString busName, float volume)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
float | volume | ボリューム値 |
Remarks
説明: バスのボリュームを設定します。 センドタイプがポストボリューム、ポストパンのセンド先に有効です。 ボリューム値には、0.0f~1.0fの範囲で実数値を指定します。 ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。 例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。 0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。 0.0fを指定した場合、音声はミュートされます(無音になります)。 ボリュームのデフォルト値はCRI Atom Craftで設定した値です。
SetConfigForWorkSizeCalculation(in Config)
ワーク領域サイズ計算用コンフィグ構造体の設定
Declaration
public static void SetConfigForWorkSizeCalculation(in CriAtomExAsr.Config config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsr.Config | config | ASR初期化用コンフィグ構造体 |
Remarks
説明: ワーク領域サイズの計算用に、ASR初期化用コンフィグ構造体 ( CriAtomExAsr.Config 構造体)を仮登録します。 エフェクトのアタッチに必要なワーク領域のサイズは、 ASR初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に設定する構造体のパラメーターによって変化します。 そのため、通常はエフェクトのアタッチに必要なワーク領域サイズを計算する前に、 ASRを初期化する必要があります。 本関数を使用してASR初期化用コンフィグ構造体を登録した場合、 エフェクトのアタッチに必要なワーク領域のサイズを、 初期化処理なしに計算可能になります。 ( CalculateWorkSizeForDspBusSettingFromAcfData(IntPtr, int, ArgString) 関数が実行可能となります。)
備考: 引数( config )に null を指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。 現状、本関数で一旦コンフィグ構造体を設定すると、 設定前の状態(未初期化状態でのワーク領域サイズ計算をエラーとする動作) に戻すことができなくなります。 (関数を再度実行してパラメーターを上書きすることは可能です。)
注意: 本関数で登録した初期化用コンフィグ構造体は、 ASR未初期化状態でのワーク領域サイズ計算にしか使用されません。 ASR初期化後には本関数に設定したパラメーターではなく、 初期化時に指定されたパラメーターがワーク領域サイズの計算に使用されます。 (本関数で登録する構造体のパラメーターと、 ASRの初期化に使用する構造体のパラメーターが異なる場合、 ワーク領域サイズが不足し、オブジェクトの作成に失敗する恐れがあります。) 本関数を実行した場合でも、 CalculateWorkSizeForDspBusSetting(ArgString) 関数は使用できません。 DSPバス設定アタッチ用ワーク領域サイズの計算には、 CalculateWorkSizeForDspBusSettingFromAcfData(IntPtr, int, ArgString) 関数を使用してください。)
See Also
SetDefaultConfig(out Config)
ASRの初期化コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfig(out CriAtomExAsr.Config pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsr.Config | pConfig | コンフィグ |
Remarks
説明: Initialize(in Config, IntPtr, int) 関数に設定するコンフィグ構造体 ( CriAtomExAsr.Config )に、デフォルト値をセットします。
See Also
SetDefaultConfigForBusAnalyzer(out BusAnalyzerConfig)
レベル測定機能コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForBusAnalyzer(out CriAtomExAsr.BusAnalyzerConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsr.BusAnalyzerConfig | pConfig | コンフィグ |
Remarks
説明: AttachBusAnalyzerByName(ArgString, in BusAnalyzerConfig) 関数に設定するコンフィグ構造体 ( CriAtomExAsr.BusAnalyzerConfig )に、デフォルト値をセットします。
See Also
SetEffectBypass(ArgString, ArgString, NativeBool)
エフェクトのバイパス設定
Declaration
public static void SetEffectBypass(ArgString busName, ArgString effectName, NativeBool bypass)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
ArgString | effectName | エフェクト名 |
NativeBool | bypass | バイパス設定(true:バイパスを行う, false:バイパスを行わない) |
Remarks
説明: エフェクトのバイパス設定を行います。 バイパス設定されたエフェクトは音声処理の際、スルーされるようになります。 エフェクトのバイパス設定をする際は、本関数呼び出し前にあらかじめ AttachDspBusSetting(ArgString, IntPtr, int) 関数でバスが構築されている必要があります。 どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定したIDのエフェクトが存在しない場合、関数は失敗します。
注意: 音声再生中にバイパス設定を行うとノイズが発生することがあります。
See Also
SetEffectParameter(ArgString, ArgString, uint, float)
エフェクト動作時パラメーターの設定
Declaration
public static void SetEffectParameter(ArgString busName, ArgString effectName, uint parameterIndex, float parameterValue)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
ArgString | effectName | エフェクト名 |
uint | parameterIndex | エフェクト動作時パラメーターインデックス |
float | parameterValue | エフェクト動作時パラメーター設定値 |
Remarks
説明: デフォルトのASRラックIDを使用してエフェクトの動作時パラメーターを設定します。 動作時パラメーターを設定する際は、本関数呼び出し前にあらかじめ AttachDspBusSetting(ArgString, IntPtr, int) 関数でバスが構築されている必要があります。 どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。 指定したバスに指定したIDのエフェクトが存在しない場合、関数は失敗します。 セットしたパラメーターはcriAtomExAsr_UpdateParameter関数を呼ぶまで実際にエフェクトに反映されません。
See Also
SetPcmBufferSize(int)
PCMバッファーサイズの指定
Declaration
public static void SetPcmBufferSize(int numSamples)
Parameters
Type | Name | Description |
---|---|---|
int | numSamples | PCMバッファーサイズ(サンプル数単位) |
Remarks
説明: Atomライブラリ内でPCMデータの保存に使用するバッファーのサイズを指定します。 (サイズはサンプル数単位で指定します。) バッファーサイズに 0 を指定した場合、2V分のバッファーが作成されます。 本関数にて設定した値は GetPcmBufferSize() 関数にて取得することができます。
備考: ユーザPCM出力方式でAtomライブラリを初期化した場合、 AtomライブラリはASRの出力結果をライブラリ内のバッファー(PCMバッファー)に保持します。 デフォルト状態では、PCMバッファーのサイズはライブラリ初期化時のパラメーターに応じて自動的に決定されますが、 本関数を実行することで、PCMバッファーのサイズを任意のサイズに変更することが可能です。
注意: PCMバッファーの確保は InitializeForUserPcmOutput(in ConfigForUserPcmOutput, IntPtr, int) 関数内で行われます。 そのため、本関数は InitializeForUserPcmOutput(in ConfigForUserPcmOutput, IntPtr, int) 関数よりも先に実行する必要があります。 PCMバッファーに蓄えられるPCMデータのサンプル数が、 ユーザがPCMデータを取得する間隔より少ない場合、 音途切れ等の問題が発生する可能性があります。 逆に、PCMバッファーのサイズが大きすぎる場合、 発音開始からサウンド出力までの遅延が大きくなる可能性があります。 PC環境では、PCMバッファーサイズを小さくした場合に再生が正しく行えるかどうかが、 サウンドデバイスの性能にも左右されます。 多くの環境で音途切れなく再生を行いたい場合には、 PCMバッファーサイズにある程度大きめの値を指定するか、 または可能な限り短い間隔で GetPcmDataFloat32(int, int, float[][]) 関数を実行してください。
See Also
UnregisterEffectInterface(IntPtr)
ユーザ定義エフェクトインターフェースの登録解除
Declaration
public static void UnregisterEffectInterface(IntPtr afxInterface)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | afxInterface | ユーザ定義エフェクトのバージョン情報付きインターフェース |
Remarks
説明: エフェクトインターフェースの登録を解除します。 登録を解除したエフェクトはDSPバス設定をアタッチする際に使用できなくなります。 登録処理を行っていないエフェクトインターフェースの登録を解除することはできません(エラーコールバックが返ります)。
注意: 本関数はCRI ADX Audio Effect Plugin SDKで作成したユーザ定義エフェクトを登録解除する場合にのみ使用して下さい。 登録を行ったユーザ定義エフェクトインターフェースはDSPバス設定がアタッチされている間参照され続けるため、 本関数は必ず DetachDspBusSetting() の呼び出しの後に行って下さい。 Atomライブラリの終了時(Finalize() 関数の呼び出し時)には全てのユーザ定義エフェクトインターフェースの登録が解除されます。
See Also
UpdateEffectParameters(ArgString, ArgString)
エフェクト動作時パラメーターの反映
Declaration
public static void UpdateEffectParameters(ArgString busName, ArgString effectName)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
ArgString | effectName | エフェクト名 |
Remarks
説明: デフォルトのASRラックIDを使用してエフェクトの動作時パラメーターを反映します。 動作時パラメーターを実際に反映するには、SetEffectParameter(ArgString, ArgString, uint, float) の他にも本関数を呼び出して下さい。