BaseAudioContext: метод createWaveShaper()
Базовая реализация Широко поддерживается
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2021 года.
Метод createWaveShaper() интерфейса BaseAudioContext создаёт узел искажения WaveShaperNode. Он используется для применения эффектов искажения к аудиосигналу.
Примечание: Рекомендуется использовать конструктор WaveShaperNode() для создания узла WaveShaperNode; см. Создание AudioNode.
Синтаксис
createWaveShaper()
Параметры
Нет.
Возвращаемое значение
Узел WaveShaperNode.
Примеры
В следующем примере показано базовое использование AudioContext для создания узла волнового преобразования. Для более полных примеров применения/информации обратитесь к нашему демо Voice-change-O-matic (см. app.js, строки 108–193 для соответствующего кода).
Примечание: Сигмоидные функции часто используются для кривых искажения из-за их естественных свойств. Например, их S-образная форма помогает создавать более плавный звук. Мы нашли приведенный ниже код кривой искажения на Stack Overflow.
const audioCtx = new AudioContext();
const distortion = audioCtx.createWaveShaper();
// …
function makeDistortionCurve(amount) {
const k = typeof amount === "number" ? amount : 50;
const n_samples = 44100;
const curve = new Float32Array(n_samples);
const deg = Math.PI / 180;
for (let i = 0; i < n_samples; i++) {
const x = (i * 2) / n_samples - 1;
curve[i] = ((3 + k) * x * 20 * deg) / (Math.PI + k * Math.abs(x));
}
return curve;
}
// …
distortion.curve = makeDistortionCurve(400);
distortion.oversample = "4x";
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
createWaveShaper |
15 | 12 | 25 | 15 | 6 | 18 | 25 | 14 | 6 | 1.0 | 4.4.3 |
См. также
© 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/BaseAudioContext/createWaveShaper