Class CriAtomExAsrRack
ASRラックID
Implements
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public class CriAtomExAsrRack : IDisposable
Remarks
説明: ASRラック管理用のID型です。 CriAtomExAsrRack(in Config, IntPtr, int) 関数でASRラックを作成すると取得できます。
Constructors
CriAtomExAsrRack(in Config, IntPtr, int)
ASRラックの作成
Declaration
public CriAtomExAsrRack(in CriAtomExAsrRack.Config config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsrRack.Config | config | ASR初期化用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: ASRラックの作成を行います。 ASRラックとはバスの集合体のことで、DSPバス設定をアタッチすることができます。 本関数を実行することでASRにASRラックが追加され、レンダリング結果の出力を開始します。 この関数で追加したASRラックは出力先を選択することができ、プラットフォームネイティブの サウンドレンダラか、ASRを選択することで他のASRラックに出力することも可能です。
備考: Initialize(in Config, IntPtr, int) 関数を実行すると、デフォルトのASRラックが追加されます。 criAtomExAsr_*** 関数はデフォルトのASRラックを操作するAPIになります。 ASRの初期化に必要なワークメモリのサイズは、ASR初期化用コンフィグ 構造体( CriAtomExAsr.Config )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で初期化処理を行います。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。 ASRラックの生成に成功した場合は、本関数は生成したASRラックIDを返します。 生成に失敗した場合は -1 を返します。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
See Also
CriAtomExAsrRack(IntPtr, int)
デフォルト設定でのインスタンス作成
Declaration
public CriAtomExAsrRack(IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | work | |
int | workSize |
Properties
BusFilterCallbackByName
バスフィルターコールバック登録用のオブジェクト
Declaration
public CriAtomExAsr.BusFilterCbList BusFilterCallbackByName { get; }
Property Value
Type | Description |
---|---|
CriAtomExAsr.BusFilterCbList |
Remarks
バスフィルターコールバックにはバス毎に異なるコールバック関数を指定できます。 また、エフェクト処理の前後それぞれに異なる関数を指定可能です。 本プロパティで取得できるオブジェクトは、各コールバックオブジェクトを取得可能なリストとして振る舞います。 例として、バス名"MasterOut"のバスのエフェクト処理後のコールバックを登録する場合、次のようになります。
CriWare.CriAtomExAsr.BusFilterCallbackByName["MasterOut"].Post.Event += CallbackMethod;
NativeHandle
ネイティブハンドル
Declaration
public int NativeHandle { get; }
Property Value
Type | Description |
---|---|
int |
Methods
ApplyDspBusSnapshot(ArgString, int)
DSPバススナップショットの適用
Declaration
public void ApplyDspBusSnapshot(ArgString snapshotName, int timeMs)
Parameters
Type | Name | Description |
---|---|---|
ArgString | snapshotName | スナップショット名 |
int | timeMs | 時間(ミリ秒) |
Remarks
説明: DSPバススナップショットを適用します。 本関数を呼び出すと、スナップショットで設定したパラメーターに time_ms 掛けて変化します。 引数 snapshot_name に CRI_NULL を指定すると、元のDSPバス設定の状態(スナップショットが適用されていない状態)に戻ります。
See Also
AttachBusAnalyzerByName(ArgString, in BusAnalyzerConfig)
レベル測定機能の追加
Declaration
public void AttachBusAnalyzerByName(ArgString busName, in CriAtomExAsr.BusAnalyzerConfig config)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
CriAtomExAsr.BusAnalyzerConfig | config | レベル測定機能のコンフィグ構造体 |
Remarks
説明: バスにレベル測定機能を追加し、レベル測定処理を開始します。 本関数を実行後、 ::criAtomExAsrRack_GetBusAnalyzerInfo 関数を実行することで、 RMSレベル(音圧)、ピークレベル(最大振幅)、ピークホールドレベルを 取得することが可能です。 複数バスのレベルを計測するには、バスごとに本関数を呼び出す必要があります。
注意: 本関数は AttachDspBusSetting(ArgString, IntPtr, int) 関数と同一のリソースを操作します。 そのため、現状は AttachDspBusSetting(ArgString, IntPtr, int) 関数を実行すると、 ::criAtomExAsrRack_GetBusAnalyzerInfo 関数による情報取得ができなくなります。 本関数と AttachDspBusSetting(ArgString, IntPtr, int) 関数を併用する際には、 AttachDspBusSetting(ArgString, IntPtr, int) 関数を実行する前に一旦 ::criAtomExAsrRack_DetachBusAnalyzer 関数でレベル測定機能を無効化し、 AttachDspBusSetting(ArgString, IntPtr, int) 関数実行後に再度本関数を実行してください。
AttachDspBusSetting(ArgString, IntPtr, int)
DSPバス設定のアタッチ
Declaration
public void AttachDspBusSetting(ArgString setting, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
ArgString | setting | DSPバス設定の名前 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: DSPバス設定からバスを構築してASRラックにアタッチします。 本関数を実行するには、あらかじめ::criAtomEx_RegisterAcfConfig 関数でACF情報を 登録しておく必要があります
備考: DSPバス設定のアタッチに必要なワークメモリのサイズは、 CRI Atom Craftで作成したDSPバス設定の内容によって変化します。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
See Also
AttachLevelMeter(in LevelMeterConfig, IntPtr, int)
ASRラック指定レベルメーター機能の追加
Declaration
public void AttachLevelMeter(in CriAtom.LevelMeterConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.LevelMeterConfig | config | レベルメーター追加用のコンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: rack_idで指定したASRラックへレベルメーター機能を追加します。 config にnullを指定するとデフォルト設定でレベルメーターが追加されます。 work にnull、work_size に0を指定すると、登録されたユーザアロケーターによって ワーク領域が確保されます。
See Also
AttachLoudnessMeter(in LoudnessMeterConfig, IntPtr, int)
ASRラック指定ラウドネスメーター機能の追加
Declaration
public void AttachLoudnessMeter(in CriAtom.LoudnessMeterConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.LoudnessMeterConfig | config | ラウドネスメーター追加用のコンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: rack_idで指定したASRラックへITU-R BS.1770-3規格のラウドネスメーター機能を追加します。 config にnullを指定するとデフォルト設定でラウドネスメーターが追加されます。 work にnull、work_size に0を指定すると、登録されたユーザアロケーターによって ワーク領域が確保されます。
See Also
AttachTruePeakMeter(in TruePeakMeterConfig, IntPtr, int)
ASRラック指定トゥルーピークメーター機能の追加
Declaration
public void AttachTruePeakMeter(in CriAtom.TruePeakMeterConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.TruePeakMeterConfig | config | トゥルーピークメーター追加用のコンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: rack_idで指定したASRラックへITU-R BS.1770-3規格のトゥルーピークメーター機能を追加します。 config にnullを指定するとデフォルト設定でトゥルーピークメーターが追加されます。 work にnull、work_size に0を指定すると、登録されたユーザアロケーターによって ワーク領域が確保されます。
See Also
CalculateWorkSize(in Config)
ASRラック作成用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSize(in CriAtomExAsrRack.Config config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsrRack.Config | config | ASR初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int |
Remarks
説明: ASRラックの作成に必要なワーク領域のサイズを取得します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに CriAtomExAsrRack(in Config, IntPtr, int) 関数でASRの初期化を行う場合、 本関数で計算したサイズ分のメモリをワーク領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ASRラックの初期化に必要なワークメモリのサイズは、ASRラック初期化用コンフィグ 構造体( CriAtomExAsrRack.Config )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
See Also
CalculateWorkSizeForDspBusSetting(ArgString)
DSPバス設定のアタッチ用ワークサイズの計算
Declaration
public int CalculateWorkSizeForDspBusSetting(ArgString setting)
Parameters
Type | Name | Description |
---|---|---|
ArgString | setting | DSPバス設定の名前 |
Returns
Type | Description |
---|---|
int | 必要ワーク領域サイズ |
Remarks
説明: DSPバス設定からバスを構築するのに必要なワーク領域サイズを計算します。 本関数を実行するには、あらかじめ::criAtomEx_RegisterAcfConfig 関数でACF情報を 登録しておく必要があります ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: DSPバス設定のアタッチに必要なワークメモリのサイズは、CRI Atom Craftで作成した DSPバス設定の内容によって変化します。
See Also
CalculateWorkSizeForDspBusSettingFromAcfDataAndConfig(IntPtr, int, in Config, ArgString)
DSPバス設定のアタッチ用ワークサイズの計算
Declaration
public static int CalculateWorkSizeForDspBusSettingFromAcfDataAndConfig(IntPtr acfData, int acfDataSize, in CriAtomExAsrRack.Config rackConfig, ArgString setting)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | acfData | ACFデータ |
int | acfDataSize | ACFデータサイズ |
CriAtomExAsrRack.Config | rackConfig | ASRラック作成用コンフィグ構造体 |
ArgString | setting | DSPバス設定の名前 |
Returns
Type | Description |
---|---|
int | 必要ワーク領域サイズ |
Remarks
説明: DSPバス設定からバスを構築するのに必要なワーク領域サイズを計算します。 CalculateWorkSizeForDspBusSettingFromConfig(in Config, ArgString) 関数と違い、 メモリ上にロード済みのACFデータを使用してワークメモリサイズの計算が可能です。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: DSPバス設定のアタッチに必要なワークメモリのサイズは、CRI Atom Craftで作成した DSPバス設定の内容によって変化します。
See Also
CalculateWorkSizeForDspBusSettingFromConfig(in Config, ArgString)
DSPバス設定のアタッチ用ワークサイズの計算
Declaration
public static int CalculateWorkSizeForDspBusSettingFromConfig(in CriAtomExAsrRack.Config config, ArgString setting)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsrRack.Config | config | ASRラック作成用コンフィグ構造体 |
ArgString | setting | DSPバス設定の名前 |
Returns
Type | Description |
---|---|
int | 必要ワーク領域サイズ |
Remarks
説明: DSPバス設定からバスを構築するのに必要なワーク領域サイズを計算します。 本関数を実行するには、あらかじめ::criAtomEx_RegisterAcfConfig 関数でACF情報を 登録しておく必要があります configには CriAtomExAsrRack(in Config, IntPtr, int) 関数に指定するものと同じ構造体を指定してください。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: DSPバス設定のアタッチに必要なワークメモリのサイズは、CRI Atom Craftで作成した DSPバス設定の内容によって変化します。
See Also
CalculateWorkSizeForLevelMeter(in LevelMeterConfig)
ASRラック指定レベルメーター機能用のワークサイズの計算
Declaration
public int CalculateWorkSizeForLevelMeter(in CriAtom.LevelMeterConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.LevelMeterConfig | config | レベルメーター追加用のコンフィグ構造体 |
Returns
Type | Description |
---|---|
int | 必要なワーク領域サイズ |
Remarks
説明: rack_idで指定したASRラックへのレベルメーター追加に必要なワーク領域サイズを計算します。 config にnullを指定するとデフォルト設定で計算されます。
See Also
CalculateWorkSizeForLoudnessMeter(in LoudnessMeterConfig)
ASRラック指定ラウドネスメーター機能用のワークサイズの計算
Declaration
public int CalculateWorkSizeForLoudnessMeter(in CriAtom.LoudnessMeterConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.LoudnessMeterConfig | config | ラウドネスメーター追加用のコンフィグ構造体 |
Returns
Type | Description |
---|---|
int | 必要なワーク領域サイズ |
Remarks
説明: rack_idで指定したASRラックへのITU-R BS.1770-3規格のラウドネスメーター追加に必要なワーク領域サイズを計算します。 config にnullを指定するとデフォルト設定で計算されます。
See Also
CalculateWorkSizeForTruePeakMeter(in TruePeakMeterConfig)
ASRラック指定トゥルーピークメーター機能用のワークサイズの計算
Declaration
public int CalculateWorkSizeForTruePeakMeter(in CriAtom.TruePeakMeterConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.TruePeakMeterConfig | config | トゥルーピークメーター追加用のコンフィグ構造体 |
Returns
Type | Description |
---|---|
int | 必要なワーク領域サイズ |
Remarks
説明: rack_idで指定したASRラックへのITU-R BS.1770-3規格のトゥルーピークメーター追加に必要なワーク領域サイズを計算します。 config にnullを指定するとデフォルト設定で計算されます。
See Also
DetachBusAnalyzerByName(ArgString)
レベル測定機能の削除
Declaration
public void DetachBusAnalyzerByName(ArgString busName)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
Remarks
説明: バスからレベル測定機能を削除します。
DetachDspBusSetting()
DSPバス設定のデタッチ
Declaration
public void DetachDspBusSetting()
Remarks
説明: DSPバス設定をASRラックからデタッチします。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 DSPバス設定アタッチ時に確保されたメモリ領域が解放されます。 (DSPバス設定アタッチ時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
See Also
DetachLevelMeter()
ASRラック指定レベルメーター機能の解除
Declaration
public void DetachLevelMeter()
Remarks
説明: rack_idで指定したASRラックに追加されたレベルメーター機能を解除します。
See Also
DetachLoudnessMeter()
ASRラック指定ラウドネスメーター機能の解除
Declaration
public void DetachLoudnessMeter()
Remarks
説明: rack_idで指定したASRラックのラウドネスメーター機能を解除します。
See Also
DetachTruePeakMeter()
ASRラック指定トゥルーピークメーター機能の解除
Declaration
public void DetachTruePeakMeter()
Remarks
説明: rack_idで指定したASRラックに追加したトゥルーピークメーター機能を解除します。
See Also
Dispose()
ASRラックの破棄
Declaration
public void Dispose()
Remarks
説明: ASRラックの破棄を行います。 本関数を実行することで、レンダリング結果の出力が停止されます。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 ASRラック作成時に確保されたメモリ領域が解放されます。 (ASRラック作成時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
See Also
GetAisacControlById(uint, out float)
指定したASRラックのAISACコントロールに値を取得(コントロールID指定)
Declaration
public bool GetAisacControlById(uint controlId, out float controlValue)
Parameters
Type | Name | Description |
---|---|---|
uint | controlId | AISACコントロールID |
float | controlValue | AISACコントロール値 |
Returns
Type | Description |
---|---|
bool | 取得に成功したか?(true:取得に成功した, false:取得に失敗した) |
Remarks
説明: 指定したASRラックにアタッチされているDSPバス設定のAISACコントロールに値を取得します。 失敗した場合、エラーコールバックが返されます。
GetAisacControlByName(ArgString, out float)
指定したASRラックのAISACコントロールに値を取得(コントロール名指定)
Declaration
public bool GetAisacControlByName(ArgString controlName, out float controlValue)
Parameters
Type | Name | Description |
---|---|---|
ArgString | controlName | AISACコントロール名 |
float | controlValue | AISACコントロール値 |
Returns
Type | Description |
---|---|
bool | 取得に成功したか?(true:取得に成功した, false:取得に失敗した) |
Remarks
説明: 指定したASRラックにアタッチされているDSPバス設定のAISACコントロールに値を取得します。 失敗した場合、エラーコールバックが返されます。
GetAmbisonicRackId()
Ambisonics再生用ASRラックIDを取得
Declaration
public static CriAtomExAsrRack GetAmbisonicRackId()
Returns
Type | Description |
---|---|
CriAtomExAsrRack | ASRラックID |
Remarks
説明: Ambisonics再生に使用するASRラックIDを取得します。 Ambisonics再生用ASRラックは、出力ポート「_ambisonics」の設定があるACFの登録により自動で作成されます。 取得したASRラックIDはACF登録中のみ有効です。 ACFの登録を解除すると、Ambisonics再生用ASRラックも削除されるため取得したASRラックIDは無効になります。 Ambisonics再生用ASRラックが作成されていない場合、RackIllegalIdを返します。
GetAmplitudeAnalyzerRms(int, out float, uint)
指定したバスの振幅解析器の解析結果取得
Declaration
public bool GetAmplitudeAnalyzerRms(int busNo, out float rms, uint numChannels)
Parameters
Type | Name | Description |
---|---|---|
int | busNo | バス番号 |
float | rms | 振幅結果出力バッファー |
uint | numChannels | 振幅結果出力バッファーのチャンネル数 |
Returns
Type | Description |
---|---|
bool | 取得に成功したか?(true:取得に成功した, false:取得に失敗した) |
Remarks
説明: 振幅解析器の現在の解析結果(RMS値)を取得します。 指定したバスに振幅解析器がない場合や、指定したチャンネル数がASRバスよりも多い場合、取得に失敗します。
GetAmplitudeAnalyzerRmsByName(ArgString, out float, uint)
指定したバスの振幅解析器の解析結果取得
Declaration
public bool GetAmplitudeAnalyzerRmsByName(ArgString busName, out float rms, uint numChannels)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
float | rms | 振幅結果出力バッファー |
uint | numChannels | 振幅結果出力バッファーのチャンネル数 |
Returns
Type | Description |
---|---|
bool | 取得に成功したか?(true:取得に成功した, false:取得に失敗した) |
Remarks
説明: 振幅解析器の現在の解析結果(RMS値)を取得します。 指定したバスに振幅解析器がない場合や、指定したチャンネル数がASRバスよりも多い場合、取得に失敗します。
GetAppliedDspBusSnapshotName()
適用中のDSPバススナップショット名の取得
Declaration
public NativeString GetAppliedDspBusSnapshotName()
Returns
Type | Description |
---|---|
NativeString |
Remarks
説明: ASRラックIDを指定して適用中のDSPバススナップショット名を取得します。 スナップショットが適用されていない場合はCRI_NULLが返ります。
See Also
GetBusAnalyzerInfoByName(ArgString, out BusAnalyzerInfo)
レベル測定結果の取得
Declaration
public void GetBusAnalyzerInfoByName(ArgString busName, out CriAtomExAsr.BusAnalyzerInfo info)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
CriAtomExAsr.BusAnalyzerInfo | info | レベル測定結果の構造体 |
Remarks
説明: バスからレベル測定機能の結果を取得します。
GetBusPanInfoByName(ArgString, out BusPanInfo)
バスのパン情報の取得
Declaration
public void GetBusPanInfoByName(ArgString busName, out CriAtomExAsr.BusPanInfo panInfo)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
CriAtomExAsr.BusPanInfo | panInfo | パン情報 |
Remarks
説明: バスのパン情報を取得します。
GetBusVolumeByName(ArgString, in float)
バスのボリュームの取得
Declaration
public void GetBusVolumeByName(ArgString busName, in float volume)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
float | volume | ボリューム値 |
Remarks
説明: バスのボリュームを設定します。 センドタイプがポストボリューム、ポストパンのセンド先に有効です。 ボリューム値は実数値で得られます。 ボリュームのデフォルト値はCRI Atom Craftで設定した値です。
GetChannelBasedAudioRackId()
チャンネルベース 再生用 ASR ラックIDを取得
Declaration
public static CriAtomExAsrRack GetChannelBasedAudioRackId()
Returns
Type | Description |
---|---|
CriAtomExAsrRack | ASRラックID |
Remarks
説明: チャンネルベース再生用ASRラックは、出力ポート「_7_1_4」の設定で 「専用のミキサーを使用する」にTrueを指定しているACFの登録により自動で作成されます。 取得したASRラックIDはACF登録中のみ有効です。 ACFの登録を解除すると、チャンネルベース再生用ASRラックも削除されるため取得したASRラックIDは無効になります。 チャンネルベース再生用ASRラックが作成されていない場合、RackIllegalIdを返します。
GetCompressorGain(int, out float, uint)
指定したバスのコンプレッサーの振幅乗算値取得
Declaration
public bool GetCompressorGain(int busNo, out float gain, uint numChannels)
Parameters
Type | Name | Description |
---|---|---|
int | busNo | バス番号 |
float | gain | 振幅乗算値出力バッファー |
uint | numChannels | 振幅乗算値出力バッファーのチャンネル数 |
Returns
Type | Description |
---|---|
bool | 取得に成功したか?(true:取得に成功した, false:取得に失敗した) |
Remarks
説明: コンプレッサーが入力波形に乗算する値を取得します。 指定したバスにコンプレッサーがない場合や、指定したチャンネル数がASRバスよりも多い場合、取得に失敗します。
GetCompressorGainByName(ArgString, out float, uint)
指定したバスのコンプレッサーの振幅乗算値取得
Declaration
public bool GetCompressorGainByName(ArgString busName, out float gain, uint numChannels)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
float | gain | 振幅乗算値出力バッファー |
uint | numChannels | 振幅乗算値出力バッファーのチャンネル数 |
Returns
Type | Description |
---|---|
bool | 取得に成功したか?(true:取得に成功した, false:取得に失敗した) |
Remarks
説明: コンプレッサーが入力波形に乗算する値を取得します。 指定したバスにコンプレッサーがない場合や、指定したチャンネル数がASRバスよりも多い場合、取得に失敗します。
GetCompressorRms(int, out float, uint)
指定したバスのコンプレッサーの振幅値取得
Declaration
public bool GetCompressorRms(int busNo, out float rms, uint numChannels)
Parameters
Type | Name | Description |
---|---|---|
int | busNo | バス番号 |
float | rms | 振幅乗算値出力バッファー |
uint | numChannels | 振幅乗算値出力バッファーのチャンネル数 |
Returns
Type | Description |
---|---|
bool | 取得に成功したか?(true:取得に成功した, false:取得に失敗した) |
Remarks
説明: コンプレッサーに適用されている振幅値を取得します。 指定したバスにコンプレッサーがない場合や、指定したチャンネル数がASRバスよりも多い場合、取得に失敗します。
GetCompressorRmsByName(ArgString, out float, uint)
指定したバスのコンプレッサーの振幅値取得
Declaration
public bool GetCompressorRmsByName(ArgString busName, out float rms, uint numChannels)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
float | rms | 振幅値出力バッファー |
uint | numChannels | 振幅値出力バッファーのチャンネル数 |
Returns
Type | Description |
---|---|
bool | 取得に成功したか?(true:取得に成功した, false:取得に失敗した) |
Remarks
説明: コンプレッサーに適用されている振幅値を取得します。 指定したバスにコンプレッサーがない場合や、指定したチャンネル数がASRバスよりも多い場合、取得に失敗します。
GetDeviceType()
指定したASRラックの出力デバイスタイプを取得
Declaration
public CriAtom.DeviceType GetDeviceType()
Returns
Type | Description |
---|---|
CriAtom.DeviceType | 出力デバイスのタイプ |
Remarks
説明: 指定したASRラックが出力しているデバイスのタイプを取得します。
備考: デバイスタイプが取得できないプラットフォームでは常に Unknown が返されます。 また、プラットフォームによっては取得に時間がかかる場合があるため、 SetDeviceUpdateCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr) で登録したコールバック関数の中で使用することが推奨されます。
See Also
GetEffectBypass(ArgString, ArgString)
エフェクトのバイパス設定の取得
Declaration
public bool GetEffectBypass(ArgString busName, ArgString effectName)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
ArgString | effectName | エフェクト名 |
Returns
Type | Description |
---|---|
bool | バイパス設定されているか?(true:バイパスを行う, false:バイパスを行わない) |
Remarks
説明: エフェクトのバイパス設定を取得します。 バイパス設定されたエフェクトは音声処理の際、スルーされるようになります。 エフェクトのバイパス設定をする際は、本関数呼び出し前にあらかじめ AttachDspBusSetting(ArgString, IntPtr, int) 関数でバスが構築されている必要があります。 どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定した名前のエフェクトが存在しない場合、関数はfalseを返却します。
See Also
GetEffectParameter(ArgString, ArgString, uint)
エフェクトの動作時パラメーターの取得
Declaration
public float GetEffectParameter(ArgString busName, ArgString effectName, uint parameterIndex)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
ArgString | effectName | エフェクト名 |
uint | parameterIndex | エフェクトの動作時パラメーターインデックス |
Returns
Type | Description |
---|---|
float |
Remarks
説明: エフェクトの動作時パラメーターを取得します。 動作時パラメーターを取得する際は、本関数呼び出し前にあらかじめ AttachDspBusSetting(ArgString, IntPtr, int) 関数でバスが構築されている必要があります。 どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定した名前のエフェクトが存在しない場合、関数は失敗します。
See Also
GetLevelInfo(out LevelInfo)
ASRラック指定レベル情報の取得
Declaration
public void GetLevelInfo(out CriAtom.LevelInfo info)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.LevelInfo | info | レベル情報の構造体 |
Remarks
説明: rack_idで指定したASRラックのレベルメーターの結果を取得します。 指定するラックには AttachLevelMeter(in LevelMeterConfig, IntPtr, int) 関数であらかじめ レベルメーター機能を追加しておく必要があります。
See Also
GetLoudnessInfo(out LoudnessInfo)
ASRラック指定ラウドネスメーター情報の取得
Declaration
public void GetLoudnessInfo(out CriAtom.LoudnessInfo info)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.LoudnessInfo | info | ラウドネス情報の構造体 |
Remarks
説明: rack_idで指定したASRラックのラウドネスメーターの結果を取得します。 指定するラックには AttachLoudnessMeter(in LoudnessMeterConfig, IntPtr, int) 関数であらかじめ ラウドネスメーター機能を追加しておく必要があります。
See Also
GetNumBufferedSamples()
ASRラックのPCMデータ残量の取得
Declaration
public int GetNumBufferedSamples()
Returns
Type | Description |
---|---|
int | PCMデータ残量(サンプル数単位) |
Remarks
説明: GetPcmDataFloat32(int, int, float[][]) 関数で取得可能なサンプル数を返します。
See Also
GetNumBuses()
最大バス数を取得
Declaration
public int GetNumBuses()
Returns
Type | Description |
---|---|
int |
Remarks
説明: 指定したIDのASRラックで利用可能な最大バス数を取得します。 デフォルト設定では DefaultNumBuses を返します。 最大バス数を変更するには、CriAtomExAsrRack.Config::num_buses を変更して ASRラックを作成してください。
See Also
GetNumRenderedSamples(ref long, ref int)
ASRラックの総レンダリング量の取得
Declaration
public void GetNumRenderedSamples(ref long numSamples, ref int samplingRate)
Parameters
Type | Name | Description |
---|---|---|
long | numSamples | |
int | samplingRate |
Remarks
説明: ASRラックのレンダリング済みサンプル数とサンプリングレートを取得します。
注意: 本関数のレンダリング済みサンプル数の増加パターンは実行中のプラットフォームや出力デバイスによって変化する可能性があります。
GetObjectBasedAudioRackId()
ObjectBasedAudio 再生用ASRラックIDを取得
Declaration
public static CriAtomExAsrRack GetObjectBasedAudioRackId()
Returns
Type | Description |
---|---|
CriAtomExAsrRack | ASRラックID |
Remarks
説明: ObjectBasedAudio再生に使用するASRラックIDを取得します。 ObjectBasedAudio再生用ASRラックは、出力ポート「_object_based_audio」の設定があるACFの登録により自動で作成されます。 取得したASRラックIDはACF登録中のみ有効です。 ACFの登録を解除すると、ObjectBasedAudio再生用ASRラックも削除されるため取得したASRラックIDは無効になります。 ObjectBasedAudio再生用ASRラックが作成されていない場合、RackIllegalIdを返します。
GetPcmDataFloat32(int, int, float[][])
ASRラックのPCMデータの取得
Declaration
public int GetPcmDataFloat32(int outputChannels, int outputSamples, float[][] outputBuffer)
Parameters
Type | Name | Description |
---|---|---|
int | outputChannels | 出力バッファーのチャンネル数 |
int | outputSamples | 出力バッファーに格納可能なサンプル数 |
float[][] | outputBuffer | 出力バッファー |
Returns
Type | Description |
---|---|
int | 取得できたサンプル数 |
Remarks
説明: ASRラックの出力PCMデータを取得します。 本関数を使用するには、事前に InitializeForUserPcmOutput(in ConfigForUserPcmOutput, IntPtr, int) 関数を使用してライブラリを初期化しておく必要があります。
注意: 本関数の呼び出しは、独立したスレッド上で定期的に行う必要があります。 現状、AtomライブラリのAPIには、 PCMデータが出力されるまで処理を返さないものがいくつか存在します。 (ボイスプールの破棄処理等。) こういった関数と本関数とを同一スレッド上で順番に呼び出すと、 当該APIがPCMデータの出力を永遠に待ち続ける形になり、 処理が復帰しなくなる可能性があります。
See Also
GetPerformanceInfo(out PerformanceInfo)
パフォーマンス情報の取得
Declaration
public void GetPerformanceInfo(out CriAtomExAsrRack.PerformanceInfo info)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsrRack.PerformanceInfo | info | パフォーマンス情報 |
Remarks
説明: パフォーマンス情報を取得します。 本関数は、指定されたASRラックのレンダリング負荷のみを計測します。
備考: スレッドモデルにMultiWithSonicsyncを指定しない場合、 本関数を使用する必要はありません。 (MultiWithSonicsync以外のスレッドモデルを使用している場合、 本関数の処理負荷は、 ::CriAtomExPerformanceInfo に包含されています。)
See Also
GetTruePeakInfo(out TruePeakInfo)
ASRラック指定トゥルーピーク情報の取得
Declaration
public void GetTruePeakInfo(out CriAtom.TruePeakInfo info)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.TruePeakInfo | info | トゥルーピーク情報の構造体 |
Remarks
説明: rack_idで指定したASRラックのトゥルーピークメーターの測定結果を取得します。 本関数を呼び出す前にライブラリへトゥルーピークメーターを追加しておく必要があります。
See Also
ResetLoudnessMeter()
ASRラック指定ラウドネスメーターのリセット
Declaration
public void ResetLoudnessMeter()
Remarks
説明: rack_idで指定したASRラックのラウドネスメーターの蓄積データをリセットします。 本関数を呼び出す前にライブラリへラウドネスメーターを追加しておく必要があります。
See Also
ResetPerformanceMonitor()
パフォーマンスモニターのリセット
Declaration
public void ResetPerformanceMonitor()
Remarks
説明: 現在までの計測結果を破棄します。 パフォーマンスモニターは、 ASRラック作成直後からパフォーマンス情報の取得を開始し、計測結果を累積します。 以前の計測結果を以降の計測結果に含めたくない場合には、 本関数を実行し、累積された計測結果を一旦破棄する必要があります。
SetAisacControlById(uint, float)
指定したASRラックのAISACコントロールに値を適用(コントロールID指定)
Declaration
public bool SetAisacControlById(uint controlId, float controlValue)
Parameters
Type | Name | Description |
---|---|---|
uint | controlId | AISACコントロールID |
float | controlValue | AISACコントロール値 |
Returns
Type | Description |
---|---|
bool | 適用に成功したか?(true:適用に成功した, false:適用に失敗した) |
Remarks
説明: 指定したASRラックにアタッチされているDSPバス設定のAISACコントロールに値をセットします。 失敗した場合、エラーコールバックが返されます。
SetAisacControlByName(ArgString, float)
指定したASRラックのAISACコントロールに値を適用(コントロール名指定)
Declaration
public bool SetAisacControlByName(ArgString controlName, float controlValue)
Parameters
Type | Name | Description |
---|---|---|
ArgString | controlName | AISACコントロール名 |
float | controlValue | AISACコントロール値 |
Returns
Type | Description |
---|---|
bool | 適用に成功したか?(true:適用に成功した, false:適用に失敗した) |
Remarks
説明: 指定したASRラックにアタッチされているDSPバス設定のAISACコントロールに値をセットします。 失敗した場合、エラーコールバックが返されます。
SetAlternateRackId(CriAtomExAsrRack)
代替ASRラックIDの設定
Declaration
public void SetAlternateRackId(CriAtomExAsrRack altRackId)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsrRack | altRackId | 代替ASRラックID |
Remarks
説明: 指定したIDのASRラックが存在しない場合に、代わりになるASRラックのIDを設定します。 ( rack_id のASRラックが存在しない場合に、その音声を alt_rack_id のASRラック経由で出力します。) デフォルト設定は RackDefaultId (指定したIDのASRラックがなければデフォルトASRから出力する)です。
備考: 存在しないASRラックへの出力をエラーとして扱いたい場合、 alt_rack_id に rack_id と同じ値を設定してください。
SetBusFilterCallbackByName(ArgString, delegate* unmanaged[Cdecl]<IntPtr, PcmFormat, int, int, IntPtr*, void>, delegate* unmanaged[Cdecl]<IntPtr, PcmFormat, int, int, IntPtr*, void>, IntPtr)
波形フィルターコールバック関数の登録
Declaration
public 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 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 void SetBusPanInfoByName(ArgString busName, in CriAtomExAsr.BusPanInfo panInfo)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
CriAtomExAsr.BusPanInfo | panInfo | パン情報 |
Remarks
説明: バスのパン情報を設定します。 センドタイプがポストパンのセンド先に有効です。 パン情報のデフォルト値は CRI Atom Craft で設定した値です。
SetBusSendLevelByName(ArgString, ArgString, float)
バスのセンドレベルの設定
Declaration
public 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 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で設定した値です。
SetDefaultConfig(out Config)
CriAtomAsr.Configへのデフォルトパラメーターをセット
Declaration
public static void SetDefaultConfig(out CriAtomExAsrRack.Config pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAsrRack.Config | pConfig | 初期化用コンフィグ構造体へのポインタ |
Remarks
説明: Initialize(in Config, IntPtr, int) 関数に設定するコンフィグ構造体( CriAtomAsr.Config )に、 デフォルトの値をセットします。
See Also
SetEffectBypass(ArgString, ArgString, NativeBool)
エフェクトのバイパス設定
Declaration
public 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バス設定に依存します。指定したバスに指定した名前のエフェクトが存在しない場合、関数は失敗します。
注意: 音声再生中にバイパス設定を行うとノイズが発生することがあります。
See Also
SetEffectParameter(ArgString, ArgString, uint, float)
エフェクト動作時パラメーターの設定
Declaration
public void SetEffectParameter(ArgString busName, ArgString effectName, uint parameterIndex, float parameterValue)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
ArgString | effectName | エフェクト名 |
uint | parameterIndex | エフェクト動作時パラメーターインデックス |
float | parameterValue | エフェクトパラメーター設定値 |
Remarks
説明: エフェクトの動作時パラメーターを設定します。 エフェクトパラメーターを設定する際は、本関数呼び出し前にあらかじめ AttachDspBusSetting(ArgString, IntPtr, int) 関数でバスが構築されている必要があります。 どのバスにどのエフェクトが存在するかは、アタッチしたDSPバス設定に依存します。指定したバスに指定した名前のエフェクトが存在しない場合、関数は失敗します。 また、
See Also
UpdateEffectParameters(ArgString, ArgString)
エフェクトの動作時パラメーターの反映
Declaration
public void UpdateEffectParameters(ArgString busName, ArgString effectName)
Parameters
Type | Name | Description |
---|---|---|
ArgString | busName | バス名 |
ArgString | effectName | エフェクト名 |
Remarks
説明: エフェクトの動作時パラメーターを反映します。 動作時パラメーターを実際に反映するには、SetEffectParameter(ArgString, ArgString, uint, float) の他にも本関数を呼び出して下さい。