AudioKit的AKNodeOutputPlot如何提取它的数据?

时间:2017-11-17 07:58:29

标签: c++ ios audiokit

我对AudioKit框架非常陌生,我一直在尝试更多地了解DSP方面。虽然在源代码中翻找,但我意识到AKNodeOutputPlot不会以与其他人相同的方式从节点中提取数据。

在AKAmplitudeTracker的DSP代码中,为每个通道计算RMS值,并将结果短暂写入输出缓冲区,但在for循环结束时,通过将输出设置为原始输入,基本上绕过了节点:

public class PartBLL
{
    public static int AssignPartToShelf(string action, string userName, string itemNumber, string shelfNumber, string userToken)
    {
        if (soldPartSetting == true)
        {
            partService.ServiceInstance.UndoSoldItem(part.ID.Value, userToken);
            return 0;
        }
    }
}

这是有道理的,因为将RMS值输出到设备扬声器会听起来很糟糕,但是当此节点用作AKNodeOutputPlot对象的输入时,会绘制RMS值。

input and rms plot

我假设leftEmplitude和rightAmplitude变量在某处被引用,但即使它们被清零,该图也可以正常工作。我有兴趣在不影响输出的情况下对信号做一些工作,所以我很喜欢有人可以帮我弄清楚AKPlot如何抓取这些数据。

干杯

1 个答案:

答案 0 :(得分:1)

AKNodeOutputPlot适用于称为“tap”的东西:

https://github.com/AudioKit/AudioKit/blob/master/AudioKit/Common/User%20Interface/AKNodeOutputPlot.swift

还有一些其他的点击不一定仅用于用户界面:

https://github.com/AudioKit/AudioKit/tree/master/AudioKit/Common/Taps

Taps允许您检查通过另一个节点拉出的数据,而无需插入信号链本身。