使用Web Audio API时遇到问题。

Gain drop example

当我将增益节点连接到链上并更改其增益(例如-6.0dB)时,它将立即使增益降低远超过6.0dB,然后慢慢将音量调高。类似于在链中某处安装缓释压缩机。我在BiquadFilterNode上经历了同样的事情
并且对于重低音内容更引人注目。

我正在使用以下代码来设置增益节点:

var gainNode = context.createGain();
source.connect(gainNode);
gainNode.connect(context.destination);

这会改变增益:
gainNode.gain.value = -6.0;

它不仅是一两个额外的下降dB,有时音频在下降6dB时会完全静音,并在2-3秒后逐渐消失。

我在使用Web Audio API的其他站点上没有看到此问题,所以我假设我在这里遗漏了一些明显的东西,但我无法弄清楚。是的,我是这个API的新手。

任何想法都将非常有帮助!它有自动增益或默认情况下需要禁用的功能吗?

干杯!
/ Mattias

最佳答案

增益值是绝对的,因此不要将-6的值减小到-6。

正如文档所述,不应这样做。尝试保持在0到20之间。0什么都不是,20很大声。 1是100%。

但是,您可以设置负值,因为您可以使用增益节点来控制从振荡器到滤波器的频率。请参阅我的网站gtube.de => PUBLISH,以了解节点如何通过FM调制相互运行。

但是要处理纯体积,请保持在0到任意值之间,但不能为负。

10-05 21:05