utoroのJS解説

JavaScriptプログラムの解説。動作条件の説明があるので先頭から読んでください。

鍵盤を拡張する

前回作ったドレミだけの鍵盤を拡張して、1オクターブ上のミまでに増やし、それをさらに上下2段にして、両手で演奏できるように改良します。まずは下記のリンクを右クリックして別ウインドウで開いてください。

サンプル5(キーボードを拡張)

上段、下段ごとにサウンド変更できるので、下段でベースを弾き、上段でピアノを鳴らすような設定もできます。これは上段をMIDIチャンネル1、下段をMIDIチャンネル2で鳴らすように分けているので可能になります。

ソースの変更点は単純に鍵盤を増やした力作業が多いのでそういう部分はいちいち説明不要でしょう。var kmapについては、前回ノートナンバー48のドから始めていましたが、今回は下段をノートナンバー36から、上段をノートナンバー60からとして、低音・高音のメリハリをつけさせています。

MIDIチャンネルを変えて発音させること自体は非常に簡単で、Jazz.MidiOut(0x90,m,127);をJazz.MidiOut(0x91,m,127);とするだけでOKです。最終的にその部分をifとelseで分けてやるだけで済みます。

チャンネルを分けているので、音色変更の関数名や変数名もそれぞれ末尾に1か2をつけて専用の関数、変数にしています。無理やりまとめて記述する方法もありますが、あとからいろいろ改造するときに混乱することが多いので、当面はシンプルに分けて記述しておきます。

これで両手で演奏できるような2段キーボードができあがりました。