Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(712)

Side by Side Diff: third_party/WebKit/LayoutTests/webaudio/AudioParam/audioparam-connect-audioratesignal.html

Issue 2895963003: Apply layout-test-tidy to LayoutTests/webaudio (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2
3 <!-- 2 <!--
4 Tests that an audio-rate signal (AudioNode output) can be connected to an 3 Tests that an audio-rate signal (AudioNode output) can be connected to an
5 AudioParam. Specifically, this tests that an audio-rate signal coming from an 4 AudioParam. Specifically, this tests that an audio-rate signal coming from an
6 AudioBufferSourceNode playing an AudioBuffer containing a specific curve can be 5 AudioBufferSourceNode playing an AudioBuffer containing a specific curve can be
7 connected to an AudioGainNode's .gain attribute (an AudioParam). Another 6 connected to an AudioGainNode's .gain attribute (an AudioParam). Another
8 AudioBufferSourceNode will be the audio source having its gain changed. We load 7 AudioBufferSourceNode will be the audio source having its gain changed. We load
9 this one with an AudioBuffer containing a constant value of 1. Thus it's easy 8 this one with an AudioBuffer containing a constant value of 1. Thus it's easy
10 to check that the resultant signal should be equal to the gain-scaling curve. 9 to check that the resultant signal should be equal to the gain-scaling curve.
11 --> 10 -->
11 <html>
12 <head>
13 <title>
14 audioparam-connect-audioratesignal.html
15 </title>
16 <script src="../../resources/testharness.js"></script>
17 <script src="../../resources/testharnessreport.js"></script>
18 <script src="../resources/audit-util.js"></script>
19 <script src="../resources/audit.js"></script>
20 </head>
21 <body>
22 <script id="layout-test-code">
23 let audit = Audit.createTaskRunner();
12 24
13 <html> 25 let sampleRate = 44100.0;
14 <head> 26 let lengthInSeconds = 1;
15 <script src="../../resources/testharness.js"></script>
16 <script src="../../resources/testharnessreport.js"></script>
17 <script src="../resources/audit-util.js"></script>
18 <script src="../resources/audit.js"></script>
19 27
20 </head> 28 let context = 0;
21 <body> 29 let constantOneBuffer = 0;
30 let linearRampBuffer = 0;
22 31
23 <script> 32 function checkResult(renderedBuffer, should) {
24 let audit = Audit.createTaskRunner(); 33 let renderedData = renderedBuffer.getChannelData(0);
34 let expectedData = linearRampBuffer.getChannelData(0);
35 let n = renderedBuffer.length;
25 36
26 let sampleRate = 44100.0; 37 should(n, 'Rendered signal length').beEqualTo(linearRampBuffer.length);
27 let lengthInSeconds = 1;
28 38
29 let context = 0; 39 // Check that the rendered result exactly matches the buffer used to
30 let constantOneBuffer = 0; 40 // control gain. This is because we're changing the gain of a signal
31 let linearRampBuffer = 0; 41 // having constant value 1.
42 let success = true;
43 for (let i = 0; i < n; ++i) {
44 if (renderedData[i] != expectedData[i]) {
45 success = false;
46 break;
47 }
48 }
32 49
33 function checkResult(renderedBuffer, should) { 50 should(
34 let renderedData = renderedBuffer.getChannelData(0); 51 success,
35 let expectedData = linearRampBuffer.getChannelData(0); 52 'Rendered signal exactly matches the audio-rate gain changing signal ')
36 let n = renderedBuffer.length; 53 .beTrue();
54 }
37 55
38 should(n, 'Rendered signal length').beEqualTo(linearRampBuffer.length); 56 audit.define('test', function(task, should) {
57 let sampleFrameLength = sampleRate * lengthInSeconds;
39 58
40 // Check that the rendered result exactly matches the buffer used to control 59 // Create offline audio context.
41 // gain. This is because we're changing the gain of a signal having constant 60 context = new OfflineAudioContext(1, sampleFrameLength, sampleRate);
42 // value 1.
43 let success = true;
44 for (let i = 0; i < n; ++i) {
45 if (renderedData[i] != expectedData[i]) {
46 success = false;
47 break;
48 }
49 }
50 61
51 should( 62 // Create buffer used by the source which will have its gain controlled.
52 success, 63 constantOneBuffer = createConstantBuffer(context, sampleFrameLength, 1);
53 'Rendered signal exactly matches the audio-rate gain changing signal')
54 .beTrue();
55 }
56 64
57 audit.define('test', function(task, should) { 65 // Create buffer used to control gain.
58 let sampleFrameLength = sampleRate * lengthInSeconds; 66 linearRampBuffer = createLinearRampBuffer(context, sampleFrameLength);
59 67
60 // Create offline audio context. 68 // Create the two sources.
61 context = new OfflineAudioContext(1, sampleFrameLength, sampleRate);
62 69
63 // Create buffer used by the source which will have its gain controlled. 70 let constantSource = context.createBufferSource();
64 constantOneBuffer = createConstantBuffer(context, sampleFrameLength, 1); 71 constantSource.buffer = constantOneBuffer;
65 72
66 // Create buffer used to control gain. 73 let gainChangingSource = context.createBufferSource();
67 linearRampBuffer = createLinearRampBuffer(context, sampleFrameLength); 74 gainChangingSource.buffer = linearRampBuffer;
68 75
69 // Create the two sources. 76 // Create a gain node controlling the gain of constantSource and make
77 // the connections.
78 let gainNode = context.createGain();
70 79
71 let constantSource = context.createBufferSource(); 80 // Intrinsic baseline gain of zero.
72 constantSource.buffer = constantOneBuffer; 81 gainNode.gain.value = 0;
73 82
74 let gainChangingSource = context.createBufferSource(); 83 constantSource.connect(gainNode);
75 gainChangingSource.buffer = linearRampBuffer; 84 gainNode.connect(context.destination);
76 85
77 // Create a gain node controlling the gain of constantSource and make the 86 // Connect an audio-rate signal to control the .gain AudioParam.
78 // connections. 87 // This is the heart of what is being tested.
79 let gainNode = context.createGain(); 88 gainChangingSource.connect(gainNode.gain);
80 89
81 // Intrinsic baseline gain of zero. 90 // Start both sources at time 0.
82 gainNode.gain.value = 0; 91 constantSource.start(0);
92 gainChangingSource.start(0);
83 93
84 constantSource.connect(gainNode); 94 context.startRendering().then(buffer => {
85 gainNode.connect(context.destination); 95 checkResult(buffer, should);
96 task.done();
97 });
98 });
86 99
87 // Connect an audio-rate signal to control the .gain AudioParam. 100 audit.run();
88 // This is the heart of what is being tested. 101 </script>
89 gainChangingSource.connect(gainNode.gain); 102 </body>
90
91 // Start both sources at time 0.
92 constantSource.start(0);
93 gainChangingSource.start(0);
94
95 context.startRendering().then(buffer => {
96 checkResult(buffer, should);
97 task.done();
98 });
99 });
100
101 audit.run();
102
103 </script>
104
105 </body>
106 </html> 103 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698