WebAudio LFO: диапазон сдвига от {-1, 1} до {0, 1} - PullRequest
1 голос
/ 29 октября 2019

Каждый учебник по LFO WebAudio создает генератор для LFO, который затем направляется к параметру gain узла усиления.

Но осцилляторы AFAIK выдают выходной сигнал от -1 до 1, поэтому в течение половины цикла мы посылаем отрицательное значение в множитель усиления. В лучшем случае это обрезается до минимального усиления 0, в худшем случае оно переходит в отрицательное, фактически удваивая частоту модулирующей волны.

Как настроить простой LFO, который колеблется от 0 до 1 с ожидаемой частотой?

1 Ответ

0 голосов
/ 29 октября 2019

Вы можете объединить OscillatorNode с ConstantSourceNode для достижения желаемого эффекта.

const oscillatorNode = new OscillatorNode(context);
const constantSourceNode = new ConstantSourceNode(context);
const gainNode = new GainNode(context, { gain: 0.5 });

oscillatorNode.connect(gainNode);
constantSourceNode.connect(gainNode);

gainNode.connect(context.destination);

oscillatorNode.start();
constantSourceNode.start();

Как вы сказали, OscillatorNode будет колебаться между -1 и 1. ConstantSourceNode выводит постоянный сигнал со значением 1. Если мы объединим эти два узла, мы получим сигнал, колеблющийся между 0 и 2. Затем мы можем использовать GainNode, чтобы разделить этот сигнал на 2. В результате будет сигнал, колеблющийся между 0 и 1.

...