在渲染回调中将 Effect 应用于一个或一组总线

Apply Effect to one or group of buses in a render callback

我有一个渲染回调,其中有 20 条总线被路由到混音器,并且需要仅对其中一些总线应用效果。

我需要为此使用不同的回调还是可以使用相同的渲染器获得它?

有几种方法可以做到这一点。

您可以在混音器和回调之间手动添加效果。因此,不是直接在混音器输入上设置回调,而是为每个需要它的总线创建一个效果单元,将效果连接到混音器输入,然后在效果上设置输入回调。 (最直接)

示例:

AUGraphConnectNodeInput(inGraph, sourceEffect, inSourceOutputNumber, mixerNode, inDestInputNumber);
AUGraphSetNodeInputCallback (inGraph, sourceEffect,0,&inputCallbackStruct);

您可以保留对每个效果的引用,然后在您的回调中手动调用效果上的 AudioUnitRender。 (有点复杂)

如果您希望在多条总线上使用单一效果进行此处理,您可以使用两个混音器。所有需要效果的总线将被路由到 "Effect Mixer",然后效果可以在 "Effect Mixer" 的输出上,效果的输出可以进入您的主调音台。 (最有效率)