WebAudio LFO:从{-1,1}到{0,1}的移位范围

问题描述 投票:1回答:1

关于WebAudio LFO的每个教程,都会为LFO创建一个振荡器,然后将其路由到增益节点的gain参数。

但是AFAIK振荡器产生的输出从-1到1,因此对于半个周期,我们将向负乘法器发送一个负值。最好的情况下,它被限制为最小增益0,最坏的情况下它变成负值,从而有效地使调制波的频率加倍。

您如何设置一个简单的LFO,然后以预期的频率从0振荡到1?

web-audio-api
1个回答
0
投票

您可以将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之间振荡。

© www.soinside.com 2019 - 2024. All rights reserved.