5度の音も弾かせよう
前回ルート音を小刻みに鳴らすことができるようになりましたが、今回はオクターブ違いのルート音や5度音も鳴らせるように改良していきます。まずは下記のリンクを右クリックして別ウインドウで開いてください。
Playボタンをクリックすると、前よりにぎやかなベースラインがきこえてくると思います。中ほどにあるセレクタを変えると、5度音も含めたベースラインをランダムに生成して演奏します。
ソースを見ていきましょう。htmlではラジオボタンとセレクタをつくっています。var boc, bornにはそれらで選ばれた番号が入ります。var octs, tha, thbはそれぞれランダムに選ぶ母集合として音高データを定義しています。
function tick()では、まずbocとbornを取得して、音程を変化させるのはboc=0のときのすべてのカウントの音か、boc=1でもカウントが拍の先頭ではないとき。その条件において、bornで選ばれたケースごとにランダム対象を替えて、得た変数txを音高に足しています。どれも単純な仕組みですが、その手数で音楽上の処理にしているだけです。
これでベースラインを5度音も含んだちょっと複雑なものにして鳴らすことができるようになりました。