Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Unified Diff: third_party/WebKit/LayoutTests/webaudio/resources/biquad-filters.js

Issue 2895963003: Apply layout-test-tidy to LayoutTests/webaudio (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/webaudio/resources/biquad-filters.js
diff --git a/third_party/WebKit/LayoutTests/webaudio/resources/biquad-filters.js b/third_party/WebKit/LayoutTests/webaudio/resources/biquad-filters.js
index 4cdaeccafba374c566812f8d00b786b83c6a8c2e..61f38c97c27b76b51c200d561e67e247e251f44c 100644
--- a/third_party/WebKit/LayoutTests/webaudio/resources/biquad-filters.js
+++ b/third_party/WebKit/LayoutTests/webaudio/resources/biquad-filters.js
@@ -7,363 +7,370 @@
// Lowpass filter.
function createLowpassFilter(freq, q, gain) {
- var b0;
- var b1;
- var b2;
- var a0;
- var a1;
- var a2;
-
- if (freq == 1) {
- // The formula below works, except for roundoff. When freq = 1,
- // the filter is just a wire, so hardwire the coefficients.
- b0 = 1;
- b1 = 0;
- b2 = 0;
- a0 = 1;
- a1 = 0;
- a2 = 0;
- } else {
- var theta = Math.PI * freq;
- var alpha = Math.sin(theta) / (2 * Math.pow(10, q / 20));
- var cosw = Math.cos(theta);
- var beta = (1 - cosw) / 2;
-
- b0 = beta;
- b1 = 2 * beta;
- b2 = beta;
- a0 = 1 + alpha;
- a1 = -2 * cosw;
- a2 = 1 - alpha;
- }
-
- return normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
+ let b0;
+ let b1;
+ let b2;
+ let a0;
+ let a1;
+ let a2;
+
+ if (freq == 1) {
+ // The formula below works, except for roundoff. When freq = 1,
+ // the filter is just a wire, so hardwire the coefficients.
+ b0 = 1;
+ b1 = 0;
+ b2 = 0;
+ a0 = 1;
+ a1 = 0;
+ a2 = 0;
+ } else {
+ let theta = Math.PI * freq;
+ let alpha = Math.sin(theta) / (2 * Math.pow(10, q / 20));
+ let cosw = Math.cos(theta);
+ let beta = (1 - cosw) / 2;
+
+ b0 = beta;
+ b1 = 2 * beta;
+ b2 = beta;
+ a0 = 1 + alpha;
+ a1 = -2 * cosw;
+ a2 = 1 - alpha;
+ }
+
+ return normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
}
function createHighpassFilter(freq, q, gain) {
- var b0;
- var b1;
- var b2;
- var a0;
- var a1;
- var a2;
-
- if (freq == 1) {
- // The filter is 0
- b0 = 0;
- b1 = 0;
- b2 = 0;
- a0 = 1;
- a1 = 0;
- a2 = 0;
- } else if (freq == 0) {
- // The filter is 1. Computation of coefficients below is ok, but
- // there's a pole at 1 and a zero at 1, so round-off could make
- // the filter unstable.
- b0 = 1;
- b1 = 0;
- b2 = 0;
- a0 = 1;
- a1 = 0;
- a2 = 0;
- } else {
- var theta = Math.PI * freq;
- var alpha = Math.sin(theta) / (2 * Math.pow(10, q / 20));
- var cosw = Math.cos(theta);
- var beta = (1 + cosw) / 2;
-
- b0 = beta;
- b1 = -2 * beta;
- b2 = beta;
- a0 = 1 + alpha;
- a1 = -2 * cosw;
- a2 = 1 - alpha;
- }
-
- return normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
+ let b0;
+ let b1;
+ let b2;
+ let a0;
+ let a1;
+ let a2;
+
+ if (freq == 1) {
+ // The filter is 0
+ b0 = 0;
+ b1 = 0;
+ b2 = 0;
+ a0 = 1;
+ a1 = 0;
+ a2 = 0;
+ } else if (freq == 0) {
+ // The filter is 1. Computation of coefficients below is ok, but
+ // there's a pole at 1 and a zero at 1, so round-off could make
+ // the filter unstable.
+ b0 = 1;
+ b1 = 0;
+ b2 = 0;
+ a0 = 1;
+ a1 = 0;
+ a2 = 0;
+ } else {
+ let theta = Math.PI * freq;
+ let alpha = Math.sin(theta) / (2 * Math.pow(10, q / 20));
+ let cosw = Math.cos(theta);
+ let beta = (1 + cosw) / 2;
+
+ b0 = beta;
+ b1 = -2 * beta;
+ b2 = beta;
+ a0 = 1 + alpha;
+ a1 = -2 * cosw;
+ a2 = 1 - alpha;
+ }
+
+ return normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
}
function normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2) {
- var scale = 1 / a0;
-
- return {b0 : b0 * scale,
- b1 : b1 * scale,
- b2 : b2 * scale,
- a1 : a1 * scale,
- a2 : a2 * scale};
+ let scale = 1 / a0;
+
+ return {
+ b0: b0 * scale,
+ b1: b1 * scale,
+ b2: b2 * scale,
+ a1: a1 * scale,
+ a2: a2 * scale
+ };
}
function createBandpassFilter(freq, q, gain) {
- var b0;
- var b1;
- var b2;
- var a0;
- var a1;
- var a2;
- var coef;
-
- if (freq > 0 && freq < 1) {
- var w0 = Math.PI * freq;
- if (q > 0) {
- var alpha = Math.sin(w0) / (2 * q);
- var k = Math.cos(w0);
-
- b0 = alpha;
- b1 = 0;
- b2 = -alpha;
- a0 = 1 + alpha;
- a1 = -2 * k;
- a2 = 1 - alpha;
-
- coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
- } else {
- // q = 0, and frequency is not 0 or 1. The above formula has a
- // divide by zero problem. The limit of the z-transform as q
- // approaches 0 is 1, so set the filter that way.
- coef = {b0 : 1, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
- }
+ let b0;
+ let b1;
+ let b2;
+ let a0;
+ let a1;
+ let a2;
+ let coef;
+
+ if (freq > 0 && freq < 1) {
+ let w0 = Math.PI * freq;
+ if (q > 0) {
+ let alpha = Math.sin(w0) / (2 * q);
+ let k = Math.cos(w0);
+
+ b0 = alpha;
+ b1 = 0;
+ b2 = -alpha;
+ a0 = 1 + alpha;
+ a1 = -2 * k;
+ a2 = 1 - alpha;
+
+ coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
} else {
- // When freq = 0 or 1, the z-transform is identically 0,
- // independent of q.
- coef = {b0 : 0, b1 : 0, b2 : 0, a1 : 0, a2 : 0}
+ // q = 0, and frequency is not 0 or 1. The above formula has a
+ // divide by zero problem. The limit of the z-transform as q
+ // approaches 0 is 1, so set the filter that way.
+ coef = {b0: 1, b1: 0, b2: 0, a1: 0, a2: 0};
}
+ } else {
+ // When freq = 0 or 1, the z-transform is identically 0,
+ // independent of q.
+ coef = { b0: 0, b1: 0, b2: 0, a1: 0, a2: 0 }
+ }
- return coef;
+ return coef;
}
function createLowShelfFilter(freq, q, gain) {
- // q not used
- var b0;
- var b1;
- var b2;
- var a0;
- var a1;
- var a2;
- var coef;
-
- var S = 1;
- var A = Math.pow(10, gain / 40);
-
- if (freq == 1) {
- // The filter is just a constant gain
- coef = {b0 : A * A, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
- } else if (freq == 0) {
- // The filter is 1
- coef = {b0 : 1, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
- } else {
- var w0 = Math.PI * freq;
- var alpha = 1 / 2 * Math.sin(w0) * Math.sqrt((A + 1 / A) * (1 / S - 1) + 2);
- var k = Math.cos(w0);
- var k2 = 2 * Math.sqrt(A) * alpha;
- var Ap1 = A + 1;
- var Am1 = A - 1;
-
- b0 = A * (Ap1 - Am1 * k + k2);
- b1 = 2 * A * (Am1 - Ap1 * k);
- b2 = A * (Ap1 - Am1 * k - k2);
- a0 = Ap1 + Am1 * k + k2;
- a1 = -2 * (Am1 + Ap1 * k);
- a2 = Ap1 + Am1 * k - k2;
- coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
- }
-
- return coef;
+ // q not used
+ let b0;
+ let b1;
+ let b2;
+ let a0;
+ let a1;
+ let a2;
+ let coef;
+
+ let S = 1;
+ let A = Math.pow(10, gain / 40);
+
+ if (freq == 1) {
+ // The filter is just a constant gain
+ coef = {b0: A * A, b1: 0, b2: 0, a1: 0, a2: 0};
+ } else if (freq == 0) {
+ // The filter is 1
+ coef = {b0: 1, b1: 0, b2: 0, a1: 0, a2: 0};
+ } else {
+ let w0 = Math.PI * freq;
+ let alpha = 1 / 2 * Math.sin(w0) * Math.sqrt((A + 1 / A) * (1 / S - 1) + 2);
+ let k = Math.cos(w0);
+ let k2 = 2 * Math.sqrt(A) * alpha;
+ let Ap1 = A + 1;
+ let Am1 = A - 1;
+
+ b0 = A * (Ap1 - Am1 * k + k2);
+ b1 = 2 * A * (Am1 - Ap1 * k);
+ b2 = A * (Ap1 - Am1 * k - k2);
+ a0 = Ap1 + Am1 * k + k2;
+ a1 = -2 * (Am1 + Ap1 * k);
+ a2 = Ap1 + Am1 * k - k2;
+ coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
+ }
+
+ return coef;
}
function createHighShelfFilter(freq, q, gain) {
- // q not used
- var b0;
- var b1;
- var b2;
- var a0;
- var a1;
- var a2;
- var coef;
-
- var A = Math.pow(10, gain / 40);
-
- if (freq == 1) {
- // When freq = 1, the z-transform is 1
- coef = {b0 : 1, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
- } else if (freq > 0) {
- var w0 = Math.PI * freq;
- var S = 1;
- var alpha = 0.5 * Math.sin(w0) * Math.sqrt((A + 1 / A) * (1 / S - 1) + 2);
- var k = Math.cos(w0);
- var k2 = 2 * Math.sqrt(A) * alpha;
- var Ap1 = A + 1;
- var Am1 = A - 1;
-
- b0 = A * (Ap1 + Am1 * k + k2);
- b1 = -2 * A * (Am1 + Ap1 * k);
- b2 = A * (Ap1 + Am1 * k - k2);
- a0 = Ap1 - Am1 * k + k2;
- a1 = 2 * (Am1 - Ap1*k);
- a2 = Ap1 - Am1 * k-k2;
-
- coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
- } else {
- // When freq = 0, the filter is just a gain
- coef = {b0 : A * A, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
- }
-
- return coef;
+ // q not used
+ let b0;
+ let b1;
+ let b2;
+ let a0;
+ let a1;
+ let a2;
+ let coef;
+
+ let A = Math.pow(10, gain / 40);
+
+ if (freq == 1) {
+ // When freq = 1, the z-transform is 1
+ coef = {b0: 1, b1: 0, b2: 0, a1: 0, a2: 0};
+ } else if (freq > 0) {
+ let w0 = Math.PI * freq;
+ let S = 1;
+ let alpha = 0.5 * Math.sin(w0) * Math.sqrt((A + 1 / A) * (1 / S - 1) + 2);
+ let k = Math.cos(w0);
+ let k2 = 2 * Math.sqrt(A) * alpha;
+ let Ap1 = A + 1;
+ let Am1 = A - 1;
+
+ b0 = A * (Ap1 + Am1 * k + k2);
+ b1 = -2 * A * (Am1 + Ap1 * k);
+ b2 = A * (Ap1 + Am1 * k - k2);
+ a0 = Ap1 - Am1 * k + k2;
+ a1 = 2 * (Am1 - Ap1 * k);
+ a2 = Ap1 - Am1 * k - k2;
+
+ coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
+ } else {
+ // When freq = 0, the filter is just a gain
+ coef = {b0: A * A, b1: 0, b2: 0, a1: 0, a2: 0};
+ }
+
+ return coef;
}
function createPeakingFilter(freq, q, gain) {
- var b0;
- var b1;
- var b2;
- var a0;
- var a1;
- var a2;
- var coef;
-
- var A = Math.pow(10, gain / 40);
-
- if (freq > 0 && freq < 1) {
- if (q > 0) {
- var w0 = Math.PI * freq;
- var alpha = Math.sin(w0) / (2 * q);
- var k = Math.cos(w0);
-
- b0 = 1 + alpha * A;
- b1 = -2 * k;
- b2 = 1 - alpha * A;
- a0 = 1 + alpha / A;
- a1 = -2 * k;
- a2 = 1 - alpha / A;
-
- coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
- } else {
- // q = 0, we have a divide by zero problem in the formulas
- // above. But if we look at the z-transform, we see that the
- // limit as q approaches 0 is A^2.
- coef = {b0 : A * A, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
- }
+ let b0;
+ let b1;
+ let b2;
+ let a0;
+ let a1;
+ let a2;
+ let coef;
+
+ let A = Math.pow(10, gain / 40);
+
+ if (freq > 0 && freq < 1) {
+ if (q > 0) {
+ let w0 = Math.PI * freq;
+ let alpha = Math.sin(w0) / (2 * q);
+ let k = Math.cos(w0);
+
+ b0 = 1 + alpha * A;
+ b1 = -2 * k;
+ b2 = 1 - alpha * A;
+ a0 = 1 + alpha / A;
+ a1 = -2 * k;
+ a2 = 1 - alpha / A;
+
+ coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
} else {
- // freq = 0 or 1, the z-transform is 1
- coef = {b0 : 1, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
+ // q = 0, we have a divide by zero problem in the formulas
+ // above. But if we look at the z-transform, we see that the
+ // limit as q approaches 0 is A^2.
+ coef = {b0: A * A, b1: 0, b2: 0, a1: 0, a2: 0};
}
+ } else {
+ // freq = 0 or 1, the z-transform is 1
+ coef = {b0: 1, b1: 0, b2: 0, a1: 0, a2: 0};
+ }
- return coef;
+ return coef;
}
function createNotchFilter(freq, q, gain) {
- var b0;
- var b1;
- var b2;
- var a0;
- var a1;
- var a2;
- var coef;
-
- if (freq > 0 && freq < 1) {
- if (q > 0) {
- var w0 = Math.PI * freq;
- var alpha = Math.sin(w0) / (2 * q);
- var k = Math.cos(w0);
-
- b0 = 1;
- b1 = -2 * k;
- b2 = 1;
- a0 = 1 + alpha;
- a1 = -2 * k;
- a2 = 1 - alpha;
- coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
- } else {
- // When q = 0, we get a divide by zero above. The limit of the
- // z-transform as q approaches 0 is 0, so set the coefficients
- // appropriately.
- coef = {b0 : 0, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
- }
+ let b0;
+ let b1;
+ let b2;
+ let a0;
+ let a1;
+ let a2;
+ let coef;
+
+ if (freq > 0 && freq < 1) {
+ if (q > 0) {
+ let w0 = Math.PI * freq;
+ let alpha = Math.sin(w0) / (2 * q);
+ let k = Math.cos(w0);
+
+ b0 = 1;
+ b1 = -2 * k;
+ b2 = 1;
+ a0 = 1 + alpha;
+ a1 = -2 * k;
+ a2 = 1 - alpha;
+ coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
} else {
- // When freq = 0 or 1, the z-transform is 1
- coef = {b0 : 1, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
+ // When q = 0, we get a divide by zero above. The limit of the
+ // z-transform as q approaches 0 is 0, so set the coefficients
+ // appropriately.
+ coef = {b0: 0, b1: 0, b2: 0, a1: 0, a2: 0};
}
+ } else {
+ // When freq = 0 or 1, the z-transform is 1
+ coef = {b0: 1, b1: 0, b2: 0, a1: 0, a2: 0};
+ }
- return coef;
+ return coef;
}
function createAllpassFilter(freq, q, gain) {
- var b0;
- var b1;
- var b2;
- var a0;
- var a1;
- var a2;
- var coef;
-
- if (freq > 0 && freq < 1) {
- if (q > 0) {
- var w0 = Math.PI * freq;
- var alpha = Math.sin(w0) / (2 * q);
- var k = Math.cos(w0);
-
- b0 = 1 - alpha;
- b1 = -2 * k;
- b2 = 1 + alpha;
- a0 = 1 + alpha;
- a1 = -2 * k;
- a2 = 1 - alpha;
- coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
- } else {
- // q = 0
- coef = {b0 : -1, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
- }
+ let b0;
+ let b1;
+ let b2;
+ let a0;
+ let a1;
+ let a2;
+ let coef;
+
+ if (freq > 0 && freq < 1) {
+ if (q > 0) {
+ let w0 = Math.PI * freq;
+ let alpha = Math.sin(w0) / (2 * q);
+ let k = Math.cos(w0);
+
+ b0 = 1 - alpha;
+ b1 = -2 * k;
+ b2 = 1 + alpha;
+ a0 = 1 + alpha;
+ a1 = -2 * k;
+ a2 = 1 - alpha;
+ coef = normalizeFilterCoefficients(b0, b1, b2, a0, a1, a2);
} else {
- coef = {b0 : 1, b1 : 0, b2 : 0, a1 : 0, a2 : 0};
+ // q = 0
+ coef = {b0: -1, b1: 0, b2: 0, a1: 0, a2: 0};
}
+ } else {
+ coef = {b0: 1, b1: 0, b2: 0, a1: 0, a2: 0};
+ }
- return coef;
+ return coef;
}
function filterData(filterCoef, signal, len) {
- var y = new Array(len);
- var b0 = filterCoef.b0;
- var b1 = filterCoef.b1;
- var b2 = filterCoef.b2;
- var a1 = filterCoef.a1;
- var a2 = filterCoef.a2;
-
- // Prime the pump. (Assumes the signal has length >= 2!)
- y[0] = b0 * signal[0];
- y[1] = b0 * signal[1] + b1 * signal[0] - a1 * y[0];
-
- // Filter all of the signal that we have.
- for (var k = 2; k < Math.min(signal.length, len); ++k) {
- y[k] = b0 * signal[k] + b1 * signal[k-1] + b2 * signal[k-2] - a1 * y[k-1] - a2 * y[k-2];
- }
-
- // If we need to filter more, but don't have any signal left,
- // assume the signal is zero.
- for (var k = signal.length; k < len; ++k) {
- y[k] = - a1 * y[k-1] - a2 * y[k-2];
- }
-
- return y;
+ let y = new Array(len);
+ let b0 = filterCoef.b0;
+ let b1 = filterCoef.b1;
+ let b2 = filterCoef.b2;
+ let a1 = filterCoef.a1;
+ let a2 = filterCoef.a2;
+
+ // Prime the pump. (Assumes the signal has length >= 2!)
+ y[0] = b0 * signal[0];
+ y[1] = b0 * signal[1] + b1 * signal[0] - a1 * y[0];
+
+ // Filter all of the signal that we have.
+ for (let k = 2; k < Math.min(signal.length, len); ++k) {
+ y[k] = b0 * signal[k] + b1 * signal[k - 1] + b2 * signal[k - 2] -
+ a1 * y[k - 1] - a2 * y[k - 2];
+ }
+
+ // If we need to filter more, but don't have any signal left,
+ // assume the signal is zero.
+ for (let k = signal.length; k < len; ++k) {
+ y[k] = -a1 * y[k - 1] - a2 * y[k - 2];
+ }
+
+ return y;
}
-// Map the filter type name to a function that computes the filter coefficents for the given filter
-// type.
-var filterCreatorFunction = {"lowpass": createLowpassFilter,
- "highpass": createHighpassFilter,
- "bandpass": createBandpassFilter,
- "lowshelf": createLowShelfFilter,
- "highshelf": createHighShelfFilter,
- "peaking": createPeakingFilter,
- "notch": createNotchFilter,
- "allpass": createAllpassFilter};
-
-var filterTypeName = {"lowpass": "Lowpass filter",
- "highpass": "Highpass filter",
- "bandpass": "Bandpass filter",
- "lowshelf": "Lowshelf filter",
- "highshelf": "Highshelf filter",
- "peaking": "Peaking filter",
- "notch": "Notch filter",
- "allpass": "Allpass filter"};
+// Map the filter type name to a function that computes the filter coefficents
+// for the given filter type.
+var filterCreatorFunction = {
+ 'lowpass': createLowpassFilter,
+ 'highpass': createHighpassFilter,
+ 'bandpass': createBandpassFilter,
+ 'lowshelf': createLowShelfFilter,
+ 'highshelf': createHighShelfFilter,
+ 'peaking': createPeakingFilter,
+ 'notch': createNotchFilter,
+ 'allpass': createAllpassFilter
+};
+
+var filterTypeName = {
+ 'lowpass': 'Lowpass filter',
+ 'highpass': 'Highpass filter',
+ 'bandpass': 'Bandpass filter',
+ 'lowshelf': 'Lowshelf filter',
+ 'highshelf': 'Highshelf filter',
+ 'peaking': 'Peaking filter',
+ 'notch': 'Notch filter',
+ 'allpass': 'Allpass filter'
+};
function createFilter(filterType, freq, q, gain) {
- return filterCreatorFunction[filterType](freq, q, gain);
+ return filterCreatorFunction[filterType](freq, q, gain);
}

Powered by Google App Engine
This is Rietveld 408576698