Title: [265683] trunk
Revision
265683
Author
[email protected]
Date
2020-08-14 11:27:10 -0700 (Fri, 14 Aug 2020)

Log Message

Fix bad check in AudioBufferSourceNode::renderFromBuffer()
https://bugs.webkit.org/show_bug.cgi?id=215513

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

* web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:

Source/WebCore:

Fix bad check in AudioBufferSourceNode::renderFromBuffer() that is causing us to incorrectly output silence
and failing many WPT tests.

No new tests, rebaselined existing tests.

* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::renderFromBuffer):

Modified Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2020-08-14 18:27:10 UTC (rev 265683)
@@ -1,5 +1,27 @@
 2020-08-14  Chris Dumez  <[email protected]>
 
+        Fix bad check in AudioBufferSourceNode::renderFromBuffer()
+        https://bugs.webkit.org/show_bug.cgi?id=215513
+
+        Reviewed by Darin Adler.
+
+        Rebaseline WPT tests now that more checks are passing.
+
+        * web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:
+
+2020-08-14  Chris Dumez  <[email protected]>
+
         AudioBufferSourceNode.buffer setter should throw when the buffer was already set
         https://bugs.webkit.org/show_bug.cgi?id=215510
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -1,3 +1,3 @@
 
-FAIL Test effect of AnalyserNode on GainNode output assert_equals: analyser1 output expected 1 but got 0
+PASS Test effect of AnalyserNode on GainNode output 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -3,13 +3,7 @@
 PASS Executing "one-sample-loop" 
 PASS Audit report 
 PASS > [one-sample-loop]  
-FAIL X Rendered data: Expected 1 for all values but found 1000 unexpected values: 
-	Index	Actual
-	[0]	0
-	[1]	0
-	[2]	0
-	[3]	0
-	...and 996 more errors. assert_true: expected true got false
-FAIL < [one-sample-loop] 1 out of 1 assertions were failed. assert_true: expected true got false
-FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
+PASS   Rendered data contains only the constant 1. 
+PASS < [one-sample-loop] All assertions passed. (total 1 assertions) 
+PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -55,13 +55,7 @@
 PASS   Connecting to a node from the different context threw SyntaxError: "The string did not match the expected pattern.". 
 PASS < [invalid-operation] All assertions passed. (total 2 assertions) 
 PASS > [verification]  
-FAIL X The output of chained connection of gain nodes: Expected 0.125 for all values but found 128 unexpected values: 
-	Index	Actual
-	[0]	0
-	[1]	0
-	[2]	0
-	[3]	0
-	...and 124 more errors. assert_true: expected true got false
-FAIL < [verification] 1 out of 1 assertions were failed. assert_true: expected true got false
-FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 4 tasks were failed. assert_true: expected true got false
+PASS   The output of chained connection of gain nodes contains only the constant 0.125. 
+PASS < [verification] All assertions passed. (total 1 assertions) 
+PASS # AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully. 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -7,13 +7,13 @@
 PASS Executing "exceptions" 
 PASS Audit report 
 PASS > [disconnect(AudioParam)]  
-FAIL X Channel #0 expected to have the value sequence of [2.25,1.5] but got 1 values, [0], instead of 2. assert_true: expected true got false
+FAIL X Channel #0 expected to have the value sequence of [2.25,1.5] but got 1 values, [2.25], instead of 2. assert_true: expected true got false
 FAIL X The index of value change is not equal to 11136. Got -1. assert_true: expected true got false
 FAIL < [disconnect(AudioParam)] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [disconnect(AudioParam, output)]  
-FAIL X Channel #0 expected to have the value sequence of [3,1.5] but got 1 values, [0], instead of 2. assert_true: expected true got false
+FAIL X Channel #0 expected to have the value sequence of [3,1.5] but got 1 values, [3], instead of 2. assert_true: expected true got false
 FAIL X The index of value change in channel #0 is not equal to 11136. Got -1. assert_true: expected true got false
-FAIL X Channel #1 expected to have the value sequence of [6,3] but got 1 values, [0], instead of 2. assert_true: expected true got false
+FAIL X Channel #1 expected to have the value sequence of [6,3] but got 1 values, [6], instead of 2. assert_true: expected true got false
 FAIL X The index of value change in channel #1 is not equal to 11136. Got -1. assert_true: expected true got false
 FAIL < [disconnect(AudioParam, output)] 4 out of 4 assertions were failed. assert_true: expected true got false
 PASS > [exceptions]  

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -19,18 +19,7 @@
 PASS   The gain value of the second gain node is equal to 0.5. 
 PASS < [invalid-operation] All assertions passed. (total 4 assertions) 
 PASS > [verification]  
-FAIL X The rendered envelope does not equal [0,0.000125,0.00025,0.000375,0.0005,0.000625,0.00075,0.000875,0.001,0.001125,0.00125,0.001375,0.0015,0.001625,0.00175,0.001875...] with an element-wise tolerance of {"absoluteThreshold":0.0000040532,"relativeThreshold":0}.
-	Index	Actual			Expected		AbsError		RelError		Test threshold
-	[1]	0.0000000000000000e+0	1.2500000000000000e-4	1.2500000000000000e-4	1.0000000000000000e+0	4.0531999999999996e-6
-	[2]	0.0000000000000000e+0	2.5000000000000001e-4	2.5000000000000001e-4	1.0000000000000000e+0	4.0531999999999996e-6
-	[3]	0.0000000000000000e+0	3.7500000000000001e-4	3.7500000000000001e-4	1.0000000000000000e+0	4.0531999999999996e-6
-	[4]	0.0000000000000000e+0	5.0000000000000001e-4	5.0000000000000001e-4	1.0000000000000000e+0	4.0531999999999996e-6
-	[5]	0.0000000000000000e+0	6.2500000000000001e-4	6.2500000000000001e-4	1.0000000000000000e+0	4.0531999999999996e-6
-	...and 31994 more errors.
-	Max AbsError of 1.0000000000000000e+0 at index of 8000.
-	[8000]	0.0000000000000000e+0	1.0000000000000000e+0	1.0000000000000000e+0	1.0000000000000000e+0	4.0531999999999996e-6
-	Max RelError of 1.0000000000000000e+0 at index of 1.
- assert_true: expected true got false
-FAIL < [verification] 1 out of 1 assertions were failed. assert_true: expected true got false
-FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 3 tasks were failed. assert_true: expected true got false
+PASS   The rendered envelope equals [0,0.000125,0.00025,0.000375,0.0005,0.000625,0.00075,0.000875,0.001,0.001125,0.00125,0.001375,0.0015,0.001625,0.00175,0.001875...] with an element-wise tolerance of {"absoluteThreshold":0.0000040532,"relativeThreshold":0}. 
+PASS < [verification] All assertions passed. (total 1 assertions) 
+PASS # AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully. 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -31,14 +31,8 @@
 PASS   setValueCurveAtTime(curve, 0.031415926535897934, 0.01) threw NotSupportedError: "Events are overlapping". 
 PASS < [automations] All assertions passed. (total 13 assertions) 
 PASS > [catch-exception]  
-FAIL X Handled setValueCurve exception so output: Expected 1 for all values but found 6000 unexpected values: 
-	Index	Actual
-	[0]	0
-	[1]	0
-	[2]	0
-	[3]	0
-	...and 5996 more errors. assert_true: expected true got false
-FAIL < [catch-exception] 1 out of 1 assertions were failed. assert_true: expected true got false
+PASS   Handled setValueCurve exception so output contains only the constant 1. 
+PASS < [catch-exception] All assertions passed. (total 1 assertions) 
 PASS > [start-end]  
 PASS   setValueAtTime(1, 0) did not throw an exception. 
 PASS   linearRampToValueAtTime(0, 0.0025) did not throw an exception. 
@@ -65,5 +59,5 @@
 PASS   setValueCurveAtTime([1], 0, 0.01) threw InvalidStateError: "Array must have a length of at least 2". 
 PASS   setValueCurveAtTime([1,2], 0, 0.01) did not throw an exception. 
 PASS < [curve lengths] All assertions passed. (total 3 assertions) 
-FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 6 tasks were failed. assert_true: expected true got false
+PASS # AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully. 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -1,3 +1,3 @@
 
-FAIL Test setTargetAtTime after an event in the same processing block assert_equals: default gain at sample 0 expected 1 but got 0
+PASS Test setTargetAtTime after an event in the same processing block 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -1,3 +1,3 @@
 
-FAIL Test setValueAtTime with start time not on a block boundary assert_equals: default gain at sample 0 expected 1 but got 0
+PASS Test setValueAtTime with start time not on a block boundary 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -3,7 +3,7 @@
 PASS Executing "test" 
 PASS Audit report 
 PASS > [test] Biquad Tail Output 
-PASS   Biquad output has no glitch above the threshold of 0.012968. 
-PASS < [test] All assertions passed. (total 1 assertions) 
-PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. 
+FAIL X Biquad output has a glitch at index 128 of size 0.6451207995414734. assert_true: expected true got false
+FAIL < [test] 1 out of 1 assertions were failed. assert_true: expected true got false
+FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -5,15 +5,9 @@
 PASS Executing "silent-disconnect" 
 PASS Audit report 
 PASS > [silent-disconnect]  
-FAIL X Channel #0: Expected 1 for all values but found 22050 unexpected values: 
-	Index	Actual
-	[0]	0
-	[1]	0
-	[2]	0
-	[3]	0
-	...and 22046 more errors. assert_true: expected true got false
-FAIL X Channel #1 expected to have the value sequence of [1,0] but got 1 values, [0], instead of 2. assert_true: expected true got false
-FAIL X The index of first zero in the channel #1 is not equal to 11136. Got 1. assert_true: expected true got false
-FAIL < [silent-disconnect] 3 out of 3 assertions were failed. assert_true: expected true got false
+PASS   Channel #0 contains only the constant 1. 
+FAIL X Channel #1 expected to have the value sequence of [1,0] but got 1 values, [1], instead of 2. assert_true: expected true got false
+FAIL X The index of first zero in the channel #1 is not equal to 11136. Got -1. assert_true: expected true got false
+FAIL < [silent-disconnect] 2 out of 3 assertions were failed. assert_true: expected true got false
 FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -20,132 +20,132 @@
 PASS Executing "up setter" 
 PASS Audit report 
 PASS > [Stereo panner.positionX]  
-PASS   Stereo panner.positionX.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Stereo panner.positionX.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Stereo panner.positionX.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Stereo panner.positionX.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Stereo panner.positionX: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Stereo panner.positionX: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Stereo panner.positionX.value frame [0, 128) channel 0 contains only the constant 6.123234262925839e-17. 
+PASS   Stereo panner.positionX.value frame [0, 128) channel 1 contains only the constant 3. 
+PASS   Stereo panner.positionX.value frame [128, 256) channel 0 contains only the constant 6.123234262925839e-17. 
+PASS   Stereo panner.positionX.value frame [128, 256) channel 1 contains only the constant 3. 
+FAIL X Stereo panner.positionX: Output at frame 128 channel 0 should not be equal to 6.123234262925839e-17. Got 6.123234262925839e-17. assert_true: expected true got false
+FAIL X Stereo panner.positionX: Output at frame 128 channel 1 should not be equal to 3. Got 3. assert_true: expected true got false
 FAIL < [Stereo panner.positionX] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Mono panner.positionX]  
-PASS   Mono panner.positionX.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Mono panner.positionX.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Mono panner.positionX.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Mono panner.positionX.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Mono panner.positionX: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Mono panner.positionX: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Mono panner.positionX.value frame [0, 128) channel 0 contains only the constant 6.123234262925839e-17. 
+PASS   Mono panner.positionX.value frame [0, 128) channel 1 contains only the constant 1. 
+PASS   Mono panner.positionX.value frame [128, 256) channel 0 contains only the constant 6.123234262925839e-17. 
+PASS   Mono panner.positionX.value frame [128, 256) channel 1 contains only the constant 1. 
+FAIL X Mono panner.positionX: Output at frame 128 channel 0 should not be equal to 6.123234262925839e-17. Got 6.123234262925839e-17. assert_true: expected true got false
+FAIL X Mono panner.positionX: Output at frame 128 channel 1 should not be equal to 1. Got 1. assert_true: expected true got false
 FAIL < [Mono panner.positionX] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Stereo panner.positionY]  
-PASS   Stereo panner.positionY.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Stereo panner.positionY.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Stereo panner.positionY.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Stereo panner.positionY.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Stereo panner.positionY: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Stereo panner.positionY: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Stereo panner.positionY.value frame [0, 128) channel 0 contains only the constant 1.0000001192092896. 
+PASS   Stereo panner.positionY.value frame [0, 128) channel 1 contains only the constant 2. 
+PASS   Stereo panner.positionY.value frame [128, 256) channel 0 contains only the constant 1.0000001192092896. 
+PASS   Stereo panner.positionY.value frame [128, 256) channel 1 contains only the constant 2. 
+FAIL X Stereo panner.positionY: Output at frame 128 channel 0 should not be equal to 1.0000001192092896. Got 1.0000001192092896. assert_true: expected true got false
+FAIL X Stereo panner.positionY: Output at frame 128 channel 1 should not be equal to 2. Got 2. assert_true: expected true got false
 FAIL < [Stereo panner.positionY] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Mono panner.positionY]  
-PASS   Mono panner.positionY.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Mono panner.positionY.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Mono panner.positionY.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Mono panner.positionY.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Mono panner.positionY: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Mono panner.positionY: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Mono panner.positionY.value frame [0, 128) channel 0 contains only the constant 0.7071067690849304. 
+PASS   Mono panner.positionY.value frame [0, 128) channel 1 contains only the constant 0.7071067690849304. 
+PASS   Mono panner.positionY.value frame [128, 256) channel 0 contains only the constant 0.7071067690849304. 
+PASS   Mono panner.positionY.value frame [128, 256) channel 1 contains only the constant 0.7071067690849304. 
+FAIL X Mono panner.positionY: Output at frame 128 channel 0 should not be equal to 0.7071067690849304. Got 0.7071067690849304. assert_true: expected true got false
+FAIL X Mono panner.positionY: Output at frame 128 channel 1 should not be equal to 0.7071067690849304. Got 0.7071067690849304. assert_true: expected true got false
 FAIL < [Mono panner.positionY] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Stereo panner.positionZ]  
-PASS   Stereo panner.positionZ.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Stereo panner.positionZ.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Stereo panner.positionZ.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Stereo panner.positionZ.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Stereo panner.positionZ: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Stereo panner.positionZ: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Stereo panner.positionZ.value frame [0, 128) channel 0 contains only the constant 1.0000001192092896. 
+PASS   Stereo panner.positionZ.value frame [0, 128) channel 1 contains only the constant 2. 
+PASS   Stereo panner.positionZ.value frame [128, 256) channel 0 contains only the constant 1.0000001192092896. 
+PASS   Stereo panner.positionZ.value frame [128, 256) channel 1 contains only the constant 2. 
+FAIL X Stereo panner.positionZ: Output at frame 128 channel 0 should not be equal to 1.0000001192092896. Got 1.0000001192092896. assert_true: expected true got false
+FAIL X Stereo panner.positionZ: Output at frame 128 channel 1 should not be equal to 2. Got 2. assert_true: expected true got false
 FAIL < [Stereo panner.positionZ] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Mono panner.positionZ]  
-PASS   Mono panner.positionZ.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Mono panner.positionZ.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Mono panner.positionZ.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Mono panner.positionZ.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Mono panner.positionZ: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Mono panner.positionZ: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Mono panner.positionZ.value frame [0, 128) channel 0 contains only the constant 0.7071067690849304. 
+PASS   Mono panner.positionZ.value frame [0, 128) channel 1 contains only the constant 0.7071067690849304. 
+PASS   Mono panner.positionZ.value frame [128, 256) channel 0 contains only the constant 0.7071067690849304. 
+PASS   Mono panner.positionZ.value frame [128, 256) channel 1 contains only the constant 0.7071067690849304. 
+FAIL X Mono panner.positionZ: Output at frame 128 channel 0 should not be equal to 0.7071067690849304. Got 0.7071067690849304. assert_true: expected true got false
+FAIL X Mono panner.positionZ: Output at frame 128 channel 1 should not be equal to 0.7071067690849304. Got 0.7071067690849304. assert_true: expected true got false
 FAIL < [Mono panner.positionZ] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Stereo listener.positionX]  
-PASS   Stereo listener.positionX.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Stereo listener.positionX.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Stereo listener.positionX.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Stereo listener.positionX.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Stereo listener.positionX: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Stereo listener.positionX: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Stereo listener.positionX.value frame [0, 128) channel 0 contains only the constant 1.0000001192092896. 
+PASS   Stereo listener.positionX.value frame [0, 128) channel 1 contains only the constant 2. 
+PASS   Stereo listener.positionX.value frame [128, 256) channel 0 contains only the constant 1.0000001192092896. 
+PASS   Stereo listener.positionX.value frame [128, 256) channel 1 contains only the constant 2. 
+FAIL X Stereo listener.positionX: Output at frame 128 channel 0 should not be equal to 1.0000001192092896. Got 1.0000001192092896. assert_true: expected true got false
+FAIL X Stereo listener.positionX: Output at frame 128 channel 1 should not be equal to 2. Got 2. assert_true: expected true got false
 FAIL < [Stereo listener.positionX] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Mono listener.positionX]  
-PASS   Mono listener.positionX.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Mono listener.positionX.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Mono listener.positionX.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Mono listener.positionX.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Mono listener.positionX: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Mono listener.positionX: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Mono listener.positionX.value frame [0, 128) channel 0 contains only the constant 0.7071067690849304. 
+PASS   Mono listener.positionX.value frame [0, 128) channel 1 contains only the constant 0.7071067690849304. 
+PASS   Mono listener.positionX.value frame [128, 256) channel 0 contains only the constant 0.7071067690849304. 
+PASS   Mono listener.positionX.value frame [128, 256) channel 1 contains only the constant 0.7071067690849304. 
+FAIL X Mono listener.positionX: Output at frame 128 channel 0 should not be equal to 0.7071067690849304. Got 0.7071067690849304. assert_true: expected true got false
+FAIL X Mono listener.positionX: Output at frame 128 channel 1 should not be equal to 0.7071067690849304. Got 0.7071067690849304. assert_true: expected true got false
 FAIL < [Mono listener.positionX] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Stereo listener.positionY]  
-PASS   Stereo listener.positionY.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Stereo listener.positionY.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Stereo listener.positionY.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Stereo listener.positionY.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Stereo listener.positionY: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Stereo listener.positionY: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Stereo listener.positionY.value frame [0, 128) channel 0 contains only the constant 0.40824827551841736. 
+PASS   Stereo listener.positionY.value frame [0, 128) channel 1 contains only the constant 1.5629488229751587. 
+PASS   Stereo listener.positionY.value frame [128, 256) channel 0 contains only the constant 0.40824827551841736. 
+PASS   Stereo listener.positionY.value frame [128, 256) channel 1 contains only the constant 1.5629488229751587. 
+FAIL X Stereo listener.positionY: Output at frame 128 channel 0 should not be equal to 0.40824827551841736. Got 0.40824827551841736. assert_true: expected true got false
+FAIL X Stereo listener.positionY: Output at frame 128 channel 1 should not be equal to 1.5629488229751587. Got 1.5629488229751587. assert_true: expected true got false
 FAIL < [Stereo listener.positionY] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Mono listener.positionY]  
-PASS   Mono listener.positionY.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Mono listener.positionY.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Mono listener.positionY.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Mono listener.positionY.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Mono listener.positionY: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Mono listener.positionY: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Mono listener.positionY.value frame [0, 128) channel 0 contains only the constant 0.2209423929452896. 
+PASS   Mono listener.positionY.value frame [0, 128) channel 1 contains only the constant 0.5334020853042603. 
+PASS   Mono listener.positionY.value frame [128, 256) channel 0 contains only the constant 0.2209423929452896. 
+PASS   Mono listener.positionY.value frame [128, 256) channel 1 contains only the constant 0.5334020853042603. 
+FAIL X Mono listener.positionY: Output at frame 128 channel 0 should not be equal to 0.2209423929452896. Got 0.2209423929452896. assert_true: expected true got false
+FAIL X Mono listener.positionY: Output at frame 128 channel 1 should not be equal to 0.5334020853042603. Got 0.5334020853042603. assert_true: expected true got false
 FAIL < [Mono listener.positionY] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Stereo listener.positionZ]  
-PASS   Stereo listener.positionZ.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Stereo listener.positionZ.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Stereo listener.positionZ.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Stereo listener.positionZ.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Stereo listener.positionZ: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Stereo listener.positionZ: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Stereo listener.positionZ.value frame [0, 128) channel 0 contains only the constant 6.123234262925839e-17. 
+PASS   Stereo listener.positionZ.value frame [0, 128) channel 1 contains only the constant 3. 
+PASS   Stereo listener.positionZ.value frame [128, 256) channel 0 contains only the constant 6.123234262925839e-17. 
+PASS   Stereo listener.positionZ.value frame [128, 256) channel 1 contains only the constant 3. 
+FAIL X Stereo listener.positionZ: Output at frame 128 channel 0 should not be equal to 6.123234262925839e-17. Got 6.123234262925839e-17. assert_true: expected true got false
+FAIL X Stereo listener.positionZ: Output at frame 128 channel 1 should not be equal to 3. Got 3. assert_true: expected true got false
 FAIL < [Stereo listener.positionZ] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [Mono listener.positionZ]  
-PASS   Mono listener.positionZ.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   Mono listener.positionZ.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   Mono listener.positionZ.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   Mono listener.positionZ.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X Mono listener.positionZ: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X Mono listener.positionZ: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   Mono listener.positionZ.value frame [0, 128) channel 0 contains only the constant 6.123234262925839e-17. 
+PASS   Mono listener.positionZ.value frame [0, 128) channel 1 contains only the constant 1. 
+PASS   Mono listener.positionZ.value frame [128, 256) channel 0 contains only the constant 6.123234262925839e-17. 
+PASS   Mono listener.positionZ.value frame [128, 256) channel 1 contains only the constant 1. 
+FAIL X Mono listener.positionZ: Output at frame 128 channel 0 should not be equal to 6.123234262925839e-17. Got 6.123234262925839e-17. assert_true: expected true got false
+FAIL X Mono listener.positionZ: Output at frame 128 channel 1 should not be equal to 1. Got 1. assert_true: expected true got false
 FAIL < [Mono listener.positionZ] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [setPosition]  
-PASS   setPosition.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   setPosition.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   setPosition.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   setPosition.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X setPosition: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X setPosition: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   setPosition.value frame [0, 128) channel 0 contains only the constant 0.40824827551841736. 
+PASS   setPosition.value frame [0, 128) channel 1 contains only the constant 1.5629488229751587. 
+PASS   setPosition.value frame [128, 256) channel 0 contains only the constant 0.40824827551841736. 
+PASS   setPosition.value frame [128, 256) channel 1 contains only the constant 1.5629488229751587. 
+FAIL X setPosition: Output at frame 128 channel 0 should not be equal to 0.40824827551841736. Got 0.40824827551841736. assert_true: expected true got false
+FAIL X setPosition: Output at frame 128 channel 1 should not be equal to 1.5629488229751587. Got 1.5629488229751587. assert_true: expected true got false
 FAIL < [setPosition] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [orientation setter]  
-PASS   panner.orientation{XYZ}.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   panner.orientation{XYZ}.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   panner.orientation{XYZ}.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   panner.orientation{XYZ}.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X panner.orientation{XYZ}: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X panner.orientation{XYZ}: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   panner.orientation{XYZ}.value frame [0, 128) channel 0 contains only the constant 0.5005000829696655. 
+PASS   panner.orientation{XYZ}.value frame [0, 128) channel 1 contains only the constant 1.0010000467300415. 
+PASS   panner.orientation{XYZ}.value frame [128, 256) channel 0 contains only the constant 0.5005000829696655. 
+PASS   panner.orientation{XYZ}.value frame [128, 256) channel 1 contains only the constant 1.0010000467300415. 
+FAIL X panner.orientation{XYZ}: Output at frame 128 channel 0 should not be equal to 0.5005000829696655. Got 0.5005000829696655. assert_true: expected true got false
+FAIL X panner.orientation{XYZ}: Output at frame 128 channel 1 should not be equal to 1.0010000467300415. Got 1.0010000467300415. assert_true: expected true got false
 FAIL < [orientation setter] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [forward setter]  
-PASS   listener.forward{XYZ}.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   listener.forward{XYZ}.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   listener.forward{XYZ}.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   listener.forward{XYZ}.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X listener.forward{XYZ}: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X listener.forward{XYZ}: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   listener.forward{XYZ}.value frame [0, 128) channel 0 contains only the constant 0.5005000829696655. 
+PASS   listener.forward{XYZ}.value frame [0, 128) channel 1 contains only the constant 1.0010000467300415. 
+PASS   listener.forward{XYZ}.value frame [128, 256) channel 0 contains only the constant 0.5005000829696655. 
+PASS   listener.forward{XYZ}.value frame [128, 256) channel 1 contains only the constant 1.0010000467300415. 
+FAIL X listener.forward{XYZ}: Output at frame 128 channel 0 should not be equal to 0.5005000829696655. Got 0.5005000829696655. assert_true: expected true got false
+FAIL X listener.forward{XYZ}: Output at frame 128 channel 1 should not be equal to 1.0010000467300415. Got 1.0010000467300415. assert_true: expected true got false
 FAIL < [forward setter] 2 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [up setter]  
-PASS   listener.up{XYZ}.value frame [0, 128) channel 0 contains only the constant 0. 
-PASS   listener.up{XYZ}.value frame [0, 128) channel 1 contains only the constant 0. 
-PASS   listener.up{XYZ}.value frame [128, 256) channel 0 contains only the constant 0. 
-PASS   listener.up{XYZ}.value frame [128, 256) channel 1 contains only the constant 0. 
-FAIL X listener.up{XYZ}: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
-FAIL X listener.up{XYZ}: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   listener.up{XYZ}.value frame [0, 128) channel 0 contains only the constant 0.12537500262260437. 
+PASS   listener.up{XYZ}.value frame [0, 128) channel 1 contains only the constant 0.47998911142349243. 
+PASS   listener.up{XYZ}.value frame [128, 256) channel 0 contains only the constant 0.12537500262260437. 
+PASS   listener.up{XYZ}.value frame [128, 256) channel 1 contains only the constant 0.47998911142349243. 
+FAIL X listener.up{XYZ}: Output at frame 128 channel 0 should not be equal to 0.12537500262260437. Got 0.12537500262260437. assert_true: expected true got false
+FAIL X listener.up{XYZ}: Output at frame 128 channel 1 should not be equal to 0.47998911142349243. Got 0.47998911142349243. assert_true: expected true got false
 FAIL < [up setter] 2 out of 6 assertions were failed. assert_true: expected true got false
 FAIL # AUDIT TASK RUNNER FINISHED: 16 out of 16 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt (265682 => 265683)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt	2020-08-14 18:27:10 UTC (rev 265683)
@@ -10,76 +10,84 @@
 PASS Executing "3: 2-channel linear rolloff: 1" 
 PASS Audit report 
 PASS > [0: 1-channel inverse rolloff: 1]  
-FAIL X 1-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, left channel does not equal [-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+FAIL X 1-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, left channel does not equal [0.7071067690849304,0.013321998529136181,0.006724343169480562,0.004497151356190443,0.0033782345708459616,0.002705172635614872,0.0022557489573955536,0.0019343807362020016,0.001693161902949214,0.0015054333489388227,0.0013551785377785563,0.0012321951799094677,0.0011296762386336923,0.0010429061949253082,0.0009685151162557304,0.0009040298755280674...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
 	Index	Actual			Expected		AbsError		RelError		Test threshold
-	[0]	7.0710676908493042e-1	-7.0710676908493042e-1	1.4142135381698608e+0	2.0000000000000000e+0	0.0000000000000000e+0
-	[1]	7.0710676908493042e-1	-7.0710676908493042e-1	1.4142135381698608e+0	2.0000000000000000e+0	0.0000000000000000e+0
-	[2]	7.0710676908493042e-1	-7.0710676908493042e-1	1.4142135381698608e+0	2.0000000000000000e+0	0.0000000000000000e+0
-	[3]	7.0710676908493042e-1	-7.0710676908493042e-1	1.4142135381698608e+0	2.0000000000000000e+0	0.0000000000000000e+0
-	[4]	7.0710676908493042e-1	-7.0710676908493042e-1	1.4142135381698608e+0	2.0000000000000000e+0	0.0000000000000000e+0
-	...and 251 more errors.
-	Max AbsError of 1.4142135381698608e+0 at index of 0.
-	Max RelError of 2.0000000000000000e+0 at index of 0.
+	[1]	7.0710676908493042e-1	1.3321998529136181e-2	6.9378477055579424e-1	5.2078129947127408e+1	0.0000000000000000e+0
+	[2]	7.0710676908493042e-1	6.7243431694805622e-3	7.0038242591544986e-1	1.0415625857618932e+2	0.0000000000000000e+0
+	[3]	7.0710676908493042e-1	4.4971513561904430e-3	7.0260961772873998e-1	1.5623437195672324e+2	0.0000000000000000e+0
+	[4]	7.0710676908493042e-1	3.3782345708459616e-3	7.0372853451408446e-1	2.0831251346109460e+2	0.0000000000000000e+0
+	[5]	7.0710676908493042e-1	2.7051726356148720e-3	7.0440159644931555e-1	2.6039062615654791e+2	0.0000000000000000e+0
+	...and 249 more errors.
+	Max AbsError of 7.0699987337138737e-1 at index of 127.
+	[127]	7.0710676908493042e-1	1.0689571354305372e-4	7.0699987337138737e-1	6.6139216432343983e+3	0.0000000000000000e+0
+	Max RelError of 6.6139216432343983e+3 at index of 127.
+	[127]	7.0710676908493042e-1	1.0689571354305372e-4	7.0699987337138737e-1	6.6139216432343983e+3	0.0000000000000000e+0
  assert_true: expected true got false
-FAIL X 1-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, right channel does not equal [0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+FAIL X 1-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, right channel does not equal [0.7071067690849304,0.013321998529136181,0.006724343169480562,0.004497151356190443,0.0033782345708459616,0.002705172635614872,0.0022557489573955536,0.0019343807362020016,0.001693161902949214,0.0015054333489388227,0.0013551785377785563,0.0012321951799094677,0.0011296762386336923,0.0010429061949253082,0.0009685151162557304,0.0009040298755280674...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
 	Index	Actual			Expected		AbsError		RelError		Test threshold
-	[128]	1.0606070281937718e-4	7.0710676908493042e-1	7.0700070838211104e-1	9.9985000751307096e-1	0.0000000000000000e+0
-	[129]	1.0606070281937718e-4	7.0710676908493042e-1	7.0700070838211104e-1	9.9985000751307096e-1	0.0000000000000000e+0
-	[130]	1.0606070281937718e-4	7.0710676908493042e-1	7.0700070838211104e-1	9.9985000751307096e-1	0.0000000000000000e+0
-	[131]	1.0606070281937718e-4	7.0710676908493042e-1	7.0700070838211104e-1	9.9985000751307096e-1	0.0000000000000000e+0
-	[132]	1.0606070281937718e-4	7.0710676908493042e-1	7.0700070838211104e-1	9.9985000751307096e-1	0.0000000000000000e+0
-	...and 123 more errors.
-	Max AbsError of 7.0700070838211104e-1 at index of 128.
-	Max RelError of 9.9985000751307096e-1 at index of 128.
+	[1]	7.0710676908493042e-1	1.3321998529136181e-2	6.9378477055579424e-1	5.2078129947127408e+1	0.0000000000000000e+0
+	[2]	7.0710676908493042e-1	6.7243431694805622e-3	7.0038242591544986e-1	1.0415625857618932e+2	0.0000000000000000e+0
+	[3]	7.0710676908493042e-1	4.4971513561904430e-3	7.0260961772873998e-1	1.5623437195672324e+2	0.0000000000000000e+0
+	[4]	7.0710676908493042e-1	3.3782345708459616e-3	7.0372853451408446e-1	2.0831251346109460e+2	0.0000000000000000e+0
+	[5]	7.0710676908493042e-1	2.7051726356148720e-3	7.0440159644931555e-1	2.6039062615654791e+2	0.0000000000000000e+0
+	...and 249 more errors.
+	Max AbsError of 7.0699987337138737e-1 at index of 127.
+	[127]	7.0710676908493042e-1	1.0689571354305372e-4	7.0699987337138737e-1	6.6139216432343983e+3	0.0000000000000000e+0
+	Max RelError of 6.6139216432343983e+3 at index of 127.
+	[127]	7.0710676908493042e-1	1.0689571354305372e-4	7.0699987337138737e-1	6.6139216432343983e+3	0.0000000000000000e+0
  assert_true: expected true got false
 FAIL < [0: 1-channel inverse rolloff: 1] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [0: 2-channel inverse rolloff: 1]  
-FAIL X 2-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, left channel does not equal [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+FAIL X 2-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, left channel does not equal [1,0.01884015090763569,0.009509657509624958,0.006359932478517294,0.0047775451093912125,0.003825691994279623,0.003190110670402646,0.002735627582296729,0.002394492505118251,0.0021290043368935585,0.0019165119156241417,0.0017425871919840574,0.0015976035501807928,0.0014748921385034919,0.0013696872629225254,0.001278491341508925...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
 	Index	Actual			Expected		AbsError		RelError		Test threshold
-	[0]	1.0000001192092896e+0	-1.0000000000000000e+0	2.0000001192092896e+0	2.0000001192092896e+0	0.0000000000000000e+0
-	[1]	1.0000001192092896e+0	-1.0000000000000000e+0	2.0000001192092896e+0	2.0000001192092896e+0	0.0000000000000000e+0
-	[2]	1.0000001192092896e+0	-1.0000000000000000e+0	2.0000001192092896e+0	2.0000001192092896e+0	0.0000000000000000e+0
-	[3]	1.0000001192092896e+0	-1.0000000000000000e+0	2.0000001192092896e+0	2.0000001192092896e+0	0.0000000000000000e+0
-	[4]	1.0000001192092896e+0	-1.0000000000000000e+0	2.0000001192092896e+0	2.0000001192092896e+0	0.0000000000000000e+0
+	[0]	1.0000001192092896e+0	1.0000000000000000e+0	1.1920928955078125e-7	1.1920928955078125e-7	0.0000000000000000e+0
+	[1]	1.0000001192092896e+0	1.8840150907635689e-2	9.8115996830165386e-1	5.2078137436999050e+1	0.0000000000000000e+0
+	[2]	1.0000001192092896e+0	9.5096575096249580e-3	9.9049046169966459e-1	1.0415627068558094e+2	0.0000000000000000e+0
+	[3]	1.0000001192092896e+0	6.3599324785172939e-3	9.9364018673077226e-1	1.5623439243845903e+2	0.0000000000000000e+0
+	[4]	1.0000001192092896e+0	4.7775451093912125e-3	9.9522257409989834e-1	2.0831254364162695e+2	0.0000000000000000e+0
 	...and 251 more errors.
-	Max AbsError of 2.0000001192092896e+0 at index of 0.
-	Max RelError of 2.0000001192092896e+0 at index of 0.
+	Max AbsError of 9.9984894583758432e-1 at index of 127.
+	[127]	1.0000001192092896e+0	1.5117337170522660e-4	9.9984894583758432e-1	6.6139223764036478e+3	0.0000000000000000e+0
+	Max RelError of 6.6139223764036478e+3 at index of 127.
+	[127]	1.0000001192092896e+0	1.5117337170522660e-4	9.9984894583758432e-1	6.6139223764036478e+3	0.0000000000000000e+0
  assert_true: expected true got false
-FAIL X 2-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, right channel does not equal [2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+FAIL X 2-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, right channel does not equal [2,0.03768030181527138,0.019019315019249916,0.012719864957034588,0.009555090218782425,0.007651383988559246,0.006380221340805292,0.005471255164593458,0.004788985010236502,0.004258008673787117,0.0038330238312482834,0.003485174383968115,0.0031952071003615856,0.0029497842770069838,0.002739374525845051,0.00255698268301785...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
 	Index	Actual			Expected		AbsError		RelError		Test threshold
-	[0]	2.0000000000000000e+0	2.4492937051703357e-16	1.9999999999999998e+0	8.1656193202885410e+15	0.0000000000000000e+0
-	[1]	2.0000000000000000e+0	2.4492937051703357e-16	1.9999999999999998e+0	8.1656193202885410e+15	0.0000000000000000e+0
-	[2]	2.0000000000000000e+0	2.4492937051703357e-16	1.9999999999999998e+0	8.1656193202885410e+15	0.0000000000000000e+0
-	[3]	2.0000000000000000e+0	2.4492937051703357e-16	1.9999999999999998e+0	8.1656193202885410e+15	0.0000000000000000e+0
-	[4]	2.0000000000000000e+0	2.4492937051703357e-16	1.9999999999999998e+0	8.1656193202885410e+15	0.0000000000000000e+0
-	...and 251 more errors.
-	Max AbsError of 1.9999999999999998e+0 at index of 0.
-	Max RelError of 8.1656193202885410e+15 at index of 0.
+	[1]	2.0000000000000000e+0	3.7680301815271378e-2	1.9623196981847286e+0	5.2078131109592753e+1	0.0000000000000000e+0
+	[2]	2.0000000000000000e+0	1.9019315019249916e-2	1.9809806849807501e+0	1.0415625814997810e+2	0.0000000000000000e+0
+	[3]	2.0000000000000000e+0	1.2719864957034588e-2	1.9872801350429654e+0	1.5623437369466103e+2	0.0000000000000000e+0
+	[4]	2.0000000000000000e+0	9.5550902187824249e-3	1.9904449097812176e+0	2.0831251868963031e+2	0.0000000000000000e+0
+	[5]	2.0000000000000000e+0	7.6513839885592461e-3	1.9923486160114408e+0	2.6039061939519775e+2	0.0000000000000000e+0
+	...and 249 more errors.
+	Max AbsError of 1.9996976532565895e+0 at index of 127.
+	[127]	2.0000000000000000e+0	3.0234674341045320e-4	1.9996976532565895e+0	6.6139215878435452e+3	0.0000000000000000e+0
+	Max RelError of 6.6139215878435452e+3 at index of 127.
+	[127]	2.0000000000000000e+0	3.0234674341045320e-4	1.9996976532565895e+0	6.6139215878435452e+3	0.0000000000000000e+0
  assert_true: expected true got false
 FAIL < [0: 2-channel inverse rolloff: 1] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [1: 1-channel inverse rolloff: 1]  
-PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, left channel equals [-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.8124e-7},"relativeThreshold":0}. 
-PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, right channel equals [0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.8124e-7},"relativeThreshold":0}. 
+PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, left channel equals [0.7071067690849304,0.001196307479403913,0.0005938085960224271,0.00039490225026383996,0.0002958123222924769,0.00023647479247301817,0.00019696500385180116,0.00016876752488315105,0.00014763246872462332,0.0001312017993768677,0.00011806215479737148,0.00010731472139013931,0.00009836074605118483,0.0000907858629943803,0.00008429430454270914,0.00007866910891607404...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.8124e-7},"relativeThreshold":0}. 
+PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, right channel equals [0.7071067690849304,0.00498276436701417,0.002494250191375613,0.0016634685453027487,0.0012478390708565712,0.0009983853669837117,0.0008320511551573873,0.0007132254540920258,0.0006240976508706808,0.000554771046154201,0.0004993066540919244,0.00045392452739179134,0.00041610468178987503,0.0003841022262349725,0.000356670847395435,0.000332896423060447...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.8124e-7},"relativeThreshold":0}. 
 PASS < [1: 1-channel inverse rolloff: 1] All assertions passed. (total 2 assertions) 
 PASS > [1: 2-channel inverse rolloff: 1]  
-PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, left channel equals [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.3267e-7},"relativeThreshold":0}. 
-PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, right channel equals [2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.3267e-7},"relativeThreshold":0}. 
+PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, left channel equals [1,0.002326501300558448,0.0011553276563063264,0.0007684474694542587,0.000575670157559216,0.0004602163680829108,0.0003833358350675553,0.0003284646081738174,0.0002873351040761918,0.00025535948225297034,0.0002297879836987704,0.00020887165737804025,0.00019144543330185115,0.00017670301895122975,0.00016406884242314845,0.00015312072355300188...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.3267e-7},"relativeThreshold":0}. 
+PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, right channel equals [2,0.014814520254731178,0.007416830863803625,0.004946674220263958,0.003710799152031541,0.002969020279124379,0.002474395092576742,0.0021210394334048033,0.0018559943418949842,0.0016498314216732979,0.0014848907012492418,0.00134993193205446,0.0012374616926535964,0.001142291002906859,0.0010607137810438871,0.0009900116128847003...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.3267e-7},"relativeThreshold":0}. 
 PASS < [1: 2-channel inverse rolloff: 1] All assertions passed. (total 2 assertions) 
 PASS > [2: 1-channel exponential rolloff: 1.5]  
-PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, left channel equals [-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.0783e-7},"relativeThreshold":0}. 
-PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, right channel equals [0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.0783e-7},"relativeThreshold":0}. 
+PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, left channel equals [0.7071067690849304,0.00008563725714338943,0.000030067831175983883,0.00001632862404221669,0.000010593314073048532,0.000007574611117888708,0.000005759487976320088,0.0000045689607759413775,0.000003738693067134591,0.0000031326046610047342,0.0000026742441150418017,0.0000023176937702373834,0.0000020338857211754657,0.000001803614850359736,0.0000016137381635417114,0.0000014549860907209222...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.0783e-7},"relativeThreshold":0}. 
+PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, right channel equals [0.7071067690849304,0.0003566894738469273,0.0001262977602891624,0.00006878196290927008,0.000044686275941785425,0.000031979649065760896,0.00002433015288261231,0.00001930880534928292,0.00001580485150043387,0.000013245842637843452,0.000011309872206766158,0.00000980348249868257,0.00000860413729242282,0.000007630840627825819,0.0000068281406129244715,0.000006156923518574331...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.0783e-7},"relativeThreshold":0}. 
 PASS < [2: 1-channel exponential rolloff: 1.5] All assertions passed. (total 2 assertions) 
 PASS > [2: 2-channel exponential rolloff: 1.5]  
-PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, left channel equals [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.218e-7},"relativeThreshold":0}. 
-PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, right channel equals [2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.218e-7},"relativeThreshold":0}. 
+PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, left channel equals [1,0.00016654179489705712,0.000058500663726590574,0.00003177416874677874,0.00002061528357444331,0.000014741360246262047,0.000011209189324290492,0.000008892362529877573,0.0000072765678851283155,0.000006097022378526162,0.000005204963144933572,0.000004511035513132811,0.000003958673914894462,0.0000035105044844385702,0.0000031409495022671763,0.0000028319695957179647...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.218e-7},"relativeThreshold":0}. 
+PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, right channel equals [2,0.0010604923591017723,0.0003755554207600653,0.00020453766046557575,0.00013288715854287148,0.00009510177915217355,0.00007235421799123287,0.00005742186840507202,0.000047001805796753615,0.00003939175803679973,0.00003363448922755197,0.00002915470213338267,0.000025588007702026516,0.000022693542632623576,0.0000203064064407954,0.000018310278392164037...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.218e-7},"relativeThreshold":0}. 
 PASS < [2: 2-channel exponential rolloff: 1.5] All assertions passed. (total 2 assertions) 
 PASS > [3: 1-channel linear rolloff: 1]  
-PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, left channel equals [-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304,-0.7071067690849304...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065324},"relativeThreshold":0}. 
-PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, right channel equals [0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304,0.7071067690849304...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065324},"relativeThreshold":0}. 
+PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, left channel equals [0.7071067690849304,0.22892199456691742,0.22258761525154114,0.21748939156532288,0.21270129084587097,0.2080373466014862,0.2034355252981186,0.19886919856071472,0.19432516396045685,0.1897958517074585,0.18527695536613464,0.18076558411121368,0.1762598603963852,0.17175845801830292,0.1672605574131012,0.16276535391807556...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065324},"relativeThreshold":0}. 
+PASS   1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, right channel equals [0.7071067690849304,0.9534875750541687,0.9349632859230042,0.9161425232887268,0.8972479104995728,0.8783238530158997,0.8593849539756775,0.840437650680542,0.8214850425720215,0.8025290369987488,0.7835704684257507,0.7646101713180542,0.7456485629081726,0.7266858816146851,0.7077224254608154,0.6887583136558533...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065324},"relativeThreshold":0}. 
 PASS < [3: 1-channel linear rolloff: 1] All assertions passed. (total 2 assertions) 
 PASS > [3: 2-channel linear rolloff: 1]  
-PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, left channel equals [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065756},"relativeThreshold":0}. 
-PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, right channel equals [2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16,2.4492937051703357e-16...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065756},"relativeThreshold":0}. 
+PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, left channel equals [1,0.4451926648616791,0.4330716133117676,0.4232165515422821,0.41393065452575684,0.40487271547317505,0.39592882990837097,0.38705015182495117,0.37821245193481445,0.369401752948761,0.3606102168560028,0.35183247923851013,0.34306514263153076,0.3343057632446289,0.3255528211593628,0.31680476665496826...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065756},"relativeThreshold":0}. 
+PASS   2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, right channel equals [2,2.834864377975464,2.780179977416992,2.7243428230285645,2.6682181358337402,2.611978530883789,2.5556817054748535,2.499351978302002,2.4430017471313477,2.3866379261016846,2.3302643299102783,2.2738840579986572,2.217498540878296,2.16110897064209,2.1047163009643555,2.048321008682251...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065756},"relativeThreshold":0}. 
 PASS < [3: 2-channel linear rolloff: 1] All assertions passed. (total 2 assertions) 
 FAIL # AUDIT TASK RUNNER FINISHED: 2 out of 8 tasks were failed. assert_true: expected true got false
 

Modified: trunk/Source/WebCore/ChangeLog (265682 => 265683)


--- trunk/Source/WebCore/ChangeLog	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/Source/WebCore/ChangeLog	2020-08-14 18:27:10 UTC (rev 265683)
@@ -1,5 +1,20 @@
 2020-08-14  Chris Dumez  <[email protected]>
 
+        Fix bad check in AudioBufferSourceNode::renderFromBuffer()
+        https://bugs.webkit.org/show_bug.cgi?id=215513
+
+        Reviewed by Darin Adler.
+
+        Fix bad check in AudioBufferSourceNode::renderFromBuffer() that is causing us to incorrectly output silence
+        and failing many WPT tests.
+
+        No new tests, rebaselined existing tests.
+
+        * Modules/webaudio/AudioBufferSourceNode.cpp:
+        (WebCore::AudioBufferSourceNode::renderFromBuffer):
+
+2020-08-14  Chris Dumez  <[email protected]>
+
         AudioBufferSourceNode.buffer setter should throw when the buffer was already set
         https://bugs.webkit.org/show_bug.cgi?id=215510
 

Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp (265682 => 265683)


--- trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp	2020-08-14 18:24:53 UTC (rev 265682)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp	2020-08-14 18:27:10 UTC (rev 265683)
@@ -245,9 +245,8 @@
         virtualDeltaFrames = virtualMaxFrame - virtualMinFrame;
     }
 
-
     // Sanity check that our playback rate isn't larger than the loop size.
-    if (fabs(pitchRate) >= virtualDeltaFrames)
+    if (std::abs(pitchRate) > virtualDeltaFrames)
         return false;
 
     // Get local copy.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to