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> |
Browser-Kompatibilität
Loading…