Index: third_party/WebKit/LayoutTests/webaudio/Oscillator/osc-negative-freq.html |
diff --git a/third_party/WebKit/LayoutTests/webaudio/Oscillator/osc-negative-freq.html b/third_party/WebKit/LayoutTests/webaudio/Oscillator/osc-negative-freq.html |
index 3a06a025cfcf543dc5c9ceaee78f1a5a379f3752..503241ca06bd17f03457cf0a4e56ee2959d588c4 100644 |
--- a/third_party/WebKit/LayoutTests/webaudio/Oscillator/osc-negative-freq.html |
+++ b/third_party/WebKit/LayoutTests/webaudio/Oscillator/osc-negative-freq.html |
@@ -1,65 +1,69 @@ |
-<!doctype html> |
+<!DOCTYPE html> |
<html> |
<head> |
+ <title> |
+ Test OscillatorNode with Negative Frequency |
+ </title> |
<script src="../../resources/testharness.js"></script> |
- <script src="../../resources/testharnessreport.js"></script> |
+ <script src="../../resources/testharnessreport.js"></script> |
<script src="../resources/audit-util.js"></script> |
<script src="../resources/audit.js"></script> |
- <title>Test OscillatorNode with Negative Frequency</title> |
</head> |
- |
<body> |
- <script> |
+ <script id="layout-test-code"> |
// Some arbitrary sample rate for the offline context. But it MUST be |
// at least twice the oscillator frequency that we're using for the |
// test. (Currently 440 Hz.) |
- var sampleRate = 16000; |
+ let sampleRate = 16000; |
// A fairly arbitrary duration that should have at least 1-2 sample |
// periods of the oscillator (at a nominal 440 Hz). |
- var renderDuration = 0.1; |
- var renderFrames = renderDuration * sampleRate; |
+ let renderDuration = 0.1; |
+ let renderFrames = renderDuration * sampleRate; |
- var audit = Audit.createTaskRunner(); |
+ let audit = Audit.createTaskRunner(); |
- audit.define("sine", (task, should) => { |
+ audit.define('sine', (task, should) => { |
runTest(should, { |
- message: "Sum of positive and negative frequency sine oscillators", |
- type: "sine", |
+ message: 'Sum of positive and negative frequency sine oscillators', |
+ type: 'sine', |
threshold: 3.5763e-7 |
}).then(() => task.done()); |
}); |
- audit.define("square", (task, should) => { |
+ audit.define('square', (task, should) => { |
runTest(should, { |
- message: "Sum of positive and negative frequency square oscillators", |
- type: "square", |
+ message: 'Sum of positive and negative frequency square oscillators', |
+ type: 'square', |
threshold: 1.4753e-6 |
}).then(() => task.done()); |
}); |
- audit.define("sawtooth", (task, should) => { |
+ audit.define('sawtooth', (task, should) => { |
runTest(should, { |
- message: "Sum of positive and negative frequency sawtooth oscillators", |
- type: "sawtooth", |
+ message: |
+ 'Sum of positive and negative frequency sawtooth oscillators', |
+ type: 'sawtooth', |
threshold: 1.4753e-6 |
}).then(() => task.done()); |
}); |
- audit.define("triangle", (task, should) => { |
+ audit.define('triangle', (task, should) => { |
runTest(should, { |
- message: "Sum of positive and negative frequency triangle oscillators", |
- type: "triangle", |
+ message: |
+ 'Sum of positive and negative frequency triangle oscillators', |
+ type: 'triangle', |
threshold: 2.9803e-7 |
}).then(() => task.done()); |
}); |
- audit.define("auto-sawtooth", (task, should) => { |
+ audit.define('auto-sawtooth', (task, should) => { |
runTest(should, { |
- message: "Sum of positive and negative frequency-ramped sawtooth oscillators", |
- type: "sawtooth", |
+ message: |
+ 'Sum of positive and negative frequency-ramped sawtooth oscillators', |
+ type: 'sawtooth', |
automation: { |
- type: "linearRampToValueAtTime", |
+ type: 'linearRampToValueAtTime', |
startTime: 0, |
endTime: renderDuration / 2, |
startFrequency: 440, |
@@ -69,17 +73,17 @@ |
}).then(() => task.done()); |
}); |
- audit.define("periodic-wave", (task, should) => { |
+ audit.define('periodic-wave', (task, should) => { |
// Test negative frequencies for a custom oscillator. Two channels are |
// needed for the context; one for the expected result, and one for the |
// actual, as explained below. |
- var context = new OfflineAudioContext(2, renderFrames, sampleRate); |
+ let context = new OfflineAudioContext(2, renderFrames, sampleRate); |
- var oscPositive = context.createOscillator(); |
- var oscNegative = context.createOscillator(); |
+ let oscPositive = context.createOscillator(); |
+ let oscNegative = context.createOscillator(); |
- // The Fourier coefficients for our custom oscillator. The actual values |
- // not important. The waveform for our custom oscillator is |
+ // The Fourier coefficients for our custom oscillator. The actual |
+ // values not important. The waveform for our custom oscillator is |
// |
// x(t) = sum(real[k]*cos(2*%pi*f*k/Fs), k, 1) |
// + sum(imag[k]*sin(2*%pi*f*k/Fs), k, 0) |
@@ -100,15 +104,13 @@ |
// imaginary coefficients are inverted. This second oscillator also |
// gets a negative frequency. The combination of the two results in an |
// oscillator that is the same as the first with gain of 2. |
- var real = [0, 1, 1]; |
- var imag = [0, 1, 1]; |
+ let real = [0, 1, 1]; |
+ let imag = [0, 1, 1]; |
- var wavePositive = context.createPeriodicWave( |
- Float32Array.from(real), |
- Float32Array.from(imag)); |
- var waveNegative = context.createPeriodicWave( |
- Float32Array.from(real), |
- Float32Array.from(imag.map(x => -x))); |
+ let wavePositive = context.createPeriodicWave( |
+ Float32Array.from(real), Float32Array.from(imag)); |
+ let waveNegative = context.createPeriodicWave( |
+ Float32Array.from(real), Float32Array.from(imag.map(x => -x))); |
oscPositive.setPeriodicWave(wavePositive); |
oscNegative.setPeriodicWave(waveNegative); |
@@ -116,8 +118,8 @@ |
oscPositive.frequency.value = 440; |
oscNegative.frequency.value = -oscPositive.frequency.value; |
- var merger = context.createChannelMerger(2); |
- var gain = context.createGain(); |
+ let merger = context.createChannelMerger(2); |
+ let gain = context.createGain(); |
// As explained above, the expected result should be positive frequency |
// oscillator but with a gain of 2. |
@@ -135,16 +137,17 @@ |
oscPositive.start(); |
oscNegative.start(); |
- context.startRendering().then(function (buffer) { |
- var expected = buffer.getChannelData(0); |
- var actual = buffer.getChannelData(1); |
- |
- should(actual, |
- "Sum of positive and negative frequency custom oscillators") |
- .beCloseToArray(expected, { |
- absoluteThreshold: 3.5763e-7 |
- }); |
- }).then(() => task.done()); |
+ context.startRendering() |
+ .then(function(buffer) { |
+ let expected = buffer.getChannelData(0); |
+ let actual = buffer.getChannelData(1); |
+ |
+ should( |
+ actual, |
+ 'Sum of positive and negative frequency custom oscillators') |
+ .beCloseToArray(expected, {absoluteThreshold: 3.5763e-7}); |
+ }) |
+ .then(() => task.done()); |
}); |
audit.run(); |
@@ -154,16 +157,17 @@ |
// has a positive frequency and the other has a negative frequency. |
// Sum the oscillator outputs; the output should be zero because all of |
// the builtin oscillator types are odd functions of frequency. |
- var context = new OfflineAudioContext(1, renderFrames, sampleRate); |
+ let context = new OfflineAudioContext(1, renderFrames, sampleRate); |
- var oscPositive = context.createOscillator(); |
- var oscNegative = context.createOscillator(); |
+ let oscPositive = context.createOscillator(); |
+ let oscNegative = context.createOscillator(); |
oscPositive.type = options.type; |
oscNegative.type = oscPositive.type; |
if (options.automation) { |
- var {type, startTime, endTime, startFrequency, endFrequency} = options.automation; |
+ let {type, startTime, endTime, startFrequency, endFrequency} = |
+ options.automation; |
oscPositive.frequency.setValueAtTime(startFrequency, startTime); |
oscPositive.frequency[type](endFrequency, endTime) |
@@ -180,13 +184,13 @@ |
oscPositive.start(); |
oscNegative.start(); |
- return context.startRendering().then(function (buffer) { |
- var result = buffer.getChannelData(0); |
+ return context.startRendering().then(function(buffer) { |
+ let result = buffer.getChannelData(0); |
should(result, options.message) |
- .beCloseToArray(new Float32Array(result.length), { |
- absoluteThreshold: options.threshold || 0 |
- }); |
+ .beCloseToArray( |
+ new Float32Array(result.length), |
+ {absoluteThreshold: options.threshold || 0}); |
}); |
} |
</script> |