Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2020-08-20 23:14:05 UTC (rev 265980)
@@ -1,3 +1,31 @@
+2020-08-20 Chris Dumez <cdu...@apple.com>
+
+ AudioParam.automationRate attribute is missing
+ https://bugs.webkit.org/show_bug.cgi?id=215710
+
+ Reviewed by Darin Adler.
+
+ Rebaseline WPT tests now that more checks are passing.
+
+ * web-platform-tests/webaudio/idlharness.https.window-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/automation-rate-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-connections-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-connections-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-connections-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-rolloff-clamping-expected.txt:
+ * web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering-expected.txt:
+
2020-08-20 Rob Buis <rb...@igalia.com>
XMLHttpRequest.open should use USVString
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/idlharness.https.window-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/idlharness.https.window-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/idlharness.https.window-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -222,7 +222,7 @@
PASS AudioParam interface: existence and properties of interface prototype object's "constructor" property
PASS AudioParam interface: existence and properties of interface prototype object's @@unscopables property
PASS AudioParam interface: attribute value
-FAIL AudioParam interface: attribute automationRate assert_true: The prototype object must have a property "automationRate" expected true got false
+PASS AudioParam interface: attribute automationRate
PASS AudioParam interface: attribute defaultValue
PASS AudioParam interface: attribute minValue
PASS AudioParam interface: attribute maxValue
@@ -236,7 +236,7 @@
PASS AudioParam must be primary interface of new AudioBufferSourceNode(context).playbackRate
PASS Stringification of new AudioBufferSourceNode(context).playbackRate
PASS AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "value" with the proper type
-FAIL AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "automationRate" with the proper type assert_inherits: property "automationRate" not found in prototype chain
+PASS AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "automationRate" with the proper type
PASS AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "defaultValue" with the proper type
PASS AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "minValue" with the proper type
PASS AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "maxValue" with the proper type
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -1,5 +1,5 @@
-FAIL State change counting assert_less_than_equal: ctx 1 state change count. expected a number less than or equal to 1 but got 2
+PASS State change counting
PASS Iteration 1
PASS Iteration 2
PASS Iteration 3
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/automation-rate-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/automation-rate-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/automation-rate-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -12,113 +12,113 @@
PASS Executing "AudioListener"
PASS Audit report
PASS > [AudioBufferSourceNode]
-FAIL X Default AudioBufferSourceNode.detune.automationRate is not equal to k-rate. Got undefined. assert_true: expected true got false
-FAIL X Set AudioBufferSourceNode.detune.automationRate to "a-rate" did not throw an exception. assert_true: expected true got false
-FAIL X Default AudioBufferSourceNode.playbackRate.automationRate is not equal to k-rate. Got undefined. assert_true: expected true got false
-FAIL X Set AudioBufferSourceNode.playbackRate.automationRate to "a-rate" did not throw an exception. assert_true: expected true got false
-FAIL < [AudioBufferSourceNode] 4 out of 4 assertions were failed. assert_true: expected true got false
+PASS Default AudioBufferSourceNode.detune.automationRate is equal to k-rate.
+PASS Set AudioBufferSourceNode.detune.automationRate to "a-rate" threw InvalidStateError: "automationRate cannot be changed for this node".
+PASS Default AudioBufferSourceNode.playbackRate.automationRate is equal to k-rate.
+PASS Set AudioBufferSourceNode.playbackRate.automationRate to "a-rate" threw InvalidStateError: "automationRate cannot be changed for this node".
+PASS < [AudioBufferSourceNode] All assertions passed. (total 4 assertions)
PASS > [BiquadFilterNode]
-FAIL X Default BiquadFilterNode.frequency.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default BiquadFilterNode.frequency.automationRate is equal to a-rate.
PASS Set BiquadFilterNode.frequency.automationRate to "k-rate" did not throw an exception.
PASS BiquadFilterNode.frequency.automationRate is equal to k-rate.
-FAIL X Default BiquadFilterNode.detune.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default BiquadFilterNode.detune.automationRate is equal to a-rate.
PASS Set BiquadFilterNode.detune.automationRate to "k-rate" did not throw an exception.
PASS BiquadFilterNode.detune.automationRate is equal to k-rate.
-FAIL X Default BiquadFilterNode.Q.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default BiquadFilterNode.Q.automationRate is equal to a-rate.
PASS Set BiquadFilterNode.Q.automationRate to "k-rate" did not throw an exception.
PASS BiquadFilterNode.Q.automationRate is equal to k-rate.
-FAIL X Default BiquadFilterNode.gain.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default BiquadFilterNode.gain.automationRate is equal to a-rate.
PASS Set BiquadFilterNode.gain.automationRate to "k-rate" did not throw an exception.
PASS BiquadFilterNode.gain.automationRate is equal to k-rate.
-FAIL < [BiquadFilterNode] 4 out of 12 assertions were failed. assert_true: expected true got false
+PASS < [BiquadFilterNode] All assertions passed. (total 12 assertions)
PASS > [ConstantSourceNode]
-FAIL X Default ConstantSourceNode.offset.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default ConstantSourceNode.offset.automationRate is equal to a-rate.
PASS Set ConstantSourceNode.offset.automationRate to "k-rate" did not throw an exception.
PASS ConstantSourceNode.offset.automationRate is equal to k-rate.
-FAIL < [ConstantSourceNode] 1 out of 3 assertions were failed. assert_true: expected true got false
+PASS < [ConstantSourceNode] All assertions passed. (total 3 assertions)
PASS > [DelayNode]
-FAIL X Default DelayNode.delayTime.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default DelayNode.delayTime.automationRate is equal to a-rate.
PASS Set DelayNode.delayTime.automationRate to "k-rate" did not throw an exception.
PASS DelayNode.delayTime.automationRate is equal to k-rate.
-FAIL < [DelayNode] 1 out of 3 assertions were failed. assert_true: expected true got false
+PASS < [DelayNode] All assertions passed. (total 3 assertions)
PASS > [DynamicsCompressorNode]
-FAIL X Default DynamicsCompressorNode.threshold.automationRate is not equal to k-rate. Got undefined. assert_true: expected true got false
-FAIL X Set DynamicsCompressorNode.threshold.automationRate to "a-rate" did not throw an exception. assert_true: expected true got false
-FAIL X Default DynamicsCompressorNode.knee.automationRate is not equal to k-rate. Got undefined. assert_true: expected true got false
-FAIL X Set DynamicsCompressorNode.knee.automationRate to "a-rate" did not throw an exception. assert_true: expected true got false
-FAIL X Default DynamicsCompressorNode.ratio.automationRate is not equal to k-rate. Got undefined. assert_true: expected true got false
-FAIL X Set DynamicsCompressorNode.ratio.automationRate to "a-rate" did not throw an exception. assert_true: expected true got false
-FAIL X Default DynamicsCompressorNode.attack.automationRate is not equal to k-rate. Got undefined. assert_true: expected true got false
-FAIL X Set DynamicsCompressorNode.attack.automationRate to "a-rate" did not throw an exception. assert_true: expected true got false
-FAIL X Default DynamicsCompressorNode.release.automationRate is not equal to k-rate. Got undefined. assert_true: expected true got false
-FAIL X Set DynamicsCompressorNode.release.automationRate to "a-rate" did not throw an exception. assert_true: expected true got false
-FAIL < [DynamicsCompressorNode] 10 out of 10 assertions were failed. assert_true: expected true got false
+PASS Default DynamicsCompressorNode.threshold.automationRate is equal to k-rate.
+PASS Set DynamicsCompressorNode.threshold.automationRate to "a-rate" threw InvalidStateError: "automationRate cannot be changed for this node".
+PASS Default DynamicsCompressorNode.knee.automationRate is equal to k-rate.
+PASS Set DynamicsCompressorNode.knee.automationRate to "a-rate" threw InvalidStateError: "automationRate cannot be changed for this node".
+PASS Default DynamicsCompressorNode.ratio.automationRate is equal to k-rate.
+PASS Set DynamicsCompressorNode.ratio.automationRate to "a-rate" threw InvalidStateError: "automationRate cannot be changed for this node".
+PASS Default DynamicsCompressorNode.attack.automationRate is equal to k-rate.
+PASS Set DynamicsCompressorNode.attack.automationRate to "a-rate" threw InvalidStateError: "automationRate cannot be changed for this node".
+PASS Default DynamicsCompressorNode.release.automationRate is equal to k-rate.
+PASS Set DynamicsCompressorNode.release.automationRate to "a-rate" threw InvalidStateError: "automationRate cannot be changed for this node".
+PASS < [DynamicsCompressorNode] All assertions passed. (total 10 assertions)
PASS > [GainNode]
-FAIL X Default GainNode.gain.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default GainNode.gain.automationRate is equal to a-rate.
PASS Set GainNode.gain.automationRate to "k-rate" did not throw an exception.
PASS GainNode.gain.automationRate is equal to k-rate.
-FAIL < [GainNode] 1 out of 3 assertions were failed. assert_true: expected true got false
+PASS < [GainNode] All assertions passed. (total 3 assertions)
PASS > [OscillatorNode]
-FAIL X Default OscillatorNode.frequency.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default OscillatorNode.frequency.automationRate is equal to a-rate.
PASS Set OscillatorNode.frequency.automationRate to "k-rate" did not throw an exception.
PASS OscillatorNode.frequency.automationRate is equal to k-rate.
-FAIL X Default OscillatorNode.detune.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default OscillatorNode.detune.automationRate is equal to a-rate.
PASS Set OscillatorNode.detune.automationRate to "k-rate" did not throw an exception.
PASS OscillatorNode.detune.automationRate is equal to k-rate.
-FAIL < [OscillatorNode] 2 out of 6 assertions were failed. assert_true: expected true got false
+PASS < [OscillatorNode] All assertions passed. (total 6 assertions)
PASS > [PannerNode]
-FAIL X Default PannerNode.positionX.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default PannerNode.positionX.automationRate is equal to a-rate.
PASS Set PannerNode.positionX.automationRate to "k-rate" did not throw an exception.
PASS PannerNode.positionX.automationRate is equal to k-rate.
-FAIL X Default PannerNode.positionY.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default PannerNode.positionY.automationRate is equal to a-rate.
PASS Set PannerNode.positionY.automationRate to "k-rate" did not throw an exception.
PASS PannerNode.positionY.automationRate is equal to k-rate.
-FAIL X Default PannerNode.positionZ.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default PannerNode.positionZ.automationRate is equal to a-rate.
PASS Set PannerNode.positionZ.automationRate to "k-rate" did not throw an exception.
PASS PannerNode.positionZ.automationRate is equal to k-rate.
-FAIL X Default PannerNode.orientationX.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default PannerNode.orientationX.automationRate is equal to a-rate.
PASS Set PannerNode.orientationX.automationRate to "k-rate" did not throw an exception.
PASS PannerNode.orientationX.automationRate is equal to k-rate.
-FAIL X Default PannerNode.orientationY.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default PannerNode.orientationY.automationRate is equal to a-rate.
PASS Set PannerNode.orientationY.automationRate to "k-rate" did not throw an exception.
PASS PannerNode.orientationY.automationRate is equal to k-rate.
-FAIL X Default PannerNode.orientationZ.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default PannerNode.orientationZ.automationRate is equal to a-rate.
PASS Set PannerNode.orientationZ.automationRate to "k-rate" did not throw an exception.
PASS PannerNode.orientationZ.automationRate is equal to k-rate.
-FAIL < [PannerNode] 6 out of 18 assertions were failed. assert_true: expected true got false
+PASS < [PannerNode] All assertions passed. (total 18 assertions)
PASS > [StereoPannerNode]
-FAIL X Default StereoPannerNode.pan.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default StereoPannerNode.pan.automationRate is equal to a-rate.
PASS Set StereoPannerNode.pan.automationRate to "k-rate" did not throw an exception.
PASS StereoPannerNode.pan.automationRate is equal to k-rate.
-FAIL < [StereoPannerNode] 1 out of 3 assertions were failed. assert_true: expected true got false
+PASS < [StereoPannerNode] All assertions passed. (total 3 assertions)
PASS > [AudioListener]
-FAIL X Default AudioListener.positionX.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default AudioListener.positionX.automationRate is equal to a-rate.
PASS Set AudioListener.positionX.automationRate to "k-rate" did not throw an exception.
PASS AudioListener.positionX.automationRate is equal to k-rate.
-FAIL X Default AudioListener.positionY.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default AudioListener.positionY.automationRate is equal to a-rate.
PASS Set AudioListener.positionY.automationRate to "k-rate" did not throw an exception.
PASS AudioListener.positionY.automationRate is equal to k-rate.
-FAIL X Default AudioListener.positionZ.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default AudioListener.positionZ.automationRate is equal to a-rate.
PASS Set AudioListener.positionZ.automationRate to "k-rate" did not throw an exception.
PASS AudioListener.positionZ.automationRate is equal to k-rate.
-FAIL X Default AudioListener.forwardX.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default AudioListener.forwardX.automationRate is equal to a-rate.
PASS Set AudioListener.forwardX.automationRate to "k-rate" did not throw an exception.
PASS AudioListener.forwardX.automationRate is equal to k-rate.
-FAIL X Default AudioListener.forwardY.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default AudioListener.forwardY.automationRate is equal to a-rate.
PASS Set AudioListener.forwardY.automationRate to "k-rate" did not throw an exception.
PASS AudioListener.forwardY.automationRate is equal to k-rate.
-FAIL X Default AudioListener.forwardZ.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default AudioListener.forwardZ.automationRate is equal to a-rate.
PASS Set AudioListener.forwardZ.automationRate to "k-rate" did not throw an exception.
PASS AudioListener.forwardZ.automationRate is equal to k-rate.
-FAIL X Default AudioListener.upX.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default AudioListener.upX.automationRate is equal to a-rate.
PASS Set AudioListener.upX.automationRate to "k-rate" did not throw an exception.
PASS AudioListener.upX.automationRate is equal to k-rate.
-FAIL X Default AudioListener.upY.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default AudioListener.upY.automationRate is equal to a-rate.
PASS Set AudioListener.upY.automationRate to "k-rate" did not throw an exception.
PASS AudioListener.upY.automationRate is equal to k-rate.
-FAIL X Default AudioListener.upZ.automationRate is not equal to a-rate. Got undefined. assert_true: expected true got false
+PASS Default AudioListener.upZ.automationRate is equal to a-rate.
PASS Set AudioListener.upZ.automationRate to "k-rate" did not throw an exception.
PASS AudioListener.upZ.automationRate is equal to k-rate.
-FAIL < [AudioListener] 9 out of 27 assertions were failed. assert_true: expected true got false
-FAIL # AUDIT TASK RUNNER FINISHED: 10 out of 10 tasks were failed. assert_true: expected true got false
+PASS < [AudioListener] All assertions passed. (total 27 assertions)
+PASS # AUDIT TASK RUNNER FINISHED: 10 tasks ran successfully.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -17,8 +17,8 @@
PASS All k-rate params: a-rate node:frequency.linearRampToValueAtTime(0,1) did not throw an exception.
PASS All k-rate params: Output of k-rate BiquadFilterNode is identical to the array [0,0.005672737956047058,0.031761422753334045,0.09152894467115402,0.18822039663791656,0.3152911961078644,0.4580239951610565,0.5962369441986084,0.7076709866523743,0.7715816497802734,0.7720555663108826,0.700621485710144,0.5578286647796631,0.35359877347946167,0.10631752759218216,-0.15921232104301453...].
PASS All k-rate params: Output of a-rate BiquadFilterNode is identical to the array [0,0.005672737956047058,0.031761422753334045,0.09152894467115402,0.18822039663791656,0.3152911961078644,0.4580239951610565,0.5962369441986084,0.7076709866523743,0.7715816497802734,0.7720555663108826,0.700621485710144,0.5578286647796631,0.35359877347946167,0.10631752759218216,-0.15921232104301453...].
-FAIL X All k-rate params: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. assert_true: expected true got false
-FAIL < [Biquad k-rate AudioParams (all)] 1 out of 11 assertions were failed. assert_true: expected true got false
+PASS All k-rate params: Difference between a-rate and k-rate BiquadFilterNode is not constantly 0 (contains 7872 different values).
+PASS < [Biquad k-rate AudioParams (all)] All assertions passed. (total 11 assertions)
PASS > [Biquad k-rate Q]
PASS k-rate Q: Setting Q.automationRate to "k-rate" is equal to k-rate.
PASS k-rate Q: k-rate node: Q.setValueAtTime(1,0) did not throw an exception.
@@ -59,5 +59,5 @@
PASS k-rate gain: Output of a-rate BiquadFilterNode is identical to the array [0,0.39067500829696655,0.8280423879623413,1.237112283706665,1.5446851253509521,1.6899598836898804,1.6333717107772827,1.3625415563583374,0.8945985436439514,0.27460339665412903,-0.42972034215927124,-1.1362687349319458,-1.758807897567749,-2.217907190322876,-2.4511806964874268,-2.4215519428253174...].
FAIL X k-rate gain: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. assert_true: expected true got false
FAIL < [Biquad k-rate gain] 1 out of 8 assertions were failed. assert_true: expected true got false
-FAIL # AUDIT TASK RUNNER FINISHED: 5 out of 5 tasks were failed. assert_true: expected true got false
+FAIL # AUDIT TASK RUNNER FINISHED: 4 out of 5 tasks were failed. assert_true: expected true got false
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-connections-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-connections-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-connections-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -14,62 +14,14 @@
PASS gain[896:1024] contains only the constant 2.
PASS < [Gain] All assertions passed. (total 8 assertions)
PASS > [StereoPanner] k-rate StereoPannerNode.pan
-FAIL X pan[0:128]: Expected 0.5 for all values but found 127 unexpected values:
- Index Actual
- [1] 0.500766396522522
- [2] 0.5015316009521484
- [3] 0.5022956728935242
- [4] 0.5030585527420044
- ...and 123 more errors. assert_true: expected true got false
-FAIL X pan[128:256]: Expected 0.5879377722740173 for all values but found 127 unexpected values:
- Index Actual
- [1] 0.588539719581604
- [2] 0.5891402363777161
- [3] 0.5897394418716431
- [4] 0.5903372168540955
- ...and 123 more errors. assert_true: expected true got false
-FAIL X pan[256:384]: Expected 0.6532814502716064 for all values but found 127 unexpected values:
- Index Actual
- [1] 0.653695821762085
- [2] 0.6541085839271545
- [3] 0.65451979637146
- [4] 0.654929518699646
- ...and 123 more errors. assert_true: expected true got false
-FAIL X pan[384:512]: Expected 0.6935199499130249 for all values but found 127 unexpected values:
- Index Actual
- [1] 0.6937307119369507
- [2] 0.6939398646354675
- [3] 0.6941474080085754
- [4] 0.6943533420562744
- ...and 123 more errors. assert_true: expected true got false
-FAIL X pan[512:640]: Expected 0.7071067690849304 for all values but found 127 unexpected values:
- Index Actual
- [1] 0.7071059346199036
- [2] 0.707103431224823
- [3] 0.7070993185043335
- [4] 0.7070934772491455
- ...and 123 more errors. assert_true: expected true got false
-FAIL X pan[640:768]: Expected 0.6935199499130249 for all values but found 127 unexpected values:
- Index Actual
- [1] 0.6933075189590454
- [2] 0.6930934190750122
- [3] 0.6928777694702148
- [4] 0.6926604509353638
- ...and 123 more errors. assert_true: expected true got false
-FAIL X pan[768:896]: Expected 0.6532814502716064 for all values but found 127 unexpected values:
- Index Actual
- [1] 0.6528656482696533
- [2] 0.6524482369422913
- [3] 0.652029275894165
- [4] 0.6516088247299194
- ...and 123 more errors. assert_true: expected true got false
-FAIL X pan[896:1024]: Expected 0.5879377722740173 for all values but found 127 unexpected values:
- Index Actual
- [1] 0.5873345136642456
- [2] 0.5867298245429993
- [3] 0.5861237049102783
- [4] 0.5855162739753723
- ...and 123 more errors. assert_true: expected true got false
-FAIL < [StereoPanner] 8 out of 8 assertions were failed. assert_true: expected true got false
-FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 2 tasks were failed. assert_true: expected true got false
+PASS pan[0:128] contains only the constant 0.5.
+PASS pan[128:256] contains only the constant 0.5879377722740173.
+PASS pan[256:384] contains only the constant 0.6532814502716064.
+PASS pan[384:512] contains only the constant 0.6935199499130249.
+PASS pan[512:640] contains only the constant 0.7071067690849304.
+PASS pan[640:768] contains only the constant 0.6935199499130249.
+PASS pan[768:896] contains only the constant 0.6532814502716064.
+PASS pan[896:1024] contains only the constant 0.5879377722740173.
+PASS < [StereoPanner] All assertions passed. (total 8 assertions)
+PASS # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -10,96 +10,24 @@
PASS k-rate offset: k-rate node: offset.linearRampToValueAtTime(10,0.064) did not throw an exception.
PASS k-rate offset: a-rate node:offset.setValueAtTime(0,0) did not throw an exception.
PASS k-rate offset: a-rate node:offset.linearRampToValueAtTime(10,0.064) did not throw an exception.
-PASS k-rate offset: Output of k-rate ConstantSourceNode is identical to the array [0,0.01953125,0.0390625,0.05859375,0.078125,0.09765625,0.1171875,0.13671875,0.15625,0.17578125,0.1953125,0.21484375,0.234375,0.25390625,0.2734375,0.29296875...].
+PASS k-rate offset: Output of k-rate ConstantSourceNode is identical to the array [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...].
PASS k-rate offset: Output of a-rate ConstantSourceNode is identical to the array [0,0.01953125,0.0390625,0.05859375,0.078125,0.09765625,0.1171875,0.13671875,0.15625,0.17578125,0.1953125,0.21484375,0.234375,0.25390625,0.2734375,0.29296875...].
-FAIL X k-rate offset: Difference between a-rate and k-rate ConstantSourceNode should have contain at least one value different from 0. assert_true: expected true got false
-FAIL X k-rate offset k-rate output [0: 127]: Expected 0 for all values but found 127 unexpected values:
- Index Actual
- [1] 0.01953125
- [2] 0.0390625
- [3] 0.05859375
- [4] 0.078125
- ...and 123 more errors. assert_true: expected true got false
-FAIL X k-rate offset k-rate output [128: 255]: Expected 2.5 for all values but found 127 unexpected values:
- Index Actual
- [1] 2.51953125
- [2] 2.5390625
- [3] 2.55859375
- [4] 2.578125
- ...and 123 more errors. assert_true: expected true got false
-FAIL X k-rate offset k-rate output [256: 383]: Expected 5 for all values but found 127 unexpected values:
- Index Actual
- [1] 5.01953125
- [2] 5.0390625
- [3] 5.05859375
- [4] 5.078125
- ...and 123 more errors. assert_true: expected true got false
-FAIL X k-rate offset k-rate output [384: 511]: Expected 7.5 for all values but found 127 unexpected values:
- Index Actual
- [1] 7.51953125
- [2] 7.5390625
- [3] 7.55859375
- [4] 7.578125
- ...and 123 more errors. assert_true: expected true got false
-FAIL < [ConstantSource k-rate offset] 5 out of 12 assertions were failed. assert_true: expected true got false
+PASS k-rate offset: Difference between a-rate and k-rate ConstantSourceNode is not constantly 0 (contains 508 different values).
+PASS k-rate offset k-rate output [0: 127] contains only the constant 0.
+PASS k-rate offset k-rate output [128: 255] contains only the constant 2.5.
+PASS k-rate offset k-rate output [256: 383] contains only the constant 5.
+PASS k-rate offset k-rate output [384: 511] contains only the constant 7.5.
+PASS < [ConstantSource k-rate offset] All assertions passed. (total 12 assertions)
PASS > [ConstantSourceNode.offset k-rate automation] Explicitly test ConstantSourceNode.offset k-rate automation is k-rate
-FAIL X k-rate ConstantSource.offset: output[0:128]: Expected 0 for all values but found 127 unexpected values:
- Index Actual
- [1] 1
- [2] 2
- [3] 3
- [4] 4
- ...and 123 more errors. assert_true: expected true got false
-FAIL X k-rate ConstantSource.offset: output[128:256]: Expected 128 for all values but found 127 unexpected values:
- Index Actual
- [1] 129
- [2] 130
- [3] 131
- [4] 132
- ...and 123 more errors. assert_true: expected true got false
-FAIL X k-rate ConstantSource.offset: output[256:384]: Expected 256 for all values but found 127 unexpected values:
- Index Actual
- [1] 257
- [2] 258
- [3] 259
- [4] 260
- ...and 123 more errors. assert_true: expected true got false
-FAIL X k-rate ConstantSource.offset: output[384:512]: Expected 384 for all values but found 127 unexpected values:
- Index Actual
- [1] 385
- [2] 386
- [3] 387
- [4] 388
- ...and 123 more errors. assert_true: expected true got false
-FAIL X k-rate ConstantSource.offset: output[512:640]: Expected 512 for all values but found 127 unexpected values:
- Index Actual
- [1] 513
- [2] 514
- [3] 515
- [4] 516
- ...and 123 more errors. assert_true: expected true got false
-FAIL X k-rate ConstantSource.offset: output[640:768]: Expected 640 for all values but found 127 unexpected values:
- Index Actual
- [1] 641
- [2] 642
- [3] 643
- [4] 644
- ...and 123 more errors. assert_true: expected true got false
-FAIL X k-rate ConstantSource.offset: output[768:896]: Expected 768 for all values but found 127 unexpected values:
- Index Actual
- [1] 769
- [2] 770
- [3] 771
- [4] 772
- ...and 123 more errors. assert_true: expected true got false
-FAIL X k-rate ConstantSource.offset: output[896:1024]: Expected 896 for all values but found 127 unexpected values:
- Index Actual
- [1] 897
- [2] 898
- [3] 899
- [4] 900
- ...and 123 more errors. assert_true: expected true got false
-FAIL < [ConstantSourceNode.offset k-rate automation] 8 out of 8 assertions were failed. assert_true: expected true got false
+PASS k-rate ConstantSource.offset: output[0:128] contains only the constant 0.
+PASS k-rate ConstantSource.offset: output[128:256] contains only the constant 128.
+PASS k-rate ConstantSource.offset: output[256:384] contains only the constant 256.
+PASS k-rate ConstantSource.offset: output[384:512] contains only the constant 384.
+PASS k-rate ConstantSource.offset: output[512:640] contains only the constant 512.
+PASS k-rate ConstantSource.offset: output[640:768] contains only the constant 640.
+PASS k-rate ConstantSource.offset: output[768:896] contains only the constant 768.
+PASS k-rate ConstantSource.offset: output[896:1024] contains only the constant 896.
+PASS < [ConstantSourceNode.offset k-rate automation] All assertions passed. (total 8 assertions)
PASS > [ConstantSource.offset] Verify k-rate automation matches k-rate input
PASS ConstantSource.offset k-rate input: output[0:128] contains only the constant 2.
PASS ConstantSource.offset k-rate input: output[128:256] contains only the constant 2.
@@ -110,5 +38,5 @@
PASS ConstantSource.offset k-rate input: output[768:896] contains only the constant 2.
PASS ConstantSource.offset k-rate input: output[896:1024] contains only the constant 2.
PASS < [ConstantSource.offset] All assertions passed. (total 8 assertions)
-FAIL # AUDIT TASK RUNNER FINISHED: 2 out of 3 tasks were failed. assert_true: expected true got false
+PASS # AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-connections-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-connections-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-connections-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -13,11 +13,17 @@
PASS testMod.offset.setValueAtTime(0, 0) did not throw an exception.
PASS testMod.offset.linearRampToValueAtTime(1.125, 1) did not throw an exception.
PASS testMod.connect(testNode.delayTime) did not throw an exception.
-PASS Expected k-rate delayTime AudioParam with input is not constantly 0 (contains 4095 different values).
-PASS Actual k-rate delayTime AudioParam with input is not constantly 0 (contains 4095 different values).
-PASS output[128, 143] contains only the constant 0.
-FAIL X output[144, 255] should have contain at least one value different from 0. assert_true: expected true got false
-PASS k-rate delayTime AudioParam with input equals [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+PASS Expected k-rate delayTime AudioParam with input is not constantly 0 (contains 6159 different values).
+PASS Actual k-rate delayTime AudioParam with input is not constantly 0 (contains 6159 different values).
+FAIL X output[128, 143]: Expected 0 for all values but found 16 unexpected values:
+ Index Actual
+ [0] -0.8773074150085449
+ [1] -0.8522303104400635
+ [2] -0.826123833656311
+ [3] -0.7989943027496338
+ ...and 12 more errors. assert_true: expected true got false
+PASS output[144, 255] is not constantly 0 (contains 112 different values).
+PASS k-rate delayTime AudioParam with input equals [0,0.3311063051223755,0.6248595118522644,0.8481203317642212,0.9757022261619568,0.9932120442390442,0.898674488067627,0.7027547955513,0.4275550842285156,0.10412158071994781,-0.23105812072753906,-0.5401715040206909,-0.7883464097976685,-0.9475855827331543,-0.9999247789382935,-0.9394593238830566...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
FAIL < [delayTime] 1 out of 15 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-audioparam-interface/k-rate-delay-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -8,9 +8,9 @@
PASS DelayNode: k-rate node: delayTime.linearRampToValueAtTime(0.5,1) did not throw an exception.
PASS DelayNode: a-rate node:delayTime.setValueAtTime(0,0) did not throw an exception.
PASS DelayNode: a-rate node:delayTime.linearRampToValueAtTime(0.5,1) did not throw an exception.
-PASS DelayNode: Output of k-rate DelayNode is identical to the array [0,0.1693689227104187,0.3387378454208374,0.48808085918426514,0.6374238729476929,0.7490829229354858,0.8607419729232788,0.9215145707130432,0.9822871685028076,0.9849876165390015,0.9876880645751953,0.9319971799850464,0.8763062953948975,0.7688090205192566,0.6613118052482605,0.5147179961204529...].
+PASS DelayNode: Output of k-rate DelayNode is identical to the array [0,0.3387378752231598,0.6374238729476929,0.8607419729232788,0.9822871685028076,0.9876880645751953,0.8763062953948975,0.6613117456436157,0.3681243062019348,0.03141050040721893,-0.3090170621871948,-0.6129071116447449,-0.8443278074264526,-0.9759165644645691,-0.9921145439147949,-0.8910062313079834...].
PASS DelayNode: Output of a-rate DelayNode is identical to the array [0,0.1693689227104187,0.3387378454208374,0.48808085918426514,0.6374238729476929,0.7490829229354858,0.8607419729232788,0.9215145707130432,0.9822871685028076,0.9849876165390015,0.9876880645751953,0.9319971799850464,0.8763062953948975,0.7688090205192566,0.6613118052482605,0.5147179961204529...].
-FAIL X DelayNode: Difference between a-rate and k-rate DelayNode should have contain at least one value different from 0. assert_true: expected true got false
-FAIL < [Test k-rate DelayNode] 1 out of 8 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 DelayNode: Difference between a-rate and k-rate DelayNode is not constantly 0 (contains 7999 different values).
+PASS < [Test k-rate DelayNode] All assertions passed. (total 8 assertions)
+PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -23,8 +23,8 @@
[3555] -2.1301783621311188e-2 -2.1302459761500359e-2 6.7614018917083740e-7 3.1740005461379454e-5 0.0000000000000000e+0
[3556] -1.8743157386779785e-2 -1.8744025379419327e-2 8.6799263954162598e-7 4.6307696557787933e-5 0.0000000000000000e+0
...and 8443 more errors.
- Max AbsError of 1.2182706594467163e-1 at index of 11905.
- [11905] 2.3663640022277832e-1 3.5846346616744995e-1 1.2182706594467163e-1 3.3985908591243225e-1 0.0000000000000000e+0
+ Max AbsError of 1.2182705104351044e-1 at index of 11905.
+ [11905] 2.3663641512393951e-1 3.5846346616744995e-1 1.2182705104351044e-1 3.3985904434289282e-1 0.0000000000000000e+0
Max RelError of 2.5864712210866059e+0 at index of 5197.
[5197] 2.7467031031847000e-6 -1.7313286662101746e-6 4.4780317693948746e-6 2.5864712210866059e+0 0.0000000000000000e+0
assert_true: expected true got false
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -8,9 +8,9 @@
PASS GainNode: k-rate node: gain.linearRampToValueAtTime(0,1) did not throw an exception.
PASS GainNode: a-rate node:gain.setValueAtTime(1,0) did not throw an exception.
PASS GainNode: a-rate node:gain.linearRampToValueAtTime(0,1) did not throw an exception.
-PASS GainNode: Output of k-rate GainNode is identical to the array [0,0.3386955261230469,0.6372645497322083,0.8604192137718201,0.9817960262298584,0.9870707392692566,0.8756490349769592,0.6607331037521362,0.367756187915802,0.03137516602873802,-0.3086307942867279,-0.6120643615722656,-0.8430613279342651,-0.974330723285675,-0.9903783798217773,-0.8893356323242188...].
+PASS GainNode: Output of k-rate GainNode is identical to the array [0,0.3387378752231598,0.6374238729476929,0.8607419729232788,0.9822871685028076,0.9876880645751953,0.8763062953948975,0.6613117456436157,0.3681243062019348,0.03141050040721893,-0.3090170621871948,-0.6129071116447449,-0.8443278074264526,-0.9759165644645691,-0.9921145439147949,-0.8910062313079834...].
PASS GainNode: Output of a-rate GainNode is identical to the array [0,0.3386955261230469,0.6372645497322083,0.8604192137718201,0.9817960262298584,0.9870707392692566,0.8756490349769592,0.6607331037521362,0.367756187915802,0.03137516602873802,-0.3086307942867279,-0.6120643615722656,-0.8430613279342651,-0.974330723285675,-0.9903783798217773,-0.8893356323242188...].
-FAIL X GainNode: Difference between a-rate and k-rate GainNode should have contain at least one value different from 0. assert_true: expected true got false
-FAIL < [Test k-rate GainNode] 1 out of 8 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 GainNode: Difference between a-rate and k-rate GainNode is not constantly 0 (contains 7999 different values).
+PASS < [Test k-rate GainNode] All assertions passed. (total 8 assertions)
+PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-connections-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-connections-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-connections-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -14,7 +14,7 @@
PASS Test 1: modFreq.offset.setValueAtTime(100, 0) did not throw an exception.
PASS Test 1: modFreq.offset.linearRampToValueAtTime(2000, 0.078125) did not throw an exception.
PASS Test 1: modFreq.connect(srcTest.frequency) did not throw an exception.
-PASS k-rate frequency with input equals [0,0.07845915853977203,0.1587369441986084,0.24024122953414917,0.3222914934158325,0.404119074344635,0.48486924171447754,0.5636047124862671,0.6393131017684937,0.7109143733978271,0.777274489402771,0.8372192978858948,0.8895531892776489,0.9330809116363525,0.966631293296814,0.9890860319137573...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+PASS k-rate frequency with input equals [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
PASS < [Test 1] All assertions passed. (total 8 assertions)
PASS > [Test 2] k-rate detune input
PASS Test 2: srcRef.detune.automationRate = 'k-rate' did not throw an exception.
@@ -24,7 +24,7 @@
PASS Test 2: modDetune.offset.setValueAtTime(0, 0) did not throw an exception.
PASS Test 2: modDetune.offset.linearRampToValueAtTime(2000, 0.078125) did not throw an exception.
PASS Test 2: modDetune.connect(srcTest.detune) did not throw an exception.
-PASS k-rate detune with input equals [0,0.3387378752231598,0.637904942035675,0.8616946935653687,0.982982873916626,0.9866902828216553,0.8717451691627502,0.6513899564743042,0.35175538063049316,0.00884389877319336,-0.3357403874397278,-0.6398173570632935,-0.865809440612793,-0.9854339361190796,-0.9833213090896606,-0.8590874671936035...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+PASS k-rate detune with input equals [0,0.3387378752231598,0.6374238729476929,0.8607419729232788,0.9822871685028076,0.9876880645751953,0.8763062953948975,0.6613117456436157,0.3681243062019348,0.03141050040721893,-0.3090170621871948,-0.6129071116447449,-0.8443278074264526,-0.9759165644645691,-0.9921145439147949,-0.8910062313079834...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
PASS < [Test 2] All assertions passed. (total 8 assertions)
PASS > [Test 3] k-rate frequency input with a-rate detune
PASS Test 3: srcRef.frequency.automationRate = 'k-rate' did not throw an exception.
@@ -38,7 +38,7 @@
PASS Test 3: modFreq.offset.setValueAtTime(100, 0) did not throw an exception.
PASS Test 3: modFreq.offset.linearRampToValueAtTime(2000, 0.078125) did not throw an exception.
PASS Test 3: modFreq.connect(srcTest.frequency) did not throw an exception.
-PASS k-rate frequency input with a-rate detune equals [0,0.07845915853977203,0.15859293937683105,0.2398085594177246,0.3214321434497833,0.40271008014678955,0.48281240463256836,0.5608369708061218,0.6358171105384827,0.7067304849624634,0.7725116014480591,0.8320654630661011,0.8842850923538208,0.9280704259872437,0.9623513221740723,0.9861104488372803...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+PASS k-rate frequency input with a-rate detune equals [0,0.07845915853977203,0.15629452466964722,0.23303230106830597,0.3082095980644226,0.38137686252593994,0.452100932598114,0.5199676156044006,0.5845836400985718,0.6455783843994141,0.7026070952415466,0.7553509473800659,0.8035199642181396,0.8468540906906128,0.8851238489151001,0.9181316494941711...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
PASS < [Test 3] All assertions passed. (total 12 assertions)
PASS > [Test 4] a-rate frequency with k-rate detune input
PASS Test 4: srcRef.frequency.setValueAtTime(100, 0) did not throw an exception.
@@ -52,7 +52,7 @@
PASS Test 4: modDetune.offset.setValueAtTime(0, 0) did not throw an exception.
PASS Test 4: modDetune.offset.linearRampToValueAtTime(-2000, 0.078125) did not throw an exception.
PASS Test 4: modDetune.connect(srcTest.detune) did not throw an exception.
-PASS k-rate detune input with a-rate frequency equals [0,0.07845915853977203,0.15859293937683105,0.2398085594177246,0.3214321434497833,0.40271008014678955,0.48281240463256836,0.5608369708061218,0.6358171105384827,0.7067304849624634,0.7725116014480591,0.8320654630661011,0.8842850923538208,0.9280704259872437,0.9623513221740723,0.9861104488372803...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+PASS k-rate detune input with a-rate frequency equals [0,0.07845915853977203,0.1587369441986084,0.24024122953414917,0.3222914934158325,0.404119074344635,0.48486924171447754,0.5636047124862671,0.6393131017684937,0.7109143733978271,0.777274489402771,0.8372192978858948,0.8895531892776489,0.9330809116363525,0.966631293296814,0.9890860319137573...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
PASS < [Test 4] All assertions passed. (total 12 assertions)
PASS > [Test 5] k-rate inputs for frequency and detune
PASS Test 5: srcRef.frequency.automationRate = 'k-rate' did not throw an exception.
@@ -69,7 +69,7 @@
PASS Test 5: modDetune.offset.linearRampToValueAtTime(-2000, 0.078125) did not throw an exception.
PASS Test 5: modFreq.connect(srcTest.frequency) did not throw an exception.
PASS Test 5: modDetune.connect(srcTest.detune) did not throw an exception.
-PASS k-rate inputs for both frequency and detune equals [0,0.07845915853977203,0.15859293937683105,0.2398085594177246,0.3214321434497833,0.40271008014678955,0.48281240463256836,0.5608369708061218,0.6358171105384827,0.7067304849624634,0.7725116014480591,0.8320654630661011,0.8842850923538208,0.9280704259872437,0.9623513221740723,0.9861104488372803...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+PASS k-rate inputs for both frequency and detune equals [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
PASS < [Test 5] All assertions passed. (total 15 assertions)
PASS # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -4,10 +4,10 @@
PASS Executing "Oscillator k-rate frequency"
PASS Audit report
PASS > [Oscillator k-rate detune]
-FAIL X k-rate detune: Difference between a-rate and k-rate outputs should have contain at least one value different from 0. assert_true: expected true got false
-FAIL < [Oscillator k-rate detune] 1 out of 1 assertions were failed. assert_true: expected true got false
+PASS k-rate detune: Difference between a-rate and k-rate outputs is not constantly 0 (contains 510 different values).
+PASS < [Oscillator k-rate detune] All assertions passed. (total 1 assertions)
PASS > [Oscillator k-rate frequency]
-FAIL X k-rate frequency: Difference between a-rate and k-rate outputs should have contain at least one value different from 0. assert_true: expected true got false
-FAIL < [Oscillator k-rate frequency] 1 out of 1 assertions were failed. assert_true: expected true got false
-FAIL # AUDIT TASK RUNNER FINISHED: 2 out of 2 tasks were failed. assert_true: expected true got false
+PASS k-rate frequency: Difference between a-rate and k-rate outputs is not constantly 0 (contains 510 different values).
+PASS < [Oscillator k-rate frequency] All assertions passed. (total 1 assertions)
+PASS # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -8,9 +8,9 @@
PASS StereoPannerNode: k-rate node: pan.linearRampToValueAtTime(0.5,1) did not throw an exception.
PASS StereoPannerNode: a-rate node:pan.setValueAtTime(0,0) did not throw an exception.
PASS StereoPannerNode: a-rate node:pan.linearRampToValueAtTime(0.5,1) did not throw an exception.
-PASS StereoPannerNode: Output of k-rate StereoPannerNode is identical to the array [0,0.23952384293079376,0.4507267475128174,0.6086364984512329,0.694581925868988,0.6984009146690369,0.6196420788764954,0.4676179885864258,0.26030316948890686,0.02221057564020157,-0.2185080349445343,-0.43339070677757263,-0.5970298051834106,-0.6900770664215088,-0.7015307545661926,-0.6300363540649414...].
+PASS StereoPannerNode: Output of k-rate StereoPannerNode is identical to the array [0,0.23952384293079376,0.4507267475128174,0.6086364984512329,0.694581925868988,0.6984009146690369,0.6196421384811401,0.46761801838874817,0.26030319929122925,0.022210577502846718,-0.2185080647468567,-0.4333907663822174,-0.5970299243927002,-0.6900772452354431,-0.701530933380127,-0.6300365328788757...].
PASS StereoPannerNode: Output of a-rate StereoPannerNode is identical to the array [0,0.23952384293079376,0.4507267475128174,0.6086364984512329,0.694581925868988,0.6984009146690369,0.6196420788764954,0.4676179885864258,0.26030316948890686,0.02221057564020157,-0.2185080349445343,-0.43339070677757263,-0.5970298051834106,-0.6900770664215088,-0.7015307545661926,-0.6300363540649414...].
-PASS StereoPannerNode: Difference between a-rate and k-rate StereoPannerNode is not constantly 0 (contains 3625 different values).
+PASS StereoPannerNode: Difference between a-rate and k-rate StereoPannerNode is not constantly 0 (contains 7956 different values).
PASS < [Test k-rate StereoPannerNode] All assertions passed. (total 8 assertions)
PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering-expected.txt (265979 => 265980)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering-expected.txt 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering-expected.txt 2020-08-20 23:14:05 UTC (rev 265980)
@@ -55,21 +55,21 @@
...and 252 more errors. assert_true: expected true got false
FAIL < [test stereo input] 3 out of 4 assertions were failed. assert_true: expected true got false
PASS > [test mono input setValue] Test StereoPanner with mono input value setter vs setValueAtTime
-PASS Mono Left .value setter output is identical to the array [0.20861317217350006,0.19113875925540924,0.16823500394821167,0.1405525654554367,0.10887773334980011,0.07411020249128342,0.037237610667943954,-0.0006927690701559186,-0.03860342130064964,-0.07541755586862564,-0.11008944362401962,-0.1416342556476593,-0.16915595531463623,-0.1918727606534958,-0.20913946628570557,-0.2204655408859253...].
+PASS Mono Left .value setter output is identical to the array [-0.028300216421484947,-0.04114878550171852,-0.053860947489738464,-0.06639444082975388,-0.07870785892009735,-0.09076013416051865,-0.10251147300004959,-0.11392276734113693,-0.12495630979537964,-0.13557545840740204,-0.14574496448040009,-0.15543124079704285,-0.1646018922328949,-0.1732267439365387,-0.1812770515680313,-0.18872623145580292...].
PASS Mono Left .value setter output matches setValueAtTime output is true.
-PASS Mono Right .value setter output is identical to the array [0.9000188112258911,0.8246290683746338,0.7258154153823853,0.6063852310180664,0.4697306752204895,0.31973329186439514,0.16065403819084167,-0.002988810185343027,-0.1665465533733368,-0.3253736197948456,-0.4749583601951599,-0.6110519766807556,-0.7297887206077576,-0.8277957439422607,-0.9022893905639648,-0.9511533975601196...].
+PASS Mono Right .value setter output is identical to the array [-0.122095488011837,-0.1775280088186264,-0.23237203061580658,-0.2864452004432678,-0.33956894278526306,-0.3915660083293915,-0.44226476550102234,-0.4914964437484741,-0.5390984416007996,-0.5849125385284424,-0.6287867426872253,-0.6705762147903442,-0.710141122341156,-0.747351348400116,-0.782082736492157,-0.814220666885376...].
PASS Mono Right .value setter output matches setValueAtTime output is true.
PASS < [test mono input setValue] All assertions passed. (total 4 assertions)
PASS > [test stereo input setValue] Test StereoPanner with mono input value setter vs setValueAtTime
-PASS Stereo Left .value setter output is identical to the array [-0.4399392008781433,-0.4193967282772064,-0.3596876561641693,-0.2663879990577698,-0.1482110172510147,-0.01619294472038746,0.11733736842870712,0.2399098426103592,0.34007757902145386,0.4084862470626831,0.4387471675872803,0.42803439497947693,0.377348393201828,0.29142266511917114,0.1782815307378769,0.048491086810827255...].
+PASS Stereo Left .value setter output is identical to the array [0.25859054923057556,0.2199704945087433,0.17894035577774048,0.13594961166381836,0.09146952629089355,0.04598725214600563,0.0000010709162552302587,-0.0459851436316967,-0.09146743267774582,-0.13594762980937958,-0.17893831431865692,-0.21996863186359406,-0.2585888206958771,-0.2943759262561798,-0.32693782448768616,-0.3559175431728363...].
PASS Stereo Left .value setter output matches setValueAtTime output is true.
-PASS Stereo Right .value setter output is identical to the array [-1.671038031578064,-1.5648269653320312,-1.3721576929092407,-1.1050618886947632,-0.7820299863815308,-0.4263407588005066,-0.06395263969898224,0.2788553237915039,0.5778660178184509,0.8131168484687805,0.9706887006759644,1.0439329147338867,1.0340183973312378,0.9497482180595398,0.8066650629043579,0.6255297064781189...].
+PASS Stereo Right .value setter output is identical to the array [0.5278493165969849,0.48173511028289795,0.43066614866256714,0.3755251467227936,0.31723907589912415,0.25676751136779785,0.1950928419828415,0.13320933282375336,0.07211104035377502,0.01278146356344223,-0.043818745762109756,-0.09676152467727661,-0.14516164362430573,-0.18818864226341248,-0.2250741422176361,-0.2551209628582001...].
PASS Stereo Right .value setter output matches setValueAtTime output is true.
PASS < [test stereo input setValue] All assertions passed. (total 4 assertions)
PASS > [test mono input automation] Test StereoPanner with mono input and automation
-PASS Modulated Stereo Left .value setter output is identical to the array [-6.123234262925839e-17,-5.83731630634668e-17,-5.006263826782414e-17,-3.707685225408482e-17,-2.062854940756385e-17,-2.253792958833939e-18,1.6331442078301927e-17,3.3391524397144665e-17,4.733323672269722e-17,5.685460504260725e-17,6.106643005071496e-17,5.957538736575137e-17,5.252072126331122e-17,4.056126455768074e-17,2.481387320320658e-17,6.749165968347778e-18...].
+PASS Modulated Stereo Left .value setter output is identical to the array [0.5877871513366699,0.511900007724762,0.43011096119880676,0.3434051275253296,0.2528183162212372,0.15942318737506866,0.06431935727596283,-0.03138017654418945,-0.1265600323677063,-0.22011728584766388,-0.31097108125686646,-0.3980771601200104,-0.4804368317127228,-0.5571109652519226,-0.6272279620170593,-0.6899943351745605...].
PASS Modulated Stereo Left .value setter output matches setValueAtTime output is true.
-PASS Modulated Stereo Right .value setter output is identical to the array [-1.773010492324829,-1.6620378494262695,-1.455528736114502,-1.1668072938919067,-0.8163834810256958,-0.4300940930843353,-0.03675529360771179,0.3344634473323822,0.6566917896270752,0.9077988862991333,1.0723848342895508,1.14314603805542,1.1214830875396729,1.017296314239502,0.847988486289978,0.6367692947387695...].
+PASS Modulated Stereo Right .value setter output is identical to the array [3.479795509520045e-7,0.030479563400149345,0.061084818094968796,0.09178794175386429,0.1225593239068985,0.1533685177564621,0.18418386578559875,0.21497322618961334,0.24570252001285553,0.27633801102638245,0.30684351921081543,0.3371830880641937,0.3673195540904999,0.39721453189849854,0.42682918906211853,0.45612409710884094...].
PASS Modulated Stereo Right .value setter output matches setValueAtTime output is true.
PASS < [test mono input automation] All assertions passed. (total 4 assertions)
FAIL # AUDIT TASK RUNNER FINISHED: 2 out of 5 tasks were failed. assert_true: expected true got false
Modified: trunk/Source/WebCore/ChangeLog (265979 => 265980)
--- trunk/Source/WebCore/ChangeLog 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/ChangeLog 2020-08-20 23:14:05 UTC (rev 265980)
@@ -1,3 +1,58 @@
+2020-08-20 Chris Dumez <cdu...@apple.com>
+
+ AudioParam.automationRate attribute is missing
+ https://bugs.webkit.org/show_bug.cgi?id=215710
+
+ Reviewed by Darin Adler.
+
+ Add initial support for AudioParam.automationRate:
+ - https://www.w3.org/TR/webaudio/#dom-audioparam-automationrate
+
+ No new tests, rebaselined existing tests.
+
+ * Modules/webaudio/AudioBufferSourceNode.cpp:
+ (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
+ * Modules/webaudio/AudioListener.cpp:
+ (WebCore::AudioListener::AudioListener):
+ * Modules/webaudio/AudioParam.cpp:
+ (WebCore::AudioParam::AudioParam):
+ (WebCore::AudioParam::setAutomationRate):
+ (WebCore::AudioParam::calculateSampleAccurateValues):
+ * Modules/webaudio/AudioParam.h:
+ * Modules/webaudio/AudioParam.idl:
+ * Modules/webaudio/BiquadDSPKernel.cpp:
+ (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
+ * Modules/webaudio/BiquadProcessor.cpp:
+ (WebCore::BiquadProcessor::BiquadProcessor):
+ * Modules/webaudio/ConstantSourceNode.cpp:
+ (WebCore::ConstantSourceNode::ConstantSourceNode):
+ (WebCore::ConstantSourceNode::process):
+ * Modules/webaudio/DelayDSPKernel.cpp:
+ (WebCore::DelayDSPKernel::process):
+ * Modules/webaudio/DelayProcessor.cpp:
+ (WebCore::DelayProcessor::DelayProcessor):
+ * Modules/webaudio/DynamicsCompressorNode.cpp:
+ (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
+ * Modules/webaudio/GainNode.cpp:
+ (WebCore::GainNode::GainNode):
+ (WebCore::GainNode::process):
+ * Modules/webaudio/OscillatorNode.cpp:
+ (WebCore::OscillatorNode::OscillatorNode):
+ (WebCore::OscillatorNode::calculateSampleAccuratePhaseIncrements):
+ * Modules/webaudio/PannerNode.cpp:
+ (WebCore::PannerNode::PannerNode):
+ (WebCore::PannerNode::distanceConeGain):
+ * Modules/webaudio/PannerNode.h:
+ * Modules/webaudio/StereoPannerNode.cpp:
+ (WebCore::StereoPannerNode::StereoPannerNode):
+ (WebCore::StereoPannerNode::process):
+ * Modules/webaudio/WebKitAudioBufferSourceNode.h:
+ * Modules/webaudio/WebKitAudioPannerNode.cpp:
+ (WebCore::WebKitAudioPannerNode::WebKitAudioPannerNode):
+ (WebCore::WebKitAudioPannerNode::distanceConeGain):
+ * Modules/webaudio/WebKitAudioPannerNode.h:
+ * Modules/webaudio/WebKitDynamicsCompressorNode.h:
+
2020-08-20 Kenneth Russell <k...@chromium.org>
[WebGL2] Pass context-lost-restored.html test
Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -77,8 +77,8 @@
AudioBufferSourceNode::AudioBufferSourceNode(BaseAudioContext& context)
: AudioScheduledSourceNode(context)
- , m_detune(AudioParam::create(context, "detune"_s, 0.0, -FLT_MAX, FLT_MAX))
- , m_playbackRate(AudioParam::create(context, "playbackRate"_s, 1.0, -FLT_MAX, FLT_MAX))
+ , m_detune(AudioParam::create(context, "detune"_s, 0.0, -FLT_MAX, FLT_MAX, AutomationRate::KRate, AutomationRateMode::Fixed))
+ , m_playbackRate(AudioParam::create(context, "playbackRate"_s, 1.0, -FLT_MAX, FLT_MAX, AutomationRate::KRate, AutomationRateMode::Fixed))
, m_grainDuration(DefaultGrainDuration)
{
setNodeType(NodeTypeAudioBufferSource);
Modified: trunk/Source/WebCore/Modules/webaudio/AudioListener.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/AudioListener.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/AudioListener.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -39,15 +39,15 @@
namespace WebCore {
AudioListener::AudioListener(BaseAudioContext& context)
- : m_positionX(AudioParam::create(context, "positionX", 0.0, -FLT_MAX, FLT_MAX))
- , m_positionY(AudioParam::create(context, "positionY", 0.0, -FLT_MAX, FLT_MAX))
- , m_positionZ(AudioParam::create(context, "positionZ", 0.0, -FLT_MAX, FLT_MAX))
- , m_forwardX(AudioParam::create(context, "forwardX", 0.0, -FLT_MAX, FLT_MAX))
- , m_forwardY(AudioParam::create(context, "forwardY", 0.0, -FLT_MAX, FLT_MAX))
- , m_forwardZ(AudioParam::create(context, "forwardZ", -1.0, -FLT_MAX, FLT_MAX))
- , m_upX(AudioParam::create(context, "upX", 0.0, -FLT_MAX, FLT_MAX))
- , m_upY(AudioParam::create(context, "upY", 1.0, -FLT_MAX, FLT_MAX))
- , m_upZ(AudioParam::create(context, "upZ", 0.0, -FLT_MAX, FLT_MAX))
+ : m_positionX(AudioParam::create(context, "positionX", 0.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_positionY(AudioParam::create(context, "positionY", 0.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_positionZ(AudioParam::create(context, "positionZ", 0.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_forwardX(AudioParam::create(context, "forwardX", 0.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_forwardY(AudioParam::create(context, "forwardY", 0.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_forwardZ(AudioParam::create(context, "forwardZ", -1.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_upX(AudioParam::create(context, "upX", 0.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_upY(AudioParam::create(context, "upY", 1.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_upZ(AudioParam::create(context, "upZ", 0.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
{
}
Modified: trunk/Source/WebCore/Modules/webaudio/AudioParam.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/AudioParam.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/AudioParam.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -41,7 +41,7 @@
const double AudioParam::DefaultSmoothingConstant = 0.05;
const double AudioParam::SnapThreshold = 0.001;
-AudioParam::AudioParam(BaseAudioContext& context, const String& name, double defaultValue, double minValue, double maxValue, unsigned units)
+AudioParam::AudioParam(BaseAudioContext& context, const String& name, double defaultValue, double minValue, double maxValue, AutomationRate automationRate, AutomationRateMode automationRateMode, unsigned units)
: AudioSummingJunction(context)
, m_name(name)
, m_value(defaultValue)
@@ -48,6 +48,8 @@
, m_defaultValue(defaultValue)
, m_minValue(minValue)
, m_maxValue(maxValue)
+ , m_automationRate(automationRate)
+ , m_automationRateMode(automationRateMode)
, m_units(units)
, m_smoothedValue(defaultValue)
, m_smoothingConstant(DefaultSmoothingConstant)
@@ -83,6 +85,15 @@
m_value = value;
}
+ExceptionOr<void> AudioParam::setAutomationRate(AutomationRate automationRate)
+{
+ if (m_automationRateMode == AutomationRateMode::Fixed)
+ return Exception { InvalidStateError, "automationRate cannot be changed for this node" };
+
+ m_automationRate = automationRate;
+ return { };
+}
+
float AudioParam::smoothedValue()
{
return narrowPrecisionToFloat(m_smoothedValue);
@@ -200,7 +211,7 @@
if (!isSafe)
return;
- calculateFinalValues(values, numberOfValues, true);
+ calculateFinalValues(values, numberOfValues, automationRate() == AutomationRate::ARate);
}
void AudioParam::calculateFinalValues(float* values, unsigned numberOfValues, bool sampleAccurate)
Modified: trunk/Source/WebCore/Modules/webaudio/AudioParam.h (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/AudioParam.h 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/AudioParam.h 2020-08-20 23:14:05 UTC (rev 265980)
@@ -42,6 +42,9 @@
class AudioNodeOutput;
+enum class AutomationRate : bool { ARate, KRate };
+enum class AutomationRateMode : bool { Fixed, Variable };
+
class AudioParam final
: public AudioSummingJunction
, public RefCounted<AudioParam>
@@ -53,9 +56,9 @@
static const double DefaultSmoothingConstant;
static const double SnapThreshold;
- static Ref<AudioParam> create(BaseAudioContext& context, const String& name, double defaultValue, double minValue, double maxValue, unsigned units = 0)
+ static Ref<AudioParam> create(BaseAudioContext& context, const String& name, double defaultValue, double minValue, double maxValue, AutomationRate automationRate, AutomationRateMode automationRateMode = AutomationRateMode::Variable, unsigned units = 0)
{
- return adoptRef(*new AudioParam(context, name, defaultValue, minValue, maxValue, units));
+ return adoptRef(*new AudioParam(context, name, defaultValue, minValue, maxValue, automationRate, automationRateMode, units));
}
// AudioSummingJunction
@@ -66,6 +69,9 @@
float value();
void setValue(float);
+ AutomationRate automationRate() const { return m_automationRate; }
+ ExceptionOr<void> setAutomationRate(AutomationRate);
+
// Final value for k-rate parameters, otherwise use calculateSampleAccurateValues() for a-rate.
// Must be called in the audio thread.
float finalValue();
@@ -109,7 +115,7 @@
void disconnect(AudioNodeOutput*);
protected:
- AudioParam(BaseAudioContext&, const String&, double defaultValue, double minValue, double maxValue, unsigned units = 0);
+ AudioParam(BaseAudioContext&, const String&, double defaultValue, double minValue, double maxValue, AutomationRate, AutomationRateMode, unsigned units = 0);
private:
// sampleAccurate corresponds to a-rate (audio rate) vs. k-rate in the Web Audio specification.
@@ -128,6 +134,8 @@
double m_defaultValue;
double m_minValue;
double m_maxValue;
+ AutomationRate m_automationRate;
+ AutomationRateMode m_automationRateMode;
unsigned m_units;
// Smoothing (de-zippering)
Modified: trunk/Source/WebCore/Modules/webaudio/AudioParam.idl (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/AudioParam.idl 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/AudioParam.idl 2020-08-20 23:14:05 UTC (rev 265980)
@@ -28,11 +28,18 @@
[
Conditional=WEB_AUDIO,
+ ImplementedAs=AutomationRate
+] enum AutomationRate {
+ "a-rate",
+ "k-rate"
+};
+
+[
+ Conditional=WEB_AUDIO,
] interface AudioParam {
attribute float value;
- // FIXME: add support for this.
- // attribute AutomationRate automationRate;
+ attribute AutomationRate automationRate;
readonly attribute float defaultValue;
readonly attribute float minValue;
Modified: trunk/Source/WebCore/Modules/webaudio/BiquadDSPKernel.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/BiquadDSPKernel.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/BiquadDSPKernel.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -49,7 +49,11 @@
double gain;
double detune; // in Cents
- if (biquadProcessor()->hasSampleAccurateValues()) {
+ bool shouldUseARate = biquadProcessor()->parameter1().automationRate() == AutomationRate::ARate
+ || biquadProcessor()->parameter2().automationRate() == AutomationRate::ARate
+ || biquadProcessor()->parameter3().automationRate() == AutomationRate::ARate
+ || biquadProcessor()->parameter4().automationRate() == AutomationRate::ARate;
+ if (biquadProcessor()->hasSampleAccurateValues() && shouldUseARate) {
value1 = biquadProcessor()->parameter1().finalValue();
value2 = biquadProcessor()->parameter2().finalValue();
gain = biquadProcessor()->parameter3().finalValue();
Modified: trunk/Source/WebCore/Modules/webaudio/BiquadProcessor.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/BiquadProcessor.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/BiquadProcessor.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -35,10 +35,10 @@
BiquadProcessor::BiquadProcessor(BaseAudioContext& context, float sampleRate, size_t numberOfChannels, bool autoInitialize)
: AudioDSPKernelProcessor(sampleRate, numberOfChannels)
, m_type(BiquadFilterType::Lowpass)
- , m_parameter1(AudioParam::create(context, "frequency", 350.0, 0.0, 0.5 * sampleRate))
- , m_parameter2(AudioParam::create(context, "Q", 1, -FLT_MAX, FLT_MAX))
- , m_parameter3(AudioParam::create(context, "gain", 0.0, -FLT_MAX, 1541))
- , m_parameter4(AudioParam::create(context, "detune", 0.0, -153600, 153600))
+ , m_parameter1(AudioParam::create(context, "frequency", 350.0, 0.0, 0.5 * sampleRate, AutomationRate::ARate))
+ , m_parameter2(AudioParam::create(context, "Q", 1, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_parameter3(AudioParam::create(context, "gain", 0.0, -FLT_MAX, 1541, AutomationRate::ARate))
+ , m_parameter4(AudioParam::create(context, "detune", 0.0, -153600, 153600, AutomationRate::ARate))
, m_filterCoefficientsDirty(true)
, m_hasSampleAccurateValues(false)
{
Modified: trunk/Source/WebCore/Modules/webaudio/ConstantSourceNode.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/ConstantSourceNode.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/ConstantSourceNode.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -54,7 +54,7 @@
ConstantSourceNode::ConstantSourceNode(BaseAudioContext& context, float offset)
: AudioScheduledSourceNode(context)
- , m_offset(AudioParam::create(context, "offset"_s, offset, -FLT_MAX, FLT_MAX))
+ , m_offset(AudioParam::create(context, "offset"_s, offset, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
{
setNodeType(NodeTypeConstant);
addOutput(makeUnique<AudioNodeOutput>(this, 1));
@@ -85,10 +85,7 @@
}
bool isSampleAccurate = m_offset->hasSampleAccurateValues();
-
- // FIXME: Fix once automation-rate is introduced. Some tests are failing because this
- // is called for both a-rate and k-rate, but only should be called on a-rate.
- if (isSampleAccurate) {
+ if (isSampleAccurate && m_offset->automationRate() == AutomationRate::ARate) {
float* offsets = m_sampleAccurateValues.data();
m_offset->calculateSampleAccurateValues(offsets, framesToProcess);
if (nonSilentFramesToProcess > 0) {
Modified: trunk/Source/WebCore/Modules/webaudio/DelayDSPKernel.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/DelayDSPKernel.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/DelayDSPKernel.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -103,8 +103,9 @@
double maxTime = maxDelayTime();
bool sampleAccurate = delayProcessor() && delayProcessor()->delayTime().hasSampleAccurateValues();
+ bool shouldUseARate = delayProcessor() && delayProcessor()->delayTime().automationRate() == AutomationRate::ARate;
- if (sampleAccurate)
+ if (sampleAccurate && shouldUseARate)
delayProcessor()->delayTime().calculateSampleAccurateValues(delayTimes, framesToProcess);
else {
delayTime = delayProcessor() ? delayProcessor()->delayTime().finalValue() : m_desiredDelayFrames / sampleRate;
@@ -120,7 +121,7 @@
}
for (unsigned i = 0; i < framesToProcess; ++i) {
- if (sampleAccurate) {
+ if (sampleAccurate && shouldUseARate) {
delayTime = delayTimes[i];
delayTime = std::min(maxTime, delayTime);
delayTime = std::max(0.0, delayTime);
Modified: trunk/Source/WebCore/Modules/webaudio/DelayProcessor.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/DelayProcessor.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/DelayProcessor.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -34,7 +34,7 @@
DelayProcessor::DelayProcessor(BaseAudioContext& context, float sampleRate, unsigned numberOfChannels, double maxDelayTime)
: AudioDSPKernelProcessor(sampleRate, numberOfChannels)
- , m_delayTime(AudioParam::create(context, "delayTime", 0.0, 0.0, maxDelayTime))
+ , m_delayTime(AudioParam::create(context, "delayTime", 0.0, 0.0, maxDelayTime, AutomationRate::ARate))
{
}
Modified: trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -62,11 +62,11 @@
DynamicsCompressorNode::DynamicsCompressorNode(BaseAudioContext& context, const DynamicsCompressorOptions& options)
: AudioNode(context)
- , m_threshold(AudioParam::create(context, "threshold"_s, options.threshold, -100, 0))
- , m_knee(AudioParam::create(context, "knee"_s, options.knee, 0, 40))
- , m_ratio(AudioParam::create(context, "ratio"_s, options.ratio, 1, 20))
- , m_attack(AudioParam::create(context, "attack"_s, options.attack, 0, 1))
- , m_release(AudioParam::create(context, "release"_s, options.release, 0, 1))
+ , m_threshold(AudioParam::create(context, "threshold"_s, options.threshold, -100, 0, AutomationRate::KRate, AutomationRateMode::Fixed))
+ , m_knee(AudioParam::create(context, "knee"_s, options.knee, 0, 40, AutomationRate::KRate, AutomationRateMode::Fixed))
+ , m_ratio(AudioParam::create(context, "ratio"_s, options.ratio, 1, 20, AutomationRate::KRate, AutomationRateMode::Fixed))
+ , m_attack(AudioParam::create(context, "attack"_s, options.attack, 0, 1, AutomationRate::KRate, AutomationRateMode::Fixed))
+ , m_release(AudioParam::create(context, "release"_s, options.release, 0, 1, AutomationRate::KRate, AutomationRateMode::Fixed))
{
setNodeType(NodeTypeDynamicsCompressor);
Modified: trunk/Source/WebCore/Modules/webaudio/GainNode.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/GainNode.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/GainNode.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -58,7 +58,7 @@
GainNode::GainNode(BaseAudioContext& context)
: AudioNode(context)
, m_sampleAccurateGainValues(AudioNode::ProcessingSizeInFrames) // FIXME: can probably share temp buffer in context
- , m_gain(AudioParam::create(context, "gain"_s, 1.0, -FLT_MAX, FLT_MAX))
+ , m_gain(AudioParam::create(context, "gain"_s, 1.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
{
setNodeType(NodeTypeGain);
@@ -82,7 +82,7 @@
else {
AudioBus* inputBus = input(0)->bus();
- if (gain().hasSampleAccurateValues()) {
+ if (gain().hasSampleAccurateValues() && gain().automationRate() == AutomationRate::ARate) {
// Apply sample-accurate gain scaling for precise envelopes, grain windows, etc.
ASSERT(framesToProcess <= m_sampleAccurateGainValues.size());
if (framesToProcess <= m_sampleAccurateGainValues.size()) {
@@ -92,12 +92,13 @@
}
} else {
// Apply the gain with de-zippering into the output bus.
- if (!m_lastGain && m_lastGain == m_gain->value()) {
+ float gain = this->gain().hasSampleAccurateValues() ? this->gain().finalValue() : this->gain().value();
+ if (!m_lastGain && m_lastGain == gain) {
// If the gain is 0 (and we've converged on dezippering), just zero the bus and set
// the silence hint.
outputBus->zero();
} else
- outputBus->copyWithGainFrom(*inputBus, &m_lastGain, gain().value());
+ outputBus->copyWithGainFrom(*inputBus, &m_lastGain, gain);
}
}
}
Modified: trunk/Source/WebCore/Modules/webaudio/OscillatorNode.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/OscillatorNode.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/OscillatorNode.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -78,8 +78,8 @@
OscillatorNode::OscillatorNode(BaseAudioContext& context, const OscillatorOptions& options)
: AudioScheduledSourceNode(context)
- , m_frequency(AudioParam::create(context, "frequency"_s, options.frequency, -context.sampleRate() / 2, context.sampleRate() / 2))
- , m_detune(AudioParam::create(context, "detune"_s, options.detune, -153600, 153600))
+ , m_frequency(AudioParam::create(context, "frequency"_s, options.frequency, -context.sampleRate() / 2, context.sampleRate() / 2, AutomationRate::ARate))
+ , m_detune(AudioParam::create(context, "detune"_s, options.detune, -153600, 153600, AutomationRate::ARate))
{
setNodeType(NodeTypeOscillator);
@@ -151,7 +151,7 @@
float finalScale = m_periodicWave->rateScale();
- if (m_frequency->hasSampleAccurateValues()) {
+ if (m_frequency->hasSampleAccurateValues() && m_frequency->automationRate() == AutomationRate::ARate) {
hasSampleAccurateValues = true;
hasFrequencyChanges = true;
@@ -159,13 +159,11 @@
// They will be converted to phase increments below.
m_frequency->calculateSampleAccurateValues(phaseIncrements, framesToProcess);
} else {
- // Handle ordinary parameter smoothing/de-zippering if there are no scheduled changes.
- m_frequency->smooth();
- float frequency = m_frequency->smoothedValue();
+ float frequency = m_frequency->finalValue();
finalScale *= frequency;
}
- if (m_detune->hasSampleAccurateValues()) {
+ if (m_detune->hasSampleAccurateValues() && m_detune->automationRate() == AutomationRate::ARate) {
hasSampleAccurateValues = true;
// Get the sample-accurate detune values.
@@ -183,9 +181,7 @@
vmul(detuneValues, 1, phaseIncrements, 1, phaseIncrements, 1, framesToProcess);
}
} else {
- // Handle ordinary parameter smoothing/de-zippering if there are no scheduled changes.
- m_detune->smooth();
- float detune = m_detune->smoothedValue();
+ float detune = m_detune->finalValue();
float detuneScale = powf(2, detune / 1200);
finalScale *= detuneScale;
}
Modified: trunk/Source/WebCore/Modules/webaudio/PannerNode.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/PannerNode.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/PannerNode.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -89,14 +89,12 @@
PannerNode::PannerNode(BaseAudioContext& context, const PannerOptions& options)
: PannerNodeBase(context)
, m_panningModel(options.panningModel)
- , m_distanceGain(AudioParam::create(context, "distanceGain", 1.0, 0.0, 1.0))
- , m_coneGain(AudioParam::create(context, "coneGain", 1.0, 0.0, 1.0))
- , m_positionX(AudioParam::create(context, "positionX"_s, options.positionX, -FLT_MAX, FLT_MAX))
- , m_positionY(AudioParam::create(context, "positionY"_s, options.positionY, -FLT_MAX, FLT_MAX))
- , m_positionZ(AudioParam::create(context, "positionZ"_s, options.positionZ, -FLT_MAX, FLT_MAX))
- , m_orientationX(AudioParam::create(context, "orientationX"_s, options.orientationX, -FLT_MAX, FLT_MAX))
- , m_orientationY(AudioParam::create(context, "orientationY"_s, options.orientationY, -FLT_MAX, FLT_MAX))
- , m_orientationZ(AudioParam::create(context, "orientationZ"_s, options.orientationZ, -FLT_MAX, FLT_MAX))
+ , m_positionX(AudioParam::create(context, "positionX"_s, options.positionX, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_positionY(AudioParam::create(context, "positionY"_s, options.positionY, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_positionZ(AudioParam::create(context, "positionZ"_s, options.positionZ, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_orientationX(AudioParam::create(context, "orientationX"_s, options.orientationX, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_orientationY(AudioParam::create(context, "orientationY"_s, options.orientationY, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
+ , m_orientationZ(AudioParam::create(context, "orientationZ"_s, options.orientationZ, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
// Load the HRTF database asynchronously so we don't block the _javascript_ thread while creating the HRTF database.
, m_hrtfDatabaseLoader(HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary(context.sampleRate()))
{
@@ -386,13 +384,9 @@
double listenerDistance = sourcePosition.distanceTo(listenerPosition);
double distanceGain = m_distanceEffect.gain(listenerDistance);
-
- m_distanceGain->setValue(static_cast<float>(distanceGain));
// FIXME: could optimize by caching coneGain
double coneGain = m_coneEffect.gain(sourcePosition, orientation(), listenerPosition);
-
- m_coneGain->setValue(static_cast<float>(coneGain));
return float(distanceGain * coneGain);
}
Modified: trunk/Source/WebCore/Modules/webaudio/PannerNode.h (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/PannerNode.h 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/PannerNode.h 2020-08-20 23:14:05 UTC (rev 265980)
@@ -125,10 +125,6 @@
void getAzimuthElevation(double* outAzimuth, double* outElevation);
float dopplerRate() final;
- // Accessors for dynamically calculated gain values.
- AudioParam* distanceGain() { return m_distanceGain.get(); }
- AudioParam* coneGain() { return m_coneGain.get(); }
-
double tailTime() const override { return m_panner ? m_panner->tailTime() : 0; }
double latencyTime() const override { return m_panner ? m_panner->latencyTime() : 0; }
@@ -146,8 +142,6 @@
PanningModelType m_panningModel;
// Gain
- RefPtr<AudioParam> m_distanceGain;
- RefPtr<AudioParam> m_coneGain;
DistanceEffect m_distanceEffect;
ConeEffect m_coneEffect;
float m_lastGain { -1.0 };
Modified: trunk/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -53,7 +53,7 @@
StereoPannerNode::StereoPannerNode(BaseAudioContext& context, float pan)
: AudioNode(context)
- , m_pan(AudioParam::create(context, "pan"_s, pan, -1, 1))
+ , m_pan(AudioParam::create(context, "pan"_s, pan, -1, 1, AutomationRate::ARate))
{
setNodeType(NodeTypeStereo);
@@ -82,10 +82,8 @@
destination->zero();
return;
}
-
- // FIXME: Fix once automation-rate is introduced. Some tests are failing because this
- // is called for both a-rate and k-rate, but should only be called on a-rate.
- if (m_pan->hasSampleAccurateValues()) {
+
+ if (m_pan->hasSampleAccurateValues() && m_pan->automationRate() == AutomationRate::ARate) {
float* panValues = m_sampleAccurateValues.data();
m_pan->calculateSampleAccurateValues(panValues, framesToProcess);
StereoPanner::panWithSampleAccurateValues(source, destination, panValues, framesToProcess);
@@ -92,7 +90,10 @@
return;
}
- float panValue = m_pan->value();
+ // The pan value is not sample-accurate or not a-rate. In this case, we have
+ // a fixed pan value for the render and just need to incorporate any inputs to
+ // the value, if any.
+ float panValue = m_pan->hasSampleAccurateValues() ? m_pan->finalValue() : m_pan->value();
StereoPanner::panToTargetValue(source, destination, panValue, framesToProcess);
}
Modified: trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.h (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.h 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.h 2020-08-20 23:14:05 UTC (rev 265980)
@@ -43,7 +43,7 @@
private:
explicit WebKitAudioBufferSourceNode(BaseAudioContext& context)
: AudioBufferSourceNode(context)
- , m_gain(AudioParam::create(context, "gain"_s, 1.0, 0.0, 1.0))
+ , m_gain(AudioParam::create(context, "gain"_s, 1.0, 0.0, 1.0, AutomationRate::KRate))
{
}
Modified: trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp 2020-08-20 23:14:05 UTC (rev 265980)
@@ -63,9 +63,6 @@
addInput(makeUnique<AudioNodeInput>(this));
addOutput(makeUnique<AudioNodeOutput>(this, 2));
- m_distanceGain = AudioParam::create(context, "distanceGain", 1.0, 0.0, 1.0);
- m_coneGain = AudioParam::create(context, "coneGain", 1.0, 0.0, 1.0);
-
m_position = FloatPoint3D(0, 0, 0);
m_orientation = FloatPoint3D(1, 0, 0);
m_velocity = FloatPoint3D(0, 0, 0);
@@ -315,13 +312,9 @@
double listenerDistance = sourcePosition.distanceTo(listenerPosition);
double distanceGain = m_distanceEffect.gain(listenerDistance);
- m_distanceGain->setValue(static_cast<float>(distanceGain));
-
// FIXME: could optimize by caching coneGain
double coneGain = m_coneEffect.gain(sourcePosition, m_orientation, listenerPosition);
- m_coneGain->setValue(static_cast<float>(coneGain));
-
return float(distanceGain * coneGain);
}
Modified: trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.h (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.h 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.h 2020-08-20 23:14:05 UTC (rev 265980)
@@ -115,10 +115,6 @@
void getAzimuthElevation(double* outAzimuth, double* outElevation);
float dopplerRate() final;
- // Accessors for dynamically calculated gain values.
- AudioParam* distanceGain() { return m_distanceGain.get(); }
- AudioParam* coneGain() { return m_coneGain.get(); }
-
double tailTime() const override { return m_panner ? m_panner->tailTime() : 0; }
double latencyTime() const override { return m_panner ? m_panner->latencyTime() : 0; }
@@ -140,8 +136,6 @@
FloatPoint3D m_velocity;
// Gain
- RefPtr<AudioParam> m_distanceGain;
- RefPtr<AudioParam> m_coneGain;
DistanceEffect m_distanceEffect;
ConeEffect m_coneEffect;
float m_lastGain;
Modified: trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.h (265979 => 265980)
--- trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.h 2020-08-20 23:12:05 UTC (rev 265979)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.h 2020-08-20 23:14:05 UTC (rev 265980)
@@ -42,7 +42,7 @@
private:
explicit WebKitDynamicsCompressorNode(WebKitAudioContext& context)
: DynamicsCompressorNode(context)
- , m_legacyReduction(AudioParam::create(context, "reduction"_s, 0, -20, 0))
+ , m_legacyReduction(AudioParam::create(context, "reduction"_s, 0, -20, 0, AutomationRate::KRate))
{
initializeDefaultNodeOptions(2, ChannelCountMode::ClampedMax, ChannelInterpretation::Speakers);
}