我希望实现一个3波段均衡器模仿一个标准的DJ混音器。
不幸的是,我没有太多的运气。我知道这涉及到创建BiquadFilter节点并将它们连接到gain节点。不幸的是,我没有得到任何想要的结果。
到目前为止,我唯一成功的就是用gainNode来控制音量。
任何帮助都将不胜感激。
谢谢,斯坦
发布于 2012-12-10 16:42:58
我将继续详细说明我对idbehold的问题的回答:
我想说的是,您可能希望使用类型5(峰值)的滤波器,它允许所有频率通过,并且仅以您设置的相应filter.frequency.value的频率放大/降低。这让你可以串联过滤器,这样你就不需要单独的音频路径。您还可以考虑使用低架滤波器作为第一个滤波器,使用高架滤波器作为第三个滤波器,这在3波段均衡器中相当常见。
如果你使用串联的峰值滤波器,你不需要为每个频率单独的增益节点,你只需要为特定的滤波器设置filter.gain.value。
代码将如下所示:
var lowshelf = context.createBiquadFilter(),
    mid = context.createBiquadFilter(),
    highshelf = context.createBiquadFilter();
 //set the filter types (you could set all to 5, for a different result, feel free to experiment)
 lowshelf.type = 3;
 mid.type = 5;
 highshelf.type = 4;
 //connect 'em in order
 yourInput.connect(lowshelf);
 lowshelf.connect(mid);
 mid.connect(highshelf);
 highshelf.connect(yourOutput);然后,您可以使用各自的Q、频率和增益值来调整每个频带(检查https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#BiquadFilterNode以了解哪些参数适用于哪种滤波器类型),例如:
 lowshelf.gain.value = 0.6;
 lowshelf.frequency.value = 300;编辑
要添加单独的增益,只需执行以下操作
  var gainNode = context.createGainNode();然后要么这样做
gainNode.connect(lowshelf); //pre EQ或
highshelf.connect(gainNode); //post EQ这取决于你是想在情商后还是在情商前。你通过做什么来控制收益
gainNode.gain.value = 0.6;https://stackoverflow.com/questions/13794284
复制相似问题