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
音声処理モジュールの一種で、指定された周波数の波を作成させ、実質的には一定の音になります。
入力数 | 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 を参照してください)。
// ウェブオーディオ 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