前までの説明で、「混沌」と「秩序」の間の状態にあるメロディを自動作曲で作り出せれば良いということが分かってもらえたと思います。乱数で生成される「混沌」な世界に、「秩序」よりは少し制約の緩いルールを入れて、「秩序」の世界に近づけてみたいと思います。
この実験のために「音高は、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」に戻る
収まっている場合は、それを音高とする |
4 |
0〜127までの乱数を発生させ、それを音の長さとする |
3 |
発生させた値が48〜96の間に収まっていなければ、その値はすてて「4」に戻る |
|
60〜72というノートナンバーは、「真ん中のド」から「上のド」にあたります。48チックは、8分音符、96チックは4分音符にあたります。 |
聴く |
このアルゴリズムで生成されたmidiファイルを聞くことができます。 |
|
上の「聴く」をクリックして、再生してみると分かりますが、前の「混沌」や「秩序」のMIDIファイルより、だいぶ音楽的にマシになっていることが分かります。「混沌」と比べ、音域が狭まっていますから、次に来る音の予想がしやすくなっています。0〜127までのどの音がくるか分からない状態と、60〜72までのどの音がくるか分からない状態では、あきらかに、後者のほうが、予想しやすいのです。
ここで示したような、音楽理論に合致しないものは、捨ててしまうというやり方をフィルターと呼びます。 |