BaseAudioContext: createWaveShaper()-Methode
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit April 2021 browserübergreifend verfügbar.
Die createWaveShaper()-Methode des BaseAudioContext-Interfaces erstellt einen WaveShaperNode, der eine nicht-lineare Verzerrung darstellt. Sie wird verwendet, um Verzerrungseffekte auf Ihren Audioinhalten anzuwenden.
Hinweis:
Der WaveShaperNode()-Konstruktor ist die empfohlene Methode, um einen WaveShaperNode zu erstellen; siehe Erstellen eines AudioNode.
Syntax
createWaveShaper()
Parameter
Keine.
Rückgabewert
Ein WaveShaperNode.
Beispiele
Das folgende Beispiel zeigt die grundlegende Verwendung eines AudioContext, um einen Wave Shaper Node zu erstellen. Für vollständigere angewendete Beispiele/Informationen sehen Sie sich unser Voice-change-O-matic-Demo an (siehe app.js für den relevanten Code).
Hinweis: Sigmoid-Funktionen werden häufig für Verzerrungskurven verwendet aufgrund ihrer natürlichen Eigenschaften. Ihr S-förmiges Profil hilft beispielsweise, ein smootheres Klangresultat zu erzeugen. Wir fanden den untenstehenden Verzerrungskurven-Code auf Stack Overflow.
const audioCtx = new AudioContext();
const distortion = audioCtx.createWaveShaper();
// …
function makeDistortionCurve(amount) {
const k = typeof amount === "number" ? amount : 50;
const numSamples = 44100;
const curve = new Float32Array(numSamples);
const deg = Math.PI / 180;
for (let i = 0; i < numSamples; i++) {
const x = (i * 2) / numSamples - 1;
curve[i] = ((3 + k) * x * 20 * deg) / (Math.PI + k * Math.abs(x));
}
return curve;
}
// …
distortion.curve = makeDistortionCurve(400);
distortion.oversample = "4x";
Spezifikationen
| Spezifikation |
|---|
| Web Audio API> # dom-baseaudiocontext-createwaveshaper> |