CRIWARE for C#
Search Results for

    Show / Hide Table of Contents

    Class CriAtomExAsr

    CriAtomExAsr API

    Inheritance
    object
    CriAtomExAsr
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    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
    RegisterEffectInterface(IntPtr)
    UnregisterEffectInterface(IntPtr)

    RackDefaultId

    デフォルトASRラックID

    Declaration
    public const int RackDefaultId = 0
    Field Value
    Type Description
    int
    Remarks

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

    See Also
    CriAtomExAsrRack(in Config)
    Dispose()

    RackIllegalId

    不正なラックID

    Declaration
    public const int RackIllegalId = -1
    Field Value
    Type Description
    int
    Remarks

    説明: CriAtomExAsrRack(in Config) 関数に失敗した際に返る値です。

    See Also
    CriAtomExAsrRack(in Config)
    Dispose()

    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)

    LE Pro

    レベル測定機能の追加

    Declaration
    • C#
    • C
    public static void AttachBusAnalyzerByName(ArgString busName, in CriAtomExAsr.BusAnalyzerConfig config)
    void CRIAPI criAtomExAsr_AttachBusAnalyzerByName(const CriChar8 *bus_name, const CriAtomExAsrBusAnalyzerConfig *config)
    Parameters
    Type Name Description
    ArgString busName

    バス名

    CriAtomExAsr.BusAnalyzerConfig config

    レベル測定機能のコンフィグ構造体

    Remarks

    説明: バスにレベル測定機能を追加し、レベル測定処理を開始します。 本関数を実行後、 criAtomExAsr_GetBusAnalyzerInfo 関数を実行することで、 RMSレベル(音圧)、ピークレベル(最大振幅)、ピークホールドレベルを 取得することが可能です。 複数バスのレベルを計測するには、バスごとに本関数を呼び出す必要があります。

    注意: 本関数は AttachDspBusSetting(ArgString) 関数と同一のリソースを操作します。 そのため、現状は AttachDspBusSetting(ArgString) 関数を実行すると、 criAtomExAsr_GetBusAnalyzerInfo 関数による情報取得ができなくなります。 本関数と AttachDspBusSetting(ArgString) 関数を併用する際には、 AttachDspBusSetting(ArgString) 関数を実行する前に一旦 criAtomExAsr_DetachBusAnalyzer 関数でレベル測定機能を無効化し、 AttachDspBusSetting(ArgString) 関数実行後に再度本関数を実行してください。

    CalculateWorkSize(in Config)

    LE Pro

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

    Declaration
    • C#
    • C
    public static int CalculateWorkSize(in CriAtomExAsr.Config config)
    CriSint32 CRIAPI criAtomExAsr_CalculateWorkSize(const CriAtomExAsrConfig *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) 関数でASRの初期化を行う場合、 本関数で計算したサイズ分のメモリをワーク領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。

    備考: ASRの初期化に必要なワークメモリのサイズは、ASR初期化用コンフィグ 構造体( CriAtomExAsr.Config )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    See Also
    SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
    Initialize(in Config)

    DetachBusAnalyzerByName(ArgString)

    LE Pro

    レベル測定機能の削除

    Declaration
    • C#
    • C
    public static void DetachBusAnalyzerByName(ArgString busName)
    void CRIAPI criAtomExAsr_DetachBusAnalyzerByName(const CriChar8 *bus_name)
    Parameters
    Type Name Description
    ArgString busName

    バス名

    Remarks

    説明: バスからレベル測定機能を削除します。

    See Also
    AttachBusAnalyzerByName(ArgString, in BusAnalyzerConfig)

    EnableBinauralizer(NativeBool)

    LE Pro

    バイノーラライザーの有効化

    Declaration
    • C#
    • C
    public static void EnableBinauralizer(NativeBool enabled)
    void CRIAPI criAtomExAsr_EnableBinauralizer(CriBool enabled)
    Parameters
    Type Name Description
    NativeBool enabled

    有効フラグ

    Remarks

    説明: バイノーラライザーの有効を指定します。

    備考: バイノーラライザーは sound_renderer_type が Spatial であるASRラックでのみ使用可能です。 バイノーラライザーのスペシャライザーインタフェースが登録されている場合、登録したスペシャライザーを使用します。 登録されていない場合、Atom内蔵のスペシャライザーを使用します。

    Finalize()

    LE Pro

    ASRの終了

    Declaration
    • C#
    • C
    public static void Finalize()
    void CRIAPI criAtomExAsr_Finalize(void)
    Remarks

    説明: ASR(Atom Sound Renderer)の終了処理を行います。 本関数を実行することで、レンダリング結果の出力が停止されます。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 ASR初期化時に確保されたメモリ領域が解放されます。 (ASR初期化時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)

    注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。

    See Also
    SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
    Initialize(in Config)

    GetBusAnalyzerInfoByName(ArgString, out BusAnalyzerInfo)

    LE Pro

    レベル測定結果の取得

    Declaration
    • C#
    • C
    public static void GetBusAnalyzerInfoByName(ArgString busName, out CriAtomExAsr.BusAnalyzerInfo info)
    void CRIAPI criAtomExAsr_GetBusAnalyzerInfoByName(const CriChar8 *bus_name, CriAtomExAsrBusAnalyzerInfo *info)
    Parameters
    Type Name Description
    ArgString busName

    バス名

    CriAtomExAsr.BusAnalyzerInfo info

    レベル測定結果の構造体

    Remarks

    説明: バスからレベル測定機能の結果を取得します。 本関数呼び出し前に AttachBusAnalyzerByName(ArgString, in BusAnalyzerConfig) 関数を呼び出す必要があります。

    See Also
    AttachBusAnalyzerByName(ArgString, in BusAnalyzerConfig)

    GetBusPanInfoByName(ArgString, out BusPanInfo)

    LE Pro

    バスのパン情報の取得

    Declaration
    • C#
    • C
    public static void GetBusPanInfoByName(ArgString busName, out CriAtomExAsr.BusPanInfo panInfo)
    void CRIAPI criAtomExAsr_GetBusPanInfoByName(const CriChar8 *bus_name, CriAtomExAsrBusPanInfo *pan_info)
    Parameters
    Type Name Description
    ArgString busName

    バス名

    CriAtomExAsr.BusPanInfo panInfo

    パン情報

    Remarks

    説明: バスのパン情報を取得します。

    備考: 本関数はデフォルトの ASR ラックの DSP バス設定を参照します。 任意の ASR ラックの DSP バス設定を参照する場合、 GetBusPanInfoByName(ArgString, out BusPanInfo) 関数を使用してください。

    GetBusVolumeByName(ArgString, out float)

    LE Pro

    バスのボリュームの取得

    Declaration
    • C#
    • C
    public static void GetBusVolumeByName(ArgString busName, out float volume)
    void CRIAPI criAtomExAsr_GetBusVolumeByName(const CriChar8 *bus_name, CriFloat32 *volume)
    Parameters
    Type Name Description
    ArgString busName

    バス名

    float volume

    ボリューム値

    Remarks

    説明: バスのボリュームを設定します。 センドタイプがポストボリューム、ポストパンのセンド先に有効です。 ボリューム値は実数値で得られます。 ボリュームのデフォルト値はCRI Atom Craftで設定した値です。

    GetEffectParameter(ArgString, ArgString, uint)

    LE Pro

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

    Declaration
    • C#
    • C
    public static float GetEffectParameter(ArgString busName, ArgString effectName, uint parameterIndex)
    CriFloat32 CRIAPI criAtomExAsr_GetEffectParameter(const CriChar8 *bus_name, const CriChar8 *effect_name, CriUint32 parameter_index)
    Parameters
    Type Name Description
    ArgString busName

    バス名

    ArgString effectName

    エフェクト名

    uint parameterIndex

    エフェクト動作時パラメーターインデックス

    Returns
    Type Description
    float

    指定したパラメーターインデックスのエフェクト動作時パラメーター値を返します。

    Remarks

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

    See Also
    AttachDspBusSetting(ArgString)

    GetIrReverbPerformanceInfo(out IrReverbPerformanceInfo)

    LE Pro

    IRリバーブエフェクトの負荷計測

    Declaration
    • C#
    • C
    public static void GetIrReverbPerformanceInfo(out CriAtomExAsr.IrReverbPerformanceInfo info)
    void CRIAPI criAtomExAsr_GetIrReverbPerformanceInfo(CriAtomExAsrIrReverbPerformanceInfo *info)
    Parameters
    Type Name Description
    CriAtomExAsr.IrReverbPerformanceInfo info

    IRリバーブの負荷計測情報構造体

    Remarks

    説明: DSPバス上のIRリバーブエフェクトの負荷をまとめて計測します。

    備考: DSPバスにIRリバーブエフェクトがセットされていなくても本関数を呼び出すことは可能ですが、何も処理されません。

    注意: プラットフォームによって計測される内容が異なる場合があります。 詳しくは各プラットフォームのCRI ADX マニュアルの IR リバーブを参照してください。

    See Also
    ResetIrReverbPerformanceInfo()

    GetNumBufferedSamples()

    LE Pro

    PCMデータ残量の取得

    Declaration
    • C#
    • C
    public static int GetNumBufferedSamples()
    CriSint32 CRIAPI criAtomExAsr_GetNumBufferedSamples(void)
    Returns
    Type Description
    int

    CriSint32 PCMデータ残量(サンプル数単位)

    Remarks

    説明: GetPcmDataFloat32(int, int, float[][]) 関数で取得可能なサンプル数を返します。

    See Also
    GetPcmDataFloat32(int, int, float[][])

    GetNumBuses()

    LE Pro

    最大バス数を取得

    Declaration
    • C#
    • C
    public static int GetNumBuses()
    CriSint32 CRIAPI criAtomExAsr_GetNumBuses(void)
    Returns
    Type Description
    int

    最大バス数

    Remarks

    説明: 利用可能な最大バス数を取得します。 デフォルト設定では DefaultNumBuses を返します。 最大バス数を変更するには、CriAtomExAsr.Config::num_buses を変更して ASRラックを作成してください。

    See Also
    CriAtomExAsr.Config
    SetDefaultConfig(out Config)

    GetPcmBufferSize()

    LE Pro

    PCMバッファーサイズの取得

    Declaration
    • C#
    • C
    public static int GetPcmBufferSize()
    CriSint32 CRIAPI criAtomExAsr_GetPcmBufferSize(void)
    Returns
    Type Description
    int
    Remarks

    説明: Atomライブラリ内で設定されているPCMデータの保存に使用するバッファーのサイズを取得します。 (サイズはサンプル数単位で取得します。)

    備考: SetPcmBufferSize(int) 関数にて設定を行っていない場合、 0 が返却されます。

    See Also
    SetPcmBufferSize(int)

    GetPcmDataFloat32(int, int, float[][])

    LE Pro

    PCMデータの取得

    Declaration
    • C#
    • C
    public static int GetPcmDataFloat32(int outputChannels, int outputSamples, float[][] outputBuffer)
    CriSint32 CRIAPI criAtomExAsr_GetPcmDataFloat32(CriSint32 output_channels, CriSint32 output_samples, CriFloat32 *output_buffer[])
    Parameters
    Type Name Description
    int outputChannels

    出力バッファーのチャンネル数

    int outputSamples

    出力バッファーに格納可能なサンプル数

    float[][] outputBuffer

    出力バッファー

    Returns
    Type Description
    int

    CriSint32 取得できたサンプル数

    Remarks

    説明: Atomライブラリの出力PCMデータを取得します。 本関数を使用するには、事前に InitializeForUserPcmOutput(in ConfigForUserPcmOutput) 関数を使用してライブラリを初期化しておく必要があります。

    注意: 本関数の呼び出しは、独立したスレッド上で定期的に行う必要があります。 現状、AtomライブラリのAPIには、 PCMデータが出力されるまで処理を返さないものがいくつか存在します。 (ボイスプールの破棄処理等。) こういった関数と本関数とを同一スレッド上で順番に呼び出すと、 当該APIがPCMデータの出力を永遠に待ち続ける形になり、 処理が復帰しなくなる可能性があります。

    See Also
    InitializeForUserPcmOutput(in ConfigForUserPcmOutput)

    Initialize(in Config)

    LE Pro

    ASRの初期化

    Declaration
    • C#
    • C
    public static void Initialize(in CriAtomExAsr.Config config)
    void CRIAPI criAtomExAsr_Initialize(const CriAtomExAsrConfig *config, void *work, CriSint32 work_size)
    Parameters
    Type Name Description
    CriAtomExAsr.Config config

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

    Remarks

    説明: ASR(Atom Sound Renderer)の初期化を行います。 本関数を実行することでASRが起動しASRラックが1個追加され、レンダリング結果の出力を開始します。

    備考: ASRの初期化に必要なワークメモリのサイズは、ASR初期化用コンフィグ 構造体( CriAtomExAsr.Config )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で初期化処理を行います。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。 本関数を実行後、必ず対になる Finalize() 関数を実行してください。 また、 Finalize() 関数を実行するまでは、本関数を再度実行しないでください。

    See Also
    SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
    Finalize()
    CriAtomExAsrRack(in Config)

    IsEnabledBinauralizer()

    LE Pro

    バイノーラライザーの有効化状態の取得

    Declaration
    • C#
    • C
    public static bool IsEnabledBinauralizer()
    CriBool CRIAPI criAtomExAsr_IsEnabledBinauralizer(void)
    Returns
    Type Description
    bool

    バイノーラライザーの有効か?(true:有効, false:無効)

    Remarks

    説明: バイノーラライザーの有効化状態を取得します。

    RegisterEffectInterface(IntPtr)

    LE Pro

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

    Declaration
    • C#
    • C
    public static bool RegisterEffectInterface(IntPtr afxInterface)
    CriBool CRIAPI criAtomExAsr_RegisterEffectInterface(CriAtomExAsrAfxInterfaceWithVersionPtr afx_interface)
    Parameters
    Type Name Description
    IntPtr afxInterface

    ユーザ定義エフェクトのバージョン情報付きインターフェース

    Returns
    Type Description
    bool

    登録に成功したか?(true:登録に成功した, false:登録に失敗した)

    Remarks

    説明: ユーザ定義エフェクトインターフェースをASRに登録します。 ユーザ定義エフェクトインターフェースを登録したエフェクトはDSPバス設定をアタッチする際に使用できるようになります。 以下の条件に該当する場合は、ユーザ定義エフェクトインターフェースの登録に失敗し、エラーコールバックが返ります:

    • 同一のエフェクト名を持つユーザ定義エフェクトインターフェースが既に登録されている
    • Atomが使用しているユーザ定義エフェクトインターフェースと異なる
    • ユーザ定義エフェクトインターフェースの登録数上限( MaxNumUserEffectInterfaces )に達した

    注意: 本関数はCRI ADX Audio Effect Plugin SDKで作成したユーザ定義エフェクトを登録する場合にのみ使用して下さい。 ユーザ定義エフェクトインターフェースは、ユーザ定義エフェクトを含むDSPバス設定をアタッチする前に 本関数によって登録を行って下さい。 ACFにデフォルトDSPバス設定が存在する場合、ACFの登録( RegisterAcfFile(CriFsBinder, ArgString), RegisterAcfData(ReadOnlySpan<byte>) 関数)によってもDSPバス設定がアタッチされるため、 ユーザ定義エフェクトがデフォルトDSPバス設定に含まれている場合はACFを登録する前にユーザ定義エフェクトインターフェースを登録して下さい。 一度登録を行ったインターフェースのポインタは、DSPバス設定をアタッチしている間参照され続けます。 Atomライブラリ使用中にインターフェースの登録解除を行う場合は、 UnregisterEffectInterface(IntPtr) を使用して下さい。

    See Also
    UnregisterEffectInterface(IntPtr)
    AttachDspBusSetting(ArgString)
    DetachDspBusSetting()
    RegisterAcfFile(CriFsBinder, ArgString)
    RegisterAcfData(ReadOnlySpan<byte>)

    RegisterSoundxRInterface(IntPtr)

    LE Pro

    SoundxRプラグインインターフェースの登録

    Declaration
    • C#
    • C
    public static bool RegisterSoundxRInterface(IntPtr soundxrInterface)
    CriBool CRIAPI criAtomExAsr_RegisterSoundxRInterface(const void *soundxr_interface)
    Parameters
    Type Name Description
    IntPtr soundxrInterface

    SoundxRプラグインのインターフェース

    Returns
    Type Description
    bool

    登録に成功したか?(true:登録に成功した, false:登録に失敗した)

    Remarks

    説明: SoundxRプラグインのインターフェースを登録します。 ツール上でバイノーラライザーに Sound xR を設定した ACF を登録する必要があります。 異なるバイノーラライザー設定の ACF を登録した場合は以下の挙動になります。

    • バイノーラライザー設定が存在しない古い ACF : バイノーラル結果が無音になる。
    • バイノーラライザー設定が CRI Binauralizer の ACF : バイノーラル結果が無音になる。

    注意: 本関数は、ライブラリの初期化前に実行してください。

    ResetIrReverbPerformanceInfo()

    LE Pro

    IRリバーブエフェクトの負荷計測リセット

    Declaration
    • C#
    • C
    public static void ResetIrReverbPerformanceInfo()
    void CRIAPI criAtomExAsr_ResetIrReverbPerformanceInfo(void)
    Remarks

    説明: ASRエフェクトのIRリバーブの負荷計測をリセットします。

    備考: DSPバスにIRリバーブエフェクトがセットされていなくても本関数を呼び出すことは可能ですが、何も処理されません。

    See Also
    GetIrReverbPerformanceInfo(out IrReverbPerformanceInfo)

    SetBinauralizerVolume(float)

    LE Pro

    バイノーラライザーのボリューム設定

    Declaration
    • C#
    • C
    public static void SetBinauralizerVolume(float volume)
    void CRIAPI criAtomExAsr_SetBinauralizerVolume(CriFloat32 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)

    LE Pro

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

    Declaration
    • C#
    • C
    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)
    void CRIAPI criAtomExAsr_SetBusFilterCallbackByName(const CriChar8 *bus_name, CriAtomExAsrBusFilterCbFunc pre_func, CriAtomExAsrBusFilterCbFunc post_func, void *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
    CriAtomExPlayer.FilterCbFunc

    SetBusMatrixByName(ArgString, int, int, Span<float>)

    LE Pro

    バスのレベル行列の設定

    Declaration
    • C#
    • C
    public static void SetBusMatrixByName(ArgString busName, int inputChannels, int outputChannels, Span<float> matrix)
    void CRIAPI criAtomExAsr_SetBusMatrixByName(const CriChar8 *bus_name, CriSint32 input_channels, CriSint32 output_channels, const CriFloat32 matrix[])
    Parameters
    Type Name Description
    ArgString busName

    バス名

    int inputChannels

    入力チャンネル数

    int outputChannels

    出力チャンネル数

    Span<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)

    LE Pro

    バスのパン情報の設定

    Declaration
    • C#
    • C
    public static void SetBusPanInfoByName(ArgString busName, in CriAtomExAsr.BusPanInfo panInfo)
    void CRIAPI criAtomExAsr_SetBusPanInfoByName(const CriChar8 *bus_name, const CriAtomExAsrBusPanInfo *pan_info)
    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)

    LE Pro

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

    Declaration
    • C#
    • C
    public static void SetBusSendLevelByName(ArgString busName, ArgString sendtoBusName, float level)
    void CRIAPI criAtomExAsr_SetBusSendLevelByName(const CriChar8 *bus_name, const CriChar8 *sendto_bus_name, CriFloat32 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)

    LE Pro

    バスのボリュームの設定

    Declaration
    • C#
    • C
    public static void SetBusVolumeByName(ArgString busName, float volume)
    void CRIAPI criAtomExAsr_SetBusVolumeByName(const CriChar8 *bus_name, CriFloat32 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)

    LE Pro

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

    Declaration
    • C#
    • C
    public static void SetConfigForWorkSizeCalculation(in CriAtomExAsr.Config config)
    void CRIAPI criAtomExAsr_SetConfigForWorkSizeCalculation(const CriAtomExAsrConfig *config)
    Parameters
    Type Name Description
    CriAtomExAsr.Config config

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

    Remarks

    説明: ワーク領域サイズの計算用に、ASR初期化用コンフィグ構造体 ( CriAtomExAsr.Config 構造体)を仮登録します。 エフェクトのアタッチに必要なワーク領域のサイズは、 ASR初期化時( Initialize(in Config) 関数実行時) に設定する構造体のパラメーターによって変化します。 そのため、通常はエフェクトのアタッチに必要なワーク領域サイズを計算する前に、 ASRを初期化する必要があります。 本関数を使用してASR初期化用コンフィグ構造体を登録した場合、 エフェクトのアタッチに必要なワーク領域のサイズを、 初期化処理なしに計算可能になります。 ( CalculateWorkSizeForDspBusSettingFromAcfData(IntPtr, int, ArgString) 関数が実行可能となります。)

    備考: 引数( config )に null を指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。 現状、本関数で一旦コンフィグ構造体を設定すると、 設定前の状態(未初期化状態でのワーク領域サイズ計算をエラーとする動作) に戻すことができなくなります。 (関数を再度実行してパラメーターを上書きすることは可能です。)

    注意: 本関数で登録した初期化用コンフィグ構造体は、 ASR未初期化状態でのワーク領域サイズ計算にしか使用されません。 ASR初期化後には本関数に設定したパラメーターではなく、 初期化時に指定されたパラメーターがワーク領域サイズの計算に使用されます。 (本関数で登録する構造体のパラメーターと、 ASRの初期化に使用する構造体のパラメーターが異なる場合、 ワーク領域サイズが不足し、オブジェクトの作成に失敗する恐れがあります。) 本関数を実行した場合でも、 CalculateWorkSizeForDspBusSetting(ArgString) 関数は使用できません。 DSPバス設定アタッチ用ワーク領域サイズの計算には、 CalculateWorkSizeForDspBusSettingFromAcfData(IntPtr, int, ArgString) 関数を使用してください。)

    See Also
    CalculateWorkSizeForDspBusSettingFromAcfData(IntPtr, int, ArgString)

    SetDefaultConfig(out Config)

    LE Pro

    ASRの初期化コンフィグ構造体にデフォルト値をセット

    Declaration
    • C#
    • C
    public static void SetDefaultConfig(out CriAtomExAsr.Config pConfig)
    void criAtomExAsr_SetDefaultConfig_(CriAtomExAsrConfig *p_config)
    Parameters
    Type Name Description
    CriAtomExAsr.Config pConfig

    コンフィグ

    Remarks

    説明: Initialize(in Config) 関数に設定するコンフィグ構造体 ( CriAtomExAsr.Config )に、デフォルト値をセットします。

    See Also
    Initialize(in Config)
    CriAtomExAsr.Config

    SetDefaultConfigForBusAnalyzer(out BusAnalyzerConfig)

    LE Pro

    レベル測定機能コンフィグ構造体にデフォルト値をセット

    Declaration
    • C#
    • C
    public static void SetDefaultConfigForBusAnalyzer(out CriAtomExAsr.BusAnalyzerConfig pConfig)
    void criAtomExAsr_SetDefaultConfigForBusAnalyzer_(CriAtomExAsrBusAnalyzerConfig *p_config)
    Parameters
    Type Name Description
    CriAtomExAsr.BusAnalyzerConfig pConfig

    コンフィグ

    Remarks

    説明: AttachBusAnalyzerByName(ArgString, in BusAnalyzerConfig) 関数に設定するコンフィグ構造体 ( CriAtomExAsr.BusAnalyzerConfig )に、デフォルト値をセットします。

    See Also
    AttachBusAnalyzerByName(ArgString, in BusAnalyzerConfig)
    CriAtomExAsr.BusAnalyzerConfig

    SetEffectBypass(ArgString, ArgString, NativeBool)

    LE Pro

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

    Declaration
    • C#
    • C
    public static void SetEffectBypass(ArgString busName, ArgString effectName, NativeBool bypass)
    void CRIAPI criAtomExAsr_SetEffectBypass(const CriChar8 *bus_name, const CriChar8 *effect_name, CriBool bypass)
    Parameters
    Type Name Description
    ArgString busName

    バス名

    ArgString effectName

    エフェクト名

    NativeBool bypass

    バイパス設定(CRI_TRUE:バイパスを行う, CRI_FALSE:バイパスを行わない)

    Remarks

    説明: エフェクトのバイパス設定を行います。 バイパス設定されたエフェクトは音声処理の際、スルーされるようになります。 エフェクトのバイパス設定をする際は、本関数呼び出し前にあらかじめ AttachDspBusSetting(ArgString) 関数でバスが構築されている必要があります。 どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定したIDのエフェクトが存在しない場合、関数は失敗します。

    注意: 音声再生中にバイパス設定を行うとノイズが発生することがあります。

    See Also
    AttachDspBusSetting(ArgString)

    SetEffectParameter(ArgString, ArgString, uint, float)

    LE Pro

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

    Declaration
    • C#
    • C
    public static void SetEffectParameter(ArgString busName, ArgString effectName, uint parameterIndex, float parameterValue)
    void CRIAPI criAtomExAsr_SetEffectParameter(const CriChar8 *bus_name, const CriChar8 *effect_name, CriUint32 parameter_index, CriFloat32 parameter_value)
    Parameters
    Type Name Description
    ArgString busName

    バス名

    ArgString effectName

    エフェクト名

    uint parameterIndex

    エフェクト動作時パラメーターインデックス

    float parameterValue

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

    Remarks

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

    See Also
    AttachDspBusSetting(ArgString)
    UpdateEffectParameters(ArgString, ArgString)

    SetPcmBufferSize(int)

    LE Pro

    PCMバッファーサイズの指定

    Declaration
    • C#
    • C
    public static void SetPcmBufferSize(int numSamples)
    void CRIAPI criAtomExAsr_SetPcmBufferSize(CriSint32 num_samples)
    Parameters
    Type Name Description
    int numSamples

    PCMバッファーサイズ(サンプル数単位)

    Remarks

    説明: Atomライブラリ内でPCMデータの保存に使用するバッファーのサイズを指定します。 (サイズはサンプル数単位で指定します。) バッファーサイズに 0 を指定した場合、2V分のバッファーが作成されます。 本関数にて設定した値は GetPcmBufferSize() 関数にて取得することができます。

    備考: ユーザPCM出力方式でAtomライブラリを初期化した場合、 AtomライブラリはASRの出力結果をライブラリ内のバッファー(PCMバッファー)に保持します。 デフォルト状態では、PCMバッファーのサイズはライブラリ初期化時のパラメーターに応じて自動的に決定されますが、 本関数を実行することで、PCMバッファーのサイズを任意のサイズに変更することが可能です。

    注意: PCMバッファーの確保は InitializeForUserPcmOutput(in ConfigForUserPcmOutput) 関数内で行われます。 そのため、本関数は InitializeForUserPcmOutput(in ConfigForUserPcmOutput) 関数よりも先に実行する必要があります。 PCMバッファーに蓄えられるPCMデータのサンプル数が、 ユーザがPCMデータを取得する間隔より少ない場合、 音途切れ等の問題が発生する可能性があります。 逆に、PCMバッファーのサイズが大きすぎる場合、 発音開始からサウンド出力までの遅延が大きくなる可能性があります。 PC環境では、PCMバッファーサイズを小さくした場合に再生が正しく行えるかどうかが、 サウンドデバイスの性能にも左右されます。 多くの環境で音途切れなく再生を行いたい場合には、 PCMバッファーサイズにある程度大きめの値を指定するか、 または可能な限り短い間隔で GetPcmDataFloat32(int, int, float[][]) 関数を実行してください。

    See Also
    GetPcmBufferSize()

    UnregisterEffectInterface(IntPtr)

    LE Pro

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

    Declaration
    • C#
    • C
    public static void UnregisterEffectInterface(IntPtr afxInterface)
    void CRIAPI criAtomExAsr_UnregisterEffectInterface(CriAtomExAsrAfxInterfaceWithVersionPtr afx_interface)
    Parameters
    Type Name Description
    IntPtr afxInterface

    ユーザ定義エフェクトのバージョン情報付きインターフェース

    Remarks

    説明: エフェクトインターフェースの登録を解除します。 登録を解除したエフェクトはDSPバス設定をアタッチする際に使用できなくなります。 登録処理を行っていないエフェクトインターフェースの登録を解除することはできません(エラーコールバックが返ります)。

    注意: 本関数はCRI ADX Audio Effect Plugin SDKで作成したユーザ定義エフェクトを登録解除する場合にのみ使用して下さい。 登録を行ったユーザ定義エフェクトインターフェースはDSPバス設定がアタッチされている間参照され続けるため、 本関数は必ず DetachDspBusSetting() の呼び出しの後に行って下さい。 Atomライブラリの終了時(Finalize() 関数の呼び出し時)には全てのユーザ定義エフェクトインターフェースの登録が解除されます。

    See Also
    RegisterEffectInterface(IntPtr)
    AttachDspBusSetting(ArgString)
    DetachDspBusSetting()

    UpdateEffectParameters(ArgString, ArgString)

    LE Pro

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

    Declaration
    • C#
    • C
    public static void UpdateEffectParameters(ArgString busName, ArgString effectName)
    void CRIAPI criAtomExAsr_UpdateEffectParameters(const CriChar8 *bus_name, const CriChar8 *effect_name)
    Parameters
    Type Name Description
    ArgString busName

    バス名

    ArgString effectName

    エフェクト名

    Remarks

    説明: デフォルトのASRラックIDを使用してエフェクトの動作時パラメーターを反映します。 動作時パラメーターを実際に反映するには、SetEffectParameter(ArgString, ArgString, uint, float) の他にも本関数を呼び出して下さい。

    See Also
    AttachDspBusSetting(ArgString)
    SetEffectParameter(ArgString, ArgString, uint, float)
    In this article
    Back to top Generated by DocFX