blob: 200f02d1fcf256b504899bc877143590a5057275 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script src="resources/compatibility.js"></script>
<script src="resources/audio-testing.js"></script>
<script src="resources/audioparam-testing.js"></script>
<script src="../resources/js-test.js"></script>
<title>Test AudioParam.setTargetAtTime</title>
</head>
<body>
<div id="description"></div>
<div id="console"></div>
<script>
description("Test AudioParam setTargetAtTime() functionality.");
// Play a long DC signal out through an AudioGainNode, and call setValueAtTime() and
// setTargetAtTime at regular intervals to set the starting value and the target
// value. Each time interval has a ramp with a different starting and target value so that
// there is a discontinuity at each time interval boundary. The discontinuity is for testing
// timing. Also, we alternate between an increasing and decreasing ramp for each interval.
// Number of tests to run.
var numberOfTests = 100;
// Max allowed difference between the rendered data and the expected result.
var maxAllowedError = 1.6953e-6;
// The AudioGainNode starts with this value instead of the default value.
var initialValue = 100;
// Set the gain node value to the specified value at the specified time.
function setValue(value, time)
{
gainNode.gain.setValueAtTime(value, time);
}
// Generate an exponential approach starting at |startTime| with a target value of |value|.
function automation(value, startTime, endTime)
{
// endTime is not used for setTargetAtTime.
gainNode.gain.setTargetAtTime(value, startTime, timeConstant)
}
function runTest()
{
createAudioGraphAndTest(numberOfTests,
initialValue,
setValue,
automation,
"setTargetAtTime()",
maxAllowedError,
createExponentialApproachArray);
}
runTest();
successfullyParsed = true;
</script>
</body>
</html>