Web音频api - 缓冲间距上的LFO

时间:2015-07-12 15:28:03

标签: javascript audio web-audio

是否可以添加一个缓冲区声音回放值的lfo,类似于振荡器频率的方式?

我尝试创建振荡器节点,将频率值设置为2,将其连接到增益节点,将增益值设置为1000,然后将增益节点连接到缓冲区声音的回放但不起作用。

我的代码:

In [449]: np.dot(r,y.reshape(1,3))
Out[449]: 
array([[1, 2, 3],
       [2, 4, 6],
       [3, 6, 9]])

1 个答案:

答案 0 :(得分:2)

你从你的例子中遗漏了许多难以调试的上下文(例如b参数是什么?)如果你可以链接到一个实例,我可以查看更多细节。

绝对有可能用大致按照你描述的方式用LFO来驱动播放速率 - 但是振荡器的输出将在[-1,1]之间变化,所以你的lfoAmp的输出是将在[-1000,1000]之间变化。然后将与playsound.playbackRate相加,因此它将在[-1000 + b,1000 + b]之间变化。这是一个很大的乘数 - 实际上,当前的实现将playbackRate钳制到类似[0,4]的位置(对于确切的范围不是正面的 - 请参阅https://github.com/WebAudio/web-audio-api/issues/391#issuecomment-61673716。)

1)你可能想要改变[0.5,2]之间的playbackRate或类似的东西;混叠和谐波使得拉伸变得非常难听。

2)改变.detune,而不是.playbackRate,它可能更容易,当然也更具音乐性。通过[-1200,1200]改变一个八度音程,一个八度音降的音调。

(实际上,playbackRate目前被指定为k-rate,这会对这种情况造成一定影响,但是它上面有一个错误:https://github.com/WebAudio/web-audio-api/issues/55。)

相关问题