(57)【要約】【課題】和音や発音時間が一部重なるような楽音を発音でき、かつ、聴感上自然な演奏で通常のメロディを発音できるようにする。【解決手段】ＣＰＵ１は、鍵盤２による押鍵の入力に応じてノートイベントをＲＡＭ５から読み出し、鍵盤２による次の押鍵の入力があるまで次のノートイベントの読み出しを待機し、鍵盤２によって読み出されたノートイベントの発音開始タイミングから発音終了タイミングまでノートイベントの音高で音源７から発音させ、鍵盤２から入力された押鍵によって発音中の楽音の全てに対して離鍵が入力されたときは音源７に対して発音中の全ての楽音を消音させる。【選択図】        図１
2005037568.tif 000002
【特許請求の範囲】
【請求項１】
演奏操作に応じて発音開始指示又は発音終了指示を入力する入力手段と、
発音すべき楽音の音高、および発音持続時間に関する情報を含むノートイベントを曲進行順に配列してなる曲データを記憶している所定の記憶手段から、前記入力手段による発音開始指示の入力に応じてノートイベントを読み出し、前記入力手段による次の発音開始指示の入力があるまで次のノートイベントの読み出しを待機する読出手段と、
前記読出手段によって読み出されたノートイベントの音高で所定の発音手段から楽音の発音を開始させ、発音中の楽音の全てに対して発音終了指示が入力されない限りは各楽音の発音を前記発音持続時間だけ持続させる一方、発音中の楽音の全てに対して発音終了指示が入力されたときは前記発音手段に対して前記発音中の全ての楽音を消音させる発音制御手段と、
を有する演奏誘導装置。
【請求項２】
前記発音制御手段は、前記読出手段によって読み出されて発音中の楽音数が前記入力手段によって入力された楽音数よりも多い場合にのみ、前記入力された楽音数に等しくなるように前記発音持続時間を経過した前記発音中の楽音を消音させることを特徴とする請求項１記載の演奏誘導装置。
【請求項３】
前記入力手段は、発音終了指示に係る楽音の音高を入力するとともに、前記発音制御手段は、前記読出手段によって読み出されて発音中の楽音数が前記入力手段によって入力された楽音数以上の場合において、前記入力手段によって発音終了指示および音高が入力されたときには、入力された音高に最も近い音高の発音中の楽音を消音させることを特徴とする請求項１記載の演奏誘導装置。
【請求項４】
演奏操作に応じて発音開始指示又は発音終了指示を入力する第１のステップと、
発音すべき楽音の音高、および発音持続時間に関する情報を含むノートイベントを曲進行順に配列してなる曲データを記憶している所定の記憶手段から、前記第１のステップによる発音開始指示の入力に応じてノートイベントを読み出し、前記第１のステップによる次の発音開始指示の入力があるまで次のノートイベントの読み出しを待機する第２のステップと、
前記第２のステップによって読み出されたノートイベントの音高で所定の発音手段から楽音の発音を開始させ、発音中の楽音の全てに対して発音終了指示が入力されない限りは各楽音の発音を前記発音持続時間だけ持続させる一方、発音中の楽音の全てに対して発音終了指示が入力されたときは前記発音手段に対して前記発音中の全ての楽音を消音させる第３のステップと、
を実行する演奏誘導処理のプログラム。
【請求項５】
前記第３のステップは、前記第２のステップによって読み出されて発音中の楽音数が前記第１のステップによって入力された楽音数よりも多い場合にのみ、前記入力された楽音数に等しくなるように前記発音持続時間を経過した前記発音中の楽音を消音させることを特徴とする請求項４記載の演奏誘導処理のプログラム。
【請求項６】
前記第１のステップは、発音終了指示に係る楽音の音高を入力するとともに、前記第３のステップは、前記第２のステップによって読み出されて発音中の楽音数が前記第１のステップによって入力された楽音数以上の場合において、前記第１のステップによって発音終了指示および音高が入力されたときには、入力された音高に最も近い音高の発音中の楽音を消音させることを特徴とする請求項４記載の演奏誘導処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏を誘導する演奏誘導装置および演奏誘導処理のプログラムに関する。
【０００２】
【従来の技術】
例えば、鍵盤の演奏を誘導する演奏誘導装置としては、鍵盤の各鍵ごとにＬＥＤなどの発光素子を配置して、押鍵すべき鍵を誘導する自動押鍵指示の機能を具備した電子楽器が知られている。ある電子楽器の提案によれば、記憶装置から音高情報が読出されるたびに該音高情報に応じて押すべき鍵が指示され、この指示された鍵を押すと、音高一致となって次の音高情報がその前の音高情報に対応する音符の長さに関係なく記憶装置から読出される。すなわち、指示通りに正しく押鍵していくと、個々の音符の長さに関係なく押鍵テンポのみに依存して押すべき鍵が次々に指示されるので、演奏練習者は自己の習熟度に応じた好みのテンポで押鍵練習を行うことができる（特許文献１参照）。
【０００３】
【特許文献１】
特公平２−７０５号公報（第３頁４３行目〜第４頁８行目）
【０００４】
【発明が解決しようとする課題】
ところが、習熟度が低い演奏練習者にとっては、和音や発音時間が一部重なるような音高情報については、同時又は連続して複数の鍵が押すべき鍵が指示されても、その鍵を正しく押鍵することが困難であるという課題があった。この対策として、押鍵すべき鍵の音高とは異なる音高の鍵が押鍵されたときでも、その押鍵に応じて押鍵すべき鍵の音高で発音する方法が考えられる。
【０００５】
図１８は、この方法によって演奏誘導を行う場合のタイミングチャートの例を示す図である。図１８（１）は、押鍵すべき音高Ｃ，Ｅ，Ｇの発音開始タイミングおよび発音終了タイミングを示している。これに対して、図１８（２）および（３）は、任意の３つの鍵であるＫｅｙ１，Ｋｅｙ２，Ｋｅｙ３の押鍵および離鍵による実際の発音のタイミングチャートを示している。
【０００６】
図１８（２）の例では、Ｋｅｙ１の押鍵に応じて音高Ｃのノートイベントが発音開始され、Ｋｅｙ２の押鍵に応じて発音中の音高Ｃのノートイベントが消音されるとともに、音高Ｅのノートイベントが発音開始される。また、Ｋｅｙ３の押鍵に応じて発音中の音高Ｅのノートイベントが消音されるとともに、音高Ｇのノートイベントが発音開始される。すなわち、図１８（２）の例においては、新たな押鍵が発生した時点で発音中の楽音は消音するようになっている。
【０００７】
一方、図１８（３）の例では、Ｋｅｙ１の押鍵に応じて音高Ｃのノートイベントが発音開始され、Ｋｅｙ２の押鍵に応じて音高Ｅのノートイベントが発音開始され、Ｋｅｙ３の押鍵に応じて音高Ｇのノートイベントが発音開始される。すなわち、図１８（３）の例においては、全ての押鍵が離鍵されるまで、音高Ｃ，Ｅ，Ｇの発音が継続するようになっている。
しかしながら、図１８（２）の例では、和音や発音時間が一部重なるような楽音を発音できない。一方、図１８（３）の例では、通常のメロディでは聴感上不自然な演奏になってしまう。
【０００８】
本発明は、このような従来の問題を解決するものであり、和音や発音時間が一部重なるような楽音を発音でき、かつ、聴感上自然な演奏で通常のメロディを発音できる演奏誘導装置および演奏誘導処理のプログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
請求項１に記載の演奏誘導装置は、演奏操作に応じて発音開始指示（実施形態においては、押鍵に相当する）又は発音終了指示（実施形態においては、離鍵に相当する）を入力する入力手段（実施形態においては、図１の鍵盤２に相当する）と、発音すべき楽音の音高（実施形態においては、ノート番号に相当する）、および発音持続時間（実施形態においては、図２（１）のＧａｔｅＴｉｍｅに相当する）に関する情報を含むノートイベントを曲進行順に配列してなる曲データを記憶している所定の記憶手段（実施形態においては、図１のＲＡＭ５に相当する）から、入力手段による発音開始指示の入力に応じてノートイベントを読み出し、入力手段による次の発音開始指示の入力があるまで次のノートイベントの読み出しを待機する読出手段（実施形態においては、図１のＣＰＵ１に相当する）と、読出手段によって読み出されたノートイベントの音高で所定の発音手段から楽音の発音を開始させ、発音中の楽音の全てに対して発音終了指示が入力されない限りは各楽音の発音を発音持続時間だけ持続させる一方、発音中の楽音の全てに対して発音終了指示が入力されたときは発音手段に対して発音中の全ての楽音を消音させる発音制御手段（実施形態においては、図１のＣＰＵ１に相当する）とを有する構成になっている。
【００１０】
この場合において、請求項２に記載のように、発音制御手段は、読出手段によって読み出されて発音中の楽音数が入力手段によって入力された楽音数よりも多い場合にのみ、入力された楽音数に等しくなるように発音持続時間を経過した発音中の楽音を消音させるような構成にしてもよい。
また、請求項３に記載のように、入力手段は、発音終了指示に係る楽音の音高を入力するとともに、発音制御手段は、読出手段によって読み出されて発音中の楽音数が入力手段によって入力された楽音数以上の場合において、入力手段によって発音終了指示および音高が入力されたときには、入力された音高に最も近い音高の発音中の楽音を消音させるような構成にしてもよい。
【００１１】
請求項４に記載の演奏誘導処理のプログラムは、演奏操作に応じて発音開始指示（実施形態においては、押鍵に相当する）又は発音終了指示（実施形態においては、離鍵に相当する）を入力する第１のステップと、発音すべき楽音の音高（実施形態においては、ノート番号に相当する）、および発音持続時間（実施形態においては、図２（１）のＧａｔｅＴｉｍｅに相当する）に関する情報を含むノートイベントを曲進行順に配列してなる曲データを記憶している所定の記憶手段（実施形態においては、図１のＲＡＭ５に相当する）から、第１のステップによる発音開始指示の入力に応じてノートイベントを読み出し、第１のステップによる次の発音開始指示の入力があるまで次のノートイベントの読み出しを待機する第２のステップと、第２のステップによって読み出されたノートイベントの音高で所定の発音手段から楽音の発音を開始させ、発音中の楽音の全てに対して発音終了指示が入力されない限りは各楽音の発音を発音持続時間だけ持続させる一方、発音中の楽音の全てに対して発音終了指示が入力されたときは発音手段に対して前記発音中の全ての楽音を消音させる第３のステップとを実行する構成になっている。なお、第１ないし第３のステップは、ＣＰＵ１の機能に相当する。
【００１２】
この場合において、請求項５に記載のように、第３のステップは、第２のステップによって読み出されて発音中の楽音数が第１のステップによって入力された楽音数よりも多い場合にのみ、入力された楽音数に等しくなるように発音持続時間を経過した発音中の楽音を消音させるような構成にしてもよい。
また、請求項６に記載のように、第１のステップは、発音終了指示に係る楽音の音高を入力するとともに、第３のステップは、第２のステップによって読み出されて発音中の楽音数が第１のステップによって入力された楽音数以上の場合において、第１のステップによって発音終了指示および音高が入力されたときには、入力された音高に最も近い音高の発音中の楽音を消音させるような構成にしてもよい。
【００１３】
【発明の実施の形態】
以下、本発明による演奏誘導装置の第１ないし第３の実施形態について、電子鍵盤楽器を例に採り、図を参照して説明する。
図１は、各実施形態における電子鍵盤楽器の構成を示すブロック図である。この図において、ＣＰＵ１は、システムバスを介して、鍵盤２、スイッチ部３、ＲＯＭ４、ＲＡＭ５、表示部６、および音源７に接続され、これら各部との間で、コマンドおよびデータを授受しながら、この電子鍵盤楽器全体を制御する。
【００１４】
鍵盤２は、演奏操作に応じて、押鍵又は離鍵およびその押鍵又は離鍵についての楽音の鍵番号すなわち音高をＣＰＵ１に入力する。スイッチ部３は、曲練習を開始又は停止するレッスンスイッチ、自動演奏による曲練習のモードを選択するモードスイッチ、その他のスイッチで構成され、操作に応じたオン／オフの状態をＣＰＵ１に入力する。レッスンにおいては、モードスイッチによって３通りの練習モードを選択することができる。
【００１５】
第１の練習モードでは、自動演奏で読み出したノートイベントに応じて押鍵を誘導し、その鍵を正しく押鍵したときに発音を行って、次のノートイベントに曲データを進行させる。第２の練習モードでは、自動演奏で読み出したノートイベントに応じて押鍵を誘導するが、その鍵と異なる鍵を押鍵した場合でも、誘導した鍵の音高で発音を行って、次のノートイベントに曲データを進行させる。第３の練習モードでは、自動演奏で読み出したノートイベントに応じて押鍵を誘導するが、練習者の押鍵には関係なくその曲のテンポで順次ノートイベントを読み出す。なお、以下の各実施形態においては、第２の練習モードの場合について説明する。
【００１６】
ＲＯＭ４は、演奏誘導処理のプログラム、起動時のイニシャライズにおける初期値などをあらかじめ記憶している。ＲＡＭ５は、ＦＤ（フレキシブルディスク）やＣＤなどの外部記憶媒体、外部のＭＩＤＩ、又はネットワークから転送された練習曲の曲データを記憶するデータエリア、および、プログラムの実行に必要な各種のレジスタやフラグのデータエリアを持っている。表示部６は、鍵盤２の各鍵ごとに配置されたＬＥＤであり、発光によって押鍵を誘導する。
音源７は、ＣＰＵ１の発音指示および波形データに応じて、楽音信号を生成してＤ／Ａ変換回路８に出力する。Ｄ／Ａ変換回路８は、その楽音信号をディジタルからアナログに変換し、アンプ９を介してスピーカ１０に供給して発音させる。また、音源７は、ＣＰＵ１の消音指示に応じて発音中の発音を消音させる。
【００１７】
図２は、ＲＡＭ５のデータエリアの構成を示す図である。図２（１）は曲データのデータエリアを示している。曲データは、発音すべき楽音の音高、発音開始タイミングおよび発音終了タイミングからなるノートイベントを曲進行順に配列した構成になっている。すなわち、前ノートイベントからの時間であるＤｅｌｔａの後に次のノートイベントが続く構成になっている。ノートイベントは、ノート番号すなわち音高を示すＮｏｔｅＮｕｍ、ベロシティを示すＶｅｌ、発音時間を示すＧａｔｅＴｉｍｅで構成されている。曲の終りは、ＮｏｔｅＮｕｍ＝Ｖｅｌ＝ＧａｔｅＴｉｍｅ＝０の値になっている。
【００１８】
図２（２）はレジスタ、フラグ、カウンタのデータエリアを示している。Ｎｏｔｅ［０］〜Ｎｏｔｅ［ＮＭＡＸ］は、発音中のノート番号をストアするレジスタであり、ノートオフ時は０がストアされる。Ｔｉｍｅ［０］〜Ｔｉｍｅ［ＮＭＡＸ］は、Ｎｏｔｅ［０］〜Ｎｏｔｅ［ＮＭＡＸ］に対応するノートの発音残り時間をストアするレジスタである。ＤｅｌｔａＣｎｔは、次のノートイベントまでの時間をストアするレジスタである。Ａｄｒは、処理すべきイベントのアドレスすなわち処理イベントアドレスをストアするレジスタである。Ｋｅｙ［０］〜Ｋｅｙ［ＫＭＡＸ］は、押鍵中の鍵番号をストアするレジスタであり、離鍵時は０がストアされる。ＫｅｙＯｎは押鍵フラグであり、押鍵があれば「１」にセットされ、後述する曲データ進行インタラプト処理で押鍵に関する処理が完了した場合には０にリセットされる。ＫｅｙＣｎｔは、押鍵数をカウントするカウンタである。ＮｏｔｅＣｎｔは、発音中のノート数をカウントするカウンタである。Ｐｒｔは、曲データ進行インタラプト処理で使用される状態識別変数であり、自動演奏の通常進行中では０、自動演奏の一時停止中（押鍵待機状態）では１、自動演奏の早送り中では２にセットされる。
【００１９】
次に、図１の電子鍵盤楽器による第１の実施形態における演奏誘導処理の動作について、ＣＰＵ１によって実行されるフローチャート、並びに、ノートイベント、押鍵および離鍵、発音状態の関係を示すタイミングチャートを参照して説明する。
図３は、メインフローチャートであり、初期化処理（ステップＳＡ１）の後、スイッチ処理（ステップＳＡ２）、鍵盤処理（ステップＳＡ３）、その他の処理（ステップＳＡ４）を繰り返し実行する。ステップＳＡ１の初期化処理においては、Ｎｏｔｅ［０］〜Ｎｏｔｅ［ＮＭＡＸ］を全て０、Ｔｉｍｅ［０］〜Ｔｉｍｅ［ＮＭＡＸ］を全て０、ＤｅｌｔａＣｎｔを０、Ａｄｒを−１、Ｋｅｙ［０］〜Ｋｅｙ［ＫＭＡＸ］を全て０、ＫｅｙＯｎを０、ＫｅｙＣｎｔを０、ＮｏｔｅＣｎｔを０、Ｐｒｔを０にそれぞれセットする。
【００２０】
図４は、図３におけるステップＳＡ２のスイッチ処理のフローチャートである。スイッチ部３のレッスンスイッチがオンされたか否かを判別し（ステップＳＢ１）、オンされたときはＡｄｒが−１であるか否かを判別する（ステップＳＢ２）。−１である場合には、レッスン停止中でまだ曲データが読み出されていない状態でレッスンスイッチがオンされた状態であるので、Ａｄｒに曲データの先頭イベントアドレスをストアし、ＤｅｌｔａＣｎｔにＡｄｒのイベントであるＤｅｌｔａの値をストアし、Ｄｅｌｔａに続く先頭のノートイベントのノート番号に対応する鍵のナビゲート表示、すなわち、ノート番号に対応する鍵番号のＬＥＤを発光する（ステップＳＢ３）。そして、メインフローに戻る。
ステップＳＢ２において、Ａｄｒが−１でない場合には、曲練習が進行中にレッスンスイッチがオンされた状態であるので、Ａｄｒに−１をセットし、Ｎｏｔｅ［０］〜Ｎｏｔｅ［ＮＭＡＸ］の全てをクリアし、ＮｏｔｅＣｎｔおよびＫｅｙＣｎｔそれぞれを「０」にセットし、鍵盤（メロディ）および伴奏の全ての発音を終了する（ステップＳＢ４）。そして、メインフローに戻る。
ステップＳＢ１において、レッスンスイッチがオンでない場合には、その他のスイッチ処理を行って（ステップＳＢ５）、メインフローに戻る。
【００２１】
図５は、図３のメインフローチャートにおけるステップＳＡ３の鍵盤処理のフローチャートである。この処理では、鍵盤状態に変化があるか否かを判別する（ステップＳＣ１）。押鍵の変化があったときは、変数ｎ＝０〜ＫＭＡＸで、Ｋｅｙ［ｎ］＝０（空き）のレジスタがあるか否かを判別する（ステップＳＣ２）。Ｋｅｙ［ｎ］＝０のレジスタがある場合には、Ｋｅｙ［ｎ］に押鍵番号をストアし、押鍵フラグＫｅｙＯｎを１にセットし、ＫｅｙＣｎｔを１だけインクリメントする（ステップＳＣ３）。この後は、ステップＳＣ１に戻ってさらに鍵盤状態を判別する。離鍵の変化があったときには、キーオフ処理を実行する（ステップＳＣ４）。この後は、ステップＳＣ１に戻ってさらに鍵盤状態を判別する。鍵盤状態に変化がない場合には、メインフローに戻る。
【００２２】
図６は、図５の鍵盤処理におけるステップＳＣ４のキーオフ処理のフローチャートである。この処理では、変数ｎ＝０〜ＫＭＡＸで、Ｋｅｙ［ｎ］＝離鍵番号のレジスタがあるか否かを判別し（ステップＳＬ１）、離鍵番号のレジスタがある場合には、Ｋｅｙ［ｎ］に０をストアし、ＫｅｙＣｎｔを１だけデクリメントする（ステップＳＬ２）。そして、ＫｅｙＣｎｔが０になったか否かを判別する（ステップＳＬ３）。ＫｅｙＣｎｔが０になったときは、Ｎｏｔｅ［０］〜Ｎｏｔｅ［ＮＭＡＸ］全てをクリアし、ＮｏｔｅＣｎｔに０をストアし、鍵盤の全音の発音を終了する（ステップＳＬ４）。発音を終了した後、又は、ステップＳＬ１において離鍵番号がない場合、若しくは、ステップＳＬ３においてＫｅｙＣｎｔが０でない場合には、図５の鍵盤処理のフローに戻る。
【００２３】
図７は、一定時間（Ｄｅｌｔａの単位時間間隔）ごとの割り込みである曲データ進行インタラプト処理のフローチャートである。この処理では、まず、Ａｄｒが−１であるか否かを判別する（ステップＳＤ１）。Ａｄｒが−１である場合には、図３のメインフローに戻るが、Ａｄｒが−１でない場合、すなわち、曲データのレッスン中である場合には、ＫｅｙＯｎが１であるか否かを判別する（ステップＳＤ２）。すなわち、押鍵がされたか否かを判別する。ＫｅｙＯｎが１である場合には、Ｐｒｔを２（自動早送り）にセットし、ＫｅｙＯｎを０にリセットする（ステップＳＤ３）。
【００２４】
ステップＳＤ２において、ＫｅｙＯｎが０である場合には、押鍵がされていないので、Ｐｒｔが１であるか又は０であるかを判別する（ステップＳＤ４）。Ｐｒｔが０である（ステップＳＤ４でＮＯ）場合には、曲データ歩進処理を行う（ステップＳＤ５）。一方、ステップＳＤ３の後にも、ステップＳＤ５に移行して曲データ歩進処理を行う。すなわち、Ｐｒｔが０で自動演奏の通常進行中である場合、又は、Ｐｒｔが２で自動演奏の早送りである場合には、いずれも曲データ歩進処理を行う。次に、発音経過処理を行う（ステップＳＤ６）。ステップＳＤ４において、Ｐｒｔが１である場合には、自動演奏の一時停止中であるので、曲データ歩進処理は行わず、ステップＳＤ６に移行して発音経過処理を行う。発音経過処理の後はメインフローに戻る。
【００２５】
図８は、図７の曲データ進行インタラプト処理におけるステップＳＤ５の曲データ歩進処理のフローチャートである。この処理では、時間更新処理を行って（ステップＳＥ１）、ＤｅｌｔａＣｎｔが０であるか否かを判別する（ステップＳＥ２）。ＤｅｌｔａＣｎｔが０でない場合には、伴奏発音処理を行う（ステップＳＥ３）。ＤｅｌｔａＣｎｔが０である場合には、イベント処理を行う（ステップＳＥ４）。伴奏発音処理又はイベント処理の後は、図７の曲データ進行インタラプト処理に戻る。
【００２６】
図９は、図８の曲データ歩進処理におけるステップＳＥ１の時間更新処理のフローチャートである。この処理では、ＤｅｌｔａＣｎｔが０であるか否かを判別し（ステップＳＦ１）、０でない場合にはＤｅｌｔａＣｎｔを１だけデクリメントする（ステップＳＦ２）。そして、ＤｅｌｔａＣｎｔが０になったか否かを判別する（ステップＳＦ３）。ＤｅｌｔａＣｎｔが０でない場合には、Ｐｒｔが０であるか２であるかを判別する（ステップＳＦ４）。Ｐｒｔが２で自動演奏の早送り中である場合には、伴奏発音処理を行って（ステップＳＦ５）、ステップＳＦ２に移行してＤｅｌｔａＣｎｔをデクリメントする。Ｐｒｔが０である場合、又は、ステップＳＦ１若しくはステップＳＦ３においてＤｅｌｔａＣｎｔが０である場合には、図８の曲データ歩進処理のフローに戻る。すなわち、次イベント処理までの時間が０でない場合には、タイマインタラプトごとにＤｅｌｔａＣｎｔをデクリメントする。
【００２７】
図１０は、図８の曲データ歩進処理におけるステップＳＥ４のイベント処理のフローチャートである。この処理では、Ａｄｒのコマンドがノートイベントであるか曲のエンドであるかを判別し（ステップＳＧ１）、コマンドがノートイベントである場合には、Ｐｒｔが０（通常進行）であるか２（早送り）であるかを判別する（ステップＳＧ２）。０である場合には、次のノートイベントの発音タイミングに達したので、Ｐｒｔを１（押鍵待機）にセットし、伴奏音発音処理を行う（ステップＳＧ３）。そして、図７の曲データ進行インタラプト処理に戻る。
【００２８】
ステップＳＧ２において、Ｐｒｔが２である場合には、変数ｎ＝０〜ＮＭＡＸで、Ｎｏｔｅ［ｎ］＝０があるか否かを判別する（ステップＳＧ４）。Ｎｏｔｅ［ｎ］＝０がある場合には、ＡｄｒのイベントのＮｏｔｅＮｕｍ、Ｖｅｌでの発音を開始し、Ｎｏｔｅ［ｎ］にＮｏｔｅＮｕｍをストアし、Ｔｉｍｅ［ｎ］にＧａｔｅＴｉｍｅをストアし、ＮｏｔｅＣｎｔを１だけインクリメントする（ステップＳＧ５）。この後、又は、ステップＳＧ４においてＮｏｔｅ［ｎ］＝０がない場合には、Ａｄｒに次イベントアドレスをストアし、ＤｅｌｔａＣｎｔにＡｄｒのイベントのＤｅｌｔａをストアし、当該鍵のナビゲートを表示する（ステップＳＧ６）。
【００２９】
次に、ＤｅｌｔａＣｎｔが０であるか否かを判別する（ステップＳＧ７）。すなわち、次イベント処理までの時間が０になったか否かを判別する。ＤｅｌｔａＣｎｔが０でない場合には、Ｐｒｔに０をセットし、伴奏発音処理を行う（ステップＳＧ８）。そして、図７の曲データ進行インタラプト処理に戻る。ＤｅｌｔａＣｎｔが０である場合には、ステップＳＧ１に移行してＡｄｒのコマンドを判別する。コマンドがエンドである場合には、Ａｄｒを−１にセットし、Ｎｏｔｅ［０］〜Ｎｏｔｅ［ＮＭＡＸ］の全てをクリアし、ＮｏｔｅＣｎｔおよびＫｅｙＣｎｔに０をストアし、鍵盤および伴奏の全音の発音を終了する（ステップＳＧ９）。そして、図７の曲データ進行インタラプト処理に戻る。
【００３０】
図１１は、図７の曲データ進行インタラプト処理におけるステップＳＤ６の発音経過処理のフローチャートである。この処理では、まず、Ｎｏｔｅ［  ］を指定する変数ｎを初期値０にセットして（ステップＳＨ１）、ｎをインクリメントしながら、ステップＳＨ２〜ステップＳＨ８のループ処理を繰り返す。このループ処理では、Ｎｏｔｅ［ｎ］＝０であるか否かを判別し（ステップＳＨ２）、Ｎｏｔｅ［ｎ］＝０でない場合すなわちＮｏｔｅ［ｎ］のノートイベントが発音中である場合には、発音時間の残り時間Ｔｉｍｅ［ｎ］＝０であるか否かを判別する（ステップＳＨ３）。Ｔｉｍｅ［ｎ］＝０でない場合にはＴｉｍｅ［ｎ］を１だけデクリメントし（ステップＳＨ４）、再度Ｔｉｍｅ［ｎ］＝０であるか否かを判別する（ステップＳＨ５）。
【００３１】
ステップＳＨ５又はステップＳＨ３において、Ｔｉｍｅ［ｎ］＝０である場合には、ノートオフ処理を行う（ステップＳＨ６）。ノートオフ処理の後、又は、ステップＳＨ２においてＮｏｔｅ［ｎ］＝０である場合、若しくは、ステップＳＨ５においてＴｉｍｅ［ｎ］＝０でない場合には、ｎを１だけインクリメントする（ステップＳＨ７）。そして、ｎがＮＭＡＸより大きいか否かを判別する（ステップＳＨ８）。ｎがＮＭＡＸ以下である場合には、ステップＳＨ２に移行してループ処理を繰り返す。ステップＳＨ８において、ｎがＮＭＡＸより大きい場合、すなわち一定時間ごとの割り込みが入った時点で発音中のノートイベントの発音経過処理が終了したときは、図７の曲データ進行インタラプト処理に戻る。
【００３２】
図１２は、図１１の発音経過処理におけるステップＳＨ６のノートオフ処理のフローチャートである。この処理では、Ｎｏｔｅ［ｎ］の発音を終了し、ＮｏｔｅＣｎｔを１だけデクリメントして、Ｎｏｔｅ［ｎ］に０をストアして（ステップＳＪ１）、図１１の発音経過処理に戻る。
【００３３】
図１３は、第１の実施形態における演奏誘導を行う場合のタイミングチャートの例を示す図である。図１３（１）は、押鍵すべき音高Ｃ，Ｅ，Ｇのノートイベントの発音開始タイミングおよび発音終了タイミングを示している。これに対して、図１３（２）は、任意の３つの鍵であるＫｅｙ１，Ｋｅｙ２，Ｋｅｙ３の押鍵および離鍵による実際の発音のタイミングチャートを示している。
【００３４】
Ｋｅｙ１の押鍵のタイミングで音高Ｃのノートイベントの発音が開始され、Ｋｅｙ１の離鍵のタイミングで全鍵オフとなるので、音高Ｃの発音終了タイミングに達する前に音高Ｃは消音される。次に、Ｋｅｙ２の押鍵のタイミングで音高Ｅのノートイベントの発音が開始され、音高Ｅのノートイベントの発音終了タイミングで、Ｋｅｙ２の離鍵のタイミングに達する前に音高Ｅは消音される。音高Ｅのノートイベントの発音中に、Ｋｅｙ３の押鍵のタイミングで音高Ｇのノートイベントの発音が開始され、Ｋｅｙ３の離鍵のタイミングで全鍵が離鍵となるので、音高Ｇの発音終了タイミングに達する前に音高Ｇは消音される。
【００３５】
このように、第１の実施形態によれば、鍵盤２は、図５および図６に示すように、演奏操作に応じて押鍵又は離鍵およびその押鍵又は離鍵に係る楽音の音高（図１３の例では、Ｋｅｙ１，Ｋｅｙ２，Ｋｅｙ３の音高）をＣＰＵ１に入力する。ＣＰＵ１は、発音すべき楽音の音高、発音開始タイミングおよび発音終了タイミングを含むノートイベントを曲進行順に配列してなる曲データを記憶しているＲＡＭ５から、鍵盤２による押鍵の入力に応じてノートイベントを読み出し、鍵盤２による次の押鍵の入力があるまで次のノートイベントの読み出しを待機し（図７において、ステップＳＤ４でＰｒｔ＝１の場合、図１３の例では、音高Ｅのノートイベントの発音開始タイミング（ｔ２）からＫｅｙ２のオン（ｔ３）までの場合）、鍵盤２によって読み出されたノートイベントの発音開始タイミングから発音終了タイミングまでノートイベントの音高で音源７から発音させ（図１０および図１１において、ステップＳＧ５〜ステップＳＨ６までの場合、図１３の例では、Ｋｅｙ２のオン（ｔ３）から音高Ｅのノートイベントの発音終了タイミング、すなわちｔ３から音高Ｅのノートイベントの発音時間（ＧａｔｅＴｉｍｅ）ＧＴＥが経過したタイミング（ｔ４）までの場合）、鍵盤２から入力された押鍵によって発音中の楽音の全てに対して離鍵が入力されたときは音源７に対して発音中の全ての楽音を消音させる（図６において、ステップＳＬ３のＹＥＳからステップＳＬ４までの場合、図１３の例では、Ｋｅｙ１のオフ（ｔ１）およびＫｅｙ３のオフ（ｔ５）の場合）。
したがって、この第１の実施形態の構成によれば、和音や発音時間が一部重なるような楽音を発音でき、かつ、全鍵離鍵にもかかわらず発音継続という不自然な動作を避けることで、聴感上自然な演奏で通常のメロディを発音できる。
【００３６】
次に、図１の電子鍵盤楽器による第２の実施形態における演奏誘導処理の動作について、ＣＰＵ１によって実行されるフローチャート、並びに、ノートイベント、押鍵および離鍵、発音状態の関係を示すタイミングチャートを参照して説明する。なお、この第２の実施形態において、ＣＰＵ１によって実行されるフローチャートのほとんどは、第１の実施形態と同じであるので、第１の実施形態における図面を援用しつつ、異なる部分について動作を説明する。
【００３７】
図１４は、図１１の発音経過処理におけるステップＳＨ６のノートオフ処理の第２の実施形態におけるフローチャートである。この処理では、発音中のノートイベントの数であるＮｏｔｅＣｎｔが、押鍵数であるＫｅｙＣｎｔよりも多いか否かを判別し（ステップＳＫ１）、ＮｏｔｅＣｎｔがＫｅｙＣｎｔより多い場合には、Ｎｏｔｅ［ｎ］の発音を終了し、ＮｏｔｅＣｎｔを１だけデクリメントし、Ｎｏｔｅ［ｎ］に０をストアする（ステップＳＫ２）。そして、図１１の発音経過処理に戻る。
【００３８】
図１５は、第２の実施形態における楽音誘導を行う場合のタイミングチャートの例を示す図である。
図１５（１）は、押鍵すべき音高Ｃ，Ｅ，Ｇの発音開始タイミングおよび発音終了タイミングを示し、図１５（２）は、図１５（１）の押鍵誘導に対する任意の鍵の押鍵および離鍵による実際の発音のタイミングチャートを示している。
図１５（２）においては、３つの鍵であるＫｅｙ１，Ｋｅｙ２，Ｋｅｙ３の同時押鍵によって音高Ｃのノートイベントの発音が開始される。その後、４つ目の鍵であるＫｅｙ４の押鍵によって音高Ｅのノートイベントの発音が開始され、次に５つ目の鍵であるＫｅｙ５の押鍵によって音高Ｇの発音が開始される。音高Ｃのノートイベントの発音タイミング（ｔ１）では、ＫｅｙＣｎｔ＝４、ＮｏｔｅＣｎｔ＝２となっており、図１４のステップＳＫ１でＮＯとなるので、この時点では消音はされない。また音高Ｅのノートイベントの発音終了タイミング（ｔ２）では、ＫｅｙＣｎｔ＝５、ＮｏｔｅＣｎｔ＝３となっており、同様に、この時点では消音はされない。Ｋｅｙ１〜Ｋｅｙ５の全ての離鍵によって、全部のノートイベントが消音される。これにより、押鍵数と発音中のノートイベント数との差の拡大を防止することができる。
【００３９】
図１５（３）は、押鍵すべき音高Ｃ，Ｅ，Ｇの同時発音の発音開始タイミングおよび発音終了タイミングを示し、図１５（４）は、図１５（３）の押鍵誘導に対する１つの鍵の押鍵および離鍵による実際の発音のタイミングチャートを示している。
図１５（４）においては、鍵Ｋｅｙ１の押鍵によって３つのノートイベントである音高Ｃ，Ｅ，Ｇが同時に発音を開始されるため、ＫｅｙＣｎｔ＝１、ＮｏｔｅＣｎｔ＝３となり、音高Ｇおよび音高Ｅのノートイベントがそれぞれ発音終了タイミング（ｔ１、ｔ２）に達したときに消音される。その後、音高Ｃのノートイベントが発音終了タイミング（ｔ３）に達したとき、ＫｅｙＣｎｔ＝１、ＮｏｔｅＣｎｔ＝１であるから、この時点では音高Ｃのノートイベントは消音されない。そしてその後、Ｋｅｙ１の離鍵によって全鍵が離鍵となった時点（ｔ４）で、音高Ｃのノートイベントが消音される。これにより、押鍵数と発音中のノートイベント数との差の拡大を防止するとともに、離鍵されるまでノートオフしないという自然な演奏に近い曲データの発音が実現できる。
【００４０】
このように、第２の実施形態によれば、ＣＰＵ１は、鍵盤２によって読み出されて発音中のノートイベント数が、鍵盤２によって入力された押鍵数よりも多い場合には、入力された押鍵数に達するまで発音終了タイミングに達した発音中のノートイベントを消音させる（図１４のフローチャート、図１５のタイミングチャート）。
したがって、この第２の実施形態の構成によれば、和音や発音時間が一部重なるような楽音を発音でき、かつ、押鍵数と発音中のノートイベント数との差の拡大を防止するとともに、離鍵されるまでノートオフしないという自然な演奏に近い曲データの発音を実現して、聴感上自然な演奏で通常のメロディを発音できる。
【００４１】
次に、図１の電子鍵盤楽器による第３の実施形態における演奏誘導処理の動作について、ＣＰＵ１によって実行されるフローチャート、並びに、ノートイベント、押鍵および離鍵、発音状態の関係を示すタイミングチャートを参照して説明する。なお、この第３の実施形態においても、上記第２の実施形態と同様に、ＣＰＵ１によって実行されるフローチャートのほとんどは、第１の実施形態と同じであるので、第１の実施形態における図面を援用しつつ、異なる部分について動作を説明する。
【００４２】
図１６は、図５の鍵盤処理におけるステップＳＣ４のキーオフ処理の第３の実施形態におけるフローチャートである。この処理では、変数ｎ＝０〜ＫＭＡＸで、Ｋｅｙ［ｎ］＝離鍵番号のレジスタがあるか否かを判別し（ステップＳＭ１）、離鍵番号のレジスタがある場合には、ＫｅｙＣｎｔを１だけデクリメントする（ステップＳＭ２）。そして、ＮｏｔｅＣｎｔがＫｅｙＣｎｔよりも多いか否かを判別する（ステップＳＭ３）。ＮｏｔｅＣｎｔがＫｅｙＣｎｔ以下である場合には、Ｋｅｙ［ｎ］に０をストアする（ステップＳＭ４）。この後、又は、ステップＳＭ１において離鍵番号がない場合には、図５の鍵盤処理のフローに戻る。
【００４３】
ステップＳＭ３において、ＮｏｔｅＣｎｔがＫｅｙＣｎｔよりも多い場合には、レジスタＮｏｔｅ［  ］を指定する変数ｒおよびＲ、発音中のノート番号と離鍵された鍵番号との音高差をストアするレジスタＤにそれぞれ初期値０，−１，−１をセットして（ステップＳＭ５）、ステップＳＭ６〜ステップＳＭ１１のループ処理を繰り返す。このループ処理において、Ｎｏｔｅ［ｒ］＝０であるか否かを判別し（ステップＳＭ６）、Ｎｏｔｅ［ｒ］＝０でない場合には、Ｎｏｔｅ［ｒ］からＫｅｙ［ｎ］を減算した結果の絶対値をレジスタｄにストアする（ステップＳＭ７）。すなわち、発音中のノートイベントのノート番号と離鍵された鍵の鍵番号との音高差をｄにストアする。
【００４４】
次に、Ｄが−１（初期値）であるか又はＤがｄより大きいか否かを判別する（ステップＳＭ８）。Ｄが−１又はＤがｄより大きい場合には、Ｄにｄの音高差をストアし、Ｒにｒの値をストアする（ステップＳＭ９）。この後、又は、ステップＳＭ６においてＮｏｔｅ［ｒ］＝０である場合、若しくは、ステップＳＭ８においてＤが−１でなく、かつ、Ｄがｄ以下である場合には、ｒを１だけインクリメントする（ステップＳＭ１０）。そして、ｒがＮＭＡＸより大きいか否かを判別する（ステップＳＭ１１）。すなわち、処理中の全てのノートイベントについてループ処理が終了したか否かを判別する。ｒがＮＭＡＸ以下で、処理中の全てのノートイベントについてループ処理が終了していない場合には、ステップＳＭ６に移行してループ処理を繰り返す。
【００４５】
ループ処理のステップＳＭ７で算出した音高差ｄが、ステップＳＭ８においてＤより小さい場合には、ステップＳＭ９でそのときのｄの音高差がＤにストアされる。したがって、ステップＳＭ１１においてｒがＮＭＡＸより大きくなって、処理中の全てのノートイベントについてループ処理が終了したときには、Ｋｅｙ［ｎ］の鍵番号に最も近い音高差のノート番号のＮｏｔｅ［Ｒ］が検出されるか、又は、全てのＮｏｔｅ［  ］が０であり、Ｒが初期値−１の状態である。したがって、ループ処理が終了したときは、Ｒが−１であるか否かを判別し（ステップＳＭ１２）、Ｒが−１でない場合には、Ｎｏｔｅ［Ｒ］の発音を終了し、ＮｏｔｅＣｎｔを１だけデクリメントし、Ｎｏｔｅ［Ｒ］に０をストアする（ステップＳＭ１３）。この後、又は、ステップＳＭ１２でＲが−１の場合には、ステップＳＭ３に移行してＮｏｔｅＣｎｔがＫｅｙＣｎｔより大きいか否かを判別する。
【００４６】
図１７は、第３の実施形態における楽音誘導を行う場合のタイミングチャートの例を示す図である。
図１７（１）は、押鍵すべき音高Ｃ４，Ｅ４，Ｇ４の発音開始タイミングおよび発音終了タイミングを示し、図１７（２）は、図１７（１）の押鍵誘導に対する音高Ｃ４，Ｅ４，Ａ４の鍵の押鍵および離鍵による実際の発音のタイミングチャートを示している。
図１７（２）においては、ＫｅｙＣ４の押鍵によって音高Ｃ４のノートイベントの発音が開始され、ＫｅｙＥ４の押鍵によって音高Ｅ４のノートイベントの発音が開始され、ＫｅｙＡ４の押鍵によって音高Ｇ４のノートイベントの発音が開始される。その後、ＫｅｙＣ４の離鍵によって音高Ｃ４のノートイベントが消音され、ＫｅｙＡ４の離鍵によってＫｅｙＡ４の音高に最も近い音高Ｇ４のノートイベントが消音される。さらにその後、ＫｅｙＥ４の離鍵によって音高Ｅ４のノートイベントが消音される。
【００４７】
このように、第３の実施形態によれば、ＣＰＵ１は、鍵盤２によって読み出されて発音中のノートイベント数が鍵盤２によって押鍵された鍵数以上の場合（図１６のステップＳＭ２の処理の後、ステップＳＭ３でＹＥＳの場合、図１７の例においては、ＫｅｙＡ４が離鍵の場合）において、鍵盤２によって離鍵がされたときには、離鍵の音高に最も近い音高の発音中のノートイベントを消音させる（図１６のステップＳＭ１３、図１７の例においては、音高Ｇ４のノートイベントの消音）。
したがって、和音や発音時間が一部重なるような楽音を発音でき、かつ、発音中のノート番号で、離鍵された鍵番号に最も近いものから順次消音し、押鍵数と発音ノート数とを一致させることにより、聴感上自然な演奏で通常のメロディを発音できる。
【００４８】
また、上記各実施形態においては、電子鍵盤楽器を例に採って演奏誘導装置を説明したが、本発明の演奏誘導装置としては電子鍵盤楽器に限定されるものではない。例えば、鍵盤２の代わりに、弦を有する電子弦楽器やキースイッチおよびマウスピースを有する電子管楽器などにも本発明を適用することができる。すなわち、演奏操作に応じて発音開始指示又は発音終了指示、およびその発音開始指示又は発音終了指示に係る楽音の音高を入力する入力手段を有する装置において、演奏を誘導する機能をもった演奏誘導装置の全てに本発明を適用することができる。
【００４９】
また、上記各実施形態および他の実施形態においては、ＲＯＭ４にあらかじめ記憶された演奏誘導処理のプログラムをＣＰＵ１が実行する演奏誘導装置について説明したが、ＦＤ（フレキシブルディスク）やＣＤ−ＲＯＭなどの外部記憶媒体を駆動するドライバを設けて、その外部記憶媒体から演奏誘導処理のプログラムをインストールする構成にしてもよい。あるいは、インターネットなどのネットワークを介して、外部のサーバなどの装置から演奏誘導処理のプログラムをインストールする構成にしてもよい。この場合には、プログラムの発明を実現できる。
【００５０】
すなわち、その演奏誘導処理のプログラムは、演奏操作に応じて発音開始指示又は発音終了指示を入力する第１のステップと、発音すべき楽音の音高、および発音持続時間に関する情報を含むノートイベントを曲進行順に配列してなる曲データを記憶している所定の記憶手段から、第１のステップによる発音開始指示の入力に応じてノートイベントを読み出し、第１のステップによる次の発音開始指示の入力があるまで次のノートイベントの読み出しを待機する第２のステップと、第２のステップによって読み出されたノートイベントの音高で所定の発音手段から楽音の発音を開始させ、発音中の楽音の全てに対して発音終了指示が入力されない限りは各楽音の発音を前記発音持続時間だけ持続させる一方、発音中の楽音の全てに対して発音終了指示が入力されたときは発音手段に対して発音中の全ての楽音を消音させる第３のステップとを実行するものである。
【００５１】
【発明の効果】
本発明によれば、演奏操作に応じて発音開始指示又は発音終了指示を入力し、発音すべき楽音の音高、および発音持続時間に関する情報を含むノートイベントを曲進行順に配列してなる曲データを記憶している所定の記憶手段から、発音開始指示の入力に応じてノートイベントを読み出し、次の発音開始指示の入力があるまで次のノートイベントの読み出しを待機し、読み出されたノートイベントの音高で所定の発音手段から楽音の発音を開始させ、発音中の楽音の全てに対して発音終了指示が入力されない限りは各楽音の発音を発音持続時間だけ持続させる一方、発音中の楽音の全てに対して発音終了指示が入力されたときは発音中の全ての楽音を消音させるので、和音や発音時間が一部重なるような楽音を発音でき、かつ、聴感上自然な演奏で通常のメロディを発音できるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の各実施形態における電子鍵盤楽器の構成を示すブロック図。
【図２】図１におけるＲＡＭのデータエリアの構成を示す図。
【図３】図１におけるＣＰＵのメインフローチャート。
【図４】図３におけるスイッチ処理のフローチャート。
【図５】図３における鍵盤処理のフローチャート。
【図６】図５の鍵盤処理におけるキーオフ処理のフローチャート。
【図７】一定時間ごとの曲データ進行インタラプト処理のフローチャート。
【図８】図７の曲データ進行インタラプト処理における曲データ歩進処理のフローチャート。
【図９】図８の曲データ歩進処理における時間更新処理のフローチャート。
【図１０】図８の曲データ歩進処理におけるイベント処理のフローチャート。
【図１１】図７の曲データ進行インタラプト処理における発音経過処理のフローチャート。
【図１２】図１１の発音経過処理におけるノートオフ処理のフローチャート。
【図１３】第１の実施形態における楽音誘導を行う場合のタイミングチャートの例を示す図。
【図１４】図１１の発音経過処理におけるノートオフ処理の第２の実施形態におけるフローチャート。
【図１５】第２の実施形態における楽音誘導を行う場合のタイミングチャートの例を示す図。
【図１６】図５の鍵盤処理におけるキーオフ処理の第３の実施形態におけるフローチャート。
【図１７】第３の実施形態における楽音誘導を行う場合のタイミングチャートの例を示す図。
【図１８】従来の方法によって楽音誘導を行う場合のタイミングチャートの例を示す図。
【符号の説明】
１  ＣＰＵ
２  鍵盤
３  スイッチ部
４  ＲＯＭ
５  ＲＡＭ
６  表示部
７  音源
８  Ｄ／Ａ変換回路
９  アンプ
１０  スピーカ
【図１】
2005037568.tif 000003
【図２】
2005037568.tif 000004
【図３】
2005037568.tif 000005
【図４】
2005037568.tif 000006
【図５】
2005037568.tif 000007
【図６】
2005037568.tif 000008
【図７】
2005037568.tif 000009
【図８】
2005037568.tif 000010
【図９】
2005037568.tif 000011
【図１０】
2005037568.tif 000012
【図１１】
2005037568.tif 000013
【図１２】
2005037568.tif 000014
【図１３】
2005037568.tif 000015
【図１４】
2005037568.tif 000016
【図１５】
2005037568.tif 000017
【図１６】
2005037568.tif 000018
【図１７】
2005037568.tif 000019
【図１８】
2005037568.tif 000020