gpt4 book ai didi

javascript - 如何使用javascript网络音频扭曲特定的频率范围?

转载 作者:行者123 更新时间:2023-12-02 22:37:56 25 4
gpt4 key购买 nike

我有一个基于个人听力图 (http://howdeaf.com) 模拟耳聋的小型网络应用程序。从本质上讲,它是:
source -> 2-ch splitter -> 6 inline frequency separators -> merge node -> destination
-> 6 inline frequency separators ->

频率分隔符是使用以下代码创建的:

for (let i = 0; i < bandSplit.length; i++) {
for (let j in sides) {
var side = sides[j];
let filterNode = context.createBiquadFilter();
filterNode.frequency.value = bandSplit[i];
if (i === 0)
filterNode.type = 'lowshelf';
else if (i === bandSplit.length - 1)
filterNode.type = 'highshelf';
else
filterNode.type = 'peaking';
filterNode.gain.value = 0.0;

this.eqNodes[side].push(filterNode);

if (i > 0)
this.eqNodes[side][i - 1].connect(this.eqNodes[side][i]);
}
}

我调整了 12 个频率分离器节点中的每一个节点的增益,这是一个非常简洁的模拟。

我想为这 12 个双二阶滤波器节点中的每一个单独添加失真(使用 createWaveShaper() ),使用不同的曲线值,但我没有成功地扭曲单个频率。我创建的任何失真节点都会影响该 channel 的整个音频输出。

有没有办法单独对这些频率选择节点应用失真?

最佳答案

除了两个过滤器之外,所有过滤器都是增益为 0 的峰值过滤器。这基本上可以让所有东西都通过。因此,您应用的任何波形整形都会应用于整个频带。 (例如,参见 http://googlechrome.github.io/web-audio-samples/samples/audio/mag-phase.html 以获取响应图。)

考虑使用不同种类的滤波器,例如带通滤波器。这可能不适合您的应用,但至少这些滤波器不会让所有频率通过。

关于javascript - 如何使用javascript网络音频扭曲特定的频率范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43020591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com