CRI ADX  Last Updated: 2024-09-25 17:41 p
インサーションDSP(タイムストレッチ)

サンプルのディレクトリ

/cri/pc/samples/criatomex/insertion_dsp_time_stretch

サンプルで使用しているデータ

/cri/common/smpdata/criatomex/
  • SampleProject.acf
  • AtomCueSheet.acb
  • AtomCueSheet.awb

サンプルの解説

音高を変えずに再生速度を変化させるタイムストレッチ機能のサンプルです。
タイムストレッチは時間の長さが変化するため、DSPバスエフェクトとして設定することができません。
使用するためにはボイスにアタッチする必要があります。

タイムストレッチ機能を使用する手順は以下の通りです。
  1. ボイスプールに criAtomExVoicePool_AttachDspTimeStretch 関数でタイムストレッチ機能を追加
  2. プレーヤーに criAtomExPlayer_SetVoicePoolIdentifier 関数でタイムストレッチが付いたボイスプール識別子をセット
  3. プレーヤーに criAtomExPlayer_SetDspParameter 関数でタイムストレッチのパラメーターをセット。
  4. プレーヤーで再生を行う。
タイムストレッチのパラメーターは以下の通りです。
タイムストレッチ機能を使用するためのサンプルコードを以下に示します。
#define TIME_STRETCH_VOICEPOOL 0x02
/* ボイスプールのコンフィグ設定 */
voice_pool_config.identifier = TIME_STRETCH_VOICEPOOL;
/* ボイスプールの作成 */
app_obj->voice_pool = criAtomExVoicePool_AllocateStandardVoicePool(&voice_pool_config, NULL, 0);
/* タイムストレッチのコンフィグ設定 */
CriAtomExDspTimeStretchConfig time_stretch_config;
time_stretch_config.num_dsp = voice_pool_config.num_voices;
time_stretch_config.max_channels = voice_pool_config.player_config.max_channels;
time_stretch_config.max_sampling_rate = voice_pool_config.player_config.max_sampling_rate;
/* タイムストレッチを追加 */
criAtomExVoicePool_AttachDspTimeStretch(&app_obj->voice_pool, &time_stretch_config, NULL, 0);
/* ボイスプール識別子をセット */
criAtomExPlayer_SetVoicePoolIdentifier(app_obj->player, TIME_STRETCH_VOICEPOOL);
/* 時間を1.2倍に伸ばす(遅くする) */
/* 再生開始 */
criAtomExPlayer_Start(app_obj->player);
#define criAtomExVoicePool_SetDefaultConfigForDspTimeStretch(p_config)
タイムストレッチDSPのアタッチ用コンフィグにデフォルト値をセット
Definition: cri_le_atom_ex.h:1144
void criAtomExVoicePool_AttachDspTimeStretch(CriAtomExVoicePoolHn pool, const CriAtomExDspTimeStretchConfig *config, void *work, CriSint32 work_size)
タイムストレッチDSPのアタッチ
void criAtomExPlayer_SetVoicePoolIdentifier(CriAtomExPlayerHn player, CriAtomExVoicePoolIdentifier identifier)
ボイスプール識別子の指定
CriAtomExPlaybackId criAtomExPlayer_Start(CriAtomExPlayerHn player)
再生の開始
void criAtomExPlayer_SetDspParameter(CriAtomExPlayerHn player, CriSint32 param_id, CriFloat32 param_val)
DSPパラメーターの設定
#define criAtomExVoicePool_SetDefaultConfigForStandardVoicePool(p_config)
標準ボイスプール作成用コンフィグ構造体にデフォルト値をセット
Definition: cri_le_atom_ex.h:567
CriAtomExVoicePoolHn criAtomExVoicePool_AllocateStandardVoicePool(const CriAtomExStandardVoicePoolConfig *config, void *work, CriSint32 work_size)
標準ボイスプールの作成
@ CRIATOMDSP_TIMESTRETCH_PARAM_RATIO
ストレッチ比率
Definition: cri_le_atom.h:2781
タイムストレッチDSPのアタッチ用コンフィグ構造体
Definition: cri_le_atom_ex.h:4940
CriSint32 num_dsp
作成するDSPの数
Definition: cri_le_atom_ex.h:4946
CriSint32 max_sampling_rate
DSPの最大サンプリングレート
Definition: cri_le_atom_ex.h:4962
CriSint32 max_channels
DSPの最大チャンネル数
Definition: cri_le_atom_ex.h:4954
標準ボイスプール作成用コンフィグ構造体
Definition: cri_le_atom_ex.h:3259
注意
HCA-MXの音声にはタイムストレッチを適用することができません。
タイムストレッチ機能を使用する際はADXかHCAをご利用ください。