(57)【特許請求の範囲】
【請求項１】
全ての楽音がノートオフとなっている状態から、新たなノートオンが発生したタイミングで、予め記憶されているコードデータを順次読み出して出力するコードデータ出力装置において、
前記新たなノートオンのノートナンバーと、このノートオンの直前に発生したノートオフのノートナンバーとを比較する比較手段と、
この比較手段による比較の結果、前記両ノートナンバーが一致したならば、前記コードデータの読み出しを禁止する読出制御手段と、
を有することを特徴とするコードデータ出力装置。
【請求項２】
全ての楽音がノートオフとなっている状態から、新たなノートオンが発生したタイミングで、予め記憶されているコードデータを順次読み出して出力するコードデータ出力装置において、
前記全ての楽音がノートオフとなった時点から新たなノートオンが発生した時点までの時間を計測する計時手段と、
前記新たなノートオンのノートナンバーと、このノートオンの直前に発生したノートオフのノートナンバーとを比較する比較手段と、
この比較手段による比較の結果、前記両ノートナンバーが一致し、かつ、前記計時手段による計測時間が所定未満であるときは、前記コードデータの読み出しを禁止する読出制御手段と、
を有することを特徴とするコードデータ出力装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、所謂オートハーモナイズ機能を実現するコードデータ出力装置に関する。
【０００２】
【従来の技術】
従来、オートハーモナイズ機能を実現するコードデータ出力装置としては、例えば実開平３−５６９８６号公報に開示されたものが知られている。このコードデータ出力装置にあっては、図１２（Ａ）の譜例下段に示すように、Ｄｍ７，Ｇ７，ＣΔ７，ＦΔ７等の複数のコードデータがコード進行に従った順序で記憶されている。そして、このコードデータ出力装置を備えた電子楽器において、鍵盤上にて演奏操作を行うと、全ての鍵がオフとなっている状態から、新たなキーオンが発生したタイミングで、コードデータが順次読み出されて、このコードデータが示す和音の発生が指示される。したがって、前記譜例の上段に示すように、各小節の毎にレガート演奏すれば、各小節の１拍目で、全ての鍵がオフとなっている状態から新たなキーオンが発生することから、各小節の１拍目で和音が切り替わる適正な和音進行が達成される。よって、このように右手のみの押鍵によりメロディをレガート演奏すれば、左手で和音演奏を行わずとも、メロディと正しいコード進行に従った和音とで構成される楽曲の演奏が可能となる。
【０００３】
【発明が解決しようとする課題】
しかしながら、図１２（Ａ）の譜例上段に示すように、隣合う音符の音高が同一和音の間全て異なれば、当該和音内をレガート演奏することが可能であるが、同図（Ｂ）に示す譜例の上段第１小節目のように、同一音高Ｃ４が連続している場合、１拍目の音高Ｃ４をキーオンし、次に２拍目の音高Ｃ４をキーオンする直前に、一旦音高Ｃ４をキーオフしなければ、これら２つの楽音を区切ることができないため、このキーオフの際に全てのキーがオフとなっている状態が形成されてしまう。このため、第１小節目においては、１拍目の音高Ｃ４のタイミングでＤｍ７の和音が発生した後、２拍目の音高Ｃ４のタイミングで次の和音Ｇ７が発生してしまう。その結果、第２小節以降で発生させるべき和音が順次ずれて、メロディとコード進行とが不一致となり、メロディに合った和音からなる伴奏音を適正に発生させることができない。
【０００４】
本発明は、このような従来の課題に鑑みてなされたものであり、コードデータをコード進行に従って適正に出力することのできるコードデータ出力装置を提供することを目的とするものである。
【０００５】
【課題を解決するための手段】
課題を解決するために本発明にあっては、全ての楽音がノートオフとなっている状態から、新たなノートオンが発生したタイミングで、予め記憶されているコードデータを順次読み出して出力するコードデータ出力装置において、前記新たなノートオンのノートナンバーと、このノートオンの直前に発生したノートオフのノートナンバーとを比較する比較手段と、この比較手段による比較の結果、前記両ノートナンバーが一致したならば、前記コードデータの読み出しを禁止する読出制御手段とを有している。
【０００６】
また、本発明の他の態様にあっては、全ての楽音がノートオフとなっている状態から、新たなノートオンが発生したタイミングで、予め記憶されているコードデータを順次読み出して出力するコードデータ出力装置において、前記全ての楽音がノートオフとなった時点から新たなノートオンが発生した時点までの時間を計測する計時手段と、前記新たなノートオンのノートナンバーと、このノートオンの直前に発生したノートオフのノートナンバーとを比較する比較手段と、この比較手段による比較の結果、前記両ノートナンバーが一致し、かつ、前記計時手段による計測時間が所定未満であるとき、前記コードデータの読み出しを禁止する読出制御手段とから構成されている。
【０００７】
【作用】
前記構成において、全ての楽音がノートオフとなっている状態で、押鍵を行いこれにより新たなノートオンが発生すると、そのタイミングで、コードデータが読み出されて出力され、よって、かかる演奏操作を行うことにより、新たなノートオンが発生するタイミングでコードデータに基づく和音が発生する。しかし、全ての鍵がオフとなっている状態で、押鍵を行った場合であっても、この押鍵によるノートオンによって発生したノートナンバーと、その直前のノートオフのノートナンバーとが一致している場合には、コードデータの出力は禁止される。したがって、例えば同一和音内の１拍目と２拍目とが同一音高であって、一旦離鍵せざるを得ない場合であっても、当該小節の２拍目で次のコードデータが出力されてしまうことはない。
【０００８】
また、計時手段を有する構成においては、単に前記両ノートナンバーが一致することを条件とするのみならず、さらに、全ての鍵がオフとなった時点から新たなノートオンが発生した時点までの時間が所定未満であるとき、コードデータの読み出しを禁止する。したがって、かかる構成においては、全ての鍵がオフとなった時点から新たなノートオンが発生した時点までの時間が所定時間を超えれば、両ノートナンバーが一致しても、コードデータが読み出されて出力される。よって、和音の変わり目の前後の楽音の音高が偶然に一致した場合にも、コードの先頭の楽音の演奏を開始した際には、支障なく先頭音のノートオンに伴ってコードデータが読み出される。
【００１０】
【実施例】
以下、本発明の一実施例について図に従って説明する。図１は本発明を適用した電子楽器の全体構成を示すブロック図であり、鍵盤部１には、複数の鍵がキーコード（ノートナンバー）に対応して配置されているとともに、各鍵毎に押鍵速度及び離鍵速度に応じた時間差でオンとなる２個の接点スイッチが設けられている。したがって、鍵盤部１からは、この接点スイッチのオンにより押下された鍵に対応するキーコードを検出できるとともに、接点スイッチのオン時間差により押鍵時のベロシティが、また、接点スイッチのオフ時間差により離鍵時のベロシティが検出できるように構成されている。また、スイッチ部２には、音色設定スイッチや各種モード設定スイッチ等、通常電子楽器が有する各種機能スイッチが設けられている。
【００１１】
これら鍵盤部１及びスイッチ部２からの操作情報は制御部３に入力され、制御部３は記憶部４に記憶されているプログラムに従って動作し、後述のフローチャートに示すように各部を制御する。記憶部４には、プログラムとともに波形データが記憶されており、また、和音記憶部５には、図２に示すように、コードデータが記憶されている。このコードデータは、アドレス順に記憶されたＤｍ７，Ｇ７，ＧΔ７，ＦΔ７等のコード種データと、Ｃ３，Ｄ３，Ｆ３，Ａ３等の各コード構成音データとで構成されている。
【００１２】
音源部６は、制御部３からの発音指示に従って動作し、記憶部４から読み出された波形データ及び鍵盤部１から出力されたキーコードもしくは和音記憶部５から読み出されたコードデータに基づき、楽音の発生に必要な楽音波形データを生成する。Ａ／Ｄ変換部７は、制御部３からの変換指示に従って、この楽音波形データをアナログ楽音波形に変換し、増幅部８はこの楽音波形を増幅する。そして、この増幅された楽音波形によりスピーカ９が駆動されることにより、制御部３の指示に従った音高の単音あるいは和音が放音されるように構成されている。
【００１３】
次に、以上の構成にかかる本実施例の動作を図４以降に示したフローチャートに従って説明する。なお、フローチャートにおいては、下記及び図３に示す制御部３内の各種レジスタ、及び定数を用いる。
《レジスタ》
ｋｅｙｃｏｄｅ：押鍵、離鍵に対応する音高を格納
ｌａｓｔｏｆｆｋｅｙ：最新の離鍵に対応する音高を格納
ｖｅｌｏｃｉｔｙ：ベロシティ（押鍵、離鍵時の速度）を格納
ｋｅｙｏｎｃｏｕｎｔ：押下中の鍵の数を格納
ｏｆｆｔｉｍｅｃｏｕｎｔ：押下中の鍵の数が０になってからの時間を格納
ｃｈｏｒｄ：和音に含まれる音高を格納
ｎｅｘｔｃｈｏｒｄ：次に読み出すべきコードデータのアドレスを格納
ＣＨＯＲＤＯＫ：“１”で和音発音可を示し、“０”で和音発音禁止を示す
《定数》
ＯＦＦＫＥＹＴＩＭＥ：新和音を出力しない時間
ＭＡＸＣＯＵＮＴ：ｏｆｆｔｉｍｅｃｏｕｎｔの最高値
すなわち、制御部３は、電源の投入に伴って図４に示すメインルーチンに従って処理を開始し、先ずイニシャライズ処理を行って、前記各種レジスタをクリアする（ＳＡ１）。引き続き、ＳＷ処理（ＳＡ２）を実行してスイッチ部２を走査し、音色設定スイッチの操作に応じた音色設定処理等を行う。さらに、鍵盤処理（ＳＡ３）、コード進行処理（ＳＡ４）、発音処理（ＳＡ５）、及びこられ各処理以外に必要なその他の処理（ＳＡ６）を実行し、電源がオフとなるまでＳＡ２〜ＳＡ６のループを繰り返す。
【００１４】
前記鍵盤処理（ＳＡ３）は、図５に示すフローに従って行われ、鍵盤部１からの操作情報に基づき押鍵及び離鍵された鍵に対応する音高（キーコード）、及び押鍵及び離鍵時のベロシティを取得し、対応するレジスタｋｅｙｃｏｄｅ、及びレジスタｖｅｌｏｃｉｔｙに格納する（ＳＢ１）。さらに、前記操作情報中にｋｅｙｏｎ（押鍵）があるか（ＳＢ２）、及びｋｅｙｏｆｆ（離鍵）があるかを検出する（ＳＢ３）。そして、ｋｅｙｏｎ及びｋｅｙｏｆｆのいずれもない場合にはリターンし、ｋｅｙｏｆｆ（離鍵）があった場合には、ｋｅｙｏｎｃｏｕｎｔをディクリメントする（ＳＢ４）。よって、後述するＳＢ７で押鍵がある都度インクリメントされるｋｅｙｏｎｃｏｕｎｔの値は、離鍵がある都度減少して行く。
さらに、このディクリメントしたｋｅｙｏｎｃｏｕｎｔの値が“０”となったか否かを判別して（ＳＢ５）、“０”となっていない場合には、ＳＢ６の処理を実行することなくリターンし、“０”となっている場合には、レジスタｋｅｙｃｏｄｅに格納されているキーコードを、レジスタｌａｓｔｏｆｆｋｅｙに格納する。したがって、このｌａｓｔｏｆｆｋｅｙには、鍵盤部１で押下中の鍵の数が０になった状態において、最新の離鍵に対応する音高が格納されていることとなる。
【００１５】
一方、制御部３は、図６に示すタイマインタラプトルーチンに従った処理を前述のメインルーチンに割り込んで一定時間毎に実行し、先ずｋｅｙｏｎｃｏｕｎｔが“０”となっているか否かを判別する（ＳＣ１）。ｋｅｙｏｎｃｏｕｎｔ≠０であるならば、ｏｆｆｔｉｍｅｃｏｕｎｔを０リセットし（ＳＣ２）、ｋｅｙｏｎｃｏｕｎｔ＝０であるならば、このｏｆｆｔｉｍｅｃｏｕｎｔをインクリメントする。したがって、前記したように、ｏｆｆｔｉｍｅｃｏｕｎｔは押下中の鍵の数が０になってからの時間を格納して行く。
【００１６】
次に、このインクリメントしたｏｆｆｔｉｍｅｃｏｕｎｔの値にオーバーフローが発生したか否かを判別して、オーバーフローが発生していなければメインルーチンにリターンし、オーバーフローが発生した場合には、所定の最高値ＭＡＸＣＯＵＮＴを当該ｏｆｆｔｉｍｅｃｏｕｎｔに格納する。すなわち、例えばこのｏｆｆｔｉｍｅｃｏｕｎｔが４ビット構成であるとすると、その最大値「１１１１」の状態でこのタイマインタラプトが実行されると、ＳＣ３のインクリメント処理により、ｏｆｆｔｉｍｅｃｏｕｎｔに最小値「００００」がセットされてしまう。そこで、ＳＣ４では、実最大値「１１１１」となる前の所定の最大値を超えた時点で、オーバーフローが発生したと判別し、ＳＣ４では、この所定の最大値（＝ＭＡＸＣＯＵＮＴ）をｏｆｆｔｉｍｅｃｏｕｎｔに格納する。したがって、ｏｆｆｔｉｍｅｃｏｕｎｔは、０から所定の最大値までカウントアップし、該所定の最大値でカウントアップを停止する。
【００１７】
他方、前記鍵盤処理（図５）において、ｋｅｙｏｎ（押鍵）があった場合には、ＳＢ２からＳＢ７に進みｋｅｙｏｎｃｏｕｎｔをインクリメントする。次に、このインクリメントしたｋｅｙｏｎｃｏｕｎｔの値が“１”であるか否かを判別する（ＳＢ８）。このとき、ｋｅｙｏｎｃｏｕｎｔは押下中の鍵の数を格納していることから、ＳＢ７でインクリメントされたｋｅｙｏｎｃｏｕｎｔの値が“１”であるならば、鍵盤部１において全ての鍵が押下されていない状態で、新たな押鍵が発生したことを意味する。
【００１８】
そして、かかる場合には前述のＳＢ６でｌａｓｔｏｆｆｋｅｙに格納した音高と、ＳＢ１でｋｅｙｃｏｄｅに格納した音高とが不一致であるか否かを判別する（ＳＢ９）。この判別の結果、両者が不一致である場合には、ｏｆｆｔｉｍｅｃｏｕｎｔの値が所定時間ＯＦＦＫＥＹＴＩＭＥを超えているか否かを判別して（ＳＢ１０）、超えた時点で、ＣＨＯＲＤＯＫフラグをセットする（ＳＢ１１）。したがって、このＣＨＯＲＤＯＫフラグは、ＳＢ８〜ＳＢ１０の条件が成立した場合、つまり、以下の３条件が成立した場合にのみセットされ、この３条件のいずれか１つでも欠如している場合にはセットされない。
（１）鍵盤部１において全ての鍵が押下されていない状態で新たな押鍵が発生したこと、
（２）ｌａｓｔｏｆｆｋｅｙに格納されている音高とｋｅｙｃｏｄｅに格納されている音高とが不一致であること、
（３）ｏｆｆｔｉｍｅｃｏｕｎｔの値が所定時間ＯＦＦＫＥＹＴＩＭＥを超えていること。
【００１９】
よって、図１２（Ｃ）に示す譜例の上段に従って鍵盤部１で演奏を行った場合、各小節の１拍目の音高Ｃ４，Ｇ４，Ｃ５，Ｆ５の押鍵を行った際には、（１）〜（３）の条件が全て満たされることから、ＣＨＯＲＤＯＫフラグがセットされるが、第１小節の２拍目の音高Ｃ４の押鍵を行った際には、前記（２）の条件が満たされないことから、ＣＨＯＲＤＯＫフラグはリセット状態のまま放置されることとなる。
【００２０】
また、図４のメインルーチンにおいて、鍵盤処理（ＳＡ３）に続くコード進行処理（ＳＡ４）は、図７に示すフローに従って行われ、ＣＨＯＲＤＯＫフラグがセットされているか否かを判別し（ＳＤ１）、ＣＨＯＲＤＯＫフラグがセットされていない場合には、以降の処理を行うことなくリターンする。また、ＣＨＯＲＤＯＫフラグがセットされている場合には、ｎｅｘｔｃｈｏｒｄポインタの示すコードデータをレジスタｃｈｏｒｄに格納した後（ＳＤ２）、ｎｅｘｔｃｈｏｒｄポインタを進める（ＳＤ３）。
【００２１】
すなわち、ｎｅｘｔｃｈｏｒｄポインタは、図４に示したメインルーチンのインシャライズ処理（ＳＡ１）において、図８に示すコードデータの先頭のデータである“Ｄｍ７”に対応するアドレスを示しており、ＣＨＯＲＤＯＫフラグがセットされた時点で、ＳＤ３の処理により歩進して次のアドレスを示す。したがって、図８に示す状態は、２回目のＣＨＯＲＤＯＫフラブがセットされて、ＳＤ３の処理が実行される直前、つまりＳＤ２の処理を実行している時点の状態であり、ｎｅｘｔｃｈｏｒｄポインタが示すコードデータ“Ｇ７”をレジスタｃｈｏｒｄに格納する。しかる後に、ＳＤ３でｎｅｘｔｃｈｏｒｄポインタを進めることから、この時点でｎｅｘｔｃｈｏｒｄは、コードデータ“ＣΔ７”に対応する次のアドレスを示す。
【００２２】
さらに、図４のメインルーチンにおいて、コード進行処理（ＳＡ４）に続く発音処理（ＳＡ５）は、図９に示すフローに従って行われる。まずｋｅｙのｏｎ／ｏｆｆに対応した発音処理を実行する（ＳＥ１）。すなわち、鍵盤部１に押鍵があると、制御部３は対応する音高の楽音波形データの生成を音源部６に指示し、音源部６はこの指示に従って楽音波形データを生成する。この生成された楽音波形データは、Ｄ／Ａ変換器７及び増幅部８を介してスピーカ９に与えられ、これによりスピーカ９からは押下された鍵に対応する音高の楽音が発生する。また、鍵盤部１に離鍵があると、制御部３からの指示に従って音源部６は対応する楽音波形データをエンベロープに従って減衰させ、これによりスピーカ９から発生中の対応する音高が消音する。したがって、鍵盤部１において押鍵及び離鍵を行いつつメロディを演奏することにより、スピーカ９からは演奏されたメロディを構成する楽音が順次発生する。
【００２３】
そして、次のＳＥ２ではＣＨＯＲＤＯＫフラグがセットされているか否かを判別して、リセット状態にある場合には、ＳＥ３の処理を実行することなく、リターンする。また、ＣＨＯＲＤＯＫフラグがセットされている場合には、レジスタｃｈｏｒｄに格納されている内容のコードでデータに従ってコード構成音やベース音等の和音に対応した伴奏音を発生させ（ＳＥ３）、しかる後に、ＣＨＯＲＤＯＫフラグをクリアする（ＳＥ４）。このとき、図１２（Ｃ）に示す譜例上段に従って鍵盤部１で演奏を行った場合、前述したように、各小節の１拍目の音高Ｃ４，Ｇ４，Ｃ５，Ｆ５の押鍵を行った際には、ＣＨＯＲＤＯＫフラグがセットされるが、第１小節の２拍目の音高Ｃ４の押鍵を行った際には、前記（２）の条件が満たされないことから、ＣＨＯＲＤＯＫフラグはセットされない。したがって、この譜例上段の音符に示す演奏を行うと、各小節の１拍目でコードが変化して各小節毎に、Ｄｍ７→Ｇ７→ＣΔ７→ＦΔ７とコード進行し、メロディと適正な和音による伴奏音からなる楽曲を演奏することができる。
【００２４】
図１０は、本発明の他の実施例における鍵盤処理（ＳＡ３）の内容を示すものであり、この実施例においては、この鍵盤処理（ＳＡ３）のみが前述した実施例とは異なっている。また、用いるレジスタは前述の実施例と同様であるが、定数は図１１及び下記に示すものを用いている。
ＳＡＭＥＫＥＹ：同じ音高が続いた場合の新和音を出力しない時間
ＤＩＦＦＥＲＫＥＹ：異なる音高の場合の新和音を出力しない時間
ＭＡＸＣＯＵＮＴ：ｏｆｆｔｉｍｅｃｏｕｎｔの最高値
なお、ＳＡＭＥＫＥＹ＞ＤＩＦＦＥＲＫＥＹである。
【００２５】
すなわち、鍵盤部１からの操作情報に基づき押鍵及び離鍵された鍵に対応する音高（キーコード）、及び押鍵及び離鍵時のベロシティを取得し、対応するレジスタｋｅｙｃｏｄｅ、及びｖｅｌｏｃｉｔｙに格納する（ＳＦ１）。さらに、前記操作情報中にｋｅｙｏｎ（押鍵）があるか否かを判別して（ＳＦ２）、ｋｅｙｏｎがない場合にはさらに、ｋｅｙｏｆｆ（離鍵）があるか否かを判別する（ＳＦ３）。ｋｅｙｏｎ及びｋｅｙｏｆｆのいずれもない場合にはリターンし、ｋｅｙｏｆｆがあった場合には、ｋｅｙｏｎｃｏｕｎｔをディクリメントし（ＳＦ４）、よって、ｋｅｙｏｎｃｏｕｎｔの値は鍵盤部１において離鍵が発生する都度減少して行く。
【００２６】
さらに、このディクリメントしたｋｅｙｏｎｃｏｕｎｔの値が“０”となったか否かを判別して（ＳＦ５）、“０”となっていない場合には、ＳＦ６の処理を実行することなくリターンし、“０”となっている場合には、レジスタｋｅｙｃｏｄｅに格納されているキーコードを、レジスタｌａｓｔｏｆｆｋｅｙに格納する。また、ｋｅｙｏｎ（押鍵）があった場合には、ＳＦ２からＳＦ７に進んでｋｅｙｏｎｃｏｕｎｔをインクリメントし、引き続き、このインクリメントしたｋｅｙｏｎｃｏｕｎｔの値が“１”であるか否かを判別する（ＳＦ８）。このとき、ｋｅｙｏｎｃｏｕｎｔは押下中の鍵の数を格納していることから、ＳＦ７でインクリメントされたｋｅｙｏｎｃｏｕｎｔの値が“１”であるならば、鍵盤部１において全ての鍵が押下されていない状態で、新たな押鍵が発生したことを意味する。
【００２７】
そして、かかる場合には前述のＳＦ６でｌａｓｔｏｆｆｋｅｙに格納した音高と、ＳＦ１でｋｅｙｃｏｄｅに格納した音高とが不一致であるか否かを判別する（ＳＦ９）。この判別の結果、両者が不一致である場合には、ｏｆｆｔｉｍｅｃｏｕｎｔの値が所定時間ＤＩＦＦＥＲＫＥＹを超えているか否かを判別して（ＳＦ１１）、超えている場合にのみＣＨＯＲＤＯＫフラグをセットする（ＳＦ１２）。また、ＳＦ９での判別の結果、前記両音高が一致している場合には、ｏｆｆｔｉｍｅｃｏｕｎｔの値がＤＩＦＦＥＲＫＥＹよりも長い時間であるＳＡＭＥＫＥＹを超えたか否かを判別して、超えた場合にのみＣＨＯＲＤＯＫフラグをセットする（ＳＦ１２）。
【００２８】
つまり、前述した実施例は、ｌａｓｔｏｆｆｋｅｙに格納されている音高とｋｅｙｃｏｄｅに格納されている音高とが不一致であることを、ＣＨＯＲＤＯＫフラグをセットするための絶対条件とした。しかし、この実施例では両者の音高が一致していても、ｏｆｆｔｉｍｅｃｏｕｎｔがＤＩＦＦＥＲＫＥＹよりも長い時間であるＳＡＭＥＫＥＹを超えていれば、ＣＨＯＲＤＯＫフラグをセットし、和音を発生させる。したがって、この実施例によれば、和音の変わり目の前後の楽音の音高が偶然に一致した場合であっても、和音変更後の最初の楽音の演奏を開始した際に、ＣＨＯＲＤＯＫフラグが適正にセットされる。よって、かかる場合には支障なく先頭音の押鍵に伴って和音もしくは伴奏音が発生し、適正にコードを進行させることができる。
【００２９】
尚、譜例１２（Ｃ）では伴奏音として和音のみを示したが、和音に対応するベース音を発生させるようにしてもよい。
【００３０】
【発明の効果】
以上説明したように本発明は、全ての楽音がノートオフとなっている状態から、新たなノートオンが発生したタイミングで、予め記憶されているコードデータを順次読み出して出力するコードデータ出力装置において、前記新たなノートオンのノートナンバーと、このノートオンの直前に発生したノートオフのノートナンバーとが一致したならば、コードデータの読み出しを禁止するようにした。よって、同一和音内に同一音高が連続している場合において、２つ目の当該音高のノートオンにより、次のコードデータが読み出されてしまうことがなく、コードデータをコード進行に従って適正に出力することが可能となる。
【００３１】
また、本発明は、全ての楽音がノートオフとなった時点から新たなノートオンが発生した時点までの時間を計測して、前記両ノートナンバーが一致し、かつ、前記時間が所定未満であるとき、コードデータの読み出しを禁止するようにした。よって、和音の変わり目の前後の楽音の音高が偶然に一致した場合には、和音変更後の先頭の楽音の演奏を開始した際に、適正にコードデータが読み出されてコードを進行させることができる。
【図面の簡単な説明】
【図１】本発明の一実施例を適用した電子楽器の全体構造を示すブロック図である。
【図２】和音記憶部に記憶されているコードデータの構成を示す概念図である。
【図３】本実施例で用いられるレジスタ及び定数を示す図である。
【図４】メインルーチンを示すフローチャートである。
【図５】鍵盤処理の内容を示すフローチャートである。
【図６】タイマインタラプトルーチンを示すフローチャートである。
【図７】コード進行処理の内容を示すフローチャートである。
【図８】コードデータの読み出し動作を示す説明図である。
【図９】発音処理の内容を示すフローチャートである。
【図１０】本発明の他の実施例における鍵盤処理の内容を示すフローチャートである。
【図１１】同実施例において用いられる定数を示す図である。
【図１２】（Ａ）は、従来装置において適正にコード進行した場合の譜例、（Ｂ）は従来装置の誤ったコード進行が発生する場合の譜例、（Ｃ）は本発明の実施例により適正にコード進行することを示す譜例である。
【符号の説明】
１    鍵盤部
３    制御部
５    和音記憶部
６    音源部
【図１】
0003543161.tif 000002
【図２】
0003543161.tif 000003
【図３】
0003543161.tif 000004
【図４】
0003543161.tif 000005
【図５】
0003543161.tif 000006
【図６】
0003543161.tif 000007
【図７】
0003543161.tif 000008
【図８】
0003543161.tif 000009
【図９】
0003543161.tif 000010
【図１０】
0003543161.tif 000011
【図１１】
0003543161.tif 000012
【図１２】
0003543161.tif 000013