OscillatorNode

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 (en-US)

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

メソッド

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

OscillatorNode.setPeriodicWave()

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

OscillatorNode.start() (en-US)

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

OscillatorNode.stop() (en-US)

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

以下の例は、 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

関連情報