(57)【特許請求の範囲】
【請求項１】
曲のメロディに対応する主要区間に関して、それぞれ長さの異なる複数の作曲用データを記憶する記憶手段と、
作成すべき曲の時間長を指定する指定手段と、
曲の前記主要区間と該主要区間以外のイントロ、間奏、エンディングなどの所定区間との組み合わせであって、その組み合わせパターンが異なる複数の組み合わせのそれぞれについて、その全体の時間長が前記作成すべき曲の時間長に一致又は近似した時間長となるような長さになるように、前記主要区間で使用する前記作曲用データを、前記記憶手段に記憶された前記長さの異なる複数の作曲用データの中から、決定する決定手段と、
前記複数の組み合わせのうちの選択された組み合わせに対応する区間構成からなる曲を、該選択された組み合わせについて決定された前記作曲用データを用いて自動作曲する作曲手段と
を具備した自動作曲装置。
【請求項２】
前記主要区間に関する作曲用データは小節単位の作曲用データであり、また前記所定区間は小節単位の長さを有しており、
前記決定手段は、前記指定された時間長に基づいて該時間長に対応した小節数を決定し、前記複数の組み合わせのそれぞれについて、この決定した小節数から前記所定区間の小節数を減算した小節数に一致又は近似した小節数の作曲用データを前記記憶手段から抽出するものであることを特徴とする請求項１に記載の自動作曲装置。
【請求項３】
更に、前記複数の組み合わせ毎に、前記作成すべき曲の時間長とするために必要な補正テンポを算出する補正テンポ算出手段と、
前記算出された補正テンポと補正前のテンポとのずれが少ない組み合わせについて決定された前記作曲用データを１乃至複数提示する提示手段と
を具備した請求項１に記載の自動作曲装置。
【請求項４】
前記提示手段は、前記ずれの多少に関わらず、所定区間の組み合わせ毎の所定優先順位に従って前記作曲用データを１乃至複数提示することを特徴とする請求項３に記載の自動作曲装置。
【請求項５】
曲テンプレートを記憶する第２の記憶手段と、
前記第２の記憶手段に記憶された所定の曲テンプレート毎に前記複数の組み合わせについて、前記作成すべき曲の時間長に基づき前記主要区間に関して所定テンポ及び拍子に対応する小節数を算出すると共に、作成すべき曲全体の小節数の演奏時間が前記作成すべき曲の時間長となる補正テンポを算出する算出手段と、
前記第２の記憶手段に記憶された曲テンプレートのうち、算出した補正テンポと所定テンポとの間におけるテンポずれの少ない曲テンプレートを選択的に１乃至複数提示する提示手段と、
提示された曲テンプレートの中から所望の曲テンプレートを選択する選択手段と
を更に具備し、
前記決定手段は、前記複数の組み合わせのそれぞれについて、前記算出された前記主要区間に関する小節数に対応する長さの作曲用データを前記複数の作曲用データの中から決定し、
前記作曲手段は、この決定された作曲用データと前記選択された曲テンプレートを用いて自動作曲することを特徴とする請求項1に記載の自動作曲装置。
【請求項６】
補正テンポと所定テンポとの間におけるテンポずれの適否を各曲テンプレート毎に評価する評価手段を更に具備し、
前記提示手段は、前記評価手段による評価結果を曲テンプレート毎に提示することを特徴とする請求項５に記載の自動作曲装置。
【請求項７】
曲のメロディに対応する主要区間に関してそれぞれ長さの異なる複数の作曲用データを記憶する記憶手段を具えたコンピュータに、
作成すべき曲の時間長を指定するステップと、
曲の前記主要区間と該主要区間以外のイントロ、間奏、エンディングなどの所定区間との組み合わせであって、その組み合わせパターンが異なる複数の組み合わせのそれぞれについて、その全体の時間長が前記作成すべき曲の時間長に一致又は近似した時間長となるような長さになるように、前記主要区間で使用する前記作曲用データを、前記記憶手段に記憶された前記長さの異なる複数の作曲用データの中から、決定するステップと、
前記複数の組み合わせのうちの選択された組み合わせに対応する区間構成からなる曲を、該選択された組み合わせについて決定された前記作曲用データを用いて自動作曲するステップと
を実行させる自動作曲プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、所定の作曲用データに基づき自動的に曲を生成する自動作曲装置及び自動作曲プログラムに関する。特に、ユーザ所望の時間長の曲を作成することが可能な作曲用データの候補をユーザに対して複数提示し、該候補の中から選択された作曲用データに基づいて自動作曲を行う自動作曲装置及び自動作曲プログラムに関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータの普及に伴い、コンピュータを用いて楽器を演奏したり、作曲したり、編曲したり、音色を合成したりするコンピュータミュージックを用いて、誰でもが音楽を自由に楽しめるようになってきた。特に、コンピュータを用いた作曲の分野では、音楽的な専門知識の少ない初心者であっても簡単に作曲を行うことのできる自動作曲が出現している。こうした自動作曲装置として、ユーザが指定した時間にあわせて曲を自動的に生成するものが従来から知られている。例えば、本発明人が既に出願済みの特開2000−112472号に示す自動作曲装置においては、ユーザが時間とともにテンポや拍子などの作曲条件を指定することができるようになっており、指定されたこれらの作曲条件から生成する曲の小節数を算出する。そして、予め多数記憶されている作曲用データの中から算出された小節数に対応する作曲用データをユーザに対して提示し、ユーザが提示された作曲用データの中から所望の作曲用データを選択することによって、該選択した作曲用データに基づく自動作曲を行うことができるようになっている。この自動作曲の際には、生成する曲の時間長がユーザにより指定された時間に適合するようにテンポを微調節して曲の生成を行っている。
【０００３】
【発明が解決しようとする課題】
ところで、上述した従来の自動作曲装置においては、予め多数記憶されている作曲用データの中から算出された小節数に対応する作曲用データをユーザに対して提示する際に、イントロやエンディングなどの曲の主要区間（つまりメロディ区間）以外の小節数を考慮することは行われていない。そのため、曲の主要区間の小節数が算出した小節数に対応する作曲用データが予め記憶されていない場合には、仮にイントロやエンディングなどの曲の主要区間以外の区間を適宜の小節数分だけ付加すれば算出した小節数に対応する曲を生成することのできる作曲用データがあったとしても、こうした作曲用データはユーザに対して提示されることがなかった。このようにして、ユーザが選択することのできる作曲用データが限定されると、それに伴って自動生成される曲が限定されてしまうこととなり多くの曲を生成することができず不都合である、という問題点があった。
また、生成する曲の時間長がユーザにより指定された時間に適合するようにテンポを微調節する場合において、ユーザは指定したテンポとどの程度ずれたテンポの曲が生成されるのかを予め知ることができなかった。そのため、ユーザは生成される曲を予めイメージして作曲用データを選択することができず不便である、という問題点もあった。
【０００４】
本発明は上述の点に鑑みてなされたもので、曲の主要部分の小節数が算出した小節数に対応していない作曲用データであっても、イントロやエンディングなどの曲の主要部分以外を適宜の小節数分だけ付加すれば算出した小節数に対応する曲を生成することのできる作曲用データである場合には、該作曲用データをユーザに対して提示することによって、ユーザがより多くの曲を自動作曲することができるようにした自動作曲装置及び自動作曲プログラムを提供しようとするものである。
また、テンポを微調整する必要がある作曲用データをユーザに対して提示する際にテンポに関する所定の情報を提示することによって、ユーザが予めテンポずれした曲をイメージして作曲用データを選択することができるようにした自動作曲装置及び自動作曲プログラムを提供しようとするものである。
【０００５】
【課題を解決するための手段】
本発明に係る自動作曲装置は、曲のメロディに対応する主要区間に関して、それぞれ長さの異なる複数の作曲用データを記憶する記憶手段と、作成すべき曲の時間長を指定する指定手段と、曲の前記主要区間と該主要区間以外のイントロ、間奏、エンディングなどの所定区間との組み合わせであって、その組み合わせパターンが異なる複数の組み合わせのそれぞれについて、その全体の時間長が前記作成すべき曲の時間長に一致又は近似した時間長となるような長さになるように、前記主要区間で使用する前記作曲用データを、前記記憶手段に記憶された前記長さの異なる複数の作曲用データの中から、決定する決定手段と、前記複数の組み合わせのうちの選択された組み合わせに対応する区間構成からなる曲を、該選択された組み合わせについて決定された前記作曲用データを用いて自動作曲する作曲手段とを具備するものである。
【０００６】
この発明によると、曲の前記主要区間と該主要区間以外のイントロ、間奏、エンディングなどの所定区間との組み合わせであって、その組み合わせパターンが異なる複数の組み合わせのそれぞれについて、その全体の時間長が前記作成すべき曲の時間長に一致又は近似した時間長となるような長さになるように、前記主要区間で使用する前記作曲用データを、前記記憶手段に記憶された前記長さの異なる複数の作曲用データの中から、決定するようにし、こうして決定された長さの作曲用データを前記主要区間に含む組み合わせに対応する区間構成からなる曲を、該決定された作曲用データを用いて自動作曲するようにしたので、記憶手段が記憶している主要区間に関する作曲用データを用いただけでは、指定された作成すべき曲の時間長に見合うものがないような場合であっても、主要区間と該主要区間以外のイントロ、間奏、エンディングなどの所定区間を付加すれば指定された時間長に一致又は近似した時間長となるような場合には、該作曲用データを用いて自動作曲することができるようになる。従って、より多くの曲を自動作曲することができるようになる。
【０００７】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【０００８】
【発明の実施の形態】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明する。
【０００９】
図１は、この発明に係る自動作曲装置を内蔵した電子楽器の実施の形態を示すハード構成ブロック図である。
本実施例に示す電子楽器は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータによって制御されるようになっている。ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してリードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３、検出回路４、スイッチ検出回路５、表示回路６、音源回路７、効果回路８、外部記憶装置９、ＭＩＤＩインタフェース（Ｉ／Ｆ）１０および通信インタフェース（Ｉ／Ｆ）１１がそれぞれ接続されている。更に、ＣＰＵ１には、タイマ割込み処理（インタラプト処理）における割込み時間や各種時間を計時するタイマ１Ａが接続されている。すなわち、タイマ１Ａは時間間隔を計数したり、作曲した楽曲を自動演奏する際に用いる演奏テンポを設定したりするためのクロックパルスを発生する。このようなタイマ１ＡからのクロックパルスはＣＰＵ１に対して処理タイミング命令として与えられたり、あるいはＣＰＵ１に対してインタラプト命令として与えられる。ＣＰＵ１は、これらの命令に従って各種処理を実行する。
【００１０】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種制御プログラム（例えば、後述する自動作曲処理などのプログラム）や各種データ（例えば、後述する曲テンプレートや作曲用データ）等を格納するものである。ＲＡＭ３は、作曲した楽曲を自動演奏する際に用いる自動演奏情報やＣＰＵ１が所定のプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中の制御プログラムやそれに関連するデータを記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。演奏操作子４Ａは楽音の音高を選択するための複数の鍵を備えた、例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子４Ａ（鍵盤等）は楽音演奏のために使用できるのは勿論のこと、自動作曲を行う際に用いるメロディのピッチやリズムなどを入力するための入力手段として使用することもできる。検出回路４は、演奏操作子４Ａの各鍵の押圧及び離鍵を検出することによって検出出力を生じる。
【００１１】
パネル操作子（スイッチ等）５Ａは、楽曲を自動作曲する際における各種作曲条件等を入力するための各種のスイッチ等を含んで構成される。勿論、音高、音色、効果等を選択・設定・制御するために用いる数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはディスプレイ６Ａ上に表示される所定のポインティングデバイスを操作するために用いるマウスなどの各種操作子を含んでいてよい。スイッチ検出回路５は、パネル操作子５Ａの各スイッチの操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス１Ｄを介してＣＰＵ１に出力する。表示回路６はユーザにより入力される各種作曲条件やユーザに対して提示される作曲用データ等の各種情報を、例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されるディスプレイ６Ａに表示するのは勿論のこと、自動演奏に関する各種情報あるいはＣＰＵ１の制御状態などをディスプレイ６Ａに表示する。
【００１２】
音源回路７は、複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられた楽音データ（例えば、自動作曲を行うことにより生成される演奏データなど）を入力し、この楽音データに基づいて楽音信号を発生する。音源回路７から発生された楽音信号は、効果回路８を介して効果付与されてアンプやスピーカなどを含むサウンドシステム８Ａから発音される。楽音データの形式はＭＩＤＩ形式のようなディジタル符号化されたものであってもよいし、ＰＣＭ、ＤＰＣＭ、ＡＤＰＣＭのような波形サンプルデータ方式からなるものであってもよい。この音源回路７と効果回路８とサウンドシステム８Ａの構成には、従来のいかなる構成を用いてもよい。例えば、音源回路７はＦＭ、ＰＣＭ、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、また専用のハードウェアで構成してもよいし、ＣＰＵ１によるソフトウェア処理で構成してもよい。
【００１３】
外部記憶装置９は、自動作曲を行った結果生成された曲に関する演奏データや、ＣＰＵ１が実行する各種制御プログラム等の制御に関するデータなどを記憶するものである。前記ＲＯＭ２に制御プログラムが記憶されていない場合に、この外部記憶装置９（例えばハードディスク）に制御プログラムを記憶させておき、それをＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置９はハードディスク（ＨＤ）に限られず、フレキシブルディスク（ＦＤ）、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＡＭ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Digital Versatile Diskの略）等の着脱自在な様々な形態の外部記憶媒体を利用する記憶装置であればどのようなものであってもよい。半導体メモリなどであってもよい。
【００１４】
ＭＩＤＩインタフェース（Ｉ／Ｆ）１０は、他のＭＩＤＩ機器１０Ａ等からＭＩＤＩ規格の楽音情報（つまり、ＭＩＤＩデータ）を当該電子楽器へ入力したり、あるいは当該電子楽器からＭＩＤＩ規格の楽音情報（ＭＩＤＩデータ）を他のＭＩＤＩ機器１０Ａ等へ出力するためのインタフェースである。他のＭＩＤＩ機器１０Ａはユーザによる操作に応じてＭＩＤＩデータを発生する機器であればよく、鍵盤型、弦楽器型、管楽器型、打楽器型、身体装着型等どのようなタイプの操作子を具えた（若しくは、操作形態からなる）機器であってもよい。
【００１５】
なお、ＭＩＤＩインタフェース１０は専用のＭＩＤＩインタフェースを用いるものに限らず、ＲＳ−２３２Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインタフェースを用いてＭＩＤＩインタフェース１０を構成するようにしてもよい。この場合、ＭＩＤＩイベントデータ以外のデータをも同時に送受信するようにしてもよい。ＭＩＤＩインタフェース１０として上記したような汎用のインタフェースを用いる場合には、他のＭＩＤＩ機器１０ＡはＭＩＤＩイベントデータ以外のデータも送受信できるようにしてよい。勿論、楽音情報に関するデータフォーマットはＭＩＤＩ形式のデータに限らず、他の形式であってもよく、その場合はＭＩＤＩインタフェース１０と他のＭＩＤＩ機器１０Ａはそれにあった構成とする。
【００１６】
通信インタフェース（Ｉ／Ｆ）１１は、例えばＬＡＮやインターネット、電話回線等の有線あるいは無線の通信ネットワークＸに接続されており、該通信ネットワークＸを介して、サーバコンピュータ１１Ａと接続され、当該サーバコンピュータ１１Ａから制御プログラムや各種データを電子楽器側に取り込むためのインタフェースである。すなわち、ＲＯＭ２や外部記憶装置９（例えば、ハードディスク）等に制御プログラムや各種データが記憶されていない場合に、サーバコンピュータ１１Ａから制御プログラムや各種データをダウンロードするために用いられる。クライアントとなる電子楽器は、通信インターフェース１１及び通信ネットワークＸを介してサーバコンピュータ１１Ａへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータ１１Ａは、このコマンドを受け、要求された制御プログラムや各種データを、通信ネットワークＸを介して本電子楽器へと配信し、本電子楽器が通信インタフェース１１を介して、これら制御プログラムや各種データを受信して外部記憶装置９（例えば、ハードディスク）等に蓄積することにより、ダウンロードが完了する。なお、通信インタフェース１１及び通信ネットワークＸは、有線のものに限らず無線のものであってもよい。また、双方を具えていてもよい。
【００１７】
なお、上述した電子楽器において、演奏操作子４Ａは鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。該演奏操作子４Ａは、なくてもよい。また、電子楽器は演奏操作子４Ａやディスプレイ６Ａあるいは音源回路７などを１つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、ＭＩＤＩインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことはいうまでもない。さらに、本発明に係る自動作曲装置を適用する装置は電子楽器の形態に限らず、パーソナルコンピュータや携帯通信端末、カラオケや自動演奏ピアノのような自動演奏装置あるいはゲーム機器や映像編集装置など、どのような形態の装置・機器に適用してもよい。
【００１８】
ここで、本発明に係る自動作曲装置で用いる曲テンプレート及び作曲用データのデータ構成について各々説明する。まず、曲テンプレートのデータ構成について、図２を用いて説明する。図２は曲テンプレートのデータ構成の一実施例を示す該念図であり、図２（ａ）は曲テンプレートの全体構成を示す概念図、図２（ｂ）は個々の曲テンプレートにおいての詳細なデータ内容を示す概念図である。
【００１９】
曲テンプレートは、メロディ及び伴奏を含む曲全体の音楽的な特徴を定義する各種パラメータを備えた曲特徴データである。すなわち、曲テンプレートは自動作曲する曲を特徴づける各種パラメータの組み合わせを予めセットしたデータであり、ＲＯＭ２やＲＡＭ３若しくは外部記憶装置９等にデータベースなどとして記憶される。図２（ａ）に示すように、個々の曲テンプレートは、例えば「さっぱりバラード」群や「哀愁演歌」群などの曲ジャンル群毎に記憶されており、さらに各曲ジャンル群の中においては個々の曲テンプレートから生成される曲からユーザに対して与えられる、例えば「ストレートバラード」「ひだまりの中で」「忘れない時間」「たそがれ」などの曲イメージ（曲想）毎のテンプレート群毎に分類記憶されている。個々の曲テンプレートには、各曲テンプレート毎に所定のテンプレート名称が付される。例えば、図２（ａ）に示すように、「ストレートバラード」系の曲のメロディを４小節分生成することのできる曲テンプレートに対しては「ストレートバラード（４）」のように、「ストレートバラード」系の曲のメロディを８小節分生成することのできる曲テンプレートに対しては「ストレートバラード（８）」のように、各々の曲テンプレートで生成することのできる曲のメロディの小節数に対応したテンプレート名称が付される。ユーザは該テンプレート名称を指定することによって、曲生成に使用する所望の曲テンプレートを適宜に選択することができる。また、一般的に、作曲をする場合には４小節単位で曲を生成すると曲のまとまりがよいことから、曲生成の区切りとするには最適である。したがって、この実施例においては、個々の曲テンプレートは４小節、８小節、１２小節、１６小節などの４の倍数毎の小節数毎に予め記憶される。すなわち、曲イメージ毎のテンプレート群には、生成する曲の小節数が４の倍数毎に異なる複数の曲テンプレートが各々記憶されている。
【００２０】
また、図２（ｂ）に示すように、曲ジャンル群、曲イメージ（曲想）毎のテンプレート群に分類記憶される個々の曲テンプレートは、上述したようなテンプレート名称のほかに、拍子、標準テンポ、テンポずれ許容範囲、ピッチパラメータ、リズムパラメータ、伴奏パラメータなどをその内容として具える。拍子は生成する曲の拍子を定義するデータであり、例えば「２」拍子、「３」拍子、「４」拍子などのように定義される。標準テンポは曲を生成する際に用いるべき標準とするテンポを定義するデータであり、例えば、「９０」、「１１０」、「１２０」などのように定義される。テンポずれ許容範囲は生成した曲のテンポを変更する場合に許容できる標準テンポとの差を定義するデータであり、例えば「上限値１２０」及び「下限値９０」などのように上下限値により定義される。このテンポずれ許容範囲は、前記標準テンポに基づき生成した曲の時間長がユーザの指定した時間長と一致しない場合に行われるテンポ補正時の際に用いられて、標準テンポから変更して用いるのに適したテンポ範囲を決定する（詳しくは後述する）。ピッチパラメータは、生成する曲のピッチダイナミクス等の音高変化特徴を定義するデータである。リズムパラメータは、シンコペーション有無や音符数の多い・少ない等のリズム特徴を定義するデータである。伴奏パラメータは、伴奏スタイルデータなどの伴奏全般を生成するためのデータ、イントロ小節数やエンディング小節数等のイントロやエンディングの小節数を定義するデータである。伴奏スタイルデータは楽曲スタイル毎（例えば、都会的な、土くさい、トロピカルな、ダンサブルな等）の伴奏を生成する伴奏生成用データであり、１乃至複数のパート（リズム、ベース、バッキング等）の自動伴奏パターンデータからなる。各自動伴奏パターンデータは複数のセクション（イントロ、メイン、エンディング等）から構成され、各セクションの長さは１〜６小節程度の長さからなる。
なお、伴奏スタイルデータは伴奏パラメータとして曲テンプレート内に記憶することなく、曲テンプレートとは別に記憶するようにしてもよいことは言うまでもない。
【００２１】
次に、作曲用データのデータ構成について、図３を用いて説明する。図３は、作曲用データのデータ構成の一実施例を示す該念図である。
作曲用データ（あるいは小節数対応生成用データとも呼ぶ）は、生成する曲のメロディ構成を定義する曲構成データである。図３に示すように、個々の作曲用データは、生成することのできる曲の小節数に応じて、該小節数に対応したデータ群（例えば、４小節生成用データ群、８小節生成用データ群など）毎に各々記憶される。各データ群に記憶される個々の作曲用データ（例えば、４小節生成用データ群における４小節生成用データ１や４小節生成用データ２など）は、ブロック構成や楽節構成、コード進行などをその内容として具える。ブロック構成や楽節構成は、生成する曲の所定区間毎の曲構成を定義するデータである。例えば、メロディを２個のブロック区間で構成する場合にはブロック構成を「ブロック１とブロック２」のように定義するし、メロディを４個の楽節で構成する場合には「Ａ」「Ｂ」「Ａ´」といった所定の楽節記号を用いて「Ａ−Ｂ−Ａ−Ａ´」などのようにして楽節構成を定義する。コード進行は、メロディにおけるコード進行を定義するデータである。
【００２２】
次に、図１に示した電子楽器で行われる自動作曲処理について、図４を用いて説明する。図４は、上述した電子楽器のＣＰＵ１で実行する「自動作曲処理」の一実施例を示すフローチャートである。以下、図４に示したフローチャートに従って、当該処理の動作を説明する。ただし、以下の説明では、同一名称・異小節数の曲テンプレート（すなわち、同一のテンプレート群に含まれる全ての曲テンプレート）の拍子、標準テンポ、イントロ小節数、エンディング小節数は各曲テンプレートで共通であるものとする。
【００２３】
ステップＳ１では、曲ジャンルを指定する。ステップＳ２では、指定された曲ジャンルに応じた曲ジャンル群を選択する。すなわち、ユーザがパネル操作子５Ａ等を用いて所望の曲ジャンルを選択すると、ＲＯＭ２やＲＡＭ３あるいは外部記憶装置９などに予め記憶されている曲ジャンル群の中から、ユーザ指定の曲ジャンルに対応した曲ジャンル群が選択される。ステップＳ３では、生成時間（Ａ）を指定する。すなわち、ユーザがパネル操作子５Ａ等を用いて生成したい曲の時間長を指定する。ステップＳ４では、曲テンプレートとイントロ、エンディングの組み合わせ候補を抽出する「候補抽出処理」を実行する。この「候補抽出処理」では、指定した時間長の曲を生成するのに適した曲生成候補としての曲テンプレートを、イントロ、エンディング等のセクション有無に従った複数の組み合わせ毎に１乃至複数抽出する。
【００２４】
ここで、上述した「自動作曲処理」のステップＳ４で起動する「候補抽出処理」について、候補対象としての曲テンプレートを抽出する処理方式ごとにいくつか説明する。上述したように「候補抽出処理」は、イントロ、エンディング等のセクション有無に従った複数の組み合わせ毎に曲生成候補としての曲テンプレートを１乃至複数抽出する処理であるが、その抽出対象とする曲テンプレートの決定方法によって処理方式が変わる。そこで、この実施の形態においては、以下に示すような３つの「候補抽出処理」の処理方式について、各々フローチャートを用いて説明する。
【００２５】
第１の処理方式は、指定された曲ジャンル群に含まれる各テンプレート群毎に、最も必要小節数に近い小節数の曲を生成することのできる曲テンプレートを選択してから、該選択された曲テンプレートについてイントロ、エンディング有無の全組み合わせに応じてテンポ補正率を計算し、最もテンポ補正率が１に近い１乃至複数の曲テンプレートのみを抽出する処理方式である。第２の処理方式は、指定された曲ジャンル群に含まれる全ての曲テンプレートについてイントロ、エンディング有無の全組み合わせに応じてテンポ補正率を計算し、最もテンポ補正率が１に近い１乃至複数の曲テンプレートのみを抽出する処理方式である。第３の処理方式は、テンポ補正率を比較して単にテンポ補正率が１に近い曲テンプレートを抽出するのではなく、イントロやエンディングが有る方が音楽的に自然な曲であることから、イントロとエンディング両方有りの組み合わせのものを優先的に抽出するなど、所定の優先順位に従って１乃至複数の曲テンプレートを抽出する処理方式である。
【００２６】
まず、上述した第１の処理方式に従う候補抽出処理について、図５を用いて説明する。図５は、第１の処理方式に従う「候補抽出処理」の一実施例を示したフローチャートである。
ステップＳ２１では、選択された曲ジャンル群の中から最初のテンプレート群を選択する。ステップＳ２２では、拍子（Ｂ）、標準テンポ（ＳＴ）、生成時間（Ａ）に基づく（式１−１）に従って必要な全小節数（Ｎ）を算出する。
Ｎ＝Ａ÷［（６０÷ＳＴ）×Ｂ］・・・（式１−１）
すなわち、まず最初に、ユーザにより選択された曲ジャンル群（図４のステップＳ２参照）に含まれる複数のテンプレート群のうち、先頭のテンプレート群を選択する。例えば、図２に示した曲テンプレートにおいては、「さっぱりバラード」群に含まれる「ストレートバラード」テンプレート群が先頭のテンプレート群として選択されることになる。そして、該選択された先頭のテンプレート群における曲テンプレートに定義されている、該テンプレート群に含まれる個々の曲テンプレートに共通である拍子と標準テンポと、ユーザが指定した生成時間（図４のステップＳ３参照）とに基づいて、該生成時間に等しい（あるいは近い）時間長の曲を構成するのに必要な曲全体の小節数（以下、これを全小節数と呼ぶ）を算出する。ただし、この全小節数算出の際に、（式１−１）に従って算出された全小節数（Ｎ）が整数値でない場合には、小数点以下を四捨五入する若しくは小数点以下を切り捨て・切り上げするなどの所定手順に従って整数値に補正する。これにより、ユーザが指定した生成時間に等しい時間長の曲を構成するのに必要とされる小節数が決定される。
【００２７】
ステップＳ２３では、イントロ有無とエンディング有無との組み合わせのうち、最初の組み合わせを選択する。すなわち、「イントロあり・エンディングあり」、「イントロあり・エンディングなし」、「イントロなし・エンディングあり」、「イントロなし・エンディングなし」の４つの組み合わせの中から、１つの組み合わせを最初の組み合わせとして選択する。ステップＳ２４では、選択した組み合わせのイントロ・エンディング合計小節数（Ｋ）を求める。このイントロ・エンディング合計小節数（Ｋ）は、該選択された先頭のテンプレート群における曲テンプレートに定義されている、該テンプレート群に含まれる個々の曲テンプレートに共通であるイントロ小節数とエンディング小節数との和により算出される。ステップＳ２５では、メロディ区間の小節数（Ｍ）を（式１−２）に従って算出する。
Ｍ＝Ｎ−Ｋ・・・（式１−２）
すなわち、曲の全区間からイントロ区間とエンディング区間を除いたものがメロディ区間であることから、メロディ区間の小節数（Ｍ）は全小節数（Ｎ）からイントロ・エンディング合計小節数（Ｋ）を減算すると求められる。
【００２８】
ステップＳ２６では、算出したメロディ区間の小節数（Ｍ）に最も近い４小節単位の小節数（Ｍ´）を求める。上述したように、個々の曲テンプレートは４小節、８小節、１２小節、１６小節などの４の倍数毎の小節数毎に予め記憶されていることから、こうした曲テンプレートを選択するために４小節単位の小節数（Ｍ´）を予め求めておく。ステップＳ２７では、生成すべき全小節数（Ｖ）を（式１−３）に従って算出する。
Ｖ＝Ｍ´＋Ｋ・・・（式１−３）
ステップＳ２８では、指定した生成時間になるような補正テンポ（Ｔ）を（式１−４）に従って求める。
Ｔ＝６０×Ｂ×（Ｖ÷Ａ）・・・（式１−４）
ステップＳ２９では、補正テンポ（Ｔ）と標準テンポ（ＳＴ）の比（Ｒ）を（式１−５）に従って算出する。
Ｒ＝Ｔ÷ＳＴ・・・（式１−５）
ステップＳ３０では、算出したメロディ区間の小節数に最も近い４小節単位の小節数（Ｍ´）に従い、該小節数（Ｍ´）に対応する曲テンプレートを選択されたテンプレート群から選択し、所定の記憶領域に該曲テンプレートのテンプレート名称、イントロ・エンディング組み合わせ、生成時間（Ａ）、必要な全小節数（Ｎ）、メロディ区間の小節数（Ｍ）、メロディ区間の小節数に最も近い４小節単位の小節数（Ｍ´）、生成すべき全小節数（Ｖ）、標準テンポ（ＳＴ）、補正テンポ（Ｔ）、補正テンポと標準テンポの比（Ｒ）を記憶する。
【００２９】
ステップＳ３１では、選択した曲テンプレートに関して上記ステップＳ２４〜ステップＳ３０までの各処理をイントロ有無やエンディング有無の全ての組み合わせについて実行したか否かを判定する。全ての組み合わせについて上記各処理を行っていない場合には（ステップＳ３１のＮＯ）、次の組み合わせを選択して（ステップＳ３４）ステップＳ２４の処理へ戻る。全ての組み合わせについて上記各処理を行っている場合には（ステップＳ３１のＹＥＳ）、曲ジャンル群内の全てのテンプレート群について上記ステップＳ２２〜ステップＳ３１までの各処理を実行したか否かを判定する（ステップＳ３２）。曲ジャンル群内の全てのテンプレート群について上記各処理を行っていない場合には（ステップＳ３２のＮＯ）、該曲ジャンル群内に含まれる次のテンプレート群を選択し（ステップＳ３５）、ステップＳ２２の処理へ戻る。曲ジャンル群内の全てのテンプレート群について上記各処理を行っている場合には（ステップＳ３２のＹＥＳ）、所定記憶領域に記憶されたデータの中で、最も補正テンポと標準テンポの比（Ｒ）が１に近い組み合わせをテンプレート群毎に１乃至複数抽出する（ステップＳ３３）。すなわち、この第１の処理方式では、各テンプレート群毎にイントロ有無やエンディング有無の組み合わせに応じた４つの所定の小節数の曲テンプレートに関してのデータが所定の記憶領域に記憶される。そして、この各テンプレート群毎に記憶された４つのデータの中から、最も補正テンポと標準テンポの比（Ｒ）が１に近いデータを抽出することで、各テンプレート群毎に少なくとも１つずつ曲テンプレートを抽出するようにしている。
【００３０】
次に、上述した第２の処理方式に従う候補抽出処理について、図６を用いて説明する。図６は、第２の処理方式に従う「候補抽出処理」の一実施例を示したフローチャートである。
ステップＳ４１では、曲ジャンル群の中から最初のテンプレート群を選択する。ステップＳ４２では、該テンプレート群における４小節単位の小節数（Ｓ）の曲テンプレートのうち最初の曲テンプレートを選択する。例えば、図２に示した曲テンプレートにおいては、最初のテンプレート群として「ストレートバラード」群が選択され、最初の曲テンプレートとして「ストレートバラード（４）」が選択されることになる。ステップＳ４３では、イントロ有無とエンディング有無との組み合わせのうち、最初の組み合わせを選択する。ステップＳ４４では、選択した組み合わせのイントロ・エンディング合計小節数（Ｋ）を求める。ステップＳ４５では、ユーザが指定した生成時間（図４のステップＳ３参照）に等しい（あるいは近い）時間長の曲を構成するのに必要な全小節数（Ｖ）を（式２−１）に従って算出する。
Ｖ＝Ｓ＋Ｋ・・・（式２−１）
ステップＳ４６では、指定した生成時間になるような補正テンポ（Ｔ）を上述の（式１−４）に従って求める。ステップＳ４７では、補正テンポ（Ｔ）と標準テンポ（ＳＴ）の比（Ｒ）を上述の（式１−５）に従って算出する。ステップＳ４８では、所定記憶領域にテンプレート名称、イントロ・エンディング組み合わせ、生成時間（Ａ）、４小節単位の小節数（Ｓ）、生成すべき全小節数（Ｖ）、標準テンポ（ＳＴ）、補正テンポ（Ｔ）、補正テンポと標準テンポの比（Ｒ）を記憶する。
【００３１】
ステップＳ４９では、選択された曲テンプレートに関して上記ステップＳ４４〜ステップＳ４８までの各処理をイントロ有無やエンディング有無の全ての組み合わせについて実行したか否かを判定する。全ての組み合わせで上記各処理を行っていない場合には（ステップＳ４９のＮＯ）、次の組み合わせを選択して（ステップＳ５３）ステップＳ４４の処理へ戻る。全ての組み合わせで上記各処理を行っている場合には（ステップＳ４９のＹＥＳ）、選択されたテンプレート群に含まれる４小節単位の小節数の曲テンプレート全てについて上記ステップＳ４３〜ステップＳ４９までの各処理を実行したか否かを判定する（ステップＳ５０）。４小節単位の小節数の曲テンプレート全てについて上記各処理を行っていない場合には（ステップＳ５０のＮＯ）、次の４小節単位の小節数の曲テンプレートを選択して（ステップＳ５４）、ステップＳ４３の処理へ戻る。例えば、「ストレートバラード（４）」について上記各処理が終了した場合には、次に「ストレートバラード（８）」を選択して上記各処理を実行する。４小節単位の小節数の曲テンプレート全てについて上記各処理を行っている場合には（ステップＳ５０のＹＥＳ）、曲ジャンル群内の全てのテンプレート群について上記ステップＳ４２〜ステップＳ５０までの各処理を実行したか否かを判定する（ステップＳ５１）。曲ジャンル群内の全てのテンプレート群について上記各処理を行っていない場合には（ステップＳ５１のＮＯ）、次のテンプレート群を選択して（ステップＳ５５）ステップＳ４２の処理へ戻る。曲ジャンル群内の全てのテンプレート群について上記各処理を行っている場合には（ステップＳ５１のＹＥＳ）、所定記憶領域に記憶されたデータの中で、最も補正テンポと標準テンポの比（Ｒ）が１に近い組み合わせを１乃至複数抽出する（ステップＳ５２）。すなわち、この第２の処理方式においては、全てのテンプレート群において最も補正テンポと標準テンポの比（Ｒ）が１に近い組み合わせを１乃至複数抽出するようにしている。したがって、上述した第１の処理方式とは異なり、各テンプレート群毎に少なくとも１つの曲テンプレートを抽出するものではない。
【００３２】
次に、上述した第３の処理方式に従う候補抽出処理について、図７を用いて説明する。図７は、第３の処理方式に従う「候補抽出処理」の一実施例を示したフローチャートである。
【００３３】
ステップＳ６１では、曲ジャンル群の中から最初のテンプレート群を選択する。ステップＳ６２では、該テンプレート群における４小節単位の小節数（Ｓ）の曲テンプレートのうち最初の曲テンプレートを選択する。ステップＳ６３では、イントロ有無とエンディング有無との組み合わせのうち、最優先度の組み合わせを選択する。すなわち、イントロ有無とエンディング有無との組み合わせには予め所定の優先順位が決められており、該優先順位に従って最も優先順位の高い（あるいは低い）組み合わせのものを選択する。例えば、イントロやエンディングが有る方が音楽的に自然な曲であることから、イントロとエンディング両方有りの組み合わせのものが優先順位が最も高いものとなる。ステップＳ６４では、選択した組み合わせのイントロ・エンディング合計小節数（Ｋ）を求める。ステップＳ６５では、ユーザが指定した生成時間（図２のステップＳ３参照）に等しい（あるいは近い）時間長の曲を構成するのに必要な全小節数（Ｖ）を上述の（式２−１）に従って算出する。ステップＳ６６では、指定した生成時間になるような補正テンポ（Ｔ）を上述の（式１−４）に従って求める。ステップＳ６７では、補正テンポ（Ｔ）と標準テンポ（ＳＴ）の比（Ｒ）を上述の（式１−５）に従って算出する。ステップＳ６８では、所定記憶領域にテンプレート名称、イントロ・エンディング組み合わせ、生成時間（Ａ）、４小節単位の小節数（Ｓ）、生成すべき全小節数（Ｖ）、標準テンポ（ＳＴ）、補正テンポ（Ｔ）、補正テンポ（Ｔ）と標準テンポ（ＳＴ）の比（Ｒ）を記憶する。ステップＳ６９では、補正テンポ（Ｔ）がずれ許容範囲内であるか否かを判定する。許容範囲内である場合には（ステップＳ６９のＹＥＳ）、該記憶データを候補に設定して（ステップＳ７０）、ステップＳ７３の処理へジャンプする。許容範囲内でない場合には（ステップＳ６９のＮＯ）、ステップＳ７１の処理へ進む。
【００３４】
ステップＳ７１では、上記ステップＳ６４〜ステップＳ６９までの各処理をイントロ有無とエンディング有無との全ての組み合わせについて実行したか否かを判定する。全組み合わせで上記各処理を行っていない場合には（ステップＳ７１のＮＯ）、次の優先度の高い（あるいは低い）組み合わせを選択して（ステップＳ７５）ステップＳ６４の処理へ戻る。全組み合わせで上記各処理を行っていた場合には（ステップＳ７１のＹＥＳ）、全小節数について上記ステップＳ６３〜ステップＳ７１までの各処理を実行したか否かを判定する（ステップＳ７２）。全小節数について上記各処理を行っていない場合には（ステップＳ７２のＮＯ）、次の小節数を選択してから（ステップＳ７６）ステップＳ６３の処理へ戻る。全小節数について上記各処理を行っていた場合には（ステップＳ７２のＹＥＳ）、曲ジャンル群内の全曲テンプレート群について上記ステップＳ６２〜ステップＳ７２までの各処理を実行したか否かを判定する（ステップＳ７３）。曲ジャンル群内の全曲テンプレート群について上記各処理を行っていない場合には（ステップＳ７３のＮＯ）、次の曲テンプレート群を選択して（ステップＳ７７）ステップＳ６２の処理へ戻る。曲ジャンル群内の全曲テンプレート群について上記各処理を行っていた場合には（ステップＳ７３のＹＥＳ）、所定記憶領域に記憶されたデータの中で、最も比（Ｒ）が１に近い組み合わせを１乃至複数抽出する（ステップＳ７４）。ただし、このステップＳ７４の処理は、上記ステップＳ７０において候補として設定されたデータがない場合にのみ実行する。すなわち、この第３の処理方式では、イントロ有無とエンディング有無との組み合わせに優先順位をつけ、優先順位の高いものを多少テンポ補正が大きいものであっても、優先的に抽出する。
【００３５】
図４に示す「自動作曲処理」のステップＳ５に戻って、前記「候補抽出処理」（ステップＳ４）が終了すると、該「候補抽出処理」により抽出された曲テンプレートに関するデータをディスプレイ６Ａに表示することでユーザに対するデータ提示を行う。また、抽出された曲テンプレート毎にテンポずれを評価し、該評価結果をディスプレイ６Ａに表示する（ステップＳ６）。すなわち、ユーザが指定した生成時間と曲テンプレートに基づき生成された曲の時間長との時間ずれを補正するために、生成された曲のテンポをどの程度ずらして補正しなければならないかといった評価結果を曲テンプレート毎に表示する。すなわち、補正した結果のテンポ（つまり補正テンポ）が元の標準テンポと異なっているような場合、ユーザにとって該補正テンポに従って生成される曲が音楽として自然に聞けるかどうかの判断は曲生成が終了してからでないと判断することができない。しかし、それでは不都合であることから、本発明に係る自動作曲装置においては、曲としてどの程度聞ける範囲であるかどうかの評価を補正テンポと標準テンポとのずれを評価することにより行い、そして、該評価結果をディスプレイ６Ａ上に表示することによって、ユーザが曲テンプレートの選択可否判断を容易に行うことができるようにした。
【００３６】
ここで、ディスプレイ６Ａに表示する表示内容の一実施例を示すと図８のようになる。図８は、ディスプレイ６Ａに表示されるデータ抽出結果の一実施例を示す概念図である。すなわち、上述の「候補抽出処理」で抽出されたデータと、該データに対しての評価結果を表示した際の表示内容を示したものである（図４のステップＳ５及びステップＳ６参照）。ただし、この実施例では、上述した第１の処理方式の「候補抽出処理」（図５参照）に従って抽出された曲テンプレートに関してのデータをディスプレイ６Ａに表示した例について説明する。また、説明を理解しやすくするために、この実施例では、例えば、ユーザ指定の生成時間（Ａ）が６４秒であり、ユーザ選択の曲ジャンルが「さっぱりバラード」群である場合について説明する。さらに、「ストレートバラード」テンプレート群の標準テンポ（ＳＴ）を１１０、「ひだまりの中で」テンプレート群の標準テンポ（ＳＴ）を９０、「忘れない時間」テンプレート群の標準テンポ（ＳＴ）を１０５、「たそがれ」テンプレート群の標準テンポ（ＳＴ）を１２０であるものとし、これらの各テンプレート群の拍子を４拍子、イントロ小節数を２小節、エンディング小節数を２小節として全て共通であるものとする。
【００３７】
図８から理解できるように、ディスプレイ６Ａ上には、指定時間、必要全小節数、曲想、評価、標準テンポ、補正テンポ、補正率、曲テンプレート、イントロ、エンディング、生成全小節数を表示するための表示項目が各々用意されており、それぞれの表示項目には対応するデータが表示される。「評価」以外の表示項目には、上述した「候補抽出処理」において所定の記憶領域に記憶された内容に対応するものを表示する。「指定時間」には、ユーザ指定の生成時間（Ａ）を表示する。「必要全小節数」には、ユーザ指定の生成時間に必要な全小節数（Ｎ）を表示する。この全小節数（Ｎ）は上述した（式１−１）から求められ、この実施例ではＮ＝６４÷［（６０÷１１０）×４］＝２９．３となり、これを四捨五入した２９小節が表示されている。「曲想」には、曲ジャンル群内に含まれる曲想毎のテンプレート群の曲想を表示する。「評価」には、テンポずれ評価の評価結果を「◎」「○」「△」「×」などの所定の表示態様を用いて表示する。このテンポずれ評価と評価結果表示については、後述する。「標準テンポ」には、各テンプレート群毎に予め定義されている標準テンポ（ＳＴ）を表示する。「補正テンポ」には、上述の（式１−４）から求められる補正テンポ（Ｔ）を表示する。「補正率」には、上述の（式１−５）から求められる補正テンポと標準テンポの比（Ｒ）を表示する。「曲テンプレート」には、各テンプレート群毎に候補として選択された曲テンプレートにおける小節数を表示する。「イントロ」及び「エンディング」には、イントロ有無とエンディング有無との組み合わせを表示する。例えば、「イントロあり（なし）・エンディングあり（なし）」の組み合わせの場合には、「イントロ」に「有（無）」、「エンディング」に「有（無）」を表示する。「生成全小節数」は、生成される曲全体を構成する小節数を表示する。
【００３８】
ここで候補として表示される曲テンプレートの抽出について、具体的に説明する。例えば、図８に示す「ストレートバラード」群において、「イントロあり・エンディングあり」の組み合わせの場合におけるイントロ・エンディング合計小節数（Ｋ）は４小節（つまり、イントロ２小節＋エンディング２小節）である。この場合におけるメロディ区間の小節数（Ｍ）は上述の（式１−２）から、Ｍ＝２９−４＝２５小節となる。この算出したメロディ区間の小節数（Ｍ）に最も近い４小節単位の小節数は、２４小節である。この算出したメロディ区間の小節数（Ｍ）に最も近い４小節単位の小節数を求める場合に、最も近い４小節単位の小節数を１つだけ求めることに限らず、最も近い４小節単位の小節数を小節数の多い方と少ない方とで２つ求めるようにしてもよい。例えば上記の場合、２４小節と２８小節の２つの小節数を求めてもよい。こうすると、より多くの曲テンプレートを候補として抽出することができるようになることから有利である。勿論、こうした場合、以下の計算をそれぞれの小節数毎に行うことは言うまでもない。以下では、説明を理解しやすくするために、算出したメロディ区間の小節数（Ｍ）に最も近い４小節単位の小節数が２４小節である場合についてのみさらに説明を進めることにする。
【００３９】
算出したメロディ区間の小節数（Ｍ）に最も近い４小節単位の小節数が２４小節であるとすると、生成すべき全小節数（Ｖ）は上述の（式１−３）から、Ｖ＝２４＋４＝２８小節となる。これらに基づいて指定された生成時間（Ａ）になるような補正テンポ（Ｔ）を上述の（式１−４）から求めると、Ｔ＝６０×４×（２８÷６４）＝１０５となる。さらに、補正テンポと標準テンポの比（Ｒ）を上述の（式１−５）から求めると、Ｒ＝１０５÷１１０＝０．９５となる。同様にして「イントロあり・エンディングなし」及び「イントロなし・エンディングあり」の組み合わせの場合について求めると、メロディ区間の小節数（Ｍ）は２７小節、メロディ区間の小節数（Ｍ）に最も近い４小節単位の小節数は２８小節、生成すべき全小節数（Ｖ）は３０小節、補正テンポ（Ｔ）は１１３、補正テンポと標準テンポの比（Ｒ）は０．９８となる。また、「イントロなし・エンディングなし」の組み合わせの場合について求めると、メロディ区間の小節数（Ｍ）は２９小節、メロディ区間の小節数（Ｍ）に最も近い４小節単位の小節数は２８小節、生成すべき全小節数（Ｖ）は２８小節、補正テンポ（Ｔ）は１０５、補正テンポと標準テンポの比（Ｒ）は０．９５となる。
【００４０】
上述した組み合わせの中で最も補正テンポと標準テンポの比（Ｒ）が１に近いケースは、「イントロあり・エンディングなし」及び「イントロなし・エンディングあり」の組み合わせの場合である。このように同一の補正率のケースが複数存在しているような場合には、エンディングのある方など所定の優先度に従って、候補とするデータを決定する。すなわち、同一のテンポ補正率のデータが複数存在しているような場合には、エンディングのある方などの所定の優先度に従って若しくはランダムに抽出するデータの決定を行うようにしてよい。この実施例においては、「イントロなし・エンディングあり」の組み合わせでの２８小節の曲テンプレートを「ストレートテンプレート」群における候補として表示する。他のテンプレート群についても同様に処理して、各テンプレート群毎における候補を抽出することによって、例えば図示のような表示がなされる。
【００４１】
次に、テンポずれ評価と評価結果表示について説明すると、テンポずれ評価は、曲テンプレート毎に標準テンポからずれてもよい許容範囲を予め曲テンプレートに登録しておき、この値からのすれの程度によってテンプレートの評価をするものである。例えば、標準テンポが１００であり、テンポ許容範囲が下限値として９０、上限値として１１０である場合には、中心値（つまり標準テンポ）に対する比率はそれぞれ１．１と０．９となり、この比率をもって評価を行う。例えば、中心値から許容範囲の１／２までの範囲を評価「◎（優）」として評価付けし、許容範囲の１／２を超え許容範囲までを評価「○（良）」として評価付けし、許容範囲を超え許容範囲の１．５倍までを評価「△（可）」として評価付けし、許容範囲の１．５倍を超える範囲を評価「×（不可）」として評価付けする。上記した例の場合、評価「◎」の範囲は１．０５〜０．９５の範囲、評価「○」の範囲は１．０５〜１．１及び０．９５〜０．９の範囲、評価「△」の範囲は１．１〜１．１５及び０．９〜０．８５の範囲、評価「×」の範囲は１．１５以上及び０．８５以下の範囲となる。こうした範囲のいずれの範囲内に、抽出された曲テンプレート毎に算出されたテンポ補正率が当てはまるか、によって各曲テンプレートへの評価付けがなされる。こうした評価付けの結果は、曲テンプレートと共にディスプレイ６Ａ上に表示されることによって、ユーザは簡単に曲テンプレートの選択可否判断が容易にできるようになる。例えば、図８に示す「ストレートバラード」群の２８小節の曲テンプレートに対しての評価付けは、補正率が「１．０２」であることから「◎」の評価がなされる。
【００４２】
図４に戻り、ステップＳ７では曲テンプレートと小節数（Ｍ´）とを決定する。すなわち、ユーザがテンポずれ評価を考慮してディスプレイ６Ａに表示された曲テンプレートのうちいずれかの曲テンプレートを選択すると、曲を生成するために用いる曲テンプレートを該選択された曲テンプレートに決定すると共に、該曲テンプレートで生成することのできる曲の小節数を決定する。例えば、曲テンプレートとして「ストレートバラード（４）」（図２（ａ）参照）が選択された場合には、小節数は「４小節」に決定されることになる。ステップＳ８では、小節数対応生成用データのデータベースから、ステップＳ７で決定した小節数（Ｍ´）分の小節数に対応する小節数対応生成用データ（つまり作曲用データ）を抽出してディスプレイ６Ａに表示する。例えば、小節数（Ｍ´）が「４小節」に決定されたような場合には、４小節生成用データ群に含まれる「４小節生成用データ１」「４小節生成用データ２」（図３参照）などのデータが複数表示されることになる。
【００４３】
ステップＳ９では、ディスプレイ６Ａに表示された複数の小節数対応生成用データ（作曲用データ）の中から１つの小節数対応生成用データ（作曲用データ）を決定する。つまり、ユーザが選択する。ステップＳ１０では、決定された小節数対応生成用データ（作曲用データ）と曲テンプレートとに基づいてメロディを生成する。すなわち、求められたメロディ生成小節数に対応する小節数対応生成用データ（作曲用データ）のブロック構成、楽節構成、コード進行など、及び曲テンプレートに記憶されるシンコペーション有無、ピッチのダイナミクスなどに従ってメロディを生成する。ステップＳ１１では、イントロ、エンディングの組み合わせと、決定した曲テンプレートと小節数対応生成用データ（作曲用データ）とに基づいて伴奏を生成する。これらの小節数対応生成用データ（作曲用データ）と曲テンプレートに従いメロディや伴奏などの曲を自動生成する方法については公知のどのようなものを用いてもよいことから、ここでの説明を省略する。ステップＳ１２では、補正テンポによるメロディと伴奏を出力する。このメロディと伴奏の出力形態は、種々のどのような出力形態であってもよい。例えば、記憶媒体に記憶する、音源で再生する、ディスプレイ６Ａに楽譜等として表示する、他の電子楽器などの装置に送信する、などの出力形態であってよい。
【００４４】
以上のようにして、イントロ・エンディング有無の全組み合わせについてテンポ補正率、すなわち、補正テンポと標準テンポの比（Ｒ）を求め、その中で最もテンポ補正率が１に近いものを抽出して表示する。
なお、上述の図８に示した表示は一例であって、該表示項目は表示した項目のみに限られるものでないことは言うまでもない。また、抽出結果をディスプレイ６Ａに表示する際には各テンプレート群毎に抽出した曲テンプレートを１つだけ表示するのではなく、候補として複数の曲テンプレートを表示するようにしてもよい。こうすると、ユーザは他にどのような候補があるのかを知ることができ、テンポ補正率を参照して他の候補を選択することもできるようになる。さらに、表示された結果とは異なって、イントロをどうしても付加したいなどというときには、テンポ補正率を再計算してイントロなどを付加した条件で曲テンプレートを再提示することができるようにすれば、この程度のテンポ補正率変化であればイントロを付加した方がよい、などをユーザが判断して選択することができるようになり便利である。
【００４５】
なお、生成時間に影響を与える要素として、リタルダンド処理がある。この機能はある区間でテンポをだんだんに遅くする機能であり音楽的要求で採用するものであるが、時間あわせのために用いることもできる。ただし、時間あわせのためにテンポを極端に変化させてしまうと音楽的に不自然になることから、時間あわせのためよりも音楽的なリタルダンドを付加し、その結果のテンポ補正値を計算し、より１に近い値であれば採用するようにしてもよい。
なお、イントロがない場合には小節先頭からメロディが始まるが、メロディにピックアップがつき、イントロ小節より前に音符を生成するときは、その区間の長さも考慮したテンポ補正がなされる。ピックアップはメロディを生成する前にはわからないので、予め補正テンポを算出して比較することはできない。ピックアップは曲全体の長さに比べると非常に短いので、テンポ補正率の比較では考慮しないが、曲生成の指定時間には微妙に影響するので、演奏時にテンポを微補正できるようにするとよい。
【００４６】
なお、イントロ有無、エンディング有無の組み合わせ4種類(メロディは常に１つ有る状態)を曲生成候補としたが、これに限らず、Ａメロディ、Ｂメロディのようにメロディを複数区間に分けて1つのセクションとしたり、間奏も１つのセクションとしたりして、これらの有無の組み合わせを曲生成候補としてもよい。また、メロディの繰り返しの有無も組み合わせに入れてもよい。例えば、「イントロ／Ａメロディ／Ｂメロディ／間奏／第２Ａメロディ／第２Ｂメロディ／第３Ｂメロディ／エンディング」という基本構成があり、各セクションについての有無の組み合わせを曲生成候補としてもよい。また、各セクションの有無の典型的な組み合わせパターンを複数記憶しておき、それらを曲生成候補としてもよい。なお、自動作曲の方式や、曲テンプレートの内容は例示したものに限らない。なお、上述の説明では、同一名称・異小節数の曲テンプレート（すなわち、同一のテンプレート群に含まれる全ての曲テンプレート）の拍子、標準テンポ、イントロ小節数、エンディング小節数は各々の曲テンプレートで共通であるものとしたが、図６及び図７に示した実施例においては各々の曲テンプレートで共通でなくてもよい。
なお、ユーザが直接生成時間を指定するものに限らず、間接的に指定してもよい。例えば、映像にＢＧＭを付加する装置において、ユーザが映像の一部又は全体を指定すると、該映像の一部又は全体の時間長を曲生成時間として設定するようにしてもよい。生成された曲は、映像に付加されるＢＧＭとなる。
【００４７】
なお、上述した実施例においては曲テンプレートと作曲用データ（小節数対応生成用データ）を別々に持つようにしたが、共通の作曲用データとしてもよい。すなわち、各小節数の曲テンプレート中に小節数対応生成用データ（ブロック構成や楽節構成、コード進行等）を含ませてもよい。この場合、曲テンプレートを決定した時点で小節数対応生成用データも決定されるので、図４におけるステップＳ８、ステップＳ９の処理が省略されることになる。また、曲テンプレートや作曲用データを小節数を単位として持つようにしたがこれに限らず、時間等の非小節数を単位としてもよい。例えば、曲テンプレートや作曲用データとして１０秒、２０秒、３０秒等の所定時間単位のデータを持ち、イントロやエンディングを５秒、８秒等の時間単位とする。そして、イントロやエンディングの有無の組み合わせ毎に、本実施形態と同様に指定した時間に一致または近似する時間長となるような作曲用データを求めて、求めた作曲用データに基づき自動作曲するようにすればよく、近似する時間長の場合はテンポを微調整して時間長を一致させればよい。
【００４８】
なお、上述した「自動作曲処理」（図２参照）により生成されるメロディ（及び伴奏）の演奏データのフォーマットは、イベントの発生時刻を曲や小節内における絶対時間で表した『イベント＋絶対時間』形式のもの、イベントの発生時刻を１つ前のイベントからの時間で表した『イベント＋相対時間』形式のもの、音符の音高と符長あるいは休符と休符長で楽音データを表した『音高（休符）＋符長』形式のもの、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域にイベントを記憶した『ベタ方式』形式のものなど、どのような形式のものでもよい。
【００４９】
【発明の効果】
この発明によれば、曲の主要部分の小節数が算出した小節数に対応していない作曲用データであっても、イントロやエンディングなどの曲の主要部分以外を適宜の小節数分だけ付加すれば算出した小節数に対応する曲を生成することのできる作曲用データである場合には、該作曲用データをユーザに対して提示するようにしたことから、ユーザはより多くの作曲用データを用いて曲を自動作曲することができるようになる、という効果を得る。
また、作曲用データをユーザに対して提示する際にテンポに関する所定の情報を提示することによって、ユーザが予めテンポずれした曲の適正を判断して作曲用データの選択を行うことができるようになる、という効果を得る。
【図面の簡単な説明】
【図１】  この発明に係る自動作曲装置を内蔵した電子楽器の実施の形態を示すハード構成ブロック図である。
【図２】  曲テンプレートのデータ構成の一実施例を示す該念図であり、図２（ａ）は曲テンプレートの全体構成を示す概念図、図２（ｂ）は個々の曲テンプレートにおいての詳細なデータ内容を示す概念図である。
【図３】  作曲用データのデータ構成の一実施例を示す該念図である。
【図４】  上述した電子楽器のＣＰＵで実行する「自動作曲処理」の一実施例を示すフローチャートである。
【図５】  第１の処理方式に従う「候補抽出処理」の一実施例を示したフローチャートである。
【図６】  第２の処理方式に従う「候補抽出処理」の一実施例を示したフローチャートである。
【図７】  第３の処理方式に従う「候補抽出処理」の一実施例を示したフローチャートである。
【図８】  ディスプレイに表示されるデータ抽出結果の一実施例を示す概念図である。
【符号の説明】
１…ＣＰＵ、１Ａ…タイマ、２…ＲＯＭ、３…ＲＡＭ、４…検出回路、４Ａ…演奏操作子、５…スイッチ検出回路、５Ａ…パネル操作子、６…表示回路、６Ａ…ディスプレイ、７…音源回路、８…効果回路、８Ａ…サウンドシステム、９…外部記憶装置、１０…ＭＩＤＩインタフェース、１０Ａ…ＭＩＤＩ機器、１１…通信インタフェース、１１Ａ…サーバコンピュータ、Ｘ…通信ネットワーク、１Ｄ…データ及びアドレスバス
【図１】
0003775249.tif 000002
【図２】
0003775249.tif 000003
【図３】
0003775249.tif 000004
【図４】
0003775249.tif 000005
【図５】
0003775249.tif 000006
【図６】
0003775249.tif 000007
【図７】
0003775249.tif 000008
【図８】
0003775249.tif 000009