Web Audio API — 使用增益对信号进行平方

Web Audio API — squaring a signal by using a Gain

是否可以通过创建 Gain 实例并将信号连接到增益输入和幅度控制参数来对信号进行平方?因为我至少在 Firefox 中看到了奇怪的结果。我可以看到 Tone.js 使用 wave-shaper 而不是 pow 操作,所以也许这就是要走的路。但我很好奇,既然 API 说 gain 参数是音频速率,显然一定有一些延迟。

是的,它可以用这种方式对信号进行平方。 (我在我的声码器中使用它。)这样做应该不会延迟。

这对我有用:

var c = new AudioContext();
var o = c.createOscillator();
var g = c.createGain();
g.gain.value = 0;
g.connect(c.destination);
o.connect(g);
o.connect(g.gain);
o.start();
o.stop(c.currentTime + 2);

听听看不出来,把代码贴进去http://hoch.github.io/canopy/就可以看到正弦波已经平方了。