BaseAudioContext: createWaveShaper()-Methode
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 createWaveShaper()
-Methode der BaseAudioContext
-Schnittstelle erstellt einen WaveShaperNode
, der eine nicht-lineare Verzerrung darstellt. Sie wird verwendet, um Verzerrungseffekte auf Ihr Audio 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 zur Erstellung eines WaveShaperNode. Für ausführlichere Anwendungsbeispiele und Informationen werfen Sie einen Blick auf unser Voice-change-O-matic-Demo (siehe app.js für relevanten Code).
Hinweis: Sigmoid-Funktionen werden häufig für Verzerrungskurven verwendet aufgrund ihrer natürlichen Eigenschaften. Ihre S-Form trägt beispielsweise dazu bei, ein glatteres Klangresultat zu schaffen. Wir fanden den untenstehenden Code für die Verzerrungskurve auf 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";
Spezifikationen
Specification |
---|
Web Audio API # dom-baseaudiocontext-createwaveshaper |