什么是Atom声音渲染器 (ASR)?
- Atom Sound Renderer (ASR) 是一个具有三个角色的模块:
- 1. 混合多个 Voice “声音”
- 2. 效果信号处理
- 3. 音频输出到输出目的地
- 注解
- 在手册和插件文件中有些地方使用了“ASR Rack”这一表述,但“ASR”和“ASR Rack”基本上是同义词。
- ADX 运行时在初始化期间自动创建 ASR 作为主输出。 确定主输出 ASR 内部配置的方法取决于可在 CRI AtomCraft 中设置的“混音器操作方法”。
- [如果混音器操作方式为版本 1] 在 CRI AtomCraft 中指定的总线设置
- [如果混音器操作方式为版本 2 或 ACF 未注册] CriWareInitializer 组件 -> 在“ASR Rendering Mode”中指定的设置
- 除非另有说明,语音发音将发送到ADX运行时创建的主输出 ASR。由于发送到 ASR 的音频与 PCM 信号混合,因此不再可能进行单独的声音控制。
语音混合
- ASR Rack具有用于内部渲染的独特扬声器配置。当语音发送到 ASR 时,会发生从语音数据通道配置到 ASR 扬声器配置的转换。
扬声器映射
- 扬声器映射 ( CriWare.CriAtom.SpeakerMapping ) 是一个值,指示用于混合和渲染音频的扬声器配置。
- 当 ADX 将输入音频数据与 ASR 混合时, ADX运行时会将其转换为与指定扬声器映射匹配的格式。
如果为音频设置了 atom4u_keys_panning ,则将使用 atom4u_keys_pan_speaker_type 通过平移来执行转换。
- Atom声音渲染器( 效果信号处理 )内的信号处理也是基于指定的扬声器配置完成的。
- 可以在初始化插件库时在 CriWareInitializer 组件的“ASR Rendering Mode”项目中指定主输出 ASR 的扬声器映射。 但是,如果您注册了 ACF 文件,扬声器映射将遵循 ACF 总线设置。 创建新的 ASR Rack 时,您可以在 CriWare.CriAtomExAsrRack.Config.speakerMapping 中指定正在创建的混音器的扬声器配置。
- 注解
- 如果没有注册ACF,则默认值为 CriWare.CriAtom.SpeakerMapping.Auto ,根据 CriWare.CriAtomExAsrRack.Config.outputChannels 的值自动确定。
有关 CriWare.CriAtomExAsrRack.Config.speakerMapping 和 CriWare.CriAtomExAsrRack.Config.outputChannels 之间的关系,请参阅 扬声器映射和声道数之间的关系 。
- 如果音频数据通道配置和混音器扬声器映射匹配,则不会转换音频数据。
如果它们不匹配, ADX运行时将相应地向下混合(或向上混合)输入音频以匹配混音器格式。
平移扬声器类型
- 平移扬声器类型是确定平移音频数据呈现位置的参数。
当您平移音频时,平移扬声器类型决定音频从哪个扬声器输出。
- 例如,当使用 CriWare.CriAtomExPlayer.SetPan3dAngle 函数将单声道音频定位到后面 (180°) 时,如果平移扬声器类型为 4Ch,则音频将平移到 Ls 和 Rs 通道。
如果平移扬声器类型为 6Ch,则执行相同操作后,音频将平移到 Lb/Rb 通道。
- 默认情况下自动设置声像扬声器类型。
结果,根据为该音频的输出目的地指定的扬声器映射,从哪个扬声器输出平移音频。
根据扬声器映射的具体声像扬声器类型如下。
- 例如,如果将单声道音频输出到通过指定 CriWare.CriAtom.SpeakerMapping.Ch5_1 创建的 ASR,平移扬声器类型将自动解释为 4Ch,并且将使用 L、R、Ls 和 Rs 执行平移。
效果信号处理
- 可以将使用Atom Craft创建的 DSP 总线设置附加到 ASR。
DSP总线设置包括ASR总线配置、总线名称、总线之间的发送信息以及每条总线的总线效果信息。
- 注解
- 如果没有附加 DSP 总线设置,例如在创建ASR Rack后立即,将为ASR Rack配置 8 条总线。
- 输出到ASR的语音通过指定的bus send发送到总线,最后从第0总线MasterOut输出。
DSP 总线和效果
- 借助ADX,您可以自由组合混音器和各种效果器,以使用DSP 总线设置执行高级声音处理。
如何使用 DSP 总线设置
使用CRI Atom Craft创建 DSP 总线配置
- 请参阅 CRI Atom Craft 工具手册,了解如何创建 DSP 总线配置的说明。
将创建的DSP总线设置附加到程序端
- 附加创建的 DSP 总线设置的代码如下所示。
CriAtomEx.AttachDspBusSetting("DspBusSetting_0");
:
:
criAtomSource.SetBusSendLevelOffset("BUS1", 0.5f);
criAtomSource.Play();
- 基本上,一次只能连接一个 DSP 总线设置,但是
在可以使用ASR Rack的环境中,也可以将其附加到ASR Rack上。
CriAtomEx.RegisterAcf(null, "proj.acf");
criAtomExAsrRack.AttachDspBusSetting("DspBusSetting_0");
:
:
criAtomSource.player.SetAsrRackId(rackId);
criAtomSource.SetBusSendLevelOffset("BUS1", 0.5f);
criAtomSource.Play();
自定义效果插件
- 除了CRI标准效果之外,用户创建的效果和第三方效果也可以用作ADX音频效果的插件。
- 通过将使用CRI ADX音频Effect插件 SDK 创建的效果插件创建为 VST,可以更轻松地调整工具上的参数。
CRI ADX Audio Effect Plugin SDK 详情请参考 CRI Atom Craft 工具手册中的相关内容。
混音器 AISAC
- 混音器 AISAC 是可以针对 DSP 总线设置 进行配置的 AISAC。
就像普通 AISAC 一样,您可以使用 AISAC 控制值更改 DSP 总线参数。
以下总线参数可以通过混音器 AISAC 进行控制。
- 混音器 AISAC 具有以下与普通 AISC 不同的规格。
- 有关CRI Atom Craft的设置,请参阅CRI Atom Craft工具手册。
第 3 方效果
- ADX不仅能够与ADX的内置效果配合使用,还能够与第 3 方效果配合使用。
McDSP 公司的各种效果
- 我们正在处理CRI ADX Audio Effect McDSP Expansion,这是一个ADX扩展,可以将 McDSP 的效果合并到ADX中。
您可以免费评估可集成到CRI Atom Craft的 McDSP 效果插件,为期一个月。
-
- 有关如何合并 McDSP 插件的信息,请参阅位于 SDK 的以下目录中的文档。
/cri/expansion/cri_audio_effect/
音频输出到输出目的地
ASR 声音输出方法
- ASR输出总线的输出目的地根据ACF中包含的DSP总线设置确定。 如果您没有附加 DSP 总线设置,您也可以通过将 CriWare.CriAtomExAsrRack.Config.soundRendererType 设置为以下值来指定它:
- CriWare.CriAtomEx.SoundRendererType.Native(输出到平台库)
- CriWare.CriAtomEx.SoundRendererType.Asr(输出到其他ASR)
- CriWare.CriAtomEx.SoundRendererType.Spatial(立体声输出)
- 如果指定了 CriWare.CriAtomEx.SoundRendererType.Asr,则声音将输出到 CriWare.CriAtomExAsrRack.Config.outputRackId 中指定的另一个 ASR。
因此,无法为插件库初始化时创建的ASR指定。
如果指定了 CriWare.CriAtomEx.SoundRendererType.Spatial ,则ADX内部将启用立体声功能。
有关空间声音功能的更多信息,请参阅「 立体声 」。
ASR 输出通道数
- 创建ASR时,您可以分别指定扬声器映射和输出通道。这两个参数的含义如下。
扬声器映射和声道数之间的关系
- 默认扬声器映射为 CriWare.CriAtom.SpeakerMapping.Auto,根据声道数的值自动确定。 因此,在许多情况下,仅指定 CriWare.CriAtomExAsrRack.Config.outputChannels 将产生正确的结果。
下图显示了使用 ASR 播放 7.1 ch 音频素材并将 CriWare.CriAtomExAsrRack.Config.outputChannels 设置为 8 时的流程。
CriWare.CriAtomExAsrRack.Config.speakerMapping 自动设置为 CriWare.CriAtom.SpeakerMapping.Ch7_1,ASR 在 8ch 上运行并按原样输出到平台。
输出通道和平台数量
- 还可以为声道数指定一个超出平台支持的声道数的值。
然后, ADX运行时知道平台支持的最大声道数,并进一步混合 ASR 输出。
下图显示了当 CriWare.CriAtomExAsrRack.Config.outputChannels 设置为 8(对于最多支持 5.1ch 的平台)时的流程。
ASR 在 8ch 上运行,但Atom的平台特定模块将其输出混合到 6ch 并将其输出到平台。
- 注意
- 当 CriWare.CriAtomExAsrRack.Config.outputChannels 的值大于或等于平台的最大声道数时,ASR 将向平台发出最大声道数信号。
此时,某些平台可能会对接收到的最大声道数的信号进行进一步的转换,以匹配设备的实际声道数。此处理是特定于平台的,与Atom内的缩混无关。
- 注解
- 对于智能手机ADX运行时的 ASR,CriWare.CriAtomExAsrRack.Config.outputChannels 的默认值为 2。
如果您想在PC环境中看到相同的输出,可以在PC上将CriWare.CriAtomExAsrRack.Config.outputChannels设置为2,以在各个平台上获得一致的立体声输出。
缩混计算公式
- 当以下值不同时, Atom中可能会发生缩混:
- Atom中的缩混遵循下表中的计算公式。
输入通道数 | 输出通道数 | 计算公式 (输出扬声器) = (输入扬声器) |
7.1.4.4ch | 7.1.4ch | L(mix) = L + Lbf * (-3dB)
R(mix) = R + Rbf * (-3dB)
C(mix) = C
LFE(mix) = LFE
Ls(mix) = Ls
Rs(mix) = Rs
Lb(mix) = Lb + Lbb * (-3dB)
Rb(mix) = Rb + Rbb * (-3dB)
Ltf(mix) = Ltf
Rtf(mix) = Rtf
Ltb(mix) = Ltb
Rtb(mix) = Rtb
|
7.1.4ch | 7.1ch | L(mix) = L + Ltf * (-3dB)
R(mix) = R + Rtf * (-3dB)
C(mix) = C
LFE(mix) = LFE
Ls(mix) = Ls
Rs(mix) = Rs
Lb(mix) = Lb + Ltb * (-3dB)
Rb(mix) = Rb + Rtb * (-3dB)
|
7.1ch | 5.1ch | L(mix) = L
R(mix) = R
C(mix) = C
LFE(mix) = LFE
Ls(mix) = Ls + Lb * (-3dB)
Rs(mix) = Rs + Rb * (-3dB) |
5.1ch | 4ch(L,R,Ls,Rs) | L(mix) = L + C * (-3dB)
R(mix) = R + C * (-3dB)
Ls(mix) = Ls
Rs(mix) = Rs |
4ch(L,R,Ls,Rs) | 2ch | L(mix) = L + Ls * (-3dB)
R(mix) = R + Rs * (-3dB) |
2ch | 1ch | MONO(mix) = L * (-3dB) + R * (-3dB) |
- 对于上表中未列出的组合,请分阶段进行缩混。
例如,如果输入为 7.1ch -> 输出 2ch,则缩混将以 7.1ch -> 5.1ch -> 4ch -> 2ch 的顺序进行。
因此,缩混计算公式如下:
L(mix) = L + C * (-3dB) + Ls * (-3dB) + Lb * (-6dB)
R(mix) = R + C * (-3dB) + Rs * (-3dB) + Rb * (-6dB)
THIS SERVICE MAY CONTAIN TRANSLATIONS POWERED BY GOOGLE. GOOGLE DISCLAIMS ALL WARRANTIES RELATED TO THE TRANSLATIONS, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF ACCURACY, RELIABILITY, AND ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.