CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
SonicSYNC

什么是SonicSYNC

SonicSYNC功能可以最大限度的减少发声延迟。
在CRI ADX內部让音频输出和各平台音频驱动程序的缓冲区更新同步执行,省去不必要的内部缓冲。
与过去相比,使用SonicSYNC最大会有约50%的改善。

使用方法

请在 CriWareInitializer 的各平台的初始化配置中启用“Enable SonicSYNC”复选框。

注意事项

关于平台支持

目前SonicSYNC仅在部分平台上可用。
对于现在的非支持平台,请等待未来更新。

从过去方式的迁移

由于减少了发声延迟,音画同步上会出现时间差。
因此,需要根据新的延迟值再次调整各种计时。
特别是容易受发声延迟影响的音乐游戏,我们建议重新调整画面渲染和操作判定。

此外,发声延迟的表现也不是恒定的。
根据不同平台,使用后台音频播放或蓝牙连接时,播放延迟可能会因操作系统而增加。
详细信息请参阅 各平台的特别说明

关于有让声音断断续续风险的处理

高负荷总线效果的使用

以下效果的处理负荷比较大,发生声音断续的可能性较高。
  • 移调器
  • 混响
  • I3DL2混响
  • 耳机虚拟环绕
除移调器以外,这些效果器单独使用不会导致声音断续。
但是,对于效果器的组合使用则需要注意。
此外,对于上述以外的效果,如果同时大量使用,声音断续的风险也会增加。

我们正在研究如何减少移调器的负载。

运行库内部包含互斥锁的处理的执行

执行以下处理时,会进行与OS的音频输出线程的互斥处理,处理时间较长时可能会导致声音断续。
  • Voice池的创建和销毁
  • Mana Player的创建和销毁
  • ACB和AWB的加载和释放
  • DSP总线设置的挂载和卸载
为避免可感知的杂音,建议在静音时进行上述操作。

查找声音断续的原因

启用SonicSYNC时,即使声音断断续续也不会像传统方法一样发出警告。
这是由于其原因不是Atom库内部的声音缓冲区耗尽,而是因为音频输出线程无法正常定期运行。

如果声音的断断续续问题严重,可以使用以下API测算播放所使用ASR rack的负载。
  • CriAtomExAsrRack.ResetPerformanceMonitor
  • CriAtomExAsrRack.ResetPerformanceMonitorByRackId
  • CriAtomExAsrRack.GetPerformanceInfo
  • CriAtomExAsrRack.GetPerformanceInfoByRackId
使用以上API时,可以获取音频处理的执行间隔。

如果处理时间的平均值太大,可能是由于存在很多效果处理或者设备本身的性能不足。
声音播放延迟因设备而异,但如果超过 2000微秒,声音断断续续问题的风险会很高。

如果“处理间隔的最大值”经常大大超过“处理间隔的平均值”,可能是因为音频输出线程的执行受到了阻碍。
音频线程受阻的原因可能是可进行处理的线程不足,或是受到了后台处理的影响。

要更详细地确定原因,请使用各平台开发环境所提供的、可用于检查线程运行状态的Profiler。
使用Profiler可以查看具体的后台处理状态和线程的阻塞状态。
遇到特定设备上无论负载如何都会发生的问题时,请联系技术支持。

各平台的特别说明

各平台上的实际性能及注意事项请参考以下页面。