files/en-us/web/api/baseaudiocontext/createoscillator/index.md
{{APIRef("Web Audio API")}}
The createOscillator() method of the {{domxref("BaseAudioContext")}}
interface creates an {{domxref("OscillatorNode")}}, a source representing a periodic
waveform. It basically generates a constant tone.
[!NOTE] The {{domxref("OscillatorNode.OscillatorNode", "OscillatorNode()")}} constructor is the recommended way to create an {{domxref("OscillatorNode")}}; see Creating an AudioNode.
createOscillator()
None.
An {{domxref("OscillatorNode")}}.
The following example shows basic usage of an AudioContext to create an oscillator node. For applied examples/information, check out our Violent Theremin demo (see app.js for relevant code); also see our {{domxref("OscillatorNode")}} page for more information.
// create web audio api context
const audioCtx = new AudioContext();
// create Oscillator node
const oscillator = audioCtx.createOscillator();
oscillator.type = "square";
oscillator.frequency.setValueAtTime(3000, audioCtx.currentTime); // value in hertz
oscillator.connect(audioCtx.destination);
oscillator.start();
{{Specifications}}
{{Compat}}