(57)【特許請求の範囲】
【請求項１】
既存のコード進行データを供給する供給手段と、
前記既存のコード進行データのうちの一部のコードを含む一部コード進行データを削除して、当該既存のコード進行データを短縮するための短縮条件を指定する短縮条件指定手段と、
該短縮条件指定手段によって指定された短縮条件に基づいて、前記供給された既存のコード進行データのうち、削除対象となっている一部コード進行データを削除し、残りのコード進行データを結合する削除・結合手段と、
該削除・結合手段によって結合された結合箇所の直前または直後のコードデータを所定のコード進行条件に基づいて修正変更する修正変更手段と
を有することを特徴とするコード進行データ生成装置。
【請求項２】
既存のコード進行データを供給する供給手段と、
前記既存のコード進行データのうちの一部のコードを含む一部コード進行データを追加して、当該既存のコード進行データを伸張するための伸張条件を指定する伸張条件指定手段と、
該伸張条件指定手段によって指定された伸張条件に基づいて、前記供給された既存のコード進行データに、追加対象となっている一部コード進行データを追加し、前記コード進行データと前記一部コード進行データとを結合する追加・結合手段と、
該追加・結合手段によって結合された結合箇所の直前または直後のコードデータを所定のコード進行条件に基づいて修正変更する修正変更手段と
を有することを特徴とするコード進行データ生成装置。
【請求項３】
既存のコード進行データを供給する供給手順と、
前記既存のコード進行データのうちの一部のコードを含む一部コード進行データを削除して、当該既存のコード進行データを短縮するための短縮条件を指定する短縮条件指定手順と、
該短縮条件指定手順によって指定された短縮条件に基づいて、前記供給された既存のコード進行データのうち、削除対象となっている一部コード進行データを削除し、残りのコード進行データを結合する削除・結合手順と、
該削除・結合手順によって結合された結合箇所の直前または直後のコードデータを所定のコード進行条件に基づいて修正変更する修正変更手順と
をコンピュータに実行させるためのプログラム。
【請求項４】
既存のコード進行データを供給する供給手順と、
前記既存のコード進行データのうちの一部のコードを含む一部コード進行データを追加して、当該既存のコード進行データを伸張するための伸張条件を指定する伸張条件指定手順と、
該伸張条件指定手順によって指定された伸張条件に基づいて、前記供給された既存のコード進行データに、追加対象となっている一部コード進行データを追加し、前記コード進行データと前記一部コード進行データとを結合する追加・結合手順と、
該追加・結合手順によって結合された結合箇所の直前または直後のコードデータを所定のコード進行条件に基づいて修正変更する修正変更手順と
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、既存のコード進行データから新たなコード進行データを生成するコード進行データ生成装置およびコード進行データ生成プログラムに関する。
【０００２】
【従来の技術】
既存のコード進行データから新たなコード進行データを生成するコード進行データ生成装置として、ユーザが既存のコード進行データの一部を選択して、コピー、カットおよび貼り付け等の操作を行うことで、新たなコード進行データを手作業で生成するようにしたものは、従来から知られている。
【０００３】
【発明が解決しようとする課題】
しかし、上記従来のコード進行データ生成装置では、ユーザが手作業でコード進行データを生成しなければならないため、多大な労力を必要としていた。
【０００４】
本発明は、この点に着目してなされたものであり、既存のコード進行データから新たなコード進行データを少ない労力で簡単に生成することが可能なコード進行データ生成装置およびコード進行データ生成プログラムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載のコード進行データ生成装置は、既存のコード進行データを供給する供給手段と、前記既存のコード進行データのうちの一部のコードを含む一部コード進行データを削除して、当該既存のコード進行データを短縮するための短縮条件を指定する短縮条件指定手段と、該短縮条件指定手段によって指定された短縮条件に基づいて、前記供給された既存のコード進行データのうち、削除対象となっている一部コード進行データを削除し、残りのコード進行データを結合する削除・結合手段と、該削除・結合手段によって結合された結合箇所の直前または直後のコードデータを所定のコード進行条件に基づいて修正変更する修正変更手段とを有することを特徴とする。
【０００７】
上記目的を達成するため、請求項２に記載のコード進行データ生成装置は、既存のコード進行データを供給する供給手段と、前記既存のコード進行データのうちの一部のコードを含む一部コード進行データを追加して、当該既存のコード進行データを伸張するための伸張条件を指定する伸張条件指定手段と、該伸張条件指定手段によって指定された伸張条件に基づいて、前記供給された既存のコード進行データに、追加対象となっている一部コード進行データを追加し、前記コード進行データと前記一部コード進行データとを結合する追加・結合手段と、該追加・結合手段によって結合された結合箇所の直前または直後のコードデータを所定のコード進行条件に基づいて修正変更する修正変更手段とを有することを特徴とする。
【０００８】
ここで、音楽理論に基づいた典型的なコード進行を予め記憶手段に記憶しておき、この記憶されたコード進行に合うように、コード進行が不自然な箇所のコード進行データを修正するようにしてもよい。この事情は、以下、請求項が変わっても同様である。
【０００９】
上記目的を達成するため、請求項３および４に記載の各プログラムは、それぞれ、請求項１および２と同様の技術的思想によって実現できる。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１１】
図１は、本発明の一実施の形態に係るコード進行データ生成装置の概略構成を示すブロック図である。
【００１２】
同図に示すように、本実施の形態のコード進行データ生成装置は、音高情報を入力するための鍵盤１と、各種情報を入力するための複数のスイッチを備えたパネルスイッチ２と、鍵盤１の各鍵の押鍵状態を検出する押鍵検出回路３と、パネルスイッチ２の各スイッチの押下状態を検出するスイッチ検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムや、各種テーブルデータ等を記憶するＲＯＭ６と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば大型液晶ディスプレイ（ＬＣＤ）若しくはＣＲＴ（Cathode Ray Tube）ディスプレイおよび発光ダイオード（ＬＥＤ）等を備えた表示装置９と、記憶媒体であるフレキシブルディスク（ＦＤ）２０をドライブするフレキシブルディスクドライブ（ＦＤＤ）１０と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するハードディスク（図示せず）をドライブするハードディスクドライブ（ＨＤＤ）１１と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するコンパクトディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）２１をドライブするＣＤ−ＲＯＭドライブ（ＣＤ−ＲＯＭＤ）１２と、外部からのＭＩＤＩ（Musical Instrument Digital Interface）信号を入力したり、ＭＩＤＩ信号を外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１３と、通信ネットワーク１０１を介して、たとえばサーバコンピュータ１０２とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１４と、鍵盤１から入力された演奏データや予め設定された演奏データ等を楽音信号に変換する音源回路１５と、該音源回路１５からの楽音信号に各種効果を付与するための効果回路１６と、該効果回路１６からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１７とにより構成されている。
【００１３】
上記構成要素３〜１６は、バス１８を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＭＩＤＩＩ／Ｆ１３には他のＭＩＤＩ機器１００が接続され、通信Ｉ／Ｆ１４には通信ネットワーク１０１が接続され、音源回路１５には効果回路１６が接続され、効果回路１６にはサウンドシステム１７が接続されている。
【００１４】
ＨＤＤ１１のハードディスクには、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、このハードディスクに制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００１５】
ＣＤ−ＲＯＭドライブ１２のＣＤ−ＲＯＭ２１から読み出された制御プログラムや各種データは、ＨＤＤ１１内のハードディスクにストアされる。これにより、制御プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このＣＤ−ＲＯＭドライブ１２以外にも、外部記憶装置として、光磁気ディスク（ＭＯ）装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００１６】
通信Ｉ／Ｆ１４は、上述のように、たとえばＬＡＮ（Local Area Network）やインターネット、電話回線等の通信ネットワーク１０１に接続されており、該通信ネットワーク１０１を介して、サーバコンピュータ１０２に接続される。ＨＤＤ１１内のハードディスクに上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１４は、サーバコンピュータ１０２からプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、コード進行データ生成装置）は、通信Ｉ／Ｆ１４および通信ネットワーク１０１を介してサーバコンピュータ１０２へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータ１０２は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク１０１を介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ１４を介して、これらプログラムやパラメータを受信してＨＤＤ１１内のハードディスクに蓄積することにより、ダウンロードが完了する。
【００１７】
この他、外部コンピュータ等との間で直接データのやりとりを行うためのインターフェースを備えてもよい。
【００１８】
なお、本実施の形態のコード進行データ生成装置は、上述の構成から分かるように、汎用的なパーソナルコンピュータ上に構築されたものであるが、これに限らず、本発明を実施できる最小限要素のみから構成した専用装置上に構築してもよい。  以上のように構成されたコード進行データ生成装置が実行する制御処理を、まずその概要を説明し、次に図２〜図１１を参照して詳細に説明する。
【００１９】
本実施の形態のコード進行データ生成装置は、大きく分けて、（１）既存のコード進行データから、その部分コード進行データであって、所定の楽曲構成単位を有するものを削除することによって新たなコード進行データを生成するコード進行データ長短縮処理と、（２）既存のコード進行データに対して、その部分コード進行データであって、所定の楽曲構成単位を有するものを追加することによって新たなコード進行データを生成するコード進行データ長伸張処理の２種類の処理を行うことができるように構成されている。
【００２０】
なお、ここで言う「既存のコード進行データ」は、ユーザが前記鍵盤１やパネルスイッチ２等を操作することにより入力されたもの、ＣＤ−ＲＯＭドライブ１２等の外部記憶装置から供給されたもの、通信Ｉ／Ｆ１４を介してサーバコンピュータ１０２等から供給されたもの、図示しない自動コード進行データ生成装置により生成されたものなどである。
【００２１】
（１）コード進行データ長短縮処理は、主として、次のような処理によって構成されている。すなわち、
（ａ）短縮条件指定処理
（ｂ）コード進行データ削除処理
（ｃ）削除後データ修正処理
である。
【００２２】
上記（ａ）の短縮条件指定処理では、ユーザによってまたは自動的に指定された短縮条件を入力し、前記ＲＡＭ７の短縮条件格納領域に記憶する。そして、上記（ｂ）のコード進行データ削除処理では、上記入力された短縮条件に基づいて、既存のコード進行データ中、削除対象となっている一部コード進行データを削除する。さらに、一部コード進行データを削除した残りのコード進行データ（削除後コード進行データ）には、その削除箇所近傍に、コード進行の不自然な箇所が発生する場合が多いので、上記（ｃ）の削除後データ修正処理では、削除後コード進行データ中、コード進行の不自然な箇所を検索し、その箇所のコード進行が自然になるように、その箇所近傍のコードデータを修正変更する。
【００２３】
同様にして、（２）コード進行データ長伸張処理も、次のような処理によって構成されている。すなわち、
（ａ）伸張条件指定処理
（ｂ）コード進行データ追加処理
（ｃ）追加後データ修正処理
である。
【００２４】
上記（ａ）〜（ｃ）の各処理の概要は、上記（１）（ａ）〜（ｃ）の各処理の概要から容易に推測できるため、その説明を省略する。
【００２５】
次に、この制御処理を詳細に説明する。
【００２６】
図２は、本実施の形態のコード進行データ生成装置、特にＣＰＵ５が実行するコード進行データ長短縮処理の手順を示すフローチャートである。
【００２７】
同図において、まず、前記（１）（ａ）の短縮条件指定処理を実行する（ステップＳ１）。短縮条件には、具体的に、次のようなものを挙げることができる。すなわち、削除するための条件（削除条件）としては、
I.  被削除コード進行データが複数ブロックから構成されている場合には、先頭ブロックを削除する
II. 各ブロック内の各先頭楽節を削除する
III.同一楽節記号の楽節が２つ連続する場合には、その一方の楽節を削除する（このとき、削除楽節の前の楽節中の末尾コードと後の楽節の先頭コードとのつながりは、削除前後で変化しないので、削除後のコードデータの修正変更が不要になるという利点がある）
IV. 各ブロック内の、各先頭および末尾以外のコードデータを所定数だけランダムに削除する（ただし、削除対象となるコードデータが所定数だけ存在しない場合には、先頭および末尾のコードデータを残すのみとする）
V.  特定のコードデータ（たとえば、セブンスコードを越えるテンション付きコード等）を削除する
VI. ブロック、楽節およびコードの組み合わせを削除する
等である。
【００２８】
コード進行データは、一般的に、楽曲構成に基づいて作られているため、本実施の形態では、その構造を参照しながらコード進行データ長を削減するようにしている。楽曲構成は、本実施の形態では、図３（ａ）に示すように、最上位層であるブロックから、中間層である楽節を介して、最下位層である小節までの階層構造になっている。ここで、ブロックは、曲全体の中の通常部分やサビ部分を示している。同類記号（図示例では、Ａ１に対するＡ２）が付されたブロックでは、通常似た感じの雰囲気になっている。具体的には、たとえばリズムについて、Ａ１ブロックとＡ２ブロックでは静かであるのに対して、ブロックＢでは盛り上がるように変化させるというようにである。楽節は、通常、小文字のアルファベットで記載され、ある音楽的なまとまりを持った区間を意味する。図示例では、各楽節は、それぞれ４小節から構成され、各小節には、それぞれ１つのコードデータが割り当てられている。
【００２９】
また、変更対象コードを変更するための条件としては、
I.  変更するコードタイプ（たとえば、メジャー、マイナー、ドミナントのいずれか）
II. ダイアトニックコードかノンダイアトニックコードか
III.曲最後はトニックコードにする
等である。
【００３０】
なお、変更対象コードが、ダイアトニックコードであるか否かは、被削除コード進行データの調に基づいて検出される。そして、この調は、被削除コード進行データに調情報が与えられている場合には、それを読み出すことによって求めればよいし、与えられていない場合には、被削除コード進行データのコード進行に基づいて求めればよい。
【００３１】
このような各種条件の中から、１つ以上の条件が、ユーザによりまたは自動的に選択されて、入力される。ユーザによって選択される場合には、たとえば、前記表示装置９上に各種条件の一覧が表示され、その中から選択できるようにすればよい。また、自動的に選択される場合には、たとえば、乱数を発生するようにし、発生した乱数に対応するものを選択（ランダム選択）するようにすればよい。また、ユーザによる選択と自動選択とを、ユーザに選択させるようにしてもよい。
【００３２】
図２に戻り、ステップＳ２では、ステップＳ１で入力された短縮条件中の削除条件に、ブロックに対する削除指定がある場合には、当該削除指定ブロックのブロック、楽節、小節番号およびコードの各データを削除する。
【００３３】
図３は、ブロックに対する削除指定がある場合に、被削除コード進行データから対象ブロックを削除した結果の一例を示す図である。同図において、（ａ）は、被削除コード進行データ、すなわち対象ブロックが削除される前の元のコード進行データを示し、（ｂ）は、（ａ）の被削除コード進行データからブロックＡ１を削除した結果を示し、（ｃ）は、（ａ）の被削除コード進行データからブロックＢを削除した結果を示し、（ｄ）は、（ａ）の被削除コード進行データからブロックＡ２を削除した結果を示している。
【００３４】
図３（ｂ）〜（ｄ）から分かるように、削除後コード進行データでは、ブロック記号および楽節記号を昇順に付け直している。これは、元のままのブロック記号や楽節記号では不自然だからである。したがって、元のままのブロック記号や楽節記号であっても不自然でない場合には、付け直さなくてもよい。なお、小節番号の付け直しは、なされていない。どの小節が削除されたかが分かるようにするためである。
【００３５】
具体的には、図３（ｂ）において、同図の削除後コード進行データは被削除コード進行データのブロックＡ１が削除されたものであるので、まず、ブロックＡ２をブロックＡに付け直し（ブロックＡ１がなくなったため）、次に、ブロックＢ内の楽節ｃ，ｃ′をそれぞれ楽節ａ，ａ′に付け直し（ブロックＡ１の楽節ａ，ａ′，ｂがなくなったため）、さらに、記号を付け直した後のブロックＡ内の楽節ｄ，ｄ′をそれぞれ楽節ｂ，ｂ′に付け直す（ブロックＡ１の楽節ａ，ａ′，ｂがなくなったため）。ただし、図示例からも分かるように、ブロックの基本となる記号、すなわちＡ，Ｂは付け直さない。これは、ブロックの基本となる記号は、そのブロックの曲想（雰囲気）を間接的に表現しているからである。また、楽節記号で“′”がついたものは、当該ブロック中最初に出現しないようにする。なお、“′”がついた楽節は、対応する“′”がつかない楽節の類似楽節を意味している。
【００３６】
図２に戻り、ステップＳ３では、ステップＳ１で入力された短縮条件中の削除条件に、楽節に対する削除指定がある場合には、当該削除指定楽節の楽節、小節番号およびコードの各データを削除する。
【００３７】
図４は、楽節に対する削除指定がある場合に、被削除コード進行データから対象楽節を削除した結果の一例を示す図である。同図において、（ａ）は、被削除コード進行データを示し、（ｂ）は、（ａ）の被削除コード進行データからブロックＡ１の先頭楽節ａを削除した結果を示し、（ｃ）は、（ａ）の被削除コード進行データからブロックＡ１の楽節ａ′を削除した結果を示している。なお、図４（ｂ）および（ｃ）から分かるように、この場合でも、削除後コード進行データの楽節記号は上記ルールに従って付け直されている。
【００３８】
図２に戻り、ステップＳ５では、ステップＳ１で入力された短縮条件中の削除条件に、小節に対する削除指定がある場合には、当該削除指定小節の小節番号およびコードの各データを削除する。
【００３９】
図５は、ブロック、楽節および小節に対する削除指定がある場合に、被削除コード進行データから対象ブロック、対象楽節および対象小節を削除した結果の一例を示す図である。同図において、（ａ）は、被削除コード進行データを示し、（ｂ）は、（ａ）の被削除コード進行データからブロックＡ１中の楽節ａ′、ブロックＡ１の楽節ｂ中の第１０小節、ブロックＢの楽節ｃ′中の第２３小節およびブロックＡ２を削除した結果を示している。なお、図５（ｂ）から分かるように、この場合でも、削除後コード進行データのブロック記号および楽節記号は上記ルールに従って付け直されている。
【００４０】
上記ステップＳ２〜Ｓ４の処理が、前記（１）（ｂ）のコード進行データ削除処理に相当する。
【００４１】
そして、続くステップＳ５およびＳ６は、前記（１）（ｃ）の削除後データ修正処理に相当する。すなわち、ステップＳ５では、変更（修正）対象コードデータを検出し、ステップＳ６では、所定の音楽ルール（音楽理論）に従って、より適切なコードデータに変更する。
【００４２】
ここで、変更対象コード（図５（ｂ）において、アンダーラインが引かれているコード）は、具体的には、次のように小節番号を参照して検出する。すなわち、
I.  小節番号が不連続になっている箇所
II. 曲先頭の小節番号が１番でないときには、その箇所
III.曲末尾の小節番号が、被削除コード進行データの末尾の小節番号と一致していないときには、その箇所
等である。この小節番号に対応するコードが仮変更対象コードとなる。そして、この仮変更対象コードが、所定条件（たとえば、トニックで始まり、終止形で終わる等）に合致しているか否かを判別し、合致してなければ、この仮変更対象コードを変更対象コードとする。このようにして検出された変更対象コードに対して、次のような方法により修正を施す。
【００４３】
図６は、被削除コード進行データの先頭のブロックまたは楽節を削除したときに、削除後コード進行データの変更対象コードを変更する方法を説明するための図であり、（ａ）は、被削除コード進行データを示し、（ｂ）は、削除後コード進行データを示し、（ｃ）は、変更対象コードを斜線を施すことによって示している。
【００４４】
図６の例とよく似た例は、図３（ｂ）の例である。すなわち、図６（ａ）のコードＣ１〜Ｃ４が、図３（ｂ）の第１３〜第１６小節のコード“Ｃ”〜“Ａ７”に対応するとした場合には、図６（ａ）および（ｂ）のコードＣ５〜Ｃ８は、図３（ｂ）の第１７〜第２０小節のコード“Ｄ”〜“Ａ７”に対応する。この場合、先頭コードは“Ｄ”となり、曲頭のコードとしては好ましくないので、変更する必要がある。
【００４５】
変更のルールとして、たとえば、
ルール１：次のコードＣ６がダイアトニックコードの場合には、曲頭のコードＣ５は、調のトニックコードとする（次のコードがダイアトニックコードであれば、どのようなコードであっても自然につながるからである）
ルール２：次のコードＣ６がノンダイアトニックコードの場合には、曲頭のコードＣ５は、コードＣ６へドミナントモーションするコードとする（これにより、自然につながるようになるからである）
の２つのルールを挙げることができる。
【００４６】
この変更のルールのいずれかを選択し、選択されたルールを変更対象コードに適用することによって修正する。
【００４７】
なお、この変更のルールは、先頭のコードＣ５のみを変更するものであるが、これに限らず、先頭から複数のコードを変更することにより、必ず「トニックコードから始める」ような処理を行うようにしてもよい。
【００４８】
図７は、被削除コード進行データの中間のブロックまたは楽節を削除したときに、削除後コード進行データの変更対象コードを変更する方法を説明するための図であり、（ａ）は、被削除コード進行データを示し、（ｂ）は、削除後コード進行データを示し、（ｃ）〜（ｅ）は、変更対象コードを斜線を施すことによって示している。
【００４９】
すなわち、図７の例では、削除区間の前区間の末尾コードＣ４と後区間の先頭コードＣ９との結合を自然にするものであり、この場合の変更対象コードは、そのコードを１つとするときには、先頭コードＣ９（図７（ｃ））または末尾コードＣ４（図７（ｄ））のいずれかとなり、そのコードを２つとするときには、末尾コードＣ４および先頭コードＣ９（図７（ｅ））となる。
【００５０】
（１）先頭コードＣ９を変更対象とする場合とは、末尾コードＣ４は前区間の最後コードであって、自然に終えているので不変としたい場合であり、この場合には、先頭コードＣ９を変更して末尾コードＣ４から自然につながるようにする。このとき、先頭コードＣ９の次のコードＣ１０とのつながりも不自然にならないように考慮する。
【００５１】
（２）末尾コードＣ４を変更対象とする場合とは、先頭コードＣ９は後区間の先頭コードであって、その次のコードＣ１０に自然につながっているので不変としたい場合であり、この場合には、末尾コードＣ４を変更して先頭コードＣ９へ自然につながるようにする。このとき、末尾コードＣ４の前のコードＣ３からのつながりも不自然にならないように考慮する。
【００５２】
（３）末尾コードＣ４および先頭コードＣ９の両方を変更対象とする場合とは、末尾コードＣ４または先頭コードＣ９のいずれか一方を不変としたい上記場合よりも、変更の自由度を優先したい場合である。この場合、末尾コードＣ４は、その前のコードＣ３からのつながりおよび先頭コードＣ９へのつながりを自然にするとともに、先頭コードＣ９は、その前のコード（末尾コード）Ｃ４からのつながりおよびその次のコードＣ１０へのつながりを自然にする必要がある。
【００５３】
なお、上記（１）〜（３）のいずれを採用するかは、ユーザが指定できるようにしてもよいし、もし、末尾コードＣ４があるブロックの末尾コードであれば、終止を強く要求されることから、末尾コードＣ４は変更しないで、先頭コードＣ９のみを変更するように自動的に指定されるようにしてもよい。
【００５４】
このようにして、変更対象コードが指定されたとして、次に、具体的な変更方法を説明する。
【００５５】
図８は、変更対象コードを変更するときに使用するテーブルデータの一部を抜き出したものである。
【００５６】
上記（１）が採用され、削除後コード進行データが図３（ｃ）である場合、図７（ｃ）のコードＣ４，Ｃ９およびＣ１０は、それぞれ、図３（ｃ）の第１６、第２５および第２６小節の“Ａ７”，“Ｃ”および“Ｅｍ”に対応する。これを図８のテーブルデータと照らし合わせると、コード根音“Ｄ”が優先度１の中にある「ａ→ｂの進行条件が＋完４」と「ｂ→ｃの進行条件が＋長２」の組み合わせに該当する（すなわち、「Ａ７→Ｄ」の進行が＋完全４度で、「Ｄ→Ｅｍ」の進行が＋長２度となる）ことが分かる。以後、このような組み合わせを（＋完４、＋長２）のように記述することにする。同様に、コード根音“Ｂ”が（＋長２、＋完４）に該当するので、この結果、コード根音“Ｄ”と“Ｂ”が変更後の根音候補に挙げられる。次に、指定されたコード種類（本実施の形態では、たとえば、メジャー、マイナー、ドミナント７およびマイナー♭５）に基づいて、Ｄ，Ｄｍ，Ｄ７，Ｄｍ♭５，Ｂ，Ｂｍ，Ｂ７およびＢｍ♭５の８種類の候補が挙げられる。この中に、もともとの変更対象コードである“Ｃ”は含まれていない。そこで、たとえば、Ｃメジャー調、ダイアトニックコード主体という特徴に基づいて、ＤｍとＢｍ♭５が選択され、複数存在するので、ランダムに、たとえばＤｍに決定する。
【００５７】
次に、上記（２）が採用され、削除後コード進行データが図３（ｃ）である場合、図７（ｄ）のコードＣ３，Ｃ４およびＣ９は、それぞれ、図３（ｃ）の第１５、第１６および第２５小節の“Ｇ７”，“Ａ７”および“Ｃ”に対応する。図８のテーブルデータの優先度１にはなく、優先度６の中にある（＋長３，＋短２）となるコード根音Ｂと、（＋短３，＋長２）となるコード根音Ｂ♭と、（＋完５，−長２）となるコード根音Ｄとが候補に挙げられる。次に、指定されたコード種類に基づいて、Ｂ，Ｂｍ，Ｂ７，Ｂｍ♭５，Ｂ♭，Ｂ♭７，Ｂ♭ｍ♭５，Ｄ，Ｄｍ，Ｄ７およびＤｍ♭５の１２種類の候補が挙げられる。この中に、もともとの変更対象コードである“Ａ７”は含まれていない。そこで、たとえば、Ｃメジャー調、ダイアトニックコード主体という特徴に基づいて、Ｂｍ♭５とＤｍが選択され、複数存在するので、ランダムに、たとえばＢｍ♭５に決定する。
【００５８】
さらに、上記（３）が採用され、削除後コード進行データが図３（ｃ）である場合も、上記（１）および（２）の場合と同様であるが、ただし、図８のテーブルデータは２つのコード進行推移に対応するものであるため、３つのコード進行推移に対応するものを採用する必要がある。なお、具体例を挙げた説明は、省略する。
【００５９】
図９は、被削除コード進行データの末尾のブロックまたは楽節を削除したときに、削除後コード進行データの変更対象コードを変更する方法を説明するための図であり、（ａ）は、被削除コード進行データを示し、（ｂ）は、削除後コード進行データを示し、（ｃ）および（ｄ）は、変更対象コードを示している。
【００６０】
図９の例とよく似た例は、図３（ｄ）の例である。すなわち、図９（ａ）のコードＣ１〜Ｃ４が、図３（ｄ）の第１７〜第２０小節のコード“Ｄ”〜“Ａ７”に対応するとした場合には、図９（ａ）および（ｂ）のコードＣ５〜Ｃ８は、図３（ｄ）の第２１〜第２４小節のコード“Ｄ”〜“Ｇ７”に対応する。この場合、末尾コードは“Ｇ７”となり、曲末尾のコードとしては好ましくないので、変更する必要がある。
【００６１】
変更のルールとして、たとえば、末尾コードＣ８のみ変更する場合（図９（ｃ））
ルール１：前のコードＣ７がダイアトニックコードの場合には、末尾コードＣ８はダイアトニックコードとして、
▲１▼調のトニックコード（図３（ｄ）の例では、“Ｃ”）
▲２▼４度上のコード（図３（ｄ）の例では、“Ｄｍ”）
のいずれかをランダムで選択する
ルール２：前のコードＣ７がノンダイアトニックコードの場合には、末尾のコードＣ８は、コードＣ７からドミナントモーションするコードとする
また、最後の２つのコードＣ７およびＣ８を変更する場合（図９（ｄ））
ルール３：最後の２つのコードＣ７およびＣ８がＣメジャーの場合には、Ｇ７→Ｃとし、さらに、その前のコードＣ６を、図７および図８を用いて説明した方法によって変更する
の３つのルールを挙げることができる。
【００６２】
なお、被削除コード進行データを削除する手順は、本実施の形態のように、ブロック、楽節および小節の順序に限らず、任意の順序で行えばよい。また、本コード進行データ長短縮処理によって生成されたコード進行データを、ブロック情報および楽節情報とともに、新規にデータベースに登録して、利用するようにしてもよい。さらに、短縮条件を変化させながら、本コード進行データ長短縮処理を繰り返し実行させることで、次々に新しいコード進行データを生成し登録するようにしてもよい。
【００６３】
次に、コード進行データ長伸張処理について説明する。
【００６４】
図１０は、本実施の形態のコード進行データ生成装置、特にＣＰＵ５が実行するコード進行データ長伸張処理の手順を示すフローチャートである。
【００６５】
同図において、まず、前記（２）（ａ）の伸張条件指定処理を実行する（ステップＳ１１）。伸張条件には、具体的に、次のようなものを挙げることができる。すなわち、追加するための条件（追加条件）としては、
I.  先頭ブロックをその直後に追加する
II. 曲末尾楽節をその直後に追加する
III.曲先頭と曲末尾を除いた任意部分にランダムに所定数の小節を追加する
等である。
【００６６】
なお、変更対象コードを変更するための条件としては、前記（１）（ａ）の短縮条件指定処理で説明した条件と同様の条件を使用すればよい。
【００６７】
ステップＳ１２〜Ｓ１４の処理は、前記（２）（ｂ）のコード進行データ追加処理に相当し、ステップＳ１５およびＳ１６の処理は、前記（２）（ｃ）の追加後データ修正処理に相当する。なお、ステップＳ１２〜Ｓ１４の各処理は、それぞれ、前記ステップＳ２〜Ｓ４の各処理から容易に推測でき、また、ステップＳ１５およびＳ１６の各処理は、前記ステップＳ５および６と同様であるので、その処理の詳細な説明は省略する。
【００６８】
図１１は、ブロック、楽節および小節に対する追加指定がある場合に、被追加コード進行データに対して対象ブロック、対象楽節および対象小節を追加した結果の一例を示す図である。同図において、（ａ）は、被追加コード進行データを示し、（ｂ）は、（ａ）の被追加コード進行データに対してブロックＡ、ブロックＡの第７小節およびブロックＢの楽節ａ′を追加した結果を示している。
【００６９】
なお、本コード進行データ長短縮処理やコード進行データ長伸張処理を応用することで、短縮あるいは伸張したい小節数が予め指定されており、その指定された小節数だけ短縮あるいは伸張させることもできる。具体的には、各楽節がすべて４小節からなり、４小節単位で短縮あるいは伸張するときには、楽節単位で短縮あるいは伸張させればよい。また、４小節単位以外で短縮あるいは伸張するときには、ブロック、楽節、小節の組み合わせがその短縮あるいは伸張したい長さとなるような組み合わせを求め（たとえば、１０小節を短縮あるいは伸張するときには、「２楽節＋２小節」という組み合わせを求め）、この組み合わせで短縮あるいは伸張させればよい。
【００７０】
また、本実施の形態では、各小節にコードが一つ割り当てられている例を示したが、これに限らず、各小節に複数のコードが割り当てられていてもよい。
【００７１】
このように、本実施の形態では、既存のコード進行データを所定の楽曲構成単位を基準にして伸縮させ、伸縮後のコード進行データ中にコード進行の不自然な箇所が生じると、その箇所のコード進行が自然なコード進行となるように、その箇所近傍のコードデータを自動変更して、新たなコード進行データを生成するようにしたので、既存のコード進行データから新たなコード進行データを少ない労力で簡単に生成することができる。さらに、生成された新たなコード進行データは、音楽理論に合致した品質のよいものとなる。
【００７２】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ５やＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００７３】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７４】
プログラムコードを供給するための記憶媒体としては、たとえば、前記フレキシブルディスク２０、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ２１、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ６などを用いることができる。また、他のＭＩＤＩ機器１００や通信ネットワーク１０１を介してサーバコンピュータ１０２からプログラムコードが供給されるようにしてもよい。
【００７５】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００７６】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ５などが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００７７】
【発明の効果】
以上説明したように、請求項１または３のいずれかに記載の発明によれば、ユーザは「短縮条件」を指定するだけで、新たなコード進行データが生成されるので、既存のコード進行データから新たなコード進行データを少ない労力で簡単に生成することが可能となる。
【００７８】
また、請求項２または４のいずれかに記載の発明によれば、ユーザは「伸張条件」を指定するだけで、新たなコード進行データが生成されるので、既存のコード進行データから新たなコード進行データを少ない労力で簡単に生成することが可能となる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態に係るコード進行データ生成装置の概略構成を示すブロック図である。
【図２】  図１のコード進行データ生成装置、特にＣＰＵが実行するコード進行データ長短縮処理の手順を示すフローチャートである。
【図３】  ブロックに対する削除指定がある場合に、被削除コード進行データから対象ブロックを削除した結果の一例を示す図である。
【図４】  楽節に対する削除指定がある場合に、被削除コード進行データから対象楽節を削除した結果の一例を示す図である。
【図５】  ブロック、楽節および小節に対する削除指定がある場合に、被削除コード進行データから対象ブロック、対象楽節および対象小節を削除した結果の一例を示す図である。
【図６】  被削除コード進行データの先頭のブロックまたは楽節を削除したときに、削除後コード進行データの変更対象コードを変更する方法を説明するための図である。
【図７】  被削除コード進行データの中間のブロックまたは楽節を削除したときに、削除後コード進行データの変更対象コードを変更する方法を説明するための図である。
【図８】  変更対象コードを変更するときに使用するテーブルデータの一部を抜き出したものである。
【図９】  被削除コード進行データの末尾のブロックまたは楽節を削除したときに、削除後コード進行データの変更対象コードを変更する方法を説明するための図である。
【図１０】  図１のコード進行データ生成装置、特にＣＰＵが実行するコード進行データ長伸張処理の手順を示すフローチャートである。
【図１１】  ブロック、楽節および小節に対する追加指定がある場合に、被追加コード進行データに対して対象ブロック、対象楽節および対象小節を追加した結果の一例を示す図である。
【符号の説明】
２  パネルスイッチ（短縮条件指定手段、伸張条件指定手段）
５  ＣＰＵ（供給手段、短縮条件指定手段、伸張条件指定手段、削除・結合手段、追加・結合手段、修正変更手段）
７  ＲＡＭ（供給手段）
１０  フレキシブルディスクドライブ（供給手段）
１１  ハードディスクドライブ（供給手段）
１２  ＣＤ−ＲＯＭドライブ（供給手段）
【図１】
0003747829.tif 000002
【図２】
0003747829.tif 000003
【図３】
0003747829.tif 000004
【図４】
0003747829.tif 000005
【図５】
0003747829.tif 000006
【図６】
0003747829.tif 000007
【図７】
0003747829.tif 000008
【図８】
0003747829.tif 000009
【図９】
0003747829.tif 000010
【図１０】
0003747829.tif 000011
【図１１】
0003747829.tif 000012