ConvolverNode: Eigenschaft buffer

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.

Die buffer-Eigenschaft des ConvolverNode-Interfaces repräsentiert einen mono, stereo oder 4-Kanal AudioBuffer, der die (möglicherweise mehrkanalige) Impulsantwort enthält, die vom ConvolverNode verwendet wird, um den Halleffekt zu erzeugen.

Dies ist normalerweise eine einfache Aufnahme von einem möglichst impulsähnlichen Geräusch, wie es in dem Raum zu finden ist, den Sie modellieren möchten. Zum Beispiel, wenn Sie den Hall in Ihrem Badezimmer modellieren möchten, könnten Sie ein Mikrofon in der Nähe der Tür aufstellen, um das Geräusch eines platzenden Ballons oder eines synthetisierten Impulses vom Waschbecken aufzunehmen. Diese Audioaufnahme könnte dann als Buffer verwendet werden.

Dieser Audio-Buffer muss dieselbe Abtastrate wie der AudioContext haben, sonst wird eine Ausnahme ausgelöst. Zum Zeitpunkt der Einstellung dieses Attributs werden der Buffer und der Zustand des Attributs verwendet, um den ConvolverNode mit dieser Impulsantwort und der gegebenen Normalisierung zu konfigurieren. Der Anfangswert dieses Attributs ist null.

Wert

Beispiele

Zuweisung eines Audio-Buffers

Das folgende Beispiel erstellt einen Convolver-Knoten und weist ihm einen AudioBuffer zu.

Weitere vollständige angewandte Beispiele/Informationen finden Sie in unserem Voice-change-O-matic Demo (siehe app.js für den unten auszugsweise eingefügten Code).

js
const audioCtx = new AudioContext();
// ...

const convolver = audioCtx.createConvolver();
// ...

// Grab audio track via fetch() for convolver node
try {
  const response = await fetch(
    "https://mdn.github.io/voice-change-o-matic/audio/concert-crowd.ogg",
  );
  const arrayBuffer = await response.arrayBuffer();
  const decodedAudio = await audioCtx.decodeAudioData(arrayBuffer);
  convolver.buffer = decodedAudio;
} catch (error) {
  console.error(
    `Unable to fetch the audio file: ${name} Error: ${err.message}`,
  );
}

Spezifikationen

Specification
Web Audio API
# dom-convolvernode-buffer

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch