WebAudio LFO:将范围从 {-1, 1} 移至 {0, 1}
WebAudio LFO: shift range from {-1, 1} to {0, 1}
每个关于 WebAudio LFO 的教程都会为 LFO 创建一个振荡器,然后将其路由到增益节点的 gain
参数。
但是 AFAIK 振荡器产生从 -1 到 1 的输出,因此在半个周期内我们向增益乘法器发送一个负值。最好的情况下,它会被限制为 0 的最小增益,最坏的情况下,它会变为负值,从而有效地将调制波的频率加倍。
如何设置一个简单的低频振荡器,然后以预期频率从 0 振荡到 1?
您可以将 OscillatorNode 与 ConstantSourceNode 结合使用以达到预期效果。
const oscillatorNode = new OscillatorNode(context);
const constantSourceNode = new ConstantSourceNode(context);
const gainNode = new GainNode(context, { gain: 0.5 });
oscillatorNode.connect(gainNode);
constantSourceNode.connect(gainNode);
gainNode.connect(context.destination);
oscillatorNode.start();
constantSourceNode.start();
正如您所说,OscillatorNode 将在 -1 和 1 之间振荡。ConstantSourceNode 输出值为 1 的恒定信号。如果我们将这两个节点组合在一起,我们会得到一个在 0 和 2 之间振荡的信号。然后我们可以使用GainNode 将该信号除以 2。结果将是一个在 0 和 1 之间振荡的信号。
每个关于 WebAudio LFO 的教程都会为 LFO 创建一个振荡器,然后将其路由到增益节点的 gain
参数。
但是 AFAIK 振荡器产生从 -1 到 1 的输出,因此在半个周期内我们向增益乘法器发送一个负值。最好的情况下,它会被限制为 0 的最小增益,最坏的情况下,它会变为负值,从而有效地将调制波的频率加倍。
如何设置一个简单的低频振荡器,然后以预期频率从 0 振荡到 1?
您可以将 OscillatorNode 与 ConstantSourceNode 结合使用以达到预期效果。
const oscillatorNode = new OscillatorNode(context);
const constantSourceNode = new ConstantSourceNode(context);
const gainNode = new GainNode(context, { gain: 0.5 });
oscillatorNode.connect(gainNode);
constantSourceNode.connect(gainNode);
gainNode.connect(context.destination);
oscillatorNode.start();
constantSourceNode.start();
正如您所说,OscillatorNode 将在 -1 和 1 之间振荡。ConstantSourceNode 输出值为 1 的恒定信号。如果我们将这两个节点组合在一起,我们会得到一个在 0 和 2 之间振荡的信号。然后我们可以使用GainNode 将该信号除以 2。结果将是一个在 0 和 1 之间振荡的信号。