如何可视化动态压缩器节点的效果?

How can I visualize the effect of a dynamic compressor node?

网络音频规范 API 动态压缩器节点是指在各种分贝值上绘制的一些曲线。我如何可视化该曲线?

对于过滤器节点,网络音频 API 提供了一种 getFrequencyResponse 方法,可以生成可以在 2D 上可视化的数据 canvas。

动态处理器节点有没有类似的方法?或者是否有众所周知的公式用于计算节点对各种 dB 值的影响大小?

遗憾的是,无法轻松检查动态压缩器节点的效果。 WebAudio 规范中未指定实际实现。了解效果的唯一方法是检查源代码。或者也许将不同频率的正弦波馈送到节点并通过实验检查输出以查看发生了什么。这可能很难捕捉到所有参数的影响。

我不确定如何计算 knee 的曲线,但我很确定这应该不会太难。忽略膝盖,这是你需要的:

首先,您将从斜率为 1 的直线开始(45 度角,向上和向右)。另一种说法是 output = input

然后,当您点击 threshold 时,您可以更改直线的斜率以匹配您的压缩率。因此,如果您的比率是 2.3:1,则 threshold 上方的斜率将是 output = input / 2.3

无论如何,我敢肯定,如果您进行一些搜索,就可以弄清楚如何将 knee 考虑在内。它可能只是连接两个斜率的抛物线(如果 knee 为 0,则顶点位于它们通常相交的点)。然后你只需要弄清楚这个值的作用,但如果你阅读网络音频规范,knee 的单位是 dB——这让我相信这并不是真正特定于实现的。我认为可能有一个 Right Way™ 可以做到这一点。