(57)【特許請求の範囲】
【請求項１】
演奏操作に応じて演奏データを入力する演奏データ入力手段と、
コード検出タイミングを設定するコード検出タイミング設定手段と、
前記コード検出タイミングの終了時点で、前記演奏データ入力手段により入力された演奏データを元に、コードを検出するコード検出手段と、
前記コード検出手段により検出されたコードの適用を指示するコード適用指示手段と、
コード適用の指示に関してタイムリミットを設定するタイムリミット設定手段と、
前記コード検出タイミングの終了時点において前記コード適用指示手段によりコードの適用が指示されている場合、及び、前記コード検出タイミングの終了時点から前記タイムリミットまでの間に前記コード適用指示手段によりコードの適用が指示された場合に、前記コード検出手段により検出されたコードを適用するコード適用手段と
を具備することを特徴とする電子楽器。
【請求項２】
さらに、前記コード適用手段により適用されたコードを記憶する適用コード記憶手段を具備し、
前記コード検出手段は、前記適用コード記憶手段に記憶されたコード及び前記演奏データ入力手段により入力された演奏データを元に、コードを検出する
ことを特徴とする請求項１に記載の電子楽器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ユーザが通常の両手弾き演奏を行いながら、ユーザの意図に沿ったコードを適用することができる電子楽器に関する。
【背景技術】
【０００２】
従来より、鍵盤演奏に応じて発生した演奏データに基づいて和音を検出する和音検出機能を持つ電子楽器が知られている。例えば、特許文献１に開示された電子楽器では、演奏データの入力時刻とは無関係に、自動伴奏の予定の音符長に従った拍タイミング毎、及び、この拍タイミングの近傍であり拍タイミングから所定時間だけ離れたタイミング毎に和音の検出を行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第２７６８２３３号公報
【０００４】
しかしながら、従来の和音検出技術では、通常のピアノ演奏（両手弾き）を行いながらコードを検出することは可能であるが、所定の拍タイミング毎に演奏状態を元にコード検出を行う。例えば、４／４拍子で２拍毎の検出タイミングで、左手でアルペジオ演奏、右手でメロディ演奏をしているとき、１拍目（小節頭）で検出されたコードをこの小節の間維持したいと思っても、３拍目の演奏状態からコードの検出及び適用がなされてしまい、意図しないコードに変わってしまう可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この発明は、このような事情に鑑み、ユーザが通常の両手弾き演奏を行いながら、ユーザの意図に沿うタイミングで検出されたコードを適用することができる電子楽器を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明の主たる特徴に従うと、演奏操作に応じて演奏データ(NoteList)を入力する演奏データ入力手段（５；Ｐ１１〜Ｐ１２，Ｎ４）と、コード検出タイミング（Ｔ１〜Ｔ３）を設定するコード検出タイミング設定手段（７；Ｐ３）と、コード検出タイミング（Ｔ１〜Ｔ３）の終了時点（Ｔ３）で、演奏データ入力手段（Ｐ１２）により入力された演奏データ(NoteList)を元に、コード (Chord)を検出するコード検出手段（Ｐ１３＝ＹＥＳ→Ｐ１４）と、コード検出手段（Ｐ１４）により検出されたコード (Chord)の適用を指示するコード適用指示手段（６）と、コード適用の指示に関してタイムリミット（Ｔ４）を設定するタイムリミット設定手段（７；Ｐ３）と、コード検出タイミング（Ｔ１〜Ｔ３）の終了時点（Ｔ３）においてコード適用指示手段（６）によりコードの適用が指示されている場合（Ｐ１３＝ＹＥＳ→Ｃ５＝ＹＥＳ）、及び、コード検出タイミング（Ｔ１〜Ｔ３）の終了時点（Ｔ３）からタイムリミット（Ｔ４）までの間にコード適用指示手段（６）によりコード (Chord)の適用が指示された場合に（Ｐ１６＝ＹＥＳ→Ｃ５＝ＹＥＳ）、コード検出手段（Ｐ１４）により検出されたコード (Chord)を適用するコード適用手段（Ｃ６〜Ｃ７）とを具備すること電子楽器〔請求項１〕が提供される。なお、括弧書きは、理解の便のために付記した実施例の参照記号や用語等を表わし、以下においても同様である。
【０００７】
この発明による電子楽器は、さらに、コード適用手段（Ｃ６〜Ｃ７）により適用されたコード (ChordList)を記憶する適用コード記憶手段（２；Ｃ７）を具備し、コード検出手段（Ｐ１４）は、適用コード記憶手段（２）に記憶されたコード (ChordList)及び演奏データ入力手段（Ｐ１２，Ｎ４）により入力された演奏データ(NoteList)を元に、コードを検出する〔請求項２〕ように構成することができる。
【発明の効果】
【０００８】
この発明の主たる特徴による電子楽器では（請求項１）、予め、例えば、所定小節毎或いは所定拍毎というような周期的な音楽タイミングを基準にして、コード検出を行うタイミング即ちコード検出タイミング（Ｔ１〜Ｔ３）を設定しておき（７；Ｐ３）、演奏操作に応じて演奏データ(NoteList)を入力すると（５；Ｐ１１〜Ｐ１２）、設定されたコード検出タイミング（Ｔ１〜Ｔ３）の終了時点（Ｔ３）で、入力された演奏データ(NoteList)を元にしてコードを検出するように構成される（Ｐ１３＝ＹＥＳ→Ｐ１４）。また、検出されたコードの適用については、例えば、ペダル（フットスイッチ）のような操作子（６）を指示手段に用いて、そのオフ操作によりコードの適用を指示することができ、コード検出タイミング（Ｔ１〜Ｔ３）の終了時点（Ｔ３）以降でもコード適用の指示操作が有効となるタイムリミット（Ｔ４）を予め設定しておく（７；Ｐ３）。そして、コード検出タイミング（Ｔ１〜Ｔ３）の終了時点（Ｔ３）でコードを検出したときに、既にコード適用指示手段（６）による指示が受け付けられておりコードの適用が指示されている場合（Ｐ１３＝ＹＥＳ→Ｃ５＝ＹＥＳ）、及び、コード検出タイミング（Ｔ１〜Ｔ３）の終了時点（Ｔ３）でコードを検出してからタイムリミット（Ｔ４）に至るまでの間に、コード適用指示手段（６）による指示が受け付けられてコードの適用が指示された場合に（Ｐ１６＝ＹＥＳ→Ｃ５＝ＹＥＳ）、検出されたコードを適用する（Ｃ６〜Ｃ７）。
【０００９】
つまり、この発明では、小節或いは拍タイミングに相当するコード検出タイミング（Ｔ１〜Ｔ３）の終了時点（Ｔ３）で演奏データ(NoteList)に基づいてコードを検出する際に（Ｐ１３＝ＹＥＳ→Ｐ１４）、ペダル（フットスイッチ）がオン状態であれば、検出したコードは適用せず（Ｃ５＝ＮＯ）、オフ状態であれば、検出したコードを適用する（Ｃ５＝ＹＥＳ→Ｃ６→Ｃ７）。また、コード検出タイミング終了時点（Ｔ３）でペダルがオン状態であっても、コード検出タイミング終了時点（Ｔ３）以降の所定時間内（タイムリミットＴ４までの間）にペダルのオフ操作があると（Ｐ１６＝ＹＥＳ→Ｃ５＝ＹＥＳ）、直ちに、検出されたコードが適用される（Ｃ６〜Ｃ７）。
【００１０】
従って、この発明によれば、ユーザが通常の両手弾き演奏を行いながら、ユーザの意図に沿うタイミングで検出したコードの適用を行うことができる。また、この発明では、検出したコードを適用するかどうかはユーザのペダル（フットスイッチ）操作に基づいて判定するようにしているので（Ｃ５＝ＹＥＳ）、実際のピアノ演奏スタイルと一致したイメージで検出コードの適用を行うことができると共に、演奏と一体化した操作でコード適用の指示を行うことができる。さらに、この発明では、ペダル（フットスイッチ）などのオン／オフ操作される操作子を使って単純に「コード検出をする／しない」の機能切替えを行うのではなく、設定されたタイミング（Ｔ３）で演奏データ（NoteList）を元に必ずコード検出を行い（Ｐ１３＝ＹＥＳ→Ｐ１４）、検出されたコードについては、コード検出時のペダルの状態（Ｐ１４→Ｃ５）或いはペダルがオンからオフに変わったタイミング（Ｐ１６＝ＹＥＳ→Ｃ４→Ｃ５）に応じて適用するかどうかを判断するようにしているので、ユーザがペダルを離すときのタイミングのずれを吸収することができる。
【００１１】
この発明による電子楽器においては（請求項２）、適用されたコード (ChordList)はコード記憶手段に記憶され（２；Ｃ７）、入力された演奏データ(NoteList)と適用コード記憶手段に記憶されたコード（ChordList)を元にしてコード検出を行う（Ｐ１４）ように構成される。従って、この発明によれば、直前或いはそれ以前からのコード進行を考慮してコードを検出することができる。
【図面の簡単な説明】
【００１２】
【図１】この発明の一実施例による電子楽器のハードウエア構成例を示す。
【図２】この発明の一実施例によるコード検出タイミング及びコード適用タイムリミット設定例を示す。
【図３】この発明の一実施例による自動伴奏併用演奏処理フロー例の一部を示す。
【図４】この発明の一実施例による自動伴奏併用演奏処理フロー例の他部を示す。
【図５】この発明の一実施例によるノートイベント処理フロー例を示す。
【図６】この発明の一実施例によるコード適用処理フロー例を示す。
【発明を実施するための形態】
【００１３】
〔システム構成の概要〕
図１は、この発明の一実施例による電子楽器のハードウエア構成例を示す。この発明の一実施例による電子楽器は、電子的な音楽情報処理機能を有する一種のコンピュータであり、図１のように、中央処理装置（ＣＰＵ）１、ランダムアクセスメモリ（ＲＡＭ）２、読出専用メモリ（ＲＯＭ）３、外部記憶装置４、演奏入力部５、フットスイッチ（ペダル）部６、その他操作子部７、表示部８、音源９、自動伴奏装置１０、通信インターフェース（Ｉ／Ｆ）１１などを備え、これらの要素１〜１１はバス１２を介して接続される。
【００１４】
ＣＰＵ１は、ＲＡＭ２及びＲＯＭ３と共にデータ処理部を構成しており、タイマ１３によるクロックを利用して、自動伴奏併用演奏処理プログラムを含む所定の制御プログラムに従い種々の音楽情報処理を実行し、ＲＡＭ２は、これらの処理に際して必要な各種データを一時記憶するためのワーク領域として用いられる。例えば、自動伴奏併用演奏処理を実行する自動伴奏併用演奏モード時には、タイマ１３は、ＣＰＵ１の制御の下、コード（chord:和音）の検出や適用のために設定された種々の設定時間を計時したり、設定されたテンポに応じたテンポクロックを生成し、ＲＡＭ２には、コードの検出や適用に必要な各種レジスタが設けられる。また、ＲＯＭ３には、これらの処理を実行するために、各種制御プログラムや必要な各種制御データが予め記憶される。
【００１５】
外部記憶装置４は、ＨＤ（ハードディスク）、ＦＤ（フレキシブルディスク）、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多目的ディスク）、フラッシュメモリ等の半導体メモリなどの記憶媒体と、その駆動装置を含む。制御プログラムや、種々の曲データ等、任意の情報を任意の記憶媒体に記憶することができる。また、記憶媒体は、着脱可能であってもよいし、この電子楽器に内蔵されていてもよく、着脱可能な記録媒体にはＵＳＢメモリが含まれる。
【００１６】
演奏入力部５は、鍵盤などの演奏操作子と、演奏操作子の操作を検出し検出内容に対応する演奏操作情報をデータ処理部（１〜３）に導入する演奏操作検出回路とにより構成される。フットスイッチ部６は、ペダル部とも呼ばれ、ユーザの足で操作されるペダル操作子と、ペダル操作子のスイッチ（オン／オフ）操作を検出し検出内容に対応するフットスイッチ操作情報をデータ処理部に導入するペダル操作検出回路とにより構成され（なお、参照記号“６”は、ペダル操作子自体を示す場合がある）、自動伴奏併用演奏モードでは「コード適用指示手段」として機能する。その他操作子部７は、キースイッチ等のその他の操作子（設定操作子）と、これら操作子の操作を検出して検出内容に対応する操作情報をデータ処理部に導入する設定操作検出回路とにより構成される。データ処理部（１〜３）は、これら操作情報に基づき電子楽器各部を制御し、例えば、演奏操作部５からの演奏操作入力に対応する演奏情報を音源９に送ったり、その他操作子部７中のモード設定ボタンの操作により自動伴奏併用演奏モードで動作させたりすることができる。
【００１７】
表示部８は、演奏や設定に必要な各種情報を表示するＬＣＤ等のディスプレイや、操作部５〜７中のスイッチ類に併設した内蔵ランプ等を備え、これらの表示・点灯内容をデータ処理部からの指令で制御し、演奏操作や設定操作などに関する表示援助を行う。
【００１８】
音源９は、音源部やＤＳＰを有し、演奏入力部５からの演奏操作情報から得られる演奏情報に基づいて、或いは、記憶装置４から読み出される曲データに基づいて、楽音信号を生成すると共にこの楽音信号に所定の効果を付与する。音源９に接続されるサウンドシステム１４は、Ｄ／Ａ変換部やアンプ、スピーカ等を備え、音源９から出力される楽音信号に基づく楽音を発生する。自動伴奏装置１０は、自動伴奏併用演奏モードにおいて、タイマ１３からのテンポクロックで自動伴奏のテンポが設定され、このテンポクロックに従って、データ処理部（１〜３）から提供されるコードに対応した伴奏スタイルデータに基づく自動伴奏音を生成する。
【００１９】
通信Ｉ／Ｆ１１は、ＭＩＤＩ等の音楽用有線Ｉ／Ｆ、ＵＳＢ等の汎用ネットワークＩ／Ｆ或いは無線Ｌａｎ等の汎用近距離無線Ｉ／Ｆ等を含み、外部電子音楽装置ＭＭと交信することができる。例えば、外部電子音楽装置ＭＭからＭＩＤＩ形式の曲データを取得し、記憶装置４に記憶しておくことができる。
【００２０】
〔コードの検出及び適用の概要〕
この発明の一実施例による電子楽器では、自動伴奏併用演奏処理により、所定の小節或いは拍タイミングで、ペダル操作子（フットスイッチ）６のオン／オフに拘わらず、演奏入力部５から入力される演奏データに基づいてコードを検出し、コードを検出したときにペダルオフの状態であれば、検出したコードを自動的に自動伴奏に適用し、コード検出時にペダルオンの状態であっても、所定のタイムリミット内にペダルオフ操作があると、その時点で直ちに、検出されたコードを自動伴奏に適用することができる。つまり、この電子楽器のペダル操作子６は、コード適用指示手段として機能する。従って、演奏操作子が鍵盤のみの電子楽器では、ペダル操作子６を接続すればよい。なお、ペダル操作子６からは、踏み込むことでＯＮ信号が、離すことでＯＦＦ信号が、データ制御部（１〜３）に送られ、夫々の信号に対応する値「０」或いは「１」がＲＡＭ２内の「ペダルＯＦＦ」レジスタに格納される。図２は、この発明の一実施例によるコード検出タイミング及びコード適用タイムリミット設定例を示し、図２（ａ）は、コード検出タイミング及びコードリストのイメージ例を示している。
【００２１】
図２（ａ）中の（ａ１）は、コード検出基準位置の例とこれに対する典型的なペダル操作例であり、横軸は、右方向に時間が進行する時間軸を示す。◎で示されるコード検出基準位置Ｔ２は、演奏データに対してユーザ操作により設定された所定の小節或いは拍タイミングであり、ユーザにとっては、コードの検出乃至適用を指示するタイミングの目安となる。この例では、（ａ１）の上部に示すように、１小節＝４拍の演奏データに対し１拍目及び３拍目がコード検出基準位置Ｔ２に設定されており、この設定に対してユーザが１拍目でペダル６をオフしようとした場合、ペダル６は、実際には、（ａ１）の下部に示すようにオンオフ変化し、コード検出基準位置Ｔ２から所定の遅れをもったペダルＯＦＦタイミングＴｐｆでオフする。つまり、ユーザが両手で鍵盤演奏しながら、コードの検出及び適用をしたいタイミング（Ｔ２）でペダル６を離し（ＯＦＦ）また直ぐに踏み込む（ＯＮ）場合、実験によると、テンポが「７８」〔拍／分〕のとき、目安となる拍位置（拍タイミング）より、大体、３２分音符から６４分音符の間で（約９６ｍｓから約４８ｍｓ）ペダル６のオフ（ＯＦＦタイミングＴｐｆ）が遅れる傾向があることが分った。従って、このような実際のペダル操作遅れ傾向を考慮して、（ａ２）のように、コード適用の指示が有効なタイムリミット位置Ｔ４を設定することができる。
【００２２】
（ａ２）は、コード検出タイミング及びコード適用タイムリミット位置の例であり、右矢印の方向に時間が進行する時間軸（横軸）のスケールは、（ａ１）よりも拡大されている。コード検出タイミングは、コード検出基準位置Ｔ２より所定時間前のコード検出タイミング開始位置Ｔ１で開始し、同位置Ｔ２より所定時間後のコード検出タイミング終了位置Ｔ３で終了する。このように、コード検出を行うタイミングＴ１〜Ｔ３は、所定の拍位置Ｔ２を基準に前後にそれぞれ時間幅Ｔ１〜Ｔ２，Ｔ２〜Ｔ３を設定したものとしており、時間Ｔ１〜Ｔ３の間に入力された演奏データ（ノートイベント）が時間Ｔ３におけるコード検出に利用される。つまり、コード検出は、コード検出タイミング（時間幅）Ｔ１〜Ｔ３内に発音している演奏データを元に行われ、例えば、対象の演奏データ（ノートイベント）の音高を調べ、各コードの構成音と比較して一致或いは一番近いコードを検出するが、更に、直前或いはそれ以前からのコード進行を考慮して検出するようにしてもよい。また、対象の演奏データの中から装飾音と見られる演奏データやミスタッチと思われる演奏データを外してコード検出することが好ましい。なお、この例では、コード検出タイミング中に発音している（入力された）演奏データを元にし、且つ、直前に適用されていたコードからの進行を考慮して、新たなコードが検出される（通常の方式）が、演奏開始後最初のコード検出タイミングについては、第１小節第１拍目のコード検出基準位置Ｔ２を開始位置Ｔ１とし、当該最初のコード検出タイミングＴ２〜Ｔ３で入力された演奏データのみを元にコード検出が行われる。
【００２３】
次に、コード適用タイムリミット位置Ｔ４は、時間Ｔ３で検出されたコードの適用について有効となるペダル６のＯＦＦタイミングＴｐｆの最大時間位置を示し、図示のように、時間Ｔ３〜Ｔ４間のタイミングＴｐｆでペダルＯＦＦがあると、（ａ３）に示すように、ペダルＯＦＦがあったタイミングＴｐｆで、時間Ｔ３で検出されたコードが自動伴奏に適用され、コードリストに追記される。また、各時間幅の値は、この例では、Ｔ１〜Ｔ２＝２５０ｍｓ、Ｔ２〜Ｔ３＝５０ｍｓ、Ｔ３〜Ｔ４＝６０ｍｓ〔ｍｓ：ミリ秒〕である。
【００２４】
なお、時間Ｔ３においてペダル６が既にＯＦＦ状態にある場合は、時間Ｔ３でコードが検出されると同時に検出されたコードが自動伴奏に適用される。また、自動伴奏併用演奏処理中、コード検出タイミング開始位置Ｔ１、コード検出タイミング終了位置Ｔ３、タイムリミット位置Ｔ４、演奏データ（ノートイベント）、コードリスト、検出されたコードは、それぞれ、ＲＡＭ２内のレジスタ：ｓＴｉｍｅ，ｅＴｉｍｅ，ｐＬｉｍｉｔ，ＮｏｔｅＬｉｓｔ，ＣｈｏｒｄＬｉｓｔ，Ｃｈｏｒｄに格納される（なお、各レジスタ名は、格納されている情報の内容を示すのにも用いられる）。
【００２５】
（ａ３）は、コードリスト推移の例であり、（０）は、自動伴奏併用演奏処理中の或るコード検出タイミング（１拍目のコード基準位置Ｔ２に対応）におけるコードリスト (ChordList)の内容を示す。コードリストには、演奏の冒頭から順次検出され適用されたコードが列記されており、先頭の適用コード記録位置には、演奏開始後、最初のコード検出タイミングにおける演奏データに基づいて検出されたコードが記録されている（※１）。つまり、最初に検出されたコードは、例外的に、必ず適用される。また、最新の適用コード記録位置には、直前に適用されていたコード（この例では「Chord1」）が記録されており、次のコード検出時に参照される。ここで、コード検出タイミング終了位置 (eTime)Ｔ３に到達しコード検出タイミングが終了すると、コードリスト (ChordList)の最新データ＝Ｃｈｏｒｄ１と、演奏データレジスタ(NoteList)が示す１拍目の押鍵状態に基づいて、コード（この例では「Ｃｈｏｒｄ２」）が検出される。
【００２６】
コードが検出された時間Ｔ３で既にペダル６がＯＦＦ状態にある場合（ペダルＯＦＦ＝「１」）、或いは、時間Ｔ３以降タイムリミット(pLimit)Ｔ４までの時間Ｔｐｆでペダル６をＯＦＦした場合は、（１）のように、検出されたコード (Chord)＝Chord2を時間Ｔ３或いは時間Ｔｐｆで直ちに適用しコードリスト (ChordList)に追記する。一方、時間Ｔ３でペダル６がＯＮ状態にあり、それ以降タイムリミット(pLimit)Ｔ４までにペダル６をオフしない場合には（ペダルＯＦＦ＝「０」）、（２）のようにコードリスト (ChordList)は更新されず（０）と同一の内容を維持する。従って、次の３拍目におけるコード検出では、（１）の場合はコードリスト最新データ＝Ｃｈｏｒｄ２が次の３拍目でのコード検出時に参照され、（２）の場合は、同最新データ＝Ｃｈｏｒｄ１が参照される（※２）。
【００２７】
図２（ｂ）は、自動伴奏併用演奏モードで表示部８のディスプレイに表示されるコード条件設定画面の例を示している。ユーザは、コード条件設定画面の案内に従って操作子７を操作し、拍子やテンポなどの設定項目に対応する入力兼表示欄或いはチェック欄に設定内容を入力し、「ＯＫ」ボタンを操作することにより、必要な設定を行うことができる。また、「キャンセル」ボタンの操作で、設定内容が無効になり画面表示前の設定が有効になる。図示の例では、拍子及びテンポの入力兼表示欄に所望の数値を入力すると、各欄にそれぞれ「４／４」及び「α＝７８」（αはメトロノーム４分音符記号）が表示され、コード検出基準位置設定領域には、設定された拍子に対応して、「１拍目」、「２拍目」、「３拍目」、…がチェック欄と共に表示される。つまり、拍子によって、選択可能なコード検出基準位置は変わる。次いで、１拍目及び３拍目の各チェック欄をクリックし、「コード検出タイミング開始位置から基準位置まで」、「コード検出基準位置からタイミング終了位置まで」及び「コード検出タイミング終了位置からタイムリミット位置まで」の表記に対応する入力兼表示欄に夫々の数値を入力する。そして、ＯＫボタンを操作すると、コード検出基準位置＝「１拍目」及び「３拍目」、時間Ｔ１〜Ｔ２＝「２５０」ｍｓ、Ｔ２〜Ｔ３＝「５０」ｍｓ、Ｔ３〜Ｔ４＝「６０」ｍｓが設定される。
【００２８】
なお、コード検出基準位置は、この例のような拍位置だけでなく、テンポや拍子によっては、小節位置（例えば、２小節毎など）とすることができる。また、基準位置前後の時間幅Ｔ１〜Ｔ２，Ｔ２〜Ｔ３やタイムリミット時間幅Ｔ３〜Ｔ４については、この例ではｍｓ単位で設定しているが、音符長や拍数、クロック数などで設定してもよい。
【００２９】
以上のように、この発明の一実施例による電子楽器では、予め、所定小節毎或いは所定拍毎というような周期的な音楽タイミングを基準にして、コード検出を行うタイミング即ちコード検出タイミングＴ１〜Ｔ３を設定しておき（７）、演奏操作に応じて演奏データ(NoteList)を入力すると（５）、設定されたコード検出タイミングの終了時点Ｔ３で、入力された演奏データ(NoteList)を元にしてコードが検出される。また、検出されたコードの適用を指示する手段としてペダル（フットスイッチ）のような操作子６を用い、そのオフ操作（ペダルＯＦＦ）によりコードの適用を指示するものとし、コード検出タイミングの終了時点Ｔ３以降でもコード適用指示の操作が有効となるタイムリミットＴ４を予め設定しておく。そして、コード検出時点Ｔ３で既にコード適用の指示が受け付けられている場合、及び、コード検出時点Ｔ３からタイムリミットＴ４までの間にペダルＯＦＦによるコード適用の指示が受け付けられた場合（Ｔｐｆ）に、検出されたコードが適用される。
【００３０】
〔処理フロー例〕
図３及び図４は、この発明の一実施例による自動伴奏併用演奏処理の動作例を表わすフローチャートである。この電子楽器は、通常の演奏モードで動作しているときに操作子７中の自動伴奏併用演奏モード設定ボタンを操作することにより、自動伴奏併用演奏モードで動作し、図３及び図４の自動伴奏併用演奏処理を行うことができる。自動伴奏併用演奏処理がスタートすると、ＣＰＵ１は、まず、ステップＰ１で初期化を行い、ＲＡＭ２内の各種レジスタ：ＮｏｔｅＬｉｓｔ、ＣｈｏｒｄＬｉｓｔ、Ｃｈｏｒｄ、ｓＴｉｍｅ（コード検出タイミング開始位置）、ｅＴｉｍｅ（コード検出タイミング終了位置）、ｐＬｉｍｉｔ（コード適用タイムリミット位置）、ペダルＯＦＦ等を初期化する〔ペダルＯＦＦレジスタには、オフ状態を示す初期値＝「１」を記録〕。次のステップＰ２では、表示部８のディスプレイに演奏条件設定画面を表示し、ユーザ操作に応じて、演奏テンポ、拍子、伴奏スタイルの選択、ボリューム、演奏音色など、演奏開始前の演奏条件を設定し、ステップＰ３に進む。
【００３１】
ステップＰ３では、コード条件設定画面をディスプレイに表示し、ユーザ操作に応じてコード検出タイミングＴ１〜Ｔ３及びコード適用のタイムリミットＴ４を設定する。この場合、図２（ｂ）のようなコード条件設定画面を表示し、既にステップＰ２で設定された演奏テンポ及び拍子を修正することができる。そして、次のステップＰ４で、ステップＰ３で設定されたコード検出タイミングＴ１〜Ｔ３及びコード適用タイムリミツトＴ４の内容から、最初のコード検出タイミング開始位置 (sTime)、コード検出タイミング終了位置 (eTime)及びコード適用タイムリミツト(pLimit)を算出し、それぞれ、対応するレジスタ：ｓＴｉｍｅ，ｅＴｉｍｅ，ｐＬｉｍｉｔに格納し、ステップＰ５に進む。図２の例では、ｓＴｉｍｅは、基準位置となる拍の２５０ｍｓ前に、ｅＴｉｍｅは、基準位置となる拍の５０ｍｓ後に、ｐＬｉｍｉｔは、ｅＴｉｍｅの６０ｍｓ後に定められる。但し、レジスタｓＴｉｍｅに格納されるコード検出タイミング開始位置 (sTime)は、最初に限り、最初のコード検出基準位置Ｔ２が設定される。
【００３２】
ステップＰ５では、自動伴奏を使わない通常の演奏モードに戻るか否かをユーザに打診し、通常演奏モード復帰ボタンが操作され通常演奏モードに戻ると判定したときは（Ｐ５＝ＹＥＳ）、この自動伴奏併用演奏モードを終了し、元の通常演奏モードに戻る。一方、続行ボタンが操作されてこの自動伴奏併用演奏モードを続行すると判定したときは（Ｐ５＝ＮＯ）、ステップＰ６に進んで、自動伴奏開始ボタンの操作による自動伴奏のスタートの指示が受け付けられたか否かを判定し、自動伴奏スタートの指示がないときは（Ｐ６＝ＮＯ）、ステップＰ５に戻る。また、ステップＰ６で自動伴奏スタートの指示を受け付ると（Ｐ６＝ＹＥＳ）、ステップＰ７でタイマ１３を起動し、ステップＰ８に進む。
【００３３】
ステップＰ８では、自動伴奏停止ボタンの操作による自動伴奏ストップの指示を受け付けたか否かを判定し、自動伴奏ストップの指示があったときは（Ｐ８＝ＹＥＳ）、ステップＰ９でタイマ１３を停止し、さらに、ステップＰ１０に進んで、伴奏スタイルなどの演奏条件やコード検出タイミングなどのコード条件について設定変更を行うか否かをユーザに打診する。そして、設定変更ボタンが操作され設定変更を行うと判定したときは（Ｐ１０＝ＹＥＳ）ステップＰ１に戻り、ステップＰ１〜Ｐ４で必要な設定や算出を行った後、ステップＰ５に戻る。一方、設定変更を行わない場合は（Ｐ１０＝ＮＯ）、直ちに、ステップＰ５に戻る。
【００３４】
ステップＰ８で自動伴奏ストップの指示を受け付けなかったときには（Ｐ８＝ＮＯ）、先ず、ステップＰ１１（図４）に進んで、演奏操作に基づくノートイベントを受け付けた否かを判定し、ノートイベントを受け付けたときは（Ｐ１１＝ＹＥＳ）、ステップＰ１２でノートイベント処理（図５参照）を行った後、ステップＰ１３に進む。また、ノートイベントを受け付けなかったときは（Ｐ１１＝ＮＯ）、直ちにステップＰ１３に進む。
【００３５】
ステップＰ１３では、コード検出タイミングの終了時点ｅＴｉｍｅに到達したか否かを判定し、ｅＴｉｍｅに到達したときは（Ｐ１３＝ＹＥＳ）、先ず、ステップＰ１４で、ＮｏｔｅＬｉｓｔ及びＣｈｏｒｄＬｉｓｔの情報を元に通常の方式でコードを検出し、検出したコードの値をＣｈｏｒｄに書き込み、続くステップＰ１５でコード適用処理（図６参照）を行った後、ステップＰ１６に進む。また、ｅＴｉｍｅに到達していないときは（Ｐ１３＝ＮＯ）、直ちにステップＰ１６に進む。
【００３６】
ステップＰ１６では、ペダル６が操作されたことを受け付けたか否かを判定し、ペダル操作を受け付けたときは（Ｐ１６＝ＹＥＳ）、ペダルＯＦＦレジスタの内容を反転（例えば、オフ状態のペダル６がオン操作されると、ペダルＯＦＦ＝「０」とし、オン状態のペダル６がオフ操作されると、ペダルＯＦＦ＝「１」とする）した後、ステップＰ１７でコード適用処理（図６参照）を行い、その後、ステップＰ１６に進む。また、ペダル操作を受け付けなかったときは（Ｐ１６＝ＮＯ）、直ちにステップＰ１８に進む。
【００３７】
ステップＰ１８では、コード適用タイムリミット位置ｐＬｉｍｉｔを経過したか否かを判定し、ｐＬｉｍｉｔを経過したときは（Ｐ１８＝ＹＥＳ）、先ず、ステップＰ１９で、コード検出タイミング及びコード適用のタイムリミットの設定内容より、次のｓＴｉｍｅ、ｅＴｉｍｅ、ｐＬｉｍｉｔを算出する。次いで、ステップＰ２０にて、ＮｏｔｅＬｉｓｔ及びＣｈｏｒｄを初期化し、直前のコード検出タイミングで利用した演奏データ及び検出したコードの情報を消去した後、ステップＰ８（図３）に戻る。一方、ｐＬｉｍｉｔを経過しないときは（Ｐ１８＝ＮＯ）直ちにステップＰ８に戻る。
【００３８】
図５は、自動伴奏併用演奏処理のステップＰ１２（図４）で行われるノートイベント処理の動作例を表わすフローチャートである。ＣＰＵ１は、まず、最初のステップＮ１で、現在、タイマ１３はコード検出タイミング（ｓＴｉｍｅ〜ｅＴｉｍｅの間）を示しているか否かを判定し、コード検出タイミングの範囲にあれば（Ｎ１＝ＹＥＳ）、ステップＮ２で、さらに、ステップＰ１１（図４）で受け付けたノートイベントがノートオンであるか否かを判定する。ここで、ノートオンであれば（Ｎ２＝ＹＥＳ）、ステップＮ３で、音源９に当該ノートイベントに従った発音処理を行わせ、次のステップＮ４で、ノートオンされたノートイベント情報をＮｏｔｅＬｉｓｔに追加する。一方、ノートオフであれば（Ｎ２＝ＮＯ）、ステップＮ５で当該ノートイベントによる楽音の消音処理を行わせ、ステップＮ６で、ノートオフされたノートイベント情報をＮｏｔｅＬｉｓｔから削除する。
【００３９】
また、コード検出タイミング（ｓＴｉｍｅ〜ｅＴｉｍｅ）でないときは（Ｎ１＝ＮＯ）、ステップＮ７に進み、ステップＰ１１（図４）で受け付けたノートイベントがノートオンであれば、音源９に発音処理を行わせ、ノートオフであれば消音処理を行わせる。そして、ステップＮ４，Ｎ６，Ｎ７の処理の後は、このノートイベント処理を終了し、自動伴奏併用演奏処理のステップＰ１３（図４）にリターンする。
【００４０】
図６は、自動伴奏併用演奏処理のステップＰ１４，Ｐ１７（図４）で行われるコード適用処理の動作例を表わすフローチャートである。ＣＰＵ１は、まず、最初のステップＣ１で、Ｃｈｏｒｄが初期状態であるか否かを判定し、コードが検出されておりＣｈｏｒｄが初期状態でなければ（Ｃ１＝ＮＯ）ステップＣ２で、現在タイマ１３はｅＴｉｍｅを示しているか否かを判定する。ここで、ｅＴｉｍｅを示しているときは（Ｃ２＝ＹＥＳ）、ステップＣ３に進み、（自動伴奏スタート以降）最初のコード検出タイミング終了時点であるか否かを判定する。一方、タイマ１３がｅＴｉｍｅを示していないときは（Ｃ２＝ＮＯ）、ステップＣ４に進み、現在、タイマ１３はｅＴｉｍｅより後ろでｐＬｉｍｉｔまでを示しているか否かを判定する。また、最初のコード検出タイミング終了時点でないとき（Ｃ３＝ＮＯ）或いはｅＴｉｍｅより後ろでｐＬｉｍｉｔまでのときは（Ｃ４＝ＹＥＳ）、ステップＣ５で、ペダルＯＦＦレジスタの内容を調べ、値「１」即ちペダル６がＯＦＦ状態であるか否かを判定する。
【００４１】
ステップＣ３で、最初のコード検出タイミング終了時点であると判定したとき（Ｃ５＝ＹＥＳ）、或いは、ステップＣ５で、ペダルＯＦＦであると判定したときは（Ｃ５＝ＹＥＳ）、検出されたコードを適用すべきものと判断し、ステップＣ６に進み、Ｃｈｏｒｄを自動伴奏装置１０に出力し、次のステップＣ７で、ＣｈｏｒｄをＣｈｏｒｄＬｉｓｔの末尾に追加する。そして、ステップＣ１で、Ｃｈｏｒｄが初期状態であると判断したとき（Ｃ１＝ＹＥＳ）、ステップＣ４で、現在、「ｅＴｉｍｅより後ろでｐＬｉｍｉｔまでのタイミング」ではないと判断したとき（Ｃ４＝ＮＯ）、ステップＣ５で、ペダルＯＦＦではないと判断したとき（Ｃ５＝ＮＯ）、或いは、ステップＣ７の処理を終えたときは、このコード適用処理を終了し、自動伴奏併用演奏処理のステップＰ１６，Ｐ１８（図４）にリターンする。
【００４２】
なお、ペダルの操作とコード適用との関係は次のようになる：
（１）ペダルＯＦＦのままｓＴｉｍｅに入った場合、ｅＴｉｍｅでコードの検出及び適用を行う。
（２）ペダルＯＮでｓＴｉｍｅに入りｐＬｉｍｉｔまでにペダルＯＦＦがないと、ｅＴｉｍｅで検出したコードは消去する。
（３）ペダルＯＮでｓＴｉｍｅに入りｅＴｉｍｅまでにペダルＯＦＦがくると、ｅＴｉｍｅでコードの検出及び適用を行う。
（４）ペダルＯＮでｓＴｉｍｅに入りｅＴｉｍｅまではペダルＯＦＦはないがｐＬｉｍｉｔまでにペダルＯＦＦがくると、ｅＴｉｍｅで検出しておいたコードを直ちに適用する。
【００４３】
〔種々の実施態様〕
以上、図面を参照しつつこの発明の好適な実施の一形態について説明したが、これは単なる一例であり、この発明は、発明の精神を逸脱しない範囲で種々の変更が可能である。例えば、コード検出を行うタイミングについては、実施例では、コード条件設定画面を電子楽器上に表示して設定しているが、電子楽器上に配置されたスイッチやスライダなどの操作子（７）を使って設定するようにしてもよい。また、例えば、電子楽器内部にテンポと検出タイミングとを対応付けたテーブルを用意しておき、演奏する曲のテンポに応じて自動的に設定するようにしてもよい。演奏する曲以外にも使用する伴奏スタイルデータに応じて設定するようにしてもよい。
【００４４】
コード適用のタイムリミットについては、実施例では、コード検出を行うタイミング設定と同じ設定画面内で行っているが、別の設定画面を用意して設定するようにしてもよいし、スイッチなどの別の操作子で行うようにしてもよい。また、テンポや使用する伴奏スタイルデータなどに応じてお勧め値が用意されていてもよい。
【００４５】
コード検出については、演奏曲の調を指定或いは検出しておき、コード検出に活用してもよい。また、検出したコードの適用については、適用すると判断した場合、そのコードを元に、自動伴奏音の生成だけでなく、ハーモニー音の生成などを行うことができる。
【００４６】
実施例では、自動伴奏のオンで時間を計るようにしているが、シンクロスタートの機能を使い、ユーザの演奏スタートから実際に時間を計り始めるようにしてもよい。また、実施例では、適用されたコードをリストでずっと記憶することで、次のコード検出時に用いることができるが、個数制限を設け最新のもの幾つかのみを記憶するようにしてもよい。
【符号の説明】
【００４７】
Ｔ１〜Ｔ３  コード検出タイミング〔Ｔ１＝開始 (sTime)、Ｔ３＝終了 (eTime)〕、
Ｔ２，Ｔ４  コード検出基準位置及びコード適用タイムリミット位置(pLimit)、
Ｔｐｆ  ペダルＯＦＦタイミング。
【図１】
0005605040.tif 000002
【図２】
0005605040.tif 000003
【図３】
0005605040.tif 000004
【図４】
0005605040.tif 000005
【図５】
0005605040.tif 000006
【図６】
0005605040.tif 000007