(57)【特許請求の範囲】
【請求項１】
複数のコード進行データを記憶した記憶手段と、
検索条件として、ユーザがコード進行を入力するための入力手段と、
前記入力されたコード進行に含まれる少なくとも一部のコードを該コードの代理コードに置き換え、前記記憶手段に記憶された各コード進行データの中から、該置き換え後のコード進行に一致または類似するコード進行データを検索する検索手段と
を有することを特徴とするコード進行検索装置。
【請求項２】
複数のコード進行データを記憶した記憶手段と、
検索条件として、ユーザがコード進行を入力するための入力手段と、
前記記憶手段に記憶された各コード進行データに含まれる少なくとも一部のコードを該コードの代理コードに置き換え、該置き換え後の各コード進行データの中から、前記入力されたコード進行に一致または類似するコード進行データを検索する検索手段と
を有することを特徴とするコード進行検索装置。
【請求項３】
検索条件として、ユーザがコード進行を入力するための入力ステップと、
前記入力されたコード進行に含まれる少なくとも一部のコードを該コードの代理コードに置き換え、複数のコード進行データが記憶された記憶手段に記憶された各コード進行データの中から、該置き換え後のコード進行に一致または類似するコード進行データを検索する検索ステップと
を有するコード進行検索方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【請求項４】
検索条件として、ユーザがコード進行を入力するための入力ステップと、
複数のコード進行データが記憶された記憶手段に記憶された各コード進行データに含まれる少なくとも一部のコードを該コードの代理コードに置き換え、該置き換え後の各コード進行データの中から、前記入力されたコード進行に一致または類似するコード進行データを検索する検索ステップと
を有するコード進行検索方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユーザが求めるコード進行をコード進行データベースから検索するコード進行検索装置および記憶媒体に関する。
【０００２】
【従来の技術】
コード進行データを多数記憶したコード進行データベースから、ユーザが求めるコード進行データを検索する方法としては、次のような方法が考えられる。すなわち、ユーザが求めるコード進行を入力し、該入力されたコード進行を含むコード進行データを、コード進行データベースの中から検索するという方法である。
【０００３】
【発明が解決しようとする課題】
しかし、上記方法では、ユーザが入力したコード進行を含むコード進行データがコード進行データベース中に存在するとは限らない。また、ユーザが入力したコード進行がデータベース中に存在する確率を上げるために、ユーザが求めるであろうコード進行データをすべて含むコード進行データベースを構築するということも考えられるが、その構築にかかる手間やコストは膨大なものとなってしまう。また、このようなデータベースを格納するだけの容量を備えた記憶媒体を用意しなければならないため、製造コストはさらに上昇する。
【０００４】
本発明は、この点に着目してなされたものであり、データベース構築の手間やデータ容量を低減させながら、ユーザが求めるコード進行がデータベース中から検索される確率を高めることが可能なコード進行検索装置および記憶媒体を提供することを目的とする。
【０００５】
【課題を解決するための手段】
【０００６】
上記目的を達成するため、請求項１に記載のコード進行検索装置は、複数のコード進行データを記憶した記憶手段と、検索条件として、ユーザがコード進行を入力するための入力手段と、前記入力されたコード進行に含まれる少なくとも一部のコードを該コードの代理コードに置き換え、前記記憶手段に記憶された各コード進行データの中から、該置き換え後のコード進行に一致または類似するコード進行データを検索する検索手段とを有することを特徴とする。
【０００７】
請求項２に記載のコード進行検索装置は、複数のコード進行データを記憶した記憶手段と、検索条件として、ユーザがコード進行を入力するための入力手段と、前記記憶手段に記憶された各コード進行データに含まれる少なくとも一部のコードを該コードの代理コードに置き換え、該置き換え後の各コード進行データの中から、前記入力されたコード進行に一致または類似するコード進行データを検索する検索手段とを有することを特徴とする。
【０００９】
請求項３に記載の記憶媒体は、検索条件として、ユーザがコード進行を入力するための入力ステップと、前記入力されたコード進行に含まれる少なくとも一部のコードを該コードの代理コードに置き換え、複数のコード進行データが記憶された記憶手段に記憶された各コード進行データの中から、該置き換え後のコード進行に一致または類似するコード進行データを検索する検索ステップとを有するコード進行検索方法をコンピュータに実行させるプログラムを格納したことを特徴とする。
【００１０】
請求項４に記載の記憶媒体は、検索条件として、ユーザがコード進行を入力するための入力ステップと、複数のコード進行データが記憶された記憶手段に記憶された各コード進行データに含まれる少なくとも一部のコードを該コードの代理コードに置き換え、該置き換え後の各コード進行データの中から、前記入力されたコード進行に一致または類似するコード進行データを検索する検索ステップとを有するコード進行検索方法をコンピュータに実行させるプログラムを格納したことを特徴とする。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１２】
図１は、本発明の一実施の形態に係るコード進行検索装置を含む自動作曲装置の概略構成を示すブロック図である。
【００１３】
同図に示すように、本実施の形態の自動作曲装置は、音高情報を入力するための鍵盤１と、各種情報を入力するための複数のスイッチを備えたパネルスイッチ２と、鍵盤１の各鍵の押鍵状態を検出する押鍵検出回路３と、パネルスイッチ２の各スイッチの押下状態を検出するスイッチ検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムやテーブルデータ等を記憶するＲＯＭ６と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば大型液晶ディスプレイ（ＬＣＤ）若しくはＣＲＴ（Cathode Ray Tube）ディスプレイおよび発光ダイオード（ＬＥＤ）等を備えた表示装置９と、記憶媒体であるフロッピディスク（ＦＤ）２０をドライブするフロッピディスクドライブ（ＦＤＤ）１０と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するハードディスク（図示せず）をドライブするハードディスクドライブ（ＨＤＤ）１１と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するコンパクトディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）２１をドライブするＣＤ−ＲＯＭドライブ（ＣＤ−ＲＯＭＤ）１２と、外部からのＭＩＤＩ（Musical Instrument Digital Interface）信号を入力したり、ＭＩＤＩ信号を外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１３と、通信ネットワーク１０１を介して、たとえばサーバコンピュータ１０２とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１４と、鍵盤１から入力された演奏データや予め設定された演奏データ等を楽音信号に変換する音源回路１５と、該音源回路１５からの楽音信号に各種効果を付与するための効果回路１６と、該効果回路１６からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１７とにより構成されている。
【００１４】
上記構成要素３〜１６は、バス１８を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＭＩＤＩＩ／Ｆ１３には他のＭＩＤＩ機器１００が接続され、通信Ｉ／Ｆ１４には通信ネットワーク１０１が接続され、音源回路１５には効果回路１６が接続され、効果回路１６にはサウンドシステム１７が接続されている。
【００１５】
ＨＤＤ１１のハードディスクには、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、このハードディスクに制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００１６】
ＣＤ−ＲＯＭドライブ１２のＣＤ−ＲＯＭ２１から読み出された制御プログラムや各種データは、ＨＤＤ１１内のハードディスクにストアされる。これにより、制御プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このＣＤ−ＲＯＭドライブ１２以外にも、外部記憶装置として、光磁気ディスク（ＭＯ）装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００１７】
ＭＩＤＩＩ／Ｆ１３は、専用のものに限らず、ＲＳ−２３２ＣやＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェースより構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信してもよい。
【００１８】
通信Ｉ／Ｆ１４は、上述のように、たとえばＬＡＮ（Local Area Network）やインターネット、電話回線等の通信ネットワーク１０１に接続されており、該通信ネットワーク１０１を介して、サーバコンピュータ１０２に接続される。ＨＤＤ１１内のハードディスクに上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１４は、サーバコンピュータ１０２からプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、自動作曲装置）は、通信Ｉ／Ｆ１４および通信ネットワーク１０１を介してサーバコンピュータ１０２へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータ１０２は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク１０１を介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ１４を介して、これらプログラムやパラメータを受信してＨＤＤ１１内のハードディスクに蓄積することにより、ダウンロードが完了する。
【００１９】
この他、外部コンピュータ等との間で直接データのやりとりを行うためのインターフェースを備えてもよい。
【００２０】
なお、本実施の形態の自動作曲装置は、上述のように、標準的なハードウェア構成の汎用パーソナルコンピュータ（ＰＣ）上に実現するようにしたが、これに限らず、たとえばＦＤＤ１０やＣＤ−ＲＯＭＤ１２を省略したモバイルＰＣ上に実現するようにしてもよい。さらに、汎用ＰＣ上にではなく、専用機器として構成するようにしてもよい。
【００２１】
以上のように構成された自動作曲装置が実行する制御処理を、まず、図２および図３を参照して説明し、次に、図４〜図６を参照してさらに詳細に説明する。
【００２２】
図２は、本実施の形態の自動作曲装置が実行する各種制御処理を視覚的に表した図であり、同図に示すように、本実施の形態の自動作曲装置は、主として次の制御処理を実行する。すなわち、
１）前記ハードディスク上に構築されたコード進行データのデータベース（所定長、たとえば１曲分のコード進行データを多数記憶したもので、以下、「コード進行データベース」という）１１ａから、ユーザが入力した作曲条件（ブロック３１）に応じたコード進行データを選択するコード進行データ選択処理（ブロック３３）
２）上記１）のコード進行データを、ユーザが入力した変形・加工条件（ブロック３２）に応じて変形・加工するコード進行データ変形・加工処理（ブロック３５）
３）前記ハードディスク上に構築されたメロディ生成用データのデータベース（以下、「メロディ生成用データベース」という）１１ｂから、ユーザが入力した前記作曲条件に応じたメロディ生成用データを選択するメロディ生成用データ選択処理（ブロック３４）
４）上記３）のメロディ生成用データを、ユーザが入力した前記変形・加工条件に応じて変形・加工するメロディ生成用データ変形・加工処理（ブロック３６）
５）上記４）のメロディ生成用データを、上記２）のコード進行データに基づいて修正するデータ修正処理（ブロック３７）
６）上記２）のコード進行データと上記５）のメロディ生成用データに基づいてメロディを生成するメロディ生成処理（ブロック３８）
作曲条件の例としては、「曲のスタイル」、「ジャンル」、「楽曲構成」および「コード進行の一部」等を挙げることができ、また、変形・加工条件のうちコード進行に関連する例としては、「変更したいコードの位置（たとえば区間）や頻度」、「変更・削除・追加のいずれかの態様」、「置き換えるべき代理コードの種類（ドミナント・コード、サブドミナント・コード等）」、「○○風（たとえばクラシック風）」等を挙げることができ、変形・加工条件のうちメロディ生成用データに関連する例としては、「変更したいパラメータ（たとえば開始音）」、「変更方法（たとえば、Ｃ３からＢ３までの間でコードの第５音）」等を挙げることができる。ユーザはこれらの作曲条件や変形・加工条件を、たとえば前記鍵盤１やパネルスイッチ２を用いて入力する。
【００２３】
上記１）のコード進行データ選択処理では、次のいずれかの方法を用いて、コード進行データベース１１ａから、上記入力作曲条件に応じたコード進行データを検索し、ユーザに提示する。すなわち、
１）入力されたコード進行の一部（入力作曲条件中の一項目であって、上記所定長のコード進行データの一部区間、たとえば先頭の２小節分。以下、「入力コード進行」という）および他の入力作曲条件に一致（完全一致のみでなく一部一致も含む。以下、この括弧書きがなくても同様）または類似するコード進行データをコード進行データベース１１ａから検索するとともに、入力コード進行の一部または全部を代理コードで置き換えたコード進行および他の入力作曲条件に一致または類似するコード進行データをコード進行データベース１１ａから検索して、検索された両コード進行データを候補として提示する
２）入力コード進行および他の入力作曲条件に一致または類似するコード進行データをコード進行データベース１１ａから検索するとともに、コード進行データベース１１ａから他の入力条件に一致するコード進行データを選択し、各コード進行データの一部または全部をそれぞれ代理コードで置き換え、この置き換え後のコード進行データから、入力コード進行に一致または類似するコード進行データを検索して、検索された両コード進行データを候補として提示する
本実施の形態では、代理コードは、通常の音楽用語の意味、すなわち主として主要和音（トニック・コード、ドミナント・コード、サブドミナント・コード）のそれぞれの機能を代理するコードの意味で使用している。しかし、これに限らず、他のコードで置き換え可能なものすべてを代理コードと呼ぶようにしてもよい。このような意味が拡張された代理コードの例としては、たとえば、楽曲の基礎進行と関係なしに、装飾音（ornament）として本来の機能コードを一時的に代理するもの、具体的には、「循環コード（turnarounds）」、「経過和音（passing chord）」、「クリシェ（cliche）」等を挙げることができる。
【００２４】
図３は、ダイアトニックコードとその代理コードとを対応づける代理コードテーブルの一例を示す図であり、このような代理コードテーブルが予め作成され、たとえば前記ＲＯＭ６に記憶されている。この代理コードテーブルは、置き換えるべき代理コードを抽出するために用いられる。
【００２５】
図３において、代理コードテーブルは、ダイアトニックコード、各コードの機能、代理コード、および次のコードへのモーション（進行）によって構成されている。ただし、IIｍ７はサブドミナント・コードの代理コードであり、IIIｍ７およびＶIｍ７はトニック・コードの代理コードであり、さらに、ＶII７(♭５)には代理コードがないため、対応する代理コードは記載されていない。
【００２６】
たとえば、上記コード進行データ選択処理１）の方法１）では、入力コード進行の一部または全部の各コードと上記代理コードテーブルのダイアトニックコードとを比較し、置き換えるべき代理コードを決定する。本実施の形態では、代理コードは複数個記憶されている（たとえば、Ｉには、IIIｍ７およびＶIｍ７の２つの代理コードが登録されている）ので、いずれか１つをランダムに選択して決定してもよいし、優先順位を付けておき、この優先順位に従って選択し決定するようにしてもよい。また、登録されているすべての代理コードで置き換えるようにしてもよい。このようにすれば、ユーザに提示できるコード進行の数が増加し、ユーザの選択の幅を向上させることができる。
【００２７】
なお、上記コード進行データ選択処理１）の方法２）においても同様に、上記代理コードテーブルを用いて置き換えるべき代理コードを決定する。
【００２８】
上記２）のコード進行データ変形・加工処理では、ユーザが、選択されたコード進行データに対して、その一部データの変更、追加、修正または削除等の変形・加工条件を入力する（ブロック３２）と、この入力内容に応じて当該コード進行データが変形または加工される。
【００２９】
また、上記３）のメロディ生成用データ選択処理では、上述のように入力された作曲条件に基づいてメロディ生成用データベース１１ｂが検索され、最も適合するメロディ生成用データが選択される。
【００３０】
さらに、上記４）のメロディ生成用データ変形・加工処理では、ユーザが、選択されたメロディ生成用データに対して、その開始音や重要音等の変更（変形・加工条件）を入力する（ブロック３２）と、この入力内容に応じて当該メロディ生成用データが変形または加工される。
【００３１】
そして、上記５）のデータ修正処理では、上記変形または加工されたメロディ生成用データ中に、上記変形または加工されたコード進行データに関連するデータがある場合（たとえば開始音をコード音に設定する場合）には、そのデータが当該コード進行データ中の対応するデータによって修正される。
【００３２】
次に、本実施の形態の自動作曲装置が実行する制御処理をさらに詳細に説明する。
【００３３】
図４は、コード進行データ選択処理の手順を示すフローチャートであり、前記ブロック３３で実行されるものである。
【００３４】
同図において、まず、前記ブロック３１で入力されたコード進行（入力コード進行）を、たとえば前記ＲＡＭ７のワークエリアに格納する（ステップＳ１）。ここで、コード進行の入力は、前述したように、鍵盤１を用いてリアルタイムに、または、パネルスイッチ２内の和音指定スイッチ（図示せず）を用いて１つずつ、たとえば所定区間分（たとえば２小節分）入力するようにする。もちろん、入力方法はこれに限らず、所定区間ではなく所定音符数のコード進行を入力するようにしてもよいし、予め各種入力コード進行を作成しておき、この中から選択するようにしてもよい。
【００３５】
次に、入力コード進行に基づいて前記コード進行データベース１１ａを検索し、入力コード進行に一致または類似するコード進行を抽出する（ステップＳ２）。より具体的には、入力コード進行と、コード進行データベース１１ａ中の前記入力作曲条件（入力コード進行は除く）に適合するすべてのコード進行データとを１つずつ比較し、一致または類似するデータを抽出する。比較対象は、入力コード進行とコード進行データベース１１ａ中の選択された各コード進行データの一部であってもよいし、入力コード進行とコード進行データベース１１ａ中の選択された各コード進行データの全体であってもよい。前者の例、すなわち一部を比較する例としては、入力コード進行と、コード進行データベース１１ａ中の各コード進行データの先頭部やその他の部分との比較が挙げられる。また、後者、すなわち全体の比較において、入力コード進行とコード進行データベース１１ａ中のコード進行データとの類似判断は、たとえば、全コード数に対する一致コード数（この場合には、コードの配列順序も関係する）の割合や、全体を通してのコード出現率（この場合には、コードの配列順序は関係しない）等に基づいて行うようにすればよい。
【００３６】
続くステップＳ３では、入力コード進行を構成する各コードに対して代理コードを抽出する。具体的には、前記図３で説明した代理コードテーブルから、置き換え可能な代理コードを検索して抽出する。
【００３７】
次に、抽出された代理コードに基づいてコード進行データベース１１ａを検索し、当該コード進行に一致または類似するコード進行を抽出する（ステップＳ４）。より具体的には、前記コード進行データ選択処理１）の方法１）または２）のいずれかの方法を用いてコード進行を抽出する。すなわち、入力コード進行の各コードを、抽出された代理コードに置き換え、この置き換えられたコードに基づいて、前記ステップＳ２と同様にコード進行データベース１１ａを検索する（方法１））か、または、入力コード進行の各コードはそのままで、コード進行データベース１１ａ中の選択されたコード進行の各コードを代理コードで置き換え、この置き換え後のコード進行と入力コード進行とを比較する（方法２））。
【００３８】
そして、このようにして抽出されたコード進行データを、たとえば表示装置９に表示してユーザに提示し、その中からユーザに選択させる（ステップＳ５）。このとき、コード進行データは、通常複数個抽出されるが、そのすべてをユーザに対して提示するようにしてもよいし、または、そのうちの所定個を、たとえば類似度の高いものから順に提示するようにしてもよい。または、複数個提示するのではなく、所定の条件に合致する１つ、またはランダムに選択された１つのみを提示するようにしてもよい。所定の条件の例としては、類似度が最も高いこと等が挙げられる。
【００３９】
このように、本実施の形態では、入力コード進行に合致または類似するコード進行データの抽出に加えて、入力コード進行の各コードに対する代理コードに合致または類似するコード進行データの抽出も行うことができるようにしたので、コード進行データベース１１ａに登録するデータの容量を削減しながら、雰囲気が若干異なる様々なコード進行、すなわちユーザが求めるコード進行を得ることができる。また、ユーザは抽出の基礎となるコード進行を入力するだけで、求めるコード進行の候補が自動的に得られるので、ユーザの手間を削減することができる。
【００４０】
図５は、コード進行データ変形・加工処理の手順を示すフローチャートであり、前記ブロック３５で実行されるものである。
【００４１】
同図において、まず、前記ブロック３２で入力された変形・加工条件を、たとえば前記ＲＡＭ７のワークエリアに格納する（ステップＳ１１）。
【００４２】
次に、代理コードテーブルを参照して、入力された変形・加工条件に応じた代理コードを抽出し、この代理コードで、前記ステップＳ５で選択されたコード進行データを変形（または加工）した（ステップＳ１２）後に、本処理を終了する。
【００４３】
このように、本実施の形態では、コード進行データベース１１ａから抽出したコード進行データを代理コードで変形して、ユーザに提示するようにしたので、コード進行データベース１１ａの容量を削減しつつ、ユーザが求める幅の広いコード進行データを得ることができる。
【００４４】
図６は、メロディ生成処理の手順を示すフローチャートであり、前記ブロック３８で実行されるものである。なお、本メロディ生成処理は、変形後のコード進行およびメロディ生成用データが次の状態である具体例に適用されたものである。すなわち、
コード進行：ＣＭ，Ｄｍ，Ｇ７，ＣＭ
メロディ生成用データ：Ｃメジャ調、４拍子、４小節、音域Ｃ２−Ｃ４、開始音はＣ３−Ｂ３間＆対象コードの第５音、終了音はＣ２−Ｂ２間＆対象コードの根音
このため、変形後のコード進行およびメロディ生成用データが上記状態と異なるときには、それに応じてメロディ生成処理の手順も異なるが、その変更は当業者であれば簡単に行うことができる。
【００４５】
図６において、まず、ランダムに音高および音長を発生させる（ステップＳ２１）。具体的には、たとえば、各種音高および音長にそれぞれ整数値を付与しておき、ソフトウェアによって乱数を発生させ、この乱数に一致する音高および音長を選択することにより、ランダムに音高および音長を発生させる。
【００４６】
次に、発生した音高がＣメジャ調（メロディ生成用データの一要素）の音階音であるか否かを判別し（ステップＳ２２）、Ｃメジャ調の音階音でないときには、上記ステップＳ２１に戻って、再度音長および音長を発生させる一方、Ｃメジャ調の音階音のときにはステップＳ２３に進む。
【００４７】
ステップＳ２３では、、発生した音高の音域がＣ２からＣ３までの範囲内（メロディ生成用データの一要素）にあるか否かを判別し、この範囲内にないときにはステップＳ２１に戻る一方、この範囲内にあるときにはステップＳ２４に進む。
【００４８】
ステップＳ２４では、発生した音長を加算（累算）し、続くステップＳ２５では、この発生した音が開始音であるか否かを判別する。
【００４９】
ステップＳ２５で、発生した音が開始音のときには、この開始音の音高（前記ステップＳ２１で発生された音高）を、Ｃ３からＢ３までの範囲内（メロディ生成用データの一要素）でＣＭコード（コード進行の最初のコード）の第５音（メロディ生成用データの一要素）、すなわちＧ３に修正した後に、ステップＳ２８に進む一方、発生した音が開始音でないときには、ステップＳ２４で加算された音長加算結果が拍数×小節長であるか否か、換言すると、発生した音が終了音であるか否かを判別する（ステップＳ２７）。
【００５０】
ステップＳ２７で、発生した音が終了音でないとき（音長加算結果≠拍数×小節長）にはステップＳ２８に進む一方、発生した音が終了音のとき（音長加算結果＝拍数×小節長）にはステップＳ２９に進む。
【００５１】
ステップＳ２８では、処理（修正）された（ただし、ステップＳ２７を経由してステップＳ２８に移行した場合には、処理はされていない）音高と、発生した音長とを組にしてメロディとして採用し、前記ステップＳ２１に戻って、上述の処理を繰り返す。
【００５２】
ステップＳ２９では、発生した音が終了音であるので、この終了音の音高（前記ステップＳ２１で発生された音高）を、Ｃ２からＢ２までの範囲内（メロディ生成用データの一要素）でＣＭコード（コード進行の最後のコード）の根音（メロディ生成用データの一要素）、すなわちＣ２に修正し、続くステップＳ３０では、ステップＳ２８と同様にして、処理（修正）された音高と、発生した音長とを組にしてメロディとして採用した後に、本メロディ生成処理を終了する。
【００５３】
なお、本メロディ生成処理では、開始音および終了音をコードの特定の音とした（すなわち、開始音と終了音のみ、コード進行データを参照してメロディを生成した）が、これに限らず、たとえば、各小節内の重要音（強拍等）をそれぞれコードの特定音としてもよい。たとえば、各小節内の重要音については、ステップＳ２１で発生された音高が、コード進行データ中の該小節に対応したコードの構成音である場合のみ採用するようにしてもよい。
【００５４】
また、本メロディ生成処理では、開始音および終了音以外の音はランダムに（演算を用いて）発生されたものを採用するようにしたが、これに限らず、メロディの雛形を予め作成しておき、これをコード進行データを参照して適宜変更または加工することで、メロディを生成するようにしてもよい。
【００５５】
このように、本実施の形態では、変形されたコード進行データ（の一部）を用いてメロディ生成を行うようにしたので、ユーザが意図するコード進行に応じたメロディを生成することができる。
【００５６】
なお、本実施の形態においては、コード進行データベースから検索条件に合うコード進行データを検索し、検索されたコード進行データを用いて自動作曲をするようにした。このため、コード進行データを検索するときの検索条件として、「コード進行の一部」に加えて、自動作曲される曲の「スタイル」、「ジャンル」、「楽曲構成」等も入力するようにしたが、「スタイル」、「ジャンル」、「楽曲構成」等を検索条件として入力しなくてもよい。或いはこれら以外の検索条件を追加してもよい。また、検索条件として入力する「コード進行の一部」の例として、「先頭の２小節分」のコード進行を入力する例を示したが、これに限らず、「コード進行のうちの任意の区間」のコード進行を入力するようにしてもよいし、「任意の長さ」のコード進行を入力するようにしてもよい。
【００５７】
また、コード進行データベースから検索したコード進行データを自動作曲に利用するものに限らず、自動伴奏（所定の基準コードに基づいて作成された伴奏パターンデータ中の音高データを、検索したコード進行データにあうように修正することによって自動伴奏音を発生する）に利用したり、コード進行表示（検索したコード進行データに基づいて、ディスプレイにコードネームで表示したり、鍵盤楽器の各鍵に対応して設けたＬＥＤのうちコードに対応する構成音を点灯させる等）に利用したりしてもよい。
【００５８】
また、コード進行データベースに記憶したコード進行データは、１曲分のコード進行データ（１曲として完成されたコード進行データ）であるとしたが、これに限らず、１曲として完成していなくてもよいし、長さも任意の長さのものであってよい。たとえば、典型的な数小節分の「コード進行素片」をデータベースとして記憶したものであってもよい。この「コード進行素片」データベースの場合、検索条件として入力するコード進行は該コード進行素片の長さよりも短いコード進行であってもよいし、コード進行素片と同じ長さのコード進行であってもよい。同じ長さのコード進行を入力する場合は「入力したコード進行に類似した他のコード進行素片」を得るために利用することができる。
【００５９】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ５やＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは云うまでもない。
【００６０】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６１】
プログラムコードを供給するための記憶媒体としては、たとえば、前記フロッピーディスク２０、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ２１、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ６などを用いることができる。また、他のＭＩＤＩ機器１００や通信ネットワーク１０１を介してサーバコンピュータ１０２からプログラムコードが供給されるようにしてもよい。
【００６２】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【００６３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ５などが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【００６４】
【発明の効果】
【００６５】
以上説明したように、請求項１または３に記載の発明によれば、複数のコード進行データを記憶した記憶手段から、検索条件としてユーザが入力したコード進行に含まれる少なくとも一部のコードを該コードの代理コードに置き換え、該置き換え後のコード進行データに一致または類似するコード進行データをコード進行データベース中から検索するようにしたので、ユーザが入力したコード進行に加えて代理コードによる置き換え後のコード進行も検索条件となり、この結果、ユーザが求めるコード進行データがデータベースから検索される確率を高めることができる。
【００６６】
また、請求項２または４に記載の発明によれば、記憶手段に記憶された複数のコード進行データの各コード進行データに含まれる少なくとも一部のコードを該コードの代理コードに置き換え、該置き換え後の各コード進行データの中から、検索条件としてユーザが入力したコード進行に一致または類似するコード進行データを検索するようにしたので、コード進行データベース中に登録されているコード進行データの種類が実質的に増えることになる。この結果、ユーザが求めるコード進行データがデータベースから検索される確率を高めることができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るコード進行検索装置を含む自動作曲装置の概略構成を示すブロック図である。
【図２】図１の自動作曲装置が実行する各種制御処理を視覚的に表した図である。
【図３】ダイアトニックコードとその代理コードとを対応づける代理コードテーブルの一例を示す図である。
【図４】コード進行データ選択処理の手順を示すフローチャートである。
【図５】コード進行データ変形・加工処理の手順を示すフローチャートである。
【図６】メロディ生成処理の手順を示すフローチャートである。
【符号の説明】
１  鍵盤（入力手段）
２  パネルスイッチ（入力手段）
５  ＣＰＵ（検索手段）
６  ＲＯＭ（記憶手段）
７  ＲＡＭ（記憶手段）
１１  ＨＤＤ（記憶手段）
【図１】
0003637952.tif 000002
【図２】
0003637952.tif 000003
【図３】
0003637952.tif 000004
【図４】
0003637952.tif 000005
【図５】
0003637952.tif 000006
【図６】
0003637952.tif 000007