MDN’s new design is in Beta! A sneak peek:

This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.

The OscillatorNode() constructor creates a new OscillatorNode object which is an AudioNode that represents a periodic waveform, like a sine wave, optionally setting the node's properties' values to match values in a specified object.

If the default values of the properties are acceptable, you can optionally use the AudioContext.createOscillator() factory method instead.


var oscillatorNode = new OscillatorNode(context, options)


A reference to an AudioContext.
options Optional
An object whose properties specify the initial values for the oscillator node's properties. Any properties omitted from the object will take on the default value as documented.
The shape of the wave produced by the node. Valid values are 'sine', 'square', 'sawtooth', 'triangle' and 'custom'. The default is 'sine'.
A detuning value (in cents) which will offset the frequency by the given amount. Its default is 0.
The frequency (in hertz) of the periodic waveform. Its default is 440.
An arbitrary period waveform described by a PeriodicWave object.


Specification Status Comment
Web Audio API
The definition of 'OscillatorNode()' in that specification.
Working Draft Initial definition.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 55[1] 25 (25) ? 42 ?
Feature Android Webview Chrome for Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile
Basic support 55[1] 55[1] 25.0 (25) ? ? 42 ?

[1] Before Chrome 59, the default values were not supported. 

Document Tags and Contributors

 Contributors to this page: jpmedley, Sheppy, stevenellul
 Last updated by: jpmedley,