Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

WAAPISim : Web Audio API Simulator

WAAPISim is a 'WebAudioAPI' polyfill fallbacking to the 'Audio Data API', or Flash.
In addition, even in WebAudio API ready browsers, add some latest method name for node-creation and start/stop if the browser does not support these method name.

WAAPISim automatically check the availability of APIs:
WebAudioAPI => AudioDataAPI => Flash

  • Chrome : WebAudioAPI is supported. WAAPISim do nothing.
  • Safari (include iOS) : WebAudioAPI is supported but old method name is used. WAAPISim add new method name for node-creation, start/stop and setTargetAtTime.
  • Firefox : Simulate using AudioDataAPI
  • Opera : Simulate using Flash
  • MSIE : Simulate using Flash. Float32Array is assigned to normal Array(IE9).

For more detail:

WebAudioSynth running on MSIE

Some Links of Test-pages

Try these pages with Firefox/Opera or MSIE.

Node test (Oscillator/ScriptProcessor/BiquadFilter/WaveShaper/Panner/Analyser)
Compressor test
AudioParam Automation test
ChannelSplitter/ChannelMerger test
Oscillator custom waveform test

Shiny Happy MIDI Drum Machine (MIDIDrums) (by Chris Wilson + (Chris Rogers and Ken Moore)) with WAAPISim forked from

WebAudioSynth (by aike) with WAAPISim forked from

Current Status

  • Support : OscillatorNode / ChannelSplitterNode / ChannelMergerNode / AudioBufferSourceNode / WaveShaperNode / AnalyserNode / GainNode / BiquadFilterNode / DelayNode / DynamicsCompressorNode / PannerNode / ScriptProcessorNode / ConvolverNode

  • Not Support : MediaElementAudioSourceNode / MediaStreamAudioSourceNode / MediaStreamAudioDestinationNode / OfflineAudioCOntext

  • ConvolverNode : By performance reason, convolution is executed for only IR's first 1000 samples. Sebsequent part will be replaced as simple delays.

  • PannerNode : Simplified. Listener position should stay default. Source positions are interpreted as x-z 2d coordinate.

  • ScriptProcessorNode : Input buffer size should be 1024 and under (No limitation if use output only)

  • DynamicsCompressorNode : A little different characteristics from Chrome's implements.

  • Number of channels in each nodes should be 1 (mono) or 2(stereo)

  • createBuffer from ArrayBuffer and decodeAudioData supports only wav format.

  • k-rate AudioParam controls are executed only per 1024 samples frequency. a-rate AudioParams are controlled by sample.


Load the 'waapisim.js' before using the Web Audio API functions in your script.

<script type="text/javascript" src="waapisim.js"></script> or <script type="text/javascript" src="waapisim.min.js"></script>

To enable fallbacking to Flash, place the 'waapisim.swf' file to same folder as 'waapisim.js'.


These lines should be specified before loading the 'waapisim.js'

<script type="text/javascript">waapisimLogEnable=1;</script>
Enable internal log info to console.

<script type="text/javascript">waapisimForceSim=1;</script>
Enable WAAPISim even if native WebAudioAPI is available.

<script type="text/javascript">waapisimForceSimWhenNotWebkit=1;</script>
Force enable WAAPISim when non-webkit browser.

  • some versions of Firefox have WebAudioAPI interfaces but not implemented completely (e.g. custom waveforms). Some apps may work better on Firefox with this flag.

<script type="text/javascript">waapisimForceSimWhenLackOsc=0;</script>
Disable WAAPISim if native WebAudioAPI is available even lacking oscillator function (means Firefox 23). This flag is default on (=1).

  • FIrefox 23 or ealier 's WebAudioAPI (need about:config flag setting) is very tentative. In default, WAAPISim ignore this version of WebAudoAPI.


Copyright (c) 2013 g200kg

Modified by Logue

Released under the MIT License


Web Audio API Simulator for Firefox/MSIE/Opera






No releases published


No packages published

Contributors 4