Add more technical detail to BiquadFilterNode description (contributed by Raymond Toy)
--- a/webaudio/specification.html Sat Oct 15 19:08:15 2011 -0700
+++ b/webaudio/specification.html Fri Nov 04 15:40:58 2011 -0700
@@ -1828,7 +1828,165 @@
</div>
-
+ <p>The filter types are briefly described below. We note that all of these filter are very commonly
+ used in audio processing. In terms of implementation, they have all been derived from standard analog filter prototypes. For more technical
+ details, we refer the reader to the excellent <a
+ href="http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt">reference</a> by Robert Bristow-Johnson.</p>
+
+ <div id="BiquadFilterNode-description-section" class="section">
+ <h3>4.21.1 LOWPASS</h3>
+ <p>A <a
+ href="http://en.wikipedia.org/wiki/Low-pass_filter">lowpass
+ filter</a> allows frequencies below the cutoff frequency
+ to pass through and attenuates frequencies above the cutoff. LOWPASS implements a standard second-order resonant lowpass filter with 12dB/octave rolloff.</p>
+
+ <blockquote>
+ <dl>
+ <dt>frequency</dt>
+ <dd>The cutoff frequency above which the frequencies are
+ attenuated</dd>
+ <dt><a href="http://en.wikipedia.org/wiki/Q_factor">Q</a></dt>
+ <dd>Controls how peaked the response will be at the cutoff
+ frequency. A large value makes the response more peaked.</dd>
+ <dt>gain</dt>
+ <dd>Not used in this filter type</dd>
+ </dl>
+ </blockquote>
+
+ <h3>4.21.2 HIGHPASS</h3>
+
+ <p>A <a
+ href="http://en.wikipedia.org/wiki/High-pass_filter">highpass
+ filter</a> is the opposite of a lowpass filter. Frequencies above
+ the cutoff frequency are passed through, but frequencies below the
+ cutoff are attenuated. HIGHPASS implements a standard second-order resonant highpass filter with 12dB/octave rolloff.
+
+ <blockquote>
+ <dl>
+ <dt>frequency</dt>
+ <dd>The cutoff frequency below which the frequencies are
+ attenuated</dd>
+ <dt><a href="http://en.wikipedia.org/wiki/Q_factor">Q</a></dt>
+ <dd>Controls how peaked the response will be at the cutoff
+ frequency. A large value makes the response more peaked.</dd>
+ <dt>gain</dt>
+ <dd>Not used in this filter type</dd>
+ </dl>
+ </blockquote>
+
+ <h3>4.21.3 BANDPASS</h3>
+
+ <p>A <a
+ href="http://en.wikipedia.org/wiki/Band-pass_filter">bandpass
+ filter</a> allows a range of frequencies to pass through and
+ attenuates the frequencies below and above this frequency range. BANDPASS implements a second-order bandpass filter.
+
+ <blockquote>
+ <dl>
+ <dt>frequency</dt>
+ <dd>The center of the frequency band</dd>
+ <dt><a href="http://en.wikipedia.org/wiki/Q_factor">Q</a></dt>
+ <dd>Controls the width of the band. The width becomes narrower
+ as the Q value increases.</dd>
+ <dt>gain</dt>
+ <dd>Not used in this filter type</dd>
+ </dl>
+ </blockquote>
+
+ <h3>4.21.4 LOWSHELF</h3>
+ <p>The lowshelf filter allows all frequencies through, but adds a
+ boost (or attenuation) to the lower frequencies. LOWSHELF implements a second-order lowshelf filter.
+
+ <blockquote>
+ <dl>
+ <dt>frequency</dt>
+ <dd>The upper limit of the frequences where the boost (or
+ attenuation) is applied.</dd>
+ <dt><a href="http://en.wikipedia.org/wiki/Q_factor">Q</a></dt>
+ <dd>Not used in this filter type.</dd>
+ <dt>gain</dt>
+ <dd>The boost, in dB, to be applied. If the value is negative,
+ the frequencies are attenuated.</dd>
+ </dl>
+ </blockquote>
+
+ <h3>4.21.5 HIGHSHELF</h3>
+ <p>The highshelf filter is the opposite of the lowshelf filter and
+ allows all frequencies through, but adds a
+ boost to the higher frequencies. HIGHSHELF implements a second-order highshelf filter
+
+ <blockquote>
+ <dl>
+ <dt>frequency</dt>
+ <dd>The lower limit of the frequences where the boost (or
+ attenuation) is applied.</dd>
+ <dt><a href="http://en.wikipedia.org/wiki/Q_factor">Q</a></dt>
+ <dd>Not used in this filter type.</dd>
+ <dt>gain</dt>
+ <dd>The boost, in dB, to be applied. If the value is negative,
+ the frequencies are attenuated.</dd>
+ </dl>
+ </blockquote>
+
+ <h3>4.21.6 PEAKING</h3>
+ <p>The peaking filter allows all frequencies through, but adds a
+ boost (or attenuation) to a range of frequencies.
+
+ <blockquote>
+ <dl>
+ <dt>frequency</dt>
+ <dd>The center frequency of where the boost is applied.</dd>
+ <dt><a href="http://en.wikipedia.org/wiki/Q_factor">Q</a></dt>
+ <dd>Controls the width of the band of frequencies that are
+ boosted. A large value implies a narrow width.</dd>
+ <dt>gain</dt>
+ <dd>The boost, in dB, to be applied. If the value is negative,
+ the frequencies are attenuated.</dd>
+ </dl>
+ </blockquote>
+
+ <h3>4.21.7 NOTCH</h3>
+
+ <p>The notch filter (also known as a <a
+ href="http://en.wikipedia.org/wiki/Band-stop_filter">band-stop or
+ band-rejection filter</a> is the opposite of a bandpass filter.
+ It allows all frequencies through, except for a set of
+ frequencies.
+
+ <blockquote>
+ <dl>
+ <dt>frequency</dt>
+ <dd>The center frequency of where the notch is applied.</dd>
+ <dt><a href="http://en.wikipedia.org/wiki/Q_factor">Q</a></dt>
+ <dd>Controls the width of the band of frequencies that are
+ attenuated. A large value implies a narrow width.</dd>
+ <dt>gain</dt>
+ <dd>Not used in this filter type.</dd>
+ </dl>
+ </blockquote>
+
+ <h3>4.21.8 ALLPASS</h3>
+
+ <p>An <a
+ href="http://en.wikipedia.org/wiki/All-pass_filter#Digital_Implementation">allpass
+ filter</a> allows all frequencies through, but changes the phase
+ relationship between the various frequencies. ALLPASS implements a second-order allpass filter
+
+ <blockquote>
+ <dl>
+ <dt>frequency</dt>
+ <dd>The frequency where the center of the phase transition occurs.
+ Viewed another way, this is the frequency with maximal <a href="http://en.wikipedia.org/wiki/Group_delay">group delay</a>.</dd>
+ <dt><a href="http://en.wikipedia.org/wiki/Q_factor">Q</a></dt>
+ <dd>Controls how sharp the phase transition is at the center
+ frequency. A larger value implies a sharper transition and a larger group delay.</dd>
+ <dt>gain</dt>
+ <dd>Not used in this filter type.</dd>
+ </dl>
+ </blockquote>
+
+ </div>
+
<div id="WaveShaperNode-section" class="section">
<h2>4.22. The WaveShaperNode Interface</h2>