研究テーマ->音楽ソフトの開発->MIDI系アプリの開発->自動作曲ソフトの開発->乱数と音楽理論  
  ここでは、乱数と音楽理論について、私の考え方を示します。  
乱数を使用した自動作曲
コンピュータで自動作曲を行う場合、根底に「乱数」というものがあります。人間の場合は、同じ状況にあっても、その時々で異なる行動をとりますが、コンピュータの場合、与える命令、データが同じであれば、毎回、同じ結果を出力します。言い換えると、たとえば、「ロックっぽい曲を作曲しろ」という同じ命令をコンピュータに繰り返し与えると、毎回、同じ曲を作曲してしまうわけです。これでは面白くないので、乱数を使って、毎回違う曲が作曲されるように工夫する必要があります。
コンピュータを使用せずに、手作業で作曲する場合も、乱数を使用することができます。たとえば、サイコロを2回振り、最初のサイコロで1が出たら「ド」の音、2だと「レ」の音のようなルールを決めます。同様に2つ目のサイコロで1だと「4分音符」、2だと「8分音符」などときめて、サイコロを振っていけば、曲を作ることができます。(ただし、できた曲は音楽的ではありません。)
乱数だけで音楽理論を考慮しない自動作曲 = 混沌
以降、話を簡単にするために、単音のメロディの作成について考えます。(しばらく、和音の話はでてきません。)
実際に、次のようなことを行うプログラムを作成してみました。

アルゴリズム − 混沌

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

MIDIでは、音の高さは、0〜127のノートナンバーで表されます。乱数で、0〜127までの値を発生させ、それをそのままノートナンバーに割り当てるわけです。
4分音符、8分音符など、音の長さは、音楽の用語では、音価と呼ばれます。さらに、同じ4分音符でもスタッカートのようなゲートタイムが短い4分音符や、スラーのかかったゲートタイムの長い4分音符があります。ここでは、音価やゲートタイムという概念を使わずに、単に、0〜127チック(1チックは数ミリ秒)の長さを音に割り当てます。分解能は、96とし、音色や音の強さは一定とします。

聴く このアルゴリズムで生成されたmidiファイルを聞くことができます。
上の「聴く」をクリックして、再生してみると分かりますが、現代音楽をイメージさせる支離滅裂な曲(?)になっています。ここでは、この状態の曲を「混沌」と呼ぶことにします。次の音が何かを前の音から予測することはまったく不可能になっています。
乱数を使用しない自動作曲 = 秩序
ここで、「ノートナンバーが60、音の長さが96チックの音しか使用してはいけない」という音楽理論を採用する自動作曲というものを考えてみましょう。
ルール
全ての音の音高は60、音の長さは96チックである

もちろん、この音楽理論は、クラシックの音楽理論でもなく、ポピュラーの音楽理論でもなく、ここでの説明だけに考えた音楽理論です。

アルゴリズム − 秩序

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

上記以外の条件は、先ほどと同じです。

聴く このアルゴリズムで生成されたmidiファイルを聞くことができます。
上の「聴く」をクリックして、再生してみると分かりますが、同じ音が続くだけで退屈です。前の音から次の音を予測することが100%可能となっています。ここでは、この状態の曲を「秩序」と呼ぶことにします。