OscillatorNode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

OscillatorNode インターフェイスは、正弦波などの周期的な波形を表します。これは、 AudioScheduledSourceNode 音声処理モジュールの一種で、指定された周波数の波を作成させ、実質的には一定の音になります。

EventTarget AudioNode AudioScheduledSourceNode OscillatorNode
入力数 0
出力数 1
チャンネルカウントモード max
チャンネルカウント 2 (デフォルトのカウントモードでは使用されません。)
チャンネルの解釈 speakers

コンストラクター

OscillatorNode()

新しい OscillatorNode オブジェクトのインスタンスを作成します。オプションとして、ノードのプロパティに既定値を指定したオブジェクトを提供します。別の方法として、 BaseAudioContext.createOscillator() ファクトリーメソッドを使用することも可能です。AudioNode の作成を参照してください。

プロパティ

親インターフェイスである AudioScheduledSourceNode からプロパティを継承しており、さらに以下のプロパティがあります。

OscillatorNode.frequency

a-rateAudioParam であり、振動数・周波数をヘルツ(hertz、記号:Hz)で表わしたものです。(AudioParam は読み取り専用ですが、この値はそうではありません)。初期値は 440 Hz (中央 A (ラ)音)です。

OscillatorNode.detune

a-rateAudioParam であり、発振音の離調をセント単位で表します(AudioParam は読み取り専用ですが、この値が表す値はそうでありません)。既定値は 0 です。

OscillatorNode.type

再生する波形の種類を指定する文字列です。いくつかの標準値の中から 1 つ、または、 customPeriodicWave を使用したカスタム波形を設定することができます。波形が異なれば、音色も異なります。標準的な値は "sine", "square", "sawtooth", "triangle", "custom" です。既定値は "sine" です。

イベントハンドラー

OscillatorNode.onended

音の再生が停止したときに発行される ended イベントに対するイベントハンドラーを設定します。

メソッド

親インターフェイスである AudioScheduledSourceNode からメソッドを継承しており、さらに以下のメソッドがあります。

OscillatorNode.setPeriodicWave()

標準的な波形の代わりに使用する、周期的な波形を記述した PeriodicWave を設定します。これを呼び出すと typecustom に設定されます。

OscillatorNode.start()

音色の再生を開始する正確な時間を指定します。

OscillatorNode.stop()

音色の再生を停止する時間を指定します。

以下の例は、 AudioContext を使用して発振器ノードを作成し、その上で音の再生を開始する基本的な使用方法を示しています。応用例としては、 Violent Theremin demo をご覧ください(関連するコードは app.js を参照してください)。

js
// ウェブオーディオ API コンテキストの作成
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();

// Oscillator ノードを作成します。
const oscillator = audioCtx.createOscillator();

oscillator.type = "square";
oscillator.frequency.setValueAtTime(440, audioCtx.currentTime); // ヘルツ単位の値
oscillator.connect(audioCtx.destination);
oscillator.start();

仕様書

Specification
Web Audio API
# OscillatorNode

ブラウザーの互換性

BCD tables only load in the browser

関連情報