Click here to download the Blitz Browser!

WPT

wpt / webaudio / the-audio-api / the-audiobuffer-interface / audiobuffer-copy-channel.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@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)

View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi

ChromeFirefoxSafariLadybirdServoBlitz
Total62/6262/6262/6262/6249/62NOT RUN
SubtestChromeFirefoxSafariLadybirdServoBlitz
# AUDIT TASK RUNNER STARTED.PASSPASSPASSPASSPASS
Executing "initialize"PASSPASSPASSPASSPASS
Executing "copyFrom-exceptions"PASSPASSPASSPASSFAIL
Executing "copyTo-exceptions"PASSPASSPASSPASSFAIL
Executing "copyFrom-validate"PASSPASSPASSPASSPASS
Executing "copyTo-validate"PASSPASSPASSPASSPASS
Audit reportPASSPASSPASSPASSPASS
> [initialize] PASSPASSPASSPASSPASS
Initialized values contains only the constant -1.PASSPASSPASSPASSPASS
< [initialize] All assertions passed. (total 1 assertions)PASSPASSPASSPASSPASS
> [copyFrom-exceptions] PASSPASSPASSPASSPASS
AudioBuffer.prototype.copyFromChannel does exist.PASSPASSPASSPASSPASS
0: buffer = context.createBuffer(3, 16, context.sampleRate) did not throw an exception.PASSPASSPASSPASSPASS
1: buffer.copyFromChannel(null, 0) threw TypeError: "Failed to execute 'copyFromChannel' 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
3: buffer.copyFromChannel(x, -1) threw IndexSizeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The channelNumber provided (-1) 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
5: buffer.copyFromChannel(x, 0, -1) did not throw an exception.PASSPASSPASSPASS
6: buffer.copyFromChannel(x, 0, 16) did not throw an exception.PASSPASSPASSPASS
7: buffer.copyFromChannel(x, 3) threw IndexSizeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The channelNumber provided (3) is outside the range [0, 2].".PASS
8: buffer.copyFromChannel(SharedArrayBuffer view, 0) threw TypeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The provided Float32Array value must not be shared.".PASS
9: buffer.copyFromChannel(SharedArrayBuffer view, 0, 0) threw TypeError: "Failed to execute 'copyFromChannel' on 'AudioBuffer': The provided Float32Array value must not be shared.".PASS
< [copyFrom-exceptions] All assertions passed. (total 11 assertions)PASSPASSPASSPASS
> [copyTo-exceptions] PASSPASSPASSPASSPASS
AudioBuffer.prototype.copyToChannel does exist.PASSPASSPASSPASSPASS
0: buffer.copyToChannel(null, 0) threw TypeError: "Failed to execute 'copyToChannel' 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.copyToChannel(x, -1) threw IndexSizeError: "Failed to execute 'copyToChannel' 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.copyToChannel(x, 0, -1) did not throw an exception.PASSPASSPASSPASS
5: buffer.copyToChannel(x, 0, 16) did not throw an exception.PASSPASSPASSPASS
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.copyToChannel(SharedArrayBuffer view, 0) threw TypeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': The provided Float32Array value must not be shared.".PASS
8: buffer.copyToChannel(SharedArrayBuffer view, 0, 0) threw TypeError: "Failed to execute 'copyToChannel' on 'AudioBuffer': The provided Float32Array value must not be shared.".PASS
< [copyTo-exceptions] All assertions passed. (total 10 assertions)PASSPASSPASSPASS
> [copyFrom-validate] PASSPASSPASSPASSPASS
buffer.copyFromChannel(dst8, 0) is identical to the array [1,2,3,4,5,6,7,8].PASSPASSPASSPASSPASS
buffer.copyFromChannel(dst8, 1) is identical to the array [2,3,4,5,6,7,8,9].PASSPASSPASSPASSPASS
buffer.copyFromChannel(dst8, 2) is identical to the array [3,4,5,6,7,8,9,10].PASSPASSPASSPASSPASS
buffer.copyFromChannel(dst8, 0, 1) is identical to the array [2,3,4,5,6,7,8,9].PASSPASSPASSPASSPASS
buffer.copyFromChannel(dst8, 1, 1) is identical to the array [3,4,5,6,7,8,9,10].PASSPASSPASSPASSPASS
buffer.copyFromChannel(dst8, 2, 1) is identical to the array [4,5,6,7,8,9,10,11].PASSPASSPASSPASSPASS
buffer.copyFromChannel(dst8, 0, 11) is identical to the array [12,13,14,15,16,-1,-1,-1].PASSPASSPASSPASSPASS
buffer.copyFromChannel(dst8, 1, 11) is identical to the array [13,14,15,16,17,-1,-1,-1].PASSPASSPASSPASSPASS
buffer.copyFromChannel(dst8, 2, 11) is identical to the array [14,15,16,17,18,-1,-1,-1].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
< [copyFrom-validate] All assertions passed. (total 12 assertions)PASSPASSPASSPASSPASS
> [copyTo-validate] PASSPASSPASSPASSPASS
buffer = createConstantBuffer(context, 16, [-1,-1,-1]) did not throw an exception.PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
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...].PASSPASSPASSPASSPASS
< [copyTo-validate] All assertions passed. (total 10 assertions)PASSPASSPASSPASSPASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASSPASSPASSPASS
1: buffer.copyFromChannel(null, 0) threw TypeError: "AudioBuffer.copyFromChannel: Argument 1 is not an object.".PASS
2: buffer.copyFromChannel(context, 0) threw TypeError: "AudioBuffer.copyFromChannel: Argument 1 does not implement interface Float32Array.".PASS
3: buffer.copyFromChannel(x, -1) threw IndexSizeError: "AudioBuffer.copyFromChannel: Channel number (4294967295) is out of range".PASS
4: buffer.copyFromChannel(x, 3) threw IndexSizeError: "AudioBuffer.copyFromChannel: Channel number (3) is out of range".PASS
7: buffer.copyFromChannel(x, 3) threw IndexSizeError: "AudioBuffer.copyFromChannel: Channel number (3) is out of range".PASS
8: buffer.copyFromChannel(SharedArrayBuffer view, 0) threw TypeError: "AudioBuffer.copyFromChannel: Argument 1 can't be a SharedArrayBuffer or an ArrayBufferView backed by a SharedArrayBuffer".PASS
9: buffer.copyFromChannel(SharedArrayBuffer view, 0, 0) threw TypeError: "AudioBuffer.copyFromChannel: Argument 1 can't be a SharedArrayBuffer or an ArrayBufferView backed by a SharedArrayBuffer".PASS
0: buffer.copyToChannel(null, 0) threw TypeError: "AudioBuffer.copyToChannel: Argument 1 is not an object.".PASS
1: buffer.copyToChannel(context, 0) threw TypeError: "AudioBuffer.copyToChannel: Argument 1 does not implement interface Float32Array.".PASS
2: buffer.copyToChannel(x, -1) threw IndexSizeError: "AudioBuffer.copyToChannel: Channel number (4294967295) is out of range".PASS
3: buffer.copyToChannel(x, 3) threw IndexSizeError: "AudioBuffer.copyToChannel: Channel number (3) is out of range".PASS
6: buffer.copyToChannel(x, 3) threw IndexSizeError: "AudioBuffer.copyToChannel: Channel number (3) is out of range".PASS
7: buffer.copyToChannel(SharedArrayBuffer view, 0) threw TypeError: "AudioBuffer.copyToChannel: Argument 1 can't be a SharedArrayBuffer or an ArrayBufferView backed by a SharedArrayBuffer".PASS
8: buffer.copyToChannel(SharedArrayBuffer view, 0, 0) threw TypeError: "AudioBuffer.copyToChannel: Argument 1 can't be a SharedArrayBuffer or an ArrayBufferView backed by a SharedArrayBuffer".PASS
1: buffer.copyFromChannel(null, 0) threw TypeError: "Argument 1 ('destination') to AudioBuffer.copyFromChannel must be an instance of Float32Array".PASS
2: buffer.copyFromChannel(context, 0) threw TypeError: "Argument 1 ('destination') to AudioBuffer.copyFromChannel must be an instance of Float32Array".PASS
3: buffer.copyFromChannel(x, -1) threw IndexSizeError: "Not a valid channelNumber.".PASS
4: buffer.copyFromChannel(x, 3) threw IndexSizeError: "Not a valid channelNumber.".PASS
7: buffer.copyFromChannel(x, 3) threw IndexSizeError: "Not a valid channelNumber.".PASS
8: buffer.copyFromChannel(SharedArrayBuffer view, 0) threw TypeError: "Argument 1 ('destination') to AudioBuffer.copyFromChannel must be an instance of Float32Array".PASS
9: buffer.copyFromChannel(SharedArrayBuffer view, 0, 0) threw TypeError: "Argument 1 ('destination') to AudioBuffer.copyFromChannel must be an instance of Float32Array".PASS
0: buffer.copyToChannel(null, 0) threw TypeError: "Argument 1 ('source') to AudioBuffer.copyToChannel must be an instance of Float32Array".PASS
1: buffer.copyToChannel(context, 0) threw TypeError: "Argument 1 ('source') to AudioBuffer.copyToChannel must be an instance of Float32Array".PASS
2: buffer.copyToChannel(x, -1) threw IndexSizeError: "Not a valid channelNumber.".PASS
3: buffer.copyToChannel(x, 3) threw IndexSizeError: "Not a valid channelNumber.".PASS
6: buffer.copyToChannel(x, 3) threw IndexSizeError: "Not a valid channelNumber.".PASS
7: buffer.copyToChannel(SharedArrayBuffer view, 0) threw TypeError: "Argument 1 ('source') to AudioBuffer.copyToChannel must be an instance of Float32Array".PASS
8: buffer.copyToChannel(SharedArrayBuffer view, 0, 0) threw TypeError: "Argument 1 ('source') to AudioBuffer.copyToChannel must be an instance of Float32Array".PASS
1: buffer.copyFromChannel(null, 0) threw TypeError: "Value is not an object.".PASS
2: buffer.copyFromChannel(context, 0) threw TypeError: "value is not a typed array.".PASS
3: buffer.copyFromChannel(x, -1) threw IndexSizeError: "The index is not in the allowed range.".PASS
4: buffer.copyFromChannel(x, 3) threw IndexSizeError: "The index is not in the allowed range.".PASS
X 5: buffer.copyFromChannel(x, 0, -1) incorrectly threw IndexSizeError: "The index is not in the allowed range.".FAIL
X 6: buffer.copyFromChannel(x, 0, 16) incorrectly threw IndexSizeError: "The index is not in the allowed range.".FAIL
7: buffer.copyFromChannel(x, 3) threw IndexSizeError: "The index is not in the allowed range.".PASS
0: buffer.copyToChannel(null, 0) threw TypeError: "Value is not an object.".PASS
1: buffer.copyToChannel(context, 0) threw TypeError: "value is not a typed array.".PASS
2: buffer.copyToChannel(x, -1) threw IndexSizeError: "The index is not in the allowed range.".PASS
3: buffer.copyToChannel(x, 3) threw IndexSizeError: "The index is not in the allowed range.".PASS
X 4: buffer.copyToChannel(x, 0, -1) incorrectly threw IndexSizeError: "The index is not in the allowed range.".FAIL
X 5: buffer.copyToChannel(x, 0, 16) incorrectly threw IndexSizeError: "The index is not in the allowed range.".FAIL
6: buffer.copyToChannel(x, 3) threw IndexSizeError: "The index is not in the allowed range.".PASS
# AUDIT TASK RUNNER FINISHED: 2 out of 5 tasks were failed.FAIL
1: buffer.copyFromChannel(null, 0) threw TypeError: "Not an object of type Float32Array".PASS
2: buffer.copyFromChannel(context, 0) threw TypeError: "Not an object of type Float32Array".PASS
3: buffer.copyFromChannel(x, -1) threw IndexSizeError: "Channel index is out of range".PASS
4: buffer.copyFromChannel(x, 3) threw IndexSizeError: "Channel index is out of range".PASS
7: buffer.copyFromChannel(x, 3) threw IndexSizeError: "Channel index is out of range".PASS
8: buffer.copyFromChannel(SharedArrayBuffer view, 0) threw TypeError: "The array buffer object cannot be a SharedArrayBuffer".PASS
9: buffer.copyFromChannel(SharedArrayBuffer view, 0, 0) threw TypeError: "The array buffer object cannot be a SharedArrayBuffer".PASS
0: buffer.copyToChannel(null, 0) threw TypeError: "Not an object of type Float32Array".PASS
1: buffer.copyToChannel(context, 0) threw TypeError: "Not an object of type Float32Array".PASS
2: buffer.copyToChannel(x, -1) threw IndexSizeError: "Channel index is out of range".PASS
3: buffer.copyToChannel(x, 3) threw IndexSizeError: "Channel index is out of range".PASS
6: buffer.copyToChannel(x, 3) threw IndexSizeError: "Channel index is out of range".PASS
7: buffer.copyToChannel(SharedArrayBuffer view, 0) threw TypeError: "The array buffer object cannot be a SharedArrayBuffer".PASS
8: buffer.copyToChannel(SharedArrayBuffer view, 0, 0) threw TypeError: "The array buffer object cannot be a SharedArrayBuffer".PASS