blob: eac56af786f2daa9d910c62e8d1ca7fc8632ff1a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
|
---
title: OscillatorNode
slug: Web/API/OscillatorNode
translation_of: Web/API/OscillatorNode
---
<p>{{APIRef("Web Audio API")}}</p>
<p><strong>OscillatorNode </strong>インタフェースは、正弦波などの周期的な波形を表します。これは、指定された波形で、特定の周波数の一定のトーンを発生させる、オーディオ処理モジュール {{domxref("AudioScheduledSourceNode")}} です。</p>
<p>この OscillatorNode は {{domxref("AudioContext.createOscillator()")}} で生成されます。常に1つの出力だけをもち、入力はありません。基本的なプロパティのデフォルト値 (定義 については {{domxref("AudioNode")}} を参照)は、次のとおりです。</p>
<table class="properties">
<tbody>
<tr>
<th scope="row">入力数</th>
<td><code>0</code></td>
</tr>
<tr>
<th scope="row">出力数</th>
<td><code>1</code></td>
</tr>
<tr>
<th scope="row">チャンネル カウントモード</th>
<td><code>max</code></td>
</tr>
<tr>
<th scope="row">チャンネル カウント</th>
<td><code>2</code> (デフォルトのカウントモードでは使用されません。)</td>
</tr>
<tr>
<th scope="row">チャンネル 解釈</th>
<td><code>speakers</code></td>
</tr>
</tbody>
</table>
<h2 id="コンストラクタ">コンストラクタ</h2>
<dl>
<dt>{{domxref("OscillatorNode.OscillatorNode", "OscillatorNode()")}}</dt>
<dd>ノードの {{anch("properties")}} の初期値を任意で設定し、新しい OscillatorNode のインスタンスを作成します。<br>
任意なプロパティ変更が不要で、初期値そのままで良いならば、単にファクトリメソッド、{{domxref("AudioContext.createOscillator()")}} を呼び出すことができます。</dd>
</dl>
<h2 id="プロパティ">プロパティ</h2>
<p>親インターフェース、<em>{{domxref("AudioScheduledSourceNode")}}</em> のプロパティ継承に加え、以下のプロパティがあります。</p>
<dl>
<dt>{{domxref("OscillatorNode.frequency")}}</dt>
<dd><a href="/ja/docs/Web/API/AudioParam#a-rate">a-rate</a> {{domxref("AudioParam")}} であり、振動数・周波数をヘルツ (hertz、記号:Hz)で表わしたものです。(AudioParam は読み取り専用ですが、この値は設定できます。)初期値は 440 HZ (標準 A(ラ) 音) です。</dd>
</dl>
<dl>
<dt>{{domxref("OscillatorNode.detune")}}</dt>
<dd><a href="/ja/docs/Web/API/AudioParam#a-rate">a-rate</a> {{domxref("AudioParam")}} であり、振動の離調をセントで表わしたものです。(AudioParam は読み取り専用ですが、この値は設定できます。)初期値は 0 です。</dd>
</dl>
<dl>
<dt>{{domxref("OscillatorNode.type")}}</dt>
<dd>再生する波形の種類を指定する文字列です。いくつかの標準値の中から1つ、または、{{domxref("PeriodicWave")}} を使用した、カスタム波形を設定することができます。設定する波の種類により、それぞれに合わせたトーンが生成されます。初期値は sine (サイン波) です。</dd>
</dl>
<h2 id="メソッド">メソッド</h2>
<p>親である <em>{{domxref("AudioScheduledSourceNode")}}</em> のメソッド継承に加え、以下のメソッドがあります。</p>
<dl>
<dt>{{domxref("OscillatorNode.setPeriodicWave()")}}</dt>
<dd>標準的な波形の代わりに、{{domxref("PeriodicWave")}} で設定した周期的な波形が、カスタムな波形として設定されます。これは、廃止された {{domxref("OscillatorNode.setWaveTable()")}} メソッドの代わりです。</dd>
</dl>
<h2 id="Examples">Examples</h2>
<p>次の例は、AudioContextを使用し、オシレーターノードでトーンを再生する、基本的な例です。応用例については、<a href="http://mdn.github.io/violent-theremin/">Violent Theremin のデモ</a>をチェックしてみてください。 (コードは <a href="https://github.com/mdn/violent-theremin/blob/gh-pages/scripts/app.js">app.js</a> を参照してください。)</p>
<pre class="brush: 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();</pre>
<h2 id="Specifications">Specifications</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('Web Audio API', '#the-oscillatornode-interface', 'OscillatorNode')}}</td>
<td>{{Spec2('Web Audio API')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility">Browser compatibility</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Edge</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari (WebKit)</th>
</tr>
<tr>
<td>Basic support</td>
<td>14 {{property_prefix("webkit")}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>25</td>
<td>{{CompatNo}}</td>
<td>15 {{property_prefix("webkit")}}<br>
22 (unprefixed)</td>
<td>6 {{property_prefix("webkit")}}</td>
</tr>
<tr>
<td>constructor</td>
<td>{{CompatChrome(55.0)}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatOpera(42)}}</td>
<td>{{CompatUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Android Webview</th>
<th>Edge</th>
<th>Firefox Mobile (Gecko)</th>
<th>Firefox OS</th>
<th>IE Phone</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
<th>Chrome for Android</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>25</td>
<td>1.2</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>6 {{property_prefix("webkit")}}</td>
<td>28 {{property_prefix("webkit")}}</td>
</tr>
<tr>
<td>constructor</td>
<td>{{CompatNo}}</td>
<td>{{CompatChrome(55.0)}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatOpera(42)}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatChrome(55.0)}}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="See_also">See also</h2>
<ul>
<li><a href="/en-US/docs/Web_Audio_API/Using_Web_Audio_API">Using the Web Audio API</a></li>
</ul>
|