CRI ADX  Last Updated: 2024-07-17 10:48 p
关于CriAtomAsr
CriAtomAsr是用于访问ASR(Atom声音渲染器/Atom Sound Renderer)的API。
ASR(Atom声音渲染器)是用软件实现的声音渲染器模块。
主要用于没有硬件处理声音功能的平台。
具有多频道混音、重采样、过滤、包络、
总线发送路由、混响和回声等DSP效果,
提供灵活且强大的声音渲染。
ASR具有以下子模块。

ASR Voice

该模块对于从解码器接收的PCM数据执行Voice信号处理,然后输出到ASR总线。
是在Voice池中分配的Voice的内部模块。

模块功能

  • 预延迟
    控制从播放请求到实际播放的延迟。
  • 重采样
    当输入与渲染器不同的采样频率的声音时,将转换采样频率使之匹配。
    此外,指定音高参数时也使用重采样。
  • 插入DSP
    可以添加时间拉伸等效果。
  • 双二阶滤波器(Biquad filter)
    用于均衡的滤波器,允许选择滤波器类型。
  • 带通(Bandpass)滤波器
    可以为低频和高频指定截止频率的滤波器。
  • 包络控制器
    控制Attack,Hold,Decay,Sustain,Release等包络。
  • 频道条
    向多个总线输出PCM数据。

使用方法

在创建::CriAtomExVoicePoolHn 和::CriAtomPlayerHn 时,通过为配置的sound_renderer_type 指定::CRIATOM_SOUND_RENDERER_ASR ,在内部创建ASR Voice。

API

没有用于直接访问ASR Voice的API。
基本都通过 CriAtomExPlayer APICriAtomExPlayback API执行。

ASR总线

从多个ASR Voice和ASR总线输入音频信号并执行子混音。
然后,对该子混音的结果执行DSP效果处理。
最后按照频道条和总线发送路由器向其他总线输出音频信号。

模块功能

  • 子混音器
    混音ASR Voice和其他ASR总线传输来的PCM数据。
  • DSP效果链
    最多可执行8个DSP效果。
  • 频道条
    向多个总线输出PCM数据。
  • 级别分析器
    测量通过总线的音频的峰值和RMS。

使用方法

调用::criAtomEx_AttachDspBusSetting 可集中创建。
→ criatom_tools_atomcraft_dsp_bus_setting_v2015

API

用于访问ASR总线的API如下。
criAtomExAsr_SetBusVolume 设置ASR总线的音量
criAtomExAsr_SetBusMatrix 设置ASR总线的级别矩阵
criAtomExAsr_SetBusSendLevel 设置ASR总线的发送Level

DSP效果

该模块可以对声音应用各种效果。
最多可以在ASR总线中安装8个。
可以使用ASR的DSP效果如下。

使用方法

调用::criAtomEx_AttachDspBusSetting 可集中创建。
→ criatom_tools_atomcraft_dsp_bus_setting_v2015

API

用于访问DSP效果的API如下。
criAtomExAsr_SetDspParameter DSP参数设置
criAtomExAsr_SetDspBypass DSP bypass设置

ASR RACK

该模块可以容纳多个(最多64个)ASR总线。
将0号总线的结果输出到平台的音频端口或其他ASR RACK。

使用方法

使用::criAtomExAsrRack_Create 创建。

API

用于访问DSP效果的API如下。
criAtomExAsrRack_Create 创建ASR Rack
criAtomExAsrRack_Destroy 丢弃ASR Rack
criAtomExAsrRack_SetBusVolume 设置ASR Rack中的总线音量
criAtomExAsrRack_SetBusMatrix 设置ASR Rack中的总线级别矩阵
criAtomExAsrRack_SetBusSendLevel 设置ASR Rack中的总线的总线发送
criAtomExAsrRack_SetDspParameter ASR Rack中的DSP Bypass设置
criAtomExAsrRack_SetDspBypass ASR Rack中的DSP参数设置

补充

初始化ASR时会创建一个预设Rack。
criAtomExAsr_SetBusVolume(0, 1.0f); 和
criAtomExAsrRack_SetBusVolume(CRIATOMEXASR_RACK_DEFAULT_ID, 0, 1.0f);
的处理相同。