Baseline Widely available
The OscillatorNode
interface represents a periodic waveform, such as a sine wave. It is an AudioScheduledSourceNode
audio-processing module that causes a specified frequency of a given wave to be createdâin effect, a constant tone.
0
Number of outputs 1
Channel count mode max
Channel count 2
(not used in the default count mode) Channel interpretation speakers
Constructor
OscillatorNode()
Creates a new instance of an OscillatorNode
object, optionally providing an object specifying default values for the node's properties. As an alternative, you can use the BaseAudioContext.createOscillator()
factory method; see Creating an AudioNode.
Also inherits properties from its parent, AudioScheduledSourceNode
.
OscillatorNode.frequency
An a-rate AudioParam
representing the frequency of oscillation in hertz (though the AudioParam
returned is read-only, the value it represents is not). The default value is 440 Hz (a standard middle-A note).
OscillatorNode.detune
An a-rate AudioParam
representing detuning of oscillation in cents (though the AudioParam
returned is read-only, the value it represents is not). The default value is 0.
OscillatorNode.type
A string which specifies the shape of waveform to play; this can be one of a number of standard values, or custom
to use a PeriodicWave
to describe a custom waveform. Different waves will produce different tones. Standard values are "sine"
, "square"
, "sawtooth"
, "triangle"
and "custom"
. The default is "sine"
.
Also inherits methods from its parent, AudioScheduledSourceNode
.
OscillatorNode.setPeriodicWave()
Sets a PeriodicWave
which describes a periodic waveform to be used instead of one of the standard waveforms; calling this sets the type
to custom
.
AudioScheduledSourceNode.start()
Specifies the exact time to start playing the tone.
AudioScheduledSourceNode.stop()
Specifies the time to stop playing the tone.
Also inherits events from its parent, AudioScheduledSourceNode
.
The following example shows basic usage of an AudioContext
to create an oscillator node and to start playing a tone on it. For an applied example, check out our Violent Theremin demo (see app.js for relevant code).
// create web audio api context
const audioCtx = new AudioContext();
// create Oscillator node
const oscillator = audioCtx.createOscillator();
oscillator.type = "square";
oscillator.frequency.setValueAtTime(440, audioCtx.currentTime); // value in hertz
oscillator.connect(audioCtx.destination);
oscillator.start();
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3