転調できるようになりました。

ただし、短調から長調に限る。
正月中に出来たから、とりあえず良しとしよう。
プログラムを書くよりも、データの精査とデータ作成用のツールの作成に時間がかかりました。
54パターンの転調を実装しています。

1/4 追記

最初に公開していたものよりマシなものが出来たため、差し替えました。
最初に公開していたものは公開を停止しています。

例によって、デバッグの時に吐いたメロディーをupします。いつも通りアレンジしていません(ぉぃ
ダウンロードして聴いて下さい(ブラウザによってはそのまま聴けるようです)。
楽譜は以下の通りです。

例によって、プログラムが吐いたメロディをパッチワーク的に切り貼りしています。
またもや、突然終わっちゃう感じがアレですが。

イ短調から始まって、3段目の途中でニ長調へ転調しています。
ABC記譜法では調号なんて飾りです。
イ短調ハ長調平行調なので、変音記号が付きにくいはずですが、この楽譜上で♯(シャープ)が付いている音はメロディック・マイナー・スケールの音です。
3段目転調直前にあるF♯は、やってはいけないとされる下降でのメロディック・マイナー・スケールの音の使用です。実質、ここから転調しているような気がします。
一方のニ長調部分は、同主調ニ短調に一時的に転調している部分が多いです。このため、ニ長調に転調後も急激に曲調が変わるという感じを受けません。
6段目の最初の小節のメロディーが来た時に「待ってました!」という感じが大きくて、曲の構成はおかしくないはずなのに、なんだか寸づまりな感じを受けます。
前のエントリーで言っていた、テンションの解決を積極的に狙う機能を実装したところ、積極的すぎて引くレベルです。
3段目の最初の小節と次の小節で、B("シ"の音)からA("ラ"の音)へ移る部分があるのですが、同じ音なのに最初の小節は♯11thのテンション解決で、次の小節では9thのテンション解決になっています。