今回はWeb Audio APIで音楽を演奏してみることにします。既存のmp3ファイルを再生するのではなく、自分で音を作ります。

楽譜はここを参考にしました:【ドレミ付きあり無料楽譜】童謡_ねこふんじゃった 難易度別4楽譜 – ピアノ塾

基本部分 Web Audio APIで「ラ」を再生する

Web Audio APIでは音を生成するインターフェースとしてOscillatorNodeが用意されています。これで「ラ」の音を再生できます。

鍵盤を押下すると音がでるアプリをつくる

鍵盤のようなものを表示させて押下すると音がでるアプリをつくります。

HTML部分

まずHTML部分を示します。白鍵と黒鍵のボタンを生成します。黒鍵は存在しない部分がありますが、ここでは入れています(鍵盤の座標を決める処理が簡略化できるので)。

スタイルシートを示します。黒鍵と白鍵が重なっているので絶対配置を使います。

style.css

グローバル変数と定数

JavaScript部分を示します。まずグローバル変数と定数を示します。

index.js

ページが読み込まれたときの処理

ページが読み込まれたら鍵盤の初期化とボリューム調整を可能する処理(後述)をおこないます。

鍵盤を初期化する処理を示します。

ここでは適切な座標を指定して、イベントリスナーを追加しています。playFromHz関数とstop関数は後述します。

initVolume関数はボリューム調整を可能にします。

音の再生と停止

playFromHz関数は引数で指定された周波数で音を鳴らします。

stop関数は音が再生されている場合、停止させます。