Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Test ConvolverNode channel count</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 = 1000;
15 const outputLength = 2048; // < signalLength + responseLength to test bug 910171
17 var gTest = {
18 length: outputLength,
19 numberOfChannels: 2,
20 createGraph: function(context) {
21 var buffer = context.createBuffer(2, signalLength, context.sampleRate);
22 for (var i = 0; i < signalLength; ++i) {
23 var sample = Math.sin(440 * 2 * Math.PI * i / context.sampleRate);
24 // When mixed into a single channel, this produces silence
25 buffer.getChannelData(0)[i] = sample;
26 buffer.getChannelData(1)[i] = -sample;
27 }
29 var response = context.createBuffer(2, responseLength, context.sampleRate);
30 for (var i = 0; i < responseLength; ++i) {
31 response.getChannelData(0)[i] = i / responseLength;
32 response.getChannelData(1)[i] = 1 - (i / responseLength);
33 }
35 var convolver = context.createConvolver();
36 convolver.buffer = response;
37 convolver.channelCount = 1;
39 expectException(function() { convolver.channelCount = 3; },
40 DOMException.NOT_SUPPORTED_ERR);
41 convolver.channelCountMode = "explicit";
42 expectException(function() { convolver.channelCountMode = "max"; },
43 DOMException.NOT_SUPPORTED_ERR);
44 convolver.channelInterpretation = "discrete";
45 convolver.channelInterpretation = "speakers";
47 var source = context.createBufferSource();
48 source.buffer = buffer;
49 source.connect(convolver);
50 source.start(0);
52 return convolver;
53 },
54 };
56 runTest();
58 </script>
59 </pre>
60 </body>
61 </html>