OscillatorNode.setPeriodicWave()
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.
setPeriodicWave()
は OscillatorNode
インターフェイスのメソッドで、 PeriodicWave
を指し、発振器の出力とすることができる周期的な波形を定義します。 type
が custom
のときに使用されます。
構文
setPeriodicWave(wave)
引数
wave
-
PeriodicWave
オブジェクトで、発振器の出力とする周期的な波形を表します。
返値
なし (undefined
)。
例
次の例は createPeriodicWave()
の簡単な使い方を示し、周期波から正弦波を再現しています。
const real = new Float32Array(2);
const imag = new Float32Array(2);
const ac = new AudioContext();
const osc = ac.createOscillator();
real[0] = 0;
imag[0] = 0;
real[1] = 1;
imag[1] = 0;
const wave = ac.createPeriodicWave(real, imag);
osc.setPeriodicWave(wave);
osc.connect(ac.destination);
osc.start();
osc.stop(2);
これは、基本音だけを含む音は定義上正弦波であるため、うまく動作します。
ここでは、 2 つの値を持つ PeriodicWave
を作成しています。最初の値は DC オフセットで、これは発振器が開始する値です。ここでは、カーブを [-1.0; 1.0] 範囲の中央から開始したいので、0 が適しています。
2 つ目以降の値はサイン成分、コサイン成分です。これは、時間領域の値から周波数領域の値を取得するフーリエ変換の結果と考えることができます。ここでは createPeriodicWave()
で、周波数を指定すると、ブラウザーは逆フーリエ変換を行い、発振器の周波数の時間領域のバッファーが取得されるようになっています。ここでは、基本音にフルボリューム (1.0) のひとつの成分だけを設定しているので、正弦波が得られます。
仕様書
Specification |
---|
Web Audio API # dom-oscillatornode-setperiodicwave |
ブラウザーの互換性
BCD tables only load in the browser