This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
The copyFromChannel() method of the AudioBuffer interface copies the audio sample data from the specified channel of the AudioBuffer to a specified Float32Array.
copyFromChannel(destination, channelNumber, startInChannel)
destinationA Float32Array to copy the channel's samples to.
channelNumberThe channel number of the current AudioBuffer to copy the channel data from.
startInChannel OptionalAn optional offset into the source channel's buffer from which to begin copying samples. If not specified, a value of 0 (the beginning of the buffer) is assumed by default.
None (undefined).
indexSizeErrorOne of the input parameters has a value that is outside the accepted range:
channelNumber specifies a channel number which doesn't exist (that is, it's greater than or equal to the value of numberOfChannels on the channel).startInChannel is outside the current range of samples that already exist in the source buffer; that is, it's greater than its current length.This example creates a new audio buffer, then copies the samples from another channel into it.
const myArrayBuffer = audioCtx.createBuffer(2, frameCount, audioCtx.sampleRate); const anotherArray = new Float32Array(length); myArrayBuffer.copyFromChannel(anotherArray, 1, 0);
| Specification |
|---|
| Web Audio API> # dom-audiobuffer-copyfromchannel> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
copyFromChannel |
43 | 13 | 27 | 30 | 14.1 | 43 | 27 | 30 | 14.5 | 4.0 | 43 | 14.5 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer/copyFromChannel