The type
property of the OscillatorNode
interface specifies what shape of waveform the oscillator will output. There are several common waveforms available, as well as an option to specify a custom waveform shape. The shape of the waveform will affect the tone that is produced.
Syntax
OscillatorNode.type = type;
Value
A DOMString
specifying the shape of oscillator wave. The different available values are:
sine
- A sine wave. This is the default value.
square
- A square wave with a duty cycle of 0.5; that is, the signal is "high" for half of each period.
sawtooth
- A sawtooth wave.
triangle
- A triangle wave.
custom
- A custom waveform. You never set
type
tocustom
manually; instead, use thesetPeriodicWave()
method to provide the data representing the waveform. Doing so automatically sets thetype
tocustom
.
Exceptions
InvalidStateError
- The value
custom
was specified. To set a custom waveform, just callsetPeriodicWave()
. Doing so automatically sets the type for you.
Example
The following example shows basic usage of an AudioContext
to create an oscillator node. For an applied example, check out our [[../../../../../../../mdn.github.io/violent-theremin/index|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.setValueAtTime(440, audioCtx.currentTime); // value in hertz oscillator.start();
Specifications
Specification | Status | Comment |
Web Audio APIThe definition of 'type' in that specification. | Working Draft |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
type
|
Chrome
Full support 14 |
Edge
Full support 12 |
Firefox
Full support 25 |
IE
No support No |
Opera
Full support 15 |
Safari
Full support 6 |
WebView Android
Full support Yes |
Chrome Android
Full support 18 |
Firefox Android
Full support 26 |
Opera Android
Full support 14 |
Safari iOS
Full support Yes |
Samsung Internet Android
Full support 1.0 |
Legend
- Full support
- Full support
- No support
- No support
See also
OscillatorNode.type by Mozilla Contributors is licensed under CC-BY-SA 2.5.