1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/media/webaudio/test/test_bug972678.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,62 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html> 1.6 +<head> 1.7 + <title>Test buffers do not interfere when scheduled in sequence</title> 1.8 + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.9 + <script type="text/javascript" src="webaudio.js"></script> 1.10 + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 1.11 +</head> 1.12 +<body> 1.13 +<pre id="test"> 1.14 +<script class="testbody" type="text/javascript"> 1.15 +var OFFSETS = [0.005, 0.01, 0.02, 0.03]; 1.16 +var LENGTH = 128; 1.17 + 1.18 +var gTest = { 1.19 + length: 128 * OFFSETS.length, 1.20 + numberOfChannels: 1, 1.21 + 1.22 + createGraph: function(context) { 1.23 + var gain = context.createGain(); 1.24 + 1.25 + // create a repeating sample 1.26 + var repeatingSample = context.createBuffer(1, 2, context.sampleRate); 1.27 + var c = repeatingSample.getChannelData(0); 1.28 + for (var i = 0; i < repeatingSample.length; ++i) { 1.29 + c[i] = i % 2 == 0 ? 1 : -1; 1.30 + } 1.31 + 1.32 + OFFSETS.forEach(function (offset, offsetIdx) { 1.33 + // Schedule a set of nodes to repeat the sample. 1.34 + for (var i = 0; i < LENGTH; i += repeatingSample.length) { 1.35 + var source = context.createBufferSource(); 1.36 + source.buffer = repeatingSample; 1.37 + source.connect(gain); 1.38 + source.start((offsetIdx * LENGTH + i + offset) / context.sampleRate); 1.39 + } 1.40 + 1.41 + buffer = context.createBuffer(1, LENGTH, context.sampleRate); 1.42 + c = buffer.getChannelData(0); 1.43 + for (var i = 0; i < buffer.length; ++i) { 1.44 + c[i] = i % 2 == 0 ? -1 : 1; 1.45 + } 1.46 + 1.47 + var source = context.createBufferSource(); 1.48 + source.buffer = buffer; 1.49 + source.connect(gain); 1.50 + source.start((offsetIdx * LENGTH + offset) / context.sampleRate); 1.51 + }); 1.52 + 1.53 + return gain; 1.54 + }, 1.55 + 1.56 + createExpectedBuffers: function(context) { 1.57 + return context.createBuffer(1, gTest.length, context.sampleRate); 1.58 + }, 1.59 +}; 1.60 + 1.61 +runTest(); 1.62 +</script> 1.63 +</pre> 1.64 +</body> 1.65 +</html>