このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

OscillatorNode

Baseline
広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

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

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

コンストラクター

OscillatorNode()

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

プロパティ

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

OscillatorNode.frequency

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

OscillatorNode.detune

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

OscillatorNode.type

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

イベントハンドラー

OscillatorNode.onended

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

メソッド

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

OscillatorNode.setPeriodicWave()

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

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();

仕様書

仕様書
Web Audio API
# OscillatorNode

ブラウザーの互換性

関連情報