(57)【特許請求の範囲】
【請求項１】
元メロディを表わす元メロディデータを供給する供給手段と、
前記元メロディに関して所望のコード進行を指定する指定手段と、
前記元メロディを構成する各音を重要音又は非重要音のいずれかに分類する分類手段であって、前記重要音としては所定の条件を満たす複数音が予め定められているものと、
前記供給手段からの元メロディデータと前記指定手段で指定されたコード進行とに基づいて前記元メロディの構成音に対応する新メロディの構成音を決定することにより新メロディを表わすメロディデータを生成する生成手段であって、前記分類手段で重要音であると分類された各重要音については前記指定手段で指定されたコード進行の中で該重要音に対応するコードの構成音のうちから該重要音及びその直前の重要音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として選択し、前記分類手段で重要音でないと分類された各非重要音については該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として採用するものと
を備えたメロディ生成装置。
【請求項２】
前記生成手段は、前記分類手段で重要音でないと分類された各非重要音について該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる候補音が前記指定手段で指定されたコード進行の中で該非重要音に対応するコードの構成音と共存できない矛盾する音か否かを判定し、矛盾するとの判定に応じて該候補音と音高が近似した音を該コードの構成音のうちから新メロディの構成音として採用し、矛盾しないとの判定に応じて該候補音と音高が一致又は近似した音を該コードで成立する音階音のうちから新メロディの構成音として採用するものである請求項１記載のメロディ生成装置。
【請求項３】
前記生成手段で生成されるメロディデータが表わす新メロディの中から音高差が所定値以上である連続した２音を検出する検出手段と、この検出手段で検出された連続した２音のうちの前音を、前記指定手段で指定されたコード進行の中で該前音に対応するコードの構成音のうち前記元メロディの対応する２音の音高変化状態と一致又は近似した音高変化状態が得られる音に修正する修正手段とを更に備えた請求項１又は２記載のメロディ生成装置。
【請求項４】
元メロディを表わす元メロディデータを供給する供給手段と、
前記元メロディに関して所望のコード進行を指定する指定手段と
を備えたコンピュータにおいて使用される記録媒体であって、
前記元メロディを構成する各音を重要音又は非重要音のいずれかに分類する分類ステップであって、前記重要音としては所定の条件を満たす複数音が予め定められているものと、
前記供給手段で供給された元メロディデータと前記指定手段で指定されたコード進行とに基づいて前記元メロディの構成音に対応する新メロディの構成音を決定することにより新メロディを表わすメロディデータを生成する生成ステップであって、前記分類ステップで重要音であると分類された各重要音については前記指定手段で指定されたコード進行の中で該重要音に対応するコードの構成音のうちから該重要音及びその直前の重要音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として選択し、前記分類ステップで重要音でないと分類された各非重要音については該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として採用するものと
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項５】
元メロディを表わす元メロディデータと該元メロディに関してコード進行を表わす元コードデータとを供給する供給手段と、
この供給手段からの元コードデータが表わす各元コード毎に前記元メロディの構成音のうちで該元コードに対応するメロディ音の中に、該元コードの構成音以外の音であってその音を該元コードに付加したときにテンション音として成立する音があるか判定する判定手段と、
この判定手段での判定の結果が肯定的になるのに応答した判定に係る元コードを、前記テンション音として成立する音をコード構成音とするテンション度数付きのコードに修正する第１の修正手段と、
前記元メロディに関して所望の新コード進行を指定する指定手段と、
この指定手段で指定された新コード進行のうち前記第１の修正手段での修正に係るコードに対応する新コードを該修正に係るコードと同じテンション度数を有するコードとするように前記新コード進行を修正する第２の修正手段と、
前記元メロディを構成する各音を重要音又は非重要音のいずれかに分類する分類手段であって、前記重要音としては所定の条件を満たす複数音が予め定められているものと、
前記供給手段からの元メロディデータと前記第２の修正手段で修正された新コード進行とに基づいて前記元メロディの構成音に対応する新メロディの構成音を決定することにより新メロディを表わすメロディデータを生成する生成手段であって、前記分類手段で重要音であると分類された各重要音については前記第２の修正手段で修正された新コード進行の中で該重要音に対応する新コードの構成音のうちから該重要音及びその直前の重要音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として選択し、前記分類手段で重要音でないと分類された各非重要音については該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として採用するものと
を備えたメロディ生成装置。
【請求項６】
元メロディを表わす元メロディデータと該元メロディに関してコード進行を表わす元コードデータとを供給する供給手段と、
前記元メロディに関して所望の新コード進行を指定する指定手段と
を備えたコンピュータにおいて使用される記録媒体であって、
前記供給手段で供給された元コードデータが表わす各元コード毎に前記元メロディの構成音のうちで該元コードに対応するメロディ音の中に、該元コードの構成音以外の音であってその音を該元コードに付加したときにテンション音として成立する音があるか判定する判定ステップと、
この判定ステップでの判定の結果が肯定的になるのに応答した判定に係る元コードを、前記テンション音として成立する音をコード構成音とするテンション度数付きのコードに修正する第１の修正ステップと、
前記指定手段で指定された新コード進行のうち前記第１の修正ステップでの修正に係るコードに対応する新コードを該修正に係るコードと同じテンション度数を有するコードとするように前記新コード進行を修正する第２の修正ステップと、
前記元メロディを構成する各音を重要音又は非重要音のいずれかに分類する分類ステップであって、前記重要音としては所定の条件を満たす複数音が予め定められているものと、
前記供給手段で供給された元メロディデータと前記第２の修正ステップで修正された新コード進行とに基づいて前記元メロディの構成音に対応する新メロディの構成音を決定することにより新メロディを表わすメロディデータを生成する生成ステップであって、前記分類ステップで重要音であると分類された各重要音については前記第２の修正ステップで修正された新コード進行の中で該重要音に対応する新コードの構成音のうちから該重要音及びその直前の重要音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として選択し、前記分類手段で重要音でないと分類された各非重要音については該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として採用するものと
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、メロディ生成装置及び記録媒体に関し、特に元メロディの音高変化状態とユーザ指定のコード進行とに基づいて元メロディの構成音に対応する新メロディの構成音を決定することにより元メロディとメロディ雰囲気が近似した新メロディを生成可能としたものである。
【０００２】
【従来の技術】
従来、与えられた演奏データを、指定されたコード進行に適合するように音高変換する技術が知られている（例えば、特開平７−２１９５３４号公報参照）。より具体的には、与えられた演奏データの各音高を、その演奏データの元となったコード進行に基づいて所定の基準コード（例えばＣメジャー）に基づくように逆変換し、この逆変換後の演奏データの各音高を、指定されたコード進行に基づく音高となるように変換している。前記逆変換は、与えられた演奏データの各音高を、元となったコードのルートと前記基準コードのルートとの差分だけ全体的にシフトした後、元となったコードのタイプに応じて、前記基準のタイプ（メジャー）に適合するように若干修正するようにしている。また、前記変換は、前記基準のタイプ（メジャー）に基づくように逆変換された各音高を、指定されたコードのタイプに適合するように若干修正した後、指定されたコードのルートと前記基準コードのルートとの差分だけ全体にシフトするようにしている。このような技術は、一般的にはベースパートやコードパート等の自動伴奏に用いられている。
【０００３】
【発明が解決しようとする課題】
上述の技術をメロディパートに応用すれば、あるコード進行に基づいて作成されたメロディを他のコード進行に基づくメロディに変換することができ、新たなメロディの生成が可能となる。しかしながら、元となったコード進行における各コード区間毎に、或いは指定されたコード進行における各コード区間毎に、元となった、或いは指定されたコードのルートと基準コードのルートとの差分だけ全体的にシフトされるため、コードが変わる位置の前後においてメロディの流れが分断されてしまい、生成されたメロディは、最初の与えられたメロディの雰囲気を保持することができないという問題点がある。
【０００４】
この発明の目的は、所望のメロディとメロディ雰囲気が近似した新メロディを生成することができる新規なメロディ生成装置及び記録媒体を提供することにある。
【０００５】
【課題を解決するための手段】
この発明に係る第１のメロディ生成装置は、
元メロディを表わす元メロディデータを供給する供給手段と、
前記元メロディに関して所望のコード進行を指定する指定手段と、
前記元メロディを構成する各音を重要音又は非重要音のいずれかに分類する分類手段であって、前記重要音としては所定の条件を満たす複数音が予め定められているものと、
前記供給手段からの元メロディデータと前記指定手段で指定されたコード進行とに基づいて前記元メロディの構成音に対応する新メロディの構成音を決定することにより新メロディを表わすメロディデータを生成する生成手段であって、前記分類手段で重要音であると分類された各重要音については前記指定手段で指定されたコード進行の中で該重要音に対応するコードの構成音のうちから該重要音及びその直前の重要音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として選択し、前記分類手段で重要音でないと分類された各非重要音については該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として採用するものと
を備えたものである。
【０００６】
第１のメロディ生成装置によれば、元メロディを構成する各音は、重要音又は非重要音のいずれか分類される。重要音としては、例えば強拍音、アクセントのある音、長い音等が予め定められている。重要音であると分類された各重要音については指定手段で指定されたコード進行の中で該重要音に対応するコード構成音のうちから該重要音及びその直前の重要音の音高変化状態と一致又は近似した音高変化状態が得られる音が新メロディの構成音として生成手段により選択される。また、重要音でないと分類された各非重要音については該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる音が新メロディの構成音として生成手段により採用される。生成手段は、新メロディの構成音として選択・採用した一連の音を表わすメロディデータを生成する。このメロディデータは、元メロディの音高変化状態とユーザ指定のコード進行とに基づいて元メロディの構成音に対応する新メロディの構成音を決定したものであり、元メロディとメロディ雰囲気が近似したものとなる。
【０００７】
この発明に係る第１のメロディ生成装置において、前記生成手段は、前記分類手段で重要音でないと分類された各非重要音について該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる候補音が前記指定手段で指定されたコード進行の中で該非重要音に対応するコードの構成音と共存できない矛盾する音か否かを判定し、矛盾するとの判定に応じて該候補音と音高が近似した音を該コードの構成音のうちから新メロディの構成音として採用し、矛盾しないとの判定に応じて該候補音と音高が一致又は近似した音を該コードで成立する音階音のうちから新メロディの構成音として採用するようにしてもよい。このようにすると、コードの構成音と共存できない矛盾する音が新メロディに含まれるのを防止することができる。
【０００８】
この発明に係る第１のメロディ生成装置にあっては、前記生成手段で生成されるメロディデータが表わす新メロディの中から音高差が所定値以上である連続した２音を検出する検出手段と、この検出手段で検出された連続した２音のうちの前音を、前記指定手段で指定されたコード進行の中で該前音に対応するコードの構成音のうち前記元メロディの対応する２音の音高変化状態と一致又は近似した音高変化状態が得られる音に修正する修正手段とを更に設けてもよい。このようにすると、所定値以上の音高差を例えば短３度以上の音程とすることにより跳躍する元の音を該元の音に対応するコードの構成音のうち元メロディの対応する２音の音高変化状態と一致又は近似した音高変化状態が得られる音とすることができ、不自然さを解消することができる。
【０００９】
この発明に係る第２のメロディ生成装置は、
元メロディを表わす元メロディデータと該元メロディに関してコード進行を表わす元コードデータとを供給する供給手段と、
この供給手段からの元コードデータが表わす各元コード毎に前記元メロディの構成音のうちで該元コードに対応するメロディ音の中に、該元コードの構成音以外の音であってその音を該元コードに付加したときにテンション音として成立する音があるか判定する判定手段と、
この判定手段での判定の結果が肯定的になるのに応答した判定に係る元コードを、前記テンション音として成立する音をコード構成音とするテンション度数付きのコードに修正する第１の修正手段と、
前記元メロディに関して所望の新コード進行を指定する指定手段と、
この指定手段で指定された新コード進行のうち前記第１の修正手段での修正に係るコードに対応する新コードを該修正に係るコードと同じテンション度数を有するコードとするように前記新コード進行を修正する第２の修正手段と、
前記元メロディを構成する各音を重要音又は非重要音のいずれかに分類する分類手段であって、前記重要音としては所定の条件を満たす複数音が予め定められているものと、
前記供給手段からの元メロディデータと前記第２の修正手段で修正された新コード進行とに基づいて前記元メロディの構成音に対応する新メロディの構成音を決定することにより新メロディを表わすメロディデータを生成する生成手段であって、前記分類手段で重要音であると分類された各重要音については前記第２の修正手段で修正された新コード進行の中で該重要音に対応する新コードの構成音のうちから該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として選択し、前記分類手段で重要音でないと分類された各非重要音については該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる音を新メロディの構成音として採用するものと
を備えたものである。
【００１０】
第２のメロディ生成装置によれば、判定手段は、元コードデータが表わす各元コード毎に元メロディの構成音のうちで該元コードに対応するメロディ音の中に、該元コードの構成音以外の音であってその音を元コードに付加したときにテンション音として成立する音があるか判定する。この判定の結果が肯定的になると、第１の修正手段が判定に係る元コードを、前記テンション音として成立する音をコード構成音とするテンション度数付きのコードに修正する。第２の修正手段は、指定手段で指定された新コード進行のうち第１の修正手段での修正に係るコードに対応する新コードを該修正に係るコードと同じテンション度数を有するコードに修正する。そして、第２の修正手段で修正された新コード進行を用いて第１のメロディ生成装置と同様にメロディ生成動作が行なわれる。従って、第１のメロディ生成装置と同様に元メロディとメロディ雰囲気が近似したメロディデータを得ることができ、しかも第２の修正手段で修正された新コード進行を用いたことにより元メロディにおけるテンションの響きを新メロディに引き継ぐことができる。
【００１１】
この発明を実施する際には、供給手段、指定手段、判定手段、生成手段等にそれぞれ相当する処理ステップを含むプログラムを記録した記録媒体を用いてもよい。すなわち、記録媒体のプログラムを読取って各処理ステップを実行するコンピュータによりメロディ生成装置の機能を実現することができる。
【００１２】
【発明の実施の形態】
この発明の一実施形態に係るメロディ生成方法は、元コードが設定されている元メロディを、そのメロディ雰囲気を保ちつつユーザ指定の新コード進行に相応しい新メロディに変換するものである。ここで、元メロディのメロディ雰囲気を保つということは、
（１）元メロディとメロディラインが似ていること、
（２）メロディとコードとの融合感が変わらないこと
という２つの要素を含んでいる。
【００１３】
元メロディと近似したメロディラインを得るための処理としては、
（１）メロディ音高の増減ラインが同一で、新たな凹凸が生じないようにすること、
（２）新メロディの各音は、対応する元メロディの各音になるべく近い音にすること、
（３）音域の広がりは、元メロディとあまり相違しないようにすること
などが要求される。
【００１４】
また、メロディとコードとの融合感を維持することは、メロディをコードの構成音とすることによって実現される。しかし、メロディのすべての音をコード構成音にすると、音が跳躍し、なめらかなメロディができない。そこで、メロディ中の特定の重要音（例えば強拍音、アクセントのある音、長い音など）をコード構成音にする（一般に「ボイシング」と呼ばれている）。隣り合う重要音の間の音についてはボイシングを意識しない。このようにメロディの重要音をコード構成音とすることによってコードとの融合をとっている。
【００１５】
ここでいうコードとは、必ずしも記述されているコードネームに一致しない。例えば図１（ａ），（ｂ）に示すように音名Ａの元メロディ音に関して記述されているコードネームがＣM （Ｃメジャー）である場合は多々あるが、この場合には正確にコードネームを記述するとテンションを含むＣ6 である。ここではこのコードで扱い、「修正後元コード」と呼ぶ。図１（ｃ）には、修正後元コードＣ6 を示す。こうすることによって元メロディ音Ａは、コードＣ6 の構成音となる。
【００１６】
ユーザが図１（ｄ）に示すように新コードＦを指定すると、この新コードを修正前元コードＣ6 と同じテンション度数を有するコードＦ6 に修正する。このコードＦ6 を「修正後新コード」と呼び、図１（ｅ）に示す。そして、修正後新コードＦ6 の構成音のうちの１音を図１（ｆ）に示すように新メロディ音とする。このようにすると、元メロディにおけるテンションの響きを新メロディに引き継ぐことができる。
【００１７】
なお、ユーザ指定の新コードが修正後元コードと矛盾する場合には、ユーザ指定の新コードを優先する。例えば図１（ｄ）に示すように新コードとしてＣM7を指定したときは、ＣM7が修正後元コードＣ6 と矛盾する（共存できない）ので、図１（ｅ）に示すように新コードＣM7を優先して修正後新コードとし、図１（ｆ）に示すように新メロディ音をＣM7の構成音のうちの１音とする。
【００１８】
次に、メロディの生成過程を説明する。この生成過程は、重要音処理と、非重要音処理と、生成音修正処理との３ステップを含んでいる。
【００１９】
重要音処理では、元メロディの重要音を修正後新コードの構成音に変換する。修正後新コードの構成音としては、複数の音が存在するので、次のルールに従って選択する。
【００２０】
（１）新メロディにおける重要音とその直前の重要音との音高差は、対応する元メロディの重要音間の音高差と同一とする。この条件を満たす音が修正後新コードの構成音の中に存在しないときは、修正後新コードの構成音のうち該条件を満たす音に近い音を採用する。近い音が同一距離で複数存在するときは、所定の片方（例えば上方）を採用する。
【００２１】
（２）新メロディにおける曲先頭又はフレーズ先頭の音は、元メロディと音高同一とする。この条件を満たす音が修正後新コードの構成音の中に存在しないときは、修正後新コードの構成音のうち該条件を満たす音に近い音を採用する。近い音が同一距離で複数存在するときは、所定の片方（例えば上方）を採用する。
【００２２】
非重要音処理では、重要音処理で生成した新メロディにおける隣り合う重要音間の非重要音を次のルールに従って生成する。
【００２３】
（１）新メロディにおける非重要音とその直前の音との音高差は、対応する元メロディの音間の音高差と同一とする。この条件を満たす音が修正後新コードの構成音と矛盾するときは、該コードの構成音のうち該条件を満たす音に近い音を採用する。近い音が同一距離で複数存在するときは、所定の片方（例えば上方）を採用する。非重要音に関する上記条件を満たす音が修正後新コードの構成音と矛盾しないときは、該条件を満たす音が音階音(Available Note Scale の構成音）であればそのまま採用し、音階音でなければ音階音のうち該条件を満たす音に近い音を採用する。近い音が複数存在するときは、所定の片方（例えば上方）を採用する。
【００２４】
（２）曲又はフレーズの重要音出現前の音（最初の重要音より前の音）については、元メロディと音高同一とする。この条件を満たす音が修正前の新コードの構成音と矛盾するときは、該コードの構成音のうち該条件を満たす音に近い音を採用する。近い音が同一距離で複数存在するときは、所定の片方（例えば上方）を採用する。
【００２５】
生成音修正処理では、重要音処理及び非重要音処理で生成された新メロディについて不自然な音がないかチェックし、あれば修正する。一例として、音が跳躍する（連続した２音間の音程が短３度以上ある）場合、跳躍元音（連続した２音のうちの前音）は、修正後新コードの構成音でないと不自然なので、修正後新コードの構成音のうち元メロディと一致又は近似した音高変化状態が得られる音を採用する。
【００２６】
上記したメロディ生成過程を図２の楽譜に関して説明する。図２において、（Ａ）は元メロディ、（Ｂ）は新コードによる新メロディ、（Ｃ）は新メロディ生成過程の音をそれぞれ示す。図２（Ａ），（Ｂ）において、重要音には丸印を付してあり、図２（Ａ）〜（Ｃ）において、各メロディ音符には番号を付してある。
【００２７】
まず、元コードを元メロディを参照しながらテンションを加えた修正後元コードに修正する。図２（Ａ）の例においてこの場合が生ずるのは、第２小節第１拍の重要音Ｆで、これを元コードのテンション（７度の音）として含め、修正後元コードをＧ7 とする。他の元コードは、対応する元メロディ音を含んでいるので、修正前元コードをそのまま修正後元コードとする。
【００２８】
次に、図２（Ｂ）の新メロディについて説明する。ここでは、曲先頭の音を重要音とする。また、ユーザ指定の新コード進行Ｆ，Ａ，Ｄｍ，Ｅｍのうちの新コードＡを修正後元コードＧ7 と同じテンション度数を有するコードＡ7 に修正し、修正後新コード進行Ｆ，Ａ7 ，Ｄｍ，Ｅｍを設定する。
【００２９】
曲先頭の音は、元メロディ音がＧであり、これを修正後新コードＦの構成音に変換する。この場合、Ｇは、コードＦの構成音ではないので、コードＦの構成音のうちＧに近い音を探すと、図２（Ｃ）に番号２７の音符で示すようにＡかＦである。この両者は、Ｇから同一距離にあるため、曲先頭に関して定めた条件に基づいて一方の音を採用する。ここでは、上方を条件としてＡを採用し、番号１４の音とする。
【００３０】
次の重要音は、番号１６の音である。元メロディにおいて番号１の音（Ｇ）に対する番号３の音（Ｅ）の音高差は短３度下であり、これを新メロディに当てはめると、番号１４の音（Ａ）の短３度下の音は、図２（Ｃ）に番号２８の音符で示すようにＦ＃になる。これは、修正後新コードＦの構成音ではないので、近いコード構成音である長３度下のＦを採用し、番号１６の音とする。
【００３１】
次の重要音は、番号１７の音である。元メロディにおいて番号３の音（Ｅ）に対する番号４の音（Ｆ）の音高差は短２度上であり、これを新メロディに当てはめると、番号１６の音（Ｆ）の短２度上の音は、図２（Ｃ）に番号２９の音符で示すようにＦ＃となる。これは、修正後新コードＡ7 の構成音ではないので、Ｆ＃に近く且つＡ7 の構成音であるＧを採用し、番号１７の音とする。
【００３２】
この後、番号１９，２０の重要音についても上記したと同様に元メロディ音を対応する修正後新コードの構成音に変換するが、その説明を省略し、番号２４の重要音について説明する。元メロディにおいて番号７の音（Ｃ）に対する番号１１の音（Ｇ）の音高差は、完全５度上であるから、新メロディにおいても図２（Ｃ）に番号３１の音符で示すように番号２０の音（Ｄ）から完全５度上の音であるＡにしたいが、Ａは、修正後新コードＥｍの構成音ではない。そこで、Ａに近いコード構成音としてＧかＢが候補となる。ここでは、所定の条件として上方をとることとし、Ｂを採用し、番号２４の音とする。所定の条件としては、間に入る音符の数が多くなることを想定して音高差が大きくなる方を採用するというものでもよい。
【００３３】
次に、重要音の間を埋める音の生成について説明する。番号１５の音については、元メロディにおいて番号１の音（Ｇ）に対する番号２の音（Ｅ）の音高差が短３度下であるから、番号１４の音（Ａ）から短３度下の音を求めると、図２（Ｃ）に番号２８の音符で示すようにＦ＃となる。これは、修正後新コードＦの構成音Ｆと矛盾するので、近いコード構成音であるＦを採用し、番号１５の音とする。
【００３４】
次に、番号１８の音については、元メロディにおいて番号４の音（Ｆ）に対する番号５の音（Ｄ）の音高差が短３度下であるから、番号１７の音（Ｇ）から短３度下の音を求めると、Ｅとなる。これは、修正後新コードＡ7 の構成音と矛盾しない音階音（ここでは、ハ長調の音階の構成音）であるので、番号１８の音として採用する。
【００３５】
番号２１の音については、元メロディにおいて番号７の音（Ｃ）に対する番号８の音（Ｄ）の音高差が長２度上であるから、番号２０の音（Ｄ）から長２度上の音を求めると、Ｅとなる。これは、修正後新コードＤｍの構成音と矛盾しない音階音であるので、番号２１の音として採用する。
【００３６】
番号２２の音については、元メロディにおいて番号８の音（Ｄ）に対する番号９の音（Ｅ）の音高差が長２度上であるので、番号２１の音（Ｅ）の長２度上の音を求めると、Ｆ＃となる。これは、修正後新コードＤｍの構成音Ｆと矛盾するので、近い（短２度上の）コード構成音であるＦを採用し、番号２２の音とする。
【００３７】
番号２３の音については、元メロディにおいて番号９の音（Ｅ）に対する番号１０の音（Ｆ）の音高差が短２度上であるので、番号２２の音（Ｆ）の短２度上の音を求めると、Ｆ＃となる。これは、修正後新コードＤｍの構成音Ｆと矛盾するので、近いコード構成音を求めると、Ａとなり、これを番号２３の音とする。
【００３８】
図２（Ｂ）に示すような新メロディが生成された後、新メロディには生成音修正処理を施す。一例として、跳躍する元の音はコード音というルールに従って修正を行なう。仮に、番号２３の音が図２（Ｃ）に番号３０の音符で示すようにＧの音であったとすると、このＧの音が番号２４の重要音に跳躍する。Ｇの音は、修正後新コードＤｍの構成音ではない。そこで、ＧをＤｍの構成音であるＡに修正し、番号２３の音とする。ＧをＦに修正することも考えられるが、Ｆにすると、元メロディと近似した音高変化状態が得られない。
【００３９】
なお、図２の例では、曲先頭音が重要音であったが、非重要音の場合には、重要音が出現するまでの新メロディ音としては、修正前新コードの構成音と矛盾しない限り元メロディ音をそのまま採用する。そして、元メロディ音が修正前新コードと矛盾するときは、修正前新コードの構成音のうち元メロディ音に近い音（複数ならば所定の１つ）を採用する。
【００４０】
図３は、上記したメロディ生成方法を実施するメロディ生成装置を備えた電子楽器の回路構成を示すものである。この電子楽器は、パーソナルコンピュータ等の小型コンピュータによってメロディ生成、楽音発生等が制御されるようになっている。
【００４１】
バス１０には、ＣＰＵ（中央処理装置）１２、ＲＯＭ（リード・オンリィ・メモリ）１４、ＲＡＭ（ランダム・アクセス・メモリ）１６、検出回路１８，２０、表示回路２２、音源回路２４、効果回路２６、外部記憶装置２８、ＭＩＤＩ(Musical Instrument Digital Interface)インターフェース３０、通信インターフェース３２、タイマ３４等が接続されている。
【００４２】
ＣＰＵ１２は、ＲＯＭ１４にストアされたプログラムに従ってメロディ生成のための各種処理を実行するもので、これらの処理については図５〜９を参照して後述する。
【００４３】
ＲＡＭ１６は、ＣＰＵ１２による各種処理に際して使用される種々の記憶部を含むもので、主な記憶部としては、元メロディデータ記憶部１６Ａ、元コードデータ記憶部１６Ｂ、新コードデータ記憶部１６Ｃ、新メロディデータ記憶部１６Ｄ等を含んでいる。
【００４４】
検出回路１８は、鍵盤３６から鍵操作情報を検出するものである。検出回路２０は、スイッチ群３８から各種スイッチの操作情報を検出するものである。スイッチ群３８は、一例として文字入力及び数値入力が可能なキーボードからなる。
【００４５】
表示回路２２は、表示器３９の表示動作を制御することにより各種の表示を可能にするものである。
【００４６】
音源回路２４は、複数の楽音発生チャンネルを有するものである。楽音発生方式としては、波形メモリ方式、ＦＭ方式、物理モデル方式、高調波合成方式、フォルマント合成方式、ＶＣＯ，ＶＣＦ，ＶＣＡ等を用いるアナログシンセサイザ方式等の任意のものを採用することができる。また、音源回路２４としては、専用のハードウェアを用いるものに限らず、ＤＳＰ（ディジタル・シグナル・プロセッサ）とマイクロプログラムを組合せたもの、ＣＰＵとソフトウェアを組合せたものであってもよい。さらに、複数の楽音発生チャンネルは、対応する複数の回路で構成してもよく、あるいは１つの回路を時分割的に使用することによって形成してもよい。
【００４７】
効果回路２６は、音源回路２４から発生される楽音信号にコーラス、リバーブ等の効果を付加するものである。効果回路２６から送出される楽音信号は、サウンドシステム４０に供給され、音響に変換される。
【００４８】
外部記憶装置２８は、ＨＤ（ハードディスク）、ＦＤ（フロッピーディスク）、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多目的ディスク）、ＭＯ（光磁気ディスク）等のうち１又は複数種類の記録媒体を着脱可能なものである。外部記憶装置２８に所望の記録媒体を装着した状態では、記録媒体からＲＡＭ１６へデータを転送可能である。また、装着した記録媒体がＨＤやＦＤのように書込可能なものであれば、ＲＡＭ１６のデータを記録媒体に転送可能である。
【００４９】
外部記憶装置２８に装着する記録媒体には、多数の楽曲データがデータベースとして記録されている。各楽曲データは、元メロディを表わす元メロディデータと該元メロディに関してコード進行を表わす元コードデータとを含んでいる。
【００５０】
楽曲データのデータベースとしては、外部記憶装置２８の代りにＲＡＭ１６を用いてもよい。また、プログラム記録手段としては、ＲＯＭ１４の代りに外部記憶装置２８の記録媒体（前述のＨＤ，ＦＤ，ＣＤ，ＤＶＤ，ＭＯ等）を用いることができる。この場合、記録媒体に記録したプログラムは、外部記憶装置２８からＲＡＭ１６へ転送する。そして、ＲＡＭ１６に記憶したプログラムに従ってＣＰＵ１２を動作させる。このようにすると、プログラムの追加やバージョンアップ等を容易に行なうことができる。
【００５１】
ＭＩＤＩインターフェース３０は、自動演奏装置等の他のＭＩＤＩ機器４２との間で演奏情報等の送受信を行なうために設けられたものである。
【００５２】
通信インターフェース３２は、通信ネットワーク（例えばＬＡＮ（ローカル・エリア・ネットワーク）、インターネット、電話回線等）を介してサーバコンピュータ４６と情報通信を行なうために設けられたものである。この発明の実施に必要なプログラムや各種データは、サーバコンピュータ４６から通信ネットワーク４４及び通信インターフェース３２を介してＲＡＭ１６又は外部記憶装置２８へダウンロード要求に応じて取込むようにしてもよい。
【００５３】
タイマ３４は、与えられるテンポデータに対応する周期でテンポクロック信号ＴＣＬを発生するもので、テンポクロック信号ＴＣＬは、割込命令としてＣＰＵ１２に供給される。ＣＰＵ１２は、テンポクロック信号ＴＣＬの各クロックパルス毎に割込処理を開始する。このような割込処理を利用することにより記憶部１６Ａ，１６Ｂ又は記憶部１６Ｃ，１６Ｄの記憶データに基づいて自動演奏を行なうことができる。
【００５４】
上記した電子楽器において、ＣＰＵ１２は、鍵盤３６で鍵が押されるたびに、押された鍵に対応する音高情報と発音命令信号とを音源回路２４に供給する。音源回路２４は、音高情報及び発音命令信号に応じて、押された鍵に対応する音高を有する楽音信号を発生する。このようにしてマニュアル演奏音の発生が可能となる。
【００５５】
図４は、データベースに楽曲データを登録する第１の例を示すものである。データベース５０は、前述したように外部記憶装置２８（又はＲＡＭ１６）により構成される。元メロディデータ入力手段５２としては、鍵盤３６又はスイッチ群３８が用いられ、重要音マークデータ入力手段５４としては、スイッチ群３８が用いられる。元コードデータ入力手段としては、鍵盤３６又はスイッチ群３８が用いられるが、破線で示すように元メロディデータを入力とするコード付与装置（例えばＲＯＭ１４のプログラムに従ってＣＰＵ１２でメロディを分析し、コードを付与するもの）を用いてもよい。
【００５６】
ユーザは、楽曲データ入力モードを選択した後、入力手段５２を用いて所望の元メロディデータを入力する。入力された元メロディデータは、記憶部１６Ａに記憶されると共に図２（Ａ）に示すように表示器３９の画面に楽譜形式で表示される。ユーザは、表示器３９の画面を見ながら入力手段５４により画面上で元メロディに関して重要音を指示する。重要音として指示された各音符については、該音符に対応するメロディデータの一部として記憶部１６Ａに重要音マークデータが記憶されると共に図２（Ａ）に示すように表示器３９の画面に重要音マークが表示される。ユーザは、重要音マークデータを入力する前又はした後に入力手段５６により表示に係る元メロディに関して順次に元コードを指定することにより順次の元コードからなるコード進行を表わす元コードデータを入力する。入力された元コードデータは、記憶部１６Ｂに記憶されると共に図２（Ａ）に示すように元メロディに関して表示器３９の画面に表示される。
【００５７】
ユーザは、表示器３９の画面上で元メロディ、重要音、元コード等を確認した後、スイッチ群３８中の登録スイッチを押して登録指令を与える。この登録指令に応じて記憶部１６Ａの元メロディデータ（重要音マークデータを含む）と記憶部１６Ｂの元コードデータとがデータベース５０に転送される。
【００５８】
ユーザは、上記のような処理により所望の複数の曲について楽曲データをデータベース５０に登録することができる。なお、このような登録処理を行なわず、登録処理済みの記録媒体を外部記憶装置２８に装着するようにしてもよい。
【００５９】
ユーザがメロディ生成モードを選択すると、図５，６に示すようなメロディ生成処理が開始される。
【００６０】
ステップ６０では、データベース５０から元メロディデータ（重要音マークデータを含む）と元コードデータとを読出し、それぞれ記憶部１６Ａと記憶部１６Ｂとにロードする。そして、ステップ６１では、記憶部１６Ｂの元コードデータのうち最初の元コードを見る。
【００６１】
次に、ステップ６２では、ステップ６１で見た元コードに対応する元メロディ音の中に、元コードの構成音以外の音であってその音を元コードに付加したときにテンション音として成立する音が含まれているか判定する。この判定の結果が肯定的（Ｙ）であればステップ６３に移り、元コードを、前記テンション音として成立する元メロディ音をコード構成音とするテンション度数付きのコードに変更して修正後元コードとする。また、ステップ６２の判定結果が否定的（Ｎ）であればステップ６４に移り、元コードをそのまま修正後元コードとする。
【００６２】
ステップ６３又は６４の処理が終ったときは、ステップ６５に移り、鍵盤３６又はスイッチ群３８により元コードに対応する新コードを指定する。そして、ステップ６６では、指定に係る新コードが修正後元コードと矛盾するか判定する。この判定の結果が否定的（Ｎ）であればステップ６７に移り、修正後元コードがテンション度数付きか判定する。この判定の結果が肯定的（Ｙ）であればステップ６８に移り、新コードを、修正後元コードと同じテンション度数を有するコードに変更して修正後新コードとする。
【００６３】
ステップ６６の判定結果が肯定的（Ｙ）であったときは、ステップ６９で新コードをそのまま修正後新コードとする。この結果、修正後元コードと矛盾する新コードが優先的に修正後新コードとされる。また、ステップ６７の判定結果が否定的（Ｎ）であったときは、ステップ６８の処理が必要ないので、ステップ６９に移り、新コードを修正後新コードとする。
【００６４】
ステップ６８又は６９の処理が終ったときは、ステップ７０に移り、元コードが終了か判定する。最初の元コードについて上記処理を行なったときは、ステップ７０の判定結果が否定的（Ｎ）となり、ステップ６１に戻る。ステップ６１では、次の元コードを見る。そして、ステップ６２以降の処理を上記したと同様に実行する。
【００６５】
記憶部１６Ｂの元コードデータにおける最後の元コードに関してステップ６１〜６９の処理が終ると、ステップ７０の判定結果が肯定的（Ｙ）となり、図６のステップ７２に移る。
【００６６】
上記した処理によれば、例えば図２（Ａ）の番号４の音に関してステップ６２，６３により元コードＧがＧ7 に変更されて修正後元コードとなる。また、図１（ｄ）に示したように修正後元コードＣ6 と矛盾する新コードＣM7は、ステップ６６，６９によりそのまま修正後新コードとなる。さらに、図２（Ｂ）の新コードＡは、ステップ６７，６８により修正後元コードＧ7 に対応してＡ7 に変更されて修正後新コードとなる。記憶部１６Ｂの元コードデータは、修正後元コードデータに変更され、記憶部１６Ｃの新コードデータは、修正後新コードデータに変更される。
【００６７】
ステップ７２では、記憶部１６Ａの元メロディデータのうち最初の元メロディ音を見る。そして、ステップ７４では、ステップ７２で見た元メロディ音に関して重要音か（重要音マークデータありか）判定する。この判定の結果が肯定的（Ｙ）であればステップ７６に移り、図７に関して後述するように重要音処理のサブルーチンを実行する。
【００６８】
ステップ７４の判定結果が否定的（Ｎ）であったとき又はステップ７６の処理が終ったときは、ステップ７８に移り、元メロディが終了か判定する。最初の元メロディ音について上記処理を行なったときは、ステップ７８の判定結果が否定的（Ｎ）となり、ステップ７２に戻る。ステップ７２では、次の元メロディ音を見る。そして、ステップ７４，７６の処理を上記したと同様に実行する。
【００６９】
記憶部１６Ａの元メロディデータにおける最後の元メロディ音に関してステップ７４，７６の処理が終ると、ステップ７８の判定結果が肯定的（Ｙ）となり、ステップ８０に移る。
【００７０】
ステップ８０では、記憶部１６Ａの元メロディデータの先頭に読出アドレスを戻す。そして、ステップ８２で最初の元メロディ音を見る。
【００７１】
次に、ステップ８４では、ステップ８２で見た元メロディ音が非重要音か（重要音マークデータなしか）判定する。この判定の結果が肯定的（Ｙ）であればステップ８６に移り、図８について後述するように非重要音処理を実行する。
【００７２】
ステップ８４の判定結果が否定的（Ｎ）であったとき又はステップ８６の処理が終ったときは、ステップ８８に移り、元メロディが終了か判定する。最初の元メロディ音について上記処理を行なったときは、ステップ８８の判定結果が否定的（Ｎ）となり、ステップ８２に戻る。ステップ８２では、次の元メロディ音を見る。そして、ステップ８４，８６の処理を上記したと同様に実行する。
【００７３】
記憶部１６Ａの元メロディデータにおける最後の元メロディ音に関してステップ８４，８６の処理が終ると、ステップ８８の判定結果が肯定的（Ｙ）となり、処理エンドとする。
【００７４】
図７は、重要音処理のサブルーチンを示すもので、ステップ９０では、ステップ７４で重要音と判定された元メロディ音が曲又はフレーズで初めての重要音か判定する。この判定の結果が肯定的（Ｙ）であればステップ９２に移る。
【００７５】
ステップ９２では、ステップ９０で初めての重要音と判定された元メロディ音が修正後新コードの構成音か判定する。この判定の結果が肯定的（Ｙ）であればステップ９４に移り、判定に係る元メロディ音を新メロディ音として採用する。
【００７６】
ステップ９２の判定結果が否定的（Ｎ）であったときは、ステップ９６に移り、修正後新コードの構成音のうちにステップ９２での判定に係る元メロディ音に近いコード構成音が同一距離で複数あるか判定する。この判定の結果が肯定的（Ｙ）であればステップ９８に移り、複数音のうちの所定の音（例えば上方の音）を新メロディ音として採用する。
【００７７】
ステップ９６の判定結果が否定的（Ｎ）であったときは、ステップ１００に移り、修正後新コードの構成音のうちステップ９２での判定に係る元メロディ音に最も近いコード構成音を新メロディ音として採用する。ステップ９４、９８又は１００の処理が終ったときは、図６のルーチンにリターンする。
【００７８】
ステップ９０の判定結果が否定的（Ｎ）であったときは、ステップ１０２に移る。ステップ１０２では、新メロディの候補音が修正後新コードの構成音か判定する。新メロディの候補音は、該候補音の直前の新メロディの重要音の音高に対して対応する元メロディ音（ステップ９０での判定に係る元メロディ音）とこの元メロディ音の直前の元メロディ重要音との音高差を加算することにより音高が決定される音である。ステップ１０２の判定結果が肯定的（Ｙ）であればステップ１０４に移り、ステップ１０２での判定に係る候補音を新メロディ音として採用する。
【００７９】
ステップ１０２の判定結果が否定的（Ｎ）であったときは、ステップ１０６に移り、修正後新コードの構成音のうちにステップ１０２での判定に係る候補音に近いコード構成音が同一距離で複数あるか判定する。この判定の結果が肯定的（Ｙ）であればステップ１０８に移り、複数音のうちの所定の音（例えば上方の音）を新メロディとして採用する。
【００８０】
ステップ１０６の判定結果が否定的（Ｎ）であったときは、ステップ１１０に移り、修正後新コードの構成音のうちステップ１０２での判定に係る候補音に最も近いコード構成音を新メロディ音として採用する。ステップ１０４、１０８又は１１０の処理が終ったときは、図６のルーチンにリターンする。
【００８１】
図７の処理によれば、例えば図２（Ｂ）の番号１４の音Ａは、ステップ９２，９６，９８により決定される。すなわち、元メロディ音（番号１の音）Ｇは、修正後新コードＦの構成音ではないので、ステップ９２からステップ９６に移り、近いコード構成音が同一距離で複数あるか調べると、あることが判明し、ステップ９８で複数音Ａ，Ｆのうち上方の音であるＡを採用する。
【００８２】
また、図２（Ｂ）の番号１６の音Ｆは、ステップ１０２，１０６，１１０により決定される。即ち、新メロディの候補音は、番号１４の音Ａから短３度下の音Ｆ＃であり、修正後新コードＦの構成音ではないので、ステップ１０２からステップ１０６に移る。ステップ１０６で近いコード構成音が同一距離で複数あるか調べると、ないことが判明し、ステップ１１０で最も近いコード構成音であるＦを採用する。
【００８３】
さらに、図２（Ｂ）の番号２４の音Ｂは、ステップ１０２，１０６，１０８により決定される。すなわち、新メロディの候補音は、番号２０の音Ｄから完全５度上の音Ａであり、修正後新コードＥｍの構成音ではないので、ステップ１０２からステップ１０６に移る。ステップ１０６で近いコード構成音が同一距離で複数あるか調べると、あることが判明し、ステップ１０８で複数音Ｇ，Ｂのうち上方の音であるＢを採用する。
【００８４】
図８は、非重要音処理のサブルーチンを示すもので、ステップ１２０では、ステップ８４で非重要音と判定された元メロディ音が曲又はフレーズで重要音出現前の音か判定する。この判定の結果が肯定的（Ｙ）であればステップ１２２に移る。
【００８５】
ステップ１２２では、ステップ１２０で重要音出現前の音と判定された元メロディ音が修正前の新コードの構成音と矛盾するか判定する。この判定の結果が否定的（Ｎ）であればステップ１２４に移り、元メロディ音を新メロディ音として採用する。
【００８６】
ステップ１２２の判定結果が肯定的（Ｙ）であったときは、ステップ１２６に移り、修正前の新コードの構成音のうちの１音を新メロディ音として採用する。この場合、図７のステップ９６〜１００と類似した処理を行なう。すなわち、修正前の新コードの構成音のうちにステップ１２２での判定に係る元メロディ音に近いコード構成音が同一距離で複数あるか調べ、あれば複数音のうちの所定の音（例えば上方の音）を採用し、なければ修正前の新コードの構成音のうちステップ１２２での判定に係る元メロディ音に最も近いコード構成音を採用する。ステップ１２４又は１２６の処理が終ったときは、図６のルーチンにリターンする。
【００８７】
ステップ１２０の判定結果が否定的（Ｎ）であったときは、ステップ１２８に移る。ステップ１２８では、新メロディの候補音が修正後新コードの構成音と矛盾するか判定する。新メロディの候補音は、該候補音の直前の新メロディ音の音高に対して対応する元メロディ音とこの元メロディ音の直前の元メロディ音との音高差を加算することにより音高が決定される音である。
【００８８】
ステップ１２８の判定結果が肯定的（Ｙ）であればステップ１３０に移り、修正後新コードの構成音のうちの１音を新メロディ音として採用する。この場合、図７のステップ１０６〜１１０と類似した処理を行なう。すなわち、修正後新コードの構成音のうちにステップ１２８での判定に係る候補音に近いコード構成音が同一距離で複数あるか調べ、あれば複数音のうちの所定の音（例えば上方の音）を採用し、なければ修正後新コードの構成音のうちステップ１２８での判定に係る候補音に最も近いコード構成音を採用する。
【００８９】
ステップ１２８の判定結果が否定的（Ｎ）であったときは、ステップ１３２に移り、ステップ１２８での判定に係る候補音が修正後新コードで成立する音階の音階音か判定する。なお、音階を決める際には調の情報が必要となるが、このときの調は、ユーザが指定するようにしてもよいし、修正後新コードを解析して自動的に指定するようにしてもよい。この判定の結果が肯定的（Ｙ）であればステップ１３４に移り、ステップ１２８での判定に係る候補音を新メロディ音として採用する。
【００９０】
ステップ１３２での判定結果が否定的（Ｎ）であったときは、ステップ１３６に移り、音階音のうちステップ１２８での判定に係る候補音に近い１音を新メロディ音として採用する。この場合、図７のステップ１０６〜１１０に類似した処理を行なう。すなわち、音階音のうちにステップ１２８での判定に係る候補音に近い音が同一距離で複数あるか調べ、あれば複数音のうちの所定の音（例えば上方の音）を採用し、なければ音階音のうちステップ１２８での判定に係る候補音に最も近い音を採用する。ステップ１３０，１３４又は１３６の処理が終ったときは、図６のルーチンにリターンする。
【００９１】
図８の処理によれば、例えば図２（Ｂ）の番号１５の音Ｆは、ステップ１２８，１３０により決定される。すなわち、新メロディの候補音は、番号１４の音Ａから短３度下のＦ＃であり、修正後新コードＦの構成音と矛盾するので、ステップ１２８からステップ１３０に移り、修正後新コードＦの構成音のうちＦ＃に最も近いＦを採用する。
【００９２】
また、図２（Ｂ）の番号１８の音は、ステップ１２８，１３２，１３４により決定される。すなわち、新メロディの候補音は、番号１７の音Ｇから短３度下のＥであり、修正後新コードＡ7 の構成音と矛盾しない音階音であるので、ステップ１２８からステップ１３２を経てステップ１３４に移り、Ｅを新メロディ音として採用する。
【００９３】
上記のようなメロディ生成処理により生成された新メロディ音を表わす新メロディデータは、記憶部１６Ｄに記憶される。メロディ生成処理の終了後、ユーザが生成音修正モードを選択すると、図９の生成音修正処理が開始される。図９のルーチンは、図６のステップ８８に続けて行なうようにしてもよい。
【００９４】
ステップ１４０では、記憶部１６Ｄの新メロディデータのうち曲先頭から連続した２音について前音に対する後音の音程（音高差）を求める。そして、ステップ１４２では、前音に対する後音の音程が短３度以上か（音の跳躍か）判定する。この判定の結果が肯定的（Ｙ）であればステップ１４４に移り、前音が修正後新コードの構成音か判定する。
【００９５】
ステップ１４４の判定結果が否定的（Ｎ）であったときは、ステップ１４６に移り、前音を修正後新コードの構成音に修正する。この場合、修正後新コードの構成音のうち前音に近いコード構成音であって元メロディと一致又は近似した音高変化状態が得られる音を新メロディ音（修正後の前音）として採用する。
【００９６】
ステップ１４２の判定結果が否定的（Ｎ）であったとき、ステップ１４４の判定結果が肯定的（Ｙ）であったとき又はステップ１４６の処理が終ったときは、ステップ１４８に移り、新メロディが終了か判定する。曲先頭から連続した２音について上記処理を行なったときは、ステップ１４８の判定結果が否定的（Ｎ）となり、ステップ１４０に戻る。ステップ１４０では、次の連続した２音について前音に対する後音の音程を求める。そして、ステップ１４２〜１４６の処理を上記したと同様に実行する。
【００９７】
記憶部１６Ｄの新メロディデータにおける最後の連続した２音についてステップ１４０〜１４６の処理が終ると、ステップ１４８の判定結果が肯定的（Ｙ）となり、処理エンドとする。
【００９８】
図９の処理によれば、例えば図２（Ｃ）の番号３０の音Ｇと図２（Ｂ）の番号２４の音Ｂとがステップ１４０でいう順次の２音であったとすると、ステップ１４０では、音程として長３度上が求められる。そして、ステップ１４２では、音程が短３度以上であるので、判定結果が肯定的（Ｙ）となり、ステップ１４４に移る。
【００９９】
ステップ１４４では、番号３０の音Ｇが修正後新コードＤｍの構成音ではないので、判定結果が否定的（Ｎ）となり、ステップ１４６に移る。ステップ１４６では、番号３０の音Ｇを、近いコード構成音であって元メロディと近似した音高変化状態が得られる音Ａに修正する。
【０１００】
図１０は、データベースに楽曲データを登録する第２の例を示すものであり、図４と同様の部分には同様の符号を付して詳細な説明を省略する。
【０１０１】
ユーザは、入力手段５２を用いて所望の元メロディデータを入力する。入力された元メロディデータは、記憶部１６Ａに記憶されると共に図２（Ａ）に示すように表示器３９の画面に楽譜形式で表示される。ユーザは、入力手段５４により表示に係る元メロディに関して順次に元コードを指定することにより順次の元コードからなるコード進行を表わす元コードデータを入力する。入力された元コードデータは、記憶部１６Ｂに記憶されると共に図２（Ａ）に示すように元メロディに関して表示器３９の画面に表示される。入力手段５６としては、図４に関して前述したようにコード付与装置を用い、自動的に元コードデータの入力を行なうようにしてもよい。
【０１０２】
重要音検出手段５８は、記憶部１６Ａの元メロディデータに基づいて重要音を検出し、重要音マークデータを記憶部１６Ａに書込むもので、一例として図１１に示す重要音検出処理をＣＰＵ１２に実行させることにより実現される。
【０１０３】
図１１の重要音検出処理において、ステップ１５０では、記憶部１６Ａの元メロディデータにおける最初の元メロディ音について重要音か分析する。重要音としては、強拍音、アクセントのある音、長い音（例えば４分音符長より長い音）等が予め定められている。重要音の決定には、フレーズ中の重要音についてハーモナイズを行なうライン・ライティング（ソリ・ボイシング）の技法が参考になる（例えば、渡辺貞夫著「ジャズスタディー」、第１９３〜２０２頁参照）。コード進行によってトーナリティ（調性）が変更されたときの冒頭の音等が重要音とされることもあるので、図１０において破線で示すように入力手段５６からの元コードデータを重要音検出手段５８に供給し、元コードデータが表わすコード進行を考慮して重要音分析を行なうようにしてもよい。
【０１０４】
次に、ステップ１５２では、ステップ１５０の分析結果に基づいて分析に係る元メロディ音が重要音か判定する。この判定の結果が肯定的（Ｙ）であればステップ１５４に移り、判定に係る元メロディ音に対応するメロディデータの一部として記憶部１６Ａに重要音マークデータを書込む。
【０１０５】
ステップ１５２の判定結果が否定的（Ｎ）であったとき又はステップ１５４の処理が終ったときは、ステップ１５６に移り、元メロディが終了か判定する。最初のメロディ音について上記処理を行なったときは、ステップ１５６の判定結果が否定的（Ｎ）となり、ステップ１５０に戻る。ステップ１５０では、次の元メロディ音が重要音か分析する。そして、ステップ１５２，１５４の処理を上記したと同様に実行する。
【０１０６】
記憶部１６Ａの元メロディデータにおける最後の元メロディ音に関してステップ１５０〜１５４の処理が終ると、ステップ１５６の判定結果が肯定的（Ｙ）となり、処理エンドとする。
【０１０７】
ステップ１５２で重要音と判定された各音符については、図２（Ａ）に示すように表示器３９の画面に重要音マークが表示される。
【０１０８】
ユーザは、表示器３９の画面上で元メロディ、重要音、元コード等を確認した後、ステップ群３８中の登録スイッチを押して登録指令を与える。この登録指令に応じて記憶部１６Ａの元メロディデータ（重要音マークデータを含む）と記憶部１６Ｂの元コードデータとがデータベース５０に転送される。
【０１０９】
図１０，１１について上記した処理により楽曲データをデータベース５０に登録した場合にも、図５〜９について前述したと同様にメロディ生成等の処理を行なうことができる。
【０１１０】
図１２は、データベースに楽曲データを登録する第３の例を示すものであり、図４と同様の部分には同様の符号を付して詳細な説明を省略する。
【０１１１】
図１２の登録方式は、図１０の登録方式において重要音検出手段５８を省略したものに相当し、図５，６の処理において重要音分析を行なうことを特徴とするものである。ユーザは、図１０について前述したと同様にして入力手段５２，５６を用いて記憶部１６Ａ，１６Ｂにそれぞれ元メロディデータ、元コードデータを入力する。ユーザは、表示器３９の画面上で元メロディ、元コード等を確認した後、スイッチ群３８中の登録スイッチを押して登録指令を与える。この登録指令に応じて記憶部１６Ａの元メロディデータと記憶部１６Ｂの元コードデータとがデータベース５０に転送される。
【０１１２】
図１３は、図１２の方式でデータ登録を行なった場合に図５，６の処理において必要とされる修正を示すものである。ステップ７２に代るステップ７２’では、図１１のステップ１５０と同様に（次の）元メロディ音が重要音か分析し、ステップ８２に代るステップ８２’では、図１１のステップ１５０と同様に（次の）元メロディ音が重要音か分析する。このような修正を加えることで図５〜９について前述したと同様にメロディ生成等の処理を行なうことができる。
【０１１３】
図１４は、この発明の一応用例として自動作曲処理を示すものである。データベース１６０には、多数の曲テンプレートデータＭ1 ，Ｍ2 ，Ｍ3 …が予め登録されている。
【０１１４】
ステップ１６２では、ユーザにより与えられる検索条件（例えば、拍子、ジャンル、楽曲形式、コード進行等）に適合する曲テンプレートデータをデータベース１６０にて検索する。そして、ステップ１６４では、ユーザの指示に従って検索に係る複数の曲テンプレートデータの中から１つの曲テンプレートデータを選択する。
【０１１５】
次に、ステップ１６６では、ユーザにより与えられる変形条件（例えば、歌詞音節数等）に従って選択に係る曲テンプレートデータを変形する。そして、ステップ１６８では、ユーザにより与えられるコード進行に従ってステップ１６６での変形に係る曲テンプレートデータを再び変形する。ステップ１６８の変形処理としては、この発明に係るメロディ生成処理が行なわれ、ユーザ指定のコード進行に相応しい新メロディが生成される。
【０１１６】
次に、ステップ１７０では、ステップ１６２〜１６８の処理により生成される楽曲データ（メロディデータ及びコードデータ）に修正処理を施す。この処理は、最終的な手直しであり、図９の生成音修正処理、画面上での編集処理、１音符毎に音を聴き、必要に応じて修正する処理等を行なうことができる。
【０１１７】
この後、ステップ１７２では、記録処理を行なう。これは、ＲＡＭ１６の修正済みの楽曲データを外部記憶装置２８に装着された記録媒体に記録する処理である。
【０１１８】
図１５は、図１４の自動作曲処理の変形例を示すものである。この変形例の特徴は、ステップ１８０〜１８６の処理にある。図１４と同様処理には同様の符号を付して詳細な説明を省略する。データベース１６０中の各曲テンプレートデータＭ1 ，Ｍ2 ，Ｍ3 …は、それぞれ所定のコード進行に基づいて作成されたものである。
【０１１９】
ステップ１８０では、ユーザによりコード進行以外の検索条件（例えば拍子、ジャンル、楽曲形式等）が与えられる。そして、与えられた検索条件に適合した曲テンプレートデータをデータベース１６０から検索する。
【０１２０】
次に、ステップ１８２では、図１４のステップ１６８に相当する処理を行なう。すなわち、ユーザにより与えられるコード進行に従ってステップ１８０での検索に係る複数の曲テンプレートデータをそれぞれ変形する。このときの変形処理としては、この発明に係るメロディ生成処理が行なわれ、ユーザ指定のコード進行に相応しい新メロディが生成される。
【０１２１】
次に、ステップ１８４では、図１４のステップ１６４に相当する選択処理を行なう。すなわち、ユーザの指示に従ってステップ１８２での生成に係る複数の楽曲データの中から１つの楽曲データを選択する。そして、ステップ１８６に移る。
【０１２２】
ステップ１８６では、図１４のステップ１６６に相当する変形処理を行なう。
すなわち、ユーザにより与えられる変形条件（例えば、歌詞音節数等）に従ってステップ１８４での選択に係る楽曲データを変形する。そして、ステップ１７０の修正処理及びステップ１７２の記録処理を図１４に関して前述したと同様に実行する。
【０１２３】
図１５の自動作曲処理によれば、データベース検索時にコード進行の条件がはずされるため、登録されている曲テンプレートデータの数が多くなっても、ヒットする確率が高くなる。しかも、検索された曲テンプレートデータは、ステップ１８２で所望のコード進行に基づいて変形されるので、ユーザが指定したコード進行に相応しい楽曲データを得ることができる。ステップ１８０，１８２を検索処理として見れば、検索条件として入力したコード進行に適合した曲テンプレートデータが検索されたのと等価になる。
【０１２４】
この発明は、上記した実施形態に限定されるものではなく、種々の改変形態で実施可能なものである。例えば、次のような変更が可能である。
【０１２５】
（１）新コード進行のコード変更タイミングを元コード進行のコード変更タイミングと同じタイミング（１小節に１つ）としたが、異なるタイミングとしてもよい。
【０１２６】
（２）新コード進行は、個々のコードをユーザが入力するものに限らず、典型的なコード進行を多数記憶したデータベースからユーザが所望のコード進行を選択して入力するようにしてもよい。
【０１２７】
（３）メロディ変形の条件（例えば新メロディの候補音が複数ある場合にどれを選択するかなど）をユーザが選択できるようにしてもよい。
【０１２８】
（４）複数の候補音に基づいて新メロディを複数生成すると共に該複数の新メロディをユーザに提示し、ユーザが提示に係る複数の新メロディのうち所望の新メロディを選択するようにしてもよい。
【０１２９】
（５）メロディ生成の際に元メロディ音が重要音であるか否かを１音毎に判定し、その都度、判定結果に応じて重要音／非重要音に適したメロディ音を生成するようにしたが、例えば、最初にすべての音について重要音であるか否かを判定し、判定結果に応じて元メロディ音を重要音／非重要音に分離してしまい、分離された重要音／非重要音毎に夫々に適したメロディをまとめて生成し、その後、生成された両メロディを合成するように構成してもよい。
【０１３０】
（６）テンション付きコードに修正された元コード進行におけるテンションを新コード進行においても反映させるために、メロディに対応する元コード進行を持たせるようにしたが、ユーザーが指定した新コード進行をそのままメロディ生成に使用する場合は、元コード進行を持たなくてもよい。すなわち、新コード進行を修正後新コードに変更することなく、新コード進行のまま元メロディに与えることにより新メロディを生成するようにしてもよい。
【０１３１】
（７）楽曲全体について新コード進行を指定するものに限らず、楽曲の一部分のみについて新コード進行を指定し、新コード進行を指定した部分の元メロディのみを新メロディに変換するようにしてもよい。すなわち、新コード進行を指定しなかった残りの部分の元メロディについては、元メロディのままとするようにしてもよい。これにより、例えば元メロディについて与えられている元コード進行のうちの一部分のみを他のコード進行に変更し、該変更に対応させてメロディを該他のコード進行に適合するように変更するといった使い方が可能となる。
【０１３２】
（８）この発明は、電子楽器の形態に限らず、パーソナルコンピュータとアプリケーションソフトウェアとの組合せの形態でも実施することができる。アプリケーションソフトウェアは、磁気ディスク、光磁気ディスク、半導体メモリ等の記録媒体に記憶させてパーソナルコンピュータに供給してもよいし、あるいは通信ネットワークを介してパーソナルコンピュータに供給するようにしてもよい。
【０１３３】
（９）この発明は、電子楽器に限らず、カラオケ装置等に用いる曲データの作成にも適用することができる。
【０１３４】
（１０）この発明は、鍵盤式電子楽器に限らず、弦楽器式、管楽器式、打楽器式等の電子楽器にも適用することができる。
【０１３５】
（１１）この発明は、音源装置、自動演奏装置等を内蔵した電子楽器に限らず、鍵盤、音源装置、自動演奏装置等をＭＩＤＩや各種ネットワーク等の通信手段で結合した電子楽器にも適用することができる。
【０１３６】
（１２）元メロディ、元コード、新メロディ、新コード等の演奏データのフォーマットは、イベントの発生時刻を１つ前のイベントからの相対時間で表わす「イベント＋相対時間」方式に限らず、イベントの発生時刻を曲や小節内の絶対時間で表わす「イベント＋絶対時間」方式、音符の音高と音符長あるいは休符と休符長で曲の内容を表す「音高（休符）＋符長」方式、イベント発生の最小時間単位毎に記憶領域を確保し、イベントの発生時刻に対応する記憶領域にイベントを記憶する方式等の任意の方式を用いることができる。
【０１３７】
【発明の効果】
以上のように、この発明によれば、元メロディ中の各重要音を元メロディの音高変化状態とユーザ指定のコード進行とに基づいて新メロディの構成音に変換すると共に元メロディ中の各非重要音を元メロディの音高変化状態に基づいて新メロディの構成音に変換するようにしたので、元メロディとメロディ雰囲気が近似した新メロディを生成可能となる効果が得られる。
【０１３８】
また、元メロディの各非重要音を新メロディの構成音に変換する際に、各非重要音について該非重要音及びその直前の音の音高変化状態と一致又は近似した音高変化状態が得られる候補音がユーザ指定のコード進行の中で該非重要音に対応するコードの構成音と共存できない矛盾する音か否かを判定し、矛盾していれば該コードの構成音のうちから、矛盾していなければ該コードで成立する音階音のうちからそれぞれ新メロディの構成音を採用する構成にすると、コードの構成音と矛盾する音が新メロディに含まれるのを防止することができ、不自然さを解消できる効果が得られる。
【０１３９】
さらに、新メロディの中から所定値以上の音高差を有する順次の２音を検出し、該２音のうちの前音を、この前音に対応するコードの構成音のうち元メロディの対応する２音の音高変化状態と一致又は近似した音高変化状態が得られる音に修正する構成にすると、音の跳躍時に生ずる不自然さを解消できる効果が得られる。
【０１４０】
さらに、判定手段では、元コードデータが表わす各元コード毎に元メロディの構成音のうちで該元コードに対応するメロディ音の中に、該元コードの構成音以外の音であってその音を元コードに付加したときにテンション音として成立する音があるか判定し、この判定の結果が肯定的になると、第１の修正手段では、判定に係る元コードを、前記テンション音として成立する音をコード構成音とするテンション度数付きのコードに修正し、第２の修正手段では、指定手段で指定された新コード進行のうち第１の修正手段での修正に係るコードに対応する新コードを該修正に係るコードと同じテンション度数を有するコードとするように前記新コード進行を修正し、修正に係る新コード進行に基づいて元メロディの構成音を新メロディの構成音に変換する構成にすると、元メロディにおけるテンションの響きを新メロディに引き継ぐことができ、元メロディとの近似性が向上する効果が得られる。
【図面の簡単な説明】
【図１】  この発明に係るメロディ生成方法によるコード修正の一例を示す図である。
【図２】  この発明に係るメロディ生成方法によるメロディ生成の一例を示す図である。
【図３】  この発明に係るメロディ生成装置を備えた電子楽器を示すブロック図である。
【図４】  データベースへのデータ登録の第１の例を示すブロック図である。
【図５】  メロディ生成処理の一部を示すフローチャートである。
【図６】  メロディ生成処理の残部を示すフローチャートである。
【図７】  重要音処理のサブルーチンを示すフローチャートである。
【図８】  非重要音処理のサブルーチンを示すフローチャートである。
【図９】  生成音修正処理を示すフローチャートである。
【図１０】  データベースへのデータ登録の第２の例を示すブロック図である。
【図１１】  重要音検出処理を示すフローチャートである。
【図１２】  データベースへのデータ登録の第３の例を示すフローチャートである。
【図１３】  図１２の方式でデータ登録を行なった場合に図５，６の処理において必要とされる修正を示すフローチャートである。
【図１４】  この発明の一応用例として自動作曲処理を示すフローチャートである。
【図１５】  図１４の自動作曲処理の変形例を示すフローチャートである。
【符号の説明】
１０：バス、１２：ＣＰＵ、１４：ＲＯＭ、１６：ＲＡＭ、１６Ａ：元メロディデータ記憶部、１６Ｂ：元コードデータ記憶部、１６Ｃ：新コードデータ記憶部、１６Ｄ：新メロディデータ記憶部、２８：外部記憶装置。
【図１】
0003775039.tif 000002
【図４】
0003775039.tif 000003
【図２】
0003775039.tif 000004
【図３】
0003775039.tif 000005
【図５】
0003775039.tif 000006
【図６】
0003775039.tif 000007
【図７】
0003775039.tif 000008
【図８】
0003775039.tif 000009
【図９】
0003775039.tif 000010
【図１０】
0003775039.tif 000011
【図１１】
0003775039.tif 000012
【図１２】
0003775039.tif 000013
【図１３】
0003775039.tif 000014
【図１４】
0003775039.tif 000015
【図１５】
0003775039.tif 000016