CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
双倍速播放
ADX 的“双倍速”播放为不同的目的提供了以下方法。
  • 提高Cue的sequence的速度
  • 在改变音高的同时提高播放速度
  • 在不改变音高的情况下提高播放速度

提高Cue的sequence的速度

通过 CriWare.CriAtomExPlayer::SetPlaybackRatio 可以提高Cue中设定的sequence播放速度。

波形的声音和每个事件执行的时间会更早,但音高不会改变。
当您想加快放入sequence的每个事件的执行时间时,可以使用此方法。

在改变音高的同时提高播放速度

通过 CriWare.CriAtomExPlayer::SetPitch 可以在改变音高的同时提高播放速度。

上面的API只是改变播放器参数的API。
如果要将参数应用到已经播放的音频,则需要使用 CriWare.CriAtomExPlayer::Update 更新参数。
关于更多注意点请参照参考注释。

在不改变音高的情况下,提高播放速度

通过 CriWare.CriAtomExPlayer::SetDspTimeStretchRatio 在不改变音高的情况下,维持原来的音高并且提高播放速度。

使用上面的API需要预先对玩家将要使用的Voice池执行绑定操作, 并且需要将Player连接到这个Voice池。(※1)

创建Voice池时请注意以下事项:
  • 明确指定Voice池标识符
  • 指定的播放波形至少为两倍以上的采样频率
如果没有明确为播放器设置Voice池标识,则会使用 CriWareInitializer 初始化时创建的Voice池(标识符为0的Voice池)进行发生。
因此,为了确保始终在添加了时间拉伸DSP的Voice池中发声, 需要事先在Voice池创建任意的标识符。(※2)

此时,Voice池的最大采样率必须至少为播放波形的采样频率的两倍以上。(※3)
此外,同时使用上述音高移调时,请指定乘以音高移调双倍移调量的值。

例如使用CriAtomSource时,代码如下。
CriAtomSource criAtomSource = gameObject.AddComponent<CriAtomSource>();
CriAtomExStandardVoicePool pool = new CriAtomExStandardVoicePool(1, 2, 64000 /* (※3) */, true, 2104 /* (※2) */);
pool.AttachDspTimeStretch();
criAtomSource.player.SetVoicePoolIdentifier(pool.identifier) //※1
criAtomSource.player.SetDspTimeStretchRatio(0.5f);