"少なくとも、コード名、および、拍を含む時間情報に基づいたコード構成音の発音タイミング、を含む自動伴奏データを記憶する記憶手段と、演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段を制御する楽音データ制御手段と、前記演奏操作子の操作に基づいた、前記自動伴奏データによる楽音を生成するためのコードを判定するコード判定手段と、を備えた自動伴奏装置であって、前記コード判定手段が、入力可能な音高情報数毎に設けられ、入力される音高情報に基づいたコードデータを出力する、複数のコード判定テーブルと、前記演奏操作子の一連の操作に基づき、実行中の自動伴奏データの進行を規定する時間情報に基づいて、現在の拍の拍頭において同時操作された演奏操作子に対応する現在音高情報及びその数と、1つ前の拍である直前拍の拍頭において同時操作された演奏操作子に対応する先行音高情報及びその数と、を抽出する抽出手段と、前記抽出された現在音高情報及び先行音高情報、当該先行音高情報の数から現在音高情報の数への変移、及び前記現在の拍が小節において何番目の拍であるかに基づいて、前記コード判定テーブルに入力すべき音高情報及びその数を確定するとともに、当該数に対応する前記コード判定テーブルを選択する選択手段と、当該選択されたコード判定テーブルから前記確定された音高情報に基づくコードデータを出力させる出力手段と、を有する自動伴奏装置。前記抽出手段は、前記自動伴奏データの進行の速度に応じて、同時操作された演奏操作子の検出周期を可変する請求項1に記載の自動伴奏装置。前記抽出手段は、抽出された音高情報数が所定数以上でかつ、当該音高情報の中で同一音名の音高情報がある場合、高いほうの音高情報を削除する請求項1に記載の自動伴奏装置。前記抽出手段は、抽出された音高情報数が所定数以上でかつ、操作のベロシテイの大きい演奏操作子に対応する音高情報4個と操作時間の長い前記演奏操作子に対応する音高情報4個とが同一の場合は、当該4個の音高情報を抽出された音高情報とする請求項1に記載の自動伴奏装置。前記抽出手段は、抽出された音高情報数が所定数以上でかつ、低い順から4個の音高情報それぞれが短三度以上の音程を有している場合は、当該4個の音高情報を抽出された音高情報とする請求項1に記載の自動伴奏装置。前記抽出手段は、抽出された音高情報数が所定数以上でかつ、低い順から3個の音高情報それぞれが短三度以上の音程を有している場合は、当該3個の音高情報を抽出された音高情報とする請求項1に記載の自動伴奏装置。前記抽出手段は、抽出された音高情報数が所定数以上でかつ、当該音高情報の中で前記直前拍でのコードの構成音の音高と3個以上共通する音高情報が存在する場合は、当該3個の音高情報を抽出された音高情報とする請求項1に記載の自動伴奏装置。前記抽出手段は、抽出された音高情報数が所定数以上の場合、低い順から短三度以上の音程を有している3個の音高情報を抽出された音高情報とする請求項1に記載の自動伴奏装置。前記選択手段は、現在の拍が1拍もしくは3拍目でかつ、前記自動伴奏データにより生成されたベース音の発音が現拍より前から維持され、さらに直前の拍のベース音と同一である場合、直前拍及び現拍において抽出された音高情報の種類が同一か否か判定し、同一と判定された場合は直前拍で確定したコードを現拍のコードとし、同一でないと判定された場合は前記抽出された音高情報及びその数を前記コード判定テーブルに入力すべき音高情報及びその数として確定する請求項1に記載の自動伴奏装置。前記選択手段は、現在の拍が2拍もしくは4拍目でかつ、当該拍で抽出された音高情報の中の最高音高情報が直前拍の最高音高情報と異なり、さらに当該現在の拍の最高音高情報が、直前拍で確定したコードのコード音高あるいはスケール音高でかつ直前拍の最高音高情報との差が長2度以内の場合は、直前拍で確定したコードを現拍のコードとする請求項1に記載の自動伴奏装置。少なくとも、コード名、および、拍を含む時間情報に基づいたコード構成音の発音タイミング、を含む自動伴奏データと、入力可能な音高情報数毎に設けられ、入力される音高情報に基づいたコードデータを出力する、複数のコード判定テーブルと、を記憶する記憶手段を備えたコンピュータに、演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段を制御する楽音データ制御ステップと、前記演奏操作子の操作に基づいた、前記自動伴奏データによる楽音を生成するためのコードを判定するコード判定ステップと、を実行させ、前記コード判定ステップが、前記演奏操作子の一連の操作に基づき、実行中の自動伴奏データの進行を規定する時間情報に基づいて、現在の拍の拍頭において同時操作された演奏操作子に対応する現在音高情報及びその数と、1つ前の拍である直前拍の拍頭において同時操作された演奏操作子に対応する先行音高情報及びその数と、を抽出する抽出ステップと、前記抽出された現在音高情報及び先行音高情報、当該先行音高情報の数から現在音高情報の数への変移、及び前記現在の拍が小節において何番目の拍であるかに基づいて、前記コード判定テーブルに入力すべき音高情報及びその数を確定するとともに、当該数に対応する前記コード判定テーブルを選択する選択ステップと、当該選択されたコード判定テーブルから前記確定された音高情報に基づくコードデータを出力させる出力ステップと、を有する自動伴奏プログラム。例えば、特許文献1には、楽曲の音符データを複数の区間ごとに記憶しておき、音符データの第2の区間のコード名を付与するにあたり、調データ、第2の区間に対応する音符データ、第1の区間の音符データおよび先に第2の区間に付与されているコード名を参照して、新たなコード名を決定する装置が提案されている。このようにコードを決定するための要素のひとつとして、楽曲を構成する音符が用いられているが、これら音符それぞれが均等にコード決定に反映されるものではない。例えば音符がいずれの拍に含まれるかによってその重みが異なり、また、その拍内における時間的な位置によっても重みが異なる。したがって、その重みを反映させて、コード名を決定するのが望ましい。また、単一の音符のみを参照するのではなく、複数の音符の遷移に応じてコード名を決定するのが、より望ましい。本発明は、楽曲を構成する音符の重みおよびその遷移に基づいて、適切にコード名を決定することができる自動伴奏装置および自動伴奏装置のプログラム自動伴奏プログラムを提供することを目的とする。上記目的を達成するため、本発明の一態様の自動伴奏装置は、少なくとも、コード名、および拍を含む時間情報に基づいたコード構成音の発音タイミングを含む自動伴奏データを記憶する記憶手段と、演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段を制御する楽音データ制御手段と、前記演奏操作子の操作に基づいた、前記自動伴奏データによる楽音を生成するためのコードを判定するコード判定手段と、を備えた自動伴奏装置であって、前記コード判定手段が、入力可能な音高情報数毎に設けられ、入力される音高情報に基づいたコードデータを出力する、複数のコード判定テーブルと、前記演奏操作子の一連の操作に基づき、実行中の自動伴奏データの進行を規定する時間情報に基づいて、現在の拍の拍頭において同時操作された演奏操作子に対応する現在音高情報及びその数と、1つ前の拍である直前拍の拍頭において同時操作された演奏操作子に対応する先行音高情報及びその数と、を抽出する抽出手段と、前記抽出された現在音高情報及び先行音高情報、当該先行音高情報の数から現在音高情報の数への変移、及び前記現在の拍が小節において何番目の拍であるかに基づいて、前記コード判定テーブルに入力すべき音高情報及びその数を確定するとともに、当該数に対応する前記コード判定テーブルを選択する選択手段と、当該選択されたコード判定テーブルから前記確定された音高情報に基づくコードデータを出力させる出力手段と、を有する。本発明によれば、楽曲を構成する各音符音高の重みおよびその遷移に基づいて、適切にコード名を決定することができる自動伴奏装置および自動伴奏装置のプログラム自動伴奏プログラムを提供することが可能となる。以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる電子楽器の外観を示す図である。図1に示すように、本実施の形態にかかる電子楽器10は、鍵盤11を有する。また、鍵盤11の上部には、音色の指定、自動伴奏の開始終了、リズムパターンの指定などを行なうためのスイッチ符号12、13参照や、演奏される楽曲に関する種々の情報、例えば、音色、リズムパターン、コード名などを表示する表示部15を有する。本実施の形態にかかる電子楽器10は、例えば、61個の鍵C2~C7を有する。また、電子楽器10は、自動伴奏をオンする自動伴奏モード、および、自動伴奏をオフにする通常モードの2つの演奏モードのうち、何れかの下での演奏が可能である。図2は、本発明の実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。図2に示すように、本実施の形態にかかる電子楽器10は、CPU21、ROM22、RAM23、サウンドシステム24、スイッチ群25、鍵盤11および表示部15を備える。CPU21は、電子楽器10全体の制御、鍵盤11の鍵の押鍵やスイッチ群25を構成するスイッチ例えば、図1の符号12、13参照の操作の検出、鍵やスイッチの操作にしたがったサウンドシステム24の制御、押鍵された楽音の音高にしたがったコード名の決定、自動伴奏パターンおよびコード名にしたがった自動伴奏の演奏など、種々の処理を実行する。ROM22は、CPU21に実行させる種々の処理、例えば、スイッチの操作、鍵盤の何れかの鍵の押鍵、押鍵に応じた楽音の発音指示、押鍵よりに指定された音高にしたがったコード名の決定、自動伴奏パターンおよびコード名に基づく自動伴奏の演奏などのプログラムを記憶する。また、ROM22は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した波形データエリア、および、種々の自動伴奏パターンを示すデータ自動伴奏データを格納した自動伴奏パターンエリアを有する。RAM23は、ROM22から読み出されたプログラムや、処理の過程で生じたデータを記憶する。なお、本実施の形態において、自動伴奏パターンは、コード名ごとの構成音を含むコード自動伴奏パターン、及びドラム音を含むリズムパターンを有する。例えば、コード自動伴奏パターンのデータのレコードは、上記情報に加えて、コード構成音を示すデータを含む。また、リズムパターンのデータは、楽音の音色、発音タイミングを含む。サウンドシステム24は、音源部26、オーディオ回路27およびスピーカ28を有する。音源部26は、例えば、押鍵された鍵についての情報或いは自動伴奏パターンについての情報をCPU21から受信すると、ROM22の波形データエリアから所定の波形データを読み出して、所定の音高の楽音データを生成して出力する。また、音源部26は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。オーディオ回路27は、楽音データをD/A変換して増幅する。これによりスピーカ28から音響信号が出力される。本実施の形態にかかる電子楽器10は、通常モードの下においては、鍵盤11の鍵の押鍵に基づいて楽音を発生する。その一方、電子楽器10は、自動伴奏スイッチ図示せずが操作されることにより、自動伴奏モードとなる。自動伴奏モードの下では、鍵の押鍵により、その鍵の音高の楽音が発生する。また、押鍵された鍵の音高に基づいてコード名が決定され、そのコード名のコード構成音を含む自動伴奏パターンにしたがった楽音が発生する。なお、自動伴奏パターンは、コード自動伴奏パターンと、バスドラム、スネアドラム、シンバルなど音高の変化を伴わないリズムパターンとを含む。以下、電子楽器10が、自動伴奏モードの下で動作する場合について説明する。以下、本実施の形態にかかる電子楽器10において実行される処理についてより詳細に説明する。図3は、本実施の形態にかかる電子楽器において実行されるメインフローの例を示すフローチャートである。なお、図示しないが、メインフローの実行中に、所定の時間間隔で、割込カウンタのカウンタ値をインクリメントするタイマインクリメント処理も実行される。図3に示すように、電子楽器10のCPU21は、電子楽器10の電源が投入されると、RAM23中のデータや、表示部15の画像のクリアを含むイニシャル処理初期化処理を実行するステップS301。イニシャル処理が終了すると、CPU21は、スイッチ群25を構成するスイッチのそれぞれの操作を検出し、検出された操作にしたがった処理を実行するスイッチ処理を実行するステップS302。例えば、スイッチ処理においては、音色指定スイッチや、自動伴奏パターンの種別の指定スイッチ、自動伴奏パターンのオンオフの指定スイッチなど、種々のスイッチの操作が検出される。自動伴奏パターンがオンとなったときには、CPU21は、演奏モードを、自動伴奏モードに切り換える。演奏モードを示すデータは、RAM23の所定の領域に指定される。音色や自動伴奏パターンの種別を示すデータも、同様に、RAM23の所定の領域に格納される。次いで、CPU21は、鍵盤処理を実行するステップS303。図4は、本実施の形態にかかる鍵盤処理の例をより詳細に示すフローチャートである。鍵盤処理において、CPU21は、鍵盤11の鍵を走査する。鍵の走査結果であるイベント鍵オン或いはオフは、そのイベントが生じた時刻の情報とともに、RAM23に一時的に記憶される。CPU21は、RAM23に記憶された鍵の走査結果を参照してステップS401、イベントが有るか否かを判断するステップS402。ステップS402でYesと判断された場合には、CPU11は、イベントが鍵オンであるか否かを判断するステップS403。ステップS403でYesと判断された場合には、CPU21は、当該鍵オンがあった鍵について発音処理を実行するステップS404。発音処理においては、CPU21は、RAM23に記憶されていたメロディ鍵用の音色データ、および、鍵の音高を示すデータを読み出してRAM23に一時的に記憶する。後述する音源発音処理図3のステップS306において、音色や音高を示すデータは音源部26に与えられる。音源部26は、音色および音高を示すデータにしたがって、ROM22の波形データを読み出して、所定の音高の楽音データを生成する。これにより、スピーカ28から所定の楽音が発生する。その後、CPU21は、鍵オンがあった鍵についての音高情報例えば鍵番号および押鍵タイミング例えば押鍵時刻をRAM23に格納するステップS405。押鍵タイミングは、割り込みカウンタのカウンタ値に基づいて算出することができる。ステップS403でNoと判断された場合には、イベントが鍵オフであったことになる。したがって、CPU21は、鍵オフになった鍵についての消音処理を実行するステップS406。消音処理においては、CPU21は、消音すべき楽音の音高を示すデータを生成し、RAM23に一時的に記憶する。この場合にも、後述する音源発音処理ステップS306において、消音すべき楽音の音色および音高を示すデータが、音源部26に与えられる。音源部26は、与えられたデータに基づいて、所定の楽音を消音する。その後、CPU21は、鍵オフがあった鍵について、押鍵されていた時間押鍵時間をRAM23に格納するステップS407。CPU21は、全ての鍵イベントについて処理が終了したかを判断するステップS408。ステップS408でNoと判断された場合には、ステップS402に戻る。鍵盤処理図3のステップS303が終了すると、CPU21は、コード名判定処理を実行するステップS304。図5は、本実施の形態にかかるコード名判定処理の例を示すフローチャートである。本実施の形態においては、単音モノか複音ポリかでコード名の判定方法を異ならせている。モノの場合には、CPU21は、後述する、コード名判定処理モノを実行する。ポリの場合には、CPU21は、後述するコード名判定処理ポリを実行する。まず、CPU21は、現在時刻が属する拍の情報および押鍵情報鍵オンの時刻や鍵オフまでの時間を特定して、現在の拍において押鍵された鍵を特定し、かつ、現在時刻が属する拍の一つ前の区間前拍区間において、押鍵されていた鍵の情報を取得する。また、前拍区間コード名先行コード:PreviousCHordnamePreCHの読み込み、を行うステップS501。ステップS501において、現在の拍における押鍵された鍵の情報が、モノの場合の現在メロディ音CM後述するの初期値、前拍区間の先頭で押鍵された鍵の情報が、モノの場合の先行メロディ音PM後述するの初期値となる。次に、CPU21は、前拍区間コード再検証処理を行うステップS502。図6は、本実施の形態にかかる前拍区間コード再検証処理の例を示すフローチャートである。この前拍区間コード再検証処理は、前拍区間で決定されたコード名が正しかったかどうかを再検証するための処理である。例えばピアノ曲によくある16分音符でドソミソという分散和音が弾かれるとき、本実施形態では基本的に拍の頭の音でコードを決めてしまうため、最初のドはジャッジに入れられるが、その後のソミソは入れられない。よって、その次の拍で押鍵があったときに、前拍区間の音によりコード名を再判定し、再判定したコード名が前拍と異なっている場合には、前拍区間のコード名を再判定したコード名に置き換える。このようにすることで、前拍区間のコード名が間違っていたとしても、次の拍で修正することにより、次の拍でのコード判定がより正確になる。まず、CPU21は、前拍区間の16分音符刻みのタイミングで、全ての音を拾い、音長の長いものから4音を抽出する。ステップS601。次に、抽出した4音が前拍区間のコードの構成音に含まれているかを判断しステップS602、含まれていればステップS602でYESと判断される場合PreCHは正解なので何もせず、含まれていない場合ステップS602でNOと判断される場合、コードデータベース図示せずを参照して正しいコードを確認し、直前のコードの機能PreCHをこの正しいコードの機能に変更するステップS603。要するに、モノのときの、音長加算の考え方と同じであるが、本処理では目的が分散和音をみつけることができるか、ということがその目的である。図5に戻って、CPU21は、押鍵音が有るか否かを判断する。具体的には、CPU21は、拍の情報および押鍵情報に基づいて、現在時刻が属する拍の先頭に押鍵中の鍵が存在しているかを判断するステップS503。ステップS503でNoと判断された場合には、コード名判定処理が終了する。ステップS503でYesと判断された場合には、CPU21は、現在メロディ機能CurrentMelodyFunction:CMFを取得するステップS504。ここに、現在メロディ機能CMFは、先行コード名PreCHに対する現在メロディ音CMの機能を示す。本実施の形態において、CMFは、現在メロディ音CMが、先行コード名PreCHのコード構成音であることを示すコードトーンChordTone:CT、現在のスケール調性の構成音であることを示すスケールノートScaleNote:SN、その他の音非和声音を示すアザートーンOtherTone:OTの何れかとなる。より具体的には、コード名と音名との間を関連付けたメロディ機能テーブルをROM22に格納し、CPU21が、現在メロディ音CMおよび先行コード名PreCHの組に対応付けられた値を参照して、現在メロディ機能を判断している。図44は、本実施の形態にかかるメロディ機能テーブルの一例の部分を示す図である。図44に示すように、メロディ機能テーブル4400においては、現在メロディ音CMと先行コード名PreCHからなる値の組に対応して、所定の値が取得できるようになっている。図44において、メロディ機能テーブル4400中、CTはコードトーンを示し例えば、符号4401~4403参照、SNは、スケールノートを示す例えば、符号4411~4413参照。また、図44においては、メロディ機能テーブル4400中、何も記載されていない欄例えば、符号4421、4422参照は、アザートーンを示す。図5に戻って、CPU21は、モノorポリ判定処理を行うステップS505。図7は、本実施の形態にかかるモノorポリ判定処理の例を示すフローチャートである。CPU21は、鍵盤入力を受け付けステップS701、テンポが80以下一分間に80拍以下かどうかを判断するステップS702。この判断がYESの場合には、ステップS703へ、NOの場合には、ステップS704に処理を移す。CPU21は、ステップS703で、64分音符以下の間隔で複数押鍵があるかどうかを判断し、この判断がYESの場合、ステップS705に処理を移し、ポリフラグをONにする。NOの場合、ステップS706に処理を移し、モノフラグをONにする。CPU21は、ステップS704で、32分音符以下の間隔で複数押鍵があるかどうかを判断し、この判断がYESの場合、ステップS705に処理を移し、ポリフラグをONにする。NOの場合、ステップS706に処理を移し、モノフラグをONにする。図5に戻って、CPU21は、受け付けた鍵盤入力が、モノであるか否かを判断するステップS506。具体的には、モノフラグがONであるか否かを判断する。この判断が、YESの場合、CPU21は、処理をステップS507に移し、NOの場合には、処理をステップS508に移す。ステップS507では、モノ用のコード判定であるコード名判定処理モノを行い、ステップS508では、ポリ用のコード判定であるコード名判定処理ポリを行う。図8~図24を参照して、モノの場合のコード付けについて説明する。図8は、本実施の形態にかかるコード名判定処理モノの例を示すフローチャートである。概略的には、現在発音されているメロディ音を、現在メロディ音CurrentMelodyCM、それより1つ前に発音されているメロディ音を、先行メロディ音PreviousMelodyPM、現在より一つ前に演奏されていたコード名を、先行コード名PreviousCHordnamePreCHとして、現在メロディ音CM、先行メロディ音PMおよび先行コード名PreCHに基づいて、新たに発音すべき現在コード名CurrentCHordnameCurCHを決定している。なお、本実施の形態においては、楽曲の調性をハ長調CMaj或いはイ短調Aminとして、コード名については、IMaj、IImなど、主音に対する度数で表し、そのデータをRAM23などに記憶している。他の調性の場合には、当該調性のルート音と、C或いはAの音との音高差に基づいて、ルート音を伴うコード名を得ることが可能である。ただし、押鍵が何拍目に行なわれたかなど、押鍵された時間的な位置や、押鍵が拍の頭であるか否か、或いは、複数の押鍵による音型持続、順次進行、跳躍などに基づいて、上記現在メロディ音CMおよび先行メロディ音PMを決定すべき場合がある。つまり、現実に現在押鍵されている鍵以外の押鍵について現在メロディ音CMとすべき場合や、現在押鍵された鍵の1つ前に押鍵された鍵以外の押鍵について先行メロディ音PMとすべき場合がある。以下、コード判定処理モノにおいて、ステップS802~808は、主として、現在メロディ音CMおよび先行メロディ音PMの決定に関する。引き続いて実行されるステップS809が、現在メロディ音CM、先行メロディ音PMおよび先行コード名PreCHに基づいて、具体的に現在コード名CurCHを決定する処理となる。まず、CPU21は、現在コード名CurCHを、先行コード名PreCHにコピーするステップS801。次に、CPU21は、後述するコードテーブルを指定するテーブル指定情報を、第2のコードテーブルを指定する情報に設定するステップS802。コードテーブルには、主として押鍵が1拍目であるときに用いる第1のコードテーブルと、それ以外のときに用いる第2のコードテーブルが含まれ、それぞれROM22に格納されている。テーブル指定情報は、第1のコードテーブル或いは第2のコードテーブルの何れを用いるかを示す情報であり、RAM23に格納される。次いで、押鍵された鍵の時間的位置、つまり、鍵が何拍目に押鍵されたかを判断するステップS803、804、805。押鍵が1拍目である場合ステップS803でYes或いは押鍵が3拍目である場合ステップS804でYesには、CPU21は、1拍目3拍目対応ノート決定処理を実行するステップS805。押鍵が2拍目である場合ステップS806でYesには、2拍目対応ノート決定処理を実行するステップS807。また、ステップS806でNoと判断された場合、つまり、押鍵が4拍目である場合には、4拍目対応ノート決定処理を実行するステップS808。本実施の形態においては、楽曲は4分の4拍子であり、1小節が4拍で構成される。押鍵がn拍目であることは、押鍵のタイミングが、第n拍の先頭以降で、第n1拍の先頭よりも時間的に早いことを意味している。楽曲の構成要素には拍子および拍という概念がある。また、拍子においては拍ごとに重みがあり、上記拍の重みを考慮してメロディは進行する。また、シンコペーションなど、場合によって拍の重みが移動する場合もある。本実施の形態においては、拍の重みを考慮して、最適なメロディの流れを構成する構成音を抽出し、コード判定に用いるのに最適な現在メロディ音CMおよび先行メロディ音PMを特定する。図9~図12は、本実施の形態にかかる1拍目3拍目対応ノート決定処理の例を示すフローチャートである。図9に示すように、押鍵が1拍目に関するものであるかを判断するステップS901。ステップS901でYesと判断された場合には、CPU21は、テーブル指定情報を、第1のテーブルを示す情報に変更するステップS902。次いで、CPU12は、第1のドミナントモーション判定処理を実行するステップS903。ドミナントモーション判定処理は、メロディの流れからドミナントモーションつまり、属和音ドミナントから主和音トニックへの進行を抽出するものである。本実施の形態においては、処理においてコード名を考慮した第1のドミナントモーション判定処理と、コード名を考慮しない第2のドミナントモーション判定処理とが用いられる。図13は、本実施の形態にかかる第1のドミナントモーション判定処理の例を示すフローチャートである。図13に示すように、CPU21は、RAM23に格納された先行コード名PreCHが、メジャー系のドミナントコードのいずれかに対応するかを判断するステップS1301。ここで、本実施の形態にかかる第1のドミナントモーション判定処理においては、例えば、メジャー系のドミナントコードは、VMaj、V7およびVIIm7-5としている。ステップS1301でYesと判断された場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMの値の組であるPM,CMが、F,E、B,C、D,Cの何れかであるかを判断するステップS1302。ステップS1302では、先行メロディ音PMから現在メロディ音CMへの動きが、長調の和音進行でドミナントからトニックに解決するときの動きであるか否かを判断している。ステップS1302でYesと判断された場合には、CPU21は、現在コード名CurCHをIMajに決定し、その情報をRAM23に格納するステップS1303。その後、CPU21は、ドミナントモーション処理において第1の判定結果であったことを示す情報をRAM23に格納するステップS1304。ステップS1301でNo或いはステップS1302でNoと判断された場合には、CPU21は、先行コード名PreCHが、マイナー系のドミナントコードの何れかに対応するかを判断するステップS1305。ここで、本実施の形態において、例えば、マイナー系のドミナントコードは、IIIMajおよびIII7としている。ステップS1305でYesと判断された場合には、CPU21は、PM,CMが、G,A、B,A、D,Cの何れかであるかを判断するステップS1306。ステップS1306においては、先行メロディ音PMから現在メロディ音CMへの動きが、短調の和音進行でドミナントからトニックに解決するときの動きであるか否かを判断している。ステップS1306でYesと判断された場合には、CPU21は、現在コード名CurCHをVIminに決定し、その情報をRAM23に格納するステップS1307。その後、ステップS1304に進む。ステップS1305でNoと判断された場合、或いは、ステップS1306でNoと判断された場合には、CPU21は、ドミナントモーション処理において第2の判定結果であったことを示す情報をRAM23に格納するステップS1308。ステップS903の第1のドミナントモーション判定処理が終了すると、CPU21は、第1のドミナントモーション判定処理の結果が、第2の処理結果であったかを判断するステップS904。ステップS904でNoと判断された場合、つまり、第1のドミナントモーション判定処理の結果が、第1の処理結果であった場合には、先行メロディ音PMおよび現在メロディ音CMを初期値から変更することなく、RAM23に格納して、処理を終了するステップS905。ステップS904でYesと判断された場合には、CPU21は、RAM23に格納された押鍵情報を参照して、現在時刻に対応する拍の直前拍に押鍵があったかを判断するステップS906。ステップS904でYesと判断された場合には、CPU21は、RAM23の押鍵情報を参照して、直前拍先頭以降にも押鍵があったかを判断するステップS907。ステップS907でNoと判断されたことは、直前拍および今回の拍でそれぞれ4分音符が押鍵されたことを意味する。この場合の処理については後述する。ステップS907でYesと判断された場合には、CPU21は、RAM23に格納された押鍵情報中、直前拍先頭以降に押鍵された鍵の発音時間を参照して、現在まで発音中であるかを判断するステップS909。ステップS909では、拍頭の押鍵ではなくても、それが直前拍先頭以降に押鍵されかつ維持されているものであれば、シンコペーションに該当するため、シンコペーションに該当する押鍵があったかを判断している。ステップS909でYesと判断された場合には、先行メロディ音PMは初期値のまま、その一方、直前拍先頭以降に押鍵された鍵を現在メロディ音CMとするとともに、シンコペーションフラグSYNを1にセットして、RAM23に格納するステップS910。先行メロディ音PMおよび現在メロディ音CMは、RAM23に格納される。シンコペーションに該当する押鍵は、拍頭における押鍵と同様の重みを有するため、拍頭と同様に扱われる。次に、図10を参照して、ステップS906でNoであった場合について説明する。ステップS906でNoと判断された場合には、CPU21は、現在の拍先頭における押鍵が曲開始音に該当するかを判断するステップS1001。ステップS1001は、CPU21が、RAM23に格納された押鍵情報を参照して、最初の押鍵情報であるかを判断することにより実現できる。ステップS1001でYesと判断された場合には、先行メロディ音PMとして、現在メロディ音CMを与える。また、現在メロディ音CMを初期値から変更することはないが、CPU21は、テーブル指定情報を第2のコードテーブルを指定する情報に変更するステップS1002。ステップS1001でNoと判断された場合には、8拍以上の時間、押鍵が無いかを判断するステップS1003。ステップS1003でYesと判断された場合には、CPU21は、現在メロディ音CMは初期値のまま維持し、その一方、先行メロディ音PMとして、現在メロディ音CMを与え、RAM23に情報を格納するステップS1004。ステップS1003でYesと判断される場合は、2小節以上、新たな押鍵が無いことになる。この場合には、メロディシーケンスの意味が薄くなるため、2小節以上前に押鍵された先行メロディ音PMの初期値は無視することとしている。ステップS1003でNoと判断された場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMを初期値のまま維持するステップS1005。次に、図11を参照して、ステップS907でNoと判断された場合について説明する。ステップS907でNoと判断された場合には、CPU21は、上述したメロディ機能テーブル図44を参照し、現在メロディ機能CurrentMelodyFunction:CMFが、非和声音OtherTone:OTであるかを判断するステップS1101。ここに、現在メロディ機能CMFは、先行コード名PreCHに対する現在メロディ音CMの機能を示す。本実施の形態において、CMFは、現在メロディ音CMが、先行コード名PreCHのコード構成音であることを示すコードトーンChordTone:CT、現在のスケール調性の構成音であることを示すスケールノートScaleNote:SN、その他の音非和声音を示すアザートーンOtherTone:OTの何れかとなる。ステップS1101でYesと判断された場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMを、初期値のまま維持するステップS1102。その一方、ステップS1101でNoと判断された場合には、CPU21は、現在メロディ機能CMFがスケールノートSNであるかを判断するステップS1103。ステップS1103でYesと判断された場合には、CPU21は、先行メロディ音PMと現在メロディ音CMとの差が2半音以内であるかを判断するステップS1104。ステップS1104では、いわゆる順次進行であるかが判断されている。ステップS1104でYesと判断された場合、または、ステップS1103でNoと判断された場合には、第1のドミナントモーション処理を実行するステップS1105。次いで、CPU21は、第1のドミナントモーション判定処理ステップS1105において、第2の判定結果であるかを判断するステップS1106。ステップS1106でNoと判断された場合、つまり、第1の判定結果である場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMを、初期値のまま維持するステップS1102。ステップS1106でYesと判断された場合には、CPU21は、現在の押鍵、つまり、処理対象となっている押鍵が1拍目のものであるかを判断するステップS1107。ステップS1107でYesと判断された場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMを、初期値のまま維持するステップS1108。その一方、ステップS1107でNoと判断された場合、つまり、処理対象となっている押鍵が3拍目のものであれば、CPU21は、先行メロディ音PMとして、初期的な先行メロディ音PMよりさらに1つ前に押鍵された音高PPMを与えるステップS1109。なお、現在メロディ音CMは初期値が維持される。これは、3拍目で順次進行を構成する楽音は、装飾的な音である可能性が高く、メロディラインを支配する本来の楽音は、さらにその一拍前の楽音とすることが適切であると考えられるからである。次に、ステップS909でNoと判断された場合について説明する。図12に示すように、CPU21は、直前拍における拍頭以降の押鍵音を特定しステップS1201、特定された押鍵音の音高が、初期的なCMと同一であるかを判断するステップS1202。ステップS1202でYesと判断された場合には、CPU21は、現在メロディ音CMを初期的な状態で維持し、その一方、先行メロディ音PMとして、現在メロディ音CMの値を与えるステップS1203。例えば、直前拍において、8分音符でD、Cという順でメロディが進行し、現在の拍での押鍵がCであった場合を考える。この場合には、直前拍の最初のDの音は装飾音であると考えて、DからCというシーケンスではなく、CからCというシーケンスが適当であると考えている。このため、先行メロディ音を、現在メロディ音と同じにして、同じ音の連続としている。ステップS1202でNoと判断された場合には、CPU21は、特定された拍頭以降の押鍵音が、全て、先行メロディ音PMと等しいかを判断するステップS1204。ステップS1204でYesと判断された場合には、ステップS1103に進む。例えば、直前拍において、16分音符で、D、C、C、Cという4つの押鍵がなされたと考える。この場合には、拍頭であるからといってDは、装飾的な音であることも考えられるため、拍頭の押鍵であるDを、先行メロディ音PMとすべきではない場合もある。そこで、ステップS1103以降の処理を実行している。その一方、ステップS1204でNoと判断された場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMを、初期値のまま維持するステップS1205。次に、2拍目対応ノート決定処理ステップS807について説明する。図14~図17は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。図14に示すように、CPU21は、1拍目に押鍵が無かったかを判断するステップS1401。ステップS1401でYesと判断された場合、つまり、押鍵が無かった場合には、CPU21は、テーブル指定情報を第1のコードテーブルを指定する情報に変更するステップS1401。例えば、曲の途中で、前の小節の音が延び、1拍目が休符で、2拍目から次のフレーズが開始されるときには、本実施の形態では、2拍目で押鍵された音が1拍目と同様の重みがあると考え、1拍目用のコードテーブルである第1のコードテーブルを使用するようにしている。2拍目対応ノート処理では、1拍目3拍目対応ノート決定処理の第1のドミナントモーション判定処理ステップS903およびその判定結果に基づく処理ステップS904、905が省略されている。ステップS1403~ステップS1407は、それぞれ、図9のステップS906~910と同様である。また、図15は、ステップS1403でNoと判断された場合に実行される処理である。ステップS1501、ステップS1503~1505は、それぞれ、図10のステップS1001、ステップS1003~1005と同様である。また、ステップS1502では、テーブル指定情報の変更が伴わないことを除き、図10のステップS1002と同様である。次に、ステップS1404でNoと判断された場合について説明する。図16に示すように、CPU21は、現在メロディ機能CMFが、非和声音OTであるかを判断するステップS1601。ステップS1601およびステップS1601でYesの場合に進むステップS1602は、図11のステップS1101、1102と同様である。ステップS1601でNoと判断された場合には、CPU21は、先行コード名PreCHが無判定コード以外のコードであるかを判断するステップS1603。図24特にステップS2405において説明するように、無判定コードについては、先の処理で転調フラグが1以上の値となっている。そこで、ステップS1603では、RAM23に格納された転調フラグが1以上であるかを判断すれば良い。ステップS1603でNo、つまり、先行コード名PreCHが無判定コードである場合には、CPU21は、先行メロディ音PMとして、現在メロディ音CMを与えるステップS1604。その一方、ステップS1603でYesと判断された場合、つまり、先行コード名PreCHが無判定コード以外である場合には、現在メロディ機能CMFがスケールノートSNであるかを判断するステップS1605。ステップS1103でYesと判断された場合には、CPU21は、先行メロディ音PMと現在メロディ音CMとの差が2半音以内であるかを判断するステップS1606。ステップS1605およびステップS1606は、図11のステップS1103および1104と同様である。ステップS1605でNoと判断された場合、或いは、ステップS1606でYesと判断された場合には、CPU21は、現在コード名CurCHとして、先行コード名PreCHを与えるステップS1607。つまり、先行コード名PreCHが保持されることになる。2拍目や4拍目においては、先行コード名が維持されるコードホールドが行なわれる場合があるため、適切なコードホールドを実現している。本実施の形態では、現在メロディ機能CMFがコードトーンCTである場合、或いは、現在メロディ機能CMFがスケールノートSNであり、かつ、順次進行である場合には、コードホールドを行なっている。4拍子の楽曲では、2拍目および4拍目は弱拍である。したがって、メロディが弱拍を強調するものでない限り、基本的に、2拍目および4拍目のコードは、1拍目および3拍目のコードを維持している。例えば、図49に示す楽曲では、拍頭にC、D、E、F、E、D、Cという音があり、この音のシーケンスは順次進行となっている。実際には、このシーケンスに適切なコード名は、IMajCMajである。しかしながら、ステップS1605~ステップS1607に示す処理を実行しないと、2拍目や4拍目では、コード名がIMajCMaj以外になってしまう。そこで、ステップS1605~1606に示すように一定の条件の下では、コードホールドを行なって、適切なコード名を得られるようにしている。ステップS1607の後、CPU21は、RAM23中のコード決定フラグを1にセットするステップS1608。この場合には、ステップS1607で既に現在コード名CurCHが決定されるため、後続するコード決定の処理を要さないからである。また、ステップS1606でNoと判断された場合には、ステップS1602に進み、先行メロディ音PMおよび現在メロディ音CMが維持される。ステップS1406でNoと判断された場合の処理は、図17に示される。図17のステップS1701~ステップS1705は、図12のステップS1201~1205と同様である。ステップS1704でYesと判断された場合には、図16のステップS1605に進み、コードホールドが判断される。次に、4拍目対応ノート決定処理ステップS808について説明する。図18~図19は、本実施の形態にかかる4拍目対応ノート決定処理の例を示すフローチャートである。4拍目対応ノート決定処理は、2拍目対応ノート決定処理と類似する。図18に示すように、4拍目対応ノート決定処理においては、1拍目の押鍵の有無およびそれに伴う処理図14のステップS1401~1402は省略されている。図18において、ステップS1801~1805は、図14のステップS1403~1407と同様である。また、ステップS1801でNOと判断された場合には、図15の処理が実行される。ステップS1802でNoと判断された場合には、図19に示す処理が実行される。図19において、ステップS1901~1906は、図16のステップS1601~1606と同様である。4拍目対応ノート処理においては、ステップS1905でNo或いはステップS1906でYesと判断されたときに、さらに、第2のドミナントモーション判定処理ステップS1907を実行し、その結果に基づいて、コードホールドと行なうべきかを判断している。図20は、本実施の形態にかかる第2のドミナントモーション判定処理の例を示すフローチャートである。第2のドミナントモーション判定処理では、メロディ音の遷移のみが判断され、先行コード名PreCHのコード種別は考慮されない。図20に示すように、CPU21は、PM,CMが、F,E、B,C、D,Cの何れかであるかを判断するステップS2001。これは、図13のステップS1302と同様である。ステップS2001でNoと判断された場合には、CPU21は、PM,CMが、G,A、B,A、D,Cの何れかであるかを判断するステップS2003。これは、図13のステップS1306と同様である。ステップS2001でYesと判断された場合、或いは、ステップS2003でYesと判断された場合には、CPU21は、ドミナントモーション処理において第1の判定結果であったことを示す情報をRAM23に格納するステップS2002。その一方、ステップS2003でNoと判断された場合には、CPU21は、ドミナントモーション処理において第1の判定結果であったことを示す情報をRAM23に格納するステップS2004。第2のドミナントモーション判定処理により第2の判定結果となった場合ステップS1908でYesには、CPU21は、現在コード名CurCHとして、先行コード名PreCHを与えるステップS1909。つまり、先行コード名PreCHが保持されることになる。次いで、CPU21は、RAM23中のコード決定フラグを1にセットする。その一方、ステップS1908でYesと判断された場合には、ステップS1902に進み、先行メロディ音PMおよび現在メロディ音CMが維持される。ステップS1804でNoと判断された場合には、図17に示す処理が実行される。ステップS805、807、808に示す、拍のそれぞれに対応したノート決定処理が終了すると、処理により修正された先行メロディ音PMおよび現在メロディ音CMに基づいて、コード決定処理が実行されるステップS809。図21~図24は、本実施の形態にかかるコード決定処理の例を示すフローチャートである。図21に示すように、CPU21は、コードホールドにより既に現在コード名CurCHが決定され、コード決定フラグが1ではないかを判断するステップS2101。ステップS2101でNoと判断された場合、つまり、コード決定フラグが1である場合には、CPU21は、現在コード名CurCHおよびその発音時刻をRAM23の所定の領域に格納するステップS2105。ステップS2101でYesと判断された場合、つまり、コード決定フラグが1ではない場合には、CPU21は、RAM23から先行メロディ音PMおよび現在メロディ音CMを取得するステップS2102。CPU21は、先行メロディ音PMが曲開始音であるかを判断するステップS2103。ステップS2103においては、例えば、先行メロディ音PMよりさらに前の時刻に押鍵された音が存在しないことを判断すれば良い。ステップS2103でNoと判断された場合には、CPU21は、先行コード音PreCHが無判定コードであるかを判断するステップS2104。ステップS2103でYesと判断された場合、或いは、ステップS2104でYesと判断された場合には、CPU21は、先行メロディ音PMとして、現在メロディ音CMを与えるステップS2105。ステップS2104でYesと判断された場合には、先行コード名PreCHが無判定コードであるため、新たにメロディシーケンスが開始する方が妥当であるからである。次いで、CPU21は、メロディシーケンステーブルを参照してPM,CMに対応する値の組を取得するステップS2106。図41は、本実施の形態にかかるメロディシーケンステーブルの例を示す図である。図41に示すように、メロディシーケンステーブル2200には、所定の先行メロディ音PMおよび現在メロディ音CMについて値の組が格納されている。PM,CMに対応する値の組がメロディシーケンステーブル2200中に存在すれば、その値の組を一時的にRAM23に格納すれば良い。その一方、PM,CMに対応する値の組が、メロディシーケンステーブル2200中に存在しなければ、値の組が存在しないことを示す情報をRAM23に格納すれば良い。次に、CPU21は、現在メロディ音CMの直前に押鍵された音CM直前音を特定するステップS2107。ここにいう直前に押鍵された音は、実際に直前に押鍵された音であり、先行メロディ音PMと同一ではない場合もある。CPU21は、ステップS2107で特定されたCM直前音と、現在メロディ音CMとを比較して、これらの音高差が5半音以上であるかを判断するステップS2108。ステップS2108でYesと判断された場合には、CPU21は、現在メロディ音CMが1拍目の押鍵に関するものであるかを判断するステップS2109。メロディシーケンスにおいては、核となるべきメロディ音が含まれ、その前後には、核となるメロディ音を装飾するメロディ音が存在する場合がる。装飾するメロディ音は、核となるメロディ音からそれほど音高差が無いのが通常である。その一方、音高差が一定範囲例えば4度程度以上となるように跳躍する場合には、跳躍した後の音に比較的重みが大きくなる場合が多い。そこで、ステップS2108で、音高差を判断して、その差に基づいて異なる処理を行なっている。ステップS2109でYesと判断された場合には、CPU21は、先行コード名PreCHが2小節以上継続しているかを判断するステップS2201。ステップS2201でYesと判断された場合には、CPU21は、第1のコードテーブルのうち、種別としてjump2の欄を参照することを決定し、第1のコードテーブル中の所定のコード名を取得するステップS2202。その一方、ステップS2202でNoと判断された場合には、CPU21は、第1のコードテーブルのうち、種別としてjump1の欄を参照することを決定し、第1のコードテーブル中の所定のコード名を取得するステップS2203。図42は、本実施の形態にかかる第1のコードテーブルの例を示す図である。図42においては、第1のコードテーブルの一部を示している。図42に示すように、コードテーブル4200では、少なくとも、先行コード名の機能先行コード機能PreviousChordFunction:符号4210参照および先行メロディ音PM,現在メロディ音CMの組例えば、符号4201、4202参照に基づいて、コード名が決められるようになっている。さらに、本実施の形態においては、ジャンプなし、jump1およびjump2という3つの種別符号4211参照を設け、先行コード機能、先行メロディ音PM,現在メロディ音CMの組および種別に基づいて、コード名が決定されるようになっている。先行コード機能は、トニックTonic、サブドミナントSubdominantおよびドミナントDominantの3つがある。トニックに該当するコード名として、IMaj、IM7、IIImin、IIIm7、VImin、VIm7がある。サブドミナントに該当するコード名として、IImin、IIm7、IIm7-5、IVMaj、IVM7、IVmin、IVmM7がある。また、ドミナントに該当するコード名として、IIIMaj、III7、III7sus4、VMaj、V7、V7sus4、VIIm7-5がある。先行コード機能ごとの該当するコード名は、例えば、RAM23に予め格納されている。また、種別においてjump2は、メロディシーケンスにおける跳躍および先行コード名の継続を考慮して、コードの変化の程度を大きくしている。その一方、jump1では、jump2の場合よりも、コード変化の度合いが小さい。また、ジャンプなしという種別は、後述するように、第1のコードテーブルを使用する場合でも、jump1或いはjump2の種別が無い場合に使用されるものである。例えば、先行コード名PreCHの先行コード機能がトニックであり、かつ、先行メロディ音PM,現在メロディ音CM=C,Gであり、種別がjump2であれば、第1のコードテーブルからVMaj符号4221参照が取得される。また、先行コード名PreCHの先行コード機能がトニックであり、かつ、先行メロディ音PM,現在メロディ音CM=C,Gであり、種別がjump1であれば、第1のコードテーブルからIMaj符号4222参照が取得される。CPU21は、現在コード名CurCHとして、第1のコードテーブルから特定されたコード名をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納するステップS2204、2205。次に、ステップS2208でNo或いはステップS2209でNoと判断された場合について説明する。CPU21は、現在メロディ音CMが、先行コード名PreCHのコードトーンCTであるかを判断するステップS2301。ステップS2301でYesと判断された場合には、CPU21は、先行コード名PreCHの楽音の発音時刻および現在時刻に基づき、先行コード名PreCHの発音時間が2拍以内であるかを判断するステップS2302。ステップS2302でYesと判断された場合には、CPU21は、さらに、シンコペーションフラグが1であるかを判断するステップS2303。ステップS2303でNoと判断された場合には、CPU21は、第2のドミナントモーション処理を実行してステップS2305、先行メロディ音PMから現在メロディ音CMへの移行がドミナントモーションであるかを判断する。第2のドミナントモーション処理の結果が第2の判定結果である場合ステップS2305でYesには、CPU21は、現在コード名CurCHとして、先行コード名PreCHを与えるステップS2306。つまり、先行コード名PreCHが保持されることになる。ステップS2301でNo、ステップS2302でNo、或いは、ステップS2305でNoと判断された場合には、CPU21は、先行メロディ音PM,現在メロディ音CMに対応する値の組が、メロディシーケンステーブル中に存在していたかを判断するステップS2307。図21のステップS2106において、値の組或いは値の組が存在しないことを示す情報がRAM23に格納されているため、その情報を参照することにより、ステップS2307の判断が可能である。ステップS2307でYesと判断された場合には、現在メロディ音CMが、1拍目或いは2拍目に関するものであり、かつ、テーブル指定情報は第1のテーブルを示しているかを判断するステップS2308。ステップS2308でYesと判断された場合には、CPU21は、第1のコードテーブルのうち、種別としてジャンプなしの欄を参照することを決定し、第1のコードテーブルにおいて、所定のコード名を取得するステップS2309。これに対して、ステップS2308でNoと判断された場合には、CPU21は、第2のコードテーブルを参照することを決定し、第2のコードテーブルにおいて、所定のコード名を取得するステップS2310。図43は、本実施の形態にかかる第2のコードテーブルの例を示す図である。図43においては、第2のコードテーブルの一部を示している。図43に示すように、コードテーブル4300では、先行コード名の機能先行コード機能PreviousChordFunction:符号4310参照および先行メロディ音PM,現在メロディ音CMの組例えば、符号4301、4302参照に基づいて、コード名が決められるようになっている。例えば、先行コード名PreCHの先行コード機能がサブドミナントであり、かつ、先行メロディ音PM,現在メロディ音CM=C,Gであれば、第2のコードテーブルからVMaj符号4321参照が取得される。その後、CPU21は、現在コード名CurCHとして、第1のコードテーブル或いは第2のコードテーブルから特定されたコード名をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納するステップS2311、2205。ステップS2307においてYesと判断される場合は、メロディシーケンステーブルに、先行メロディ音PM,現在メロディ音CMの組が存在したため、コードテーブルを参照することで適切なコード名が取得されている。その一方、ステップS2307でNoと判断された場合には、転調或いは一時的な無判定コードの決定などが行なわれる。ステップS2307でNoと判断された場合には、CPU21は、現在メロディ音CMの発音時間押鍵時間が4分音符より大きいか、つまり、1拍より長く発音されているかを判断するステップS2401。ステップS2401でNoと判断された場合には、CPU21は、先行コード名PreCHを変更せず、そのまま現在コードCurCHとするステップS2407。ステップS2401でNoとなる場合は、演奏者が意図して押鍵したのではなく、ミスタッチによって誤った鍵を押鍵してしまった可能性が高い。そこで、この場合は、コード名を変更することなく、先行コード名PreCHをそのまま現在コード名CurCHとする。ステップS2401でYesと判断された場合には、CPU21は、現在メロディ音の発音時間押鍵時間が、3拍以下であるかを判断するステップS2402。ステップS2402でYesと判断された場合には、転調フラグが2以下であるかを判断する。ステップS2403でYesと判断された場合には、CPU21は、RAM23に格納される転調フラグの値をインクリメントするステップS2405。ステップS2402でNo或いはステップS2403でNoと判断された場合には、CPU21は、転調処理を実行するステップS2404。本実施の形態においては、基本的には、現在メロディ音CM、先行メロディ音PMを含むメロディ音は、Cのスケール調性で処理される。したがって、転調処理では、転調後の調性とCとの音高差が算出され、その音高差をオフセットとしてRAM23に格納すれば良い。転調処理以後は、実際に押鍵された鍵番号により特定される音名をオフセットだけ減じることで、Cの調性で処理を続行することが可能となる。ステップS2405の後、CPU21は、現在メロディ音CMが、先行コード名PreCHのコードトーンCT或いはスケールノートSNであるかを判断するステップS2406。ステップS2406においては、ステップS1101と同様に、CPU21は、メロディ機能テーブルを参照して、現在メロディ音CMおよび先行コード名PreCHの組に対応付けられた値が、コードトーン或いはスケールノートであるかを判断すれば良い。ステップS2406でYesと判断された場合には、CPU21は、コードを保持すべく現在コード名CurCHに、先行コード名PreCHを与えるステップS2407。ステップS2407でNoと判断された場合には、CPU21は、無判定コードテーブルを参照して、ディミニシュdim或いはオーギュメントaugのコードを、現在コード名CurCHに与えるステップS2408。図45は、本実施の形態にかかる無判定コードテーブルの一例の部分を示す図である。図45に示す無判定コードテーブル4500においては、現在メロディ音CMと先行コード名PreCHからなる値の組に対応して、所定の値が取得できるようになっている。無判定コードテーブル4500において、空欄例えば、符号4501参照は、現在メロディ音CMと先行コード名PreCHからなる値の組に対応付けられた現在メロディ機能CMFが、コードトーンCT或いはスケールノートSNであることを意味している図44参照。したがって、無判定コードテーブル4500において空欄となる現在メロディ音CMと先行コード名PreCHからなる値の組については、現在コード名CurCHが無判定コードとなることが無いため、値が格納されていない。したがって無判定コードテーブル4500では、現在メロディ機能CMFが、アザートーンOTである場合について、ディミニシュdim或いはオーギュメントaugの何れかを指定する情報が格納されている。CPU21は、無判定コードテーブル4500から、現在メロディ音CMと先行コード名PreCHからなる値の組に対応付けられた、ディミニシュdim或いはオーギュメントaugの何れかを指定する情報を取得して、現在メロディ音CMを根音とするコード名を得る。例えば、現在メロディ音がC、先行コード名がIMajであれば、コード名は、Idimとなる符号4511参照。また、現在メロディ音がA♭、先行コード名がIM7であれば、コード名は、VI♭augとなる。CPU21は、このようにして、現在メロディ音CMを根音とするディミニッシュdim或いはオーギュメントaugのコード名を、現在コード名CurCHとして決定し、RAM23に格納する。上述したように、本実施の形態においては、まず、現在の拍の拍頭の押鍵に関する現在メロディ音CMと、前拍の拍頭の押鍵に関する先行メロディ音PMとが、何拍目かを示す情報、先行コード名PreCHや、押鍵タミングなどにしたがって修正される図8のステップS801~808。その上で、現在メロディ音CM、先行メロディ音PMおよび先行コード名PreCHに基づいて、現在コード名CurCHが決定されるステップS809。図25~図40を参照して、ポリの場合のコード付けについて説明する。図25は、本実施の形態にかかるコード名判定処理ポリの例を示すフローチャートである。概略的には、現在発音されている複数の楽音を、現在音高CurrentMusicalSoundNotesCM、それより1つ前に発音されている一以上のメロディ音を、先行音高PreviousMusicalSoundNotesPM、現在より一つ前に演奏されていたコード名を、先行コード名PreviousCHordnamePreCHとして、現在音高CM、先行音高PMおよび先行コード名PreCHに基づいて、新たに発音すべき現在コード名CurrentCHordnameCurCHを決定している。なお、本実施の形態においては、モノの場合と同様に、楽曲の調性をハ長調CMaj或いはイ短調Aminとして、コード名については、IMaj、IImなど、主音に対する度数で表し、そのデータをRAM23などに記憶している。他の調性の場合には、当該調性のルート音と、C或いはAの音との音高差に基づいて、ルート音を伴うコード名を得ることが可能である。まず、CPU21は、拍頭の時点で前拍から延びた音ペダル音の場合に発音している全ての音を読み込むステップS2501。ピアノ曲ではペダルオンで延びている音も忘れず判断材料にしないといけないからである。次に、CPU21は、ポリ状態を検出するステップS2502。具体的には、ステップS2501で読み込んだ音の数を変数Polyに格納する。変数Polyに格納された数によって、コード判定に使用されるテーブル図46~48参照が決定される。次に、CPU21は、Poly≧5であるか判断する。この判断がYESの場合、処理をステップS2504に移し、NOの場合、処理をステップS2505に移す。ステップS2504では、CPU21は、5音以上処理を行う。図26は、本実施形態にかかる5音以上処理の例を示すフローチャートである。5音以上処理は、5音以上の音が読み込まれたときに、4音以内にまとめる方法を示した処理である。CPU21は、ステップS2501で、同一音名は1個のみ残すようにする。例えばドソドミシという5音があるとき、同一音名ドが二つあるので、これを1個にすれば、ドミソシという4音になる。ピアノ曲では左手と右手で同じ音を弾くことが多いので、これでコード判断用のポリ数を減らすことができる。同一音名を減らすときには、高い音のほうを削除する。ステップS2602において、CPU21は、同一音名を一つにしたあとでもまだ5音以上であるか判断する。5音以下なら、ステップS2603に処理を移し、4音かどうか判断して、そうであればステップS2607で4音であると決定する。4音でない場合には、ステップS2604に処理を移し、3音であるかどうかを判断して、そうであればステップS2608で3音であると決定する。3音でもない場合には、ステップS2605に処理を移して、2音であるかを判断し、そうであればステップS2609に進んで2音であると決定され、2音でもない場合には音種としてはひとつしかないということになるので、ステップS2510に処理を写し、モノであると決定される。音数が決定したら、CPU21は、5音以上処理を終了する。ここで、ステップS2602で、まだ5音以上であると判断された場合には、CPU21は、処理をステップS2606に移し、Duration発音時間の長さの長い順に上位4音をD-Boxに格納し、ステップS2611で、Velocity発音の強さの大きい順に上位4音をV-Boxに格納する。CPU21は、ステップS2612でD-BoxとV-Boxの上位4種が、順番にかかわらず種類が同じであるかを判断して、同じであれば、ステップS2613に処理を移し、D-BoxとV-Boxの上位4種で4音を決定する。ステップS2612で、種類が同じでないと判断された場合には、まだ4音以内に決定されないので、CPU21は、ステップS2614で、入力された音をステップS2601において同一音名で抜けた音を除いて、低い方から順に並べる。例えばドソミシレなどのように並べる。ステップS2615で、CPU21は、下4音のそれぞれが短三度以上の間隔かを判断し、そうであればステップS2616で下4音であるドソミシを4音として決定する。ステップS2615で、下4音が短三度以上開いていないと判断された場合には、CPU21は、ステップS2617で下3音が短三度以上開いているかを判断する。そうであれば、ステップS2618で下3音を決定する。例えばドソミファレであれば、下三音のドソミに決まることになる。ステップS2617で、下3音が短三度以上開いていない場合、例えばドレミファソのような場合には、CPU21は、ステップS2619で前のコードとの共通音が3個以上あるか判断し、例えば前のコードPreCHがドミソCMajであれば、この共通する3音があるので、共通音が3個以上あると判断して、処理をステップS2620に移し、共通の3音であるドミソに決定する。ステップS2619で、前のコードとの共通音が3個以上あると判断されない場合には、CPU21は、処理をステップS2621に移し、下から短三度以上の間隔がある音3音に決定する。例えば、前のコードPreCHがラドミAminで、処理対象の音がドレミファソの5音であるときには、CPU21は、下から短三度以上の間隔がある音3音であるドミソと決定し、5音以上処理を終了する。ほとんどの場合、5音以上音があるときに、ステップS2612の判断で決定することが多いが、万一決定されなかった場合には、伴奏として下の音を基本とするのがふさわしいという考えでこのようなステップS2614~2621の処理を実行している。最近の音楽では、メロディが必ずしもコードに含まれないことも多く、その場合には伴奏としては低音を基本に考えるのがよいと考えられるからである。図25に戻って、ステップS2505では、CPU21は、Poly遷移による拍点ポイントジャッジ振り分け処理を行う。図27は、本実施形態にかかるPoly遷移による拍点ポイントジャッジ振り分け処理の例を示すフローチャートである。ここで、図27に示す、PM=Poly4は、先行音高PMの音数が4であるか否かを意味し、CM=Poly4は、現在音高CMの音数が4であるか否かを意味する。その他PM=Poly3、CM=Poly3なども同様である。モノ用の拍点ポイントジャッジは、図8ステップS803~808にあるとおりであるが、ポリ用の拍点ポイントジャッジは、図27に示した通りの種類がある。既に、5音以上処理図26により、5音以上を4音以内にまとめているので、振り分ける種類としては、先行音高PM→現在音高CMとすると、4音→4音、4音→3音、4音→2音、4音→1音、3音→4音、3音→3音、3音→2音、3音→1音、2音→4音、2音→3音、2音→2音、2音→1音、1音→4音、1音→3音、1音→2音、1音→1音がある。4音→1音、3音→1音、2音→1音、1音→1音については、現在音高CMが1音であるので、モノ用の拍点ポイントジャッジ図8ステップS803~808を行う。ポリ用の拍点ポイントジャッジにおいてCMが1音になる場合というのは、上述した5音以上処理図26参照において、同一音名の音が5音以上入力された場合、例えばソソソソソソなどの場合が該当する。図27を参照して、Poly遷移による拍点ポイントジャッジ振り分け処理を説明する。CPU21は、PMが4音であるか否かを判断するステップS2701。PMが4音である場合、CMが4音であるか否かを判断するステップS2702。CMが4音である場合、拍点ポイントジャッジ4-4処理図28参照を実行するステップS2703。CMが4音でない場合、CMが3音であるか否かを判断するステップS2704。CMが3音である場合、拍点ポイントジャッジ4-3処理図36参照を実行するステップS2705。CMが3音でない場合、CMが2音であるか否かを判断するステップS2706。CMが2音である場合、拍点ポイントジャッジ4-2処理図37参照を実行するステップS2707。CMが2音でない場合、拍点ポイントジャッジ4-1処理を実行するステップS2707。ステップS2701でPMが4音でないと判断された場合、CPU21は、PMが3音であるか否かを判断するステップS2709。PMが3音である場合、CMが4音であるか否かを判断するステップS2710。CMが4音である場合、拍点ポイントジャッジ3-4処理を実行するステップS2711。CMが4音でない場合、CMが3音であるか否かを判断するステップS2712。CMが3音である場合、拍点ポイントジャッジ3-3処理を実行するステップS2713。CMが3音でない場合、CMが2音であるか否かを判断するステップS2714。CMが2音である場合、拍点ポイントジャッジ3-2処理を実行するステップS2715。CMが2音でない場合、拍点ポイントジャッジ3-1処理を実行するステップS2716。ステップS2709でPMが3音でないと判断された場合、CPU21は、PMが2音であるか否かを判断するステップS2717。PMが2音である場合、CMが4音であるか否かを判断するステップS2718。CMが4音である場合、拍点ポイントジャッジ2-4処理を実行するステップS2719。CMが4音でない場合、CMが3音であるか否かを判断するステップS2720。CMが3音である場合、拍点ポイントジャッジ2-3処理を実行するステップS2721。CMが3音でない場合、CMが2音であるか否かを判断するステップS2722。CMが2音である場合、拍点ポイントジャッジ2-2処理を実行するステップS2723。CMが2音でない場合、拍点ポイントジャッジ2-1処理を実行するステップS2724。ステップS2717でPMが2音でないと判断された場合PMはモノとなる、CPU21は、CMが4音であるか否かを判断するステップS2725。CMが4音である場合、拍点ポイントジャッジ1-4処理を実行するステップS2726。CMが4音でない場合、CMが3音であるか否かを判断するステップS2727。CMが3音である場合、拍点ポイントジャッジ1-3処理を実行するステップS2728。CMが3音でない場合、CMが2音であるか否かを判断するステップS2729。CMが2音である場合、拍点ポイントジャッジ1-2処理を実行するステップS2730。CMが2音でない場合、拍点ポイントジャッジ1-1処理を実行するステップS2731。図28を参照して、拍点ポイントジャッジ4-4処理について説明する。CPU21は、押鍵された鍵の時間的位置、つまり、鍵が何拍目に押鍵されたかを判断するステップS2801、2807、2813。本実施の形態においては、楽曲は4分の4拍子であり、1小節が4拍で構成される。押鍵がn拍目であることは、押鍵のタイミングが、第n拍の先頭以降で、第n1拍の先頭よりも時間的に早いことを意味している。楽曲の構成要素には拍子および拍という概念がある。また、拍子においては拍ごとに重みがあり、上記拍の重みを考慮して音高は進行する。また、シンコペーションなど、場合によって拍の重みが移動する場合もある。ステップS2801で、1拍目と判断されれば、CPU21は、曲頭処理図29参照ステップS2802、コード保持ベース処理図30参照ステップS2803、アルペジオ処理図31参照ステップS2804、シンコペーション処理図32参照ステップS2805、ドミナントモーション処理図33参照ステップS2806、を行い、4音フラグをONにするステップS2819。ステップS2807で、2拍目または4拍目と判断されれば、CPU21は、ランニングベース処理図34参照ステップS2808、コード保持弱拍処理図35参照ステップS2809、アルペジオ処理図31参照ステップS2810、シンコペーション処理図32参照ステップS2811、ドミナントモーション処理図33参照ステップS2812、を行い、4音フラグをONにするステップS2819。ステップS2813で、3拍目と判断されれば、CPU21は、オルタネイトベース処理図34参照ステップS2814、コード保持ベース処理図30参照ステップS2815、アルペジオ処理図31参照ステップS2816、シンコペーション処理図32参照ステップS2817、ドミナントモーション処理図33参照ステップS2818、を行い、4音フラグをONにするステップS2819。このように、現拍が何拍目かに応じて処理するアルゴリズムを変更している。すなわち、アルゴリズムを部品化して、それぞれの拍で必要なものを必要な順番に並べるようにした。このようにすると、不足しているアルゴリズムがあればすぐに追加でき、また、不要なアルゴリズムはすぐに外せる。またアルゴリズムの順番に問題があるときには、すぐに修正することが可能なので、デバックしやすい。図29を参照して、曲頭処理について説明する。ステップS2901で、CPU21は、曲開始音かどうか判断する。曲開始音である判断されないと、CPU21は、ステップS2902で直前の8拍に押鍵がないかどうかを判断する。曲開始音である、または直前の8拍に押鍵がないと判断されると、CPU21は、ステップS2903で、現拍の区間内で発音されている音高でコード判定を行い、コード確定フラグをオンする。これは、曲開始音である、または直前の8拍に押鍵がないということは、それ以前にコードが存在しない、存在していたとしても今回のコード判定に影響しない、という理由による。逆に曲開始音でもなく、直前の8拍に押鍵がある場合には、直前に判定されたコードが影響するため、CPU21は、ステップS2904において、図46に示す4音および3音コード用AvailableChordTable無判定コードテーブル以下、4音および3音用テーブルという、言い換えれば前機能なしのテーブル参照フラグをONにする。この曲頭処理は、4音ポリ及び3音ポリの場合に適用可能であるが、2音ポリ以下の場合は処理が異なる。2音ポリ以下の場合、ステップS2903においては、基本的に現拍の区間内で発音されている音高のみに基づいてコード判定の処理を行い、ステップS2904においては、図42~図45のいずれかに示すコードテーブル、言い換えれば前機能ありのテーブル参照フラグをオンにする。図30を参照して、コード保持ベース処理について説明する。このコード保持ベース処理は、ベース区間がコード区間であることが多いため、ベースが延びている間は所定の条件の下で前のコードと同一であるとする処理である。ステップS3001で、CPU21は、ベースが現拍頭より前から延びているか否かを判断する。ベースが現拍頭より前から延びていない場合には、CPU21は、コード保持ベース処理を終了する。ベースが現拍頭より前から延びている場合には、直前のベース音と同じ音か否かを判断するステップS3002。直前のベース音と同じ音ではない場合には、SYNシンコペーションフラグをONにしステップS3003、コード保持ベース処理を終了する。ステップS3001でYes、ステップS3002でNoの場合は直前拍のあとでベースが変わり現拍でも延びているということであるので、シンコペーションであるということがわかる。ステップS3002で直前拍のベースと同じであると判断されると、ステップS3004に進み、現在音高CMが直前拍同じであるかどうかを判断する。同じであると判断されると、CPU21は、ステップS3005で、CurrentChordCurCH=PreviousChordPreCHとし、コード確定フラグをONにし、CurCHをRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納して、コード保持ベース処理を終了する。ステップS3004で、直前拍と同じでないと判断されると、CPU21は、ステップS3006で、前機能ありテーブル参照フラグをONにし、コード保持ベース処理を終了する。図31を参照して、アルペジオ処理について説明する。CPU21は、ステップS3101で、前拍拍頭以降に入力音があるかどうかを判断する。前拍拍頭以降に入力音があると判断されなければ、アルペジオ処理を終了する。前拍拍頭以降に入力音があると判断されれば、CPU21は、ステップS3102で、PreviousChordPreCHに含まれる音であるかどうかを判断する。PreviousChordPreCHに含まれる音であると判断されると、CPU21は、ARPフラグをONにしステップS3103、アルペジオ処理を終了する。ステップS3102で、PreviousChordPreCHに含まれる音であると判断されると、CPU21は、ステップS3104で、前機能ありテーブル参照フラグをONにし、アルペジオ処理を終了する。図32を参照して、シンコペーション処理について説明する。CPU21は、ステップS3201で、SYNシンコペーションフラグがONであるかどうかを判断する。図30ステップS3003において、コード保持ベース処理で見つかったベースのシンコペーションフラグがONであるか否かを判断するのが、ステップS3201であり、ベース以外のシンコペーションがあるか否かを判断するのが、ステップS3202である。ステップS3201でSYNシンコペーションフラグがONである場合、CPU21は、ステップS3207へ処理を移す。ステップS3201でSYNシンコペーションフラグがONでない場合、CPU21は、ステップS3202へ処理を移し、ベース以外のシンコペーションがあるか否かを判断する。ベース以外のシンコペーションがあると判断されれば、CPU21は、ステップS3203へ処理を移し、SYNシンコペーションフラグをONにし、ステップS3207へ処理を移す。ステップS3207では、延びている音を優先として、ステップS3206へ処理を移す。これは、コードが判定できないときなどに、押鍵している音を無判定コードとして出す場合があるが、その際に優先される音として用いる。ステップS3202で、ベース以外のシンコペーションがあると判断されなければ、CPU21は、ステップS3204で、現在音高CMが直前拍と同じであるかどうかを判断する。同じであると判断されると、CPU21は、CurrentChordCurCH=PreviousChordPreCHとし、コード確定フラグをONにし、CurCHをRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納して、シンコペーション処理を終了する。ステップS3204で、直前拍と同じでないと判断されると、CPU21は、ステップS3206で、前機能ありテーブル参照フラグをONにし、シンコペーション処理を終了する。図33を参照して、ドミナントモーション処理について説明する。CPU21は、ステップS3301で、RAM23に格納されたPreviousChordPreCHが、メジャー系のドミナントコードのいずれかに対応するかを判断する。ここで、本実施の形態では、メジャー系のドミナントコードは、VMaj、V7およびVIIm7-5としている。ステップS3301でYesと判断された場合には、CPU21は、現在音高CMがIMajであるかを判断するステップS3302。ステップS3302では、先行コードPreCHから現在音高CMへの動きが、長調の和音進行でドミナントからトニックに解決するときの動きであるか否かを判断している。ステップS3302でYesと判断された場合には、CPU21は、現在コード名CurCHをIMajに決定し、その情報および発音時刻をRAM23に格納し、コード確定フラグをONにするステップS3306。その後、CPU21は、ドミナントモーション処理を終了する。ステップS3301でNoと判断された場合には、CPU21は、先行コード名PreCHが、マイナー系のドミナントコードの何れかに対応するかを判断するステップS3302。ここで、本実施の形態において、例えば、マイナー系のドミナントコードは、IIIMajおよびIII7としている。ステップS3302でYesと判断された場合には、CPU21は、現在音高CMがVIMinであるかを判断するステップS3304。ステップS3304においては、先行コードPreCHから現在音高CMへの動きが、短調の和音進行でドミナントからトニックに解決するときの動きであるか否かを判断している。ステップS3304でYesと判断された場合には、CPU21は、現在コード名CurCHをVIminに決定し、その情報および発音時刻をRAM23に格納し、コード確定フラグをONにするステップS3306。その後、CPU21は、ドミナントモーション処理を終了する。ステップS3303またはステップS3304でNOと判断された場合、CPU21は、前機能ありテーブル参照フラグをONにするステップS3305。その後、CPU21は、ドミナントモーション処理を終了する。図34を参照して、ランニングベース/オルターネートベース処理について説明する。ステップS3401で、CPU21は、ベース最低音以外が前拍同様かどうかを判断する。YESと判断されれば、CPU21は、処理をステップS3402に移し、NOと判断されれば、CPU21は、ランニングベース/オルターネートベース処理を終了する。CPU21は、ステップS3402で、ベースがコード構成音CTまたはスケールノートSNであるかどうかを判断する。YESと判断されれば、CPU21は、処理をステップS3403に移し、NOと判断されれば、CPU21は、ランニングベース/オルターネートベース処理を終了する。CPU21は、ステップS3403で、ベースがPreviousChordPreCHの第5音にあたるかどうかを判断する。YESと判断されれば、CPU21は、処理をステップS3405に移し、NOと判断されれば、CPU21は、処理をステップS3404に移す。CPU21は、ステップS3405でAltBオルターネートベースフラグをONとし、オルターネートベースだと判断し、処理をステップS3406に移す。CPU21は、ステップS3404でRunBランニングベースフラグをONとし、ランニングベースであると判断し、処理をステップS3406に移す。ランニングベースもオルターネートベースも、ベース音だけの動きでありコード自体は変わらないので、ステップS3406にてCurrentChordCurCH=PreviousChordPreCHとして、コード確定フラグをONし、CurCHをRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納する。図35を参照して、コード保持弱拍処理について説明する。コード保持弱拍処理は、モノ処理と同様に、弱拍時かつ最高音が跳躍しないことを条件に、コード保持をする処理である。CPU21は、ステップS3501で最高音が前拍と異なるかを判断する。YESと判断されれば、ステップS3502に処理と移し、NOと判断されれば、CPU21は、コード保持弱拍処理を終了する。CPU21は、ステップS3502で、メロディ音高のうちの再高音が、先行コード名PreCHのコード構成音CTまたはスケールノートSNであり、かつ順次進行前拍最高音と現拍最高音との差が2半音以内であるする音であるかを判断する。YESと判断されれば、CPU21は、処理をステップS3504に写し、NOと判断されれば、CPU21は、処理をステップS3503に移す。CPU21は、ステップS3503で、ランニングベースもしくはオルターネートベースであるかを判断する。YESと判断されれば処理をステップS3504に移し、NOと判断されれば、CPU21は、コード保持弱拍処理を終了する。CPU21は、ステップS3504では、CurrentChordCurCHをPreviousChordPreCHと同一にして、コード確定フラグをONにすし、CurCHをRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納する。その後、CPU21は、コード保持弱拍処理を終了する。図36を参照して、拍点ポイントジャッジ4-3処理について説明する。拍点ポイントジャッジ4-3処理は、ステップS3619で、3音フラグをONにする以外の処理は、拍点ポイントジャッジ4-4処理と同様である。図37を参照して、拍点ポイントジャッジ4-2処理について説明する。拍点ポイントジャッジ4-2処理は、ステップS3719で、2音フラグをONにする以外の処理は、拍点ポイントジャッジ4-4処理と同様である。図27を参照して、拍点ポイントジャッジ3-4処理ステップS2711、拍点ポイントジャッジ2-4処理ステップS2719、拍点ポイントジャッジ1-4処理ステップS2726は、上述した拍点ポイントジャッジ4-4処理図28参照と同様である。また、拍点ポイントジャッジ3-3処理ステップS2713、拍点ポイントジャッジ2-3処理ステップS2721、拍点ポイントジャッジ1-3処理ステップS2728は、上述した拍点ポイントジャッジ4-3処理図36参照と同様である。また、拍点ポイントジャッジ3-2処理ステップS2715、拍点ポイントジャッジ2-2処理ステップS2723、拍点ポイントジャッジ1-2処理ステップS2730は、上述した拍点ポイントジャッジ4-2処理図37参照と同様である。なお、CPU21は、拍点ポイントジャッジ4-1処理ステップS2708、拍点ポイントジャッジ3-1処理ステップS2716、拍点ポイントジャッジ2-1処理ステップS2724、モノの拍点ポイントジャッジ処理ステップS2731を実行する場合には、処理を図8ステップS803に移し、モノ用の拍点ポイントジャッジを行う。図25に戻って、ステップS2506では、CPU21は、コード確定フラグがONであるか否かを判断する。この判断がYESならば、CPU21は、コード名判定処理ポリを終了する。NOならば、CPU21は、コード決定処理図38参照を行い、コード名判定処理ポリを終了する。図38を参照して、コード決定処理について説明する。CPU21は、3音フラグまたは4音フラグはONであるか否かを判断するステップS3801。この判断がYESの場合、CPU21は、処理をステップS3802に移し、4音/3音Polyテーブル参照処理を行い、コード決定処理を終了する。ステップS3801での判断がNOの場合には、処理をステップS3803に移し、2音Polyテーブル参照処理を行い、コード決定処理を終了する。図39を参照して、4音/3音Polyテーブル参照処理について説明する。CPU21は、ステップS3901で現在音高CMが4音であるかどうかを判断し、4音であればステップS3902へ、4音でない場合には3音なのでステップS3903に処理を移す。ステップS3902とステップS3903では、Poly状態CMが4音であるか3音であるかに応じて図46に示す4音および3音用テーブルの該当部分を参照する。例えば、現在音高CMが4音であって、その構成音が、C、E、G、Bの場合、図46の4音および3音用テーブルの3音or4音欄から4であるコードを検索し、コード構成音CTがC、E、G、Bであるコードは、4音および3音用テーブルより、IM7であると決定され、コードの機能はトニックと決定される。同様に、現在音高CMが3音であって、その構成音が、E、G♯A♭、Bの場合、図46の4音および3音用テーブルの3音or4音欄から3であるコードを検索し、コード構成音CTがE、G♯A♭、Bであるコードは、4音および3音用テーブルより、IIIMajであると決定され、コードの機能はドミナントと決定される。ステップS3904では、CPU21は、ステップS3902または3903でマッチしたかコードが決定されたか否かを判断し、マッチした場合、処理をステップS3905に移し、決定したコード名をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納して、4音/3音Polyテーブル参照処理を終了する。マッチしない場合、処理をステップS3906に移す。ステップS3906では、CPU21は、他の調でコードジャッジが成立するか否かを判断する。具体的には、調性外コードジャッジテーブル図示せずを参照し、ハ長調またはイ短調以外の調で、コードジャッジが成立するか否かを判断する。この判断がYESの場合、CPU21は、ステップS3907に処理を移し、成立したコード名をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納して、Modulation転調フラグをインクリメントし、4音/3音Polyテーブル参照処理を終了する。Modulation転調フラグをインクリメントしたのは、ステップS3904で最初にマッチしなかったため、調性が異なる可能性があるからである。この調性が異なる和音が、経過的な偶成和音であるのか、転調した結果の和音であるのかの区別がつかないので、Modulation転調フラグなどによって判断するようにしている。ステップS3906での判断がNOの場合、CPU21は、ステップS3908において、無判定コードとして現在音高CMをRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納して、4音/3音Polyテーブル参照処理を終了する。ステップS3908では、具体的には、押鍵された音でとりあえず伴奏パターンの音に割り振って発音するが、このとき、シンコペーション処理図32参照のステップS3207で処理した、シンコペーションで延びている音を優先して発音する。図40を参照して、2音Polyテーブル参照処理について説明する。CPU21は、ステップS4001で、コード判定のために必要な情報を読み込む。例えば、直前のコード機能を読み込み、現在音高CMの2音のうちの低い音をベース音と決定し、直前拍の最高音PMAXと現在拍の最高音CMAXを決定する。ステップS4002では、CPU21は、図47に示す2音コード用AvailableChordTable無判定コードテーブル以下、2音用テーブルとするの該当部分を参照する。2音用テーブルでは、現在音高CMの2音を、ベース音と現在拍の最高音CMAXとに分類し、ベース音、直前拍の最高音PMAXと現在拍の最高音CMAXとのシーケンス、および、直前のコードの機能によって、コードを決定できるようにしている。例えば、ベース音がC、PMAXがC、CMAXがD、直前のコード機能がサブドミナントSUの場合、IIm7と決定される。ステップS4003で、CPU21は、ステップS4002においてマッチしたかどうかを判断して、マッチしたと判断されれば、ステップS4004に処理を移し、決定したコード名をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納して、2音Polyテーブル参照処理を終了する。マッチしたと判断されない場合には、CPU21は、ステップS4005に処理を移し、直前のコードPreCHに対して現在音高CMの2音のいずれかがOtherToneOTである場合には、ステップS4006に処理を移し、Modulation転調フラグをインクリメントし、現在音高CMの2音をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納して、2音Polyテーブル参照処理を終了する。ステップS4005でOTでない場合には、CPU21は、処理をステップS4007に移し、転調しない無判定コードとして現在音高CMの2音をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納して、2音Polyテーブル参照処理を終了する。コード名判定処理図3のステップS304が終了すると、CPU21は、自動伴奏処理を実行するステップS305。図48は、本実施の形態にかかる自動伴奏処理の例を示すフローチャートである。まず、CPU21は、電子楽器10が自動伴奏モードの下で動作しているかを判断するステップS4801。ステップS4801でYesと判断された場合には、CPU21のタイマ図示せずを参照して、現在時刻が、自動伴奏データ中、メロディ音のデータについてのイベントの実行タイミングに達しているかを判断するステップS4802。本実施形態においては、自動伴奏データには、3つの種類の楽音、すなわち、メロディ音オブリガート音を含む、コード音、リズム音のデータが含まれる。メロディ音のデータおよびコード音のデータは、発音すべき楽音ごとに、その音高、発音タイミングおよび発音時間を含む。また、リズム音のデータは、発音すべき楽音リズム音ごとに、その発音タイミングを含む。ステップS4802でYesと判断された場合には、CPU21は、メロディ発音消音処理を実行するステップS4803。メロディ発音消音処理においては、処理にかかるイベントがノートオンイベントであるかを判断する。ノートオンイベントであることは、現在時刻が、上記メロディ音のデータにおける所定の楽音の発音タイミングとほぼ一致することで判断できる。その一方、ノートオフイベントであることは、現在時刻が、当該楽音の発音タイミングに発音時間を加えた時刻とほぼ一致することで判断できる。処理にかかるイベントがノートオフイベントである場合には、CPU21は、消音処理を実行する。その一方、処理にかかるイベントがノートオンイベントであれば、メロディ音のデータにしたがった発音処理を実行する。次いで、CPU21は、CPU21のタイマ図示せずを参照して、現在時刻が、自動伴奏データ中、コード音のデータについてのイベントの実行タイミングに達しているかを判断するステップS4804。ステップS4804においてYesと判断された場合には、CPU21は、コード発音消音処理を実行するステップS4805。コード音発音消音処理においては、発音タイミングに達したコード音について発音処理を実行し、その一方、消音タイミングに達したコード音については消音処理を実行する。その後CPU21は、現在時刻が、自動伴奏データ中、リズムのデータについてのイベントの実行タイミングに達しているかを判断するステップS4806。ステップS4806においてYesと判断された場合には、CPU21は、リズム音発音処理を実行するステップS4807。リズム音発音処理においては、発音タイミングに達したリズム音についてノートオンイベントを生成する。自動伴奏処理図3のステップS305が終了すると、CPU21は、音源発音処理を実行するステップS306。音源発音処理において、CPU21は、生成されたノートオンイベントに基づいて、発音すべき楽音の音色および音高を示すデータを音源部26に与え、或いは、消音すべき楽音の音色および音高を示すデータを音源部26に与える。音源部26は、音色、音高、音長等を示すデータにしたがって、ROM22の波形データを読み出して、所定の楽音データを生成する。これにより、スピーカ28から所定の楽音が発生する。また、CPU21は、ノートオフイベントに基づいて、音源26にノートオフイベントが示す音高の消音を指示する。音源発音処理ステップS306が終了すると、CPU21は、その他の処理例えば、表示部15への画像表示、LED図示せずの点灯、消灯など:ステップS307を実行して、ステップS302に戻る。本実施の形態においては、入力可能な楽音数毎に設けられ、入力される音高に基づいたコードデータを出力する、複数のコード判定テーブル4音および3音用テーブル、および、2音用テーブルを備えており、コード名判定処理ポリ図5のステップS508において、CPU21は、鍵盤11の一連の操作に基づき、実行中の自動伴奏データの進行を規定する時間情報、特に拍の情報に基づいて、現在の拍の拍頭において同時操作された鍵盤11に対応する現在音高CM及びその数と、1つ前の拍である直前拍の拍頭において同時操作された鍵盤11に対応する先行音高PM及びその数と、を抽出する。また、CPU21は、抽出された現在音高CM及び先行音高PM、当該先行音高PMの数から現在音高CMの数への変移、及び前記現在の拍が小節において何番目の拍であるかに基づいて、コード判定テーブルに入力すべき音高情報及びその数を確定するとともに、当該数に対応するコード判定テーブルを選択し、選択されたコード判定テーブルから確定された音高情報に基づくコードデータを出力させる。したがって、音高群の現在の拍およびその遷移に基づいて、適切にコード名を決定することができる。また、本実施の形態においては、CPU21は、自動伴奏データのテンポに応じて、同時ポリ操作された鍵盤11の検出周期を可変する。したがって、テンポが速い例えば一分間に80拍以上場合には、32分音符以下の音符が複数あることでポリと判定し、テンポが遅い例えば一分間に80拍以下場合には、64分音符以下の音符が複数あることでポリと判定することができるので、自動伴奏データのテンポが変わっても、モノかポリの判定を適切に行うことができる。また、本実施の形態においては、CPU21は、ステップS2602で抽出された楽音数が所定数5以上でかつ、当該音高の中で同一音名の楽音がある場合、高いほうの楽音を削除する。したがって、コードの決定に寄与する度合いの高い低音高を残すことができるので、適切にコードを決定できる。また、本実施の形態においては、CPU21は、ステップS2602で抽出された楽音数が所定数5以上でかつ、操作のベロシテイの大きい鍵盤11に対応する楽音4個と操作時間の長い鍵盤11に対応する楽音4個とが同一の場合は、当該4個の楽音を抽出された音高とする。したがって、コードの決定に寄与する度合いの高い音高でコードを決定することができる。また、本実施の形態においては、CPU21は、ステップS2602で抽出された楽音数が所定数5以上でかつ、低い順から4個の楽音それぞれが短三度以上の音程を有している場合は、当該4個の楽音を抽出された音高とする。したがって、コードの決定に寄与する度合いの高い低音音高でコードを決定することができる。また、本実施の形態においては、CPU21は、ステップS2602で抽出された楽音数が所定数5以上でかつ、低い順から3個の楽音それぞれが短三度以上の音程を有している場合は、当該3個の楽音を抽出された音高とする。したがって、低い順から3個目と4個目との音程が短三度未満である場合であっても、コードの決定に寄与する度合いの高い低音音高でコードを決定することができる。また、本実施の形態においては、CPU21は、ステップS2602で抽出された楽音数が所定数5以上でかつ、当該楽音の中で前拍でのコードの構成音と3個以上共通する楽音が存在する場合は、当該3個の楽音を抽出された音高とする。したがって、低い順から3個の楽音それぞれが短三度以上の音程を有していない場合であっても、より適切な音高でコードを決定することができる。また、本実施の形態においては、CPU21は、ステップS2602で抽出された楽音数が所定数5以上の場合、低い順から短三度以上の音程を有している3個の楽音を抽出された楽音とする。したがって、コードの決定に寄与する度合いの高い低音音高に基づいて、コードを決定することができる。また、本実施の形態においては、CPU21は、拍点ポイントジャッジ4-4処理などにおいて、現在の拍が1拍もしくは3拍目でかつ、自動伴奏データにより生成されたベース音の発音が現拍より前から維持され、さらに直前の拍のベース音と同一である場合、直前拍及び現拍において抽出された音高の種類が同一か否か判定し、同一と判定された場合は直前拍で確定したコードを現拍のコードとする。したがって、弱拍でのベース音が同一音で強拍まで延びた場合に、ベース以外の音群も現拍と前拍とで同一であれば、前拍のコードを変化させないで維持することができる。また、本実施の形態においては、CPU21は、拍点ポイントジャッジ4-4処理などにおいて、現在の拍が2拍もしくは4拍目でかつ、当該拍で抽出された音高の中の最高音が直前拍の最高音と異なり、さらに当該現在の拍の最高音が、直前拍で確定したコードのコード音高あるいはスケール音高でかつ直前拍の最高音との差が長2度以内の場合は、直前拍で確定したコードを現拍のコードとする。したがって、弱拍で順次進行をした場合に、直前拍で確定したコードを維持することができるので、適切にコードを決定できる。さらに、本実施の形態においては、コード名判定処理モノ図5のステップS507において、CPU21は、鍵盤11の一連の操作において進行するメロディシーケンスにおいて、実行中の自動伴奏データの進行を規定する時間情報、特に拍の情報に基づいて、現在の拍の拍頭において押鍵された鍵に関連する現在メロディ音CMと、1つ前の拍である前拍の拍頭において押鍵された鍵に関する先行メロディ音PMとを決定する。また、CPU21は、決定された現在メロディ音情報と、先行メロディ音情報と、前拍におけるコード名である先行コード名PreCHとに基づき、現在コード名CurCHを決定するコード名決定処理図8のステップS809を実行する。また、メロディ音の決定に際して、CPU21は、現在の拍が、小節において何番目の拍であるかに基づいて、現在メロディ音CMおよび先行メロディ音PMを決定する。すなわち、本実施の形態によれば、押鍵された拍の位置時間的な位置を考慮して現在メロディ音CMおよび先行メロディ音PMが決定され、決定されたメロディ音のシーケンスと、先行コード名PreCHに基づいて現在コード名CurCHが決定される。また、本実施の形態においては、CPU21は、拍子が4拍子である場合に、現在の拍が、1拍目或いは3拍目であるか、或いは、他の拍であるかに基づいて、現在メロディ音情報および先行メロディ音情報を決定する。すなわち、強拍1拍目、3拍目と、弱拍2拍目、4拍目に基づいて、現在メロディ音CMおよび先行メロディ音PMを決定することで、拍の重みを考慮することが可能となる。また、本実施の形態において、CPU21は、前拍の先頭以降の押鍵が、現在の拍まで延びている場合に、シンコペーションであると判断し、現在メロディ音CMを、現在の拍まで延びている押鍵に関するものに決定する。すなわち、拍頭の押鍵でなくとも、シンコペーションを構成する場合には、これを拍頭の押鍵と同様に取り扱うことができる。また、CPU21は、第1のドミナントモーション判定処理図13において、先行コード名PreCHがドミナントコードを示し、かつ、先行メロディ音PMから現在メロディ音CMが、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、現在コード名CurCHとして、トニックに相当するコード名を与える。このように、メロディシーケンスからドミナントモーションが明確に示される場合には、現在コード名CurCHをトニックとして、コード進行における終止を形成させる。また、CPU21は、第2のドミナントモーション判定処理図20において、先行メロディ音PMから現在メロディ音CMが、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、現在コード名CurCHとして、トニックに相当するコード名を与える。ここでは、先行コード名PreCHがドミナントコードではない場合でも、メロディシーケンスからドミナントモーションが明確に示される場合には、現在コード名CurCHをトニックとして、コード進行における終止を形成させる。さらに、CPU21は、第1のドミナントモーション判定処理或いは第2のドミナントモーション判定処理により、現在コード名CurCHとしてトニックに相当するコード名が付与されなかった場合に、現在コード名CurCHとして、先行コード名PreCHを与える。これにより、コード保持を実現することができる。また、本実施の形態においては、現在メロディ音CMが1拍目の押鍵に関する場合に、先行メロディ音PM、現在メロディ音CMおよび先行コード名情報PreCHに対応付けられたコード名を格納した第1のコードテーブルと、現在メロディ音CMが、1拍目以外の押鍵に関する場合に、先行メロディ音PM、現在メロディ音CMおよび先行コード名PrCHに対応付けられたコード名を格納した第2のコードテーブルとを備え、CPU21は、押鍵タイミングにしたがって、第1のコードテーブル或いは第2のコードテーブルを参照する。これにより、拍にしたがって異なるコード名を取得することが可能となる。また、テーブルを参照することで、リアルタイムにコード名を決定することが可能となる。さらに、本実施の形態においては、決定された先行メロディ音PMおよび現在メロディ音CMに基づき、第1のコードテーブル或いは第2のコードテーブルにおいて、対応するコード名が存在しない場合に、現在コード名CurCHとしてオーギュメントaug或いはディミニッシュdimという無判定コードを付与する。これにより、先行メロディ音PMや現在メロディ音が、コード構成音或いはスケールノートでない場合であっても、楽曲においてそれほど違和感のない何らかのコード名を付与することが可能となる。さらに、本実施の形態においては、CPU21は、無判定コードテーブルを参照して、現在メロディ音CM、先行メロディ音PMおよび先行コード名PreCHから、オーギュメントaug或いはディミニッシュdimの何れのコードにすべきかを判断することが可能となる。本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。例えば、前記実施の形態においては、拍子を4拍子としているが、3拍子或いは6拍子でも本発明を適用可能である。例えば、3拍子の場合には、上記処理のうち、1拍目~3拍目についての処理を使用すれば良い。また、6拍子は、3拍子が2つあると考え、上記1拍目~3拍目の処理を使用する。また、4拍目~6拍目は、1拍目~3拍目と同様に扱って同一の処理を実行すれば良い。また、前記実施の形態では、ハ長調CMaj或いはイ短調Aminという調性において、主音根音に対する度数を用いたコード名が得られるがこれに限定されるものではなく、他の調性についても本発明を適用可能である。この場合には、例えば、楽曲が長調であれば、Cと、その楽曲の調性の根音との音高差が算出され、その音高差をオフセットとして、オフセット値をRAM23に格納すれば良い。処理においては、実際に押鍵された鍵番号により特定される音名をオフセットだけ減じることで、Cのスケールにて処理を実行することが可能となる。なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。また、本明細書において、システムの用語は、複数の装置や複数の手段などより構成される全体的な装置を意味するものとする。以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。[付記1]少なくとも、コード名、および、拍を含む時間情報に基づいたコード構成音の発音タイミング、を含む自動伴奏データを記憶する記憶手段と、演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段を制御する楽音データ制御手段と、前記演奏操作子の操作に基づいた、前記自動伴奏データによる楽音を生成するためのコードを判定するコード判定手段と、を備えた自動伴奏装置であって、前記コード判定手段が、入力可能な音高情報数毎に設けられ、入力される音高情報に基づいたコードデータを出力する、複数のコード判定テーブルと、前記演奏操作子の一連の操作に基づき、実行中の自動伴奏データの進行を規定する時間情報に基づいて、現在の拍の拍頭において同時操作された演奏操作子に対応する現在音高情報及びその数と、1つ前の拍である直前拍の拍頭において同時操作された演奏操作子に対応する先行音高情報及びその数と、を抽出する抽出手段と、前記抽出された現在音高情報及び先行音高情報、当該先行音高情報の数から現在音高情報の数への変移、及び前記現在の拍が小節において何番目の拍であるかに基づいて、前記コード判定テーブルに入力すべき音高情報及びその数を確定するとともに、当該数に対応する前記コード判定テーブルを選択する選択手段と、当該選択されたコード判定テーブルから前記確定された音高情報に基づくコードデータを出力させる出力手段と、を有する自動伴奏装置。[付記2]前記抽出手段は、前記自動伴奏データの進行の速度に応じて、同時操作された演奏操作子の検出周期を可変する付記1に記載の自動伴奏装置。[付記3]前記抽出手段は、抽出された音高情報数が所定数以上でかつ、当該音高情報の中で同一音名の音高情報がある場合、高いほうの音高情報を削除する付記1に記載の自動伴奏装置。[付記4]前記抽出手段は、抽出された音高情報数が所定数以上でかつ、操作のベロシテイの大きい演奏操作子に対応する音高情報4個と操作時間の長い前記演奏操作子に対応する音高情報4個とが同一の場合は、当該4個の音高情報を抽出された音高情報とする付記1に記載の自動伴奏装置。[付記5]前記抽出手段は、抽出された音高情報数が所定数以上でかつ、低い順から4個の音高情報それぞれが短三度以上の音程を有している場合は、当該4個の音高情報を抽出された音高情報とする付記1に記載の自動伴奏装置。[付記6]前記抽出手段は、抽出された音高情報数が所定数以上でかつ、低い順から3個の音高情報それぞれが短三度以上の音程を有している場合は、当該3個の音高情報を抽出された音高情報とする付記1に記載の自動伴奏装置。[付記7]前記抽出手段は、抽出された音高情報数が所定数以上でかつ、当該音高情報の中で前記直前拍でのコードの構成音の音高と3個以上共通する音高情報が存在する場合は、当該3個の音高情報を抽出された音高情報とする付記1に記載の自動伴奏装置。[付記8]前記抽出手段は、抽出された音高情報数が所定数以上の場合、低い順から短三度以上の音程を有している3個の音高情報を抽出された音高情報とする付記1に記載の自動伴奏装置。[付記9]前記選択手段は、現在の拍が1拍もしくは3拍目でかつ、前記自動伴奏データにより生成されたベース音の発音が現拍より前から維持され、さらに直前の拍のベース音と同一である場合、直前拍及び現拍において抽出された音高情報の種類が同一か否か判定し、同一と判定された場合は直前拍で確定したコードを現拍のコードとし、同一でないと判定された場合は前記抽出された音高情報及びその数を前記コード判定テーブルに入力すべき音高情報及びその数として確定する付記1に記載の自動伴奏装置。[付記10]前記選択手段は、現在の拍が2拍もしくは4拍目でかつ、当該拍で抽出された音高情報の中の最高音高情報が直前拍の最高音高情報と異なり、さらに当該現在の拍の最高音高情報が、直前拍で確定したコードのコード音高あるいはスケール音高でかつ直前拍の最高音高情報との差が長2度以内の場合は、直前拍で確定したコードを現拍のコードとする付記1に記載の自動伴奏装置。[付記11]少なくとも、コード名、および、拍を含む時間情報に基づいたコード構成音の発音タイミング、を含む自動伴奏データと、入力可能な音高情報数毎に設けられ、入力される音高情報に基づいたコードデータを出力する、複数のコード判定テーブルと、を記憶する記憶手段を備えたコンピュータに、演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段を制御する楽音データ制御ステップと、前記演奏操作子の操作に基づいた、前記自動伴奏データによる楽音を生成するためのコードを判定するコード判定ステップと、を実行させ、前記コード判定ステップが、前記演奏操作子の一連の操作に基づき、実行中の自動伴奏データの進行を規定する時間情報に基づいて、現在の拍の拍頭において同時操作された演奏操作子に対応する現在音高情報及びその数と、1つ前の拍である直前拍の拍頭において同時操作された演奏操作子に対応する先行音高情報及びその数と、を抽出する抽出ステップと、前記抽出された現在音高情報及び先行音高情報、当該先行音高情報の数から現在音高情報の数への変移、及び前記現在の拍が小節において何番目の拍であるかに基づいて、前記コード判定テーブルに入力すべき音高情報及びその数を確定するとともに、当該数に対応する前記コード判定テーブルを選択する選択ステップと、当該選択されたコード判定テーブルから前記確定された音高情報に基づくコードデータを出力させる出力ステップと、を有する自動伴奏プログラム。"