Refactoring: Pull all fullscreen code out of Document and into its own helper class
[WebKit-https.git] / LayoutTests / webaudio / convolution-mono-mono.html
1 <!DOCTYPE html>
2
3 <html>
4 <head>
5 <script type="text/javascript" src="resources/audio-testing.js"></script>
6 <script src="../resources/js-test.js"></script>
7 <script src="resources/convolution-testing.js"></script>
8 </head>
9
10 <body>
11
12 <div id="description"></div>
13 <div id="console"></div>
14
15 <script>
16 description("Tests ConvolverNode processing a mono channel with mono impulse response.");
17
18 // To test the convolver, we convolve two square pulses together to
19 // produce a triangular pulse.  To verify the result is correct we
20 // check several parts of the result.  First, we make sure the initial
21 // part of the result is zero (due to the latency in the convolver).
22 // Next, the triangular pulse should match the theoretical result to
23 // within some roundoff.  After the triangular pulse, the result
24 // should be exactly zero, but round-off prevents that.  We make sure
25 // the part after the pulse is sufficiently close to zero.  Finally,
26 // the result should be exactly zero because the inputs are exactly
27 // zero.
28 function runTest() {
29     window.jsTestIsAsync = true;
30         
31     // Create offline audio context.
32     var context = new webkitOfflineAudioContext(2, sampleRate * renderLengthSeconds, sampleRate);
33
34     var squarePulse = createSquarePulseBuffer(context, pulseLengthFrames);
35     var trianglePulse = createTrianglePulseBuffer(context, 2 * pulseLengthFrames);
36     
37     var bufferSource = context.createBufferSource();
38     bufferSource.buffer = squarePulse;
39     
40     var convolver = context.createConvolver();
41     convolver.normalize = false;
42     convolver.buffer = squarePulse;
43
44     bufferSource.connect(convolver);
45     convolver.connect(context.destination);
46
47     bufferSource.start(0);
48     
49     context.oncomplete = checkConvolvedResult(trianglePulse);
50     context.startRendering();
51 }
52
53 runTest();
54
55 </script>
56 </body>
57 </html>