失谐的振荡器似乎互相反弹

时间:2018-12-03 19:23:22

标签: web-audio web-audio-api

注意:如果单击小提琴,请确保将声音调到最小。

我正在使用Web Audio API,我想使一个振荡器相对于另一个振荡器失谐几美分,以产生更浓的声音。问题是当我确实使一个振荡器失谐时,它会产生脉动的声音。如果我使用失谐量,它会变得更好或更糟,具体取决于我为每个振荡器设置的值。如果我将一个振荡器减-1(如下例所示),则从振荡器返回的声音会定期切出。

这是为什么?我之前使用过的软件合成器可以让您降低一美分,因此假设这不是问题。

// create web audio api context
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();

// create Oscillator node
var oscillator = audioCtx.createOscillator();

oscillator.type = 'square';
oscillator.frequency.setValueAtTime(440, audioCtx.currentTime); // value in hertz
oscillator.connect(audioCtx.destination);


// create Oscillator node
var oscillator1 = audioCtx.createOscillator();

oscillator1.type = 'square';
oscillator1.frequency.setValueAtTime(440, audioCtx.currentTime); // value in hertz
oscillator1.detune.setValueAtTime(-1, audioCtx.currentTime);
oscillator1.connect(audioCtx.destination);

oscillator.start();
oscillator1.start();

https://jsfiddle.net/c1xdnLtm/

0 个答案:

没有答案