【发布时间】:2020-01-23 22:13:04
【问题描述】:
我正在使用 HTML5 音频 API 和 JavaScript 编写一个 10 波段均衡器。根据我在网上的研究,可以将10个频段创建为BiquadFilterNode,并依次连接以获得最终效果:
var AudioContext = new AudioContext();
var filter = context.createBiquadFilter(); // create the filter node
filter.type = 'peaking';
filter.gain.value = 0; // Default gain value
filter.Q.value = 1;
filter.frequency.value = 60; // and 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000 for the rest 9 bands
(可以看到非常相似的设置here)。
到目前为止一切顺利。但现在我被困在标准均衡器上常见的所谓“前置放大器”上。例如,这是 Winamp 的:
这是 VOX 的:
这是 VLC 的:
等等。你明白了。我的问题是:这个“前置放大器”究竟是做什么的,我如何将它编程到我的应用程序中?
【问题讨论】:
-
你能再解释一下吗?它如何应用增益?
-
到什么因素?他们是否添加/减去每个下一个频段的 dB 值(如上面的屏幕截图)?
-
我读了这篇文章,仍然不明白 GainNode 是一个前置放大器。当前置放大器值(如上面的屏幕截图)似乎以 dB 为单位时,增益是一个无单位的值。该链接似乎也没有回答我关于从前置放大器应用到后续频段的计算的问题。谢谢你的帮助,但你的讽刺并不是真的必要。
标签: javascript html audio