Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
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.

js
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

Browser-Kompatibilität

Siehe auch