ConvolverNode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Das ConvolverNode-Interface ist ein AudioNode, das eine lineare Faltung auf einem gegebenen AudioBuffer durchführt und häufig zur Erzielung eines Hall-Effekts verwendet wird. Ein ConvolverNode hat immer genau einen Eingang und einen Ausgang.

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

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 Instanz eines ConvolverNode-Objekts.

Instanz-Eigenschaften

Erbt Eigenschaften vom Elternteil AudioNode.

ConvolverNode.buffer

Ein mono-, stereo- oder 4-Kanal- AudioBuffer, das das (möglicherweise mehrkanalige) Impulsantwortsignal enthält, das vom ConvolverNode zur Erzeugung des Hall-Effekts verwendet wird.

ConvolverNode.normalize

Ein boolescher Wert, der steuert, ob die Impulsantwort aus dem Puffer bei der Einstellung des buffer-Attributs durch eine gleichwertige Leistungsverstärkung skaliert wird oder nicht.

Instanz-Methoden

Keine spezifische Methode; erbt Methoden vom Elternteil AudioNode.

Beispiele

Das folgende Beispiel zeigt die grundlegende Verwendung eines AudioContext zum Erstellen eines Convolver-Knotens. Sie müssen ein Impulsantwortsignal finden, um das folgende Beispiel zu vervollständigen. Siehe unser Beispiel HolySpaceCow für ein vollständiges, 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

Siehe auch