<?xml version="1.0" encoding="UTF-8"?>
<feature id="web-audio"><name>Web Audio</name><description>The Web Audio API creates graphs of audio nodes that handle sound inputs, synthesize sounds, apply effects, create visualizations, and output to audio devices.</description><group>web-audio</group><group_name>Web audio</group_name><baseline><status>widely</status><low_date>2021-04-26</low_date><high_date>2023-10-26</high_date></baseline><support><browser name="chrome" version="35" supported="true"></browser><browser name="firefox" version="25" supported="true"></browser><browser name="safari" version="14.1" supported="true"></browser><browser name="edge" version="12" supported="true"></browser><browser name="chrome_android" version="35" supported="true"></browser><browser name="firefox_android" version="25" supported="true"></browser><browser name="safari_ios" version="14.5" supported="true"></browser></support><specifications><spec>https://webaudio.github.io/web-audio-api/</spec></specifications><caniuse><id>audio-api</id></caniuse><mdn_url>https://developer.mozilla.org/docs/Web/API/GainNode</mdn_url><compat_features><key>api.AnalyserNode</key><key>api.AnalyserNode.AnalyserNode</key><key>api.AnalyserNode.fftSize</key><key>api.AnalyserNode.frequencyBinCount</key><key>api.AnalyserNode.getByteFrequencyData</key><key>api.AnalyserNode.getByteTimeDomainData</key><key>api.AnalyserNode.getFloatFrequencyData</key><key>api.AnalyserNode.getFloatTimeDomainData</key><key>api.AnalyserNode.maxDecibels</key><key>api.AnalyserNode.minDecibels</key><key>api.AnalyserNode.smoothingTimeConstant</key><key>api.AudioBuffer</key><key>api.AudioBuffer.AudioBuffer</key><key>api.AudioBuffer.copyFromChannel</key><key>api.AudioBuffer.copyToChannel</key><key>api.AudioBuffer.duration</key><key>api.AudioBuffer.getChannelData</key><key>api.AudioBuffer.length</key><key>api.AudioBuffer.numberOfChannels</key><key>api.AudioBuffer.sampleRate</key><key>api.AudioBufferSourceNode</key><key>api.AudioBufferSourceNode.AudioBufferSourceNode</key><key>api.AudioBufferSourceNode.buffer</key><key>api.AudioBufferSourceNode.detune</key><key>api.AudioBufferSourceNode.loop</key><key>api.AudioBufferSourceNode.loopEnd</key><key>api.AudioBufferSourceNode.loopStart</key><key>api.AudioBufferSourceNode.playbackRate</key><key>api.AudioBufferSourceNode.start</key><key>api.AudioContext</key><key>api.AudioContext.AudioContext</key><key>api.AudioContext.AudioContext.options_latencyHint_parameter</key><key>api.AudioContext.AudioContext.options_sampleRate_parameter</key><key>api.AudioContext.AudioContext.options_sinkId_parameter</key><key>api.AudioContext.baseLatency</key><key>api.AudioContext.close</key><key>api.AudioContext.createMediaElementSource</key><key>api.AudioContext.createMediaStreamDestination</key><key>api.AudioContext.createMediaStreamSource</key><key>api.AudioContext.createMediaStreamTrackSource</key><key>api.AudioContext.error_event</key><key>api.AudioContext.getOutputTimestamp</key><key>api.AudioContext.outputLatency</key><key>api.AudioContext.resume</key><key>api.AudioContext.setSinkId</key><key>api.AudioContext.sinkId</key><key>api.AudioContext.sinkchange_event</key><key>api.AudioContext.suspend</key><key>api.AudioDestinationNode</key><key>api.AudioDestinationNode.maxChannelCount</key><key>api.AudioNode</key><key>api.AudioNode.channelCount</key><key>api.AudioNode.channelCountMode</key><key>api.AudioNode.channelInterpretation</key><key>api.AudioNode.connect</key><key>api.AudioNode.context</key><key>api.AudioNode.disconnect</key><key>api.AudioNode.disconnect.destination_parameter</key><key>api.AudioNode.disconnect.input_parameter</key><key>api.AudioNode.numberOfInputs</key><key>api.AudioNode.numberOfOutputs</key><key>api.AudioParam</key><key>api.AudioParam.automationRate</key><key>api.AudioParam.cancelAndHoldAtTime</key><key>api.AudioParam.cancelScheduledValues</key><key>api.AudioParam.defaultValue</key><key>api.AudioParam.exponentialRampToValueAtTime</key><key>api.AudioParam.linearRampToValueAtTime</key><key>api.AudioParam.maxValue</key><key>api.AudioParam.minValue</key><key>api.AudioParam.setTargetAtTime</key><key>api.AudioParam.setValueAtTime</key><key>api.AudioParam.setValueCurveAtTime</key><key>api.AudioParam.value</key><key>api.AudioParamMap</key><key>api.AudioParamMap.@@iterator</key><key>api.AudioParamMap.entries</key><key>api.AudioParamMap.forEach</key><key>api.AudioParamMap.get</key><key>api.AudioParamMap.has</key><key>api.AudioParamMap.keys</key><key>api.AudioParamMap.size</key><key>api.AudioParamMap.values</key><key>api.AudioScheduledSourceNode</key><key>api.AudioScheduledSourceNode.ended_event</key><key>api.AudioScheduledSourceNode.start</key><key>api.AudioScheduledSourceNode.stop</key><key>api.AudioSinkInfo</key><key>api.AudioSinkInfo.type</key><key>api.BaseAudioContext</key><key>api.BaseAudioContext.createAnalyser</key><key>api.BaseAudioContext.createBiquadFilter</key><key>api.BaseAudioContext.createBuffer</key><key>api.BaseAudioContext.createBufferSource</key><key>api.BaseAudioContext.createChannelMerger</key><key>api.BaseAudioContext.createChannelSplitter</key><key>api.BaseAudioContext.createConstantSource</key><key>api.BaseAudioContext.createConvolver</key><key>api.BaseAudioContext.createDelay</key><key>api.BaseAudioContext.createDynamicsCompressor</key><key>api.BaseAudioContext.createGain</key><key>api.BaseAudioContext.createIIRFilter</key><key>api.BaseAudioContext.createOscillator</key><key>api.BaseAudioContext.createPanner</key><key>api.BaseAudioContext.createPeriodicWave</key><key>api.BaseAudioContext.createPeriodicWave.constraints_disableNormalization_parameter</key><key>api.BaseAudioContext.createStereoPanner</key><key>api.BaseAudioContext.createWaveShaper</key><key>api.BaseAudioContext.currentTime</key><key>api.BaseAudioContext.decodeAudioData</key><key>api.BaseAudioContext.decodeAudioData.returns_promise</key><key>api.BaseAudioContext.destination</key><key>api.BaseAudioContext.listener</key><key>api.BaseAudioContext.sampleRate</key><key>api.BaseAudioContext.state</key><key>api.BaseAudioContext.statechange_event</key><key>api.BiquadFilterNode</key><key>api.BiquadFilterNode.BiquadFilterNode</key><key>api.BiquadFilterNode.Q</key><key>api.BiquadFilterNode.detune</key><key>api.BiquadFilterNode.frequency</key><key>api.BiquadFilterNode.gain</key><key>api.BiquadFilterNode.getFrequencyResponse</key><key>api.BiquadFilterNode.type</key><key>api.ChannelMergerNode</key><key>api.ChannelMergerNode.ChannelMergerNode</key><key>api.ChannelSplitterNode</key><key>api.ChannelSplitterNode.ChannelSplitterNode</key><key>api.ConstantSourceNode</key><key>api.ConstantSourceNode.ConstantSourceNode</key><key>api.ConstantSourceNode.offset</key><key>api.ConvolverNode</key><key>api.ConvolverNode.ConvolverNode</key><key>api.ConvolverNode.buffer</key><key>api.ConvolverNode.normalize</key><key>api.DelayNode</key><key>api.DelayNode.DelayNode</key><key>api.DelayNode.delayTime</key><key>api.DynamicsCompressorNode</key><key>api.DynamicsCompressorNode.DynamicsCompressorNode</key><key>api.DynamicsCompressorNode.attack</key><key>api.DynamicsCompressorNode.knee</key><key>api.DynamicsCompressorNode.ratio</key><key>api.DynamicsCompressorNode.reduction</key><key>api.DynamicsCompressorNode.release</key><key>api.DynamicsCompressorNode.threshold</key><key>api.GainNode</key><key>api.GainNode.GainNode</key><key>api.GainNode.gain</key><key>api.IIRFilterNode</key><key>api.IIRFilterNode.IIRFilterNode</key><key>api.IIRFilterNode.getFrequencyResponse</key><key>api.MediaElementAudioSourceNode</key><key>api.MediaElementAudioSourceNode.MediaElementAudioSourceNode</key><key>api.MediaElementAudioSourceNode.mediaElement</key><key>api.MediaStreamAudioDestinationNode</key><key>api.MediaStreamAudioDestinationNode.MediaStreamAudioDestinationNode</key><key>api.MediaStreamAudioDestinationNode.stream</key><key>api.MediaStreamAudioSourceNode</key><key>api.MediaStreamAudioSourceNode.MediaStreamAudioSourceNode</key><key>api.MediaStreamAudioSourceNode.mediaStream</key><key>api.MediaStreamTrackAudioSourceNode</key><key>api.MediaStreamTrackAudioSourceNode.MediaStreamTrackAudioSourceNode</key><key>api.OscillatorNode</key><key>api.OscillatorNode.OscillatorNode</key><key>api.OscillatorNode.detune</key><key>api.OscillatorNode.frequency</key><key>api.OscillatorNode.setPeriodicWave</key><key>api.OscillatorNode.type</key><key>api.PannerNode</key><key>api.PannerNode.PannerNode</key><key>api.PannerNode.coneInnerAngle</key><key>api.PannerNode.coneOuterAngle</key><key>api.PannerNode.coneOuterGain</key><key>api.PannerNode.distanceModel</key><key>api.PannerNode.maxDistance</key><key>api.PannerNode.orientationX</key><key>api.PannerNode.orientationY</key><key>api.PannerNode.orientationZ</key><key>api.PannerNode.panningModel</key><key>api.PannerNode.positionX</key><key>api.PannerNode.positionY</key><key>api.PannerNode.positionZ</key><key>api.PannerNode.refDistance</key><key>api.PannerNode.rolloffFactor</key><key>api.PeriodicWave</key><key>api.PeriodicWave.PeriodicWave</key><key>api.StereoPannerNode</key><key>api.StereoPannerNode.StereoPannerNode</key><key>api.StereoPannerNode.pan</key><key>api.WaveShaperNode</key><key>api.WaveShaperNode.WaveShaperNode</key><key>api.WaveShaperNode.curve</key><key>api.WaveShaperNode.oversample</key></compat_features><canonical_url>https://nowyoucanuse.com/features--web-audio.html</canonical_url></feature>