content/media/webaudio/test/test_convolverNode_mono_mono.html

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:00380839711e
1 <!DOCTYPE html>
2
3 <html>
4 <head>
5 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
6 <script type="text/javascript" src="webaudio.js"></script>
7 <script type="text/javascript" src="layouttest-glue.js"></script>
8 <script type="text/javascript" src="blink/audio-testing.js"></script>
9 <script type="text/javascript" src="blink/convolution-testing.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
11 </head>
12
13 <body>
14
15 <div id="description"></div>
16 <div id="console"></div>
17
18 <script>
19 description("Tests ConvolverNode processing a mono channel with mono impulse response.");
20 SimpleTest.waitForExplicitFinish();
21
22 // To test the convolver, we convolve two square pulses together to
23 // produce a triangular pulse. To verify the result is correct we
24 // check several parts of the result. First, we make sure the initial
25 // part of the result is zero (due to the latency in the convolver).
26 // Next, the triangular pulse should match the theoretical result to
27 // within some roundoff. After the triangular pulse, the result
28 // should be exactly zero, but round-off prevents that. We make sure
29 // the part after the pulse is sufficiently close to zero. Finally,
30 // the result should be exactly zero because the inputs are exactly
31 // zero.
32 function runTest() {
33 if (window.testRunner) {
34 testRunner.dumpAsText();
35 testRunner.waitUntilDone();
36 }
37
38 window.jsTestIsAsync = true;
39
40 // Create offline audio context.
41 var context = new OfflineAudioContext(2, sampleRate * renderLengthSeconds, sampleRate);
42
43 var squarePulse = createSquarePulseBuffer(context, pulseLengthFrames);
44 var trianglePulse = createTrianglePulseBuffer(context, 2 * pulseLengthFrames);
45
46 var bufferSource = context.createBufferSource();
47 bufferSource.buffer = squarePulse;
48
49 var convolver = context.createConvolver();
50 convolver.normalize = false;
51 convolver.buffer = squarePulse;
52
53 bufferSource.connect(convolver);
54 convolver.connect(context.destination);
55
56 bufferSource.start(0);
57
58 context.oncomplete = checkConvolvedResult(trianglePulse);
59 context.startRendering();
60 }
61
62 function finishJSTest() {
63 SimpleTest.finish();
64 }
65
66 runTest();
67 successfullyParsed = true;
68
69 </script>
70
71 <script src="../fast/js/resources/js-test-post.js"></script>
72 </body>
73 </html>

mercurial