OscillatorNode
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
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> |
ブラウザーの互換性
Loading…