javascript - Web Audio API - 计算滤波器的累积增益
问题描述
MediaStreamAudioSourceNode
配置了几个链式和重叠BiquadFilterNodes
的。每个滤波器都有不同的频率、增益和质量。如何计算这些双二阶滤波器的总增益?
该增益对于防止削波是必要的。知道增益后,我将能够添加一个 GainNode 来降低音量以防止削波。
解决方案
对于每个BiquadFilterNode
,使用相同的数组getFrequencyReponse
获取滤波器的频率响应。frequencyHz
每一个都有一个magResponse
数组。将这些按元素相乘以获得组合响应。
元素 0 是直流增益。您可以将其(倒数)用于 GainNode 的增益值。但这可能会导致其他频率被削波,因此您可能希望找到组合响应中的最大值并使用它。但是,这可能会导致音量非常低,具体取决于所使用的过滤器。
推荐阅读
- arm - STM32F101RF 因 MRC2 反汇编而出现硬故障?
- c# - 如何使用 Selenium C# 在 Google 搜索按钮中声明文本?
- sql - SQL 为不存在的数据创建概览
- typescript - 如何在 Typescript 中动态获取孩子的类型?
- javascript - 使用 Node 的完整 icu 构建和服务 NestJS 应用程序以使用国际化
- c++ - 为不同类型实现相同的功能
- javascript - 如何使用 GraalVM 从 Java 访问 JS 导出的模块对象?
- php - 时区转换在 PHP 中多花一小时
- javascript - 如何在创建过程中使用 Javascript 中的循环将对象添加到数组中?
- outlook - Outlook VSTO 插件 - 在 OLK 规则之前处理 MailItem