音楽ソフト
->
Windows
->
自動作曲ソフト
->
自動作曲システム
プログラムの仕組みについて紹介しています。
開発の経緯
記憶が定かではありませんが、最初のバージョンは、1993年につくりはじめて、1994年のはじめに完成したのだと思います。このときは、ボーランド社のターボC++で開発しました。今のようなWindows版ではなく、DOSのコンソールで動作するものでした。このプログラムは、大学院のプロジェクトで開発したものです。(当時の私は企業派遣で、アメリカのとある大学院に留学していました。)完成後に、コンピューター・サイエンス学部の教授2人と、ゲストで数学科の教授と、音楽学部の教授の前でプレゼンテーションをしました。その後、無事に卒業できた私は、しばらく、このプログラムのことは忘れていました。
バージョンアップ
日本に帰ったあと、会社の中で、「電子出版部」という部署に配属された私は、マルチメディア関係の仕事をすることになりました。その頃に、プログラムをマイクロソフト社のVC++に移植して、Windowsで動くようにしました。そして、周囲の人達にできたものを見せたりしていたのが1996年頃です。その後、1998年4月にホームページを開設するにあたり、とりあえず、フリーウェアとしてみたわけです。
アルゴリズム
まず最初に、コード進行を作ります。その際、テーマの部分と、サビの部分を分けて作ります。これは、乱数と、知識ベースを使用して行います。この知識ベースには、多分に、作曲を行う際の「私の癖」みたいなものが、反映されていると思います。次に、メロディの作成を行います。メロディも基本的には乱数を使用して作成しますが、音自体を乱数でつくるのではなく、まず、乱数からラグランジュ多項式を作成します。次にその関数を使用して(仮想的な)曲線をつくり、その曲線にプロットする形で音を割り当てています。(仮想的な)5線譜に曲線を書き、その曲線の上に音符を並べていくと考えれば、わかりやすいかもしれません。現在のバージョンでは、ラグランジュ多項式を使用する以外にも、いくつかの方法が選択できるようになっています。この作業のあと、メロディラインが先に作っておいた和音に適合するように、微調整を行いますが、この調整も、知識ベースを使用して行います。ここでも同様に、「私の癖」みたいなものが反映されます。最後に、リズムですが、聞いてもらえば一目瞭然でしょうが、これは、あらかじめ用意しているパターンを繰り返すだけです。このあたりは、今後、改良していこうと思います。
今後の展開
アイデアはたくさんあるのですが、とにかく、色々なスタイルの音楽に対応していこうと思います。「ロック」「ジャズ」「クラッシク」をはじめ、「沖縄音楽」や「インド音楽」「ハワイアン」など、色々な音楽スタイルを組み込んできました。少し、ネタが少なくなってきたように思いますが、まだまだ音楽スタイルはあるはずです。それから、操作性の面でも、色々と改良していきたいと思います。要望やアイデアのある方は、メールでお知らせください。たぶん、月1回くらいのバージョンアップになると思います。