WPT
wpt / webaudio / the-audio-api / the-channelmergernode-interface / audiochannelmerger-basic.html
Spec: Web Audio API ↗
Runs: Chrome 155.0.8041.0 (wpt@4a01b83e3, 2026-09-04) | Firefox 157.0a1 (wpt@e7122b73f, 2026-09-04) | Safari 251 preview (wpt@2c385f65e, 2026-09-04) | Ladybird 1.0-70fb3 (wpt@4a01b83e3, 2026-09-04) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| # AUDIT TASK RUNNER STARTED. | PASS | PASS | PASS | PASS | PASS | — |
| Executing "exceptions-channels" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "exceptions-properties" | PASS | PASS | PASS | PASS | PASS | — |
| Audit report | PASS | PASS | PASS | PASS | PASS | — |
| > [exceptions-channels] | PASS | PASS | PASS | PASS | PASS | — |
| context.createChannelMerger() did not throw an exception. | PASS | PASS | PASS | PASS | 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 | PASS | PASS | PASS | 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 | — | — | — | — | — |
| < [exceptions-channels] All assertions passed. (total 4 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [exceptions-properties] | PASS | PASS | PASS | PASS | PASS | — |
| merger.channelCount is equal to 1. | PASS | PASS | PASS | PASS | PASS | — |
| merger.channelCount = 3 threw InvalidStateError: "Failed to set the 'channelCount' property on 'AudioNode': ChannelMerger: channelCount cannot be changed from 1". | PASS | — | — | — | — | — |
| merger.channelCountMode is equal to explicit. | PASS | PASS | PASS | PASS | PASS | — |
| merger.channelCountMode = "max" threw InvalidStateError: "Failed to set the 'channelCountMode' property on 'AudioNode': ChannelMerger: channelCountMode cannot be changed from 'explicit'". | PASS | — | — | — | — | — |
| < [exceptions-properties] All assertions passed. (total 4 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. | PASS | PASS | PASS | PASS | PASS | — |
| context.createChannelMerger(0) threw IndexSizeError: "BaseAudioContext.createChannelMerger: Number of inputs (0) must be in the range [1, number of supported channels]". | — | PASS | — | — | — | — |
| context.createChannelMerger(33) threw IndexSizeError: "BaseAudioContext.createChannelMerger: Number of inputs (33) must be in the range [1, number of supported channels]". | — | PASS | — | — | — | — |
| merger.channelCount = 3 threw InvalidStateError: "AudioNode.channelCount setter: Cannot change channel count of ChannelMergerNode". | — | PASS | — | — | — | — |
| merger.channelCountMode = "max" threw InvalidStateError: "AudioNode.channelCountMode setter: Cannot change channel count mode of ChannelMergerNode". | — | PASS | — | — | — | — |
| context.createChannelMerger(0) threw IndexSizeError: "Number of inputs is not in the allowed range.". | — | — | PASS | — | — | — |
| context.createChannelMerger(33) threw IndexSizeError: "Number of inputs is not in the allowed range.". | — | — | PASS | — | — | — |
| merger.channelCount = 3 threw InvalidStateError: "Channel count cannot be changed from 1.". | — | — | PASS | — | — | — |
| merger.channelCountMode = "max" threw InvalidStateError: "Channel count mode cannot be changed from explicit.". | — | — | PASS | — | — | — |
| context.createChannelMerger(0) threw IndexSizeError: "The index is not in the allowed range.". | — | — | — | — | PASS | — |
| context.createChannelMerger(33) threw IndexSizeError: "The index is not in the allowed range.". | — | — | — | — | PASS | — |
| merger.channelCount = 3 threw InvalidStateError: "The object is in an invalid state.". | — | — | — | — | PASS | — |
| merger.channelCountMode = "max" threw InvalidStateError: "The object is in an invalid state.". | — | — | — | — | PASS | — |
| context.createChannelMerger(0) threw IndexSizeError: "Invalid number of inputs". | — | — | — | PASS | — | — |
| context.createChannelMerger(33) threw IndexSizeError: "Invalid number of inputs". | — | — | — | PASS | — | — |
| merger.channelCount = 3 threw InvalidStateError: "Channel count cannot be changed". | — | — | — | PASS | — | — |
| merger.channelCountMode = "max" threw InvalidStateError: "Channel count mode cannot be changed". | — | — | — | PASS | — | — |