コード進行
コード進行はプリセットを切り替える形で実装しました。
本当はここも全自動にしたかったのですが、発表時間が有限であることを考えると、コンパクトなコード進行が必要になり、この部分はハードコーディングすることにしました。
ここでは作曲経験のあるA君が持ち込んだギターを奏でながらコード(和音)を設計してくれました
楽器構成
ありがちな楽器構成として
パーカッション + ベース + ギター + ピアノ
という4つのパートを作ることにしました。
音色
開始して6時間位はSin波や矩形波で鳴らしていました。 が、ピコピコ感が否めないため、Web上にあるフリー素材を探してきて音源にしました。
この結果、とてもいい感じになりました。音色大事!
パーカッション
ここはS君がまず、JavaScipt上で動作するドラムマシンのような仕組みをつくり、そこにA君がありがちなドラムパターンを入れていきました。
これで、1小節単位のいい感じのドラムパターンがたくさん出来ました。
これらを組み合わせて曲を構成します。
フィルインのパターンも何個か用意し、曲調が変わるタイミングで鳴らすようにしました(これがかっこいい!)
ベース
ベースは現在のコードのルート音を中心に、ゆっくりなリズムで音を切り替えていくようにしました。
リズムは初めに5パターンくらい生成し、これを使いまわしています。
ギター
ギターは現在のコードの構成音を中心に、八分音符でランダムに鳴らすパターンを10個位つくり、それを使いまわしています。
ピアノ
ピアノは現在のコードの構成音を中心に、八分音符〜二分音符を配置したパターンを数個作り、使いまわしています。
テンポ
曲調が変わるタイミングで、テンポを変えています。
テンポはカチッと変わるのではなく、指定されたテンポに向かって徐々に変化していくようにしました。
ぬるっと変わっていく感じが気に入っています。