Code examples that accompany the MDN Web Audio documentation https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API
The audio-analyser directory contains a very simple example showing a graphical visualization of an audio signal drawn with data taken from an AnalyserNode
interface. Run the demo live.
The audio-basics directory contains a fun example showing a retro-style "boombox" that allows audio to be played, stereo-panned, and volume-adjusted. Run the demo live.
The audio-buffer directory contains a very simple example showing how to use an AudioBuffer
interface in the Web Audio API. Run the demo live.
The audio-param directory contains some simple examples showing how to use the methods of the Web Audio API AudioParam
interface. Run example live.
The audiocontext-states directory contains a simple demo of the new Web Audio API AudioContext
methods, including the states
property and the close()
, resume()
, and suspend()
methods. Run the demo live.
The compressor-example directory contains a simple demo to show usage of the Web Audio API BaseAudioContext.createDynamicsCompressor()
method and DynamicsCompressorNode
interface. Run the example live.
The create-media-stream-destination directory contains a simple example showing how the Web Audio API AudioContext.createMediaStreamDestination()
method can be used to output a stream - in this case to a MediaRecorder
instance - to output a sinewave to an opus file. Run the demo live.
The decode-audio-data directory contains a simple example demonstrating usage of the Web Audio API BaseAudioContext.decodeAudioData()
method. View example live.
The iirfilter-node directory contains an example showing usage of an IIRFilterNode interface. Run the demo live.
The media-source-buffer directory contains a simple example demonstrating usage of the Web Audio API AudioContext.createMediaElementSource()
method. View the demo live.
The multi-track directory contains an example of connecting separate independently-playable audio tracks to a single AudioDestinationNode
interface. Run the example live.
The offline-audio-context directory contains a simple example to show how a Web Audio API OfflineAudioContext
interface can be used to rapidly process/render audio in the background to create a buffer, which can then be used in any way you please. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioContext. Run example live.
The offline-audio-context-promise directory contains a simple example to show how a Web Audio API OfflineAudioContext
interface can be used to rapidly process/render audio in the background to create a buffer, which can then be used in any way you please. Run the example live.
The output-timestamp directory contains an example of how the AudioContext.getOutputTimestamp()
property can be used to log contextTime
and performanceTime
to the console. Try the demo live.
The panner-node directory contains a demo to show basic usage of the Web Audio API BaseAudioContext.createPanner()
method to control audio spatialization. Run the example live.
The script-processor-node directory contains a simple demo showing how to use the Web Audio API's ScriptProcessorNode
interface to process a loaded audio track, adding a little bit of white noise to each audio sample. See the live demo.
The spacialization directory contains an example of how the various properties of a PannerNode
interface can be adjusted to emulate sound in a three-dimensional space. For more information see Web audio spatialization basics. Try the live demo.
The step-sequencer directory contains a simple step-sequencer that loops and manipulates sounds based on a dial-up modem. For more information see Advanced techniques: creating sound, sequencing, timing, scheduling. See the live demo also.
The stereo-panner-node directory contains a simple example to show how the Web Audio API StereoPannerNode
interface can be used to pan an audio stream. Run the example live.
The stream-source-buffer directory contains a simple example demonstrating usage of the Web Audio API AudioContext.createMediaElementSource()
method. View example live.