研究テーマ->音楽ソフトの開発->MIDI系アプリの開発->自動作曲ソフトの開発->良いメロディとは?  
  ここでは、良いメロディについて、私の考え方を示します。  
混沌と秩序の狭間
前の項目の「乱数と音楽理論」の説明で、「100%乱数による方法は、分けが分からない」「100%ルールに従う方法は、退屈」ということが分かったと思います。これらは、前の音から次の音が予測できるか、ということに大きく関係しています。「良いメロディ」というものは、「前の音からの流れで、期待した音がくることが多いが、たまに、予想外の音が来ることがある」というメロディです。たとえば、次のようなメロディは退屈です。
完全な繰り返しで、前の音から、次の音が予測できてしまうからです。次のように、予測不可能な動きを少し入れてやると、少しマシになり、メロディっぽくなります。
予測不可能な動きを2つ入れただけです。以前として退屈ですが、かなりマシに聞こえるはずです。
混沌を秩序に近づける = フィルター
前までの説明で、「混沌」と「秩序」の間の状態にあるメロディを自動作曲で作り出せれば良いということが分かってもらえたと思います。乱数で生成される「混沌」な世界に、「秩序」よりは少し制約の緩いルールを入れて、「秩序」の世界に近づけてみたいと思います。
この実験のために「音高は、60〜72、音の長さは48〜96の間でなければならない」という音楽理論を新たに考えることにします。

アルゴリズム − 混沌

1 音が20個生成されるまで下記の手順を繰り返す
2  0〜127までの乱数を発生させ、それを音高とする
3  0〜127までの乱数を発生させ、それを音の長さとする

アルゴリズム − 秩序

1 音が20個生成されるまで下記の手順を繰り返す
2  60を音高とする
3  96を音の長さとする

アルゴリズム − 混沌を秩序に近づける

1 音が20個生成されるまで下記の手順を繰り返す
2  0〜127までの乱数を発生させる
3  発生させた値が60〜72の間に収まっていなければ、その値はすてて「2」に戻る
 収まっている場合は、それを音高とする
 0〜127までの乱数を発生させ、それを音の長さとする
3  発生させた値が48〜96の間に収まっていなければ、その値はすてて「4」に戻る
60〜72というノートナンバーは、「真ん中のド」から「上のド」にあたります。48チックは、8分音符、96チックは4分音符にあたります。
聴く このアルゴリズムで生成されたmidiファイルを聞くことができます。
上の「聴く」をクリックして、再生してみると分かりますが、前の「混沌」や「秩序」のMIDIファイルより、だいぶ音楽的にマシになっていることが分かります。「混沌」と比べ、音域が狭まっていますから、次に来る音の予想がしやすくなっています。0〜127までのどの音がくるか分からない状態と、60〜72までのどの音がくるか分からない状態では、あきらかに、後者のほうが、予想しやすいのです。
ここで示したような、音楽理論に合致しないものは、捨ててしまうというやり方をフィルターと呼びます。