Spec-Zone.ru › Web APIs

Узел осциллятора: метод setPeriodicWave()

Базовая поддержка Широко распространена

Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2021 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Метод setPeriodicWave() интерфейса OscillatorNode используется для указания на PeriodicWave, определяющего периодическую форму волны, которая может использоваться для формирования выходного сигнала осциллятора, когда type custom.

Синтаксис

setPeriodicWave(wave)

Параметры

wave

Объект PeriodicWave, представляющий форму волны, используемой в качестве формы выходного сигнала осциллятора.

Возвращаемое значение

None (undefined).

Примеры

Следующий пример демонстрирует простое использование createPeriodicWave(), воссоздавая синусоиду из периодической волны.

const real = new Float32Array(2);
const imag = new Float32Array(2);
const ac = new AudioContext();
const osc = ac.createOscillator();

real[0] = 0;
imag[0] = 0;
real[1] = 1;
imag[1] = 0;

const wave = ac.createPeriodicWave(real, imag);

osc.setPeriodicWave(wave);

osc.connect(ac.destination);

osc.start();
osc.stop(2);

Это работает, потому что звук, содержащий только основную частоту, по определению является синусоидой.

Здесь мы создаём PeriodicWave с двумя значениями. Первое значение — смещение постоянной составляющей (DC offset), которое определяет значение, с которого начинается осциллятор. 0 подходит здесь, так как мы хотим начать кривую посередине диапазона [-1.0; 1.0].

Вторые и последующие значения — синусные и косинусные компоненты. Можно представить это как результат преобразования Фурье, где значения из частотной области получаются из значений во временной области. Здесь, с помощью createPeriodicWave(), вы указываете частоты, а браузер выполняет обратное преобразование Фурье для получения временного буфера для частоты осциллятора. Здесь мы устанавливаем только один компонент на полную громкость (1.0) на основной частоте, поэтому получаем синусоиду.

Спецификации

Спецификация
Web Audio API
# dom-oscillatornode-setperiodicwave

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
setPeriodicWave 30 12 25 17 8 30 25 18 8 2.0 ≤37

См. также

  • Использование Web Audio API
  • AudioContext.createPeriodicWave

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode/setPeriodicWave

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API