The BiquadFilterNode
interface represents a simple low-order filter, and is created using the AudioContext.createBiquadFilter()
method. It is an AudioNode
that can represent different kinds of filters, tone control devices, and graphic equalizers. A BiquadFilterNode
always has exactly one input and one output.
Number of inputs | 1 |
---|---|
Number of outputs | 1 |
Channel count mode | "max" |
Channel count |
2 (not used in the default count mode) |
Channel interpretation | "speakers" |
BiquadFilterNode()
BiquadFilterNode
object.Inherits properties from its parent, AudioNode
.
BiquadFilterNode.frequency
AudioParam
, a double representing a frequency in the current filtering algorithm measured in hertz (Hz).BiquadFilterNode.detune
AudioParam
representing detuning of the frequency in cents.BiquadFilterNode.Q
AudioParam
, a double representing a Q factor, or quality factor.BiquadFilterNode.gain
Read only
AudioParam
, a double representing the gain used in the current filtering algorithm.BiquadFilterNode.type
type | Description | frequency | Q | gain |
---|---|---|---|---|
lowpass | Standard second-order resonant lowpass filter with 12dB/octave rolloff. Frequencies below the cutoff pass through; frequencies above it are attenuated. | The cutoff frequency. | Indicates how peaked the frequency is around the cutoff. The greater the value is, the greater is the peak. | Not used |
highpass | Standard second-order resonant highpass filter with 12dB/octave rolloff. Frequencies below the cutoff are attenuated; frequencies above it pass through. | The cutoff frequency. | Indicates how peaked the frequency is around the cutoff. The greater the value, the greater the peak. | Not used |
bandpass | Standard second-order bandpass filter. Frequencies outside the given range of frequencies are attenuated; the frequencies inside it pass through. | The center of the range of frequencies. | Controls the width of the frequency band. The greater the Q value, the smaller the frequency band. | Not used |
lowshelf | Standard second-order lowshelf filter. Frequencies lower than the frequency get a boost, or an attenuation; frequencies over it are unchanged. | The upper limit of the frequencies getting a boost or an attenuation. | Not used | The boost, in dB, to be applied; if negative, it will be an attenuation. |
highshelf | Standard second-order highshelf filter. Frequencies higher than the frequency get a boost or an attenuation; frequencies lower than it are unchanged. | The lower limit of the frequencies getting a boost or an attenuation. | Not used | The boost, in dB, to be applied; if negative, it will be an attenuation. |
peaking | Frequencies inside the range get a boost or an attenuation; frequencies outside it are unchanged. | The middle of the frequency range getting a boost or an attenuation. | Controls the width of the frequency band. The greater the Q value, the smaller the frequency band. | The boost, in dB, to be applied; if negative, it will be an attenuation. |
notch | Standard notch filter, also called a band-stop or band-rejection filter. It is the opposite of a bandpass filter: frequencies outside the give range of frequencies pass through; frequencies inside it are attenuated. | The center of the range of frequencies. | Controls the width of the frequency band. The greater the Q value, the smaller the frequency band. | Not used |
allpass | Standard second-order allpass filter. It lets all frequencies through, but changes the phase-relationship between the various frequencies. | The frequency with the maximal group delay, that is, the frequency where the center of the phase transition occurs. | Controls how sharp the transition is at the medium frequency. The larger this parameter is, the sharper and larger the transition will be. | Not used |
Inherits methods from its parent, AudioNode
.
BiquadFilterNode.getFrequencyResponse()
The following example shows basic usage of an AudioContext to create a Biquad filter node. For a complete working example, check out our voice-change-o-matic demo (look at the source code too).
var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); //set up the different audio nodes we will use for the app var analyser = audioCtx.createAnalyser(); var distortion = audioCtx.createWaveShaper(); var gainNode = audioCtx.createGain(); var biquadFilter = audioCtx.createBiquadFilter(); var 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;
Specification | Status | Comment |
---|---|---|
Web Audio API The definition of 'BiquadFilterNode' in that specification. | Working Draft |
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 14 | Yes | 25 | No | 15 | 6 |
BiquadFilterNode() constructor |
551 | ? | 53 | No | 422 | ? |
detune |
14 | Yes | 25 | No | 15 | 6 |
frequency |
14 | Yes | 25 | No | 15 | 6 |
gain |
14 | Yes | 25 | No | 15 | 6 |
Q |
14 | Yes | 25 | No | 15 | 6 |
type |
14 | Yes | 25 | No | 15 | 6 |
getFrequencyResponse |
14 | Yes | 25 | No | 15 | 6 |
Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic support | 14 | 14 | Yes | 26 | No | 15 | ? |
BiquadFilterNode() constructor |
551 | 551 | ? | 53 | No | 422 | ? |
detune |
Yes | 14 | Yes | 26 | No | 15 | ? |
frequency |
Yes | 14 | Yes | 26 | No | 15 | ? |
gain |
Yes | 14 | Yes | 26 | No | 15 | ? |
Q |
Yes | 14 | Yes | 26 | No | 15 | ? |
type |
Yes | 14 | Yes | 26 | No | 15 | ? |
getFrequencyResponse |
Yes | 14 | Yes | 26 | No | 15 | ? |
1. Before Chrome 59, the default values were not supported.
2. Before Opera 46, the default values were not supported.
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode