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

BCD tables only load in the browser

See also