(57)【特許請求の範囲】
【請求項１】
コード進行データおよび調データを入力する入力手段と、
前記入力されたコード進行データおよび調データに基づいて、該コード進行データを構成するコードがダイアトニック・コードであるか、ノンダイアトニック・コードであるかを判別する判別手段と、
前記入力されたコード進行データ中、アベイラブル・ノート・スケールを決定する対象となる対象コードのアベイラブル・ノート・スケールを決定する決定手段であって、
前記判別手段によって、前記対象コードがダイアトニック・コードと判別された場合、
前記判別手段によって、前記対象コードの直前に位置する直前コードがダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールをダイアトニック・ノート・スケールに決定する第１の決定方法により、当該対象コードのアベイラブル・ノート・スケールを決定し、
前記判別手段によって、前記直前コードがノンダイアトニック・コードと判別され、前記対象コードの直後に位置する直後コードがダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールをダイアトニック・ノート・スケールに決定する前記第１の決定方法と、当該対象コードのアベイラブル・ノート・スケールを前記直前コードおよび前記直後コードの各構成音に基づいて決定する第２の決定方法とをランダムに選択し、該選択された決定方法を用いて当該対象コードのアベイラブル・ノート・スケールを決定し、
前記判別手段によって、前記直前コードおよび前記直後コードの双方がノンダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールを前記第２の決定方法により決定し、
前記判別手段によって、前記対象コードがノンダイアトニック・コードと判別された場合、当該対象コードのアベイラブル・ノート・スケールを前記第２の決定方法により決定するものと
を有することを特徴とするアベイラブル・ノート・スケール決定装置。
【請求項２】
入力されたコード進行データおよび調データに基づいて、該コード進行データを構成するコードがダイアトニック・コードであるか、ノンダイアトニック・コードであるかを判別する判別モジュールと、
前記入力されたコード進行データ中、アベイラブル・ノート・スケールを決定する対象となる対象コードのアベイラブル・ノート・スケールを決定する決定モジュールであって、
前記判別モジュールによって、前記対象コードがダイアトニック・コードと判別された場合、
前記判別モジュールによって、前記対象コードの直前に位置する直前コードがダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールをダイアトニック・ノート・スケールに決定する第１の決定方法により、当該対象コードのアベイラブル・ノート・スケールを決定し、
前記判別モジュールによって、前記直前コードがノンダイアトニック・コードと判別され、前記対象コードの直後に位置する直後コードがダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールをダイアトニック・ノート・スケールに決定する前記第１の決定方法と、当該対象コードのアベイラブル・ノート・スケールを前記直前コードおよび前記直後コードの各構成音に基づいて決定する第２の決定方法とをランダムに選択し、該選択された決定方法を用いて当該対象コードのアベイラブル・ノート・スケールを決定し、
前記判別モジュールによって、前記直前コードおよび前記直後コードの双方がノンダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールを前記第２の決定方法により決定し、
前記判別モジュールによって、前記対象コードがノンダイアトニック・コードと判別された場合、当該対象コードのアベイラブル・ノート・スケールを前記第２の決定方法により決定するものと
を含む、コンピュータが実現できるプログラムを格納した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力されたコード進行を構成する各コードに適合したアベイラブル・ノート・スケールを決定するアベイラブル・ノート・スケール決定装置および記憶媒体に関する。
【０００２】
【従来の技術】
従来、メロディ生成装置としては、所望の調情報および所望のコード情報を入力するとともに、これらの調情報およびコード情報に基づいてアベイラブル・ノート・スケールを検出し、検出に係るＡＶＮＳ内の音をメロディ音として選択することによりメロディを生成するようにしたものが、この出願と同一の出願人により提案されている（特願平１０−１６６３０２号）。このようなメロディ生成装置によれば、ノンダイアトニックなコードに相応しい自然なメロディを生成可能である。
【０００３】
【発明が解決しようとする課題】
一般に、アベイラブル・ノート・スケールは、１つの調と１つのコードとに対応して１つとは限らず、複数存在することもある。上記した従来技術では、アベイラブル・ノート・スケール検出処理において各調毎に１つのコードが与えられるたびに１つのアベイラブル・ノート・スケールを検出していたので、１つの調と１つのコードとに対応して複数のアベイラブル・ノート・スケールが存在するような場合には、複数のＡＶＮＳのうちメロディ生成にとって好ましくないアベイラブル・ノート・スケールが検出されることがあった。このため、検出に係るＡＶＮＳに基づいてメロディを生成すると、コード進行に対するメロディの適合性が良好でないことがあった。
【０００４】
また、調とコードに基づいてアベイラブル・ノート・スケールを検出することは可能であるが、コード進行から調を自動検出するのは困難であった。すなわち、典型的なコード進行であれば比較的容易に調を自動検出することができるが、コード進行の途中で転調している場合は、転調を自動検出するのが容易ではなく、特に典型的なコード進行ではない場合には転調の検出は困難であった。このため、コードに適合したアベイラブル・ノート・スケールを決定するのが困難であった。
【０００５】
本発明は、この点に着目してなされたものであり、転調を検出せずにコードに適合したアベイラブル・ノート・スケールを決定することができるアベイラブル・ノート・スケール決定装置および記憶媒体を提供することを目的とする。
【０００６】
【課題を解決するための手段】
【００１０】
上記目的を達成するため、請求項１に記載のアベイラブル・ノート・スケール決定装置は、コード進行データおよび調データを入力する入力手段と、前記入力されたコード進行データおよび調データに基づいて、該コード進行データを構成するコードがダイアトニック・コードであるか、ノンダイアトニック・コードであるかを判別する判別手段と、前記入力されたコード進行データ中、アベイラブル・ノート・スケールを決定する対象となる対象コードのアベイラブル・ノート・スケールを決定する決定手段であって、前記判別手段によって、前記対象コードがダイアトニック・コードと判別された場合、前記判別手段によって、前記対象コードの直前に位置する直前コードがダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールをダイアトニック・ノート・スケールに決定する第１の決定方法により、当該対象コードのアベイラブル・ノート・スケールを決定し、前記判別手段によって、前記直前コードがノンダイアトニック・コードと判別され、前記対象コードの直後に位置する直後コードがダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールをダイアトニック・ノート・スケールに決定する前記第１の決定方法と、当該対象コードのアベイラブル・ノート・スケールを前記直前コードおよび前記直後コードの各構成音に基づいて決定する第２の決定方法とをランダムに選択し、該選択された決定方法を用いて当該対象コードのアベイラブル・ノート・スケールを決定し、前記判別手段によって、前記直前コードおよび前記直後コードの双方がノンダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールを前記第２の決定方法により決定し、前記判別手段によって、前記対象コードがノンダイアトニック・コードと判別された場合、当該対象コードのアベイラブル・ノート・スケールを前記第２の決定方法により決定するものとを有することを特徴とする。
ここで、直前コードまたは直後コードが存在しない場合があるが、この場合には、たとえば、入力されたコード進行に調が付随しているとして、この調のトニックコードをその代理コードにすればよい（以下、請求項が変わっても同様である）。
【００１４】
請求項２に記載の記憶媒体は、入力されたコード進行データおよび調データに基づいて、該コード進行データを構成するコードがダイアトニック・コードであるか、ノンダイアトニック・コードであるかを判別する判別モジュールと、前記入力されたコード進行データ中、アベイラブル・ノート・スケールを決定する対象となる対象コードのアベイラブル・ノート・スケールを決定する決定モジュールであって、前記判別モジュールによって、前記対象コードがダイアトニック・コードと判別された場合、前記判別モジュールによって、前記対象コードの直前に位置する直前コードがダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールをダイアトニック・ノート・スケールに決定する第１の決定方法により、当該対象コードのアベイラブル・ノート・スケールを決定し、前記判別モジュールによって、前記直前コードがノンダイアトニック・コードと判別され、前記対象コードの直後に位置する直後コードがダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールをダイアトニック・ノート・スケールに決定する前記第１の決定方法と、当該対象コードのアベイラブル・ノート・スケールを前記直前コードおよび前記直後コードの各構成音に基づいて決定する第２の決定方法とをランダムに選択し、該選択された決定方法を用いて当該対象コードのアベイラブル・ノート・スケールを決定し、前記判別モジュールによって、前記直前コードおよび前記直後コードの双方がノンダイアトニック・コードと判別されたときには、当該対象コードのアベイラブル・ノート・スケールを前記第２の決定方法により決定し、前記判別モジュールによって、前記対象コードがノンダイアトニック・コードと判別された場合、当該対象コードのアベイラブル・ノート・スケールを前記第２の決定方法により決定するものとを含む、コンピュータが実現できるプログラムを格納したことを特徴とする。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１６】
図１は、本発明の一実施の形態に係るアベイラブル・ノート・スケール（以下、「ＡＶＮＳ」という）決定装置の概略構成を示すブロック図である。
【００１７】
同図に示すように、本実施の形態のＡＶＮＳ決定装置は、音高情報を入力するための鍵盤装置１と、各種情報を入力するための複数のスイッチを備えたパネルスイッチ２と、鍵盤装置１の各鍵の押鍵状態を検出する押鍵検出回路３と、パネルスイッチ２の各スイッチの押下状態を検出するスイッチ検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムや、各種テーブルデータ等を記憶するＲＯＭ６と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば大型液晶ディスプレイ（ＬＣＤ）若しくはＣＲＴ（Cathode Ray Tube）ディスプレイおよび発光ダイオード（ＬＥＤ）等を備えた表示装置９と、記憶媒体であるフロッピディスク（ＦＤ）２０をドライブするフロッピディスクドライブ（ＦＤＤ）１０と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するハードディスク（図示せず）をドライブするハードディスクドライブ（ＨＤＤ）１１と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するコンパクトディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）２１をドライブするＣＤ−ＲＯＭドライブ（ＣＤ−ＲＯＭＤ）１２と、外部からのＭＩＤＩ（Musical Instrument Digital Interface）信号を入力したり、ＭＩＤＩ信号を外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１３と、通信ネットワーク１０１を介して、たとえばサーバコンピュータ１０２とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１４と、鍵盤装置１から入力された演奏データや予め設定された演奏データ等を楽音信号に変換する音源回路１５と、該音源回路１５からの楽音信号に各種効果を付与するための効果回路１６と、該効果回路１６からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１７とにより構成されている。
【００１８】
上記構成要素３〜１６は、バス１８を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＭＩＤＩＩ／Ｆ１３には他のＭＩＤＩ機器１００が接続され、通信Ｉ／Ｆ１４には通信ネットワーク１０１が接続され、音源回路１５には効果回路１６が接続され、効果回路１６にはサウンドシステム１７が接続されている。
【００１９】
ＨＤＤ１１のハードディスクには、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、このハードディスクに制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００２０】
ＣＤ−ＲＯＭドライブ１２のＣＤ−ＲＯＭ２１から読み出された制御プログラムや各種データは、ＨＤＤ１１内のハードディスクにストアされる。これにより、制御プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このＣＤ−ＲＯＭドライブ１２以外にも、外部記憶装置として、光磁気ディスク（ＭＯ）装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００２１】
ＭＩＤＩＩ／Ｆ１３は、専用のものに限らず、ＲＳ−２３２ＣやＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェースより構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信してもよい。
【００２２】
通信Ｉ／Ｆ１４は、上述のように、たとえばＬＡＮ（Local Area Network）やインターネット、電話回線等の有線または無線の通信ネットワーク１０１に接続されており、該通信ネットワーク１０１を介して、サーバコンピュータ１０２に接続される。ＨＤＤ１１内のハードディスクに上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１４は、サーバコンピュータ１０２からプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、ＡＶＮＳ決定装置）は、通信Ｉ／Ｆ１４および通信ネットワーク１０１を介してサーバコンピュータ１０２へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータ１０２は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク１０１を介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ１４を介して、これらプログラムやパラメータを受信してＨＤＤ１１内のハードディスクに蓄積することにより、ダウンロードが完了する。
【００２３】
この他、外部コンピュータ等との間で直接データのやりとりを行うためのインターフェースを備えてもよい。
【００２４】
なお、本実施の形態のＡＶＮＳ決定装置は、上述の構成から分かるように、汎用的なパーソナルコンピュータ上に構築されたものであるが、これに限らず、本発明を実施できる最小限要素のみから構成した専用装置や電子楽器、携帯通信端末上に構築してもよい。
【００２５】
以上のように構成されたＡＶＮＳ決定装置が実行する制御処理を、まずその概要を説明し、次に図２〜図６を参照して詳細に説明する。
【００２６】
本実施の形態のＡＶＮＳ決定装置は、入力されたコード進行を構成する各コードのＡＶＮＳを、次のようにして決定する。すなわち、ＡＶＮＳを決定すべき対象となるコード（以下、「対象コード」という）を“Ｙ”とし、その直前および直後のコードをそれぞれ“Ｘ”，“Ｚ”とすると、
（１）Ｙ：ノンダイアトニック・コードの場合には、ＹのＡＶＮＳをその前後コード、すなわちＸおよびＺに基づいて決定する
（２）Ｙ：ダイアトニック・コードの場合には、さらに場合分けして、
（ａ）Ｘ：ダイアトニック・コード；Ｚ：ダイアトニック・コードの場合には、ＹのＡＶＮＳをダイアトニック・ノート・スケールに決定する
（ｂ）Ｘ：ダイアトニック・コード；Ｚ：ノンダイアトニック・コードの場合には、ＹのＡＶＮＳをダイアトニック・ノート・スケールに決定する
（ｃ）Ｘ：ノンダイアトニック・コード；Ｚ：ダイアトニック・コードの場合には、ＹのＡＶＮＳをダイアトニック・ノート・スケールに決定するか、または上記（１）と同様の方法で決定する
（ｄ）Ｘ：ノンダイアトニック・コード；Ｚ：ノンダイアトニック・コードの場合には、ＹのＡＶＮＳを上記（１）と同様の方法で決定する。
【００２７】
ここで、ダイアトニック・ノート・スケールとは、調の音階音、すなわちダイアトニック・ノートのみから構成されるスケールをいう。
【００２８】
次に、この制御処理を詳細に説明する。
【００２９】
図２は、本実施の形態のＡＶＮＳ決定装置、特にＣＰＵ５が実行するＡＶＮＳ決定処理の手順を示すフローチャートである。同図に示されるＡＶＮＳ決定処理は、上記概要で説明した各処理をそのままフローチャートの形式に書き直したものである。
【００３０】
すなわち、ステップＳ２の処理が上記（１）の処理に相当し、ステップＳ４の処理が上記（２）（ａ）および（ｂ）の処理に相当し、ステップＳ６の処理が上記（２）（ｃ）の処理に相当し、ステップＳ７の処理が上記（２）（ｄ）の処理に相当する。
【００３１】
なお、ステップＳ６の処理は、上記（２）（ｃ）の処理の具体的な一例を示しているに過ぎない。すなわち、ステップＳ６では、ＡＶＮＳを、前後コードに基づいたＡＶＮＳ決定処理を用いて決定するか、ダイアトニック・ノート・スケールにするかをランダムに決め、決まった方の処理を行うようにしているが、これに限らず、いずれか一方を固定的に決め、決まった方の処理を行うようにしてもよい。
【００３２】
次に、ステップＳ２およびＳ７（およびステップＳ６の一部）の処理、すなわち、対象コードのＡＶＮＳをその直前および直後に位置するコードに基づいて決定する処理（前後コードに基づいたＡＶＮＳ決定処理）を説明する。
【００３３】
まず、図３を参照して、前後コードに基づいたＡＶＮＳ決定処理の概要を説明する。記憶部７Ｐ，７Ｑ，７Ｒ，７Ｓ，７Ｔは、いずれも図１のＲＡＭ７に属するもので、それぞれコード進行データ、対象コードデータ、前コードデータ、後コードデータ、調データを記憶する。コード進行データは、たとえば１曲分のコード進行を構成する複数のコードをそれぞれ指示する複数のコードデータを含むもので、曲の調を指示する調データとともに取得される。
【００３４】
調データおよびコード進行データを取得する方法としては、たとえばＲＯＭ６またはＨＤＤ１１に設けたコード進行データベースからユーザが所望の調データ付きのコード進行データを選択する方法、ユーザが鍵盤１やパネルスイッチ２等により所望の調データおよびコード進行データを入力する方法、ユーザの指示に応じて調データ付きのコード進行データを自動生成する方法等を利用可能である。いずれかの方法で取得された調データおよびコード進行データのうち、調データは記憶部７Ｔに記憶されるとともに、コード進行データは記憶部７Ｐに記憶される。記憶部７Ｐには、コード進行データを構成する各コードデータに対応してＡＶＮＳを指示するスケールデータを記憶可能になっている。
【００３５】
前後コードに基づいたＡＶＮＳ決定処理１２０では、記憶部７Ｐに記憶されたコード進行データを構成する各コードデータ毎に該コードデータが示すコードに対するＡＶＮＳを決定し、各コードデータ毎に決定に係るＡＶＮＳを指示するスケールデータＡＳＤを対応付けて記憶部７Ｐに記憶させる。ＡＶＮＳ決定の際には、ＡＶＮＳを決定すべきコードデータを記憶部７Ｐから読み出し、対象コードデータとして記憶部７Ｑに記憶させる。また、対象コードデータの直前のコードデータおよび直後のコードデータを記憶部７Ｐから読み出し、それぞれ前コードデータおよび後コードデータとして記憶部７Ｒおよび７Ｓに記憶させる。ただし、コード進行の先頭のコードについてＡＶＮＳを決定するときは、前コードデータが存在しないので、記憶部７Ｔの調データが指示する調のトニックコードを表わすトニックコードデータを記憶部７Ｒに記憶させ、コード進行の最後のコードについてＡＶＮＳを決定するときは、後コードデータが存在しないので、前コードデータの場合と同様に調のトニックコードを表わすトニックコードデータを記憶部７Ｓに記憶させる。
【００３６】
ＡＶＮＳテーブル６１は、図４に一例を示すように１または複数のコードタイプ毎に１または複数のＡＶＮＳを表わすもので、たとえばＲＯＭ６またはＨＤＤ１１に記憶される。図４には、コードおよびＡＶＮＳについて使用する調（メジャーまたはマイナー）を示した。図４の例では、ダイアトニックコードにおけるスケールのみを示した。１つのコードタイプが複数のスケールに対応することがあるが、これは１つのコードタイプであってもコード機能が違えばスケールも違うことを意味している。たとえばＣメジャー調において、メジャー（Ｍ）はトニック（Ｃ）とサブドミナント（Ｆ）で使用され、このときのスケールはトニックに対応してアイオニアン・スケールとなり、サブドミナントに対応してリディアン・スケールとなる。
【００３７】
ＡＶＮＳ決定の際には、記憶部７Ｑの対象コードデータが指示する対象コード毎にＡＶＮＳテーブル６１を参照して該対象コードに対応するＡＶＮＳ候補を抽出する。そして、抽出に係るＡＶＮＳ候補が「ｍ７♭５」の場合の「ロクリアン・スケール」のように１つだけあればその１つのＡＶＮＳ候補を対象コードに対するＡＶＮＳとして決定し、「Ｍ」の場合の「アイオニアン・スケール，リディアン・スケール」のように複数であれば記憶部７Ｒの前コードデータおよび記憶部７Ｓの後コードデータを参照して前コードおよび後コードのうち少なくとも一方のコードの構成音を含む１つのＡＶＮＳ候補を抽出に係る複数のＡＶＮＳ候補のうちから検出し、この検出に係る１つのＡＶＮＳ候補を対象コードに対するＡＶＮＳとして決定する。また、前コードおよび後コードのうちの少なくとも一方のコードの構成音を含む複数のＡＶＮＳ候補を抽出に係る複数のＡＶＮＳ候補のうちから検出するとともにこの検出に係る複数のＡＶＮＳ候補のうちから１つのＡＶＮＳ候補を選択し、この選択に係る１つのＡＶＮＳ候補を対象コードに対するＡＶＮＳとして決定する。
【００３８】
図５および図６は、前後コードに基づいたＡＶＮＳ決定処理の手順を示すフローチャートである。
【００３９】
図５において、まず、ステップＳ１１では、調データとともにコード進行を取得する。すなわち、前述したいずれかの取得方法により調データおよびコード進行データを取得し、調データは記憶部７Ｔに、コード進行データは記憶部７Ｐにそれぞれ記憶させる。
【００４０】
次に、ステップＳ１２では、コード進行から対象コード、前コードおよび後コードを取得する。すなわち、記憶部７Ｐから対象コードデータを読み出して記憶部７Ｑに書き込むとともに記憶部７Ｒ，７Ｓにそれぞれ前コードデータおよび後コードデータを書き込む。コード進行の先頭のコードを対象コードとするときは、前コードデータとして調のトニックコードを表わすトニックコードデータを記憶部７Ｒに書込み、対象コードの次のコードデータを記憶部７Ｐから読み出して後コードデータとして記憶部７Ｓに書き込む。この後、ステップＳ１３に移る。
【００４１】
ステップＳ１３では、対象コードに対応するＡＶＮＳ候補をＡＶＮＳテーブル６１から抽出する。すなわち、記憶部７Ｑの対象コードデータが指示する対象コードに対応するＡＶＮＳ候補をＡＶＮＳテーブル６１から読み出してＲＡＭ７内の候補レジスタ（図示せず）にセットする。このときセットされるＡＶＮＳ候補は、１つのときもあれば、複数のときもある。
【００４２】
次に、ステップＳ１４では、候補レジスタ内のＡＶＮＳ候補が複数あるか否かを判定する。この判定の結果が否定的（Ｎ）であれば、ＡＶＮＳ候補が１つであったことになり、図６のステップＳ１５に移る。
【００４３】
ステップＳ１５では、候補レジスタ内の１つのＡＶＮＳ候補を対象コードに対するＡＶＮＳとして決定する。そして、決定に係るＡＶＮＳを指示するスケールデータＡＳＤを対象コードデータに対応して記憶部７Ｐに書き込む。
【００４４】
一方、ステップＳ１４の判定結果が肯定的（Ｙ）であったときは、ステップＳ１６に移り、前コードの構成音と後コードの構成音とに共通する共通音を検出する。すなわち、記憶部７Ｒの前コードデータが指示するコードの構成音と、記憶部７Ｓの後コードデータが指示するコードの構成音とのうちから両者に共通する音を検出する。たとえば、前コードの構成音がＢ♭，Ｄ，Ｆであり、後コードの構成音がＥ♭，Ｇ，Ｂ♭であれば、共通音はＢ♭となる。
【００４５】
次に、ステップＳ１７では、共通音があるか否かを判定する。この判定の結果が肯定的（Ｙ）であればステップＳ１８に移り、ステップＳ１３での抽出に係る複数のＡＶＮＳ候補のうちに、共通音を含むＡＶＮＳ候補があるか否かを判定する。この判定の結果が肯定的（Ｙ）であればステップＳ１９に移り、ステップＳ１３での抽出に係る複数のＡＶＮＳ候補のうちに、共通音を最も多く含むＡＶＮＳ候補が複数あるか否かを判定する。この判定の結果が否定的（Ｎ）であったときには、共通音を最も多く含むＡＶＮＳ候補が１つであったことになり、ステップＳ１５に移る。
【００４６】
ステップＳ１５では、共通音を最も多く含む１つのＡＶＮＳ候補を対象コードに対するＡＶＮＳとして決定するとともに、決定に係るＡＶＮＳを指示するスケールデータＡＳＤを前述したと同様にして記憶部７Ｐに書き込む。
【００４７】
ステップＳ１７またはＳ１８の判定結果が否定的（Ｎ）であった（共通音がないか、あってもそれを含むＡＶＮＳ候補がなかった）とき、あるいはステップＳ１９の判定結果が肯定的（Ｙ）であった（共通音を最も多く含むＡＶＮＳ候補が複数あった）ときは、図６のステップＳ２０に移る。
【００４８】
ステップＳ２０では、ステップＳ１３での抽出に係る複数のＡＶＮＳ候補のうちの各ＡＶＮＳ候補毎に該ＡＶＮＳ候補に含まれる前コードの構成音の数と該ＡＶＮＳ候補に含まれる後コードの構成音の数とを検出する。このとき、前コードおよび後コードは、それぞれ記憶部７Ｒの前コードデータおよび記憶部７Ｓの後コードデータによって指示される。
【００４９】
次に、ステップＳ２１では、ステップＳ１３での抽出に係る複数のＡＶＮＳ候補のうちに、前コードまたは後コードのいずれかのコードの構成音を含むＡＶＮＳ候補があるか否かを、ステップＳ２０の検出結果に基づいて判定する。この判定の結果が肯定的（Ｙ）であればステップＳ２２に移り、ステップＳ１３での抽出に係る複数のＡＶＮＳ候補のうちに、コード構成音を最も多く含むＡＶＮＳ候補が複数あるか否かを、ステップＳ２０の検出結果に基づいて判定する。
【００５０】
１つのＡＶＮＳ候補がコード構成音を含む態様としては、（ａ）前コードの構成音のみを含むもの、（ｂ）後コードの構成音のみを含むもの、（ｃ）前コードおよび後コードの双方の構成音を含むものがありうる。１つのＡＶＮＳ候補に含まれるコード構成音数としては、態様（ａ）では前コードについて含まれる構成音数を採用し、態様（ｂ）では後コードについて含まれる構成音数を採用し、態様（ｃ）では前後のコードについて含まれる構成音数が等しければその等しい数を採用し、等しくなければ多い方の数（たとえば２音と３音ならば３音）を採用する。このようにして各ＡＶＮＳ候補毎に含まれるコード構成音数を求めた上で、求めたコード構成音数が最も多いＡＶＮＳ候補が複数あるか否かを、ステップＳ２２で判定する。この判定の結果が否定的（Ｎ）であったときは、コード構成音を最も多く含むＡＶＮＳ候補が１つであったことになり、ステップＳ１５に移る。
【００５１】
ステップＳ１５では、コード構成音を最も多く含む１つのＡＶＮＳ候補を対象コードに対するＡＶＮＳとして決定し、決定に係るＡＶＮＳを指示するスケールデータＡＳＤを前述したと同様にして記憶部７Ｐに書き込む。
【００５２】
ステップＳ２１の判定結果が否定的（Ｎ）であった（前コードまたは後コードのいずれかのコードの構成音を含むＡＶＮＳ候補がなかった）とき、あるいはステップＳ２２の判定結果が否定的（Ｎ）であった（コード構成音を最も多く含むＡＶＮＳ候補が複数あった）ときは、ステップＳ２３に移る。
【００５３】
ステップＳ２１からステップＳ２３に移行した場合には、ステップＳ２３において、ステップＳ１３での抽出に係る複数のＡＶＮＳ候補のうちから、調の音階音を最も多く含む１つのＡＶＮＳ候補を選択する。また、ステップＳ２２からステップＳ２３に移行した場合には、ステップＳ２３において、ステップＳ２２での判定に係る複数のＡＶＮＳ候補のうちから、調の音階音を最も多く含む１つのＡＶＮＳ候補を選択する。いずれの場合にも、調は、記憶部７Ｔの調データによって指示される。ＡＶＮＳ候補の選択の後、ステップＳ２３では、選択に係る１つのＡＶＮＳ候補を対象コードに対するＡＶＮＳとして決定するとともに、決定に係るＡＶＮＳを指示するスケールデータＡＳＤを対象コードデータに対応して記憶部７Ｐに書き込む。
【００５４】
ステップＳ２３において、ＡＶＮＳ候補を選択する際には、調の音階音以外の要素を考慮して選択を行うようにしてもよい。たとえば、すでにコード進行に対応するメロディが存在する場合には、対象コードの区間における該メロディの構成音をより多く含むＡＶＮＳ候補を選択してもよい。また、前コードおよび後コードのうち発音時間が長い方のコードの構成音を含むＡＶＮＳ候補を選択してもよい。さらに、ユーザの音楽的好みを反映できるようにするため、ユーザが前コードの構成音を含むＡＶＮＳ候補または後コードの構成音を含むＡＶＮＳ候補のいずれを選択するか指定できるようにしてもよい。
【００５５】
ステップＳ１５またはＳ２３の処理が終わったときは、ステップＳ２４に移り、記憶部７ＰにＡＶＮＳを決定すべき次のコードがあるか否かを判定する。たとえば、ステップＳ１２でコード進行の先頭のコードを対象コードとした後、初めてステップＳ２４に移行したときは、次のコードがあるので、ステップＳ２４の判定結果が肯定的（Ｙ）となり、ステップＳ２５に移る。
【００５６】
ステップＳ２５では、対象コードを次のコードに設定する。そして、ステップＳ１２に戻り、前述したと同様にしてコード進行から対象コード、前コードおよび後コードを取得する。たとえば、対象コードが２番目のコード（先頭コードの次のコード）であったときは、記憶部７Ｑ，７Ｒ，７Ｓにはそれぞれ先頭コード、２番目のコード、３番目のコードがセットされる。ステップＳ１２の後は、前述したと同様にしてステップＳ１３以降の処理を行う。
【００５７】
上記のようにしてコード進行を構成するコードについて順次にＡＶＮＳを決定して行くと、やがてステップＳ２５ではコード進行の最後のコードを対象コードとする。そして、ステップＳ１２に戻り、記憶部７Ｑ，７Ｒ，７Ｓにはそれぞれ最後のコード、最後のコードの直前のコード、調のトニックコードをセットする。次に、ステップＳ１３以降の処理を行ない、ステップＳ１５またはＳ２３において、最後のコードに対するＡＶＮＳを決定するとともに、決定に係るＡＶＮＳを指示するスケールデータＡＳＤを前述したと同様にして記憶部７Ｐに書き込む。この後、ステップＳ２４で次のコードがあるか否かを判定すると、判定結果が否定的（Ｎ）となり、本処理を終了する。
【００５８】
このように、本前後コードに基づいたＡＶＮＳ決定処理によれば、コード進行を構成する各コード毎に該コードに適合したＡＶＮＳを自動的に決定することができる。このようなＡＶＮＳ決定の具体例として例１〜３を順次に説明する。
【００５９】
〔例１〕コード進行がＣメジャー調のＢ♭，Ｆ，Ｅ♭であり、対象コードがＦである場合、ＡＶＮＳ候補は、
アイオニアン・スケール：Ｆ，Ｇ，Ａ，Ｂ♭，Ｃ，Ｄ，Ｅ
リディアン・スケール：Ｆ，Ｇ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ
となり、前後コードの構成音は、
前コードＢ♭：Ｂ♭，Ｄ，Ｆ
後コードＥ♭：Ｅ♭，Ｇ，Ｂ♭
となる。ここで、共通音はＢ♭となり、共通音Ｂ♭を含むＡＶＮＳ候補はアイオニアン・スケール１つとなる。したがって、アイオニアン・スケールが対象コードＦに対するＡＶＮＳとして決定される。
【００６０】
〔例２〕コード進行がＣメジャー調のＢ♭，Ｆ，Ｃであり、対象コードがＦである場合、ＡＶＮＳ候補は、
アイオニアン・スケール：Ｆ，Ｇ，Ａ，Ｂ♭，Ｃ，Ｄ，Ｅ
リディアン・スケール：Ｆ，Ｇ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ
となり、前後コードの構成音は、
前コードＢ♭：Ｂ♭，Ｄ，Ｆ
後コードＣ：Ｃ，Ｅ，Ｇ
となる。ここで、共通音はない。アイオニアン・スケールに含まれる前コードＢ♭の構成音は、Ｂ♭，Ｄ，Ｆの３音であり、アイオニアン・スケールに含まれる後コードＣの構成音は、Ｃ，Ｅ，Ｇの３音である。また、リディアン・スケールに含まれる前コードＢ♭の構成音は、Ｄ，Ｆの２音であり、リディアン・スケールに含まれる後コードＣの構成音は、Ｃ，Ｅ，Ｇの３音である。したがって、コード構成音を最も多く含むＡＶＮＳ候補は、アイオニアン・スケールおよびリディアン・スケールの２つとなり、これらのスケール候補のうち調の音階音を最も多く含むＡＶＮＳ候補は、Ｃメジャー調の音階音Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ａ，Ｂをすべて含むリディアン・スケールとなる。この結果、リディアン・スケールが対象コードＦに対するＡＶＮＳとして決定される。
【００６１】
〔例３〕コード進行がＣメジャー調のＢ♭，Ｆ，Ｄであり、対象コードがＦである場合、ＡＶＮＳ候補は、
アイオニアン・スケール：Ｆ，Ｇ，Ａ，Ｂ♭，Ｃ，Ｄ，Ｅ
リディアン・スケール：Ｆ，Ｇ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ
となり、前後コードの構成音は、
前コードＢ♭：Ｂ♭，Ｄ，Ｆ
後コードＤ：Ｄ，Ｆ♯，Ａ
となる。ここで、共通音はＤとなり、共通音Ｄを含むＡＶＮＳ候補は、アイオニアン・スケールおよびリディアン・スケールとなる。アイオニアン・スケールに含まれる前コードＢ♭の構成音は、Ｂ♭，Ｄ，Ｆの３音であり、アイオニアン・スケールに含まれる後コードＤの構成音は、Ｄ，Ａの２音である。また、リディアン・スケールに含まれる前コードＢ♭の構成音は、Ｄ，Ｆの２音であり、リディアン・スケールに含まれる後コードＤの構成音は、Ｄ，Ａの２音となる。したがって、コード構成音を最も多く含むＡＶＮＳ候補は、アイオニアン・スケール１つとなり、アイオニアン・スケールが対象コードＦに対するＡＶＮＳとして決定される。
【００６２】
本前後コードに基づいたＡＶＮＳ決定処理は、次の（イ）〜（ト）のような変更を加えて実施してもよい。
【００６３】
（イ）調データとともにコード進行データを取得するようにしたが、調データを取得せず、コード進行データのみを取得し、この後コード進行データに基づいて調を自動検出してもよい。この場合、部分的な転調を検出する必要はなく、コード進行全体を支配する調を検出すればよい。このコード進行全体の調検出は公知の技術であり、部分的な転調検出に比べて容易である。また、取得するコード進行を所定調（たとえばＣメジャー調）のみに限定したり、あるいは「調の音階音を最も多く含むＡＶＮＳ候補を対象コードに対するＡＶＮＳとする」というステップを省略したりすれば、調データを与えなくてよい。
【００６４】
（ロ）図４に示したＡＶＮＳテーブルにおいて、ダイアトニックコードにおけるスケールのみを記憶するようにしたが、ノンダイアトニックコードにおけるスケールをも記憶するようにしてもよい。また、ＡＶＮＳテーブルの記憶データ形式は、図４に示したものに限らない。
【００６５】
（ハ）前後コードに共通の構成音を含む１または複数のＡＶＮＳ候補を検出する処理（ステップＳ１６〜Ｓ１９の処理）の後、前後コードのうちの少なくとも一方のコードの構成音を最も多く含む１または複数のＡＶＮＳ候補を検出する処理（ステップＳ２０〜Ｓ２２の処理）を行う例を示したが、これらの処理の順序を逆にしてもよく、あるいはいずれか一方の処理のみを行うようにしてもよい。また、必ず両方の処理を行ない、異なる結果が出た場合は、いずれか一方の処理の結果を優先的に採用してもよいし、ランダムに採用してもよい。
【００６６】
（ニ）対象コードに関しては、１つ前のコードおよび１つ後のコードを参照するのみならず、２つ前のコードおよび２つ後のコードをも参照してＡＶＮＳの決定を行うようにしてもよい。たとえば、前後コードのみの参照では複数のＡＶＮＳ候補が残ってしまう場合に、２つ前のコードおよび２つ後のコードをも参照し、これらのコード構成音をも含むＡＶＮＳを採用するようにすればよい。さらには、３つ以上前のコードおよび３つ以上後のコードをも参照してもよい。
【００６７】
（ホ）コード進行の先頭および最後のコードについては、調のトニックコードをそれぞれ仮の前コードおよび仮の後コードとして用いてＡＶＮＳ決定を行なったが、仮の前コードおよび仮の後コードを設定せず、前コードおよび後コードを用いない例外的なＡＶＮＳ決定処理を行うようにしてもよい。
【００６８】
（ヘ）各ＡＶＮＳ候補毎に該ＡＶＮＳ候補に含まれるコード構成音の数を求める際に、含まれるコード構成音数が前コードと後コードとで等しければその等しい数を採用し、等しくなければ多い方の数を採用したが、前コードおよび後コードの双方について含まれるコード構成音数を考慮した値（たとえば単純加算値、重み付け加算値等）を採用してもよい。たとえば、あるＡＶＮＳ候補に含まれる前コードおよび後コード構成音数がそれぞれ２音および３音であれば含まれるコード構成音数を５とすることができ、他のＡＶＮＳ候補についても同様にしてコード構成音数を求めることができる。そして、コード構成音数が多い方のＡＶＮＳ候補を対象コードに対するＡＶＮＳとして決定すればよい。
【００６９】
（ト）ＡＶＮＳ決定処理において、対象コードに対して提示された複数のＡＶＮＳ候補のいずれにも前コードおよび後コードの構成音が含まれている場合、前コードまたは後コードのいずれか一方のコードについて含まれるコード構成音数が等しいときは、他方のコードについて含まれるコード構成音数が多い方のＡＶＮＳ候補を対象コードに対するＡＶＮＳとして決定してもよい。このようにすると、前後コードとのつながりがより良いＡＶＮＳ候補を対象コードに対するＡＶＮＳとして決定することができる。
【００７０】
このように、本実施の形態では、対象コードのＡＶＮＳを、前後コードに基づいて決定することを基本としながら、所定の条件の下で、これを修正して、より自然なＡＶＮＳが得られるようにしている。このような修正を施したのは、対象コードのＡＶＮＳを、いかなる条件の下でも、その前後コードに基づいて決定するようにすると、得られたＡＶＮＳが前後コードに依存し過ぎる場合があるからである。たとえば、Ｆ，Ｄｍ，Ａ７というコード進行の場合に、前記前後コードに基づいたＡＶＮＳ決定処理（図５および図６）によってＡＶＮＳを決定すると、Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ａ，Ｂ，Ｃ＃というスケールが得られ、“Ｃ”に“＃”が付いてしまう。しかし、上記コード進行では、前コードがダイアトニック・コードであるので、元調になっていると判断し、対象コード（Ｄｍ）のＡＶＮＳは、ダイアトニック・ノート・スケールに決定する方が好ましい。この場合、すなわち対象コードがダイアトニック・コードの場合、本実施の形態では、前コードに基づいて、対象コードのＡＶＮＳをダイアトニック・ノート・スケールに決定している。
【００７１】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ５やＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００７２】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７３】
プログラムコードを供給するための記憶媒体としては、たとえば、前記フロッピディスク２０、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ２１、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ６などを用いることができる。また、他のＭＩＤＩ機器１００や通信ネットワーク１０１を介してサーバコンピュータ１０２からプログラムコードが供給されるようにしてもよい。
【００７４】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００７５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ５などが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００７６】
【発明の効果】
以上説明したように、本発明によれば、対象コードのアベイラブル・ノート・スケールを、前後コードに基づいて決定することを基本としながら、所定の条件の下で、これを修正するようにしたので、より自然なアベイラブル・ノート・スケールを得ることができる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態に係るＡＶＮＳ決定装置の概略構成を示すブロック図である。
【図２】  図１のＡＶＮＳ決定装置、特にＣＰＵが実行するＡＶＮＳ決定処理の手順を示すフローチャートである。
【図３】  前後コードに基づいたＡＶＮＳ決定処理の概要を説明するための図である。
【図４】  ＡＶＮＳテーブルの一例を示す図である。
【図５】  図２の前後コードに基づいたＡＶＮＳ決定処理の手順を示すフローチャートである。
【図６】  図５の前後コードに基づいたＡＶＮＳ決定処理の続きの手順を示すフローチャートである。
【符号の説明】
５  ＣＰＵ（入力手段、判別手段、決定手段）
７  ＲＡＭ（入力手段）
１１  ＨＤＤ（入力手段）
１３  ＭＩＤＩＩ／Ｆ（入力手段）
１４  通信Ｉ／Ｆ（入力手段）
【図１】
0003823723.tif 000002
【図２】
0003823723.tif 000003
【図３】
0003823723.tif 000004
【図４】
0003823723.tif 000005
【図５】
0003823723.tif 000006
【図６】
0003823723.tif 000007