ConvolverNode

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.

Das ConvolverNode-Interface ist ein AudioNode, das eine Lineare Faltung auf einem gegebenen AudioBuffer durchführt, häufig genutzt, um einen Halleffekt zu erzielen. Ein ConvolverNode hat immer genau einen Eingang und einen Ausgang.

Hinweis: Für weitere Informationen über die Theorie hinter der Linearen Faltung, siehe den Artikel über Faltung auf Wikipedia.

EventTarget AudioNode ConvolverNode
Anzahl der Eingänge 1
Anzahl der Ausgänge 1
Kanalanzahl-Modus "clamped-max"
Kanalanzahl 1, 2, oder 4
Kanal-Interpretation "speakers"

Konstruktor

ConvolverNode()

Erstellt eine neue ConvolverNode-Objektinstanz.

Instanz-Eigenschaften

Erbt Eigenschaften von seinem Elternteil, AudioNode.

ConvolverNode.buffer

Ein mono, stereo oder 4-kanaliger AudioBuffer, der die (möglicherweise mehrkanalige) Impulsantwort enthält, die vom ConvolverNode verwendet wird, um den Halleffekt zu erstellen.

ConvolverNode.normalize

Ein boolescher Wert, der steuert, ob die Impulsantwort aus dem Buffer durch eine Gleichleistungs-Normalisierung skaliert wird, wenn das buffer-Attribut gesetzt wird, oder nicht.

Instanz-Methoden

Keine spezifische Methode; erbt Methoden von seinem Elternteil, AudioNode.

ConvolverNode-Beispiel

Das folgende Beispiel zeigt die grundlegende Verwendung eines AudioContext, um einen Convolver-Node zu erstellen.

Hinweis: Sie müssen eine Impulsantwort finden, um das folgende Beispiel abzuschließen. Siehe dieses Codepen für ein angewandtes Beispiel.

js
let audioCtx = new window.AudioContext();

async function createReverb() {
  let convolver = audioCtx.createConvolver();

  // load impulse response from file
  let response = await fetch("path/to/impulse-response.wav");
  let arraybuffer = await response.arrayBuffer();
  convolver.buffer = await audioCtx.decodeAudioData(arraybuffer);

  return convolver;
}

// …

let reverb = await createReverb();

// someOtherAudioNode -> reverb -> destination
someOtherAudioNode.connect(reverb);
reverb.connect(audioCtx.destination);

Spezifikationen

Specification
Web Audio API
# ConvolverNode

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch