Index: third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-detune-modulated-impulse.html |
diff --git a/third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-detune-modulated-impulse.html b/third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-detune-modulated-impulse.html |
index c60ef00fdf421e98914f58b54172005d55238f0d..34c438dbcf58a5d441de4a7c89caefcdc214b86a 100644 |
--- a/third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-detune-modulated-impulse.html |
+++ b/third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-detune-modulated-impulse.html |
@@ -1,101 +1,103 @@ |
<!DOCTYPE html> |
<html> |
- |
-<head> |
- <script src="../../resources/testharness.js"></script> |
- <script src="../../resources/testharnessreport.js"></script> |
- <script src="../resources/audit-util.js"></script> |
- <script src="../resources/audit.js"></script> |
-</head> |
- |
-<body> |
- <script> |
- |
- var sampleRate = 44100; |
- |
- // To get an observable change on detune modulation, the minimum |
- // rendering length should greater than the rendering quantum. |
- var renderLength = 256; |
- var half = renderLength / 2; |
- |
- // With the detune of 0, the duration of impulse buffer should be 4 |
- // samples (which means the interval between impulses is 4). Increasing |
- // detune to 1200 (1 octave) decrease the interval to 2 samples. |
- var impulseLength = 4; |
- |
- var context = new OfflineAudioContext(1, renderLength, sampleRate); |
- var impulseBuffer, dcOffsetBuffer; |
- |
- var audit = Audit.createTaskRunner(); |
- |
- |
- // Task: build an impulse and DC-offset buffers for testing. |
- audit.define('build-buffers', (task, should) => { |
- should(() => { |
+ <head> |
+ <title> |
+ audiobuffersource-detune-modulated-impulse.html |
+ </title> |
+ <script src="../../resources/testharness.js"></script> |
+ <script src="../../resources/testharnessreport.js"></script> |
+ <script src="../resources/audit-util.js"></script> |
+ <script src="../resources/audit.js"></script> |
+ </head> |
+ <body> |
+ <script id="layout-test-code"> |
+ let sampleRate = 44100; |
+ |
+ // To get an observable change on detune modulation, the minimum |
+ // rendering length should greater than the rendering quantum. |
+ let renderLength = 256; |
+ let half = renderLength / 2; |
+ |
+ // With the detune of 0, the duration of impulse buffer should be 4 |
+ // samples (which means the interval between impulses is 4). Increasing |
+ // detune to 1200 (1 octave) decrease the interval to 2 samples. |
+ let impulseLength = 4; |
+ |
+ let context = new OfflineAudioContext(1, renderLength, sampleRate); |
+ let impulseBuffer, dcOffsetBuffer; |
+ |
+ let audit = Audit.createTaskRunner(); |
+ |
+ |
+ // Task: build an impulse and DC-offset buffers for testing. |
+ audit.define('build-buffers', (task, should) => { |
+ should(() => { |
// 4-sample impulse sample. |
impulseBuffer = createImpulseBuffer(context, impulseLength); |
// Create a DC offset buffer with 2 values [0, 1200] for modulating |
// detune. The first half of buffer is 0 and the rest is 1200. |
- dcOffsetBuffer = context.createBuffer(1, renderLength, |
- sampleRate); |
- var dcOffsetArray = dcOffsetBuffer.getChannelData(0); |
+ dcOffsetBuffer = context.createBuffer(1, renderLength, sampleRate); |
+ let dcOffsetArray = dcOffsetBuffer.getChannelData(0); |
for (i = 0; i < dcOffsetArray.length; i++) { |
- |
// Note that these values will be added to the detune AudioParam |
// value. For example, 1 DC offset value will result detune of 1200. |
dcOffsetArray[i] = i < half ? 0 : 1200; |
} |
- }, "Creation of impulse buffers") |
- .notThrow(); |
- |
- task.done(); |
- }); |
- |
- |
- // Task: Render the actual buffer and compare with the reference. |
- audit.define('synthesize-verify', (task, should) => { |
- var impulse = context.createBufferSource(); |
- var dcOffset = context.createBufferSource(); |
- |
- impulse.buffer = impulseBuffer; |
- dcOffset.buffer = dcOffsetBuffer; |
- impulse.loop = true; |
- |
- impulse.connect(context.destination); |
- dcOffset.connect(impulse.detune); |
- |
- impulse.start(); |
- dcOffset.start(); |
- |
- context.startRendering().then(function (renderedBuffer) { |
- var data = renderedBuffer.getChannelData(0); |
- var passed = true, i = 0; |
- var nextImpulseIndex = 0; |
- |
- while (i < renderLength) { |
- if (i === nextImpulseIndex && data[i] === 1) { |
- // From 0 to 127th element, the interval between impulses is 4. On the other |
- // hand, the interval is 2 between 128th and 255th element. |
- nextImpulseIndex += (i < half) ? impulseLength : impulseLength / 2; |
- } else if (data[i] !== 0) { |
- // If a value is neither 0 or 1, break the loop and fail the test. |
- passed = false; |
- break; |
- } |
- |
- i++; |
- } |
- |
- should(passed, 'Increasing detune') |
- .message( |
- 'to 1200 decreased the interval between impulses to half', |
- 'produced the incorrect result' + 'at the index ' + i); |
- }).then(() => task.done()); |
- }); |
- |
- audit.run(); |
- </script> |
-</body> |
- |
+ }, 'Creation of impulse buffers').notThrow(); |
+ |
+ task.done(); |
+ }); |
+ |
+ |
+ // Task: Render the actual buffer and compare with the reference. |
+ audit.define('synthesize-verify', (task, should) => { |
+ let impulse = context.createBufferSource(); |
+ let dcOffset = context.createBufferSource(); |
+ |
+ impulse.buffer = impulseBuffer; |
+ dcOffset.buffer = dcOffsetBuffer; |
+ impulse.loop = true; |
+ |
+ impulse.connect(context.destination); |
+ dcOffset.connect(impulse.detune); |
+ |
+ impulse.start(); |
+ dcOffset.start(); |
+ |
+ context.startRendering() |
+ .then(function(renderedBuffer) { |
+ let data = renderedBuffer.getChannelData(0); |
+ let passed = true, i = 0; |
+ let nextImpulseIndex = 0; |
+ |
+ while (i < renderLength) { |
+ if (i === nextImpulseIndex && data[i] === 1) { |
+ // From 0 to 127th element, the interval between impulses is |
+ // 4. On the other hand, the interval is 2 between 128th and |
+ // 255th element. |
+ nextImpulseIndex += |
+ (i < half) ? impulseLength : impulseLength / 2; |
+ } else if (data[i] !== 0) { |
+ // If a value is neither 0 or 1, break the loop and fail the |
+ // test. |
+ passed = false; |
+ break; |
+ } |
+ |
+ i++; |
+ } |
+ |
+ should(passed, 'Increasing detune') |
+ .message( |
+ 'to 1200 decreased the interval between impulses to half', |
+ 'produced the incorrect result' + |
+ 'at the index ' + i); |
+ }) |
+ .then(() => task.done()); |
+ }); |
+ |
+ audit.run(); |
+ </script> |
+ </body> |
</html> |