tor-browser

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

setValueAtTime-within-block.html (1567B)


      1 <!DOCTYPE html>
      2 <title>Test setValueAtTime with start time not on a block boundary</title>
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script>
      6 promise_test(function() {
      7  const bufferSize = 200;
      8  const offset = 65;
      9  const sampleRate = 48000;
     10  const scheduledValue = -2.0;
     11 
     12  var context = new OfflineAudioContext(1, bufferSize, sampleRate);
     13 
     14  var gain = context.createGain();
     15  gain.gain.setValueAtTime(scheduledValue, offset/sampleRate);
     16  gain.connect(context.destination);
     17 
     18  // Apply unit DC signal to gain node.
     19  var source = context.createBufferSource();
     20  source.buffer =
     21    function() {
     22      var buffer = context.createBuffer(1, 1, context.sampleRate);
     23      buffer.getChannelData(0)[0] = 1.0;
     24      return buffer;
     25    }();
     26  source.loop = true;
     27  source.start();
     28  source.connect(gain);
     29 
     30  return context.startRendering().
     31    then(function(buffer) {
     32      assert_equals(buffer.length, bufferSize, "output buffer length");
     33      var output = buffer.getChannelData(0);
     34      var i = 0;
     35      for (; i < offset; ++i) {
     36        // "Its default value is 1."
     37        assert_equals(output[i], 1.0, "default gain at sample " + i);
     38      }
     39      for (; i < buffer.length; ++i) {
     40        // "If there are no more events after this SetValue event, then for
     41        // t≥T0, v(t)=V, where T0 is the startTime parameter and V is the
     42        // value parameter."
     43        assert_equals(output[i], scheduledValue,
     44                      "scheduled value at sample " + i);
     45      }
     46    });
     47 });
     48 </script>