正弦波の加算合成による音色生成

HTML5 と Web Audio API に対応したブラウザが必要です.Internet Explorer は未対応です.Firefox, Google Chrome, Opera, Safari 等で閲覧下さい.

\[ y(t)=A\sum_{k=1}^{30} r_k \sin\left(2\pi k f t+\frac{\pi}{180}\phi_k\right) \]

$A=$ $f=$ Hz

Preset:

解説

音声 $y(t)$ を最大30個の正弦波の加算合成により生成し,再生します.最上部の窓には $1/f$ 秒間 ($t \in [0, 1/f]$) の波形が描画されます.この波形を周期的につなげたものが Play ボタンを押している間再生されます.なお,振幅が窓の限界を破った場合,波形の色が赤くなります(クリッピングと呼ばれ,音が割れる).

Preset からは,正弦波 (Sine),三角波 (Triangle),矩形波 (Square),のこぎり波 (Sawtooth) が指定できます.ただし,正弦波以外もすべて最大30個の正弦波の合成で作るため,不連続部分のある矩形波とのこぎり波は特に不完全なものとなります.それでも,耳で聴く分には違和感はないと思われます.

J.S. Bach ボタンを押すと BWV645 の冒頭部分が指定した音色で流れます.2つの音を同時に鳴らすため,$A$ の値を下げておかないと音割れすることがあるので注意が必要です.

ソースコード