60 lines
1.7 KiB
HTML
60 lines
1.7 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<script src="resources/audio-testing.js"></script>
|
|
<script src="resources/audioparam-testing-legacy.js"></script>
|
|
<script src="../resources/js-test-pre.js"></script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="description"></div>
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
description("Test AudioParam setValueAtTime() functionality.");
|
|
|
|
// Play a long DC signal out through an AudioGainNode, and call setValueAtTime() at regular
|
|
// intervals to set the value for the duration of the interval. Each time interval has
|
|
// different value so that there is a discontinuity at each time interval boundary. The
|
|
// discontinuity is for testing timing.
|
|
|
|
// Number of tests to run.
|
|
var numberOfTests = 100;
|
|
|
|
// Max allowed difference between the rendered data and the expected result.
|
|
var maxAllowedError = 6e-8;
|
|
|
|
// Set the gain node value to the specified value at the specified time.
|
|
function setValue(value, time)
|
|
{
|
|
gainNode.gain.setValueAtTime(value, time);
|
|
}
|
|
|
|
// For testing setValueAtTime(), we don't need to do anything for automation. because the value at
|
|
// the beginning of the interval is set by setValue and it remains constant for the duration, which
|
|
// is what we want.
|
|
function automation(value, startTime, endTime)
|
|
{
|
|
// Do nothing.
|
|
}
|
|
|
|
function runTest()
|
|
{
|
|
createAudioGraphAndTest(numberOfTests,
|
|
1,
|
|
setValue,
|
|
automation,
|
|
"setValueAtTime()",
|
|
maxAllowedError,
|
|
createConstantArray);
|
|
}
|
|
|
|
runTest();
|
|
successfullyParsed = true;
|
|
|
|
</script>
|
|
|
|
<script src="../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|