utoroのJS解説

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

5度の音も弾かせよう

前回ルート音を小刻みに鳴らすことができるようになりましたが、今回はオクターブ違いのルート音や5度音も鳴らせるように改良していきます。まずは下記のリンクを右クリックして別ウインドウで開いてください。

サンプル15(ベースで5度音も弾く)

Playボタンをクリックすると、前よりにぎやかなベースラインがきこえてくると思います。中ほどにあるセレクタを変えると、5度音も含めたベースラインをランダムに生成して演奏します。

ソースを見ていきましょう。htmlではラジオボタンセレクタをつくっています。var boc, bornにはそれらで選ばれた番号が入ります。var octs, tha, thbはそれぞれランダムに選ぶ母集合として音高データを定義しています。

function tick()では、まずbocとbornを取得して、音程を変化させるのはboc=0のときのすべてのカウントの音か、boc=1でもカウントが拍の先頭ではないとき。その条件において、bornで選ばれたケースごとにランダム対象を替えて、得た変数txを音高に足しています。どれも単純な仕組みですが、その手数で音楽上の処理にしているだけです。

これでベースラインを5度音も含んだちょっと複雑なものにして鳴らすことができるようになりました。