--- title: OscillatorNode slug: Web/API/OscillatorNode translation_of: Web/API/OscillatorNode ---

{{APIRef("Web Audio API")}}

OscillatorNode インタフェースは、正弦波などの周期的な波形を表します。これは、指定された波形で、特定の周波数の一定のトーンを発生させる、オーディオ処理モジュール {{domxref("AudioScheduledSourceNode")}} です。

この OscillatorNode は {{domxref("AudioContext.createOscillator()")}} で生成されます。常に1つの出力だけをもち、入力はありません。基本的なプロパティのデフォルト値 (定義 については {{domxref("AudioNode")}} を参照)は、次のとおりです。

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

コンストラクタ

{{domxref("OscillatorNode.OscillatorNode", "OscillatorNode()")}}
ノードの {{anch("properties")}} の初期値を任意で設定し、新しい OscillatorNode のインスタンスを作成します。
任意なプロパティ変更が不要で、初期値そのままで良いならば、単にファクトリメソッド、{{domxref("AudioContext.createOscillator()")}} を呼び出すことができます。

プロパティ

親インターフェース、{{domxref("AudioScheduledSourceNode")}} のプロパティ継承に加え、以下のプロパティがあります。

{{domxref("OscillatorNode.frequency")}}
a-rate {{domxref("AudioParam")}} であり、振動数・周波数をヘルツ (hertz、記号:Hz)で表わしたものです。(AudioParam は読み取り専用ですが、この値は設定できます。)初期値は 440 HZ (標準 A(ラ) 音) です。
{{domxref("OscillatorNode.detune")}}
a-rate {{domxref("AudioParam")}} であり、振動の離調をセントで表わしたものです。(AudioParam は読み取り専用ですが、この値は設定できます。)初期値は 0 です。
{{domxref("OscillatorNode.type")}}
再生する波形の種類を指定する文字列です。いくつかの標準値の中から1つ、または、{{domxref("PeriodicWave")}} を使用した、カスタム波形を設定することができます。設定する波の種類により、それぞれに合わせたトーンが生成されます。初期値は sine (サイン波) です。

メソッド

親である {{domxref("AudioScheduledSourceNode")}} のメソッド継承に加え、以下のメソッドがあります。

{{domxref("OscillatorNode.setPeriodicWave()")}}
標準的な波形の代わりに、{{domxref("PeriodicWave")}} で設定した周期的な波形が、カスタムな波形として設定されます。これは、廃止された {{domxref("OscillatorNode.setWaveTable()")}} メソッドの代わりです。

Examples

次の例は、AudioContextを使用し、オシレーターノードでトーンを再生する、基本的な例です。応用例については、Violent Theremin のデモをチェックしてみてください。 (コードは app.js を参照してください。)

// create web audio api context
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();

// create Oscillator node
var oscillator = audioCtx.createOscillator();

oscillator.type = 'square';
oscillator.frequency.value = 440; // value in hertz
oscillator.connect(audioCtx.destination);
oscillator.start();

Specifications

Specification Status Comment
{{SpecName('Web Audio API', '#the-oscillatornode-interface', 'OscillatorNode')}} {{Spec2('Web Audio API')}}  

Browser compatibility

{{CompatibilityTable}}
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 14 {{property_prefix("webkit")}} {{CompatVersionUnknown}} 25 {{CompatNo}} 15 {{property_prefix("webkit")}}
22 (unprefixed)
6 {{property_prefix("webkit")}}
constructor {{CompatChrome(55.0)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatOpera(42)}} {{CompatUnknown}}
Feature Android Android Webview Edge Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support {{CompatNo}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} 25 1.2 {{CompatNo}} {{CompatNo}} 6 {{property_prefix("webkit")}} 28 {{property_prefix("webkit")}}
constructor {{CompatNo}} {{CompatChrome(55.0)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatOpera(42)}} {{CompatUnknown}} {{CompatChrome(55.0)}}

See also