webaudio: Less Than 2 Passes

Test files without 2 passes: 174; Subtests without 2 passes: 5746; Failure level: 5746/5746 (100.00%)

Test Files

  1. /webaudio/the-audio-api/the-audioparam-interface/audioparam-setTargetAtTime.html (106/106, 100.00%, 1.84% of total)
  2. /webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse.html (16/16, 100.00%, 0.28% of total)
  3. /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan.html (25/25, 100.00%, 0.44% of total)
  4. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail.html (5/5, 100.00%, 0.09% of total)
  5. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits.html (8/8, 100.00%, 0.14% of total)
  6. /webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html (13/13, 100.00%, 0.23% of total)
  7. /webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions.html (25/25, 100.00%, 0.44% of total)
  8. /webaudio/the-audio-api/the-gainnode-interface/gain.html (10/10, 100.00%, 0.17% of total)
  9. /webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html (64/64, 100.00%, 1.11% of total)
  10. /webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping.html (46/46, 100.00%, 0.80% of total)
  11. /webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining.html (19/19, 100.00%, 0.33% of total)
  12. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-construction.https.html (9/9, 100.00%, 0.16% of total)
  13. /webaudio/the-audio-api/the-analysernode-interface/ctor-analyser.html (70/70, 100.00%, 1.22% of total)
  14. /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html (56/56, 100.00%, 0.97% of total)
  15. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse.html (17/17, 100.00%, 0.30% of total)
  16. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended.html (14/14, 100.00%, 0.24% of total)
  17. /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-reuse.html (1/1, 100.00%, 0.02% of total)
  18. /webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad.html (55/55, 100.00%, 0.96% of total)
  19. /webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html (14/14, 100.00%, 0.24% of total)
  20. /webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html (1/1, 100.00%, 0.02% of total)
  21. /webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner.html (12/12, 100.00%, 0.21% of total)
  22. /webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.html (57/57, 100.00%, 0.99% of total)
  23. /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect.html (7/7, 100.00%, 0.12% of total)
  24. /webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https.html (11/11, 100.00%, 0.19% of total)
  25. /webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.html (41/41, 100.00%, 0.71% of total)
  26. /webaudio/the-audio-api/the-pannernode-interface/distance-linear.html (106/106, 100.00%, 1.84% of total)
  27. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass.html (7/7, 100.00%, 0.12% of total)
  28. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowshelf.html (7/7, 100.00%, 0.12% of total)
  29. /webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic.html (40/40, 100.00%, 0.70% of total)
  30. /webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html (26/26, 100.00%, 0.45% of total)
  31. /webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelay.html (5/5, 100.00%, 0.09% of total)
  32. /webaudio/the-audio-api/the-audionode-interface/audionode-connect-order.html (6/6, 100.00%, 0.10% of total)
  33. /webaudio/the-audio-api/the-audionode-interface/audionode.html (16/16, 100.00%, 0.28% of total)
  34. /webaudio/idlharness.https.window.html (1115/1115, 100.00%, 19.40% of total)
  35. /webaudio/the-audio-api/the-pannernode-interface/panner-automation-position.html (34/34, 100.00%, 0.59% of total)
  36. /webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting.html (13/13, 100.00%, 0.23% of total)
  37. /webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter.html (16/16, 100.00%, 0.28% of total)
  38. /webaudio/the-audio-api/the-delaynode-interface/no-dezippering.html (15/15, 100.00%, 0.26% of total)
  39. /webaudio/the-audio-api/the-biquadfilternode-interface/ctor-biquadfilter.html (54/54, 100.00%, 0.94% of total)
  40. /webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html (2/2, 100.00%, 0.03% of total)
  41. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-allpass.html (7/7, 100.00%, 0.12% of total)
  42. /webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger.html (43/43, 100.00%, 0.75% of total)
  43. /webaudio/the-audio-api/the-audioparam-interface/automation-rate.html (111/111, 100.00%, 1.93% of total)
  44. /webaudio/the-audio-api/the-audioparam-interface/k-rate-delay.html (12/12, 100.00%, 0.21% of total)
  45. /webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html (6/6, 100.00%, 0.10% of total)
  46. /webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions.html (54/54, 100.00%, 0.94% of total)
  47. /webaudio/the-audio-api/the-gainnode-interface/ctor-gain.html (50/50, 100.00%, 0.87% of total)
  48. /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html (25/25, 100.00%, 0.44% of total)
  49. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/sample-accurate-scheduling.html (16/16, 100.00%, 0.28% of total)
  50. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.html (12/12, 100.00%, 0.21% of total)
  51. /webaudio/the-audio-api/the-pannernode-interface/panner-equalpower-stereo.html (8/8, 100.00%, 0.14% of total)
  52. /webaudio/the-audio-api/the-stereopanner-interface/ctor-stereopanner.html (45/45, 100.00%, 0.78% of total)
  53. /webaudio/the-audio-api/the-audioparam-interface/audioparam-exceptional-values.html (59/59, 100.00%, 1.03% of total)
  54. /webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size.html (1/1, 100.00%, 0.02% of total)
  55. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop.html (5/5, 100.00%, 0.09% of total)
  56. /webaudio/the-audio-api/the-pannernode-interface/panner-automation-equalpower-stereo.html (8/8, 100.00%, 0.14% of total)
  57. /webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html (1/1, 100.00%, 0.02% of total)
  58. /webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-basic.html (37/37, 100.00%, 0.64% of total)
  59. /webaudio/the-audio-api/the-audioparam-interface/retrospective-exponentialRampToValueAtTime.html (7/7, 100.00%, 0.12% of total)
  60. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-constructor-options.https.html (37/37, 100.00%, 0.64% of total)
  61. /webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html (1/1, 100.00%, 0.02% of total)
  62. /webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html (1/1, 100.00%, 0.02% of total)
  63. /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input.html (30/30, 100.00%, 0.52% of total)
  64. /webaudio/the-audio-api/the-pannernode-interface/panner-equalpower.html (14/14, 100.00%, 0.24% of total)
  65. /webaudio/the-audio-api/the-audioparam-interface/k-rate-gain.html (12/12, 100.00%, 0.21% of total)
  66. /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam.https.html (9/9, 100.00%, 0.16% of total)
  67. /webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source.html (16/16, 100.00%, 0.28% of total)
  68. /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan.html (28/28, 100.00%, 0.49% of total)
  69. /webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html (7/7, 100.00%, 0.12% of total)
  70. /webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueAtTime.html (106/106, 100.00%, 1.84% of total)
  71. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-disconnected-input.https.html (8/8, 100.00%, 0.14% of total)
  72. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling.html (6/6, 100.00%, 0.10% of total)
  73. /webaudio/the-audio-api/the-delaynode-interface/ctor-delay.html (47/47, 100.00%, 0.82% of total)
  74. /webaudio/the-audio-api/the-pannernode-interface/pannernode-basic.html (60/60, 100.00%, 1.04% of total)
  75. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/ctor-audiobuffersource.html (38/38, 100.00%, 0.66% of total)
  76. /webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit.html (10/10, 100.00%, 0.17% of total)
  77. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.html (11/11, 100.00%, 0.19% of total)
  78. /webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono.html (8/8, 100.00%, 0.14% of total)
  79. /webaudio/the-audio-api/the-audioparam-interface/audioparam-summingjunction.html (6/6, 100.00%, 0.10% of total)
  80. /webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling.html (5/5, 100.00%, 0.09% of total)
  81. /webaudio/the-audio-api/the-convolvernode-interface/convolver-channels.html (36/36, 100.00%, 0.63% of total)
  82. /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer.html (15/15, 100.00%, 0.26% of total)
  83. /webaudio/the-audio-api/the-delaynode-interface/delaynode-max-nondefault-delay.html (5/5, 100.00%, 0.09% of total)
  84. /webaudio/the-audio-api/the-pannernode-interface/distance-exponential.html (106/106, 100.00%, 1.84% of total)
  85. /webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block.html (1/1, 100.00%, 0.02% of total)
  86. /webaudio/the-audio-api/the-delaynode-interface/delaynode.html (10/10, 100.00%, 0.17% of total)
  87. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/note-grain-on-timing.html (109/109, 100.00%, 1.90% of total)
  88. /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html (6/6, 100.00%, 0.10% of total)
  89. /webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-output.html (24/24, 100.00%, 0.42% of total)
  90. /webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html (10/10, 100.00%, 0.17% of total)
  91. /webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html (6/6, 100.00%, 0.10% of total)
  92. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highshelf.html (7/7, 100.00%, 0.12% of total)
  93. /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-basic.html (14/14, 100.00%, 0.24% of total)
  94. /webaudio/the-audio-api/the-waveshapernode-interface/silent-inputs.html (11/11, 100.00%, 0.19% of total)
  95. /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html (27/27, 100.00%, 0.47% of total)
  96. /webaudio/the-audio-api/the-audionode-interface/audionode-disconnect.html (32/32, 100.00%, 0.56% of total)
  97. /webaudio/the-audio-api/the-iirfilternode-interface/test-iirfilternode.html (8/8, 100.00%, 0.14% of total)
  98. /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-size.https.html (12/12, 100.00%, 0.21% of total)
  99. /webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html (5/5, 100.00%, 0.09% of total)
  100. /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-getChannelData.html (10/10, 100.00%, 0.17% of total)
  101. /webaudio/the-audio-api/the-audioparam-interface/retrospective-setTargetAtTime.html (7/7, 100.00%, 0.12% of total)
  102. /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-addmodule-resolution.https.html (8/8, 100.00%, 0.14% of total)
  103. /webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.html (52/52, 100.00%, 0.90% of total)
  104. /webaudio/the-audio-api/the-gainnode-interface/gain-basic.html (5/5, 100.00%, 0.09% of total)
  105. /webaudio/the-audio-api/the-oscillatornode-interface/ctor-oscillator.html (55/55, 100.00%, 0.96% of total)
  106. /webaudio/historical.html (7/7, 100.00%, 0.12% of total)
  107. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https.html (12/12, 100.00%, 0.21% of total)
  108. /webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block.html (1/1, 100.00%, 0.02% of total)
  109. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-basic.html (16/16, 100.00%, 0.28% of total)
  110. /webaudio/the-audio-api/the-audionode-interface/audionode-channel-rules.html (176/176, 100.00%, 3.06% of total)
  111. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-bandpass.html (7/7, 100.00%, 0.12% of total)
  112. /webaudio/the-audio-api/the-audioparam-interface/audioparam-linearRampToValueAtTime.html (106/106, 100.00%, 1.84% of total)
  113. /webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html (3/3, 100.00%, 0.05% of total)
  114. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-automatic-pull.https.html (6/6, 100.00%, 0.10% of total)
  115. /webaudio/the-audio-api/the-audioparam-interface/k-rate-panner.html (176/176, 100.00%, 3.06% of total)
  116. /webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html (39/39, 100.00%, 0.68% of total)
  117. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-channels.html (20/20, 100.00%, 0.35% of total)
  118. /webaudio/the-audio-api/the-pannernode-interface/distance-inverse.html (106/106, 100.00%, 1.84% of total)
  119. /webaudio/the-audio-api/the-audioworklet-interface/baseaudiocontext-audioworklet.https.html (5/5, 100.00%, 0.09% of total)
  120. /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https.html (8/8, 100.00%, 0.14% of total)
  121. /webaudio/the-audio-api/the-audioparam-interface/audioparam-large-endtime.html (8/8, 100.00%, 0.14% of total)
  122. /webaudio/the-audio-api/the-gainnode-interface/no-dezippering.html (14/14, 100.00%, 0.24% of total)
  123. /webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurveAtTime.html (26/26, 100.00%, 0.45% of total)
  124. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-onerror.https.html (6/6, 100.00%, 0.10% of total)
  125. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start.html (22/22, 100.00%, 0.38% of total)
  126. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass.html (7/7, 100.00%, 0.12% of total)
  127. /webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.html (54/54, 100.00%, 0.94% of total)
  128. /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html (5/5, 100.00%, 0.09% of total)
  129. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/note-grain-on-play.html (210/210, 100.00%, 3.65% of total)
  130. /webaudio/the-audio-api/the-audioparam-interface/event-insertion.html (44/44, 100.00%, 0.77% of total)
  131. /webaudio/the-audio-api/the-iirfilternode-interface/iirfilter.html (54/54, 100.00%, 0.94% of total)
  132. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html (14/14, 100.00%, 0.24% of total)
  133. /webaudio/the-audio-api/the-biquadfilternode-interface/biquadfilternode-basic.html (27/27, 100.00%, 0.47% of total)
  134. /webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueCurveAtTime.html (7/7, 100.00%, 0.12% of total)
  135. /webaudio/the-audio-api/the-convolvernode-interface/convolver-setBuffer-already-has-value.html (10/10, 100.00%, 0.17% of total)
  136. /webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-sizing.html (41/41, 100.00%, 0.71% of total)
  137. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html (8/8, 100.00%, 0.14% of total)
  138. /webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html (10/10, 100.00%, 0.17% of total)
  139. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-notch.html (7/7, 100.00%, 0.12% of total)
  140. /webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation.html (1/1, 100.00%, 0.02% of total)
  141. /webaudio/the-audio-api/the-audioparam-interface/audioparam-exponentialRampToValueAtTime.html (106/106, 100.00%, 1.84% of total)
  142. /webaudio/the-audio-api/the-convolvernode-interface/convolver-setBuffer-null.html (6/6, 100.00%, 0.10% of total)
  143. /webaudio/the-audio-api/the-convolvernode-interface/convolver-cascade.html (5/5, 100.00%, 0.09% of total)
  144. /webaudio/the-audio-api/the-dynamicscompressornode-interface/dynamicscompressor-basic.html (11/11, 100.00%, 0.19% of total)
  145. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-basic.html (24/24, 100.00%, 0.42% of total)
  146. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-ended.html (5/5, 100.00%, 0.09% of total)
  147. /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html (6/6, 100.00%, 0.10% of total)
  148. /webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator.html (8/8, 100.00%, 0.14% of total)
  149. /webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-onended.html (1/1, 100.00%, 0.02% of total)
  150. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-peaking.html (7/7, 100.00%, 0.12% of total)
  151. /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default.html (29/29, 100.00%, 0.50% of total)
  152. /webaudio/the-audio-api/the-iirfilternode-interface/ctor-iirfilter.html (48/48, 100.00%, 0.84% of total)
  153. /webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic.html (130/130, 100.00%, 2.26% of total)
  154. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-grain.html (5/5, 100.00%, 0.09% of total)
  155. /webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam.html (17/17, 100.00%, 0.30% of total)
  156. /webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic.html (10/10, 100.00%, 0.17% of total)
  157. /webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html (7/7, 100.00%, 0.12% of total)
  158. /webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html (1/1, 100.00%, 0.02% of total)
  159. /webaudio/the-audio-api/the-constantsourcenode-interface/ctor-constantsource.html (20/20, 100.00%, 0.35% of total)
  160. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-zero.html (5/5, 100.00%, 0.09% of total)
  161. /webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-basic.html (11/11, 100.00%, 0.19% of total)
  162. /webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter.html (38/38, 100.00%, 0.66% of total)
  163. /webaudio/the-audio-api/the-waveshapernode-interface/ctor-waveshaper.html (48/48, 100.00%, 0.84% of total)
  164. /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume.html (27/27, 100.00%, 0.47% of total)
  165. /webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html (32/32, 100.00%, 0.56% of total)
  166. /webaudio/the-audio-api/the-audionode-interface/audionode-connect-return-value.html (1/1, 100.00%, 0.02% of total)
  167. /webaudio/the-audio-api/the-pannernode-interface/panner-rolloff-clamping.html (5/5, 100.00%, 0.09% of total)
  168. /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-getoutputtimestamp.html (8/8, 100.00%, 0.14% of total)
  169. /webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain.html (1/1, 100.00%, 0.02% of total)
  170. /webaudio/the-audio-api/the-pannernode-interface/ctor-panner.html (101/101, 100.00%, 1.76% of total)
  171. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-automation.html (20/20, 100.00%, 0.35% of total)
  172. /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html (16/16, 100.00%, 0.28% of total)
  173. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.html (5/5, 100.00%, 0.09% of total)
  174. /webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime.html (7/7, 100.00%, 0.12% of total)
Test Show/Hide MessagesCh73
/webaudio/the-audio-api/the-audioparam-interface/audioparam-setTargetAtTime.html (106/106, 100.00%, 1.84% of total)OK
Max error for test 0 at offset 642 is less than or equal to 0.00065683.PASS
Max error for test 1 at offset 1783 is less than or equal to 0.00065683.PASS
Max error for test 10 at offset 13565 is less than or equal to 0.00065683.PASS
Max error for test 11 at offset 15329 is less than or equal to 0.00065683.PASS
Max error for test 12 at offset 16518 is less than or equal to 0.00065683.PASS
Max error for test 13 at offset 17659 is less than or equal to 0.00065683.PASS
Max error for test 14 at offset 19785 is less than or equal to 0.00065683.PASS
Max error for test 15 at offset 21022 is less than or equal to 0.00065683.PASS
Max error for test 16 at offset 21810 is less than or equal to 0.00065683.PASS
Max error for test 17 at offset 22951 is less than or equal to 0.00065683.PASS
Max error for test 18 at offset 24599 is less than or equal to 0.00065683.PASS
Max error for test 19 at offset 26225 is less than or equal to 0.00065683.PASS
Max error for test 2 at offset 2981 is less than or equal to 0.00065683.PASS
Max error for test 20 at offset 27102 is less than or equal to 0.00065683.PASS
Max error for test 21 at offset 28243 is less than or equal to 0.00065683.PASS
Max error for test 22 at offset 29441 is less than or equal to 0.00065683.PASS
Max error for test 23 at offset 31745 is less than or equal to 0.00065683.PASS
Max error for test 24 at offset 32213 is less than or equal to 0.00065683.PASS
Max error for test 25 at offset 33535 is less than or equal to 0.00065683.PASS
Max error for test 26 at offset 34817 is less than or equal to 0.00065683.PASS
Max error for test 27 at offset 36809 is less than or equal to 0.00065683.PASS
Max error for test 28 at offset 37762 is less than or equal to 0.00065683.PASS
Max error for test 29 at offset 39136 is less than or equal to 0.00065683.PASS
Max error for test 3 at offset 4381 is less than or equal to 0.00065683.PASS
Max error for test 30 at offset 41009 is less than or equal to 0.00065683.PASS
Max error for test 31 at offset 41425 is less than or equal to 0.00065683.PASS
Max error for test 32 at offset 42978 is less than or equal to 0.00065683.PASS
Max error for test 33 at offset 44119 is less than or equal to 0.00065683.PASS
Max error for test 34 at offset 46245 is less than or equal to 0.00065683.PASS
Max error for test 35 at offset 46887 is less than or equal to 0.00065683.PASS
Max error for test 36 at offset 48270 is less than or equal to 0.00065683.PASS
Max error for test 37 at offset 50194 is less than or equal to 0.00065683.PASS
Max error for test 38 at offset 50398 is less than or equal to 0.00065683.PASS
Max error for test 39 at offset 52259 is less than or equal to 0.00065683.PASS
Max error for test 4 at offset 5934 is less than or equal to 0.00065683.PASS
Max error for test 40 at offset 54012 is less than or equal to 0.00065683.PASS
Max error for test 41 at offset 55327 is less than or equal to 0.00065683.PASS
Max error for test 42 at offset 56019 is less than or equal to 0.00065683.PASS
Max error for test 43 at offset 57551 is less than or equal to 0.00065683.PASS
Max error for test 44 at offset 59304 is less than or equal to 0.00065683.PASS
Max error for test 45 at offset 60619 is less than or equal to 0.00065683.PASS
Max error for test 46 at offset 61330 is less than or equal to 0.00065683.PASS
Max error for test 47 at offset 62953 is less than or equal to 0.00065683.PASS
Max error for test 48 at offset 64596 is less than or equal to 0.00065683.PASS
Max error for test 49 at offset 65911 is less than or equal to 0.00065683.PASS
Max error for test 5 at offset 7075 is less than or equal to 0.00065683.PASS
Max error for test 50 at offset 66603 is less than or equal to 0.00065683.PASS
Max error for test 51 at offset 68554 is less than or equal to 0.00065683.PASS
Max error for test 52 at offset 69888 is less than or equal to 0.00065683.PASS
Max error for test 53 at offset 71203 is less than or equal to 0.00065683.PASS
Max error for test 54 at offset 71891 is less than or equal to 0.00065683.PASS
Max error for test 55 at offset 73781 is less than or equal to 0.00065683.PASS
Max error for test 56 at offset 75180 is less than or equal to 0.00065683.PASS
Max error for test 57 at offset 76654 is less than or equal to 0.00065683.PASS
Max error for test 58 at offset 77187 is less than or equal to 0.00065683.PASS
Max error for test 59 at offset 79141 is less than or equal to 0.00065683.PASS
Max error for test 6 at offset 8355 is less than or equal to 0.00065683.PASS
Max error for test 60 at offset 80472 is less than or equal to 0.00065683.PASS
Max error for test 61 at offset 81787 is less than or equal to 0.00065683.PASS
Max error for test 62 at offset 82475 is less than or equal to 0.00065683.PASS
Max error for test 63 at offset 84121 is less than or equal to 0.00065683.PASS
Max error for test 64 at offset 85764 is less than or equal to 0.00065683.PASS
Max error for test 65 at offset 87079 is less than or equal to 0.00065683.PASS
Max error for test 66 at offset 87767 is less than or equal to 0.00065683.PASS
Max error for test 67 at offset 89067 is less than or equal to 0.00065683.PASS
Max error for test 68 at offset 91056 is less than or equal to 0.00065683.PASS
Max error for test 69 at offset 92351 is less than or equal to 0.00065683.PASS
Max error for test 7 at offset 9673 is less than or equal to 0.00065683.PASS
Max error for test 70 at offset 93503 is less than or equal to 0.00065683.PASS
Max error for test 71 at offset 94619 is less than or equal to 0.00065683.PASS
Max error for test 72 at offset 95918 is less than or equal to 0.00065683.PASS
Max error for test 73 at offset 97645 is less than or equal to 0.00065683.PASS
Max error for test 74 at offset 98795 is less than or equal to 0.00065683.PASS
Max error for test 75 at offset 99911 is less than or equal to 0.00065683.PASS
Max error for test 76 at offset 101210 is less than or equal to 0.00065683.PASS
Max error for test 77 at offset 102935 is less than or equal to 0.00065683.PASS
Max error for test 78 at offset 104087 is less than or equal to 0.00065683.PASS
Max error for test 79 at offset 104790 is less than or equal to 0.00065683.PASS
Max error for test 8 at offset 11226 is less than or equal to 0.00065683.PASS
Max error for test 80 at offset 106482 is less than or equal to 0.00065683.PASS
Max error for test 81 at offset 108229 is less than or equal to 0.00065683.PASS
Max error for test 82 at offset 109379 is less than or equal to 0.00065683.PASS
Max error for test 83 at offset 110271 is less than or equal to 0.00065683.PASS
Max error for test 84 at offset 111794 is less than or equal to 0.00065683.PASS
Max error for test 85 at offset 113113 is less than or equal to 0.00065683.PASS
Max error for test 86 at offset 114187 is less than or equal to 0.00065683.PASS
Max error for test 87 at offset 116025 is less than or equal to 0.00065683.PASS
Max error for test 88 at offset 117494 is less than or equal to 0.00065683.PASS
Max error for test 89 at offset 118405 is less than or equal to 0.00065683.PASS
Max error for test 9 at offset 12367 is less than or equal to 0.00065683.PASS
Max error for test 90 at offset 120038 is less than or equal to 0.00065683.PASS
Max error for test 91 at offset 121317 is less than or equal to 0.00065683.PASS
Max error for test 92 at offset 122786 is less than or equal to 0.00065683.PASS
Max error for test 93 at offset 123850 is less than or equal to 0.00065683.PASS
Max error for test 94 at offset 124619 is less than or equal to 0.00065683.PASS
Max error for test 95 at offset 127003 is less than or equal to 0.00065683.PASS
Max error for test 96 at offset 127853 is less than or equal to 0.00065683.PASS
Max error for test 97 at offset 129137 is less than or equal to 0.00065683.PASS
Max error for test 98 at offset 130555 is less than or equal to 0.00065683.PASS
Max error for test 99 at offset 132006 is less than or equal to 0.00065683.PASS
Number of failed tests with an acceptable relative tolerance of 0.00065683 is equal to 0.PASS
Number of tests started and ended at the correct time is equal to 100.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 102 assertions)PASS
> [test] AudioParam setTargetAtTime() functionality.PASS
/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse.html (16/16, 100.00%, 0.28% of total)OK
1-pole IIR Magnitude Response equals [10,9.995561599731445,9.982281684875488,9.96026611328125,9.929688453674316,9.890785217285156,9.843852043151855,9.789238929748535,9.727341651916504,9.658592224121094,9.583455085754395,9.502418518066406,9.415983200073242,9.32465934753418,9.228958129882812,9.12938404083252...] with an element-wise tolerance of {"absoluteThreshold":0.0000028611,"relativeThreshold":0}.PASS
1-pole IIR Phase Response equals [0,-0.02826550230383873,-0.05647812411189079,-0.08458554744720459,-0.11253655701875687,-0.1402815729379654,-0.16777309775352478,-0.1949661672115326,-0.2218186855316162,-0.2482917755842209,-0.27434995770454407,-0.29996123909950256,-0.3250974416732788,-0.3497338891029358,-0.3738497197628021,-0.3974274694919586...] with an element-wise tolerance of {"absoluteThreshold":1.7882e-7,"relativeThreshold":0}.PASS
IIR Magnitude Response equals [1,1.0028345584869385,1.0113478899002075,1.025554895401001,1.0454282760620117,1.070805311203003,1.10122549533844,1.1356719732284546,1.1721950769424438,1.2074543237686157,1.2363563776016235,1.2522097826004028,1.247962236404419,1.218644618988037,1.1639058589935303,1.0886648893356323...] with an element-wise tolerance of {"absoluteThreshold":0.000027419,"relativeThreshold":0}.PASS
IIR Phase Response equals [0,-0.061315324157476425,-0.12391137331724167,-0.1891222447156906,-0.2583869397640228,-0.3332937955856323,-0.4156070649623871,-0.5072502493858337,-0.6102025508880615,-0.7262400388717651,-0.8564491868019104,-1.0005061626434326,-1.155927300453186,-1.3177809715270996,-1.4793895483016968,-1.6339597702026367...] with an element-wise tolerance of {"absoluteThreshold":0.000027657,"relativeThreshold":0}.PASS
Magnitude response at frequency -1 is NaN.PASS
Magnitude response at frequency 24001 is NaN.PASS
Phase response at frequency -1 is NaN.PASS
Phase response at frequency 24001 is NaN.PASS
# AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [1-pole IIR] All assertions passed. (total 2 assertions)PASS
< [compare IIR and biquad] All assertions passed. (total 2 assertions)PASS
< [getFrequencyResponse] All assertions passed. (total 4 assertions)PASS
> [1-pole IIR] PASS
> [compare IIR and biquad] PASS
> [getFrequencyResponse] Test out-of-bounds frequency valuesPASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan.html (25/25, 100.00%, 0.44% of total)OK
1: Channel 0 equals [0,0,0.9485260844230652,0.8472318053245544,0.8233559727668762,0.864546000957489,0.845425009727478,0.8580314517021179,0.7955959439277649,0.9893833994865417,0.3983757495880127,-0.7808231711387634,-0.9249735474586487,-0.7918890118598938,-0.8752206563949585,-0.834891676902771...] with an element-wise tolerance of {"absoluteThreshold":3.5763e-7,"relativeThreshold":0}.PASS
1: Channel 1 equals [0,0,0,0.9485260844230652,0.8472318053245544,0.8233559727668762,0.864546000957489,0.845425009727478,0.8580314517021179,0.7955959439277649,0.9893833994865417,0.3983757495880127,-0.7808231711387634,-0.9249735474586487,-0.7918890118598938,-0.8752206563949585...] with an element-wise tolerance of {"absoluteThreshold":4.7684e-7,"relativeThreshold":0}.PASS
2: Channel 0 equals [0,0,0.9485260844230652,0.8472318053245544,0.8233559727668762,0.864546000957489,0.845425009727478,0.8580314517021179,0.7955959439277649,0.9893833994865417,0.3983757495880127,-0.7808231711387634,-0.9249735474586487,-0.7918890118598938,-0.8752206563949585,-0.834891676902771...] with an element-wise tolerance of {"absoluteThreshold":3.5763e-7,"relativeThreshold":0}.PASS
2: Channel 1 equals [0,0,0,0.9485260844230652,0.8472318053245544,0.8233559727668762,0.864546000957489,0.845425009727478,0.8580314517021179,0.7955959439277649,0.9893833994865417,0.3983757495880127,-0.7808231711387634,-0.9249735474586487,-0.7918890118598938,-0.8752206563949585...] with an element-wise tolerance of {"absoluteThreshold":4.7684e-7,"relativeThreshold":0}.PASS
3: Channel 0 equals [0,0,0.9485260844230652,0.8472318053245544,0.8233559727668762,0.864546000957489,0.845425009727478,0.8580314517021179,0.7955959439277649,0.9893833994865417,0.3983757495880127,-0.7808231711387634,-0.9249735474586487,-0.7918890118598938,-0.8752206563949585,-0.834891676902771...] with an element-wise tolerance of {"absoluteThreshold":3.5763e-7,"relativeThreshold":0}.PASS
3: Channel 1 equals [0,0,0,0.9947003126144409,0.7705774307250977,0.9109300374984741,0.770668089389801,0.9842367768287659,0.32022905349731445,-0.9348858594894409,-0.8055058121681213,-0.8837442398071289,-0.8007677793502808,-0.9286617636680603,-0.6026888489723206,0.7909697890281677...] with an element-wise tolerance of {"absoluteThreshold":3.5763e-7,"relativeThreshold":0}.PASS
4: Channel 0 equals [0,0,0.9734255075454712,0.8085748553276062,0.8596614599227905,0.8377395868301392,0.18206258118152618,-0.06961169838905334,0.03773331642150879,-0.007562130689620972,-0.018085837364196777,0.029709070920944214,-0.021690011024475098,-0.0055168867111206055,0.05647382140159607,-0.4439384937286377...] with an element-wise tolerance of {"absoluteThreshold":3.5763e-7,"relativeThreshold":0}.PASS
4: Channel 1 equals [0,0,0,0.971980094909668,0.8048999309539795,0.8850500583648682,0.18059250712394714,0.02772340178489685,-0.2852807343006134,-0.7788605690002441,-0.0375840961933136,-0.008258610963821411,0.07240849733352661,-0.33466458320617676,-0.7563189268112183,-0.020491480827331543...] with an element-wise tolerance of {"absoluteThreshold":2.9803e-7,"relativeThreshold":0}.PASS
5.1: Channel 0 equals [0,0,2.3021068572998047,2.0779097080230713,1.5364117622375488,0.8359494805335999,-0.21231389045715332,-0.00529266893863678,0.836210310459137,1.0198438167572021,0.3261905908584595,-0.6783384084701538,-1.057640790939331,-0.5491994619369507,0.2516633868217468,-0.10923552513122559...] with an element-wise tolerance of {"absoluteThreshold":7.1526e-7,"relativeThreshold":0}.PASS
5.1: Channel 1 equals [0,0,0,2.407027244567871,1.8516432046890259,1.2457610368728638,0.5805021524429321,0.36253032088279724,0.16488611698150635,-0.7450209259986877,-1.5345406532287598,-1.9043262004852295,-0.7297847867012024,0.01058971881866455,0.7125816345214844,1.7535796165466309...] with an element-wise tolerance of {"absoluteThreshold":7.1526e-7,"relativeThreshold":0}.PASS
new AudioBuffer({numberOfChannels: 2, length: 4, sampleRate: 8192}) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [1-channel input] All assertions passed. (total 2 assertions)PASS
< [2-channel input] All assertions passed. (total 2 assertions)PASS
< [3-channel input] All assertions passed. (total 2 assertions)PASS
< [4-channel input] All assertions passed. (total 2 assertions)PASS
< [5.1-channel input] All assertions passed. (total 2 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
> [1-channel input] produces 2-channel outputPASS
> [2-channel input] produces 2-channel outputPASS
> [3-channel input] 3->2 downmix producing 2-channel outputPASS
> [4-channel input] 4->2 downmix producing 2-channel outputPASS
> [5.1-channel input] 5.1->2 downmix producing 2-channel outputPASS
> [initialize] Convolver response with one channelPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail.html (5/5, 100.00%, 0.09% of total)OK
Biquad output has no glitch above the threshold of 0.012968.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 1 assertions)PASS
> [test] Biquad Tail OutputPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits.html (8/8, 100.00%, 0.14% of total)OK
Output from AudioBufferSource.stop(1e+300) contains only the constant 1.PASS
Peak amplitude from oscillator.stop(1e+300) is greater than 0.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [buffersource: huge stop time] All assertions passed. (total 1 assertions)PASS
< [oscillator: huge stop time] All assertions passed. (total 1 assertions)PASS
> [buffersource: huge stop time] PASS
> [oscillator: huge stop time] PASS
/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html (13/13, 100.00%, 0.23% of total)OK
panner.channelCount = 1 did not throw an exception.PASS
panner.channelCount = 3 threw NotSupportedError: "Failed to set the 'channelCount' property on 'AudioNode': The channelCount provided (3) is outside the range [1, 2].".PASS
panner.channelCountMode = "explicit" did not throw an exception.PASS
panner.channelCountMode = "max" threw NotSupportedError: "Failed to set the 'channelCountMode' property on 'AudioNode': StereoPanner: 'max' is not allowed".PASS
panner.numberOfInputs is equal to 1.PASS
panner.numberOfOutputs is equal to 1.PASS
panner.pan.defaultValue is equal to 0.PASS
panner.pan.value = 1.0 did not throw an exception.PASS
panner.pan.value is equal to 1.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 9 assertions)PASS
> [test] Attributes and basic functionality of StereoPannerNodePASS
/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions.html (25/25, 100.00%, 0.44% of total)OK
balanced baseLatency is greater than or equal to 0.01.PASS
context = new AudioContext('latencyHint') threw TypeError: "Failed to construct 'AudioContext': parameter 1 ('contextOptions') is not an object.".PASS
context = new AudioContext() did not throw an exception.PASS
context = new AudioContext({'latencyHint': 'balanced'}) did not throw an exception.PASS
context = new AudioContext({'latencyHint': 'foo'}) threw TypeError: "Failed to construct 'AudioContext': The provided value 'foo' is not a valid enum value of type AudioContextLatencyCategory.".PASS
context = new AudioContext({'latencyHint': 'interactive'}) did not throw an exception.PASS
context = new AudioContext({'latencyHint': 'playback'}) did not throw an exception.PASS
context = new AudioContext({'latencyHint': interactiveLatency/2}) did not throw an exception.PASS
context = new AudioContext({'latencyHint': validLatency}) did not throw an exception.PASS
context.sampleRate (48000 Hz) is greater than 0.PASS
creating two high latency contexts did not throw an exception.PASS
default baseLatency is greater than 0.PASS
double-constructor baseLatency inrange 1 is greater than or equal to 0.01.PASS
double-constructor baseLatency inrange 2 is less than or equal to 0.02.PASS
double-constructor baseLatency small is less than or equal to 0.01.PASS
high latency context baseLatency is equal to 0.17.PASS
high latency context baseLatency is greater than 0.01.PASS
interactive baseLatency is equal to 0.01.PASS
playback baseLatency is greater than or equal to 0.01.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test-audiocontextoptions-latencyHint-basic] All assertions passed. (total 9 assertions)PASS
< [test-audiocontextoptions-latencyHint-double] All assertions passed. (total 10 assertions)PASS
> [test-audiocontextoptions-latencyHint-basic] Test creating contexts with basic latencyHint types.PASS
> [test-audiocontextoptions-latencyHint-double] Test creating contexts with explicit latencyHint values.PASS
/webaudio/the-audio-api/the-gainnode-interface/gain.html (10/10, 100.00%, 0.17% of total)OK
Left SNR (in dB) is greater than or equal to 148.69.PASS
Left output from gain node equals [0,0.12505052983760834,0.24813784658908844,0.36732959747314453,0.480754554271698,0.5866320133209229,0.6832997798919678,0.7692402601242065,0.8431042432785034,0.9037321209907532,0.9501721262931824,0.9816950559616089,0.997806191444397,0.9982524514198303,0.9830269813537598,0.9523686766624451...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":1.1908e-7}.PASS
Right SNR (in dB) is greater than or equal to 148.69.PASS
Right output from gain node equals [0,0.12505052983760834,0.24813784658908844,0.36732959747314453,0.480754554271698,0.5866320133209229,0.6832997798919678,0.7692402601242065,0.8431042432785034,0.9037321209907532,0.9501721262931824,0.9816950559616089,0.997806191444397,0.9982524514198303,0.9830269813537598,0.9523686766624451...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":1.1908e-7}.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [create context] All assertions passed. (total 0 assertions)PASS
< [test] All assertions passed. (total 4 assertions)PASS
> [create context] Create context for testPASS
> [test] GainNode functionalityPASS
/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html (64/64, 100.00%, 1.11% of total)OK
Connecting to a node from the different context threw InvalidAccessError: "Failed to execute 'connect' on 'AudioNode': cannot connect to a destination belonging to a different audio context.".PASS
Connecting with an invalid output threw IndexSizeError: "Failed to execute 'connect' on 'AudioNode': output index (1) exceeds number of outputs (1).".PASS
The output of chained connection of gain nodes contains only the constant 0.125.PASS
The return value of AnalyserNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of AnalyserNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of AnalyserNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of AudioBufferSourceNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of AudioBufferSourceNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of AudioBufferSourceNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of BiquadFilterNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of BiquadFilterNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of BiquadFilterNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of ChannelMergerNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of ChannelMergerNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of ChannelMergerNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of ChannelSplitterNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of ChannelSplitterNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of ChannelSplitterNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of ConvolverNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of ConvolverNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of ConvolverNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of DelayNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of DelayNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of DelayNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of DynamicsCompressorNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of DynamicsCompressorNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of DynamicsCompressorNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of GainNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of GainNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of GainNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of MediaElementAudioSourceNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of MediaElementAudioSourceNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of MediaElementAudioSourceNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of MediaStreamAudioDestinationNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of MediaStreamAudioDestinationNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of MediaStreamAudioDestinationNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of MediaStreamAudioSourceNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of MediaStreamAudioSourceNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of MediaStreamAudioSourceNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of OscillatorNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of OscillatorNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of OscillatorNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of PannerNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of PannerNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of PannerNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of ScriptProcessorNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of ScriptProcessorNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of ScriptProcessorNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of StereoPannerNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of StereoPannerNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of StereoPannerNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
The return value of WaveShaperNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true.PASS
The return value of WaveShaperNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true.PASS
The return value of WaveShaperNode.connect(GainNode) matches the destination GainNode is equal to true.PASS
# AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [from-dictionary] All assertions passed. (total 42 assertions)PASS
< [invalid-operation] All assertions passed. (total 2 assertions)PASS
< [media-group] All assertions passed. (total 9 assertions)PASS
< [verification] All assertions passed. (total 1 assertions)PASS
> [from-dictionary] PASS
> [invalid-operation] PASS
> [media-group] PASS
> [verification] PASS
/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping.html (46/46, 100.00%, 0.80% of total)OK
Model: exponential: Distance (0.01) is outside the range [1, 10000] is equal to true.PASS
Model: exponential: Distance (2) is outside the range [10, 1000] is equal to true.PASS
Model: exponential: Distance (21000) is outside the range [1, 10000] is equal to true.PASS
Model: exponential: Distance (5000) is outside the range [10, 1000] is equal to true.PASS
Model: inverse: Distance (0.01) is outside the range [1, 10000] is equal to true.PASS
Model: inverse: Distance (2) is outside the range [10, 1000] is equal to true.PASS
Model: inverse: Distance (23000) is outside the range [1, 10000] is equal to true.PASS
Model: inverse: Distance (5000) is outside the range [10, 1000] is equal to true.PASS
Model: linear: Distance (0.01) is outside the range [1, 10000] is equal to true.PASS
Model: linear: Distance (2) is outside the range [10, 1000] is equal to true.PASS
Model: linear: Distance (20000) is outside the range [1, 10000] is equal to true.PASS
Model: linear: Distance (5000) is outside the range [10, 1000] is equal to true.PASS
Test panner output {"distance":0.01,"distanceModel":"exponential"} is identical to the array [0,0.20702199637889862,0.4738079607486725,-0.23029837012290955,-0.41959449648857117,-0.025587808340787888,0.04287990927696228,0.4513133466243744,0.15709976851940155,-0.4906681180000305,-0.16540144383907318,0.00021876610117033124,0.25102248787879944,0.4455360770225525,-0.29729732871055603,-0.38197818398475647...].PASS
Test panner output {"distance":0.01,"distanceModel":"inverse"} is identical to the array [0,0.20702199637889862,0.4738079607486725,-0.23029837012290955,-0.41959449648857117,-0.025587808340787888,0.04287990927696228,0.4513133466243744,0.15709976851940155,-0.4906681180000305,-0.16540144383907318,0.00021876610117033124,0.25102248787879944,0.4455360770225525,-0.29729732871055603,-0.38197818398475647...].PASS
Test panner output {"distance":0.01,"distanceModel":"linear"} is identical to the array [0,0.20702199637889862,0.4738079607486725,-0.23029837012290955,-0.41959449648857117,-0.025587808340787888,0.04287990927696228,0.4513133466243744,0.15709976851940155,-0.4906681180000305,-0.16540144383907318,0.00021876610117033124,0.25102248787879944,0.4455360770225525,-0.29729732871055603,-0.38197818398475647...].PASS
Test panner output {"distance":2,"distanceModel":"exponential","maxDistance":1000,"refDistance":10} is identical to the array [0,0.20702199637889862,0.4738079607486725,-0.23029837012290955,-0.41959449648857117,-0.025587808340787888,0.04287990927696228,0.4513133466243744,0.15709976851940155,-0.4906681180000305,-0.16540144383907318,0.00021876610117033124,0.25102248787879944,0.4455360770225525,-0.29729732871055603,-0.38197818398475647...].PASS
Test panner output {"distance":2,"distanceModel":"inverse","maxDistance":1000,"refDistance":10} is identical to the array [0,0.20702199637889862,0.4738079607486725,-0.23029837012290955,-0.41959449648857117,-0.025587808340787888,0.04287990927696228,0.4513133466243744,0.15709976851940155,-0.4906681180000305,-0.16540144383907318,0.00021876610117033124,0.25102248787879944,0.4455360770225525,-0.29729732871055603,-0.38197818398475647...].PASS
Test panner output {"distance":2,"distanceModel":"linear","maxDistance":1000,"refDistance":10} is identical to the array [0,0.20702199637889862,0.4738079607486725,-0.23029837012290955,-0.41959449648857117,-0.025587808340787888,0.04287990927696228,0.4513133466243744,0.15709976851940155,-0.4906681180000305,-0.16540144383907318,0.00021876610117033124,0.25102248787879944,0.4455360770225525,-0.29729732871055603,-0.38197818398475647...].PASS
Test panner output {"distance":20000,"distanceModel":"linear"} is identical to the array [0,0.10351099818944931,0.23690398037433624,-0.11514918506145477,-0.20979724824428558,-0.012793904170393944,0.02143995463848114,0.2256566733121872,0.07854988425970078,-0.24533405900001526,-0.08270072191953659,0.00010938305058516562,0.12551124393939972,0.22276803851127625,-0.14864866435527802,-0.19098909199237823...].PASS
Test panner output {"distance":21000,"distanceModel":"exponential"} is identical to the array [0,0.0014285874785855412,0.0032695855479687452,-0.0015892097726464272,-0.002895476995036006,-0.0001765726483426988,0.0002958994882646948,0.0031143580563366413,0.0010840913746505976,-0.003385931719094515,-0.0011413784231990576,0.0000015096295555849792,0.001732219709083438,0.0030744909308850765,-0.002051546471193433,-0.002635899931192398...].PASS
Test panner output {"distance":23000,"distanceModel":"inverse"} is identical to the array [0,0.000018001130229094997,0.000041198902181349695,-0.000020025074263685383,-0.000036484892916632816,-0.000002224930085503729,0.0000037285258258634713,0.000039242931961780414,0.00001366025571769569,-0.00004266493851901032,-0.000014382108929567039,1.9022312613969916e-8,0.00002182709431508556,0.00003874058529618196,-0.00002585081892902963,-0.000033214051654795185...].PASS
Test panner output {"distance":5000,"distanceModel":"exponential","maxDistance":1000,"refDistance":10} is identical to the array [0,0.00925830565392971,0.021189337596297264,-0.0102992570027709,-0.018764836713671684,-0.0011443216353654861,0.001917647896334529,0.020183347165584564,0.007025715429335833,-0.0219433456659317,-0.007396977860480547,0.000009783518180483952,0.011226067319512367,0.019924979656934738,-0.013295541517436504,-0.017082585021853447...].PASS
Test panner output {"distance":5000,"distanceModel":"inverse","maxDistance":1000,"refDistance":10} is identical to the array [0,0.0008264351054094732,0.0018914489774033427,-0.000919354788493365,-0.0016750278882682323,-0.00010214693611487746,0.00017117727838922292,0.0018016500398516655,0.0006271447637118399,-0.0019587548449635506,-0.0006602851790376008,8.733177878639253e-7,0.0010020857444033027,0.0017785871168598533,-0.0011868156725540757,-0.0015248629497364163...].PASS
Test panner output {"distance":5000,"distanceModel":"linear","maxDistance":1000,"refDistance":10} is identical to the array [0,0.10351099818944931,0.23690398037433624,-0.11514918506145477,-0.20979724824428558,-0.012793904170393944,0.02143995463848114,0.2256566733121872,0.07854988425970078,-0.24533405900001526,-0.08270072191953659,0.00010938305058516562,0.12551124393939972,0.22276803851127625,-0.14864866435527802,-0.19098909199237823...].PASS
new PannerNode(c, {maxDistance: -1}) threw RangeError: "Failed to construct 'PannerNode': The maxDistance provided (-1) is less than the minimum bound (0).".PASS
new PannerNode(c, {maxDistance: 0}) threw RangeError: "Failed to construct 'PannerNode': The maxDistance provided (0) is less than or equal to the minimum bound (0).".PASS
new PannerNode(c, {maxDistance: 5e-324}) did not throw an exception.PASS
new PannerNode(c, {refDistance: -1}) threw RangeError: "Failed to construct 'PannerNode': The refDistance provided (-1) is less than the minimum bound (0).".PASS
new PannerNode(c, {refDistance: 0}) did not throw an exception.PASS
new PannerNode(c, {refDistance: 5e-324}) did not throw an exception.PASS
panner.maxDistance = -1 threw RangeError: "Failed to set the 'maxDistance' property on 'PannerNode': The maxDistance provided (-1) is less than the minimum bound (0).".PASS
panner.maxDistance = 0 threw RangeError: "Failed to set the 'maxDistance' property on 'PannerNode': The maxDistance provided (0) is less than or equal to the minimum bound (0).".PASS
panner.maxDistance = 5e-324 did not throw an exception.PASS
panner.refDistance = -1 threw RangeError: "Failed to set the 'refDistance' property on 'PannerNode': The refDistance provided (-1) is less than the minimum bound (0).".PASS
panner.refDistance = 0 did not throw an exception.PASS
panner.refDistance = 5e-324 did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [max-distance-error] All assertions passed. (total 6 assertions)PASS
< [max-distance] All assertions passed. (total 12 assertions)PASS
< [min-distance] All assertions passed. (total 12 assertions)PASS
< [ref-distance-error] All assertions passed. (total 6 assertions)PASS
> [max-distance-error] PASS
> [max-distance] PASS
> [min-distance] PASS
> [ref-distance-error] PASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining.html (19/19, 100.00%, 0.33% of total)OK
Calling exponentialRampToValueAtTime() with a zero target value threw RangeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (0) should not be in the range (-1.40130e-45, 1.40130e-45).".PASS
Calling setValueAtTime() with a negative end time threw RangeError: "Failed to execute 'setValueAtTime' on 'AudioParam': Time must be a finite non-negative number: -1".PASS
The gain value of the first gain node is equal to 1.PASS
The gain value of the second gain node is equal to 0.5.PASS
The rendered envelope equals [0,0.000125,0.00025,0.000375,0.0005,0.000625,0.00075,0.000875,0.001,0.001125,0.00125,0.001375,0.0015,0.001625,0.00175,0.001875...] with an element-wise tolerance of {"absoluteThreshold":0.0000040532,"relativeThreshold":0}.PASS
The return value of AudioParam.cancelScheduledValues() matches the source AudioParam is equal to true.PASS
The return value of AudioParam.exponentialRampToValueAtTime() matches the source AudioParam is equal to true.PASS
The return value of AudioParam.linearRampToValueAtTime() matches the source AudioParam is equal to true.PASS
The return value of AudioParam.setTargetAtTime() matches the source AudioParam is equal to true.PASS
The return value of AudioParam.setValueAtTime() matches the source AudioParam is equal to true.PASS
The return value of AudioParam.setValueCurveAtTime() matches the source AudioParam is equal to true.PASS
# AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [from-dictionary] All assertions passed. (total 6 assertions)PASS
< [invalid-operation] All assertions passed. (total 4 assertions)PASS
< [verification] All assertions passed. (total 1 assertions)PASS
> [from-dictionary] PASS
> [invalid-operation] PASS
> [verification] PASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-construction.https.html (9/9, 100.00%, 0.16% of total)OK
"dummyWorkletNode" is an instance of AudioWorkletNode is true.PASS
Creating a node before loading a module should throw. threw InvalidStateError: "Failed to construct 'AudioWorkletNode': AudioWorkletNode cannot be created: AudioWorklet does not have a valid AudioWorkletGlobalScope. Load a script via audioWorklet.addModule() first.".PASS
Unregistered name "foobar" must throw an exception. threw InvalidStateError: "Failed to construct 'AudioWorkletNode': AudioWorkletNode cannot be created: The node name 'foobar' is not defined in AudioWorkletGlobalScope.".PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [construction-after-module-loading] All assertions passed. (total 2 assertions)PASS
< [construction-before-module-loading] All assertions passed. (total 1 assertions)PASS
> [construction-after-module-loading] PASS
> [construction-before-module-loading] PASS
/webaudio/the-audio-api/the-analysernode-interface/ctor-analyser.html (70/70, 100.00%, 1.22% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new AnalyserNode() threw TypeError: "Failed to construct 'AnalyserNode': 1 argument required, but only 0 present.".PASS
new AnalyserNode(1) threw TypeError: "Failed to construct 'AnalyserNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new AnalyserNode(c, {channelCount: 0}) threw NotSupportedError: "Failed to construct 'AnalyserNode': The channel count provided (0) is outside the range [1, 32].".PASS
new AnalyserNode(c, {channelCount: 17}} did not throw an exception.PASS
new AnalyserNode(c, {channelCount: 99}) threw NotSupportedError: "Failed to construct 'AnalyserNode': The channel count provided (99) is outside the range [1, 32].".PASS
new AnalyserNode(c, {channelCountMode: "clamped-max"}) did not throw an exception.PASS
new AnalyserNode(c, {channelCountMode: "explicit"}) did not throw an exception.PASS
new AnalyserNode(c, {channelCountMode: "foobar"} threw TypeError: "Failed to construct 'AnalyserNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
new AnalyserNode(c, {channelCountMode: "max"} did not throw an exception.PASS
new AnalyserNode(c, {channelCountMode: "max"}) did not throw an exception.PASS
new AnalyserNode(c, {channelInterpretation: "discrete"}) did not throw an exception.PASS
new AnalyserNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Failed to construct 'AnalyserNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new AnalyserNode(c, {channelInterpretation: "speakers"}) did not throw an exception.PASS
new AnalyserNode(context, 42) threw TypeError: "Failed to construct 'AnalyserNode': parameter 2 ('options') is not an object.".PASS
node = new AnalyserNode(c, { fftSize: 33 }) threw IndexSizeError: "Failed to construct 'AnalyserNode': The value provided (33) is not a power of two.".PASS
node = new AnalyserNode(c, { frequencyBinCount: 33 }) did not throw an exception.PASS
node = new AnalyserNode(c, { maxDecibels: -500 }) threw IndexSizeError: "Failed to construct 'AnalyserNode': maxDecibels (-500) must be greater than or equal to minDecibels ( -100).".PASS
node = new AnalyserNode(c, { minDecibels: -10 }) threw IndexSizeError: "Failed to construct 'AnalyserNode': maxDecibels (-30) must be greater than or equal to minDecibels ( -10).".PASS
node = new AnalyserNode(c, { smoothingTimeConstant: 2 }) threw IndexSizeError: "Failed to construct 'AnalyserNode': The smoothing value provided (2) is outside the range [0, 1].".PASS
node = new AnalyserNode(c, {"maxDecibels":-150,"minDecibels":-10}) threw IndexSizeError: "Failed to construct 'AnalyserNode': maxDecibels (-150) must be greater than or equal to minDecibels ( -10).".PASS
node = new AnalyserNode(c, {"maxDecibels":-150,"minDecibels":-200}) did not throw an exception.PASS
node = new AnalyserNode(c, {"maxDecibels":20,"minDecibels":-10}) did not throw an exception.PASS
node = new AnalyserNode(c, {"minDecibels":-10,"maxDecibels":-150}) threw IndexSizeError: "Failed to construct 'AnalyserNode': maxDecibels (-150) must be greater than or equal to minDecibels ( -10).".PASS
node = new AnalyserNode(c, {"minDecibels":-10,"maxDecibels":20}) did not throw an exception.PASS
node = new AnalyserNode(c, {"minDecibels":-200,"maxDecibels":-150}) did not throw an exception.PASS
node.channelCount is equal to 17.PASS
node.channelCountMode after invalid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to clamped-max.PASS
node.channelCountMode after valid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to max.PASS
node.channelCountMode is equal to max.PASS
node.channelInterpretation after invalid setter is equal to discrete.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node.frequencyBinCount is equal to 1024.PASS
node0 = new AnalyserNode(context) did not throw an exception.PASS
node0 instanceof AnalyserNode is equal to true.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.fftSize is equal to 2048.PASS
node0.frequencyBinCount is equal to 1024.PASS
node0.maxDecibels is equal to -30.PASS
node0.minDecibels is equal to -100.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 1.PASS
node0.smoothingTimeConstant is equal to 0.8.PASS
node1 = new AnalyserNode(c, {"fftSize":32,"maxDecibels":1,"minDecibels":-13,"smoothingTimeConstant":0.125}) did not throw an exception.PASS
node1 instanceof AnalyserNode is equal to true.PASS
node1.fftSize is equal to 32.PASS
node1.maxDecibels is equal to 1.PASS
node1.minDecibels is equal to -13.PASS
node1.smoothingTimeConstant is equal to 0.125.PASS
# AUDIT TASK RUNNER FINISHED: 7 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [construct invalid options] All assertions passed. (total 6 assertions)PASS
< [constructor with options] All assertions passed. (total 6 assertions)PASS
< [default constructor] All assertions passed. (total 12 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [setting min/max] All assertions passed. (total 6 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 20 assertions)PASS
> [construct invalid options] PASS
> [constructor with options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [setting min/max] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html (56/56, 100.00%, 0.97% of total)OK
0: buffer = context.createBuffer(3, 16, context.sampleRate) did not throw an exception.PASS
0: buffer.copyToChannel(null, 0) threw TypeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': parameter 1 is not of type 'Float32Array'.".PASS
1: buffer.copyFromChannel(null, 0) threw TypeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': parameter 1 is not of type 'Float32Array'.".PASS
1: buffer.copyToChannel(context, 0) threw TypeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': parameter 1 is not of type 'Float32Array'.".PASS
2: buffer.copyFromChannel(context, 0) threw TypeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': parameter 1 is not of type 'Float32Array'.".PASS
2: buffer.copyToChannel(x, -1) threw IndexSizeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': The channelNumber provided (-1) is outside the range [0, 2].".PASS
3: buffer.copyFromChannel(x, -1) threw IndexSizeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The channelNumber provided (-1) is outside the range [0, 2].".PASS
3: buffer.copyToChannel(x, 3) threw IndexSizeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': The channelNumber provided (3) is outside the range [0, 2].".PASS
4: buffer.copyFromChannel(x, 3) threw IndexSizeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The channelNumber provided (3) is outside the range [0, 2].".PASS
4: buffer.copyToChannel(x, 0, -1) threw IndexSizeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': The startInChannel provided (4294967295) is outside the range [0, 16).".PASS
5: buffer.copyFromChannel(x, 0, -1) threw IndexSizeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The startInChannel provided (4294967295) is outside the range [0, 16).".PASS
5: buffer.copyToChannel(x, 0, 16) threw IndexSizeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': The startInChannel provided (16) is outside the range [0, 16).".PASS
6: buffer.copyFromChannel(x, 0, 16) threw IndexSizeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The startInChannel provided (16) is outside the range [0, 16).".PASS
6: buffer.copyToChannel(x, 3) threw IndexSizeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': The channelNumber provided (3) is outside the range [0, 2].".PASS
7: buffer.copyFromChannel(x, 3) threw IndexSizeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The channelNumber provided (3) is outside the range [0, 2].".PASS
7: buffer.copyToChannel(SharedArrayBuffer view, 0) threw TypeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': The provided ArrayBufferView value must not be shared.".PASS
8: buffer.copyFromChannel(SharedArrayBuffer view, 0) threw TypeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The provided ArrayBufferView value must not be shared.".PASS
8: buffer.copyToChannel(SharedArrayBuffer view, 0, 0) threw TypeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': The provided ArrayBufferView value must not be shared.".PASS
9: buffer.copyFromChannel(SharedArrayBuffer view, 0, 0) threw TypeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The provided ArrayBufferView value must not be shared.".PASS
AudioBuffer.prototype.copyFromChannel does exist.PASS
AudioBuffer.prototype.copyToChannel does exist.PASS
Initialized values contains only the constant -1.PASS
buffer = createConstantBuffer(context, 16, [-1,-1,-1]) did not throw an exception.PASS
buffer.copyFromChannel(dst26, 0) is identical to the array [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16...].PASS
buffer.copyFromChannel(dst26, 1) is identical to the array [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17...].PASS
buffer.copyFromChannel(dst26, 2) is identical to the array [3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18...].PASS
buffer.copyFromChannel(dst8, 0) is identical to the array [1,2,3,4,5,6,7,8].PASS
buffer.copyFromChannel(dst8, 0, 1) is identical to the array [2,3,4,5,6,7,8,9].PASS
buffer.copyFromChannel(dst8, 0, 11) is identical to the array [12,13,14,15,16,-1,-1,-1].PASS
buffer.copyFromChannel(dst8, 1) is identical to the array [2,3,4,5,6,7,8,9].PASS
buffer.copyFromChannel(dst8, 1, 1) is identical to the array [3,4,5,6,7,8,9,10].PASS
buffer.copyFromChannel(dst8, 1, 11) is identical to the array [13,14,15,16,17,-1,-1,-1].PASS
buffer.copyFromChannel(dst8, 2) is identical to the array [3,4,5,6,7,8,9,10].PASS
buffer.copyFromChannel(dst8, 2, 1) is identical to the array [4,5,6,7,8,9,10,11].PASS
buffer.copyFromChannel(dst8, 2, 11) is identical to the array [14,15,16,17,18,-1,-1,-1].PASS
buffer.copyToChannel(src, 0) is identical to the array [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16...].PASS
buffer.copyToChannel(src, 1) is identical to the array [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16...].PASS
buffer.copyToChannel(src, 2) is identical to the array [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16...].PASS
buffer.copyToChannel(src10, 0) is identical to the array [1,2,3,4,5,6,7,8,9,10,-1,-1,-1,-1,-1,-1...].PASS
buffer.copyToChannel(src10, 0, 5) is identical to the array [-1,-1,-1,-1,-1,1,2,3,4,5,6,7,8,9,10,-1...].PASS
buffer.copyToChannel(src10, 1) is identical to the array [1,2,3,4,5,6,7,8,9,10,-1,-1,-1,-1,-1,-1...].PASS
buffer.copyToChannel(src10, 1, 5) is identical to the array [-1,-1,-1,-1,-1,1,2,3,4,5,6,7,8,9,10,-1...].PASS
buffer.copyToChannel(src10, 2) is identical to the array [1,2,3,4,5,6,7,8,9,10,-1,-1,-1,-1,-1,-1...].PASS
buffer.copyToChannel(src10, 2, 5) is identical to the array [-1,-1,-1,-1,-1,1,2,3,4,5,6,7,8,9,10,-1...].PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [copyFrom-exceptions] All assertions passed. (total 11 assertions)PASS
< [copyFrom-validate] All assertions passed. (total 12 assertions)PASS
< [copyTo-exceptions] All assertions passed. (total 10 assertions)PASS
< [copyTo-validate] All assertions passed. (total 10 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
> [copyFrom-exceptions] PASS
> [copyFrom-validate] PASS
> [copyTo-exceptions] PASS
> [copyTo-validate] PASS
> [initialize] PASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse.html (17/17, 100.00%, 0.30% of total)OK
Actual and expected results contained only finite values is true.PASS
Magnitude response at frequency -1 is NaN.PASS
Magnitude response at frequency 22051 is NaN.PASS
Max error (-119.17761387118809 dB) of magnitude response at frequency 1128 Hz is less than or equal to -119.17759642805565.PASS
Max error (0.0000037083940022340564 deg) in phase response at frequency 864 Hz is less than or equal to 0.0000037084120332047404.PASS
Number of non-finite values in expected phase response is equal to 0.PASS
Number of non-finite values in magnitude response is equal to 0.PASS
Number of non-finite values in the expected magnitude response is equal to 0.PASS
Number of non-finte values in phase response is equal to 0.PASS
Phase response at frequency -1 is NaN.PASS
Phase response at frequency 22051 is NaN.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [getFrequencyResponse] All assertions passed. (total 4 assertions)PASS
< [test] All assertions passed. (total 7 assertions)PASS
> [getFrequencyResponse] Test out-of-bounds frequency valuesPASS
> [test] Biquad frequency responsePASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended.html (14/14, 100.00%, 0.24% of total)OK
AudioBufferSource.onended called when ended set directly is equal to true.PASS
AudioBufferSource.onended called when using addEventListener is equal to true.PASS
Oscillator.onended called when ended set directly is equal to true.PASS
Oscillator.onended called when using addEventListener is equal to true.PASS
# AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [absn-add-listener] All assertions passed. (total 1 assertions)PASS
< [absn-set-onended] All assertions passed. (total 1 assertions)PASS
< [osc-add-listener] All assertions passed. (total 1 assertions)PASS
< [osc-set-onended] All assertions passed. (total 1 assertions)PASS
> [absn-add-listener] PASS
> [absn-set-onended] PASS
> [osc-add-listener] PASS
> [osc-set-onended] PASS
/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-reuse.html (1/1, 100.00%, 0.02% of total)OK
AudioBuffer can be reused between AudioBufferSourceNodesPASS
/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad.html (55/55, 100.00%, 0.96% of total)OK
All k-rate params: Difference between a-rate and k-rate BiquadFilterNode is not constantly 0 (contains 7999 different values).PASS
All k-rate params: Output of a-rate BiquadFilterNode is identical to the array [0,0.005671397782862186,0.031749188899993896,0.09148305654525757,0.1881098747253418,0.3150883913040161,0.45771944522857666,0.5958530902862549,0.7072707414627075,0.7712685465812683,0.7719634175300598,0.7008947134017944,0.5585950016975403,0.3549392521381378,0.10823862254619598,-0.15679840743541718...].PASS
All k-rate params: Output of k-rate BiquadFilterNode is identical to the array [0,0.005672732833772898,0.031761396676301956,0.09152887761592865,0.18822026252746582,0.3152909576892853,0.45802366733551025,0.596236526966095,0.7076704502105713,0.7715811133384705,0.7720549702644348,0.7006209492683411,0.5578281879425049,0.3535984456539154,0.10631734877824783,-0.15921233594417572...].PASS
All k-rate params: Setting Q.automationRate to "k-rate" is equal to k-rate.PASS
All k-rate params: Setting detune.automationRate to "k-rate" is equal to k-rate.PASS
All k-rate params: Setting frequency.automationRate to "k-rate" is equal to k-rate.PASS
All k-rate params: Setting gain.automationRate to "k-rate" is equal to k-rate.PASS
All k-rate params: a-rate node:frequency.linearRampToValueAtTime(0,1) did not throw an exception.PASS
All k-rate params: a-rate node:frequency.setValueAtTime(350,0) did not throw an exception.PASS
All k-rate params: k-rate node: frequency.linearRampToValueAtTime(0,1) did not throw an exception.PASS
All k-rate params: k-rate node: frequency.setValueAtTime(350,0) did not throw an exception.PASS
k-rate Q: Difference between a-rate and k-rate BiquadFilterNode is not constantly 0 (contains 7999 different values).PASS
k-rate Q: Output of a-rate BiquadFilterNode is identical to the array [0,0.3906204402446747,0.8277556896209717,1.236454725265503,1.5436350107192993,1.6886674165725708,1.6321626901626587,1.361878514289856,0.8950015306472778,0.27653712034225464,-0.42596039175987244,-1.1306581497192383,-1.7516529560089111,-2.2098560333251953,-2.443169593811035,-2.414689540863037...].PASS
k-rate Q: Output of k-rate BiquadFilterNode is identical to the array [0,0.3906746506690979,0.8280417323112488,1.2371118068695068,1.5446836948394775,1.6899588108062744,1.6333708763122559,1.3625402450561523,0.8945979475975037,0.27460309863090515,-0.429720014333725,-1.1362684965133667,-1.758806824684143,-2.2179055213928223,-2.4511797428131104,-2.4215500354766846...].PASS
k-rate Q: Setting Q.automationRate to "k-rate" is equal to k-rate.PASS
k-rate Q: a-rate node:Q.linearRampToValueAtTime(10,1) did not throw an exception.PASS
k-rate Q: a-rate node:Q.setValueAtTime(1,0) did not throw an exception.PASS
k-rate Q: k-rate node: Q.linearRampToValueAtTime(10,1) did not throw an exception.PASS
k-rate Q: k-rate node: Q.setValueAtTime(1,0) did not throw an exception.PASS
k-rate detune: Difference between a-rate and k-rate BiquadFilterNode is not constantly 0 (contains 7999 different values).PASS
k-rate detune: Output of a-rate BiquadFilterNode is identical to the array [0,0.390678733587265,0.8280619978904724,1.237152099609375,1.544729232788086,1.6899703741073608,1.6332865953445435,1.3622863292694092,0.8941071629524231,0.2738376557826996,-0.43074584007263184,-1.1374714374542236,-1.7600282430648804,-2.2189197540283203,-2.4517171382904053,-2.421334981918335...].PASS
k-rate detune: Output of k-rate BiquadFilterNode is identical to the array [0,0.3906746506690979,0.8280417323112488,1.2371118068695068,1.5446836948394775,1.6899588108062744,1.6333708763122559,1.3625402450561523,0.8945979475975037,0.27460309863090515,-0.429720014333725,-1.1362684965133667,-1.758806824684143,-2.2179055213928223,-2.4511797428131104,-2.4215500354766846...].PASS
k-rate detune: Setting detune.automationRate to "k-rate" is equal to k-rate.PASS
k-rate detune: a-rate node:detune.linearRampToValueAtTime(1200,1) did not throw an exception.PASS
k-rate detune: a-rate node:detune.setValueAtTime(0,0) did not throw an exception.PASS
k-rate detune: k-rate node: detune.linearRampToValueAtTime(1200,1) did not throw an exception.PASS
k-rate detune: k-rate node: detune.setValueAtTime(0,0) did not throw an exception.PASS
k-rate frequency: Difference between a-rate and k-rate BiquadFilterNode is not constantly 0 (contains 7999 different values).PASS
k-rate frequency: Output of a-rate BiquadFilterNode is identical to the array [0,0.3906687796115875,0.8280125260353088,1.237053632736206,1.5446178913116455,1.6899420022964478,1.633492350578308,1.3629063367843628,0.8953056931495667,0.2757072150707245,-0.4282398223876953,-1.1345319747924805,-1.7570421695709229,-2.216438055038452,-2.4503977298736572,-2.4218509197235107...].PASS
k-rate frequency: Output of k-rate BiquadFilterNode is identical to the array [0,0.3906746506690979,0.8280417323112488,1.2371118068695068,1.5446836948394775,1.6899588108062744,1.6333708763122559,1.3625402450561523,0.8945979475975037,0.27460309863090515,-0.429720014333725,-1.1362684965133667,-1.758806824684143,-2.2179055213928223,-2.4511797428131104,-2.4215500354766846...].PASS
k-rate frequency: Setting frequency.automationRate to "k-rate" is equal to k-rate.PASS
k-rate frequency: a-rate node:frequency.linearRampToValueAtTime(0,1) did not throw an exception.PASS
k-rate frequency: a-rate node:frequency.setValueAtTime(350,0) did not throw an exception.PASS
k-rate frequency: k-rate node: frequency.linearRampToValueAtTime(0,1) did not throw an exception.PASS
k-rate frequency: k-rate node: frequency.setValueAtTime(350,0) did not throw an exception.PASS
k-rate gain: Difference between a-rate and k-rate BiquadFilterNode is not constantly 0 (contains 7999 different values).PASS
k-rate gain: Output of a-rate BiquadFilterNode is identical to the array [0,0.390667200088501,0.8279994130134583,1.237004280090332,1.5444908142089844,1.6896843910217285,1.633053183555603,1.3622560501098633,0.8944581151008606,0.2747383117675781,-0.42918142676353455,-1.1352277994155884,-1.7572228908538818,-2.215818166732788,-2.448723077774048,-2.4189529418945312...].PASS
k-rate gain: Output of k-rate BiquadFilterNode is identical to the array [0,0.3906746506690979,0.8280417323112488,1.2371118068695068,1.5446836948394775,1.6899588108062744,1.6333708763122559,1.3625402450561523,0.8945979475975037,0.27460309863090515,-0.429720014333725,-1.1362684965133667,-1.758806824684143,-2.2179055213928223,-2.4511797428131104,-2.4215500354766846...].PASS
k-rate gain: Setting gain.automationRate to "k-rate" is equal to k-rate.PASS
k-rate gain: a-rate node:gain.linearRampToValueAtTime(0,1) did not throw an exception.PASS
k-rate gain: a-rate node:gain.setValueAtTime(10,0) did not throw an exception.PASS
k-rate gain: k-rate node: gain.linearRampToValueAtTime(0,1) did not throw an exception.PASS
k-rate gain: k-rate node: gain.setValueAtTime(10,0) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Biquad k-rate AudioParams (all)] All assertions passed. (total 11 assertions)PASS
< [Biquad k-rate Q] All assertions passed. (total 8 assertions)PASS
< [Biquad k-rate detune] All assertions passed. (total 8 assertions)PASS
< [Biquad k-rate frequency] All assertions passed. (total 8 assertions)PASS
< [Biquad k-rate gain] All assertions passed. (total 8 assertions)PASS
> [Biquad k-rate AudioParams (all)] PASS
> [Biquad k-rate Q] PASS
> [Biquad k-rate detune] PASS
> [Biquad k-rate frequency] PASS
> [Biquad k-rate gain] PASS
/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html (14/14, 100.00%, 0.24% of total)OK
Mono: Left channel error magnitude is less than or equal to 0.0000013.PASS
Mono: Number of impulse at the wrong offset is equal to 0.PASS
Mono: Number of impulses found is equal to 100.PASS
Mono: Right channel error magnitude is less than or equal to 0.0000013.PASS
Stereo: Left channel error magnitude is less than or equal to 0.0000013.PASS
Stereo: Number of impulse at the wrong offset is equal to 0.PASS
Stereo: Number of impulses found is equal to 100.PASS
Stereo: Right channel error magnitude is less than or equal to 0.0000013.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [mono-test] All assertions passed. (total 4 assertions)PASS
< [stereo-test] All assertions passed. (total 4 assertions)PASS
> [mono-test] PASS
> [stereo-test] PASS
/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html (1/1, 100.00%, 0.02% of total)TIMEOUT
/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.htmlTIMEOUT
/webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner.html (12/12, 100.00%, 0.21% of total)OK
StereoPannerNode: Difference between a-rate and k-rate StereoPannerNode is not constantly 0 (contains 7960 different values).PASS
StereoPannerNode: Output of a-rate StereoPannerNode is identical to the array [0,0.23952363431453705,0.45072638988494873,0.6086363196372986,0.6945812106132507,0.6984005570411682,0.619641900062561,0.4676174521446228,0.2603030800819397,0.02221057564020157,-0.218507781624794,-0.43339067697525024,-0.5970293879508972,-0.6900765299797058,-0.7015308141708374,-0.6300357580184937...].PASS
StereoPannerNode: Output of k-rate StereoPannerNode is identical to the array [0,0.23952363431453705,0.4507264196872711,0.6086363196372986,0.6945812106132507,0.698400616645813,0.6196419596672058,0.4676174819469452,0.2603031098842621,0.022210577502846718,-0.2185078114271164,-0.433390736579895,-0.5970295071601868,-0.6900766491889954,-0.7015309929847717,-0.630035936832428...].PASS
StereoPannerNode: Setting pan.automationRate to "k-rate" is equal to k-rate.PASS
StereoPannerNode: a-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: k-rate node: pan.linearRampToValueAtTime(0.5,1) did not throw an exception.PASS
StereoPannerNode: k-rate node: pan.setValueAtTime(0,0) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Test k-rate StereoPannerNode] All assertions passed. (total 8 assertions)PASS
> [Test k-rate StereoPannerNode] PASS
/webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.html (57/57, 100.00%, 0.99% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new DynamicsCompressorNode() threw TypeError: "Failed to construct 'DynamicsCompressorNode': 1 argument required, but only 0 present.".PASS
new DynamicsCompressorNode(1) threw TypeError: "Failed to construct 'DynamicsCompressorNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new DynamicsCompressorNode(c, {"channelCount":0}) threw NotSupportedError: "Failed to construct 'DynamicsCompressorNode': The channelCount provided (0) is outside the range [1, 2].".PASS
new DynamicsCompressorNode(c, {"channelCount":1}) did not throw an exception.PASS
new DynamicsCompressorNode(c, {"channelCount":2}) did not throw an exception.PASS
new DynamicsCompressorNode(c, {"channelCount":3}) threw NotSupportedError: "Failed to construct 'DynamicsCompressorNode': The channelCount provided (3) is outside the range [1, 2].".PASS
new DynamicsCompressorNode(c, {"channelCount":99}) threw NotSupportedError: "Failed to construct 'DynamicsCompressorNode': The channelCount provided (99) is outside the range [1, 2].".PASS
new DynamicsCompressorNode(c, {"channelCountMode":"clamped-max"}) did not throw an exception.PASS
new DynamicsCompressorNode(c, {"channelCountMode":"explicit"}) did not throw an exception.PASS
new DynamicsCompressorNode(c, {"channelCountMode":"foobar"}) threw TypeError: "Failed to construct 'DynamicsCompressorNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
new DynamicsCompressorNode(c, {"channelCountMode":"max"}) threw NotSupportedError: "Failed to construct 'DynamicsCompressorNode': The provided value 'max' is not an allowed value for ChannelCountMode".PASS
new DynamicsCompressorNode(c, {"channelInterpretation":"discrete"}) did not throw an exception.PASS
new DynamicsCompressorNode(c, {"channelInterpretation":"foobar"}) threw TypeError: "Failed to construct 'DynamicsCompressorNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new DynamicsCompressorNode(c, {"channelInterpretation":"speakers"}) did not throw an exception.PASS
new DynamicsCompressorNode(context, 42) threw TypeError: "Failed to construct 'DynamicsCompressorNode': parameter 2 ('options') is not an object.".PASS
node.channelCount is equal to 1.PASS
node.channelCount is equal to 2.PASS
node.channelCountMode is equal to clamped-max.PASS
node.channelCountMode is equal to explicit.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node0 = new DynamicsCompressorNode(context) did not throw an exception.PASS
node0 instanceof DynamicsCompressorNode is equal to true.PASS
node0.attack.value is equal to 0.003000000026077032.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to clamped-max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.knee.value is equal to 30.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 1.PASS
node0.ratio.value is equal to 12.PASS
node0.reduction is equal to 0.PASS
node0.release.value is equal to 0.25.PASS
node0.threshold.value is equal to -24.PASS
node1 = new DynamicsCompressorNode(c, {"threshold":-33,"knee":15,"ratio":7,"attack":0.625,"release":0.125}) did not throw an exception.PASS
node1 instanceof DynamicsCompressorNode is equal to true.PASS
node1.attack.value is equal to 0.625.PASS
node1.channelCount is equal to 2.PASS
node1.channelCountMode is equal to clamped-max.PASS
node1.channelInterpretation is equal to speakers.PASS
node1.knee.value is equal to 15.PASS
node1.ratio.value is equal to 7.PASS
node1.release.value is equal to 0.125.PASS
node1.threshold.value is equal to -33.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor with options] All assertions passed. (total 10 assertions)PASS
< [default constructor] All assertions passed. (total 13 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 18 assertions)PASS
> [constructor with options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect.html (7/7, 100.00%, 0.12% of total)OK
Channel #0 contains only the constant 1.PASS
Channel #1 contains all the expected values in the correct order: [1,0].PASS
The index of first zero in the channel #1 is equal to 11008.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [silent-disconnect] All assertions passed. (total 3 assertions)PASS
> [silent-disconnect] PASS
/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https.html (11/11, 100.00%, 0.19% of total)OK
k-rate output [0: 127] contains only the constant 0.PASS
k-rate output [128: 255] contains only the constant 2.5.PASS
k-rate output [256: 383] contains only the constant 5.PASS
k-rate output [384: 511] contains only the constant 7.5.PASS
Construction of AudioWorklet resolved correctly.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [AudioWorklet k-rate AudioParam] All assertions passed. (total 4 assertions)PASS
< [Create Test Worklet] All assertions passed. (total 1 assertions)PASS
> [AudioWorklet k-rate AudioParam] PASS
> [Create Test Worklet] PASS
/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.html (41/41, 100.00%, 0.71% of total)OK
At time 0, Q is equal to 5.PASS
At time 0, detune is equal to 33.PASS
At time 0, frequency is equal to 350.PASS
At time 0, gain is equal to 1.PASS
At time 0.015625, Q is equal to 10.PASS
At time 0.015625, detune is equal to 1000.PASS
At time 0.015625, frequency is equal to 800.PASS
At time 0.015625, gain is equal to 5.PASS
At time 0.0390625, detune is equal to -400.PASS
At time 0.046875, gain is equal to -0.3.PASS
At time 0.0546875, frequency is equal to 200.PASS
At time 0.0625, Q is equal to -10.PASS
Modulation: At time 0, frequency is equal to 350.PASS
Modulation: At time 0.015625, frequency is equal to 10.PASS
Modulation: At time 0.0625, frequency is equal to -10.PASS
Modulation: Output from frequency setter equals [0,0.16927161812782288,0.3364819586277008,0.4967540204524994,0.6454269886016846,0.7780186533927917,0.8904149532318115,0.9789472222328186,1.0408990383148193,1.0747627019882202,1.0793930292129517,1.0543287992477417,1.0000861883163452,0.9177318811416626,0.8092702627182007,0.6773739457130432...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.PASS
Modulation: Output from frequency setter matches setValueAtTime output is true.PASS
Output from Q setter equals [0,0.1679382622241974,0.3311063051223755,0.4848693013191223,0.6248595714569092,0.7471005916595459,0.8481203317642212,0.9250491857528687,0.9757021069526672,0.9986401796340942,0.9932119250297546,0.9595714807510376,0.898674488067627,0.812250554561615,0.7027547359466553,0.5732971429824829...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.PASS
Output from Q setter matches setValueAtTime output is true.PASS
Output from detune setter equals [0,0.1731615662574768,0.3515752851963043,0.5295105576515198,0.7010408043861389,0.8602387309074402,1.0013757944107056,1.1191174983978271,1.2087109088897705,1.266155481338501,1.2883533239364624,1.2732324600219727,1.2198400497436523,1.128400444984436,1.0003379583358765,0.8382604718208313...] with an element-wise tolerance of {"absoluteThreshold":0.0000040532,"relativeThreshold":0}.PASS
Output from detune setter matches setValueAtTime output is true.PASS
Output from frequency setter equals [0,0.17418302595615387,0.3552042841911316,0.5364867448806763,0.7114058136940002,0.873506486415863,1.0167137384414673,1.1355278491973877,1.2252023220062256,1.2818958759307861,1.3027966022491455,1.2862135171890259,1.2316334247589111,1.13974130153656,1.0124047994613647,0.8526217341423035...] with an element-wise tolerance of {"absoluteThreshold":0.0000030399,"relativeThreshold":0}.PASS
Output from frequency setter matches setValueAtTime output is true.PASS
Output from gain setter equals [0,0.1691557615995407,0.3357764184474945,0.4948003888130188,0.6413880586624146,0.7710639238357544,0.8798481225967407,0.9643720388412476,1.0219770669937134,1.050791621208191,1.04978609085083,1.0188024044036865,0.9585589170455933,0.8706295490264893,0.7573990821838379,0.6219937205314636...] with an element-wise tolerance of {"absoluteThreshold":0.0000019074,"relativeThreshold":0}.PASS
Output from gain setter matches setValueAtTime output is true.PASS
Output from lowpass filter equals [0,0.0007127507124096155,0.004163934849202633,0.012737087905406952,0.02830198034644127,0.05216708034276962,0.08505349606275558,0.12709031999111176,0.17783068120479584,0.23628735542297363,0.30098608136177063,0.37003442645072937,0.44120359420776367,0.5120201706886292,0.5798648595809937,0.6420747637748718...] with an element-wise tolerance of {"absoluteThreshold":4.7684e-7,"relativeThreshold":0}.PASS
Output matches JS filter results is true.PASS
# AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Test 0] All assertions passed. (total 5 assertions)PASS
< [Test 1] All assertions passed. (total 5 assertions)PASS
< [Test 2] All assertions passed. (total 5 assertions)PASS
< [Test 3] All assertions passed. (total 5 assertions)PASS
< [Test 4] All assertions passed. (total 2 assertions)PASS
< [Test 5] All assertions passed. (total 5 assertions)PASS
> [Test 0] No dezippering for frequencyPASS
> [Test 1] No dezippering for detunePASS
> [Test 2] No dezippering for QPASS
> [Test 3] No dezippering for gainPASS
> [Test 4] No dezippering of frequency vs JS filterPASS
> [Test 5] Test with modulationPASS
/webaudio/the-audio-api/the-pannernode-interface/distance-linear.html (106/106, 100.00%, 1.84% of total)OK
0.007071083877235651 is 0.007071067811865482 within an error of 0.0000033.PASS
0.014142167754471302 is 0.014142135623731043 within an error of 0.0000033.PASS
0.021213185042142868 is 0.021213203435596524 within an error of 0.0000033.PASS
0.028284266591072083 is 0.028284271247462005 within an error of 0.0000033.PASS
0.035355351865291595 is 0.03535533905932741 within an error of 0.0000033.PASS
0.04242643713951111 is 0.042426406871192895 within an error of 0.0000033.PASS
0.04949745163321495 is 0.04949747468305837 within an error of 0.0000033.PASS
0.056568533182144165 is 0.056568542494923775 within an error of 0.0000033.PASS
0.06363962590694427 is 0.06363961030678926 within an error of 0.0000033.PASS
0.07071070373058319 is 0.07071067811865474 within an error of 0.0000033.PASS
0.07778171449899673 is 0.0777817459305203 within an error of 0.0000033.PASS
0.08485280722379684 is 0.08485281374238579 within an error of 0.0000033.PASS
0.09192388504743576 is 0.09192388155425127 within an error of 0.0000033.PASS
0.09899497032165527 is 0.09899494936611666 within an error of 0.0000033.PASS
0.10606598854064941 is 0.10606601717798216 within an error of 0.0000033.PASS
0.11313706636428833 is 0.11313708498984763 within an error of 0.0000033.PASS
0.12020815163850784 is 0.12020815280171311 within an error of 0.0000033.PASS
0.12727925181388855 is 0.12727922061357852 within an error of 0.0000033.PASS
0.13435029983520508 is 0.13435028842544408 within an error of 0.0000033.PASS
0.1414213329553604 is 0.14142135623730956 within an error of 0.0000033.PASS
0.14849242568016052 is 0.14849242404917495 within an error of 0.0000033.PASS
0.15556347370147705 is 0.15556349186104051 within an error of 0.0000033.PASS
0.16263456642627716 is 0.16263455967290602 within an error of 0.0000033.PASS
0.1697056144475937 is 0.16970562748477142 within an error of 0.0000033.PASS
0.1767766922712326 is 0.1767766952966369 within an error of 0.0000033.PASS
0.18384777009487152 is 0.18384776310850245 within an error of 0.0000033.PASS
0.19091883301734924 is 0.19091883092036785 within an error of 0.0000033.PASS
0.19798991084098816 is 0.19798989873223333 within an error of 0.0000033.PASS
0.2050609588623047 is 0.20506096654409883 within an error of 0.0000033.PASS
0.2121320366859436 is 0.2121320343559643 within an error of 0.0000033.PASS
0.21920309960842133 is 0.2192031021678298 within an error of 0.0000033.PASS
0.22627417743206024 is 0.22627416997969527 within an error of 0.0000033.PASS
0.23334522545337677 is 0.23334523779156066 within an error of 0.0000033.PASS
0.24041630327701569 is 0.24041630560342622 within an error of 0.0000033.PASS
0.2474873661994934 is 0.2474873734152917 within an error of 0.0000033.PASS
0.2545584440231323 is 0.2545584412271571 within an error of 0.0000033.PASS
0.26162949204444885 is 0.2616295090390226 within an error of 0.0000033.PASS
0.26870059967041016 is 0.2687005768508881 within an error of 0.0000033.PASS
0.2757716178894043 is 0.27577164466275356 within an error of 0.0000033.PASS
0.2828427255153656 is 0.28284271247461906 within an error of 0.0000033.PASS
0.28991377353668213 is 0.2899137802864845 within an error of 0.0000033.PASS
0.29698485136032104 is 0.29698484809835 within an error of 0.0000033.PASS
0.3040558993816376 is 0.30405591591021547 within an error of 0.0000033.PASS
0.3111269772052765 is 0.311126983722081 within an error of 0.0000033.PASS
0.318198025226593 is 0.3181980515339465 within an error of 0.0000033.PASS
0.3252691328525543 is 0.3252691193458119 within an error of 0.0000033.PASS
0.33234015107154846 is 0.33234018715767744 within an error of 0.0000033.PASS
0.3394112288951874 is 0.3394112549695429 within an error of 0.0000033.PASS
0.3464823067188263 is 0.3464823227814083 within an error of 0.0000033.PASS
0.3535533845424652 is 0.3535533905932738 within an error of 0.0000033.PASS
0.3606244921684265 is 0.3606244584051393 within an error of 0.0000033.PASS
0.36769551038742065 is 0.36769552621700474 within an error of 0.0000033.PASS
0.37476661801338196 is 0.37476659402887025 within an error of 0.0000033.PASS
0.3818376660346985 is 0.3818376618407357 within an error of 0.0000033.PASS
0.3889087438583374 is 0.3889087296526012 within an error of 0.0000033.PASS
0.39597979187965393 is 0.39597979746446665 within an error of 0.0000033.PASS
0.40305083990097046 is 0.40305086527633216 within an error of 0.0000033.PASS
0.4101219177246094 is 0.41012193308819767 within an error of 0.0000033.PASS
0.4171930253505707 is 0.41719300090006306 within an error of 0.0000033.PASS
0.4242640435695648 is 0.4242640687119286 within an error of 0.0000033.PASS
0.4313351511955261 is 0.43133513652379407 within an error of 0.0000033.PASS
0.43840619921684265 is 0.43840620433565947 within an error of 0.0000033.PASS
0.4454772472381592 is 0.445477272147525 within an error of 0.0000033.PASS
0.4525483250617981 is 0.4525483399593905 within an error of 0.0000033.PASS
0.4596194326877594 is 0.45961940777125593 within an error of 0.0000033.PASS
0.4666904807090759 is 0.46669047558312143 within an error of 0.0000033.PASS
0.47376155853271484 is 0.4737615433949869 within an error of 0.0000033.PASS
0.48083260655403137 is 0.4808326112068523 within an error of 0.0000033.PASS
0.4879036545753479 is 0.4879036790187178 within an error of 0.0000033.PASS
0.4949747323989868 is 0.4949747468305833 within an error of 0.0000033.PASS
0.5020458102226257 is 0.5020458146424488 within an error of 0.0000033.PASS
0.5091168880462646 is 0.5091168824543142 within an error of 0.0000033.PASS
0.5161879658699036 is 0.5161879502661797 within an error of 0.0000033.PASS
0.5232590436935425 is 0.5232590180780452 within an error of 0.0000033.PASS
0.5303300619125366 is 0.5303300858899107 within an error of 0.0000033.PASS
0.5374011397361755 is 0.5374011537017762 within an error of 0.0000033.PASS
0.5444722175598145 is 0.5444722215136416 within an error of 0.0000033.PASS
0.5515432357788086 is 0.5515432893255071 within an error of 0.0000033.PASS
0.5586143732070923 is 0.5586143571373726 within an error of 0.0000033.PASS
0.5656854510307312 is 0.5656854249492381 within an error of 0.0000033.PASS
0.5727564692497253 is 0.5727564927611035 within an error of 0.0000033.PASS
0.5798275470733643 is 0.579827560572969 within an error of 0.0000033.PASS
0.5868986248970032 is 0.5868986283848345 within an error of 0.0000033.PASS
0.5939696431159973 is 0.5939696961966999 within an error of 0.0000033.PASS
0.601040780544281 is 0.6010407640085654 within an error of 0.0000033.PASS
0.6081118583679199 is 0.6081118318204309 within an error of 0.0000033.PASS
0.6151828765869141 is 0.6151828996322963 within an error of 0.0000033.PASS
0.622253954410553 is 0.6222539674441618 within an error of 0.0000033.PASS
0.6293250322341919 is 0.6293250352560273 within an error of 0.0000033.PASS
0.636396050453186 is 0.6363961030678928 within an error of 0.0000033.PASS
0.6434671878814697 is 0.6434671708797584 within an error of 0.0000033.PASS
0.6505382657051086 is 0.6505382386916237 within an error of 0.0000033.PASS
0.6576092839241028 is 0.6576093065034893 within an error of 0.0000033.PASS
0.6646803617477417 is 0.6646803743153548 within an error of 0.0000033.PASS
0.6717514395713806 is 0.6717514421272202 within an error of 0.0000033.PASS
0.6788224577903748 is 0.6788225099390857 within an error of 0.0000033.PASS
0.6858935952186584 is 0.6858935777509512 within an error of 0.0000033.PASS
0.6929646730422974 is 0.6929646455628166 within an error of 0.0000033.PASS
0.7000356912612915 is 0.7000357133746821 within an error of 0.0000033.PASS
0.7071067690849304 is 0.7071067811865476 within an error of 0.0000033.PASS
Max error in distance gains is less than or equal to 0.0000033.PASS
Number of impulses is equal to 100.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 102 assertions)PASS
> [test] Linear distance model PannerNodePASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass.html (7/7, 100.00%, 0.12% of total)OK
Max error in Highpass filter response is less than or equal to 1.5487e-8.PASS
Number of filters tested is equal to 3.PASS
Number of non-finite values in the rendered output is equal to 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Biquad highpass filterPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowshelf.html (7/7, 100.00%, 0.12% of total)OK
Max error in Lowshelf filter response is less than or equal to 3.8349e-8.PASS
Number of filters tested is equal to 3.PASS
Number of non-finite values in the rendered output is equal to 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Biquad lowshelf filterPASS
/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic.html (40/40, 100.00%, 0.70% of total)OK
Calling start() twice threw InvalidStateError: "Failed to execute 'start' on 'AudioScheduledSourceNode': cannot call start more than once.".PASS
Calling stop() before start() threw InvalidStateError: "Failed to execute 'stop' on 'AudioScheduledSourceNode': cannot call stop without calling start first.".PASS
Constructor: node = new ConstantSourceNode() did not throw an exception.PASS
Constructor: node instance of ConstantSourceNode is equal to true.PASS
Constructor: node.channelCount is equal to 2.PASS
Constructor: node.channelCountMode is equal to max.PASS
Constructor: node.channelInterpretation is equal to speakers.PASS
Constructor: node.numberOfInputs is equal to 0.PASS
Constructor: node.numberOfOutputs is equal to 1.PASS
Constructor: node.offset.defaultValue is equal to 1.PASS
Constructor: node.offset.maxValue is equal to 3.4028234663852886e+38.PASS
Constructor: node.offset.minValue is equal to -3.4028234663852886e+38.PASS
Constructor: node.offset.value is equal to 1.PASS
Factory method: node = context.createConstantSource() did not throw an exception.PASS
Factory method: node instance of ConstantSourceNode is equal to true.PASS
Factory method: node.channelCount is equal to 2.PASS
Factory method: node.channelCountMode is equal to max.PASS
Factory method: node.channelInterpretation is equal to speakers.PASS
Factory method: node.numberOfInputs is equal to 0.PASS
Factory method: node.numberOfOutputs is equal to 1.PASS
Factory method: node.offset.defaultValue is equal to 1.PASS
Factory method: node.offset.maxValue is equal to 3.4028234663852886e+38.PASS
Factory method: node.offset.minValue is equal to -3.4028234663852886e+38.PASS
Factory method: node.offset.value is equal to 1.PASS
start(-1) threw RangeError: "Failed to execute 'start' on 'AudioScheduledSourceNode': The start time provided (-1) is less than the minimum bound (0).".PASS
start(-Infinity) threw TypeError: "Failed to execute 'start' on 'AudioScheduledSourceNode': The provided double value is non-finite.".PASS
start(Infinity) threw TypeError: "Failed to execute 'start' on 'AudioScheduledSourceNode': The provided double value is non-finite.".PASS
start(NaN) threw TypeError: "Failed to execute 'start' on 'AudioScheduledSourceNode': The provided double value is non-finite.".PASS
stop(-1) threw RangeError: "Failed to execute 'stop' on 'AudioScheduledSourceNode': The stop time provided (-1) is less than the minimum bound (0).".PASS
stop(-Infinity) threw TypeError: "Failed to execute 'stop' on 'AudioScheduledSourceNode': The provided double value is non-finite.".PASS
stop(Infinity) threw TypeError: "Failed to execute 'stop' on 'AudioScheduledSourceNode': The provided double value is non-finite.".PASS
stop(NaN) threw TypeError: "Failed to execute 'stop' on 'AudioScheduledSourceNode': The provided double value is non-finite.".PASS
# AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [createConstantSource()] All assertions passed. (total 11 assertions)PASS
< [new ConstantSourceNode()] All assertions passed. (total 11 assertions)PASS
< [start/stop exceptions] All assertions passed. (total 10 assertions)PASS
> [createConstantSource()] PASS
> [new ConstantSourceNode()] PASS
> [start/stop exceptions] PASS
/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html (26/26, 100.00%, 0.45% of total)OK
1024-point FFT peak position is equal to 32.PASS
1024-point FFT peak value in dBFS is greater than or equal to -13.56.PASS
128-point FFT peak position is equal to 4.PASS
128-point FFT peak value in dBFS is greater than or equal to -13.56.PASS
16384-point FFT peak position is equal to 512.PASS
16384-point FFT peak value in dBFS is greater than or equal to -13.56.PASS
2048-point FFT peak position is equal to 64.PASS
2048-point FFT peak value in dBFS is greater than or equal to -13.56.PASS
256-point FFT peak position is equal to 8.PASS
256-point FFT peak value in dBFS is greater than or equal to -13.56.PASS
32-point FFT peak position is equal to 1.PASS
32-point FFT peak value in dBFS is greater than or equal to -14.43.PASS
32768-point FFT peak position is equal to 1024.PASS
32768-point FFT peak value in dBFS is greater than or equal to -13.56.PASS
4096-point FFT peak position is equal to 128.PASS
4096-point FFT peak value in dBFS is greater than or equal to -13.56.PASS
512-point FFT peak position is equal to 16.PASS
512-point FFT peak value in dBFS is greater than or equal to -13.56.PASS
64-point FFT peak position is equal to 2.PASS
64-point FFT peak value in dBFS is greater than or equal to -13.56.PASS
8192-point FFT peak position is equal to 256.PASS
8192-point FFT peak value in dBFS is greater than or equal to -13.56.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [FFT scaling tests] All assertions passed. (total 22 assertions)PASS
> [FFT scaling tests] Test Scaling of FFT in AnalyserNodePASS
/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelay.html (5/5, 100.00%, 0.09% of total)OK
Delaying test signal by 1.5 sec was done correctlyPASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 1 assertions)PASS
> [test] Basic functionality of DelayNode with a non-default max delay timePASS
/webaudio/the-audio-api/the-audionode-interface/audionode-connect-order.html (6/6, 100.00%, 0.10% of total)OK
Connecting nodes did not throw an exception.PASS
OfflineContext startRendering() resolved correctly.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Test connections] All assertions passed. (total 2 assertions)PASS
> [Test connections] AudioNode connection order doesn't trigger assertion errorsPASS
/webaudio/the-audio-api/the-audionode-interface/audionode.html (16/16, 100.00%, 0.28% of total)OK
AudioBufferSource.numberOfInputs is equal to 0.PASS
AudioBufferSource.numberOfOutputs is equal to 1.PASS
AudioContext.destination.numberOfInputs is equal to 1.PASS
AudioContext.destination.numberOfOutputs is equal to 0.PASS
AudioNode is an EventTarget is true.PASS
Connecting a node to a different context threw InvalidAccessError: "Failed to execute 'connect' on 'AudioNode': cannot connect to a destination belonging to a different audio context.".PASS
audioNode.connect(0, 0, 0) threw TypeError: "Failed to execute 'connect' on 'AudioNode': parameter 1 is not of type 'AudioNode'.".PASS
audioNode.connect(context.destination, 0, 0) did not throw an exception.PASS
audioNode.connect(context.destination, 0, 5) threw IndexSizeError: "Failed to execute 'connect' on 'AudioNode': input index (5) exceeds number of inputs (1).".PASS
audioNode.connect(context.destination, 5, 0) threw IndexSizeError: "Failed to execute 'connect' on 'AudioNode': output index (5) exceeds number of outputs (1).".PASS
audioNode.connect(null, 0, 0) threw TypeError: "Failed to execute 'connect' on 'AudioNode': parameter 1 is not of type 'AudioNode'.".PASS
context3 = new AudioContext(1, 44100, 44100) threw TypeError: "Failed to construct 'AudioContext': parameter 1 ('contextOptions') is not an object.".PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 12 assertions)PASS
> [test] Basic tests for AudioNode API.PASS
/webaudio/idlharness.https.window.html (1115/1115, 100.00%, 19.40% of total)OK
AnalyserNode interface object lengthPASS
AnalyserNode interface object namePASS
AnalyserNode interface: attribute fftSizePASS
AnalyserNode interface: attribute frequencyBinCountPASS
AnalyserNode interface: attribute maxDecibelsPASS
AnalyserNode interface: attribute minDecibelsPASS
AnalyserNode interface: attribute smoothingTimeConstantPASS
AnalyserNode interface: calling getByteFrequencyData(Uint8Array) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AnalyserNode interface: calling getByteTimeDomainData(Uint8Array) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AnalyserNode interface: calling getFloatFrequencyData(Float32Array) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AnalyserNode interface: calling getFloatTimeDomainData(Float32Array) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AnalyserNode interface: existence and properties of interface objectPASS
AnalyserNode interface: existence and properties of interface prototype objectPASS
AnalyserNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AnalyserNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "fftSize" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "frequencyBinCount" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "getByteFrequencyData(Uint8Array)" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "getByteTimeDomainData(Uint8Array)" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "getFloatFrequencyData(Float32Array)" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "getFloatTimeDomainData(Float32Array)" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "maxDecibels" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "minDecibels" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "smoothingTimeConstant" with the proper typePASS
AnalyserNode interface: operation getByteFrequencyData(Uint8Array)PASS
AnalyserNode interface: operation getByteTimeDomainData(Uint8Array)PASS
AnalyserNode interface: operation getFloatFrequencyData(Float32Array)PASS
AnalyserNode interface: operation getFloatTimeDomainData(Float32Array)PASS
AnalyserNode must be primary interface of new AnalyserNode(context)PASS
AudioBuffer interface object lengthPASS
AudioBuffer interface object namePASS
AudioBuffer interface: attribute durationPASS
AudioBuffer interface: attribute lengthPASS
AudioBuffer interface: attribute numberOfChannelsPASS
AudioBuffer interface: attribute sampleRatePASS
AudioBuffer interface: buffer must inherit property "copyFromChannel(Float32Array, unsigned long, unsigned long)" with the proper typePASS
AudioBuffer interface: buffer must inherit property "copyToChannel(Float32Array, unsigned long, unsigned long)" with the proper typePASS
AudioBuffer interface: buffer must inherit property "duration" with the proper typePASS
AudioBuffer interface: buffer must inherit property "getChannelData(unsigned long)" with the proper typePASS
AudioBuffer interface: buffer must inherit property "length" with the proper typePASS
AudioBuffer interface: buffer must inherit property "numberOfChannels" with the proper typePASS
AudioBuffer interface: buffer must inherit property "sampleRate" with the proper typePASS
AudioBuffer interface: calling copyFromChannel(Float32Array, unsigned long, unsigned long) on buffer with too few arguments must throw TypeErrorPASS
AudioBuffer interface: calling copyToChannel(Float32Array, unsigned long, unsigned long) on buffer with too few arguments must throw TypeErrorPASS
AudioBuffer interface: calling getChannelData(unsigned long) on buffer with too few arguments must throw TypeErrorPASS
AudioBuffer interface: existence and properties of interface objectPASS
AudioBuffer interface: existence and properties of interface prototype objectPASS
AudioBuffer interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioBuffer interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioBuffer interface: operation copyFromChannel(Float32Array, unsigned long, unsigned long)PASS
AudioBuffer interface: operation copyToChannel(Float32Array, unsigned long, unsigned long)PASS
AudioBuffer interface: operation getChannelData(unsigned long)PASS
AudioBuffer must be primary interface of bufferPASS
AudioBufferSourceNode interface object lengthPASS
AudioBufferSourceNode interface object namePASS
AudioBufferSourceNode interface: attribute bufferPASS
AudioBufferSourceNode interface: attribute detunePASS
AudioBufferSourceNode interface: attribute loopPASS
AudioBufferSourceNode interface: attribute loopEndPASS
AudioBufferSourceNode interface: attribute loopStartPASS
AudioBufferSourceNode interface: attribute playbackRatePASS
AudioBufferSourceNode interface: calling start(double, double, double) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioBufferSourceNode interface: existence and properties of interface objectPASS
AudioBufferSourceNode interface: existence and properties of interface prototype objectPASS
AudioBufferSourceNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioBufferSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "buffer" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "detune" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "loop" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "loopEnd" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "loopStart" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "playbackRate" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "start(double, double, double)" with the proper typePASS
AudioBufferSourceNode interface: operation start(double, double, double)PASS
AudioBufferSourceNode must be primary interface of new AudioBufferSourceNode(context)PASS
AudioContext interface object lengthPASS
AudioContext interface object namePASS
AudioContext interface: attribute baseLatencyPASS
AudioContext interface: attribute outputLatencyFAIL
AudioContext interface: calling createMediaElementSource(HTMLMediaElement) on context with too few arguments must throw TypeErrorPASS
AudioContext interface: calling createMediaStreamSource(MediaStream) on context with too few arguments must throw TypeErrorPASS
AudioContext interface: calling createMediaStreamTrackSource(MediaStreamTrack) on context with too few arguments must throw TypeErrorFAIL
AudioContext interface: context must inherit property "baseLatency" with the proper typePASS
AudioContext interface: context must inherit property "close()" with the proper typePASS
AudioContext interface: context must inherit property "createMediaElementSource(HTMLMediaElement)" with the proper typePASS
AudioContext interface: context must inherit property "createMediaStreamDestination()" with the proper typePASS
AudioContext interface: context must inherit property "createMediaStreamSource(MediaStream)" with the proper typePASS
AudioContext interface: context must inherit property "createMediaStreamTrackSource(MediaStreamTrack)" with the proper typeFAIL
AudioContext interface: context must inherit property "getOutputTimestamp()" with the proper typePASS
AudioContext interface: context must inherit property "outputLatency" with the proper typeFAIL
AudioContext interface: context must inherit property "resume()" with the proper typePASS
AudioContext interface: context must inherit property "suspend()" with the proper typePASS
AudioContext interface: existence and properties of interface objectPASS
AudioContext interface: existence and properties of interface prototype objectPASS
AudioContext interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioContext interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioContext interface: operation close()PASS
AudioContext interface: operation createMediaElementSource(HTMLMediaElement)PASS
AudioContext interface: operation createMediaStreamDestination()PASS
AudioContext interface: operation createMediaStreamSource(MediaStream)PASS
AudioContext interface: operation createMediaStreamTrackSource(MediaStreamTrack)FAIL
AudioContext interface: operation getOutputTimestamp()PASS
AudioContext interface: operation resume()PASS
AudioContext interface: operation suspend()PASS
AudioContext must be primary interface of contextPASS
AudioDestinationNode interface object lengthPASS
AudioDestinationNode interface object namePASS
AudioDestinationNode interface: attribute maxChannelCountPASS
AudioDestinationNode interface: context.destination must inherit property "maxChannelCount" with the proper typePASS
AudioDestinationNode interface: existence and properties of interface objectPASS
AudioDestinationNode interface: existence and properties of interface prototype objectPASS
AudioDestinationNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioDestinationNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioDestinationNode must be primary interface of context.destinationPASS
AudioListener interface object lengthPASS
AudioListener interface object namePASS
AudioListener interface: attribute forwardXPASS
AudioListener interface: attribute forwardYPASS
AudioListener interface: attribute forwardZPASS
AudioListener interface: attribute positionXPASS
AudioListener interface: attribute positionYPASS
AudioListener interface: attribute positionZPASS
AudioListener interface: attribute upXPASS
AudioListener interface: attribute upYPASS
AudioListener interface: attribute upZPASS
AudioListener interface: calling setOrientation(float, float, float, float, float, float) on context.listener with too few arguments must throw TypeErrorPASS
AudioListener interface: calling setPosition(float, float, float) on context.listener with too few arguments must throw TypeErrorPASS
AudioListener interface: context.listener must inherit property "forwardX" with the proper typePASS
AudioListener interface: context.listener must inherit property "forwardY" with the proper typePASS
AudioListener interface: context.listener must inherit property "forwardZ" with the proper typePASS
AudioListener interface: context.listener must inherit property "positionX" with the proper typePASS
AudioListener interface: context.listener must inherit property "positionY" with the proper typePASS
AudioListener interface: context.listener must inherit property "positionZ" with the proper typePASS
AudioListener interface: context.listener must inherit property "setOrientation(float, float, float, float, float, float)" with the proper typePASS
AudioListener interface: context.listener must inherit property "setPosition(float, float, float)" with the proper typePASS
AudioListener interface: context.listener must inherit property "upX" with the proper typePASS
AudioListener interface: context.listener must inherit property "upY" with the proper typePASS
AudioListener interface: context.listener must inherit property "upZ" with the proper typePASS
AudioListener interface: existence and properties of interface objectPASS
AudioListener interface: existence and properties of interface prototype objectPASS
AudioListener interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioListener interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioListener interface: operation setOrientation(float, float, float, float, float, float)PASS
AudioListener interface: operation setPosition(float, float, float)PASS
AudioListener must be primary interface of context.listenerPASS
AudioNode interface object lengthPASS
AudioNode interface object namePASS
AudioNode interface: attribute channelCountPASS
AudioNode interface: attribute channelCountModePASS
AudioNode interface: attribute channelInterpretationPASS
AudioNode interface: attribute contextPASS
AudioNode interface: attribute numberOfInputsPASS
AudioNode interface: attribute numberOfOutputsPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on worklet_node with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on worklet_node with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on worklet_node with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on worklet_node with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on worklet_node with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on worklet_node with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on worklet_node with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on worklet_node with too few arguments must throw TypeErrorPASS
AudioNode interface: context.createScriptProcessor() must inherit property "channelCount" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "context" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect()" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: context.destination must inherit property "channelCount" with the proper typePASS
AudioNode interface: context.destination must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: context.destination must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: context.destination must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "context" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect()" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: context.destination must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: existence and properties of interface objectPASS
AudioNode interface: existence and properties of interface prototype objectPASS
AudioNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioNode interface: new AnalyserNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "context" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "context" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: operation connect(AudioNode, unsigned long, unsigned long)PASS
AudioNode interface: operation connect(AudioParam, unsigned long)PASS
AudioNode interface: operation disconnect()PASS
AudioNode interface: operation disconnect(AudioNode)PASS
AudioNode interface: operation disconnect(AudioNode, unsigned long)PASS
AudioNode interface: operation disconnect(AudioNode, unsigned long, unsigned long)PASS
AudioNode interface: operation disconnect(AudioParam)PASS
AudioNode interface: operation disconnect(AudioParam, unsigned long)PASS
AudioNode interface: operation disconnect(unsigned long)PASS
AudioNode interface: worklet_node must inherit property "channelCount" with the proper typePASS
AudioNode interface: worklet_node must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: worklet_node must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: worklet_node must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: worklet_node must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: worklet_node must inherit property "context" with the proper typePASS
AudioNode interface: worklet_node must inherit property "disconnect()" with the proper typePASS
AudioNode interface: worklet_node must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: worklet_node must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: worklet_node must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: worklet_node must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: worklet_node must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: worklet_node must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: worklet_node must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: worklet_node must inherit property "numberOfOutputs" with the proper typePASS
AudioParam interface object lengthPASS
AudioParam interface object namePASS
AudioParam interface: attribute automationRatePASS
AudioParam interface: attribute defaultValuePASS
AudioParam interface: attribute maxValuePASS
AudioParam interface: attribute minValuePASS
AudioParam interface: attribute valuePASS
AudioParam interface: calling cancelAndHoldAtTime(double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling cancelScheduledValues(double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling exponentialRampToValueAtTime(float, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling linearRampToValueAtTime(float, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling setTargetAtTime(float, double, float) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling setValueAtTime(float, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling setValueCurveAtTime([object Object], double, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: existence and properties of interface objectPASS
AudioParam interface: existence and properties of interface prototype objectPASS
AudioParam interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioParam interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "automationRate" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "cancelAndHoldAtTime(double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "cancelScheduledValues(double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "defaultValue" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "exponentialRampToValueAtTime(float, double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "linearRampToValueAtTime(float, double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "maxValue" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "minValue" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "setTargetAtTime(float, double, float)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "setValueAtTime(float, double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "setValueCurveAtTime([object Object], double, double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "value" with the proper typePASS
AudioParam interface: operation cancelAndHoldAtTime(double)PASS
AudioParam interface: operation cancelScheduledValues(double)PASS
AudioParam interface: operation exponentialRampToValueAtTime(float, double)PASS
AudioParam interface: operation linearRampToValueAtTime(float, double)PASS
AudioParam interface: operation setTargetAtTime(float, double, float)PASS
AudioParam interface: operation setValueAtTime(float, double)PASS
AudioParam interface: operation setValueCurveAtTime([object Object], double, double)PASS
AudioParam must be primary interface of new AudioBufferSourceNode(context).playbackRatePASS
AudioParamMap interface object lengthPASS
AudioParamMap interface object namePASS
AudioParamMap interface: existence and properties of interface objectPASS
AudioParamMap interface: existence and properties of interface prototype objectPASS
AudioParamMap interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioParamMap interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioParamMap must be primary interface of worklet_node.parametersPASS
AudioProcessingEvent interface object lengthPASS
AudioProcessingEvent interface object namePASS
AudioProcessingEvent interface: attribute inputBufferPASS
AudioProcessingEvent interface: attribute outputBufferPASS
AudioProcessingEvent interface: attribute playbackTimePASS
AudioProcessingEvent interface: existence and properties of interface objectPASS
AudioProcessingEvent interface: existence and properties of interface prototype objectPASS
AudioProcessingEvent interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioProcessingEvent interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioProcessingEvent interface: new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) must inherit property "inputBuffer" with the proper typePASS
AudioProcessingEvent interface: new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) must inherit property "outputBuffer" with the proper typePASS
AudioProcessingEvent interface: new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) must inherit property "playbackTime" with the proper typePASS
AudioProcessingEvent must be primary interface of new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer })PASS
AudioScheduledSourceNode interface object lengthPASS
AudioScheduledSourceNode interface object namePASS
AudioScheduledSourceNode interface: attribute onendedPASS
AudioScheduledSourceNode interface: calling start(double) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: calling start(double) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: calling start(double) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: calling stop(double) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: calling stop(double) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: calling stop(double) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: existence and properties of interface objectPASS
AudioScheduledSourceNode interface: existence and properties of interface prototype objectPASS
AudioScheduledSourceNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioScheduledSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioScheduledSourceNode interface: new AudioBufferSourceNode(context) must inherit property "onended" with the proper typePASS
AudioScheduledSourceNode interface: new AudioBufferSourceNode(context) must inherit property "start(double)" with the proper typePASS
AudioScheduledSourceNode interface: new AudioBufferSourceNode(context) must inherit property "stop(double)" with the proper typePASS
AudioScheduledSourceNode interface: new ConstantSourceNode(context) must inherit property "onended" with the proper typePASS
AudioScheduledSourceNode interface: new ConstantSourceNode(context) must inherit property "start(double)" with the proper typePASS
AudioScheduledSourceNode interface: new ConstantSourceNode(context) must inherit property "stop(double)" with the proper typePASS
AudioScheduledSourceNode interface: new OscillatorNode(context) must inherit property "onended" with the proper typePASS
AudioScheduledSourceNode interface: new OscillatorNode(context) must inherit property "start(double)" with the proper typePASS
AudioScheduledSourceNode interface: new OscillatorNode(context) must inherit property "stop(double)" with the proper typePASS
AudioScheduledSourceNode interface: operation start(double)PASS
AudioScheduledSourceNode interface: operation stop(double)PASS
AudioWorklet interface object lengthPASS
AudioWorklet interface object namePASS
AudioWorklet interface: existence and properties of interface objectPASS
AudioWorklet interface: existence and properties of interface prototype objectPASS
AudioWorklet interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioWorklet interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioWorklet must be primary interface of context.audioWorkletPASS
AudioWorkletGlobalScope interface: existence and properties of interface objectPASS
AudioWorkletNode interface object lengthPASS
AudioWorkletNode interface object namePASS
AudioWorkletNode interface: attribute onprocessorerrorPASS
AudioWorkletNode interface: attribute parametersPASS
AudioWorkletNode interface: attribute portPASS
AudioWorkletNode interface: existence and properties of interface objectPASS
AudioWorkletNode interface: existence and properties of interface prototype objectPASS
AudioWorkletNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioWorkletNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioWorkletNode interface: worklet_node must inherit property "onprocessorerror" with the proper typePASS
AudioWorkletNode interface: worklet_node must inherit property "parameters" with the proper typePASS
AudioWorkletNode interface: worklet_node must inherit property "port" with the proper typePASS
AudioWorkletNode must be primary interface of worklet_nodePASS
AudioWorkletProcessor interface: existence and properties of interface objectPASS
BaseAudioContext interface object lengthPASS
BaseAudioContext interface object namePASS
BaseAudioContext interface: attribute audioWorkletPASS
BaseAudioContext interface: attribute currentTimePASS
BaseAudioContext interface: attribute destinationPASS
BaseAudioContext interface: attribute listenerPASS
BaseAudioContext interface: attribute onstatechangePASS
BaseAudioContext interface: attribute sampleRatePASS
BaseAudioContext interface: attribute statePASS
BaseAudioContext interface: calling createBuffer(unsigned long, unsigned long, float) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createBuffer(unsigned long, unsigned long, float) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createChannelMerger(unsigned long) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createChannelMerger(unsigned long) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createChannelSplitter(unsigned long) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createChannelSplitter(unsigned long) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createDelay(double) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createDelay(double) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createIIRFilter([object Object], [object Object]) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createIIRFilter([object Object], [object Object]) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createScriptProcessor(unsigned long, unsigned long, unsigned long) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createScriptProcessor(unsigned long, unsigned long, unsigned long) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: context must inherit property "audioWorklet" with the proper typePASS
BaseAudioContext interface: context must inherit property "createAnalyser()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createBiquadFilter()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createBuffer(unsigned long, unsigned long, float)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createBufferSource()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createChannelMerger(unsigned long)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createChannelSplitter(unsigned long)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createConstantSource()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createConvolver()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createDelay(double)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createDynamicsCompressor()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createGain()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createIIRFilter([object Object], [object Object])" with the proper typePASS
BaseAudioContext interface: context must inherit property "createOscillator()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createPanner()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createScriptProcessor(unsigned long, unsigned long, unsigned long)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createStereoPanner()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createWaveShaper()" with the proper typePASS
BaseAudioContext interface: context must inherit property "currentTime" with the proper typePASS
BaseAudioContext interface: context must inherit property "decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback)" with the proper typePASS
BaseAudioContext interface: context must inherit property "destination" with the proper typePASS
BaseAudioContext interface: context must inherit property "listener" with the proper typePASS
BaseAudioContext interface: context must inherit property "onstatechange" with the proper typePASS
BaseAudioContext interface: context must inherit property "sampleRate" with the proper typePASS
BaseAudioContext interface: context must inherit property "state" with the proper typePASS
BaseAudioContext interface: existence and properties of interface objectPASS
BaseAudioContext interface: existence and properties of interface prototype objectPASS
BaseAudioContext interface: existence and properties of interface prototype object's "constructor" propertyPASS
BaseAudioContext interface: existence and properties of interface prototype object's @@unscopables propertyPASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "audioWorklet" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createAnalyser()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createBiquadFilter()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createBuffer(unsigned long, unsigned long, float)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createBufferSource()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createChannelMerger(unsigned long)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createChannelSplitter(unsigned long)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createConstantSource()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createConvolver()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createDelay(double)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createDynamicsCompressor()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createGain()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createIIRFilter([object Object], [object Object])" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createOscillator()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createPanner()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createScriptProcessor(unsigned long, unsigned long, unsigned long)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createStereoPanner()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createWaveShaper()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "currentTime" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "destination" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "listener" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "onstatechange" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "sampleRate" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "state" with the proper typePASS
BaseAudioContext interface: operation createAnalyser()PASS
BaseAudioContext interface: operation createBiquadFilter()PASS
BaseAudioContext interface: operation createBuffer(unsigned long, unsigned long, float)PASS
BaseAudioContext interface: operation createBufferSource()PASS
BaseAudioContext interface: operation createChannelMerger(unsigned long)PASS
BaseAudioContext interface: operation createChannelSplitter(unsigned long)PASS
BaseAudioContext interface: operation createConstantSource()PASS
BaseAudioContext interface: operation createConvolver()PASS
BaseAudioContext interface: operation createDelay(double)PASS
BaseAudioContext interface: operation createDynamicsCompressor()PASS
BaseAudioContext interface: operation createGain()PASS
BaseAudioContext interface: operation createIIRFilter([object Object], [object Object])PASS
BaseAudioContext interface: operation createOscillator()PASS
BaseAudioContext interface: operation createPanner()PASS
BaseAudioContext interface: operation createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints)PASS
BaseAudioContext interface: operation createScriptProcessor(unsigned long, unsigned long, unsigned long)PASS
BaseAudioContext interface: operation createStereoPanner()PASS
BaseAudioContext interface: operation createWaveShaper()PASS
BaseAudioContext interface: operation decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback)PASS
BiquadFilterNode interface object lengthPASS
BiquadFilterNode interface object namePASS
BiquadFilterNode interface: attribute QPASS
BiquadFilterNode interface: attribute detunePASS
BiquadFilterNode interface: attribute frequencyPASS
BiquadFilterNode interface: attribute gainPASS
BiquadFilterNode interface: attribute typePASS
BiquadFilterNode interface: calling getFrequencyResponse(Float32Array, Float32Array, Float32Array) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
BiquadFilterNode interface: existence and properties of interface objectPASS
BiquadFilterNode interface: existence and properties of interface prototype objectPASS
BiquadFilterNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
BiquadFilterNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "Q" with the proper typePASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "detune" with the proper typePASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "frequency" with the proper typePASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "gain" with the proper typePASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "getFrequencyResponse(Float32Array, Float32Array, Float32Array)" with the proper typePASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "type" with the proper typePASS
BiquadFilterNode interface: operation getFrequencyResponse(Float32Array, Float32Array, Float32Array)PASS
BiquadFilterNode must be primary interface of new BiquadFilterNode(context)PASS
ChannelMergerNode interface object lengthPASS
ChannelMergerNode interface object namePASS
ChannelMergerNode interface: existence and properties of interface objectPASS
ChannelMergerNode interface: existence and properties of interface prototype objectPASS
ChannelMergerNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
ChannelMergerNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
ChannelMergerNode must be primary interface of new ChannelMergerNode(context)PASS
ChannelSplitterNode interface object lengthPASS
ChannelSplitterNode interface object namePASS
ChannelSplitterNode interface: existence and properties of interface objectPASS
ChannelSplitterNode interface: existence and properties of interface prototype objectPASS
ChannelSplitterNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
ChannelSplitterNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
ChannelSplitterNode must be primary interface of new ChannelSplitterNode(context)PASS
ConstantSourceNode interface object lengthPASS
ConstantSourceNode interface object namePASS
ConstantSourceNode interface: attribute offsetPASS
ConstantSourceNode interface: existence and properties of interface objectPASS
ConstantSourceNode interface: existence and properties of interface prototype objectPASS
ConstantSourceNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
ConstantSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
ConstantSourceNode interface: new ConstantSourceNode(context) must inherit property "offset" with the proper typePASS
ConstantSourceNode must be primary interface of new ConstantSourceNode(context)PASS
ConvolverNode interface object lengthPASS
ConvolverNode interface object namePASS
ConvolverNode interface: attribute bufferPASS
ConvolverNode interface: attribute normalizePASS
ConvolverNode interface: existence and properties of interface objectPASS
ConvolverNode interface: existence and properties of interface prototype objectPASS
ConvolverNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
ConvolverNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
ConvolverNode interface: new ConvolverNode(context) must inherit property "buffer" with the proper typePASS
ConvolverNode interface: new ConvolverNode(context) must inherit property "normalize" with the proper typePASS
ConvolverNode must be primary interface of new ConvolverNode(context)PASS
DelayNode interface object lengthPASS
DelayNode interface object namePASS
DelayNode interface: attribute delayTimePASS
DelayNode interface: existence and properties of interface objectPASS
DelayNode interface: existence and properties of interface prototype objectPASS
DelayNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
DelayNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
DelayNode interface: new DelayNode(context) must inherit property "delayTime" with the proper typePASS
DelayNode must be primary interface of new DelayNode(context)PASS
DynamicsCompressorNode interface object lengthPASS
DynamicsCompressorNode interface object namePASS
DynamicsCompressorNode interface: attribute attackPASS
DynamicsCompressorNode interface: attribute kneePASS
DynamicsCompressorNode interface: attribute ratioPASS
DynamicsCompressorNode interface: attribute reductionPASS
DynamicsCompressorNode interface: attribute releasePASS
DynamicsCompressorNode interface: attribute thresholdPASS
DynamicsCompressorNode interface: existence and properties of interface objectPASS
DynamicsCompressorNode interface: existence and properties of interface prototype objectPASS
DynamicsCompressorNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
DynamicsCompressorNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "attack" with the proper typePASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "knee" with the proper typePASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "ratio" with the proper typePASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "reduction" with the proper typePASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "release" with the proper typePASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "threshold" with the proper typePASS
DynamicsCompressorNode must be primary interface of new DynamicsCompressorNode(context)PASS
GainNode interface object lengthPASS
GainNode interface object namePASS
GainNode interface: attribute gainPASS
GainNode interface: existence and properties of interface objectPASS
GainNode interface: existence and properties of interface prototype objectPASS
GainNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
GainNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
GainNode interface: new GainNode(context) must inherit property "gain" with the proper typePASS
GainNode must be primary interface of new GainNode(context)PASS
IIRFilterNode interface object lengthPASS
IIRFilterNode interface object namePASS
IIRFilterNode interface: calling getFrequencyResponse(Float32Array, Float32Array, Float32Array) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
IIRFilterNode interface: existence and properties of interface objectPASS
IIRFilterNode interface: existence and properties of interface prototype objectPASS
IIRFilterNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
IIRFilterNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
IIRFilterNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "getFrequencyResponse(Float32Array, Float32Array, Float32Array)" with the proper typePASS
IIRFilterNode interface: operation getFrequencyResponse(Float32Array, Float32Array, Float32Array)PASS
IIRFilterNode must be primary interface of new IIRFilterNode(context, {feedforward: [1], feedback: [1]})PASS
MediaElementAudioSourceNode interface object lengthPASS
MediaElementAudioSourceNode interface object namePASS
MediaElementAudioSourceNode interface: attribute mediaElementPASS
MediaElementAudioSourceNode interface: existence and properties of interface objectPASS
MediaElementAudioSourceNode interface: existence and properties of interface prototype objectPASS
MediaElementAudioSourceNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
MediaElementAudioSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
MediaElementAudioSourceNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "mediaElement" with the proper typePASS
MediaElementAudioSourceNode must be primary interface of new MediaElementAudioSourceNode(context, {mediaElement: new Audio})PASS
MediaStreamAudioDestinationNode interface object lengthPASS
MediaStreamAudioDestinationNode interface object namePASS
MediaStreamAudioDestinationNode interface: attribute streamPASS
MediaStreamAudioDestinationNode interface: existence and properties of interface objectPASS
MediaStreamAudioDestinationNode interface: existence and properties of interface prototype objectPASS
MediaStreamAudioDestinationNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
MediaStreamAudioDestinationNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
MediaStreamAudioDestinationNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "stream" with the proper typePASS
MediaStreamAudioDestinationNode must be primary interface of new MediaStreamAudioDestinationNode(context)PASS
MediaStreamAudioSourceNode interface object lengthPASS
MediaStreamAudioSourceNode interface object namePASS
MediaStreamAudioSourceNode interface: attribute mediaStreamPASS
MediaStreamAudioSourceNode interface: existence and properties of interface objectPASS
MediaStreamAudioSourceNode interface: existence and properties of interface prototype objectPASS
MediaStreamAudioSourceNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
MediaStreamAudioSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
MediaStreamTrackAudioSourceNode interface object lengthFAIL
MediaStreamTrackAudioSourceNode interface object nameFAIL
MediaStreamTrackAudioSourceNode interface: existence and properties of interface objectFAIL
MediaStreamTrackAudioSourceNode interface: existence and properties of interface prototype objectFAIL
MediaStreamTrackAudioSourceNode interface: existence and properties of interface prototype object's "constructor" propertyFAIL
MediaStreamTrackAudioSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyFAIL
OfflineAudioCompletionEvent interface object lengthPASS
OfflineAudioCompletionEvent interface object namePASS
OfflineAudioCompletionEvent interface: attribute renderedBufferPASS
OfflineAudioCompletionEvent interface: existence and properties of interface objectPASS
OfflineAudioCompletionEvent interface: existence and properties of interface prototype objectPASS
OfflineAudioCompletionEvent interface: existence and properties of interface prototype object's "constructor" propertyPASS
OfflineAudioCompletionEvent interface: existence and properties of interface prototype object's @@unscopables propertyPASS
OfflineAudioCompletionEvent interface: new OfflineAudioCompletionEvent("", {renderedBuffer: buffer}) must inherit property "renderedBuffer" with the proper typePASS
OfflineAudioCompletionEvent must be primary interface of new OfflineAudioCompletionEvent("", {renderedBuffer: buffer})PASS
OfflineAudioContext interface object lengthPASS
OfflineAudioContext interface object namePASS
OfflineAudioContext interface: attribute lengthPASS
OfflineAudioContext interface: attribute oncompletePASS
OfflineAudioContext interface: calling suspend(double) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
OfflineAudioContext interface: existence and properties of interface objectPASS
OfflineAudioContext interface: existence and properties of interface prototype objectPASS
OfflineAudioContext interface: existence and properties of interface prototype object's "constructor" propertyPASS
OfflineAudioContext interface: existence and properties of interface prototype object's @@unscopables propertyPASS
OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "length" with the proper typePASS
OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "oncomplete" with the proper typePASS
OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "resume()" with the proper typePASS
OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "startRendering()" with the proper typePASS
OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "suspend(double)" with the proper typePASS
OfflineAudioContext interface: operation resume()PASS
OfflineAudioContext interface: operation startRendering()PASS
OfflineAudioContext interface: operation suspend(double)PASS
OfflineAudioContext must be primary interface of new OfflineAudioContext(1, 1, sample_rate)PASS
OscillatorNode interface object lengthPASS
OscillatorNode interface object namePASS
OscillatorNode interface: attribute detunePASS
OscillatorNode interface: attribute frequencyPASS
OscillatorNode interface: attribute typePASS
OscillatorNode interface: calling setPeriodicWave(PeriodicWave) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
OscillatorNode interface: existence and properties of interface objectPASS
OscillatorNode interface: existence and properties of interface prototype objectPASS
OscillatorNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
OscillatorNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
OscillatorNode interface: new OscillatorNode(context) must inherit property "detune" with the proper typePASS
OscillatorNode interface: new OscillatorNode(context) must inherit property "frequency" with the proper typePASS
OscillatorNode interface: new OscillatorNode(context) must inherit property "setPeriodicWave(PeriodicWave)" with the proper typePASS
OscillatorNode interface: new OscillatorNode(context) must inherit property "type" with the proper typePASS
OscillatorNode interface: operation setPeriodicWave(PeriodicWave)PASS
OscillatorNode must be primary interface of new OscillatorNode(context)PASS
PannerNode interface object lengthPASS
PannerNode interface object namePASS
PannerNode interface: attribute coneInnerAnglePASS
PannerNode interface: attribute coneOuterAnglePASS
PannerNode interface: attribute coneOuterGainPASS
PannerNode interface: attribute distanceModelPASS
PannerNode interface: attribute maxDistancePASS
PannerNode interface: attribute orientationXPASS
PannerNode interface: attribute orientationYPASS
PannerNode interface: attribute orientationZPASS
PannerNode interface: attribute panningModelPASS
PannerNode interface: attribute positionXPASS
PannerNode interface: attribute positionYPASS
PannerNode interface: attribute positionZPASS
PannerNode interface: attribute refDistancePASS
PannerNode interface: attribute rolloffFactorPASS
PannerNode interface: calling setOrientation(float, float, float) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
PannerNode interface: calling setPosition(float, float, float) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
PannerNode interface: existence and properties of interface objectPASS
PannerNode interface: existence and properties of interface prototype objectPASS
PannerNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
PannerNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
PannerNode interface: new PannerNode(context) must inherit property "coneInnerAngle" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "coneOuterAngle" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "coneOuterGain" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "distanceModel" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "maxDistance" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "orientationX" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "orientationY" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "orientationZ" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "panningModel" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "positionX" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "positionY" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "positionZ" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "refDistance" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "rolloffFactor" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "setOrientation(float, float, float)" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "setPosition(float, float, float)" with the proper typePASS
PannerNode interface: operation setOrientation(float, float, float)PASS
PannerNode interface: operation setPosition(float, float, float)PASS
PannerNode must be primary interface of new PannerNode(context)PASS
PeriodicWave interface object lengthPASS
PeriodicWave interface object namePASS
PeriodicWave interface: existence and properties of interface objectPASS
PeriodicWave interface: existence and properties of interface prototype objectPASS
PeriodicWave interface: existence and properties of interface prototype object's "constructor" propertyPASS
PeriodicWave interface: existence and properties of interface prototype object's @@unscopables propertyPASS
PeriodicWave must be primary interface of new PeriodicWave(context)PASS
ScriptProcessorNode interface object lengthPASS
ScriptProcessorNode interface object namePASS
ScriptProcessorNode interface: attribute bufferSizePASS
ScriptProcessorNode interface: attribute onaudioprocessPASS
ScriptProcessorNode interface: context.createScriptProcessor() must inherit property "bufferSize" with the proper typePASS
ScriptProcessorNode interface: context.createScriptProcessor() must inherit property "onaudioprocess" with the proper typePASS
ScriptProcessorNode interface: existence and properties of interface objectPASS
ScriptProcessorNode interface: existence and properties of interface prototype objectPASS
ScriptProcessorNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
ScriptProcessorNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
ScriptProcessorNode must be primary interface of context.createScriptProcessor()PASS
StereoPannerNode interface object lengthPASS
StereoPannerNode interface object namePASS
StereoPannerNode interface: attribute panPASS
StereoPannerNode interface: existence and properties of interface objectPASS
StereoPannerNode interface: existence and properties of interface prototype objectPASS
StereoPannerNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
StereoPannerNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
StereoPannerNode interface: new StereoPannerNode(context) must inherit property "pan" with the proper typePASS
StereoPannerNode must be primary interface of new StereoPannerNode(context)PASS
Stringification of bufferPASS
Stringification of contextPASS
Stringification of context.audioWorkletPASS
Stringification of context.createScriptProcessor()PASS
Stringification of context.destinationPASS
Stringification of context.listenerPASS
Stringification of new AnalyserNode(context)PASS
Stringification of new AudioBufferSourceNode(context)PASS
Stringification of new AudioBufferSourceNode(context).playbackRatePASS
Stringification of new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer })PASS
Stringification of new BiquadFilterNode(context)PASS
Stringification of new ChannelMergerNode(context)PASS
Stringification of new ChannelSplitterNode(context)PASS
Stringification of new ConstantSourceNode(context)PASS
Stringification of new ConvolverNode(context)PASS
Stringification of new DelayNode(context)PASS
Stringification of new DynamicsCompressorNode(context)PASS
Stringification of new GainNode(context)PASS
Stringification of new IIRFilterNode(context, {feedforward: [1], feedback: [1]})PASS
Stringification of new MediaElementAudioSourceNode(context, {mediaElement: new Audio})PASS
Stringification of new MediaStreamAudioDestinationNode(context)PASS
Stringification of new OfflineAudioCompletionEvent("", {renderedBuffer: buffer})PASS
Stringification of new OfflineAudioContext(1, 1, sample_rate)PASS
Stringification of new OscillatorNode(context)PASS
Stringification of new PannerNode(context)PASS
Stringification of new PeriodicWave(context)PASS
Stringification of new StereoPannerNode(context)PASS
Stringification of new WaveShaperNode(context)PASS
Stringification of worklet_nodePASS
Stringification of worklet_node.parametersPASS
WaveShaperNode interface object lengthPASS
WaveShaperNode interface object namePASS
WaveShaperNode interface: attribute curvePASS
WaveShaperNode interface: attribute oversamplePASS
WaveShaperNode interface: existence and properties of interface objectPASS
WaveShaperNode interface: existence and properties of interface prototype objectPASS
WaveShaperNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
WaveShaperNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
WaveShaperNode interface: new WaveShaperNode(context) must inherit property "curve" with the proper typePASS
WaveShaperNode interface: new WaveShaperNode(context) must inherit property "oversample" with the proper typePASS
WaveShaperNode must be primary interface of new WaveShaperNode(context)PASS
idl_test setupPASS
/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position.html (34/34, 100.00%, 0.59% of total)OK
1-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, left channel equals [0.7071067690849304,0.013321999460458755,0.0067243436351418495,0.00449715182185173,0.0033782348036766052,0.002705172635614872,0.0022557489573955536,0.0019343806197866797,0.0016931620193645358,0.0015054333489388227,0.0013551785377785563,0.0012321951799094677,0.0011296762386336923,0.00104290631134063,0.0009685150580480695,0.0009040298755280674...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.PASS
1-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, right channel equals [0.7071067690849304,0.013321999460458755,0.0067243436351418495,0.00449715182185173,0.0033782348036766052,0.002705172635614872,0.0022557489573955536,0.0019343806197866797,0.0016931620193645358,0.0015054333489388227,0.0013551785377785563,0.0012321951799094677,0.0011296762386336923,0.00104290631134063,0.0009685150580480695,0.0009040298755280674...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.PASS
1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, left channel equals [0.7071067690849304,0.00008563726441934705,0.000030067832994973287,0.000016328625861206092,0.000010593314073048532,0.000007574611117888708,0.000005759487976320088,0.0000045689607759413775,0.0000037386932945082663,0.0000031326046610047342,0.0000026742441150418017,0.0000023176937702373834,0.0000020338857211754657,0.0000018036150777334115,0.0000016137381635417114,0.0000014549860907209222...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.0783e-7},"relativeThreshold":0}.PASS
1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, right channel equals [0.7071067690849304,0.00035668950295075774,0.00012629777484107763,0.00006878197018522769,0.000044686275941785425,0.000031979649065760896,0.00002433015288261231,0.00001930880534928292,0.000015804853319423273,0.000013245842637843452,0.000011309872206766158,0.00000980348249868257,0.00000860413729242282,0.00000763084153732052,0.0000068281406129244715,0.000006156923518574331...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.0783e-7},"relativeThreshold":0}.PASS
1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, left channel equals [0.7071067690849304,0.001196307479403913,0.0005938085960224271,0.0003949022793676704,0.0002958123222924769,0.00023647479247301817,0.00019696500385180116,0.00016876752488315105,0.00014763248327653855,0.0001312017993768677,0.00011806215479737148,0.00010731472139013931,0.00009836074605118483,0.00009078587027033791,0.00008429430454270914,0.00007866910891607404...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.8124e-7},"relativeThreshold":0}.PASS
1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, right channel equals [0.7071067690849304,0.00498276436701417,0.002494250191375613,0.0016634686617180705,0.0012478390708565712,0.0009983853669837117,0.0008320511551573873,0.0007132254540920258,0.0006240977090783417,0.000554771046154201,0.0004993066540919244,0.00045392452739179134,0.00041610468178987503,0.00038410225533880293,0.000356670847395435,0.000332896423060447...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.8124e-7},"relativeThreshold":0}.PASS
1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, left channel equals [0.7071067690849304,0.22892199456691742,0.22258761525154114,0.21748939156532288,0.21270129084587097,0.2080373466014862,0.2034355252981186,0.19886919856071472,0.19432516396045685,0.1897958517074585,0.18527695536613464,0.18076558411121368,0.1762598603963852,0.17175845801830292,0.1672605574131012,0.16276535391807556...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065324},"relativeThreshold":0}.PASS
1-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, right channel equals [0.7071067690849304,0.9534875750541687,0.9349632859230042,0.9161425232887268,0.8972479104995728,0.8783238530158997,0.8593849539756775,0.840437650680542,0.8214850425720215,0.8025290369987488,0.7835704684257507,0.7646101713180542,0.7456485629081726,0.7266858816146851,0.7077224254608154,0.6887583136558533...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065324},"relativeThreshold":0}.PASS
2-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, left channel equals [1,0.018840152770280838,0.009509658440947533,0.006359932944178581,0.0047775455750525,0.003825691994279623,0.003190110670402646,0.0027356273494660854,0.0023944927379488945,0.0021290043368935585,0.0019165119156241417,0.0017425871919840574,0.0015976035501807928,0.0014748922549188137,0.0013696871465072036,0.001278491341508925...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.PASS
2-channel [0, 0, 1] -> [0, 0, 10000]: distanceModel: inverse, rolloff: 1, right channel equals [2,0.037680305540561676,0.019019316881895065,0.012719865888357162,0.009555091150105,0.007651383988559246,0.006380221340805292,0.005471254698932171,0.004788985475897789,0.004258008673787117,0.0038330238312482834,0.003485174383968115,0.0031952071003615856,0.0029497845098376274,0.002739374293014407,0.00255698268301785...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.PASS
2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, left channel equals [1,0.00016654180944897234,0.00005850067100254819,0.00003177416874677874,0.00002061528357444331,0.000014741360246262047,0.000011209189324290492,0.000008892362529877573,0.000007276568794623017,0.000006097022378526162,0.000005204963144933572,0.000004511035513132811,0.000003958673914894462,0.000003510504939185921,0.0000031409495022671763,0.0000028319695957179647...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.218e-7},"relativeThreshold":0}.PASS
2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: exponential, rolloff: 1.5, right channel equals [2,0.0010604923591017723,0.0003755554498638958,0.0002045376895694062,0.00013288715854287148,0.00009510177915217355,0.00007235421799123287,0.00005742186840507202,0.00004700180943473242,0.00003939175803679973,0.00003363448922755197,0.00002915470213338267,0.000025588007702026516,0.000022693546270602383,0.0000203064064407954,0.000018310278392164037...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":5.218e-7},"relativeThreshold":0}.PASS
2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, left channel equals [1,0.002326501300558448,0.0011553276563063264,0.0007684475276619196,0.000575670157559216,0.0004602163680829108,0.0003833358350675553,0.0003284646081738174,0.00028733513318002224,0.00025535948225297034,0.0002297879836987704,0.00020887165737804025,0.00019144543330185115,0.00017670303350314498,0.00016406884242314845,0.00015312072355300188...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.3267e-7},"relativeThreshold":0}.PASS
2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: inverse, rolloff: 1, right channel equals [2,0.014814520254731178,0.007416830863803625,0.004946674220263958,0.003710799152031541,0.002969020279124379,0.002474395092576742,0.0021210394334048033,0.001855994458310306,0.0016498314216732979,0.0014848907012492418,0.00134993193205446,0.0012374616926535964,0.001142291002906859,0.0010607137810438871,0.0009900116128847003...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":4.3267e-7},"relativeThreshold":0}.PASS
2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, left channel equals [1,0.4451926648616791,0.4330716133117676,0.4232165515422821,0.41393065452575684,0.40487271547317505,0.39592882990837097,0.38705015182495117,0.37821245193481445,0.369401752948761,0.3606102168560028,0.35183247923851013,0.34306514263153076,0.3343057632446289,0.3255528211593628,0.31680476665496826...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065756},"relativeThreshold":0}.PASS
2-channel [0, 0, 1] -> [20000, 30000, 10000]: distanceModel: linear, rolloff: 1, right channel equals [2,2.834864377975464,2.780179977416992,2.7243428230285645,2.6682181358337402,2.611978530883789,2.5556817054748535,2.499351978302002,2.4430017471313477,2.3866379261016846,2.3302643299102783,2.2738840579986572,2.217498540878296,2.16110897064209,2.1047163009643555,2.048321008682251...] with an element-wise tolerance of {"absoluteThreshold":{"relativeThreshold":0.0000065756},"relativeThreshold":0}.PASS
# AUDIT TASK RUNNER FINISHED: 8 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [0: 1-channel inverse rolloff: 1] All assertions passed. (total 2 assertions)PASS
< [0: 2-channel inverse rolloff: 1] All assertions passed. (total 2 assertions)PASS
< [1: 1-channel inverse rolloff: 1] All assertions passed. (total 2 assertions)PASS
< [1: 2-channel inverse rolloff: 1] All assertions passed. (total 2 assertions)PASS
< [2: 1-channel exponential rolloff: 1.5] All assertions passed. (total 2 assertions)PASS
< [2: 2-channel exponential rolloff: 1.5] All assertions passed. (total 2 assertions)PASS
< [3: 1-channel linear rolloff: 1] All assertions passed. (total 2 assertions)PASS
< [3: 2-channel linear rolloff: 1] All assertions passed. (total 2 assertions)PASS
> [0: 1-channel inverse rolloff: 1] PASS
> [0: 2-channel inverse rolloff: 1] PASS
> [1: 1-channel inverse rolloff: 1] PASS
> [1: 2-channel inverse rolloff: 1] PASS
> [2: 1-channel exponential rolloff: 1.5] PASS
> [2: 2-channel exponential rolloff: 1.5] PASS
> [3: 1-channel linear rolloff: 1] PASS
> [3: 2-channel linear rolloff: 1] PASS
/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting.html (13/13, 100.00%, 0.23% of total)OK
Context sample rate is equal to 44100.PASS
Frame where detuned oscillator reaches Nyquist is equal to 5.PASS
Osc(freq: 1, detune: 18514.189453125) output 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
Osc(freq: 22050) output contains only the constant 0.PASS
Reference oscillator frequency is greater than or equal to 22050.PASS
osc[0:4] is not constantly 0 (contains 4 different values).PASS
osc[5:] contains only the constant 0.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [detune automation] All assertions passed. (total 3 assertions)PASS
< [detune limits] All assertions passed. (total 4 assertions)PASS
> [detune automation] Oscillator output with detune automation should be zero above NyquistPASS
> [detune limits] Oscillator with detune and frequency at Nyquist or abovePASS
/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter.html (16/16, 100.00%, 0.28% of total)OK
Left and right channels were exchanged correctlyPASS
Left channel contains only the constant -1.PASS
Right channel contains only the constant 1.PASS
createChannelSplitter(0) threw IndexSizeError: "Failed to execute 'createChannelSplitter' on 'BaseAudioContext': The number of outputs provided (0) is outside the range [1, 32].".PASS
createChannelSplitter(33) threw IndexSizeError: "Failed to execute 'createChannelSplitter' on 'BaseAudioContext': The number of outputs provided (33) is outside the range [1, 32].".PASS
splitternode = context.createChannelSplitter() did not throw an exception.PASS
splitternode = context.createChannelSplitter(32) did not throw an exception.PASS
splitternode.numberOfInputs is equal to 1.PASS
splitternode.numberOfOutputs is equal to 32.PASS
splitternode.numberOfOutputs is equal to 6.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [construction] All assertions passed. (total 7 assertions)PASS
< [functionality] All assertions passed. (total 3 assertions)PASS
> [construction] Construction of ChannelSplitterNodePASS
> [functionality] Functionality of ChannelSplitterNodePASS
/webaudio/the-audio-api/the-delaynode-interface/no-dezippering.html (15/15, 100.00%, 0.26% of total)OK
.value setter output is identical to the array [0,0,0,0,0.15114444494247437,0.3147895038127899,0.46949300169944763,0.6108605861663818,0.7348765134811401,0.8380183577537537,0.9173563122749329,0.9706368446350098,0.9963463544845581,0.9937547445297241,0.9629355072975159,0.9047641754150391...].PASS
.value setter output matches setValueAtTime output is true.PASS
With modulation: .value setter output is identical to the array [0,0,0,0,0,0,0,0,0,0.9986401796340942,0.9932119250297546,0.9595714807510376,0.898674488067627,0.812250554561615,0.7027547359466553,0.5732971429824829...].PASS
With modulation: .value setter output matches setValueAtTime output is true.PASS
output[0:63] contains only the constant 0.PASS
output[128:] is identical to the array [113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128...].PASS
output[64:127] is identical to the array [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16...].PASS
# AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test0] All assertions passed. (total 3 assertions)PASS
< [test1] All assertions passed. (total 2 assertions)PASS
< [test2] All assertions passed. (total 2 assertions)PASS
> [test0] Test DelayNode has no dezipperingPASS
> [test1] Test value setter and setValueAtTimePASS
> [test2] Test value setter and modulationPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/ctor-biquadfilter.html (54/54, 100.00%, 0.94% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new BiquadFilterNode() threw TypeError: "Failed to construct 'BiquadFilterNode': 1 argument required, but only 0 present.".PASS
new BiquadFilterNode(1) threw TypeError: "Failed to construct 'BiquadFilterNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new BiquadFilterNode(c, {channelCount: 0}) threw NotSupportedError: "Failed to construct 'BiquadFilterNode': The channel count provided (0) is outside the range [1, 32].".PASS
new BiquadFilterNode(c, {channelCount: 17}} did not throw an exception.PASS
new BiquadFilterNode(c, {channelCount: 99}) threw NotSupportedError: "Failed to construct 'BiquadFilterNode': The channel count provided (99) is outside the range [1, 32].".PASS
new BiquadFilterNode(c, {channelCountMode: "clamped-max"}) did not throw an exception.PASS
new BiquadFilterNode(c, {channelCountMode: "explicit"}) did not throw an exception.PASS
new BiquadFilterNode(c, {channelCountMode: "foobar"} threw TypeError: "Failed to construct 'BiquadFilterNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
new BiquadFilterNode(c, {channelCountMode: "max"} did not throw an exception.PASS
new BiquadFilterNode(c, {channelCountMode: "max"}) did not throw an exception.PASS
new BiquadFilterNode(c, {channelInterpretation: "discrete"}) did not throw an exception.PASS
new BiquadFilterNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Failed to construct 'BiquadFilterNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new BiquadFilterNode(c, {channelInterpretation: "speakers"}) did not throw an exception.PASS
new BiquadFilterNode(context, 42) threw TypeError: "Failed to construct 'BiquadFilterNode': parameter 2 ('options') is not an object.".PASS
node = new BiquadFilterNode(..., {"type":"highpass","frequency":512,"detune":1,"Q":5,"gain":3}) did not throw an exception.PASS
node.Q.value is equal to 5.PASS
node.channelCount is equal to 17.PASS
node.channelCountMode after invalid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to clamped-max.PASS
node.channelCountMode after valid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to max.PASS
node.channelCountMode is equal to max.PASS
node.channelInterpretation after invalid setter is equal to discrete.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node.detuen.value is equal to 1.PASS
node.frequency.value is equal to 512.PASS
node.gain.value is equal to 3.PASS
node.type is equal to highpass.PASS
node0 = new BiquadFilterNode(context) did not throw an exception.PASS
node0 instanceof BiquadFilterNode is equal to true.PASS
node0.Q.value is equal to 1.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.detune.value is equal to 0.PASS
node0.frequency.value is equal to 350.PASS
node0.gain.value is equal to 0.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 1.PASS
node0.type is equal to lowpass.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [construct with options] All assertions passed. (total 6 assertions)PASS
< [default constructor] All assertions passed. (total 12 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 20 assertions)PASS
> [construct with options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html (2/2, 100.00%, 0.03% of total)OK
Test AnalyserNode APIPASS
Test AnalyserNode's ctor APIPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-allpass.html (7/7, 100.00%, 0.12% of total)OK
Max error in Allpass filter response is less than or equal to 3.9337e-8.PASS
Number of filters tested is equal to 4.PASS
Number of non-finite values in the rendered output is equal to 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Biquad allpass filterPASS
/webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger.html (43/43, 100.00%, 0.75% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new ChannelMergerNode() threw TypeError: "Failed to construct 'ChannelMergerNode': 1 argument required, but only 0 present.".PASS
new ChannelMergerNode(1) threw TypeError: "Failed to construct 'ChannelMergerNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new ChannelMergerNode(c, {"channelCount":3}) threw InvalidStateError: "Failed to construct 'ChannelMergerNode': ChannelMerger: channelCount cannot be changed from 1".PASS
new ChannelMergerNode(c, {"channelCountMode":"max"}) threw InvalidStateError: "Failed to construct 'ChannelMergerNode': ChannelMerger: channelCountMode cannot be changed from 'explicit'".PASS
new ChannelMergerNode(c, {"numberOfInputs":99}) threw IndexSizeError: "Failed to construct 'ChannelMergerNode': The number of inputs provided (99) is outside the range [1, 32].".PASS
new ChannelMergerNode(c, {channelCount: 1}} did not throw an exception.PASS
new ChannelMergerNode(c, {channelCount: 2}} threw InvalidStateError: "Failed to construct 'ChannelMergerNode': ChannelMerger: channelCount cannot be changed from 1".PASS
new ChannelMergerNode(c, {channelCountMode: "clamped-max"}) threw InvalidStateError: "Failed to construct 'ChannelMergerNode': ChannelMerger: channelCountMode cannot be changed from 'explicit'".PASS
new ChannelMergerNode(c, {channelCountMode: "explicit"} did not throw an exception.PASS
new ChannelMergerNode(c, {channelCountMode: "max"}) threw InvalidStateError: "Failed to construct 'ChannelMergerNode': ChannelMerger: channelCountMode cannot be changed from 'explicit'".PASS
new ChannelMergerNode(c, {channelInterpretation: "discrete"}) did not throw an exception.PASS
new ChannelMergerNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Failed to construct 'ChannelMergerNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new ChannelMergerNode(c, {channelInterpretation: "speakers"}) did not throw an exception.PASS
new ChannelMergerNode(context, 42) threw TypeError: "Failed to construct 'ChannelMergerNode': parameter 2 ('options') is not an object.".PASS
node.channelCount is equal to 1.PASS
node.channelCountMode is equal to explicit.PASS
node.channelInterpretation after invalid setter is equal to discrete.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node0 = new ChannelMergerNode(context) did not throw an exception.PASS
node0 instanceof ChannelMergerNode is equal to true.PASS
node0.channelCount is equal to 1.PASS
node0.channelCountMode is equal to explicit.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.numberOfInputs is equal to 6.PASS
node0.numberOfOutputs is equal to 1.PASS
node1 = new ChannelMergerNode(context, {"numberOfInputs":3,"numberOfOutputs":9,"channelInterpretation":"discrete"}) did not throw an exception.PASS
node1.channelInterpretation is equal to discrete.PASS
node1.numberOfInputs is equal to 3.PASS
node1.numberOfOutputs is equal to 1.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor options] All assertions passed. (total 7 assertions)PASS
< [default constructor] All assertions passed. (total 7 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 13 assertions)PASS
> [constructor options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-audioparam-interface/automation-rate.html (111/111, 100.00%, 1.93% of total)OK
AudioListener.forwardX.automationRate is equal to k-rate.PASS
AudioListener.forwardY.automationRate is equal to k-rate.PASS
AudioListener.forwardZ.automationRate is equal to k-rate.PASS
AudioListener.positionX.automationRate is equal to k-rate.PASS
AudioListener.positionY.automationRate is equal to k-rate.PASS
AudioListener.positionZ.automationRate is equal to k-rate.PASS
AudioListener.upX.automationRate is equal to k-rate.PASS
AudioListener.upY.automationRate is equal to k-rate.PASS
AudioListener.upZ.automationRate is equal to k-rate.PASS
BiquadFilterNode.Q.automationRate is equal to k-rate.PASS
BiquadFilterNode.detune.automationRate is equal to k-rate.PASS
BiquadFilterNode.frequency.automationRate is equal to k-rate.PASS
BiquadFilterNode.gain.automationRate is equal to k-rate.PASS
ConstantSourceNode.offset.automationRate is equal to k-rate.PASS
Default AudioBufferSourceNode.detune.automationRate is equal to k-rate.PASS
Default AudioBufferSourceNode.playbackRate.automationRate is equal to k-rate.PASS
Default AudioListener.forwardX.automationRate is equal to a-rate.PASS
Default AudioListener.forwardY.automationRate is equal to a-rate.PASS
Default AudioListener.forwardZ.automationRate is equal to a-rate.PASS
Default AudioListener.positionX.automationRate is equal to a-rate.PASS
Default AudioListener.positionY.automationRate is equal to a-rate.PASS
Default AudioListener.positionZ.automationRate is equal to a-rate.PASS
Default AudioListener.upX.automationRate is equal to a-rate.PASS
Default AudioListener.upY.automationRate is equal to a-rate.PASS
Default AudioListener.upZ.automationRate is equal to a-rate.PASS
Default BiquadFilterNode.Q.automationRate is equal to a-rate.PASS
Default BiquadFilterNode.detune.automationRate is equal to a-rate.PASS
Default BiquadFilterNode.frequency.automationRate is equal to a-rate.PASS
Default BiquadFilterNode.gain.automationRate is equal to a-rate.PASS
Default ConstantSourceNode.offset.automationRate is equal to a-rate.PASS
Default DelayNode.delayTime.automationRate is equal to a-rate.PASS
Default DynamicsCompressorNode.attack.automationRate is equal to k-rate.PASS
Default DynamicsCompressorNode.knee.automationRate is equal to k-rate.PASS
Default DynamicsCompressorNode.ratio.automationRate is equal to k-rate.PASS
Default DynamicsCompressorNode.release.automationRate is equal to k-rate.PASS
Default DynamicsCompressorNode.threshold.automationRate is equal to k-rate.PASS
Default GainNode.gain.automationRate is equal to a-rate.PASS
Default OscillatorNode.detune.automationRate is equal to a-rate.PASS
Default OscillatorNode.frequency.automationRate is equal to a-rate.PASS
Default PannerNode.orientationX.automationRate is equal to a-rate.PASS
Default PannerNode.orientationY.automationRate is equal to a-rate.PASS
Default PannerNode.orientationZ.automationRate is equal to a-rate.PASS
Default PannerNode.positionX.automationRate is equal to a-rate.PASS
Default PannerNode.positionY.automationRate is equal to a-rate.PASS
Default PannerNode.positionZ.automationRate is equal to a-rate.PASS
Default StereoPannerNode.pan.automationRate is equal to a-rate.PASS
DelayNode.delayTime.automationRate is equal to k-rate.PASS
GainNode.gain.automationRate is equal to k-rate.PASS
OscillatorNode.detune.automationRate is equal to k-rate.PASS
OscillatorNode.frequency.automationRate is equal to k-rate.PASS
PannerNode.orientationX.automationRate is equal to k-rate.PASS
PannerNode.orientationY.automationRate is equal to k-rate.PASS
PannerNode.orientationZ.automationRate is equal to k-rate.PASS
PannerNode.positionX.automationRate is equal to k-rate.PASS
PannerNode.positionY.automationRate is equal to k-rate.PASS
PannerNode.positionZ.automationRate is equal to k-rate.PASS
Set AudioBufferSourceNode.detune.automationRate to "a-rate" threw InvalidStateError: "Failed to set the 'automationRate' property on 'AudioParam': AudioBufferSource.detune.automationRate is fixed and cannot be changed to "a-rate"".PASS
Set AudioBufferSourceNode.playbackRate.automationRate to "a-rate" threw InvalidStateError: "Failed to set the 'automationRate' property on 'AudioParam': AudioBufferSource.playbackRate.automationRate is fixed and cannot be changed to "a-rate"".PASS
Set AudioListener.forwardX.automationRate to "k-rate" did not throw an exception.PASS
Set AudioListener.forwardY.automationRate to "k-rate" did not throw an exception.PASS
Set AudioListener.forwardZ.automationRate to "k-rate" did not throw an exception.PASS
Set AudioListener.positionX.automationRate to "k-rate" did not throw an exception.PASS
Set AudioListener.positionY.automationRate to "k-rate" did not throw an exception.PASS
Set AudioListener.positionZ.automationRate to "k-rate" did not throw an exception.PASS
Set AudioListener.upX.automationRate to "k-rate" did not throw an exception.PASS
Set AudioListener.upY.automationRate to "k-rate" did not throw an exception.PASS
Set AudioListener.upZ.automationRate to "k-rate" did not throw an exception.PASS
Set BiquadFilterNode.Q.automationRate to "k-rate" did not throw an exception.PASS
Set BiquadFilterNode.detune.automationRate to "k-rate" did not throw an exception.PASS
Set BiquadFilterNode.frequency.automationRate to "k-rate" did not throw an exception.PASS
Set BiquadFilterNode.gain.automationRate to "k-rate" did not throw an exception.PASS
Set ConstantSourceNode.offset.automationRate to "k-rate" did not throw an exception.PASS
Set DelayNode.delayTime.automationRate to "k-rate" did not throw an exception.PASS
Set DynamicsCompressorNode.attack.automationRate to "a-rate" threw InvalidStateError: "Failed to set the 'automationRate' property on 'AudioParam': DynamicsCompressor.attack.automationRate is fixed and cannot be changed to "a-rate"".PASS
Set DynamicsCompressorNode.knee.automationRate to "a-rate" threw InvalidStateError: "Failed to set the 'automationRate' property on 'AudioParam': DynamicsCompressor.knee.automationRate is fixed and cannot be changed to "a-rate"".PASS
Set DynamicsCompressorNode.ratio.automationRate to "a-rate" threw InvalidStateError: "Failed to set the 'automationRate' property on 'AudioParam': DynamicsCompressor.ratio.automationRate is fixed and cannot be changed to "a-rate"".PASS
Set DynamicsCompressorNode.release.automationRate to "a-rate" threw InvalidStateError: "Failed to set the 'automationRate' property on 'AudioParam': DynamicsCompressor.release.automationRate is fixed and cannot be changed to "a-rate"".PASS
Set DynamicsCompressorNode.threshold.automationRate to "a-rate" threw InvalidStateError: "Failed to set the 'automationRate' property on 'AudioParam': DynamicsCompressor.threshold.automationRate is fixed and cannot be changed to "a-rate"".PASS
Set GainNode.gain.automationRate to "k-rate" did not throw an exception.PASS
Set OscillatorNode.detune.automationRate to "k-rate" did not throw an exception.PASS
Set OscillatorNode.frequency.automationRate to "k-rate" did not throw an exception.PASS
Set PannerNode.orientationX.automationRate to "k-rate" did not throw an exception.PASS
Set PannerNode.orientationY.automationRate to "k-rate" did not throw an exception.PASS
Set PannerNode.orientationZ.automationRate to "k-rate" did not throw an exception.PASS
Set PannerNode.positionX.automationRate to "k-rate" did not throw an exception.PASS
Set PannerNode.positionY.automationRate to "k-rate" did not throw an exception.PASS
Set PannerNode.positionZ.automationRate to "k-rate" did not throw an exception.PASS
Set StereoPannerNode.pan.automationRate to "k-rate" did not throw an exception.PASS
StereoPannerNode.pan.automationRate is equal to k-rate.PASS
# AUDIT TASK RUNNER FINISHED: 10 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [AudioBufferSourceNode] All assertions passed. (total 4 assertions)PASS
< [AudioListener] All assertions passed. (total 27 assertions)PASS
< [BiquadFilterNode] All assertions passed. (total 12 assertions)PASS
< [ConstantSourceNode] All assertions passed. (total 3 assertions)PASS
< [DelayNode] All assertions passed. (total 3 assertions)PASS
< [DynamicsCompressorNode] All assertions passed. (total 10 assertions)PASS
< [GainNode] All assertions passed. (total 3 assertions)PASS
< [OscillatorNode] All assertions passed. (total 6 assertions)PASS
< [PannerNode] All assertions passed. (total 18 assertions)PASS
< [StereoPannerNode] All assertions passed. (total 3 assertions)PASS
> [AudioBufferSourceNode] PASS
> [AudioListener] PASS
> [BiquadFilterNode] PASS
> [ConstantSourceNode] PASS
> [DelayNode] PASS
> [DynamicsCompressorNode] PASS
> [GainNode] PASS
> [OscillatorNode] PASS
> [PannerNode] PASS
> [StereoPannerNode] PASS
/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay.html (12/12, 100.00%, 0.21% of total)OK
DelayNode: Difference between a-rate and k-rate DelayNode is not constantly 0 (contains 7937 different values).PASS
DelayNode: Output of a-rate DelayNode is identical to the array [0,0.16936877369880676,0.3387375473976135,0.4880804717540741,0.6374233961105347,0.7490825057029724,0.8607417345046997,0.9215139150619507,0.9822861552238464,0.9849868416786194,0.9876875877380371,0.9319968223571777,0.8763060569763184,0.7688085436820984,0.6613110303878784,0.5147176384925842...].PASS
DelayNode: Output of k-rate DelayNode is identical to the array [0,0.3387375771999359,0.6374233961105347,0.8607417345046997,0.9822861552238464,0.9876875877380371,0.8763060569763184,0.6613109707832336,0.36812418699264526,0.03141050040721893,-0.30901670455932617,-0.6129070520401001,-0.8443272113800049,-0.975915789604187,-0.9921146035194397,-0.8910053968429565...].PASS
DelayNode: Setting delayTime.automationRate to "k-rate" is equal to k-rate.PASS
DelayNode: a-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: k-rate node: delayTime.linearRampToValueAtTime(0.5,1) did not throw an exception.PASS
DelayNode: k-rate node: delayTime.setValueAtTime(0,0) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Test k-rate DelayNode] All assertions passed. (total 8 assertions)PASS
> [Test k-rate DelayNode] PASS
/webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html (6/6, 100.00%, 0.10% of total)OK
ConstantSourceNode can be constructedPASS
ConstantSourceNode onended eventPASS
ConstantSourceNode start and stop when workPASS
ConstantSourceNode stop and startPASS
ConstantSourceNode with automationPASS
ConstantSourceNode with no automationPASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions.html (54/54, 100.00%, 0.94% of total)OK
Handled setValueCurve exception so output contains only the constant 1.PASS
delayTime.setValueCurveAtTime([1, 5, Infinity], 0.043750000000000004, 0.01) threw TypeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
delayTime.setValueCurveAtTime([1, 5], 0.043750000000000004, 0.01) did not throw an exception.PASS
exponentialRampToValueAtTime(1, 0.0075) did not throw an exception.PASS
exponentialRampToValueAtTime(1, 0.018750000000000003) threw NotSupportedError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': exponentialRampToValue(1, 0.01875) overlaps setValueCurveAtTime(..., 0.0125, 0.0125)".PASS
exponentialRampToValueAtTime(1, 0.025) did not throw an exception.PASS
g.gain.setValueAtTime(1.0, 15) did not throw an exception.PASS
g.gain.setValueCurveAtTime([1,2,3], 10, 10) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 10, 10) overlaps setValueCurveAtTime(..., 5, 10)".PASS
g.gain.setValueCurveAtTime([1,2,3], 2.5, 10) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 2.5, 10) overlaps setValueCurveAtTime(..., 5, 10)".PASS
g.gain.setValueCurveAtTime([1,2,3], 4, 11) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 4, 11) overlaps setValueCurveAtTime(..., 5, 10)".PASS
g.gain.setValueCurveAtTime([1,2,3], 5, 10) did not throw an exception.PASS
g.gain.setValueCurveAtTime([1,2,3], 5, 5) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 5, 5) overlaps setValueCurveAtTime(..., 5, 10)".PASS
g.gain.setValueCurveAtTime([1,2,3], 6, 9) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 6, 9) overlaps setValueCurveAtTime(..., 5, 10)".PASS
linearRampToValueAtTime(0, 0.0025) did not throw an exception.PASS
linearRampToValueAtTime(1, 0.0125) did not throw an exception.PASS
linearRampToValueAtTime(1, 0.018750000000000003) threw NotSupportedError: "Failed to execute 'linearRampToValueAtTime' on 'AudioParam': linearRampToValueAtTime(1, 0.01875) overlaps setValueCurveAtTime(..., 0.0125, 0.0125)".PASS
second g.gain.setValueCurveAtTime([1,2,3], 5, 10) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 5, 10) overlaps setValueCurveAtTime(..., 5, 10)".PASS
setTargetAtTime(1, 0.015000000000000001, 1) did not throw an exception.PASS
setTargetAtTime(1, 0.018750000000000003, 1) threw NotSupportedError: "Failed to execute 'setTargetAtTime' on 'AudioParam': setTargetAtTime(1, 0.01875, 1) overlaps setValueCurveAtTime(..., 0.0125, 0.0125)".PASS
setTargetAtTime(1, 0.037500000000000006, 0.1) did not throw an exception.PASS
setValueAtTime(0, 0.0125) did not throw an exception.PASS
setValueAtTime(1, 0) did not throw an exception.PASS
setValueAtTime(1, 0.018750000000000003) threw NotSupportedError: "Failed to execute 'setValueAtTime' on 'AudioParam': setValueAtTime(1, 0.01875) overlaps setValueCurveAtTime(..., 0.0125, 0.0125)".PASS
setValueAtTime(1, 0.026250000000000002) did not throw an exception.PASS
setValueCurveAtTime(..., 0.0025, 0.0025) did not throw an exception.PASS
setValueCurveAtTime(..., 0.0075, 0.0025) did not throw an exception.PASS
setValueCurveAtTime(..., 0.01, 0.0025) did not throw an exception.PASS
setValueCurveAtTime(..., 0.0125, 0.0025) did not throw an exception.PASS
setValueCurveAtTime([1, Infinity], 0.043750000000000004, 0.01) threw TypeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
setValueCurveAtTime([1,2], 0, 0.01) did not throw an exception.PASS
setValueCurveAtTime([1], 0, 0.01) threw InvalidStateError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': The curve length provided (1) is less than the minimum bound (2).".PASS
setValueCurveAtTime([NaN, NaN], 0.043750000000000004, 0.01) threw TypeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
setValueCurveAtTime([], 0, 0.01) threw InvalidStateError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': The curve length provided (0) is less than the minimum bound (2).".PASS
setValueCurveAtTime(curve, 0.00625, 0.01) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 0.00625, 0.01) overlaps linearRampToValueAtTime(1, 0.0125)".PASS
setValueCurveAtTime(curve, 0.0125, 0.0125) did not throw an exception.PASS
setValueCurveAtTime(curve, 0.018750000000000003, 0.01) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 0.01875, 0.01) overlaps exponentialRampToValue(1, 0.025)".PASS
setValueCurveAtTime(curve, 0.03125, 0.01) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 0.03125, 0.01) overlaps setTargetAtTime(1, 0.03750000000000001, 0.1)".PASS
setValueCurveAtTime(curve, 0.031415926535897934, 0.01) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 0.03141592653589793, 0.01) overlaps setTargetAtTime(1, 0.03750000000000001, 0.1)".PASS
setValueCurveAtTime(curve, 0.043750000000000004, 0.01) threw NotSupportedError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 0.04375, 0.01) overlaps setValueCurveAtTime(..., 0.05, 0.1)".PASS
setValueCurveAtTime(curve, 0.05, 0.1) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [automations] All assertions passed. (total 13 assertions)PASS
< [catch-exception] All assertions passed. (total 1 assertions)PASS
< [curve lengths] All assertions passed. (total 3 assertions)PASS
< [curve overlap] All assertions passed. (total 8 assertions)PASS
< [setValueCurve] All assertions passed. (total 6 assertions)PASS
< [start-end] All assertions passed. (total 9 assertions)PASS
> [automations] PASS
> [catch-exception] PASS
> [curve lengths] PASS
> [curve overlap] PASS
> [setValueCurve] PASS
> [start-end] PASS
/webaudio/the-audio-api/the-gainnode-interface/ctor-gain.html (50/50, 100.00%, 0.87% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new GainNode() threw TypeError: "Failed to construct 'GainNode': 1 argument required, but only 0 present.".PASS
new GainNode(1) threw TypeError: "Failed to construct 'GainNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new GainNode(c, {channelCount: 0}) threw NotSupportedError: "Failed to construct 'GainNode': The channel count provided (0) is outside the range [1, 32].".PASS
new GainNode(c, {channelCount: 17}} did not throw an exception.PASS
new GainNode(c, {channelCount: 99}) threw NotSupportedError: "Failed to construct 'GainNode': The channel count provided (99) is outside the range [1, 32].".PASS
new GainNode(c, {channelCountMode: "clamped-max"}) did not throw an exception.PASS
new GainNode(c, {channelCountMode: "explicit"}) did not throw an exception.PASS
new GainNode(c, {channelCountMode: "foobar"} threw TypeError: "Failed to construct 'GainNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
new GainNode(c, {channelCountMode: "max"} did not throw an exception.PASS
new GainNode(c, {channelCountMode: "max"}) did not throw an exception.PASS
new GainNode(c, {channelInterpretation: "discrete"}) did not throw an exception.PASS
new GainNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Failed to construct 'GainNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new GainNode(c, {channelInterpretation: "speakers"}) did not throw an exception.PASS
new GainNode(context, 42) threw TypeError: "Failed to construct 'GainNode': parameter 2 ('options') is not an object.".PASS
node.channelCount is equal to 17.PASS
node.channelCountMode after invalid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to clamped-max.PASS
node.channelCountMode after valid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to max.PASS
node.channelCountMode is equal to max.PASS
node.channelInterpretation after invalid setter is equal to discrete.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node0 = new GainNode(context) did not throw an exception.PASS
node0 instanceof GainNode is equal to true.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.gain.value is equal to 1.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 1.PASS
node1 = new GainNode(c, {"gain":-2}) did not throw an exception.PASS
node1 instanceof GainNode is equal to true.PASS
node1.channelCount is equal to 2.PASS
node1.channelCountMode is equal to max.PASS
node1.channelInterpretation is equal to speakers.PASS
node1.gain.value is equal to -2.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor with options] All assertions passed. (total 6 assertions)PASS
< [default constructor] All assertions passed. (total 8 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 20 assertions)PASS
> [constructor with options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html (25/25, 100.00%, 0.44% of total)OK
1: Channel 1 contains only the constant 0.PASS
2: Channel 0 is identical to the array [0,0,0.9485260844230652,0.8472318053245544,0.8233559727668762,0.864546000957489,0.845425009727478,0.8580314517021179,0.7955959439277649,0.9893833994865417,0.3983757495880127,-0.7808231711387634,-0.9249735474586487,-0.7918890118598938,-0.8752206563949585,-0.834891676902771...].PASS
2: Channel 1 is identical to the array [0,0,0.9947003126144409,0.7705774307250977,0.9109300374984741,0.770668089389801,0.9842367768287659,0.32022905349731445,-0.9348858594894409,-0.8055058121681213,-0.8837442398071289,-0.8007677793502808,-0.9286617636680603,-0.6026888489723206,0.7909697890281677,0.8679972290992737...].PASS
3: Channel 0 is identical to the array [0,0,0.9485260844230652,0.8472318053245544,0.8233559727668762,0.864546000957489,0.845425009727478,0.8580314517021179,0.7955959439277649,0.9893833994865417,0.3983757495880127,-0.7808231711387634,-0.9249735474586487,-0.7918890118598938,-0.8752206563949585,-0.834891676902771...].PASS
3: Channel 1 is identical to the array [0,0,0.9947003126144409,0.7705774307250977,0.9109300374984741,0.770668089389801,0.9842367768287659,0.32022905349731445,-0.9348858594894409,-0.8055058121681213,-0.8837442398071289,-0.8007677793502808,-0.9286617636680603,-0.6026888489723206,0.7909697890281677,0.8679972290992737...].PASS
4: Channel 0 is identical to the array [0,0,0.9734255075454712,0.8085748553276062,0.8596614599227905,0.8377395868301392,0.18206258118152618,-0.06961169838905334,0.03773331642150879,-0.007562130689620972,-0.018085837364196777,0.029709070920944214,-0.021690011024475098,-0.0055168867111206055,0.05647382140159607,-0.4439384937286377...].PASS
4: Channel 1 is identical to the array [0,0,0.971980094909668,0.8048999309539795,0.8850500583648682,0.18059250712394714,0.02772340178489685,-0.2852807343006134,-0.7788605690002441,-0.0375840961933136,-0.008258610963821411,0.07240849733352661,-0.33466458320617676,-0.7563189268112183,-0.020491480827331543,-0.03146648406982422...].PASS
5.1: Channel 0 is identical to the array [0,0,2.3021068572998047,2.0779097080230713,1.5364117622375488,0.8359494805335999,-0.21231389045715332,-0.00529266893863678,0.836210310459137,1.0198438167572021,0.3261905908584595,-0.6783384084701538,-1.057640790939331,-0.5491994619369507,0.2516633868217468,-0.10923552513122559...].PASS
5.1: Channel 1 is identical to the array [0,0,2.407027244567871,1.8516432046890259,1.2457610368728638,0.5805021524429321,0.36253032088279724,0.16488611698150635,-0.7450209259986877,-1.5345406532287598,-1.9043262004852295,-0.7297847867012024,0.01058971881866455,0.7125816345214844,1.7535796165466309,0.26786839962005615...].PASS
Convolver output equals [0,0,0.3311063051223755,0.6248595714569092,0.8481203317642212,0.9757021069526672,0.9932119250297546,0.898674488067627,0.7027547359466553,0.4275550842285156,0.1041216254234314,-0.23105812072753906,-0.5401713848114014,-0.7883464097976685,-0.9475855827331543,-0.9999247789382935...] with an element-wise tolerance of {"absoluteThreshold":4.1724e-7,"relativeThreshold":0}.PASS
new AudioBuffer({numberOfChannels: 1, length: 2, sampleRate: 8192}) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [1-channel input] All assertions passed. (total 2 assertions)PASS
< [2-channel input] All assertions passed. (total 2 assertions)PASS
< [3-channel input] All assertions passed. (total 2 assertions)PASS
< [4-channel input] All assertions passed. (total 2 assertions)PASS
< [5.1-channel input] All assertions passed. (total 2 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
> [1-channel input] produces 1-channel outputPASS
> [2-channel input] produces 2-channel outputPASS
> [3-channel input] 3->2 downmix producing 2-channel outputPASS
> [4-channel input] 4->2 downmix producing 2-channel outputPASS
> [5.1-channel input] 5.1->2 downmix producing 2-channel outputPASS
> [initialize] Convolver response with one channelPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sample-accurate-scheduling.html (16/16, 100.00%, 0.28% of total)OK
Content of left and right channels match and is identical to the array [1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0...].PASS
Non-zero sample found at sample offset 0 is true.PASS
Non-zero sample found at sample offset 1000 is true.PASS
Non-zero sample found at sample offset 1005 is true.PASS
Non-zero sample found at sample offset 20000 is true.PASS
Non-zero sample found at sample offset 21234 is true.PASS
Non-zero sample found at sample offset 3 is true.PASS
Non-zero sample found at sample offset 37590 is true.PASS
Non-zero sample found at sample offset 512 is true.PASS
Non-zero sample found at sample offset 517 is true.PASS
Number of impulses found is equal to 9.PASS
bad offset is equal to 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 12 assertions)PASS
> [test] Test sample-accurate schedulingPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.html (12/12, 100.00%, 0.21% of total)OK
currentFrame from the processor at 0 is equal to 0.PASS
currentFrame from the processor at 128 is equal to 128.PASS
currentFrame from the processor at 256 is equal to 256.PASS
currentFrame from the processor at 384 is equal to 384.PASS
currentTime from the processor at 0 is equal to 0.PASS
currentTime from the processor at 0.0026666666666666666 is equal to 0.0026666666666666666.PASS
currentTime from the processor at 0.005333333333333333 is equal to 0.005333333333333333.PASS
currentTime from the processor at 0.008 is equal to 0.008.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Check the timing information from AudioWorkletProcessor] All assertions passed. (total 8 assertions)PASS
> [Check the timing information from AudioWorkletProcessor] PASS
/webaudio/the-audio-api/the-pannernode-interface/panner-equalpower-stereo.html (8/8, 100.00%, 0.14% of total)OK
Error in left channel gain values is less than or equal to 0.0000013.PASS
Error in right channel gain values is less than or equal to 0.0000013.PASS
Number of impulses found is equal to 100.PASS
Offsets of impulses at the wrong position is identical to the array [].PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 4 assertions)PASS
> [test] Equal-power panner model of AudioPannerNode with stereo sourcePASS
/webaudio/the-audio-api/the-stereopanner-interface/ctor-stereopanner.html (45/45, 100.00%, 0.78% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new StereoPannerNode() threw TypeError: "Failed to construct 'StereoPannerNode': 1 argument required, but only 0 present.".PASS
new StereoPannerNode(1) threw TypeError: "Failed to construct 'StereoPannerNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new StereoPannerNode(c, {"channelCount":0}) threw NotSupportedError: "Failed to construct 'StereoPannerNode': The channelCount provided (0) is outside the range [1, 2].".PASS
new StereoPannerNode(c, {"channelCount":1}) did not throw an exception.PASS
new StereoPannerNode(c, {"channelCount":2}) did not throw an exception.PASS
new StereoPannerNode(c, {"channelCount":3}) threw NotSupportedError: "Failed to construct 'StereoPannerNode': The channelCount provided (3) is outside the range [1, 2].".PASS
new StereoPannerNode(c, {"channelCount":99}) threw NotSupportedError: "Failed to construct 'StereoPannerNode': The channelCount provided (99) is outside the range [1, 2].".PASS
new StereoPannerNode(c, {"channelCountMode":"clamped-max"}) did not throw an exception.PASS
new StereoPannerNode(c, {"channelCountMode":"explicit"}) did not throw an exception.PASS
new StereoPannerNode(c, {"channelCountMode":"foobar"}) threw TypeError: "Failed to construct 'StereoPannerNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
new StereoPannerNode(c, {"channelCountMode":"max"}) threw NotSupportedError: "Failed to construct 'StereoPannerNode': StereoPanner: 'max' is not allowed".PASS
new StereoPannerNode(c, {"channelInterpretation":"discrete"}) did not throw an exception.PASS
new StereoPannerNode(c, {"channelInterpretation":"foobar"}) threw TypeError: "Failed to construct 'StereoPannerNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new StereoPannerNode(c, {"channelInterpretation":"speakers"}) did not throw an exception.PASS
new StereoPannerNode(context, 42) threw TypeError: "Failed to construct 'StereoPannerNode': parameter 2 ('options') is not an object.".PASS
node.channelCount is equal to 1.PASS
node.channelCount is equal to 2.PASS
node.channelCountMode is equal to clamped-max.PASS
node.channelCountMode is equal to explicit.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node0 = new StereoPannerNode(context) did not throw an exception.PASS
node0 instanceof StereoPannerNode is equal to true.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to clamped-max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 1.PASS
node0.pan.value is equal to 0.PASS
node1 = new StereoPannerNode(, {"pan":0.75}) did not throw an exception.PASS
node1 instanceof StereoPannerNode is equal to true.PASS
node1.pan.value is equal to 0.75.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor with options] All assertions passed. (total 3 assertions)PASS
< [default constructor] All assertions passed. (total 8 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 18 assertions)PASS
> [constructor with options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-exceptional-values.html (59/59, 100.00%, 1.03% of total)OK
Creating context for testing did not throw an exception.PASS
gain.gain.exponentialRampToValueAtTime(-1e-100,1) threw RangeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (0) should not be in the range (-1.40130e-45, 1.40130e-45).".PASS
gain.gain.exponentialRampToValueAtTime(-Infinity,1) threw TypeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.exponentialRampToValueAtTime(0,1) threw RangeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (0) should not be in the range (-1.40130e-45, 1.40130e-45).".PASS
gain.gain.exponentialRampToValueAtTime(1,-1) threw RangeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': Time must be a finite non-negative number: -1".PASS
gain.gain.exponentialRampToValueAtTime(1,-Infinity) threw TypeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.exponentialRampToValueAtTime(1,Infinity) threw TypeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.exponentialRampToValueAtTime(1,NaN) threw TypeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.exponentialRampToValueAtTime(1e-100,1) threw RangeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (0) should not be in the range (-1.40130e-45, 1.40130e-45).".PASS
gain.gain.exponentialRampToValueAtTime(Infinity,1) threw TypeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.exponentialRampToValueAtTime(NaN,1) threw TypeError: "Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.linearRampToValueAtTime(-Infinity,1) threw TypeError: "Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.linearRampToValueAtTime(1,-1) threw RangeError: "Failed to execute 'linearRampToValueAtTime' on 'AudioParam': Time must be a finite non-negative number: -1".PASS
gain.gain.linearRampToValueAtTime(1,-Infinity) threw TypeError: "Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.linearRampToValueAtTime(1,Infinity) threw TypeError: "Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.linearRampToValueAtTime(1,NaN) threw TypeError: "Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.linearRampToValueAtTime(Infinity,1) threw TypeError: "Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.linearRampToValueAtTime(NaN,1) threw TypeError: "Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.setTargetAtTime(-Infinity,1,1) threw TypeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.setTargetAtTime(1,-1,1) threw RangeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': Time must be a finite non-negative number: -1".PASS
gain.gain.setTargetAtTime(1,-Infinity,1) threw TypeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setTargetAtTime(1,1,-1) threw RangeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': Time constant must be a finite non-negative number: -1".PASS
gain.gain.setTargetAtTime(1,1,-Infinity) threw TypeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setTargetAtTime(1,1,Infinity) threw TypeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setTargetAtTime(1,1,NaN) threw TypeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setTargetAtTime(1,Infinity,1) threw TypeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setTargetAtTime(1,NaN,1) threw TypeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setTargetAtTime(Infinity,1,1) threw TypeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.setTargetAtTime(NaN,1,1) threw TypeError: "Failed to execute 'setTargetAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.setValueAtTime(-Infinity,1) threw TypeError: "Failed to execute 'setValueAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.setValueAtTime(1,-1) threw RangeError: "Failed to execute 'setValueAtTime' on 'AudioParam': Time must be a finite non-negative number: -1".PASS
gain.gain.setValueAtTime(1,-Infinity) threw TypeError: "Failed to execute 'setValueAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setValueAtTime(1,Infinity) threw TypeError: "Failed to execute 'setValueAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setValueAtTime(1,NaN) threw TypeError: "Failed to execute 'setValueAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setValueAtTime(Infinity,1) threw TypeError: "Failed to execute 'setValueAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.setValueAtTime(NaN,1) threw TypeError: "Failed to execute 'setValueAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.setValueCurveAtTime([0,0,0],-1,1) threw RangeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': Time must be a finite non-negative number: -1".PASS
gain.gain.setValueCurveAtTime([0,0,0],-Infinity,1) threw TypeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setValueCurveAtTime([0,0,0],1,-1) threw RangeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': Duration must be a finite positive number: -1".PASS
gain.gain.setValueCurveAtTime([0,0,0],Infinity,1) threw TypeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setValueCurveAtTime([0,0,0],NaN,1) threw TypeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided double value is non-finite.".PASS
gain.gain.setValueCurveAtTime([1,2,Infinity,3],1,1) threw TypeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.setValueCurveAtTime([1,NaN,2,3],1,1) threw TypeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided float value is non-finite.".PASS
gain.gain.setValueCurveAtTime(curve, 1, -1) threw RangeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': Duration must be a finite positive number: -1".PASS
gain.gain.setValueCurveAtTime(curve, 1, 0) threw RangeError: "Failed to execute 'setValueCurveAtTime' on 'AudioParam': Duration must be a finite positive number: 0".PASS
# AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [special cases 1] All assertions passed. (total 9 assertions)PASS
< [special cases 2] All assertions passed. (total 3 assertions)PASS
< [test setValueCurve] All assertions passed. (total 5 assertions)PASS
< [test time] All assertions passed. (total 15 assertions)PASS
< [test value] All assertions passed. (total 12 assertions)PASS
> [initialize] PASS
> [special cases 1] Test exceptions for finite valuesPASS
> [special cases 2] Test special cases for expeonentialRampPASS
> [test setValueCurve] Test non-finite arguments for setValueCurveAtTimePASS
> [test time] Test non-finite arguments for AudioParam timePASS
> [test value] Test non-finite arguments for AudioParam valuePASS
/webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size.html (1/1, 100.00%, 0.02% of total)OK
Test currentTime at completion of OfflineAudioContext renderingPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop.html (5/5, 100.00%, 0.09% of total)OK
Rendered data contains only the constant 1.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [one-sample-loop] All assertions passed. (total 1 assertions)PASS
> [one-sample-loop] PASS
/webaudio/the-audio-api/the-pannernode-interface/panner-automation-equalpower-stereo.html (8/8, 100.00%, 0.14% of total)OK
Error in left channel gain values is less than or equal to 0.0000013.PASS
Error in right channel gain values is less than or equal to 0.0000013.PASS
Number of impulses found is equal to 100.PASS
Offsets of impulses at the wrong position is identical to the array [].PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 4 assertions)PASS
> [test] Equal-power panner model of AudioPannerNode with stereo sourcePASS
/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html (1/1, 100.00%, 0.02% of total)TIMEOUT
AnalyserNode outputNOTRUN
/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-basic.html (37/37, 100.00%, 0.64% of total)OK
Initialize context for testing did not throw an exception.PASS
channelCountMode is equal to max.PASS
channelInterpretation is equal to speakers.PASS
context.createIIRFilter does exist.PASS
createIIRFilter() threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': 2 arguments required, but only 0 present.".PASS
createIIRFilter([1, 'abc', []], [1]) threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The provided double value is non-finite.".PASS
createIIRFilter([1, NaN, Infinity], [1]) threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The provided double value is non-finite.".PASS
createIIRFilter([1], [1, NaN, Infinity]) threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The provided double value is non-finite.".PASS
createIIRFilter([1], []) threw NotSupportedError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The number of feedback coefficients provided (0) is outside the range [1, 20].".PASS
createIIRFilter([1], new Float32Array(2)) threw InvalidStateError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': First feedback coefficient cannot be zero.".PASS
createIIRFilter([1], new Float32Array(21)) threw NotSupportedError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The number of feedback coefficients provided (21) is outside the range [1, 20].".PASS
createIIRFilter([], [1]) threw NotSupportedError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The number of feedforward coefficients provided (0) is outside the range [1, 20].".PASS
createIIRFilter([], []) threw NotSupportedError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The number of feedback coefficients provided (0) is outside the range [1, 20].".PASS
createIIRFilter(new Float32Array(1)) threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': 2 arguments required, but only 1 present.".PASS
createIIRFilter(new Float32Array(10), [1]) threw InvalidStateError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': At least one feedforward coefficient must be non-zero.".PASS
createIIRFilter(new Float32Array(20), new Float32Array(20)) did not throw an exception.PASS
createIIRFilter(new Float32Array(21), [1]) threw NotSupportedError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The number of feedforward coefficients provided (21) is outside the range [1, 20].".PASS
createIIRFilter(null, null) threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The provided value cannot be converted to a sequence.".PASS
getFrequencyResponse(new Float32Array(1), new Float32Array(1), null) threw TypeError: "Failed to execute 'getFrequencyResponse' on 'IIRFilterNode': parameter 3 is not of type 'Float32Array'.".PASS
getFrequencyResponse(new Float32Array(1), null, new Float32Array(1)) threw TypeError: "Failed to execute 'getFrequencyResponse' on 'IIRFilterNode': parameter 2 is not of type 'Float32Array'.".PASS
getFrequencyResponse(new Float32Array(10), new Float32Array(1), new Float32Array(20)) threw InvalidAccessError: "Failed to execute 'getFrequencyResponse' on 'IIRFilterNode': The magResponse length provided (1) is outside the range [10, 10].".PASS
getFrequencyResponse(new Float32Array(10), new Float32Array(20), new Float32Array(1)) threw InvalidAccessError: "Failed to execute 'getFrequencyResponse' on 'IIRFilterNode': The magResponse length provided (20) is outside the range [10, 10].".PASS
getFrequencyResponse(null, new Float32Array(1), new Float32Array(1)) threw TypeError: "Failed to execute 'getFrequencyResponse' on 'IIRFilterNode': parameter 1 is not of type 'Float32Array'.".PASS
numberOfInputs is equal to 1.PASS
numberOfOutputs is equal to 1.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [exceptions-createIIRFilter] All assertions passed. (total 14 assertions)PASS
< [exceptions-getFrequencyData] All assertions passed. (total 5 assertions)PASS
< [existence] All assertions passed. (total 1 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [parameters] All assertions passed. (total 4 assertions)PASS
> [exceptions-createIIRFilter] PASS
> [exceptions-getFrequencyData] PASS
> [existence] PASS
> [initialize] PASS
> [parameters] PASS
/webaudio/the-audio-api/the-audioparam-interface/retrospective-exponentialRampToValueAtTime.html (7/7, 100.00%, 0.12% of total)OK
Reference[0:127] contains only the constant 1.PASS
Test[0:127] contains only the constant 1.PASS
Test[128:] is identical to the array [0.10000000149011612,0.10001351684331894,0.10002703964710236,0.10004056245088577,0.10005408525466919,0.1000676080584526,0.10008113831281662,0.10009466856718063,0.10010819882154465,0.10012172907590866,0.10013526678085327,0.10014880448579788,0.10016234219074249,0.1001758798956871,0.10018942505121231,0.10020297020673752...].PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Test exponentialRampToValue with end time in the pastPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-constructor-options.https.html (37/37, 100.00%, 0.64% of total)OK
Creating AudioWOrkletNode with options: {"numberOfInputs":7,"numberOfOutputs":18,"channelCount":4,"channelCountMode":"clamped-max","channelInterpretation":"discrete"} did not throw an exception.PASS
Creating AudioWOrkletNode without options did not throw an exception.PASS
Creating AudioWorkletNode with channelCount 0 threw NotSupportedError: "Failed to construct 'AudioWorkletNode': The channel count provided (0) is outside the range [1, 32].".PASS
Creating AudioWorkletNode with channelCount 33 threw NotSupportedError: "Failed to construct 'AudioWorkletNode': The channel count provided (33) is outside the range [1, 32].".PASS
Creating AudioWorkletNode with channelCountMode "foobar" threw TypeError: "Failed to construct 'AudioWorkletNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
Creating AudioWorkletNode with channelCountMode "foobar" threw TypeError: "Failed to construct 'AudioWorkletNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
testNode is instance of AudioWorkletNode is equal to true.PASS
testNode.channelCount (default) is equal to 2.PASS
testNode.channelCount is equal to 17.PASS
testNode.channelCount is equal to 4.PASS
testNode.channelCountMode (default) is equal to max.PASS
testNode.channelCountMode (set via options.clamped-max) is equal to clamped-max.PASS
testNode.channelCountMode (set via options.explicit) is equal to explicit.PASS
testNode.channelCountMode (set via options.max) is equal to max.PASS
testNode.channelCountMode is equal to clamped-max.PASS
testNode.channelInterpretation (default) is equal to speakers.PASS
testNode.channelInterpretation (set via options.discrete) is equal to discrete.PASS
testNode.channelInterpretation (set via options.speakers) is equal to speakers.PASS
testNode.channelInterpretation is equal to discrete.PASS
testNode.numberOfInputs (default) is equal to 1.PASS
testNode.numberOfInputs is equal to 7.PASS
testNode.numberOfOutputs (default) is equal to 1.PASS
testNode.numberOfOutputs is equal to 18.PASS
# AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [audio-node-options] All assertions passed. (total 6 assertions)PASS
< [channel-count-mode] All assertions passed. (total 4 assertions)PASS
< [channel-count] All assertions passed. (total 3 assertions)PASS
< [channel-interpretation] All assertions passed. (total 3 assertions)PASS
< [setup] All assertions passed. (total 0 assertions)PASS
< [without-audio-node-options] All assertions passed. (total 7 assertions)PASS
> [audio-node-options] PASS
> [channel-count-mode] PASS
> [channel-count] PASS
> [channel-interpretation] PASS
> [setup] PASS
> [without-audio-node-options] PASS
/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html (1/1, 100.00%, 0.02% of total)TIMEOUT
/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.htmlTIMEOUT
/webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html (1/1, 100.00%, 0.02% of total)OK
Test that DelayNode output channelCount matches that of the delayed inputFAIL
/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input.html (30/30, 100.00%, 0.52% of total)OK
1-channel source: Channel #0 contains only the constant 0.PASS
1-channel source: Channel #1 contains only the constant 0.PASS
1-channel source: Channel #2 contains only the constant 0.PASS
1-channel source: Channel #3 contains only the constant 1.PASS
1-channel source: Channel #4 contains only the constant 0.PASS
1-channel source: Channel #5 contains only the constant 0.PASS
2-channel source: Channel #0 contains only the constant 1.5.PASS
2-channel source: Channel #1 contains only the constant 0.PASS
2-channel source: Channel #2 contains only the constant 0.PASS
2-channel source: Channel #3 contains only the constant 0.PASS
2-channel source: Channel #4 contains only the constant 0.PASS
2-channel source: Channel #5 contains only the constant 0.PASS
3-channel source: Channel #0 contains only the constant 1.PASS
3-channel source: Channel #1 contains only the constant 0.PASS
3-channel source: Channel #2 contains only the constant 0.PASS
3-channel source: Channel #3 contains only the constant 0.PASS
3-channel source: Channel #4 contains only the constant 0.PASS
3-channel source: Channel #5 contains only the constant 0.PASS
Channel #0 contains only the constant 1.PASS
Channel #1 contains only the constant -1.PASS
# AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [merging-to-stereo] All assertions passed. (total 2 assertions)PASS
< [silent-channel] All assertions passed. (total 6 assertions)PASS
< [stereo-down-mixing] All assertions passed. (total 6 assertions)PASS
< [undefined-channel-layout] All assertions passed. (total 6 assertions)PASS
> [merging-to-stereo] PASS
> [silent-channel] PASS
> [stereo-down-mixing] PASS
> [undefined-channel-layout] PASS
/webaudio/the-audio-api/the-pannernode-interface/panner-equalpower.html (14/14, 100.00%, 0.24% of total)OK
Error in left channel gain values is less than or equal to 0.0000013.PASS
Error in right channel gain values is less than or equal to 0.0000013.PASS
Mono: Left and right channels is identical to the array [0,0.04429904744029045,0.08842403441667557,0.1322016716003418,0.1754598766565323,0.21802882850170135,0.2597411572933197,0.3004331588745117,0.3399447500705719,0.3781208395957947,0.4148113429546356,0.4498721659183502,0.48316577076911926,0.5145610570907593,0.5439349412918091,0.5711718797683716...].PASS
Number of impulses found is equal to 100.PASS
Offsets of impulses at the wrong position is identical to the array [].PASS
Stereo: Left and right channels is identical to the array [0,0.06264831125736237,0.12505047023296356,0.18696139752864838,0.24813774228096008,0.30833932757377625,0.3673294484615326,0.4248766303062439,0.4807544946670532,0.53474360704422,0.5866318345069885,0.636215329170227,0.6832996010780334,0.7276992201805115,0.7692402005195618,0.8077589869499207...].PASS
# AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [mono source=listener] All assertions passed. (total 1 assertions)PASS
< [stereo source=listener] All assertions passed. (total 1 assertions)PASS
< [test] All assertions passed. (total 4 assertions)PASS
> [mono source=listener] Source and listener at the same positionPASS
> [stereo source=listener] Source and listener at the same positionPASS
> [test] Equal-power panner model of AudioPannerNodePASS
/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain.html (12/12, 100.00%, 0.21% of total)OK
GainNode: Difference between a-rate and k-rate GainNode is not constantly 0 (contains 7937 different values).PASS
GainNode: Output of a-rate GainNode is identical to the array [0,0.338695228099823,0.63726407289505,0.860418975353241,0.9817950129508972,0.9870702624320984,0.8756487965583801,0.6607323288917542,0.36775603890419006,0.03137516230344772,-0.30863043665885925,-0.6120643019676208,-0.8430606722831726,-0.9743298888206482,-0.9903783798217773,-0.8893347382545471...].PASS
GainNode: Output of k-rate GainNode is identical to the array [0,0.3387375771999359,0.6374233961105347,0.8607417345046997,0.9822861552238464,0.9876875877380371,0.8763060569763184,0.6613109707832336,0.36812418699264526,0.03141050040721893,-0.30901670455932617,-0.6129070520401001,-0.8443272113800049,-0.975915789604187,-0.9921146035194397,-0.8910053968429565...].PASS
GainNode: Setting gain.automationRate to "k-rate" is equal to k-rate.PASS
GainNode: a-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: k-rate node: gain.linearRampToValueAtTime(0,1) did not throw an exception.PASS
GainNode: k-rate node: gain.setValueAtTime(1,0) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Test k-rate GainNode] All assertions passed. (total 8 assertions)PASS
> [Test k-rate GainNode] PASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam.https.html (9/9, 100.00%, 0.16% of total)OK
Default gain value of gainWorkletNode is equal to 0.7070000171661377.PASS
The rendered buffer contains only the constant 0.PASS
Value of gainWorkletParam after setter = 0.1 is equal to 0.10000000149011612.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Initializing AudioWorklet and Context] All assertions passed. (total 0 assertions)PASS
< [Verifying AudioParam in AudioWorkletNode] All assertions passed. (total 3 assertions)PASS
> [Initializing AudioWorklet and Context] PASS
> [Verifying AudioParam in AudioWorkletNode] PASS
/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source.html (16/16, 100.00%, 0.28% of total)OK
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
k-rate offset: Difference between a-rate and k-rate ConstantSourceNode is not constantly 0 (contains 508 different values).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...].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: Setting offset.automationRate to "k-rate" is equal to k-rate.PASS
k-rate offset: a-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: k-rate node: offset.linearRampToValueAtTime(10,0.064) did not throw an exception.PASS
k-rate offset: k-rate node: offset.setValueAtTime(0,0) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [ConstantSource k-rate offset] All assertions passed. (total 12 assertions)PASS
> [ConstantSource k-rate offset] PASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan.html (28/28, 100.00%, 0.49% of total)OK
1: Channel 0 is identical to the array [0,0,0.9485260844230652,0.8472318053245544,1.7718820571899414,1.7117778062820435,1.668781042098999,1.722577452659607,1.6410210132598877,1.8474148511886597,1.1939716339111328,0.20856022834777832,-0.526597797870636,-1.5727121829986572,-1.800194263458252,-1.6267807483673096...].PASS
1: Channel 1 is identical to the array [0,0,0,0.9485260844230652,0.8472318053245544,1.7718820571899414,1.7117778062820435,1.668781042098999,1.722577452659607,1.6410210132598877,1.8474148511886597,1.1939716339111328,0.20856022834777832,-0.526597797870636,-1.5727121829986572,-1.800194263458252...].PASS
2: Channel 0 is identical to the array [0,0,0.9485260844230652,0.8472318053245544,1.818056344985962,1.6351234912872314,1.7563550472259521,1.628699541091919,1.7798327207565308,1.309612512588501,-0.5365101099014282,-1.5863289833068848,-1.8087177276611328,-1.5926568508148193,-1.803882360458374,-1.4375805854797363...].PASS
2: Channel 1 is identical to the array [0,0,0,0.9485260844230652,0.8472318053245544,1.818056344985962,1.6351234912872314,1.7563550472259521,1.628699541091919,1.7798327207565308,1.309612512588501,-0.5365101099014282,-1.5863289833068848,-1.8087177276611328,-1.5926568508148193,-1.803882360458374...].PASS
3: Channel 0 is identical to the array [0,0,0.9485260844230652,0.8472318053245544,1.818056344985962,1.6351234912872314,1.7563550472259521,1.628699541091919,1.7798327207565308,1.309612512588501,-0.5365101099014282,-1.5863289833068848,-1.8087177276611328,-1.5926568508148193,-1.803882360458374,-1.4375805854797363...].PASS
3: Channel 1 is identical to the array [0,0,0,0.9485260844230652,0.8472318053245544,1.818056344985962,1.6351234912872314,1.7563550472259521,1.628699541091919,1.7798327207565308,1.309612512588501,-0.5365101099014282,-1.5863289833068848,-1.8087177276611328,-1.5926568508148193,-1.803882360458374...].PASS
4: Channel 0 is identical to the array [0,0,0.9734255075454712,0.8085748553276062,1.8316415548324585,1.6426395177841187,1.067112684249878,0.1109808087348938,0.06545671820640564,-0.2928428649902344,-0.7969464063644409,-0.007875025272369385,-0.02994862198829651,0.066891610622406,-0.2781907618045807,-1.200257420539856...].PASS
4: Channel 1 is identical to the array [0,0,0,0.9734255075454712,0.8085748553276062,1.8316415548324585,1.6426395177841187,1.067112684249878,0.1109808087348938,0.06545671820640564,-0.2928428649902344,-0.7969464063644409,-0.007875025272369385,-0.02994862198829651,0.066891610622406,-0.2781907618045807...].PASS
5.1: Channel 0 is identical to the array [0,0,2.3021068572998047,2.0779097080230713,3.94343900680542,2.6875927448272705,1.0334471464157104,0.5752094984054565,1.1987406015396118,1.1847299337387085,-0.41883033514022827,-2.212879180908203,-2.9619669914245605,-1.2789843082427979,0.2622531056404114,0.6033461093902588...].PASS
5.1: Channel 1 is identical to the array [0,0,0,2.3021068572998047,2.0779097080230713,3.94343900680542,2.6875927448272705,1.0334471464157104,0.5752094984054565,1.1987406015396118,1.1847299337387085,-0.41883033514022827,-2.212879180908203,-2.9619669914245605,-1.2789843082427979,0.2622531056404114...].PASS
Output with delayed setting of convolver buffer is not constantly 0 (contains 767 different values).PASS
new AudioBuffer({numberOfChannels: 2, length: 4, sampleRate: 8192}) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 7 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [1-channel input] All assertions passed. (total 2 assertions)PASS
< [2-channel input] All assertions passed. (total 2 assertions)PASS
< [3-channel input] All assertions passed. (total 2 assertions)PASS
< [4-channel input] All assertions passed. (total 2 assertions)PASS
< [5.1-channel input] All assertions passed. (total 2 assertions)PASS
< [delayed buffer set] All assertions passed. (total 1 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
> [1-channel input] produces 2-channel outputPASS
> [2-channel input] produces 2-channel outputPASS
> [3-channel input] 3->2 downmix producing 2-channel outputPASS
> [4-channel input] 4->2 downmix producing 2-channel outputPASS
> [5.1-channel input] 5.1->2 downmix producing 2-channel outputPASS
> [delayed buffer set] Delayed set of 4-channel responsePASS
> [initialize] Convolver response with one channelPASS
/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html (7/7, 100.00%, 0.12% of total)OK
Reference[0:127] contains only the constant 1.PASS
Test[0:127] contains only the constant 1.PASS
Test[128:] is identical to the array [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15...].PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Test setValueAtTime with startTime in the pastPASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueAtTime.html (106/106, 100.00%, 1.84% of total)OK
Max error for test 0 at offset 0 is less than or equal to 6e-8.PASS
Max error for test 1 at offset 1323 is less than or equal to 6e-8.PASS
Max error for test 10 at offset 13230 is less than or equal to 6e-8.PASS
Max error for test 11 at offset 14553 is less than or equal to 6e-8.PASS
Max error for test 12 at offset 15876 is less than or equal to 6e-8.PASS
Max error for test 13 at offset 17199 is less than or equal to 6e-8.PASS
Max error for test 14 at offset 18522 is less than or equal to 6e-8.PASS
Max error for test 15 at offset 19845 is less than or equal to 6e-8.PASS
Max error for test 16 at offset 21168 is less than or equal to 6e-8.PASS
Max error for test 17 at offset 22491 is less than or equal to 6e-8.PASS
Max error for test 18 at offset 23814 is less than or equal to 6e-8.PASS
Max error for test 19 at offset 25137 is less than or equal to 6e-8.PASS
Max error for test 2 at offset 2646 is less than or equal to 6e-8.PASS
Max error for test 20 at offset 26460 is less than or equal to 6e-8.PASS
Max error for test 21 at offset 27783 is less than or equal to 6e-8.PASS
Max error for test 22 at offset 29106 is less than or equal to 6e-8.PASS
Max error for test 23 at offset 30429 is less than or equal to 6e-8.PASS
Max error for test 24 at offset 31752 is less than or equal to 6e-8.PASS
Max error for test 25 at offset 33075 is less than or equal to 6e-8.PASS
Max error for test 26 at offset 34398 is less than or equal to 6e-8.PASS
Max error for test 27 at offset 35721 is less than or equal to 6e-8.PASS
Max error for test 28 at offset 37044 is less than or equal to 6e-8.PASS
Max error for test 29 at offset 38367 is less than or equal to 6e-8.PASS
Max error for test 3 at offset 3969 is less than or equal to 6e-8.PASS
Max error for test 30 at offset 39690 is less than or equal to 6e-8.PASS
Max error for test 31 at offset 41013 is less than or equal to 6e-8.PASS
Max error for test 32 at offset 42336 is less than or equal to 6e-8.PASS
Max error for test 33 at offset 43659 is less than or equal to 6e-8.PASS
Max error for test 34 at offset 44982 is less than or equal to 6e-8.PASS
Max error for test 35 at offset 46305 is less than or equal to 6e-8.PASS
Max error for test 36 at offset 47628 is less than or equal to 6e-8.PASS
Max error for test 37 at offset 48951 is less than or equal to 6e-8.PASS
Max error for test 38 at offset 50274 is less than or equal to 6e-8.PASS
Max error for test 39 at offset 51597 is less than or equal to 6e-8.PASS
Max error for test 4 at offset 5292 is less than or equal to 6e-8.PASS
Max error for test 40 at offset 52920 is less than or equal to 6e-8.PASS
Max error for test 41 at offset 54243 is less than or equal to 6e-8.PASS
Max error for test 42 at offset 55566 is less than or equal to 6e-8.PASS
Max error for test 43 at offset 56889 is less than or equal to 6e-8.PASS
Max error for test 44 at offset 58212 is less than or equal to 6e-8.PASS
Max error for test 45 at offset 59535 is less than or equal to 6e-8.PASS
Max error for test 46 at offset 60858 is less than or equal to 6e-8.PASS
Max error for test 47 at offset 62181 is less than or equal to 6e-8.PASS
Max error for test 48 at offset 63504 is less than or equal to 6e-8.PASS
Max error for test 49 at offset 64827 is less than or equal to 6e-8.PASS
Max error for test 5 at offset 6615 is less than or equal to 6e-8.PASS
Max error for test 50 at offset 66150 is less than or equal to 6e-8.PASS
Max error for test 51 at offset 67473 is less than or equal to 6e-8.PASS
Max error for test 52 at offset 68796 is less than or equal to 6e-8.PASS
Max error for test 53 at offset 70119 is less than or equal to 6e-8.PASS
Max error for test 54 at offset 71442 is less than or equal to 6e-8.PASS
Max error for test 55 at offset 72765 is less than or equal to 6e-8.PASS
Max error for test 56 at offset 74088 is less than or equal to 6e-8.PASS
Max error for test 57 at offset 75411 is less than or equal to 6e-8.PASS
Max error for test 58 at offset 76734 is less than or equal to 6e-8.PASS
Max error for test 59 at offset 78057 is less than or equal to 6e-8.PASS
Max error for test 6 at offset 7938 is less than or equal to 6e-8.PASS
Max error for test 60 at offset 79380 is less than or equal to 6e-8.PASS
Max error for test 61 at offset 80703 is less than or equal to 6e-8.PASS
Max error for test 62 at offset 82026 is less than or equal to 6e-8.PASS
Max error for test 63 at offset 83349 is less than or equal to 6e-8.PASS
Max error for test 64 at offset 84672 is less than or equal to 6e-8.PASS
Max error for test 65 at offset 85995 is less than or equal to 6e-8.PASS
Max error for test 66 at offset 87318 is less than or equal to 6e-8.PASS
Max error for test 67 at offset 88641 is less than or equal to 6e-8.PASS
Max error for test 68 at offset 89964 is less than or equal to 6e-8.PASS
Max error for test 69 at offset 91287 is less than or equal to 6e-8.PASS
Max error for test 7 at offset 9261 is less than or equal to 6e-8.PASS
Max error for test 70 at offset 92610 is less than or equal to 6e-8.PASS
Max error for test 71 at offset 93933 is less than or equal to 6e-8.PASS
Max error for test 72 at offset 95256 is less than or equal to 6e-8.PASS
Max error for test 73 at offset 96579 is less than or equal to 6e-8.PASS
Max error for test 74 at offset 97902 is less than or equal to 6e-8.PASS
Max error for test 75 at offset 99225 is less than or equal to 6e-8.PASS
Max error for test 76 at offset 100548 is less than or equal to 6e-8.PASS
Max error for test 77 at offset 101871 is less than or equal to 6e-8.PASS
Max error for test 78 at offset 103194 is less than or equal to 6e-8.PASS
Max error for test 79 at offset 104517 is less than or equal to 6e-8.PASS
Max error for test 8 at offset 10584 is less than or equal to 6e-8.PASS
Max error for test 80 at offset 105840 is less than or equal to 6e-8.PASS
Max error for test 81 at offset 107163 is less than or equal to 6e-8.PASS
Max error for test 82 at offset 108486 is less than or equal to 6e-8.PASS
Max error for test 83 at offset 109809 is less than or equal to 6e-8.PASS
Max error for test 84 at offset 111132 is less than or equal to 6e-8.PASS
Max error for test 85 at offset 112455 is less than or equal to 6e-8.PASS
Max error for test 86 at offset 113778 is less than or equal to 6e-8.PASS
Max error for test 87 at offset 115101 is less than or equal to 6e-8.PASS
Max error for test 88 at offset 116424 is less than or equal to 6e-8.PASS
Max error for test 89 at offset 117747 is less than or equal to 6e-8.PASS
Max error for test 9 at offset 11907 is less than or equal to 6e-8.PASS
Max error for test 90 at offset 119070 is less than or equal to 6e-8.PASS
Max error for test 91 at offset 120393 is less than or equal to 6e-8.PASS
Max error for test 92 at offset 121716 is less than or equal to 6e-8.PASS
Max error for test 93 at offset 123039 is less than or equal to 6e-8.PASS
Max error for test 94 at offset 124362 is less than or equal to 6e-8.PASS
Max error for test 95 at offset 125685 is less than or equal to 6e-8.PASS
Max error for test 96 at offset 127008 is less than or equal to 6e-8.PASS
Max error for test 97 at offset 128331 is less than or equal to 6e-8.PASS
Max error for test 98 at offset 129654 is less than or equal to 6e-8.PASS
Max error for test 99 at offset 130977 is less than or equal to 6e-8.PASS
Number of failed tests with an acceptable relative tolerance of 6e-8 is equal to 0.PASS
Number of tests started and ended at the correct time is equal to 100.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 102 assertions)PASS
> [test] AudioParam setValueAtTime() functionality.PASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-disconnected-input.https.html (8/8, 100.00%, 0.14% of total)OK
After disconnecting the source: Input array length contains only the constant 0.PASS
Before connecting the source: Input array length contains only the constant 0.PASS
First non-zero output is equal to 128.PASS
While source is connected: Input array length contains only the constant 128.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 4 assertions)PASS
> [test] Input array length should be zero for disconnected inputPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling.html (6/6, 100.00%, 0.10% of total)OK
Interpolated sine wave equals [0,0.05756402015686035,0.11493714153766632,0.1719290316104889,0.22835081815719604,0.2840152978897095,0.3387379050254822,0.39233702421188354,0.4446350336074829,0.49545857310295105,0.5446388125419617,0.5920131206512451,0.6374237537384033,0.6807208061218262,0.7217600345611572,0.7604057788848877...] with an element-wise tolerance of {"absoluteThreshold":0.090348,"relativeThreshold":0}.PASS
SNR (37.18 dB) is greater than or equal to 37.17.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [interpolate] All assertions passed. (total 2 assertions)PASS
> [interpolate] Interpolation of AudioBuffers to context sample ratePASS
/webaudio/the-audio-api/the-delaynode-interface/ctor-delay.html (47/47, 100.00%, 0.82% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new DelayNode() threw TypeError: "Failed to construct 'DelayNode': 1 argument required, but only 0 present.".PASS
new DelayNode(1) threw TypeError: "Failed to construct 'DelayNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new DelayNode(c, {channelCount: 0}) threw NotSupportedError: "Failed to construct 'DelayNode': The channel count provided (0) is outside the range [1, 32].".PASS
new DelayNode(c, {channelCount: 17}} did not throw an exception.PASS
new DelayNode(c, {channelCount: 99}) threw NotSupportedError: "Failed to construct 'DelayNode': The channel count provided (99) is outside the range [1, 32].".PASS
new DelayNode(c, {channelCountMode: "clamped-max"}) did not throw an exception.PASS
new DelayNode(c, {channelCountMode: "explicit"}) did not throw an exception.PASS
new DelayNode(c, {channelCountMode: "foobar"} threw TypeError: "Failed to construct 'DelayNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
new DelayNode(c, {channelCountMode: "max"} did not throw an exception.PASS
new DelayNode(c, {channelCountMode: "max"}) did not throw an exception.PASS
new DelayNode(c, {channelInterpretation: "discrete"}) did not throw an exception.PASS
new DelayNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Failed to construct 'DelayNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new DelayNode(c, {channelInterpretation: "speakers"}) did not throw an exception.PASS
new DelayNode(context, 42) threw TypeError: "Failed to construct 'DelayNode': parameter 2 ('options') is not an object.".PASS
node.channelCount is equal to 17.PASS
node.channelCountMode after invalid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to clamped-max.PASS
node.channelCountMode after valid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to max.PASS
node.channelCountMode is equal to max.PASS
node.channelInterpretation after invalid setter is equal to discrete.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node0 = new DelayNode(context) did not throw an exception.PASS
node0 instanceof DelayNode is equal to true.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.delayTime.value is equal to 0.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 1.PASS
node1 = new DelayNode(c, {"delayTime":0.5,"maxDelayTime":1.5}) did not throw an exception.PASS
node1.delayTime.maxValue is equal to 1.5.PASS
node1.delayTime.value is equal to 0.5.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor options] All assertions passed. (total 3 assertions)PASS
< [default constructor] All assertions passed. (total 8 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 20 assertions)PASS
> [constructor options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-pannernode-interface/pannernode-basic.html (60/60, 100.00%, 1.04% of total)OK
Initialize context and panner did not throw an exception.PASS
Set panner.panningModel = "HRTF" did not throw an exception.PASS
Set panner.panningModel = "equalpower" did not throw an exception.PASS
inverse is equal to panner.distanceModel.PASS
listener.forwardX is equal to 0.PASS
listener.forwardY is equal to 0.PASS
listener.forwardZ is equal to -1.PASS
listener.positionX is equal to 0.PASS
listener.positionY is equal to 0.PASS
listener.positionZ is equal to 0.PASS
listener.upX is equal to 0.PASS
listener.upY is equal to 1.PASS
listener.upZ is equal to 0.PASS
panner.coneInnerAngle = 240.5 is equal to 240.5.PASS
panner.coneInnerAngle is equal to 360.PASS
panner.coneOuterAngle = 166.5 is equal to 166.5.PASS
panner.coneOuterAngle is equal to 360.PASS
panner.coneOuterGain = 0.25 is equal to 0.25.PASS
panner.coneOuterGain is equal to 0.PASS
panner.distanceModel = "exponential" did not throw an exception.PASS
panner.distanceModel = "exponential" is equal to exponential.PASS
panner.distanceModel = "invalid" did not throw an exception.PASS
panner.distanceModel = "inverse" did not throw an exception.PASS
panner.distanceModel = "inverse" is equal to inverse.PASS
panner.distanceModel = "linear" did not throw an exception.PASS
panner.distanceModel = "linear" is equal to linear.PASS
panner.distanceModel is equal to exponential.PASS
panner.maxDistance = 100.5 is equal to 100.5.PASS
panner.maxDistance is equal to 10000.PASS
panner.numberOfInputs is equal to 1.PASS
panner.numberOfOutputs is equal to 1.PASS
panner.orientationX is equal to 1.PASS
panner.orientationY is equal to 0.PASS
panner.orientationZ is equal to 0.PASS
panner.panningModel = "HRTF" is equal to HRTF.PASS
panner.panningModel = "equalpower" is equal to equalpower.PASS
panner.panningModel = "invalid" did not throw an exception.PASS
panner.panningModel = 1 did not throw an exception.PASS
panner.panningModel after invalid setter is equal to HRTF.PASS
panner.panningModel is equal to HRTF.PASS
panner.panningModel is equal to equalpower.PASS
panner.positionX is equal to 0.PASS
panner.positionY is equal to 0.PASS
panner.positionZ is equal to 0.PASS
panner.refDistance = 270.5 is equal to 270.5.PASS
panner.refDistance is equal to 1.PASS
panner.rolloffFactor = 0.75 is equal to 0.75.PASS
panner.rolloffFactor is equal to 1.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [basic] All assertions passed. (total 22 assertions)PASS
< [distance models] All assertions passed. (total 8 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [listener] All assertions passed. (total 9 assertions)PASS
< [panning models] All assertions passed. (total 8 assertions)PASS
> [basic] PASS
> [distance models] PASS
> [initialize] PASS
> [listener] PASS
> [panning models] PASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/ctor-audiobuffersource.html (38/38, 100.00%, 0.66% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new AudioBufferSourceNode() threw TypeError: "Failed to construct 'AudioBufferSourceNode': 1 argument required, but only 0 present.".PASS
new AudioBufferSourceNode(1) threw TypeError: "Failed to construct 'AudioBufferSourceNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new AudioBufferSourceNode(context, 42) threw TypeError: "Failed to construct 'AudioBufferSourceNode': parameter 2 ('options') is not an object.".PASS
node = new AudioBufferSourceNode(c, {"buffer":{},"detune":0.5,"loop":true,"loopEnd":0.010416666666666666,"loopStart":0.00010416666666666667,"playbackRate":0.75}) did not throw an exception.PASS
node0 = new AudioBufferSourceNode(context) did not throw an exception.PASS
node0 instanceof AudioBufferSourceNode is equal to true.PASS
node0.buffer is equal to null.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.detune.value is equal to 0.PASS
node0.loop is equal to false.PASS
node0.loopEnd is equal to 0.PASS
node0.loopStart is equal to 0.PASS
node0.numberOfInputs is equal to 0.PASS
node0.numberOfOutputs is equal to 1.PASS
node0.playbackRate.value is equal to 1.PASS
node1 = new AudioBufferSourceNode(c, {"buffer":null} did not throw an exception.PASS
node1.buffer is equal to null.PASS
node2.buffer === buffer is equal to true.PASS
node2.detune.value is equal to 0.5.PASS
node2.loop is equal to true.PASS
node2.loopEnd is equal to 0.010416666666666666.PASS
node2.loopStart is equal to 0.00010416666666666667.PASS
node2.playbackRate.value is equal to 0.75.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor options] All assertions passed. (total 7 assertions)PASS
< [default constructor] All assertions passed. (total 13 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [nullable buffer] All assertions passed. (total 2 assertions)PASS
> [constructor options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [nullable buffer] PASS
/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit.html (10/10, 100.00%, 0.17% of total)OK
Delaying test signal by 0.5 sec was done correctlyPASS
Setting Delay length to 0 seconds threw NotSupportedError: "Failed to execute 'createDelay' on 'BaseAudioContext': The max delay time provided (0) is outside the range (0, 180).".PASS
Setting Delay length to 180 seconds or more threw NotSupportedError: "Failed to execute 'createDelay' on 'BaseAudioContext': The max delay time provided (180) is outside the range (0, 180).".PASS
Setting Delay length to NaN threw TypeError: "Failed to execute 'createDelay' on 'BaseAudioContext': The provided double value is non-finite.".PASS
Setting Delay length to negative threw NotSupportedError: "Failed to execute 'createDelay' on 'BaseAudioContext': The max delay time provided (-1) is outside the range (0, 180).".PASS
delay.delayTime.value = 0.5 is equal to 0.5.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 6 assertions)PASS
> [test] Tests attribute and maximum allowed delay of DelayNodePASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.html (11/11, 100.00%, 0.19% of total)OK
Number of properties in data from processor is equal to 2.PASS
|description| field in processorOptions from processor("foo") is equal to the field in node constructor options ("foo").PASS
|numberOfInputs| field in data from processor is equal to 1.PASS
|numberOfOutputs| field in data from processor is identical to the array 1.PASS
|payload| array in processorOptions from processor([0,1,2,3]) is identical to the array the array in node constructor options ([0,1,2,3]).PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [empty-option] All assertions passed. (total 3 assertions)PASS
< [valid-processor-data] All assertions passed. (total 2 assertions)PASS
> [empty-option] PASS
> [valid-processor-data] PASS
/webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono.html (8/8, 100.00%, 0.14% of total)OK
Deviation (in dB) of triangular portion of convolution is less than or equal to -124.41.PASS
Deviation in first part of tail of convolutions is less than or equal to -129.7.PASS
Rendered signal after tail of convolution is silent is true.PASS
Test signal convolved correctlyPASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 4 assertions)PASS
> [test] PASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-summingjunction.html (6/6, 100.00%, 0.10% of total)OK
Rendered signal length is equal to 44100.PASS
Rendered signal matches sum of two audio-rate gain changing signals plus baseline gain is true.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 2 assertions)PASS
> [test] PASS
/webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling.html (5/5, 100.00%, 0.09% of total)OK
Delaying test signal by 0.5 sec was done correctlyPASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 1 assertions)PASS
> [test] DelayNode delayTime parameter can be scheduled at a given timePASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-channels.html (36/36, 100.00%, 0.63% of total)OK
ConvolverNode with buffer of 1 channels did not throw an exception.PASS
ConvolverNode with buffer of 10 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 10".PASS
ConvolverNode with buffer of 11 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 11".PASS
ConvolverNode with buffer of 12 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 12".PASS
ConvolverNode with buffer of 13 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 13".PASS
ConvolverNode with buffer of 14 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 14".PASS
ConvolverNode with buffer of 15 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 15".PASS
ConvolverNode with buffer of 16 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 16".PASS
ConvolverNode with buffer of 17 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 17".PASS
ConvolverNode with buffer of 18 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 18".PASS
ConvolverNode with buffer of 19 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 19".PASS
ConvolverNode with buffer of 2 channels did not throw an exception.PASS
ConvolverNode with buffer of 20 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 20".PASS
ConvolverNode with buffer of 21 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 21".PASS
ConvolverNode with buffer of 22 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 22".PASS
ConvolverNode with buffer of 23 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 23".PASS
ConvolverNode with buffer of 24 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 24".PASS
ConvolverNode with buffer of 25 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 25".PASS
ConvolverNode with buffer of 26 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 26".PASS
ConvolverNode with buffer of 27 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 27".PASS
ConvolverNode with buffer of 28 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 28".PASS
ConvolverNode with buffer of 29 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 29".PASS
ConvolverNode with buffer of 3 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 3".PASS
ConvolverNode with buffer of 30 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 30".PASS
ConvolverNode with buffer of 31 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 31".PASS
ConvolverNode with buffer of 32 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 32".PASS
ConvolverNode with buffer of 4 channels did not throw an exception.PASS
ConvolverNode with buffer of 5 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 5".PASS
ConvolverNode with buffer of 6 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 6".PASS
ConvolverNode with buffer of 7 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 7".PASS
ConvolverNode with buffer of 8 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 8".PASS
ConvolverNode with buffer of 9 channels threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer must have 1, 2, or 4 channels, not 9".PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [channel-count-test] All assertions passed. (total 32 assertions)PASS
> [channel-count-test] PASS
/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer.html (15/15, 100.00%, 0.26% of total)OK
buffer = context.createBuffer(4, 88200, 44100) is true.PASS
buffer.duration is equal to 2.PASS
buffer.getChannelData(0) instanceof window.Float32Array is true.PASS
buffer.getChannelData(1) instanceof window.Float32Array is true.PASS
buffer.getChannelData(2) instanceof window.Float32Array is true.PASS
buffer.getChannelData(3) instanceof window.Float32Array is true.PASS
buffer.getChannelData(4) threw IndexSizeError: "Failed to execute 'getChannelData' on 'AudioBuffer': channel index (4) exceeds number of channels (4)".PASS
buffer.length is equal to 88200.PASS
buffer.numberOfChannels is equal to 4.PASS
buffer.sampleRate is equal to 44100.PASS
context.createBuffer(1, 1000, 24576).duration is equal to 0.040690104166666664.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Basic tests for AudioBuffer] All assertions passed. (total 11 assertions)PASS
> [Basic tests for AudioBuffer] PASS
/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-nondefault-delay.html (5/5, 100.00%, 0.09% of total)OK
Delaying test signal by 1.5 sec was done correctlyPASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 1 assertions)PASS
> [test] DelayNode with delay set to non-default maximum delayPASS
/webaudio/the-audio-api/the-pannernode-interface/distance-exponential.html (106/106, 100.00%, 1.84% of total)OK
0.00007142485992517322 is 0.00007142485524626213 within an error of 0.0000033.PASS
0.0000721536052878946 is 0.00007215360593004378 within an error of 0.0000033.PASS
0.00007289737550308928 is 0.00007289738085207445 within an error of 0.0000033.PASS
0.00007365665078395978 is 0.0000736566494708926 within an error of 0.0000033.PASS
0.0000744318967917934 is 0.00007443190100963128 within an error of 0.0000033.PASS
0.00007522365194745362 is 0.0000752236455072146 within an error of 0.0000033.PASS
0.00007603241101605818 is 0.0000760324149373658 within an error of 0.0000033.PASS
0.00007685876335017383 is 0.00007685876440058646 within an error of 0.0000033.PASS
0.00007770327647449449 is 0.0000777032733947189 within an error of 0.0000033.PASS
0.00007856654701754451 is 0.00007856654717020339 within an error of 0.0000033.PASS
0.00007944921526359394 is 0.00007944921817669082 within an error of 0.0000033.PASS
0.00008035194332478568 is 0.00008035194760827667 within an error of 0.0000033.PASS
0.00008127542969305068 is 0.00008127542705529087 within an error of 0.0000033.PASS
0.00008222038013627753 is 0.00008222038027131507 within an error of 0.0000033.PASS
0.0000831875586300157 is 0.00008318756506491622 within an error of 0.0000033.PASS
0.00008417777280556038 is 0.00008417777532648753 within an error of 0.0000033.PASS
0.00008519184484612197 is 0.00008519184320159076 within an error of 0.0000033.PASS
0.00008623064786661416 is 0.00008623064142330383 within an error of 0.0000033.PASS
0.00008729508408578113 is 0.00008729508581731386 within an error of 0.0000033.PASS
0.00008838613575790077 is 0.00008838613799486857 within an error of 0.0000033.PASS
0.00008950480696512386 is 0.00008950480825022975 within an error of 0.0000033.PASS
0.00009065215999726206 is 0.00009065215868097922 within an error of 0.0000033.PASS
0.00009182930807583034 is 0.00009182930655143387 within an error of 0.0000033.PASS
0.0000930374299059622 is 0.00009303742792155874 within an error of 0.0000033.PASS
0.00009427775512449443 is 0.00009427776156615415 within an error of 0.0000033.PASS
0.00009555161523167044 is 0.00009555161321177196 within an error of 0.0000033.PASS
0.00009686036355560645 is 0.00009686036012182393 within an error of 0.0000033.PASS
0.00009820545528782532 is 0.00009820545606372913 within an error of 0.0000033.PASS
0.00009958843293134123 is 0.00009958843669576138 within an error of 0.0000033.PASS
0.00010101093357661739 is 0.00010101092541556044 within an error of 0.0000033.PASS
0.00010247463796986267 is 0.00010247463971713554 within an error of 0.0000033.PASS
0.00010398139420431107 is 0.00010398139810869895 within an error of 0.0000033.PASS
0.00010553312313277274 is 0.0001055331276499139 within an error of 0.0000033.PASS
0.00010713187657529488 is 0.0001071318721742437 within an error of 0.0000033.PASS
0.00010877980093937367 is 0.00010877980127016969 within an error of 0.0000033.PASS
0.00011047922453144565 is 0.0001104792201042672 within an error of 0.0000033.PASS
0.00011223257752135396 is 0.00011223258017966366 within an error of 0.0000033.PASS
0.00011404248652979732 is 0.00011404249113547034 within an error of 0.0000033.PASS
0.00011591173097258434 is 0.0001159117337066233 within an error of 0.0000033.PASS
0.00011784327944042161 is 0.00011784327397949263 within an error of 0.0000033.PASS
0.00011984026787104085 is 0.00011984027909696912 within an error of 0.0000033.PASS
0.00012190613779239357 is 0.00012190613458793458 within an error of 0.0000033.PASS
0.0001240444544237107 is 0.00012404446352056735 within an error of 0.0000033.PASS
0.0001262591395061463 is 0.00012625914770742077 within an error of 0.0000033.PASS
0.0001285543548874557 is 0.0001285543512233631 within an error of 0.0000033.PASS
0.00013093453890178353 is 0.00013093454653613723 within an error of 0.0000033.PASS
0.00013340453733690083 is 0.00013340454359453928 within an error of 0.0000033.PASS
0.00013596951612271369 is 0.00013596952227228016 within an error of 0.0000033.PASS
0.00013863506319466978 is 0.0001386350686280235 within an error of 0.0000033.PASS
0.0001414072175975889 is 0.00014140721551575796 within an error of 0.0000033.PASS
0.0001442924840375781 is 0.0001442924881668536 within an error of 0.0000033.PASS
0.00014729794929735363 is 0.00014729795546868834 within an error of 0.0000033.PASS
0.0001504312822362408 is 0.00015043128778808934 within an error of 0.0000033.PASS
0.0001537008211016655 is 0.00015370082233532315 within an error of 0.0000033.PASS
0.00015711563173681498 is 0.00015711563724134773 within an error of 0.0000033.PASS
0.00016068562399595976 is 0.00016068563573421284 within an error of 0.0000033.PASS
0.00016442163905594498 is 0.00016442164205827313 within an error of 0.0000033.PASS
0.0001683355076238513 is 0.00016833551109288422 within an error of 0.0000033.PASS
0.0001724402536638081 is 0.00017244025400894687 within an error of 0.0000033.PASS
0.00017675016715656966 is 0.0001767501827692215 within an error of 0.0000033.PASS
0.0001812810660339892 is 0.00018128107685376073 within an error of 0.0000033.PASS
0.00018605036893859506 is 0.00018605037630348406 within an error of 0.0000033.PASS
0.00019107740081381053 is 0.00019107740605965677 within an error of 0.0000033.PASS
0.0001963836548384279 is 0.00019638363768289738 within an error of 0.0000033.PASS
0.00020199301070533693 is 0.00020199299592548462 within an error of 0.0000033.PASS
0.00020793221483472735 is 0.00020793221938875033 within an error of 0.0000033.PASS
0.0002142313023796305 is 0.00021423128673467743 within an error of 0.0000033.PASS
0.0002209239173680544 is 0.00022092392278720384 within an error of 0.0000033.PASS
0.00022804820036981255 is 0.00022804820255702685 within an error of 0.0000033.PASS
0.00023564728326164186 is 0.00023564727603110863 within an error of 0.0000033.PASS
0.0002437702496536076 is 0.0002437702428669352 within an error of 0.0000033.PASS
0.0002524732262827456 is 0.0002524732144543359 within an error of 0.0000033.PASS
0.00026182059082202613 is 0.0002618206119036511 within an error of 0.0000033.PASS
0.0002718867617659271 is 0.00027188676345445823 within an error of 0.0000033.PASS
0.0002827578573487699 is 0.0002827578851090863 within an error of 0.0000033.PASS
0.00029453454772010446 is 0.00029453455621825906 within an error of 0.0000033.PASS
0.0003073348489124328 is 0.00030733484059099675 within an error of 0.0000033.PASS
0.00032129825558513403 is 0.000321298258429533 within an error of 0.0000033.PASS
0.0003365908924024552 is 0.00033659089256258244 within an error of 0.0000033.PASS
0.0003534120332915336 is 0.0003534120257829606 within an error of 0.0000033.PASS
0.0003720028616953641 is 0.00037200287308386824 within an error of 0.0000033.PASS
0.00039265822852030396 is 0.0003926582230242598 within an error of 0.0000033.PASS
0.0004157421935815364 is 0.00041574218539568777 within an error of 0.0000033.PASS
0.00044170982437208295 is 0.00044170984057529024 within an error of 0.0000033.PASS
0.00047113755135796964 is 0.00047113754285008335 within an error of 0.0000033.PASS
0.0005047661834396422 is 0.0005047662016094025 within an error of 0.0000033.PASS
0.0005435644998215139 is 0.0005435645231164894 within an error of 0.0000033.PASS
0.0005888238083571196 is 0.0005888238468344444 within an error of 0.0000033.PASS
0.000642304599750787 is 0.0006423046636689839 within an error of 0.0000033.PASS
0.0007064709207043052 is 0.0007064709573249552 within an error of 0.0000033.PASS
0.0007848805980756879 is 0.0007848805998230096 within an error of 0.0000033.PASS
0.0008828681893646717 is 0.0008828681780783943 within an error of 0.0000033.PASS
0.0010088123381137848 is 0.0010088122653996085 within an error of 0.0000033.PASS
0.0011766677489504218 is 0.0011766678556703624 within an error of 0.0000033.PASS
0.001411531469784677 is 0.0014115316522338509 within an error of 0.0000033.PASS
0.001763534382916987 is 0.0017635344702377983 within an error of 0.0000033.PASS
0.0023494260385632515 is 0.0023494261261472827 within an error of 0.0000033.PASS
0.003518294310197234 is 0.003518294264038947 within an error of 0.0000033.PASS
0.007001750636845827 is 0.007001750482092757 within an error of 0.0000033.PASS
0.7071067690849304 is 0.7071067811865476 within an error of 0.0000033.PASS
Max error in distance gains is less than or equal to 0.0000033.PASS
Number of impulses is equal to 100.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 102 assertions)PASS
> [test] Exponential distance model for PannerNodePASS
/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block.html (1/1, 100.00%, 0.02% of total)OK
Test setValueAtTime with start time not on a block boundaryPASS
/webaudio/the-audio-api/the-delaynode-interface/delaynode.html (10/10, 100.00%, 0.17% of total)OK
Delaying test signal by 0.5 sec was done correctlyPASS
delay.delayTime.defaultValue is equal to 0.PASS
delay.delayTime.value = 0.5 is equal to 0.5.PASS
delay.delayTime.value is equal to 0.PASS
delay.numberOfInputs is equal to 1.PASS
delay.numberOfOutputs is equal to 1.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 6 assertions)PASS
> [test] Tests attribute and basic functionality of DelayNodePASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/note-grain-on-timing.html (109/109, 100.00%, 1.90% of total)OK
Found all grain starts and ends is true.PASS
Number of end frames is equal to 100.PASS
Number of grains that ended at the correct time is equal to 100.PASS
Number of grains that started at the correct time is equal to 100.PASS
Number of start frames is equal to 100.PASS
Pulse 0 boundary is identical to the array [0,441].PASS
Pulse 1 boundary is identical to the array [662,1103].PASS
Pulse 10 boundary is identical to the array [6615,7056].PASS
Pulse 11 boundary is identical to the array [7276,7717].PASS
Pulse 12 boundary is identical to the array [7938,8379].PASS
Pulse 13 boundary is identical to the array [8600,9041].PASS
Pulse 14 boundary is identical to the array [9261,9702].PASS
Pulse 15 boundary is identical to the array [9922,10363].PASS
Pulse 16 boundary is identical to the array [10584,11025].PASS
Pulse 17 boundary is identical to the array [11246,11687].PASS
Pulse 18 boundary is identical to the array [11907,12348].PASS
Pulse 19 boundary is identical to the array [12568,13009].PASS
Pulse 2 boundary is identical to the array [1323,1764].PASS
Pulse 20 boundary is identical to the array [13230,13671].PASS
Pulse 21 boundary is identical to the array [13892,14333].PASS
Pulse 22 boundary is identical to the array [14553,14994].PASS
Pulse 23 boundary is identical to the array [15214,15655].PASS
Pulse 24 boundary is identical to the array [15876,16317].PASS
Pulse 25 boundary is identical to the array [16538,16979].PASS
Pulse 26 boundary is identical to the array [17199,17640].PASS
Pulse 27 boundary is identical to the array [17861,18302].PASS
Pulse 28 boundary is identical to the array [18522,18963].PASS
Pulse 29 boundary is identical to the array [19184,19625].PASS
Pulse 3 boundary is identical to the array [1985,2426].PASS
Pulse 30 boundary is identical to the array [19845,20286].PASS
Pulse 31 boundary is identical to the array [20507,20948].PASS
Pulse 32 boundary is identical to the array [21168,21609].PASS
Pulse 33 boundary is identical to the array [21830,22271].PASS
Pulse 34 boundary is identical to the array [22491,22932].PASS
Pulse 35 boundary is identical to the array [23153,23594].PASS
Pulse 36 boundary is identical to the array [23814,24255].PASS
Pulse 37 boundary is identical to the array [24475,24916].PASS
Pulse 38 boundary is identical to the array [25137,25578].PASS
Pulse 39 boundary is identical to the array [25799,26240].PASS
Pulse 4 boundary is identical to the array [2646,3087].PASS
Pulse 40 boundary is identical to the array [26460,26901].PASS
Pulse 41 boundary is identical to the array [27122,27563].PASS
Pulse 42 boundary is identical to the array [27783,28224].PASS
Pulse 43 boundary is identical to the array [28445,28886].PASS
Pulse 44 boundary is identical to the array [29106,29547].PASS
Pulse 45 boundary is identical to the array [29767,30208].PASS
Pulse 46 boundary is identical to the array [30429,30870].PASS
Pulse 47 boundary is identical to the array [31091,31532].PASS
Pulse 48 boundary is identical to the array [31752,32193].PASS
Pulse 49 boundary is identical to the array [32414,32855].PASS
Pulse 5 boundary is identical to the array [3308,3749].PASS
Pulse 50 boundary is identical to the array [33075,33516].PASS
Pulse 51 boundary is identical to the array [33737,34178].PASS
Pulse 52 boundary is identical to the array [34398,34839].PASS
Pulse 53 boundary is identical to the array [35060,35501].PASS
Pulse 54 boundary is identical to the array [35721,36162].PASS
Pulse 55 boundary is identical to the array [36383,36824].PASS
Pulse 56 boundary is identical to the array [37044,37485].PASS
Pulse 57 boundary is identical to the array [37706,38147].PASS
Pulse 58 boundary is identical to the array [38367,38808].PASS
Pulse 59 boundary is identical to the array [39029,39470].PASS
Pulse 6 boundary is identical to the array [3969,4410].PASS
Pulse 60 boundary is identical to the array [39690,40131].PASS
Pulse 61 boundary is identical to the array [40352,40793].PASS
Pulse 62 boundary is identical to the array [41013,41454].PASS
Pulse 63 boundary is identical to the array [41675,42116].PASS
Pulse 64 boundary is identical to the array [42336,42777].PASS
Pulse 65 boundary is identical to the array [42998,43439].PASS
Pulse 66 boundary is identical to the array [43659,44100].PASS
Pulse 67 boundary is identical to the array [44320,44761].PASS
Pulse 68 boundary is identical to the array [44982,45423].PASS
Pulse 69 boundary is identical to the array [45644,46085].PASS
Pulse 7 boundary is identical to the array [4631,5072].PASS
Pulse 70 boundary is identical to the array [46305,46746].PASS
Pulse 71 boundary is identical to the array [46967,47408].PASS
Pulse 72 boundary is identical to the array [47628,48069].PASS
Pulse 73 boundary is identical to the array [48290,48731].PASS
Pulse 74 boundary is identical to the array [48951,49392].PASS
Pulse 75 boundary is identical to the array [49613,50053].PASS
Pulse 76 boundary is identical to the array [50274,50715].PASS
Pulse 77 boundary is identical to the array [50936,51377].PASS
Pulse 78 boundary is identical to the array [51597,52038].PASS
Pulse 79 boundary is identical to the array [52259,52700].PASS
Pulse 8 boundary is identical to the array [5292,5733].PASS
Pulse 80 boundary is identical to the array [52920,53361].PASS
Pulse 81 boundary is identical to the array [53581,54022].PASS
Pulse 82 boundary is identical to the array [54243,54684].PASS
Pulse 83 boundary is identical to the array [54904,55345].PASS
Pulse 84 boundary is identical to the array [55566,56007].PASS
Pulse 85 boundary is identical to the array [56227,56668].PASS
Pulse 86 boundary is identical to the array [56889,57330].PASS
Pulse 87 boundary is identical to the array [57551,57992].PASS
Pulse 88 boundary is identical to the array [58212,58653].PASS
Pulse 89 boundary is identical to the array [58874,59315].PASS
Pulse 9 boundary is identical to the array [5954,6395].PASS
Pulse 90 boundary is identical to the array [59535,59976].PASS
Pulse 91 boundary is identical to the array [60197,60638].PASS
Pulse 92 boundary is identical to the array [60858,61299].PASS
Pulse 93 boundary is identical to the array [61520,61961].PASS
Pulse 94 boundary is identical to the array [62181,62622].PASS
Pulse 95 boundary is identical to the array [62843,63284].PASS
Pulse 96 boundary is identical to the array [63504,63945].PASS
Pulse 97 boundary is identical to the array [64165,64606].PASS
Pulse 98 boundary is identical to the array [64827,65268].PASS
Pulse 99 boundary is identical to the array [65488,65929].PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Test timing of noteGrainOn] All assertions passed. (total 105 assertions)PASS
> [Test timing of noteGrainOn] PASS
/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html (6/6, 100.00%, 0.10% of total)OK
Modifying curve array at time 0.016 did not throw an exception.PASS
Output of WaveShaper with modified curve is identical to the array [0,-0.03608250617980957,-0.10744702816009521,-0.13089966773986816,-0.18840241432189941,-0.23401212692260742,-0.2859501838684082,-0.310654878616333,-0.3947490453720093,-0.4055798053741455,-0.46558678150177,-0.5297708511352539,-0.5409641265869141,-0.6157069206237793,-0.6582663059234619,-0.6987311840057373...].PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test copying] All assertions passed. (total 2 assertions)PASS
> [test copying] Modifying curve should not modify WaveShaperPASS
/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-output.html (24/24, 100.00%, 0.42% of total)OK
Automation: ConstantSourceNode after ramp contains only the constant 1.PASS
Automation: ConstantSourceNode.linearRamp(1, 0.5) equals [0.5,0.5001666666666666,0.5003333333333333,0.5005,0.5006666666666667,0.5008333333333334,0.501,0.5011666666666666,0.5013333333333333,0.5015,0.5016666666666667,0.5018333333333334,0.502,0.5021666666666667,0.5023333333333333,0.5025...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":7.161e-7}.PASS
Basic: ConstantSourceNode({offset: 0.5}) is identical to the array [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5...].PASS
Connected param: ConstantSourceNode frames [0, 10) contains only the constant 0.PASS
Connected param: ConstantSourceNode frames [10, 6000) equals [1.5446388721466064,1.5920131206512451,1.6374237537384033,1.6807208061218262,1.7217600345611572,1.7604057788848877,1.7965296506881714,1.8300120830535889,1.8607418537139893,1.8886170387268066,1.9135453701019287,1.9354437589645386,1.954240322113037,1.9698717594146729,1.9822871685028076,1.9914445877075195...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.PASS
ConstantSourceNode with stop before start must output silence contains only the constant 0.PASS
ConstantSourceNode with stop equal to start must output silence contains only the constant 0.PASS
start/stop: ConstantSourceNode frames [0, 10) contains only the constant 0.PASS
start/stop: ConstantSourceNode frames [10, 300) contains only the constant 1.PASS
start/stop: ConstantSourceNode frames [300, 6000) contains only the constant 0.PASS
# AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [basic automation] All assertions passed. (total 2 assertions)PASS
< [connected audioparam] All assertions passed. (total 2 assertions)PASS
< [constant source] All assertions passed. (total 1 assertions)PASS
< [start/stop] All assertions passed. (total 3 assertions)PASS
< [stop before start] All assertions passed. (total 1 assertions)PASS
< [stop equal to start] All assertions passed. (total 1 assertions)PASS
> [basic automation] PASS
> [connected audioparam] PASS
> [constant source] PASS
> [start/stop] PASS
> [stop before start] PASS
> [stop equal to start] PASS
/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html (10/10, 100.00%, 0.17% of total)OK
# AUDIT TASK RUNNER FINISHED: 1 out of 2 tasks were failed.FAIL
# AUDIT TASK RUNNER STARTED.PASS
< [setting-up-graph] All assertions passed. (total 0 assertions)PASS
< [start-playback-and-capture] 4 out of 4 assertions were failed.FAIL
> [setting-up-graph] PASS
> [start-playback-and-capture] PASS
X Recorded channel #0 should have contain at least one value different from 0.FAIL
X Recorded channel #1 should have contain at least one value different from 0.FAIL
X Recorded channel #2 should have contain at least one value different from 0.FAIL
X Recorded channel #3 should have contain at least one value different from 0.FAIL
/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html (6/6, 100.00%, 0.10% of total)OK
Rendered signal exactly matches the audio-rate gain changing signal is true.PASS
Rendered signal length is equal to 44100.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 2 assertions)PASS
> [test] PASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highshelf.html (7/7, 100.00%, 0.12% of total)OK
Max error in Highshelf filter response is less than or equal to 6.2577e-8.PASS
Number of filters tested is equal to 3.PASS
Number of non-finite values in the rendered output is equal to 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Biquad highshelf filterPASS
/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-basic.html (14/14, 100.00%, 0.24% of total)OK
context.createChannelMerger() did not throw an exception.PASS
context.createChannelMerger(0) threw IndexSizeError: "Failed to execute 'createChannelMerger' on 'BaseAudioContext': The number of inputs provided (0) is outside the range [1, 32].".PASS
context.createChannelMerger(32) did not throw an exception.PASS
context.createChannelMerger(33) threw IndexSizeError: "Failed to execute 'createChannelMerger' on 'BaseAudioContext': The number of inputs provided (33) is outside the range [1, 32].".PASS
merger.channelCount = 3 threw InvalidStateError: "Failed to set the 'channelCount' property on 'AudioNode': ChannelMerger: channelCount cannot be changed from 1".PASS
merger.channelCount is equal to 1.PASS
merger.channelCountMode = "max" threw InvalidStateError: "Failed to set the 'channelCountMode' property on 'AudioNode': ChannelMerger: channelCountMode cannot be changed from 'explicit'".PASS
merger.channelCountMode is equal to explicit.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [exceptions-channels] All assertions passed. (total 4 assertions)PASS
< [exceptions-properties] All assertions passed. (total 4 assertions)PASS
> [exceptions-channels] PASS
> [exceptions-properties] PASS
/webaudio/the-audio-api/the-waveshapernode-interface/silent-inputs.html (11/11, 100.00%, 0.19% of total)OK
WaveShaper with 2x oversample, silent inputs, and curve {"0":0.5,"1":0.5,"2":0.5} contains only the constant 0.5.PASS
WaveShaper with no inputs and curve {"0":0.5,"1":0.5,"2":0.5} contains only the constant 0.5.PASS
WaveShaper with silent inputs and curve {"0":0.5,"1":0.5,"2":0.5} contains only the constant 0.5.PASS
# AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test-0] All assertions passed. (total 1 assertions)PASS
< [test-1] All assertions passed. (total 1 assertions)PASS
< [test-2] All assertions passed. (total 1 assertions)PASS
> [test-0] curve output is non-zero for silent inputsPASS
> [test-1] 2x curve output is non-zero for silent inputsPASS
> [test-2] curve output is non-zero for no inputsPASS
/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html (27/27, 100.00%, 0.47% of total)OK
Max error mapping -0.100000 to 0.900000 is less than or equal to 0.000001.PASS
Max error mapping -0.200000 to 0.800000 is less than or equal to 0.000001.PASS
Max error mapping -0.300000 to 0.700000 is less than or equal to 0.000001.PASS
Max error mapping -0.400000 to 0.600000 is less than or equal to 0.000001.PASS
Max error mapping -0.500000 to 0.500000 is less than or equal to 0.000001.PASS
Max error mapping -0.600000 to 0.400000 is less than or equal to 0.000001.PASS
Max error mapping -0.700000 to 0.300000 is less than or equal to 0.000001.PASS
Max error mapping -0.800000 to 0.200000 is less than or equal to 0.000001.PASS
Max error mapping -0.900000 to 0.100000 is less than or equal to 0.000001.PASS
Max error mapping -1.000000 to 0.000000 is less than or equal to 0.000001.PASS
Max error mapping -1.100000 to 0.000000 is less than or equal to 0.000001.PASS
Max error mapping 0.000000 to 1.000000 is less than or equal to 0.000001.PASS
Max error mapping 0.100000 to 0.900000 is less than or equal to 0.000001.PASS
Max error mapping 0.200000 to 0.800000 is less than or equal to 0.000001.PASS
Max error mapping 0.300000 to 0.700000 is less than or equal to 0.000001.PASS
Max error mapping 0.400000 to 0.600000 is less than or equal to 0.000001.PASS
Max error mapping 0.500000 to 0.500000 is less than or equal to 0.000001.PASS
Max error mapping 0.600000 to 0.400000 is less than or equal to 0.000001.PASS
Max error mapping 0.700000 to 0.300000 is less than or equal to 0.000001.PASS
Max error mapping 0.800000 to 0.200000 is less than or equal to 0.000001.PASS
Max error mapping 0.900000 to 0.100000 is less than or equal to 0.000001.PASS
Max error mapping 1.000000 to 0.000000 is less than or equal to 0.000001.PASS
Max error mapping 1.100000 to 0.000000 is less than or equal to 0.000001.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 23 assertions)PASS
> [test] WaveShaperNode including values outside the range of [-1,1]PASS
/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect.html (32/32, 100.00%, 0.56% of total)OK
Channel #0 contains only the constant 0.PASS
Channel #0 contains only the constant 1.PASS
Channel #0 contains only the constant 2.PASS
Channel #0 contains only the constant 3.PASS
Channel #0 contains only the constant 4.PASS
Channel #1 contains only the constant 2.PASS
Channel #2 contains only the constant 0.PASS
Disabled outputs handled correctlyPASS
Disconnecting a connection twice did not throw an exception.PASS
gain1.disconnect(gain2) threw InvalidAccessError: "Failed to execute 'disconnect' on 'AudioNode': the given destination is not connected.".PASS
gain1.disconnect(gain3) threw InvalidAccessError: "Failed to execute 'disconnect' on 'AudioNode': the given destination is not connected.".PASS
splitter.disconnect(2) threw IndexSizeError: "Failed to execute 'disconnect' on 'AudioNode': The output index provided (2) is outside the range [0, 1].".PASS
splitter.disconnect(gain1, 0) threw InvalidAccessError: "Failed to execute 'disconnect' on 'AudioNode': output (0) is not connected to the given destination.".PASS
splitter.disconnect(gain2, 2) threw IndexSizeError: "Failed to execute 'disconnect' on 'AudioNode': The output index provided (2) is outside the range [0, 1].".PASS
splitter.disconnect(gain3, 0, 0) threw InvalidAccessError: "Failed to execute 'disconnect' on 'AudioNode': output (0) is not connected to the input (0) of the destination.".PASS
splitter.disconnect(merger, 3, 0) threw IndexSizeError: "Failed to execute 'disconnect' on 'AudioNode': The output index provided (3) is outside the range [0, 1].".PASS
# AUDIT TASK RUNNER FINISHED: 7 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [disabled-outputs] All assertions passed. (total 1 assertions)PASS
< [disconnect()] All assertions passed. (total 1 assertions)PASS
< [disconnect(AudioNode)] All assertions passed. (total 1 assertions)PASS
< [disconnect(AudioNode, output)] All assertions passed. (total 1 assertions)PASS
< [disconnect(AudioNode, output, input)] All assertions passed. (total 3 assertions)PASS
< [disconnect(output)] All assertions passed. (total 1 assertions)PASS
< [exceptions] All assertions passed. (total 8 assertions)PASS
> [disabled-outputs] PASS
> [disconnect()] PASS
> [disconnect(AudioNode)] PASS
> [disconnect(AudioNode, output)] PASS
> [disconnect(AudioNode, output, input)] PASS
> [disconnect(output)] PASS
> [exceptions] PASS
/webaudio/the-audio-api/the-iirfilternode-interface/test-iirfilternode.html (8/8, 100.00%, 0.14% of total)OK
IIRFilterNode coefficients are checked properlyPASS
IIRFilterNode getFrequencyResponse handles invalid frequencies properlyPASS
at least one feedforward coefficient must be non-zeroPASS
feedback coefficients can not be emptyPASS
feedforward coefficients can not be emptyPASS
more than 20 feedback coefficients can not be usedPASS
more than 20 feedforward coefficients can not be usedPASS
the first feedback coefficient must be non-zeroPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-size.https.html (12/12, 100.00%, 0.21% of total)OK
Creating offline context for testing did not throw an exception.PASS
Creating test worklet resolved correctly.PASS
Remaining renders: array size contains only the constant 1.PASS
Render quantum 0: array size contains only the constant 1.PASS
Render quantum 1: array size contains only the constant 1.PASS
Render quantum 2-3: array size contains only the constant 128.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Initializing AudioWorklet and Context] All assertions passed. (total 2 assertions)PASS
< [Verify Size of AudioParam Arrays] All assertions passed. (total 4 assertions)PASS
> [Initializing AudioWorklet and Context] PASS
> [Verify Size of AudioParam Arrays] PASS
/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html (5/5, 100.00%, 0.09% of total)OK
Delaying test signal by 1 sec was done correctlyPASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 1 assertions)PASS
> [test] DelayNode with delay set to default maximum delayPASS
/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-getChannelData.html (10/10, 100.00%, 0.17% of total)OK
buffer.getChannelData(0) === buffer.getChannelData(0) is equal to true.PASS
buffer.getChannelData(1) === buffer.getChannelData(1) is equal to true.PASS
buffer1.getChannelData(0) === buffer2.getChannelData(0) is equal to false.PASS
buffer1.getChannelData(1) === buffer2.getChannelData(1) is equal to false.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [buffer-eq] All assertions passed. (total 2 assertions)PASS
< [buffer-not-eq] All assertions passed. (total 2 assertions)PASS
> [buffer-eq] PASS
> [buffer-not-eq] PASS
/webaudio/the-audio-api/the-audioparam-interface/retrospective-setTargetAtTime.html (7/7, 100.00%, 0.12% of total)OK
Reference[0:127] contains only the constant 1.PASS
Test[0:127] contains only the constant 1.PASS
Test[128:] is identical to the array [1,0.9994508624076843,0.9989020228385925,0.9983535408973694,0.9978054165840149,0.9972575902938843,0.9967101216316223,0.996163010597229,0.9956161975860596,0.9950697422027588,0.9945235848426819,0.9939777851104736,0.9934322834014893,0.9928871393203735,0.9923423528671265,0.9917978644371033...].PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Test setTargetAtTime with start time in the pastPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-addmodule-resolution.https.html (8/8, 100.00%, 0.14% of total)OK
"dummyWorkletNode" is an instance of AudioWorkletNode from offline context is true.PASS
"dummyWorkletNode" is an instance of AudioWorkletNode from realtime context is true.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [module-loading-after-offline-context-creation] All assertions passed. (total 1 assertions)PASS
< [module-loading-after-realtime-context-creation] All assertions passed. (total 1 assertions)PASS
> [module-loading-after-offline-context-creation] PASS
> [module-loading-after-realtime-context-creation] PASS
/webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.html (52/52, 100.00%, 0.90% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new ConvolverNode() threw TypeError: "Failed to construct 'ConvolverNode': 1 argument required, but only 0 present.".PASS
new ConvolverNode(1) threw TypeError: "Failed to construct 'ConvolverNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new ConvolverNode(c, {channelCount: 2}} did not throw an exception.PASS
new ConvolverNode(c, {channelCount: 3}} threw NotSupportedError: "Failed to construct 'ConvolverNode': ConvolverNode: channelCount cannot be changed from 2".PASS
new ConvolverNode(c, {channelCountMode: "clamped-max"} did not throw an exception.PASS
new ConvolverNode(c, {channelCountMode: "explicit"}) threw NotSupportedError: "Failed to construct 'ConvolverNode': ConvolverNode: channelCountMode cannot be changed from 'clamped-max'".PASS
new ConvolverNode(c, {channelCountMode: "max"}) threw NotSupportedError: "Failed to construct 'ConvolverNode': ConvolverNode: channelCountMode cannot be changed from 'clamped-max'".PASS
new ConvolverNode(c, {channelInterpretation: "discrete"}) did not throw an exception.PASS
new ConvolverNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Failed to construct 'ConvolverNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new ConvolverNode(c, {channelInterpretation: "speakers"}) did not throw an exception.PASS
new ConvolverNode(context, 42) threw TypeError: "Failed to construct 'ConvolverNode': parameter 2 ('options') is not an object.".PASS
node = new ConvolverNode(c, {"buffer":{},"disableNormalization":false}) did not throw an exception.PASS
node.channelCount is equal to 2.PASS
node.channelCountMode is equal to clamped-max.PASS
node.channelInterpretation after invalid setter is equal to discrete.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node0 = new ConvolverNode(context) did not throw an exception.PASS
node0 instanceof ConvolverNode is equal to true.PASS
node0.buffer is equal to null.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to clamped-max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.normalize is equal to true.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 1.PASS
node1 = new ConvolverNode(c, {"buffer":null} did not throw an exception.PASS
node1 instanceOf ConvolverNode is equal to true.PASS
node1.buffer === <buf> is equal to true.PASS
node1.buffer is equal to null.PASS
node1.normalize is equal to true.PASS
node2 = new ConvolverNode(, {"buffer":null,"disableNormalization":true}) did not throw an exception.PASS
node2.buffer is equal to null.PASS
node2.normalize is equal to false.PASS
node3 = new ConvolverNode(context, {"buffer":null,"disableNormalization":false}) did not throw an exception.PASS
node3.buffer is equal to null.PASS
node3.normalize is equal to true.PASS
# AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [construct with options] All assertions passed. (total 10 assertions)PASS
< [default constructor] All assertions passed. (total 9 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [nullable buffer] All assertions passed. (total 2 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 13 assertions)PASS
> [construct with options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [nullable buffer] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-gainnode-interface/gain-basic.html (5/5, 100.00%, 0.09% of total)OK
gainNode.gain instanceof AudioParam is true.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 1 assertions)PASS
> [test] PASS
/webaudio/the-audio-api/the-oscillatornode-interface/ctor-oscillator.html (55/55, 100.00%, 0.96% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new OscillatorNode() threw TypeError: "Failed to construct 'OscillatorNode': 1 argument required, but only 0 present.".PASS
new OscillatorNode(, {"type":"custom","periodicWave":{}}) did not throw an exception.PASS
new OscillatorNode(1) threw TypeError: "Failed to construct 'OscillatorNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new OscillatorNode(c, {"type":"custom"}) threw InvalidStateError: "Failed to construct 'OscillatorNode': A PeriodicWave must be specified if the type is set to "custom"".PASS
new OscillatorNode(c, {"type":"sine","periodicWave":{}}) did not throw an exception.PASS
new OscillatorNode(c, {channelCount: 0}) threw NotSupportedError: "Failed to construct 'OscillatorNode': The channel count provided (0) is outside the range [1, 32].".PASS
new OscillatorNode(c, {channelCount: 17}} did not throw an exception.PASS
new OscillatorNode(c, {channelCount: 99}) threw NotSupportedError: "Failed to construct 'OscillatorNode': The channel count provided (99) is outside the range [1, 32].".PASS
new OscillatorNode(c, {channelCountMode: "clamped-max"}) did not throw an exception.PASS
new OscillatorNode(c, {channelCountMode: "explicit"}) did not throw an exception.PASS
new OscillatorNode(c, {channelCountMode: "foobar"} threw TypeError: "Failed to construct 'OscillatorNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
new OscillatorNode(c, {channelCountMode: "max"} did not throw an exception.PASS
new OscillatorNode(c, {channelCountMode: "max"}) did not throw an exception.PASS
new OscillatorNode(c, {channelInterpretation: "discrete"}) did not throw an exception.PASS
new OscillatorNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Failed to construct 'OscillatorNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new OscillatorNode(c, {channelInterpretation: "speakers"}) did not throw an exception.PASS
new OscillatorNode(context, 42) threw TypeError: "Failed to construct 'OscillatorNode': parameter 2 ('options') is not an object.".PASS
node.channelCount is equal to 17.PASS
node.channelCountMode after invalid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to clamped-max.PASS
node.channelCountMode after valid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to max.PASS
node.channelCountMode is equal to max.PASS
node.channelInterpretation after invalid setter is equal to discrete.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node0 = new OscillatorNode(context) did not throw an exception.PASS
node0 instanceof OscillatorNode is equal to true.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.frequency.value is equal to 440.PASS
node0.numberOfInputs is equal to 0.PASS
node0.numberOfOutputs is equal to 1.PASS
node0.type is equal to sine.PASS
node1 = new OscillatorNode(c, {"type":"sawtooth","detune":7,"frequency":918}) did not throw an exception.PASS
node1.channelCount is equal to 2.PASS
node1.channelCountMode is equal to max.PASS
node1.channelInterpretation is equal to speakers.PASS
node1.detune.value is equal to 7.PASS
node1.frequency.value is equal to 918.PASS
node1.type is equal to sawtooth.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor options] All assertions passed. (total 10 assertions)PASS
< [default constructor] All assertions passed. (total 9 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 20 assertions)PASS
> [constructor options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [test AudioNodeOptions] PASS
/webaudio/historical.html (7/7, 100.00%, 0.12% of total)OK
dopplerFactor member should not exist on the AudioListener.PASS
setVelocity member should not exist on the AudioListener.PASS
setVelocity should not exist on PannerNodes.PASS
speedOfSound member should not exist on the AudioListener.PASS
webkitAudioContext interface should not existPASS
webkitAudioPannerNode interface should not existPASS
webkitOfflineAudioContext interface should not existPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https.html (12/12, 100.00%, 0.21% of total)OK
First half of Channel #0 contains only the constant 0.PASS
First half of Channel #1 contains only the constant 0.PASS
First half of Channel #2 contains only the constant 0.PASS
Second half of Channel #0 contains only the constant 1.PASS
Second half of Channel #1 contains only the constant 2.PASS
Second half of Channel #2 contains only the constant 3.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [setup-buffer-and-worklet] All assertions passed. (total 0 assertions)PASS
< [verify-rendered-buffer] All assertions passed. (total 6 assertions)PASS
> [setup-buffer-and-worklet] PASS
> [verify-rendered-buffer] PASS
/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block.html (1/1, 100.00%, 0.02% of total)OK
Test setTargetAtTime after an event in the same processing blockPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-basic.html (16/16, 100.00%, 0.28% of total)OK
Calling start() twice threw InvalidStateError: "Failed to execute 'start' on 'AudioBufferSourceNode': cannot call start more than once.".PASS
Calling stop() before start() threw InvalidStateError: "Failed to execute 'stop' on 'AudioScheduledSourceNode': cannot call stop without calling start first.".PASS
start(-1) threw RangeError: "Failed to execute 'start' on 'AudioBufferSourceNode': The start time provided (-1) is less than the minimum bound (0).".PASS
start(-Infinity) threw TypeError: "Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite.".PASS
start(0,-1) threw RangeError: "Failed to execute 'start' on 'AudioBufferSourceNode': The offset provided (-1) is less than the minimum bound (0).".PASS
start(0,0,-1) threw RangeError: "Failed to execute 'start' on 'AudioBufferSourceNode': The duration provided (-1) is less than the minimum bound (0).".PASS
start(Infinity) threw TypeError: "Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite.".PASS
start(NaN) threw TypeError: "Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite.".PASS
stop(-1) threw RangeError: "Failed to execute 'stop' on 'AudioScheduledSourceNode': The stop time provided (-1) is less than the minimum bound (0).".PASS
stop(-Infinity) threw TypeError: "Failed to execute 'stop' on 'AudioScheduledSourceNode': The provided double value is non-finite.".PASS
stop(Infinity) threw TypeError: "Failed to execute 'stop' on 'AudioScheduledSourceNode': The provided double value is non-finite.".PASS
stop(NaN) threw TypeError: "Failed to execute 'stop' on 'AudioScheduledSourceNode': The provided double value is non-finite.".PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [start/stop exceptions] All assertions passed. (total 12 assertions)PASS
> [start/stop exceptions] PASS
/webaudio/the-audio-api/the-audionode-interface/audionode-channel-rules.html (176/176, 100.00%, 3.06% of total)OK
Rendered number of channels is equal to 8.PASS
Rendered number of frames is equal to 1360.PASS
connections: 1, clamped-max(4), discrete is true.PASS
connections: 1, clamped-max(4), speakers is true.PASS
connections: 1, explicit(1), speakers is true.PASS
connections: 1, explicit(2), speakers is true.PASS
connections: 1, explicit(4), discrete is true.PASS
connections: 1, explicit(4), speakers is true.PASS
connections: 1, explicit(6), speakers is true.PASS
connections: 1, explicit(8), discrete is true.PASS
connections: 1, max, discrete is true.PASS
connections: 1, max, speakers is true.PASS
connections: 11, clamped-max(4), discrete is true.PASS
connections: 11, clamped-max(4), speakers is true.PASS
connections: 11, explicit(1), speakers is true.PASS
connections: 11, explicit(2), speakers is true.PASS
connections: 11, explicit(4), discrete is true.PASS
connections: 11, explicit(4), speakers is true.PASS
connections: 11, explicit(6), speakers is true.PASS
connections: 11, explicit(8), discrete is true.PASS
connections: 11, max, discrete is true.PASS
connections: 11, max, speakers is true.PASS
connections: 111, clamped-max(4), discrete is true.PASS
connections: 111, clamped-max(4), speakers is true.PASS
connections: 111, explicit(1), speakers is true.PASS
connections: 111, explicit(2), speakers is true.PASS
connections: 111, explicit(4), discrete is true.PASS
connections: 111, explicit(4), speakers is true.PASS
connections: 111, explicit(6), speakers is true.PASS
connections: 111, explicit(8), discrete is true.PASS
connections: 111, max, discrete is true.PASS
connections: 111, max, speakers is true.PASS
connections: 12, clamped-max(4), discrete is true.PASS
connections: 12, clamped-max(4), speakers is true.PASS
connections: 12, explicit(1), speakers is true.PASS
connections: 12, explicit(2), speakers is true.PASS
connections: 12, explicit(4), discrete is true.PASS
connections: 12, explicit(4), speakers is true.PASS
connections: 12, explicit(6), speakers is true.PASS
connections: 12, explicit(8), discrete is true.PASS
connections: 12, max, discrete is true.PASS
connections: 12, max, speakers is true.PASS
connections: 122, clamped-max(4), discrete is true.PASS
connections: 122, clamped-max(4), speakers is true.PASS
connections: 122, explicit(1), speakers is true.PASS
connections: 122, explicit(2), speakers is true.PASS
connections: 122, explicit(4), discrete is true.PASS
connections: 122, explicit(4), speakers is true.PASS
connections: 122, explicit(6), speakers is true.PASS
connections: 122, explicit(8), discrete is true.PASS
connections: 122, max, discrete is true.PASS
connections: 122, max, speakers is true.PASS
connections: 123, clamped-max(4), discrete is true.PASS
connections: 123, clamped-max(4), speakers is true.PASS
connections: 123, explicit(1), speakers is true.PASS
connections: 123, explicit(2), speakers is true.PASS
connections: 123, explicit(4), discrete is true.PASS
connections: 123, explicit(4), speakers is true.PASS
connections: 123, explicit(6), speakers is true.PASS
connections: 123, explicit(8), discrete is true.PASS
connections: 123, max, discrete is true.PASS
connections: 123, max, speakers is true.PASS
connections: 124, clamped-max(4), discrete is true.PASS
connections: 124, clamped-max(4), speakers is true.PASS
connections: 124, explicit(1), speakers is true.PASS
connections: 124, explicit(2), speakers is true.PASS
connections: 124, explicit(4), discrete is true.PASS
connections: 124, explicit(4), speakers is true.PASS
connections: 124, explicit(6), speakers is true.PASS
connections: 124, explicit(8), discrete is true.PASS
connections: 124, max, discrete is true.PASS
connections: 124, max, speakers is true.PASS
connections: 128, clamped-max(4), discrete is true.PASS
connections: 128, clamped-max(4), speakers is true.PASS
connections: 128, explicit(1), speakers is true.PASS
connections: 128, explicit(2), speakers is true.PASS
connections: 128, explicit(4), discrete is true.PASS
connections: 128, explicit(4), speakers is true.PASS
connections: 128, explicit(6), speakers is true.PASS
connections: 128, explicit(8), discrete is true.PASS
connections: 128, max, discrete is true.PASS
connections: 128, max, speakers is true.PASS
connections: 14, clamped-max(4), discrete is true.PASS
connections: 14, clamped-max(4), speakers is true.PASS
connections: 14, explicit(1), speakers is true.PASS
connections: 14, explicit(2), speakers is true.PASS
connections: 14, explicit(4), discrete is true.PASS
connections: 14, explicit(4), speakers is true.PASS
connections: 14, explicit(6), speakers is true.PASS
connections: 14, explicit(8), discrete is true.PASS
connections: 14, max, discrete is true.PASS
connections: 14, max, speakers is true.PASS
connections: 18, clamped-max(4), discrete is true.PASS
connections: 18, clamped-max(4), speakers is true.PASS
connections: 18, explicit(1), speakers is true.PASS
connections: 18, explicit(2), speakers is true.PASS
connections: 18, explicit(4), discrete is true.PASS
connections: 18, explicit(4), speakers is true.PASS
connections: 18, explicit(6), speakers is true.PASS
connections: 18, explicit(8), discrete is true.PASS
connections: 18, max, discrete is true.PASS
connections: 18, max, speakers is true.PASS
connections: 2, clamped-max(4), discrete is true.PASS
connections: 2, clamped-max(4), speakers is true.PASS
connections: 2, explicit(1), speakers is true.PASS
connections: 2, explicit(2), speakers is true.PASS
connections: 2, explicit(4), discrete is true.PASS
connections: 2, explicit(4), speakers is true.PASS
connections: 2, explicit(6), speakers is true.PASS
connections: 2, explicit(8), discrete is true.PASS
connections: 2, max, discrete is true.PASS
connections: 2, max, speakers is true.PASS
connections: 3, clamped-max(4), discrete is true.PASS
connections: 3, clamped-max(4), speakers is true.PASS
connections: 3, explicit(1), speakers is true.PASS
connections: 3, explicit(2), speakers is true.PASS
connections: 3, explicit(4), discrete is true.PASS
connections: 3, explicit(4), speakers is true.PASS
connections: 3, explicit(6), speakers is true.PASS
connections: 3, explicit(8), discrete is true.PASS
connections: 3, max, discrete is true.PASS
connections: 3, max, speakers is true.PASS
connections: 4, clamped-max(4), discrete is true.PASS
connections: 4, clamped-max(4), speakers is true.PASS
connections: 4, explicit(1), speakers is true.PASS
connections: 4, explicit(2), speakers is true.PASS
connections: 4, explicit(4), discrete is true.PASS
connections: 4, explicit(4), speakers is true.PASS
connections: 4, explicit(6), speakers is true.PASS
connections: 4, explicit(8), discrete is true.PASS
connections: 4, max, discrete is true.PASS
connections: 4, max, speakers is true.PASS
connections: 5, clamped-max(4), discrete is true.PASS
connections: 5, clamped-max(4), speakers is true.PASS
connections: 5, explicit(1), speakers is true.PASS
connections: 5, explicit(2), speakers is true.PASS
connections: 5, explicit(4), discrete is true.PASS
connections: 5, explicit(4), speakers is true.PASS
connections: 5, explicit(6), speakers is true.PASS
connections: 5, explicit(8), discrete is true.PASS
connections: 5, max, discrete is true.PASS
connections: 5, max, speakers is true.PASS
connections: 6, clamped-max(4), discrete is true.PASS
connections: 6, clamped-max(4), speakers is true.PASS
connections: 6, explicit(1), speakers is true.PASS
connections: 6, explicit(2), speakers is true.PASS
connections: 6, explicit(4), discrete is true.PASS
connections: 6, explicit(4), speakers is true.PASS
connections: 6, explicit(6), speakers is true.PASS
connections: 6, explicit(8), discrete is true.PASS
connections: 6, max, discrete is true.PASS
connections: 6, max, speakers is true.PASS
connections: 7, clamped-max(4), discrete is true.PASS
connections: 7, clamped-max(4), speakers is true.PASS
connections: 7, explicit(1), speakers is true.PASS
connections: 7, explicit(2), speakers is true.PASS
connections: 7, explicit(4), discrete is true.PASS
connections: 7, explicit(4), speakers is true.PASS
connections: 7, explicit(6), speakers is true.PASS
connections: 7, explicit(8), discrete is true.PASS
connections: 7, max, discrete is true.PASS
connections: 7, max, speakers is true.PASS
connections: 8, clamped-max(4), discrete is true.PASS
connections: 8, clamped-max(4), speakers is true.PASS
connections: 8, explicit(1), speakers is true.PASS
connections: 8, explicit(2), speakers is true.PASS
connections: 8, explicit(4), discrete is true.PASS
connections: 8, explicit(4), speakers is true.PASS
connections: 8, explicit(6), speakers is true.PASS
connections: 8, explicit(8), discrete is true.PASS
connections: 8, max, discrete is true.PASS
connections: 8, max, speakers is true.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 172 assertions)PASS
> [test] Channel mixing rules for AudioNodesPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-bandpass.html (7/7, 100.00%, 0.12% of total)OK
Max error in Bandpass filter response is less than or equal to 2.2501e-8.PASS
Number of filters tested is equal to 4.PASS
Number of non-finite values in the rendered output is equal to 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Biquad bandpass filter.PASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-linearRampToValueAtTime.html (106/106, 100.00%, 1.84% of total)OK
Max error for test 0 at offset 1277 is less than or equal to 0.000001865.PASS
Max error for test 1 at offset 1532 is less than or equal to 0.000001865.PASS
Max error for test 10 at offset 13439 is less than or equal to 0.000001865.PASS
Max error for test 11 at offset 15102 is less than or equal to 0.000001865.PASS
Max error for test 12 at offset 16255 is less than or equal to 0.000001865.PASS
Max error for test 13 at offset 17918 is less than or equal to 0.000001865.PASS
Max error for test 14 at offset 19071 is less than or equal to 0.000001865.PASS
Max error for test 15 at offset 20734 is less than or equal to 0.000001865.PASS
Max error for test 16 at offset 22398 is less than or equal to 0.000001865.PASS
Max error for test 17 at offset 23550 is less than or equal to 0.000001865.PASS
Max error for test 18 at offset 24060 is less than or equal to 0.000001865.PASS
Max error for test 19 at offset 26366 is less than or equal to 0.000001865.PASS
Max error for test 2 at offset 3838 is less than or equal to 0.000001865.PASS
Max error for test 20 at offset 26876 is less than or equal to 0.000001865.PASS
Max error for test 21 at offset 28029 is less than or equal to 0.000001865.PASS
Max error for test 22 at offset 30333 is less than or equal to 0.000001865.PASS
Max error for test 23 at offset 30845 is less than or equal to 0.000001865.PASS
Max error for test 24 at offset 31998 is less than or equal to 0.000001865.PASS
Max error for test 25 at offset 33661 is less than or equal to 0.000001865.PASS
Max error for test 26 at offset 34814 is less than or equal to 0.000001865.PASS
Max error for test 27 at offset 35967 is less than or equal to 0.000001865.PASS
Max error for test 28 at offset 37630 is less than or equal to 0.000001865.PASS
Max error for test 29 at offset 38783 is less than or equal to 0.000001865.PASS
Max error for test 3 at offset 5246 is less than or equal to 0.000001865.PASS
Max error for test 30 at offset 40446 is less than or equal to 0.000001865.PASS
Max error for test 31 at offset 41599 is less than or equal to 0.000001865.PASS
Max error for test 32 at offset 43262 is less than or equal to 0.000001865.PASS
Max error for test 33 at offset 44415 is less than or equal to 0.000001865.PASS
Max error for test 34 at offset 46078 is less than or equal to 0.000001865.PASS
Max error for test 35 at offset 47231 is less than or equal to 0.000001865.PASS
Max error for test 36 at offset 48894 is less than or equal to 0.000001865.PASS
Max error for test 37 at offset 50047 is less than or equal to 0.000001865.PASS
Max error for test 38 at offset 50557 is less than or equal to 0.000001865.PASS
Max error for test 39 at offset 52863 is less than or equal to 0.000001865.PASS
Max error for test 4 at offset 5501 is less than or equal to 0.000001865.PASS
Max error for test 40 at offset 53373 is less than or equal to 0.000001865.PASS
Max error for test 41 at offset 55164 is less than or equal to 0.000001865.PASS
Max error for test 42 at offset 56189 is less than or equal to 0.000001865.PASS
Max error for test 43 at offset 57852 is less than or equal to 0.000001865.PASS
Max error for test 44 at offset 58495 is less than or equal to 0.000001865.PASS
Max error for test 45 at offset 60796 is less than or equal to 0.000001865.PASS
Max error for test 46 at offset 61311 is less than or equal to 0.000001865.PASS
Max error for test 47 at offset 63484 is less than or equal to 0.000001865.PASS
Max error for test 48 at offset 64255 is less than or equal to 0.000001865.PASS
Max error for test 49 at offset 65918 is less than or equal to 0.000001865.PASS
Max error for test 5 at offset 7164 is less than or equal to 0.000001865.PASS
Max error for test 50 at offset 66428 is less than or equal to 0.000001865.PASS
Max error for test 51 at offset 68604 is less than or equal to 0.000001865.PASS
Max error for test 52 at offset 68988 is less than or equal to 0.000001865.PASS
Max error for test 53 at offset 71420 is less than or equal to 0.000001865.PASS
Max error for test 54 at offset 72573 is less than or equal to 0.000001865.PASS
Max error for test 55 at offset 73981 is less than or equal to 0.000001865.PASS
Max error for test 56 at offset 75389 is less than or equal to 0.000001865.PASS
Max error for test 57 at offset 76542 is less than or equal to 0.000001865.PASS
Max error for test 58 at offset 76925 is less than or equal to 0.000001865.PASS
Max error for test 59 at offset 79358 is less than or equal to 0.000001865.PASS
Max error for test 6 at offset 8317 is less than or equal to 0.000001865.PASS
Max error for test 60 at offset 80511 is less than or equal to 0.000001865.PASS
Max error for test 61 at offset 81919 is less than or equal to 0.000001865.PASS
Max error for test 62 at offset 83327 is less than or equal to 0.000001865.PASS
Max error for test 63 at offset 84092 is less than or equal to 0.000001865.PASS
Max error for test 64 at offset 85245 is less than or equal to 0.000001865.PASS
Max error for test 65 at offset 86653 is less than or equal to 0.000001865.PASS
Max error for test 66 at offset 87806 is less than or equal to 0.000001865.PASS
Max error for test 67 at offset 88828 is less than or equal to 0.000001865.PASS
Max error for test 68 at offset 90367 is less than or equal to 0.000001865.PASS
Max error for test 69 at offset 92413 is less than or equal to 0.000001865.PASS
Max error for test 7 at offset 9470 is less than or equal to 0.000001865.PASS
Max error for test 70 at offset 93183 is less than or equal to 0.000001865.PASS
Max error for test 71 at offset 95229 is less than or equal to 0.000001865.PASS
Max error for test 72 at offset 95484 is less than or equal to 0.000001865.PASS
Max error for test 73 at offset 96765 is less than or equal to 0.000001865.PASS
Max error for test 74 at offset 98300 is less than or equal to 0.000001865.PASS
Max error for test 75 at offset 100477 is less than or equal to 0.000001865.PASS
Max error for test 76 at offset 100732 is less than or equal to 0.000001865.PASS
Max error for test 77 at offset 102015 is less than or equal to 0.000001865.PASS
Max error for test 78 at offset 103933 is less than or equal to 0.000001865.PASS
Max error for test 79 at offset 105724 is less than or equal to 0.000001865.PASS
Max error for test 8 at offset 11133 is less than or equal to 0.000001865.PASS
Max error for test 80 at offset 106239 is less than or equal to 0.000001865.PASS
Max error for test 81 at offset 108415 is less than or equal to 0.000001865.PASS
Max error for test 82 at offset 109055 is less than or equal to 0.000001865.PASS
Max error for test 83 at offset 111101 is less than or equal to 0.000001865.PASS
Max error for test 84 at offset 111356 is less than or equal to 0.000001865.PASS
Max error for test 85 at offset 112764 is less than or equal to 0.000001865.PASS
Max error for test 86 at offset 114047 is less than or equal to 0.000001865.PASS
Max error for test 87 at offset 116220 is less than or equal to 0.000001865.PASS
Max error for test 88 at offset 116426 is less than or equal to 0.000001865.PASS
Max error for test 89 at offset 119039 is less than or equal to 0.000001865.PASS
Max error for test 9 at offset 13181 is less than or equal to 0.000001865.PASS
Max error for test 90 at offset 120322 is less than or equal to 0.000001865.PASS
Max error for test 91 at offset 120395 is less than or equal to 0.000001865.PASS
Max error for test 92 at offset 123004 is less than or equal to 0.000001865.PASS
Max error for test 93 at offset 124287 is less than or equal to 0.000001865.PASS
Max error for test 94 at offset 125570 is less than or equal to 0.000001865.PASS
Max error for test 95 at offset 126593 is less than or equal to 0.000001865.PASS
Max error for test 96 at offset 128255 is less than or equal to 0.000001865.PASS
Max error for test 97 at offset 128895 is less than or equal to 0.000001865.PASS
Max error for test 98 at offset 130815 is less than or equal to 0.000001865.PASS
Max error for test 99 at offset 132223 is less than or equal to 0.000001865.PASS
Number of failed tests with an acceptable relative tolerance of 0.000001865 is equal to 0.PASS
Number of tests started and ended at the correct time is equal to 100.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 102 assertions)PASS
> [test] AudioParam linearRampToValueAtTime() functionalityPASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html (3/3, 100.00%, 0.05% of total)OK
discretePASS
speakers, initially monoPASS
speakers, initially stereoPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-automatic-pull.https.html (6/6, 100.00%, 0.10% of total)OK
The first half of the captured buffer contains only the constant 0.5.PASS
The second half of the captured buffer contains only the constant 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [setup-worklet] All assertions passed. (total 2 assertions)PASS
> [setup-worklet] PASS
/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner.html (176/176, 100.00%, 3.06% of total)OK
Listener forwardX.automationRate is equal to k-rate.PASS
Listener forwardX.linearRampToValueAtTime(1,1) did not throw an exception.PASS
Listener forwardX.setValueAtTime(-1,0) did not throw an exception.PASS
Listener forwardY.automationRate is equal to k-rate.PASS
Listener forwardY.linearRampToValueAtTime(1,1) did not throw an exception.PASS
Listener forwardY.setValueAtTime(-1,0) did not throw an exception.PASS
Listener forwardZ.automationRate is equal to k-rate.PASS
Listener forwardZ.linearRampToValueAtTime(1,1) did not throw an exception.PASS
Listener forwardZ.setValueAtTime(-1,0) did not throw an exception.PASS
Listener k-rate forwardX: Output [0, 127] contains only the constant 0.0011720563052222133.PASS
Listener k-rate forwardX: Output [128, 255] contains only the constant 0.0011720549082383513.PASS
Listener k-rate forwardX: Output [256, 383] contains only the constant 0.0011720503680408.PASS
Listener k-rate forwardX: Output [384, 511] contains only the constant 0.001172042335383594.PASS
Listener k-rate forwardX: Output [512, 639] contains only the constant 0.0011720301117748022.PASS
Listener k-rate forwardX: Output is not constantly 0.0011720563052222133 (contains 512 different values).PASS
Listener k-rate forwardY: Output [0, 127] contains only the constant 0.0008287689415737987.PASS
Listener k-rate forwardY: Output [128, 255] contains only the constant 0.0011720563052222133.PASS
Listener k-rate forwardY: Output [256, 383] contains only the constant 0.0011720563052222133.PASS
Listener k-rate forwardY: Output [384, 511] contains only the constant 0.0011720563052222133.PASS
Listener k-rate forwardY: Output [512, 639] contains only the constant 0.0011720563052222133.PASS
Listener k-rate forwardY: Output is not constantly 0.0008287689415737987 (contains 512 different values).PASS
Listener k-rate forwardZ: Output [0, 127] contains only the constant 0.0011720563052222133.PASS
Listener k-rate forwardZ: Output [128, 255] contains only the constant 0.0011720549082383513.PASS
Listener k-rate forwardZ: Output [256, 383] contains only the constant 0.0011720503680408.PASS
Listener k-rate forwardZ: Output [384, 511] contains only the constant 0.001172042335383594.PASS
Listener k-rate forwardZ: Output [512, 639] contains only the constant 0.0011720301117748022.PASS
Listener k-rate forwardZ: Output is not constantly 0.0011720563052222133 (contains 512 different values).PASS
Listener k-rate positionX: Output [0, 127] contains only the constant 0.0013299635611474514.PASS
Listener k-rate positionX: Output [128, 255] contains only the constant 0.012293370440602303.PASS
Listener k-rate positionX: Output [256, 383] contains only the constant 0.011927678249776363.PASS
Listener k-rate positionX: Output [384, 511] contains only the constant 0.008936939761042595.PASS
Listener k-rate positionX: Output [512, 639] contains only the constant 0.006943006068468094.PASS
Listener k-rate positionX: Output is not constantly 0.0013299635611474514 (contains 512 different values).PASS
Listener k-rate positionY: Output [0, 127] contains only the constant 0.0011720563052222133.PASS
Listener k-rate positionY: Output [128, 255] contains only the constant 0.014085138216614723.PASS
Listener k-rate positionY: Output [256, 383] contains only the constant 0.013277369551360607.PASS
Listener k-rate positionY: Output [384, 511] contains only the constant 0.009970049373805523.PASS
Listener k-rate positionY: Output [512, 639] contains only the constant 0.007745886687189341.PASS
Listener k-rate positionY: Output is not constantly 0.0011720563052222133 (contains 512 different values).PASS
Listener k-rate positionZ: Output [0, 127] contains only the constant 0.0013299635611474514.PASS
Listener k-rate positionZ: Output [128, 255] contains only the constant 0.012293369509279728.PASS
Listener k-rate positionZ: Output [256, 383] contains only the constant 0.011927677318453789.PASS
Listener k-rate positionZ: Output [384, 511] contains only the constant 0.008936937898397446.PASS
Listener k-rate positionZ: Output [512, 639] contains only the constant 0.006943006534129381.PASS
Listener k-rate positionZ: Output is not constantly 0.0013299635611474514 (contains 512 different values).PASS
Listener k-rate upX: Output [0, 127] contains only the constant 0.0010044159134849906.PASS
Listener k-rate upX: Output [128, 255] contains only the constant 0.0010139292571693659.PASS
Listener k-rate upX: Output [256, 383] contains only the constant 0.001008721999824047.PASS
Listener k-rate upX: Output [384, 511] contains only the constant 0.0010071939323097467.PASS
Listener k-rate upX: Output [512, 639] contains only the constant 0.0010064655216410756.PASS
Listener k-rate upX: Output is not constantly 0.0010044159134849906 (contains 512 different values).PASS
Listener k-rate upY: Output [0, 127] contains only the constant 0.0008287689415737987.PASS
Listener k-rate upY: Output [128, 255] contains only the constant 0.0011720563052222133.PASS
Listener k-rate upY: Output [256, 383] contains only the constant 0.0011720563052222133.PASS
Listener k-rate upY: Output [384, 511] contains only the constant 0.0011720563052222133.PASS
Listener k-rate upY: Output [512, 639] contains only the constant 0.0011720563052222133.PASS
Listener k-rate upY: Output is not constantly 0.0008287689415737987 (contains 512 different values).PASS
Listener k-rate upZ: Output [0, 127] contains only the constant 0.0010044159134849906.PASS
Listener k-rate upZ: Output [128, 255] contains only the constant 0.0010139293735846877.PASS
Listener k-rate upZ: Output [256, 383] contains only the constant 0.001008721999824047.PASS
Listener k-rate upZ: Output [384, 511] contains only the constant 0.0010071939323097467.PASS
Listener k-rate upZ: Output [512, 639] contains only the constant 0.0010064655216410756.PASS
Listener k-rate upZ: Output is not constantly 0.0010044159134849906 (contains 512 different values).PASS
Listener positionX.automationRate is equal to k-rate.PASS
Listener positionX.linearRampToValueAtTime(1000,1) did not throw an exception.PASS
Listener positionX.setValueAtTime(1,0) did not throw an exception.PASS
Listener positionY.automationRate is equal to k-rate.PASS
Listener positionY.linearRampToValueAtTime(1000,1) did not throw an exception.PASS
Listener positionY.setValueAtTime(1,0) did not throw an exception.PASS
Listener positionZ.automationRate is equal to k-rate.PASS
Listener positionZ.linearRampToValueAtTime(1000,1) did not throw an exception.PASS
Listener positionZ.setValueAtTime(1,0) did not throw an exception.PASS
Listener upX.automationRate is equal to k-rate.PASS
Listener upX.linearRampToValueAtTime(1000,1) did not throw an exception.PASS
Listener upX.setValueAtTime(-1,0) did not throw an exception.PASS
Listener upY.automationRate is equal to k-rate.PASS
Listener upY.linearRampToValueAtTime(1000,1) did not throw an exception.PASS
Listener upY.setValueAtTime(-1,0) did not throw an exception.PASS
Listener upZ.automationRate is equal to k-rate.PASS
Listener upZ.linearRampToValueAtTime(1000,1) did not throw an exception.PASS
Listener upZ.setValueAtTime(-1,0) did not throw an exception.PASS
k-rate orientationX k-rate output [0: 127] contains only the constant 0.PASS
k-rate orientationX k-rate output [128: 255] contains only the constant 0.05854206532239914.PASS
k-rate orientationX k-rate output [256: 383] contains only the constant 0.07888391613960266.PASS
k-rate orientationX k-rate output [384: 511] contains only the constant 0.08858340233564377.PASS
k-rate orientationX k-rate output [512: 639] contains only the constant 0.09418901801109314.PASS
k-rate orientationX: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 636 different values).PASS
k-rate orientationX: Output of a-rate PannerNode is identical to the array [0,0.0007919143536128104,0.0015773701015859842,0.002354065189138055,0.0031235984060913324,0.00388692831620574,0.00464255316182971,0.005390664096921682,0.006131517700850964,0.006865368224680424,0.00759231299161911,0.008311999030411243,0.009024843573570251,0.009730782359838486,0.010429717600345612,0.011121843941509724...].PASS
k-rate orientationX: Output of k-rate PannerNode is identical to the array [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...].PASS
k-rate orientationX: Setting orientationX.automationRate to "k-rate" is equal to k-rate.PASS
k-rate orientationX: a-rate node:orientationX.linearRampToValueAtTime(10,0.08) did not throw an exception.PASS
k-rate orientationX: a-rate node:orientationX.setValueAtTime(1,0) did not throw an exception.PASS
k-rate orientationX: k-rate node: orientationX.linearRampToValueAtTime(10,0.08) did not throw an exception.PASS
k-rate orientationX: k-rate node: orientationX.setValueAtTime(1,0) did not throw an exception.PASS
k-rate orientationY k-rate output [0: 127] contains only the constant 0.07389304786920547.PASS
k-rate orientationY k-rate output [128: 255] contains only the constant 0.08894405514001846.PASS
k-rate orientationY k-rate output [256: 383] contains only the constant 0.09769003093242645.PASS
k-rate orientationY k-rate output [384: 511] contains only the constant 0.10211682319641113.PASS
k-rate orientationY k-rate output [512: 639] contains only the constant 0.1047375500202179.PASS
k-rate orientationY: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 635 different values).PASS
k-rate orientationY: Output of a-rate PannerNode is identical to the array [0.07389304786920547,0.07389719784259796,0.07390938699245453,0.07392927259206772,0.07395654916763306,0.0739908218383789,0.07403190433979034,0.07407935708761215,0.07413297891616821,0.07419241219758987,0.07425744831562042,0.07432778924703598,0.07440318167209625,0.07448337227106094,0.07456806302070618,0.07465711236000061...].PASS
k-rate orientationY: Output of k-rate PannerNode is identical to the array [0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547...].PASS
k-rate orientationY: Setting orientationY.automationRate to "k-rate" is equal to k-rate.PASS
k-rate orientationY: a-rate node:orientationY.linearRampToValueAtTime(10,0.08) did not throw an exception.PASS
k-rate orientationY: a-rate node:orientationY.setValueAtTime(1,0) did not throw an exception.PASS
k-rate orientationY: k-rate node: orientationY.linearRampToValueAtTime(10,0.08) did not throw an exception.PASS
k-rate orientationY: k-rate node: orientationY.setValueAtTime(1,0) did not throw an exception.PASS
k-rate orientationZ k-rate output [0: 127] contains only the constant 0.07389304786920547.PASS
k-rate orientationZ k-rate output [128: 255] contains only the constant 0.08894405514001846.PASS
k-rate orientationZ k-rate output [256: 383] contains only the constant 0.09769003093242645.PASS
k-rate orientationZ k-rate output [384: 511] contains only the constant 0.10211682319641113.PASS
k-rate orientationZ k-rate output [512: 639] contains only the constant 0.1047375500202179.PASS
k-rate orientationZ: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 635 different values).PASS
k-rate orientationZ: Output of a-rate PannerNode is identical to the array [0.07389304786920547,0.07389719784259796,0.07390938699245453,0.07392927259206772,0.07395654916763306,0.0739908218383789,0.07403190433979034,0.07407935708761215,0.07413297891616821,0.07419241219758987,0.07425744831562042,0.07432778924703598,0.07440318167209625,0.07448337227106094,0.07456806302070618,0.07465711236000061...].PASS
k-rate orientationZ: Output of k-rate PannerNode is identical to the array [0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547,0.07389304786920547...].PASS
k-rate orientationZ: Setting orientationZ.automationRate to "k-rate" is equal to k-rate.PASS
k-rate orientationZ: a-rate node:orientationZ.linearRampToValueAtTime(10,0.08) did not throw an exception.PASS
k-rate orientationZ: a-rate node:orientationZ.setValueAtTime(1,0) did not throw an exception.PASS
k-rate orientationZ: k-rate node: orientationZ.linearRampToValueAtTime(10,0.08) did not throw an exception.PASS
k-rate orientationZ: k-rate node: orientationZ.setValueAtTime(1,0) did not throw an exception.PASS
k-rate positionX k-rate output [0: 127] contains only the constant 0.PASS
k-rate positionX k-rate output [128: 255] contains only the constant 0.001247443608008325.PASS
k-rate positionX k-rate output [256: 383] contains only the constant 0.0006243652314879.PASS
k-rate positionX k-rate output [384: 511] contains only the constant 0.0004163846024312079.PASS
k-rate positionX k-rate output [512: 639] contains only the constant 0.00031234207563102245.PASS
k-rate positionX: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 638 different values).PASS
k-rate positionX: Output of a-rate PannerNode is identical to the array [0,0.07824615389108658,0.060729388147592545,0.0456632636487484,0.03603518381714821,0.029616549611091614,0.02508825622498989,0.021739643067121506,0.019169356673955917,0.017137136310338974,0.015491400845348835,0.014132188633084297,0.012991074472665787,0.0120196882635355,0.011182943359017372,0.010454747825860977...].PASS
k-rate positionX: Output of k-rate PannerNode is identical to the array [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...].PASS
k-rate positionX: Setting positionX.automationRate to "k-rate" is equal to k-rate.PASS
k-rate positionX: a-rate node:positionX.linearRampToValueAtTime(1000,0.08) did not throw an exception.PASS
k-rate positionX: a-rate node:positionX.setValueAtTime(0,0) did not throw an exception.PASS
k-rate positionX: k-rate node: positionX.linearRampToValueAtTime(1000,0.08) did not throw an exception.PASS
k-rate positionX: k-rate node: positionX.setValueAtTime(0,0) did not throw an exception.PASS
k-rate positionY k-rate output [0: 127] contains only the constant 0.15397992730140686.PASS
k-rate positionY k-rate output [128: 255] contains only the constant 0.0008113960502669215.PASS
k-rate positionY k-rate output [256: 383] contains only the constant 0.0004070002760272473.PASS
k-rate positionY k-rate output [384: 511] contains only the constant 0.0002716227318160236.PASS
k-rate positionY k-rate output [512: 639] contains only the constant 0.00020382541697472334.PASS
k-rate positionY: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 638 different values).PASS
k-rate positionY: Output of a-rate PannerNode is identical to the array [0.15397992730140686,0.05288306251168251,0.033593595027923584,0.025778021663427353,0.02088121324777603,0.01750437542796135,0.015046180225908756,0.013182773254811764,0.011724470183253288,0.010553553700447083,0.009593426249921322,0.008792281150817871,0.008113890886306763,0.007532190065830946,0.0070279804058372974,0.006586793810129166...].PASS
k-rate positionY: Output of k-rate PannerNode is identical to the array [0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686...].PASS
k-rate positionY: Setting positionY.automationRate to "k-rate" is equal to k-rate.PASS
k-rate positionY: a-rate node:positionY.linearRampToValueAtTime(1000,0.08) did not throw an exception.PASS
k-rate positionY: a-rate node:positionY.setValueAtTime(0,0) did not throw an exception.PASS
k-rate positionY: k-rate node: positionY.linearRampToValueAtTime(1000,0.08) did not throw an exception.PASS
k-rate positionY: k-rate node: positionY.setValueAtTime(0,0) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 14 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Listener k-rate forwardX] All assertions passed. (total 9 assertions)PASS
< [Listener k-rate forwardY] All assertions passed. (total 9 assertions)PASS
< [Listener k-rate forwardZ] All assertions passed. (total 9 assertions)PASS
< [Listener k-rate positionX] All assertions passed. (total 9 assertions)PASS
< [Listener k-rate positionY] All assertions passed. (total 9 assertions)PASS
< [Listener k-rate positionZ] All assertions passed. (total 9 assertions)PASS
< [Listener k-rate upX] All assertions passed. (total 9 assertions)PASS
< [Listener k-rate upY] All assertions passed. (total 9 assertions)PASS
< [Listener k-rate upZ] All assertions passed. (total 9 assertions)PASS
< [Panner k-rate orientationX] All assertions passed. (total 13 assertions)PASS
< [Panner k-rate orientationY] All assertions passed. (total 13 assertions)PASS
< [Panner k-rate orientationZ] All assertions passed. (total 13 assertions)PASS
< [Panner k-rate positionX] All assertions passed. (total 13 assertions)PASS
< [Panner k-rate positionY] All assertions passed. (total 13 assertions)PASS
> [Listener k-rate forwardX] PASS
> [Listener k-rate forwardY] PASS
> [Listener k-rate forwardZ] PASS
> [Listener k-rate positionX] PASS
> [Listener k-rate positionY] PASS
> [Listener k-rate positionZ] PASS
> [Listener k-rate upX] PASS
> [Listener k-rate upY] PASS
> [Listener k-rate upZ] PASS
> [Panner k-rate orientationX] PASS
> [Panner k-rate orientationY] PASS
> [Panner k-rate orientationZ] PASS
> [Panner k-rate positionX] PASS
> [Panner k-rate positionY] PASS
/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html (39/39, 100.00%, 0.68% of total)OK
c = new OfflineAudioContext{"length":1,"sampleRate":8000,"numberOfChannels":7}) did not throw an exception.PASS
c = new OfflineAudioContext{"length":1,"sampleRate":8000}) did not throw an exception.PASS
c.destination.channelCount is equal to 1.PASS
c.destination.channelCount is equal to 7.PASS
c.destination.channelCountMode is equal to explicit.PASS
c.destination.channelCountMode is equal to speakers.PASS
c.length is equal to 1.PASS
c.sampleRate is equal to 8000.PASS
c2 = new OfflineAudioContext({"length":42,"sampleRate":12345}) did not throw an exception.PASS
c2.destination.channelCount is equal to 1.PASS
c2.destination.channelCountMode is equal to explicit.PASS
c2.destination.channelInterpretation is equal to speakers.PASS
c2.length is equal to 42.PASS
c2.sampleRate is equal to 12345.PASS
context = new OfflineAudioContext(3, 42, 12345) did not throw an exception.PASS
context.destination.channelCount is equal to 3.PASS
context.destination.channelCountMode is equal to explicit.PASS
context.destination.channelInterpretation is equal to speakers.PASS
context.length is equal to 42.PASS
context.sampleRate is equal to 12345.PASS
new OfflineAudioContext() threw TypeError: "Failed to construct 'OfflineAudioContext': 1 argument required, but only 0 present.".PASS
new OfflineAudioContext(3) threw TypeError: "Failed to construct 'OfflineAudioContext': parameter 1 ('options') is not an object.".PASS
new OfflineAudioContext(3, 42) threw TypeError: "Failed to construct 'OfflineAudioContext': Valid arities are: [1, 3], but 2 arguments provided.".PASS
new OfflineAudioContext({"length":0,"sampleRate":8000}) threw NotSupportedError: "Failed to construct 'OfflineAudioContext': The number of frames provided (0) is less than the minimum bound (1).".PASS
new OfflineAudioContext({"length":1,"sampleRate":1}) threw NotSupportedError: "Failed to construct 'OfflineAudioContext': The sampleRate provided (1) is outside the range [3000, 384000].".PASS
new OfflineAudioContext({"length":42,"sampleRate":8000,"numberOfChannels":33}) threw NotSupportedError: "Failed to construct 'OfflineAudioContext': The number of channels provided (33) is outside the range [1, 32].".PASS
new OfflineAudioContext({"length":42}) threw TypeError: "Failed to construct 'OfflineAudioContext': required member sampleRate is undefined.".PASS
new OfflineAudioContext({"sampleRate":12345}) threw TypeError: "Failed to construct 'OfflineAudioContext': required member length is undefined.".PASS
new OfflineAudioContext({}) threw TypeError: "Failed to construct 'OfflineAudioContext': required member length is undefined.".PASS
# AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [basic] All assertions passed. (total 8 assertions)PASS
< [options-1] All assertions passed. (total 10 assertions)PASS
< [options-2] All assertions passed. (total 3 assertions)PASS
< [options-3] All assertions passed. (total 8 assertions)PASS
> [basic] Old-style constructorPASS
> [options-1] Required optionsPASS
> [options-2] Invalid optionsPASS
> [options-3] Valid optionsPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-channels.html (20/20, 100.00%, 0.35% of total)OK
Setting source with 3 channels buffer did not throw an exception.PASS
Setting source with 4 channels buffer did not throw an exception.PASS
Setting source with 5 channels buffer did not throw an exception.PASS
Setting source with 6 channels buffer did not throw an exception.PASS
Setting source with 7 channels buffer did not throw an exception.PASS
Setting source with 8 channels buffer did not throw an exception.PASS
Setting source with 9 channels buffer did not throw an exception.PASS
Setting source with mono buffer did not throw an exception.PASS
Setting source with stereo buffer did not throw an exception.PASS
source.buffer = 57 threw TypeError: "Failed to set the 'buffer' property on 'AudioBufferSourceNode': The provided value is not of type 'AudioBuffer'.".PASS
source.buffer = buffer again threw InvalidStateError: "Failed to set the 'buffer' property on 'AudioBufferSourceNode': Cannot set buffer to non-null after it has been already been set to a non-null buffer".PASS
source.buffer = buffer did not throw an exception.PASS
source.buffer = new buffer threw InvalidStateError: "Failed to set the 'buffer' property on 'AudioBufferSourceNode': Cannot set buffer to non-null after it has been already been set to a non-null buffer".PASS
source.buffer = null after setting to null did not throw an exception.PASS
source.buffer = null again did not throw an exception.PASS
source.buffer = null did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [validate .buffer] All assertions passed. (total 16 assertions)PASS
> [validate .buffer] Validatation of AudioBuffer in .buffer attribute setterPASS
/webaudio/the-audio-api/the-pannernode-interface/distance-inverse.html (106/106, 100.00%, 1.84% of total)OK
0.00007142485992517322 is 0.00007142485524626213 within an error of 0.0000033.PASS
0.0000721536052878946 is 0.00007215360593004378 within an error of 0.0000033.PASS
0.00007289737550308928 is 0.00007289738085207445 within an error of 0.0000033.PASS
0.00007365665078395978 is 0.0000736566494708926 within an error of 0.0000033.PASS
0.0000744318967917934 is 0.00007443190100963128 within an error of 0.0000033.PASS
0.00007522365194745362 is 0.0000752236455072146 within an error of 0.0000033.PASS
0.00007603241101605818 is 0.0000760324149373658 within an error of 0.0000033.PASS
0.00007685876335017383 is 0.00007685876440058646 within an error of 0.0000033.PASS
0.00007770327647449449 is 0.0000777032733947189 within an error of 0.0000033.PASS
0.00007856654701754451 is 0.00007856654717020339 within an error of 0.0000033.PASS
0.00007944921526359394 is 0.00007944921817669082 within an error of 0.0000033.PASS
0.00008035194332478568 is 0.00008035194760827667 within an error of 0.0000033.PASS
0.00008127542969305068 is 0.00008127542705529087 within an error of 0.0000033.PASS
0.00008222038013627753 is 0.00008222038027131507 within an error of 0.0000033.PASS
0.0000831875586300157 is 0.00008318756506491622 within an error of 0.0000033.PASS
0.00008417777280556038 is 0.00008417777532648753 within an error of 0.0000033.PASS
0.00008519184484612197 is 0.00008519184320159076 within an error of 0.0000033.PASS
0.00008623064786661416 is 0.00008623064142330383 within an error of 0.0000033.PASS
0.00008729508408578113 is 0.00008729508581731386 within an error of 0.0000033.PASS
0.00008838613575790077 is 0.00008838613799486857 within an error of 0.0000033.PASS
0.00008950480696512386 is 0.00008950480825022975 within an error of 0.0000033.PASS
0.00009065215999726206 is 0.00009065215868097922 within an error of 0.0000033.PASS
0.00009182930807583034 is 0.00009182930655143387 within an error of 0.0000033.PASS
0.0000930374299059622 is 0.00009303742792155874 within an error of 0.0000033.PASS
0.00009427775512449443 is 0.00009427776156615415 within an error of 0.0000033.PASS
0.00009555161523167044 is 0.00009555161321177196 within an error of 0.0000033.PASS
0.00009686036355560645 is 0.00009686036012182393 within an error of 0.0000033.PASS
0.00009820545528782532 is 0.00009820545606372913 within an error of 0.0000033.PASS
0.00009958843293134123 is 0.00009958843669576138 within an error of 0.0000033.PASS
0.00010101093357661739 is 0.00010101092541556044 within an error of 0.0000033.PASS
0.00010247463796986267 is 0.00010247463971713554 within an error of 0.0000033.PASS
0.00010398139420431107 is 0.00010398139810869895 within an error of 0.0000033.PASS
0.00010553312313277274 is 0.0001055331276499139 within an error of 0.0000033.PASS
0.00010713187657529488 is 0.0001071318721742437 within an error of 0.0000033.PASS
0.00010877980093937367 is 0.00010877980127016969 within an error of 0.0000033.PASS
0.00011047922453144565 is 0.0001104792201042672 within an error of 0.0000033.PASS
0.00011223257752135396 is 0.00011223258017966366 within an error of 0.0000033.PASS
0.00011404248652979732 is 0.00011404249113547034 within an error of 0.0000033.PASS
0.00011591173097258434 is 0.0001159117337066233 within an error of 0.0000033.PASS
0.00011784327944042161 is 0.00011784327397949263 within an error of 0.0000033.PASS
0.00011984026787104085 is 0.00011984027909696912 within an error of 0.0000033.PASS
0.00012190613779239357 is 0.00012190613458793458 within an error of 0.0000033.PASS
0.0001240444544237107 is 0.00012404446352056735 within an error of 0.0000033.PASS
0.0001262591395061463 is 0.00012625914770742077 within an error of 0.0000033.PASS
0.0001285543548874557 is 0.0001285543512233631 within an error of 0.0000033.PASS
0.00013093453890178353 is 0.00013093454653613723 within an error of 0.0000033.PASS
0.00013340453733690083 is 0.00013340454359453928 within an error of 0.0000033.PASS
0.00013596951612271369 is 0.00013596952227228016 within an error of 0.0000033.PASS
0.00013863506319466978 is 0.0001386350686280235 within an error of 0.0000033.PASS
0.0001414072175975889 is 0.00014140721551575796 within an error of 0.0000033.PASS
0.0001442924840375781 is 0.0001442924881668536 within an error of 0.0000033.PASS
0.00014729794929735363 is 0.00014729795546868834 within an error of 0.0000033.PASS
0.0001504312822362408 is 0.00015043128778808934 within an error of 0.0000033.PASS
0.0001537008211016655 is 0.00015370082233532315 within an error of 0.0000033.PASS
0.00015711563173681498 is 0.00015711563724134773 within an error of 0.0000033.PASS
0.00016068562399595976 is 0.00016068563573421284 within an error of 0.0000033.PASS
0.00016442163905594498 is 0.00016442164205827313 within an error of 0.0000033.PASS
0.0001683355076238513 is 0.00016833551109288422 within an error of 0.0000033.PASS
0.0001724402536638081 is 0.00017244025400894687 within an error of 0.0000033.PASS
0.00017675016715656966 is 0.0001767501827692215 within an error of 0.0000033.PASS
0.0001812810660339892 is 0.00018128107685376073 within an error of 0.0000033.PASS
0.00018605036893859506 is 0.00018605037630348406 within an error of 0.0000033.PASS
0.00019107740081381053 is 0.00019107740605965677 within an error of 0.0000033.PASS
0.0001963836548384279 is 0.00019638363768289738 within an error of 0.0000033.PASS
0.00020199301070533693 is 0.00020199299592548462 within an error of 0.0000033.PASS
0.00020793221483472735 is 0.00020793221938875033 within an error of 0.0000033.PASS
0.0002142313023796305 is 0.00021423128673467743 within an error of 0.0000033.PASS
0.0002209239173680544 is 0.00022092392278720384 within an error of 0.0000033.PASS
0.00022804820036981255 is 0.00022804820255702685 within an error of 0.0000033.PASS
0.00023564728326164186 is 0.00023564727603110863 within an error of 0.0000033.PASS
0.0002437702496536076 is 0.0002437702428669352 within an error of 0.0000033.PASS
0.0002524732262827456 is 0.0002524732144543359 within an error of 0.0000033.PASS
0.00026182059082202613 is 0.0002618206119036511 within an error of 0.0000033.PASS
0.0002718867617659271 is 0.00027188676345445823 within an error of 0.0000033.PASS
0.0002827578573487699 is 0.0002827578851090863 within an error of 0.0000033.PASS
0.00029453454772010446 is 0.00029453455621825906 within an error of 0.0000033.PASS
0.0003073348489124328 is 0.00030733484059099675 within an error of 0.0000033.PASS
0.00032129825558513403 is 0.000321298258429533 within an error of 0.0000033.PASS
0.0003365908924024552 is 0.00033659089256258244 within an error of 0.0000033.PASS
0.0003534120332915336 is 0.0003534120257829606 within an error of 0.0000033.PASS
0.0003720028616953641 is 0.00037200287308386824 within an error of 0.0000033.PASS
0.00039265822852030396 is 0.0003926582230242598 within an error of 0.0000033.PASS
0.0004157421935815364 is 0.00041574218539568777 within an error of 0.0000033.PASS
0.00044170982437208295 is 0.00044170984057529024 within an error of 0.0000033.PASS
0.00047113755135796964 is 0.00047113754285008335 within an error of 0.0000033.PASS
0.0005047661834396422 is 0.0005047662016094025 within an error of 0.0000033.PASS
0.0005435644998215139 is 0.0005435645231164894 within an error of 0.0000033.PASS
0.0005888238083571196 is 0.0005888238468344444 within an error of 0.0000033.PASS
0.000642304599750787 is 0.0006423046636689839 within an error of 0.0000033.PASS
0.0007064709207043052 is 0.0007064709573249552 within an error of 0.0000033.PASS
0.0007848805980756879 is 0.0007848805998230096 within an error of 0.0000033.PASS
0.0008828681893646717 is 0.0008828681780783943 within an error of 0.0000033.PASS
0.0010088123381137848 is 0.0010088122653996085 within an error of 0.0000033.PASS
0.0011766677489504218 is 0.0011766678556703624 within an error of 0.0000033.PASS
0.001411531469784677 is 0.0014115316522338509 within an error of 0.0000033.PASS
0.001763534382916987 is 0.0017635344702377983 within an error of 0.0000033.PASS
0.0023494260385632515 is 0.0023494261261472827 within an error of 0.0000033.PASS
0.003518294310197234 is 0.003518294264038947 within an error of 0.0000033.PASS
0.007001750636845827 is 0.007001750482092757 within an error of 0.0000033.PASS
0.7071067690849304 is 0.7071067811865476 within an error of 0.0000033.PASS
Max error in distance gains is less than or equal to 0.0000033.PASS
Number of impulses is equal to 100.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 102 assertions)PASS
> [test] PASS
/webaudio/the-audio-api/the-audioworklet-interface/baseaudiocontext-audioworklet.https.html (5/5, 100.00%, 0.09% of total)OK
BaseAudioContext.audioWorklet is an instance of AudioWorklet is true.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Test if AudioWorklet exists] All assertions passed. (total 1 assertions)PASS
> [Test if AudioWorklet exists] PASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https.html (8/8, 100.00%, 0.14% of total)OK
The initial message from PortProcessor is equal to created.PASS
The response from PortProcessor is equal to hello.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Test postMessage from AudioWorkletNode to AudioWorkletProcessor] All assertions passed. (total 1 assertions)PASS
< [Test postMessage from AudioWorkletProcessor to AudioWorkletNode] All assertions passed. (total 1 assertions)PASS
> [Test postMessage from AudioWorkletNode to AudioWorkletProcessor] PASS
> [Test postMessage from AudioWorkletProcessor to AudioWorkletNode] PASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-large-endtime.html (8/8, 100.00%, 0.14% of total)OK
exponentialRampToValue(0.1, 1e+300) successfully renderedPASS
linearRampToValue(0.1, 1e+300) successfully renderedPASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [exponentialRamp] All assertions passed. (total 1 assertions)PASS
< [linearRamp] All assertions passed. (total 1 assertions)PASS
> [exponentialRamp] PASS
> [linearRamp] PASS
/webaudio/the-audio-api/the-gainnode-interface/no-dezippering.html (14/14, 100.00%, 0.24% of total)OK
.value setter output is identical to the array [0,0.1679382622241974,0.3311063051223755,0.4848693013191223,0.6248595714569092,0.7471005916595459,0.8481203317642212,0.9250491857528687,0.9757021069526672,0.9986401796340942,0.9932119250297546,0.9595714807510376,0.898674488067627,0.812250554561615,0.7027547359466553,0.5732971429824829...].PASS
.value setter output matches setValueAtTime output is true.PASS
With modulation: .value setter output is identical to the array [0,0.23077473044395447,0.5608845949172974,0.92753666639328,1.249295711517334,1.4497532844543457,1.480018973350525,1.3333392143249512,1.0474791526794434,0.6941255927085876,0.35842588543891907,0.1146966814994812,0.00547564635053277,0.03009122796356678,0.1460980921983719,0.28310179710388184...].PASS
With modulation: .value setter output matches setValueAtTime output is true.PASS
output[0:127] contains only the constant 1.PASS
output[128:] contains only the constant 0.5.PASS
# AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test0] All assertions passed. (total 2 assertions)PASS
< [test2] All assertions passed. (total 2 assertions)PASS
< [test3] All assertions passed. (total 2 assertions)PASS
> [test0] Dezippering of GainNode removedPASS
> [test2] Compare value setter and setValueAtTimePASS
> [test3] Automation effectsPASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurveAtTime.html (26/26, 100.00%, 0.45% of total)OK
Max error for test 0 at offset 1304 is less than or equal to 0.0000037194.PASS
Max error for test 1 at offset 2573 is less than or equal to 0.0000037194.PASS
Max error for test 10 at offset 14380 is less than or equal to 0.0000037194.PASS
Max error for test 11 at offset 15809 is less than or equal to 0.0000037194.PASS
Max error for test 12 at offset 17037 is less than or equal to 0.0000037194.PASS
Max error for test 13 at offset 18497 is less than or equal to 0.0000037194.PASS
Max error for test 14 at offset 19725 is less than or equal to 0.0000037194.PASS
Max error for test 15 at offset 21149 is less than or equal to 0.0000037194.PASS
Max error for test 16 at offset 22465 is less than or equal to 0.0000037194.PASS
Max error for test 17 at offset 23693 is less than or equal to 0.0000037194.PASS
Max error for test 18 at offset 25122 is less than or equal to 0.0000037194.PASS
Max error for test 19 at offset 26438 is less than or equal to 0.0000037194.PASS
Max error for test 2 at offset 3798 is less than or equal to 0.0000037194.PASS
Max error for test 3 at offset 5277 is less than or equal to 0.0000037194.PASS
Max error for test 4 at offset 6541 is less than or equal to 0.0000037194.PASS
Max error for test 5 at offset 7766 is less than or equal to 0.0000037194.PASS
Max error for test 6 at offset 9239 is less than or equal to 0.0000037194.PASS
Max error for test 7 at offset 10418 is less than or equal to 0.0000037194.PASS
Max error for test 8 at offset 11734 is less than or equal to 0.0000037194.PASS
Max error for test 9 at offset 13163 is less than or equal to 0.0000037194.PASS
Number of failed tests with an acceptable relative tolerance of 0.0000037194 is equal to 0.PASS
Number of tests started and ended at the correct time is equal to 20.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 22 assertions)PASS
> [test] AudioParam setValueCurveAtTime() functionality.PASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-onerror.https.html (6/6, 100.00%, 0.10% of total)OK
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor-error] All assertions passed. (total 0 assertions)PASS
< [process-error] All assertions passed. (total 0 assertions)PASS
> [constructor-error] PASS
> [process-error] PASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start.html (22/22, 100.00%, 0.38% of total)OK
Case 0: start(when): implicitly play whole buffer from beginning to end is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...].PASS
Case 0: start(when): implicitly play whole buffer from beginning to end: tail contains only the constant 0.PASS
Case 1: start(when, 0): play whole buffer from beginning to end explicitly giving offset of 0 is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...].PASS
Case 1: start(when, 0): play whole buffer from beginning to end explicitly giving offset of 0: tail contains only the constant 0.PASS
Case 2: start(when, 0, 8_frames): play whole buffer from beginning to end explicitly giving offset of 0 and duration of 8 frames is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...].PASS
Case 2: start(when, 0, 8_frames): play whole buffer from beginning to end explicitly giving offset of 0 and duration of 8 frames: tail contains only the constant 0.PASS
Case 3: start(when, 4_frames): play with explicit non-zero offset is identical to the array [4,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0...].PASS
Case 3: start(when, 4_frames): play with explicit non-zero offset: tail contains only the constant 0.PASS
Case 4: start(when, 4_frames, 4_frames): play with explicit non-zero offset and duration is identical to the array [4,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0...].PASS
Case 4: start(when, 4_frames, 4_frames): play with explicit non-zero offset and duration: tail contains only the constant 0.PASS
Case 5: start(when, 7_frames): play with explicit non-zero offset near end of buffer is identical to the array [7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...].PASS
Case 5: start(when, 7_frames): play with explicit non-zero offset near end of buffer: tail contains only the constant 0.PASS
Case 6: start(when, 8_frames): play with explicit offset at end of buffer is identical to the array [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...].PASS
Case 6: start(when, 8_frames): play with explicit offset at end of buffer: tail contains only the constant 0.PASS
Case 7: start(when, 9_frames): play with explicit offset past end of buffer is identical to the array [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...].PASS
Case 7: start(when, 9_frames): play with explicit offset past end of buffer: tail contains only the constant 0.PASS
Case 8: start(when, 0, 15_frames): play with whole buffer, with long duration (clipped) is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...].PASS
Case 8: start(when, 0, 15_frames): play with whole buffer, with long duration (clipped): tail contains only the constant 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Tests AudioBufferSourceNode start()] All assertions passed. (total 18 assertions)PASS
> [Tests AudioBufferSourceNode start()] PASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass.html (7/7, 100.00%, 0.12% of total)OK
Max error in Lowpass filter response is less than or equal to 9.7869e-8.PASS
Number of filters tested is equal to 5.PASS
Number of non-finite values in the rendered output is equal to 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Biquad lowpass filterPASS
/webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.html (54/54, 100.00%, 0.94% of total)OK
AudioBuffer shared between two different contexts correctlyPASS
buffer = new AudioBuffer({"numberOfChannels":5,"length":17,"sampleRate":16000}) did not throw an exception.PASS
buffer = new AudioBuffer({length: 1}) threw TypeError: "Failed to construct 'AudioBuffer': required member sampleRate is undefined.".PASS
buffer = new AudioBuffer({numberOfChannels: 1} threw TypeError: "Failed to construct 'AudioBuffer': required member length is undefined.".PASS
buffer = new AudioBuffer({sampleRate: 48000}) threw TypeError: "Failed to construct 'AudioBuffer': required member length is undefined.".PASS
buffer = new AudioBuffer({}) threw TypeError: "Failed to construct 'AudioBuffer': required member length is undefined.".PASS
buffer.getChannelData(0) did not throw an exception.PASS
buffer.getChannelData(0) length is equal to 42.PASS
buffer.getChannelData(1) did not throw an exception.PASS
buffer.getChannelData(1) length is equal to 42.PASS
buffer.getChannelData(2) did not throw an exception.PASS
buffer.getChannelData(2) length is equal to 42.PASS
buffer.getChannelData(3) threw IndexSizeError: "Failed to execute 'getChannelData' on 'AudioBuffer': channel index (3) exceeds number of channels (3)".PASS
buffer.length is equal to 17.PASS
buffer.length is equal to 42.PASS
buffer.numberOfChannels is equal to 3.PASS
buffer.numberOfChannels is equal to 5.PASS
buffer.sampleRate is equal to 16000.PASS
buffer.sampleRate is equal to 54321.PASS
buffer0 = new AudioBuffer({length: 21, sampleRate: 48000} did not throw an exception.PASS
buffer0.length is equal to 21.PASS
buffer0.numberOfChannels is equal to 1.PASS
buffer0.sampleRate is equal to 48000.PASS
buffer1 = new AudioBuffer({numberOfChannels: 3, length: 1, sampleRate: 48000}) did not throw an exception.PASS
buffer1.length is equal to 1.PASS
buffer1.numberOfChannels is equal to 3.PASS
buffer1.sampleRate is equal to 48000.PASS
c1 result is identical to the array [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16...].PASS
c2 result is identical to the array [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16...].PASS
context = new OfflineAudioContext(...) did not throw an exception.PASS
new AudioBuffer() threw TypeError: "Failed to construct 'AudioBuffer': 1 argument required, but only 0 present.".PASS
new AudioBuffer(1) threw TypeError: "Failed to construct 'AudioBuffer': parameter 1 ('options') is not an object.".PASS
new AudioBuffer(Date, 42) threw TypeError: "Failed to construct 'AudioBuffer': required member sampleRate is undefined.".PASS
new AudioBuffer({"numberOfChannels":0,"length":1,"sampleRate":16000}) threw NotSupportedError: "Failed to construct 'AudioBuffer': The number of channels provided (0) is outside the range [1, 32].".PASS
new AudioBuffer({"numberOfChannels":1,"length":0,"sampleRate":16000}) threw NotSupportedError: "Failed to construct 'AudioBuffer': The number of frames provided (0) is less than or equal to the minimum bound (0).".PASS
new AudioBuffer({"numberOfChannels":1,"length":1,"sampleRate":100}) threw NotSupportedError: "Failed to construct 'AudioBuffer': The sample rate provided (100) is outside the range [3000, 384000].".PASS
new AudioBuffer({"numberOfChannels":3,"length":42,"sampleRate":54321}) did not throw an exception.PASS
new AudioBuffer({"numberOfChannels":99,"length":0,"sampleRate":16000}) threw NotSupportedError: "Failed to construct 'AudioBuffer': The number of channels provided (99) is outside the range [1, 32].".PASS
# AUDIT TASK RUNNER FINISHED: 7 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [default constructor] All assertions passed. (total 4 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [invalid option values] All assertions passed. (total 4 assertions)PASS
< [multiple contexts] All assertions passed. (total 3 assertions)PASS
< [required options] All assertions passed. (total 12 assertions)PASS
< [valid constructor] All assertions passed. (total 11 assertions)PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [invalid option values] PASS
> [multiple contexts] PASS
> [required options] PASS
> [valid constructor] PASS
/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html (5/5, 100.00%, 0.09% of total)OK
WaveShaperNode applied non-linear distortion correctly is true.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 1 assertions)PASS
> [test] PASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/note-grain-on-play.html (210/210, 100.00%, 3.65% of total)OK
Found all grain starts and ends is true.PASS
Number of end frames is equal to 100.PASS
Number of grains that did not contain the expected data is equal to 0.PASS
Number of grains that ended at the correct time is equal to 100.PASS
Number of grains that started at the correct time is equal to 100.PASS
Number of start frames is equal to 100.PASS
Pulse 0 boundary is identical to the array [0,441].PASS
Pulse 0 contained the expected data is true.PASS
Pulse 1 boundary is identical to the array [662,1103].PASS
Pulse 1 contained the expected data is true.PASS
Pulse 10 boundary is identical to the array [6615,7056].PASS
Pulse 10 contained the expected data is true.PASS
Pulse 11 boundary is identical to the array [7276,7717].PASS
Pulse 11 contained the expected data is true.PASS
Pulse 12 boundary is identical to the array [7938,8379].PASS
Pulse 12 contained the expected data is true.PASS
Pulse 13 boundary is identical to the array [8600,9041].PASS
Pulse 13 contained the expected data is true.PASS
Pulse 14 boundary is identical to the array [9261,9702].PASS
Pulse 14 contained the expected data is true.PASS
Pulse 15 boundary is identical to the array [9922,10363].PASS
Pulse 15 contained the expected data is true.PASS
Pulse 16 boundary is identical to the array [10584,11025].PASS
Pulse 16 contained the expected data is true.PASS
Pulse 17 boundary is identical to the array [11246,11687].PASS
Pulse 17 contained the expected data is true.PASS
Pulse 18 boundary is identical to the array [11907,12348].PASS
Pulse 18 contained the expected data is true.PASS
Pulse 19 boundary is identical to the array [12568,13009].PASS
Pulse 19 contained the expected data is true.PASS
Pulse 2 boundary is identical to the array [1323,1764].PASS
Pulse 2 contained the expected data is true.PASS
Pulse 20 boundary is identical to the array [13230,13671].PASS
Pulse 20 contained the expected data is true.PASS
Pulse 21 boundary is identical to the array [13892,14333].PASS
Pulse 21 contained the expected data is true.PASS
Pulse 22 boundary is identical to the array [14553,14994].PASS
Pulse 22 contained the expected data is true.PASS
Pulse 23 boundary is identical to the array [15214,15655].PASS
Pulse 23 contained the expected data is true.PASS
Pulse 24 boundary is identical to the array [15876,16317].PASS
Pulse 24 contained the expected data is true.PASS
Pulse 25 boundary is identical to the array [16538,16979].PASS
Pulse 25 contained the expected data is true.PASS
Pulse 26 boundary is identical to the array [17199,17640].PASS
Pulse 26 contained the expected data is true.PASS
Pulse 27 boundary is identical to the array [17861,18302].PASS
Pulse 27 contained the expected data is true.PASS
Pulse 28 boundary is identical to the array [18522,18963].PASS
Pulse 28 contained the expected data is true.PASS
Pulse 29 boundary is identical to the array [19184,19625].PASS
Pulse 29 contained the expected data is true.PASS
Pulse 3 boundary is identical to the array [1985,2426].PASS
Pulse 3 contained the expected data is true.PASS
Pulse 30 boundary is identical to the array [19845,20286].PASS
Pulse 30 contained the expected data is true.PASS
Pulse 31 boundary is identical to the array [20507,20948].PASS
Pulse 31 contained the expected data is true.PASS
Pulse 32 boundary is identical to the array [21168,21609].PASS
Pulse 32 contained the expected data is true.PASS
Pulse 33 boundary is identical to the array [21830,22271].PASS
Pulse 33 contained the expected data is true.PASS
Pulse 34 boundary is identical to the array [22491,22932].PASS
Pulse 34 contained the expected data is true.PASS
Pulse 35 boundary is identical to the array [23153,23594].PASS
Pulse 35 contained the expected data is true.PASS
Pulse 36 boundary is identical to the array [23814,24255].PASS
Pulse 36 contained the expected data is true.PASS
Pulse 37 boundary is identical to the array [24475,24916].PASS
Pulse 37 contained the expected data is true.PASS
Pulse 38 boundary is identical to the array [25137,25578].PASS
Pulse 38 contained the expected data is true.PASS
Pulse 39 boundary is identical to the array [25799,26240].PASS
Pulse 39 contained the expected data is true.PASS
Pulse 4 boundary is identical to the array [2646,3087].PASS
Pulse 4 contained the expected data is true.PASS
Pulse 40 boundary is identical to the array [26460,26901].PASS
Pulse 40 contained the expected data is true.PASS
Pulse 41 boundary is identical to the array [27122,27563].PASS
Pulse 41 contained the expected data is true.PASS
Pulse 42 boundary is identical to the array [27783,28224].PASS
Pulse 42 contained the expected data is true.PASS
Pulse 43 boundary is identical to the array [28445,28886].PASS
Pulse 43 contained the expected data is true.PASS
Pulse 44 boundary is identical to the array [29106,29547].PASS
Pulse 44 contained the expected data is true.PASS
Pulse 45 boundary is identical to the array [29767,30208].PASS
Pulse 45 contained the expected data is true.PASS
Pulse 46 boundary is identical to the array [30429,30870].PASS
Pulse 46 contained the expected data is true.PASS
Pulse 47 boundary is identical to the array [31091,31532].PASS
Pulse 47 contained the expected data is true.PASS
Pulse 48 boundary is identical to the array [31752,32193].PASS
Pulse 48 contained the expected data is true.PASS
Pulse 49 boundary is identical to the array [32414,32855].PASS
Pulse 49 contained the expected data is true.PASS
Pulse 5 boundary is identical to the array [3308,3749].PASS
Pulse 5 contained the expected data is true.PASS
Pulse 50 boundary is identical to the array [33075,33516].PASS
Pulse 50 contained the expected data is true.PASS
Pulse 51 boundary is identical to the array [33737,34178].PASS
Pulse 51 contained the expected data is true.PASS
Pulse 52 boundary is identical to the array [34398,34839].PASS
Pulse 52 contained the expected data is true.PASS
Pulse 53 boundary is identical to the array [35060,35501].PASS
Pulse 53 contained the expected data is true.PASS
Pulse 54 boundary is identical to the array [35721,36162].PASS
Pulse 54 contained the expected data is true.PASS
Pulse 55 boundary is identical to the array [36383,36824].PASS
Pulse 55 contained the expected data is true.PASS
Pulse 56 boundary is identical to the array [37044,37485].PASS
Pulse 56 contained the expected data is true.PASS
Pulse 57 boundary is identical to the array [37706,38147].PASS
Pulse 57 contained the expected data is true.PASS
Pulse 58 boundary is identical to the array [38367,38808].PASS
Pulse 58 contained the expected data is true.PASS
Pulse 59 boundary is identical to the array [39029,39470].PASS
Pulse 59 contained the expected data is true.PASS
Pulse 6 boundary is identical to the array [3969,4410].PASS
Pulse 6 contained the expected data is true.PASS
Pulse 60 boundary is identical to the array [39690,40131].PASS
Pulse 60 contained the expected data is true.PASS
Pulse 61 boundary is identical to the array [40352,40793].PASS
Pulse 61 contained the expected data is true.PASS
Pulse 62 boundary is identical to the array [41013,41454].PASS
Pulse 62 contained the expected data is true.PASS
Pulse 63 boundary is identical to the array [41675,42116].PASS
Pulse 63 contained the expected data is true.PASS
Pulse 64 boundary is identical to the array [42336,42777].PASS
Pulse 64 contained the expected data is true.PASS
Pulse 65 boundary is identical to the array [42998,43439].PASS
Pulse 65 contained the expected data is true.PASS
Pulse 66 boundary is identical to the array [43659,44100].PASS
Pulse 66 contained the expected data is true.PASS
Pulse 67 boundary is identical to the array [44320,44761].PASS
Pulse 67 contained the expected data is true.PASS
Pulse 68 boundary is identical to the array [44982,45423].PASS
Pulse 68 contained the expected data is true.PASS
Pulse 69 boundary is identical to the array [45644,46085].PASS
Pulse 69 contained the expected data is true.PASS
Pulse 7 boundary is identical to the array [4631,5072].PASS
Pulse 7 contained the expected data is true.PASS
Pulse 70 boundary is identical to the array [46305,46746].PASS
Pulse 70 contained the expected data is true.PASS
Pulse 71 boundary is identical to the array [46967,47408].PASS
Pulse 71 contained the expected data is true.PASS
Pulse 72 boundary is identical to the array [47628,48069].PASS
Pulse 72 contained the expected data is true.PASS
Pulse 73 boundary is identical to the array [48290,48731].PASS
Pulse 73 contained the expected data is true.PASS
Pulse 74 boundary is identical to the array [48951,49392].PASS
Pulse 74 contained the expected data is true.PASS
Pulse 75 boundary is identical to the array [49613,50053].PASS
Pulse 75 contained the expected data is true.PASS
Pulse 76 boundary is identical to the array [50274,50715].PASS
Pulse 76 contained the expected data is true.PASS
Pulse 77 boundary is identical to the array [50936,51377].PASS
Pulse 77 contained the expected data is true.PASS
Pulse 78 boundary is identical to the array [51597,52038].PASS
Pulse 78 contained the expected data is true.PASS
Pulse 79 boundary is identical to the array [52259,52700].PASS
Pulse 79 contained the expected data is true.PASS
Pulse 8 boundary is identical to the array [5292,5733].PASS
Pulse 8 contained the expected data is true.PASS
Pulse 80 boundary is identical to the array [52920,53361].PASS
Pulse 80 contained the expected data is true.PASS
Pulse 81 boundary is identical to the array [53581,54022].PASS
Pulse 81 contained the expected data is true.PASS
Pulse 82 boundary is identical to the array [54243,54684].PASS
Pulse 82 contained the expected data is true.PASS
Pulse 83 boundary is identical to the array [54904,55345].PASS
Pulse 83 contained the expected data is true.PASS
Pulse 84 boundary is identical to the array [55566,56007].PASS
Pulse 84 contained the expected data is true.PASS
Pulse 85 boundary is identical to the array [56227,56668].PASS
Pulse 85 contained the expected data is true.PASS
Pulse 86 boundary is identical to the array [56889,57330].PASS
Pulse 86 contained the expected data is true.PASS
Pulse 87 boundary is identical to the array [57551,57992].PASS
Pulse 87 contained the expected data is true.PASS
Pulse 88 boundary is identical to the array [58212,58653].PASS
Pulse 88 contained the expected data is true.PASS
Pulse 89 boundary is identical to the array [58874,59315].PASS
Pulse 89 contained the expected data is true.PASS
Pulse 9 boundary is identical to the array [5954,6395].PASS
Pulse 9 contained the expected data is true.PASS
Pulse 90 boundary is identical to the array [59535,59976].PASS
Pulse 90 contained the expected data is true.PASS
Pulse 91 boundary is identical to the array [60197,60638].PASS
Pulse 91 contained the expected data is true.PASS
Pulse 92 boundary is identical to the array [60858,61299].PASS
Pulse 92 contained the expected data is true.PASS
Pulse 93 boundary is identical to the array [61520,61961].PASS
Pulse 93 contained the expected data is true.PASS
Pulse 94 boundary is identical to the array [62181,62622].PASS
Pulse 94 contained the expected data is true.PASS
Pulse 95 boundary is identical to the array [62843,63284].PASS
Pulse 95 contained the expected data is true.PASS
Pulse 96 boundary is identical to the array [63504,63945].PASS
Pulse 96 contained the expected data is true.PASS
Pulse 97 boundary is identical to the array [64165,64606].PASS
Pulse 97 contained the expected data is true.PASS
Pulse 98 boundary is identical to the array [64827,65268].PASS
Pulse 98 contained the expected data is true.PASS
Pulse 99 boundary is identical to the array [65488,65929].PASS
Pulse 99 contained the expected data is true.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [note-grain-on-play] All assertions passed. (total 206 assertions)PASS
> [note-grain-on-play] Test noteGrainOn offset renderingPASS
/webaudio/the-audio-api/the-audioparam-interface/event-insertion.html (44/44, 100.00%, 0.77% of total)OK
Expo+Linear: At time 0.01556396484375 (frame 255) output is 2.9871532226369792 within an error of 0.0000042533.PASS
Expo+Linear: At time 0.015625 (frame 256) and later, output contains only the constant 2.PASS
Expo+Linear: Context length is long enough for the test is true.PASS
Expo+Linear: exponentialRampToValueAtTime(3, 0.015625) did not throw an exception.PASS
Expo+Linear: linearRampToValueAtTime(2, 0.015625) did not throw an exception.PASS
Expo+Linear: setValueAtTime(99, 0.015625) did not throw an exception.PASS
Linear+Expo: At time 0.01556396484375 (frame 255) output is 1.99609375 within an error of 0.PASS
Linear+Expo: At time 0.015625 (frame 256) and later, output contains only the constant 3.PASS
Linear+Expo: Context length is long enough for the test is true.PASS
Linear+Expo: exponentialRampToValueAtTime(3, 0.015625) did not throw an exception.PASS
Linear+Expo: linearRampToValueAtTime(2, 0.015625) did not throw an exception.PASS
Linear+Expo: setValueAtTime(99, 0.015625) did not throw an exception.PASS
Linear+SetTarget: At time 0.01556396484375 (frame 255) output is 2.9921875 within an error of 0.PASS
Linear+SetTarget: At time 0.015625 (frame 256) and later equals [100,99.93898010253906,99.87800598144531,99.81706237792969,99.75615692138672,99.6952896118164,99.63446044921875,99.57366180419922,99.51290893554688,99.45218658447266,99.39151000976562,99.33086395263672,99.27025604248047,99.20968627929688,99.1491470336914,99.08865356445312...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":1.7807e-7}.PASS
Linear+SetTarget: At time 0.015625 (frame 256) output is equal to 100.PASS
Linear+SetTarget: Context length is long enough for the test is true.PASS
Linear+SetTarget: linearRampToValueAtTime(3, 0.015625) did not throw an exception.PASS
Linear+SetTarget: setTargetAtTime(0, 0.015625, 0.1) did not throw an exception.PASS
Linear+SetTarget: setValueAtTime(100, 0.015625) did not throw an exception.PASS
Output at frame 128 (time 0.0078125) is equal to 1.PASS
Output at frame 256 (time 0.015625) is equal to 2.PASS
Output at frame 384 (time 0.0234375) is equal to 3.PASS
Output at frame 512 (time 0.03125) is equal to 4.PASS
Output at frame 640 (time 0.0390625) is equal to 5.PASS
exponentialRampToValueAtTime(3, 0.0234375) did not throw an exception.PASS
exponentialRampToValueAtTime(99, 0.0234375) did not throw an exception.PASS
linearRampToValueAtTime(2, 0.015625) did not throw an exception.PASS
linearRampToValueAtTime(99, 0.015625) did not throw an exception.PASS
setValueAtTime(1, 0.0078125) did not throw an exception.PASS
setValueAtTime(1, 0.03900146484375) did not throw an exception.PASS
setValueAtTime(5, 0.03900146484375) did not throw an exception.PASS
setValueAtTime(99, 0.0078125) did not throw an exception.PASS
setValueAtTime(99, 0.03900146484375) did not throw an exception.PASS
setValueCurveAtTime([3,4], 0.0234375, 0.0078125) did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Expo + Linear] All assertions passed. (total 6 assertions)PASS
< [Insert same event at same time] All assertions passed. (total 15 assertions)PASS
< [Linear + Expo] All assertions passed. (total 6 assertions)PASS
< [Linear + SetTarget] All assertions passed. (total 7 assertions)PASS
> [Expo + Linear] Different events at same timePASS
> [Insert same event at same time] PASS
> [Linear + Expo] Different events at same timePASS
> [Linear + SetTarget] Different events at same timePASS
/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter.html (54/54, 100.00%, 0.94% of total)OK
4-th order IIRFilter (biquad ref) equals [0.000004181719305051956,0.000032965795980999246,0.00012939768203068525,0.0003477365826256573,0.0007387272780761123,0.0013446896336972713,0.0021993760019540787,0.0033279552590101957,0.004747116006910801,0.006465280428528786,0.008482920937240124,0.010792967863380909,0.013381300494074821,0.01622730866074562,0.019304513931274414,0.02258124388754368...] with an element-wise tolerance of {"absoluteThreshold":1.59e-7,"relativeThreshold":0.0000211}.PASS
IIR 1-pole output equals [1,-0.9,0.81,-0.7290000000000001,0.6561000000000001,-0.5904900000000002,0.5314410000000002,-0.47829690000000014,0.43046721000000016,-0.38742048900000015,0.34867844010000015,-0.31381059609000017,0.28242953648100017,-0.25418658283290013,0.22876792454961012,-0.2058911320946491...] with an element-wise tolerance of {"absoluteThreshold":2.7657e-8,"relativeThreshold":0}.PASS
IIR 1-zero output equals [0.5,0.5,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
IIRFilter for Biquad allpass equals [0.9908915162086487,0.9728335738182068,0.9551669955253601,0.938035786151886,0.9215781092643738,0.9059253334999084,0.891200840473175,0.8775191307067871,0.8649849891662598,0.8536926507949829,0.8437251448631287,0.8351536393165588,0.8280369639396667,0.8224213123321533,0.8183399438858032,0.8158129453659058...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.0000431}.PASS
IIRFilter for Biquad bandpass equals [0.004554244689643383,0.013583214953541756,0.022416498512029648,0.03098210319876671,0.03921092674136162,0.047037310898303986,0.054399557411670685,0.06124040484428406,0.06750746816396713,0.07315362989902496,0.07813739031553268,0.08242315798997879,0.08598149567842484,0.08878931403160095,0.090829998254776,0.09209349006414413...] with an element-wise tolerance of {"absoluteThreshold":2e-7,"relativeThreshold":0.00087}.PASS
IIRFilter for Biquad highpass equals [0.9836710095405579,0.9474785923957825,0.904482364654541,0.8552320003509521,0.8003131747245789,0.7403417825698853,0.6759579181671143,0.6078199744224548,0.5365985631942749,0.46297064423561096,0.38761380314826965,0.3112005889415741,0.23439310491085052,0.15783783793449402,0.08216073364019394,0.007962634786963463...] with an element-wise tolerance of {"absoluteThreshold":0.0000029,"relativeThreshold":0.00003}.PASS
IIRFilter for Biquad highshelf equals [3.0451014041900635,2.816114902496338,2.5985426902770996,2.3935580253601074,2.2019755840301514,2.024296998977661,1.8607536554336548,1.7113463878631592,1.5758819580078125,1.4540066719055176,1.3452364206314087,1.2489843368530273,1.164584755897522,1.0913151502609253,1.0284149646759033,0.9751021265983582...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.0000124}.PASS
IIRFilter for Biquad lowpass equals [0.002067622495815158,0.010262038558721542,0.026408346369862556,0.0501461997628212,0.08106274157762527,0.11869752407073975,0.16254766285419464,0.2120732218027115,0.26670271158218384,0.32583874464035034,0.3888637125492096,0.4551454484462738,0.5240428447723389,0.594911515712738,0.6671090722084045,0.7400005459785461...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.000049834}.PASS
IIRFilter for Biquad lowshelf equals [1.038480281829834,1.1165722608566284,1.1966439485549927,1.2781513929367065,1.3605945110321045,1.4435153007507324,1.5264960527420044,1.6091575622558594,1.6911571025848389,1.7721866369247437,1.8519710302352905,1.9302663803100586,2.0068578720092773,2.0815584659576416,2.1542069911956787,2.224666118621826...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.0000298}.PASS
IIRFilter for Biquad notch equals [0.995445728302002,0.986416757106781,0.9775834679603577,0.9690178632736206,0.9607890248298645,0.9529626369476318,0.9456003904342651,0.9387595653533936,0.9324925541877747,0.926846444606781,0.9218627214431763,0.9175769686698914,0.9140186309814453,0.911210834980011,0.9091701507568359,0.9079066514968872...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.0000422}.PASS
IIRFilter for Biquad peaking equals [1.0055487155914307,1.016571283340454,1.0273985862731934,1.0379409790039062,1.0481117963790894,1.0578278303146362,1.0670100450515747,1.0755844116210938,1.083482265472412,1.090640902519226,1.0970042943954468,1.1025232076644897,1.1071557998657227,1.1108678579330444,1.1136330366134644,1.1154330968856812...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.0000505}.PASS
Max difference between IIR and Biquad on channel 0 is less than or equal to 0.000037671.PASS
Max difference between IIR and Biquad on channel 1 is less than or equal to 0.000030071.PASS
Max difference between IIR and Biquad on channel 2 is less than or equal to 0.000026241.PASS
Output of IIR filter with unnormalized coefficients equals [1,-0.8999999761581421,0.8100000023841858,-0.7289999723434448,0.6560999751091003,-0.5904899835586548,0.5314409732818604,-0.4782969057559967,0.4304672181606293,-0.3874204754829407,0.34867843985557556,-0.3138105869293213,0.2824295461177826,-0.25418657064437866,0.22876793146133423,-0.20589113235473633...] with an element-wise tolerance of {"absoluteThreshold":2.1958e-38,"relativeThreshold":0}.PASS
SNR for IIRFIlter for Biquad allpass is greater than or equal to 91.319.PASS
SNR for IIRFIlter for Biquad bandpass is greater than or equal to 104.06.PASS
SNR for IIRFIlter for Biquad highpass is greater than or equal to 105.459.PASS
SNR for IIRFIlter for Biquad highshelf is greater than or equal to 103.159.PASS
SNR for IIRFIlter for Biquad lowpass is greater than or equal to 91.221.PASS
SNR for IIRFIlter for Biquad lowshelf is greater than or equal to 90.609.PASS
SNR for IIRFIlter for Biquad notch is greater than or equal to 91.312.PASS
SNR for IIRFIlter for Biquad peaking is greater than or equal to 91.504.PASS
SNR of 4-th order IIRFilter (biquad ref) is greater than or equal to 108.947.PASS
createIIRFilter with normalized coefficients did not throw an exception.PASS
createIIRFilter with unnormalized coefficients did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 13 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [0: lowpass] All assertions passed. (total 2 assertions)PASS
< [1: highpass] All assertions passed. (total 2 assertions)PASS
< [2: bandpass] All assertions passed. (total 2 assertions)PASS
< [3: notch] All assertions passed. (total 2 assertions)PASS
< [4: allpass] All assertions passed. (total 2 assertions)PASS
< [4th-order-iir] All assertions passed. (total 2 assertions)PASS
< [5: lowshelf] All assertions passed. (total 2 assertions)PASS
< [6: highshelf] All assertions passed. (total 2 assertions)PASS
< [7: peaking] All assertions passed. (total 2 assertions)PASS
< [coefficient-normalization] All assertions passed. (total 3 assertions)PASS
< [multi-channel] All assertions passed. (total 3 assertions)PASS
< [one-pole] All assertions passed. (total 1 assertions)PASS
< [one-zero] All assertions passed. (total 1 assertions)PASS
> [0: lowpass] PASS
> [1: highpass] PASS
> [2: bandpass] PASS
> [3: notch] PASS
> [4: allpass] PASS
> [4th-order-iir] PASS
> [5: lowshelf] PASS
> [6: highshelf] PASS
> [7: peaking] PASS
> [coefficient-normalization] PASS
> [multi-channel] PASS
> [one-pole] PASS
> [one-zero] PASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html (14/14, 100.00%, 0.24% of total)OK
Creating context for testing did not throw an exception.PASS
Fetching expected audio resolved correctly.PASS
Rendered audio for channel 0 equals [0,0.06262397766113281,0.12503433227539062,0.18695639073848724,0.24811547994613647,0.3083285093307495,0.3673207759857178,0.42487868666648865,0.48075807094573975,0.5347453355789185,0.5866267681121826,0.6362193822860718,0.6833094358444214,0.7277138829231262,0.7692495584487915,0.807763934135437...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.PASS
Rendered audio for channel 1 equals [0,0.12503433227539062,0.24811547994613647,0.3673207759857178,0.48075807094573975,0.5866267681121826,0.6833094358444214,0.7692495584487915,0.843104362487793,0.903744637966156,0.9501937627792358,0.981719434261322,0.9978331923484802,0.9982604384422302,0.983031690120697,0.9523911476135254...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.PASS
Rendered audio for channel 2 equals [0,0.18695639073848724,0.3673207759857178,0.5347453355789185,0.6833094358444214,0.807763934135437,0.903744637966156,0.9678640365600586,0.9978331923484802,0.9926145076751709,0.9523911476135254,0.8785668611526489,0.773766279220581,0.6417127251625061,0.48698386549949646,0.3151036202907562...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.PASS
Rendered audio for channel 3 equals [0,0.24811547994613647,0.48075807094573975,0.6833094358444214,0.843104362487793,0.9501937627792358,0.9978331923484802,0.983031690120697,0.9067659378051758,0.773766279220581,0.5923947691917419,0.3739432990550995,0.13211463391780853,-0.11798095703125,-0.3607177734375,-0.58087158203125...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.PASS
Rendered audio for channel 4 equals [0,0.3083285093307495,0.5866267681121826,0.807763934135437,0.9501937627792358,1,0.9523911476135254,0.8119449615478516,0.5923947691917419,0.3151036202907562,0.007110812701284885,-0.30157470703125,-0.58087158203125,-0.803558349609375,-0.94793701171875,-0.999969482421875...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.PASS
Rendered audio for channel 5 equals [0,0.3673207759857178,0.6833094358444214,0.903744637966156,0.9978331923484802,0.9523911476135254,0.773766279220581,0.48698386549949646,0.13211463391780853,-0.241241455078125,-0.58087158203125,-0.839263916015625,-0.980316162109375,-0.98431396484375,-0.8507080078125,-0.598114013671875...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [initialize] All assertions passed. (total 2 assertions)PASS
< [test] All assertions passed. (total 6 assertions)PASS
> [initialize] PASS
> [test] AudioBufferSource with 5.1 bufferPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquadfilternode-basic.html (27/27, 100.00%, 0.47% of total)OK
Default Q value is equal to 1.PASS
Default filter type is equal to lowpass.PASS
Default frequency value is equal to 350.PASS
Default gain value is equal to 0.PASS
Filter type is is equal to allpass.PASS
Filter type is is equal to bandpass.PASS
Filter type is is equal to highpass.PASS
Filter type is is equal to highshelf.PASS
Filter type is is equal to lowpass.PASS
Filter type is is equal to lowshelf.PASS
Filter type is is equal to notch.PASS
Filter type is is equal to peaking.PASS
Number of inputs is equal to 1.PASS
Number of outputs is equal to 1.PASS
Setting filter.type to (invalid) 99 is not equal to 99.PASS
Setting filter.type to allpass did not throw an exception.PASS
Setting filter.type to bandpass did not throw an exception.PASS
Setting filter.type to highpass did not throw an exception.PASS
Setting filter.type to highshelf did not throw an exception.PASS
Setting filter.type to lowpass did not throw an exception.PASS
Setting filter.type to lowshelf did not throw an exception.PASS
Setting filter.type to notch did not throw an exception.PASS
Setting filter.type to peaking did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 23 assertions)PASS
> [test] Basic tests for BiquadFilterNodePASS
/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueCurveAtTime.html (7/7, 100.00%, 0.12% of total)OK
Reference[0:127] contains only the constant 1.PASS
Test[0:127] contains only the constant 1.PASS
Test[128:] is identical to the array [1,0.9999450445175171,0.999890148639679,0.999835193157196,0.9997802972793579,0.999725341796875,0.9996703863143921,0.999615490436554,0.999560534954071,0.9995056390762329,0.99945068359375,0.9993957281112671,0.999340832233429,0.999285876750946,0.9992309808731079,0.999176025390625...].PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Test SetValueCurve with start time in the pastPASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-setBuffer-already-has-value.html (10/10, 100.00%, 0.17% of total)OK
Set buffer a second time did not throw an exception.PASS
Set buffer first normally did not throw an exception.PASS
Set buffer to non-null to verify it is set did not throw an exception.PASS
Set buffer to null again, to make sure did not throw an exception.PASS
Set buffer to null before set non-null did not throw an exception.PASS
Set buffer to null did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 6 assertions)PASS
> [test] PASS
/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-sizing.html (41/41, 100.00%, 0.71% of total)OK
Setting fftSize to -1 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (4294967295) is outside the range [32, 32768].".PASS
Setting fftSize to 0 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (0) is outside the range [32, 32768].".PASS
Setting fftSize to 1 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (1) is outside the range [32, 32768].".PASS
Setting fftSize to 1024 did not throw an exception.PASS
Setting fftSize to 1025 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (1025) is not a power of two.".PASS
Setting fftSize to 128 did not throw an exception.PASS
Setting fftSize to 129 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (129) is not a power of two.".PASS
Setting fftSize to 131072 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (131072) is outside the range [32, 32768].".PASS
Setting fftSize to 131073 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (131073) is outside the range [32, 32768].".PASS
Setting fftSize to 16 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (16) is outside the range [32, 32768].".PASS
Setting fftSize to 16384 did not throw an exception.PASS
Setting fftSize to 16385 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (16385) is not a power of two.".PASS
Setting fftSize to 17 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (17) is outside the range [32, 32768].".PASS
Setting fftSize to 2 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (2) is outside the range [32, 32768].".PASS
Setting fftSize to 2048 did not throw an exception.PASS
Setting fftSize to 2049 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (2049) is not a power of two.".PASS
Setting fftSize to 256 did not throw an exception.PASS
Setting fftSize to 257 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (257) is not a power of two.".PASS
Setting fftSize to 3 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (3) is outside the range [32, 32768].".PASS
Setting fftSize to 32 did not throw an exception.PASS
Setting fftSize to 32768 did not throw an exception.PASS
Setting fftSize to 32769 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (32769) is outside the range [32, 32768].".PASS
Setting fftSize to 33 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (33) is not a power of two.".PASS
Setting fftSize to 4 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (4) is outside the range [32, 32768].".PASS
Setting fftSize to 4096 did not throw an exception.PASS
Setting fftSize to 4097 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (4097) is not a power of two.".PASS
Setting fftSize to 5 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (5) is outside the range [32, 32768].".PASS
Setting fftSize to 512 did not throw an exception.PASS
Setting fftSize to 513 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (513) is not a power of two.".PASS
Setting fftSize to 64 did not throw an exception.PASS
Setting fftSize to 65 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (65) is not a power of two.".PASS
Setting fftSize to 65536 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (65536) is outside the range [32, 32768].".PASS
Setting fftSize to 65537 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (65537) is outside the range [32, 32768].".PASS
Setting fftSize to 8 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (8) is outside the range [32, 32768].".PASS
Setting fftSize to 8192 did not throw an exception.PASS
Setting fftSize to 8193 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (8193) is not a power of two.".PASS
Setting fftSize to 9 threw IndexSizeError: "Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (9) is outside the range [32, 32768].".PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [FFT size test] All assertions passed. (total 37 assertions)PASS
> [FFT size test] Test that re-sizing the FFT arrays does not fail.PASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html (8/8, 100.00%, 0.14% of total)OK
The expected output channel count is equal to 17.PASS
The expected output channel count is equal to 2.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Dynamically change the channel count to if unspecified.] All assertions passed. (total 1 assertions)PASS
< [Givien outputChannelCount must be honored.] All assertions passed. (total 1 assertions)PASS
> [Dynamically change the channel count to if unspecified.] PASS
> [Givien outputChannelCount must be honored.] PASS
/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html (10/10, 100.00%, 0.17% of total)OK
Recorded channel #0 contains only the constant 0.PASS
Recorded channel #1 contains only the constant 0.PASS
Recorded channel #2 contains only the constant 0.PASS
Recorded channel #3 contains only the constant 0.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [setting-up-graph] All assertions passed. (total 0 assertions)PASS
< [start-playback-and-capture] All assertions passed. (total 4 assertions)PASS
> [setting-up-graph] PASS
> [start-playback-and-capture] PASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-notch.html (7/7, 100.00%, 0.12% of total)OK
Max error in Notch filter response is less than or equal to 1.9669e-8.PASS
Number of filters tested is equal to 4.PASS
Number of non-finite values in the rendered output is equal to 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Biquad notch filterPASS
/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation.html (1/1, 100.00%, 0.02% of total)OK
PannerNode AudioParam automation works properlyPASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-exponentialRampToValueAtTime.html (106/106, 100.00%, 1.84% of total)OK
Max error for test 0 at offset 126 is less than or equal to 0.00001222.PASS
Max error for test 1 at offset 1535 is less than or equal to 0.00001222.PASS
Max error for test 10 at offset 14462 is less than or equal to 0.00001222.PASS
Max error for test 11 at offset 14719 is less than or equal to 0.00001222.PASS
Max error for test 12 at offset 15999 is less than or equal to 0.00001222.PASS
Max error for test 13 at offset 17919 is less than or equal to 0.00001222.PASS
Max error for test 14 at offset 18686 is less than or equal to 0.00001222.PASS
Max error for test 15 at offset 21119 is less than or equal to 0.00001222.PASS
Max error for test 16 at offset 21375 is less than or equal to 0.00001222.PASS
Max error for test 17 at offset 23807 is less than or equal to 0.00001222.PASS
Max error for test 18 at offset 23935 is less than or equal to 0.00001222.PASS
Max error for test 19 at offset 26367 is less than or equal to 0.00001222.PASS
Max error for test 2 at offset 3967 is less than or equal to 0.00001222.PASS
Max error for test 20 at offset 26623 is less than or equal to 0.00001222.PASS
Max error for test 21 at offset 29055 is less than or equal to 0.00001222.PASS
Max error for test 22 at offset 29311 is less than or equal to 0.00001222.PASS
Max error for test 23 at offset 31743 is less than or equal to 0.00001222.PASS
Max error for test 24 at offset 31998 is less than or equal to 0.00001222.PASS
Max error for test 25 at offset 34175 is less than or equal to 0.00001222.PASS
Max error for test 26 at offset 34558 is less than or equal to 0.00001222.PASS
Max error for test 27 at offset 36351 is less than or equal to 0.00001222.PASS
Max error for test 28 at offset 37247 is less than or equal to 0.00001222.PASS
Max error for test 29 at offset 39679 is less than or equal to 0.00001222.PASS
Max error for test 3 at offset 5247 is less than or equal to 0.00001222.PASS
Max error for test 30 at offset 40703 is less than or equal to 0.00001222.PASS
Max error for test 31 at offset 41599 is less than or equal to 0.00001222.PASS
Max error for test 32 at offset 43646 is less than or equal to 0.00001222.PASS
Max error for test 33 at offset 44415 is less than or equal to 0.00001222.PASS
Max error for test 34 at offset 45183 is less than or equal to 0.00001222.PASS
Max error for test 35 at offset 47103 is less than or equal to 0.00001222.PASS
Max error for test 36 at offset 48895 is less than or equal to 0.00001222.PASS
Max error for test 37 at offset 49151 is less than or equal to 0.00001222.PASS
Max error for test 38 at offset 51583 is less than or equal to 0.00001222.PASS
Max error for test 39 at offset 52735 is less than or equal to 0.00001222.PASS
Max error for test 4 at offset 5503 is less than or equal to 0.00001222.PASS
Max error for test 40 at offset 53247 is less than or equal to 0.00001222.PASS
Max error for test 41 at offset 54527 is less than or equal to 0.00001222.PASS
Max error for test 42 at offset 56447 is less than or equal to 0.00001222.PASS
Max error for test 43 at offset 57215 is less than or equal to 0.00001222.PASS
Max error for test 44 at offset 58879 is less than or equal to 0.00001222.PASS
Max error for test 45 at offset 59775 is less than or equal to 0.00001222.PASS
Max error for test 46 at offset 61695 is less than or equal to 0.00001222.PASS
Max error for test 47 at offset 62335 is less than or equal to 0.00001222.PASS
Max error for test 48 at offset 64255 is less than or equal to 0.00001222.PASS
Max error for test 49 at offset 65151 is less than or equal to 0.00001222.PASS
Max error for test 5 at offset 7679 is less than or equal to 0.00001222.PASS
Max error for test 50 at offset 67455 is less than or equal to 0.00001222.PASS
Max error for test 51 at offset 67711 is less than or equal to 0.00001222.PASS
Max error for test 52 at offset 69630 is less than or equal to 0.00001222.PASS
Max error for test 53 at offset 70527 is less than or equal to 0.00001222.PASS
Max error for test 54 at offset 72063 is less than or equal to 0.00001222.PASS
Max error for test 55 at offset 73087 is less than or equal to 0.00001222.PASS
Max error for test 56 at offset 74879 is less than or equal to 0.00001222.PASS
Max error for test 57 at offset 76671 is less than or equal to 0.00001222.PASS
Max error for test 58 at offset 77935 is less than or equal to 0.00001222.PASS
Max error for test 59 at offset 78463 is less than or equal to 0.00001222.PASS
Max error for test 6 at offset 8063 is less than or equal to 0.00001222.PASS
Max error for test 60 at offset 80382 is less than or equal to 0.00001222.PASS
Max error for test 61 at offset 81151 is less than or equal to 0.00001222.PASS
Max error for test 62 at offset 82175 is less than or equal to 0.00001222.PASS
Max error for test 63 at offset 83839 is less than or equal to 0.00001222.PASS
Max error for test 64 at offset 85247 is less than or equal to 0.00001222.PASS
Max error for test 65 at offset 86143 is less than or equal to 0.00001222.PASS
Max error for test 66 at offset 88063 is less than or equal to 0.00001222.PASS
Max error for test 67 at offset 89087 is less than or equal to 0.00001222.PASS
Max error for test 68 at offset 91262 is less than or equal to 0.00001222.PASS
Max error for test 69 at offset 92287 is less than or equal to 0.00001222.PASS
Max error for test 7 at offset 9471 is less than or equal to 0.00001222.PASS
Max error for test 70 at offset 93822 is less than or equal to 0.00001222.PASS
Max error for test 71 at offset 94975 is less than or equal to 0.00001222.PASS
Max error for test 72 at offset 95448 is less than or equal to 0.00001222.PASS
Max error for test 73 at offset 96891 is less than or equal to 0.00001222.PASS
Max error for test 74 at offset 98687 is less than or equal to 0.00001222.PASS
Max error for test 75 at offset 99839 is less than or equal to 0.00001222.PASS
Max error for test 76 at offset 100990 is less than or equal to 0.00001222.PASS
Max error for test 77 at offset 102782 is less than or equal to 0.00001222.PASS
Max error for test 78 at offset 104447 is less than or equal to 0.00001222.PASS
Max error for test 79 at offset 105710 is less than or equal to 0.00001222.PASS
Max error for test 8 at offset 11902 is less than or equal to 0.00001222.PASS
Max error for test 80 at offset 107132 is less than or equal to 0.00001222.PASS
Max error for test 81 at offset 107363 is less than or equal to 0.00001222.PASS
Max error for test 82 at offset 108799 is less than or equal to 0.00001222.PASS
Max error for test 83 at offset 110438 is less than or equal to 0.00001222.PASS
Max error for test 84 at offset 112112 is less than or equal to 0.00001222.PASS
Max error for test 85 at offset 113201 is less than or equal to 0.00001222.PASS
Max error for test 86 at offset 115071 is less than or equal to 0.00001222.PASS
Max error for test 87 at offset 115839 is less than or equal to 0.00001222.PASS
Max error for test 88 at offset 117375 is less than or equal to 0.00001222.PASS
Max error for test 89 at offset 118902 is less than or equal to 0.00001222.PASS
Max error for test 9 at offset 13183 is less than or equal to 0.00001222.PASS
Max error for test 90 at offset 120188 is less than or equal to 0.00001222.PASS
Max error for test 91 at offset 121215 is less than or equal to 0.00001222.PASS
Max error for test 92 at offset 123007 is less than or equal to 0.00001222.PASS
Max error for test 93 at offset 123390 is less than or equal to 0.00001222.PASS
Max error for test 94 at offset 124923 is less than or equal to 0.00001222.PASS
Max error for test 95 at offset 125943 is less than or equal to 0.00001222.PASS
Max error for test 96 at offset 127861 is less than or equal to 0.00001222.PASS
Max error for test 97 at offset 129532 is less than or equal to 0.00001222.PASS
Max error for test 98 at offset 130551 is less than or equal to 0.00001222.PASS
Max error for test 99 at offset 131322 is less than or equal to 0.00001222.PASS
Number of failed tests with an acceptable relative tolerance of 0.00001222 is equal to 0.PASS
Number of tests started and ended at the correct time is equal to 100.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 102 assertions)PASS
> [test] AudioParam exponentialRampToValueAtTime() functionalityPASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-setBuffer-null.html (6/6, 100.00%, 0.10% of total)OK
Setting ConvolverNode impulse response buffer to null did not throw an exception.PASS
conv.buffer === null is true.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 2 assertions)PASS
> [test] PASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-cascade.html (5/5, 100.00%, 0.09% of total)OK
Output of cascaded mono convolvers is not constantly 0 (contains 1996 different values).PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [cascade-mono] All assertions passed. (total 1 assertions)PASS
> [cascade-mono] Cascaded mono convolversPASS
/webaudio/the-audio-api/the-dynamicscompressornode-interface/dynamicscompressor-basic.html (11/11, 100.00%, 0.19% of total)OK
compressor.attack.value is equal to 0.003000000026077032.PASS
compressor.knee.value is equal to 30.PASS
compressor.ratio.value is equal to 12.PASS
compressor.reduction is equal to 0.PASS
compressor.release.value is equal to 0.25.PASS
compressor.threshold.value is equal to -24.PASS
typeof compressor.reduction is equal to number.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 7 assertions)PASS
> [test] Basic tests for DynamicsCompressorNode APIPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-basic.html (24/24, 100.00%, 0.42% of total)OK
Initialize context for testing did not throw an exception.PASS
channelCountMode is equal to max.PASS
channelInterpretation is equal to speakers.PASS
context.createBiquadFilter does exist.PASS
createBiquadFilter() did not throw an exception.PASS
getFrequencyResponse(new Float32Array(1), new Float32Array(1), null) threw TypeError: "Failed to execute 'getFrequencyResponse' on 'BiquadFilterNode': parameter 3 is not of type 'Float32Array'.".PASS
getFrequencyResponse(new Float32Array(1), null, new Float32Array(1)) threw TypeError: "Failed to execute 'getFrequencyResponse' on 'BiquadFilterNode': parameter 2 is not of type 'Float32Array'.".PASS
getFrequencyResponse(new Float32Array(10), new Float32Array(1), new Float32Array(20)) threw InvalidAccessError: "Failed to execute 'getFrequencyResponse' on 'BiquadFilterNode': The magResponse length provided (1) is outside the range [10, 10].".PASS
getFrequencyResponse(new Float32Array(10), new Float32Array(20), new Float32Array(1)) threw InvalidAccessError: "Failed to execute 'getFrequencyResponse' on 'BiquadFilterNode': The magResponse length provided (20) is outside the range [10, 10].".PASS
getFrequencyResponse(null, new Float32Array(1), new Float32Array(1)) threw TypeError: "Failed to execute 'getFrequencyResponse' on 'BiquadFilterNode': parameter 1 is not of type 'Float32Array'.".PASS
numberOfInputs is equal to 1.PASS
numberOfOutputs is equal to 1.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [exceptions-createBiquadFilter] All assertions passed. (total 1 assertions)PASS
< [exceptions-getFrequencyData] All assertions passed. (total 5 assertions)PASS
< [existence] All assertions passed. (total 1 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [parameters] All assertions passed. (total 4 assertions)PASS
> [exceptions-createBiquadFilter] PASS
> [exceptions-getFrequencyData] PASS
> [existence] PASS
> [initialize] PASS
> [parameters] PASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-ended.html (5/5, 100.00%, 0.09% of total)OK
source.onended called is true.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [AudioBufferSourceNode calls its onended EventListener] All assertions passed. (total 1 assertions)PASS
> [AudioBufferSourceNode calls its onended EventListener] PASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html (6/6, 100.00%, 0.10% of total)OK
event.data from main thread is an instance of SharedArrayBuffer is true.PASS
event.data.sab from worklet is an instance of SharedArrayBuffer is true.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Test postMessage from AudioWorkletProcessor to AudioWorkletNode] All assertions passed. (total 2 assertions)PASS
> [Test postMessage from AudioWorkletProcessor to AudioWorkletNode] PASS
/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator.html (8/8, 100.00%, 0.14% of total)OK
k-rate detune: Difference between a-rate and k-rate outputs is not constantly 0 (contains 510 different values).PASS
k-rate frequency: Difference between a-rate and k-rate outputs is not constantly 0 (contains 510 different values).PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Oscillator k-rate detune] All assertions passed. (total 1 assertions)PASS
< [Oscillator k-rate frequency] All assertions passed. (total 1 assertions)PASS
> [Oscillator k-rate detune] PASS
> [Oscillator k-rate frequency] PASS
/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-onended.html (1/1, 100.00%, 0.02% of total)OK
ConstantSourceNode onended event firedPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-peaking.html (7/7, 100.00%, 0.12% of total)OK
Max error in Peaking filter response is less than or equal to 5.8234e-8.PASS
Number of filters tested is equal to 4.PASS
Number of non-finite values in the rendered output is equal to 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Biquad peaking filterPASS
/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default.html (29/29, 100.00%, 0.50% of total)OK
1-channel source: Channel #0 contains only the constant 0.PASS
1-channel source: Channel #1 contains only the constant 0.PASS
1-channel source: Channel #2 contains only the constant 0.PASS
1-channel source: Channel #3 contains only the constant 0.PASS
1-channel source: Channel #4 contains only the constant 0.PASS
1-channel source: Channel #5 contains only the constant 0.PASS
1-channel source: Channel #6 contains only the constant 1.PASS
2-channel source: Channel #0 contains only the constant 0.PASS
2-channel source: Channel #1 contains only the constant 0.PASS
2-channel source: Channel #2 contains only the constant 0.PASS
2-channel source: Channel #3 contains only the constant 0.PASS
2-channel source: Channel #4 contains only the constant 0.PASS
2-channel source: Channel #5 contains only the constant 0.PASS
2-channel source: Channel #6 contains only the constant 1.5.PASS
3-channel source: Channel #0 contains only the constant 0.PASS
3-channel source: Channel #1 contains only the constant 0.PASS
3-channel source: Channel #2 contains only the constant 0.PASS
3-channel source: Channel #3 contains only the constant 0.PASS
3-channel source: Channel #4 contains only the constant 0.PASS
3-channel source: Channel #5 contains only the constant 0.PASS
3-channel source: Channel #6 contains only the constant 1.PASS
# AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [silent-channel] All assertions passed. (total 7 assertions)PASS
< [stereo-down-mixing] All assertions passed. (total 7 assertions)PASS
< [undefined-channel-layout] All assertions passed. (total 7 assertions)PASS
> [silent-channel] PASS
> [stereo-down-mixing] PASS
> [undefined-channel-layout] PASS
/webaudio/the-audio-api/the-iirfilternode-interface/ctor-iirfilter.html (48/48, 100.00%, 0.84% of total)OK
Output of filter using new IIRFilter(...) is identical to the array [0,0.05756402015686035,0.1437191516160965,0.21500658988952637,0.29277655482292175,0.36597785353660583,0.4397642910480499,0.511192798614502,0.5813756585121155,0.6494057774543762,0.7153944969177246,0.7789546847343445,0.8399595618247986,0.8981648087501526,0.9533984661102295,1.0054665803909302...].PASS
context = new OfflineAudioContext(...) did not throw an exception.PASS
new IIRFilterNode() threw TypeError: "Failed to construct 'IIRFilterNode': 2 arguments required, but only 0 present.".PASS
new IIRFilterNode(1) threw TypeError: "Failed to construct 'IIRFilterNode': 2 arguments required, but only 1 present.".PASS
new IIRFilterNode(c, {channelCount: 0}) threw NotSupportedError: "Failed to construct 'IIRFilterNode': The channel count provided (0) is outside the range [1, 32].".PASS
new IIRFilterNode(c, {channelCount: 17}} did not throw an exception.PASS
new IIRFilterNode(c, {channelCount: 99}) threw NotSupportedError: "Failed to construct 'IIRFilterNode': The channel count provided (99) is outside the range [1, 32].".PASS
new IIRFilterNode(c, {channelCountMode: "clamped-max"}) did not throw an exception.PASS
new IIRFilterNode(c, {channelCountMode: "explicit"}) did not throw an exception.PASS
new IIRFilterNode(c, {channelCountMode: "foobar"} threw TypeError: "Failed to construct 'IIRFilterNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
new IIRFilterNode(c, {channelCountMode: "max"} did not throw an exception.PASS
new IIRFilterNode(c, {channelCountMode: "max"}) did not throw an exception.PASS
new IIRFilterNode(c, {channelInterpretation: "discrete"}) did not throw an exception.PASS
new IIRFilterNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Failed to construct 'IIRFilterNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new IIRFilterNode(c, {channelInterpretation: "speakers"}) did not throw an exception.PASS
new IIRFilterNode(context, 42) threw TypeError: "Failed to construct 'IIRFilterNode': parameter 2 ('options') is not an object.".PASS
node = new IIRFilterNode(, {"feedback":[1,0.5]}) threw TypeError: "Failed to construct 'IIRFilterNode': required member feedforward is undefined.".PASS
node = new IIRFilterNode(c, {"feedforward":[1,0.5]}) threw TypeError: "Failed to construct 'IIRFilterNode': required member feedback is undefined.".PASS
node.channelCount is equal to 17.PASS
node.channelCountMode after invalid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to clamped-max.PASS
node.channelCountMode after valid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to max.PASS
node.channelCountMode is equal to max.PASS
node.channelInterpretation after invalid setter is equal to discrete.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node0 = new IIRFilterNode(context, {"feedforward":[1],"feedback":[1,-0.9]}) did not throw an exception.PASS
node0 instanceof IIRFilterNode is equal to true.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 1.PASS
# AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor options] All assertions passed. (total 2 assertions)PASS
< [default constructor] All assertions passed. (total 7 assertions)PASS
< [functionality] All assertions passed. (total 1 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 20 assertions)PASS
> [constructor options] PASS
> [default constructor] PASS
> [functionality] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic.html (130/130, 100.00%, 2.26% of total)OK
Mono listener.positionX.value frame [0, 128) channel 0 contains only the constant 0.7071067690849304.PASS
Mono listener.positionX.value frame [0, 128) channel 1 contains only the constant 0.7071067690849304.PASS
Mono listener.positionX.value frame [128, 256) channel 0 contains only the constant 0.00010001000191550702.PASS
Mono listener.positionX.value frame [128, 256) channel 1 contains only the constant 0.PASS
Mono listener.positionX: Output at frame 128 channel 0 is not equal to 0.7071067690849304.PASS
Mono listener.positionX: Output at frame 128 channel 1 is not equal to 0.7071067690849304.PASS
Mono listener.positionY.value frame [0, 128) channel 0 contains only the constant 0.22094237804412842.PASS
Mono listener.positionY.value frame [0, 128) channel 1 contains only the constant 0.5334020853042603.PASS
Mono listener.positionY.value frame [128, 256) channel 0 contains only the constant 0.00003826833926723339.PASS
Mono listener.positionY.value frame [128, 256) channel 1 contains only the constant 0.00009238795610144734.PASS
Mono listener.positionY: Output at frame 128 channel 0 is not equal to 0.22094237804412842.PASS
Mono listener.positionY: Output at frame 128 channel 1 is not equal to 0.5334020853042603.PASS
Mono listener.positionZ.value frame [0, 128) channel 0 contains only the constant 6.123234262925839e-17.PASS
Mono listener.positionZ.value frame [0, 128) channel 1 contains only the constant 1.PASS
Mono listener.positionZ.value frame [128, 256) channel 0 contains only the constant 0.00007071421714499593.PASS
Mono listener.positionZ.value frame [128, 256) channel 1 contains only the constant 0.0000707212820998393.PASS
Mono listener.positionZ: Output at frame 128 channel 0 is not equal to 6.123234262925839e-17.PASS
Mono listener.positionZ: Output at frame 128 channel 1 is not equal to 1.PASS
Mono panner.positionX.value frame [0, 128) channel 0 contains only the constant 6.123234262925839e-17.PASS
Mono panner.positionX.value frame [0, 128) channel 1 contains only the constant 1.PASS
Mono panner.positionX.value frame [128, 256) channel 0 contains only the constant 6.123233968888981e-21.PASS
Mono panner.positionX.value frame [128, 256) channel 1 contains only the constant 0.00009999999747378752.PASS
Mono panner.positionX: Output at frame 128 channel 0 is not equal to 6.123234262925839e-17.PASS
Mono panner.positionX: Output at frame 128 channel 1 is not equal to 1.PASS
Mono panner.positionY.value frame [0, 128) channel 0 contains only the constant 6.123234262925839e-17.PASS
Mono panner.positionY.value frame [0, 128) channel 1 contains only the constant 1.PASS
Mono panner.positionY.value frame [128, 256) channel 0 contains only the constant 6.123233968888981e-21.PASS
Mono panner.positionY.value frame [128, 256) channel 1 contains only the constant 0.00009999999747378752.PASS
Mono panner.positionY: Output at frame 128 channel 0 is not equal to 6.123234262925839e-17.PASS
Mono panner.positionY: Output at frame 128 channel 1 is not equal to 1.PASS
Mono panner.positionZ.value frame [0, 128) channel 0 contains only the constant 0.7071067690849304.PASS
Mono panner.positionZ.value frame [0, 128) channel 1 contains only the constant 0.7071067690849304.PASS
Mono panner.positionZ.value frame [128, 256) channel 0 contains only the constant 0.00007071067375363782.PASS
Mono panner.positionZ.value frame [128, 256) channel 1 contains only the constant 0.00007071067375363782.PASS
Mono panner.positionZ: Output at frame 128 channel 0 is not equal to 0.7071067690849304.PASS
Mono panner.positionZ: Output at frame 128 channel 1 is not equal to 0.7071067690849304.PASS
Stereo listener.positionX.value frame [0, 128) channel 0 contains only the constant 1.PASS
Stereo listener.positionX.value frame [0, 128) channel 1 contains only the constant 2.PASS
Stereo listener.positionX.value frame [128, 256) channel 0 contains only the constant 0.00030002999119460583.PASS
Stereo listener.positionX.value frame [128, 256) channel 1 contains only the constant 0.PASS
Stereo listener.positionX: Output at frame 128 channel 0 is not equal to 1.PASS
Stereo listener.positionX: Output at frame 128 channel 1 is not equal to 2.PASS
Stereo listener.positionY.value frame [0, 128) channel 0 contains only the constant 0.40824827551841736.PASS
Stereo listener.positionY.value frame [0, 128) channel 1 contains only the constant 1.5629488229751587.PASS
Stereo listener.positionY.value frame [128, 256) channel 0 contains only the constant 0.0000707106664776802.PASS
Stereo listener.positionY.value frame [128, 256) channel 1 contains only the constant 0.00027071067597717047.PASS
Stereo listener.positionY: Output at frame 128 channel 0 is not equal to 0.40824827551841736.PASS
Stereo listener.positionY: Output at frame 128 channel 1 is not equal to 1.5629488229751587.PASS
Stereo listener.positionZ.value frame [0, 128) channel 0 contains only the constant 6.123234262925839e-17.PASS
Stereo listener.positionZ.value frame [0, 128) channel 1 contains only the constant 3.PASS
Stereo listener.positionZ.value frame [128, 256) channel 0 contains only the constant 0.00010001000191550702.PASS
Stereo listener.positionZ.value frame [128, 256) channel 1 contains only the constant 0.00020003000099677593.PASS
Stereo listener.positionZ: Output at frame 128 channel 0 is not equal to 6.123234262925839e-17.PASS
Stereo listener.positionZ: Output at frame 128 channel 1 is not equal to 3.PASS
Stereo panner.positionX.value frame [0, 128) channel 0 contains only the constant 6.123234262925839e-17.PASS
Stereo panner.positionX.value frame [0, 128) channel 1 contains only the constant 3.PASS
Stereo panner.positionX.value frame [128, 256) channel 0 contains only the constant 6.123233968888981e-21.PASS
Stereo panner.positionX.value frame [128, 256) channel 1 contains only the constant 0.00029999998514540493.PASS
Stereo panner.positionX: Output at frame 128 channel 0 is not equal to 6.123234262925839e-17.PASS
Stereo panner.positionX: Output at frame 128 channel 1 is not equal to 3.PASS
Stereo panner.positionY.value frame [0, 128) channel 0 contains only the constant 6.123234262925839e-17.PASS
Stereo panner.positionY.value frame [0, 128) channel 1 contains only the constant 3.PASS
Stereo panner.positionY.value frame [128, 256) channel 0 contains only the constant 6.123233968888981e-21.PASS
Stereo panner.positionY.value frame [128, 256) channel 1 contains only the constant 0.00029999998514540493.PASS
Stereo panner.positionY: Output at frame 128 channel 0 is not equal to 6.123234262925839e-17.PASS
Stereo panner.positionY: Output at frame 128 channel 1 is not equal to 3.PASS
Stereo panner.positionZ.value frame [0, 128) channel 0 contains only the constant 1.PASS
Stereo panner.positionZ.value frame [0, 128) channel 1 contains only the constant 2.PASS
Stereo panner.positionZ.value frame [128, 256) channel 0 contains only the constant 0.00009999999747378752.PASS
Stereo panner.positionZ.value frame [128, 256) channel 1 contains only the constant 0.00019999999494757503.PASS
Stereo panner.positionZ: Output at frame 128 channel 0 is not equal to 1.PASS
Stereo panner.positionZ: Output at frame 128 channel 1 is not equal to 2.PASS
listener.forward{XYZ}.value frame [0, 128) channel 0 contains only the constant 0.5005000233650208.PASS
listener.forward{XYZ}.value frame [0, 128) channel 1 contains only the constant 1.0010000467300415.PASS
listener.forward{XYZ}.value frame [128, 256) channel 0 contains only the constant 0.5133963823318481.PASS
listener.forward{XYZ}.value frame [128, 256) channel 1 contains only the constant 1.0009169578552246.PASS
listener.forward{XYZ}: Output at frame 128 channel 0 is not equal to 0.5005000233650208.PASS
listener.forward{XYZ}: Output at frame 128 channel 1 is not equal to 1.0010000467300415.PASS
listener.up{XYZ}.value frame [0, 128) channel 0 contains only the constant 0.12537498772144318.PASS
listener.up{XYZ}.value frame [0, 128) channel 1 contains only the constant 0.47998905181884766.PASS
listener.up{XYZ}.value frame [128, 256) channel 0 contains only the constant 0.1447705775499344.PASS
listener.up{XYZ}.value frame [128, 256) channel 1 contains only the constant 0.4569823145866394.PASS
listener.up{XYZ}: Output at frame 128 channel 0 is not equal to 0.12537498772144318.PASS
listener.up{XYZ}: Output at frame 128 channel 1 is not equal to 0.47998905181884766.PASS
panner.orientation{XYZ}.value frame [0, 128) channel 0 contains only the constant 0.5005000233650208.PASS
panner.orientation{XYZ}.value frame [0, 128) channel 1 contains only the constant 1.0010000467300415.PASS
panner.orientation{XYZ}.value frame [128, 256) channel 0 contains only the constant 0.07899462431669235.PASS
panner.orientation{XYZ}.value frame [128, 256) channel 1 contains only the constant 0.1579892486333847.PASS
panner.orientation{XYZ}: Output at frame 128 channel 0 is not equal to 0.5005000233650208.PASS
panner.orientation{XYZ}: Output at frame 128 channel 1 is not equal to 1.0010000467300415.PASS
setPosition.value frame [0, 128) channel 0 contains only the constant 0.40824827551841736.PASS
setPosition.value frame [0, 128) channel 1 contains only the constant 1.5629488229751587.PASS
setPosition.value frame [128, 256) channel 0 contains only the constant 0.000124290119856596.PASS
setPosition.value frame [128, 256) channel 1 contains only the constant 0.0002424988488201052.PASS
setPosition: Output at frame 128 channel 0 is not equal to 0.40824827551841736.PASS
setPosition: Output at frame 128 channel 1 is not equal to 1.5629488229751587.PASS
# AUDIT TASK RUNNER FINISHED: 16 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Mono listener.positionX] All assertions passed. (total 6 assertions)PASS
< [Mono listener.positionY] All assertions passed. (total 6 assertions)PASS
< [Mono listener.positionZ] All assertions passed. (total 6 assertions)PASS
< [Mono panner.positionX] All assertions passed. (total 6 assertions)PASS
< [Mono panner.positionY] All assertions passed. (total 6 assertions)PASS
< [Mono panner.positionZ] All assertions passed. (total 6 assertions)PASS
< [Stereo listener.positionX] All assertions passed. (total 6 assertions)PASS
< [Stereo listener.positionY] All assertions passed. (total 6 assertions)PASS
< [Stereo listener.positionZ] All assertions passed. (total 6 assertions)PASS
< [Stereo panner.positionX] All assertions passed. (total 6 assertions)PASS
< [Stereo panner.positionY] All assertions passed. (total 6 assertions)PASS
< [Stereo panner.positionZ] All assertions passed. (total 6 assertions)PASS
< [forward setter] All assertions passed. (total 6 assertions)PASS
< [orientation setter] All assertions passed. (total 6 assertions)PASS
< [setPosition] All assertions passed. (total 6 assertions)PASS
< [up setter] All assertions passed. (total 6 assertions)PASS
> [Mono listener.positionX] PASS
> [Mono listener.positionY] PASS
> [Mono listener.positionZ] PASS
> [Mono panner.positionX] PASS
> [Mono panner.positionY] PASS
> [Mono panner.positionZ] PASS
> [Stereo listener.positionX] PASS
> [Stereo listener.positionY] PASS
> [Stereo listener.positionZ] PASS
> [Stereo panner.positionX] PASS
> [Stereo panner.positionY] PASS
> [Stereo panner.positionZ] PASS
> [forward setter] PASS
> [orientation setter] PASS
> [setPosition] PASS
> [up setter] PASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-grain.html (5/5, 100.00%, 0.09% of total)OK
Buffer was played is true.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Test setting the source buffer after starting the grain] All assertions passed. (total 1 assertions)PASS
> [Test setting the source buffer after starting the grain] PASS
/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam.html (17/17, 100.00%, 0.30% of total)OK
Channel #0 contains all the expected values in the correct order: [2.25,1.5].PASS
Channel #0 contains all the expected values in the correct order: [3,1.5].PASS
Channel #1 contains all the expected values in the correct order: [6,3].PASS
The index of value change in channel #0 is equal to 11008.PASS
The index of value change in channel #1 is equal to 11008.PASS
The index of value change is equal to 11008.PASS
gain1.disconnect(gain3.gain) threw InvalidAccessError: "Failed to execute 'disconnect' on 'AudioNode': the given AudioParam is not connected.".PASS
splitter.disconnect(gain1.gain, 1) threw InvalidAccessError: "Failed to execute 'disconnect' on 'AudioNode': specified destination AudioParam and node output (1) are not connected.".PASS
splitter.disconnect(gain1.gain, 2) threw IndexSizeError: "Failed to execute 'disconnect' on 'AudioNode': The output index provided (2) is outside the range [0, 1].".PASS
# AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [disconnect(AudioParam)] All assertions passed. (total 2 assertions)PASS
< [disconnect(AudioParam, output)] All assertions passed. (total 4 assertions)PASS
< [exceptions] All assertions passed. (total 3 assertions)PASS
> [disconnect(AudioParam)] PASS
> [disconnect(AudioParam, output)] PASS
> [exceptions] PASS
/webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic.html (10/10, 100.00%, 0.17% of total)OK
After rendering node.channelCountMode is equal to explicit.PASS
After rendering node.channelInterpretation is equal to discrete.PASS
node.channelCountMode is equal to explicit.PASS
node.channelInterpretation is equal to discrete.PASS
# AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [interp] All assertions passed. (total 2 assertions)PASS
< [mode] All assertions passed. (total 2 assertions)PASS
> [interp] PASS
> [mode] PASS
/webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html (7/7, 100.00%, 0.12% of total)OK
WaveShaperNode - Testing a 2-element curve (does not have a middle element)PASS
WaveShaperNode - Testing a 4-element curve (does not have a middle element)PASS
WaveShaperNode - Testing a huge curvePASS
WaveShaperNode - Testing interpolation (where inputs don't correlate directly to curve elements)PASS
WaveShaperNode - Testing null curve (should return input values)PASS
WaveShaperNode - Testing out-of-range inputs (should be mapped to the first/last elements of the curve)PASS
WaveShaperNode - Testing that -1, 0 and +1 map correctly to curve (with 1:1 correlation)PASS
/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html (1/1, 100.00%, 0.02% of total)TIMEOUT
Element Source tests completedNOTRUN
/webaudio/the-audio-api/the-constantsourcenode-interface/ctor-constantsource.html (20/20, 100.00%, 0.35% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new ConstantSourceNode() threw TypeError: "Failed to construct 'ConstantSourceNode': 1 argument required, but only 0 present.".PASS
new ConstantSourceNode(1) threw TypeError: "Failed to construct 'ConstantSourceNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new ConstantSourceNode(context, 42) threw TypeError: "Failed to construct 'ConstantSourceNode': parameter 2 ('options') is not an object.".PASS
node0 = new ConstantSourceNode(context) did not throw an exception.PASS
node0 instanceof ConstantSourceNode is equal to true.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.numberOfInputs is equal to 0.PASS
node0.numberOfOutputs is equal to 1.PASS
node0.offset.value is equal to 1.PASS
# AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [default constructor] All assertions passed. (total 8 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-zero.html (5/5, 100.00%, 0.09% of total)OK
The zero playbackRate held the sample value correctlyPASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [synthesize-verify] All assertions passed. (total 1 assertions)PASS
> [synthesize-verify] PASS
/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-basic.html (11/11, 100.00%, 0.19% of total)OK
Default maxDecibels value is equal to -30.PASS
Default minDecibels value is equal to -100.PASS
Default smoothingTimeConstant value is equal to 0.8.PASS
Number of inputs for AnalyserNode is equal to 1.PASS
Number of outputs for AnalyserNode is equal to 1.PASS
node.maxDecibels = -40.333333333333336 is equal to -40.333333333333336.PASS
node.minDecibels = -50.333333333333336 is equal to -50.333333333333336.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Basic AnalyserNode test] All assertions passed. (total 7 assertions)PASS
> [Basic AnalyserNode test] PASS
/webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter.html (38/38, 100.00%, 0.66% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new ChannelSplitterNode() threw TypeError: "Failed to construct 'ChannelSplitterNode': 1 argument required, but only 0 present.".PASS
new ChannelSplitterNode(1) threw TypeError: "Failed to construct 'ChannelSplitterNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new ChannelSplitterNode(c, {"channelCount":3}) threw InvalidStateError: "Failed to construct 'ChannelSplitterNode': ChannelSplitter: channelCount cannot be changed from 6".PASS
new ChannelSplitterNode(c, {"channelCountMode":"max"}) threw InvalidStateError: "Failed to construct 'ChannelSplitterNode': ChannelSplitter: channelCountMode cannot be changed from 'explicit'".PASS
new ChannelSplitterNode(c, {"numberOfOutputs":99}) threw IndexSizeError: "Failed to construct 'ChannelSplitterNode': The number of outputs provided (99) is outside the range [1, 32].".PASS
new ChannelSplitterNode(c, {channelCount: 6}} did not throw an exception.PASS
new ChannelSplitterNode(c, {channelCount: 7}} threw InvalidStateError: "Failed to construct 'ChannelSplitterNode': ChannelSplitter: channelCount cannot be changed from 6".PASS
new ChannelSplitterNode(c, {channelCountMode: "clamped-max"}) threw InvalidStateError: "Failed to construct 'ChannelSplitterNode': ChannelSplitter: channelCountMode cannot be changed from 'explicit'".PASS
new ChannelSplitterNode(c, {channelCountMode: "explicit"} did not throw an exception.PASS
new ChannelSplitterNode(c, {channelCountMode: "max"}) threw InvalidStateError: "Failed to construct 'ChannelSplitterNode': ChannelSplitter: channelCountMode cannot be changed from 'explicit'".PASS
new ChannelSplitterNode(c, {channelInterpretation: "speakers"}) threw InvalidStateError: "Failed to construct 'ChannelSplitterNode': ChannelSplitter: channelInterpretation cannot be changed from 'discrete'".PASS
new ChannelSplitterNode(context, 42) threw TypeError: "Failed to construct 'ChannelSplitterNode': parameter 2 ('options') is not an object.".PASS
node.channelCount is equal to 6.PASS
node.channelCountMode is equal to explicit.PASS
node0 = new ChannelSplitterNode(context) did not throw an exception.PASS
node0 instanceof ChannelSplitterNode is equal to true.PASS
node0.channelCount is equal to 6.PASS
node0.channelCountMode is equal to explicit.PASS
node0.channelInterpretation is equal to discrete.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 6.PASS
node1 = new ChannelSplitterNode(context, {"numberOfInputs":3,"numberOfOutputs":9,"channelInterpretation":"discrete"}) did not throw an exception.PASS
node1.channelInterpretation is equal to discrete.PASS
node1.numberOfInputs is equal to 1.PASS
node1.numberOfOutputs is equal to 9.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor options] All assertions passed. (total 7 assertions)PASS
< [default constructor] All assertions passed. (total 7 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 8 assertions)PASS
> [constructor options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-waveshapernode-interface/ctor-waveshaper.html (48/48, 100.00%, 0.84% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
new WaveShaperNode() threw TypeError: "Failed to construct 'WaveShaperNode': 1 argument required, but only 0 present.".PASS
new WaveShaperNode(1) threw TypeError: "Failed to construct 'WaveShaperNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new WaveShaperNode(c, {channelCount: 0}) threw NotSupportedError: "Failed to construct 'WaveShaperNode': The channel count provided (0) is outside the range [1, 32].".PASS
new WaveShaperNode(c, {channelCount: 17}} did not throw an exception.PASS
new WaveShaperNode(c, {channelCount: 99}) threw NotSupportedError: "Failed to construct 'WaveShaperNode': The channel count provided (99) is outside the range [1, 32].".PASS
new WaveShaperNode(c, {channelCountMode: "clamped-max"}) did not throw an exception.PASS
new WaveShaperNode(c, {channelCountMode: "explicit"}) did not throw an exception.PASS
new WaveShaperNode(c, {channelCountMode: "foobar"} threw TypeError: "Failed to construct 'WaveShaperNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
new WaveShaperNode(c, {channelCountMode: "max"} did not throw an exception.PASS
new WaveShaperNode(c, {channelCountMode: "max"}) did not throw an exception.PASS
new WaveShaperNode(c, {channelInterpretation: "discrete"}) did not throw an exception.PASS
new WaveShaperNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Failed to construct 'WaveShaperNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new WaveShaperNode(c, {channelInterpretation: "speakers"}) did not throw an exception.PASS
new WaveShaperNode(context, 42) threw TypeError: "Failed to construct 'WaveShaperNode': parameter 2 ('options') is not an object.".PASS
node.channelCount is equal to 17.PASS
node.channelCountMode after invalid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to clamped-max.PASS
node.channelCountMode after valid setter is equal to explicit.PASS
node.channelCountMode after valid setter is equal to max.PASS
node.channelCountMode is equal to max.PASS
node.channelInterpretation after invalid setter is equal to discrete.PASS
node.channelInterpretation is equal to discrete.PASS
node.channelInterpretation is equal to speakers.PASS
node0 = new WaveShaperNode(context) did not throw an exception.PASS
node0 instanceof WaveShaperNode is equal to true.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.curve is equal to null.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 1.PASS
node0.oversample is equal to none.PASS
node1 = new WaveShaperNode(, {"curve":{"0":1,"1":2,"2":3},"oversample":"4x"}) did not throw an exception.PASS
node1.curve is identical to the array [1,2,3].PASS
node1.oversample is equal to 4x.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [incorrect construction] All assertions passed. (total 3 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 20 assertions)PASS
< [valid default construction] All assertions passed. (total 9 assertions)PASS
< [valid non-default] All assertions passed. (total 3 assertions)PASS
> [incorrect construction] PASS
> [initialize] PASS
> [test AudioNodeOptions] PASS
> [valid default construction] PASS
> [valid non-default] PASS
/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume.html (27/27, 100.00%, 0.47% of total)OK
After close, offlineContext.state is equal to closed.PASS
After resume, offlineContext.state is equal to suspended.PASS
Create online context did not throw an exception.PASS
context.resume resolved correctly.PASS
context.state after resume is equal to running.PASS
context.state is equal to running.PASS
offlineContext = new OfflineAudioContext(1, 44100, 44100) did not throw an exception.PASS
offlineContext.resume() rejected correctly with InvalidStateError: cannot resume an offline context that has not started.PASS
offlineContext.state is equal to suspended.PASS
offlineContext.suspend() rejected correctly with TypeError: Failed to execute 'suspend' on 'OfflineAudioContext': 1 argument required, but only 0 present..PASS
p1 = offlineContext.suspend() did not throw an exception.PASS
p1 instanceof Promise is true.PASS
p1 rejected correctly with TypeError: Failed to execute 'suspend' on 'OfflineAudioContext': 1 argument required, but only 0 present..PASS
p2 = offlineContext.resume() did not throw an exception.PASS
p2 instanceof Promise is true.PASS
p2 rejected correctly with InvalidStateError: cannot resume an offline context that has not started.PASS
p3 = offlineContext.startRendering() did not throw an exception.PASS
# AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [resume-running-context] All assertions passed. (total 4 assertions)PASS
< [test-after-close] All assertions passed. (total 4 assertions)PASS
< [test-resume] All assertions passed. (total 4 assertions)PASS
< [test-suspend] All assertions passed. (total 5 assertions)PASS
> [resume-running-context] Test resuming a running contextPASS
> [test-after-close] Test state after context closedPASS
> [test-resume] Test resume() for offline contextPASS
> [test-suspend] Test suspend() for offline contextPASS
/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html (32/32, 100.00%, 0.56% of total)OK
Modulated Stereo Left .value setter output is identical to the array [0,0.3402526378631592,0.6413129568099976,0.8772034645080566,1.0272915363311768,1.0782092809677124,1.0251129865646362,0.8721681237220764,0.634390115737915,0.3706442713737488,0.07306596636772156,-0.2276521474123001,-0.500984787940979,-0.7199963927268982,-0.8642349243164062,-0.9217721223831177...].PASS
Modulated Stereo Left .value setter output matches setValueAtTime output is true.PASS
Modulated Stereo Right .value setter output is identical to the array [0,0.08775438368320465,0.1789630502462387,0.27175208926200867,0.36420613527297974,0.4544224739074707,0.5405690670013428,0.6209331750869751,0.695970356464386,0.7820523977279663,0.8270168304443359,0.8301812410354614,0.7975679039955139,0.7409225106239319,0.6758685111999512,0.6194734573364258...].PASS
Modulated Stereo Right .value setter output matches setValueAtTime output is true.PASS
Mono Left .value setter output is identical to the array [0,0.1431909054517746,0.2823145389556885,0.41341903805732727,0.5327803492546082,0.6370079517364502,0.7231414914131165,0.7887340784072876,0.8319228291511536,0.8514807224273682,0.8468523621559143,0.8181691765785217,0.76624596118927,0.6925574541091919,0.5991969108581543,0.48881617188453674...].PASS
Mono Left .value setter output matches setValueAtTime output is true.PASS
Mono Right .value setter output is identical to the array [0,0.0877474993467331,0.17300257086753845,0.25334352254867554,0.3264882266521454,0.39035898447036743,0.4431416392326355,0.483336865901947,0.5098029375076294,0.5217880606651306,0.5189517736434937,0.5013747215270996,0.46955612301826477,0.424399733543396,0.36718833446502686,0.2995469272136688...].PASS
Mono Right .value setter output matches setValueAtTime output is true.PASS
Mono: Left channel, pan = -1: contains only the constant 1.PASS
Mono: Left channel, pan = 1: equals [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...] with an element-wise tolerance of {"absoluteThreshold":6.1233e-17,"relativeThreshold":0}.PASS
Mono: Right channel, pan = -1: contains only the constant 0.PASS
Mono: Right channel, pan = 1: contains only the constant 1.PASS
Stereo Left .value setter output is identical to the array [0,0.3454650640487671,0.662327229976654,0.9246212840080261,1.1114109754562378,1.2087113857269287,1.2107640504837036,1.120543360710144,0.9494497179985046,0.7162171602249146,0.4451404809951782,0.1637810319662094,-0.09962651878595352,-0.31883078813552856,-0.4720267355442047,-0.5439075827598572...].PASS
Stereo Left .value setter output matches setValueAtTime output is true.PASS
Stereo Right .value setter output is identical to the array [0,0.08529330044984818,0.16980315744876862,0.25275346636772156,0.33338260650634766,0.41094908118247986,0.4847412407398224,0.5540815591812134,0.618333101272583,0.6769042611122131,0.7292587161064148,0.7749154567718506,0.8134552836418152,0.84452223777771,0.8678330779075623,0.8831735253334045...].PASS
Stereo Right .value setter output matches setValueAtTime output is true.PASS
Stereo: Left channel, pan = -1: contains only the constant 3.PASS
Stereo: Left channel, pan = 1: equals [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...] with an element-wise tolerance of {"absoluteThreshold":6.1233e-17,"relativeThreshold":0}.PASS
Stereo: Right channel, pan = -1: contains only the constant 0.PASS
Stereo: Right channel, pan = 1: contains only the constant 3.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test mono input automation] All assertions passed. (total 4 assertions)PASS
< [test mono input setValue] All assertions passed. (total 4 assertions)PASS
< [test mono input] All assertions passed. (total 4 assertions)PASS
< [test stereo input setValue] All assertions passed. (total 4 assertions)PASS
< [test stereo input] All assertions passed. (total 4 assertions)PASS
> [test mono input automation] Test StereoPanner with mono input and automationPASS
> [test mono input setValue] Test StereoPanner with mono input value setter vs setValueAtTimePASS
> [test mono input] Test StereoPanner with mono input has no dezipperingPASS
> [test stereo input setValue] Test StereoPanner with mono input value setter vs setValueAtTimePASS
> [test stereo input] Test StereoPanner with stereo input has no dezipperingPASS
/webaudio/the-audio-api/the-audionode-interface/audionode-connect-return-value.html (1/1, 100.00%, 0.02% of total)OK
connect should return the node connected to.PASS
/webaudio/the-audio-api/the-pannernode-interface/panner-rolloff-clamping.html (5/5, 100.00%, 0.09% of total)OK
Panner distanceModel: "linear", rolloffFactor: 2 is identical to the array [0,0.009021542966365814,0.026864444836974144,0.03272818773984909,0.04710530489683151,0.05850887671113014,0.0714946985244751,0.07767147570848465,0.09869713336229324,0.10140510648488998,0.1164083331823349,0.1324559450149536,0.13525457680225372,0.15394212305545807,0.1645830273628235,0.17470026016235352...].PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [linear-clamp-high] All assertions passed. (total 1 assertions)PASS
> [linear-clamp-high] rolloffFactor clamping for linear distance modelPASS
/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-getoutputtimestamp.html (8/8, 100.00%, 0.14% of total)OK
timestamp.contextTime does exist.PASS
timestamp.contextTime is greater than or equal to 0.PASS
timestamp.performanceTime does exist.PASS
timestamp.performanceTime is greater than or equal to 0.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [getoutputtimestamp-initial-values] All assertions passed. (total 4 assertions)PASS
> [getoutputtimestamp-initial-values] PASS
/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain.html (1/1, 100.00%, 0.02% of total)OK
Test effect of AnalyserNode on GainNode outputPASS
/webaudio/the-audio-api/the-pannernode-interface/ctor-panner.html (101/101, 100.00%, 1.76% of total)OK
context = new OfflineAudioContext(...) did not throw an exception.PASS
context.listener.forwardX.value is equal to 0.PASS
context.listener.forwardY.value is equal to 0.PASS
context.listener.forwardZ.value is equal to -1.PASS
context.listener.positionX.value is equal to 0.PASS
context.listener.positionY.value is equal to 0.PASS
context.listener.positionZ.value is equal to 0.PASS
context.listener.upX.value is equal to 0.PASS
context.listener.upY.value is equal to 1.PASS
context.listener.upZ.value is equal to 0.PASS
new PannerNode() threw TypeError: "Failed to construct 'PannerNode': 1 argument required, but only 0 present.".PASS
new PannerNode(1) threw TypeError: "Failed to construct 'PannerNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new PannerNode(c, " + JSON.stringify(options) + ") threw TypeError: "Failed to construct 'PannerNode': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
new PannerNode(c, {"channelCount":0}) threw NotSupportedError: "Failed to construct 'PannerNode': The channelCount provided (0) is outside the range [1, 2].".PASS
new PannerNode(c, {"channelCount":3}) threw NotSupportedError: "Failed to construct 'PannerNode': The channelCount provided (3) is outside the range [1, 2].".PASS
new PannerNode(c, {"channelCount":99}) threw NotSupportedError: "Failed to construct 'PannerNode': The channelCount provided (99) is outside the range [1, 2].".PASS
new PannerNode(c, {"channelCountMode":"max"}) threw NotSupportedError: "Failed to construct 'PannerNode': Panner: 'max' is not allowed".PASS
new PannerNode(c, {"channelInterpretation":"foobar"}) threw TypeError: "Failed to construct 'PannerNode': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
new PannerNode(c, {"coneOuterGain":-1}) threw InvalidStateError: "Failed to construct 'PannerNode': The coneOuterGain provided (-1) is outside the range [0, 1].".PASS
new PannerNode(c, {"coneOuterGain":1.1}) threw InvalidStateError: "Failed to construct 'PannerNode': The coneOuterGain provided (1.1) is outside the range [0, 1].".PASS
new PannerNode(c, {"maxDistance":-1}) threw RangeError: "Failed to construct 'PannerNode': The maxDistance provided (-1) is less than the minimum bound (0).".PASS
new PannerNode(c, {"rolloffFactor":-1}) threw RangeError: "Failed to construct 'PannerNode': The rolloffFactor provided (-1) is less than the minimum bound (0).".PASS
new PannerNode(context, 42) threw TypeError: "Failed to construct 'PannerNode': parameter 2 ('options') is not an object.".PASS
node = new PannerNode(c, {"panningModel":"HRTF","positionX":1.4142135623730951,"positionY":2.8284271247461903,"positionZ":4.242640687119286,"orientationX":-1.4142135623730951,"orientationY":-2.8284271247461903,"orientationZ":-4.242640687119286,"distanceModel":"linear","refDistance":3.141592653589793,"maxDistance":6.283185307179586,"rolloffFactor":9.42477796076938,"coneInnerAngle":12.566370614359172,"coneOuterAngle":15.707963267948966,"coneOuterGain":0.3141592653589793}) did not throw an exception.PASS
node instanceof PannerNode is equal to true.PASS
node.channelCount is equal to 2.PASS
node.channelCountMode is equal to clamped-max.PASS
node.channelInterpretation is equal to speakers.PASS
node.coneInnerAngle is equal to 12.566370614359172.PASS
node.coneOuterAngle is equal to 15.707963267948966.PASS
node.coneOuterGain is equal to 0.3141592653589793.PASS
node.distanceModel is equal to linear.PASS
node.maxDistance is equal to 6.283185307179586.PASS
node.orientationX.value is equal to -1.4142135381698608.PASS
node.orientationY.value is equal to -2.8284270763397217.PASS
node.orientationZ.value is equal to -4.242640495300293.PASS
node.panningModel is equal to HRTF.PASS
node.positionX.value is equal to 1.4142135381698608.PASS
node.positionY.value is equal to 2.8284270763397217.PASS
node.positionZ.value is equal to 4.242640495300293.PASS
node.refDistance is equal to 3.141592653589793.PASS
node.rolloffFactor is equal to 9.42477796076938.PASS
node0 = new PannerNode(context) did not throw an exception.PASS
node0 instanceof PannerNode is equal to true.PASS
node0.channelCount is equal to 2.PASS
node0.channelCountMode is equal to clamped-max.PASS
node0.channelInterpretation is equal to speakers.PASS
node0.coneInnerAngle is equal to 360.PASS
node0.coneOuterAngle is equal to 360.PASS
node0.coneOuterGain is equal to 0.PASS
node0.distanceModel is equal to inverse.PASS
node0.maxDistance is equal to 10000.PASS
node0.numberOfInputs is equal to 1.PASS
node0.numberOfOutputs is equal to 1.PASS
node0.orientationX.value is equal to 1.PASS
node0.orientationY.value is equal to 0.PASS
node0.orientationZ.value is equal to 0.PASS
node0.panningModel is equal to equalpower.PASS
node0.positionX.value is equal to 0.PASS
node0.positionY.value is equal to 0.PASS
node0.positionZ.value is equal to 0.PASS
node0.refDistance is equal to 1.PASS
node0.rolloffFactor is equal to 1.PASS
node1 = new PannerNode(c, {"channelCount":1}) did not throw an exception.PASS
node1.channelCount is equal to 1.PASS
node2 = new PannerNode(c, {"channelCount":2}) did not throw an exception.PASS
node2.channelCount is equal to 2.PASS
node3 = new PannerNode(c, {"channelCountMode":"clamped-max"}) did not throw an exception.PASS
node3.channelCountMode is equal to clamped-max.PASS
node4 = new PannerNode(c, {"channelCountMode":"explicit"}) did not throw an exception.PASS
node4.channelCountMode is equal to explicit.PASS
node5 = new PannerNode(c, {"channelInterpretation":"speakers"}) did not throw an exception.PASS
node5.channelInterpretation is equal to speakers.PASS
node6 = new PannerNode(c, {"channelInterpretation":"discrete"}) did not throw an exception.PASS
node6.channelInterpretation is equal to discrete.PASS
node7 = new PannerNode(c, {"maxDistance":100}) did not throw an exception.PASS
node7.maxDistance is equal to 100.PASS
node8 = new PannerNode(c, {"rolloffFactor":0.5}) did not throw an exception.PASS
node8 = new PannerNode(c, {"rolloffFactor":0}) did not throw an exception.PASS
node8 = new PannerNode(c, {"rolloffFactor":100}) did not throw an exception.PASS
node8.rolloffFactor is equal to 0.PASS
node8.rolloffFactor is equal to 0.5.PASS
node8.rolloffFactor is equal to 100.PASS
node9 = new PannerNode(c, {"coneOuterGain":0.5}) did not throw an exception.PASS
node9 = new PannerNode(c, {"coneOuterGain":0}) did not throw an exception.PASS
node9 = new PannerNode(c, {"coneOuterGain":1}) did not throw an exception.PASS
node9.coneOuterGain is equal to 0.PASS
node9.coneOuterGain is equal to 0.5.PASS
node9.coneOuterGain is equal to 1.PASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [constructor with options] All assertions passed. (total 19 assertions)PASS
< [default constructor] All assertions passed. (total 30 assertions)PASS
< [initialize] All assertions passed. (total 1 assertions)PASS
< [invalid constructor] All assertions passed. (total 3 assertions)PASS
< [test AudioNodeOptions] All assertions passed. (total 36 assertions)PASS
> [constructor with options] PASS
> [default constructor] PASS
> [initialize] PASS
> [invalid constructor] PASS
> [test AudioNodeOptions] PASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-automation.html (20/20, 100.00%, 0.35% of total)OK
Output of bandpass filter with Q automation equals [0,0.013114781118929386,0.047823384404182434,0.09765293449163437,0.15657125413417816,0.21899054944515228,0.27981746196746826,0.3345244824886322,0.379226952791214,0.4107542335987091,0.4267079830169678,0.42550167441368103,0.40637844800949097,0.3694050908088684,0.31544122099876404,0.24608469009399414...] with an element-wise tolerance of {"absoluteThreshold":9.8348e-7,"relativeThreshold":0}.PASS
Output of bandpass filter with detune automation equals [0,0.0008383856620639563,0.00141120795160532,0.00036609364906325936,0.0001000093761831522,0.0012290297308936715,0.001128630479797721,0.0000010075401633002912,0.0004436193557921797,0.0014331036945804954,0.00065815937705338,-0.00011537729005794972,0.0008997227996587753,0.0013498960761353374,0.00016446926747448742,0.00006718232179991901...] with an element-wise tolerance of {"absoluteThreshold":0.000031471,"relativeThreshold":0}.PASS
Output of bandpass filter with frequency automation equals [0,0.27222275733947754,0.1703483760356903,-0.4806261956691742,-0.2788437604904175,0.3957056999206543,0.10840324312448502,-0.39677220582962036,0.06871235370635986,0.41004475951194763,-0.1897629052400589,-0.3590146601200104,0.29248547554016113,0.2614542245864868,-0.376722127199173,-0.14195005595684052...] with an element-wise tolerance of {"absoluteThreshold":0.0000046455,"relativeThreshold":0}.PASS
Output of bandpass filter with sinusoidal modulation of bandpass center frequency equals [0,0.0018003738950937986,0.00716581242159009,0.015862563624978065,0.027496544644236565,0.04151911661028862,0.05723972246050835,0.07384545356035233,0.09042731672525406,0.10601259768009186,0.11960244923830032,0.13021349906921387,0.13692189753055573,0.13890819251537323,0.13550083339214325,0.12621651589870453...] with an element-wise tolerance of {"absoluteThreshold":0.000039787,"relativeThreshold":0}.PASS
Output of lowshelf filter with gain automation equals [0,0.4781356751918793,1.5511385202407837,3.0428154468536377,4.649440288543701,6.148099899291992,7.424892902374268,8.436473846435547,9.169538497924805,9.61856460571289,9.779438972473145,9.650873184204102,9.237476348876953,8.551753997802734,7.614615440368652,6.454819679260254...] with an element-wise tolerance of {"absoluteThreshold":0.000027657,"relativeThreshold":0}.PASS
Output of peaking filter with automation of all parameters equals [0,0.9876883625984192,-0.30901700258255005,-0.8910065293312073,0.5877852439880371,0.7071067690849304,-0.80901700258255,-0.45399048924446106,0.9510565400123596,0.15643446147441864,-1,0.15643446147441864,0.9510565400123596,-0.45399048924446106,-0.80901700258255,0.7071067690849304...] with an element-wise tolerance of {"absoluteThreshold":0.00062907,"relativeThreshold":0}.PASS
# AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [automate-all] All assertions passed. (total 1 assertions)PASS
< [automate-detune] All assertions passed. (total 1 assertions)PASS
< [automate-freq] All assertions passed. (total 1 assertions)PASS
< [automate-gain] All assertions passed. (total 1 assertions)PASS
< [automate-q] All assertions passed. (total 1 assertions)PASS
< [modulation] All assertions passed. (total 1 assertions)PASS
> [automate-all] PASS
> [automate-detune] PASS
> [automate-freq] PASS
> [automate-gain] PASS
> [automate-q] PASS
> [modulation] PASS
/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html (16/16, 100.00%, 0.28% of total)OK
Initial WaveShaper.curve is equal to null.PASS
Initial WaveShaper.oversample is equal to none.PASS
Setting curve back to null did not throw an exception.PASS
Setting curve to [-1,0.25,0.75] did not throw an exception.PASS
Setting oversample to "2x" did not throw an exception.PASS
Setting oversample to "4x" did not throw an exception.PASS
Setting oversample to "invalid" did not throw an exception.PASS
WaveShaper.curve is identical to the array [-1,0.25,0.75].PASS
Waveshaper.curve = null is equal to null.PASS
Waveshaper.oversample = "2x" is equal to 2x.PASS
Waveshaper.oversample = "4x" is equal to 4x.PASS
Waveshaper.oversample = "invalid" is equal to 4x.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [simple] All assertions passed. (total 12 assertions)PASS
> [simple] PASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.html (5/5, 100.00%, 0.09% of total)OK
frequencyParam.maxValue is equal to 24000.PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [Query |sampleRate| upon AudioWorkletGlobalScope construction] All assertions passed. (total 1 assertions)PASS
> [Query |sampleRate| upon AudioWorkletGlobalScope construction] PASS
/webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime.html (7/7, 100.00%, 0.12% of total)OK
Reference[0:127] contains only the constant 1.PASS
Test[0:127] contains only the constant 1.PASS
Test[128:] is identical to the array [0.10000000149011612,0.1000492125749588,0.10009842365980148,0.10014764219522476,0.10019685328006744,0.10024606436491013,0.10029527544975281,0.10034449398517609,0.10039370507001877,0.10044291615486145,0.10049212723970413,0.10054134577512741,0.10059055685997009,0.10063976794481277,0.10068897902965546,0.10073819756507874...].PASS
# AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.PASS
# AUDIT TASK RUNNER STARTED.PASS
< [test] All assertions passed. (total 3 assertions)PASS
> [test] Test linearRampToValue with end time in the pastPASS