練習曲の自動生成実験

曲を自動生成して,MusicXML で書き出すプログラムを書いてみました.右手は指2本の低速トリルの連続+無いよりはマシな左手の伴奏という,相当にシンプルな練習曲を生成してくれるプログラムです.生成したファイルは Finale 2003J では少なくともまともに読み込めているようです.プログラムは Ruby 1.8 以上でなら多分うごきます.この程度のものを,だれもかが配ったり改変することはないとは思いますが,まだ実験中のプログラムなので流用は無しでおねがいします.念のため.

生成した楽譜のイメージをはっておきます.

4時間くらいでざっくり作ったものなので,まったくたいしたことはしていません.どちらかというと REXML という Ruby のライブラリのテストと,正しいフォーマットの MusicXML を生成してみることが目的でした.

コード進行テーブルと,コードに対応した1小節単位の音符の並び(旋律)テーブルをもっておいき,各小節に割り当てられたコードに対応する旋律をランダムに選んでいます.現時点では AABB の二部形式の 16小節・4/4 拍子・ハ長調の曲しか生成できません.コード進行テーブルと旋律テーブルを適当に増やせば,バリエーションを増やすことも一応可能です.ただ,生成の種にするテーブルをプログラム中に埋め込んでしまっているので柔軟性がありません.パターンは,別のファイルで与えるほうが自然でしょうね.