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

Unified Diff: third_party/WebKit/LayoutTests/webaudio/audiobuffersource-loop-points.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-loop-points.html
diff --git a/third_party/WebKit/LayoutTests/webaudio/audiobuffersource-loop-points.html b/third_party/WebKit/LayoutTests/webaudio/audiobuffersource-loop-points.html
deleted file mode 100644
index 7e066f81008335ce3f52ee3b0738dc6bd56e16ea..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/webaudio/audiobuffersource-loop-points.html
+++ /dev/null
@@ -1,112 +0,0 @@
-<!DOCTYPE html>
-
-<!--
-Tests that AudioBufferSourceNode supports loop-points with .loopStart and .loopEnd.
--->
-
-<html>
-<head>
-<script src="resources/audit-util.js"></script>
-<script src="resources/audio-testing.js"></script>
-
-</head>
-<body>
-
-<script>
-
-window.onload = init;
-
-var sampleRate = 44100.0;
-var numberOfNotes = 60; // play over a 5 octave range
-var noteDuration = 0.025;
-var noteSpacing = noteDuration + 0.005; // leave 5ms of silence between each "note"
-var lengthInSeconds = numberOfNotes * noteSpacing;
-
-var context = 0;
-var buffer = 0;
-
-function createTestBuffer(frequency, sampleRate) {
- // Create a buffer containing two periods at this frequency.
- // The 1st half is a pure sine wave period scaled by a linear ramp from 0 -> 1.
- // The 2nd half of the buffer corresponds exactly to one pure sine wave period.
- var onePeriodDuration = 1 / frequency;
- var sampleFrameLength = 2 * onePeriodDuration * sampleRate;
-
- var audioBuffer = context.createBuffer(1, sampleFrameLength, sampleRate);
-
- var n = audioBuffer.length;
- var channelData = audioBuffer.getChannelData(0);
-
- for (var i = 0; i < n; ++i) {
- var sample = Math.sin(frequency * 2.0*Math.PI * i / sampleRate);
-
- // Linear ramp from 0 -> 1 for the first period.
- // Stay at 1 for the 2nd period.
- var scale = i < n / 2 ? i / (n / 2) : 1;
- sample *= scale;
-
- channelData[i] = sample;
- }
-
- return audioBuffer;
-}
-
-function playNote(time, duration, playbackRate) {
- var source = context.createBufferSource();
- source.buffer = buffer;
- source.playbackRate.value = playbackRate;
-
- var gainNode = context.createGain();
- source.connect(gainNode);
- gainNode.connect(context.destination);
-
- // Loop the 2nd half of the buffer.
- // We should be able to hear any problems as glitches if the looping incorrectly indexes to
- // anywhere outside of the desired loop-points, since only the 2nd half is a perfect sine-wave cycle,
- // while the 1st half of the buffer contains a linear ramp of a sine-wave cycle.
- source.loop = true;
- source.loopStart = 0.5 * buffer.duration;
- source.loopEnd = buffer.duration;
-
- // Play for the given duration.
- source.start(time);
- source.stop(time + duration);
-
- // Apply a quick linear fade-out to avoid a click at the end of the note.
- gainNode.gain.value = 1;
- gainNode.gain.setValueAtTime(1, time + duration - 0.005);
- gainNode.gain.linearRampToValueAtTime(0, time + duration);
-}
-
-function init() {
- if (!window.testRunner)
- return;
-
- // Create offline audio context.
- context = new OfflineAudioContext(2, sampleRate * lengthInSeconds, sampleRate);
-
- // Create the test buffer.
- // We'll loop this with the loop-points set for the 2nd half of this buffer.
- buffer = createTestBuffer(440.0, sampleRate);
-
- // Play all the notes as a chromatic scale.
- for (var i = 0; i < numberOfNotes; ++i) {
- var time = i * noteSpacing;
- var semitone = i - numberOfNotes/2; // start three octaves down
-
- // Convert from semitone to rate.
- var playbackRate = Math.pow(2, semitone / 12);
-
- playNote(time, noteDuration, playbackRate);
- }
-
- context.oncomplete = finishAudioTest;
- context.startRendering();
-
- testRunner.waitUntilDone();
-}
-
-</script>
-
-</body>
-</html>

Powered by Google App Engine
This is Rietveld 408576698