(57)【特許請求の範囲】
【請求項１】
コード進行を供給する手段と、
供給されたコード進行に基づいて楽節構成を生成する手段と、
楽節構成に基づいて、１ブロックが１又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成する手段と、
少なくとも前記コード進行と楽節構成とブロック構成とを用いてメロディを生成する手段と
を具える自動作曲装置。
【請求項２】
少なくとも楽節構成とコード進行とブロック構成とに基づいてメロディを生成する自動作曲装置において、
楽節構成に基づいて、１ブロックが１又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成する生成手段を具えてなり、
前記生成手段は、複数の分割方法を登録した所定のテーブルに基づいて、或る分割方法に従って全体楽節構成を複数区間に分割したとき、その分割の区切りが所定の楽節記号以外の連続した同一楽節記号の途中に位置していないことを条件として、該条件を満たしている場合に当該分割方法を採用し、その採用された分割方法に従って分割された区間毎にブロック記号を割り当ててブロック構成を生成することを特徴とする自動作曲装置。
【請求項３】
前記生成手段は、同じ全体楽節構成に対して前記条件を満たす複数の分割方法がある場合、前記所定のテーブルに登録された各分割方法毎の分割優先度を参照し、該優先度の高い分割方法を採用してブロック構成を生成することを特徴とする請求項２に記載の自動作曲装置。
【請求項４】
前記生成手段は、同じ全体楽節構成に対して前記条件を満たす複数の分割方法がある場合、分割した複数区間内の楽節構成が同一楽節構成を持つように分割する方法を優先的に採用してブロック構成を生成することを特徴とする請求項２に記載の自動作曲装置。
【請求項５】
コード進行を入力するコード進行入力手段と、
メロディを入力するメロディ入力手段と、
メロディに基づいて新たなコード進行を生成するコード進行生成手段と、
コード進行に基づいて新たなメロディを生成するメロディ生成手段と、
前記メロディ生成手段に対して、コード進行生成手段が生成した新たなコード進行あるいはコード進行入力手段から入力されたコード進行の何れかを選択的に供給するコード進行供給手段と、
前記コード進行生成手段に対して、メロディ進行生成手段が生成した新たなメロディあるいはメロディ入力手段から入力されたメロディの何れかを選択的に供給するメロディ供給手段と、
前記生成した新たなメロディまたは前記生成した新たなコード進行を取り出す手段と
を具えた自動作曲装置。
【請求項６】
コード進行を入力するコード進行入力手段と、
コード進行に基づいて新たなメロディを生成するメロディ生成手段と、
生成したメロディに基づいて新たなコード進行を生成するコード進行生成手段と、
前記メロディ生成手段に対して、コード進行生成手段が生成した新たなコード進行あるいはコード進行入力手段から入力されたコード進行の何れかを選択的に供給するコード進行供給手段と、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出す手段と
を具えた自動作曲装置。
【請求項７】
メロディを入力するメロディ入力手段と、
メロディに基づいて新たなコード進行を生成するコード進行生成手段と、
生成したコード進行に基づいて新たなメロディを生成するメロディ生成手段と、
前記コード進行生成手段に対して、メロディ進行生成手段が生成した新たなメロディあるいはメロディ入力手段から入力されたメロディの何れかを選択的に供給するメロディ供給手段と、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出す手段と
を具えた自動作曲装置。
【請求項８】
コード進行を供給するステップと、
供給されたコード進行に基づいて楽節構成を生成するステップと、
楽節構成に基づいて、１ブロックが１又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成するステップと、
少なくとも前記コード進行と楽節構成とブロック構成とを用いてメロディを生成するステップと
を具える自動作曲方法。
【請求項９】
コード進行を入力するステップと、
メロディを入力するステップと、
メロディに基づいて新たなコード進行を生成するステップと、
コード進行に基づいて新たなメロディを生成するステップと、
生成した新たなコード進行あるいは入力したコード進行の何れかを選択し、該選択したコード進行に基づき前記新たなメロディを生成するステップに前記新たなメロディを生成させるステップと、
生成した新たなメロディあるいは入力したメロディの何れかを選択し、該選択したメロディに基づき前記新たなコード進行を生成するステップに前記新たなコード進行を生成させるステップと、
前記生成した新たなメロディまたは前記生成した新たなコード進行を取り出すステップと
を具える自動作曲方法。
【請求項１０】
コード進行を入力するステップと、
コード進行に基づいて新たなメロディを生成するステップと、
生成したメロディに基づいて新たなコード進行を生成するステップと、
生成した新たなコード進行あるいは入力したコード進行の何れかを選択し、該選択したコード進行に基づき前記新たなメロディを生成するステップに前記新たなメロディを生成させるステップと、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出すステップと
を具えた自動作曲方法。
【請求項１１】
メロディを入力するステップと、
メロディに基づいて新たなコード進行を生成するステップと、
生成したコード進行に基づいて新たなメロディを生成するステップと、
生成した新たなメロディあるいは入力したメロディの何れかを選択し、該選択したメロディに基づき前記新たなコード進行を生成するステップに前記新たなコード進行を生成させるステップと、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出すステップと
を具えた自動作曲方法。
【請求項１２】
機械読取り可能な記憶媒体であって、自動作曲方法をプロセッサに実行させるためのプログラムを記憶してなり、前記自動作曲方法は、
コード進行を供給するステップと、
供給されたコード進行に基づいて楽節構成を生成するステップと、
楽節構成に基づいて、１ブロックが１又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成するステップと、
少なくとも前記コード進行と楽節構成とブロック構成とを用いてメロディを生成するステップと
を具備する。
【請求項１３】
機械読取り可能な記憶媒体であって、自動作曲方法をプロセッサに実行させるためのプログラムを記憶してなり、前記自動作曲方法は、
コード進行を入力するステップと、
メロディを入力するステップと、
メロディに基づいて新たなコード進行を生成するステップと、
コード進行に基づいて新たなメロディを生成するステップと、
生成した新たなコード進行あるいは入力したコード進行の何れかを選択し、該選択したコード進行に基づき前記新たなメロディを生成するステップに前記新たなメロディを生成させるステップと、
生成した新たなメロディあるいは入力したメロディの何れかを選択し、該選択したメロディに基づき前記新たなコード進行を生成するステップに前記新たなコード進行を生成させるステップと、
前記生成した新たなメロディまたは前記生成した新たなコード進行を取り出すステップと
を具備する。
【請求項１４】
機械読取り可能な記憶媒体であって、自動作曲方法をプロセッサに実行させるためのプログラムを記憶してなり、前記自動作曲方法は、
コード進行を入力するステップと、
コード進行に基づいて新たなメロディを生成するステップと、
生成したメロディに基づいて新たなコード進行を生成するステップと、
生成した新たなコード進行あるいは入力したコード進行の何れかを選択し、該選択したコード進行に基づき前記新たなメロディを生成するステップに前記新たなメロディを生成させるステップと、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出すステップと
を具備する。
【請求項１５】
機械読取り可能な記憶媒体であって、自動作曲方法をプロセッサに実行させるためのプログラムを記憶してなり、前記自動作曲方法は、
メロディを入力するステップと、
メロディに基づいて新たなコード進行を生成するステップと、
コード進行に基づいて新たなメロディを生成するステップと、
生成した新たなメロディあるいは入力したメロディの何れかを選択し、該選択したメロディに基づき前記新たなコード進行を生成するステップに前記新たなコード進行を生成させるステップと、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出すステップと
を具備する。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、音楽に関する各種の条件に応じて自動的に楽曲を作曲する自動作曲装置および方法に関し、特に自動作曲のために用いられるコード進行データと楽節構成データとを適宜に組み合わせることによって、多様な曲を作曲する自動作曲装置及び方法である。
【０００２】
【従来の技術】
近年、パーソナルコンピュータの普及に伴い、コンピュータを用いて楽器を演奏したり、作曲したり、編曲したり、音色を合成したりするコンピュータミュージックを用いて、誰でも音楽を自由に楽しめるようになってきた。特に、コンピュータを用いた作曲の分野では、音楽的な専門知識がない作曲初心者であっても簡単に作曲を行うことのできる自動作曲が出現している。従来の自動作曲装置としては、例えば曲テンプレートを多数、メモリに記憶しておき、メモリに記憶された各種の曲テンプレートのいずれかを選択し、選択した曲テンプレートに基づいてメロディとなる演奏データを自動的に生成することで、作曲を行うものが知られている。この場合、従来は、コード進行データと楽節構成データとを１対１に組み合わせたものを１つの曲テンプレートとしてメモリに記憶しておき、これらの曲テンプレートを任意に設定された音楽条件に基いて選択的に読み出し、これに基づいてメロディとなる演奏データを自動的に生成する。このような自動作曲装置によると、ユーザは所望の曲テンプレートを選択するだけで簡単に作曲を行うことができる。
【０００３】
【発明が解決しようとする課題】
ところで、従来の自動作曲装置においては、１つの曲テンプレートはコード進行データと楽節構成データとを１対１で固定的に組み合わせてなるものであった。そのため、曲テンプレートを利用して多彩なメロディを数多く作曲するためには、コード進行データと楽節構成データとの組み合わせが異なる曲テンプレートを数多くメモリに用意しておくことが必要であった。しかし、コード進行データと楽節構成データとの組み合わせが異なる曲テンプレートを数多くメモリに用意することは、曲テンプレートの作成に手間や時間がかかる、また曲テンプレートを記憶するためのメモリに非常に大きな記憶容量が必要である、等の問題があった。例えば、ある第１の曲テンプレートの楽節構成データに対応するコード進行を別の第２の曲テンプレートにおける楽節構成データに対応させて使用したいような場合には、第１及び第２の曲テンプレートとは別に第１の曲テンプレートにおけるコード進行データと第２の曲テンプレートにおける楽節構成データとを組み合わせた第３の曲テンプレートを新たに作成してメモリに予め記憶しておく必要があった。
【０００４】
本発明は上述の点に鑑みてなされたもので、ユーザが適宜にコード進行データと楽節構成データとを組み合わせて多くのバリエーションの組み合わせを簡単に作成できるようにすることで、ユーザの意向に沿う多彩な曲を容易に作曲することのできる自動作曲装置及び方法を提供しようとするものである。
【０００５】
【課題を解決するための手段】
【０００９】
請求項１に係る本発明の自動作曲装置は、コード進行を供給する手段と、供給されたコード進行に基づいて楽節構成を生成する手段と、楽節構成に基づいて、１ブロックが１又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成する手段と、少なくとも前記コード進行と楽節構成とブロック構成とを用いてメロディを生成する手段とを具える。こうすると、新規にコード進行が供給された場合であっても、新しいコード進行から楽節構成を生成し、該楽節構成に基づいてブロック構成を生成するので、楽節構成が変わってもブロック構成を考慮したメロディを生成することができるようになる。
また、請求項２に係る本発明の自動作曲装置は、少なくとも楽節構成とコード進行とブロック構成とに基づいてメロディを生成する自動作曲装置において、楽節構成に基づいて、１ブロックが１又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成する生成手段を具えてなり、前記生成手段は、複数の分割方法を登録した所定のテーブルに基づいて、或る分割方法に従って全体楽節構成を複数区間に分割したとき、その分割の区切りが所定の楽節記号以外の連続した同一楽節記号の途中に位置していないことを条件として、該条件を満たしている場合に当該分割方法を採用し、その採用された分割方法に従って分割された区間毎にブロック記号を割り当ててブロック構成を生成することを特徴とする。これにより、同一楽節記号が連続している場合その途中で区切ることがないようにすることができるので、適切な区間で区切ってブロック構成を生成することができる。
【００１０】
さらに、請求項５に係る本発明に係る自動作曲装置は、コード進行を入力するコード進行入力手段と、メロディを入力するメロディ入力手段と、メロディに基づいて新たなコード進行を生成するコード進行生成手段と、コード進行に基づいて新たなメロディを生成するメロディ生成手段と、前記メロディ生成手段に対して、コード進行生成手段が生成した新たなコード進行あるいはコード進行入力手段から入力されたコード進行の何れかを選択的に供給するコード進行供給手段と、前記コード進行生成手段に対して、メロディ進行生成手段が生成した新たなメロディあるいはメロディ入力手段から入力されたメロディの何れかを選択的に供給するメロディ供給手段と、前記生成した新たなメロディまたは前記生成した新たなコード進行を取り出す手段とを具える。こうすると、種となる少ないコード進行またはメロディを用意して入力手段から入力するだけで、これらを元にたくさんのコード進行あるいはメロディを生成することができることから、ユーザはそれらを選択するだけで簡単に多様なメロディを生成することができるようになる。
【００１１】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記録媒体の形態で実施することもできる。
【００１２】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【００１３】
図１は、この発明に係る自動作曲装置の実施の形態を示すハード構成ブロック図である。
本実施例に示す自動作曲装置は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータによって制御されるようになっている。ＣＰＵ１は、この自動作曲装置全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してリードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３、押鍵検出装置４、スイッチ検出回路５、表示回路６、音源回路７、効果回路８、外部記憶装置９、ＭＩＤＩインタフェース（Ｉ／Ｆ）１０および通信インタフェース１１がそれぞれ接続されている。更に、ＣＰＵ１には、タイマ割込み処理（インタラプト処理）における割込み時間や各種時間を計時するタイマ１Ａが接続されている。すなわち、タイマ１Ａは時間間隔を計数したり、作曲終了後に曲を自動演奏する際の演奏テンポを設定したりするためのテンポクロックパルスを発生する。このテンポクロックパルスの周波数は、各種スイッチ５Ａの中のテンポ設定スイッチ等によって調整される。このようなタイマ１ＡからのテンポクロックパルスはＣＰＵ１に対して処理タイミング命令として与えられたり、あるいはＣＰＵ１に対してインタラプト命令として与えられる。ＣＰＵ１は、これらの命令に従って各種処理を実行する。各種処理には、例えば自動作曲の際の画面表示処理や自動作曲した曲を演奏するための自動演奏処理等がある。
なお、この自動作曲装置は専用の装置に限られず、例えばパソコンなどの汎用装置あるいはマルチメディア機器等であってもよく、本発明に従う所定のソフトウエア又はハードウエアを用いることによって自動作曲を行うことのできるように構成した装置であればよい。
【００１４】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種プログラム（例えば、後述する「楽節構成変更処理」プログラムなど）や各種データ（例えば、コード進行データや楽節構成データ、コード進行データと楽節構成データとを適宜に組み合わせた曲テンプレート、あるいは後述する楽節構成別変更可能テーブルなど）等を格納するものである。ＲＡＭ３は、作曲に関する各種音楽情報や自動演奏情報、ＣＰＵ１がプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。鍵盤４Ａは、楽音の音高を選択するための複数の鍵を備えており、各鍵に対応してキースイッチを有しており、この鍵盤４Ａは楽音演奏のために使用できるのは勿論のこと、作曲の際に入力手段として使用することもできる。押鍵検出回路４は、鍵盤４Ａの各鍵の押圧及び離鍵を検出し、検出出力を生じる。
スイッチ５Ａはコード進行データや楽節構成データあるいは曲テンプレートを指定したり、あるいは自動演奏時における各種条件等を入力するための各種の操作子を含んで構成される。例えば、数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはパネルスイッチ等である。勿論、この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含んでいてよい。スイッチ検出回路５は、スイッチ５Ａの各操作子の操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス１Ｄを介してＣＰＵ１に出力する。表示回路６はコード進行データや楽節構成データあるいは曲テンプレートの内容等の各種情報を、例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されるディスプレイ６Ａに表示するのは勿論のこと、自動演奏に関する各種情報あるいはＣＰＵ１の制御状態などをディスプレイ６Ａに表示する。
【００１５】
音源回路７は、複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられた演奏情報を入力し、この演奏情報に基づいて楽音信号を発生する。音源回路７から発生された楽音信号は、サウンドシステム８Ａを介して発音される。また、効果回路８は前記音源回路７から発生された楽音信号に対して各種効果を与える。前記音源回路７における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出す波形メモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるＦＭ方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるＡＭ方式等の公知の方式を適宜採用してもよい。すなわち、音源回路７の方式は、波形メモリ方式、ＦＭ方式、物理モデル方式、高調波合成方式、フォルマント合成方式、ＶＣＯ＋ＶＣＦ＋ＶＣＡのアナログシンセサイザ方式、アナログシミュレーション方式等、どのような方式であってもよい。また、専用のハードウェアを用いて音源回路７を構成するものに限らず、ＤＳＰとマイクロプログラム、あるいはＣＰＵとソフトウェアを用いて音源回路７を構成するようにしてもよい。さらに、１つの回路を時分割で使用することによって複数の発音チャンネルを形成するようなものでもよいし、１つの発音チャンネルが１つの回路で形成されるようなものであってもよい。
【００１６】
外部記憶装置９は、自動作曲時に用いるコード進行データや楽節構成データあるいは曲テンプレート、ＣＰＵ１が実行する各種プログラム等の制御に関するデータを記憶するものである。前記ＲＯＭ２に制御プログラムが記憶されていない場合、この外部記憶装置９（例えばハードディスク）に制御プログラムを記憶させておき、それを前記ＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置９はハードディスク（ＨＤ）に限られず、フロッピィーディスク（ＦＤ）、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＡＭ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋの略）等の着脱自在な様々な形態の外部記憶媒体を利用する記憶装置であってもよい。
【００１７】
ＭＩＤＩインタフェース（Ｉ／Ｆ）１０は、他のＭＩＤＩ機器１０Ａ等からＭＩＤＩ規格の演奏情報（ＭＩＤＩデータ）を当該自動作曲装置へ入力したり、あるいは当該自動作曲装置からＭＩＤＩ規格の演奏情報（ＭＩＤＩデータ）を他のＭＩＤＩ機器１０Ａ等へ出力するためのインタフェースである。他のＭＩＤＩ機器１０Ａはユーザによる操作に応じてＭＩＤＩデータを発生する機器であり、鍵盤型、ギター型、管楽器型、打楽器型、ミブリ型等どのようなタイプの操作子を具えた（若しくは、操作形態からなる）機器であってもよい。通信インタフェース１１は、例えばＬＡＮやインターネット、電話回線等の有線又は無線の通信ネットワーク１１Ｂに接続されており、該通信ネットワーク１１Ｂを介して、サーバコンピュータ１１Ａと接続され、当該サーバコンピュータ１１Ａから制御プログラムや各種データを自動作曲装置側に取り込むためのインタフェースである。すなわち、ＲＯＭ２や外部記憶装置９（ハードディスク）等に制御プログラムや各種データが記憶されていない場合に、サーバコンピュータ１１Ａから制御プログラムや各種データをダウンロードするために用いられる。クライアントとなる自動作曲装置は、通信インターフェース１０及び通信ネットワーク１１Ｂを介してサーバコンピュータ１１Ａへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータ１１Ａは、このコマンドを受け、要求された制御プログラムやデータを、通信ネットワーク１１Ｂを介して本装置へと配信し、本装置が通信インタフェース１１を介して、これら制御プログラムや各種データを受信して外部記憶装置９（ハードディスク）等に蓄積することにより、ダウンロードが完了する。
【００１８】
なお、ＭＩＤＩインタフェース１０は専用のＭＩＤＩインタフェースを用いるものに限らず、ＲＳ２３２−Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインタフェースを用いてＭＩＤＩインタフェース１０を構成するようにしてもよい。この場合、ＭＩＤＩイベントデータ以外のデータをも同時に送受信するようにしてもよい。ＭＩＤＩインタフェース１０として上記したような汎用のインタフェースを用いる場合には、他のＭＩＤＩ機器１０ＡはＭＩＤＩイベントデータ以外のデータも送受信できるようにしてよい。勿論、音楽情報に関するデータフォーマットはＭＩＤＩ形式のデータに限らず、他の形式であってもよく、その場合はＭＩＤＩインタフェース１０と他のＭＩＤＩ機器１０Ａはそれにあった構成とする。
【００１９】
ここで、ＲＯＭ２やＲＡＭ３あるいは外部記憶装置９に記憶されるコード進行データ、楽節構成データ、曲テンプレートについて簡単に説明する。
コード進行データはメロディの背景となっているコード（和音）の種類を進行順に配置したデータであり、自動作曲時においては当該コード進行データを基にしてメロディの音高（ノート）が決定される。楽節構成データは楽節毎に所定の楽節記号が付されて１曲分の楽節順に並べられたデータであり、該楽節記号の並びによって１曲分の楽節構成がどのような構成になっているのかを示すデータである。楽節記号とは、楽節間の類似・非類似を表す記号である。例えば、１曲分の楽節数が４である場合（すなわち、１曲が４楽節構成）である場合に、第１楽節の楽節記号として「Ａ」（又は「Ａ」）、第２楽節の楽節記号として「Ｂ」（又は「Ａ´」）、第３楽節の楽節記号として「Ｃ」（又は「Ｂ」）、第４楽節の楽節記号として「Ｃ´」（又は「Ｂ´」）が付されたとすると、楽節構成データは「ＡＢＣＣ´」（又は「ＡＡ´ＢＢ´」）のように表わされる。この実施例では、「Ａ」の楽節にメロディが類似するものを「Ａ´」のように元の記号に「´」（ダッシュ）記号を付して表わし、「Ａ」の楽節にメロディが類似しない（非類似）のものを別の記号「Ｂ」・「Ｃ」で表わす。曲テンプレートは、コード進行データと楽節構成データとが適宜に組み合わされたデータである。後述するように、１つの曲テンプレートは、１つのコード進行データに対して複数の楽節構成データを組み合わせたもの、１つのコード進行データに対して１つの楽節構成データを組み合わせたもの、さらに１つの楽節構成データとそれに対応する複数のコード進行データを組み合わせたもの等がある。このように構成された曲テンプレートを用いることによって、コード進行データ及び楽節構成データを別々に選択することなく、音楽的に適切に組み合わされたコード進行データと楽節構成データとを簡単に選択できるので、初心者であっても音楽的に適切なメロディを簡単に作曲することができるようになっている。
【００２０】
この実施の形態ではコード進行データと楽節構成データとを適宜別々に選択して組み合わせることによって、多彩なメロディを生成することができるようになっている。すなわち、この場合にはコード進行データと楽節構成データとを組み合わせた曲テンプレートを使用しない。コード進行データと楽節構成データを別々に取得する方法には各種の方法があり、以下にその方法を示す。このコード進行データと楽節構成データの取得方法において、楽節構成データを得てからコード進行データを取得する方法と、コード進行データを得てから楽節構成データを取得する方法とでは手法が異なることから、それぞれを分けて説明する。
【００２１】
まず、楽節構成（データ）を特定（決定若しくは取得）してから後に、コード進行（データ）を特定（決定若しくは取得）する方法について説明する。図２は、楽節構成（データ）を特定してからコード進行（データ）を特定してメロディを生成（作曲）するまでの処理の流れを概念的に示した概念図である。
図２の例においては、まずユーザが所望の生成音楽条件（メロディ生成条件）を指定し、これに応じて楽節構成を決定（若しくは取得）した後に該楽節構成に対応するコード進行を決定（若しくは取得）し、このコード進行から各コード区間毎に利用可能音階（アヴェイラブル・ノート・スケール：以下AVNSと略称する）を検出し、この検出結果及び楽節構成及びコード進行を基にメロディを生成する。ただし、コード進行で規定される各コード区間毎に該コードに応じたAVNSを検出するか否かは、メロディ生成を行うアルゴリズムがAVNSを必要とするか否かによって変わる。したがって、AVNSが不要である場合には、AVNSを検出しなくてよい。
以下に示す（１−１）から（１−２０）までの例により、楽節構成（データ）を決定（若しくは取得）してからコード進行（データ）を決定（若しくは取得）する手法についての様々な具体例を示す。
【００２２】
（１−１）楽節構成を直接手で入力し、さらに対応するコード進行も直接手で入力する。すなわち、外部記憶装置９等に記憶した楽節構成（データ）やコード進行（データ）あるいはこれらを組み合わせた曲テンプレートを用いることなく、ユーザが直接に所望の楽節構成やコード進行を鍵盤４Ａやスイッチ５Ａ等を用いて入力する。例えば、ユーザが楽節構成として「ＡＢＣＤ」を入力した場合に、第１楽節「Ａ」に対して「Ｃｍ・Ｆ・Ｃｍ」、第２楽節「Ｂ」に対して「Ｃ７・Ｃｍ」、第３楽節「Ｃ」に対して「Ａｍ・Ｇ７」、第４楽節「Ｄ」に対して「Ｃｍ」等のように、各楽節「Ａ」「Ｂ」「Ｃ」「Ｄ」に対して各々コード進行が入力される。コード進行を入力する場合に、所定の音楽条件を指示すると当該音楽条件に合致するコードが複数提示され、ユーザが当該コードを適宜に選択することでコード進行を入力するようにしてもよい。例えば、音楽条件として「ダイアトニック」を指示すると「ダイアトニックコード」がディスプレイ６Ａ上に表示され、ユーザはその中からコードを適宜に選択していくことでコード進行を入力することができるようにしてよい。また、楽節構成に合致するように、同一／同類楽節記号が付された楽節におけるコード進行の入力については、同一／同類コードを入力するように促す等の入力補助が行われるようにしてもよい。
（１−２）楽節構成を直接手で入力し、対応するコード進行を自動生成する。楽節構成を直接手で入力した後、次に示すようにして該楽節構成に対応するコード進行を自動生成する。例えば、１つの楽節を４小節、１小節を２コードで構成する曲の場合に、手で入力した楽節構成が８楽節構成であったとすると、６４コード（８楽節×４小節×２コード）を自動生成する。コードはランダムに生成されてよいが、調のダイアトニックコードだけを使用してコードを生成するようにしてもよい。このとき、楽節構成を考慮して、１つの楽節ごとにまとまりがあるコード進行となるように、同一楽節記号が付された楽節においては同一コード進行を形成するようにコードを生成するとなおよい。また、本出願人が既に提案済の「コード進行生成機」（特願平１０−３３３７８１）で用いたように、最初に簡単なコード進行を作成してから、これを複雑なコードを用いて変更するようにしてもよい。なお、同一楽節記号では同一コード進行にするなどのように、楽節構成を反映してコード進行を生成するとよい。
（１−３）楽節構成を直接手で入力し、一方、データベースに基本となるコード進行を記憶しておき（これをコード進行雛型テンプレートと呼ぶ）、データベースに複数記憶されたコード進行のいずれかを所定の音楽条件で選択し、選択されたコード進行が楽節構成と対応するコード進行であれば選択したコード進行をそのまま使用し、楽節構成と対応しないコード進行であれば該コード進行を修正して使用する。すなわち、楽節数（すなわち、楽節構成における楽節の数）と音楽条件（フィーリングなど）を引数とするコード進行をデータベースにストアしておいて、ユーザが入力した楽節数と音楽条件とに該当するコード進行をデータベースから選択し抽出する。直接入力された楽節構成の楽節に応じてコード進行を対応付ける際に、当該楽節の前に同一の楽節記号が付された楽節がある場合には前の楽節に対応付けされたコード進行と同一のコード進行となるように修正されてから対応付けする。当該楽節の前に同類楽節記号が付された楽節がある場合には、抽出されたコード進行の一部を（例えば前半）同類楽節記号が付された楽節に対応付けされたコード進行と同一となるように修正されてから対応付けする。反対に、異なる楽節間で同一のコード進行を対応付けた際に、同一のコード進行を対応付けた各楽節に付されている楽節記号が同一でない場合には、各楽節間に対応付けられたコード進行が同一とならないように適宜にコード進行を修正する。
（１−４）楽節構成を直接手で入力し、既存技術を利用して対応するコード進行を得て、得られたコード進行を必要に応じて修正する。既存技術を利用してコード進行を得る方法として、
Ａ．入力された楽節構成から得られる楽節数に該当する既存メロディのＭＩＤＩデータ等を解析してコード進行を検出後、検出されたコード進行が入力された楽節構成と対応していたら該コード進行を使用し、検出されたコード進行が入力された楽節構成と対応していなかったら該コード進行を修正して使用する。
Ｂ．入力された楽節構成から得られる楽節数に該当する既存メロディを楽譜認識してＭＩＤＩデータを生成し、該ＭＩＤＩデータを解析してコード進行を検出後、検出されたコード進行が入力された楽節構成と対応していたら該コード進行を使用し、検出されたコード進行が入力された楽節構成と対応していなかったら該コード進行を修正して使用する。
Ｃ．入力された楽節構成から得られる楽節数に該当する既存メロディの楽音信号をピッチ検出してＭＩＤＩデータを生成し、該ＭＩＤＩデータを解析してコード進行を検出後、検出されたコード進行が入力された楽節構成と対応していたら該コード進行を使用し、検出されたコード進行が入力された楽節構成と対応していなかったら該コード進行を修正して使用する。
等の各種の方法がある。
【００２３】
（１−５）楽節構成を自動生成し、対応するコード進行を直接手で入力する。楽節構成は、以下のルール１〜ルール４に基く演算を行うことによって自動的に生成される。
ルール１：楽節構成は、アルファベット大文字の列で表記すること。
ルール２：各楽節に付される楽節記号はアルファベットのＡからＺまでと、それぞれに「´」（ダッシュ）記号を付したものであること。
ルール３：楽節記号として出現する順序は、ＡからＺまでのアルファベット順序に従って降順であること。ただし、アルファベット順序を飛ばして楽節を構成してはいけない（例えば、「ＡＣＤ」や「ＢＣＤ」等は不可）。また、「´」（ダッシュ）記号を付したアルファベット（例えば「Ａ´」）は「´」記号を付していないアルファベット（例えば「Ａ」）よりも後に出現するように構成すること（例えば「ＡＡ´」の順序は可であり、「Ａ´Ａ」の順序は不可）。ただし、「´」記号を付したアルファベットは該「´」記号を付していないアルファベットよりも後に出現すれば、どこに出現してもよい。Ｚよりも後であってもよい。
ルール４：出現するアルファベットは、Ｚまで使わなくてもよい。
以上のルールに従って自動生成される楽節構成の例を示すと、「Ａ」（楽節数１の場合）、「ＡＡ」「ＡＡ´」「ＡＢ」（楽節数２の場合）、「ＡＡＡ」「ＡＡＡ´」「ＡＡＢ」「ＡＡ´Ａ」「ＡＡ´Ａ´」「ＡＡ´Ｂ」「ＡＢＡ」「ＡＢＡ´」「ＡＢＢ」「ＡＢＣ」（楽節数３の場合）等のようになる。更に音楽条件として、「同一繰り返しなし」のように指定して楽節構成を自動生成するようにしてもよい。この場合に自動生成される楽節構成は、「ＡＡ´Ｂ」「ＡＢＡ´」「ＡＢＣ」（楽節数３の場合）である。なお、いくつかの楽節構成の候補をディスプレイ６Ａ上に提示して、ユーザが選択できるように構成してもよい。
こうして自動生成された楽節構成をみて、対応するコード進行を手で入力する。勿論、コード進行を入力するための入力補助があってよい。
（１−６）楽節構成を自動生成し、対応するコード進行も自動生成する。この方法は、楽節構成の自動生成については上記（１−５）と同様であり、コード進行の自動生成については上記（１−２）と同様であることから、説明を省略する。
（１−７）楽節構成を自動生成した後に、データベースに複数記憶された基本となるコード進行（コード進行雛型テンプレート）のいずれかを所定の音楽条件で選択し、選択されたコード進行が自動生成された楽節構成と対応している場合には該コード進行を使用し、選択されたコード進行が自動生成された楽節構成と対応していない場合には該コード進行を修正して使用する。この方法は、楽節構成の自動生成については上記（１−５）と同様であり、コード進行生成については上記（１−３）と同様であることから、説明を省略する。
（１−８）楽節構成を自動生成し、既存技術を利用して対応するコード進行を得て、必要に応じて該コード進行を修正する。この方法は、楽節構成の自動生成については上記（１−５）と同様であり、コード進行生成については上記（１−４）と同様であることから、説明を省略する。
【００２４】
（１−９）複数記憶された楽節構成からいずれか１つを選択し、対応するコード進行を直接手で入力する。楽節の繰り返し状態などの所定の音楽条件に応じて、複数記憶された楽節構成からいずれか１つを選択する。例えば、楽節数３で繰り返し部分１回という音楽条件が入力された場合、「ＡＡＡ´」「ＡＡＢ」「ＡＡ´Ａ」「ＡＡ´Ａ´」「ＡＢＡ」「ＡＢＢ」といった楽節構成が候補として選択され、この中からランダムに１つの楽節構成が選択される。その後、この楽節構成に合致すべくコード進行を手で入力する。勿論、コード進行を入力するための入力補助があってよい。
（１−１０）複数記憶された楽節構成からいずれか１つを選択し、対応するコード進行を自動生成する。この場合、楽節構成生成については上記（１−９）と同様であり、コード進行の自動生成については上記（１−２）と同様であることから、説明を省略する。
（１−１１）複数記憶された楽節構成からいずれか１つを選択した後に、データベースに複数記憶された基本となるコード進行（コード進行雛型テンプレート）のいずれかを所定の音楽条件で選択し、該コード進行が選択されている楽節構成と対応している場合には該コード進行をそのまま使用し、該コード進行が選択されている楽節構成と対応していない場合には該コード進行を修正して使用する。この場合、楽節構成生成については上記（１−９）と同様であり、コード進行生成については上記（１−３）と同様であることから、説明を省略する。
（１−１２）複数記憶された楽節構成からいずれか１つを選択し、既存技術を利用して対応するコード進行を得て、得られたコード進行を必要に応じて修正する。この場合、楽節構成生成については上記（１−９）と同様であり、コード進行生成については上記（１−４）と同様であることから、説明を省略する。
【００２５】
（１−１３）データベースに複数記憶した基本となる楽節構成（これを楽節構成雛型テンプレートと呼ぶ）のいずれかを選択し修正した後に、対応するコード進行を直接手で入力する。このデータベースに複数記憶した基本となる楽節構成を選択し修正する方法については、後述する。その後、このようにして生成された楽節構成をみて、対応するコード進行を手で入力する。勿論、コード進行を入力するための入力補助があってよい。
（１−１４）データベースに複数記憶した基本となる楽節構成（楽節構成雛型テンプレート）のいずれかを選択し修正した後に、対応するコード進行を自動生成する。この場合、楽節構成生成については上記（１−１３）と同様であり、コード進行の自動生成については上記（１−２）と同様であることから、説明を省略する。
（１−１５）データベースに複数記憶した基本となる楽節構成（楽節構成雛型テンプレート）のいずれかを選択し修正した後に、データベースに複数記憶された基本となるコード進行（コード進行雛型テンプレート）のいずれかを所定の音楽条件で選択し、該コード進行が選択されている楽節構成と対応している場合には該コード進行をそのまま使用し、該コード進行が選択されている楽節構成と対応していない場合には該コード進行を修正して使用する。この場合、楽節構成生成については上記（１−１３）と同様であり、コード進行生成については上記（１−３）と同様であることから、説明を省略する。
（１−１６）データベースに複数記憶した基本となる楽節構成（楽節構成雛型テンプレート）のいずれかを選択し修正した後に、既存技術を利用して対応するコード進行を得て、得られたコード進行を必要に応じて修正する。この場合、楽節構成生成については上記（１−１３）と同様であり、コード進行生成については上記（１−４）と同様であることから、説明を省略する。
【００２６】
（１−１７）既存技術を利用して楽節構成を得た後、対応するコード進行を直接手で入力する。例えば、ユーザが楽節構成として使用したい既存曲を選択し、該既存曲の楽節構成を楽譜認識することで得た後に、対応するコード進行を直接手で入力する。楽節構成を得る際に、ＭＩＤＩデータやコード進行から自動的に楽譜構成を解析するようにしてもよい。また、コード進行を入力するための入力補助があってよい。
（１−１８）既存技術を利用して楽節構成を得た後、対応するコード進行を自動生成する。この場合、楽節構成生成については上記（１−１７）と同様であり、コード進行の自動生成については上記（１−２）と同様であることから、説明を省略する。
（１−１９）既存技術を利用して楽節構成を得た後に、データベースに複数記憶された基本となるコード進行（コード進行雛型テンプレート）のいずれかを所定の音楽条件で選択し、選択されたコード進行が生成された楽節構成と対応している場合には該コード進行を使用し、選択されたコード進行が自動生成された楽節構成と対応していない場合には該コード進行を修正して使用する。この場合、楽節構成生成については上記（１−１７）と同様であり、コード進行生成については上記（１−３）と同様であることから、説明を省略する。
（１−２０）既存技術を利用して楽節構成を得た後、既存技術を利用して対応するコード進行を得、必要に応じて該コード進行を修正して使用する。この場合、楽節構成生成については上記（１−１７）と同様であり、コード進行生成については上記（１−４）と同様であることから、説明を省略する。
【００２７】
上述した実施例では楽節構成（データ）を特定（決定若しくは取得）した後にコード進行（データ）を特定（決定若しくは取得）する方法について説明したが、これとは反対に、コード進行（データ）を特定（決定若しくは取得）した後に楽節構成（データ）を特定（決定若しくは取得）する方法がある。以下、この方法について説明する。図３は、コード進行（データ）を特定してから楽節構成（データ）を特定してメロディを生成（作曲）するまでの処理の流れを概念的に示した概念図である。
図３の例においては、まずユーザが所望の生成音楽条件（メロディ生成条件）を指定し、これに応じてコード進行を決定（若しくは取得）した後に該コード進行に基づいて楽節構成を決定（もしくは取得）し、さらに得られたコード進行からAVNS（アヴェイラブル・ノート・スケール）を検出し、この検出結果及び楽節構成及びコード進行を基にメロディを生成する。ただし、コード進行で規定される各コード区間毎に該コードに応じたAVNSを検出するか否かは、メロディ生成を行うアルゴリズムがAVNSを必要とするか否かによって変わる。したがって、AVNSが不要である場合には、AVNSを検出しなくてよい。
以下に示す（２−１）から（２−２０）までの例により、コード進行（データ）を決定（若しくは取得）してから楽節構成（データ）を決定（若しくは取得）する方法についての様々な具体例を示す。
【００２８】
（２−１）コード進行データを直接手で入力し、さらに対応する楽節構成を直接手で入力する。すなわち、外部記憶手段９等に記憶した楽節構成（データ）やコード進行（データ）あるいは曲テンプレートを用いることなく、ユーザが直接に所望の楽節構成やコード進行を鍵盤４Ａやスイッチ５Ａ等を用いて入力する。このように、予め記憶したデータを使用することなく、ユーザが手で直接入力した楽節構成やコード進行を使用する。この場合に、入力したコード進行から楽節の同一／同類／非同類の状態を検出し、対応する楽節記号の入力を促す等の楽節構成の入力補助を行うようにしてもよい。
（２−２）コード進行を直接手で入力し、対応する楽節構成を自動生成する。コード進行を手で入力する際に、所定の楽節区間（例えば４小節）で区切れるように楽節区間の整数倍の数だけコードを入力してコード進行を生成する。例えば、１つの楽節を４小節、１小節を２コードで構成する曲の場合に、８楽節構成のコード進行を生成するには、６４個のコード（８楽節×４小節×２コード）を入力する。楽節構成の自動生成では、入力したコードを所定楽節毎に区切り、先頭楽節に付する楽節記号を「Ａ」として、以下順番に次のルール１〜ルール３に基いて楽節毎に楽節記号を付して楽節構成を生成する。
ルール１：新たに楽節記号を付す楽節におけるコード進行と同一のコード進行が行われている楽節が既に出現していたら、該楽節に付された楽節記号と同一の記号を新たに楽節記号を付す楽節に付すること。
ルール２：新たに楽節記号を付す楽節の一部区間におけるコード進行が、既に出現した楽節の一部区間におけるコード進行と同一であるならば、該楽節に付された楽節記号に対する類似記号（例えば、「´」（ダッシュ）記号）を新たに楽節記号を付す楽節に付すること。
ルール３：新たに楽節記号を付す楽節におけるコード進行が既に出現した楽節におけるコード進行とまったく異なる場合には、アルファベット順序における降順で既に出現した楽節に付された楽節記号と異なる記号を新たに楽節記号を付す楽節に付すること。
以上のルールに従って、楽節構成を自動生成する。ただし、生成する楽節構成において繰り返しを多くしたくないような場合、コード進行が同一／同類の楽節であっても、あえて同一記号・類似記号を楽節に付さないようなアルゴリズムを用いるようにしてもよい。極端な場合として、楽節毎に全て異なる楽節記号を付するようなアルゴリズムであってもよい。この点に関しては、以下の他の方法においても同様である。ただし、以下では手で楽節毎に全て異なる楽節記号を付する場合もある。
（２−３）コード進行を直接手で入力し、一方、データベースに基本となる楽節構成（楽節構成雛型テンプレート）を記憶しておき、複数記憶された楽節構成のいずれかを所定の音楽条件で選択し、選択された楽節構成がコード進行と対応していれば選択した楽節構成をそのまま使用し、コード進行と対応していない楽節構成であれば該楽節構成を修正して使用する。コード進行を直接手で入力する場合には、楽節数を指定して（あるいは、楽節数を判定して）入力する。雛型となる楽節構成は指定した楽節数に応じて選択され、候補が複数存在した場合にはランダムに決定する。すなわち、楽節数を引数とする楽節構成をデータベースにストアしておいて、ユーザが入力した楽節数に該当する楽節構成をデータベースから選択し抽出する。例えば、楽節数「３」では「ＡＡＡ」「ＡＡＡ´」「ＡＡＢ」「ＡＡ´Ａ」「ＡＡ´Ａ´」「ＡＡ´Ｂ」「ＡＢＡ」「ＡＢＡ´」「ＡＢＢ」「ＡＢＣ」が候補として選択され、この中からランダムに決定される。又は、上記したような候補をディスプレイ６Ａ上に表示して、ユーザが選択できるようにしてもよい。こうして得られた楽節構成が入力されたコード進行と一致していない場合には、該楽節構成を修正する。この楽節構成の修正方法を修正１〜修正３として以下に示すと、
修正１：コード進行を得た結果、ある楽節と同一記号である楽節のコード進行において、楽節後半区間のコード進行を構成するコードが１つでも異なった場合には、同類楽節記号または異楽節記号へ楽節記号を変更する。楽節前半区間のコード進行を構成するコード、楽節後半区間のコード進行を構成するコードが共に１つでも異なった場合には、異楽節記号へ楽節記号を変更する。
修正２：コード修正の結果、ある楽節と同類記号であった楽節のコード進行において、楽節前半のコード進行を構成するコードが１つでも異なった場合には、異楽節記号へ楽節記号を変更する。
ただし、上記修正１及び修正２のいずれの方法においても、変更した楽節記号が既に存在する場合には未使用で最も若い楽節記号へと変更を行う。
修正３：コード修正の結果、異楽節記号であった楽節のコード進行と既存楽節のコード進行とが全く同一になった場合には、その楽節記号へ変更してもよい。
この楽節記号を変更するかしないかの決定は、ランダムに決定を行うようにしてよい。既存楽節の前半区間におけるコード進行と同一になった場合には、既存楽節記号に「´」（ダッシュ）記号を付した楽節記号に変更してもよい。ただし、既存楽節記号に「´」（ダッシュ）記号を付した楽節が既に存在していて、該楽節におけるコード進行とコード進行が異なる場合には、異楽節記号へ楽節記号を変更する。
なお、コード進行を直接手で入力する場合、楽節数を指定して入力しなくても、コード進行を楽節の整数倍になるような長さにしておき、楽節数を検出して入力するようにしてもよい。
（２−４）コード進行を直接手で入力し、既存技術を利用して対応する楽節構成を得、得られた楽節構成を必要に応じて修正する。上記（２−３）においては、データベースに基本となる楽節構成を記憶させてこれを読み出していたが、ここでは楽節構成を印刷した紙を文字認識（楽譜認識）で読み取ることによる。その後の修正の方法は、上記（２−３）で記載した修正１〜修正３と同様である。勿論、既存曲のＭＩＤＩデータやコード進行の解析結果から楽節構成を得るようにしてもよい。
【００２９】
（２−５）コード進行を自動生成し、対応する楽節構成を直接手で入力する。例えば、１つの楽節を４小節、１小節を２コードで構成する曲の場合に、楽節構成が８楽節構成であったとすると、６４コード（８楽節×４小節×２コード）を自動生成する。コードはまったくランダムに生成されてもよいが、調のダイアトニックコードだけを使用する等のように、所定の条件にあったコードだけを生成するようにしてもよい。このとき、楽節構成を考慮して、８コード（４小節×２コード）ごとにまとまりがあるコード進行にするとよい（１つの楽節を４小節、１小節を２コードで構成した場合）。また、本出願人が既に提案済みのコード進行生成機（特願平１０−３３３７８１）で用いたように、２段階で複雑なコード進行を得るようにしてもよい。こうしてコード進行が生成された後に、該コード進行を見ながら、ユーザは手で楽節構成を入力する。この場合に、生成したコード進行から楽節の同一／同類／非同類の状態を検出し、対応する楽節記号の入力を促す等の楽節構成の入力補助を行うようにしてもよい。
（２−６）コード進行を自動生成し、対応する楽節構成も自動生成する。この方法は、コード進行の自動生成については上記（２−５）と同様であり、楽節構成の自動生成については上記（２−２）と同様であることから、説明を省略する。
（２−７）コード進行を自動生成し、一方、データベースに基本となる楽節構成を記憶しておき（楽節構成雛型テンプレート）、データベースに複数記憶された楽節構成のいずれかを所定の音楽条件で選択し、選択された楽節構成がコード進行と対応していれば選択した楽節構成をそのまま使用し、コード進行と対応していない楽節構成であれば該楽節構成を修正して使用する。この方法は、コード進行の自動生成について上記（２−５）と同様であり、楽節構成生成については上記（２−３）と同様であることから、説明を省略する。
（２−８）コード進行を自動生成し、既存技術を利用して対応する楽節構成を得て、得られた楽節構成を必要に応じて修正する。この方法は、コード進行の自動生成については上記（２−５）と同様であり、楽節構成生成については上記（２−４）と同様であることから、説明を省略する。
【００３０】
（２−９）複数記憶されたコード進行からいずれか１つを選択し、対応する楽節構成を直接手で入力する。例えば、フィーリング別に複数のコード進行を記憶させておき、記憶されたコード進行の中からいずれかのコード進行を所定の条件に基づいて選択する。候補が複数存在する場合には、ランダムに選択する。このコード進行を見ながら、ユーザは手で楽節構成を入力する。データベースに記憶するコード進行は、楽節毎に区切りやすいようコード数を決めて記憶しておくと、楽節構成を求めやすい。コード進行の繰り返し状態などの所定の音楽条件に応じて、複数記憶するコード進行からいずれか１つを選択する。その後、決定したコード進行に合致すべく手で楽節構成を入力する。勿論、楽節構成を入力するための入力補助があってよい。
（２−１０）複数記憶されたコード進行からいずれか１つを選択し、対応する楽節構成を自動生成する。コード進行生成については上記（２−９）と同様であり、楽節構成の自動生成については上記（２−２）と同様であることから、説明を省略する。なお、記憶されるコード進行は楽節毎に区切りやすいようにコード数を決めておくとよい。
（２−１１）複数記憶されたコード進行からいずれか１つを選択し、一方、データベースに基本となる楽節構成を記憶しておき（楽節構成雛型テンプレート）、データベースに複数記憶された楽節構成のいずれかを所定の音楽条件で選択し、選択された楽節構成がコード進行と対応していれば選択した楽節構成をそのまま使用し、コード進行と対応していない楽節構成であれば該楽節構成を修正して使用する。この場合、コード進行生成については上記（２−９）と同様であり、楽節構成生成については上記（１−３）と同様であることから、説明を省略する。
（２−１２）複数記憶されたコード進行からいずれか１つを選択し、既存技術を利用して対応する楽節構成を得て、得られた楽節構成を必要に応じて修正する。この場合、コード進行生成については上記（２−９）と同様であり、楽節構成生成については上記（２−４）と同様であることから、説明を省略する。
【００３１】
（２−１３）データベースに複数記憶した基本となるコード進行（コード進行雛型テンプレート）のいずれかを選択し修正した後に、対応するコード進行を直接手で入力する。例えば、フィーリング別に複数のコード進行雛型テンプレートを記憶しておき、所定の条件に基づいていずれかのコード進行雛型テンプレートを選択する。候補が複数存在したら、ランダムに決定する。コード進行の修正方法としては、ユーザが１つ１つのコードを手で変更する方法、あるいは所定の音楽条件に基づいて変更可能なコードの候補（例えば、「３コード」という条件で主要３和音、「ダイアトニック」という条件でダイアトニックコード、「代理コード」という条件で代理コード）を提示し選択する方法がある。修正後、このコード進行をみて、ユーザが手で楽節構成を入力する。勿論、楽節構成を入力するための入力補助があってよい。
（２−１４）データベースに複数記憶した基本となるコード進行（コード進行雛型テンプレート）のいずれかを選択し修正した後に、対応する楽節構成を自動生成する。この場合、コード進行生成については上記（２−１３）と同様であり、楽節構成の自動生成については上記（２−２）と同様であることから、説明を省略する。
（２−１５）データベースに複数記憶した基本となるコード進行（コード進行雛型テンプレート）のいずれかを選択し修正した後に、データベースに複数記憶された基本となる楽節構成（楽節構成雛型テンプレート）のいずれかを所定の音楽条件で選択し、該楽節構成が選択されているコード進行と対応している場合には該楽節構成をそのまま使用し、該楽節構成が選択されているコード進行と対応していない場合には該楽節構成を修正して使用する。この場合、コード進行生成については上記（２−１３）と同様であり、楽節構成生成については上記（２−３）と同様であることから、説明を省略する。
（２−１６）データベースに複数記憶した基本となるコード進行（コード進行雛型テンプレート）のいずれかを選択し修正した後に、既存技術を利用して対応する楽節構成を得て、得られた楽節構成を必要に応じて修正する。この場合、コード進行生成については上記（２−１３）と同様であり、楽節構成生成については上記（２−４）と同様であることから、説明を省略する。
【００３２】
（２−１７）既存技術を利用してコード進行を得た後、対応する楽節構成を直接手で入力する。例えば、ユーザがコード進行を使用したい既存曲を選択し、該既存曲のコード進行を楽譜認識することで得た後、対応する楽節構成を直接手で入力する。勿論、楽節構成を入力するための入力補助があってよい。なお、コード進行を既存曲から得る際には、ＭＩＤＩデータ等を自動的に解析してコード進行を得るようにしてもよい。この場合、コード進行生成については上記（１−４）と同様であることから説明を省略する。
（２−１８）既存技術を利用してコード進行を得た後、対応する楽節構成を自動生成する。この場合、コード進行生成については上記（１−４）と同様であり、楽節構成の自動生成については上記（２−２）と同様であることから、説明を省略する。
（２−１９）既存技術を利用してコード進行を得た後、データベースに複数記憶された基本となる楽節構成（楽節構成雛型テンプレート）のいずれかを所定の音楽条件で選択し、該楽節構成が得られたコード進行と対応している場合には該楽節構成をそのまま使用し、該楽節構成が得られたコード進行と対応していない場合には該楽節構成を修正して使用する。この場合、コード進行生成については上記（１−４）と同様であり、楽節構成生成については上記（２−３）と同様であることから、説明を省略する。
（２−２０）既存技術を利用してコード進行を得た後、既存技術を利用して対応する楽節構成を得て、得られた楽節構成を必要に応じて修正する。この場合、コード進行生成については上記（１−４）と同様であり、楽節構成生成については上記（２−４）と同様であることから、説明を省略する。
【００３３】
なお、上述した実施形態において、データを得る手順として楽節構成データを決定（若しくは取得）してからコード進行データを決定（若しくは取得）する方法と、コード進行データを決定（若しくは取得）してから楽節構成データを決定（若しくは取得）する方法のいずれかをユーザが選択できるようにしてよい。
なお、楽節構成やコード進行の各決定（若しくは取得）方法をユーザが任意に選択できるようにしてもよいし、各決定（若しくは取得）方法の組み合わせのいくつかを予め用意しておき、ユーザはその中から選択するようにしてもよい。また、全組み合わせを選択可能とするものに限らず、選択できない組み合わせがあってもよい。また、特定の組み合わせのみを可能とするようにしてもよい。
【００３４】
以上のように、コード進行データと楽節構成データとを適宜別々に選択して組み合わせることによって、多彩なメロディを生成することができるようになっている。すなわち、上述した各実施例においては、ユーザ自身が楽節構成（あるいはコード進行）にあわせてコード進行（あるいは楽節構成）を手で入力したり、データベースに記憶されたコード進行（あるいは楽節構成）を選択・修正して、コード進行と楽節構成とを組み合わせて、これを基にメロディ生成を行っている。しかし、上述した方法では、生成されるメロディの出来がユーザの音楽的知識等を含むメロディ作成能力に左右されることから、特に音楽的知識の乏しい初心者にとっては上述した方法によって最適なコード進行と楽節構成との組み合わせを作成することは困難である。そこで、音楽的に最適なコード進行と楽節構成を組み合わた曲テンプレートをデータベースに記憶しておき、ユーザは当該曲テンプレートのコード進行と楽節構成を使用することで、音楽的に最適なメロディを生成するようにした実施例を次に示す。
【００３５】
まず、１つのコード進行と複数の楽節構成とを組み合わせて記憶した１つの曲テンプレートを所定のメロディ生成条件（音楽条件）で選択し、該曲テンプレートの複数楽節構成のいずれかの楽節構成を選択して、これらをメロディ生成に利用する方法について説明する。図４は、該曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
曲テンプレートはメロディ生成のためのコード進行データベースとして外部記憶装置９等に予め複数記憶されており、該曲テンプレートには１つのコード進行と複数の楽節構成とが組み合わされて記憶される。この複数曲テンプレートのうちのいずれかが、入力されたメロディ生成条件に従って選択される。すなわち、入力されたメロディ生成条件に基づいて曲テンプレートが検索され、当該メロディ生成条件に合致するコード進行が記憶された曲テンプレートが選択される。こうして、コード進行が取り出しされる。例えば、「楽しい」というキーワードからなるメロディ生成条件が入力された場合にはメジャーコードの多いコード進行が記憶された曲テンプレートが選択されるし、「やさしい」というキーワードからなるメロディ生成条件が入力された場合にはテンションの多いコード進行が記憶された曲テンプレートが選択される。このようにメロディ生成条件としてキーワードを用いて曲テンプレートを選択する場合には、コード進行毎に当該コード進行に対応するキーワード（例えば「楽しい」「やさしい」「悲しい」等）を登録しておき、入力されたメロディ生成条件に対応するキーワードに従って検索を行うことで適切な曲テンプレートを選択して、コード進行を抽出する。勿論、このようなキーワード検索でなく、ランダムに若しくはその他適宜の手法で曲テンプレートを選択するようにしてもよい。
【００３６】
上述したように、１つの曲テンプレートには、コード進行に対して複数の楽節構成が組み合わされて記憶されている。そこで、この複数記憶された楽節構成の中からメロディ生成条件に合致する楽節構成を抽出して取り出す。すなわち、メロディ生成条件に基づいて、複数登録されている楽節構成の中から１つの楽節構成を選択する。例えば、「繰り返しが多い」というメロディ生成条件が入力された場合には繰り返しの多い楽節構成を選択するし、「３部構成」というメロディ生成条件が入力された場合には「ＡＢＣ」「ＡＡ´Ｂ」などの３部構成からなる楽節構成を選択する。この楽節構成の選択に関しても、前記コード進行の選択と同様に、予め楽節構成毎に楽節構成に対応するキーワードを登録しておき、このキーワードに基づいて選択するようにすればよい。勿論、このようなキーワード検索でなく、ランダムに若しくはその他適宜の手法で選択するようにしてもよい。
こうして選択されたコード進行と楽節構成を利用して、メロディが生成される。なお、コード進行と楽節構成を利用してメロディを生成する方法は既に公知であることから、ここでの説明を省略する。
【００３７】
次に、１つのコード進行と１つの楽節構成とを組み合わせて記憶した１つの曲テンプレートを所定のメロディ生成条件（音楽条件）で選択し、該曲テンプレートの楽節構成を変更して、これらをメロディ生成に利用する方法について説明する。図５は、該曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
曲テンプレートはメロディ生成のためのコード進行データベースとして外部記憶装置９等に予め複数記憶されており、該曲テンプレートには１つのコード進行と１つの楽節構成とが組み合わされて記憶される。この複数曲テンプレートのうちのいずれかが、入力されたメロディ生成条件に従って選択される。すなわち、入力されたメロディ生成条件に基づいて曲テンプレートが検索され、当該メロディ生成条件に合致するコード進行が記憶された曲テンプレートが選択される。これは、図４に示した実施例と同様である。１つの曲テンプレートには、１つのコード進行に対して１つの楽節構成が組み合わされて記憶されている。そこで、メロディ生成条件に基づいて１つの曲テンプレートを選択することで、１つのコード進行とこれに対応する１つの楽節構成とが取り出される。こうして取り出されたコード進行あるいは楽節構成に対し、メロディ生成条件に基づいてコード進行の変更あるいは楽節構成の変更が行われることがある。この場合、メロディ生成条件に基づいて、読み出されたコード進行あるいは楽節構成はその内容を変更される。例えば、「やさしい」というキーワードのメロディ生成条件が入力された場合には、コード進行に対してテンションを付加する。他にもコード進行内の各コードを代理コードやセカンダリドミナントなどに変更することもある。つまり、本出願人が既に提案している特願平１０−３３３７８１の記載に見られるような変更方法を採用してよい。さらに、楽節構成の変更の際に、ユーザはどの楽節区間を変更しても良いことから、ユーザが変更する楽節区間を指定してすることができるようにしてよい。この楽節構成の変更手段は、テーブルによって変更する方法又は演算によって変更する方法の２種類の方法があり、これらについての詳細な説明は後述する。
このようにして選択された（あるいは選択・変更された）コード進行と楽節構成とを利用して、メロディを生成する。
【００３８】
さらに、１つの楽節構成と複数のコード進行とを組み合わせて記憶した１つの曲テンプレートを所定のメロディ生成条件（音楽条件）で選択し、該曲テンプレートの楽節構成を変更して、これらをメロディ生成に利用する方法について説明する。図６は、該曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
曲テンプレートはメロディ生成のためのコード進行データベースとして外部記憶装置９等に予め複数記憶されており、該曲テンプレートには１つのコード進行と複数の楽節構成とが組み合わされて記憶される。この複数曲テンプレートのうちのいずれかが、入力されたメロディ生成条件に従って選択される。すなわち、入力されたメロディ生成条件に基づいて曲テンプレートが検索され、当該メロディ生成条件に合致する楽節構成が記憶された曲テンプレートが選択される。例えば、「繰り返しが多い」というメロディ生成条件が入力された場合には繰り返しの多い楽節構成を選択するし、「３部構成」というメロディ生成条件が入力された場合には「ＡＢＣ」などの３部構成の楽節構成を選択する。１つの曲テンプレートには、１つの楽節構成に対して複数のコード進行が組み合わされて記憶されている。そこで、この複数記憶されたコード進行の中からメロディ生成条件に合致するコード進行を抽出して取り出す。すなわち、メロディ生成条件に基づいて、複数登録されているコード進行の中から１つのコード進行を選択する。このようにして選択されたコード進行と楽節構成を利用して、メロディを生成する。なお、図６には記載していないが、この場合においても曲テンプレートから抽出したコード進行あるいは楽節構成をメロディ生成条件に基づいて変更し、これに従ってメロディを生成するようにしてよいことは言うまでもない。
【００３９】
ここで、曲テンプレートから抽出した楽節構成の変更方法について簡単に説明する。
まず、テーブルを参照して楽節構成を変更する方法について説明する。図７は、楽節構成別変更可能テーブルの一実施例を示す図である。図７では、左側に変更前の楽節構成を示し、右側に変更可能な楽節構成を変更前の楽節構成に対応するようにして示している。
楽節構成を変更する際に、この楽節構成別変更可能テーブルを参照して、当該テーブルに基づいて楽節構成の変更が行われる。すなわち、楽節構成を変更する際に、当該テーブルに基づいて変更対象となった楽節構成を参照し、それに対応する変更可能な楽節構成をランダムに（あるいはユーザが指定して）決定する。例えば、変更前の楽節構成「ＡＡ」（上から２段目参照）を変更する際には「ＡＡ´」「ＡＢ」のどちらかの楽節構成にのみ変更可能であり、変更前の楽節構成「ＡＡＢ」（上から７段目参照）を変更する際には「ＡＡ´Ｂ」「ＡＢＣ」のどちらかの楽節構成にのみ変更可能である。このような楽節構成別変更可能テーブルを作成する利点は、変更したい楽節構成のみを登録しておくことができることである。すなわち、理論上では変更可能な楽節構成であっても、あまり使用頻度の少ない楽節構成であるような場合には該テーブルに登録しておかないことで、効率的に楽節構成の変更を行うことができるようになる。
【００４０】
この楽節構成別変更可能テーブルには、次に示すような作成基準がある。例えば、既に現れた楽節記号と同一楽節記号部分又は類似楽節記号部分のメロディは、同一又は類似が可能であるが、異なるメロディであってもかまわない。異なる楽節記号に変更すれば異ならせることができる。反対に、異なる楽節記号部分のメロディを、既に存在する楽節記号あるいは類似楽節記号に変更することはできない。異なる楽節記号部分はコード進行が異なるので、既に存在する楽節記号部分あるいは類似楽節記号部分のメロディと同一または類似にはできない。
このようなテーブル作成の基準をルール化すると、以下のようになる。
ルール１：既に現れた楽節記号（例えば、「Ｋ」）と同一の楽節記号（「Ｋ」）は、使われていない類似楽節記号（「Ｋ´」）、または使われていない最も若い記号へ変更できる（例えば、「Ａ」〜「Ｌ」までが既に使用されている場合には「Ｍ」が最も若い記号となる）。ただし、類似記号へは不可である。
ルール２：既に現れた楽節記号（「Ｋ」）と類似の楽節記号（「Ｋ´」）は、使われていない最も若い記号へ変更できる。ただし、類似記号へは不可である。
ルール３：変更した結果、アルファベットの出現順が昇順でなくなった場合には昇順に並びかえる。例えば、「ＡＡＢ」をルール１によって「ＡＣＢ」と変更してしまうと昇順でなくなることから、この場合は「ＡＢＣ」のように楽節記号の並べかえを行う。
このようなルールにのっとって、図７に示すような内容の楽節構成別変更可能テーブルが作成される。
【００４１】
次に、演算プログラムを使用して楽節構成を変更する方法について説明する。図８は、上述した楽節記号変更ルールに基づいて演算により楽節構成を変更する方法の一実施例を示したフローチャートである。以下、図８のフローチャートに従って、当該方法における動作例を説明する。  ステップＳ１では、変更対象とした楽節構成の楽節記号列をロードする。楽節記号列のロード後、当該楽節構成における楽節記号の数を検出して、変数ＣＮに代入する（ステップＳ２）。例えば、変更対象とした楽節構成の楽節記号列として「ＡＡＢ」がロードされた場合には、変数ＣＮには「３」が代入される。次に、当該処理で使用するカウンタｎに「１」を設定する（ステップＳ３）。このカウンタｎは、当該処理において楽節区間毎（例えば、「Ａ」「Ａ」「Ｂ」毎）に楽節を変更していくための指標となるカウンタである。
【００４２】
ステップＳ４では、カウンタｎに対応する順番にある変更対象とした楽節構成の楽節記号（これを元の楽節記号と呼ぶ）をロードして、当該楽節記号を所定のメモリＫｎに代入する。すなわち、変更対象となる元の楽節記号をロードしてメモリＫｎに保持しておく。このメモリＫｎに代入された楽節記号が、既に（当該楽節記号が現れる以前に）現れた楽節記号であるか否かを判定する（ステップＳ５）。既に現れた楽節記号でない場合には（ステップＳ５のＮＯ）、当該楽節記号は新規に現れた楽節記号であることから変更しない。そこで、次に変更対象となる楽節記号を得るために、カウンタｎに１を足してから（ステップＳ１６）、ステップＳ４の処理へ戻る。このように、ここで新規に現れた楽節記号は「´」（ダッシュ）記号付きにも「異なる楽節記号」（異記号）にも変更することができない。一方、既に現れた楽節記号である場合には（ステップＳ５のＹＥＳ）、メモリＫｎに代入された楽節記号が「´」（ダッシュ）記号付きであるか否かを判定する（ステップＳ６）。すなわち、「´」（ダッシュ）記号付きの楽節記号は当該楽節記号を「異なる楽節記号」に、「´」（ダッシュ）記号付きでない楽節記号は当該楽節記号を「´」（ダッシュ）記号付きの楽節記号、あるいは「異なる楽節記号」に変更することができるため、ステップＳ６でどちらかを判定する。「´」（ダッシュ）記号付きの楽節記号である場合には（ステップＳ６のＹＥＳ）、未使用で最も若い記号Ｌｎを候補に登録する（ステップＳ１０）。「´」（ダッシュ）記号付きの楽節記号でない場合には（ステップＳ６のＮＯ）、ステップＳ７へ進む。ステップＳ７では、当該楽節記号に「´」（ダッシュ）記号を付けた楽節記号が既に存在していないかを判定する。存在していない場合には（ステップＳ７のＮＯ）、当該楽節記号に「´」（ダッシュ）記号を付した楽節記号を変更候補として登録し（ステップＳ８）、さらに未使用で最も若い記号Ｌｎを候補に登録する（ステップＳ９）すなわち、ここでは「´」（ダッシュ）記号付きの楽節記号が未だ存在していないのであれば、「´」（ダッシュ）記号付きの楽節記号に当該楽節記号を変更することができるのでそれを候補とし、さらに「´」（ダッシュ）記号付きの楽節記号としないで「異なる楽節記号」としてもよいことから、「異なる楽節記号」も候補として登録しておく。ステップＳ７において、当該楽節記号に「´」（ダッシュ）記号を付けた楽節記号が既に存在している場合には（ステップＳ７のＹＥＳ）、未使用で最も若い記号Ｌｎを候補に登録する（ステップＳ１０）。すなわち、ｎ番目の楽節記号が「´」（ダッシュ）記号付きの楽節記号である場合には、「異なる楽節記号」が候補として登録される。
【００４３】
ステップＳ１１では、当該楽節記号を候補として登録された楽節記号に変更するか否かの判定を、ユーザからの指示に従って判定する。すなわち、ユーザは所定の操作子５Ａ等を用いて楽節記号を変更するか否かを指示することができる。この際に変更対象とする楽節記号は、ユーザが適宜の楽節区間を指定して変更してよい。登録された楽節記号に変更する場合（ステップＳ１１のＹＥＳ）、候補として登録されている楽節記号を採用する（ステップＳ１２）。この際に、複数の候補が登録されている場合には、ランダムに選択する。すなわち、変更したい場合には、候補の中から変更する。元の楽節記号が「´」（ダッシュ）記号付きの楽節記号でない場合には、「´」（ダッシュ）記号付きの楽節記号と「異なる楽節記号」の両方が候補になるので、どちらかを選択する。ランダムに選択してもよいし、入力された音楽条件（例えば、「繰り返し性のある」等）に合致する楽節記号を選択するようにしてもよい。こうして採用された楽節記号を加えて、必要に応じて元の楽節記号列を昇順に並べかえる（ステップＳ１３）。そして、元の楽節構成を新楽節構成に更新する（ステップＳ１４）。
ステップＳ１５では、カウンタｎが最後まで実行したか否かを判定する。すなわち、ステップＳ２で得られた楽節記号数を代入した変数ＣＮまでカウンタｎが進んで、変更対象とされた楽節構成における全ての楽節記号について上記処理が行われたか否かを判定する。カウンタｎが変数ＣＮまで全て終了している場合（ステップＳ１５のＹＥＳ）には当該処理を終了し、全て終了していない場合には（ステップＳ１５のＮＯ）カウンタｎに１をたして（ステップＳ１６）更に処理を繰り返し続ける。
【００４４】
以上の演算処理によって、楽譜構成の変更が行われる際の処理動作について具体例を用いて説明する。例えば、「ＡＡＢ」という楽節記号列である楽節構成を変更する際の処理動作について説明する。
第１楽節の「Ａ」はステップＳ５において「ＮＯ」と判定されることから、変更対象とならない。第２楽節の「Ａ」はステップ５において「ＹＥＳ」と判定されて変更対象となる。そして、ステップＳ６及びステップＳ７では共に「ＮＯ」と判定されるので、ステップＳ８及びステップＳ９の処理が行われる。ステップＳ８の処理では、「Ａ´」が候補として登録される。ステップＳ９では、未使用の記号で最も若い記号は「Ｃ」であることから、「Ｃ」が候補として登録される。ここで、「Ｂ」は既に第３楽節として使用されていることから候補とならない。そして、ステップＳ１２で「Ｃ」が選択された場合、楽節構成は「ＡＣＢ」となるので、ステップＳ１３で「ＡＢＣ」に並べかえる。ステップＳ１４で、この「ＡＢＣ」を新規楽節とし、第３楽節の「Ｃ」の変更処理に進む。「Ｃ」ではステップＳ５が「ＮＯ」と判定されるために、第３楽節「Ｃ」の変更は行われない。このようにして、変更した結果の楽節構成は「ＡＢＣ」となる。あるいは、ステップＳ１２において「Ａ´」が選択された場合には、変更した結果の楽節構成は「ＡＡ´Ｂ」となる。なお、これらの結果が、図６に示した楽節構成別テーブルの上から７番目に示した内容と一致することは勿論である。
【００４５】
なお、曲テンプレートのデータ構造は上述した実施例に限られるものではない。すなわち、楽節構成やコード進行の他にもデータを保持していてよい。また、曲テンプレートは、図４〜図６に示したように楽節構成とコード進行が同一の記憶領域に記憶されているものに限らず、異なる記憶領域に散在して記憶されていてもよい。すなわち、楽節構成データとコード進行データとを別々のメモリ上に記憶しておき、各々散在するデータを連続するデータとして別途管理するようにしてもよい。例えば、楽節構成データとコード進行データとを関連づけしたテーブルを用意し、このテーブルを参照することによって曲テンプレートが決定されるようにしてよい。
【００４６】
なお、メロディ生成の方法は少なくとも楽節構成とコード進行を利用する方法であればどのような方法であってもよいが、楽節構成とコード進行に加えてブロック構成を用いてメロディを生成する方法もある。曲の構造としては、例えば冒頭部は緩やかに、中間部では激しく、最後部ではまた緩やかにというように曲全体にわたって起伏を持った構造とする場合が多い。そのような場合、中間部や最後部においては冒頭部と類似させたり対比させたりする構造がとられる。このように、曲構造は所定のひとまとまりの区間における曲の起伏を表現することから、この区間を決定し、この区間毎に与えられる異なるコード進行やメロディ生成条件等を用いてメロディを生成すると非常によい曲を生成することができる。このまとまった区間のことを「ブロック」と呼び、この実施例では「ａ」ブロック、「ｂ」ブロックのようにアルファベットの小文字を用いて以下表記する。すなわち、「ブロック」は所定の区間における音楽の起伏を表現するものである（楽典では「形式」という表現で表わされ、例えば３部形式である場合の曲全体のブロック構成は「ａｂａ」のように表わされる）。この「ブロック」は楽節を１つまたは複数含んで構成されていることから、楽節構成が修正されたりあるいは新たに楽節構成が生成されたような場合には、該楽節構成に対応するブロック構成を新たに生成する必要がある。そこで、本発明に係る自動作曲装置では楽節構成に基づいてブロック構成を生成する。
以下、楽節構成に基づいてブロック構成を生成する方法について説明する。
【００４７】
図９は、楽節構成からブロック構成を生成する方法の一実施例を示したフローチャートである。
まず、曲全体の楽節数を検出する（ステップＳ２１）。すなわち、上述の図２あるいは図３で説明したように、ユーザが直接入力した楽節構成、自動生成した楽節構成、選択した既存の楽節構成（楽節構成雛型テンプレート）あるいは既存の楽節構成（楽節構成雛型テンプレート）を修正して得られる楽節構成などを構成している楽節の数を検出する。例えば、楽節構成が「ＡＢ」であれば楽節数は「２」、楽節構成が「ＡＢＡ´」であれば楽節数は「３」と検出される。曲全体の楽節数を検出すると、該曲全体の楽節構成は所定の楽節記号（例えば「Ａ」）のみで表現される楽節から構成されているか否かの判定を行う（ステップＳ２２）。曲全体の楽節構成が所定の楽節記号（例えば「Ａ」）のみで表現される楽節から構成されている場合（ステップＳ２２のＹＥＳ）、ブロック分割テーブルを参照して曲全体楽節数に対応する最優先分割に決定する（ステップＳ３４）。
【００４８】
ここで、ブロック分割テーブルについて簡単に説明する。図１０は、ブロック分割テーブルの一実施例を示す図である。ただし、ここでは曲全体の楽節数が「６」〜「８」個のものを「２」〜「４」個のブロックに分割するためのテーブルを例に示した。この実施例では、横方向に分割対象とする曲全体の楽節数を示し、縦方向にブロック分割数を示した。
上述したように、ブロックはその一塊で音楽の起伏を表現するものである。曲全体において、このブロックの数が余り多いと緩急の変化頻度が多すぎて落ち着かない曲になり、余り少ないと緩急の変化頻度が少なすぎて退屈な曲になる。そこで、ある楽節数を持つ楽曲において、その楽節数に応じて望ましいブロック分割数及び分割内楽節数を図１０に示すようなブロック分割テーブルに予め決めておく。例えば、楽節数が「６」である場合の曲を２分割すると２楽節と４楽節の組み合わせからなる２ブロック構成が適切なブロック構成となるし（ブロック分割テーブルでは単に「２+４」と表記している）、楽節数が「７」である場合の曲を３分割すると２楽節と３楽節と２楽節の組み合わせからなる３ブロック構成が適切なブロック構成となる（ブロック分割テーブルでは単に「２＋３＋２」と表記している）。また、楽節数毎に分割に対して優先度を付加する場合がある。図１０では、優先度の高い順に１から順に数字を付している（すなわち、優先順位「１」が付された分割が最優先される分割である）。例えば、楽節数が「８」である場合には、優先順位「１」の「２＋２＋４」の３分割が最優先であり、優先順位「２」の「２＋２＋２＋２」の４分割がこれに続く優先度の高い分割である。さらに、優先順位「３」の「2+1+2+3」、「2+2+3+1」「2+3+1+2」の４分割が次に続く優先度の高い分割である。ただし、複数の分割に対し同一の優先順位が付されている場合には、その複数の分割の中からランダムにいずれかを選択する。
なお、このように分割に優先度を付加すると、優先度の高い分割ばかりが採用されることが多くなることから、優先度を付加せずに全分割の中からランダムに選択するようにしてもよい。あるいは、ユーザの指定に従って選択するようにしてもよい。また、ブロック分割テーブルは図１０に示した構成のものに限られないことは言うまでもない。
【００４９】
図９に戻り、全体楽節が所定の楽節記号（例えば「Ａ」）のみからなる場合には（ステップＳ２２のＹＥＳ）、図１０に示す２分割から４分割の全ての分割が可能であり、検出された楽節数が例えば「８」である場合には最優先分割（すなわち、優先順位「１」）の「2+2+4」の３分割に決定される。例えば、「AAAAAAAA」のように同一の８個の楽節記号からなる楽節で構成されている楽節構成を分割する場合には、図１０のブロック分割テーブルに従い最も優先度の高い「2+2+4」分割に決定され、「AA/AA/AAAA」（以下、分割区間の区切りを´／´（スラッシュ記号）で表示する）のように各楽節が分割されたブロック構成となる。
【００５０】
一方、曲全体の楽節が所定の楽節記号（例えば「Ａ」）のみで構成されていない場合には（ステップＳ２２のＮＯ）、曲全体の楽節数に対して図１０のブロック分割テーブルに従い順次に分割をロードし（ステップＳ２３）、曲全体楽節をその分割で区切る（ステップＳ２４）。例えば、楽節構成「AAAABACC」をブロック分割テーブルに従い「AA/AABACC」（「2+6」の２分割）に区切る。ステップＳ２５では、こうして区切られた楽節構成において、該区切りが所定の楽節記号（例えば「Ａ」）以外の連続した同一楽節記号の途中で行われているか否かを判定する。該区切りが所定の楽節記号（例えば「Ａ」）以外の連続した同一楽節記号の途中で行われている場合（ステップＳ２５のＹＥＳ）、ステップＳ２３の処理に戻り、図１０のブロック分割に従って次の分割について上記処理を繰り返す。他方、該区切りが所定の楽節記号（例えば「Ａ」）以外の連続した同一楽節記号の途中で行われていない場合には（ステップＳ２５のＮＯ）、ステップＳ２６の処理へ続く。上記ステップＳ２３からステップＳ２５の処理を行うことで、所定の楽節記号（例えば「Ａ」）以外の連続した同一楽節記号の途中で分割を行わないようにしている。すなわち、同一楽節記号が連続する場合には、該楽節記号の先頭から曲の起伏が変わり、該楽節記号が連続する限りその変化した起伏が続いている状態であるために、連続した同一楽節記号の途中での分割は行わない方が好ましい。例えば、楽節構成「AAAABACC」をブロック分割テーブルに従って「AA/AA/BAC/C」（「2+2+3+1」の４分割）に区切って分割すると、連続する「C」を区切って分割することになるので、このような分割は不可とする。例えば、「AA/AA/BA/CC」（「2+2+2+2」の４分割）に区切って分割した場合には、連続した同一楽節記号の途中での分割が行われていないので、このような分割は可とする。
【００５１】
ステップＳ２６では、区切った各ブロックにおいて同一楽節構成があるか否かを判定する。同一楽節構成がない場合（ステップＳ２６のＮＯ）、ブロック分割テーブルの曲全体楽節数に対応する最優先分割に分割を決定する（ステップＳ３４）。すなわち、同一楽節構成がない場合、各ブロックの楽節構成は類似区間（楽節記号の１つ以上が同一の区間）であるか、あるいは全く異なる区間（その楽節記号がその区間のみに出現している）であるかであり、このような場合にはどちらを採用してもよいことから、ブロック分割テーブルに従って最優先分割を行う。同一楽節構成がある場合（ステップＳ２６のＹＥＳ）、同一楽節構成を持つブロック数をカウントする（ステップＳ２７）。例えば、楽節構成「ABABCDCD」を「AB/AB/CDCD」（「2+2+4」の３分割）に分割した場合には同一楽節（AB）が２つとカウントされ、「AB/AB/CD/CD」（「2+2+2+2」の４分割）に分割した場合には同一楽節が４つ（ABとCDが各々２つずつ）とカウントされる。以上のステップＳ２３〜ステップＳ２７までの各処理を、ブロック分割テーブルの全ての分割方法に従って実施する（ステップＳ２８のＮＯ）。
【００５２】
このようにして、ブロック分割テーブルの全ての分割方法に従って曲全体の楽節構成の分割を実施し終わると（ステップＳ２８のＹＥＳ）、同一楽節構成を持つブロック数のカウントが同じである分割があるか否かを判定する（ステップＳ２９）。例えば、楽節構成「ABABCDCD」を「AB/AB/CDCD」（「2+2+4」の３分割）に分割した場合及び「AB/AB/CDC/D」（「2+2+3+1」の４分割）に分割した場合には同一楽節（AB）が共に２つとカウントされ、この場合には「AB/AB/CDCD」と「AB/AB/CDC/D」とはカウントが同じ分割と判定される。同カウントの分割がない場合には（ステップＳ２９のＮＯ）、最も分割数の多い分割に決定する（ステップＳ３５）。すなわち、２分割よりも３分割、３分割よりも４分割に分割したものに決定する。同カウントの分割がある場合には（ステップＳ２９のＹＥＳ）、ブロック分割テーブルに従い各分割の優先度を検出し（ステップＳ３０）、同優先度の分割が複数あるか否かを判定する（ステップＳ３１）。同優先度の分割が複数ない場合には（ステップＳ３１のＮＯ）、最も分割数の多い分割に決定する（ステップＳ３５）。同優先度の分割が複数ある場合には（ステップＳ３１のＹＥＳ）、それらの分割の中からいずれかの分割をランダムに選択し決定する（ステップＳ３２）。このように、注目する分割区間の楽節構成が他のいずれかの分割区間の楽節構成と「同一」であるかを調べ、「同一」の楽節構成がある場合にはその個数を求める。ブロック分割テーブルに従う分割全てについて「同一」の楽節構成である分割区間の個数を各々求め、同数の分割区間の個数を持つ分割が複数存在していない場合には最も多い分割区間の個数を持つ分割に決定する。同数の分割区間の個数を持つ分割が複数存在していたら、ブロック分割テーブルに従って優先度の高い分割を採用する。ただし、優先度がない場合、あるいは同一優先度の分割が複数存在しているような場合にはランダムに選択し採用する。
【００５３】
例えば、楽節構成「ABABCDCD」を「AB/AB/CDCD」（「2+2+4」の３分割）と分割した場合には同一楽節が２つ（AB）、「AB/AB/CD/CD」（「2+2+2+2」の４分割）と分割した場合には同一楽節が４つ（ABとCD）であり、この場合には後者の分割「AB/AB/CD/CD」（「2+2+2+2」の４分割）の個数が前者の分割に比べて多いことから後者の分割に決定する。また、楽節構成「ABCDABC」を「AB/CD/AB/C」（「2+2+2+1」の４分割）と分割した場合は同一楽節が２つ（AB）、「A/BC/DA/BC」（「1+2+2+2」の４分割）と分割した場合にも同一楽節が２つ（BC）であることから、この場合にはブロック分割テーブルの優先度に従って優先度の低い前者分割「AB/CD/AB/C」（優先順位「３」）よりも優先度の高い後者分割「A/BC/DA/BC」（優先順位「２」）に決定する。
【００５４】
ステップＳ３３では、こうして分割した区間毎にブロック記号を割り当てる。ブロック記号は、「ａ」ブロック、「ｂ」ブロックのように記号「ａ」「ｂ」を交互に割り当てる。例えば、「AB/ACD/C/AB」（「2+3+1+2」の４分割）のように分割した場合にブロック記号を交互に割り当てると「abab」のようになる。このように単純に交互に記号「ａ」、「ｂ」を割り当てるのではなく、分割区間ごとに予め割り当てたブロック記号のみを割り当てるようにしてもよい。例えば、「2+3+1+2」の４分割に分割する場合には、「abab」「aaba」等の一塊のブロック記号列を予め候補として分割毎に割り当てておき、その中で優先づけて割り当てるかあるいはランダムに選択して割り当てるかするようにしてもよい。また、「同一」楽節構成の分割区間がある場合には同一記号のブロック記号を割り当てるようにしてもよい。例えば、「AB/ACD/C/AB」（「2+3+1+2」の４分割）のような場合、「abab」ではなく「abaa」のように割り当ててもよい。さらに、全ての分割区間に対しランダムに記号「ａ」「ｂ」を割り当てるようにしてもよい。このときに、記号「ａ」と「ｂ」の出現割合を設定できるようにしてもよい。また、記号「ａ」と「ｂ」が余り偏って出現しないように（例えば、記号「ａ」ばかりが連続して出現しないように）してもよい。
【００５５】
以上のように、いろいろな分割の割り当て方を採用することによって、いろいろな起伏を持ったブロック構成を生成することができるようになる。したがって、ユーザが直接入力した楽節構成、選択した既存の楽節構成（楽節構成雛型テンプレート）、既存の楽節構成（楽節構成雛型テンプレート）を修正して得られる楽節構成、あるいは、ユーザが直接入力したコード進行、自動生成したコード進行、選択した既存のコード進行（コード進行雛型テンプレート）あるいは既存のコード進行（コード進行雛型テンプレート）を修正して得られるコード進行に従って自動生成される新しい楽節構成に基づいたブロック構成を生成することができ、それに基づいてメロディを生成することができるようになる。
【００５６】
本発明に係る自動作曲装置においては、直接手で入力したコード進行を用いるほか、自動生成したコード進行あるいは既存のコード進行（コード進行雛型テンプレート）を用いてメロディを生成する（上述した図２あるいは図３の説明参照）。既存のコード進行（コード進行雛型テンプレート）を用いる場合、予めコード進行雛型テンプレートを多数登録したデータベースの中から所望のコード進行雛型テンプレートを選択して使用する。こうした場合、たくさんの種類のコード進行を得るためには数多くのコード進行雛型テンプレートを予めデータベースに登録しておかなければならない。しかし、それには非常に多くの手間がかかり非効率的である。そこで、本発明に係る自動作曲装置は、種となる少ないコード進行雛型テンプレートまたは既存のメロディを元に新たなコード進行雛型テンプレートを生成する。こうすると、少ないコード進行雛型テンプレートまたはメロディを予め用意しておくだけで、新たなコード進行雛型テンプレートを数多く生成することから、ユーザは生成された数多くのコード進行雛型テンプレートの中から好みのものを用いてメロディを生成することが簡単にできるようになる。以下、種となる少ないコード進行雛型テンプレートまたは既存のメロディを元に新たなコード進行雛型テンプレートを生成する自動作曲装置について説明する。
【００５７】
図１１は、種となるコード進行雛型テンプレートあるいは既存のメロディを元にして新たにコード進行雛型テンプレートあるいはメロディを生成する自動作曲装置の一実施例を示すシステム概略図である。
本自動作曲装置は、メロディ生成機ＭＰとコード進行生成機ＣＰとコード進行入力切替機ＣＳＷとメロディ入力切替機ＭＳＷとを少なくとも含む構成である。メロディ生成機ＭＰは、入力された既存のコード進行を元にメロディを生成する。コード進行生成機ＣＰは、入力されたメロディを元にコード進行を生成する。コード進行入力切替機ＣＳＷはメロディ生成機ＭＰに入力するコード進行を選択するものであって、種となるコード進行として、既存のコード進行を外部入力するか、コード進行生成機ＣＰで新たに生成したコード進行を入力するかを選択する。メロディ入力切替機ＭＳＷはコード進行生成機ＣＰに入力するメロディを選択するものであって、種となるメロディとして、既存のメロディを外部入力するか、メロディ生成機ＭＰで新たに生成したメロディを入力するかを選択する。
【００５８】
上述した自動作曲装置においては、メロディ生成機ＭＰで生成したメロディ、あるいはコード進行生成機ＣＰで生成したコード進行が各々出力される。そこで、該装置において行われるコード進行生成について説明する。図１２は、図１１に示した自動作曲装置において実行されるコード進行生成処理をフローチャートにして示した図である。
ステップＳ４１では、メロディ生成条件が設定される。そして、コード進行入力切替機ＣＳＷにより種となるコード進行をメロディ生成機ＭＰに外部入力すると（ステップＳ４２）、メロディ生成機ＭＰはメロディを複数生成する。メロディ生成条件は、例えば調、拍子、ダイナミクスなどであり、このメロディ生成条件とコード進行がメロディ生成機ＭＰに与えられることによって、メロディ生成機ＭＰはメロディを生成することができる。このメロディ生成機ＭＰにおけるメロディ生成については既知であることから詳しくは説明しないが、簡単に図１３を用いて説明する。図１３は、メロディ生成機ＭＰにおけるメロディ生成処理の一実施例を示すフローチャートである。この実施例に示すように、メロディ生成機ＭＰは入力された拍子に基づいてリズムを生成し（ステップＳ５１）、入力されたコード進行、調、ダイナミクスに基づいて、前記生成されたリズムの各打点にピッチ生成することによってメロディを生成する（ステップＳ５２）。
【００５９】
図１２に戻り、複数生成されたメロディの中からコード進行を生成するために種とするメロディを１つ選択する（ステップＳ４４）。選択されたメロディはメロディ入力切替機ＭＳＷによりコード進行生成機ＣＰに入力されて、コード進行生成機ＣＰはコード進行を複数生成する（ステップＳ４５）。このコード進行生成機ＣＰにおけるコード進行生成については既知であることから詳しくは説明しないが、簡単に図１４を用いて説明する。図１４は、コード進行生成機ＣＰにおけるコード進行生成処理の一実施例を示すフローチャートである。この実施例に示すように、コード進行生成機ＣＰは入力されたメロディを所定区間（例えば、２拍ごとあるいは１小節ごと）に区切り（ステップＳ６１）、区切った区間の各ピッチを組合せて構成できる候補となるコードをリストアップする（ステップＳ６２）。このリストアップされたコードの中から直前のコードを参照して該区間のコードを選択する（ステップＳ６３）。ただし、曲の最初では直前のコードがないことから、調のダイアトニックコードを優先に決定する。複数存在する場合には、主和音、属和音、下属和音の優先で決定する。また、ダイアトニックコードが候補のコードとしてなかったら、候補のコードの中からランダムに決定する。曲途中では、直前コードに連結しやすいコードを優先に決めていく。以上のようなコード選択を最後の区間まで繰り返し行う（ステップＳ６４）。こうすることによって、入力されたメロディを元にしてコード進行を生成することができる。
【００６０】
図１２に戻り、こうして複数生成されたコード進行の中からコード進行を１つ選択する（ステップＳ４６）。そして、コード進行生成を終了するか否かを判定し（ステップＳ４７）、コード進行生成を終了する場合には（ステップＳ４７のＹＥＳ）コード進行入力切替機ＣＳＷあるいはメロディ入力切替機ＭＳＷの何れかを外部入力に切り替えて当該処理を終了する。コード進行生成を終了しない場合には（ステップＳ４７のＮＯ）、ステップＳ４３に戻り、選択したコード進行をメロディ生成機ＭＰに入力して新たなコード進行を生成するように処理を繰り返す。すなわち、コード進行生成を終了せずに更にコード進行生成を続ける場合には、コード進行生成機ＣＰから出力したコード進行のいずれかをメロディ生成機ＭＰに入力するように、コード進行入力切替機ＣＳＷを切り替える。そうすると、図１１に示したシステムがループを形成することになり、コード進行入力切替機ＣＳＷあるいはメロディ入力切替機ＭＳＷの何れかを外部入力に切り替えない限り、コード進行の生成を続けて行う。ユーザは、こうして生成される数多くのコード進行の中からお気に入りのコード進行を選択することができる。
【００６１】
上述の実施例では種となるコード進行を入力して新たなコード進行の生成を開始する例について説明したが、種となるメロディを入力してコード進行の生成を開始するようにしてもよい。図１５は、種となるメロディを入力してコード進行を生成する処理をフローチャートにして示した図である。
ステップＳ７１では、生成条件を設定する。そして、メロディ入力切替機ＭＳＷにより種となるメロディをコード進行生成機ＣＰに外部入力すると（ステップＳ７２）、コード進行生成機ＣＰはコード進行を複数生成する（ステップＳ７３）。複数生成されたコード進行の中からいずれか１つのコード進行を選択する（ステップＳ７４）。そして、コード進行生成を終了する場合には（ステップＳ７５のＹＥＳ）、コード進行入力切替機ＣＳＷあるいはメロディ入力切替機ＭＳＷの何れかを外部入力に切り替えて当該処理を終了する。コード進行生成を終了しない場合には（ステップＳ７５のＮＯ）、選択されたコード進行はコード進行入力切替機ＭＳＷによりメロディ生成機ＭＰに入力されて、メロディ生成機ＭＰはメロディを複数生成する（ステップＳ７６）。複数生成したメロディの中からいずれか１つのメロディを選択し（ステップＳ７７）、ステップＳ７３に戻り、該選択したメロディをコード進行生成機ＣＰに入力して新たなコード進行を生成するように処理を繰り返す。ユーザは、こうして生成される数多くのメロディの中から気に入ったメロディを選択することができる。
【００６２】
なお、図１１から理解できるように、本実施例においては、コード進行を生成し出力するだけでなく、メロディも生成し出力することができる。メロディ生成に主眼を置いて処理を説明するフローチャートは、コード進行生成に主眼を置いて処理を説明するために用いた上述の図１２及び図１５に示すコード進行生成処理の「コード進行」を「メロディ」に、「メロディ」を「コード進行」に読み替えて該処理を行えばよい。
なお、上述の実施例では、外部からのコード進行（つまり、種とするコード進行）として既存のコード進行、すなわち、コード進行雛型テンプレートを入力して用いるようにしたが、ユーザが作成したコード進行あるいは自動生成したコード進行を種とするコード進行として外部入力してもよい。また、外部からのメロディ（つまり、種とするメロディ）として既存のメロディを入力して用いるようにしたが、ユーザが作成したメロディあるいは自動生成したメロディを種とするメロディとして外部入力してもよい。
さらに、上述の実施例においては、種となるコード進行とメロディを両方入力可能、コード進行とメロディを両方出力可能としたものを示したがこれに限らず、コード進行のみを入力・出力可能とするように構成したものであってもよいし、メロディのみを入力・出力可能としたものであってもよい。すなわち、コード進行及びメロディを生成する両方の機能を必ずしも具えている必要はなく、少なくともどちらか一方を生成する単独の機能を具えていればよい。
【００６３】
この自動作曲装置を電子楽器に適用する場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、音源装置、自動作曲装置等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別々に構成され、ＭＩＤＩインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、カラオケや自動演奏ピアノのような自動演奏装置、あるいは携帯通信端末や、該端末と有線又は無線で通信する作曲機能を有したサーバなどに適用してもよい。
【００６４】
自動演奏装置に適用する場合、生成されるメロディに関する演奏データのフォーマットは、イベントの発生時刻を曲や小節内における絶対時間で表した『イベント＋絶対時間』形式のもの、イベントの発生時刻を１つ前のイベントからの時間で表した『イベント＋相対時間』形式のもの、音符の音高と符長あるいは休符と休符長で演奏データを表した『音高（休符）＋符長』形式のもの、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域にイベントを記憶した『ベタ方式』形式のものなど、どのような形式のものでもよい。
また、複数チャンネル分の演奏データが存在する場合は、複数のチャンネルのデータが混在した形式であってもよいし、各チャンネルのデータがトラック毎に別れているような形式であってもよい。
【００６５】
【発明の効果】
本発明によれば、ユーザがコード進行を入力または与えられたコード進行を修正した場合、あるいはコード進行を自動生成したような場合であっても、新しい楽節構成に基づいたブロック構成を生成し、それに基づいてメロディを生成することが可能となる。
さらに、種となる少ないコード進行またはメロディを用意しておき、それを元にたくさんのコード進行とメロディを生成するので、ユーザは簡単に多様なメロディを生成することができる。
【図面の簡単な説明】
【図１】  この発明に係る自動作曲装置の実施の形態を示すハード構成ブロック図である。
【図２】  楽節構成データを特定してからコード進行データを特定してメロディを生成するまでの処理の流れを概念的に示した概念図である。
【図３】  コード進行データを特定してから楽節構成データを特定してメロディを生成するまでの処理の流れを概念的に示した概念図である。
【図４】  １つのコード進行と複数の楽節構成とを組み合わせた曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
【図５】  １つのコード進行と１つの楽節構成とを組み合わせた曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
【図６】  １つの楽節構成と複数のコード進行とを組み合わせた曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
【図７】  楽節構成別変更可能テーブルの一実施例を示す概念図である。
【図８】  楽節記号変更ルールに基づいて演算により楽節構成を変更する方法の一実施例を示したフローチャートである。
【図９】  楽節構成からブロック構成を生成する方法の一実施例を示したフローチャートである。
【図１０】  ブロック分割テーブルの一実施例を示す図である。
【図１１】  種となるコード進行雛型テンプレートを元にして新たにコード進行雛型テンプレート及びメロディを生成する自動作曲装置のシステム概略図である。
【図１２】  図１１に示した自動作曲装置において実行されるコード進行生成をフローチャートにして示した図である。
【図１３】  メロディ生成機におけるメロディ生成処理の一実施例を示すフローチャートである。
【図１４】  コード進行生成機におけるコード進行生成処理の一実施例を示すフローチャートである。
【図１５】  種となるメロディを入力してコード進行を生成する処理をフローチャートにして示した図である。
【符号の説明】
１…ＣＰＵ、１Ａ…タイマ、２…ＲＯＭ、３…ＲＡＭ、４…押鍵検出回路、４Ａ…鍵盤、５…スイッチ検出回路、５Ａ…スイッチ、６…表示回路、６Ａ…ディスプレイ、７…音源回路、８…効果回路、８Ａ…サウンドシステム、９…外部記憶装置、１０…ＭＩＤＩインタフェース、１０Ａ…他のＭＩＤＩ機器、１１…通信インタフェース、１１Ａ…サーバコンピュータ、１１Ｂ…通信ネットワーク、１Ｄ…データ及びアドレスバス、ＭＰ…メロディ生成機、ＣＰ…コード進行生成機、ＣＳＷ…コード進行入力切替機、ＭＳＷ…メロディ入力切替機
【図１】
0003835131.tif 000002
【図２】
0003835131.tif 000003
【図３】
0003835131.tif 000004
【図４】
0003835131.tif 000005
【図５】
0003835131.tif 000006
【図６】
0003835131.tif 000007
【図７】
0003835131.tif 000008
【図８】
0003835131.tif 000009
【図９】
0003835131.tif 000010
【図１０】
0003835131.tif 000011
【図１１】
0003835131.tif 000012
【図１２】
0003835131.tif 000013
【図１３】
0003835131.tif 000014
【図１４】
0003835131.tif 000015
【図１５】
0003835131.tif 000016