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

View in English Always switch to English

ConvolverNode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 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