tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_bug964376.html (1706B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test repeating audio is not distorted</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <script type="text/javascript" src="webaudio.js"></script>
      7  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      8 </head>
      9 <body>
     10 <pre id="test">
     11 <script class="testbody" type="text/javascript">
     12 
     13 function gcd(a, b) {
     14  if (b === 0) {
     15    return a;
     16  }
     17  return gcd(b, a % b);
     18 }
     19 
     20 var SAMPLE_PLACEMENT = 128;
     21 
     22 var gTest = {
     23  length: 2048,
     24  numberOfChannels: 1,
     25 
     26  createGraph(context) {
     27    var freq = Math.round(context.sampleRate / SAMPLE_PLACEMENT);
     28    var dur = context.sampleRate / gcd(freq, context.sampleRate);
     29    var buffer = context.createBuffer(1, dur, context.sampleRate);
     30 
     31    for (var i = 0; i < context.sampleRate; ++i) {
     32      buffer.getChannelData(0)[i] = Math.sin(freq * 2 * Math.PI * i / context.sampleRate);
     33    }
     34 
     35    var source = context.createBufferSource();
     36    source.buffer = buffer;
     37    source.loop = true;
     38    source.playbackRate.setValueAtTime(0.5, SAMPLE_PLACEMENT / context.sampleRate);
     39    source.start(0);
     40 
     41    return source;
     42  },
     43 
     44  createExpectedBuffers(context) {
     45    var freq = Math.round(context.sampleRate / SAMPLE_PLACEMENT);
     46    var expectedBuffer = context.createBuffer(1, 2048, context.sampleRate);
     47    var c = expectedBuffer.getChannelData(0);
     48    for (var i = 0; i < c.length; ++i) {
     49      if (i < SAMPLE_PLACEMENT) {
     50        c[i] = Math.sin(freq * 2 * Math.PI * i / context.sampleRate);
     51      } else {
     52        c[i] = Math.sin(freq / 2 * 2 * Math.PI * (i + SAMPLE_PLACEMENT) / context.sampleRate);
     53      }
     54    }
     55 
     56    return expectedBuffer;
     57  },
     58 };
     59 
     60 runTest();
     61 </script>
     62 </pre>
     63 </body>
     64 </html>