WPT
wpt / webaudio / the-audio-api / the-audioparam-interface / audioparam-nominal-range.html
Spec: Web Audio API ↗
Runs: Chrome 155.0.8041.0 (wpt@4a01b83e3, 2026-09-04) | Firefox 157.0a1 (wpt@e7122b73f, 2026-09-04) | Safari 251 preview (wpt@2c385f65e, 2026-09-04) | Ladybird 1.0-70fb3 (wpt@4a01b83e3, 2026-09-04) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 327/327 | 220/327 | 327/327 | 315/327 | 223/327 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| # AUDIT TASK RUNNER STARTED. | PASS | PASS | PASS | PASS | PASS | — |
| Executing "initialize" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createGain" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createDelay" | PASS | PASS | PASS | PASS | FAIL | — |
| Executing "Offline createBufferSource" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createStereoPanner" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createDynamicsCompressor" | PASS | PASS | PASS | PASS | FAIL | — |
| Executing "Offline createBiquadFilter" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createOscillator" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createPanner" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createConstantSource" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createBuffer" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createIIRFilter" | PASS | PASS | PASS | FAIL | PASS | — |
| Executing "Offline createWaveShaper" | PASS | PASS | PASS | FAIL | FAIL | — |
| Executing "Offline createConvolver" | PASS | PASS | PASS | FAIL | FAIL | — |
| Executing "Offline createAnalyser" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createScriptProcessor" | PASS | PASS | PASS | PASS | FAIL | — |
| Executing "Offline createPeriodicWave" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createChannelSplitter" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Offline createChannelMerger" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Online createMediaElementSource" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "Online createMediaStreamDestination" | PASS | PASS | PASS | FAIL | PASS | — |
| Executing "AudioListener" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "verifyTests" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "automation" | PASS | PASS | PASS | PASS | PASS | — |
| Audit report | PASS | PASS | PASS | PASS | PASS | — |
| > [initialize] | PASS | PASS | PASS | PASS | PASS | — |
| Create offline context for tests did not throw an exception. | PASS | PASS | PASS | PASS | PASS | — |
| Create online context for tests did not throw an exception. | PASS | PASS | PASS | PASS | PASS | — |
| < [initialize] All assertions passed. (total 2 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Offline createGain] | PASS | PASS | PASS | PASS | PASS | — |
| GainNode.gain.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| GainNode.gain.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| GainNode.gain.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| GainNode.gain.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| GainNode.gain.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| GainNode.gain.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| Nominal ranges for AudioParam(s) of GainNode are correct | PASS | PASS | PASS | PASS | PASS | — |
| < [Offline createGain] All assertions passed. (total 7 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Offline createDelay] | PASS | PASS | PASS | PASS | PASS | — |
| DelayNode.delayTime.minValue is equal to 0. | PASS | PASS | PASS | PASS | — | — |
| DelayNode.delayTime.maxValue is equal to 1.5. | PASS | PASS | PASS | PASS | — | — |
| DelayNode.delayTime.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DelayNode.delayTime.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| DelayNode.delayTime.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DelayNode.delayTime.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| Set DelayNode.delayTime.value = -1 is equal to 0. | PASS | — | PASS | PASS | — | — |
| Set DelayNode.delayTime.value = 4 is equal to 1.5. | PASS | — | PASS | PASS | — | — |
| DelayNode.delayTime was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| Nominal ranges for AudioParam(s) of DelayNode are correct | PASS | — | PASS | PASS | — | — |
| < [Offline createDelay] All assertions passed. (total 10 assertions) | PASS | — | PASS | PASS | — | — |
| > [Offline createBufferSource] | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.playbackRate.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.playbackRate.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.playbackRate.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.playbackRate.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.playbackRate.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.playbackRate.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.detune.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.detune.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.detune.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.detune.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.detune.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| AudioBufferSourceNode.detune.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| Nominal ranges for AudioParam(s) of AudioBufferSourceNode are correct | PASS | PASS | PASS | PASS | PASS | — |
| < [Offline createBufferSource] All assertions passed. (total 13 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Offline createStereoPanner] | PASS | PASS | PASS | PASS | PASS | — |
| StereoPannerNode.pan.minValue is equal to -1. | PASS | PASS | PASS | PASS | PASS | — |
| StereoPannerNode.pan.maxValue is equal to 1. | PASS | PASS | PASS | PASS | PASS | — |
| StereoPannerNode.pan.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| StereoPannerNode.pan.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| StereoPannerNode.pan.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| StereoPannerNode.pan.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| Set StereoPannerNode.pan.value = -3 is equal to -1. | PASS | — | PASS | PASS | — | — |
| Set StereoPannerNode.pan.value = 3 is equal to 1. | PASS | — | PASS | PASS | — | — |
| StereoPannerNode.pan was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| Nominal ranges for AudioParam(s) of StereoPannerNode are correct | PASS | — | PASS | PASS | — | — |
| < [Offline createStereoPanner] All assertions passed. (total 10 assertions) | PASS | — | PASS | PASS | — | — |
| > [Offline createDynamicsCompressor] | PASS | PASS | PASS | PASS | PASS | — |
| DynamicsCompressorNode.threshold.minValue is equal to -100. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.threshold.maxValue is equal to 0. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.threshold.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.threshold.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.threshold.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.threshold.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| Set DynamicsCompressorNode.threshold.value = -201 is equal to -100. | PASS | — | PASS | PASS | — | — |
| Set DynamicsCompressorNode.threshold.value = 1 is equal to 0. | PASS | — | PASS | PASS | — | — |
| DynamicsCompressorNode.threshold was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| DynamicsCompressorNode.knee.minValue is equal to 0. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.knee.maxValue is equal to 40. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.knee.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.knee.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.knee.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.knee.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| Set DynamicsCompressorNode.knee.value = -1 is equal to 0. | PASS | — | PASS | PASS | — | — |
| Set DynamicsCompressorNode.knee.value = 81 is equal to 40. | PASS | — | PASS | PASS | — | — |
| DynamicsCompressorNode.knee was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| DynamicsCompressorNode.ratio.minValue is equal to 1. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.ratio.maxValue is equal to 20. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.ratio.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.ratio.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.ratio.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.ratio.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| Set DynamicsCompressorNode.ratio.value = 1 is equal to 1. | PASS | PASS | PASS | PASS | — | — |
| Set DynamicsCompressorNode.ratio.value = 41 is equal to 20. | PASS | — | PASS | PASS | — | — |
| DynamicsCompressorNode.ratio was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| DynamicsCompressorNode.attack.minValue is equal to 0. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.attack.maxValue is equal to 1. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.attack.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.attack.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.attack.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.attack.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| Set DynamicsCompressorNode.attack.value = -1 is equal to 0. | PASS | — | PASS | PASS | — | — |
| Set DynamicsCompressorNode.attack.value = 3 is equal to 1. | PASS | — | PASS | PASS | — | — |
| DynamicsCompressorNode.attack was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| DynamicsCompressorNode.release.minValue is equal to 0. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.release.maxValue is equal to 1. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.release.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.release.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.release.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | — | — |
| DynamicsCompressorNode.release.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | — | — |
| Set DynamicsCompressorNode.release.value = -1 is equal to 0. | PASS | — | PASS | PASS | — | — |
| Set DynamicsCompressorNode.release.value = 3 is equal to 1. | PASS | — | PASS | PASS | — | — |
| DynamicsCompressorNode.release was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| Nominal ranges for AudioParam(s) of DynamicsCompressorNode are correct | PASS | — | PASS | PASS | — | — |
| < [Offline createDynamicsCompressor] All assertions passed. (total 46 assertions) | PASS | — | PASS | PASS | — | — |
| > [Offline createBiquadFilter] | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.frequency.minValue is equal to 0. | PASS | — | PASS | PASS | — | — |
| BiquadFilterNode.frequency.maxValue is equal to 24000. | PASS | PASS | PASS | PASS | — | — |
| BiquadFilterNode.frequency.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.frequency.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.frequency.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.frequency.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| Set BiquadFilterNode.frequency.value = -1 is equal to 0. | PASS | — | PASS | PASS | — | — |
| Set BiquadFilterNode.frequency.value = 48001 is equal to 24000. | PASS | — | PASS | PASS | — | — |
| BiquadFilterNode.frequency was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| BiquadFilterNode.detune.minValue is equal to -153600. | PASS | — | PASS | PASS | — | — |
| BiquadFilterNode.detune.maxValue is equal to 153600. | PASS | — | PASS | PASS | — | — |
| BiquadFilterNode.detune.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.detune.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.detune.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.detune.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| Set BiquadFilterNode.detune.value = -307201 is equal to -153600. | PASS | — | PASS | PASS | — | — |
| Set BiquadFilterNode.detune.value = 307201 is equal to 153600. | PASS | — | PASS | PASS | — | — |
| BiquadFilterNode.detune was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| BiquadFilterNode.Q.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.Q.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.Q.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.Q.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.Q.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.Q.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.gain.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.gain.maxValue is equal to 1541.273681640625. | PASS | — | PASS | PASS | — | — |
| BiquadFilterNode.gain.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.gain.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.gain.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| BiquadFilterNode.gain.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| Set BiquadFilterNode.gain.value = 3083.54736328125 is equal to 1541.273681640625. | PASS | — | PASS | PASS | — | — |
| BiquadFilterNode.gain was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| Nominal ranges for AudioParam(s) of BiquadFilterNode are correct | PASS | — | PASS | PASS | — | — |
| < [Offline createBiquadFilter] All assertions passed. (total 33 assertions) | PASS | — | PASS | PASS | — | — |
| > [Offline createOscillator] | PASS | PASS | PASS | PASS | PASS | — |
| OscillatorNode.frequency.minValue is equal to -24000. | PASS | PASS | PASS | PASS | — | — |
| OscillatorNode.frequency.maxValue is equal to 24000. | PASS | PASS | PASS | PASS | — | — |
| OscillatorNode.frequency.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| OscillatorNode.frequency.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| OscillatorNode.frequency.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| OscillatorNode.frequency.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| Set OscillatorNode.frequency.value = -48001 is equal to -24000. | PASS | — | PASS | PASS | — | — |
| Set OscillatorNode.frequency.value = 48001 is equal to 24000. | PASS | — | PASS | PASS | — | — |
| OscillatorNode.frequency was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| OscillatorNode.detune.minValue is equal to -153600. | PASS | — | PASS | PASS | — | — |
| OscillatorNode.detune.maxValue is equal to 153600. | PASS | — | PASS | PASS | — | — |
| OscillatorNode.detune.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| OscillatorNode.detune.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| OscillatorNode.detune.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| OscillatorNode.detune.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| Set OscillatorNode.detune.value = -307201 is equal to -153600. | PASS | — | PASS | PASS | — | — |
| Set OscillatorNode.detune.value = 307201 is equal to 153600. | PASS | — | PASS | PASS | — | — |
| OscillatorNode.detune was clipped to lie within the nominal range is equal to true. | PASS | — | PASS | PASS | — | — |
| Nominal ranges for AudioParam(s) of OscillatorNode are correct | PASS | — | PASS | PASS | — | — |
| < [Offline createOscillator] All assertions passed. (total 19 assertions) | PASS | — | PASS | PASS | — | — |
| > [Offline createPanner] | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionX.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionX.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionX.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionX.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionX.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionX.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionY.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionY.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionY.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionY.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionY.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionY.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionZ.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionZ.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionZ.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionZ.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionZ.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.positionZ.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationX.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationX.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationX.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationX.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationX.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationX.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationY.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationY.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationY.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationY.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationY.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationY.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationZ.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationZ.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationZ.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationZ.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationZ.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| PannerNode.orientationZ.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| Nominal ranges for AudioParam(s) of PannerNode are correct | PASS | PASS | PASS | PASS | PASS | — |
| < [Offline createPanner] All assertions passed. (total 37 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Offline createConstantSource] | PASS | PASS | PASS | PASS | PASS | — |
| ConstantSourceNode.offset.minValue is equal to -3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| ConstantSourceNode.offset.maxValue is equal to 3.4028234663852886e+38. | PASS | PASS | PASS | PASS | PASS | — |
| ConstantSourceNode.offset.minValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| ConstantSourceNode.offset.minValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| ConstantSourceNode.offset.maxValue = 42 is not equal to 42. | PASS | PASS | PASS | PASS | PASS | — |
| ConstantSourceNode.offset.maxValue is read-only is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| Nominal ranges for AudioParam(s) of ConstantSourceNode are correct | PASS | PASS | PASS | PASS | PASS | — |
| < [Offline createConstantSource] All assertions passed. (total 7 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Offline createBuffer] | PASS | PASS | PASS | PASS | PASS | — |
| AudioBuffer has no AudioParams as expected | PASS | PASS | PASS | PASS | PASS | — |
| < [Offline createBuffer] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Offline createIIRFilter] | PASS | PASS | PASS | PASS | PASS | — |
| IIRFilterNode has no AudioParams as expected | PASS | PASS | PASS | — | PASS | — |
| < [Offline createIIRFilter] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | — | PASS | — |
| > [Offline createWaveShaper] | PASS | PASS | PASS | PASS | PASS | — |
| WaveShaperNode has no AudioParams as expected | PASS | PASS | PASS | — | — | — |
| < [Offline createWaveShaper] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | — | — | — |
| > [Offline createConvolver] | PASS | PASS | PASS | PASS | PASS | — |
| ConvolverNode has no AudioParams as expected | PASS | PASS | PASS | — | — | — |
| < [Offline createConvolver] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | — | — | — |
| > [Offline createAnalyser] | PASS | PASS | PASS | PASS | PASS | — |
| AnalyserNode has no AudioParams as expected | PASS | PASS | PASS | PASS | PASS | — |
| < [Offline createAnalyser] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Offline createScriptProcessor] | PASS | PASS | PASS | PASS | PASS | — |
| ScriptProcessorNode has no AudioParams as expected | PASS | PASS | PASS | PASS | — | — |
| < [Offline createScriptProcessor] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | — | — |
| > [Offline createPeriodicWave] | PASS | PASS | PASS | PASS | PASS | — |
| PeriodicWave has no AudioParams as expected | PASS | PASS | PASS | PASS | PASS | — |
| < [Offline createPeriodicWave] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Offline createChannelSplitter] | PASS | PASS | PASS | PASS | PASS | — |
| ChannelSplitterNode has no AudioParams as expected | PASS | PASS | PASS | PASS | PASS | — |
| < [Offline createChannelSplitter] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Offline createChannelMerger] | PASS | PASS | PASS | PASS | PASS | — |
| ChannelMergerNode has no AudioParams as expected | PASS | PASS | PASS | PASS | PASS | — |
| < [Offline createChannelMerger] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Online createMediaElementSource] | PASS | PASS | PASS | PASS | PASS | — |
| MediaElementAudioSourceNode has no AudioParams as expected | PASS | PASS | PASS | PASS | PASS | — |
| < [Online createMediaElementSource] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [Online createMediaStreamDestination] | PASS | PASS | PASS | PASS | PASS | — |
| MediaStreamAudioDestinationNode has no AudioParams as expected | PASS | PASS | PASS | — | PASS | — |
| < [Online createMediaStreamDestination] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | — | PASS | — |
| > [AudioListener] | PASS | PASS | PASS | PASS | PASS | — |
| AudioListener.positionX.minValue is equal to -3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionX.maxValue is equal to 3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionX.minValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionX.minValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionX.maxValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionX.maxValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionY.minValue is equal to -3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionY.maxValue is equal to 3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionY.minValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionY.minValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionY.maxValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionY.maxValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionZ.minValue is equal to -3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionZ.maxValue is equal to 3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionZ.minValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionZ.minValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionZ.maxValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.positionZ.maxValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardX.minValue is equal to -3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardX.maxValue is equal to 3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardX.minValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardX.minValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardX.maxValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardX.maxValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardY.minValue is equal to -3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardY.maxValue is equal to 3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardY.minValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardY.minValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardY.maxValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardY.maxValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardZ.minValue is equal to -3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardZ.maxValue is equal to 3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardZ.minValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardZ.minValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardZ.maxValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.forwardZ.maxValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upX.minValue is equal to -3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upX.maxValue is equal to 3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upX.minValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upX.minValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upX.maxValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upX.maxValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upY.minValue is equal to -3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upY.maxValue is equal to 3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upY.minValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upY.minValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upY.maxValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upY.maxValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upZ.minValue is equal to -3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upZ.maxValue is equal to 3.4028234663852886e+38. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upZ.minValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upZ.minValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upZ.maxValue = 42 is not equal to 42. | PASS | — | PASS | PASS | PASS | — |
| AudioListener.upZ.maxValue is read-only is equal to true. | PASS | — | PASS | PASS | PASS | — |
| Nominal ranges for AudioParam(s) of AudioListener are correct | PASS | — | PASS | PASS | PASS | — |
| < [AudioListener] All assertions passed. (total 55 assertions) | PASS | — | PASS | PASS | PASS | — |
| > [verifyTests] | PASS | PASS | PASS | PASS | PASS | — |
| Number of nodes not tested : 0 | PASS | PASS | PASS | PASS | PASS | — |
| < [verifyTests] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [automation] | PASS | PASS | PASS | PASS | PASS | — |
| Test automations (check console logs) did not throw an exception. | PASS | PASS | PASS | PASS | — | — |
| < [automation] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | — | — |
| # AUDIT TASK RUNNER FINISHED: 24 tasks ran successfully. | PASS | — | PASS | PASS | — | — |
| X Set DelayNode.delayTime.value = -1 is not equal to 0. Got -1. | — | FAIL | — | — | — | — |
| X Set DelayNode.delayTime.value = 4 is not equal to 1.5. Got 4. | — | FAIL | — | — | — | — |
| X DelayNode.delayTime was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | — | — |
| X Nominal ranges for AudioParam(s) of DelayNode are incorrect for: NaN Got false. | — | FAIL | — | — | — | — |
| < [Offline createDelay] 4 out of 10 assertions were failed. | — | FAIL | — | — | — | — |
| X Set StereoPannerNode.pan.value = -3 is not equal to -1. Got -3. | — | FAIL | — | — | FAIL | — |
| X Set StereoPannerNode.pan.value = 3 is not equal to 1. Got 3. | — | FAIL | — | — | FAIL | — |
| X StereoPannerNode.pan was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | FAIL | — |
| X Nominal ranges for AudioParam(s) of StereoPannerNode are incorrect for: NaN Got false. | — | FAIL | — | — | FAIL | — |
| < [Offline createStereoPanner] 4 out of 10 assertions were failed. | — | FAIL | — | — | FAIL | — |
| X Set DynamicsCompressorNode.threshold.value = -201 is not equal to -100. Got -201. | — | FAIL | — | — | — | — |
| X Set DynamicsCompressorNode.threshold.value = 1 is not equal to 0. Got 1. | — | FAIL | — | — | — | — |
| X DynamicsCompressorNode.threshold was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | — | — |
| X Set DynamicsCompressorNode.knee.value = -1 is not equal to 0. Got -1. | — | FAIL | — | — | — | — |
| X Set DynamicsCompressorNode.knee.value = 81 is not equal to 40. Got 81. | — | FAIL | — | — | — | — |
| X DynamicsCompressorNode.knee was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | — | — |
| X Set DynamicsCompressorNode.ratio.value = 41 is not equal to 20. Got 41. | — | FAIL | — | — | — | — |
| X DynamicsCompressorNode.ratio was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | — | — |
| X Set DynamicsCompressorNode.attack.value = -1 is not equal to 0. Got -1. | — | FAIL | — | — | — | — |
| X Set DynamicsCompressorNode.attack.value = 3 is not equal to 1. Got 3. | — | FAIL | — | — | — | — |
| X DynamicsCompressorNode.attack was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | — | — |
| X Set DynamicsCompressorNode.release.value = -1 is not equal to 0. Got -1. | — | FAIL | — | — | — | — |
| X Set DynamicsCompressorNode.release.value = 3 is not equal to 1. Got 3. | — | FAIL | — | — | — | — |
| X DynamicsCompressorNode.release was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | — | — |
| X Nominal ranges for AudioParam(s) of DynamicsCompressorNode are incorrect for: NaN Got false. | — | FAIL | — | — | — | — |
| < [Offline createDynamicsCompressor] 15 out of 46 assertions were failed. | — | FAIL | — | — | — | — |
| X BiquadFilterNode.frequency.minValue is not equal to 0. Got -24000. | — | FAIL | — | — | — | — |
| X Set BiquadFilterNode.frequency.value = -1 is not equal to -24000. Got -1. | — | FAIL | — | — | — | — |
| X Set BiquadFilterNode.frequency.value = 48001 is not equal to 24000. Got 48001. | — | FAIL | — | — | — | — |
| X BiquadFilterNode.frequency was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | FAIL | — |
| X BiquadFilterNode.detune.minValue is not equal to -153600. Got -3.4028234663852886e+38. | — | FAIL | — | — | FAIL | — |
| X BiquadFilterNode.detune.maxValue is not equal to 153600. Got 3.4028234663852886e+38. | — | FAIL | — | — | FAIL | — |
| X Set BiquadFilterNode.detune.value = -307201 is not equal to -3.4028234663852886e+38. Got -307201. | — | FAIL | — | — | FAIL | — |
| X Set BiquadFilterNode.detune.value = 307201 is not equal to 3.4028234663852886e+38. Got 307201. | — | FAIL | — | — | FAIL | — |
| X BiquadFilterNode.detune was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | FAIL | — |
| X BiquadFilterNode.gain.maxValue is not equal to 1541.273681640625. Got 3.4028234663852886e+38. | — | FAIL | — | — | FAIL | — |
| X Set BiquadFilterNode.gain.value = 3083.54736328125 is not equal to 3.4028234663852886e+38. Got 3083.54736328125. | — | FAIL | — | — | FAIL | — |
| X BiquadFilterNode.gain was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | FAIL | — |
| X Nominal ranges for AudioParam(s) of BiquadFilterNode are incorrect for: NaN Got false. | — | FAIL | — | — | FAIL | — |
| < [Offline createBiquadFilter] 13 out of 33 assertions were failed. | — | FAIL | — | — | — | — |
| X Set OscillatorNode.frequency.value = -48001 is not equal to -24000. Got -48001. | — | FAIL | — | — | — | — |
| X Set OscillatorNode.frequency.value = 48001 is not equal to 24000. Got 48001. | — | FAIL | — | — | — | — |
| X OscillatorNode.frequency was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | FAIL | — |
| X OscillatorNode.detune.minValue is not equal to -153600. Got -3.4028234663852886e+38. | — | FAIL | — | — | — | — |
| X OscillatorNode.detune.maxValue is not equal to 153600. Got 3.4028234663852886e+38. | — | FAIL | — | — | — | — |
| X Set OscillatorNode.detune.value = -307201 is not equal to -3.4028234663852886e+38. Got -307201. | — | FAIL | — | — | — | — |
| X Set OscillatorNode.detune.value = 307201 is not equal to 3.4028234663852886e+38. Got 307201. | — | FAIL | — | — | — | — |
| X OscillatorNode.detune was clipped to lie within the nominal range is not equal to true. Got false. | — | FAIL | — | — | FAIL | — |
| X Nominal ranges for AudioParam(s) of OscillatorNode are incorrect for: NaN Got false. | — | FAIL | — | — | FAIL | — |
| < [Offline createOscillator] 9 out of 19 assertions were failed. | — | FAIL | — | — | — | — |
| X AudioListener has no AudioParams but test expected [object Object] Got false. | — | FAIL | — | — | — | — |
| < [AudioListener] 1 out of 1 assertions were failed. | — | FAIL | — | — | — | — |
| # AUDIT TASK RUNNER FINISHED: 6 out of 24 tasks were failed. | — | FAIL | — | — | — | — |
| X BiquadFilterNode.frequency.minValue is not equal to 0. Got -3.4028234663852886e+38. | — | — | — | — | FAIL | — |
| X BiquadFilterNode.frequency.maxValue is not equal to 24000. Got 3.4028234663852886e+38. | — | — | — | — | FAIL | — |
| X Set BiquadFilterNode.frequency.value = -1 is not equal to -3.4028234663852886e+38. Got -1. | — | — | — | — | FAIL | — |
| X Set BiquadFilterNode.frequency.value = 48001 is not equal to 3.4028234663852886e+38. Got 48001. | — | — | — | — | FAIL | — |
| < [Offline createBiquadFilter] 14 out of 33 assertions were failed. | — | — | — | — | FAIL | — |
| X OscillatorNode.frequency.minValue is not equal to -24000. Got -3.4028234663852886e+38. | — | — | — | — | FAIL | — |
| X OscillatorNode.frequency.maxValue is not equal to 24000. Got 3.4028234663852886e+38. | — | — | — | — | FAIL | — |
| X Set OscillatorNode.frequency.value = -48001 is not equal to -3.4028234663852886e+38. Got -48001. | — | — | — | — | FAIL | — |
| X Set OscillatorNode.frequency.value = 48001 is not equal to 3.4028234663852886e+38. Got 48001. | — | — | — | — | FAIL | — |
| X OscillatorNode.detune.minValue is not equal to -153600. Got -220. | — | — | — | — | FAIL | — |
| X OscillatorNode.detune.maxValue is not equal to 153600. Got 220. | — | — | — | — | FAIL | — |
| X Set OscillatorNode.detune.value = -307201 is not equal to -220. Got -307201. | — | — | — | — | FAIL | — |
| X Set OscillatorNode.detune.value = 307201 is not equal to 220. Got 307201. | — | — | — | — | FAIL | — |
| < [Offline createOscillator] 11 out of 19 assertions were failed. | — | — | — | — | FAIL | — |
| X Test automations (check console logs) incorrectly threw TypeError: "offlineContext.createDelay is not a function". | — | — | — | — | FAIL | — |
| < [automation] 1 out of 1 assertions were failed. | — | — | — | — | FAIL | — |
| # AUDIT TASK RUNNER FINISHED: 4 out of 24 tasks were failed. | — | — | — | — | FAIL | — |