CRIWARE for C#
Search Results for

    Show / Hide Table of Contents

    Class CriAtomDspSpectra

    Inheritance
    object
    CriAtomDspSpectra
    Implements
    IDisposable
    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 class CriAtomDspSpectra : IDisposable

    Constructors

    CriAtomDspSpectra()

    デフォルト設定でのインスタンス作成

    Declaration
    public CriAtomDspSpectra()

    CriAtomDspSpectra(in Config)

    スペクトラムアナライザの作成

    Declaration
    • C#
    • C
    public CriAtomDspSpectra(in CriAtomDspSpectra.Config config)
    CriAtomDspSpectraHn criAtomDspSpectra_Create(const CriAtomDspSpectraConfig *config, void *work, CriSint32 work_size)
    Parameters
    Type Name Description
    CriAtomDspSpectra.Config config

    スペクトラムアナライザ作成パラメーター

    Remarks

    説明: スペクトラムアナライザを作成します。 スペクトラムアナライザは、PCMデータを解析し、 帯域ごとの信号の強さを計測するモジュールです。 PCMデータの入力には、 Process(uint, uint, float[][]) 関数を使用します。 解析結果の取得には、 GetLevels() 関数を使用します。 不要になったスペクトラムアナライザは、 Dispose() 関数で明示的に破棄する必要があります。

    備考: スペクトラムアナライザの作成に失敗した場合、本関数はnullを返します。 (失敗の原因はエラーコールバックで通知されます。) SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) によるアロケーター登録を行わずに本関数を実行する場合、 CalculateWorkSize(in Config) 関数で計算したサイズ分のメモリをワーク領域として渡す必要があります。

    注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数にセットしたワーク領域は、 Dispose() 関数を実行するまでの間、アプリケーションで保持する必要があります。 ( Dispose() 関数実行前に、ワーク領域のメモリを解放しないでください。) 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。

    See Also
    CriAtomDspSpectra.Config
    CalculateWorkSize(in Config)
    Dispose()

    Properties

    NativeHandle

    ネイティブハンドル

    Declaration
    public NativeHandleIntPtr NativeHandle { get; }
    Property Value
    Type Description
    NativeHandleIntPtr

    Methods

    CalculateWorkSize(in Config)

    LE Pro

    スペクトラムアナライザ作成に必要なワーク領域サイズを計算

    Declaration
    • C#
    • C
    public static int CalculateWorkSize(in CriAtomDspSpectra.Config config)
    CriSint32 criAtomDspSpectra_CalculateWorkSize(const CriAtomDspSpectraConfig *config)
    Parameters
    Type Name Description
    CriAtomDspSpectra.Config config

    スペクトラムアナライザ作成パラメーター

    Returns
    Type Description
    int

    CriSint32 必要なワーク領域のサイズ(単位はバイト)

    Remarks

    説明: スペクトラムアナライザの作成に必要なワークサイズを計算します。 configで与えられるパラメーターに依存し、必要なワークサイズは変化します。

    備考: ワーク領域サイズの計算に失敗した場合、本関数は負値を返します。 (失敗の原因はエラーコールバックで通知されます。)

    See Also
    CriAtomDspSpectra.Config
    CriAtomDspSpectra(in Config)

    Dispose()

    LE Pro

    スペクトラムアナライザの破棄

    Declaration
    • C#
    • C
    public void Dispose()
    void criAtomDspSpectra_Destroy(CriAtomDspSpectraHn spectra)
    Remarks

    説明: スペクトラムアナライザを破棄します。 スペクトラムアナライザ作成時に確保されたメモリ領域が解放されます。 (スペクトラムアナライザ作成時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)

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

    See Also
    CriAtomDspSpectra(in Config)

    GetLevels()

    LE Pro

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

    Declaration
    • C#
    • C
    public IntPtr GetLevels()
    const CriFloat32* criAtomDspSpectra_GetLevels(CriAtomDspSpectraHn spectra)
    Returns
    Type Description
    IntPtr
    Remarks

    説明: Process(uint, uint, float[][]) 関数でセットしたPCMデータの、解析結果を返します。 解析結果は CriFloat32 型の配列です。 配列の要素数は、 CriAtomDspSpectra(in Config) 関数実行時に CriAtomDspSpectra.Config::num_bands で指定した数になります。 0 番目の要素が最低帯域の振幅値、 (num_bands - 1) 番目の要素が最高帯域の振幅値です。

    備考: 複数チャンネルのPCMデータを解析した場合、 全てのチャンネルのPCMデータを一旦ミックスし、ミックス結果に対し解析を行います。 そのため、 Process(uint, uint, float[][]) 関数に複数チャンネルの音声データをセットした場合でも、 本関数は長さは num_bands の1次元配列を返します。

    注意: GetLevels() 関数が返す値は、帯域ごとの振幅値です。 解析結果を市販のスペクトルアナライザのように表示させたい場合、 本関数が返す値をデシベル値に変換する必要があります。

    See Also
    Process(uint, uint, float[][])

    Process(uint, uint, float[][])

    LE Pro

    スペクトラム解析

    Declaration
    • C#
    • C
    public void Process(uint numChannels, uint numSamples, float[][] pcm)
    void criAtomDspSpectra_Process(CriAtomDspSpectraHn spectra, CriUint32 num_channels, CriUint32 num_samples, CriFloat32 *pcm[])
    Parameters
    Type Name Description
    uint numChannels
    uint numSamples
    float[][] pcm
    Remarks

    説明: PCMデータを解析します。 解析結果は GetLevels() 関数で取得可能です。

    備考: 入力するデータ列(pcm)の値は -1.0f ~ +1.0f の範囲を想定しています。 ただ、±1の範囲を超える値を入力した場合でも、GetLevels() 関数が返す値が大きくなるだけなので、 データ入力時点でクリッピングを行う必要はありません。 本関数は内部で1024点のサンプルが蓄積されるのを待ってからFFT処理を行う為、 スペクトラムは1024サンプル入力毎に更新されます。

    See Also
    GetLevels()

    Reset()

    LE Pro

    スペクトラムアナライザのリセット

    Declaration
    • C#
    • C
    public void Reset()
    void criAtomDspSpectra_Reset(CriAtomDspSpectraHn spectra)
    Remarks

    説明: スペクトラムアナライザをリセットします。 本関数を実行した時点で、 Process(uint, uint, float[][]) 関数にセットしたPCMの情報がクリアされます。

    備考: GetLevels() 関数の戻り値をゼロクリアしたい場合、 本関数を実行してください。

    See Also
    Process(uint, uint, float[][])
    GetLevels()

    Implements

    IDisposable
    In this article
    Back to top Generated by DocFX