波形表合成-WebAudioApi



我正在尝试使用Web Audio Api创建一个波形表合成器。我想实现的是从一种波形线性切换到另一种波形(如Massive或Serum(的可能性。

例如:从正弦波开始,我旋转一个旋钮,它会逐渐将其转换为方波。

我搜索了文档,到目前为止,我发现了如何创建自定义波形:

var real = new Float32Array(2);
var imag = new Float32Array(2);
var ac = new AudioContext();
var osc = ac.createOscillator();
real[0] = 0;
imag[0] = 0;
real[1] = 1;
imag[1] = 0;
var wave = ac.createPeriodicWave(real, imag, {disableNormalization: true});
osc.setPeriodicWave(wave);
osc.connect(ac.destination);
osc.start();
osc.stop(2);

主要的问题是,这个波形是静态的,我无法将其逐渐改变为其他波形。

我怎样才能实现我的目标?我在想,在每波之后放置两个增益节点,它们将相互补充。

例如:我的正弦波进入Gain1,它是10,我的方波进入Gain2,它是0。然后我把它们变成互补的,Gain1=5,Gain2=5,依此类推

这是一种有效的方法吗?

IIUC,我认为使用一组增益节点不会产生您想要的结果。而且没有内置的节点可以做到这一点。

我想你必须用AudioWorkletNode自己做这件事。

相关内容

  • 没有找到相关文章

最新更新