Web Audio API - 计算过滤器的累积增益
Web Audio API - calculate cumulative gain of filters
MediaStreamAudioSourceNode
配置了几个链式重叠的BiquadFilterNodes
。每个滤波器都有不同的频率、增益和质量。如何计算这些双二阶滤波器的总增益?
此增益对于防止削波是必要的。知道增益后,我将能够添加一个 GainNode 来降低音量以防止削波。
对于每个 BiquadFilterNode
,使用相同的 frequencyHz
数组,使用 getFrequencyReponse
获得滤波器的频率响应。其中每一个都有一个 magResponse
数组。将这些相乘,逐元素得到组合响应。
元素0是直流增益。您可以将此(倒数)用于 GainNode 的增益值。但这可能会导致其他频率被削波,因此您可能希望找到组合响应中的最大值并使用它。但是,这可能会导致音量非常低,具体取决于所使用的过滤器。
MediaStreamAudioSourceNode
配置了几个链式重叠的BiquadFilterNodes
。每个滤波器都有不同的频率、增益和质量。如何计算这些双二阶滤波器的总增益?
此增益对于防止削波是必要的。知道增益后,我将能够添加一个 GainNode 来降低音量以防止削波。
对于每个 BiquadFilterNode
,使用相同的 frequencyHz
数组,使用 getFrequencyReponse
获得滤波器的频率响应。其中每一个都有一个 magResponse
数组。将这些相乘,逐元素得到组合响应。
元素0是直流增益。您可以将此(倒数)用于 GainNode 的增益值。但这可能会导致其他频率被削波,因此您可能希望找到组合响应中的最大值并使用它。但是,这可能会导致音量非常低,具体取决于所使用的过滤器。