(57)【特許請求の範囲】
【請求項１】
少数の基本コードのみからなるコード進行を供給する供給手段と、
該供給されたコード進行の少なくとも一部の基本コードを基本コード以外のコードに変更することにより、前記供給されたコード進行を基に他のコード進行を生成する他コード進行生成手段と
を有し、
前記他コード進行生成手段は、前記基本コードのみからなるコード進行に含まれる総コード数の所定割合のコードを、前記基本コード以外のコードに変更することを特徴とするコード進行生成装置。
【請求項２】
複数の区間からなる曲の各区間間を結合し、隣接する２つの区間のうち前区間の最後のコードまたはコード進行が持つ音楽的機能と、後区間の最初のコードが取り得るコードの自由度との関係に応じて分類された複数の結合タイプの中からいずれかを選択して決定する結合タイプ決定手段と、
該決定された結合タイプに基づいて、前記前区間の最後のコードまたはコード進行および前記後区間の最初のコードを示す結合部におけるコードを決定するコード決定手段と、
前記各区間における前記決定された結合部以外の部分のコード進行を、当該区間の最初のコードおよび最後のコードまたはコード進行に基づいて、またはランダムに生成するコード進行生成手段と
を有することを特徴とするコード進行生成装置。
【請求項３】
複数の区間からなる曲の各区間間を結合し、隣接する２つの区間のうち前区間の最後のコードまたはコード進行が持つ音楽的機能と、後区間の最初のコードが取り得るコードの自由度との関係に応じて分類された複数の結合タイプの中からいずれかを選択して決定する結合タイプ決定手段と、
該決定された結合タイプに基づいて、前記前区間の最後のコードまたはコード進行および前記後区間の最初のコードを示す結合部におけるコードを少数の基本コードの中から選択して決定するコード決定手段と、
前記各区間における前記決定された結合部以外の部分のコード進行を少数の基本コードを用いて生成するコード進行生成手段と
該生成されたコード進行の少なくとも一部の基本コードを基本コード以外のコードに変更することにより、前記生成されたコード進行を基に他のコード進行を生成する他コード進行生成手段と
を有し、
前記他コード進行生成手段は、前記基本コードのみからなるコード進行に含まれる総コード数の所定割合のコードを、前記基本コード以外のコードに変更することを特徴とするコード進行生成装置。
【請求項４】
少数の基本コードのみからなるコード進行を供給する供給ステップと、
該供給されたコード進行の少なくとも一部の基本コードを基本コード以外のコードに変更することにより、前記供給されたコード進行を基に他のコード進行を生成する他コード生成ステップと
を有するコード進行生成方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み出し可能な記憶媒体であって、
前記他コード進行生成ステップでは、前記基本コードのみからなるコード進行に含まれる総コード数の所定割合のコードを、前記基本コード以外のコードに変更することを特徴とする記憶媒体。
【請求項５】
複数の区間からなる曲の各区間間を結合し、隣接する２つの区間のうち前区間の最後のコードまたはコード進行が持つ音楽的機能と、後区間の最初のコードが取り得るコードの自由度との関係に応じて分類された複数の結合タイプの中からいずれかを選択して決定する結合タイプ決定ステップと、
該決定された結合タイプに基づいて、前記前区間の最後のコードまたはコード進行および前記後区間の最初のコードを示す結合部におけるコードを決定するコード決定ステップと、
前記各区間における前記決定された結合部以外の部分のコード進行を、当該区間の最初のコードおよび最後のコードまたはコード進行に基づいて、またはランダムに生成するコード進行生成ステップと
を有するコード進行生成方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み出し可能な記憶媒体。
【請求項６】
複数の区間からなる曲の各区間間を結合し、隣接する２つの区間のうち前区間の最後のコードまたはコード進行が持つ音楽的機能と、後区間の最初のコードが取り得るコードの自由度との関係に応じて分類された複数の結合タイプの中からいずれかを選択して決定する結合タイプ決定ステップと、
該決定された結合タイプに基づいて、前記前区間の最後のコードまたはコード進行および前記後区間の最初のコードを示す結合部におけるコードを少数の基本コードの中から選択して決定するコード決定ステップと、
前記各区間における前記決定された結合部以外の部分のコード進行を少数の基本コードを用いて生成するコード進行生成ステップと
該生成されたコード進行の少なくとも一部の基本コードを基本コード以外のコードに変更することにより、前記生成されたコード進行を基に他のコード進行を生成する他コード進行生成ステップと
を有するコード進行生成方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み出し可能な記憶媒体であって、
前記他コード進行生成ステップでは、前記基本コードのみからなるコード進行に含まれる総コード数の所定割合のコードを、前記基本コード以外のコードに変更することを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多種類のコード（和音）からなるコード進行を簡単に生成することが可能なコード進行生成装置および記憶媒体に関する。
【０００２】
【従来の技術】
従来、多種類のコードからなるコード進行を生成する主な生成手法として、次の２種類が知られている。すなわち、
１）各種コードからなるすべてのコード進行をデータベースに記憶させ、このデータベースから所定の条件に合致したコード進行を読み出すことによって、目的のコード進行を生成する手法
２）所定の演算アルゴリズムを用いた演算により目的のコード進行を生成する手法
【０００３】
【発明が解決しようとする課題】
しかし、上記従来のコード進行生成手法のうち１）の手法では、生成すべきコード進行がすべて含まれるようにデータベースを構築する必要があるため、データベースの容量が膨大なものとなっていた。したがって、このようなデータベースを記憶する記憶媒体はそれに見合った容量のものを使用しなければならないので、製造コストが増大するとともに、データベースの構築作業も大変な労力が必要であった。
【０００４】
また、上記従来のコード進行生成手法のうち２）の手法では、上記１）の手法の問題点、すなわちデータベースの容量が膨大なものとなる問題点は解決されるものの、音楽的に意味のあるコード進行を演算のみによって生成することは非常に困難であり、その演算アルゴリズムも見出されていなかった。さらに、このような演算アルゴリズムがたとえ見出されたとしても、非常に複雑であり、現在の標準的なＣＰＵ能力を以てしても、その処理を持て余してしまうため、さらに高性能のＣＰＵが必要となり、製造コストが増大する。
【０００５】
本発明は、この点に着目してなされたものであり、多種類からなるコード進行を簡単に生成することが可能なコード進行生成装置および記憶媒体を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載のコード進行生成装置は、少数の基本コードのみからなるコード進行を供給する供給手段と、該供給されたコード進行の少なくとも一部の基本コードを基本コード以外のコードに変更することにより、前記供給されたコード進行を基に他のコード進行を生成する他コード進行生成手段とを有し、前記他コード進行生成手段は、前記基本コードのみからなるコード進行に含まれる総コード数の所定割合のコードを、前記基本コード以外のコードに変更することを特徴とする。
【０００７】
ここで、少数の基本コードとは、典型的には、主要和音（Ｉ，ＩＶ，Ｖ７）であるが、これに限らず、主要和音に副和音（ＩＩｍ，ＩＩＩｍ，ＶＩｍ，ＶＩＩ７（♭５））を加えた７コード（同一調内のすべてのダイアトニックコード）としてもよく、これら以外の複数種類のコードを基本コードとしてもよい。
【０００８】
基本コードのみからなるコード進行を供給する方法としては、たとえば、１）予め作成された各種コード進行によってデータベースを構築し、その中から目的の（すなわち、条件に合致する）コード進行を選択して供給する方法、２）所定の簡単な演算アルゴリズムに基づいて演算によって目的のコード進行を生成し供給する方法、３）ユーザが直接入力することによって目的のコード進行を供給する方法、４）既存のコード進行データを所定の場所（所定の記憶媒体やサーバ等）からロードすることによって目的のコード進行を供給する方法等が考えられる。
【０００９】
データベースの容量に関して、１）の方法では、データベースは基本コードのみからなるコード進行を記憶するだけであるため、上記従来のデータベースの容量に比較してはるかに少容量ですみ、また、２）の方法では、データベースそのものが必要とされないため、データベースを記憶する記憶媒体を省略することができる。
【００１０】
また、基本コードのみからなるコード進行を供給する第１の段階と、このコード進行を変形することによって他の新たなコード進行を生成する第２の段階の２段階で多種類のコードからなるコード進行を生成するようにしているので、このようにして生成されたコード進行を使用して、たとえばメロディを生成するときに、そのメロディを少しだけ変更したい場合には、第２段階内で再度変形するようにし、そのメロディを大幅に変更したい場合には、第１段階内で他のコード進行を生成するようにすればよく、したがって、ユーザの意図通りに再変形することができる。
【００１１】
基本コードを基本コード以外のコードに変更する方法としては、たとえば、１）基本コードを代理コードで置き換える方法、２）基本コードをセカンダリ・ドミナント・コードで置き換える方法、３）基本コードをそのコード進行が循環コード進行となるように変更する方法、４）基本コードをそのコード進行が連続ドミナント進行となるように変更する方法、５）基本コードをそのコード進行が順次コード進行となるように変更する方法等が考えられるが、これに限るものではなく、少数の基本コードを他の多種類の基本コード以外のコードに変更できる方法であれば、どのような方法を採用してもよい。
【００１２】
また、変更対象の基本コードは、そのコード進行に含まれるすべてであってもよいし、その中の一部であってもよい。後者の場合には、変形対象となる一部の基本コードの選択方法が問題となるが、たとえば、曲全体の基本コード総数に対する変形対象となる基本コード数の比を設定し、この比に応じた数を曲全体に割り当てることによって選択する方法が考えられる。そして、この割り当ては、たとえば、１）完全なランダムで行う方法、２）条件（曲の先頭または最後の所定数のコードは変形の対象としない等）付きランダムで行う方法、３）所定条件に従って行う方法、４）予め設定された割り当て規則に従って行う方法等が考えられる。
【００１３】
請求項１に関する以上の点は、請求項が変わっても同様である。
【００１８】
請求項２に記載のコード進行生成装置は、複数の区間からなる曲の各区間間を結合し、隣接する２つの区間のうち前区間の最後のコードまたはコード進行が持つ音楽的機能と、後区間の最初のコードが取り得るコードの自由度との関係に応じて分類された複数の結合タイプの中からいずれかを選択して決定する結合タイプ決定手段と、該決定された結合タイプに基づいて、前記前区間の最後のコードまたはコード進行および前記後区間の最初のコードを示す結合部におけるコードを決定するコード決定手段と、前記各区間における前記決定された結合部以外の部分のコード進行を、当該区間の最初のコードおよび最後のコードまたはコード進行に基づいて、またはランダムに生成するコード進行生成手段とを有することを特徴とする。
【００１９】
請求項３に記載のコード進行生成装置は、複数の区間からなる曲の各区間間を結合し、隣接する２つの区間のうち前区間の最後のコードまたはコード進行が持つ音楽的機能と、後区間の最初のコードが取り得るコードの自由度との関係に応じて分類された複数の結合タイプの中からいずれかを選択して決定する結合タイプ決定手段と、該決定された結合タイプに基づいて、前記前区間の最後のコードまたはコード進行および前記後区間の最初のコードを示す結合部におけるコードを少数の基本コードの中から選択して決定するコード決定手段と、前記各区間における前記決定された結合部以外の部分のコード進行を少数の基本コードを用いて生成するコード進行生成手段と該生成されたコード進行の少なくとも一部の基本コードを基本コード以外のコードに変更することにより、前記生成されたコード進行を基に他のコード進行を生成する他コード進行生成手段とを有し、前記他コード進行生成手段は、前記基本コードのみからなるコード進行に含まれる総コード数の所定割合のコードを、前記基本コード以外のコードに変更することを特徴とする。
【００２０】
前記目的を達成するため、請求項４に記載の記憶媒体は、少数の基本コードのみからなるコード進行を供給する供給ステップと、該供給されたコード進行の少なくとも一部の基本コードを基本コード以外のコードに変更することにより、前記供給されたコード進行を基に他のコード進行を生成する他コード生成ステップとを有するコード進行生成方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み出し可能な記憶媒体であって、前記他コード進行生成ステップでは、前記基本コードのみからなるコード進行に含まれる総コード数の所定割合のコードを、前記基本コード以外のコードに変更することを特徴とする。
【００２２】
請求項５に記載の記憶媒体は、複数の区間からなる曲の各区間間を結合し、隣接する２つの区間のうち前区間の最後のコードまたはコード進行が持つ音楽的機能と、後区間の最初のコードが取り得るコードの自由度との関係に応じて分類された複数の結合タイプの中からいずれかを選択して決定する結合タイプ決定ステップと、該決定された結合タイプに基づいて、前記前区間の最後のコードまたはコード進行および前記後区間の最初のコードを示す結合部におけるコードを決定するコード決定ステップと、前記各区間における前記決定された結合部以外の部分のコード進行を、当該区間の最初のコードおよび最後のコードまたはコード進行に基づいて、またはランダムに生成するコード進行生成ステップとを有するコード進行生成方法をコンピュータに実行させるプログラムを格納したことを特徴とする。
【００２３】
請求項６に記載の記憶媒体は、複数の区間からなる曲の各区間間を結合し、隣接する２つの区間のうち前区間の最後のコードまたはコード進行が持つ音楽的機能と、後区間の最初のコードが取り得るコードの自由度との関係に応じて分類された複数の結合タイプの中からいずれかを選択して決定する結合タイプ決定ステップと、該決定された結合タイプに基づいて、前記前区間の最後のコードまたはコード進行および前記後区間の最初のコードを示す結合部におけるコードを少数の基本コードの中から選択して決定するコード決定ステップと、前記各区間における前記決定された結合部以外の部分のコード進行を少数の基本コードを用いて生成するコード進行生成ステップと該生成されたコード進行の少なくとも一部の基本コードを基本コード以外のコードに変更することにより、前記生成されたコード進行を基に他のコード進行を生成する他コード進行生成ステップとを有するコード進行生成方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み出し可能な記憶媒体であって、前記他コード進行生成ステップでは、前記基本コードのみからなるコード進行に含まれる総コード数の所定割合のコードを、前記基本コード以外のコードに変更することを特徴とする。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２５】
図１は、本発明の一実施の形態に係るコード進行生成装置の概略構成を示すブロック図である。
【００２６】
同図に示すように、本実施の形態のコード進行生成装置は、音高情報を入力するための鍵盤１と、各種情報を入力するための複数のスイッチを備えたパネルスイッチ２と、鍵盤１の各鍵の押鍵状態を検出する押鍵検出回路３と、パネルスイッチ２の各スイッチの押下状態を検出するスイッチ検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムやテーブルデータ等を記憶するＲＯＭ６と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば大型液晶ディスプレイ（ＬＣＤ）若しくはＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイおよび発光ダイオード（ＬＥＤ）等を備えた表示装置９と、記憶媒体であるフロッピディスク（ＦＤ）２０をドライブするフロッピディスクドライブ（ＦＤＤ）１０と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するハードディスク（図示せず）をドライブするハードディスクドライブ（ＨＤＤ）１１と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するコンパクトディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）２１をドライブするＣＤ−ＲＯＭドライブ（ＣＤ−ＲＯＭＤ）１２と、外部からのＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）信号を入力したり、ＭＩＤＩ信号を外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１３と、通信ネットワーク１０１を介して、たとえばサーバコンピュータ１０２とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１４と、鍵盤１から入力された演奏データや予め設定された演奏データ等を楽音信号に変換する音源回路１５と、該音源回路１５からの楽音信号に各種効果を付与するための効果回路１６と、該効果回路１６からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Ｄｉｇｉｔａｌ−ｔｏ−Ａｎａｌｏｇ  Ｃｏｎｖｅｒｔｅｒ）やアンプ、スピーカ等のサウンドシステム１７とにより構成されている。
【００２７】
上記構成要素３〜１６は、バス１８を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＭＩＤＩＩ／Ｆ１３には他のＭＩＤＩ機器１００が接続され、通信Ｉ／Ｆ１４には通信ネットワーク１０１が接続され、音源回路１５には効果回路１６が接続され、効果回路１６にはサウンドシステム１７が接続されている。
【００２８】
ＨＤＤ１１のハードディスクには、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、このハードディスクに制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００２９】
ＣＤ−ＲＯＭドライブ１２のＣＤ−ＲＯＭ２１から読み出された制御プログラムや各種データは、ＨＤＤ１１内のハードディスクにストアされる。これにより、制御プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このＣＤ−ＲＯＭドライブ１２以外にも、外部記憶装置として、光磁気ディスク（ＭＯ）装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００３０】
ＭＩＤＩＩ／Ｆ１３は、専用のものに限らず、ＲＳ−２３２ＣやＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェースより構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信してもよい。
【００３１】
通信Ｉ／Ｆ１４は、上述のように、たとえばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネット、電話回線等の通信ネットワーク１０１に接続されており、該通信ネットワーク１０１を介して、サーバコンピュータ１０２に接続される。ＨＤＤ１１内のハードディスクに上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１４は、サーバコンピュータ１０２からプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、コード進行生成装置）は、通信Ｉ／Ｆ１４および通信ネットワーク１０１を介してサーバコンピュータ１０２へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータ１０２は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク１０１を介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ１４を介して、これらプログラムやパラメータを受信してＨＤＤ１１内のハードディスクに蓄積することにより、ダウンロードが完了する。
【００３２】
この他、外部コンピュータ等との間で直接データのやりとりを行うためのインターフェースを備えてもよい。
【００３３】
なお、本実施の形態のコード進行生成装置は、上述のように、標準的なハードウェア構成の汎用パーソナルコンピュータ（ＰＣ）上に実現するようにしたが、これに限らず、たとえばＦＤＤ１０やＣＤ−ＲＯＭＤ１２を省略したモバイルＰＣ上に実現するようにしてもよい。さらに、汎用ＰＣ上にではなく、専用機器として構成するようにしてもよい。
【００３４】
以上のように構成されたコード進行生成装置が実行する制御処理を、以下、その概要を説明した後に、図２〜図６に基づいて詳細に説明する。
【００３５】
本実施の形態のコード進行生成装置は、まず、１）基本的なコード進行（所定の複数の基本コードからなるコード進行）を生成し、次に、２）この基本的なコード進行を該基本コードに含まれないコードを用いて変形（リハーモナイズ）することによって、目的のコード進行、すなわち多種類のコードからなるコード進行を生成する。ここで、基本コードとは、本実施の形態においては“Ｉ”，“ＩＶ”，“Ｖ７”の主要和音を指す（長調の場合）。
【００３６】
上記１）の生成方法として、本実施の形態では、ａ）自動生成による２種類の方法、ｂ）マニュアル入力による方法、および、ｃ）既存データをロードする方法の全４種類の方法を採用している。そして、上記ａ）の２種類の方法とは、具体的には、ｉ）予め基本的なコード進行データを要素とするデータベースを構築しておき、このデータベースを検索することにより目的のコード進行データを生成する方法、および、ｉｉ  ）所定の演算アルゴリズムに従って、演算により目的のコード進行データを生成する方法である。
【００３７】
また、上記２）のリハーモナイズ方法として、本実施の形態では、ａ）所定条件に合致する位置の基本コードを代理コードで置き換える方法、および、ｂ）所定条件に合致する位置の基本コードをセカンダリ・ドミナント・コードで置き換える方法の２種類を採用している。
【００３８】
図２は、本実施の形態のコード進行生成装置、特にＣＰＵ５が実行するメインルーチンの手順を示すフローチャートである。
【００３９】
同図において、まず、ユーザに対してコード進行生成方法を問い合わせる（ステップＳ１）。本実施の形態では、コード進行生成方法は、上記１）ａ）〜ｃ）の３種類あり、その中から、ユーザは、たとえば前記パネルスイッチ２の所定のスイッチを操作することにより、いずれか１種類を選択する。
【００４０】
ステップＳ１で、ユーザが「自動生成方法」を選択すると、図３（または図４および図５）を用いて後述する自動生成処理サブルーチンを実行し（ステップＳ２）、ユーザが「マニュアル入力方法」を選択すると、ユーザが鍵盤１やスイッチ（たとえばパネルスイッチ２の所定のスイッチ）を操作することによって入力したコード進行を、たとえば前記ＲＡＭ７の所定位置に確保されたコード進行入力バッファに記憶し（ステップＳ３）、ユーザが「既存データロード方法」を選択すると、たとえば、工場設定やユーザ設定等によって所定の記憶媒体に予め記憶されているコード進行データであって、ユーザが選択したものを、上記コード進行入力バッファにロードする（ステップＳ４）。
【００４１】
続くステップＳ５では、ユーザが、たとえばパネルスイッチ２の所定のスイッチを操作することによってコード進行の変形方法（リハーモナイズ方法）、すなわち前記２）ａ）またはｂ）のいずれかの方法を指定すると、その指定された変形方法を、たとえばＲＡＭ７のワークエリアに入力する。
【００４２】
そして、ステップＳ６では、図６を用いて後述するコード進行変形処理サブルーチンを実行し、すなわち前記入力された変形方法に応じたコード進行変形処理を実行し、ステップＳ７では、その変形結果（変形されたコード進行）をユーザに提示する。この提示方法には、たとえば、変形されたコード進行を前記表示装置９に表示したり、変形されたコード進行を構成するコードの構成音を順次発音したりする方法が考えられる。もちろん、これに限られるものではなく、ユーザがその変形結果を明確に把握できる方法であればどのような方法であってもよい。
【００４３】
続くステップＳ８では、提示された変形結果が満足の行くものであるか否かをユーザに問い合わせ、ユーザが、たとえばパネルスイッチ２の所定のスイッチを操作することにより、変形結果が不満である旨を回答したときにはステップＳ９に進み、コード進行の変形方法を再指定するか否かをユーザに問い合わせる。
【００４４】
ステップＳ９で、ユーザが変形方法を再指定する旨を回答したときには前記ステップＳ５に戻って、コード進行の変形方法の選択指定から変形結果の提示に至る一連の処理（ステップＳ５〜Ｓ７）を再度行い、ユーザが現在指定されているコード進行の変形方法でよい旨を回答したときには前記ステップＳ６に戻って、コード進行変形処理からその変形結果の提示に至る処理（ステップＳ６およびＳ７）を再度行う。
【００４５】
一方、ステップＳ８で、ユーザが提示された変形結果に満足である旨を回答したときにはステップＳ１０に進み、生成されたコード進行の用途がどのようなものであるかをユーザに問い合わせる。本実施の形態のコード進行の用途には、１）自動作曲、２）自動伴奏、および、３）コード表示の３種類があり、ユーザは、たとえばパネルスイッチ２の所定のスイッチを操作することにより、この中からいずれかを選択することができるように構成されている。
【００４６】
ステップＳ１０で、ユーザが「自動作曲」を選択すると、生成されたコード進行に基づいて、周知の技術により自動作曲を行い（ステップＳ１１）、ユーザが「自動伴奏」を選択すると、生成されたコード進行に基づいて、周知の技術により自動伴奏を行い（ステップＳ１２）、ユーザが「コード表示」を選択すると、生成され提示されたコード進行を表示装置９に表示する（ステップＳ１３）。ここで、ステップＳ１３の表示態様としては、たとえば、楽譜形式や歌本形式での表示、または、鍵盤を表示し、その表示鍵盤に対する押鍵指示等が考えられる。また、鍵盤１の各鍵に対応してＬＥＤが設けられているときには、そのＬＥＤを用いた押鍵指示、具体的にはＬＥＤの点灯による押鍵指示であってもよい。
【００４７】
続くステップＳ１４では、ユーザが指定した用途に応じて生成されたデータ、すなわち、ステップＳ１１では作曲されたメロディデータ、ステップＳ１２では伴奏された伴奏データ、ステップＳ１３では表示された表示データが満足の行くものであるか否かをユーザに問い合わせる。その結果、ユーザが不満足である旨を回答したときにはステップＳ１５に進み、大幅に変更したいか否かをユーザに問い合わせる。
【００４８】
ステップＳ１５で、ユーザが大幅に変更したい旨を回答したときには前記ステップＳ１に戻って、コード進行の生成方法の入力指示からの処理を再度行い、ユーザがそれほど大幅に変更したくない旨を回答したときには前記ステップＳ９に戻って、変形方法の再指定の問い合わせからの処理を再度行う。
【００４９】
一方、ステップＳ１４で、ユーザが生成されたデータに対して満足である旨を回答したときには、必要に応じてデータ、すなわち生成されたコード進行データおよびユーザが指定した用途に応じて生成されたデータ（作曲されたメロディデータ、伴奏された伴奏データまたは表示された表示データのいずれか）を所定の記憶媒体にセーブした（ステップＳ１６）後に、本メインルーチンを終了する。
【００５０】
図３は、前記ステップＳ２の自動生成処理サブルーチンの一例である自動生成処理１の詳細な手順を示すフローチャートであり、本自動生成処理１は、前記１）ａ）ｉ）の自動生成方法を実現したものである。
【００５１】
同図において、まず、ユーザがコード進行生成条件を入力すると、この入力された条件を、たとえばＲＡＭ７のワークエリアに記憶する（ステップＳ２１）。ここで、コード進行生成条件は、たとえば音節数や楽節構成等である。楽節構成とは、各楽節間の同一・類似関係によって各楽節がどのような構成であるかを示すものであり、たとえば、ある楽節を記号“Ａ”で表した場合に、この楽節と楽節構成が異なる（すなわち同一・類似関係にない）楽節は記号“Ｂ”で表し、この楽節と楽節構成が同一の楽節は記号“Ａ”で表し、この楽節と楽節構成が類似の楽節は記号“Ａ′”または“Ａ″”で表す（“Ａ′”と“Ａ″”とは、類似の程度が異なり、前者の方が後者より“Ａ”により類似していることを意味する）。ステップＳ２１では、ユーザは、音節数として、整数値を入力し、楽節構成として、たとえば前記“Ａ”，“Ｂ”等の記号を入力する。
【００５２】
次に、入力された生成条件を満たすコード進行データをデータベースから検索し、抽出する（ステップＳ２２）。データベースには、たとえば、各種楽節数および楽節構成に対して作成された１曲分の基本的なコード進行パターン（たとえば“Ｉ”，“ＩＶ”，“Ｖ７”（たとえば、Ｃ長調でいうと“Ｃ”，“Ｆ”，“Ｇ７”）の主要和音のみで構成されているようなコード進行パターン）が多数、楽節数および楽節構成毎に分類されて予め記憶されている。したがって、ユーザが楽節数と楽節構成を入力すれば、これに対応するコード進行データの候補をデータベースから容易に検索し抽出することができる。また、このデータベースに登録されるコード進行パターンは基本的なもの、すなわち単純なものであるため、そのデータ容量は、前記従来のデータベース、すなわち多種類のコードからなるコード進行パターンによって構築されるデータベースに比較して、はるかに少容量ですむ。
【００５３】
このようにして抽出されたコード進行データの候補から、ユーザがいずれかを選択すると、その選択されたコード進行データを前記コード進行入力バッファに記憶した（ステップＳ２３）後に、本自動生成処理１を終了する。
【００５４】
図４は、前記ステップＳ２の自動生成処理サブルーチンの他の一例である自動生成処理２の詳細な手順を示すフローチャートであり、本自動生成処理２は、前記１）ａ）ｉｉ  ）の自動生成方法を実現したものである。
【００５５】
同図において、まず、ユーザが、楽節数を含むコード進行生成条件を入力すると、この入力された生成条件を、たとえばＲＡＭ７のワークエリアに記憶する（ステップＳ３１）。ここで、上記自動生成処理１のステップＳ２１で入力するコード進行生成条件と異なり、楽節数を必須の入力要素としたのは、以後の処理中で楽節数を使用するからである。
【００５６】
次に、入力された生成条件を満たす楽節構成を決定する（ステップＳ３２）。決定方法としては、たとえば、１）各楽節数毎に予め作成された楽節構成テンプレートを要素とする楽節構成データベースを構築し、この楽節構成データベースから入力された生成条件に応じた楽節構成テンプレートを検索し、この中に記載されている楽節構成を用いて目的の楽節構成を決定する方法、２）所定の演算アルゴリズムに従って演算により目的の楽節構成を決定する方法（たとえば、各楽節に対してランダムにまたは条件付きランダムに楽節記号を決定する）等が考えられる。なお、上記１）または２）のいずれか一方の方法のみが固定的に設定されていてもよいし、いずれか一方の方法をユーザが選択できるようにしてもよい。
【００５７】
次に、各楽節間の結合タイプを決定して１曲分の結合パターンを生成し、この生成された結合パターンをＲＡＭ７に確保された結合パターンバッファに記憶する（ステップＳ３３）。本実施の形態では、結合タイプとして、次に説明するタイプ１〜３の３種類の結合タイプが用意されており、このステップＳ３３では、各楽節に対していずれかの結合タイプを決定することにより、曲全体の結合パターンを生成する。
【００５８】
タイプ１は、前楽節が完全終止（不完全終止を含む）となって完結している（Ｖ７→Ｉの進行）ため、次楽節（対象楽節）へのコード進行の自由度が高い（しかし、出現頻度の優先順位が４度、１度、５度の順で進行するのが自然である）結合タイプを示し、タイプ２は、前楽節の最後のコードがドミナントで半終止となっている（Ｖ７）ため、次コード（対象楽節の最初のコード）へ向けて強い終止感が要求され、次コードへドミナント進行（４度進行）する結合タイプを示し、タイプ３は、前楽節の最後のコードがタイプ１および２のいずれにも該当せず（たとえばＩＶ）、特に次楽節（対象楽節）へのコード進行に対する要求はない（しかし、出現頻度の優先順位が５度、１度、２度の順で進行するのが自然である）結合タイプを示している。
【００５９】
これらタイプ１〜３を各楽節に振り分けるのであるが、具体的には、たとえば、楽節がＡ，Ｂ，Ａ（最初のＡで「問いかけ」、次のＢで「解決」、そして再度Ａに戻ってＡを強調という典型的な楽節構成）の３楽節で構成されている場合に、第１楽節（Ａ）から第２楽節（Ｂ）への結合はタイプ２とし、第２楽節から第３楽節への結合はタイプ１とする結合パターンがよく取られる。もちろん、これに限らず、多彩な曲を生成するために、上記例とは別のタイプを各楽節に積極的に割り振るようにしてもよい。
【００６０】
以上の点を考慮し、本実施の形態では、結合パターンの生成方法として、１）各楽節数毎に予め作成された典型的な結合パターンを要素とする結合パターンデータベースを構築し、この結合パターンデータベースからランダムにまたはユーザの指示に従って検索することによって生成する方法、２）所定の演算アルゴリズムに従って演算により生成する方法（たとえば、各楽節に対してランダムに結合タイプを決定する）のうちいずれかを採用している。もちろん、これに限る必要はなく、前記楽節構成テンプレート内に結合パターンの情報を記載しておくようにしてもよい。また、上記１）または２）のいずれか一方の方法をユーザが選択できるようにしてもよい。
【００６１】
続くステップＳ３４では、ステップＳ３３で生成された結合パターン、すなわち各楽節間の結合タイプに基づいて結合部のコードを決定する結合部コード決定処理サブルーチン（図５を用いて後述）を実行し、ステップＳ３５では、各楽節内の結合部以外の部分のコード進行を、次の方法によって生成した後に、本自動生成処理２を終了する。すなわち、
１）１各楽節分を単位として予め作成された基本的なコード進行パターンを要素とするコード進行パターンデータベースを構築し、このコード進行パターンデータベースに記憶されているコード進行パターンのうち、各楽節の先頭コードおよび最終コード（該各コードは、ステップＳ３４の処理によって決定される）に合致するものをランダムに選択し生成する方法
２）所定の演算アルゴリズムに従って演算により生成する方法（たとえば、コード変更可能タイミング（１拍、２拍、１小節等）毎にランダムに基本コードのいずれかを決定する）
なお、上記１）または２）のいずれか一方の方法が固定的に設定されていてもよいし、いずれか一方の方法をユーザが選択できるようにしてもよい。また、１）の方法において、コード進行パターンデータベースに登録されるコード進行パターンは、楽節を単位としているが、これに限らず、より細かい単位としてもよい。また、２）の方法を採用するときには、ａ）同一コードの連続は所定回数（たとえば２回）まで、ｂ）１つの楽節中に完全４度上行する進行を１つ以上含む、ｃ）コードの出現頻度をＩ，Ｖ７，ＩＶの順とする等の条件を設け、これに合致するように、コード進行を生成するようにしてもよい。さらに、１）および２）のいずれの方法を採用するときでも、対象楽節の楽節構成がそれより前の楽節（既にコード進行が生成されている楽節）の楽節構成と同一関係にあるときには、対象楽節は、その同一楽節と同様のコード進行にする方が好ましい。
【００６２】
図５は、前記ステップＳ３４の結合部コード決定処理サブルーチンの詳細な手順を示すフローチャートであり、本処理は、前記生成された結合タイプに応じて、対象楽節Ｋの最後のコードと次楽節Ｋ＋１の先頭のコードとを決定するものである。
【００６３】
同図において、まず、先頭楽節の先頭コードを“Ｉ”に決定する（ステップＳ４１）。
【００６４】
次に、処理の対象となる楽節を指示するために、ＲＡＭ７のワークエリアに設けられたソフトウェアカウンタＫを初期設定（Ｋ←１）する（ステップＳ４２）。
【００６５】
そして、結合パターン中Ｋ番目の結合タイプ（Ｋ楽節からＫ＋１楽節への結合タイプ）を、前記結合パターンバッファから読み出して所定の一時記憶バッファにロードし（ステップＳ４３）、この結合タイプが、前記タイプ１〜３中いずれのタイプであるかを判別する（ステップＳ４４）。
【００６６】
ステップＳ４４で、結合タイプがタイプ１のときには、Ｋ楽節の最後の２つのコードを“Ｖ７”から“Ｉ”への進行とし（ステップＳ４５）、Ｋ＋１楽節の先頭のコードをランダムに決定する（ステップＳ４６）。なお、ステップＳ４６では、そのコードを完全にランダムに決定するのではなく、前記出現頻度の優先順位（たとえば４度進行、１度進行、５度進行の順）に基づいて条件付きランダムに決定する方が好ましい。
【００６７】
ステップＳ４４で、結合タイプがタイプ２のときには、Ｋ楽節の最後のコードを“Ｖ７”とし（ステップＳ４７）、Ｋ＋１楽節の先頭のコードを“Ｉ”とする（ステップＳ４８）。
【００６８】
ステップＳ４４で、結合タイプがタイプ３のときには、Ｋ楽節の最後のコードをランダムに決定し（ステップＳ４９）、Ｋ＋１楽節の先頭のコードをランダムに決定する（ステップＳ５０）。なお、ステップＳ５０では、そのコードを完全にランダムに決定するのではなく、前記出現頻度の優先順位（たとえば５度進行、１度進行、２度進行の順）に基づいて条件付きランダムに決定する方が好ましい。
【００６９】
続くステップＳ５１では、Ｋが最後の楽節より１楽節前の楽節を示しているか否かを判別し、Ｋが最後の楽節より１楽節前の楽節を示していないとき、すなわち処理すべき楽節が残っているときには、Ｋの値を“１”だけインクリメントした（ステップＳ５２）後に、前記ステップＳ４３に戻って上述の処理を繰り返し、Ｋが最後の楽節より１楽節前の楽節を示しているとき、すなわち処理すべき楽節がないときには、Ｋ＋１楽節の最後の２つのコードを“Ｖ７”から“Ｉ”への進行とした（ステップＳ５３）後に、本結合部コード決定処理を終了する。
【００７０】
図６は、前記ステップＳ６のコード進行変形処理サブルーチンの詳細な手順を示すフローチャートであり、本処理は、前記２種類のリハーモナイズ方法２）ａ）およびｂ）を実現したものである。
【００７１】
コード進行変形処理をフローチャートに基づいて詳細に説明する前に、その概要を説明する。本実施の形態のコード進行変形処理は、次の技術的思想に基づいて構成されている。すなわち、
１）曲の最初および最後の２コードは変形しない（これは、曲の最初と最後は、その曲の調性を明確にする部分だからである）
２）曲全体の所定割合だけ変形する
２′）楽節記号が“Ａ”の楽節では、セカンダリ・ドミナント・コードへの置き換えは行わない
３）曲全体の所定割合だけ完全終止が出現するようにする
図６において、まず、曲の先頭と最後の各２コードを除いた曲全体のコード数を算出し（ステップＳ６１）、このコード数を、たとえばＲＡＭ７のワークエリアに確保された領域Ｘ（以下、この内容を「コード数Ｘ」という）に記憶する（ステップＳ６２）。
【００７２】
次に、コード数Ｘに所定の係数（前記変形すべき曲全体の割合に相当する）ａ（１以下の正数；たとえば０．５）を乗算し、その結果をＸａとする（ステップＳ６３）。このＸａは、変形（置き換え）すべきコード総数を示すため、以下、変形コード総数Ｘａという。
【００７３】
次に、ユーザに対して変形方法、すなわち、ａ）代理コードで変形する方法、または、ｂ）セカンダリ・ドミナント・コードで変形する方法のいずれの方法で変形するかを問い合わせ（ステップＳ６４）、ユーザが、ａ）の方法で変形する旨を回答したときには、ステップＳ６５〜Ｓ６７の処理を実行する一方、ｂ）の方法で変形する旨を回答したときには、ステップＳ６８〜Ｓ７０の処理を実行する。
【００７４】
ステップＳ６５では、各楽節に変形コード総数Ｘａを割り振る。割り振り方法は、たとえば、１）ランダムに割り振る方法、２）条件付きランダムに割り振る方法、３）各楽節（または、それより細かい所定単位（たとえば小節））毎に割り振るコード数の比率を設定し、この比率に応じて割り振る方法等が考えられる。なお、この比率は、前記楽節構成テンプレートを使用する場合には、各楽節構成テンプレート内に記載するようにすればよいし、また、ユーザが自由に設定できるようにしてもよい。さらに、同一楽節には、同一割合で割り振るようにした方が好ましい。
【００７５】
ステップＳ６６では、各楽節に割り振られた変形コード数に基づいてランダムに置き換えるべきコード（位置）を決定（ただし、曲の先頭と最後の各２コードを除く）し、そのコードを代理コードで置き換える。
【００７６】
ステップＳ６７では、完全終止の出現頻度が所定の割合（たとえば約３０％）以上であるか否かを判別し、出現頻度＜所定の割合のときには、ステップＳ６６に戻って、再度代理コードへの置き換え処理を行い、出現頻度≧所定の割合のときには、本コード進行変形処理を終了する。
【００７７】
ステップＳ６８では、ステップＳ６５と同様にして、各楽節に変形コード総数Ｘａを割り振る。ただし、楽節記号として“Ａ”が設定されている楽節に対しては、割り振りは行わない。
【００７８】
ステップＳ６９では、各楽節（ただし、“Ａ”が設定されている楽節は除く）に割り振られた変形コード数に基づいてランダムに置き換えるべきコード（位置）を決定（ただし、曲の最後のコードを除く）し、そのコードをセカンダリ・ドミナント・コードで置き換える。ここで、曲の最初のコードを除くと記載されていないが、これは、“Ａ”が設定されている楽節は必ず先頭楽節を含み、この楽節は変形の対象とされていないため、曲の最後のコードを除くとのみ記載すれば、自動的に曲の先頭および最後の各コードを除くことを意味するようになるからである。
【００７９】
ステップＳ７０では、ステップＳ６７と同様にして、完全終止の出現頻度が所定の割合（たとえば約３０％）以上であるか否かを判別し、出現頻度＜所定の割合のときには、ステップＳ６９に戻って、再度セカンダリ・ドミナント・コードへの置き換え処理を行い、出現頻度≧所定の割合のときには、本コード進行変形処理を終了する。
【００８０】
なお、本実施の形態ではステップＳ６７で、出現頻度＜所定の割合のときには、ステップＳ６６に戻るようにしたが、これに限らず、ステップＳ６３に戻るようにしてもよい（ステップＳ７０も同様）。
【００８１】
また、本実施の形態ではステップＳ６６で、決定されたコード位置のコードをその対応する代理コードで置き換えるようにしたが、対応する代理コードが複数存在する場合には、そのうちいずれかをランダム、ユーザの指示または所定の優先順位により選択して決定するようにすればよい。
【００８２】
さらに、本実施の形態では、ａ）代理コードで変形する方法、または、ｂ）セカンダリ・ドミナント・コードで変形する方法のいずれか一方の方法を選択して変形するようにしたが、これに限らず、ａ）の方法で変形した後に、続いてｂ）の方法で変形する２段階の変形によって行うようにしてもよい。
【００８３】
このように、本実施の形態では、少数の基本コードのみからなるコード進行が生成され、この生成されたコード進行に含まれる基本コードが他のコードに変形されるので、多種類のコードからなるコード進行を生成するためのデータベースの容量を大幅に削減（またはデータベースそのものを省略）することができる。そして、コード進行に含まれる少数の基本コードを他のコードに変形するだけで新たなコード進行が生成されるので、多種類のコードからなるコード進行であって、音楽的に意味のあるものを簡単に生成することができる。また、少数の基本コードのみからなるコード進行を生成する方法として、演算による方法を採用したときには、演算生成するのは少数の基本コードのみであるため、その演算アルゴリズムは簡単なものとなり、したがって、演算に費やすＣＰＵ能力を削減することができる。
【００８４】
なお、本実施の形態では、基本コードとして、主要和音（Ｉ，ＩＶ，Ｖ７）を使用したが、これに限る必要はなく、この主要和音に副和音（ＩＩｍ，ＩＩＩｍ，ＶＩｍ，ＶＩＩ７（♭５））を加えた７コード（同一調内のすべてのダイアトニックコード）を使用するようにしてもよい。なお、曲の調が長調の場合と短調の場合とで、あるいは調の主音に応じて、主要和音は異なるので、基本和音も曲の調に応じて異なるようにしてもよい。また、一般的に主要和音や副和音と呼ばれている和音に限らず、所望の複数和音をグループとし、これを基本和音としてもよい。たとえば、ある一曲の中にもともと含まれている複数の和音を基本とし、曲に応じて基本和音が異なるようにしてもよい。
【００８５】
また、ある音楽スタイル、たとえば唱歌のような比較的単純な曲では、基本コードとして主要和音を使用し、これを変形することによって副和音を加えるようにし、他の音楽スタイル、たとえばポピュラー音楽のような複雑な曲では、１）基本コードとして主要和音を使用し、これを変形することによっていきなり複雑な（副和音より複雑な）コード進行を生成したり、または、２）基本コードとして主要和音を使用し、次のステップで副和音を加え、さらに次のステップで複雑なコード進行を生成したりしてもよい。他の音楽スタイルにおける後者２）の２ステップ変形処理は、前者１）のように主要和音からいきなり複雑なコード進行を生成したときの不都合、すなわち主要和音とこれ以外の複雑なコードとが入り交じることによる不自然感を解消することができる。
【００８６】
さらに、本実施の形態では、リハーモナイズ方法として前記２）ａ）およびｂ）の２種類の方法を採用したが、これに限らず、たとえば、循環コード進行となるように基本的なコード進行を変形する方法、連続ドミナント進行となるように基本的なコード進行を変形する方法、順次コード進行となるように基本的なコード進行を変形する方法等どのような方法を採用してもよい。
【００８７】
また、本実施の形態では、変形対象となる基本コードは、その数のみが問題にされているが、これに限らず、その種類を問題にしてもよい。すなわち、変形対象となる基本コードの種類の比を設定し（たとえば、Ｉ：ＩＶ：Ｖ７＝２：３：４）、この比で置き換えるべきコードを決定する。
【００８８】
さらに、本実施の形態では、変形されたコード進行を提示するときに（ステップＳ７）、１つのみを提示したが、これに限らず、複数の候補を提示するようにしてもよい。具体的には、その前段のコード進行変形処理（ステップＳ６）で、選択された変形方法に基づいて複数回変形処理を繰り返したり、または、変形方法を選択せずに、両変形方法をそれぞれ複数回繰り返したりして、複数の変形結果を生成し、これを提示する。
【００８９】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ５やＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは云うまでもない。
【００９０】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９１】
プログラムコードを供給するための記憶媒体としては、たとえば、前記フロッピーディスク２０、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ２１、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ６などを用いることができる。また、他のＭＩＤＩ機器１００や通信ネットワーク１０１を介してサーバコンピュータ１０２からプログラムコードが供給されるようにしてもよい。
【００９２】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【００９３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ５などが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【００９４】
【発明の効果】
以上説明したように、請求項１または４に記載の発明によれば、少数の基本コードのみからなるコード進行が供給され、この供給されたコード進行の少なくとも一部の基本コードが基本コード以外のコードに変更されて、前記供給されたコード進行を基に他のコード進行が生成されるので、多種類のコードからなるコード進行を生成するためのデータベースの容量を大幅に削減することができる。そして、コード進行に含まれる少数の基本コードを基本コード以外のコードに変更するだけで新たなコード進行が生成されるので、多種類のコードからなるコード進行であって、音楽的に意味のあるものを簡単に生成することができる。
【００９７】
好ましくは、前記基本コードのみからなるコード進行に含まれる総コード数の所定割合のコードが、前記基本コード以外のコードに変更されるので、前記所定割合以外の割合コードが基本コードとして残り、このため、請求項３に記載の発明と同様に、曲想を変えずに、多種類のコードからなるコード進行であって、音楽的に意味のあるものを生成することができる。
【００９９】
請求項２または５に記載の発明によれば、複数の区間からなる曲の各区間間の結合タイプが、それぞれ異なる複数の結合タイプの中から選択されて決定され、この決定された結合タイプに基づいて当該各区間の結合部におけるコードが決定されるとともに、その結合部のコード以外の部分のコード進行が生成されるので、各区間間のつながりがよいコード進行を生成することができる。
【０１００】
請求項３または６に記載の発明によれば、複数の区間からなる曲の各区間間の結合タイプが、それぞれ異なる複数の結合タイプの中から選択されて決定され、この決定された結合タイプに基づいて当該各区間の結合部におけるコードが少数の基本コードの中から選択して決定されるとともに、その結合部のコード以外の部分のコード進行が少数の基本コードを用いて生成され、このようにして生成されたコード進行の少なくとも一部の基本コードが基本コード以外のコードに変更されて、前記生成されたコード進行を基に他のコード進行が生成されるので、各区間間のつながりがよいコード進行を生成することができるとともに、多種類のコードからなるコード進行であって、音楽的に意味のあるものを生成することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るコード進行生成装置の概略構成を示すブロック図である。
【図２】図１のコード進行生成装置、特にＣＰＵが実行するメインルーチンの手順を示すフローチャートである。
【図３】図２の自動生成処理サブルーチンの一例である自動生成処理１の詳細な手順を示すフローチャートである。
【図４】図２の自動生成処理サブルーチンの他の一例である自動生成処理２の詳細な手順を示すフローチャートである。
【図５】図４の結合部コード決定処理サブルーチンの詳細な手順を示すフローチャートである。
【図６】図２のコード進行変形処理サブルーチンの詳細な手順を示すフローチャートである。
【符号の説明】
１  鍵盤（供給手段）
２  パネルスイッチ（供給手段、結合タイプ決定手段）
５  ＣＰＵ（他コード進行生成手段、供給手段、変形手段、結合タイプ決定手段、コード進行生成手段、コード決定手段）
６  ＲＯＭ（供給手段）
７  ＲＡＭ（供給手段）
１０  ＦＤＤ（供給手段）
１１  ＨＤＤ（供給手段）
１２  ＣＤ−ＲＯＭＤ（供給手段）
１４  通信Ｉ／Ｆ（供給手段）
【図１】
0003632467.tif 000002
【図２】
0003632467.tif 000003
【図３】
0003632467.tif 000004
【図４】
0003632467.tif 000005
【図５】
0003632467.tif 000006
【図６】
0003632467.tif 000007