(57)【特許請求の範囲】
【請求項１】
映像の各区間の所要時間、所定の拍子情報及びテンポ情報に基づいて楽曲の小節数を算出する小節数算出手段と、
少なくとも所定の小節数単位のブロック構成、楽節構成及びコード進行のデータを備えるテンプレートを格納する格納手段と、
前記小節数算出手段により算出された小節数より多く、かつ、前記小節数算出手段により算出された小節数に最も近い小節数に対応するブロック構成、楽節構成及びコード進行のデータを前記テンプレートから取得する取得手段と、
該取得されたブロック構成、楽節構成及びコード進行のデータに基づいて楽曲を生成する楽曲生成手段と、
該生成された楽曲の前記テンポ情報に基づく時間長と前記映像の対応区間の所要時間とが一致するように前記楽曲の時間長を調整すると共に前記楽曲生成手段により生成された楽曲にリタルダンド又はフェルマータを挿入する挿入手段を備える楽曲長調整手段と、
該楽曲の時間長が調整された楽曲を前記映像の各区間に応じて出力する出力手段とを備えることを特徴とする自動作曲装置。
【請求項２】
少なくとも所定の小節数単位のブロック構成、楽節構成及びコード進行のデータを備えるテンプレートを格納するコンピュータにより実行される自動作曲プログラムであって、
映像の各区間の所要時間、所定の拍子情報及びテンポ情報に基づいて楽曲の小節数を算出する小節数算出モジュールと、
前記小節数算出モジュールにより算出された小節数より多く、かつ、前記小節数算出モジュールにより算出された小節数に最も近い小節数に対応するブロック構成、楽節構成及びコード進行のデータを前記テンプレートから取得する取得モジュールと、
該取得されたブロック構成、楽節構成及びコード進行のデータに基づいて楽曲を生成する楽曲生成モジュールと、
該生成された楽曲の前記テンポ情報に基づく時間長と前記映像の対応区間の所要時間とが一致するように前記楽曲の時間長を調整すると共に前記楽曲生成モジュールにより生成された楽曲にリタルダンド又はフェルマータを挿入する挿入モジュールを備える楽曲長調整モジュールと、
該楽曲の時間長が調整された楽曲を前記映像の各区間に応じて出力する出力モジュールとを備えることを特徴とする自動作曲プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、映像に同期して楽曲を生成する自動作曲装置及び自動作曲プログラムに関する。
【０００２】
【従来の技術】
従来、映像に同期してその雰囲気にマッチしたバックグランドミュージック（以下、「ＢＧＭ」という）を生成するＢＧＭジェネレータが知られている。このＢＧＭジェネレータは予め複数の曲の断片データ（伴奏データ、メロディ生成用データ等を含む）をデータベースに登録しておき、ＢＧＭを付けたい映像の長さ（例えば、映像の時間長又はフレーム数）と映像の雰囲気にあった音楽ジャンル（リズム）等をユーザの入力により指定されたときに、該データベースからユーザの指定に合う曲の断片データを読み出し、この読み出された曲の断片データを適宜結合して、映像の長さに合ったＢＧＭを生成していた。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のＢＧＭジェネレータで生成される曲は、曲の断片データを結合する方法なので、結合して１曲を生成した場合に、曲としてのまとまり感が乏しかった。
【０００４】
さらに、１つの伴奏データに対して複数のメロディ生成用データがデータベースに登録されているものの、同じ伴奏の元で生成できる曲数は少なかった。仮に、他の伴奏用に用意されている断片データを利用すると、同じ伴奏の元で生成できる曲数はある程度多くなるが、伴奏とメロディとの違和感が生じる場合があり、曲としての完成度が低くならざるを得なかった。
【０００５】
本発明は、かかる問題に鑑みなされたものであり、映像に同期して且つ映像の長さに合った時間で完成度の高い曲を生成することができる自動作曲装置及び自動作曲プログラムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、請求項１の自動作曲装置は、映像の各区間の所要時間、所定の拍子情報及びテンポ情報に基づいて楽曲の小節数を算出する小節数算出手段と、少なくとも所定の小節数単位のブロック構成、楽節構成及びコード進行のデータを備えるテンプレートを格納する格納手段と、前記小節数算出手段により算出された小節数より多く、かつ、前記小節数算出手段により算出された小節数に最も近い小節数に対応するブロック構成、楽節構成及びコード進行のデータを前記テンプレートから取得する取得手段と、該取得されたブロック構成、楽節構成及びコード進行のデータに基づいて楽曲を生成する楽曲生成手段と、該生成された楽曲の前記テンポ情報に基づく時間長と前記映像の対応区間の所要時間とが一致するように前記楽曲の時間長を調整すると共に前記楽曲生成手段により生成された楽曲にリタルダンド又はフェルマータを挿入する挿入手段を備える楽曲長調整手段と、該楽曲の時間長が調整された楽曲を前記映像の各区間に応じて出力する出力手段とを備えることを特徴とする。
【０００７】
請求項２の自動作曲プログラムは、少なくとも所定の小節数単位のブロック構成、楽節構成及びコード進行のデータを備えるテンプレートを格納するコンピュータにより実行される自動作曲プログラムであって、映像の各区間の所要時間、所定の拍子情報及びテンポ情報に基づいて楽曲の小節数を算出する小節数算出モジュールと、前記小節数算出モジュールにより算出された小節数より多く、かつ、前記小節数算出モジュールにより算出された小節数に最も近い小節数に対応するブロック構成、楽節構成及びコード進行のデータを前記テンプレートから取得する取得モジュールと、該取得されたブロック構成、楽節構成及びコード進行のデータに基づいて楽曲を生成する楽曲生成モジュールと、該生成された楽曲の前記テンポ情報に基づく時間長と前記映像の対応区間の所要時間とが一致するように前記楽曲の時間長を調整すると共に前記楽曲生成モジュールにより生成された楽曲にリタルダンド又はフェルマータを挿入する挿入モジュールを備える楽曲長調整モジュールと、該楽曲の時間長が調整された楽曲を前記映像の各区間に応じて出力する出力モジュールとを備えることを特徴とする。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２８】
図１は、本発明の実施の形態に係る自動作曲装置の概略構成を示すブロック図である。
【００２９】
同図に示すように、本実施の形態に係る自動作曲装置は、音高情報を入力するための鍵盤１と、各種情報を入力するための複数のスイッチを備えたパネルスイッチ２と、鍵盤１の各鍵の押鍵状態を検出する押鍵検出回路３と、パネルスイッチ２の各スイッチの押下状態を検出するスイッチ検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラム、各種テーブルデータ、後述する曲生成用データ（曲生成用テンプレートを含む）、及び後述する小節数対応生成用データベースＢ８（小節数対応生成用テンプレートを含む）等を記憶するＲＯＭ６と、各種入力情報、演算結果、時間ポインタ、及び曲生成用テンプレート等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、例えば大型液晶ディスプレイ（ＬＣＤ）若しくはＣＲＴ（Cathode Ray Tube）ディスプレイ及び発光ダイオード（ＬＥＤ）等を備えた表示装置９と、記憶媒体であるフロッピディスク（ＦＤ）２０をドライブするフロッピディスクドライブ（ＦＤＤ）１０と、前記制御プログラムを含む各種アプリケーションプログラムや、映像、各種データ等を記憶するハードディスク（図示せず）をドライブするハードディスクドライブ（ＨＤＤ）１１と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するコンパクトディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）２１をドライブするＣＤ−ＲＯＭドライブ（ＣＤ−ＲＯＭＤ）１２と、外部からのＭＩＤＩ（Musical Instrument Digital Interface）信号を入力したり、ＭＩＤＩ信号を外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１３と、通信ネットワーク１０１を介して、例えばサーバコンピュータ１０２とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１４と、鍵盤１から入力された演奏データや予め設定された演奏データ等を楽音信号に変換する音源回路１５と、該音源回路１５からの楽音信号に各種効果を付与するための効果回路１６と、該効果回路１６からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１７とにより構成されている。
【００３０】
上記構成要素３〜１６は、バス１８を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＭＩＤＩＩ／Ｆ１３には他のＭＩＤＩ機器１００が接続され、通信Ｉ／Ｆ１４には通信ネットワーク１０１が接続され、音源回路１５には効果回路１６が接続され、効果回路１６にはサウンドシステム１７が接続されている。
【００３１】
ＨＤＤ１１のハードディスクには、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、このハードディスクに制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００３２】
ＣＤ−ＲＯＭドライブ１２を介してＣＤ−ＲＯＭ２１から読み出された制御プログラムや各種データは、ＨＤＤ１１内のハードディスクに格納される。これにより、制御プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このＣＤ−ＲＯＭドライブ１２以外にも、外部記憶装置として、光磁気ディスク（ＭＯ）装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００３３】
ＭＩＤＩＩ／Ｆ１３は、専用のものに限らず、ＲＳ−２３２ＣやＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェースより構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信してもよい。
【００３４】
通信Ｉ／Ｆ１４は、上述のように、例えばＬＡＮ（Local Area Network）やインターネット、電話回線等の通信ネットワーク１０１に接続されており、該通信ネットワーク１０１を介して、サーバコンピュータ１０２に接続される。ＨＤＤ１１内のハードディスクに上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１４は、サーバコンピュータ１０２からプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、自動作曲装置）は、通信Ｉ／Ｆ１４及び通信ネットワーク１０１を介してサーバコンピュータ１０２へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータ１０２は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク１０１を介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ１４を介して、これらプログラムやパラメータを受信してＨＤＤ１１内のハードディスクに蓄積することにより、ダウンロードが完了する。
【００３５】
この他、外部コンピュータ等との間で直接データのやりとりを行うためのインターフェースを備えてもよい。
【００３６】
図２は、本実施の形態に係る自動作曲装置で使用される、ある映像に割り当てられる曲生成用データの例を示す図である。
【００３７】
同図において、Ｐ１〜Ｐ４は映像データの進行時間を指示する時間ポインタであり、時間ポインタＰ２〜Ｐ４は、それぞれ時間ポインタＰ１からの経過時間（即ち、絶対時間）を指示する。
【００３８】
これらのポインタで区切られる各区間に対して、該区間の映像にふさわしい曲が付加される。例えば、時間ポインタＰ１〜時間ポインタＰ２の間のシーンＡが子供の徒競走のシーンである場合には、「にぎやかなマーチ」の曲が付加され、時間ポインタＰ２〜時間ポインタＰ３の間のシーンＢが子供のお遊戯のシーンである場合には、「優雅なワルツ」の曲が付加される。
【００３９】
これらの曲を生成するための曲生成用データは、曲生成用テンプレートとしてＲＯＭ６に記憶されている。各曲生成用テンプレートの名称は、曲と同様の「にぎやかなマーチ」や「優雅なワルツ」などの名称でもよく、図中に示すような「競争」、「うきうき」、「のんびり」などのキーワードでもよい。尚、ＲＯＭ６に、「行事」、「結婚式」、「日本」、「悲しい場面」などのフォルダを設け、そのフォルダ内に複数の曲生成用テンプレートを格納するようにしてもよい。即ち、各曲生成用テンプレートは、名称、キーワード、フォルダ等により所定のカテゴリ（「にぎやかなマーチ」、「優雅なワルツ」、「競争」、「うきうき」等）に区分され、映像の内容にふさわしいカテゴリに区分された曲生成用データが選択され、映像に付加される。
【００４０】
各曲生成用テンプレートは、少なくともメロディ生成用データを備え、必要に応じて伴奏生成用データを備えている。メロディ生成用データは、少なくとも「シンコペーション」、「音符の数」、及び「ピッチダイナミクス」という３種類のパラメータを備え、伴奏生成用データは、「スタイル」という１種類のパラメータを備える。例えば、図中に示された「競争」の曲生成用テンプレートの各パラメータのデータは、「シンコペーション」は「有り」、「音符の数」は「多い」、「ピッチダイナミクス」は「大」、「スタイル」は「マーチ」である。
【００４１】
尚、上述した各時間ポインタは、映像を区切ることを目的として、時間ポインタＰ１からの経過時間を示すものであったが、これに限らず、各時間ポインタ毎に所要時間（即ち、２つのポインタ間の相対時間）を設定してもよく、例えば、時間ポインタ（Ｐ２−Ｐ１）は１分３０秒間、時間ポインタ（Ｐ３−Ｐ２）は２０秒間、時間ポインタ（Ｐ４−Ｐ３）は２分１０秒間のように映像の所要時間で映像を区切るようにしてもよい。さらに、各時間ポインタは、映像の所要時間に限らず、映像のフレーム数（絶対フレーム数又は相対フレーム数）に応じて映像を区切るものであってもよい。
【００４２】
図３は、本実施の形態に係る自動作曲装置により実行される、映像の長さに合った曲を生成し、該生成された曲を演奏する処理を示すフローチャートである。
【００４３】
まず、ハードディスクに記憶されている一連の映像情報をＲＡＭ７の所定の領域に読み出して、この映像を時間ポインタでユーザの所望の区間で区切る（ステップＳ１）。映像の区切り方は、ユーザがパネルスイッチ２を介してマニュアルで指示を出して、所望の区間で区切るようにしてもよく、又はＣＰＵ５が映像の無映像部分や映像のつなぎ目部分を検出して、当該部分で自動的に区切るようにしてもよい。あるいは、一連の映像情報が複数の映像ファイルのシーケンスである場合には、各映像ファイルの切り替わり部分が区間の切れ目となる。
【００４４】
次に、ＣＰＵ５が映像を区切る時間ポインタをＲＡＭ７の所定の領域に記憶させ（ステップＳ２）、各区間の映像内容に応じて、ユーザが曲生成用テンプレートを指定する（ステップＳ３）。ここで、ユーザは、各曲生成用テンプレートの名称やキーワード（例えば、「競争」「うきうき」など）又はフォルダ（例えば、「行事」など）に基づいて指定する曲生成用テンプレートを決める。
【００４５】
次いで、ステップＳ２で記憶させた時間ポインタに基づいて、ＣＰＵ５は区切った区間の所要時間、即ち生成すべき曲の所要時間を算出する（ステップＳ４）。例えば、図２のシーンＡについては、時間ポインタＰ２から時間ポインタＰ１の時刻を減算した１分３０秒という所要時間を算出する。ここで、時間ポインタが所要時間（相対時間）の場合は、所要時間の計算は不要である。また、時間ポインタがフレーム数の場合は、１つあたりの時間にフレーム数を乗算して、所要時間を同様に求めてもよい。
【００４６】
その後、ＣＰＵ５が、ステップＳ３で指定された曲生成用テンプレートをＲＯＭ６から読み出す（ステップＳ５）。
【００４７】
ここで、ステップＳ２でＲＡＭ７の所定の領域に記憶された時間ポインタと、ステップ５でＲＯＭ６から読み出された曲生成用テンプレートが、ＲＡＭ７の所定の領域にどのように配置され、記憶されているかを図４に示す。
【００４８】
次に、ステップＳ５で読み出された曲生成用テンプレートから曲生成用データ、即ちメロディ生成用データ及び伴奏生成用データに含まれる各パラメータのデータを抽出する（ステップＳ６）。例えば、図２に示された「競争」のテンプレートでは、「シンコペーション」は「有り」、「音符の数」は「多い」、「ピッチダイナミクス」は「大」、「スタイル」は「マーチ」というデータが抽出される。
【００４９】
次に、ＣＰＵ５は、ステップＳ４で算出された生成すべき曲の所要時間と、ステップＳ６で抽出された各パラメータのデータとに基づいて曲を生成し（ステップＳ７）、この曲生成処理が、ステップＳ１で区切られた全ての区間に対して終了したか否かを判別する（ステップＳ８）。
【００５０】
ステップＳ８の判別の結果、曲生成処理が全ての区間に対して終了していない場合は、上述したステップＳ４に戻る一方、曲生成処理が全ての区間に対して終了した場合は、生成した曲をシーン毎に映像の再生と同期して演奏し（ステップＳ９）、本処理を終了する。尚、映像を複数の区分に分割せず、全区間に対して１つの楽曲を生成してもよく、映像の内容としては複数のシーンが含まれる区間に対して１つの楽曲を生成してもよい。
【００５１】
図５は、図３のステップＳ７における曲生成処理の手順を示すブロック図であり、主としてＣＰＵ５により実行される。図５の曲生成処理は、説明の都合上、その手順がフローチャートではなくブロック図で示されているが、これは、ソフトウェアによる処理をブロック化して示したものであり、ハードウェアによる処理をブロック化したものではない。
【００５２】
また、図示された曲生成用データＢ１、所要時間Ｂ２、スタイルデータベースＢ４、及び小節数対応生成用データベースＢ８は、いずれも曲生成処理に使用されるデータを示すものであり、処理内容を示すものではない。尚、曲生成用データＢ１は、図３のステップＳ６で抽出された各パラメータのデータであり、所要時間Ｂ２は、図３のステップＳ４で算出された時間である。スタイルデータベースＢ４は、例えば、ＲＯＭ６に記憶されており、ロック用、ポップス用又はジャズ用などの種類がある伴奏パターンデータを備えるスタイルデータと、このスタイルデータの拍子、標準テンポ、及びイントロ・間奏・エンディングの小節数、及び標準テンポの調整許容量等からなる属性データとを備えている。小節数対応生成用データベースＢ８は、例えば、ＲＯＭ６に記憶されており、ブロック構成、楽節構成、コード進行等の曲長に依存するデータや曲風に関するデータを備えており、これらのデータは小節数対応生成用テンプレートとして記憶されている。
【００５３】
まず、曲生成用データＢ１に含まれるパラメータ「スタイル」のデータに基づいて生成すべき曲のスタイルが指定され、この指定された曲のスタイルに基づいて、スタイルデータベースＢ４からスタイルデータと、このスタイルデータの拍子、標準テンポ、及びイントロ・間奏・エンディングの小節数等からなる属性データとが抽出される（ブロックＢ３）。
【００５４】
そして、ブロックＢ３で抽出されたスタイルデータの拍子及び標準テンポに基づいて、所要時間Ｂ２に必要な小節数が以下の（１）式によって算出される（ブロックＢ５）。
【００５５】
必要な小節数＝所要時間Ｂ２／［（６０／標準テンポ）×拍子］……（１）
（但し、（１）式の小数点以下は四捨五入する）
例えば、スタイルデータの拍子が４／４拍子、スタイルデータの標準テンポが１００であり、所要時間Ｂ２が５０秒のときは、必要な小節数は５０／［（６０／１００）×４］＝２０．８となり、これを四捨五入して、２１小節となる。
【００５６】
次に、ブロックＢ５で算出された必要な小節数からブロックＢ３で抽出されたイントロ・間奏・エンディングの小節数を減算し、生成すべきメロディの小節数を算出する（ブロックＢ６）。例えば、ブロックＢ５で算出された必要な小節数が２１小節で、かつ、イントロ及びエンディングが各々２小節であり、間奏がないときには、１７小節（＝２１−４）が生成すべきメロディの小節数となる。
【００５７】
次いで、小節数対応生成用データベースＢ８に格納されている各小節数対応生成用テンプレートに基づいて、ブロックＢ６で算出された生成すべきメロディの小節数に対応する小節数対応データを取得する（ブロックＢ７）。ここで、小節数対応データとは、ブロック構成、楽節構成及びコード進行のデータである。例えば、小節数対応生成用データベースＢ８に格納されている小節数対応生成用テンプレートが、４小節単位（４、８、１２、１６、２０小節……）のブロック構成、楽節構成及びコード進行のデータを備えており、かつ、生成すべきメロディの小節数が１７小節である場合には、１７小節より多く、かつ、最も１７小節に近い２０小節を選択し、３小節を削除して、１７小節分のブロック構成、楽節構成及びコード進行のデータ、即ち小節数対応データを取得する。
【００５８】
その後、ブロックＢ７で取得された小節数対応データ及び曲生成用データＢ１に含まれるメロディ生成用データ（例えば、音符数、シンコペーションの有無、ピッチダイナミクス等）に基づいてメロディデータが生成される（ブロックＢ９）。
【００５９】
次に、ブロックＢ９で生成されたメロディのテンポを微調整する（ブロックＢ１０）。このテンポの微調整は、ブロックＢ５において算出された小節数が四捨五入されたため、この小節数と所要時間Ｂ２との間で生じる時間誤差を補正するために行われる。
【００６０】
次いで、ブロックＢ１０でテンポを微調整した結果、生成されたメロディが音楽的に不自然であるか否かを判断し、生成されたメロディが音楽的に不自然な場合には、ブロックＢ１０のテンポの微調整の処理をキャンセルし、リタルダンド（テンポをだんだん遅くする）やフェルマータ（音符や休符の長さを余分に延ばす）を挿入してメロディ長を調整する（ブロックＢ１１）。一方、ブロックＢ９で生成されたメロディが音楽的に自然な場合は、ブロックＢ１１によるメロディ長の調整処理をキャンセルする。尚、生成されたメロディが音楽的に不自然であるか否かは、スタイルの属性データに含まれる標準テンポの調整許容量を定めたデータに基づいて、微調整したテンポが標準テンポの調整許容量を超えるか否かにより判断する。微調整したテンポが標準テンポの調整許容量を超える場合は、メロディが音楽的に不自然であると判断する。
【００６１】
ブロックＢ９〜ブロックＢ１１の処理と並行して、ブロックＢ３で抽出されたスタイルデータ（イントロ及びエンディングを含む）とブロックＢ７で取得されたコード進行のデータとに基づいて伴奏を生成する（ブロックＢ１２）。
【００６２】
最後に、ブロックＢ１１（メロディが音楽的に不自然な場合）又はブロックＢ１０（メロディが音楽的に自然な場合）でテンポが調整されたメロディとブロックＢ１２で生成された伴奏とを合体して曲を生成し、該生成された曲を映像の各シーンと対応づけてＨＤＤ１１内のハードディスクに出力保存して（ブロックＢ１３）、本曲生成処理を終了する。
【００６３】
上述した曲生成処理では、小節数対応データ取得ブロックＢ７で余分な小節数対応データを削除することにより、生成すべきメロディの小節数に対応する小節数対応データを取得し、その後メロディを生成する（ブロックＢ９）が、図６に示すように、ブロックＢ７において、生成すべきメロディの小節数より多い小節数対応データを取得することのみを行い、これに基づいてメロディを生成して（ブロックＢ９）、生成すべきメロディの小節数に合わせるために余分なメロディの小節を削除するブロックＢ１４を設けてもよい。余分なメロディの小節を削除する場合、楽曲の先頭から削除するとよい。楽曲の最後のほうから削除すると、メロディに終始感がなくなり、メロディが不自熱になるおそれがあるからである。この際、メロディの楽節の区切り位置は変更しないほうが好ましい。例えば、各楽節が４小節で、５楽節構成（４小節・４小節・４小節・４小節・４小節の２０小節）のメロディ先頭を３小節削除する場合、先頭の楽節を１小節構成とし、残りの楽節はそのままとするのがよい（すなわち１小節・４小節・４小節・４小節・４小節の１７小節）。このようにすると、楽節間に同一性や類似性がある場合、少なくとも第２楽節以降はそれが保存されるからである。
【００６４】
上述したブロックＢ３では、まず曲生成用データＢ１に基づいて生成すべき曲のスタイルが指定され、その後に拍子や標準テンポを決定したが、映像によっては、拍子や標準テンポを曲のスタイルよりも優先的に決定したい場合もあるため、この場合には、まず曲の拍子や標準テンポを決定して、その後これに対応する曲のスタイルを検索し、該スタイルに対応するスタイルデータ及び属性データを抽出してもよい。
【００６５】
上述したブロックＢ６では、イントロ・間奏・エンディングの小節数は属性データから抽出されたものを使用していたが、これを使用せずに、ユーザが指定したものを使用するようにしてもよい。
【００６６】
上述したブロックＢ７又はブロックＢ１４では、生成すべきメロディの小節数に合わせるために、即ち映像の所要時間に合わせるために、余分な小節数対応データ又は余分なメロディを削除したが、この削除処理を実行せずに、映像と同期して曲を再生するときに、該曲の一部を省略して再生するようにしてもよい。
【００６７】
上述したブロックＢ１１では、生成されたメロディが音楽的に不自然な場合に、ブロックＢ１０のテンポの微調整をキャンセルし、メロディ長の調整を実行したが、ブロックＢ１０のテンポの微調整を実行した上で、メロディ長の調整を実行してもよい。
【００６８】
上述したブロックＢ１２では、伴奏を生成し、ブロックＢ１３では、伴奏とメロディを合体したが、スタイルデータに伴奏生成用データが含まれないときには、伴奏は生成されないので、ブロックＢ１２の伴奏生成処理やブロックＢ１３の伴奏とメロディの合体処理を実行しないようにする。
【００６９】
また、所要時間Ｂ２が長時間であり、対応する長さの小節数対応生成用テンプレートがない場合には、短い小節数の小節数対応生成用テンプレートを必要に応じて所定小節数の間奏を挿入して、繰り返し使用してもよい。
【００７０】
上述した曲生成処理では、ＣＰＵ５が、小節数対応生成用テンプレートに基づいて小節数対応データを取得し、メロディを生成し、該生成されたメロディのテンポ、即ち標準テンポの微調整等を実行したが、小節数対応生成用テンプレートに基づいて小節数対応データを取得する際に、小節数対応生成用テンプレートを選択した場合における標準テンポからの補正率を算出し、表示装置９に該算出された標準テンポからの補正率と小節数対応生成用テンプレートのタイトルとを表示して、ユーザに使用する小節数対応生成用テンプレートを選択させるようにしてもよい。
【００７１】
例えば、表示装置９に「１．２１哀愁演歌」、「０．９６しみじみ演歌」等を表示して、いずれか１つをユーザに選択させる。ここで、表示装置９に表示された「１．２１哀愁演歌」は、「１．２１」が標準テンポからの補正率を示し、「哀愁演歌」が小節数対応生成用テンプレートのタイトルを示す。また、この表示の際には、小節数対応生成用テンプレートのタイトルのみを表示して、標準テンポからの補正率は表示しなくてもよい。
【００７２】
また、表示装置９に表示させる候補の標準テンポからの補正率を予め決めておいて、その補正率の範囲内（例えば、標準テンポからの補正２０％以内）の候補だけを表示装置９に表示して、ユーザに選択させるようにしてもよい。
【００７３】
更にまた、あるカテゴリの中にある所定のタイトルの小節数対応生成用テンプレートの中で、最も標準テンポからの補正率の少ないものを表示装置９に表示して、ユーザに選択させるようにしてもよい。例えば、ザ・演歌というカテゴリの中に「哀愁演歌」というタイトルの小節数対応生成用テンプレートがあり、４小節用の小節数対応生成用テンプレートでは、標準テンポからの補正率が１．０８であり、８小節用の小節数対応生成用テンプレートでは、標準テンポからの補正率が１．１２である場合には、最も標準テンポからの補正率の少ない（１に近い）「１．０８哀愁演歌」を表示装置９に表示して、ユーザに選択させるようにしてもよい。
【００７４】
更にまた、あるカテゴリーの中にある全てのタイトルの小節数対応生成用テンプレートの中で、最も標準テンポからの補正率の少ないものを表示装置９に表示して、ユーザに選択させるようにしてもよい。例えば、ザ・演歌というカテゴリの中に「哀愁演歌」又は「しみじみ演歌」というタイトルの小節数対応生成用テンプレートがそれぞれあり、「哀愁演歌」の小節数対応生成用テンプレートは、標準テンポからの補正率が１．０８であり、「しみじみ演歌」の小節数対応生成用テンプレートは、標準テンポからの補正率が１．１２である場合には、最も標準テンポからの補正率の少ない（１に近い）「１．０８哀愁演歌」を表示装置９に表示して、ユーザに選択させるようにしてもよい。
【００７５】
次に、図５のブロックＢ７の小節数対応データを取得する方法及び同図のブロックＢ９のメロディデータの生成方法を詳細に説明する。
【００７６】
小節数対応データを取得する方法には、大きく分けて４つの方法があり、具体的には、（１）１小節単位で用意されたテンプレートを利用して小節数対応データを取得する方法と、（２）１小節単位で演算を利用して小節数対応データを取得する方法とがあり、さらに、（３）４小節単位で用意されたテンプレートを利用して、小節数対応データを取得した後に不要な小節を削除する方法と、（４）４小節単位で演算を利用して、小節数対応データを取得した後に不要な小節を削除する方法とがある。ここで、上記（３），（４）の方法では、予め４小節単位で小節数対応データを取得して、不要な小節を削除したが、小節数は４小節に限られるものではなく、２小節以上の小節数であればよい。尚、上述した図３のブロックＢ７の説明では、上記（３）の方法により小節数対応データを取得する例を示した。
【００７７】
（１）１小節単位で用意されたテンプレートを利用して小節数対応データを取得する方法
小節数対応生成用データベースＢ８に格納されている１小節単位の小節数対応生成用テンプレートの中から必要な小節数分のテンプレートを選択する。
【００７８】
この方法によれば、所望の小節数対応データを１小節単位の小節数対応生成用テンプレートのみで生成でき、該生成された小節数対応データに基づいてそのままメロディデータを生成することができる。
【００７９】
（２）１小節単位で演算を利用して小節数対応データを取得する方法
この方法で小節数対応データを取得するには、５つの処理、具体的には、▲１▼ブロック生成、▲２▼ブロック内楽節数決定、▲３▼楽節構成の決定、▲４▼各楽節の小節数決定、▲５▼コード進行の生成を実行する必要がある。
【００８０】
この５つの処理を実行するには、大きく分けて２つの方法があり、その１つは、まず、ブロック数、ブロック内楽節数、及び楽節構成をランダム演算で決定し（▲１▼〜▲３▼の処理）、この決定した楽節に対して、合計小節数が所望の小節数になるようにランダムに小節を割り当て（▲４▼の処理）、楽節ごと又は楽節結合部分の終止形を決めて、該終止形以外の部分にダイアトニックコード等をランダムに付与する（▲５▼の処理）。これにより、所望の小節数対応データを取得する。
【００８１】
他の１つは、まず、ブロック数を小節数に対する関数で決定する（▲１▼の処理）。この関数とは、例えば、以下の（２）式である。
【００８２】
0003680749.tif 000002
この関数によれば、第１小節〜第４小節を第１ブロックとし、第５小節〜第１０小節を第２ブロックとすることができる。もちろん、この関数は、（２）式ものに限定されるものではない。
【００８３】
次に、ブロック内楽節数も上記（２）式のような任意の小節数に対する関数で決定する（▲２▼の処理）。楽節構成及び各楽節の小節数はランダム演算で決定し（▲３▼▲４▼の処理）、楽節ごと又は楽節結合部分の終止形を決めて、該終止形以外の部分にダイアトニックコードなどをランダムに付与する（▲５▼の処理）。これにより、所望の小節数対応データを取得する。
【００８４】
尚、上述の方法では、演算のみを利用して小節数対応データを取得したが、演算とテーブルとを併用して小節数対応データを取得するようにしてもよい。
【００８５】
（３）４小節単位で用意されたテンプレートを利用して、小節数対応データを取得した後に不要な小節を削除する方法
小節数対応生成用データベースＢ８に格納されている４小節単位の小節数対応生成用テンプレートの中から必要な小節数と一致する小節数又は必要な小節数より若干多めの小節数のテンプレートを選択し、不要な小節を削除することで、所望の小節数対応データを取得する。尚、小節数対応生成用テンプレートを選択する際には、小節数対応生成用テンプレートに含まれている曲風に関するデータに基づいて選択する。または、ユーザがパネルスイッチ２を介して指定した小節数対応生成用テンプレートを選択する。
【００８６】
この方法によれば、小節数対応生成用テンプレートの数が上記（１）の方法より少なくてすむが、小節数対応生成用テンプレートを選択した後に、不要な小節を削除する処理が必要となる。
【００８７】
不要な小節を削除する処理では、小節数対応データの先頭から削除するとよい。小節数対応データの最後の方から削除すると、生成されたメロディに終止感がなくなり、メロディが不自然になるおそれがあるからである。この場合も、メロディの小節削除と同様、小節数対応データの楽節の区切り位置は変更しないほうが好ましい。例えば、各楽師が４小節で、５楽節構成（４小節・４小節・４小節・４小節・４小節の２０小節）の小節数対応データ先頭を３小節削除する場合、先頭の楽節を１小節構成とし、残りの楽節はそのままとするのがよい（すなわち１小節・４小節・４小節・４小節・４小節の１７小節）。このようにすると、楽節間に同一性や類似性がある場合、少なくとも第２楽節以降はそれが保存されるからである。
【００８８】
また、この方法によれば、上記（１）の方法と比べて、メロディ生成に必要な小節数に対応する小節数対応データを生成する時間が短縮される場合もある。
【００８９】
（４）４小節単位で演算を利用して、小節数対応データを取得した後に不要な小節を削除する方法
この方法では、後述する図７及び図８に示すテーブルを参照しながら演算を併用して小節数対応データを取得する。これらのテーブルは小節数対応生成用データベースＢ８に格納されているものとする。
【００９０】
例えば、必要な小節数が１７小節の場合に、この１７小節を４小節単位での楽節にすると、４楽節と１小節になる。従って、小節数対応データを５楽節分生成した後に、３小節を削除する。次に、この５楽節のブロック構成と楽節構成を求める。図７は、ある楽節数（横軸）のときに、採りうるブロック構成（縦軸）を表すテーブルを示す図である。
【００９１】
このテーブルにおいて、楽節数が５である場合の取りうるブロック構成は、▲１▼ＡＢ（又はＢＡ）が２＋３の場合、即ち、Ａブロックが２楽節で構成され、Ｂブロックが３楽節で構成される場合（又はＢブロックが２楽節で構成され、Ａブロックが３楽節で構成される場合）、▲２▼ＡＢ（又はＢＡ）が３＋２の場合、▲３▼ＡＢＡ（又はＢＡＢ）が１＋２＋２の場合、▲４▼ＡＢＡ（又はＢＡＢ）が２＋１＋２の場合、▲５▼ＡＢＡ（又はＢＡＢ）が２＋２＋１の場合の５種類である。ブロック記号は曲のスタイルに応じて、例えば、Ａブロックはノーマル、Ｂブロックは派手というように伴奏付けするので、ブロックＢを先にすると、さび始まりの曲が生成できる。
【００９２】
次に、この５種類のブロック構成の中から１つ選択する。例えば、「繰り返しが最も少ない」という条件で選択すると、▲１▼ＡＢ（又はＢＡ）が２＋３の場合、▲２▼ＡＢ（又はＢＡ）が３＋２の場合が選択され、さらにこの２つのうちからランダムで１つを選択する、例えば、▲１▼ＡＢ（又はＢＡ）が２＋３の場合を選択する。次いで、図８のテーブルを参照しながら、この選択されたブロック構成のＡブロック及びＢブロックのそれぞれに対して楽節構成を求める。図８は、ある楽節数（横軸）のときに、採りうる楽節構成（縦軸）を表すテーブルを示す図である。同図においては、ある楽節を記号「ａ」で表した場合に、この楽節と楽節構成が異なる（即ち同一・類似関係にない）楽節は記号「ｂ」又は記号「ｃ」で表し、この楽節と楽節構成が同一の楽節は記号「ａ」で表し、この楽節と楽節構成が類似の楽節は記号「ａ’」で表す。
【００９３】
ここでは、ＡＢ（又はＢＡ）が２＋３の場合の楽節構成を求めるので、まず、２楽節の楽節構成を求める。図８のテーブルにおいて、２楽節の楽節構成は、「ａａ」，「ａａ’」，「ａｂ」の３種類があり、この中で、例えば、「繰り返しが最も少ない」という条件で選択すると、楽節構成「ａｂ」が求められる。同様にして、３楽節の楽節構成を求めると、楽節構成「ａｂｃ」が求められる。ここで、ブロックが異なる場合には楽節記号を重複しないようにすると、最終的に求められる楽節構成は「ａｂｃｄｅ」となる。
【００９４】
コード進行は、楽節最後の２小節での終止形、及び／又は、同時に楽節最後から次の楽節最初に向かう終止形を決めた後、上述のように求められたブロック構成と楽節構成とに基づいて生成される。
【００９５】
以上のような方法で、取得した小節数対応データ（ブロック構成、楽節構成、及びコード進行のデータ）のうちの余分な３小節を削除して、所望の小節数対応データを取得する。
【００９６】
尚、上述した方法では、ブロック構成と楽節構成とを別々のテーブルを使用して求めたが、両方のデータを有する１つのテーブルを参照し、ブロック構成と楽節構成とを一度に求めてもよい。
【００９７】
次に、メロディデータの生成方法には、大きく分けて２つの方法があり、具体的には、１小節毎にメロディを生成し、所望の小節数のメロディを生成する方法と、４小節単位毎などでメロディを生成し、所望の小節数のメロディを生成する方法とがある。
【００９８】
いずれの方法を採る場合であっても、ブロックＢ７で取得された小節数対応データ及び曲生成用データＢ１に含まれるメロディ生成用データに基づいてメロディを生成する。
【００９９】
但し、４小節単位などでメロディを生成する場合は、１小節毎にメロディを生成する場合と比べて固定長小節数でメロディを生成するので、処理が単純になる。例えば、表示装置９による１画面の楽譜表示は常に４小節であり、その表示処理は１小節毎に表示する場合と比べて単純になる。また、同一楽節や類似楽節のために繰り返して同じようなメロディを生成する場合も、固定小節長ではコピーが可能であるので、処理が単純になる。
【０１００】
上述したように、本実施の形態によれば、メロディ生成に必要な小節数に対応する小節数対応データを取得し、この小節数対応データとメロディ生成用データとに基づいてメロディを生成し、この生成されたメロディのメロディ長と映像の所要時間とが一致するようにメロディのテンポを微調整したり、リタルダンド又はフェルマータを挿入して、メロディ長を調整するので、映像の長さに合った時間で完成度の高い曲を生成することができる。また、本実施の形態に係る自動作曲装置では、テンプレートや演算を利用して自動作曲されるので、従来の曲データの断片を結合しただけのものと異なり、完成度の高い曲を無限に近い数で生成することができる。また、本実施の形態に係る自動作曲装置では、映像のシーンに合わせて、マーチ、ワルツ又はバラード等のスタイルを反映させた曲を生成することができるので、映像の内容に適した完成度の高い曲を生成することができる。
【０１０１】
また、生成すべきメロディの小節数より多い小節数対応データを取得し、これとメロディ生成用データとに基づいてメロディを生成して、生成すべきメロディの小節数に合わせるために余分なメロディの小節を削除するので、映像の長さに合った時間で完成度の高い曲を生成することができる。
【０１０２】
また、各シーンのつなぎ目において、曲の演奏がフェードアウト、及び／又は、フェードインされるように、フェードアウト／インの制御コマンドを曲データ中に入れたり、曲データとは別管理でこの制御コマンドを記憶したり、又は音量変化データを曲データ中に入れたりしてもよい。
【０１０３】
上述した実施の形態の機能は、ソフトウェアであるプログラムの形態によっても実現することができ、これにより、本発明の目的が達成されることは云うまでもない。
【０１０４】
また、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ５やＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは云うまでもない。
【０１０５】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０６】
プログラムコードを供給するための記憶媒体としては、例えば、前記フロッピーディスク２０、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ２１、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、半導体メモリ、磁気テープ、不揮発性のメモリカード、ＲＯＭ６などを用いることができる。また、他のＭＩＤＩ機器１００や通信ネットワーク１０１を介してサーバコンピュータ１０２からプログラムコードが供給されるようにしてもよい。
【０１０７】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１０８】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ５などが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１０９】
尚、本実施の形態の自動作曲装置は、上述したように、標準的なハードウェア構成の汎用パーソナルコンピュータ（ＰＣ）上に実現するようにしたが、これに限らず、例えば、ＦＤＤ１０やＣＤ−ＲＯＭＤ１２を省略したモバイルＰＣ上に実現するようにしてもよい。さらに、汎用ＰＣ上にではなく、専用機器として構成するようにしてもよい。
【０１１３】
【発明の効果】
以上詳細に説明したように、請求項１の自動作曲装置及び請求項２の自動作曲プログラムによれば、映像の各区間の所要時間、所定の拍子情報及びテンポ情報に基づいて楽曲の小節数が算出され、少なくとも所定の小節数単位のブロック構成、楽節構成及びコード進行のデータを備えるテンプレートが格納され、前記算出された小節数より多く、かつ、前記算出された小節数に最も近い小節数に対応するブロック構成、楽節構成及びコード進行のデータが前記テンプレートから取得され、該取得されたブロック構成、楽節構成及びコード進行のデータに基づいて楽曲が生成され、該生成された楽曲の前記テンポ情報に基づく時間長と前記映像の対応区間の所要時間とが一致するように前記楽曲の時間長が調整されると共に前記生成された楽曲にリタルダンド又はフェルマータが挿入され、該楽曲の時間長が調整された楽曲が前記映像の各区間に応じて出力されるので、従来の曲データの断片を結合しただけのものと異なり、映像に同期して且つ映像の長さに合った時間で完成度の高い曲を生成することができる。また、生成された楽曲にリタルダンド又はフェルマータが挿入されるので、楽曲生成後に映像の長さに合った時間で完成度の高い曲を生成することができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態に係る自動作曲装置の概略構成を示すブロック図である。
【図２】  ある映像に割り当てられる曲生成用データの例を示す図である。
【図３】  映像の長さに合った曲を生成し、該生成された曲を演奏する処理を示すフローチャートである。
【図４】  図３のステップＳ３のテンプレートの指定が終了した時点でのＲＡＭ７の所定の領域のメモリマップを示す図である。
【図５】  図３のステップＳ７における曲生成処理の手順を示すブロック図である。
【図６】  図５の曲生成処理の手順のうちの一部変更をした部分を示すブロック図である。
【図７】  ある楽節数（横軸）のときに、採りうるブロック構成（縦軸）を表すテーブルを示す図である。
【図８】  ある楽節数（横軸）のときに、採りうる楽節構成（縦軸）を表すテーブルを示す図である。
【符号の説明】
１  鍵盤
２  パネルスイッチ
３  押鍵検出回路
４  スイッチ検出回路
５  ＣＰＵ（小節数算出手段、小節数対応データ取得手段、楽曲生成手段、出力手段、楽曲長調整手段、削除手段、小節数削除手段、テンポ調整手段、挿入手段、メロディ演奏手段、曲生成用データ記憶手段、曲生成用データ選択手段、区間分割手段、小節数対応データ長調整手段）
６  ＲＯＭ
７  ＲＡＭ
８  タイマ
９  表示装置
１１  ＨＤＤ
２０  ＦＤ
２１  ＣＤ−ＲＯＭ
【図１】
0003680749.tif 000003
【図２】
0003680749.tif 000004
【図３】
0003680749.tif 000005
【図４】
0003680749.tif 000006
【図５】
0003680749.tif 000007
【図６】
0003680749.tif 000008
【図７】
0003680749.tif 000009
【図８】
0003680749.tif 000010