BaseAudioContext: Methode createWaveShaper()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
Die Methode createWaveShaper()
der BaseAudioContext
-Schnittstelle erstellt einen WaveShaperNode
, der eine nichtlineare Verzerrung darstellt. Sie wird verwendet, um Verzerrungseffekte auf Ihr Audio anzuwenden.
Hinweis: Der Konstruktor WaveShaperNode()
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 zur Erstellung eines Wave Shaper Node. Für vollständigere Anwendungsbeispiele/informationen besuchen Sie unser Voice-change-O-matic Demo (siehe app.js Zeilen 108–193 für relevanten Code).
Hinweis: Sigmoid-Funktionen werden häufig für Verzerrungskurven verwendet, wegen ihrer natürlichen Eigenschaften. Ihre S-Form trägt beispielsweise dazu bei, ein reibungsloser klingendes Ergebnis zu erzeugen. Wir haben den unten stehenden Code für die Verzerrungskurve auf Stack Overflow gefunden.
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";
Spezifikationen
Specification |
---|
Web Audio API # dom-baseaudiocontext-createwaveshaper |
Browser-Kompatibilität
BCD tables only load in the browser