content/media/webaudio/test/test_convolverNodeWithGain.html

Fri, 16 Jan 2015 04:50:19 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 16 Jan 2015 04:50:19 +0100
branch
TOR_BUG_9701
changeset 13
44a2da4a2ab2
permissions
-rw-r--r--

Replace accessor implementation with direct member state manipulation, by
request https://trac.torproject.org/projects/tor/ticket/9701#comment:32

     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>

mercurial