CRIWARE Unity Plugin Manual  Last Updated: 2024-02-07
CriAtomExPlayerOutputAnalyzer クラス

音声出力データ解析モジュール(プレーヤ/ソース単位) [詳解]

CriAtomExPlayerOutputAnalyzer の継承関係図
CriAtomExOutputAnalyzer

クラス

struct  Config
 音声出力データ解析モジュールコンフィグ構造体 [詳解]
 

公開型

enum  Type { LevelMeter = 0, SpectrumAnalyzer = 1, PcmCapture = 2 }
 解析処理種別 [詳解]
 

公開メンバ関数

 CriAtomExPlayerOutputAnalyzer (Type[] types, Config[] configs=null)
 音声出力データ解析モジュールの作成 [詳解]
 
delegate void PcmCaptureCallback (float[] dataL, float[] dataR, int numChannels, int numData)
 波形取得コールバック [詳解]
 
override void Dispose ()
 出力データ解析モジュールの破棄 [詳解]
 
bool AttachExPlayer (CriAtomExPlayer player)
 AtomExプレーヤのアタッチ [詳解]
 
void DetachExPlayer ()
 AtomExプレーヤのデタッチ [詳解]
 
bool AttachDspBus (string busName)
 DSPバスのアタッチ [詳解]
 
void DetachDspBus ()
 DSPバスのデタッチ [詳解]
 
float GetRms (int channel)
 アタッチ中の音声出力のRMSレベルの取得 [詳解]
 
void GetSpectrumLevels (ref float[] levels)
 スペクトル解析結果の取得 [詳解]
 
void GetPcmData (ref float[] data, int ch)
 アタッチ中の音声出力の波形データの取得 [詳解]
 
void SetPcmCaptureCallback (PcmCaptureCallback callback)
 波形データ取得コールバックの登録 [詳解]
 
void ExecutePcmCaptureCallback ()
 波形データ取得コールバックの実行 [詳解]
 
void ExecutePcmCaptureCallback (PcmCaptureCallback callback)
 

公開変数類

const int MaximumSpectrumBands = 512
 スペクトラムアナライザの最大バンド数 [詳解]
 

詳解

音声出力データ解析モジュール(プレーヤ/ソース単位)

非推奨:
削除予定の非推奨APIです。 CriWare.CriAtomExOutputAnalyzer クラスの使用を検討してください。
説明:
CriAtomSource/CriAtomExPlayerごとの音声出力の解析を行います。
レベルメータ機能などを提供します。
注意:
将来的に本クラスは廃止される予定です。 CriWare.CriAtomExOutputAnalyzer をご利用ください。
HCA-MXやプラットフォーム固有の音声圧縮コーデックを使用している場合は解析できません。
HCAもしくはADXコーデックをご利用ください。

列挙型メンバ詳解

enum Type
strong

解析処理種別

説明:
解析モジュール作成時に指定する解析処理の種別を示す値です。
参照
CriAtomExOutputAnalyzer
列挙値
LevelMeter 

レベルメーター(RMSレベル計測)

SpectrumAnalyzer 

スペクトルアナライザ

PcmCapture 

波形データ取得

構築子と解体子

CriAtomExPlayerOutputAnalyzer ( Type[]  types,
Config[]  configs = null 
)
inline

音声出力データ解析モジュールの作成

戻り値
音声出力データ解析モジュール
説明:
CriAtomSource/CriAtomExPlayerの出力音声データの解析モジュールを作成します。
作成した解析モジュールは、CriAtomSourceまたはCriAtomExPlayerにアタッチして使用します。
アタッチしている音声出力に対し、レベルメータなどの解析を行います。
備考:
解析モジュールにアタッチ可能なCriAtomSource/CriAtomExPlayerは一つのみです。
解析モジュールを使いまわす場合は、デタッチを行ってください。
注意:
将来的に本クラスは廃止される予定です。CriAtomExOutputAnalyzerをご利用ください。
音声出力データ解析モジュールの作成時には、アンマネージドなリソースが確保されます。
解析モジュールが不要になった際は、必ず CriAtomExPlayerOutputAnalyzer.Dispose メソッドを呼んでください。

関数詳解

delegate void PcmCaptureCallback ( float[]  dataL,
float[]  dataR,
int  numChannels,
int  numData 
)
inherited

波形取得コールバック

説明:
出力される波形データを取得するためのコールバックです。
override void Dispose ( )
inlineinherited

出力データ解析モジュールの破棄

説明:
出力データ解析モジュールを破棄します。
本関数を実行した時点で、出力データ解析モジュール作成時にプラグイン内で確保されたリソースが全て解放されます。
メモリリークを防ぐため、出力データ解析モジュールが不要になった時点で本メソッドを呼び出してください。
注意:
本関数は完了復帰型の関数です。
アタッチ済みのAtomExプレーヤがある場合、本関数内でデタッチが行われます。
対象のAtomExプレーヤが再生中の音声は強制的に停止しますのでご注意ください。
参照
CriAtomExOutputAnalyzer::CriAtomExOutputAnalyzer
bool AttachExPlayer ( CriAtomExPlayer  player)
inlineinherited

AtomExプレーヤのアタッチ

戻り値
アタッチが成功したかどうか(成功:True、失敗:False)
説明:
出力データ解析を行うAtomExプレーヤをアタッチします。
複数のAtomExプレーヤをアタッチすることは出来ません。 アタッチ中に別のAtomExプレーヤをアタッチした場合、アタッチ中のAtomExプレーヤはデタッチされます。

CriAtomSourceをアタッチする場合、CriAtomSource::AttachToOutputAnalyzerを使用してください。
注意:
アタッチは再生開始前に行う必要があります。再生開始後のアタッチは失敗します。

本関数でアタッチしたAtomExプレーヤをデタッチする前に破棄した場合、 デタッチ時にアクセス違反が発生します。
必ず先にデタッチを行ってからAtomExプレーヤを破棄してください。
参照
CriAtomExOutputAnalyzer::DetachExPlayer, CriAtomSource::AttachToOutputAnalyzer
void DetachExPlayer ( )
inlineinherited

AtomExプレーヤのデタッチ

説明:
出力データ解析を行うAtomExプレーヤをデタッチします。
デタッチを行うと、以降の解析処理は行われなくなります。
注意:
アタッチ済みのプレーヤが音声を再生している状態で本関数を呼び出した場合、 強制的に再生を停止した上でデタッチが行われます。

アタッチしたAtomExプレーヤが既に破棄されていた場合はアクセス違反が発生します。
必ず本関数、またはCriAtomExOutputAnalyzer::Disposeを呼び出してから、 AtomExプレーヤを破棄するようにしてください。
参照
CriAtomExOutputAnalyzer::AttachExPlayer, CriAtomExOutputAnalyzer::Dispose
bool AttachDspBus ( string  busName)
inlineinherited

DSPバスのアタッチ

戻り値
アタッチが成功したかどうか(成功:True、失敗:False)
説明:
出力データ解析を行うDSPバスをアタッチします。
複数のDSPバスをアタッチすることは出来ません。 アタッチ中に別のDSPバスをアタッチした場合、アタッチ中のDSPバスはデタッチされます。
参照
CriAtomExOutputAnalyzer::DetachDspBus
void DetachDspBus ( )
inlineinherited

DSPバスのデタッチ

説明:
出力データ解析を行うDSPバスをデタッチします。
デタッチを行うと、以降の解析処理は行われなくなります。
参照
CriAtomExOutputAnalyzer::AttachDspBus, CriAtomExOutputAnalyzer::Dispose
float GetRms ( int  channel)
inlineinherited

アタッチ中の音声出力のRMSレベルの取得

引数
channelチャンネル番号
戻り値
RMSレベル
説明:
アタッチ中の音声出力のRMSレベルを取得します。
本機能を利用する場合、ConfigのenableLevelmeterにTrueを指定してモジュールを作成してください。
参照
CriAtomExOutputAnalyzer::AttachExPlayer, CriAtomExOutputAnalyzer::AttachDspBus
void GetSpectrumLevels ( ref float[]  levels)
inlineinherited

スペクトル解析結果の取得

引数
levels解析結果(帯域毎の振幅値)
説明:
スペクトラムアナライザによって解析された帯域ごとの振幅値を取得します。
配列の要素数はモジュールの作成時に指定したバンド数です。
本機能を利用する場合、ConfigのenableSpectrumAnalyzerにTrueを、numSpectrumAnalyzerBandsに MaximumSpectrumBands以下の正数を指定してモジュールを作成してください。 解析結果を市販のスペクトルアナライザのように表示させたい場合、 本関数が返す値をデシベル値に変換する必要があります。
例:
// 例:スペクトル解析結果を取得するコンポーネント
public class SpectrumLevelMeter : MonoBehaviour {
private CriAtomExOutputAnalyzer analyzer;
void Start() {
// 引数 config については省略。モジュールの作成時に指定したバンド数は 8 とする
this.analyzer = new CriAtomExOutputAnalyzer(config);
// CriAtomExPlayer のアタッチについては省略
}
void Update() {
// 音声再生中の実行
float[] levels = new float[8];
analyzer.GetSpectrumLevels (ref levels);
// levelsの0帯域目の振幅値をデシベル値に変換
float db = 20.0f * Mathf.Log10(levels[0]);
Debug.Log (db);
}
}
参照
CriAtomExOutputAnalyzer::AttachExPlayer, CriAtomExOutputAnalyzer::AttachDspBus
void GetPcmData ( ref float[]  data,
int  ch 
)
inlineinherited

アタッチ中の音声出力の波形データの取得

引数
data出力データ
chチャンネル
説明:
アタッチ中の音声出力の波形データを取得します。
本機能を利用する場合、ConfigのenablePcmCaptureにTrueを、numCapturedPcmSamplesに 正数を指定してモジュールを作成してください。
注意:
引数の配列の長さが十分でない場合、関数内で配列の確保が行われます。
不要なGCの発生を避けるため、初期化コンフィグで指定したデータサンプル数以上の 長さの配列を引数に渡すようにしてください。 現状、取得可能なチャンネルはL/Rのみです。chには0か1を指定してください。
参照
CriAtomExOutputAnalyzer::AttachExPlayer, CriAtomExOutputAnalyzer::AttachDspBus
void SetPcmCaptureCallback ( PcmCaptureCallback  callback)
inlineinherited

波形データ取得コールバックの登録

説明:
出力データ取得用のコールバックを登録します。
コールバックによる波形データ取得を利用する場合、ExecutePcmCaptureCallbackの呼び出し前に 本関数によりコールバックの登録を行ってください。
void ExecutePcmCaptureCallback ( )
inlineinherited

波形データ取得コールバックの実行

説明:
出力データ取得用のコールバックを実効します。
本関数を呼び出すと、最後の実行時からの出力差分データを引数とするコールバックが 複数回呼び出されます。
注意:
コールバックによる波形データ取得を利用する場合、本関数を定期的に呼び出してください。
本関数が長時間呼び出されなかった場合、取得可能な波形データに欠落が生じます。
void ExecutePcmCaptureCallback ( PcmCaptureCallback  callback)
inlineinherited
非推奨:
削除予定の非推奨APIです。 SetPcmCaptureCallback(PcmCaptureCallback)ExecutePcmCaptureCallback()の使用を検討してください。

メンバ詳解

const int MaximumSpectrumBands = 512
inherited

スペクトラムアナライザの最大バンド数

説明:
スペクトラムアナライザが出力できるバンド数の最大値です。

このクラス詳解は次のファイルから抽出されました: