如何将网络音频振荡器从 (-1,1) 缩放到 (x,y)

how to scale web audio oscillator from (-1,1) to (x,y)

我想将振荡器的信号从 (-1,1) 映射到 (x,y) 据我目前的了解,增益节点可用于此。

如果我将振荡器连接到值为 1 的增益节点,我会在 (0,2)

范围内返回信号

如果我将此信号馈入另一个增益值 0.25,我将返回范围 (0,0.5) 内的信号

但是如果我希望我的信号在 (0.5, 1) 范围内怎么办?

我在想为什么我们不能简单地将一个函数映射到一个信号上。

喜欢signal.map(函数(x){return x + 0.5})

对于您提到的特定场景(“如果我希望我的信号在 (0.5, 1) 范围内怎么办?”),您应该将 (0,0.5) 信号连接到与一个 ConstantSourceNode:

var constant = new ConstantSourceNode( { offset: 0.5 } );
constant.connect( /* same node as your signal */ );

对于更一般的情况 - 例如,您想进行非线性映射 - 使用 WaveShaperNode。