summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/webaudio/audioparam-linearRampToValueAtTime.html
blob: 6efe7a66b3754576ca491813cb9c2aff51b45aad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<!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>
</head>

<body>
<div id="description"></div>
<div id="console"></div>

<script>
description("Test AudioParam linearRampToValueAtTime() functionality.");

// Play a long DC signal out through an AudioGainNode, and call setValueAtTime() and
// linearRampToValueAtTime() at regular intervals to set the starting and ending values for a
// linear ramp. Each time interval has a ramp with a different starting and ending 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 = 6.5e-7;

// Set the gain node value to the specified value at the specified time.
function setValue(value, time)
{
    gainNode.gain.setValueAtTime(value, time);
}

// Generate a linear ramp ending at time |endTime| with an ending value of |value|.
function generateRamp(value, startTime, endTime)
{
    // |startTime| is ignored because the linear ramp uses the value from the setValueAtTime() call above.
    gainNode.gain.linearRampToValueAtTime(value, endTime)
}

function runTest()
{
    createAudioGraphAndTest(numberOfTests,
                            1,
                            setValue,
                            generateRamp,
                            "linearRampToValueAtTime()",
                            maxAllowedError,
                            createLinearRampArray);
}

runTest();
successfullyParsed = true;
  
</script>

</body>
</html>