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