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

Unified Diff: LayoutTests/webaudio/panner-loop.html

Issue 130003002: Handle loops in audio graph better for PannerNodes (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | LayoutTests/webaudio/panner-loop-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/webaudio/panner-loop.html
diff --git a/LayoutTests/webaudio/panner-loop.html b/LayoutTests/webaudio/panner-loop.html
new file mode 100644
index 0000000000000000000000000000000000000000..d4e0f63500f21d22d82e4d432d82a881a47dc7bd
--- /dev/null
+++ b/LayoutTests/webaudio/panner-loop.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <script src="resources/audio-testing.js"></script>
+ <script src="../resources/js-test.js"></script>
+ <script src="resources/panner-model-testing.js"></script>
+ </head>
+
+ <body>
+ <div id="description"></div>
+ <div id="console"></div>
+ <script>
+ description("Test PannerNode handling of feedback loops");
+
+ // See crbug.com/331446.
+
+ // Create a simple feedback loop and make sure the panner node processes it correctly.
+
+ function runTest() {
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ }
+
+ window.jsTestIsAsync = true;
+
+ var sampleRate = 44100;
+ var renderLengthSeconds = 1;
+
+ // Create offline audio context.
+ var context = new webkitOfflineAudioContext(2, sampleRate * renderLengthSeconds, sampleRate);
+
+ // Create nodes in graph. This is based on the test given in crbug.com/331446.
+ var source = context.createBufferSource();
+ source.buffer = createImpulseBuffer(context, sampleRate * renderLengthSeconds);
+ var activateNode = context.createGainNode();
+ var dry = context.createGainNode();
+ var wet = context.createGainNode();
+ var filter = context.createBiquadFilter();
+ var delay = context.createDelayNode();
+ var feedbackNode = context.createGainNode();
+ var output = context.createGainNode();
+
+ delay.delayTime.value = 0.1;
+ wet.gain.value = 0.5;
+ dry.gain.value = 1;
+ feedbackNode.gain.value = 0.45;
+ filter.frequency.value = 20000;
+
+ source.connect(activateNode);
+ activateNode.connect(delay);
+ activateNode.connect(dry);
+ delay.connect(filter);
+ filter.connect(feedbackNode);
+ feedbackNode.connect(delay);
+ feedbackNode.connect(wet);
+ wet.connect(output);
+ dry.connect(output);
+
+ var panner = context.createPanner();
+ panner.coneOuterGain = 0.1;
+ panner.coneOuterAngle = 180;
+ panner.coneInnerAngle = 0;
+
+ panner.connect(context.destination);
+
+ output.connect(panner);
+
+ // Render. We don't care what the output is, though.
+
+ context.oncomplete = function (event) {
+ testPassed("Rendering successfully completed.");
+ finishJSTest();
+ };
+ context.startRendering();
+ }
+
+ runTest();
+ successfullyParsed = true;
+ </script>
+
+ </body>
+</html>
« no previous file with comments | « no previous file | LayoutTests/webaudio/panner-loop-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698