Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Test ConvolverNode after a GainNode - Bug 891254 </title>
5 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
7 </head>
8 <body>
9 <pre id="test">
10 <script src="webaudio.js" type="text/javascript"></script>
11 <script class="testbody" type="text/javascript">
13 const signalLength = 2048;
14 const responseLength = 100;
15 const outputLength = 4096; // > signalLength + responseLength
17 var gTest = {
18 length: outputLength,
19 numberOfChannels: 1,
20 createGraph: function(context) {
21 var buffer = context.createBuffer(1, signalLength, context.sampleRate);
22 for (var i = 0; i < signalLength; ++i) {
23 buffer.getChannelData(0)[i] = Math.sin(2 * Math.PI * i / signalLength);
24 }
26 var source = context.createBufferSource();
27 source.buffer = buffer;
28 source.start(0);
30 var response = context.createBuffer(1, responseLength, context.sampleRate);
31 for (var i = 0; i < responseLength; ++i) {
32 response.getChannelData(0)[i] = i / responseLength;
33 }
35 var gain = context.createGain();
36 gain.gain.value = -1;
37 source.connect(gain);
39 var convolver1 = context.createConvolver();
40 convolver1.buffer = response;
41 gain.connect(convolver1);
43 var convolver2 = context.createConvolver();
44 convolver2.buffer = response;
45 source.connect(convolver2);
47 // The output of convolver1 should be the inverse of convolver2, so blend
48 // them together and expect silence.
49 var blend = context.createGain();
50 convolver1.connect(blend);
51 convolver2.connect(blend);
53 return blend;
54 },
55 };
57 runTest();
59 </script>
60 </pre>
61 </body>
62 </html>