BiquadFilterNode: Q-Eigenschaft

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.

Die Q-Eigenschaft des BiquadFilterNode-Interfaces ist ein a-rate AudioParam, ein Double, das einen Q-Faktor oder Qualitätsfaktor darstellt.

Wert

Ein AudioParam. Sein defaultValue ist 1, und sein minValue und maxValue sind ±(2128 - 2104), oder etwa ±3,403e38. Dies ist der Bereich von Gleitkommazahlen einfacher Genauigkeit.

Sein tatsächlicher Wertebereich hängt vom type des Filters ab:

  • Für lowpass und highpass wird der Q-Wert in dB interpretiert. Für diese Filter ist der Wertebereich [-Q, Q], wobei Q der größte Wert ist, für den 10Q/20 die obige Grenze nicht übersteigt. Dies entspricht etwa 770,63678.
  • Für bandpass, notch, allpass und peaking steht der Q-Wert im Zusammenhang mit der Bandbreite des Filters und sollte positiv sein, es gibt jedoch keine strengere Obergrenze als die oben genannte.
  • Für lowshelf und highshelf-Filter wird er nicht verwendet.

Hinweis: Obwohl das zurückgegebene AudioParam schreibgeschützt ist, ist der Wert, den es darstellt, nicht.

Beispiele

Das folgende Beispiel zeigt die grundlegende Verwendung eines AudioContext zum Erstellen eines Biquad-Filter-Knotens. Für vollständigere angewandte Beispiele/Informationen sehen Sie sich unser Voice-change-O-matic-Demo an (siehe app.js, Zeilen 108–193 für relevanten Code).

js
const audioCtx = new AudioContext();

// Set up the different audio nodes we will use for the app
const analyser = audioCtx.createAnalyser();
const distortion = audioCtx.createWaveShaper();
const gainNode = audioCtx.createGain();
const biquadFilter = audioCtx.createBiquadFilter();
const convolver = audioCtx.createConvolver();

// Connect the nodes together

source = audioCtx.createMediaStreamSource(stream);
source.connect(analyser);
analyser.connect(distortion);
distortion.connect(biquadFilter);
biquadFilter.connect(convolver);
convolver.connect(gainNode);
gainNode.connect(audioCtx.destination);

// Manipulate the Biquad filter

biquadFilter.type = "lowshelf";
biquadFilter.frequency.value = 1000;
biquadFilter.gain.value = 25;

biquadFilter.type = "peaking";
biquadFilter.frequency.value = 1000;
biquadFilter.Q.value = 100;
biquadFilter.gain.value = 25;

Spezifikationen

Specification
Web Audio API
# dom-biquadfilternode-q

Browser-Kompatibilität

Siehe auch