SonicSYNC的概述

什么是SonicSYNC?

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

使用方法

通过选中“项目设置 > CriWare > Atom > SmartPhone Use SonicSYNC”复选框启用此功能。
criware_ue4_atom_sonicsync_checkbox.jpg

注意事项

支持的平台

此功能仅支持下述平台。
  • Android
  • iOS

从过去方式的迁移

由于减少了发声延迟,使用原有的画面渲染会存在时间差异。
因此,需要根据新的延迟值重新调整各种计时。
特别是容易受发声延迟影响的音乐游戏,我们建议重新调整画面渲染和操作判定。
此外,发声延迟的表现也不是恒定的。
根据不同平台,使用后台音频播放或蓝牙连接时,播放延迟可能会因OS而增加。
详细信息请参照以下页面。

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

高负荷总线效果的使用

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

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

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

查找声音断续的原因

启用SonicSYNC时,即使声音断断续续也不会像传统方法般发出警告。
这是由于其原因不是Atom库内部的声音缓冲区耗尽,而是因为音频输出线程无法正常定期运行。
如果声音的断断续续问题严重,可以使用以下API测算播放所使用ASR rack的负载。
  • FCriWareApi::criAtomExAsrRack_ResetPerformanceMonitor
  • FCriWareApi::criAtomExAsrRack_GetPerformanceInfo
使用以上API时,可以获取音频处理的执行间隔。
如果“处理时间的平均值”太大,可能是由于存在很多效果处理或者设备本身的性能不足。
声音播放延迟因设备而异,但如果超过 2000微秒,声音断断续续问题的风险会很高。
如果“处理间隔的最大值”经常大大超过“处理间隔的平均值”,可能是因为音频输出线程的执行受到了阻碍。
音频线程受阻的原因可能是可进行处理的线程不足,或是受到了后台处理的影响。
要更详细地确定原因,请使用各平台开发环境所提供的、可用于检查线程运行状态的Profiler。
使用Profiler可以查看具体的后台处理状态和线程的阻塞状态。
遇到专有设备上无论负载如何都会发生的问题时,请联系技术支持。

各平台的备注

关于各平台上的实际性能和其注意事项,请参照以下各页: