Расстроенные осцилляторы, кажется, отскакивают друг от друга - PullRequest
0 голосов
/ 03 декабря 2018

Примечание: если вы нажмете на скрипке, убедитесь, что ваш звук выключен до минимума.

Я использую API-интерфейс Web Audio и хочу отрегулировать один генератор противеще на несколько центов, чтобы создать более плотный звук.Проблема в том, что когда я расстраиваю один генератор, он создает пульсирующий звук.Если я играю с величиной отстройки, она становится лучше или хуже в зависимости от значений, которые я установил для каждого генератора.Если я отрегулирую один осциллятор на -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/

...