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 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
| Specification |
|---|
| Web Audio API> # dom-baseaudiocontext-createwaveshaper> |