Widely Available
Web audio
id: web-audio
Web Audio
The Web Audio API creates graphs of audio nodes that handle sound inputs, synthesize sounds, apply effects, create visualizations, and output to audio devices.
Baseline Status:
Achieved Widely Available on Oct 26, 2023 (Cross-browser Newly Available since Apr 26, 2021).
Desktop Browser Engine Support
Google Chrome
35
Supported
Mozilla Firefox
25
Supported
Apple Safari
14.1
Supported
Microsoft Edge
12
Supported
Mobile Browser Engine Support
Chrome Android
35
Firefox Android
25
Safari iOS
14.5
Specifications and References
MDN Browser Compat Data Keys:
api.AnalyserNode ↗
api.AnalyserNode.AnalyserNode ↗
api.AnalyserNode.fftSize ↗
api.AnalyserNode.frequencyBinCount ↗
api.AnalyserNode.getByteFrequencyData ↗
api.AnalyserNode.getByteTimeDomainData ↗
api.AnalyserNode.getFloatFrequencyData ↗
api.AnalyserNode.getFloatTimeDomainData ↗
api.AnalyserNode.maxDecibels ↗
api.AnalyserNode.minDecibels ↗
api.AnalyserNode.smoothingTimeConstant ↗
api.AudioBuffer ↗
api.AudioBuffer.AudioBuffer ↗
api.AudioBuffer.copyFromChannel ↗
api.AudioBuffer.copyToChannel ↗
api.AudioBuffer.duration ↗
api.AudioBuffer.getChannelData ↗
api.AudioBuffer.length ↗
api.AudioBuffer.numberOfChannels ↗
api.AudioBuffer.sampleRate ↗
api.AudioBufferSourceNode ↗
api.AudioBufferSourceNode.AudioBufferSourceNode ↗
api.AudioBufferSourceNode.buffer ↗
api.AudioBufferSourceNode.detune ↗
api.AudioBufferSourceNode.loop ↗
api.AudioBufferSourceNode.loopEnd ↗
api.AudioBufferSourceNode.loopStart ↗
api.AudioBufferSourceNode.playbackRate ↗
api.AudioBufferSourceNode.start ↗
api.AudioContext ↗
api.AudioContext.AudioContext ↗
api.AudioContext.AudioContext.options_latencyHint_parameter ↗
api.AudioContext.AudioContext.options_sampleRate_parameter ↗
api.AudioContext.AudioContext.options_sinkId_parameter ↗
api.AudioContext.baseLatency ↗
api.AudioContext.close ↗
api.AudioContext.createMediaElementSource ↗
api.AudioContext.createMediaStreamDestination ↗
api.AudioContext.createMediaStreamSource ↗
api.AudioContext.createMediaStreamTrackSource ↗
api.AudioContext.error_event ↗
api.AudioContext.getOutputTimestamp ↗
api.AudioContext.outputLatency ↗
api.AudioContext.resume ↗
api.AudioContext.setSinkId ↗
api.AudioContext.sinkId ↗
api.AudioContext.sinkchange_event ↗
api.AudioContext.suspend ↗
api.AudioDestinationNode ↗
api.AudioDestinationNode.maxChannelCount ↗
api.AudioNode ↗
api.AudioNode.channelCount ↗
api.AudioNode.channelCountMode ↗
api.AudioNode.channelInterpretation ↗
api.AudioNode.connect ↗
api.AudioNode.context ↗
api.AudioNode.disconnect ↗
api.AudioNode.disconnect.destination_parameter ↗
api.AudioNode.disconnect.input_parameter ↗
api.AudioNode.numberOfInputs ↗
api.AudioNode.numberOfOutputs ↗
api.AudioParam ↗
api.AudioParam.automationRate ↗
api.AudioParam.cancelAndHoldAtTime ↗
api.AudioParam.cancelScheduledValues ↗
api.AudioParam.defaultValue ↗
api.AudioParam.exponentialRampToValueAtTime ↗
api.AudioParam.linearRampToValueAtTime ↗
api.AudioParam.maxValue ↗
api.AudioParam.minValue ↗
api.AudioParam.setTargetAtTime ↗
api.AudioParam.setValueAtTime ↗
api.AudioParam.setValueCurveAtTime ↗
api.AudioParam.value ↗
api.AudioParamMap ↗
api.AudioParamMap.@@iterator ↗
api.AudioParamMap.entries ↗
api.AudioParamMap.forEach ↗
api.AudioParamMap.get ↗
api.AudioParamMap.has ↗
api.AudioParamMap.keys ↗
api.AudioParamMap.size ↗
api.AudioParamMap.values ↗
api.AudioScheduledSourceNode ↗
api.AudioScheduledSourceNode.ended_event ↗
api.AudioScheduledSourceNode.start ↗
api.AudioScheduledSourceNode.stop ↗
api.AudioSinkInfo ↗
api.AudioSinkInfo.type ↗
api.BaseAudioContext ↗
api.BaseAudioContext.createAnalyser ↗
api.BaseAudioContext.createBiquadFilter ↗
api.BaseAudioContext.createBuffer ↗
api.BaseAudioContext.createBufferSource ↗
api.BaseAudioContext.createChannelMerger ↗
api.BaseAudioContext.createChannelSplitter ↗
api.BaseAudioContext.createConstantSource ↗
api.BaseAudioContext.createConvolver ↗
api.BaseAudioContext.createDelay ↗
api.BaseAudioContext.createDynamicsCompressor ↗
api.BaseAudioContext.createGain ↗
api.BaseAudioContext.createIIRFilter ↗
api.BaseAudioContext.createOscillator ↗
api.BaseAudioContext.createPanner ↗
api.BaseAudioContext.createPeriodicWave ↗
api.BaseAudioContext.createPeriodicWave.constraints_disableNormalization_parameter ↗
api.BaseAudioContext.createStereoPanner ↗
api.BaseAudioContext.createWaveShaper ↗
api.BaseAudioContext.currentTime ↗
api.BaseAudioContext.decodeAudioData ↗
api.BaseAudioContext.decodeAudioData.returns_promise ↗
api.BaseAudioContext.destination ↗
api.BaseAudioContext.listener ↗
api.BaseAudioContext.sampleRate ↗
api.BaseAudioContext.state ↗
api.BaseAudioContext.statechange_event ↗
api.BiquadFilterNode ↗
api.BiquadFilterNode.BiquadFilterNode ↗
api.BiquadFilterNode.Q ↗
api.BiquadFilterNode.detune ↗
api.BiquadFilterNode.frequency ↗
api.BiquadFilterNode.gain ↗
api.BiquadFilterNode.getFrequencyResponse ↗
api.BiquadFilterNode.type ↗
api.ChannelMergerNode ↗
api.ChannelMergerNode.ChannelMergerNode ↗
api.ChannelSplitterNode ↗
api.ChannelSplitterNode.ChannelSplitterNode ↗
api.ConstantSourceNode ↗
api.ConstantSourceNode.ConstantSourceNode ↗
api.ConstantSourceNode.offset ↗
api.ConvolverNode ↗
api.ConvolverNode.ConvolverNode ↗
api.ConvolverNode.buffer ↗
api.ConvolverNode.normalize ↗
api.DelayNode ↗
api.DelayNode.DelayNode ↗
api.DelayNode.delayTime ↗
api.DynamicsCompressorNode ↗
api.DynamicsCompressorNode.DynamicsCompressorNode ↗
api.DynamicsCompressorNode.attack ↗
api.DynamicsCompressorNode.knee ↗
api.DynamicsCompressorNode.ratio ↗
api.DynamicsCompressorNode.reduction ↗
api.DynamicsCompressorNode.release ↗
api.DynamicsCompressorNode.threshold ↗
api.GainNode ↗
api.GainNode.GainNode ↗
api.GainNode.gain ↗
api.IIRFilterNode ↗
api.IIRFilterNode.IIRFilterNode ↗
api.IIRFilterNode.getFrequencyResponse ↗
api.MediaElementAudioSourceNode ↗
api.MediaElementAudioSourceNode.MediaElementAudioSourceNode ↗
api.MediaElementAudioSourceNode.mediaElement ↗
api.MediaStreamAudioDestinationNode ↗
api.MediaStreamAudioDestinationNode.MediaStreamAudioDestinationNode ↗
api.MediaStreamAudioDestinationNode.stream ↗
api.MediaStreamAudioSourceNode ↗
api.MediaStreamAudioSourceNode.MediaStreamAudioSourceNode ↗
api.MediaStreamAudioSourceNode.mediaStream ↗
api.MediaStreamTrackAudioSourceNode ↗
api.MediaStreamTrackAudioSourceNode.MediaStreamTrackAudioSourceNode ↗
api.OscillatorNode ↗
api.OscillatorNode.OscillatorNode ↗
api.OscillatorNode.detune ↗
api.OscillatorNode.frequency ↗
api.OscillatorNode.setPeriodicWave ↗
api.OscillatorNode.type ↗
api.PannerNode ↗
api.PannerNode.PannerNode ↗
api.PannerNode.coneInnerAngle ↗
api.PannerNode.coneOuterAngle ↗
api.PannerNode.coneOuterGain ↗
api.PannerNode.distanceModel ↗
api.PannerNode.maxDistance ↗
api.PannerNode.orientationX ↗
api.PannerNode.orientationY ↗
api.PannerNode.orientationZ ↗
api.PannerNode.panningModel ↗
api.PannerNode.positionX ↗
api.PannerNode.positionY ↗
api.PannerNode.positionZ ↗
api.PannerNode.refDistance ↗
api.PannerNode.rolloffFactor ↗
api.PeriodicWave ↗
api.PeriodicWave.PeriodicWave ↗
api.StereoPannerNode ↗
api.StereoPannerNode.StereoPannerNode ↗
api.StereoPannerNode.pan ↗
api.WaveShaperNode ↗
api.WaveShaperNode.WaveShaperNode ↗
api.WaveShaperNode.curve ↗
api.WaveShaperNode.oversample ↗