(57)【特許請求の範囲】
【請求項１】
与えられた複数のコードからなるコード列のうちの一部のコードを変更するコード変更手段を備えたコード進行修正装置において、
コードの繋がりが音楽的に自然である条件を記憶したテーブルと、
前記コード変更手段によって前記与えられたコード列のうちの一部のコードが変更されたとき、同コード列のうちで前記変更された一部のコードに隣接するコードを修正する手段であって、前記テーブルを参照し、前記コード変更手段によって変更されたコードと、前記与えられたコード列に含まれていて前記コード変更手段によって変更されたコードに隣接しないコードとに基づいて、前記隣接するコードをコードの繋がりが音楽的に自然であるコードに修正する隣接コード修正手段と
を設けたことを特徴とするコード進行修正装置。
【請求項２】
与えられた複数のコードからなるコード列のうちの一部のコードを変更するコンピュータを用いたコード進行修正方法であって、
前記コンピュータが、前記与えられたコード列のうちの一部のコードを変更するステップと、
前記コンピュータが、前記与えられたコード列のうちの一部のコードが変更されたとき、同コード列のうちで前記変更された一部のコードに隣接するコードを修正するステップであって、コードの繋がりが音楽的に自然である条件を予め記憶したテーブルを参照し、前記変更された一部のコードと、前記与えられたコード列に含まれていて前記変更された一部のコードに隣接しないコードとに基づいて、前記隣接するコードをコードの繋がりが音楽的に自然であるコードに修正するステップとを有することを特徴とするコード進行修正方法。
【請求項３】
与えられた複数のコードからなるコード列のうちの一部のコードを変更するコード進行修正装置に適用され、
コンピュータに、
前記与えられたコード列のうちの一部のコードを変更する手順と、
前記与えられたコード列のうちの一部のコードが変更されたとき、同コード列のうちで前記変更された一部のコードに隣接するコードを修正する手順であって、コードの繋がりが音楽的に自然である条件を予め記憶したテーブルを参照し、前記変更された一部のコードと、前記与えられたコード列に含まれていて前記変更された一部のコードに隣接しないコードとに基づいて、前記隣接するコードをコードの繋がりが音楽的に自然であるコードに修正する手順とを実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、与えられた複数のコードからなるコード列の一部を音楽的に適合するように変更するコード進行修正装置、コード進行修正方法及び同装置に適用されるプログラムを記録したコンピュータ読取り可能な記録媒体に関する。
【０００２】
【従来の技術】
従来から、所定のコード進行に従った複数のコードからなる多数組のコード列を予め用意しておき、これらの多数組のコード列から一組のコード列を選択して、ユーザによるメロディ演奏又は自動的なメロディ演奏に前記選択した一組のコード列を付加することは行われていた。また、前記多数組のコード列から一組のコード列を選択するとともに、曲想、調、モチーフメロディ、楽曲の構成、ピッチに関する情報（音域、ピッチ変動状態など）などのメロディ生成用データを入力し、これらの一組のコード列及びメロディ生成用データを用いて一曲分のメロディを自動的に作曲することも知られている。
【０００３】
【発明が解決しようとする課題】
上記ユーザによるメロディ演奏又は自動的なメロディ演奏に一組のコード列を付加する場合でも、メロディを自動的に作曲する場合でも、上記選択した一組のコード列中、楽曲のモチーフ部分、「さび」などに対応する部分のコードを変更して楽曲に特徴をもたせたいことが生じる。しかし、上記選択した一組のコード列中の一部のコードが、ユーザの好みにより、又は与えられたモチーフメロディに合致させるために変更されると、その前後においてコードの繋がりが悪く、不自然なコード進行となることがある。また、従来においては、上記のような「さび」を考慮して自動作曲することは提案されていない。
【０００４】
【発明の概要】
本発明は、上記問題に対処するためになされたもので、その目的は、一組のコード列中の一部のコードを変更しても繋がりの良好なコード進行を実現するコード進行修正装置、コード進行修正方法及び同装置に適用されるプログラムを記録したコンピュータ読取り可能な記録媒体を提供することにある。
【０００５】
上記目的を達成するために、本発明の第１の特徴は、与えられた複数のコードからなるコード列のうちの一部のコードを変更するコード変更手段を備えたコード進行修正装置において、コードの繋がりが音楽的に自然である条件を記憶したテーブルと、前記コード変更手段によって前記与えられたコード列のうちの一部のコードが変更されたとき、同コード列のうちで前記変更された一部のコードに隣接するコードを修正する手段であって、前記テーブルを参照し、前記コード変更手段によって変更されたコードと、前記与えられたコード列に含まれていて前記コード変更手段によって変更されたコードに隣接しないコードとに基づいて、前記隣接するコードをコードの繋がりが音楽的に自然であるコードに修正する隣接コード修正手段とを設けたことにある。
【０００７】
また、本発明の第１の特徴は、他の観点から見れば、前記コード進行修正装置に対応した技術思想を有するコード進行修正方法及びプログラムを記録したコンピュータ読取り可能な記録媒体にもある。
【０００８】
このような本発明の第１の特徴によれば、ユーザの好みにより又は与えられたモチーフメロディに合致させるために、与えられたコード列中の一部が変更されても、前記与えられたコード列のうちの前記変更された一部のコードに隣接するコードが変更されて、コードの繋がりが音楽的に自然である新たなコード列が自動的に生成されるので、常に良好なコード進行が実現される。
【００１８】
【発明の実施の形態】
ａ．構成例
以下、本発明の実施形態に係る構成例について図面を用いて説明すると、図１は、同実施形態に係り本発明のコード進行修正装置及び自動作曲装置が適用される楽音発生装置の全体をブロック図により示している。
【００１９】
この楽音発生装置は、演奏操作子群１１、パネル操作子群１２及びディスプレイ１３を備えている。演奏操作子群１１は、例えば複数の鍵からなる鍵盤などで構成されており、それらの操作により楽音の発生を指示するとともに発生楽音の音高を指示して楽曲の演奏などに利用される。パネル操作子群１２は、操作パネルにそれぞれ配設され、それらの操作により発生楽音の音色、音量などを指定したり、ディスプレイ１３の表示内容を指示したり、コード進行の修正及び自動作曲を制御するためのデータ入力に利用される。なお、このパネル操作子群１２には、テンキー、カーソル移動キー、マウスなどの操作子も含まれる。これらの演奏操作子群１１及びパネル操作子群１２の各操作は、バス２０に接続された検出回路１４，１５によりそれぞれ検出されるようになっている。ディスプレイ１３は、ＣＲＴ表示器、液晶表示器などで構成されており、各種情報を文字又は数字表示するものである。このディスプレイ１３は、バス２０に接続された表示回路１６により表示制御されるようになっている。
【００２０】
また、この楽音発生装置は、バス２０に接続された音源回路１７及び効果回路１８を備えている。音源回路１７は、バス２０を介して供給された演奏情報（キーコード、キーオン信号、キーオフ信号、音色情報など）に基づいて楽音信号をそれぞれ形成するための複数の楽音信号形成チャンネルを備えており、同時に複数の楽音信号を形成出力することを可能としている。効果回路１８は、音源回路１７から出力された楽音信号に対して、バス２０を介して供給された効果制御パラメータに応じた効果を付与して出力する。この効果回路１８の出力には、Ｄ/Ａ変換器、アンプ、スピーカからなるサウンドシステム１９が接続されており、同システム１９は前記効果の付与された楽音信号を楽音として放音する。
【００２１】
また、バス２０には、マイクロコンピュータ本体部を構成するＣＰＵ２１，ＲＯＭ２２及びＲＡＭ２３が接続されている。ＣＰＵ２１は、この楽音発生装置を制御するための各種プログラムを実行して各種制御を行う。また、ＣＰＵ２１にはタイマ２４も接続されており、同タイマ２４は前記プログラムの実行にとって必要な時間情報をＣＰＵ２１に供給する。ＲＯＭ２２は、前記ＣＰＵ２１によって実行される各種プログラムの一部、及び同プログラムの実行時に利用される各種データの一部又は全部を記憶している。ＲＡＭ２３は、前記各種プログラムの一部及び各種データの一部又は全部をその実行時に転送されて記憶したり、同各種プログラムの実行に必要な変数を一時的に記憶する。
【００２２】
さらに、バス２０には、外部記憶装置３１、ＭＩＤＩ（Musical Instrument Digital Interface）インターフェース３２及び通信インターフェース３３も接続されている。外部記憶装置３１は、着脱可能又は着脱不能に組み込まれたハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、半導体メモリなどのコンピュータ読取り可能な記録媒体、及び同記録媒体に対してプログラム及びデータの読み書きを可能とするドライブ装置からなる。この外部記憶装置３１も、前記各種プログラムの一部（ＲＯＭ２２に記憶されている以外のプログラム）、及び前記各種データの一部又は全部（ＲＯＭ２２に記憶されている以外のデータ）を記憶している。これらの外部記憶装置３１に記憶された各種プログラム及びデータは、ＣＰＵ２１によって直接アクセスされることもあるが、主に一旦ＲＡＭ２３に転送されてその後に利用される。
【００２３】
ＭＩＤＩインターフェース３２は、鍵盤などの演奏装置、他の楽器、パーソナルコンピュータ、自動演奏装置（シーケンサ）などの他のＭＩＤＩ対応機器３４に接続されて、同機器３４からＭＩＤＩ情報を受信し、又は同機器３４にＭＩＤＩ情報を送信するためのインターフェースである。
【００２４】
通信インターフェース３３は、有線又は無線の通信ネットワーク３５を介してサーバコンピュータ３６などに接続されるもので、同サーバコンピュータ３６に対してデータ及びプログラムの授受を行う。そして、このサーバコンピュータ３６から通信ネットワーク３５及び通信インターフェース３３を介して、前記各種プログラム及びデータを、外部記憶装置３１又はＲＡＭ２３に転送して利用することもできる。
【００２５】
ｂ．コード進行修正の適用例
本発明に直接関係したコード進行修正の具体例を説明する前に、同コード進行修正の必要性をも含めてコード進行修正処理の適用されるコード進行生成処理について説明する。
【００２６】
ユーザによるメロディ演奏又は自動的なメロディ演奏に一連のコード列を付加しようとする場合、ユーザはＲＯＭ２２又は外部記憶装置３１に記憶されている図２の「コード進行生成プログラム」を起動する。この「コード進行生成プログラム」の実行は、ステップ１００にて開始され、ステップ１０２にて一組のコード列を決定する。
【００２７】
この一組のコード列の決定においては、ＣＰＵ２１は一組のコード列を選択することの指示をディスプレイ１３に表示し、ユーザは、これに応答して、予め用意されて外部記憶装置３１内に記憶されている多数組のコード列の中から一組のコード列を選択パネル操作子群１２を用いて選択する。なお、前記「コード進行生成プログラム」の起動時に外部記憶装置３１に記憶される多数組のコード列をＲＡＭ２３に転送しておいて、同ＲＡＭ２３内のコード列を選択するようにしてもよい。各コード列は、所定のコード進行に従った複数のコード（音楽的に自然な繋がりを有する複数のコード）からなるものである。また、ユーザが、メジャー系又はマイナ系のコードとか、明るい又は暗い曲想にマッチしたコード、指定調にマッチしたコードなどのように、入力された各種条件で検索する検索機能を用いて多数組のコード列を徐々に絞り込んでいくようにしてもよい。なお、前記方法に代えて、演奏操作子群１１又はパネル操作子群１２を用いて一組のコード列を入力するようにしてもよい。
【００２８】
次に、ＣＰＵ２１は、ステップ１０４にて、ディスプレイ１３にてコード列の変更をユーザに促す表示をして、ユーザによる前記決定したコード列の一部の変更を許容する。メロディ演奏又は自動的なメロディ演奏に一組のコード列を付加する場合、前記決定した一組のコード列中、楽曲のモチーフ部分、「さび」の部分などに対応する部分のコードを変更して楽曲に対し曲想に合った特徴をもたせたいことが生じる。この場合、ユーザは、演奏操作子群１１又はパネル操作子群１２を用いて、前記決定したコード列中の一部のコードを他のコードに変更したり、同コード列中に新たなコードを挿入したり、同コード列中の一部のコードを削除したり、同コード列中のある部分のコードを別の部分にコピーしたりする。
【００２９】
前記ステップ１０４の処理後、ステップ１０６にて前記変更されたコードの前後のコードを自動的に修正してコードの繋がりを良好にし、ステップ１０８にてこの「コード進行生成プログラム」の実行を終了する。このステップ１０６の処理は、本発明に直接関係するものでコードの自動修正として詳しく後述する。そして、このような「コード進行生成プログラム」の実行により、最終的な一組のコード列が決定される。
【００３０】
次に、メロディを自動的に作曲する自動作曲装置に本発明に係るコード進行修正を適用した場合について説明する。
【００３１】
この場合、ユーザは、ＲＯＭ２２又は外部記憶装置３１に記憶されている図３の「自動作曲プログラム」を起動する。この「自動作曲プログラム」の実行は、ステップ１２０にて開始され、ステップ１２２にてメロディ生成用データを入力する。
【００３２】
このメロディ生成用データの入力においては、ＣＰＵ２１はメロディ生成用データの入力指示をディスプレイ１３に表示し、ユーザは、これに応答して、演奏操作子群１１又はパネル操作子群１２を用いてメロディ生成用データを入力する。メロディ生成用データとは、曲想、調、モチーフメロディ、楽曲の構成（複数の楽節の組み合わせ）、ピッチに関する情報（音域、ピッチ変動状態など）、リズムに関する情報（音数、シンコペーションの有無など）などである。
【００３３】
次に、ＣＰＵ２１は、ステップ１２４にて、コード進行生成処理を実行する。このコード進行生成処理は、全体的には前記図２の「コード進行生成プログラム」とほぼ同じであり、前記ステップ１０２、１０４の一部において異なる。すなわち、ステップ１０２の処理においては、前述した処理に加えて、前記ステップ１２２にて入力した曲想、調、モチーフメロディ、楽曲の構成などを用いて、一組のコード列の決定するようにしてもよい。この方法は、特に、外部記憶装置３１に記憶されている多数組のコードの中から一組のコード列を選択する場合に有効である。
【００３４】
また、ステップ１０４の処理においては、前記演奏操作子群１１又はパネル操作子群１２を用いた一部のコードの変更処理に代え又は加えて、前記ステップ１２２にて入力したメロディ生成用データに基づいて前記決定した一組のコード列の一部を自動的に変更するようにしてもよい。具体的な例としては、前記ステップ１２２にて入力されたモチーフメロディに基づいて、同モチーフメロディに最適なコード（又はコード進行）を検出する。そして、前記検出コードを前記ステップ１０２の処理によって決定した一組のコード列中の適当な箇所に挿入したり、同適当な箇所のコードと置換するようにする。
【００３５】
前記ステップ１２４の処理後、ステップ１２６にて、前記ステップ１２４の処理により決定した一組のコード列に基づいて楽曲のスケール（アイオニアン、リディアン、ミクソリディアン、ドリアンなどのスケール）を検出する。このスケール検出は、本発明に直接関係しないので詳しい説明を省略するが、各スケールで用いられるコードの種類は限定されるので、前記決定コード列を構成するコード種類に応じてスケールが検出される。
【００３６】
次に、ステップ１２８にてメロディを自動的に生成して、ステップ１３０にてこの「自動作曲プログラム」の実行を終了する。このステップ１２８の処理は、前記入力したメロディ生成用データ、前記決定したコード列及び前記検出したスケールに基づいてメロディを自動的に作曲する。この自動作曲の具体的な方法も本発明のコード進行修正に直接関係しないので、詳しい説明を省略する
【００３７】
ｃ．第１のコード修正方法
次に、前記のように曲のモチーフ部分などに対応して手動的又は自動的にコードを変更した場合に、変更したコードの前後コードを図２のステップ１０６の処理によって自動的に修正する第１のコード修正方法について詳しく説明する。
【００３８】
図４は、前記ステップ１０２の処理によって決定された一組のコード列・・ａ，ｂ，ｃ，ｄ，ｅ，ｆ・・を示している。ただし、コードｃ，ｄは、前記ステップ１０４の処理によって手動的又は自動的に変更されたコードである。コードａより前の部分及びコードｆより後の部分は供給されたコード列をそのまま利用する部分であり、コードｂ，ｅがコードｂ*，ｅ*に自動修正されるコードである。コードｂはコードａ及びコードｃとの各繋がりが音楽的に自然になるようなコードｂ*に修正され、コードｅはコードｄ及びコードｆとの各繋がりが音楽的に自然になるようなコードｅ*に修正される。
【００３９】
なお、前記各コードａ，ｂ，ｃ，ｄ，ｅ，ｆは、１つのコードを示すもので、その長さ(小節や拍数)は一定でなくてもよい。例えば、コードｅ単独で1小節の場合もあれば、コードｅとコードｆとで1小節を構成し、コードｅはその中の前半２拍のコードの場合もある。
【００４０】
ｃ１．修正コードｅ*の決定
まず、コードｅの修正例について説明する。この場合、変更されたコードｃ，ｄは曲のモチーフ部分などであり、このモチーフ部分はメロディ部Ａ及びメロディ部Ｂすなわちブロックの先頭であることが通常である。したがって、ブロックの先頭から間もないコードｄは区切りにならないために、コードｄからコードｅへのコードの進行は終止感にとらわれずに繋いでよい。なお、メロディ部Ａ及びメロディ部Ｂとは、この説明では１楽曲を構成する複数の楽節のうちの１楽節を示している。
【００４１】
以下、具体的な手順（ステップ１０６内の処理手順）を説明する。
【００４２】
（手順１）
前記図２のステップ１０２の処理により決定された一つのコード列のコード進行を分析して、その特徴を自動的に検出する。この特徴としては、例えば、コード列の各和音が、ダイアトニックコード（ダイアトニックスケールを構成する７音階のいずれかのみを構成音とするコード）のみからなるか、３和音（３音からなる和音）のみからなるかなどである。なお、前記ステップ１０２の一組のコード列の決定の際に、ユーザが検索機能を利用してコード列の特徴を入力している場合には、この入力したコード列の特徴を、前記コード列の特徴の検出に代えて、又は検出したコード列の特徴に加えて用いるようにするとよい。
【００４３】
（手順２）
下記表１を参照して、コードｄからコードｅ*への繋がり（ｄ−ｅ*）及びコードｅ*からコードfへの繋がり（ｅ*−f）が音楽的に自然となるようなコードｅ*を決定する。表１の「ｄ−ｅ*」及び「ｅ*−f」のコード進行欄は、コードの進行における１対の根音間の音程及び同音程変化の方向を示しており、例えば「＋完４」、「−短２」、「−長２」は、コードの根音が完全４度上昇し、短２度下降し、長２度下降することをそれぞれ表している。なお、後述する各表のコードの進行欄においても、前記と同様にコードの根音の音程及び同音程変化の方向を表しており、これらの表に関するデータはテーブルの形で外部記憶装置３１に記憶されている。そして、表１中において、優先度１の左右欄（ｄ−ｅ*，ｅ*−fの両欄）に該当するコードｅ*が存在すれば、該当する全てのコードをリストアップする。また、優先度１の欄に該当するコードｅ*が存在しなければ、優先度を順次下げて、各優先度毎に該当する全てのコードをリストアップする。
【００４４】
【表１】
0003666577.tif 000002
【００４５】
（手順３）
前記リストアップしたコードの中に、前記ステップ１０２の処理により決定したコードｅが含まれていれば、同コードｅを修正コードｅ*とする。また、コードｅがリストアップしたコード中に含まれてない場合には、前記リストアップしたコードの中から前記手順１で検出した特徴を満足するコードを選択し、それを修正コードｅ*とする。この特徴を満足するコードが複数存在する場合には、同特徴を満足する複数のコードの中からランダムにいずれか一つのコードを選択するか、ユーザにいずれか一つを選択させる。
【００４６】
（手順４）
コードｄが特別なコード（例えば、ディミニッシュコードdim）のときには、前記手順２及び手順３によるコード選択方法を採用しないで、下記表２の優先度に従って該当するコードを修正コードｅ*とする。
【００４７】
【表２】
0003666577.tif 000003
【００４８】
（手順５）
前記決定された一組のコード列中のコードｅを、前記手順３又は手順４で決定された修正コードｅ*に変更する。
【００４９】
ｃ２．修正コードｂ*の決定
この場合、コードｂは前記変更されたコードｃ、ｄの前のブロックの最後に位置することになり、修正されるべきコードｂを含むコードａからコードｂへのコードの進行、及びコードｂからコードｃへのコードの進行は、前記コードｅの決定の条件に加えて終止感を与える条件を含ませる必要がある。
【００５０】
以下、具体的な手順（ステップ１０６内の処理手順）を説明する。
【００５１】
（手順１）
前記コードｅ*の決定の手順１の場合と同様に、前記決定された一つのコード列の特徴を検出する。
【００５２】
（手順２）
下記表３を参照して、コードａからコードｂ*への繋がり（ａ−ｂ*）及びコードｂ*からコードｃへの繋がり（ｂ*−ｃ）が終止感を与えかつ音楽的に自然となるようなコードｂ*を決定する。この表３の表記方法に関しては前記表１と同じであるが、優先度が終止感を考慮した値に設定されている。また、表３の参照の仕方も前記コードｅ*の決定の手順２の場合と同じである。
【００５３】
【表３】
0003666577.tif 000004
【００５４】
（手順３）
前記コードｅ*の決定の手順３の場合と同様に、前記手順２でリストアップしたコードの中に、前記ステップ１０２の処理により決定したコードｂが含まれていれば、同コードｂを修正コードｂ*とする。また、コードｂがリストアップしたコード中に含まれてない場合には、前記リストアップしたコードの中から前記第１手順で検出した特徴を満足するコードを選択し、それを修正コードｂ*とする。この特徴を満足するコードが複数存在する場合には、同特徴を満足する複数のコードの中からランダムにいずれか一つのコードを選択するか、ユーザにいずれか一つを選択させる。
【００５５】
（手順４）
コードｂが特別なコード（例えば、ディミニッシュコードdim）のときには、前記手順２及び手順３によるコード選択方法を採用しないで、下記表４の優先度に従って該当するコードを修正コードｂ*とする。ただし、この表４は、優先度に関しては１ランクのみである。
【００５６】
【表４】
0003666577.tif 000005
【００５７】
（手順５）
前記決定された一組のコード列中のコードｂを、前記手順３又は手順４で決定された修正コードｂ*に変更する。
【００５８】
ｃ３．コードｅ，ｂの修正の具体例
図５に示すように、コード列の一部のコードａ，ｂ，ｃ，ｄ，ｅ，ｆが、それぞれＥマイナ(Ｅｍ)、Ａマイナ(Ａｍ)、Ｃメジャ(Ｃ)、Ｆメジャ(Ｆ)、Ｄマイナ(Ｄｍ)、Ａマイナ(Ａｍ)である場合を例にして、コードｅ，ｂを修正する具体例について説明しておく。なお、コードａ，ｂ，ｅ，ｆは前記ステップ１０２の処理によって決定された一組のコードの一部であり、コードｃ，ｄは前記ステップ１０４の処理によってモチーフ部分などに関係して変更されたコードである。また、前記手順１にて検出されたコード列の特徴は、「ダイアトニックコードのみ」であり、かつ「３和音のみ」である。さらに、前記ステップ１２２の処理などによって入力された調はハ長調である。
【００５９】
まず、コードｅの修正について説明すると、コードｅ(Ｄｍ)の両側のコードはｄ(Ｆ)、ｆ(Ａｍ)であるので、手順２により、表１に基づいて、ｄ−ｅ*及びｅ*−ｆの各根音の関係が「＋長２」及び「＋長２」の関係にあるコードｅ*としてＧメジャ(Ｇ)、Ｇマイナ(Ｇｍ)、Ｇセブンス(Ｇ７)、Ｇマイナセブンス(Ｇm7)がリストアップされる。なお、これらのコードＧ，Ｇｍ，Ｇ７，Ｇm7は、表１中の優先度１に対応するものである。この場合、リストアップしたコードの中にコードｅ(Ｄｍ)が含まれていないので、手順３により、手順１で検出した「ダイアトニックコードのみ」かつ「３和音のみ」という条件に従ってＧメジャ(Ｇ)が修正コードｅ*として決定される。また、コードｅの前のコードｄはＦメジャ(Ｆ)であって前記表２に示された特別のコードではないので、手順４によるコード指定は適用されない。その結果、手順５により、コード列中のコードｅ(Ｄｍ)は修正コードｅ*(Ｇ)に変更される。
【００６０】
次に、コードｂの修正について説明する。コードｂ(Ａｍ)の両側のコードはａ(Ｅｍ)、ｃ(Ｃ)であるので、手順２により、表３に基づいて、ａ−ｂ*及びｂ*−ｃの各根音の関係が「＋短３」及び「＋完４」の関係にあるコードｂ*としてＧメジャ(Ｇ)、Ｇマイナ(Ｇｍ)、Ｇセブンス(Ｇ７)、Ｇマイナセブンス(Ｇm7)と、「＋完４」及び「＋短３」の関係にあるコードｂ*としてＡメジャ(Ａ)、Ａマイナ(Ａｍ)、Ａセブンス(Ａ７)、Ａマイナセブンス(Ａm7)とがリストアップされる。なお、これらのコードＧ，Ｇｍ，Ｇ７，Ｇm7，Ａ，Ａｍ，Ａ７，Ａm7は、表３中の優先度２に対応するものである。この場合、リストアップしたコードの中にコードｂ(Ａｍ)が含まれているので、手順３により、このＡマイナ(Ａｍ)が修正コードｂ*として決定される。また、コードｂの前のコードａはＥマイナ(Ｅｍ)であって前記表４に示された特別のコードではないので、手順４によるコード指定は適用されない。その結果、手順５により、コード列中のコードｂ(Ａｍ)は実質的にもとのままに保たれる。
【００６１】
以上、詳細に説明したように、この第１のコード修正方法においては、与えられた一組のコード列の一部を変更するシステムにおいて、前記コード列中のコードであって前記変更したコードｃ，ｄと隣接するコードｂ，ｅが同変更したコードと音楽的に自然な繋がりをもつように、前記隣接するコードｂ，ｅを修正コードｂ*，ｅ*に変更するようにした。したがって、この第１のコード修正方法によれば、与えられたコード列の一部を変更する自動作曲システムなどの種々のシステムにおいて、音楽的に自然なコード列を自動的かつ比較的簡単に提供できるようになる。
【００６２】
ｃ４．変形例
前記第１のコード修正例においては、変更したコードｃ，ｄの両側の一つずつのコードｂ，ｅを修正するようにしたが、これを広げてコードａ，ｂやコードｅ，ｆなどの複数のコードを修正するようにしてもよい。この場合、前のコードとの自然な繋がりを実現するとともに次のコードへの自然な繋がりを実現する前記表１，３と同様なテーブルを用意しておき、同テーブルを順次参照することによって各一つのコードに対して優先付けられた複数のコードをリストアップする処理を順次行い、その後に複数のコードに対してそれぞれリストアップされた各コードの組の中から最も優先順位の高いコード列を採用するようにすればよい。また、自然な繋がりを実現した複数のコードからなる多数組のコードセットを記憶したテーブルを用意しておき，同テーブルから一組のコードセットを導き出すようにしてもよい。
【００６３】
また、モチーフメロディからコードを検出する場合、検出したコードｃ，ｄに適したコード進行を表すコード列を選択し直せば、より自然な進行が得られる。例えば、モチーフメロディから「ダイアトニックコードのみ」又は「３和音のみ」が検出され、現在選択されているコード列がこの検出結果に該当していなかったら、「ダイアトニックコードのみ」及び「３和音のみ」からなるコード列を選択し直す。選択の方法としては、予めコードの特徴として「ダイアトニックコードのみ」、「３和音のみ」などの特徴を登録しておき、それを検索するようにしてもよいし、各コード列のコード進行を評価して「ダイアトニックコードのみ」、「３和音のみ」などの特徴を抽出し、該当するものを選択するようにしてもよい。
【００６４】
また、前記第1のコード修正例においては、変更したコードｃ，ｄの前後のコードｂ，ｅを修正コードｂ*，ｅ*で置換するようにしたが、同前後のコードｂ，ｅの長さを短くして、前記変更したコードｃ，ｄと隣接する部分に修正コードを挿入するようにしてもよい。すなわち、決定したコード列がコードｂ，ｅを含まない複数のコードａ，ｃ，ｄ，ｆからなり、同コード列のうちのコードｃ，ｄをモチーフ部分に対応して変更した場合、コードａ及びコードｆをそれそれ２分割して、コードａの後半部分を前述した修正コードｂ*に変更するとともに、コードｆの前半部分を前述した修正コードｅ*に変更するようにしてもよい。
【００６５】
また、前述したコード列ａ，ｂ，ｃ，ｄ，ｅ，ｆ（コードｃ，ｄはモチーフ部分に対応して変更したコード）の例において、コードｂよりも前及びコードｅよりも後の部分を変更しないで、コードｂ，ｃの間及びコードｄ，ｅの間に所定長さ（例えば、1小節）の長さのコードを挿入し、この挿入したコードを前後コードと自然につながるように新規に作成するようにしてもよい。
【００６６】
また、前記第1のコード修正方法や、これらのコード修正の各種変形例による方法の中から何れかをユーザが選択できるようにしてもよい。
【００６７】
さらに、前記説明では、コードを変更する区間や、モチーフメロディのコード区間に関しては具体的に述べなかったが、これらの区間は何小節であってもよい。また、１小節内のコード数はいくつあってもよい。
【００６８】
ｄ．第２のコード修正方法
次に、第２のコード修正方法について説明する。この第２のコード修正方法は、モチーフメロディを入力してメロディを生成するシステムに適用されるもので、決定されたコード列のモチーフ部分に対応するコードを、同コードに隣接するコードと自然な繋がりをもつモチーフメロディに適したコードで置換する。
【００６９】
このため、ユーザは、図２の「コード進行生成プログラム」に代えて、ＲＯＭ２２又は外部記憶装置３１に記憶されている図６の「コード進行生成プログラム」を起動する。この「コード進行生成プログラム」の実行は、ステップ１４０にて開始され、ステップ１４２にて前記図２の場合と同様に一組のコード列を決定する。次に、ステップ１４４にて、ＣＰＵ２１はモチーフメロディの入力指示をディスプレイ１３に表示し、ユーザは、これに応答して、演奏操作子群１１及びパネル操作子群１２を用いて、モチーフメロディ及び前記コード列内におけるモチーフメロディの対応部分を入力する。
【００７０】
前記ステップ１４４の処理後、ＣＰＵ２１は、ステップ１４６にて前記コード列のモチーフメロディに対応した部分のコードを自動的に修正してコードの繋がりを良好にし、ステップ１４８にこの「コード進行生成プログラム」の実行を終了する。このステップ１４６の処理は、本発明に直接関係するもので第２のコード修正方法として詳しく後述する。そして、このような「コード進行生成プログラム」の実行により、最終的な一組のコード列が決定される。
【００７１】
また、メロディを自動的に作曲する自動作曲装置に第２のコード進行修正方法を適用した場合については、上述した図３の「自動作曲プログラム」を実行する。この場合、図３のステップ１２４のコード進行生成処理として、前記図６の「コード進行生成プログラム」を実行する。また、この場合、図３の「自動作曲プログラム」においては、ステップ１２２にて、モチーフメロディに関する情報を入力する必要はなく、前記図６のステップ１４４にて入力したものを利用できる。
【００７２】
次に、前記ステップ１４６のモチーフメロディ部のコードを自動的に修正する手順について詳しく説明する。図７は、上記第１のコード修正方法の場合と同様に、前記ステップ１４２の処理によって決定された一組のコード列・・ａ，ｂ，ｃ，ｄ，ｅ，ｆ・・を示している。そして、コードｃ，ｄは、前記ステップ１４４の処理によって入力されたモチーフメロディ部に対応した部分である。なお、この場合も、前記各コードａ，ｂ，ｃ，ｄ，ｅ，ｆは、それぞれ１つのコードを示すもので、その長さ(小節や拍数)は一定でなくてもよい。以下、第２のコード修正の手順を詳しく説明する。
【００７３】
（手順１）
上記第１のコード修正方法の場合と同様に、前記ステップ１４２の処理により決定された一つのコード列のコード進行を分析して、上記第１のコード修正方法の場合と同様に、その特徴を自動的に検出する。
【００７４】
（手順２）
前記ステップ１４４の処理によって入力したモチーフメロディに基づいて、同メロディに適したコード進行の候補である複数組のコードセットｃ'，ｄ'（コードｃ，ｄに対応）をリストアップする。この場合、モチーフメロディに現れる少なくとも一つの音高を構成音のうちの少なくとも一つとするとともに、音楽的に自然に繋がるコード列が前記リストアップの対象となる。
【００７５】
（手順３）
前記リストアップしたコードの中から前記手順１で検出した特徴を満足するコードセットｃ'，ｄ'を選択し、同リストアップしたコードセットｃ'，ｄ'を絞り込んで候補となるコードセットｃ'，ｄ'の数を減らす。例えば、「ダイアトニックコード」又は「３和音」のみであるコードに絞る。
【００７６】
（手順４）
下記表５，６を参照して、前記手順３で絞り込んだコードセットｃ'，ｄ'の中から、コードｂから自然に繋がる修正コードｃ*及びコードｅへ自然に繋がる修正コードｄ*を決定する。なお、下記表５，６は外部記憶装置３１内にテーブルの形で記憶されているデータであり、表５はコードｂからコードｃ*への進行の自然な繋がりに対する評価点を表し、表６はコードｄ*からコードｅへの進行の自然な繋がりに対する評価点を表している。この場合も、「ｂ−ｃ*」及び「ｄ-ｅ*」のコード進行欄は、コード進行における根音の音程及び同音程変化の方向を示しており、例えは「−長２」、「＋長２」、「−短３」は、コードの根音が長２度下降し、長２度上昇し、短３度下降することをそれぞれ表している。
【００７７】
【表５】
0003666577.tif 000006
【００７８】
【表６】
0003666577.tif 000007
【００７９】
前記修正コードｃ*，ｄ*の決定方法を具体的に説明すると、前記手順３で絞り込んだコードセットを一組ずつ取り出し、前記ステップ１４２の処理によって決定したコード列中のコードｂと前記取り出した一組のコードセットｃ'，ｄ'の前半部分のコードｃ'（コードｃ*に対応）との進行関係（各根音間の音程）ｂ−ｃ’に対応した評価値を表５を用いて導出する。また、前記取り出した一組のコードセットｃ'，ｄ'の後半部分のコードｄ'（コードｄ*に対応）と前記ステップ１４２の処理によって決定したコード列中のコードｅとの進行関係（各根音間の音程）ｄ’−ｅに対応した評価値を表６を用いて導出する。そして、両評価値を合算して一時記憶しておく。そして、前記手順３で絞り込んだコード列の各組のコードセットｃ'，ｄ'のうちで、前記合算値が最大なコードセットｃ'，ｄ'を表５，６による修正コードセットｃ*，ｄ*として決定する。また、同一評価点のコードセットが複数組存在するときはランダムに選択するか、ユーザにいずれか一つを選択される。
【００８０】
（手順５）
コードｂ，ｅが特別なコード（例えば、ディミニッシュコード）のときには、前記手順３及び手順４によるコードセットの選択方法を採用しないで、下記表７，８の評価点に従う。下記表７，８も外部記憶装置３１内にテーブルの形で記憶されているデータであり、表７は、コードｂが特別なコードである場合におけるコードｂからコードｃ*への進行の自然な繋がりに対する評価点を表している。表８は、コードｅが特別なコードである場合におけるコードｄ*からコードｅへの進行の自然な繋がりに対する評価点を表している。なお、コード進行欄が根音の音程及び同音程変化の方向を表している点は前記表５，６の場合と同じである。
【００８１】
【表７】
0003666577.tif 000008
【００８２】
【表８】
0003666577.tif 000009
【００８３】
このコードｂ，ｅが特別なコードである場合における評価点の導出方法について具体例をあげて説明する。前記ステップ１４２にて決定された一組のコード列中のコードｂが前記特別なコードであるとき、前記手順４によるコードの進行関係ｂ−ｃ’に対応した評価値を表７を用いて導出する。また、前記一組のコード列中のコードｅが前記特別なコードであるとき、前記手順４によるコードの進行関係ｄ’−ｅに対応した評価値を表８を用いて導出する。そして、各評価値の合算及び同合算後のコードセットｃ*，ｄ*の決定においては、前記手順４に従う。
【００８４】
次に、前記手順１〜５によるコードの具体的修正例について説明する。図８に示すように、前記ステップ１４２の処理により決定されたコード列の一部のコードａ，ｂ，ｃ，ｄ，ｅ，ｆのうちで、コードｂ，ｅが、それぞれＢマイナセブンスフラットファイブ(Ｂm7b5)、Ａマイナ(Ａｍ)である場合を例にして、コードｃ，ｄを修正する具体例について説明しておく。コードｃ，ｄは前記ステップ１４４の処理によって入力されたモチーフメロディに対応する部分で各１小節ずつの２小節であるものとする。また、モチーフメロディとして、第１小節にＥ，Ｇが与えられ、第２小節にＡ，Ｇが与えられたものとし、さらに、前記ステップ１２２の処理などによって入力された調はハ長調である。
【００８５】
また、前記手順１により検出されたコード列の特徴は「ダイアトニックコードのみ」であり、前記手順２によりモチーフメロディから検出した修正コードセットｃ*−ｄ*の候補は、Ａm7−Ｄm7，Ｅm−Ｃ6，Ｃ7−Ｆ，Ｇ6−Ａm，Ｃ−Ｆ，Ｅm−Ｄ7，Ａ7−Ｄm7の７組が選択される。そして、手順１により検出した「ダイアトニックコードのみ」というコードの特徴により、手順３の絞り込みを行うと、前記７組のコードセットのうちでＡm7−Ｄm7，Ｅm−Ｃ6，Ｇ6−Ａm，Ｃ−Ｆの４組のコードセットに絞られる。
【００８６】
そして、手順４により、コードｂ(Ｂm7b5)から前記４組のコードセットの各第１小節目のコードＡm7，Ｅm，Ｇ6，Ｃへの繋がりの各評価点は、各根音間の音程変化がそれぞれ「−長２」、「＋完４」、「−長３」、「＋短２」であるので、「４」、「４」、「３」、「０」となる。一方、前記４組のコードセットの各第２小節目のコードＤm7，Ｃ6，Ａm，Ｆから，コードｅ(Ａm)への繋がりの各評価点は、各根音間の音程変化がそれぞれ「＋完５」、「−短３」、「１」、「＋長３」であるので、「３」、「４」、「０」、「０」となる。なお、表５，６に存在しないコードの繋がりに関しては、評価点を「０」とする。
【００８７】
そして、前記４組のコードセットＡm7−Ｄm7，Ｅm−Ｃ6，Ｇ6−Ａm，Ｃ−Ｆの各評価点の前後の合算値を計算すると、各合算値は、それぞれ「７」、「８」、「３」、「０」となる。したがって、最高合算値「８」に対応したコードセットＥm−Ｃ6が修正コードセットｃ*−ｄ*として決定される。なお、コードｂ，ｅが特別なコード（例えば、ディミニッシュコードdim）ではないので、前記例では手順５による表７，８は参照されない。
【００８８】
以上、詳細に説明したように、この第２のコード修正方法は、与えられた一組のコード列に対してモチーフメロディを与えるシステムにおいて、モチーフメロディに適するとともに隣接するコード列と音楽的に自然な繋がりをもつコードセットｃ*，ｄ*を決定し、前記コード列中のモチーフメロディに対応した部分ｃ，ｄのコードを前記決定したコードセットｃ*，ｄ*で置換するようにした。したがって、この第２のコード修正方法によれば、自動作曲システムなどにおいて、音楽的に自然なコード列を自動的かつ比較的簡単に提供できるようになる。
【００８９】
なお、前記第２のコード修正方法においては、モチーフメロディ部に対応するコードセットを２つのコードで構成するようにしたが、このコードセットを１つ又は３つ以上のコードで構成するようにしてもよい。１つのコードでコードセットを構成する場合、同１つのコードと決定した１組のコード列中の隣接するコードの繋がりを上記の方法で評価するようにすればよい。また、３つ以上のコードでコードセットを構成する場合、同３つのコードのうちの両端のコードと決定した１組のコード列中の隣接するコードの繋がりを上記の方法で評価するようにすればよい。
【００９０】
また、前記第２のコード修正方法においては、合算した評価点が最大な１つのコードセットを必ず決定するようにした。しかし、合算した評価点が所定値以上にならない場合には、コード列を決定し直したり、同決定したコード列中のモチーフメロディに対応する部分に隣接するコードｂ，ｅも上記第１のコード修正方法を用いて修正するようにしてもよい。
【００９１】
また、前記第２のコード修正方法においては、モチーフメロディに対応したコードセットの両端の音楽的な繋がりを考慮するようにしたが、モチーフ部分が楽曲の頭などの端部にある場合には、同部分のコードの繋がりを考慮する必要はない。
【００９２】
ｅ．自動作曲に対するコード修正の適用
楽曲は区間毎に固有の音楽性をもたせ、全体として起伏のある音楽を構成するのが一般的である。そこで、本明細書では、固有の音楽性に関して、「さび」という用語を以下のように定義付けて導入する。
【００９３】
「さび」とは、「楽曲の一部において、他とは異なった固有の音楽表現をする部分」である。例えば、盛り上がる部分、反対に盛り下がる部分、盛り上がり部分や盛り下がり部分を目立たせるために控えめの表現をする部分などをすべて「さび」という用語で表している。なお、前述のような固有の音楽性をもった区間に対して「さび」以外の用語を当てはめてもよい。また、異なる音楽性を有した複数の区間に対して別々の用語を当てはめてもよい。言いかえれば、「さび」部分とは、楽曲中の特定区間ということもできる。
【００９４】
以下の実施形態では、固有の音楽性のうちの「盛り上がる」音楽性について「さび」という用語を用いた例を示した。この「さび」（ある固有の音楽性を有した区間）を曲中で活用するために、「さび」部分を曲の頭に複製（コピー）して「さび始まり」の曲にしたり、曲最後に複製（コピー）して「さび終了」、あるいはさらに複数回繰り返して「さび繰り返し終了」させたりする。この適用例では、前記第１及び第２のコード修正方法を、「さび」を有する自動作曲に応用した。
【００９５】
図９は、自動作曲システムにおける曲構成決定方法の例である。イントロ１、エンディング９ではいくつかのタイプを選べる。例えば、イントロやエンディングにおいて、派手な伴奏や地味な伴奏を指示する。３，４と６，７はいわゆる曲の主たる部分であり、歌では１番、２番などと呼ばれる（第１コーラス、第２コーラスという言い方もある）。２番が不要なときは、省略してもかまわない(「ＯＦＦ」にする)。
【００９６】
ここで「さび」といわれる部分は、多くは主たる部分の後半部分（Ｂメロディ部）が受け持つ。そこで、この「さび」を曲中で活用するために、次のような曲構成決定方法が取られ得る。第１の方法は、「さび」を曲の頭にもってきて、いきなり盛り上げて曲を始める方法である。第２の方法は、「さび」を曲の最後にもってきて、曲を盛り上げて終わる方法である。第３の方法は、「さび」を繰り返す方法である。図９は、前記第２及び第３の両方法を採用して、「さび」を繰り返すとともに曲の最後にもってきた場合を図示したものである。また、劇的な効果を与えるために、「さび」を移調して繰り返す処理が取られることもある。エンディングでフェードアウトを指示したときは、曲の最後を繰り返しながら徐々に音量を小さくして終わるが、このとき「さび繰り返し」を指示してあると、当然この「さび」を繰り返ししながらフェードアウトする。
【００９７】
次に、前記方法を採用した自動作曲システムについて説明する。この自動作曲システムは、上述した図１のマイクロコンピュータを主体とした構成によって実現される。そして、図１０に示す自動作曲プログラムはＲＯＭ２２又は外部記憶装置３１に記憶されているとともに、同プログラムはＣＰＵ２１によって実行される。
【００９８】
この自動作曲プログラムの実行は、ステップ２００にて開始される。このプログラムの実行開始後、ステップ２０２にて、上述した図３のステップ１２２の処理と同様にして、メロディ生成用データを入力する。この場合、楽曲中に「さび」の部分を生成するために、「さび」を表すメロディデータ、同「さび」の楽曲構成中の箇所を指定するデータ、同「さび」の部分のピッチを他の部分のピッチよりも高くするためのピッチデータなどのメロディ生成用データを入力したりする。これにより、例えば、図９の３〜５に示すように、１番を構成するメロディ部Ａ，Ｂ、間奏、及び２番を構成するメロディ部Ａ，Ｂからなる基本的な楽曲構造に加え、メロディ部Ｂが「さび」であること表すメロディ生成用データが与えられる。
【００９９】
次に、ステップ２０４にて、上述した図２のステップ１０２の処理と同様にして、一組のコード列を与える。この場合には、前記「さび」に対応した部分のコードが派手な伴奏となるように、同部分には、テンションの多いコード進行などを採用する。
【０１００】
前記ステップ２０２，２０４の処理後、ステップ２０６にて、ＣＰＵ２１は、ディスプレイ１３上に「さび」などの区間を指定するための画面を表示して、ユーザに前記区間の指定を促す。この画面の一例を図１１に示す。この画面によれば、イントロを派手にするか、地味にするか、またイントロをなくすかが表示される。２番のメロディ部をなくすか否かも表示される。「さび」始まりにするか、「さび」を繰り返すかも表示される。また、前記繰り返しの「さび」を移調するか、移調するならばどの程度（何度）移調するかも表示される。エンディングを派手にするか、地味にするかが表示されるとともに、同エンディングをフェードアウトするかも表示される。
【０１０１】
このような表示に従って、ユーザがパネル操作子群１２を用いて前記区間の設定を行うことにより、１曲分の楽曲構成が決定される。例えば、図１１に黒印で示すような選択指示をすれば、図９に示す複数の楽節からなる楽曲構成が得られる。この場合、「さび」始まり、「さび」繰り返しの指定により、もともとメロディ部Ｂに対応したコードセットがイントロの直後及びエンディングの直前にコピーされることになり、すなわち前記ステップ２０４にて決定したコード列が変更されるので、前記ステップ２０６の「さび」区間などの設定後のコード列は音楽的に自然な繋がりを有しないものになっている可能性が高い。
【０１０２】
前記ステップ２０６の処理後、ステップ２０８にて、前記繋がりの不自然になったコード部分を修正する。このコード修正処理においては、上述した第１及び第２のコード修正方法を採用すればよい。これにより、楽曲中の種々の箇所に「さび」を付加するようにしても、コードの繋がりは音楽的に自然になる。
【０１０３】
次に、ステップ２１０，２１２にて、上記図３のステップ１２６，１２８の処理と同様にして、楽曲のスケールを検出するとともに、メロディを生成して、ステップ１３０にてこの自動作曲プログラムの実行を終了する。その結果、この例によれば、「さび」を適当に含んだメロディ及びコードからなる楽曲が自動的に作曲される。
【０１０４】
このような自動作曲方法によれば、前記ステップ２０６の処理により、与えられたさび部分を楽曲の始め又は終わりに設定したり、同さび部分を繰り返したりすることにより、種々の箇所で盛り上がりをもつ楽曲を簡単に構成できるようになり、変化に富んだ楽曲を自動作曲することができるようになる。また、さび追加部分に設定されたメロディ生成用データに移調を表すデータを追加することもできるので、さび部分にさらに変化をもたせることができ、より音楽的に豊かな楽曲を自動的に作曲できるようになる。
【０１０５】
また、前記ステップ２０８の処理により、前記さび追加部分に設定されたコードと前記与えられたコード列との繋がりも音楽的に自然であるように修正されるので、さび部分を追加しても、与えられたコード進行が不自然になることはなく、音楽的に良好な楽曲を自動的に生成できる。
【０１０６】
なお、前記自動作曲の例では、ディスプレイ１３に楽曲構成を選択するための表示を行って、パネル操作子群１２の操作により楽曲構成を設定するようにした。しかし、これに代えて、図１１の表示状態に対応した操作スイッチを操作パネル上に配置しておき、同操作スイッチの操作によって楽曲構成を設定するようにしてもよい。
【０１０７】
なお、上記各種実施形態においては、本発明を上記図１のように構成した楽音発生装置に適用した。しかし、本発明は、これに限らず、電子楽器や、パソコンとアプリケーションソフトウェアを組み合わせた形態の装置にも適用されるとともに、カラオケ装置や、ゲーム装置、携帯電話等の携帯型通信端末、自動演奏ピアノにも適用される。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側にもたせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。
【０１０８】
また、電子楽器の形態を取った場合でも、その形態は鍵盤楽器に限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の形態でもよい。さらに、音源装置、自動演奏装置等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別体の装置であり、ＭＩＤＩや各種ネットワーク等の通信手段を用いて各装置を接続するものであってもよい。
【図面の簡単な説明】
【図１】  本発明の実施形態に係る楽音発生装置の全体を示すブロック図である。
【図２】  図１のＣＰＵによって実行され、第１のコード修正方法の適用されるコード進行生成プログラムのフローチャートである。
【図３】  図１のＣＰＵによって実行され、第１のコード修正方法の適用される自動作曲プログラムのフローチャートである。
【図４】  第１のコード修正方法を説明するためのコードの配列状態を示す図である。
【図５】  図４のコードの配列状態の具体例を示す図である。
【図６】  図１のＣＰＵによって実行され、第２のコード修正方法の適用されるコード進行生成プログラムのフローチャートである。
【図７】  第２のコード修正方法を説明するためのコードの配列状態を示す図である。
【図８】  図７のコードの配列状態の具体例を示す図である。
【図９】  「さび」を含む楽曲の構成例を示す図である。
【図１０】  図１のＣＰＵによって実行され、第１及び第２のコード修正方法の適用される他の自動作曲プログラムのフローチャートである。
【図１１】  図１０の自動作曲プログラムに従ったディスプレイの表示例を示す図である。
【符号の説明】
１１…演奏操作子群、１２…パネル操作子群、１３…ディスプレイ、１７…音源回路、２０…バス、２１…ＣＰＵ、２２…ＲＯＭ、２３…ＲＡＭ、３１…外部記憶装置、３２…ＭＩＤＩインターフェース、３３…通信インターフェース。
【図１】
0003666577.tif 000010
【図２】
0003666577.tif 000011
【図３】
0003666577.tif 000012
【図４】
0003666577.tif 000013
【図５】
0003666577.tif 000014
【図６】
0003666577.tif 000015
【図７】
0003666577.tif 000016
【図８】
0003666577.tif 000017
【図９】
0003666577.tif 000018
【図１０】
0003666577.tif 000019
【図１１】
0003666577.tif 000020