utoroのJS解説

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

ピアノをハモらせよう!

前回まででドラムとベースの機能がそろってきましたが、ピアノのパートはまだ普通に演奏するだけですね。今回はピアノパートにハーモナイザーをかけて、キーに合わせて自動的にハモった演奏ができるように改造します。下記のリンクを右クリックして別ウインドウで開いてください。

サンプル18(ピアノをハモらせる)

ピアノパートの鍵盤を弾いてみてください。初期状態ではハ長調で3度下の音が自動的に付加されます。この仕組みはJazz-Pluginのサイトのサンプルから拝借したもので、音楽的に多用される3度、4度、5度、8度のハーモニーを調に合わせて作ってくれるなかなか便利な機構です。

ソースを見ていきましょう。html部分はふつうにパーツを記述しているだけで、すべての追加パーツを変更するとfunction changeHm()をコールしてハーモナイザーの設定を一括で処理します。

function transpose(x)が心臓部分で、xにはピアノの元の音高が入ります。var shiftにより度数ごとに場合分けされ、var curkeyにより選ばれている調ごとの値を取得します。それをxに加算して鳴らすハーモニーの音高を決めます。

ピアノパートが鳴るのは、鍵盤をマウスクリックしたときとPCキーボードの上段を弾いたときで、それぞれ発音と消音の命令を記述しています。その命令の直後に、ハーモナイザーが「OFF」でないときはハーモニー音高に対して同じ命令を書いてやればよいだけです。例としてPCキーボード発音時の命令を示しています。

これでピアノパートの演奏を調に合わせて自動的にハモらせることができるようになりました。