summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webaudio/the-audio-api/the-gainnode-interface/test-gainnode.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/webaudio/the-audio-api/the-gainnode-interface/test-gainnode.html')
-rw-r--r--testing/web-platform/tests/webaudio/the-audio-api/the-gainnode-interface/test-gainnode.html121
1 files changed, 0 insertions, 121 deletions
diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-gainnode-interface/test-gainnode.html b/testing/web-platform/tests/webaudio/the-audio-api/the-gainnode-interface/test-gainnode.html
deleted file mode 100644
index 4f92fbbe5..000000000
--- a/testing/web-platform/tests/webaudio/the-audio-api/the-gainnode-interface/test-gainnode.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!doctype html>
-
-<!--
-Tests that GainNode is properly scaling the gain.
-We'll render 11 notes, starting at a gain of 1.0, decreasing in gain by 0.1.
-The 11th note will be of gain 0.0, so it should be silent (at the end in the rendered output).
-
-Based on a test from the WebKit test suite
-(https://github.com/WebKit/webkit/blob/master/LayoutTests/webaudio/gain.html)
--->
-
-<html class="a">
- <head>
- <title>GainNode interface</title>
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
- <script src="/webaudio/js/lodash.js"></script>
- <script src="/webaudio/js/vendor-prefixes.js"></script>
- <script src="/webaudio/js/helpers.js"></script>
- <script src="/webaudio/js/buffer-loader.js"></script>
- </head>
- <body class="a">
- <div id="log"></div>
- <script>
-var gainNodeTest = async_test("GainNode");
-
-var sampleRate = 44100.0;
-var bufferDurationSeconds = 0.125;
-var numberOfNotes = 11;
-var noteSpacing = bufferDurationSeconds + 0.020; // leave 20ms of silence between each "note"
-var lengthInSeconds = numberOfNotes * noteSpacing;
-
-var context = 0;
-var expectedBuffer = 0;
-var actualBuffer = 0;
-var sinWaveBuffer = 0;
-
-function createSinWaveBuffer(lengthInSeconds, frequency) {
- var audioBuffer = context.createBuffer(2, lengthInSeconds * sampleRate, sampleRate);
-
- var n = audioBuffer.length;
- var channelL = audioBuffer.getChannelData(0);
- var channelR = audioBuffer.getChannelData(1);
-
- for (var i = 0; i < n; ++i) {
- channelL[i] = Math.sin(frequency * 2.0*Math.PI * i / sampleRate);
- channelR[i] = channelL[i];
- }
-
- return audioBuffer;
-}
-
-function playNote(time, gain) {
- var source = context.createBufferSource();
- source.buffer = sinWaveBuffer;
-
- var gainNode = context.createGain();
- gainNode.gain.value = gain;
-
- source.connect(gainNode);
- gainNode.connect(context.destination);
-
- source.start(time);
-}
-
-function loadExpectedBuffer(event) {
- actualBuffer = event.renderedBuffer;
-
- bufferLoader = new BufferLoader(
- context,
- ['/webaudio/the-audio-api/the-gainnode-interface/gain-expected.wav'],
- bufferLoadCompleted
- );
- bufferLoader.load();
-};
-
-function bufferLoadCompleted(buffer) {
- compareExpectedWithActualBuffer(buffer);
-};
-
-setup( function() {
- // Create offline audio context.
- context = new OfflineAudioContext(2, sampleRate * lengthInSeconds, sampleRate);
-
- // Create a buffer for a short "note".
- sinWaveBuffer = createSinWaveBuffer(bufferDurationSeconds, 880.0);
-
- // Render 11 notes, starting at a gain of 1.0, decreasing in gain by 0.1.
- // The last note will be of gain 0.0, so shouldn't be perceptible in the rendered output.
- for (var i = 0; i < numberOfNotes; ++i) {
- var time = i * noteSpacing;
- var gain = 1.0 - i / (numberOfNotes - 1);
- playNote(time, gain);
- }
-
- context.oncomplete = loadExpectedBuffer;
- context.startRendering();
-}, {timeout: 10000});
-
-function compareExpectedWithActualBuffer(expected) {
- var expectedBuffer = expected[0];
-
- gainNodeTest.step(function() {
- assert_array_approx_equals(expectedBuffer.getChannelData(0),
- actualBuffer.getChannelData(0),
- 1e-4,
- "comparing expected and rendered buffers (channel 0)");
- });
-
- gainNodeTest.step(function() {
- assert_array_approx_equals(expectedBuffer.getChannelData(1),
- actualBuffer.getChannelData(1),
- 1e-4,
- "comparing expected and rendered buffers (channel 1)");
- });
-
- gainNodeTest.done();
-};
- </script>
- </body>
-</html>