Javascript Web音频API-计算过滤器的累积增益

Javascript Web音频API-计算过滤器的累积增益,javascript,web-audio-api,Javascript,Web Audio Api,MediaStreamAudioSourceNode配置了多个链接和重叠的BiquadFilterNode。每个滤波器具有不同的频率、增益和质量。如何计算这些双四阶滤波器的总增益 此增益对于防止削波是必要的。知道增益后,我将能够添加一个增益节点来降低音量以防止削波。对于每个BiquadFilterNode,使用GetFrequencyResponse获得滤波器的频率响应,使用相同的frequencyHz阵列。每一个都将有一个magress数组。将这些元素相乘,得到组合响应 元素0是直流增益。您可

MediaStreamAudioSourceNode
配置了多个链接和重叠的
BiquadFilterNode
。每个滤波器具有不同的频率、增益和质量。如何计算这些双四阶滤波器的总增益


此增益对于防止削波是必要的。知道增益后,我将能够添加一个增益节点来降低音量以防止削波。

对于每个
BiquadFilterNode
,使用
GetFrequencyResponse
获得滤波器的频率响应,使用相同的
frequencyHz
阵列。每一个都将有一个
magress
数组。将这些元素相乘,得到组合响应


元素0是直流增益。您可以使用这个(倒数)作为增益节点的增益值。但这可能会使其他频率被截断,因此您可能希望在组合响应中找到最大值并使用该值。但是,这可能会导致音量过低,具体取决于所使用的过滤器。

非常感谢!我公开了一个要点,以防其他人需要解决方案:非常好!谢谢你为我的话编写代码。我唯一可以添加的是让函数使用一个额外的参数来指定间距。
steps
值可能应该从sampleRate派生,您可以通过查看
filter.context.sampleRate
从其中一个过滤器获得该值。