ユーザー定義エフェクトの使用

サンプルのディレクトリ

/cri/pc/samples/criatomex/user_effect_plugin

サンプルの解説

ユーザー定義のエフェクトをADX2に取り込み、エフェクトをかけて再生するサンプルです。
本サンプルでは、予めビルド済みのユーザー定義エフェクトのライブラリを使用しますが、
ユーザー定義のエフェクトは新しく CRI ADX2 Audio Effect Plugin SDK で作成することができます。
<par> 本サンプルで使用するユーザー定義エフェクトライブラリは、以下のディレクトリに配置してあります。
ユーザー定義エフェクトをADX2に組み込む手順は以下の通りです。
組み込み手順の詳細については、CRI ADX2 Audio Effect Plugin SDK 同梱のマニュアルをご参照下さい。
  1. CRI ADX2 Audio Effect Plugin SDK でランタイムライブラリとツール向けプラグインを作成する
  2. ツール向けプラグインをAtomCraftに取り込み、ユーザー定義エフェクトを含んだACFをビルドする
  3. ランタイムライブラリとアプリケーションをリンクした状態で、ユーザー定義エフェクトインターフェースをライブラリに登録する
criAtomExAsr_RegisterEffectInterface 関数を実行すると、ユーザー定義エフェクトインターフェースをAtomライブラリに登録します。
/* ユーザー定義エフェクトヘッダー */
#include "simple_delay.h"

/* メイン処理 */
main
{
    /* CRI Atomライブラリの初期化 */
    criAtomEx_Initialize(NULL, NULL, 0);
        :
    /* ユーザー定義エフェクトインターフェースをAtomライブラリに登録 */
    criAtomExAsr_RegisterEffectInterface(simpleDelay_GetInterfaceWithVersion());
        :
    /* ユーザー定義エフェクトをDSPバス設定に含んだACFを登録 */
    criAtomEx_criAtomEx_RegisterAcfFile(NULL, acf_file, NULL, 0);
        :
}

注意:
criAtomExAsr_RegisterEffectInterface, criAtomExAsr_UnregisterEffectInterface 関数を呼び出すタイミングには注意が必要です。
以下に注意点を列挙します。
1. criAtomExAsr_RegisterEffectInterface 関数は必ずDSPバス設定をアタッチする( criAtomEx_AttachDspBusSetting 関数を実行する )前に呼び出す
ユーザー定義エフェクトを含んだDSPバス設定をアタッチする為には、DSPバス設定に含まれるエフェクトのインターフェースを全て登録して下さい。
必要なエフェクトインターフェースが不足している場合は、エラーコールバックが返り、DSPバス設定のアタッチに失敗します。

2. criAtomExAsr_UnregisterEffectInterface 関数はDSPバス設定がデタッチされた状態で呼び出す
一度登録を行ったエフェクトインターフェースは、ライブラリを終了するか、criAtomExAsr_UnregisterEffectInterface 関数を呼び出すまでAtomライブラリから 参照され続けます。
音声の再生中等、信号処理を行っている途中でインターフェースの登録を解除するとアクセス違反例外が発生する可能性があります。
その為、エフェクトインターフェースの登録解除はDSPバス設定がデタッチされている状態の時に実行して下さい。

3. ライブラリ終了( criAtomEx_Finalize 関数の実行)時に、全てのエフェクトインターフェースの登録は解除される
ライブラリの再初期化を行った際には、必要なエフェクトインターフェースを再登録する必要があります。


CRI Middleware logo Copyright (c) 2006-2018 CRI Middleware Co., Ltd.