BiquadFilterNode: Q property
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.
The Q
property of the BiquadFilterNode
interface is an a-rate AudioParam
, a double representing a Q factor, or quality factor.
Value
An AudioParam
. Its defaultValue
is 1
, and its minValue
and maxValue
are ±(2128 - 2104), or approximately ±3.403e38. This is the range of single-precision floating-point numbers.
Its actual value range depends on the filter's type
:
- For
lowpass
andhighpass
, theQ
value is interpreted to be in dB. For these filters the value range is [-Q, Q] where Q is the largest value for which 10Q/20 does not overflow the bound above. This is approximately 770.63678. - For
bandpass
,notch
,allpass
, andpeaking
, theQ
value is related to the bandwidth of the filter and should be positive, but there's no stricter maximum than the above. - It is not used for
lowshelf
andhighshelf
filters.
Note:
Though the AudioParam
returned is read-only, the value it represents is not.
Examples
The following example shows basic usage of an AudioContext to create a Biquad filter node. For more complete applied examples/information, check out our Voice-change-O-matic demo (see app.js lines 108–193 for relevant code).
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;
Specifications
Specification |
---|
Web Audio API # dom-biquadfilternode-q |
Browser compatibility
Report problems with this compatibility data on GitHubdesktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Q |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support