WPT
wpt / webaudio / the-audio-api / the-audiobuffersourcenode-interface / ctor-audiobuffersource.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 | 44/44 | 44/44 | 44/44 | 44/44 | 44/44 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| # AUDIT TASK RUNNER STARTED. | PASS | PASS | PASS | PASS | PASS | — |
| Executing "initialize" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "invalid constructor" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "default constructor" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "nullable buffer" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "constructor options" | PASS | PASS | PASS | PASS | PASS | — |
| Audit report | PASS | PASS | PASS | PASS | PASS | — |
| > [initialize] | PASS | PASS | PASS | PASS | PASS | — |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS | PASS | PASS | PASS | PASS | — |
| < [initialize] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [invalid constructor] | PASS | PASS | PASS | PASS | 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': The provided value is not of type 'AudioBufferSourceOptions'.". | PASS | — | — | — | — | — |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [default constructor] | PASS | PASS | PASS | PASS | PASS | — |
| node0 = new AudioBufferSourceNode(context) did not throw an exception. | PASS | PASS | PASS | PASS | PASS | — |
| node0 instanceof AudioBufferSourceNode is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| node0.numberOfInputs is equal to 0. | PASS | PASS | PASS | PASS | PASS | — |
| node0.numberOfOutputs is equal to 1. | PASS | PASS | PASS | PASS | PASS | — |
| node0.channelCount is equal to 2. | PASS | PASS | PASS | PASS | PASS | — |
| node0.channelCountMode is equal to max. | PASS | PASS | PASS | PASS | PASS | — |
| node0.channelInterpretation is equal to speakers. | PASS | PASS | PASS | PASS | PASS | — |
| node0.buffer is equal to null. | PASS | PASS | PASS | PASS | PASS | — |
| node0.detune.value is equal to 0. | PASS | PASS | PASS | PASS | PASS | — |
| node0.loop is equal to false. | PASS | PASS | PASS | PASS | PASS | — |
| node0.loopEnd is equal to 0. | PASS | PASS | PASS | PASS | PASS | — |
| node0.loopStart is equal to 0. | PASS | PASS | PASS | PASS | PASS | — |
| node0.playbackRate.value is equal to 1. | PASS | PASS | PASS | PASS | PASS | — |
| < [default constructor] All assertions passed. (total 13 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [nullable buffer] | PASS | PASS | PASS | PASS | PASS | — |
| node1 = new AudioBufferSourceNode(c, {"buffer":null} did not throw an exception. | PASS | PASS | PASS | PASS | PASS | — |
| node1.buffer is equal to null. | PASS | PASS | PASS | PASS | PASS | — |
| < [nullable buffer] All assertions passed. (total 2 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [constructor options] | PASS | PASS | PASS | PASS | 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 | PASS | PASS | PASS | PASS | — |
| node2.buffer === buffer is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| node2.detune.value is equal to 0.5. | PASS | PASS | PASS | PASS | PASS | — |
| node2.loop is equal to true. | PASS | PASS | PASS | PASS | PASS | — |
| node2.loopEnd is equal to 0.010416666666666666. | PASS | PASS | PASS | PASS | PASS | — |
| node2.loopStart is equal to 0.00010416666666666667. | PASS | PASS | PASS | PASS | PASS | — |
| node2.playbackRate.value is equal to 0.75. | PASS | PASS | PASS | PASS | PASS | — |
| < [constructor options] All assertions passed. (total 7 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. | PASS | PASS | PASS | PASS | PASS | — |
| new AudioBufferSourceNode() threw TypeError: "AudioBufferSourceNode constructor: At least 1 argument required, but only 0 passed". | — | PASS | — | — | — | — |
| new AudioBufferSourceNode(1) threw TypeError: "AudioBufferSourceNode constructor: Argument 1 is not an object.". | — | PASS | — | — | — | — |
| new AudioBufferSourceNode(context, 42) threw TypeError: "AudioBufferSourceNode constructor: Argument 2 can't be converted to a dictionary.". | — | PASS | — | — | — | — |
| new AudioBufferSourceNode() threw TypeError: "Not enough arguments". | — | — | PASS | — | — | — |
| new AudioBufferSourceNode(1) threw TypeError: "Argument 1 ('context') to the AudioBufferSourceNode constructor must be an instance of BaseAudioContext". | — | — | PASS | — | — | — |
| new AudioBufferSourceNode(context, 42) threw TypeError: "Type error". | — | — | PASS | — | — | — |
| new AudioBufferSourceNode() threw TypeError: "Not enough arguments to "AudioBufferSourceNode.constructor".". | — | — | — | — | PASS | — |
| new AudioBufferSourceNode(1) threw TypeError: "Value is not an object.". | — | — | — | — | PASS | — |
| new AudioBufferSourceNode(context, 42) threw TypeError: "Value is not an object.". | — | — | — | — | PASS | — |
| new AudioBufferSourceNode() threw TypeError: "AudioBufferSourceNode() needs one argument". | — | — | — | PASS | — | — |
| new AudioBufferSourceNode(1) threw TypeError: "Not an object of type BaseAudioContext". | — | — | — | PASS | — | — |
| new AudioBufferSourceNode(context, 42) threw TypeError: "Not an object of type AudioBufferSourceOptions". | — | — | — | PASS | — | — |