(57)【特許請求の範囲】
【請求項１】
曲データを構成するノートのノートオンあるいはノートオフを指示するイベントデータ及び当該イベントデータ間の時間を示す時間データが所定の順序で記憶された曲データを記憶する曲データ記憶手段と、
鍵盤の各鍵にて指示されるノートに対応した領域を有し、夫々ノートオン情報あるいはノートオフ情報の何れかが記憶可能な第１及び第２のイベントバッファと、
前記曲データ記憶手段に記憶されている時間データの示すタイミング毎に、対応するイベントデータを読み出す読み出し手段と、
この読み出し手段により読み出されたイベントデータがノートオンを指示する場合はノートオン情報を、ノートオフを指示する場合はノートオフ情報を、当該イベントデータのノートに対応する前記第１及び第２のイベントバッファの領域に記憶させる記憶制御手段と、
前記第２のイベントバッファに記憶されたノートオン情報及びノートオフ情報に基づいて前記鍵盤の押離鍵操作を指示するガイド手段と、
前記鍵盤の押離鍵操作に基づいてイベントデータを生成するとともに、生成されたイベントデータがノートオンを指示する場合はノートオン情報を、ノートオフを指示する場合はノートオフ情報を、当該イベントデータのノートに対応する前記第２のイベントバッファの領域に記憶させる鍵盤処理手段と、
所定の周期で前記第１のイベントバッファの記憶内容を前記第２のイベントバッファに転送してリフレッシュするリフレッシュ手段と、
を有する演奏教習装置。
【請求項２】
曲データを構成するノートのノートオンあるいはノートオフを指示するイベントデータ及び当該イベントデータ間の時間を示す時間データが所定の順序で記憶された曲データを記憶する曲データ記憶手段と、鍵盤の各鍵にて指示されるノートに対応した領域を有し、夫々ノートオン情報あるいはノートオフ情報の何れかが記憶可能な第１及び第２のイベントバッファと、を有する演奏教習装置に適用されるコンピュータに、
前記曲データ記憶手段に記憶されている時間データの示すタイミング毎に、対応するイベントデータを読み出すステップと、
この読み出されたイベントデータがノートオンを指示する場合はノートオン情報を、ノートオフを指示する場合はノートオフ情報を、当該イベントデータのノートに対応する前記第１及び第２のイベントバッファの領域に記憶させるステップと、
前記第２のイベントバッファに記憶されたノートオン情報及びノートオフ情報に基づいて前記鍵盤の押離鍵操作を指示するステップと、
前記鍵盤の押離鍵操作に基づいてイベントデータを生成するとともに、生成されたイベントデータがノートオンを指示する場合はノートオン情報を、ノートオフを指示する場合はノートオフ情報を、当該イベントデータのノートに対応する前記第２のイベントバッファの領域に記憶させるステップと、
所定の周期で前記第１のイベントバッファの記憶内容を前記第２のイベントバッファに転送してリフレッシュするステップと、
を実行させる演奏教習処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、曲の演奏をガイドする演奏教習装置及び演奏教習処理のプログラムに関する。
【０００２】
【従来の技術】
近年、鍵盤の演奏をガイドする電子鍵盤楽器等の演奏教習装置として、各鍵ごとに発光手段であるＬＥＤを設けて、自動演奏曲のイベントデータに応じて押鍵すべき鍵のＬＥＤを発光させるものが普及している。すなわち、ノートオンイベントに応じてそのノートすなわち鍵番号に対応するＬＥＤを発光させ、同じ鍵番号のノートオフイベントに応じて発光中のＬＥＤを消光する。したがって、ＬＥＤの発光時間は音長に対応している。ところで演奏教習装置の中には、演奏者が発光中のＬＥＤに対応する鍵を押鍵した後に離鍵したときは、押鍵をガイドする必要がないのでＬＥＤを消光する仕様になっているものもある。また、ＬＥＤが発光していない鍵を押鍵した場合には、そのＬＥＤを発光するような仕様のものもある。
【０００３】
【発明が解決しようとする課題】
しかしながら、発光中のＬＥＤに対応する鍵を離鍵したときにそのＬＥＤを消光するような演奏教習装置において、押鍵時間がノートオンデータの音長よりも短い場合には、離鍵によってＬＥＤが消光するので、演奏者はその押鍵時間が短いことを認識することができない。このためより正確な演奏ガイドができないという問題があった。
本発明の課題は、鍵盤の各鍵に対応して発光手段を設けることにより、自動演奏曲に従って、押鍵すべき鍵の発光手段を発光させて演奏をガイドする場合に、自動演奏曲の曲データに応じてより正確な演奏ガイドができるようにすることである。
【０００４】
【課題を解決するための手段】
請求項１に記載の演奏教習装置は、曲データを構成するノートのノートオンあるいはノートオフを指示するイベントデータ及び当該イベントデータ間の時間を示す時間データが所定の順序で記憶された曲データを記憶する曲データ記憶手段と、鍵盤の各鍵にて指示されるノートに対応した領域を有し、夫々ノートオン情報あるいはノートオフ情報の何れかが記憶可能な第１及び第２のイベントバッファと、前記曲データ記憶手段に記憶されている時間データの示すタイミング毎に、対応するイベントデータを読み出す読み出し手段と、この読み出し手段により読み出されたイベントデータがノートオンを指示する場合はノートオン情報を、ノートオフを指示する場合はノートオフ情報を、当該イベントデータのノートに対応する前記第１及び第２のイベントバッファの領域に記憶させる記憶制御手段と、前記第２のイベントバッファに記憶されたノートオン情報及びノートオフ情報に基づいて前記鍵盤の押離鍵操作を指示するガイド手段と、
前記鍵盤の押離鍵操作に基づいてイベントデータを生成するとともに、生成されたイベントデータがノートオンを指示する場合はノートオン情報を、ノートオフを指示する場合はノートオフ情報を、当該イベントデータのノートに対応する前記第２のイベントバッファの領域に記憶させる鍵盤処理手段と、
所定の周期で前記第１のイベントバッファの記憶内容を前記第２のイベントバッファに転送してリフレッシュするリフレッシュ手段とを有する構成になっている。  
【０００５】
請求項２に記載のコンピュータに実行させるプログラムは、曲データを構成するノートのノートオンあるいはノートオフを指示するイベントデータ及び当該イベントデータ間の時間を示す時間データが所定の順序で記憶された曲データを記憶する曲データ記憶手段と、鍵盤の各鍵にて指示されるノートに対応した領域を有し、夫々ノートオン情報あるいはノートオフ情報の何れかが記憶可能な第１及び第２のイベントバッファと、を有する演奏教習装置に適用されるコンピュータに、前記曲データ記憶手段に記憶されている時間データの示すタイミング毎に、対応するイベントデータを読み出すステップと、この読み出されたイベントデータがノートオンを指示する場合はノートオン情報を、ノートオフを指示する場合はノートオフ情報を、当該イベントデータのノートに対応する前記第１及び第２のイベントバッファの領域に記憶させるステップと、前記第２のイベントバッファに記憶されたノートオン情報及びノートオフ情報に基づいて前記鍵盤の押離鍵操作を指示するステップと、前記鍵盤の押離鍵操作に基づいてイベントデータを生成するとともに、生成されたイベントデータがノートオンを指示する場合はノートオン情報を、ノートオフを指示する場合はノートオフ情報を、当該イベントデータのノートに対応する前記第２のイベントバッファの領域に記憶させるステップと、所定の周期で前記第１のイベントバッファの記憶内容を前記第２のイベントバッファに転送してリフレッシュするステップとを有する構成になっている。  
【０００６】
請求項１又は請求項２に記載の発明によれば、入力される曲データのノートオン情報及びノートオフ情報に基づいて、鍵盤の押離鍵操作を指示した後に、鍵盤の演奏結果に応じて鍵盤の押離鍵操作指示が変更された場合でも、入力される曲データのノートオン情報及びノートオフ情報に基づいて鍵盤の押離鍵操作指示を更新する。
【０００７】
【発明の実施の形態】
以下、本発明による演奏教習装置の実施形態について、電子鍵盤楽器を例に採って図を参照して説明する。
図１は、この実施形態における電子鍵盤楽器の内部構成を示すブロック図である。図１において、ＣＰＵ１は、そのシステムバス２を介して、ＲＯＭ３、ＲＡＭ４、スイッチ部５、曲ＲＯＭ６、鍵盤７、ＬＥＤ群８、音源部９、ＭＩＤＩインターフェース（ＭＩＤＩ  Ｉ／Ｆ）１１に接続され、これら各部との間でデータ及びコマンドを授受する。ＲＯＭ３には、ＣＰＵ１によって実行される制御プログラムや初期データが記憶されている。ＲＡＭ４は、ＣＰＵ１のワークエリアであり、制御プログラムの実行に必要な各種のレジスタ、ポインタ、フラグのエリアを持っている。スイッチ部５は、演奏教習曲を選択する曲選択スイッチや自動演奏を開始又は停止するスタート／ストップスイッチ及びその他のスイッチで構成されている。
曲ＲＯＭ６には、複数種類の演奏教習曲の曲データが記憶されている。鍵盤７は、演奏に応じて押鍵された鍵の鍵番号である音高、押鍵の強弱を示すベロシティ等をＣＰＵ１に入力する。ＬＥＤ群８は、鍵盤７の各鍵ごとに設けられたＬＥＤで構成され、ＣＰＵ１の発光制御処理によって発光又は消光する。音源部９には発音回路１０が接続され、ＣＰＵ１からの発音コマンド及び曲ＲＯＭ６から読み出された曲データ又はＭＩＤＩ  Ｉ／Ｆ１１によって外部のＭＩＤＩ機器から入力された曲データに応じて楽音信号を生成し、発音回路１０にその楽音信号を供給して発音させる。また、ＣＰＵ１からの消音コマンドに応じて発音回路１０に供給している楽音信号を停止して消音させる。
【０００８】
図２は、曲ＲＯＭ６に記憶されている曲データのデータフォーマットである。各曲データは、ノートオンイベント、ノートオフイベント、及び制御データ等からなるイベントデータ、及び、次のイベントデータまでの待ち時間であるタイムデータで構成されている。そして、図２に示すように、イベントデータとタイムデータとが交互に配置されたシーケンスデータになっている。ノートイベントの中には、同時に演奏する和音のデータも含まれている。和音のデータは、音高を示すノートデータとオン又はオフを示すデータとが１組のイベントデータを構成している。そして、アドレスをインクリメントすることによって和音のデータを構成する複数組のデータが順に読み出される。曲ＲＯＭ６から読み出されたノートイベントのオン・オフ情報はＲＡＭ４に一時的に記憶される。
【０００９】
図３は、ＲＡＭ４のメモリエリアの内容を示している。図３において、ＡＤは、曲ＲＯＭ６の曲データを読み出すためのアドレスがストアされる。ＳＴＦは、自動演奏モードのとき「１」にセットされ、通常モード（マニュアル演奏）のときに「０」にされるフラグである。ＤＡＴＡは、曲ＲＯＭ６から読み出した曲データをストアするレジスタである。Ｔは、曲ＲＯＭ６から読み出した曲データのうちタイムデータをストアするレジスタである。Ｔの値はタイマインタラプトごとにデクリメントされる。ＮＯＴＥは、曲ＲＯＭ６から読み出した曲データのうちノートデータ（音高）をストアするレジスタである。ＫＥＹは、押鍵された鍵の鍵番号（音高）をストアするレジスタである。
【００１０】
ＮｏｔｅＭａｐは、曲ＲＯＭ６から読み出した曲データにおけるノートデータの状態をストアするレジスタである。このＮｏｔｅＭａｐには、鍵盤７の鍵番号に対応する１２８のエリアＮｏｔｅＭａｐ［０］〜ＮｏｔｅＭａｐ［１２７］があり、曲ＲＯＭ６のノートデータのオン又はオフに応じて、図４に示すように、「１」又は「０」がストアされる。ＮａｖｉＭａｐは、演奏ガイドデータすなわち押鍵指示データをストアするレジスタである。したがって、このＮａｖｉＭａｐも鍵盤７の鍵番号に対応する１２８のエリアＮａｖｉＭａｐ［０］〜ＮａｖｉＭａｐ［１２７］があり、図４に示すように、押鍵指示の鍵番号に「１」がストアされる。ＤＦは、ＮａｖｉＭａｐのデータに変化があったときに「１」にセットされるフラグであり、このフラグが「１」の場合にはＬＥＤの発光又は消光の変更を行う。
【００１１】
次に、本発明の実施形態における演奏教習の動作について、ＣＰＵ１によって実行されるフローチャート等を参照して説明する。
図５はメインフローチャートである。このフローでは、所定のイニシャライズ処理（ステップＡ１）の後、スイッチ部５を走査して各スイッチのオン・オフを検索するスイッチ処理（ステップＡ２）、曲データを自動的に演奏する自動演奏処理（ステップＡ２）、ＬＥＤ群８を発光して演奏をガイドするガイド処理（ステップＡ３）、演奏者の鍵盤演奏に応じた鍵盤処理（ステップＡ４）、リフレッシュ処理（ステップＡ６）、ＭＩＤＩ処理等のその他の処理（ステップＡ７）を繰り返し実行する。なお、リフレッシュ処理については後述する。
【００１２】
図６は、メインフローにおけるステップＡ２のスイッチ処理のフローである。このフローにおいては、各スイッチのオン状態を検索して対応する処理を行う。曲選択スイッチがオンされたか否かを判別し（ステップＢ１）、このスイッチがオンされたときはレジスタＡＤにその選択された曲データのスタートアドレスをストアする（ステップＢ２）。スタート／ストップスイッチがオンされたか否かを判別し（ステップＢ３）、このスイッチがオンされたときはフラグＳＴＦを反転する（ステップＢ４）。その他のスイッチがオンされたか否かを判別し（ステップＢ５）、いずれかのスイッチがオンされたときは、そのオンされたスイッチに対応する処理を行う（ステップＢ６）。そして、メインフローに戻る。
【００１３】
図７は、メインフローにおけるステップＡ３の自動演奏処理のフローである。まず、フラグＳＴＦが「１（自動演奏モード）」であるか否かを判別する（ステップＣ１）。ＳＴＦが「０（通常モード）」である場合には、このフローを終了してメインフローに戻る。ＳＴＦが「１」である場合には、タイマインタラプトによるタイムデータのデクリメントでＴの値が「０」に達しているか否かを判別する（ステップＣ２）。なお、メインフローのイニシャライズにおいて、実際に曲が開始するまでの若干の待ち時間がＴにストアされている。したがって、ＳＴＦが「１」になってもこの待ち時間が経過するまでは、Ｔの値は「０」より大きいので、このフローを終了してメインフローに戻る。待ち時間が経過してＴの値が「０」に達したときは、タイマインタラプトを禁止する（ステップＣ３）。そして、曲ＲＯＭ６から読み出した曲データをレジスタＤＡＴＡにストアする（ステップＣ４）。
【００１４】
次に、ＤＡＴＡにストアした曲データの内容がイベントデータであるか又はタイムデータであるかを判別する（ステップＣ５）。イベントデータである場合には、さらにそのイベントデータがノートデータであるか否かを判別する（ステップＣ６）。ノートデータでない場合、例えば制御データ等である場合にはこのフローを終了するが、ノートデータである場合には、レジスタＮＯＴＥにそのノートデータをストアする（ステップＣ７）。
次に、ポインタｎを「０」にセットして（ステップＣ８）、ｎの値をインクリメントしながらＮＯＴＥの音高とｎの値が一致するか否かを判別する（ステップＣ９）。これらが一致しない場合にはｎの値をインクリメントする（ステップＣ１０）。そして、ステップＣ９においてＮＯＴＥの音高とｎとの一致を判別する。
【００１５】
ＮＯＴＥの音高とｎの値とが一致したときは、ＮＯＴＥにストアしたノートデータがノートオンであるか又はノートオフであるかを判別する（ステップＣ１１）。ノートオンである場合には、ＮｏｔｅＭａｐ［ｎ］に「１」をストアし（ステップＣ１２）、ＮａｖｉＭａｐ［ｎ］に「１」をストアする（ステップＣ１３）。ノートオフである場合には、ＮｏｔｅＭａｐ［ｎ］に「０」をストアし（ステップＣ１４）、ＮａｖｉＭａｐ［ｎ］に「０」をストアする（ステップＣ１５）。ステップＣ１３又はステップＣ１５において、ＮａｖｉＭａｐ［ｎ］に「１」又は「０」をストアした後は、フラグＤＦに「１（ＮａｖｉＭａｐ変化）」をセットする（ステップＣ１６）。
【００１６】
次に、ＡＤのアドレスをインクリメントして（ステップＣ１７）、再びステップＣ２に移行する。曲ＲＯＭ６から読み出すイベントデータが複数のノートオンデータからなる和音のデータである場合には、ステップＣ２からステップＣ１７までのループを繰り返し実行して、図４に示した、ＮｏｔｅＭａｐ［ｎ］及びＮａｖｉＭａｐ［ｎ］に「１」を書き込む。
ステップＣ５において、ＮＯＴＥにストアした曲データがイベントデータでなくタイムデータである場合には、そのタイムデータをレジスタＴにストアし（ステップＣ１８）、タイマインタラプトを許可する（ステップＣ１９）。そして、このフローを終了してメインフローに戻る。この後は、Ｔにストアしたタイムデータの値がタイマインタラプトに応じてデクリメントされる。したがって、メインフローからこの自動演奏処理のフローに移行したときに、ステップＣ２においてＴの値が「０」に達するまでの間、すなわちＴの値が「０」より大きいときは自動演奏処理を行なうことなく再びメインフローに戻る。
【００１７】
図８は、メインフローにおけるステップＡ４のガイド処理のフローである。まず、ＳＴＦが「１（自動演奏モード）」であるか否かを判別し（ステップＤ１）、ＳＴＦが「１」である場合にはＤＦが「１（ＮａｖｉＭａｐ変化）」であるか否かを判別する（ステップＤ２）。ＳＴＦが「０」である場合又はＤＦが「０」である場合にはこのフローを終了してメインフローに戻る。
ＤＦが「１」である場合には、ポインタｎを「０」にセットして（ステップＤ３）、ｎの値をインクリメントしながらＬＥＤの発光及び消光を制御する。まず、ｎで指定するＮａｖｉＭａｐ［ｎ］の値が「１」であるか否かを判別する（ステップＤ４）。この値が「１」である場合には、ＮａｖｉＭａｐ［ｎ］に対応する鍵のＬＥＤ［ｎ］が消光中であるか否かを判別する（ステップＤ５）。消光中である場合には、そのＬＥＤ［ｎ］を発光する（ステップＤ６）。一方、ＮａｖｉＭａｐ［ｎ］の値が「０」である場合には、対応するＬＥＤ［ｎ］が発光中であるか否かを判別する（ステップＤ７）。発光中である場合には、そのＬＥＤ［ｎ］を消光する（ステップＤ８）。
【００１８】
ステップＤ５の判別でＬＥＤ［ｎ］が消光中である場合、若しくはステップＤ７の判別でＬＥＤ［ｎ］が発光中である場合、又はステップＤ６若しくはステップＤ８においてＬＥＤ［ｎ］を発光若しくは消光した場合には、ｎの値をインクリメントする（ステップＤ９）。そして、インクリメントしたｎの値が最大値「１２７」より大きくなったか否かを判別する（ステップＤ１０）。ｎの値が「１２７」以下である場合には、ステップＤ４に移行して、ステップＤ１０までのループを繰り返して、ＮａｖｉＭａｐの値に応じてＬＥＤの発光及び消光を制御する。ステップＤ１０の判別においてｎの値が「１２７」より大きくなったとき、すなわち全てのＬＥＤの制御が完了した後は、ＤＦを「０」に戻して（ステップＤ１１）、メインフローに戻る。
【００１９】
図９は、メインフローにおけるステップＡ５の鍵盤処理のフローである。このフローでは、鍵を指定するポインタｎを「０」にセットして（ステップＥ１）、ｎの値をインクリメントしながら、鍵盤の押鍵及び離鍵を検出する。ステップＥ２において、鍵［ｎ］が押鍵されてオフからオンに変化したか、若しくは離鍵されてオンからオフに変化したか、あるいはオン・オフの変化がないか否かを判別する。押鍵により鍵［ｎ］がオフからオンに変化したときは、その鍵番号をレジスタＫＥＹにストアする（ステップＥ３）。次に、押鍵結果に応じて発音データを作成する（ステップＥ４）。また、ＮａｖｉＭａｐ［ｎ］に「１」をセットする（ステップＥ５）。ステップＥ２において、鍵［ｎ］がオンからオフに変化したときは、その鍵番号をレジスタＫＥＹにストアする（ステップＥ６）。次に、離鍵結果に応じて消音データを作成する（ステップＥ７）。また、ＮａｖｉＭａｐ［ｎ］に「０」をセットする（ステップＥ８）。
【００２０】
ステップＥ５又はステップＥ８において、ＮａｖｉＭａｐ［ｎ］に「１」又は「０」をセットした後は、フラグＤＦを「１（ＮａｖｉＭａｐ変化）」にセットする（ステップＥ９）。ＤＦに「１」をセットした後、又は、ステップＥ２での判別がオン・オフの変化なしである場合には、ｎの値をインクリメントする（ステップＥ１０）。そして、インクリメントしたｎの値が最大値「１２７」より大きいか否かを判別する（ステップＥ１１）。ｎの値が「１２７」以下である場合には、ステップＥ２に移行して鍵［ｎ］の変化の有無を検出する。ステップＥ１１において、ｎの値が「１２７」より大きくなったときは、メインフローに戻る。
【００２１】
図１０は、メインフローにおけるステップＡ６のリフレッシュ処理のフローである。このフローにおいては、鍵盤の押鍵及び離鍵によって変化したＮａｖｉＭａｐのデータを、ＮｏｔｅＭａｐのデータに基づいて更新する。まず、ＳＴＦが「１」であるか否かを判別し（ステップＦ１）、ＳＴＦが「０」で通常モードである場合には、このフローを終了してメインフローに戻る。
ＳＴＦが「１」で自動演奏モードである場合には、ポインタｎを「０」にセットして（ステップＦ２）、ｎの値をインクリメントしながらステップＦ３の演算処理を行う。すなわち、ｎで指定するＮｏｔｅＭａｐ［ｎ］と図１１に示すｃｌｏｃｋの波形データとを乗算して、その乗算結果をＮａｖｉＭａｐ［ｎ］にストアする。したがって、図１１のｃｌｏｃｋ波形がハイレベル「１」である場合には、ＮａｖｉＭａｐ［ｎ］のデータはＮｏｔｅＭａｐ［ｎ］のデータによって更新される。一方、図１１のｃｌｏｃｋ波形がローレベル「０」である場合には、ＮａｖｉＭａｐ［ｎ］のデータは全て「０」になる。
次に、ｎの値をインクリメントする（ステップＦ４）。そして、インクリメントしたｎの値が最大値「１２７」より大きいか否かを判別する（ステップＦ５）。ｎの値が「１２７」以下である場合には、ステップＦ３に移行して演算処理を繰り返す。ステップＦ５において、ｎの値が「１２７」より大きくなったときは、フラグＤＦに「１（ＮａｖｉＭａｐ変化）」をセットして（ステップＦ６）、メインフローに戻る。
【００２２】
図１１に示すように、ｃｌｏｃｋ波形はハイレベル「１」の期間がローレベル「０」の期間よりもかなり大きい。すなわち、ハイレベルのデューティ比がかなり大きい波形になっている。このため、ステップＦ３の演算において、ＮｏｔｅＮａｖｉＭａｐ［ｎ］のデータがＭａｐ［ｎ］のデータによって更新される頻度が、ＮａｖｉＭａｐ［ｎ］に「０」が書き込まれる頻度よりも相当に高くなる。したがって、鍵盤の押鍵及び離鍵によってＮａｖｉＭａｐのデータが変化した場合でも、このリフレッシュ処理によって、ＮｏｔｅＭａｐのデータに基づいて頻繁に更新することできる。
【００２３】
このように、上記実施形態によれば、入力される曲データの発音タイミング及び消音タイミングであるＮｏｔｅＭａｐのデータに基づいて、演奏ガイドデータであるＮａｖｉＭａｐのデータを作成して、鍵盤７の各鍵ごとに設けられたＬＥＤの発光及び消光を制御した後に、鍵盤７の演奏結果に応じてＮａｖｉＭａｐのデータが変更された場合でも、ＮｏｔｅＭａｐに基づいてＮａｖｉＭａｐのデータを更新するので、自動演奏曲にしたがって、押鍵すべき鍵のＬＥＤを発光させて演奏をガイドする場合に、演奏中の曲データの音長までも認識することができるので、より正確な演奏ガイドが可能になる。
【００２４】
なお、図１１に示したｃｌｏｃｋが「０」から「１」に変化する波形の立ち上がりに同期して、リフレッシュ処理を一定時間ごとに行うように構成してもよい。要するに、演奏者が離鍵したときにその離鍵が曲データの音長よりも短いことを認識できるような頻度でリフレッシュ処理を行うことができればよい。
また、演奏者の中には一度離鍵した鍵のＬＥＤが再び発光することで、演奏ガイドに対して違和感を持つ場合も考えられる。このため、リフレッシュ処理を行うか否かを設定するスイッチを設けて、演奏者に選択させる構成にしてもよい。また、上記実施形態においては、曲ＲＯＭ６から読み出した曲データについて演奏ガイドを行なう構成にしたが、ＭＩＤＩ  Ｉ／Ｆ１１を介して外部から受信した曲データについて演奏ガイドを行なう構成でもよい。
【００２５】
上記実施形態においては、演奏教習装置の発明について説明したが、この装置に楽音発生処理のプログラムをインストールして実行する構成にしてもよい。この場合にはプログラムの発明を実現する。
そのプログラムは、入力される曲データの発音タイミング及び消音タイミングに基づいて演奏ガイドデータを作成する第１のステップと、演奏ガイドデータにしたがって鍵盤の各鍵ごとに設けられた発光手段の発光及び消光を制御する第２のステップと、鍵盤の演奏結果に応じて演奏ガイドデータを変更する第３のステップと、曲データの発音タイミング及び消音タイミングに基づいて演奏ガイドデータを更新する第４のステップとを有する。
この場合において、第４のステップは、一定時間ごとに演奏ガイドデータを更新する。
また、この場合において、第４ステップによるデータ更新処理を行うか否かを操作に応じて設定する第５のステップをさらに有する。
【００２６】
【発明の効果】
本発明によれば、鍵盤の各鍵に対応して発光手段を設けることにより、自動演奏曲にしたがって、押鍵すべき鍵の発光手段を発光させて演奏をガイドする場合に、演奏中の曲データの音長までも認識することができるので、より正確な演奏ガイドが可能になる。
【図面の簡単な説明】
【図１】本発明の演奏教習装置のシステム構成を示すブロック図。
【図２】図１における曲ＲＯＭに記憶された曲データのデータフォーマットを示す図。
【図３】図１におけるＲＡＭのメモリエリアの内容を示す図。
【図４】図３における演奏ガイドデータ等の構成を示す図。
【図５】図１におけるＣＰＵのメインフローチャート。
【図６】図５におけるスイッチ処理のフローチャート。
【図７】図５における自動演奏処理のフローチャート。
【図８】図５におけるガイド処理のフローチャート。
【図９】図５における鍵盤処理のフローチャート。
【図１０】図５におけるリフレッシュ処理のフローチャート。
【図１１】図１０におけるリフレッシュ処理の演算処理に用いるｃｌｏｃｋの波形のタイミングチャート。
【符号の説明】
１  ＣＰＵ
３  ＲＯＭ
４  ＲＡＭ
５  スイッチ部
６  曲ＲＯＭ
７  鍵盤
８  ＬＥＤ群
９  音源部
１０  発音回路
１１  ＭＩＤＩインターフェース
【図１】
0003948246.tif 000002
【図２】
0003948246.tif 000003
【図３】
0003948246.tif 000004
【図４】
0003948246.tif 000005
【図５】
0003948246.tif 000006
【図６】
0003948246.tif 000007
【図７】
0003948246.tif 000008
【図８】
0003948246.tif 000009
【図９】
0003948246.tif 000010
【図１０】
0003948246.tif 000011
【図１１】
0003948246.tif 000012