(57)【要約】【課題】転調を検出することなくコードに適合したＡＶＮＳ（アベイラブル・ノート・スケール）を決定する。【解決手段】記憶部１６Ｑの着目コードデータが指示する着目コード毎にＡＶＮＳテーブル１２２を参照して該着目コードに対応するＡＶＮＳ候補を抽出する。抽出に係るＡＶＮＳ候補が複数であれば記憶部１６Ｒの前コードデータ及び記憶部１６Ｓの後コードデータを参照して前コード及び／又は後コードの構成音を含む１つのＡＶＮＳ候補を抽出に係る複数のＡＶＮＳ候補のうちから検出し、この検出に係る１つのＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定する。また、前コード及び／又は後コードの構成音を含む複数のＡＶＮＳ候補を抽出に係る複数のＡＶＮＳ候補のうちから検出すると共にこの検出に係る複数のＡＶＮＳ候補のうちから１つのＡＶＮＳ候補を選択し、この選択に係る１つのＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定する。【選択図】図１１
2004206156.tif 000002
【特許請求の範囲】
【請求項１】
コード進行を構成する第１、第２及び第３のコードのうち第２のコードに関して複数のアベイラブル・ノート・スケール候補を提示する提示手段であって、アベイラブル・ノート・スケールを決定すべき着目コードを前記第２のコードとすると共に前記着目コードの直前の前コード及び前記着目コードの直後の後コードをそれぞれ前記第１及び第３のコードとするものと、
この提示手段により提示された複数のアベイラブル・ノート・スケール候補のうちから、前記第１及び第３のコードのうちの少なくとも一方のコードの構成音を含む１つのアベイラブル・ノート・スケール候補を検出する検出手段と、
この検出手段で検出された１つのアベイラブル・ノート・スケール候補を前記第２のコードに対するアベイラブル・ノート・スケールとして決定する決定手段と
を備えたアベイラブル・ノート・スケール決定装置。
【請求項２】
前記検出手段は、前記第１及び第３のコードの構成音のうちから前記第１及び第３のコードに共通する共通音を検出すると共に該共通音を最も多く含む１つのアベイラブル・ノート・スケール候補を前記提示手段により提示された複数のアベイラブル・ノート・スケール候補のうちから検出するものである請求項１記載のアベイラブル・ノート・スケール決定装置。
【請求項３】
前記検出手段は、前記提示手段により提示された複数のアベイラブル・ノート・スケール候補のうちの各アベイラブル・ノート・スケール候補毎に該アベイラブル・ノート・スケール候補に含まれる前記第１のコードの構成音の数と該アベイラブル・ノート・スケール候補に含まれる前記第３のコードの構成音の数とを検出すると共に前記第１及び第３のコードのうちの少なくとも一方のコードについて検出に係る構成音数が最も多い１つのアベイラブル・ノート・スケール候補を前記提示手段により提示された複数のアベイラブル・ノート・スケール候補のうちから検出するものである請求項１記載のアベイラブル・ノート・スケール決定装置。
【請求項４】
アベイラブル・ノート・スケール決定装置において使用される記録媒体であって、
コード進行を構成する第１、第２及び第３のコードのうち第２のコードに関して複数のアベイラブル・ノート・スケール候補を提示する提示ステップであって、アベイラブル・ノート・スケールを決定すべき着目コードを前記第２のコードとすると共に前記着目コードの直前の前コード及び前記着目コードの直後の後コードをそれぞれ前記第１及び第３のコードとするものと、
この提示ステップにより提示された複数のアベイラブル・ノート・スケール候補のうちから、前記第１及び第３のコードのうちの少なくとも一方のコードの構成音を含む１つのアベイラブル・ノート・スケール候補を検出する検出ステップと、
この検出ステップで検出された１つのアベイラブル・ノート・スケール候補を前記第２のコードに対するアベイラブル・ノート・スケールとして決定する決定ステップと
を含むプログラムを記録した記録媒体。
【請求項５】
コード進行を構成する第１、第２及び第３のコードのうち第２のコードに関して複数のアベイラブル・ノート・スケール候補を提示する提示手段であって、アベイラブル・ノート・スケールを決定すべき着目コードを前記第２のコードとすると共に前記着目コードの直前の前コード及び前記着目コードの直後の後コードをそれぞれ前記第１及び第３のコードとするものと、
この提示手段により提示された複数のアベイラブル・ノート・スケール候補のうちから、前記第１及び第３のコードのうちの少なくとも一方のコードの構成音を含む複数のアベイラブル・ノート・スケール候補を検出する検出手段と、
この検出手段で検出された複数のアベイラブル・ノート・スケール候補のうちから１つのアベイラブル・ノート・スケール候補を選択する選択手段と、
この選択手段で選択された１つのアベイラブル・ノート・スケール候補を前記第２のコードに対するアベイラブル・ノート・スケールとして決定する決定手段と
を備えたアベイラブル・ノート・スケール決定装置。
【請求項６】
前記検出手段は、前記第１及び第３のコードの構成音のうちから前記第１及び第３のコードに共通する共通音を検出すると共に該共通音を最も多く含む複数のアベイラブル・ノート・スケール候補を前記提示手段により提示された複数のアベイラブル・ノート・スケール候補のうちから検出するものである請求項５記載のアベイラブル・ノート・スケール決定装置。
【請求項７】
前記検出手段は、前記提示手段により提示された複数のアベイラブル・ノート・スケール候補のうちの各アベイラブル・ノート・スケール候補毎に該アベイラブル・ノート・スケール候補に含まれる前記第１のコードの構成音の数と該アベイラブル・ノート・スケール候補に含まれる前記第３のコードの構成音の数とを検出すると共に前記第１及び第３のコードのうちの少なくとも一方のコードについて検出に係る構成音数が最も多い複数のアベイラブル・ノート・スケール候補を前記提示手段により提示された複数のアベイラブル・ノート・スケール候補のうちから検出するものである請求項５記載のアベイラブル・ノート・スケール決定装置。
【請求項８】
アベイラブル・ノート・スケール決定装置において使用される記録媒体であって、
コード進行を構成する第１、第２及び第３のコードのうち第２のコードに関して複数のアベイラブル・ノート・スケール候補を提示する提示ステップであって、アベイラブル・ノート・スケールを決定すべき着目コードを前記第２のコードとすると共に前記着目コードの直前の前コード及び前記着目コードの直後の後コードをそれぞれ前記第１及び第３のコードとするものと、
この提示ステップにより提示された複数のアベイラブル・ノート・スケール候補のうちから、前記第１及び第３のコードのうちの少なくとも一方のコードの構成音を含む複数のアベイラブル・ノート・スケール候補を検出する検出ステップと、
この検出ステップで検出された複数のアベイラブル・ノート・スケール候補のうちから１つのアベイラブル・ノート・スケール候補を選択する選択ステップと、
この選択ステップで選択された１つのアベイラブル・ノート・スケール候補を前記第２のコードに対するアベイラブル・ノート・スケールとして決定する決定ステップと
を含むプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自動作曲等に用いるに好適なアベイラブル・ノート・スケール（以下、「ＡＶＮＳ」と略記する）決定装置及び記録媒体に関し、特に着目コードの前後のコードの構成音を参照して着目コードに適合したＡＶＮＳを決定可能としたものである。
【背景技術】
【０００２】
従来、メロディ生成装置としては、所望の調情報及び所望のコード情報を入力すると共に、これらの調情報及びコード情報に基づいてＡＶＮＳを検出し、検出に係るＡＶＮＳ内の音をメロディ音として選択することによりメロディを生成するようにしたものが、この出願と同一の出願人により提案されている（特願平１０−１６６３０２号）。このようなメロディ生成装置によれば、ノンダイアトニックなコードに相応しい自然なメロディを生成可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一般に、ＡＶＮＳは、１つの調と１つのコードとに対応して１つとは限らず、複数存在することもある。上記した従来技術では、ＡＶＮＳ検出処理において各調毎に１つのコードが与えられるたびに１つのＡＶＮＳを検出していたので、１つの調と１つのコードとに対応して複数のＡＶＮＳが存在するような場合には、複数のＡＶＮＳのうちメロディ生成にとって好ましくないＡＶＮＳが検出されることがあった。このため、検出に係るＡＶＮＳに基づいてメロディを生成すると、コード進行に対するメロディの適合性が良好でないことがあった。
【０００４】
また、調とコードに基づいてＡＶＮＳを検出することは可能であるが、コード進行から調を自動検出するのは困難であった。すなわち、典型的なコード進行であれば比較的容易に調を自動検出することができるが、コード進行の途中で転調している場合は、転調を自動検出するのが容易ではなく、特に典型的なコード進行ではない場合には転調の検出は困難であった。このため、コードに適合したＡＶＮＳを決定するのが困難であった。
【０００５】
この発明の目的は、転調を検出することなくコードに適合したＡＶＮＳを決定することができる新規なＡＶＮＳ決定装置を提供することにある。
【課題を解決するための手段】
【０００６】
この発明に係る第１のＡＶＮＳ決定装置は、
コード進行を構成する第１、第２及び第３のコードのうち第２のコードに関して複数のＡＶＮＳ候補を提示する提示手段であって、アベイラブル・ノート・スケールを決定すべき着目コードを前記第２のコードとすると共に前記着目コードの直前の前コード及び前記着目コードの直後の後コードをそれぞれ前記第１及び第３のコードとするものと、
この提示手段により提示された複数のＡＶＮＳ候補のうちから、前記第１及び第３のコードのうちの少なくとも一方のコードの構成音を含む１つのＡＶＮＳ候補を検出する検出手段と、
この検出手段で検出された１つのＡＶＮＳ候補を前記第２のコードに対するＡＶＮＳとして決定する決定手段と
を備えたものである。
【０００７】
第１のＡＶＮＳ決定装置によれば、検出手段は、第２コードに関して提示された複数のＡＶＮＳ候補のうちから、第１及び第３のコードのうちの少なくとも一方のコードの構成音を含む１つのＡＶＮＳ候補を検出し、決定手段は、検出に係る１つのＡＶＮＳ候補を第２のコードに対するＡＶＮＳとして決定する。このように、着目コード（第２のコード）の前コード（第１のコード）及び／又は後コード（第３のコード）の構成音を含む１つのＡＶＮＳ候補を検出して着目コードに対するＡＶＮＳとするので、着目コードに適合したＡＶＮＳを決定可能となる。
【０００８】
第１のＡＶＮＳ決定装置において、検出手段は、第１及び第３のコードの構成音のうちから第１及び第３のコードに共通する共通音を検出すると共に該共通音を最も多く含む１つのＡＶＮＳ候補を提示に係る複数のＡＶＮＳ候補のうちから検出する構成にしてもよく、あるいは提示に係る複数のＡＶＮＳ候補のうちの各ＡＶＮＳ候補毎に該ＡＶＮＳ候補に含まれる第１のコードの構成音の数と該ＡＶＮＳ候補に含まれる第３のコードの構成音の数とを検出すると共に第１及び第３のコードのうちの少なくとも一方のコードについて検出に係る構成音数が最も多い１つのＡＶＮＳ候補を提示に係る複数のＡＶＮＳ候補のうちから検出する構成にしてもよい。このような構成にすると、着目コード（第２のコード）に対する適合性が一層良好なＡＶＮＳを決定可能となる。
【０００９】
この発明に係る第２のＡＶＮＳ決定装置は、
コード進行を構成する第１、第２及び第３のコードのうち第２のコードに関して複数のＡＶＮＳ候補を提示する提示手段であって、アベイラブル・ノート・スケールを決定すべき着目コードを前記第２のコードとすると共に前記着目コードの直前の前コード及び前記着目コードの直後の後コードをそれぞれ前記第１及び第３のコードとするものと、
この提示手段により提示された複数のＡＶＮＳ候補のうちから、前記第１及び第３のコードのうちの少なくとも一方のコードの構成音を含む複数のＡＶＮＳ候補を検出する検出手段と、
この検出手段で検出された複数のＡＶＮＳ候補のうちから１つのＡＶＮＳ候補を選択する選択手段と、
この選択手段で選択された１つのＡＶＮＳ候補を前記第２のコードに対するＡＶＮＳとして決定する決定手段と
を備えたものである。
【００１０】
第２のＡＶＮＳ決定装置によれば、検出手段は、第２のコードに関して提示された複数のＡＶＮＳ候補のうちから、第１及び第３のコードのうちの少なくとも一方のコードの構成音を含む複数のＡＶＮＳ候補を検出し、選択手段は、検出に係る複数のＡＶＮＳ候補のうちから１つのＡＶＮＳ候補を選択する。決定手段は、選択に係る１つのＡＶＮＳ候補を第２のコードに対するＡＶＮＳとして決定する。このように、着目コード（第２のコード）の前コード（第１のコード）及び／又は後コード（第３のコード）の構成音を含む複数のＡＶＮＳ候補を検出すると共に検出に係る複数のＡＶＮＳ候補のうちから１つのＡＶＮＳ候補を選択し、選択に係る１つのＡＶＮＳ候補を着目コードに対するＡＶＮＳとするので、着目コードに適合したＡＶＮＳを決定可能となる。
【００１１】
第２のＡＶＮＳ決定装置において、検出手段は、第１及び第３のコードの構成音のうちから第１及び第３のコードに共通する共通音を検出すると共に該共通音を最も多く含む複数のＡＶＮＳ候補を提示に係る複数のＡＶＮＳ候補のうちから検出する構成にしてもよく、あるいは提示に係る複数のＡＶＮＳ候補のうちの各ＡＶＮＳ候補毎に該ＡＶＮＳ候補に含まれる第１のコードの構成音の数と該ＡＶＮＳ候補に含まれる第３のコードの構成音の数とを検出すると共に第１及び第３のコードのうちの少なくとも一方のコードについて検出に係る構成音数が最も多い複数のＡＶＮＳ候補を提示に係る複数のＡＶＮＳ候補のうちから検出する構成にしてもよい。このような構成にすると、着目コード（第２のコード）に対する適合性が一層良好なＡＶＮＳを決定可能となる。
【発明の効果】
【００１２】
この発明によれば、着目コードに関して提示された複数のＡＶＮＳ候補のうちから着目コードの前コード及び／又は後コードの構成音を含む１つのＡＶＮＳ候補を検出して着目コードに対するＡＶＮＳとする構成にしたり、着目コードに関して提示された複数のＡＶＮＳ候補のうちから着目コードの前コード及び／又は後コードの構成音を含む複数のＡＶＮＳ候補を検出すると共に該複数のＡＶＮＳ候補のうちから１つのＡＶＮＳ候補を選択して着目コードに対するＡＶＮＳとする構成にしたので、転調を検出することなく着目コードに適合したＡＶＮＳを決定可能となる効果が得られる。
【発明を実施するための最良の形態】
【００１３】
図１は、この発明の一実施形態に係るメロディ生成装置を備えた電子楽器の回路構成を示すもので、この電子楽器は、パーソナルコンピュータ等の小型コンピュータによってメロディ生成、コード進行データ作成、ＡＶＮＳ決定、楽音発生等が制御されるようになっている。
【００１４】
バス１０には、ＣＰＵ（中央処理装置）１２、ＲＯＭ（リード・オンリィ・メモリ）１４、ＲＡＭ（ランダム・アクセス・メモリ）１６、検出回路１８，２０、表示回路２２、音源回路２４、効果回路２６、外部記憶装置２８、ＭＩＤＩ（Musical Instrument Digital Interface）インターフェース３０、通信インターフェース３２、タイマ３４等が接続されている。
【００１５】
ＣＰＵ１２は、ＲＯＭ１４にストアされたプログラムに従ってメロディ生成、コード進行データ作成、ＡＶＮＳ決定のための各種処理を実行するもので、これらの処理については図５，８〜１０，１３，１４を参照して後述する。
【００１６】
ＲＯＭ１４には、プログラムの他に、スケール音テーブル及びＡＶＮＳ検出テーブルが記憶されている。スケール音テーブルは、図３に示すようにアイオニアン・スケール、ドリアン・スケール、フジリアン・スケール…等の各ＡＶＮＳ毎に主音からの音程０〜１１に対応する１２音のうちのどの音がスケール音でどの音が非スケール音かを表わすもので、スケール音については１が、非スケール音については０がそれぞれ記憶される。図３のスケール音テーブルを参照することにより各ＡＶＮＳ毎にスケール音のピッチを求めることができる。例えば、アイオニアン・スケールについては、コードのルート（根音）を主音としてそのノートナンバをＮとすると、７つのスケール音のピッチは、Ｎ，Ｎ＋２，Ｎ＋４，Ｎ＋５，Ｎ＋７，Ｎ＋９，Ｎ＋１１でそれぞれ表わされる。
【００１７】
ＡＶＮＳ検出テーブルは、コード又はコード群毎に対応するＡＶＮＳを指示するもので、図７には一例としてＣメジャー調におけるダイアトニックコード及びセカンダリドミナントコードについてＡＶＮＳを示す。例えば、Ｃ，Ｃ６，ＣＭ７の３コードについてはＡＶＮＳとしてアイオニアン・スケールを指示するスケールデータＳＣが記憶され、Ｃ７のコードについてはＡＶＮＳとしてミクソリディアン・スケールを指示するスケールデータＳＣが記憶される。図７のテーブルを参照することにより例えば図６のコードＣＭ７のようにスケールデータを記憶しなかったコードに対応するＡＶＮＳを検出することができる。なお、図７では、テンション付きコードの表記を省略してある。
【００１８】
ＲＡＭ１６は、ＣＰＵ１２による各種処理に際して使用される種々の記憶部を含むもので、この発明の実施に関係する主な記憶部としては、コード進行データ記憶部１６Ａ、リズムデータ記憶部１６Ｂ、コードデータ記憶部１６Ｃ、スケールデータ記憶部１６Ｄ、区間データ記憶部１６Ｅ、曲データ記憶部１６Ｆ等を含んでいる。
【００１９】
検出回路１８は、鍵盤３６から鍵操作情報を検出するものである。検出回路２０は、スイッチ群３８から各種スイッチの操作情報を検出するものである。スイッチ群３８は、一例として文字入力及び数値入力が可能なキーボードからなる。                
表示回路２２は、表示器４０の表示動作を制御することにより各種の表示を可能にするものである。
【００２０】
音源回路２４は、複数の楽音発生チャンネルを有するものである。
【００２１】
効果回路２６は、音源回路２４から発生される楽音信号にコーラス、リバーブ等の効果を付加するものである。効果回路２６から送出される楽音信号は、サウンドシステム４２に供給され、音響に変換される。
【００２２】
外部記憶装置２８は、ＨＤ（ハードディスク）、ＦＤ（フレキシブルディスク）、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多目的ディスク）、ＭＯ（光磁気ディスク）等のうち１又は複数種類の記憶媒体を着脱可能なものである。外部記憶装置２８に所望の記憶媒体を装着した状態では、記憶媒体からＲＡＭ１６へデータを転送可能である。また、装着した記憶媒体がＨＤやＦＤのように書込可能なものであれば、ＲＡＭ１６のデータを記憶媒体に転送可能である。
【００２３】
外部記憶装置２８に装着する記憶媒体には、メロディ生成用の複数のコード進行データが記憶される。図５のメロディ生成処理を行なう場合、記憶媒体には、図２に示すようなコード進行データＣＰ１，ＣＰ2…が記憶される。コード進行データＣＰ１は、１曲分のコード進行を構成する複数のコードをそれぞれ指示する複数のコードデータＣＤ１，ＣＤ2…を含むと共に、コードデータＣＤ１，ＣＤ2…にそれぞれ対応する複数のＡＶＮＳを指示する複数のスケールデータＳＣ１，ＳＣ2…を含むものである。一例として、１曲の長さは、３２小節（４小節を１楽節として８楽節）とし、各小節毎にコードデータ及びスケールデータを記憶し、コードデータ  ＣＤ１，ＣＤ2…は、Ｃメジャー調を基準として記憶する。他のコード進行データＣＰ２，ＣＰ３…も、コード進行データＣＰ１と同様のフォーマットで記憶される。
【００２４】
図８又は９のメロディ生成処理あるいは図１０のコード進行データ作成処理を行なう場合、外部記憶装置２８の記憶媒体には、図６に示すようなコード進行データＣＰ１１，ＣＰ１２…が記憶される。コード進行データＣＰ１１は、前述したコード進行データＣＰ１からコードデータＣＤ１，ＣＤ３，ＣＤ４等にそれぞれ対応するスケールデータを削除したものに相当する。コード進行に適合したメロディを得るためには、図２に示したようにコード毎に予めＡＶＮＳを指定するのが最も好ましいが、例えばノンダイアトニックコードや特にＡＶＮＳ指定の必要性が高いダイアトニックコード等についてだけ予めＡＶＮＳを指定しておけば他のダイアトニックコードとそのテンションコード及びセカンダリードミナントコード等については図７に示したようなＡＶＮＳ検出テーブルを参照して検出したＡＶＮＳを用いても差支えがないことがある。そこで、図６のコード進行データＣＰ１１では、ＣＤ２，ＣＤ５等のコードデータについてのみＳＣ２，ＳＣ５等のスケールデータを記憶し、ＣＤ１，ＣＤ３，ＣＤ４等のコードデータについてはスケールデータの記憶を省略したものである。スケールデータを記憶してないＣＤ１，ＣＤ３，ＣＤ４等のコードデータについては、図７のＡＶＮＳ検出テーブルを参照してＡＶＮＳを検出することができる。他のコード進行データＣＰ１２，ＣＰ１３…も、コード進行データＣＰ１１と同様のフォーマットで記憶される。
【００２５】
図２，６の例では、Ｃメジャー調を基準としてコードデータを記憶したが、任意の調を基準としてコード進行データを記憶してもよい。図６に示したように部分的にスケールデータが欠如したコード進行データを任意の調で記憶する場合は、基準とした調を指示する調データをコード進行データ中に含ませておくとよい。このようにすると、図７のＡＶＮＳ検出テーブルを用いてＡＶＮＳを検出する際に基準とした調とＣメジャー調との主音の差だけ各コードのルート（根音）をシフトすればＣメジャー調の場合と同様にＡＶＮＳを検出することができる。なお、基準とした調を記憶しない場合は、コード進行を分析して調を求めたり、ユーザに調を指定させたりすればよい。
【００２６】
コード進行データの記憶フォーマットは、図２，６に示したように１小節等の演奏区間毎にコードを記憶するものに限らない。例えば、１拍毎又は２拍毎にコードを記憶するようにしてもよく、あるいはコード変化のあったタイミングを指示するタイミングデータと変化後のコードを指示するコードデータとを組にして記憶するイベント記憶方式を用いてもよい。また、部分的にスケールデータを欠如するコード進行データの記憶フォーマットとしては、図６に示したように各コード毎にＡＶＮＳ記憶エリアを確保するものに限らず、各コード毎にＡＶＮＳ指定の有無を示すフラグデータを記憶すると共にフラグデータによりＡＶＮＳ指定ありが示されるコードについてのみＡＶＮＳを指示するスケールデータを記憶するようにしてもよい。このようにすると、フラグデータによりＡＶＮＳ指定なしが示されるコードデータについてはスケールデータを記憶する記憶エリアが不要となり、記憶容量の低減が可能となる。
【００２７】
コード進行データを記憶する記憶手段として、外部記憶装置２８の代りにＲＯＭ１４又はＲＡＭ１６を用いてもよい。また、プログラム記憶手段としては、ＲＯＭ１４の代りに外部記憶装置２８の記憶媒体（前述のＨＤ，ＦＤ，ＣＤ，ＤＶＤ，ＭＯ等）を用いることができる。この場合、記憶媒体に記憶したプログラムは、外部記憶装置２８からＲＡＭ１６へ転送する。そして、ＲＡＭ１６に記憶したプログラムに従ってＣＰＵ１２を動作させる。このようにすると、プログラムの追加やバージョンアップ等を容易に行なうことができる。
【００２８】
ＭＩＤＩインターフェース３０は、自動演奏装置等の他のＭＩＤＩ機器４４との間で演奏情報等の送受信を行なうために設けられたものである。
【００２９】
通信インターフェース３２は、通信ネットワーク（例えばＬＡＮ（ローカル・エリア・ネットワーク）、インターネット、電話回線等）４６を介して他のコンピュータ４８と情報通信を行なうために設けられたものである。この発明の実施に必要なプログラムや各種データは、コンピュータ４８から通信ネットワーク４６及び通信インターフェース３２を介してＲＡＭ１６又は外部記憶装置２８へダウンロード要求に応じて取込むようにしてもよい。
【００３０】
タイマ３４は、与えられるテンポデータに対応する周期でテンポクロック信号ＴＣＬを発生するもので、テンポクロック信号ＴＣＬは、割込命令としてＣＰＵ１２に供給される。ＣＰＵ１２は、テンポクロック信号ＴＣＬの各クロックパルス毎に割込処理を開始する。このような割込処理を利用することにより記憶部１６Ｆの曲データ（メロディデータ）に基づいて自動演奏を行なうことができる。                
上記した電子楽器において、ＣＰＵ１２は、鍵盤３６で鍵が押されるたびに、押された鍵に対応する音高情報と発音命令信号とを音源回路２４に供給する。音源回路２４は、音高情報及び発音命令信号に応じて、押された鍵に対応する音高を有する楽音信号を発生する。このようにしてマニュアル演奏音の発生が可能となる。
【００３１】
次に、上記した電子楽器における曲生成処理の概要を図４を参照して説明する。ステップ５０では、１曲分のメロディのリズム（打点又は発音タイミング）を表わすリズムデータを生成し、ＲＡＭ１６の記憶部１６Ｂに記憶させる。１曲分のメロディのリズムを生成する方法としては、１曲分のメロディのリズムパターンテンプレートを多数記憶しておき、ユーザが拍子、ジャンル、楽節構成等の作曲条件を指定するのに応じて該作曲条件に合うリズムパターンテンプレートを自動的に選択する方法、記憶した多数のリズムパターンテンプレートの中からユーザが任意のものを選択する方法、１小節等の短区間のリズムパターンテンプレートを多数記憶しておき、ユーザが拍子、ジャンル、楽節構成等の作曲条件を指定するのに応じて該作曲条件を満たすように短区間のリズムパターンテンプレートを自動的につなぎ合せて１曲分のメロディのリズムを生成する方法、ユーザがモチーフとなるリズムパターンを入力し、このリズムパターンを演算等により発展させて１曲分のメロディのリズムを生成する方法のうちいずれかの方法を採用可能であるが、これら以外の方法を採用してもよい。
【００３２】
ステップ５２では、外部記憶装置２８からＣＰ１，ＣＰ２…等のコード進行データのうちユーザが望むものを選択してＲＡＭ１６の記憶部１６Ａに読出す。そして、記憶部１６Ａのコード進行データと記憶部１６Ｂのリズムデータとに基づいて１曲分のメロディを生成し、生成メロディを表わすメロディデータをＲＡＭ１６の記憶部１６Ｆに書込む。メロディ生成処理としては、図５に関して後述する処理を採用することができる。
【００３３】
外部記憶装置２８からは、図６に示したＣＰ１１，ＣＰ１２…等のコード進行データのうちユーザが望むものを選択して記憶部１６Ａに読出すこともできる。このようにした場合、メロディ生成処理としては、図８又９に示す処理を採用することができる。
【００３４】
ステップ５４では、記憶部１６Ｆの曲データに基づいて曲生成（自動演奏）を行なったり、記憶部１６Ｆの曲データを外部記憶装置２８に転送して保存したりする。
【００３５】
ステップ５６では、外部記憶装置２８（又はＲＯＭ１４）からＡＰ１，ＡＰ２…等の伴奏パターンのうちユーザが望むものを選択してＲＡＭ１６内の所定の記憶エリア（図示せず）に読出す。そして、記憶部１６Ａのコード進行データと所定の記憶エリアの伴奏パターンとに基づいて１曲分の伴奏生成（自動伴奏）行なう。この伴奏生成（自動伴奏）は、ステップ５４での曲生成（自動演奏）と鍵盤３６でのマニアル演奏とのうちの一方又は双方に対する伴奏とすることができる。
【００３６】
ステップ５６の伴奏生成（自動伴奏）では、記憶部１６Ａのコード進行データ中のコードデータに基づいて伴奏パターン中のピッチを適宜修正して伴奏音を生成する。このとき、コードデータだけでなく、コード進行データ中のＡＶＮＳを利用すると、適切なテンションノート等を使うことで一層豊かな伴奏音を生成することができる（特開平１０−７８７７９号公報参照）。
【００３７】
コード進行データや伴奏パターンを選択する方法としては、ユーザが拍子、ジャンル等の条件を指定するのに応じて該条件に合うものを自動的に選択する方法、各コード進行データや各伴奏パターンに対してそのイメージを表わす言葉（例えば「さわやか」、「都会的な」等）を対応させておき、ユーザが所望の言葉を指定するのに応じて対応するコード進行データや伴奏パターンを自動的に選択する方法のうちいずれかの方法を採用可能であるが、これら以外の方法を採用してもよい。
【００３８】
コード進行データを記憶する際には、コード進行データと他のデータとを組にして記憶したり、コード進行データと他のデータとの対応関係を記憶したりしてもよい。この場合、他のデータとしては、リズム生成のためのデータ（拍子、ジャンル、楽節構成等のデータ）、伴奏パターン選択のためのデータ（拍子、ジャンル等のデータ）等を記憶したり、コード進行データに対応させたりすればよい。このようにすると、コード進行に適合したリズムや伴奏を生成可能となる。
【００３９】
図５は、メロディ生成処理の第１の例を示すものである。ステップ６０では、記憶部１６Ａからコード進行データにおける先頭のコードデータを読出して記憶部１６Ｃに書込む。一例として、記憶部１６Ａには、図２のコード進行データＣＰ１が書込まれているものとすると、ステップ６０では、記憶部１６ＣにコードデータＣＤ１が書込まれる。
【００４０】
次に、ステップ６２では、記憶部１６Ｃのコードデータに関して指定されているＡＶＮＳを取得する。すなわち、記憶部１６Ｃのコードデータの指示するコードに対応するＡＶＮＳを指示するスケールデータを記憶部１６Ａから読出して記憶部１６Ｄに書込む。前述例のように記憶部１６ＣにはコードデータＣＤ１が書込まれているものとすると、ステップ６２では、記憶部１６ＤにスケールデータＳＣ１が書込まれる。
【００４１】
次に、ステップ６４では、記憶部１６Ｃのコードデータに対応する区間の打点（発音タイミング）を取得する。すなわち、記憶部１６Ｂの１曲分のリズムデータから記憶部１６Ｃのコードデータに対応する区間（小節）のリズムデータを抽出して記憶部１６Ｅに書込む。前述例のように記憶部１６ＣにはコードデータＣＤ１が書込まれているものとすると、ステップ６４では、記憶部１６Ｅに１小節目のリズムデータが書込まれる。
【００４２】
次に、ステップ６６では、ステップ６４での取得に係る区間の打点に対してステップ６２での取得に係るＡＶＮＳ内の音のピッチを付与する。すなわち、記憶部１６Ｅのリズムデータの指示する打点に対して記憶部１６Ｄのスケールデータの指示するＡＶＮＳ内の音のピッチを付与する。このときのピッチ付与では、前述したように図３のスケール音テーブルを参照して記憶部１６Ｄのスケールデータの指示するＡＶＮＳ内のすべてのスケール音（コード構成音及び非コード構成音）のピッチを求め、求めたスケール音のピッチの中からピッチ付与を行なう。                
ピッチ付与方法としては、ＡＶＮＳ内の音のピッチをランダムに選択して各打点に付与する方法を用いることができる。この場合、区間内の複数の打点のうち重要音（強拍音又はその近くに位置する音）にはコード構成音のピッチをランダムに選択して付与し、それ以外の音にはＡＶＮＳ内のコード構成音以外の音（非コード構成音）のピッチをランダムに選択して付与することができる。打点に対してコード構成音のピッチを付与するには、ＡＶＮＳを求めた上でそのＡＶＮＳ内のコード構成音のピッチを付与する方法に限らず、コードデータに基づいてコード構成音を求めた上でそのコード構成音のピッチを付与するようにしてもよい。
【００４３】
上記のようにＡＶＮＳ内の音のピッチをランダムに選択してピッチを付与する場合、完全なランダム選択ではなく、音楽ルールや指定された作曲条件を満たす音のピッチの中からランダムに選択するようにしてもよい。他のピッチ付与方法としては、スイッチ群３８を構成するキーボードに付属したマウス等でピッチ変化を示す折れ線や曲線を表示器４０の画面上に描き、これを打点位置毎にサンプリングしてサンプリングで得られた値をＡＶＮＳ内の最も近い音のピッチに修正して採用するようにしてもよい。この場合、重要音については最も近いコード構成音のピッチに修正して採用してもよい。
【００４４】
ステップ６６において記憶部１６Ｅのリズムデータの指示する各打点に対するピッチ付与が終ったときは、各打点毎にピッチを表わすリズムデータからなる区間メロディデータを記憶部１６Ｅから読出して記憶部１６Ｆに書込む。前述例のように記憶部１６Ｅには１小節目のリズムデータが、記憶部１６ＤにはスケールデータＳＣ１がそれぞれ書込まれているものとすると、ステップ６６では、１小節目のリズムデータの指示する各打点に対してスケールデータＳＣ１の指示するアイオニアン・スケール内の音のピッチを付与することにより１小節目のメロディデータが生成され、このメロディデータが記憶部１６Ｅから記憶部１６Ｆに転送される。
【００４５】
次に、ステップ６８では、記憶部１６Ａに次のコードデータありか判定する。この判定の結果が肯定的（Ｙ）であればステップ６９に移り、記憶部１６Ａから次のコードデータを読出して記憶部１６Ｃに書込む。そして、記憶部１６Ｃに書込まれたコードデータに関してステップ６２〜６６の処理を上記したと同様に実行する。一例として、ステップ６９において記憶部１６Ｃに図２のコードデータＣＤ２が書込まれたものとすると、ステップ６６では、記憶部１６Ｅの２小節目のリズムデータの指示する各打点に対して記憶部１６ＤのスケールデータＳＣ２の指示するドリアン・スケール内の音のピッチを付与することにより２小節目のメロディデータが生成され、このメロディデータが記憶部１６Ｅから記憶部１６Ｆに転送される。
【００４６】
この後は、３小節目以降の各コードデータについて上記したと同様にメロディ生成処理が行なわれる。最終小節に関してステップ６６の処理が終ると、ステップ６８の判定結果が否定的（Ｎ）となり、処理エンドとする。処理エンド時において、記憶部１６Ｆには、１曲分のメロディを表わすメロディデータが記憶されている。
【００４７】
図８は、メロディ生成処理の第２の例を示すものである。ステップ７０では、記憶部１６Ａからコード進行データにおける先頭のコードデータを読出して記憶部１６Ｃに書込む。一例として、記憶部１６Ａには、図６のコード進行データＣＰ１１が書込まれているものとすると、ステップ７０では、記憶部１６ＣにコードデータＣＤ１が書込まれる。
【００４８】
次に、ステップ７２では、記憶部１６ＣのコードデータはＡＶＮＳ指定ありか判定する。すなわち、記憶部１６Ｃのコードデータの指示するコードに対応したＡＶＮＳを指示するスケールデータが記憶部１６Ａに記憶されているか判定する。この判定の結果が肯定的（Ｙ）であればステップ７４に移り、前述のステップ６２と同様にして記憶部１６Ｃのコードデータに関して指定されているＡＶＮＳを取得する。この結果、記憶部１６Ｄには、記憶部１６Ｃのコードデータに対応するスケールデータが書込まれる。
【００４９】
ステップ７２の判定結果が否定的（Ｎ）であったときは、ステップ７６で図７のＡＶＮＳ検出テーブルを参照してＡＶＮＳを取得する。すなわち、記憶部１６Ｃのコードデータの指示するコードに対応したＡＶＮＳを指示するスケールデータを図７のＡＶＮＳ検出テーブルから読出して記憶部１６Ｄに書込む。前述例のように記憶部１６ＣにコードデータＣＤ１が書込まれているものとすると、ステップ７６では、コードデータＣＤ１の指示するコード「ＣＭ９」に対応するＡＶＮＳを指示するスケールデータを図７のＡＶＮＳ検出テーブルから読出して記憶部１６Ｄに書込む。なお、「ＣＭ９」は、コード「Ｃ」にテンション音が付加されたテンションコードであり、図７においてはその表記が省略されているが、この「ＣＭ９」に対応するＡＶＮＳは、「アイオニアン・スケール」である。
【００５０】
ステップ７４又は７６の処理が終ったときは、ステップ７８に移り、前述のステップ６４と同様にして記憶部１６Ｃのコードデータに対応する区間の打点を取得する。前述例のように記憶部１６ＣにはコードデータＣＤ１が書込まれているものとすると、ステップ７８では、記憶部１６Ｅに１小節目のリズムデータが書込まれる。
【００５１】
次に、ステップ８０では、前述のステップ６６と同様にしてステップ７８での取得に係る区間の打点に対してステップ７４又は７６での取得に係るＡＶＮＳ内の音のピッチを付与する。そして、各打点毎にピッチが付与されたリズムデータからなる区間メロディデータを記憶部１６Ｅから記憶部１６Ｆに転送する。前述例のように記憶部１６Ｅには１小節目のリズムデータが、記憶部１６Ｄには「ＣＭ９」対応のスケールデータがそれぞれ書込まれているものとすると、ステップ８０では、１小節目のリズムデータの指示する各打点に対して「ＣＭ９」対応のスケールデータの指示するＡＶＮＳ内の音のピッチを付与することにより１小節目のメロディデータが生成され、このメロディデータが記憶部１６Ｅから記憶部１６Ｆに転送される。
【００５２】
次に、ステップ８２では、記憶部１６Ａに次のコードデータありか判定する。この判定の結果が肯定的（Ｙ）であればステップ８４に移り、記憶部１６Ａから次のコードデータを読出して記憶部１６Ｃに書込む。そして、記憶部１６Ｃに書込まれたコードデータに関してステップ７２〜８０の処理を上記したと同様に実行する。一例として、ステップ８４において記憶部１６Ｃに図６のコードデータＣＤ２が書込まれたものとすると、ステップ７４では、記憶部１６Ｄに図６のスケールデータＳＣ２が書込まれる。そして、ステップ８０では、記憶部１６Ｅの２小節目のリズムデータの指示する各打点に対して記憶部１６ＤのスケールデータＳＣ２の指示するドリアン・スケール内の音のピッチを付与することにより２小節目のメロディデータが生成され、このメロディデータが記憶部１６Ｅから記憶部１６Ｆに転送される。
【００５３】
この後は、３小節目以降の各コードデータについて上記したと同様にメロディ生成処理が行なわれる。最終小節に関してステップ８０の処理が終ると、ステップ８２の判定結果が否定的（Ｎ）となり、処理エンドとする。処理エンド時において、記憶部１６Ｆには、１曲分のメロディを表わすメロディデータが記憶されている。
【００５４】
図９は、メロディ生成処理の第３の例を示すものである。この例において、ステップ９０，９２，９４，９８，１００，１０２，１０４は、図８のステップ７０，７２，７４，７８，８０，８２，８４とそれぞれ同様の処理であるので、詳細な説明を省略する。
【００５５】
図９のメロディ生成処理の特徴は、ステップ９２の判定結果が否定的（Ｎ）であった（記憶部１６Ａにコードデータ対応のスケールデータが記憶されていなかった）とき、ステップ９６でコード進行における調のスケールを取得し、ステップ１００でピッチを付与する際に取得に係る調のスケール内の音のピッチを採用するようにしたことである。
【００５６】
一例として、記憶部１６Ａには図６のコード進行データＣＰ１１が書込まれており、ステップ９０では記憶部１６Ｃに図６のコードデータＣＤ１を読出したものとすると、コードデータＣＤ１に対応するスケールデータが記憶部１６Ａに記憶されていないので、ステップ９２の判定結果が否定的（Ｎ）となり、ステップ９６においてコード進行における調（この例ではＣメジャー調）のスケールすなわちダイアトニックスケールを指示するスケールデータを記憶部１６Ｄに書込む。
【００５７】
次に、ステップ９８では、コードデータＣＤ１に対応する１小節目のリズムデータを記憶部１６Ｂから記憶部１６Ｅに転送する。そして、ステップ１００では、記憶部１６Ｅのリズムデータの指示する各打点に対して記憶部１６Ｄのスケールデータの指示する調のスケール内のピッチを付与することにより１小節目のメロディデータを生成し、このメロディデータを記憶部１６Ｅから記憶部１６Ｆに転送する。
【００５８】
ダイアトニックコードについては、ＡＶＮＳと調のスケールが実質的に同一であるので、図９のメロディ生成処理によっても適切なメロディピッチを付与することができる（但し、セカンダリードミナントコードには対応できない）。
【００５９】
図１０は、コード進行データ作成処理を示すものである。ステップ１１０では、記憶部１６Ａからコード進行データにおける先頭のコードデータを読出して記憶部１６Ｃに書込む。一例として、記憶部１６Ａには、図６のコード進行データＣＰ１１が書込まれているものとすると、ステップ１１０では、記憶部１６ＣにコードデータＣＤ１が書込まれる。
【００６０】
次に、ステップ１１２では、前述のステップ７２と同様にして記憶部１６ＣのコードデータはＡＶＮＳ指定ありか（スケールデータが記憶部１６Ａに記憶されているか）判定する。この判定結果が否定的（Ｎ）であればステップ１１４に移り、前述のステップ７６と同様にして図７のＡＶＮＳ検出テーブルを参照して記憶部１６Ｃのコードデータに対応するＡＶＮＳを取得し、取得に係るＡＶＮＳを指示するスケールデータを記憶部１６Ｃのコードデータに対応して記憶部１６Ａに書込む。前述例のように記憶部１６ＣにコードデータＣＤ１が書込まれているものとすると、ステップ１１４では、コードデータＣＤ１の指示するコード「ＣＭ９」に対応するＡＶＮＳを指示するスケールデータを図７のＡＶＮＳ検出テーブルから読出し、コードデータＣＤ１に対応して記憶部１６Ａに書込む。
【００６１】
ステップ１１２の判定結果が肯定的（Ｙ）であったとき又はステップ１１４の処理が終ったときは、ステップ１１６において記憶部１６Ａに次のコードデータありか判定する。この判定結果が肯定的（Ｙ）であればステップ１１８に移り、記憶部１６Ａから次のコードデータを読出して記憶部１６Ｃに書込む。そして、記憶部１６Ｃに書込まれたコードデータに関してステップ１１２，１１４の処理を上記したと同様に実行する。
【００６２】
前述例のようにステップ１１４でコードデータＣＤ１に関する処理を行なったときは、ステップ１１８で記憶部１６ＣにコードデータＣＤ２が読出される。コードデータＣＤ２についてはスケールデータＳＣ２が記憶部１６Ａに記憶されているのでステップ１１２の判定結果が肯定的（Ｙ）となり、ステップ１１４を経ずにステップ１１６に移る。
【００６３】
この後は、３小節目以降の各コードデータについて上記したと同様にＡＶＮＳ指定の有無を判定し、ＡＶＮＳ指定なしであればステップ１１４でＡＶＮＳを取得して記憶部１６Ａに書込む。最終小節に関してステップ１１２又は１１４の処理が終ると、ステップ１１６の判定結果が否定的（Ｎ）となり、処理エンドとする。処理エンド時において、記憶部１６Ａのコード進行データは、図６のＣＰ１１に示すように部分的にスケールデータを欠如した状態から図２のＣＰ１に示すようにスケールデータを完備した状態に変化している。
【００６４】
図１０の処理で作成されたコード進行データは、図５に関して前述したメロディ生成処理や図４に関して前述した自動伴奏処理において利用可能である。
【００６５】
次に、図１１を参照してＡＶＮＳ決定処理の概要を説明する。記憶部１６Ｐ，１６Ｑ，１６Ｒ，１６Ｓ，１６Ｔは、いずれも図１のＲＡＭ１６に属するもので、それぞれコード進行データ，着目コードデータ，前コードデータ，後コードデータ，調データを記憶する。コード進行データは、例えば１曲分のコード進行を構成する複数のコードをそれぞれ指示する複数のコードデータを含むもので、曲の調を指示する調データと共に取得される。
【００６６】
調データ及びコード進行データを取得する方法としては、例えばＲＯＭ１４又は外部記憶装置２８に設けたコード進行データベースからユーザが所望の調データ付きのコード進行データを選択する方法、ユーザが鍵盤３６やスイッチ群３８等により所望の調データ及びコード進行データを入力する方法、ユーザの指示に応じて調データ付きのコード進行データを自動生成する方法等を利用可能である。いずれかの方法で取得された調データ及びコード進行データのうち、調データは記憶部１６Ｔに記憶されると共にコード進行データは記憶部１６Ｐに記憶される。記憶部１６Ｐには、コード進行データを構成する各コードデータに対応してＡＶＮＳを指示するスケールデータを記憶可能になっている。
【００６７】
ＡＶＮＳ決定処理１２０では、記憶部１６Ｐに記憶されたコード進行データを構成する各コードデータ毎に該コードデータが示すコードに対するＡＶＮＳを決定し、各コードデータ毎に決定に係るＡＶＮＳを指示するスケールデータＡＳＤを例えば図２のＣＰ１に示したのと同様のフォーマットで記憶部１６Ｐに記憶させる。ＡＶＮＳ決定の際には、ＡＶＮＳを決定すべきコードデータを記憶部１６Ｐから読出し、着目コードデータとして記憶部１６Ｑに記憶させる。また、着目コードデータの直前のコードデータ及び直後のコードデータを記憶部１６Ｐから読出し、それぞれ前コードデータ及び後コードデータとして記憶部１６Ｒ及び１６Ｓに記憶させる。ただし、コード進行の先頭のコードについてＡＶＮＳを決定するときは、前コードデータが存在しないので、記憶部１６Ｔの調データが指示する調のトニックコードを表わすトニックコードデータを記憶部１６Ｒに記憶させ、コード進行の最後のコードについてＡＶＮＳを決定するときは、後コードデータが存在しないので、前コードデータの場合と同様に調のトニックコードを表わすトニックコードデータを記憶部１６Ｓに記憶させる。
【００６８】
ＡＶＮＳテーブル１２２は、図１２に一例を示すように１又は複数のコードタイプ毎に１又は複数のＡＶＮＳを表わすもので、例えばＲＯＭ１４又は外部記憶装置２８に記憶される。図１２には、コード及びＡＶＮＳについて使用する調（メジャー又はマイナー）を示した。図１２の例では、ダイアトニックコードにおけるスケールのみを示した。１つのコードタイプが複数のスケールに対応することがあるが、これは１つのコードタイプであってもコード機能が違えばスケールも違うことを意味している。例えばＣメジャー調において、メジャー（Ｍ）はトニック（Ｃ）とサブドミナント（Ｆ）で使用され、このときのスケールはトニックに対応してアイオニアン・スケールとなり、サブドミナントに対応してリディアン・スケールとなる。
【００６９】
ＡＶＮＳ決定の際には、記憶部１６Ｑの着目コードデータが指示する着目コード毎にＡＶＮＳテーブル１２２を参照して該着目コードに対応するＡＶＮＳ候補を抽出する。そして、抽出に係るＡＶＮＳ候補が「ｍ７♭５」の場合の「ロクリアン・スケール」のように１つだけあればその１つのＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定し、「Ｍ」の場合の「アイオニアン・スケール，リディアン・スケール」のように複数であれば記憶部１６Ｒの前コードデータ及び記憶部１６Ｓの後コードデータを参照して前コード及び後コードのうちの少なくとも一方のコードの構成音を含む１つのＡＶＮＳ候補を抽出に係る複数のＡＶＮＳ候補のうちから検出し、この検出に係る１つのＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定する。また、前コード及び後コードのうちの少なくとも一方のコードの構成音を含む複数のＡＶＮＳ候補を抽出に係る複数のＡＶＮＳ候補のうちから検出すると共にこの検出に係る複数のＡＶＮＳ候補のうちから１つのＡＶＮＳ候補を選択し、この選択に係る１つのＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定する。
【００７０】
図１３，１４は、ＡＶＮＳ決定処理の流れを示すものである。ステップ１３０では、調データと共にコード進行を取得する。すなわち、前述したいずれかの取得方法により調データ及びコード進行データを取得し、調データは記憶部１６Ｔに、コード進行データは記憶部１６Ｐにそれぞれ記憶させる。
【００７１】
次に、ステップ１３２では、コード進行から着目コード、前コード及び後コードを取得する。すなわち、記憶部１６Ｐから着目コードデータを読出して記憶部１６Ｑに書込むと共に記憶部１６Ｒ，１６Ｓにそれぞれ前コードデータ及び後コードデータを書込む。コード進行の先頭のコードを着目コードとするときは、前コードデータとして調のトニックコードを表わすトニックコードデータを記憶部１６Ｒに書込み、着目コードの次のコードデータを記憶部１６Ｐから読出して後コードデータとして記憶部１６Ｓに書込む。この後、ステップ１３４に移る。
【００７２】
ステップ１３４では、着目コードに対応するＡＶＮＳ候補をＡＶＮＳテーブル１２２から抽出する。すなわち、記憶部１６Ｑの着目コードデータが指示する着目コードに対応するＡＶＮＳ候補をＡＶＮＳテーブル１２２から読出してＲＡＭ１６内の候補レジスタ（図示せず）にセットする。このときセットされるＡＶＮＳ候補は、１つのときもあれば、複数のときもある。
【００７３】
次に、ステップ１３６では、候補レジスタ内のＡＶＮＳ候補が複数か判定する。この判定の結果が否定的（Ｎ）であれば、ＡＶＮＳ候補が１つであったことになり、図１４のステップ１３８に移る。
【００７４】
ステップ１３８では、候補レジスタ内の１つのＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定する。そして、決定に係るＡＶＮＳを指示するスケールデータＡＳＤを着目コードデータに対応して記憶部１６Ｐに書込む。
【００７５】
一方、ステップ１３６の判定結果が肯定的（Ｙ）であったときは、ステップ１４０に移り、前コードの構成音と後コードの構成音とに共通する共通音を検出する。すなわち、記憶部１６Ｒの前コードデータが指示するコードの構成音と、記憶部１６Ｓの後コードデータが指示するコードの構成音とのうちから両者に共通する音を検出する。例えば、前コードの構成音がＢ♭，Ｄ，Ｆであり、後コードの構成音がＥ♭，Ｇ，Ｂ♭であれば、共通音はＢ♭となる。
【００７６】
次に、ステップ１４２では、共通音ありか判定する。この判定の結果が肯定的（Ｙ）であればステップ１４４に移り、ステップ１３４での抽出に係る複数のＡＶＮＳ候補のうちに、共通音を含むＡＶＮＳ候補があるか判定する。この判定の結果が肯定的（Ｙ）であればステップ１４６に移り、ステップ１３４での抽出に係る複数のＡＶＮＳ候補のうちに、共通音を最も多く含むＡＶＮＳ候補が複数あるか判定する。この判定の結果が否定的（Ｎ）であったときは、共通音を最も多く含むＡＶＮＳ候補が１つであったことになり、ステップ１３８に移る。
【００７７】
ステップ１３８では、共通音を最も多く含む１つのＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定すると共に、決定に係るＡＶＮＳを指示するスケールデータＡＳＤを前述したと同様にして記憶部１６Ｐに書込む。
【００７８】
ステップ１４２又は１４４の判定結果が否定的（Ｎ）であった（共通音がないか、あってもそれを含むＡＶＮＳ候補がなかった）とき、あるいはステップ１４６の判定結果が肯定的（Ｙ）であった（共通音を最も多く含むＡＶＮＳ候補が複数あった）ときは、ステップ１４８に移る。
【００７９】
ステップ１４８では、ステップ１３４での抽出に係る複数のＡＶＮＳ候補のうちの各ＡＶＮＳ候補毎に該ＡＶＮＳ候補に含まれる前コードの構成音の数と該ＡＶＮＳ候補に含まれる後コードの構成音の数とを検出する。このとき、前コード及び後コードは、それぞれ記憶部１６Ｒの前コードデータ及び記憶部１６Ｓの後コードデータによって指示される。
【００８０】
次に、ステップ１５０では、ステップ１３４での抽出に係る複数のＡＶＮＳ候補のうちに、前コード又は後コードのいずれかのコードの構成音を含むＡＶＮＳ候補があるかステップ１４８の検出結果に基づいて判定する。この判定の結果が肯定的（Ｙ）であればステップ１５２に移り、ステップ１３４での抽出に係る複数のＡＶＮＳ候補のうちに、コード構成音を最も多く含むＡＶＮＳ候補が複数あるかステップ１４８の検出結果に基づいて判定する。
【００８１】
１つのＡＶＮＳ候補がコード構成音を含む態様としては、（ａ）前コードの構成音のみを含むもの、（ｂ）後コードの構成音のみを含むもの、（ｃ）前コード及び後コードの双方の構成音を含むものがありうる。１つのＡＶＮＳ候補に含まれるコード構成音数としては、態様（ａ）では前コードについて含まれる構成音数を採用し、態様（ｂ）では後コードについて含まれる構成音数を採用し、態様（ｃ）では前後のコードについて含まれる構成音数が等しければその等しい数を採用し、等しくなければ多い方の数（例えば２音と３音ならば３音）を採用する。このようにして各ＡＶＮＳ候補毎に含まれるコード構成音数を求めた上で、求めたコード構成音数が最も多いＡＶＮＳ候補が複数あるかステップ１５２で判定する。この判定の結果が否定的（Ｎ）であったときは、コード構成音を最も多く含むＡＶＮＳ候補が１つであったことになり、ステップ１３８に移る。
【００８２】
ステップ１３８では、コード構成音を最も多く含む１つのＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定し、決定に係るＡＶＮＳを指示するスケールデータＡＳＤを前述したと同様にして記憶部１６Ｐに書込む。
【００８３】
ステップ１５０の判定結果が否定的（Ｎ）であった（前コード又は後コードのいずれかのコードの構成音を含むＡＶＮＳ候補がなかった）とき、あるいはステップ１５２の判定結果が否定的（Ｎ）であった（コード構成音を最も多く含むＡＶＮＳ候補が複数あった）ときは、ステップ１５４に移る。
【００８４】
ステップ１５０からステップ１５４にきた場合には、ステップ１５４において、ステップ１３４での抽出に係る複数のＡＶＮＳ候補のうちから、調の音階音を最も多く含む１つのＡＶＮＳ候補を選択する。また、ステップ１５２からステップ１５４にきた場合には、ステップ１５４において、ステップ１５２での判定に係る複数のＡＶＮＳ候補のうちから、調の音階音を最も多く含む１つのＡＶＮＳ候補を選択する。いずれの場合にも、調は、記憶部１６Ｔの調データによって指示される。ＡＶＮＳ候補の選択の後、ステップ１５４では、選択に係る１つのＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定すると共に、決定に係るＡＶＮＳを指示するスケールデータＡＳＤを着目コードデータに対応して記憶部１６Ｐに書込む。
【００８５】
ステップ１５４において、ＡＶＮＳ候補を選択する際には、調の音階音以外の要素を考慮して選択を行なうようにしてもよい。例えば、すでにコード進行に対応するメロディが存在する場合には、着目コードの区間における該メロディの構成音をより多く含むＡＶＮＳ候補を選択してもよい。また、前コード及び後コードのうち発音時間が長い方のコードの構成音を含むＡＶＮＳ候補を選択してもよい。さらに、ユーザの音楽的好みを反映できるようにするため、ユーザが前コードの構成音を含むＡＶＮＳ候補又は後コードの構成音を含むＡＶＮＳ候補のいずれを選択するか指定できるようにしてもよい。
【００８６】
ステップ１３８又は１５４の処理が終ったときは、ステップ１５６に移り、記憶部１６ＰにＡＶＮＳを決定すべき次のコードありか判定する。例えば、ステップ１３２でコード進行の先頭のコードを着目コードとした後初めてステップ１５６にきたときは、次のコードがあるので、ステップ１５６の判定結果が肯定的（Ｙ）となり、ステップ１５８に移る。
【００８７】
ステップ１５８では、着目コードを次のコードに設定する。そして、ステップ１３２に戻り、前述したと同様にしてコード進行から着目コード、前コード及び後コードを取得する。例えば、着目コードが２番目のコード（先頭コードの次のコード）であったときは、記憶部１６Ｑ，１６Ｒ，１６Ｓにはそれぞれ先頭コード，２番目のコード，３番目のコードがセットされる。ステップ１３２の後は、前述したと同様にしてステップ１３４以降の処理を行なう。
【００８８】
上記のようにしてコード進行を構成するコードについて順次にＡＶＮＳを決定していくと、やがてステップ１５８ではコード進行の最後のコードを着目コードとする。そして、ステップ１３２に戻り、記憶部１６Ｑ，１６Ｒ，１６Ｓにはそれぞれ最後のコード，最後のコードの直前のコード，調のトニックコードをセットする。次に、ステップ１３４以降の処理を行ない、ステップ１３８又は１５４において、最後のコードに対するＡＶＮＳを決定すると共に、決定に係るＡＶＮＳを指示するスケールデータＡＳＤを前述したと同様にして記憶部１６Ｐに書込む。この後、ステップ１５６で次のコードありか判定すると、判定結果が否定的（Ｎ）となり、処理エンドとする。
【００８９】
上記したＡＶＮＳ決定処理によれば、コード進行を構成する各コード毎に該コードに適合したＡＶＮＳを自動的に決定することができる。このようなＡＶＮＳ決定の具体例として例１〜３を順次に説明する。
【００９０】
〔例１〕コード進行がＣメジャー調のＢ♭，Ｆ，Ｅ♭であり、着目コードがＦである場合、ＡＶＮＳ候補は、
アイオニアン・スケール：Ｆ，Ｇ，Ａ，Ｂ♭，Ｃ，Ｄ，Ｅ
リディアン・スケール：Ｆ，Ｇ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ
となり、前後コードの構成音は、
前コードＢ♭：Ｂ♭，Ｄ，Ｆ
後コードＥ♭：Ｅ♭，Ｇ，Ｂ♭
となる。ここで、共通音はＢ♭となり、共通音Ｂ♭を含むＡＶＮＳ候補はアイオニアン・スケール１つとなる。従って、アイオニアン・スケールが着目コードＦに対するＡＶＮＳとして決定される。
【００９１】
〔例２〕コード進行がＣメジャー調のＢ♭，Ｆ，Ｃであり、着目コードがＦである場合、ＡＶＮＳ候補は、
アイオニアン・スケール：Ｆ，Ｇ，Ａ，Ｂ♭，Ｃ，Ｄ，Ｅ
リディアン・スケール：Ｆ，Ｇ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ
となり、前後コードの構成音は、
前コードＢ♭：Ｂ♭，Ｄ，Ｆ
後コードＣ：Ｃ，Ｅ，Ｇ
となる。ここで、共通音はない。アイオニアン・スケールに含まれる前コードＢ♭の構成音は、Ｂ♭，Ｄ，Ｆの３音であり、アイオニアン・スケールに含まれる後コードＣの構成音は、Ｃ，Ｅ，Ｇの３音である。また、リディアン・スケールに含まれる前コードＢ♭の構成音は、Ｄ，Ｆの２音であり、リディアン・スケールに含まれる後コードＣの構成音は、Ｃ，Ｅ，Ｇの３音である。従って、コード構成音を最も多く含むＡＶＮＳ候補は、アイオニアン・スケール及びリディアン・スケールの２つとなり、これらのスケール候補のうち調の音階音を最も多く含むＡＶＮＳ候補は、Ｃメジャー調の音階音Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ａ，Ｂをすべて含むリディアン・スケールとなる。この結果、リディアン・スケールが着目コードＦに対するＡＶＮＳとして決定される。
【００９２】
〔例３〕コード進行がＣメジャー調のＢ♭，Ｆ，Ｄであり、着目コードがＦである場合、ＡＶＮＳ候補は、
アイオニアン・スケール：Ｆ，Ｇ，Ａ，Ｂ♭，Ｃ，Ｄ，Ｅ
リディアン・スケール：Ｆ，Ｇ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ
となり、前後コードの構成音は、
前コードＢ♭：Ｂ♭，Ｄ，Ｆ
後コードＤ：Ｄ，Ｆ♯，Ａ
となる。ここで、共通音はＤとなり、共通音Ｄを含むＡＶＮＳ候補は、アイオニアン・スケール及びにリディアン・スケールとなる。アイオニアン・スケールに含まれる前コードＢ♭の構成音は、Ｂ♭，Ｄ，Ｆの３音であり、アイオニアン・スケールに含まれる後コードＤの構成音は、Ｄ，Ａの２音である。また、リディアン・スケールに含まれる前コードＢ♭の構成音は、Ｄ，Ｆの２音であり、リディアン・スケールに含まれる後コードＤの構成音は、Ｄ，Ａの２音となる。従って、コード構成音を最も多く含むＡＶＮＳ候補は、アイオニアン・スケール１つとなり、アイオニアン・スケールが着目コードＦに対するＡＶＮＳとして決定される。
【００９３】
上記したＡＶＮＳ決定処理は、図８のステップ７６又は図１０のステップ１１４に関して前述したＡＶＮＳ検出処理として利用可能であるのは勿論のこと、図２に示したようなコード進行データを作成する際に各コード毎にＡＶＮＳを決定するのに利用することができる。また、他の用途（例えば通常の自動作曲、自動伴奏、教習等）に利用してもよい。
【００９４】
上記したＡＶＮＳ決定処理は、次の（イ）〜（ト）のような変更を加えて実施してもよい。
【００９５】
（イ）調データと共にコード進行データを取得するようにしたが、調データを取得せず、コード進行データのみを取得し、この後コード進行データに基づいて調を自動検出してもよい。この場合、部分的な転調を検出する必要はなく、コード進行全体を支配する調を検出すればよい。このコード進行全体の調検出は公知の技術であり、部分的な転調検出に比べて容易である。また、取得するコード進行を所定調（例えばＣメジャー調）のみに限定したり、あるいは「調の音階音を最も多く含むＡＶＮＳ候補を着目コードに対するＡＶＮＳとする」というステップを省略したりすれば、調データを与えなくてよい。
【００９６】
（ロ）図１２に示したＡＶＮＳテーブルにおいて、ダイアトニックコードにおけるスケールのみを記憶するようにしたが、ノンダイアトニックコードにおけるスケールをも記憶するようにしてもよい。また、ＡＶＮＳテーブルの記憶データ形式は、図１２に示したものに限らない。
【００９７】
（ハ）前後コードに共通の構成音を含む１又は複数のＡＶＮＳ候補を検出する処理（ステップ１４０〜１４６の処理）の後、前後コードのうちの少なくとも一方のコードの構成音を最も多く含む１又は複数のＡＶＮＳ候補を検出する処理（ステップ１４８〜１５２の処理）を行なう例を示したが、これらの処理の順序を逆にしてもよく、あるいはいずれか一方の処理のみを行なうようにしてもよい。また、必ず両方の処理を行ない、異なる結果が出た場合は、いずれか一方の処理の結果を優先的に採用してもよいし、ランダムに採用してもよい。
【００９８】
（ニ）着目コードに関しては、１つ前のコード及び１つ後のコードを参照するのみならず、２つ前のコード及び２つ後のコードをも参照してＡＶＮＳの決定を行なうようにしてもよい。例えば、前後コードのみの参照では複数のＡＶＮＳ候補が残ってしまう場合に、２つ前のコード及び２つ後のコードをも参照し、これらのコード構成音をも含むＡＶＮＳを採用するようにすればよい。更には、３つ以上前のコード及び３つ以上後のコードをも参照してもよい。
【００９９】
（ホ）コード進行の先頭及び最後のコードについては、調のトニックコードをそれぞれ仮の前コード及び仮の後コードとして用いてＡＶＮＳ決定を行なったが、仮の前コード及び仮の後コードを設定せず、前コード及び後コードを用いない例外的なＡＶＮＳ決定処理を行なうようにしてもよい。
【０１００】
（ヘ）各ＡＶＮＳ候補毎に該ＡＶＮＳ候補に含まれるコード構成音の数を求める際に、含まれるコード構成音数が前コードと後コードとで等しければその等しい数を採用し、等しくなければ多い方の数を採用したが、前コード及び後コードの双方について含まれるコード構成音数を考慮した値（例えば単純加算値、重み付け加算値等）を採用してもよい。例えば、あるＡＶＮＳ候補に含まれる前コード及び後コード構成音数がそれぞれ２音及び３音であれば含まれるコード構成音数を５とすることができ、他のＡＶＮＳ候補についても同様にしてコード構成音数を求めることができる。そして、コード構成音数が多い方のＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定すればよい。
【０１０１】
（ト）ＡＶＮＳ決定処理において、着目コードに対して提示された複数のＡＶＮＳ候補のいずれにも前コード及び後コードの構成音が含まれている場合、前コード又は後コードのいずれか一方のコードについて含まれるコード構成音数が等しいときは、他方のコードについて含まれるコード構成音数が多い方のＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定してもよい。このようにすると、前後コードとのつながりがより良いＡＶＮＳ候補を着目コードに対するＡＶＮＳとして決定することができる。
【０１０２】
この発明は、上記した実施形態に限定されるものではなく、種々の改変状態で実施可能なものである。例えば、次のような変更が可能である。
【０１０３】
（１）この発明は、電子楽器の形態に限らず、パーソナルコンピュータとアプリケーションソフトウェアとの組合せの形態でも実施することができる。この発明を電子楽器の形態で実施する場合、その形態は、鍵盤楽器タイプに限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の形態を採用してもよい。また、音源装置、自動演奏装置等を１つの電子楽器本体に内蔵した形態に限らず、それぞれの装置を別体の装置とし、ＭＩＤＩや各種ネットワーク等の通信手段を用いて別体の装置を接続した形態を採用してもよい。
【０１０４】
（２）演奏データ（曲データ）のフォーマットは、イベントの発生時刻を１つ前のイベントからの相対時間で表わす「イベント＋相対時間」方式に限らず、イベントの発生時刻を曲や小節内の絶対時間で表わす「イベント＋絶対時間」方式、音符の音高と音符長及び休符と休符長で曲の内容を表わす「高音（休符）＋符長」方式、イベント発生の最小時間単位毎に記憶領域を確保し、イベントの発生時刻に対応する記憶領域にイベントを記憶する方式等の任意の方式を用いることができる。
【０１０５】
（３）時系列の演奏データの記憶方法としては、メモリ上で連続する領域に記憶する形式でもよいし、メモリ上で飛び飛びの領域に散在させて記憶し、連続するデータとして管理する形式でもよい。
【０１０６】
（４）ＭＩＤＩインターフェースとしては、専用のＭＩＤＩインターフェースに限らず、ＲＳ−２３２Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェースを用いて構成されたものを用いてもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信するようにしてもよい。
【０１０７】
（５）図２又は６に示したようなコード進行データにおけるコードやＡＶＮＳをユーザが任意に指定できるようにしてもよい。
【図面の簡単な説明】
【０１０８】
【図１】この発明の一実施形態に係るメロディ生成装置を備えた電子楽器の回路構成を示すブロック図である。
【図２】コード進行データの一例を示す図である。
【図３】スケール音テーブルを示す図である。
【図４】曲生成処理の概要を説明するためのフローチャートである。
【図５】メロディ生成処理の第１の例を示すフローチャートである。
【図６】コード進行データの他の例を示す図である。
【図７】ＡＶＮＳ検出テーブルを示す図である。
【図８】メロディ生成処理の第２の例を示すフローチャートである。
【図９】メロディ生成処理の第３の例を示すフローチャートである。
【図１０】コード進行データ作成処理を示すフローチャートである。
【図１１】ＡＶＮＳ決定処理の概要を説明するためのブロック図である。
【図１２】ＡＶＮＳテーブルを示す図である。
【図１３】ＡＶＮＳ決定処理の一部を示すフローチャートである。
【図１４】ＡＶＮＳ決定処理の残部を示すフローチャートである。
【符号の説明】
【０１０９】
１０：バス、１２：ＣＰＵ、１４：ＲＯＭ、１６：ＲＡＭ、１８，２０：検出回路、２２：表示回路、２４：音源回路、２６：効果回路、２８：外部記憶装置、３０：ＭＩＤＩインターフェース、３２：通信インターフェース、３４：タイマ、３６：鍵盤、３８：スイッチ群、４０：表示器、４２：サウンドシステム、４４：他のＭＩＤＩ機器、４６：通信ネットワーク、４８：他のコンピュータ。
【図１】
2004206156.tif 000003
【図２】
2004206156.tif 000004
【図３】
2004206156.tif 000005
【図４】
2004206156.tif 000006
【図５】
2004206156.tif 000007
【図６】
2004206156.tif 000008
【図７】
2004206156.tif 000009
【図８】
2004206156.tif 000010
【図９】
2004206156.tif 000011
【図１０】
2004206156.tif 000012
【図１１】
2004206156.tif 000013
【図１２】
2004206156.tif 000014
【図１３】
2004206156.tif 000015
【図１４】
2004206156.tif 000016