tor-browser

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

test_pannerNode_maxDistance.html (1357B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test PannerNode outputs silence when the distance is greater than maxDist</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <script 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 // BUF_SIZE must be greater than HRTF delay.
     14 const BUF_SIZE = 1024;
     15 const sampleRate = 44100;
     16 var types = [
     17  "equalpower",
     18  "HRTF"
     19 ]
     20 
     21 async function test(panningModel) {
     22  var ac = new OfflineAudioContext(1, 1024, sampleRate);
     23  var osc = ac.createOscillator();
     24  var panner = new PannerNode(ac, {
     25    panningModel,
     26    distanceModel: "linear",
     27    maxDistance: 100,
     28    positionY: 200,
     29  });
     30 
     31  ac.listener.setPosition(0, 0, 0);
     32 
     33  osc.connect(panner);
     34  panner.connect(ac.destination);
     35 
     36  osc.start();
     37 
     38  const buffer = await ac.startRendering()
     39 
     40  var silence = true;
     41  var array = buffer.getChannelData(0);
     42  for (var i = 0; i < buffer.length; i++) {
     43    if (array[i] != 0) {
     44      ok(false, "Found noise in the buffer.");
     45      silence = false;
     46    }
     47  }
     48  ok(silence, "The buffer is silent.");
     49 }
     50 
     51 add_task(async function() {
     52  await promiseHRTFReady(sampleRate);
     53  for (const panningModel of types) {
     54    await test(panningModel);
     55  }
     56 });
     57 
     58 </script>
     59 </pre>
     60 </body>
     61 </html>