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

Unified Diff: third_party/WebKit/LayoutTests/webaudio/audiobuffersource-playbackrate.html

Issue 2581463002: Refactor WebAudio test directory (Closed)
Patch Set: Use correct path for wav result files Created 4 years 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/audiobuffersource-playbackrate.html
diff --git a/third_party/WebKit/LayoutTests/webaudio/audiobuffersource-playbackrate.html b/third_party/WebKit/LayoutTests/webaudio/audiobuffersource-playbackrate.html
deleted file mode 100644
index d490ae22595ba341078349a52f4dea3420f0206c..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/webaudio/audiobuffersource-playbackrate.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>AudioBufferSourceNode - playbackRate test</title>
- <script src="../resources/js-test.js"></script>
- <script src="resources/compatibility.js"></script>
- <script src="resources/audit-util.js"></script>
- <script src="resources/audio-testing.js"></script>
-</head>
-<body>
- <script>
- description("Test if AudioBufferSourceNode.playbackRate can playback at different rates properly.");
- window.jsTestIsAsync = true;
-
- // Any sample rate mutiple of 128 is valid for this test, but here it uses
- // 48000Hz because it is a commonly used number that happens to be multiple
- // of 128.
- var sampleRate = 48000;
-
- // The test iterates over 60 pitches starting from 36. (MIDI pitch of C2)
- var fundamentalPitch = 36;
- var numberOfPitches = 60;
-
- var noteDuration = 0.025;
- var totalDuration = noteDuration * numberOfPitches;
-
- // Test constraints for each octave.
- var testConstraints = [{
- thresholdSNR: 103.8508,
- thresholdDiffULP: 0.3028
- }, {
- thresholdSNR: 103.8657,
- thresholdDiffULP: 0.3029
- }, {
- thresholdSNR: 103.8141,
- thresholdDiffULP: 0.3047
- }, {
- thresholdSNR: 103.6818,
- thresholdDiffULP: 0.3262
- }, {
- thresholdSNR: 103.1514,
- thresholdDiffULP: 0.3946
- }];
-
- function pitchToFrequency(midiPitch) {
- return 440 * Math.pow(2, (Math.floor(midiPitch) - 69) / 12);
- }
-
- function pitchDiffToPlaybackRate(midiPitchDiff) {
- return Math.pow(2, midiPitchDiff / 12);
- }
-
- function createSineWaveBuffer(context, frequency, duration) {
- var buffer = context.createBuffer(1, duration * sampleRate, sampleRate);
- var data = buffer.getChannelData(0);
- var omega = 2 * Math.PI * frequency / sampleRate;
- for (var i = 0; i < data.length; i++)
- data[i] = Math.sin(omega * i);
-
- return buffer;
- }
-
- var context = new OfflineAudioContext(2, totalDuration * sampleRate, sampleRate);
-
- // This is the fundamental buffer for playbackRate modulation. The duration of
- // this buffer is arbitrary but long enough to produce the sound without
- // running short.
- var fundamentalBuffer = createSineWaveBuffer(context, pitchToFrequency(fundamentalPitch), totalDuration);
-
- // A unit test consists of 2 sources: the 'actual' source runs a buffer with
- // the playback rate modulated and the 'expected' source runs a mathmatically
- // generated sound buffer.
- function runUnitTest(context, noteStart, notePitch) {
- var actualSrc = context.createBufferSource();
- var expectedSrc = context.createBufferSource();
- var merger = context.createChannelMerger(2);
-
- actualSrc.buffer = fundamentalBuffer;
- expectedSrc.buffer = createSineWaveBuffer(context, pitchToFrequency(notePitch), noteDuration);
- actualSrc.playbackRate.value = pitchDiffToPlaybackRate(notePitch - fundamentalPitch);
-
- actualSrc.connect(merger, 0, 0);
- expectedSrc.connect(merger, 0, 1);
- merger.connect(context.destination);
-
- actualSrc.start(noteStart);
- actualSrc.stop(noteStart + noteDuration);
- expectedSrc.start(noteStart);
- expectedSrc.stop(noteStart + noteDuration);
- }
-
- // Schedule tests up to 60 pitches above from the fundamental pitch.
- for (var iteration = 0; iteration < numberOfPitches; iteration++)
- runUnitTest(context, noteDuration * iteration, fundamentalPitch + iteration);
-
- // Once the rendering is complete, split the buffer into 5 octaves. Then
- // perform the SNR and the maximum difference ULP check for each octave with
- // different constraints.
- context.startRendering().then(function (renderedBuffer) {
- var actual = renderedBuffer.getChannelData(0);
- var expected = renderedBuffer.getChannelData(1);
- var octaveLength = Math.floor(noteDuration * 12 * sampleRate);
-
- for (var i = 0; i < numberOfPitches / 12; i++) {
- var start = i * octaveLength, end = (i + 1) * octaveLength;
- var octaveActual = actual.subarray(start, end);
- var octaveExpected = expected.subarray(start, end);
-
- compareBuffersWithConstraints(octaveActual, octaveExpected, testConstraints[i]);
- }
-
- finishJSTest();
- });
-
- successfullyParsed = true;
- </script>
-</body>
-</html>

Powered by Google App Engine
This is Rietveld 408576698