The onended property of the OscillatorNode interface is used to set the event handler for the ended event, which fires when the tone has stopped playing.


var oscillator = audioCtx.createOscillator();
oscillator.onended = function() { ... };


The following example shows basic usage of an AudioContext to create an oscillator node. For an applied example, check out our Violent Theremin demo (see app.js for relevant code).

// create web audio api context
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();

// create Oscillator node
var oscillator = audioCtx.createOscillator();

oscillator.type = 'square';
oscillator.frequency.value = 440; // value in hertz
oscillator.start(); // start the tone playing

oscillator.stop(5); // the tone will stop again in 5 seconds.

oscillator.onended = function() {
  console.log('Your tone has now stopped playing!');




Specification Status Comment
Web Audio API
The definition of 'onended' in that specification.
Working Draft  

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support14 Yes25 No156
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic support Yes14 Yes26 No15 ?

See also

Document Tags and Contributors

 Contributors to this page: fscholz, abbycar, alxjnssn, chrisdavidmills
 Last updated by: fscholz,