OscillatorNode: type property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Thetype property of theOscillatorNode interface specifies what shape ofwaveform theoscillator will output. There are several common waveforms available, as well as anoption to specify a custom waveform shape. The shape of the waveform will affect thetone that is produced.
In this article
Value
A string specifying the shape of oscillator wave. The differentavailable values are:
sineAsine wave. This is the default value.
squareAsquare wave with aduty cycle of 0.5; that is, the signal is "high" for half of each period.
sawtoothtrianglecustomA custom waveform. You never set
typetocustommanually;instead, use thesetPeriodicWave()method to provide the data representing the waveform. Doing so automatically sets thetypetocustom.
Also seedifferent oscillator node types for a visualization of the different waveform shapes.
Exceptions
InvalidStateErrorDOMExceptionThrown if the value
customwas specified. To set a custom waveform, just callsetPeriodicWave(). Doing soautomatically sets the type for you.
Examples
The following example shows basic usage of anAudioContext to createan oscillator node. For an applied example, check out ourViolent Theremin demo (see app.js for relevant code).
// create web audio api contextconst audioCtx = new AudioContext();// create Oscillator nodeconst oscillator = audioCtx.createOscillator();oscillator.type = "square";oscillator.frequency.setValueAtTime(440, audioCtx.currentTime); // value in hertzoscillator.start();Specifications
| Specification |
|---|
| Web Audio API> # dom-oscillatornode-type> |