Class CriAtomExVoicePool
ボイスプールオブジェクト
Implements
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public class CriAtomExVoicePool : IDisposable
Remarks
説明: ボイスプールを制御するためのオブジェクトです。 AllocateStandardVoicePool(in StandardVoicePoolConfig, IntPtr, int) 関数等でボイスプールを作成した際、 関数の戻り値として返されます。 ボイスプールオブジェクトは、ボイスプールの情報取得や、ボイスプールを解放する 際に使用します。
Properties
NativeHandle
ネイティブハンドル
Declaration
public NativeHandleIntPtr NativeHandle { get; }
Property Value
Type | Description |
---|---|
NativeHandleIntPtr |
Methods
AllocateAdxVoicePool(in AdxVoicePoolConfig, IntPtr, int)
ADXボイスプールの作成
Declaration
public static CriAtomExVoicePool AllocateAdxVoicePool(in CriAtomEx.AdxVoicePoolConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.AdxVoicePoolConfig | config | ADXボイスプール作成用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExVoicePool | ボイスプールオブジェクト |
Remarks
説明: ADXボイスプールを作成します。 ボイスプールを作成する際には、ワーク領域としてメモリを渡す必要があります。 必要なメモリのサイズは、 CalculateWorkSizeForAdxVoicePool(in AdxVoicePoolConfig) 関数で計算します。 (SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。) 本関数を実行することで、ADX再生が可能なボイスがプールされます。 AtomExプレーヤーでADXデータ(もしくはADXデータを含むキュー)の再生を行うと、 AtomExプレーヤーは作成されたADXボイスプールからボイスを取得し、再生を行います。 ボイスプールの作成に成功すると、戻り値としてボイスプールオブジェクトが返されます。 アプリケーション終了時には、作成したボイスプールを Dispose() 関数で破棄する必要があります。 ボイスプールの作成に失敗すると、本関数はnullを返します。 ボイスプールの作成に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプール作成時には、プール作成用コンフィグ構造体 ( CriAtomEx.AdxVoicePoolConfig 構造体の num_voices ) で指定した数分のボイスが、ライブラリ内で作成されます。 作成するボイスの数が多いほど、同時に再生可能なADX音声の数は増えますが、 反面、使用するメモリは増加します。 ボイスプール作成時には、ボイス数の他に、再生可能な音声のチャンネル数、 サンプリング周波数、ストリーム再生の有無を指定します。 ボイスプール作成時に指定する音声チャンネル数( CriAtomEx.AdxVoicePoolConfig 構造体の player_config.max_channels )は、ボイスプール内のボイスが再生できる 音声データのチャンネル数になります。 チャンネル数を少なくすることで、ボイスプールの作成に必要なメモリサイズは 小さくなりますが、指定されたチャンネル数を越えるデータは再生できなくなります。 例えば、ボイスプールをモノラルで作成した場合、ステレオのデータは再生できません。 (ステレオデータを再生する場合、AtomExプレーヤーは、ステレオが再生可能な ボイスプールからのみボイスを取得します。) ただし、ステレオのボイスプールを作成した場合、モノラルデータ再生時にステレオ ボイスプールのボイスが使用される可能性はあります。 サンプリングレート( CriAtomEx.AdxVoicePoolConfig 構造体の player_config.max_sampling_rate )についても、値を下げることでもボイスプール に必要なメモリサイズは小さくすることが可能ですが、指定されたサンプリングレート を越えるデータは再生できなくなります。 (指定されたサンプリングレート以下のデータのみが再生可能です。) ストリーミング再生の有無(CriAtomEx.AdxVoicePoolConfig 構造体の player_config.streaming_flag )についても、オンメモリ再生のみのボイスプールは ストリーミング再生可能なボイスプールに比べ、サイズが小さくなります。 尚、AtomExプレーヤーがデータを再生した際に、 ボイスプール内のボイスが全て使用中であった場合、 ボイスプライオリティによる発音制御が行われます。 (ボイスプライオリティの詳細は SetVoicePriority(int) 関数の説明をご参照ください。)
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数にワーク領域をセットした場合、セットした領域のメモリをボイスプール破棄時 までアプリケーション中で保持し続ける必要があります。 (セット済みのワーク領域に値を書き込んだり、メモリ解放したりしてはいけません。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。 ストリーム再生用のボイスプールは、内部的にボイスの数分だけローダー( CriFsLoader ) を確保します。 ストリーム再生用のボイスプールを作成する場合、ボイス数分のローダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。 本関数は完了復帰型の関数です。 ボイスプールの作成にかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 ボイスプールの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
AllocateAiffVoicePool(in AiffVoicePoolConfig, IntPtr, int)
AIFFボイスプールの作成
Declaration
public static CriAtomExVoicePool AllocateAiffVoicePool(in CriAtomEx.AiffVoicePoolConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.AiffVoicePoolConfig | config | AIFFボイスプール作成用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExVoicePool | ボイスプールオブジェクト |
Remarks
説明: AIFFボイスプールを作成します。 ボイスプールを作成する際には、ワーク領域としてメモリを渡す必要があります。 必要なメモリのサイズは、 CalculateWorkSizeForAiffVoicePool(in AiffVoicePoolConfig) 関数で計算します。 (SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。) 本関数を実行することで、AIFF再生が可能なボイスがプールされます。 AtomExプレーヤーでAIFFデータ(もしくはAIFFデータを含むキュー)の再生を行うと、 AtomExプレーヤーは作成されたAIFFボイスプールからボイスを取得し、再生を行います。 ボイスプールの作成に成功すると、戻り値としてボイスプールオブジェクトが返されます。 アプリケーション終了時には、作成したボイスプールを Dispose() 関数で破棄する必要があります。 ボイスプールの作成に失敗すると、本関数はnullを返します。 ボイスプールの作成に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプール作成時には、プール作成用コンフィグ構造体 ( CriAtomEx.AiffVoicePoolConfig 構造体の num_voices ) で指定した数分のボイスが、ライブラリ内で作成されます。 作成するボイスの数が多いほど、同時に再生可能なAIFF音声の数は増えますが、 反面、使用するメモリは増加します。 ボイスプール作成時には、ボイス数の他に、再生可能な音声のチャンネル数、 サンプリング周波数、ストリーム再生の有無を指定します。 ボイスプール作成時に指定する音声チャンネル数( CriAtomEx.AiffVoicePoolConfig 構造体の player_config.max_channels )は、ボイスプール内のボイスが再生できる 音声データのチャンネル数になります。 チャンネル数を少なくすることで、ボイスプールの作成に必要なメモリサイズは 小さくなりますが、指定されたチャンネル数を越えるAIFFデータは再生できなくなります。 例えば、ボイスプールをモノラルで作成した場合、ステレオのAIFFデータは再生できません。 (ステレオAIFFデータを再生する場合、AtomExプレーヤーは、ステレオAIFFが再生可能な ボイスプールからのみボイスを取得します。) ただし、ステレオのボイスプールを作成した場合、モノラルデータ再生時にステレオ ボイスプールのボイスが使用される可能性はあります。 サンプリングレート( CriAtomEx.AiffVoicePoolConfig 構造体の player_config.max_sampling_rate )についても、値を下げることでもボイスプール に必要なメモリサイズは小さくすることが可能ですが、指定されたサンプリングレート を越えるAIFFデータは再生できなくなります。 (指定されたサンプリングレート以下のAIFFデータのみが再生可能です。) ストリーミング再生の有無(CriAtomEx.AiffVoicePoolConfig 構造体の player_config.streaming_flag )についても、オンメモリ再生のみのボイスプールは ストリーミング再生可能なボイスプールに比べ、サイズが小さくなります。 尚、AtomExプレーヤーがデータを再生した際に、 ボイスプール内のボイスが全て使用中であった場合、 ボイスプライオリティによる発音制御が行われます。 (ボイスプライオリティの詳細は SetVoicePriority(int) 関数の説明をご参照ください。)
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数にワーク領域をセットした場合、セットした領域のメモリをボイスプール破棄時 までアプリケーション中で保持し続ける必要があります。 (セット済みのワーク領域に値を書き込んだり、メモリ解放したりしてはいけません。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。 ストリーム再生用のボイスプールは、内部的にボイスの数分だけローダー( CriFsLoader ) を確保します。 ストリーム再生用のボイスプールを作成する場合、ボイス数分のローダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。 本関数は完了復帰型の関数です。 ボイスプールの作成にかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 ボイスプールの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。 再生可能なフォーマットは、32bit以下の非圧縮PCMデータのみです。 ループ再生を行う場合、ストリーム再生用の音声データについては、 INSTチャンクがSSNDチャンクよりも手前に配置されている必要があります。
See Also
AllocateHcaMxVoicePool(in VoicePoolConfig, IntPtr, int)
HCA-MXボイスプールの作成
Declaration
public static CriAtomExVoicePool AllocateHcaMxVoicePool(in CriAtomExHcaMx.VoicePoolConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExHcaMx.VoicePoolConfig | config | HCA-MXボイスプール作成用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExVoicePool | ボイスプールオブジェクト |
Remarks
説明: HCA-MXボイスプールを作成します。 ボイスプールを作成する際には、ワーク領域としてメモリを渡す必要があります。 必要なメモリのサイズは、 CalculateWorkSizeForHcaMxVoicePool(in VoicePoolConfig) 関数で計算します。 (SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。) 本関数を実行することで、HCA-MX再生が可能なボイスがプールされます。 AtomExプレーヤーでHCA-MXデータ(もしくはHCA-MXデータを含むキュー)の再生を行うと、 AtomExプレーヤーは作成されたHCA-MXボイスプールからボイスを取得し、再生を行います。 ボイスプールの作成に成功すると、戻り値としてボイスプールオブジェクトが返されます。 アプリケーション終了時には、作成したボイスプールを Dispose() 関数で破棄する必要があります。 ボイスプールの作成に失敗すると、本関数はnullを返します。 ボイスプールの作成に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプール作成時には、プール作成用コンフィグ構造体 ( CriAtomExHcaMx.VoicePoolConfig 構造体の num_voices ) で指定した数分のボイスが、ライブラリ内で作成されます。 作成するボイスの数が多いほど、同時に再生可能なHCA-MX音声の数は増えますが、 反面、使用するメモリは増加します。 ボイスプール作成時には、ボイス数の他に、再生可能な音声のチャンネル数、 サンプリング周波数、ストリーム再生の有無を指定します。 ボイスプール作成時に指定する音声チャンネル数( CriAtomExHcaMx.VoicePoolConfig 構造体の player_config.max_channels )は、ボイスプール内のボイスが再生できる 音声データのチャンネル数になります。 チャンネル数を少なくすることで、ボイスプールの作成に必要なメモリサイズは 小さくなりますが、指定されたチャンネル数を越えるHCA-MXデータは再生できなくなります。 例えば、ボイスプールをモノラルで作成した場合、ステレオのHCA-MXデータは再生できません。 (ステレオHCA-MXデータを再生する場合、AtomExプレーヤーは、ステレオHCA-MXが再生可能な ボイスプールからのみボイスを取得します。) ただし、ステレオのボイスプールを作成した場合、モノラルデータ再生時にステレオ ボイスプールのボイスが使用される可能性はあります。 サンプリングレート( CriAtomExHcaMx.VoicePoolConfig 構造体の player_config.max_sampling_rate )についても、値を下げることでもボイスプール に必要なメモリサイズは小さくすることが可能ですが、指定されたサンプリングレート 以外のHCA-MXデータは再生できなくなります。 (他のボイスプールと異なり、同一サンプリングレートのデータのみが再生可能です。) ストリーミング再生の有無(CriAtomExHcaMx.VoicePoolConfig 構造体の player_config.streaming_flag )についても、オンメモリ再生のみのボイスプールは ストリーミング再生可能なボイスプールに比べ、サイズが小さくなります。 尚、AtomExプレーヤーがデータを再生した際に、 ボイスプール内のボイスが全て使用中であった場合、 ボイスプライオリティによる発音制御が行われます。 (ボイスプライオリティの詳細は SetVoicePriority(int) 関数の説明をご参照ください。)
注意: 本関数を実行する前に、必ずHCA-MXの初期化処理( Initialize(in Config, IntPtr, int) 関数) を実行しておく必要があります。 また、 Initialize(in Config, IntPtr, int) 関数実行時に指定した数以上のHCA-MXデータは再生できません。 HCA-MXボイスプールを作成する際には、 CriAtomExHcaMx.VoicePoolConfig 構造体の num_voices の値が、HCA-MX初期化時に指定する CriAtomExHcaMx.Config 構造体の max_voices の数を超えないよう、 ご注意ください。 本関数にワーク領域をセットした場合、セットした領域のメモリをボイスプール破棄時 までアプリケーション中で保持し続ける必要があります。 (セット済みのワーク領域に値を書き込んだり、メモリ解放したりしてはいけません。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。 ストリーム再生用のボイスプールは、内部的にボイスの数分だけローダー( CriFsLoader ) を確保します。 ストリーム再生用のボイスプールを作成する場合、ボイス数分のローダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。 本関数は完了復帰型の関数です。 ボイスプールの作成にかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 ボイスプールの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
AllocateHcaVoicePool(in HcaVoicePoolConfig, IntPtr, int)
HCAボイスプールの作成
Declaration
public static CriAtomExVoicePool AllocateHcaVoicePool(in CriAtomEx.HcaVoicePoolConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.HcaVoicePoolConfig | config | HCAボイスプール作成用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExVoicePool | ボイスプールオブジェクト |
Remarks
説明: HCAボイスプールを作成します。 ボイスプールを作成する際には、ワーク領域としてメモリを渡す必要があります。 必要なメモリのサイズは、 CalculateWorkSizeForHcaVoicePool(in HcaVoicePoolConfig) 関数で計算します。 (SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。) 本関数を実行することで、HCA再生が可能なボイスがプールされます。 AtomExプレーヤーでHCAデータ(もしくはHCAデータを含むキュー)の再生を行うと、 AtomExプレーヤーは作成されたHCAボイスプールからボイスを取得し、再生を行います。 ボイスプールの作成に成功すると、戻り値としてボイスプールオブジェクトが返されます。 アプリケーション終了時には、作成したボイスプールを Dispose() 関数で破棄する必要があります。 ボイスプールの作成に失敗すると、本関数はnullを返します。 ボイスプールの作成に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプール作成時には、プール作成用コンフィグ構造体 ( CriAtomEx.HcaVoicePoolConfig 構造体の num_voices ) で指定した数分のボイスが、ライブラリ内で作成されます。 作成するボイスの数が多いほど、同時に再生可能なHCA音声の数は増えますが、 反面、使用するメモリは増加します。 ボイスプール作成時には、ボイス数の他に、再生可能な音声のチャンネル数、 サンプリング周波数、ストリーム再生の有無を指定します。 ボイスプール作成時に指定する音声チャンネル数( CriAtomEx.HcaVoicePoolConfig 構造体の player_config.max_channels )は、ボイスプール内のボイスが再生できる 音声データのチャンネル数になります。 チャンネル数を少なくすることで、ボイスプールの作成に必要なメモリサイズは 小さくなりますが、指定されたチャンネル数を越えるHCAデータは再生できなくなります。 例えば、ボイスプールをモノラルで作成した場合、ステレオのHCAデータは再生できません。 (ステレオHCAデータを再生する場合、AtomExプレーヤーは、ステレオHCAが再生可能な ボイスプールからのみボイスを取得します。) ただし、ステレオのボイスプールを作成した場合、モノラルデータ再生時にステレオ ボイスプールのボイスが使用される可能性はあります。 サンプリングレート( CriAtomEx.HcaVoicePoolConfig 構造体の player_config.max_sampling_rate )についても、値を下げることでもボイスプール に必要なメモリサイズは小さくすることが可能ですが、指定されたサンプリングレート を越えるHCAデータは再生できなくなります。 (指定されたサンプリングレート以下のHCAデータのみが再生可能です。) ストリーミング再生の有無(CriAtomEx.HcaVoicePoolConfig 構造体の player_config.streaming_flag )についても、オンメモリ再生のみのボイスプールは ストリーミング再生可能なボイスプールに比べ、サイズが小さくなります。 尚、AtomExプレーヤーがデータを再生した際に、 ボイスプール内のボイスが全て使用中であった場合、 ボイスプライオリティによる発音制御が行われます。 (ボイスプライオリティの詳細は SetVoicePriority(int) 関数の説明をご参照ください。)
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数にワーク領域をセットした場合、セットした領域のメモリをボイスプール破棄時 までアプリケーション中で保持し続ける必要があります。 (セット済みのワーク領域に値を書き込んだり、メモリ解放したりしてはいけません。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。 ストリーム再生用のボイスプールは、内部的にボイスの数分だけローダー( CriFsLoader ) を確保します。 ストリーム再生用のボイスプールを作成する場合、ボイス数分のローダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。 本関数は完了復帰型の関数です。 ボイスプールの作成にかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 ボイスプールの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
AllocateInstrumentVoicePool(in InstrumentVoicePoolConfig, IntPtr, int)
インストゥルメントボイスプールの作成
Declaration
public static CriAtomExVoicePool AllocateInstrumentVoicePool(in CriAtomEx.InstrumentVoicePoolConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.InstrumentVoicePoolConfig | config | インストゥルメントボイスプール作成用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExVoicePool | インストゥルメントボイスプールオブジェクト |
Remarks
説明: インストゥルメントボイスプールを作成します。 ボイスプールを作成する際には、ワーク領域としてメモリを渡す必要があります。 必要なメモリのサイズは、 CalculateWorkSizeForInstrumentVoicePool(in InstrumentVoicePoolConfig) 関数で計算します。 (SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。) 本関数を実行することで、インストゥルメントトラックの再生が可能なボイスがプールされます。 AtomExプレーヤーでインストゥルメントトラックの再生を行うと、 AtomExプレーヤーは作成されたインストゥルメントボイスプールからボイスを取得し、再生を行います。 ボイスプールの作成に成功すると、戻り値としてボイスプールオブジェクトが返されます。 アプリケーション終了時には、作成したボイスプールを Dispose() 関数で破棄する必要があります。 ボイスプールの作成に失敗すると、本関数はnullを返します。 ボイスプールの作成に失敗した理由については、エラーコールバックのメッセージで確認可能です。
See Also
AllocateRawPcmVoicePool(in RawPcmVoicePoolConfig, IntPtr, int)
RawPCMボイスプールの作成
Declaration
public static CriAtomExVoicePool AllocateRawPcmVoicePool(in CriAtomEx.RawPcmVoicePoolConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.RawPcmVoicePoolConfig | config | RawPCMボイスプール作成用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExVoicePool | ボイスプールオブジェクト |
Remarks
説明: RawPCMボイスプールを作成します。 ボイスプールを作成する際には、ワーク領域としてメモリを渡す必要があります。 必要なメモリのサイズは、 CalculateWorkSizeForRawPcmVoicePool(in RawPcmVoicePoolConfig) 関数で計算します。 (SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。) 本関数を実行することで、RawPCM再生が可能なボイスがプールされます。 AtomExプレーヤーでRawPCMデータ(もしくはRawPCMデータを含むキュー)の再生を行うと、 AtomExプレーヤーは作成されたRawPCMボイスプールからボイスを取得し、再生を行います。 ボイスプールの作成に成功すると、戻り値としてボイスプールオブジェクトが返されます。 アプリケーション終了時には、作成したボイスプールを Dispose() 関数で破棄する必要があります。 ボイスプールの作成に失敗すると、本関数はnullを返します。 ボイスプールの作成に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプール作成時には、プール作成用コンフィグ構造体 ( CriAtomEx.RawPcmVoicePoolConfig 構造体の num_voices ) で指定した数分のボイスが、ライブラリ内で作成されます。 作成するボイスの数が多いほど、同時に再生可能なRawPCM音声の数は増えますが、 反面、使用するメモリは増加します。 ボイスプール作成時には、ボイス数の他に、再生可能な音声のチャンネル数、 サンプリング周波数、ストリーム再生の有無を指定します。 ボイスプール作成時に指定する音声チャンネル数( CriAtomEx.RawPcmVoicePoolConfig 構造体の player_config.max_channels )は、実際に供給するRawPCMのフォーマットの チャンネル数を指定します。 サンプリングレート( CriAtomEx.RawPcmVoicePoolConfig 構造体の player_config.max_sampling_rate )についても、実際に供給するRawPCMの フォーマットのサンプリングレートを指定します。 尚、AtomExプレーヤーがデータを再生した際に、 ボイスプール内のボイスが全て使用中であった場合、 ボイスプライオリティによる発音制御が行われます。 (ボイスプライオリティの詳細は SetVoicePriority(int) 関数の説明をご参照ください。)
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数にワーク領域をセットした場合、セットした領域のメモリをボイスプール破棄時 までアプリケーション中で保持し続ける必要があります。 (セット済みのワーク領域に値を書き込んだり、メモリ解放したりしてはいけません。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。 ストリーム再生用のボイスプールは、内部的にボイスの数分だけローダー( CriFsLoader ) を確保します。 ストリーム再生用のボイスプールを作成する場合、ボイス数分のローダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。 本関数は完了復帰型の関数です。 ボイスプールの作成にかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 ボイスプールの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
AllocateStandardVoicePool(in StandardVoicePoolConfig, IntPtr, int)
標準ボイスプールの作成
Declaration
public static CriAtomExVoicePool AllocateStandardVoicePool(in CriAtomEx.StandardVoicePoolConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.StandardVoicePoolConfig | config | 標準ボイスプール作成用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExVoicePool | ボイスプールオブジェクト |
Remarks
説明: 標準ボイスプールを作成します。 (標準ボイスは、ADXデータとHCAデータの両方の再生に対応したボイスです。) ボイスプールを作成する際には、ワーク領域としてメモリを渡す必要があります。 必要なメモリのサイズは、 CalculateWorkSizeForStandardVoicePool(in StandardVoicePoolConfig) 関数で計算します。 (SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。) 本関数を実行することで、ADXとHCAの再生が可能なボイスがプールされます。 AtomExプレーヤーでADXやHCAデータ(もしくはADXやHCAデータを含むキュー)の再生を行うと、 AtomExプレーヤーは作成された標準ボイスプールからボイスを取得し、再生を行います。 ボイスプールの作成に成功すると、戻り値としてボイスプールオブジェクトが返されます。 アプリケーション終了時には、作成したボイスプールを Dispose() 関数で破棄する必要があります。 ボイスプールの作成に失敗すると、本関数はnullを返します。 ボイスプールの作成に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプール作成時には、プール作成用コンフィグ構造体 ( CriAtomEx.StandardVoicePoolConfig 構造体の num_voices ) で指定した数分のボイスが、ライブラリ内で作成されます。 作成するボイスの数が多いほど、同時に再生可能な音声の数は増えますが、 反面、使用するメモリは増加します。 ボイスプール作成時には、ボイス数の他に、再生可能な音声のチャンネル数、 サンプリング周波数、ストリーム再生の有無を指定します。 ボイスプール作成時に指定する音声チャンネル数( CriAtomEx.StandardVoicePoolConfig 構造体の player_config.max_channels )は、ボイスプール内のボイスが再生できる 音声データのチャンネル数になります。 チャンネル数を少なくすることで、ボイスプールの作成に必要なメモリサイズは 小さくなりますが、指定されたチャンネル数を越えるデータは再生できなくなります。 例えば、ボイスプールをモノラルで作成した場合、ステレオのデータは再生できません。 (ステレオデータを再生する場合、AtomExプレーヤーは、ステレオが再生可能な ボイスプールからのみボイスを取得します。) ただし、ステレオのボイスプールを作成した場合、モノラルデータ再生時にステレオ ボイスプールのボイスが使用される可能性はあります。 サンプリングレート( CriAtomEx.StandardVoicePoolConfig 構造体の player_config.max_sampling_rate )についても、値を下げることでもボイスプール に必要なメモリサイズは小さくすることが可能ですが、指定されたサンプリングレート を越えるデータは再生できなくなります。 (指定されたサンプリングレート以下のデータのみが再生可能です。) ストリーミング再生の有無(CriAtomEx.StandardVoicePoolConfig 構造体の player_config.streaming_flag )についても、オンメモリ再生のみのボイスプールは ストリーミング再生可能なボイスプールに比べ、サイズが小さくなります。 尚、AtomExプレーヤーがデータを再生した際に、 ボイスプール内のボイスが全て使用中であった場合、 ボイスプライオリティによる発音制御が行われます。 (ボイスプライオリティの詳細は SetVoicePriority(int) 関数の説明をご参照ください。)
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数にワーク領域をセットした場合、セットした領域のメモリをボイスプール破棄時 までアプリケーション中で保持し続ける必要があります。 (セット済みのワーク領域に値を書き込んだり、メモリ解放したりしてはいけません。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。 ストリーム再生用のボイスプールは、内部的にボイスの数分だけローダー( CriFsLoader ) を確保します。 ストリーム再生用のボイスプールを作成する場合、ボイス数分のローダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。 本関数は完了復帰型の関数です。 ボイスプールの作成にかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 ボイスプールの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
AllocateWaveVoicePool(in WaveVoicePoolConfig, IntPtr, int)
Waveボイスプールの作成
Declaration
public static CriAtomExVoicePool AllocateWaveVoicePool(in CriAtomEx.WaveVoicePoolConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.WaveVoicePoolConfig | config | Waveボイスプール作成用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExVoicePool | ボイスプールオブジェクト |
Remarks
説明: Waveボイスプールを作成します。 ボイスプールを作成する際には、ワーク領域としてメモリを渡す必要があります。 必要なメモリのサイズは、 CalculateWorkSizeForWaveVoicePool(in WaveVoicePoolConfig) 関数で計算します。 (SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。) 本関数を実行することで、Wave再生が可能なボイスがプールされます。 AtomExプレーヤーでWaveデータ(もしくはWaveデータを含むキュー)の再生を行うと、 AtomExプレーヤーは作成されたWaveボイスプールからボイスを取得し、再生を行います。 ボイスプールの作成に成功すると、戻り値としてボイスプールオブジェクトが返されます。 アプリケーション終了時には、作成したボイスプールを Dispose() 関数で破棄する必要があります。 ボイスプールの作成に失敗すると、本関数はnullを返します。 ボイスプールの作成に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプール作成時には、プール作成用コンフィグ構造体 ( CriAtomEx.WaveVoicePoolConfig 構造体の num_voices ) で指定した数分のボイスが、ライブラリ内で作成されます。 作成するボイスの数が多いほど、同時に再生可能なWave音声の数は増えますが、 反面、使用するメモリは増加します。 ボイスプール作成時には、ボイス数の他に、再生可能な音声のチャンネル数、 サンプリング周波数、ストリーム再生の有無を指定します。 ボイスプール作成時に指定する音声チャンネル数( CriAtomEx.WaveVoicePoolConfig 構造体の player_config.max_channels )は、ボイスプール内のボイスが再生できる 音声データのチャンネル数になります。 チャンネル数を少なくすることで、ボイスプールの作成に必要なメモリサイズは 小さくなりますが、指定されたチャンネル数を越えるWaveデータは再生できなくなります。 例えば、ボイスプールをモノラルで作成した場合、ステレオのWaveデータは再生できません。 (ステレオWaveデータを再生する場合、AtomExプレーヤーは、ステレオWaveが再生可能な ボイスプールからのみボイスを取得します。) ただし、ステレオのボイスプールを作成した場合、モノラルデータ再生時にステレオ ボイスプールのボイスが使用される可能性はあります。 サンプリングレート( CriAtomEx.WaveVoicePoolConfig 構造体の player_config.max_sampling_rate )についても、値を下げることでもボイスプール に必要なメモリサイズは小さくすることが可能ですが、指定されたサンプリングレート を越えるWaveデータは再生できなくなります。 (指定されたサンプリングレート以下のWaveデータのみが再生可能です。) ストリーミング再生の有無(CriAtomEx.WaveVoicePoolConfig 構造体の player_config.streaming_flag )についても、オンメモリ再生のみのボイスプールは ストリーミング再生可能なボイスプールに比べ、サイズが小さくなります。 尚、AtomExプレーヤーがデータを再生した際に、 ボイスプール内のボイスが全て使用中であった場合、 ボイスプライオリティによる発音制御が行われます。 (ボイスプライオリティの詳細は SetVoicePriority(int) 関数の説明をご参照ください。)
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数にワーク領域をセットした場合、セットした領域のメモリをボイスプール破棄時 までアプリケーション中で保持し続ける必要があります。 (セット済みのワーク領域に値を書き込んだり、メモリ解放したりしてはいけません。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。 ストリーム再生用のボイスプールは、内部的にボイスの数分だけローダー( CriFsLoader ) を確保します。 ストリーム再生用のボイスプールを作成する場合、ボイス数分のローダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。 本関数は完了復帰型の関数です。 ボイスプールの作成にかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 ボイスプールの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。 再生可能なフォーマットは、32bit以下の非圧縮PCMデータのみです。 ループ再生を行う場合、ストリーム再生用の音声データについては、 smplチャンクがdataチャンクよりも手前に配置されている必要があります。
See Also
AttachDspAfx(in DspAfxConfig, IntPtr, int)
AFX形式のDSPのアタッチ
Declaration
public void AttachDspAfx(in CriAtomEx.DspAfxConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.DspAfxConfig | config | アタッチ用コンフィグ |
IntPtr | work | アタッチ用ワーク領域へのポインタ |
int | workSize | アタッチ用ワーク領域のサイズ |
Remarks
説明: ボイスプールにAFX形式のDSPを追加します。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
注意: 備考: 現在、本関数を使用できないプラットフォームが存在します。
AttachDspPitchShifter(in DspPitchShifterConfig, IntPtr, int)
ピッチシフタDSPのアタッチ
Declaration
public void AttachDspPitchShifter(in CriAtomEx.DspPitchShifterConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.DspPitchShifterConfig | config | アタッチ用コンフィグ |
IntPtr | work | アタッチ用ワーク領域へのポインタ |
int | workSize | アタッチ用ワーク領域のサイズ |
Remarks
説明: ボイスプールにピッチシフタDSPを追加します。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
注意: 備考: 現在、本関数を使用できないプラットフォームが存在します。
AttachDspTimeStretch(in DspTimeStretchConfig, IntPtr, int)
タイムストレッチDSPのアタッチ
Declaration
public void AttachDspTimeStretch(in CriAtomEx.DspTimeStretchConfig config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.DspTimeStretchConfig | config | アタッチ用コンフィグ |
IntPtr | work | アタッチ用ワーク領域へのポインタ |
int | workSize | アタッチ用ワーク領域のサイズ |
Remarks
説明: ボイスプールにタイムストレッチDSPを追加します。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
注意: 備考: 現在、本関数を使用できないプラットフォームが存在します。
CalculateWorkSizeForAdxVoicePool(in AdxVoicePoolConfig)
ADXボイスプール作成用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForAdxVoicePool(in CriAtomEx.AdxVoicePoolConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.AdxVoicePoolConfig | config | ADXボイスプール作成用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: ADXボイスプールの作成に必要なワーク領域のサイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに AllocateAdxVoicePool(in AdxVoicePoolConfig, IntPtr, int) 関数でボイスプールを作成する際には、 AllocateAdxVoicePool(in AdxVoicePoolConfig, IntPtr, int) 関数に本関数が返すサイズ分のメモリをワーク 領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプールの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomEx.AdxVoicePoolConfig )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfigForAdxVoicePool(out AdxVoicePoolConfig) メソッド使用時と 同じパラメーター)でワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: ワーク領域のサイズはライブラリ初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に指定したパラメーターによって変化します。 そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
CalculateWorkSizeForAiffVoicePool(in AiffVoicePoolConfig)
AIFFボイスプール作成用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForAiffVoicePool(in CriAtomEx.AiffVoicePoolConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.AiffVoicePoolConfig | config | AIFFボイスプール作成用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: AIFFボイスプールの作成に必要なワーク領域のサイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに AllocateAiffVoicePool(in AiffVoicePoolConfig, IntPtr, int) 関数でボイスプールを作成する際には、 AllocateAiffVoicePool(in AiffVoicePoolConfig, IntPtr, int) 関数に本関数が返すサイズ分のメモリをワーク 領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプールの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomEx.AiffVoicePoolConfig )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfigForAiffVoicePool(out AiffVoicePoolConfig) メソッド使用時と 同じパラメーター)でワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: ワーク領域のサイズはライブラリ初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に指定したパラメーターによって変化します。 そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
CalculateWorkSizeForDspAfx(in DspAfxConfig)
タイムストレッチDSPアタッチ用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForDspAfx(in CriAtomEx.DspAfxConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.DspAfxConfig | config | アタッチ用コンフィグ |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: AFX形式のDSPのアタッチに必要なワーク領域サイズを計算します。
See Also
CalculateWorkSizeForDspPitchShifter(in DspPitchShifterConfig)
ピッチシフタDSPアタッチ用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForDspPitchShifter(in CriAtomEx.DspPitchShifterConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.DspPitchShifterConfig | config | アタッチ用コンフィグ |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: ピッチシフタDSPのアタッチに必要なワーク領域サイズを計算します。
See Also
CalculateWorkSizeForDspTimeStretch(in DspTimeStretchConfig)
タイムストレッチDSPアタッチ用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForDspTimeStretch(in CriAtomEx.DspTimeStretchConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.DspTimeStretchConfig | config | アタッチ用コンフィグ |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: タイムストレッチDSPのアタッチに必要なワーク領域サイズを計算します。
See Also
CalculateWorkSizeForHcaMxVoicePool(in VoicePoolConfig)
HCA-MXボイスプール作成用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForHcaMxVoicePool(in CriAtomExHcaMx.VoicePoolConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExHcaMx.VoicePoolConfig | config | HCA-MXボイスプール作成用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: HCA-MXボイスプールの作成に必要なワーク領域のサイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに AllocateHcaMxVoicePool(in VoicePoolConfig, IntPtr, int) 関数でボイスプールを作成する際には、 AllocateHcaMxVoicePool(in VoicePoolConfig, IntPtr, int) 関数に本関数が返すサイズ分のメモリをワーク 領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプールの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomExHcaMx.VoicePoolConfig )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfigForHcaMxVoicePool(out VoicePoolConfig) メソッド使用時と 同じパラメーター)でワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: ワーク領域のサイズはHCA-MX初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に指定したパラメーターによって変化します。 そのため、本関数を実行する前に、HCA-MXを初期化しておく必要があります。
See Also
CalculateWorkSizeForHcaVoicePool(in HcaVoicePoolConfig)
HCAボイスプール作成用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForHcaVoicePool(in CriAtomEx.HcaVoicePoolConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.HcaVoicePoolConfig | config | HCAボイスプール作成用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: HCAボイスプールの作成に必要なワーク領域のサイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに AllocateHcaVoicePool(in HcaVoicePoolConfig, IntPtr, int) 関数でボイスプールを作成する際には、 AllocateHcaVoicePool(in HcaVoicePoolConfig, IntPtr, int) 関数に本関数が返すサイズ分のメモリをワーク 領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプールの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomEx.HcaVoicePoolConfig )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfigForHcaVoicePool(out HcaVoicePoolConfig) メソッド使用時と 同じパラメーター)でワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: ワーク領域のサイズはライブラリ初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に指定したパラメーターによって変化します。 そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
CalculateWorkSizeForInstrumentVoicePool(in InstrumentVoicePoolConfig)
インストゥルメントボイスプール作成用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForInstrumentVoicePool(in CriAtomEx.InstrumentVoicePoolConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.InstrumentVoicePoolConfig | config | インストゥルメントボイスプール作成用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: インストゥルメントボイスプールの作成に必要なワーク領域のサイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに AllocateInstrumentVoicePool(in InstrumentVoicePoolConfig, IntPtr, int) 関数でボイスプールを作成する際には、 AllocateInstrumentVoicePool(in InstrumentVoicePoolConfig, IntPtr, int) 関数に本関数が返すサイズ分のメモリをワーク 領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
See Also
CalculateWorkSizeForRawPcmVoicePool(in RawPcmVoicePoolConfig)
RawPCMボイスプール作成用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForRawPcmVoicePool(in CriAtomEx.RawPcmVoicePoolConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.RawPcmVoicePoolConfig | config | RawPCMボイスプール作成用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: RawPCMボイスプールの作成に必要なワーク領域のサイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに AllocateRawPcmVoicePool(in RawPcmVoicePoolConfig, IntPtr, int) 関数でボイスプールを作成する際には、 AllocateRawPcmVoicePool(in RawPcmVoicePoolConfig, IntPtr, int) 関数に本関数が返すサイズ分のメモリをワーク 領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプールの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomEx.RawPcmVoicePoolConfig )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfigForRawPcmVoicePool(out RawPcmVoicePoolConfig) メソッド使用時と 同じパラメーター)でワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: ワーク領域のサイズはライブラリ初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に指定したパラメーターによって変化します。 そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
CalculateWorkSizeForStandardVoicePool(in StandardVoicePoolConfig)
標準ボイスプール作成用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForStandardVoicePool(in CriAtomEx.StandardVoicePoolConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.StandardVoicePoolConfig | config | 標準ボイスプール作成用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: 標準ボイスプールの作成に必要なワーク領域のサイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに AllocateStandardVoicePool(in StandardVoicePoolConfig, IntPtr, int) 関数でボイスプールを作成する際には、 AllocateStandardVoicePool(in StandardVoicePoolConfig, IntPtr, int) 関数に本関数が返すサイズ分のメモリをワーク 領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプールの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomEx.StandardVoicePoolConfig )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfigForStandardVoicePool(out StandardVoicePoolConfig) メソッド使用時 と同じパラメーター)でワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: ワーク領域のサイズはライブラリ初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に指定したパラメーターによって変化します。 そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
CalculateWorkSizeForWaveVoicePool(in WaveVoicePoolConfig)
Waveボイスプール作成用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForWaveVoicePool(in CriAtomEx.WaveVoicePoolConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.WaveVoicePoolConfig | config | Waveボイスプール作成用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: Waveボイスプールの作成に必要なワーク領域のサイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに AllocateWaveVoicePool(in WaveVoicePoolConfig, IntPtr, int) 関数でボイスプールを作成する際には、 AllocateWaveVoicePool(in WaveVoicePoolConfig, IntPtr, int) 関数に本関数が返すサイズ分のメモリをワーク 領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ボイスプールの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomEx.WaveVoicePoolConfig )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfigForWaveVoicePool(out WaveVoicePoolConfig) メソッド使用時と 同じパラメーター)でワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: ワーク領域のサイズはライブラリ初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に指定したパラメーターによって変化します。 そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
DetachDsp()
DSPのデタッチ
Declaration
public void DetachDsp()
Remarks
説明: ボイスプールに追加したDSPを取り外します。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
注意: 備考: 現在、本関数を使用できないプラットフォームが存在します。
Dispose()
ボイスプールの破棄
Declaration
public void Dispose()
Remarks
説明: 作成済みのボイスプールを破棄します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 ボイスプール作成時に確保されたメモリ領域が解放されます。 (ボイスプール作成時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
注意: 本関数は完了復帰型の関数です。 音声再生中にボイスプールを破棄した場合、本関数内で再生停止を待ってから リソースの解放が行われます。 (ファイルから再生している場合は、さらに読み込み完了待ちが行われます。) そのため、本関数内で処理が長時間(数フレーム)ブロックされる可能性があります。 ボイスプールの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
EnumerateVoicePools(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
ボイスプールの列挙
Declaration
public static void EnumerateVoicePools(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> | func | ボイスプールコールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: アプリケーション中で作成したボイスプールを列挙します。 本関数を実行すると、第 1 引数( func ) でセットされたコールバック関数がボイスプールの数分だけ呼び出されます。 (ボイスプールオブジェクトが、引数としてコールバック関数に渡されます。)
備考: 第 2 引数( obj )にセットした値は、コールバック関数の引数として渡されます。 コールバック関数のその他の引数については、 別途 CriAtomExVoicePool.CbFunc の説明をご参照ください。
See Also
FreeAll()
全てのボイスプールを破棄
Declaration
public static void FreeAll()
Remarks
説明: 作成済みのボイスプールを全て破棄します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 ボイスプール作成時に確保されたメモリ領域が解放されます。 (ボイスプール作成時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
注意: 本関数は完了復帰型の関数です。 音声再生中にボイスプールを破棄した場合、本関数内で再生停止を待ってから リソースの解放が行われます。 (ファイルから再生している場合は、さらに読み込み完了待ちが行われます。) そのため、本関数内で処理が長時間(数フレーム)ブロックされる可能性があります。 ボイスプールの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
GetNumUsedVoices(out int, out int)
ボイスの使用状況の取得
Declaration
public void GetNumUsedVoices(out int curNum, out int limit)
Parameters
Type | Name | Description |
---|---|---|
int | curNum | 現在使用中のボイス数 |
int | limit | 利用可能なボイスの最大数 |
Remarks
説明: ボイスプール内のボイスのうち、現在使用中のボイスの数、および利用可能な 最大ボイス数(=プール作成時に指定した max_voices の数)を取得します。
GetPlayerHandle(int)
プレーヤーオブジェクトの取得
Declaration
public CriAtomPlayer GetPlayerHandle(int index)
Parameters
Type | Name | Description |
---|---|---|
int | index | プレーヤーインデックス |
Returns
Type | Description |
---|---|
CriAtomPlayer | Atomプレーヤーオブジェクト |
Remarks
説明: ボイスプール内で作成されたAtomプレーヤーオブジェクトを取得します。
備考: 本関数は情報取得用途にのみ利用可能なデバッグ関数です。
SetDefaultConfigForAdxVoicePool(out AdxVoicePoolConfig)
ADXボイスプール作成用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForAdxVoicePool(out CriAtomEx.AdxVoicePoolConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.AdxVoicePoolConfig | pConfig | ADXボイスプール作成用コンフィグ構造体へのポインタ |
Remarks
説明: AllocateAdxVoicePool(in AdxVoicePoolConfig, IntPtr, int) 関数に設定するコンフィグ構造体 ( CriAtomEx.AdxVoicePoolConfig )に、デフォルトの値をセットします。
See Also
SetDefaultConfigForAiffVoicePool(out AiffVoicePoolConfig)
AIFFボイスプール作成用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForAiffVoicePool(out CriAtomEx.AiffVoicePoolConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.AiffVoicePoolConfig | pConfig | AIFFボイスプール作成用コンフィグ構造体へのポインタ |
Remarks
説明: AllocateAiffVoicePool(in AiffVoicePoolConfig, IntPtr, int) 関数に設定するコンフィグ構造体 ( CriAtomEx.AiffVoicePoolConfig )に、デフォルトの値をセットします。
See Also
SetDefaultConfigForDspPitchShifter(out DspPitchShifterConfig)
ピッチシフタDSPのアタッチ用コンフィグにデフォルト値をセット
Declaration
public static void SetDefaultConfigForDspPitchShifter(out CriAtomEx.DspPitchShifterConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.DspPitchShifterConfig | pConfig | ピッチシフタDSPのアタッチ用コンフィグへのポインタ |
Remarks
説明: ピッチシフタDSPのアタッチ用コンフィグ( CriAtomEx.DspPitchShifterConfig )に、 デフォルトの値をセットします。
See Also
SetDefaultConfigForDspTimeStretch(out DspTimeStretchConfig)
タイムストレッチDSPのアタッチ用コンフィグにデフォルト値をセット
Declaration
public static void SetDefaultConfigForDspTimeStretch(out CriAtomEx.DspTimeStretchConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.DspTimeStretchConfig | pConfig | タイムストレッチDSPのアタッチ用コンフィグへのポインタ |
Remarks
説明: タイムストレッチDSPのアタッチ用コンフィグ( CriAtomEx.DspTimeStretchConfig )に、 デフォルトの値をセットします。
See Also
SetDefaultConfigForHcaMxVoicePool(out VoicePoolConfig)
HCA-MXボイスプール作成用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForHcaMxVoicePool(out CriAtomExHcaMx.VoicePoolConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExHcaMx.VoicePoolConfig | pConfig | HCA-MXボイスプール作成用コンフィグ構造体へのポインタ |
Remarks
説明: AllocateHcaMxVoicePool(in VoicePoolConfig, IntPtr, int) 関数に設定するコンフィグ構造体 ( CriAtomExHcaMx.VoicePoolConfig )に、デフォルトの値をセットします。
See Also
SetDefaultConfigForHcaVoicePool(out HcaVoicePoolConfig)
HCAボイスプール作成用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForHcaVoicePool(out CriAtomEx.HcaVoicePoolConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.HcaVoicePoolConfig | pConfig | HCAボイスプール作成用コンフィグ構造体へのポインタ |
Remarks
説明: AllocateHcaVoicePool(in HcaVoicePoolConfig, IntPtr, int) 関数に設定するコンフィグ構造体 ( CriAtomEx.HcaVoicePoolConfig )に、デフォルトの値をセットします。
See Also
SetDefaultConfigForInstrumentVoicePool(out InstrumentVoicePoolConfig)
インストゥルメントボイスプール作成用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForInstrumentVoicePool(out CriAtomEx.InstrumentVoicePoolConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.InstrumentVoicePoolConfig | pConfig | RawPCMボイスプール作成用コンフィグ構造体へのポインタ |
Remarks
説明: AllocateInstrumentVoicePool(in InstrumentVoicePoolConfig, IntPtr, int) 関数に設定するコンフィグ構造体 ( :: CriAtomEx.InstrumentVoicePoolConfig )に、デフォルトの値をセットします。
注意: デフォルト値のままではプールの作成に失敗します。 ユーザが登録したインターフェースのインストゥルメント名を設定する必要があります。
See Also
SetDefaultConfigForRawPcmVoicePool(out RawPcmVoicePoolConfig)
RawPCMボイスプール作成用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForRawPcmVoicePool(out CriAtomEx.RawPcmVoicePoolConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.RawPcmVoicePoolConfig | pConfig | RawPCMボイスプール作成用コンフィグ構造体へのポインタ |
Remarks
説明: AllocateRawPcmVoicePool(in RawPcmVoicePoolConfig, IntPtr, int) 関数に設定するコンフィグ構造体 ( CriAtomEx.RawPcmVoicePoolConfig )に、デフォルトの値をセットします。
See Also
SetDefaultConfigForStandardVoicePool(out StandardVoicePoolConfig)
標準ボイスプール作成用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForStandardVoicePool(out CriAtomEx.StandardVoicePoolConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.StandardVoicePoolConfig | pConfig | 標準ボイスプール作成用コンフィグ構造体へのポインタ |
Remarks
説明: AllocateStandardVoicePool(in StandardVoicePoolConfig, IntPtr, int) 関数に設定するコンフィグ構造体 ( CriAtomEx.StandardVoicePoolConfig )に、デフォルトの値をセットします。
See Also
SetDefaultConfigForWaveVoicePool(out WaveVoicePoolConfig)
Waveボイスプール作成用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForWaveVoicePool(out CriAtomEx.WaveVoicePoolConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.WaveVoicePoolConfig | pConfig | Waveボイスプール作成用コンフィグ構造体へのポインタ |
Remarks
説明: AllocateWaveVoicePool(in WaveVoicePoolConfig, IntPtr, int) 関数に設定するコンフィグ構造体 ( CriAtomEx.WaveVoicePoolConfig )に、デフォルトの値をセットします。