首页 > 解决方案 > 失谐振荡器似乎相互反弹

问题描述

注意:如果你点击小提琴,确保你的声音被调到最低。

我正在使用 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/

标签: web-audio-api

解决方案


推荐阅读