Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
去年关闭。
Improve this question
当滤波器频率触底时,使用LFO调制滤波器节点频率时,我会突然弹出。
我怀疑这是由于截止时振幅尚未达到。是否也需要调节增益?我希望不必这样做,而且我也不确定该怎么做。
编辑:忘记链接到示例代码http://jsfiddle.net/hyf5N/
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
去年关闭。
Improve this question
当滤波器频率触底时,使用LFO调制滤波器节点频率时,我会突然弹出。
我怀疑这是由于截止时振幅尚未达到。是否也需要调节增益?我希望不必这样做,而且我也不确定该怎么做。
编辑:忘记链接到示例代码http://jsfiddle.net/hyf5N/
var context = new webkitAudioContext();
var lfo = context.createOscillator();
lfo.frequency.value = 10;
var saw = context.createOscillator();
saw.type = 'sawtooth';
var filter = context.createBiquadFilter();
filter.type = 'lowpass';
var gain = context.createGainNode();
gain.gain.value = 500;
saw.connect(filter);
lfo.connect(gain);
gain.connect(filter.frequency);
filter.connect(context.destination);
lfo.start(0);
saw.start(0)
最佳答案
我认为您会大吃一惊(必须分析波形以弄清楚原因),因为您的LFO正在将频率从-490调制到510。(频率值= 10,+ LFO([-1,1])* 500 。)我期望负频率会引起问题。
如果希望它在0到1kHz之间进行调制,则将frequency.value设置为500,将gain.value设置为500。(关键是振荡器将从-1变为1,而不是0到1。 )
整流器代码:
var waveshaper = audioContext.createWaveShaper();
var curve = new Float32Array(65536);
for (var i=0; i<32768; i++)
curve[i] = 0.0;
for (var i=32768; i<65536; i++)
curve[i] = (i/32768) - 1;
waveshaper.curve = curve;
07-24 09:30