2015-07-17 04:24:54 +03:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<title>Test effect of AnalyserNode on GainNode output</title>
|
|
|
|
<script src="/resources/testharness.js"></script>
|
|
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
|
|
<script>
|
2015-07-28 02:03:31 +03:00
|
|
|
promise_test(function() {
|
|
|
|
// fftSize <= bufferSize so that the time domain data is full of input after
|
|
|
|
// processing the buffer.
|
2015-07-17 04:24:54 +03:00
|
|
|
const fftSize = 32;
|
2015-07-28 02:03:31 +03:00
|
|
|
const bufferSize = 128;
|
2015-07-17 04:24:54 +03:00
|
|
|
|
2015-07-28 02:03:31 +03:00
|
|
|
var context = new OfflineAudioContext(1, bufferSize, 48000);
|
2015-07-17 04:24:54 +03:00
|
|
|
|
|
|
|
var analyser1 = context.createAnalyser();
|
|
|
|
analyser1.fftSize = fftSize;
|
2015-07-28 02:03:31 +03:00
|
|
|
analyser1.connect(context.destination);
|
2015-07-17 04:24:54 +03:00
|
|
|
var analyser2 = context.createAnalyser();
|
|
|
|
analyser2.fftSize = fftSize;
|
|
|
|
|
|
|
|
var gain = context.createGain();
|
|
|
|
gain.gain.value = 2.0;
|
|
|
|
gain.connect(analyser1);
|
|
|
|
gain.connect(analyser2);
|
|
|
|
|
|
|
|
// Create a DC input to make getFloatTimeDomainData() output consistent at
|
|
|
|
// any time.
|
|
|
|
var buffer = context.createBuffer(1, 1, context.sampleRate);
|
|
|
|
buffer.getChannelData(0)[0] = 1.0 / gain.gain.value;
|
|
|
|
var source = context.createBufferSource();
|
|
|
|
source.buffer = buffer;
|
|
|
|
source.loop = true;
|
|
|
|
source.connect(gain);
|
|
|
|
source.start();
|
|
|
|
|
2015-07-28 02:03:31 +03:00
|
|
|
return context.startRendering().
|
|
|
|
then(function(buffer) {
|
|
|
|
assert_equals(buffer.getChannelData(0)[0], 1.0,
|
|
|
|
"analyser1 output");
|
2015-07-17 04:24:54 +03:00
|
|
|
|
2015-07-28 02:03:31 +03:00
|
|
|
var data = new Float32Array(1);
|
|
|
|
analyser1.getFloatTimeDomainData(data);
|
|
|
|
assert_equals(data[0], 1.0, "analyser1 time domain data");
|
|
|
|
analyser2.getFloatTimeDomainData(data);
|
|
|
|
assert_equals(data[0], 1.0, "analyser2 time domain data");
|
|
|
|
});
|
2015-07-17 04:24:54 +03:00
|
|
|
});
|
|
|
|
</script>
|