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 verwendet, um einen Hall-Effekt zu erzielen. Ein ConvolverNode hat immer genau einen Eingang und einen Ausgang.

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

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

Konstruktor

ConvolverNode()

Erstellt eine neue ConvolverNode-Objektinstanz.

Instanzeigenschaften

Erbt Eigenschaften von seinem Elternteil, AudioNode.

ConvolverNode.buffer

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

ConvolverNode.normalize

Ein Boolean, der steuert, ob die Impulsantwort aus dem Buffer durch eine Gleichleistungsnormalisierung skaliert wird, wenn das buffer-Attribut gesetzt wird oder nicht.

Instanzmethoden

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 untenstehende Beispiel zu vervollständigen. Siehe diesen 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