coderef

Web AudioBaseline · Widely available

The Web Audio API creates graphs of audio nodes that handle sound inputs, synthesize sounds, apply effects, create visualizations, and output to audio devices.

Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Apr 26, 2021. Widely available since Oct 26, 2023.

Browser support

DesktopChrome
1–34Not supported
35+Supportedsince May 20, 2014
Current: 155
Edge
12+Supportedsince Jul 29, 2015
Current: 154
Firefox
1–24Not supported
25+Supportedsince Oct 29, 2013
Current: 157
Safari
1–14Not supported
14.1+Supportedsince Apr 26, 2021
Current: 27
MobileChrome Android
18–34Not supported
35+Supportedsince May 20, 2014
Current: 155
Firefox Android
4–24Not supported
25+Supportedsince Oct 29, 2013
Current: 157
Safari iOS
1–14Not supported
14.5+Supportedsince Apr 26, 2021
Current: 27

How to use

This feature is Baseline widely available — use it freely, no fallback needed.

Example

Full syntax and examples are on MDN: AnalyserNode.

Feature detection

JS · check before using
if ("AudioBuffer" in globalThis) {
  // AudioBuffer is available
} else {
  // load a polyfill or use a fallback
}

Sub-features

Support for each part of the feature (194). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
AnalyserNode141225618256
AnalyserNode.AnalyserNode55795314.1555314.5
AnalyserNode.fftSize141225618256
AnalyserNode.frequencyBinCount141225618256
AnalyserNode.getByteFrequencyData141225618256
AnalyserNode.getByteTimeDomainData141225618256
AnalyserNode.getFloatFrequencyData141225618256
AnalyserNode.getFloatTimeDomainData35123014.1353014.5
AnalyserNode.maxDecibels141225618256
AnalyserNode.minDecibels141225618256
AnalyserNode.smoothingTimeConstant141225618256
AudioBuffer141225618256
AudioBuffer.AudioBuffer55795314.1555314.5
AudioBuffer.copyFromChannel43132714.1432714.5
AudioBuffer.copyToChannel43132714.1432714.5
AudioBuffer.duration141225618256
AudioBuffer.getChannelData141225618256
AudioBuffer.length141225618256
AudioBuffer.numberOfChannels141225618256
AudioBuffer.sampleRate141225618256
Show 174 more
Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
AudioBufferSourceNode141225618256
AudioBufferSourceNode.AudioBufferSourceNode55795314.1555314.5
AudioBufferSourceNode.buffer141225618256
AudioBufferSourceNode.detune44134014.1444014.5
AudioBufferSourceNode.loop151225618256
AudioBufferSourceNode.loopEnd241225725257
AudioBufferSourceNode.loopStart241225725257
AudioBufferSourceNode.playbackRate141225618256
AudioBufferSourceNode.start241225725257
AudioContext35122514.1352514.5
AudioContext.AudioContext35122514.1352514.5
AudioContext.AudioContext.options_latencyHint_parameter5879✕14.158✕14.5
AudioContext.AudioContext.options_sampleRate_parameter74796114.1746114.5
AudioContext.AudioContext.options_sinkId_parameter110110✕✕110✕✕
AudioContext.baseLatency58797014.1587914.5
AudioContext.close42144014.1424014.5
AudioContext.createMediaElementSource35122514.1352514.5
AudioContext.createMediaStreamDestination35792514.1352514.5
AudioContext.createMediaStreamSource35122514.1352514.5
AudioContext.createMediaStreamTrackSource✕✕68✕✕68✕
AudioContext.error_event128128✕✕128✕✕
AudioContext.getOutputTimestamp57797014.1577914.5
AudioContext.outputLatency1021027018.41027918.4
AudioContext.resume41144014.1414014.5
AudioContext.setSinkId110110✕✕110✕✕
AudioContext.sinkId110110✕✕110✕✕
AudioContext.sinkchange_event110110✕✕110✕✕
AudioContext.suspend41144014.1414014.5
AudioDestinationNode141225618256
AudioDestinationNode.maxChannelCount27122514.1272514.5
AudioNode141225618256
AudioNode.channelCount271225727257
AudioNode.channelCountMode271225727257
AudioNode.channelInterpretation271225727257
AudioNode.connect141225618256
AudioNode.context141225618256
AudioNode.disconnect141225618256
AudioNode.disconnect.destination_parameter43≤18✕✕43✕✕
AudioNode.disconnect.input_parameter43≤18✕✕43✕✕
AudioNode.numberOfInputs141225618256
AudioNode.numberOfOutputs141225618256
AudioParam141225618256
AudioParam.automationRate6879✕1468✕14
AudioParam.cancelAndHoldAtTime5779✕14.157✕14.5
AudioParam.cancelScheduledValues8383✕14.183✕14.5
AudioParam.defaultValue141225618256
AudioParam.exponentialRampToValueAtTime1412✕6✕✕6
AudioParam.linearRampToValueAtTime1412✕6✕✕6
AudioParam.maxValue527953652536
AudioParam.minValue527953652536
AudioParam.setTargetAtTime241225625256
AudioParam.setValueAtTime141225618256
AudioParam.setValueCurveAtTime141225618256
AudioParam.value141225618256
AudioParamMap66797614.1667914.5
AudioParamMap.@@iterator66797614.1667914.5
AudioParamMap.entries66797614.1667914.5
AudioParamMap.forEach66797614.1667914.5
AudioParamMap.get66797614.1667914.5
AudioParamMap.has66797614.1667914.5
AudioParamMap.keys66797614.1667914.5
AudioParamMap.size66797614.1667914.5
AudioParamMap.values66797614.1667914.5
AudioScheduledSourceNode57795314575314
AudioScheduledSourceNode.ended_event57795314575314
AudioScheduledSourceNode.start57795314575314
AudioScheduledSourceNode.stop57795314575314
AudioSinkInfo110110✕✕110✕✕
AudioSinkInfo.type110110✕✕110✕✕
BaseAudioContext56795314.1565314.5
BaseAudioContext.createAnalyser56795314.1565314.5
BaseAudioContext.createBiquadFilter56795314.1565314.5
BaseAudioContext.createBuffer56795314.1565314.5
BaseAudioContext.createBufferSource56795314.1565314.5
BaseAudioContext.createChannelMerger56795314.1565314.5
BaseAudioContext.createChannelSplitter56795314.1565314.5
BaseAudioContext.createConstantSource56795314.1565314.5
BaseAudioContext.createConvolver56795314.1565314.5
BaseAudioContext.createDelay56795314.1565314.5
BaseAudioContext.createDynamicsCompressor56795314.1565314.5
BaseAudioContext.createGain56795314.1565314.5
BaseAudioContext.createIIRFilter56795314.1565314.5
BaseAudioContext.createOscillator56795314.1565314.5
BaseAudioContext.createPanner56795314.1565314.5
BaseAudioContext.createPeriodicWave56795314.1565314.5
BaseAudioContext.createPeriodicWave.constraints_disableNormalization_parameter56795314.1565314.5
BaseAudioContext.createStereoPanner56795314.1565314.5
BaseAudioContext.createWaveShaper56795314.1565314.5
BaseAudioContext.currentTime56795314.1565314.5
BaseAudioContext.decodeAudioData56795314.1565314.5
BaseAudioContext.decodeAudioData.returns_promise56795314.1565314.5
BaseAudioContext.destination56795314.1565314.5
BaseAudioContext.listener56795314.1565314.5
BaseAudioContext.sampleRate56795314.1565314.5
BaseAudioContext.state56795314.1565314.5
BaseAudioContext.statechange_event56795314.1565314.5
BiquadFilterNode141225618256
BiquadFilterNode.BiquadFilterNode55795314.1555314.5
BiquadFilterNode.Q141225618256
BiquadFilterNode.detune251225725257
BiquadFilterNode.frequency141225618256
BiquadFilterNode.gain141225618256
BiquadFilterNode.getFrequencyResponse171225618256
BiquadFilterNode.type141225618256
ChannelMergerNode141225618256
ChannelMergerNode.ChannelMergerNode55795314.1555314.5
ChannelSplitterNode141225618256
ChannelSplitterNode.ChannelSplitterNode55795314.1555314.5
ConstantSourceNode56795214.1565214.5
ConstantSourceNode.ConstantSourceNode56795214.1565214.5
ConstantSourceNode.offset56795214.1565214.5
ConvolverNode141225618256
ConvolverNode.ConvolverNode55795314.1555314.5
ConvolverNode.buffer141225618256
ConvolverNode.normalize181225618256
DelayNode241225725257
DelayNode.DelayNode55795314.1555314.5
DelayNode.delayTime241225725257
DynamicsCompressorNode141225618256
DynamicsCompressorNode.DynamicsCompressorNode55795314.1555314.5
DynamicsCompressorNode.attack191225625256
DynamicsCompressorNode.knee191225625256
DynamicsCompressorNode.ratio191225625256
DynamicsCompressorNode.reduction191225625256
DynamicsCompressorNode.release201225625256
DynamicsCompressorNode.threshold191225625256
GainNode241225725257
GainNode.GainNode55795314.1555314.5
GainNode.gain241225725257
IIRFilterNode49145014.1495014.5
IIRFilterNode.IIRFilterNode55795314.1555314.5
IIRFilterNode.getFrequencyResponse49145014.1495014.5
MediaElementAudioSourceNode151225618256
MediaElementAudioSourceNode.MediaElementAudioSourceNode55795314.1555314.5
MediaElementAudioSourceNode.mediaElement157970618796
MediaStreamAudioDestinationNode25182511252511
MediaStreamAudioDestinationNode.MediaStreamAudioDestinationNode57795314.1575314.5
MediaStreamAudioDestinationNode.stream25182511252511
MediaStreamAudioSourceNode22122511252511
MediaStreamAudioSourceNode.MediaStreamAudioSourceNode55795314.1555314.5
MediaStreamAudioSourceNode.mediaStream22797011257911
MediaStreamTrackAudioSourceNode✕✕68✕✕68✕
MediaStreamTrackAudioSourceNode.MediaStreamTrackAudioSourceNode✕✕68✕✕68✕
OscillatorNode201225625256
OscillatorNode.OscillatorNode55795314.1555314.5
OscillatorNode.detune201225625256
OscillatorNode.frequency201225625256
OscillatorNode.setPeriodicWave301225830258
OscillatorNode.type201225625256
PannerNode141225618256
PannerNode.PannerNode55795314.1555314.5
PannerNode.coneInnerAngle141225618256
PannerNode.coneOuterAngle141225618256
PannerNode.coneOuterGain141225618256
PannerNode.distanceModel141225618256
PannerNode.maxDistance141225618256
PannerNode.orientationX52795014.1525014.5
PannerNode.orientationY52795014.1525014.5
PannerNode.orientationZ52795014.1525014.5
PannerNode.panningModel141225618256
PannerNode.positionX52795014.1525014.5
PannerNode.positionY52795014.1525014.5
PannerNode.positionZ52795014.1525014.5
PannerNode.refDistance141225618256
PannerNode.rolloffFactor141225618256
PeriodicWave301225830268
PeriodicWave.PeriodicWave55795314.1555314.5
StereoPannerNode41123714.1413714.5
StereoPannerNode.StereoPannerNode55795314.1555314.5
StereoPannerNode.pan41123714.1413714.5
WaveShaperNode151225618256
WaveShaperNode.WaveShaperNode55795314.1555314.5
WaveShaperNode.curve151225618256
WaveShaperNode.oversample291226629266