(57)【特許請求の範囲】
【請求項１】
複数の演奏データを含む楽曲データを記憶する記憶手段と、
前記各演奏データに対して、該各演奏データの各発音タイミングを基準にそれぞれ個別に規定された前方期間と後方期間とからなる発音許容期間をそれぞれ設定する設定手段と、
演奏の開始指示に応じて、前記記憶された演奏データを逐次読み出す読み出し手段と、
前記発音許容期間とともに、前記読み出された演奏データを複数格納するイベントバッファと、
演奏の進行に応じて、現在の演奏進行位置において発音許可期間にある前記演奏データを前記イベントバッファに保持させるとともに、現在の演奏進行位置において発音許可期間から逸脱した前記演奏データを前記イベントバッファから消去するように制御する制御手段と、
演奏者が演奏操作を行うための演奏操作手段と、
該演奏操作手段から演奏操作が入力されたときに、前記イベントバッファを参照し、該イベントバッファに格納・保持されている演奏データをすべて検索する検索手段と、
該検索されたすべての演奏データに基づいて、前記演奏操作の入力タイミングで発音する発音手段と
を有することを特徴とする演奏練習装置。
【請求項２】
前記発音許容期間の前記前方期間および前記後方期間は、それぞれ変更可能であることを特徴とする請求項１に記載の演奏練習装置。
【請求項３】
前記発音許容期間の前記前方期間および前記後方期間は、それぞれ演奏データの音符長に応じて異なることを特徴とする請求項１に記載の演奏練習装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、予め記憶されている演奏データに基づいて、演奏者の演奏操作を補助しながら演奏技能の上達を図るための演奏練習装置に関する。
【０００２】
【従来の技術】
予めメモリに記憶されている演奏データを、演奏者のトリガー操作に応じて順次読み出し、楽音を発音する自動演奏装置が従来より知られている。このような装置においてトリガー操作は、例えば鍵盤の中の特定のキーを押下することにより行われ、演奏者は正確な音高を指定しなくても特定のキーを押下するだけで演奏することができるが、演奏者が演奏する曲を完全に知っていなければ演奏が困難であり、また曲の途中からトリガー操作を行うことはできなかった。
【０００３】
そこで本出願人は、以下に述べるような自動演奏装置を既に提案している（特開平６−２７４１６０号公報）。
【０００４】
すなわち第１の実施の形態として、自動演奏の複数のトラックのうち少なくとも１つのトラック（トリガー駆動トラック）をトリガー操作に応じて制御し、他のトラック（ノーマルトラック）を周知の自動演奏の処理により再生するように構成し、演奏者がノーマルトラックの演奏を聴きながら、演奏曲の各小節の先頭付近のタイミングでトリガー操作を行うと、トリガー駆動トラックの当該小節の１小節分の演奏データを読み出して再生するものが示されている。
【０００５】
また第２の実施の形態として、トリガー駆動トラックを単音楽器のパートとし、記憶されている音符毎の発音タイミング付近でトリガー操作がなされると、その音符に対応する楽音を再生するものが示されている。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記第１の実施の形態の装置は、簡単な操作で演奏を楽しめるという利点があるが、小節単位などの決まった単位でしか演奏ができないため、演奏動作が単調になってそれ以上の技術の向上が望めないという欠点があった。
【０００７】
また、第２の実施の形態の装置では、単音楽器のパートでしか演奏できないため、複音楽器の技術向上には適さないものであった。
【０００８】
本発明はこれらの点に鑑みてなされたものであり、簡単な演奏動作から難易度の高い演奏動作まで段階的に徐々に技術を向上させることができ、しかも複音楽器のパートにおいても音符単位の制御を可能とした演奏練習装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の演奏練習装置は、複数の演奏データを含む楽曲データを記憶する記憶手段と、前記各演奏データに対して、該各演奏データの各発音タイミングを基準にそれぞれ個別に規定された前方期間と後方期間とからなる発音許容期間をそれぞれ設定する設定手段と、演奏の開始指示に応じて、前記記憶された演奏データを逐次読み出す読み出し手段と、前記発音許容期間とともに、前記読み出された演奏データを複数格納するイベントバッファと、演奏の進行に応じて、現在の演奏進行位置において発音許可期間にある前記演奏データを前記イベントバッファに保持させるとともに、現在の演奏進行位置において発音許可期間から逸脱した前記演奏データを前記イベントバッファから消去するように制御する制御手段と、演奏者が演奏操作を行うための演奏操作手段と、該演奏操作手段から演奏操作が入力されたときに、前記イベントバッファを参照し、該イベントバッファに格納・保持されている演奏データをすべて検索する検索手段と、該検索されたすべての演奏データに基づいて、前記演奏操作の入力タイミングで発音する発音手段とを有することを特徴とする。
【００１１】
また、前記発音許容期間の前記前方期間および前記後方期間は、それぞれ変更可能は、変更可能であることが望ましい。
さらに、前記発音許容期間の前記前方期間および前記後方期間は、それぞれ演奏データは、演奏データの音符長に応じて異なることであることが望ましい。
【００１２】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
【００１３】
図１は本発明の一実施の形態にかかる演奏練習装置の構成を示すブロック図であり、この装置は、演奏者がトリガー操作を行うトリガー発生器としての機能を有し、一般的な電子楽器と同様に複数のキーが設けられた鍵盤１と、演奏データ等が記憶されるＲＡＭ２と、本装置全体の制御を行うＣＰＵ４と、ＣＰＵ４で実行されるプログラムやプログラムの実行に必要なテーブル等が記憶されるＲＯＭ３と、曲のテンポ設定、演奏の開始、終了の指示等を行うための各種スイッチ等で構成される操作子５と、演奏中の曲の楽譜等を表示するディスプレイ６と、ＣＰＵ４の制御のもとに楽音信号を発生させる音源回路７と、この楽音信号をＤ／Ａ変換し増幅してスピーカから出力するサウンドシステム８と、上記構成要素１〜７を相互の接続するバス９とを備えている。
【００１４】
鍵盤１は、キーオン／キーオフ及びベロシティを検出する検出部を有し、その検出信号がＣＰＵ４に入力される。本実施の形態では、キーオン／キーオフがそれぞれトリガーオン／トリガーオフに対応する。
【００１５】
ＲＡＭ２に記憶される演奏データは、図２に示すようにイベントデータＥ１，Ｅ２，…及びデュレーションデータＤ１，Ｄ２，…からなる。イベントデータは、発音すべき楽音のイベントの内容を示すものであり、例えば発音開始を示すノートオンデータや発音終了を示すノートオフデータ等がある。さらに、キーオンデータには、発音すべき楽音の音高を示すノートデータや音の強弱を示すベロシティデータ等が付随する。このようなイベントデータは、曲中のイベントの数だけ順次記憶されている。また、デュレーションデータは、イベントとイベントの間隔を後述する割り込み処理の回数（以下「クロック数」という）で示すデータである。
【００１６】
ＲＡＭ２はさらに演奏者の演奏動作（キーオン、キーオフ）と、予め記憶された演奏データとを比較するための複数のイベントバッファ１２として使用される。イベントバッファ１２は例えば１６個設け、そこに記憶されるデータは図３に示すような構成を有する。すなわち、１つのイベントバッファには、当該バッファが使用中であるとき「１」に設定され、空のとき「０」に設定される使用フラグ１２ａと、発音データ１２ｂと、消音データ１２ｃとが記憶される。ここで、発音データ１２ｂは、発音開始位置（タイミング）を示す位置データと、発音許可期間の前端及び後端を示す前データ及び後データと、ＭＩＤＩ規格のノートオンメッセージとからなり、消音データ１２ｃは、発音終了位置（タイミング）を示す位置データと、消音許可期間の前端及び後端を示す前データ及び後データと、ＭＩＤＩ規格のノートオフメッセージとからなる。演奏タイミングを示す位置データ等は、演奏開始タイミングからのクロック数で示され、例えば位置データが５００のとき、その前２４クロックのタイミングからその後４８クロックのタイミングまで発音許可する場合、発音データ１２ｂの前データは４７６（＝５００−２４）、後データは５４８（＝５００＋４８）である。
【００１７】
また、本実施の形態では消音許可範囲を発音許可範囲より広くしているが、これは消音タイミングは多少ずれても発音タイミングのずれより影響が小さいことを考慮したからである。
【００１８】
なお、イベントバッファの数を１６個としたのは、一人の演奏者が同時に押下するキーの数は最大８個程度であること、及び１つの楽音の消音許可期間と次の楽音の発音許可期間とが重なる場合あることを考慮したからである。もちろん、もっと多くしてもよい。
【００１９】
図４は、演奏中にイベントバッファに書き込まれる発音許可期間及び消音許可期間を決定するためのパラメータを、演奏の難易度に対応して格納したテーブルを示す図であり、このテーブルはＲＯＭ３に格納されている。ここでは難易度を１から１０とし（値が大きいほど演奏が難しいことを示す）、難易度が高いほど許可期間が狭くなるように設定されている。同図において、ＲＦ及びＲＲは発音許可期間パラメータ及び消音許可期間パラメータであり、発音許可期間パラメータＲＦは、図３に示す発音データ１２ｂの前データ決定のための前データ決定パラメータＲＦ１及び後データ決定のための後データ決定パラメータＲＦ２からなる。具体的には、発音データ１２ｂの位置データに各パラメータＲＦ１，ＲＦ２を加算することにより、前データ及び後データが決定される。消音許可期間パラメータＲＦも同様に、前データ決定パラメータＲＲ１及び後データ決定パラメータＲＲ２からなる。
【００２０】
なお、難易度１の場合は、消音許可期間パラメータＲＲが記憶されていない。この場合には、範囲がないと判断して消音データ１２ｃの前データ及び後データはいずれも位置データと同じとされる。これにより、曲進行位置が消音位置を過ぎるとすぐに消音されるので、本来の消音タイミングとほぼ同じタイミングで消音され、特別の処理を必要としない。
【００２１】
図５は、ディスプレイ６の表示画面の一例を示す図であり、演奏中の曲の楽譜及び曲の進行状況を示す矢印１１が表示される。演奏の進行に伴って矢印が左から右へ移動し、矢印１１が右端に達すると画面が更新されるので、演奏者はディスプレイ６上の矢印１１の移動に合わせて押鍵することにより、演奏を行うことができる。
【００２２】
次に以上のように構成される演奏練習装置の動作の概要を説明する。
【００２３】
先ず最も難易度が低いモード（難易度１）では、演奏者は鍵盤１のいずれかのキーを押下すること（キーオン）によりトリガー操作を行うと、そのキーオンのタイミングが発音許可期間に入っているときは、対応する楽音が発音される。このとき発音されるのは単音とは限らず、キーオンタイミングが発音許可期間に入っているすべての楽音が発音される。例えば、図５の矢印１１が示すタイミングでは、５つの楽音が同時に発音される。なお、上述したようにこのモードでは演奏者のキーオフタイミングとは無関係に、記憶されている演奏データの消音タイミングで消音される。そして、キーオンタイミングが発音許可期間に入っているときは、得点が加算されディスプレイに表示される。
【００２４】
また、難易度が高いモードでは、演奏者によるキーオンタイミングが発音許可期間内にあり、且つキーオンされたキーのキーコードと演奏データのノート番号とが一致するとき発音処理がおこなわれ、さらに演奏者によるキーオフタイミングが消音許可期間内にあり、且つキーオフされたキーのキーコードと演奏データのノート番号が一致するとき消音処理が行われる。そして、発音処理又は消音処理が行われると、得点加算及び表示処理が行われる。
【００２５】
次に本装置の動作を図６〜１３のフローチャートを参照して詳細に説明する。
【００２６】
図６はＣＰＵ４で実行されるメインルーチンのフローチャートであり、本ルーチンはこの装置に電源が投入されると起動される。
【００２７】
先ずステップＳ１１では、ＲＡＭ２内の各種レジスタのゼロリセットや、各種フラグへの初期設定値書き込み等の初期設定を行う。次いで、上記した演奏の難易度を設定する処理を行う（ステップＳ１２）。この処理は、前回の演奏時の難易度と得点に応じて今回の難易度を自動的に設定するか、又は演奏者が操作子５により設定する。続くステップＳ１３では、操作子により設定されたテンポに応じて後述する割り込み信号の周期を設定するテンポ設定処理を行う。
【００２８】
次いで、スタートイベントがあったか、すなわち演奏のスタートを指示するスイッチにより演奏開始指示がなされたか否かを判別し（ステップＳ１４）、なされていなければ直ちにステップＳ１６に進む。演奏開始指示がなされたときは、自動演奏処理を開始し（ステップＳ１５）、続くステップＳ１６では自動演奏中か否かを判別する。そして、自動演奏中でなければ直ちにステップＳ１８に進み、自動演奏中のときは後述する自動演奏処理（図８）を実行する（ステップＳ１７）。ステップＳ１８では、ストップイベントがあったか否か、すなわち演奏の終了を指示する演奏終了指示がなされたか否かを判別し、なされていなければステップＳ２０に進み、終了指示がなされたときは自動演奏を停止して（ステップＳ１９）、ステップＳ２０に進む。ステップＳ２０では、イベントバッファ１２を検索して曲進行位置における押鍵すべき鍵数を得、次いで後述するトリガー処理（図１０〜１３）を実行し（ステップＳ２１）、さらに楽譜表示処理を行って（ステップＳ２２）、ステップＳ１２へ戻る。
【００２９】
図７は、曲のテンポに応じて設定される割り込み周期で実行される割込処理のフローチャートであり、曲の進行位置を示すクロック数を１だけ増加させる処理を行う（ステップＳ１）。
【００３０】
図８は、図６のステップＳ１７で実行される自動演奏処理のフローチャートであり、先ずステップＳ３１では空の（使用されていない）イベントバッファ１２があるか否かを判別し、あるときはイベントを検索してイベントバッファ１２に記憶する処理（図９）を行い（ステップＳ３２）、ステップＳ３１に戻る。ステップＳ３１，Ｓ３２を繰り返し実行することにより、１６個のイベントバッファ１２がすべて使用状態となる。
【００３１】
図９のステップＳ４１では、演奏データの検索ポインタを進めてノートオンデータを検索し、空きイベントバッファ１２に記憶する。次いで、その検索ポインタを一時的に記憶し（ステップＳ４２）、さらに検索ポインタを進めて対応するノートオフデータを検索し、ステップＳ４１で記憶したイベントバッファと同じイベントバッファ１２に記憶する（ステップＳ４３）。
【００３２】
続くステップＳ４４では、上記ステップＳ４１及びＳ４３で記憶したノートオンデータ及びノートオフデータからノートオンからノートオフまでの時間データ（音符の長さ）を算出し、その時間データと難易度に応じて図４のテーブルを検索して発音許可期間及び消音許可期間を決定し、前データ及び後データとしてイベントバッファ１２に記憶する。次いで、検索ポインタをステップＳ４２で記憶したノートオンデータの位置に戻して（ステップＳ４５）、本処理を終了する。
【００３３】
図８に戻り、ステップＳ３１の答が否定（ＮＯ）、すなわち空のイベントバッファ１２がないときは、曲進行位置を示すクロック数が増えたか否かを判別し、増えていなければ直ちに本処理を終了し、図６のメインルーチンに戻る。また、クロック数が増えたときは、曲進行位置がノートオンの範囲を越えたイベントバッファ１２があるか否かを判別する（ステップＳ３４）。具体的には、曲進行位置と発音データ１２ｂの後データとを比較することにより行う。そして、該当するバッファ１２がなければ直ちにステップＳ３６に進み、あればそのバッファ１２のデータは発音タイミングを過ぎているのでそのバッファ１２を空にして（ステップＳ３５）ステップＳ３６に進む。
【００３４】
ステップＳ３６では、曲進行位置がノートオフの範囲を越えたイベントバッファ１２があるか否かを判別し、該当するバッファ１２がなければ直ちにステップＳ３８に進み、あれば演奏者が消音許可期間内にキーオフしなかったことになるので、強制的にノートオフ処理を行うとともにそのバッファ１２を空にして（ステップＳ３７）、ステップＳ３８に進む。ステップＳ３８では、曲進行位置におけるノートオン、ノートオフ以外の自動演奏処理、例えば操作子の変化情報や音色の変化情報に応じた処理を行い、ステップＳ３１に戻る。
【００３５】
次に図６のステップＳ２１におけるトリガー処理を説明する。このトリガー処理は、難易度により処理内容が異なるので、図１０〜１３を参照して順に説明する。
【００３６】
図１０は最も難易度が低い場合の処理であり、トリガーオンイベント（キーオンイベント）があると、曲進行位置が発音許可期間に入っているすべてのイベントバッファ１２に記憶されている発音データに対応する楽音を発音し（ステップＳ５１）、得点加算処理及びディスプレイへの表示処理を実行して（ステップＳ５２）、本処理を終了する。この場合の消音処理は、前述したように演奏者のキーオフ操作のタイミングに拘わらず、演奏データのノートオフタイミングで行われる。なお、この処理では、押下されるキーはいずれのキーでもよいこととしている。
【００３７】
図１１は、図１０の処理より難易度を高め、キーオンタイミングに加えて押鍵数の一致もチェックするトリガー処理のフローチャートである。
【００３８】
先ずステップＳ６１では、ほぼ同時に押下されたキーの数を検出する。この検出は、最初のトリガーオンイベントから所定時間待ってその間に発生したトリガーオンイベントをカウントすることにより行う。続くステップＳ６２では、検出した押鍵数が演奏データの押鍵すべきキーの数（図６、ステップＳ２０参照）と一致したか否かを判別する。そして、一致していなければ直ちに本処理を終了する一方、一致するときは、曲進行位置が発音許可期間内であるイベントバッファ１２のデータに対応する楽音を発音し（ステップＳ６３）、得点加算処理及び表示処理を実行して（ステップＳ６４）、本処理を終了する。
【００３９】
この処理によれば、演奏者による押鍵数が演奏データと一致しない場合は、発音されず得点加算が行われない。
【００４０】
図１２は、さらに難易度を高めた場合のトリガー処理のフローチャートであり、本処理ではキーオンのタイミング及び押鍵されたキーのキーコードが所定条件を満たす場合に発音処理等をおこなう。
【００４１】
先ずステップＳ７１では、カウント値ｉを「１」に設定し、次いで曲進行位置がｉ番目のイベントバッファの発音許可期間内か否かを判別する（ステップＳ７２）。その答が肯定（ＹＥＳ）のときはさらに押鍵されたキーのキーコードと当該イベントバッファ内のノート番号が一致する否かを判別する（ステップＳ７３）。その結果、ステップＳ７２及びＳ７３の答がともに肯定（ＹＥＳ）のときは、当該イベントバッファのデータに対応する楽音を発音し（ステップＳ８１）、得点加算処理及び表示処理を実行して（ステップＳ８２）、本処理を終了する。このように一致する場合は、後述する所定範囲内に入ったとき（ステップＳ７８の答が肯定（ＹＥＳ）のとき）より加算する点数を多くする。
【００４２】
一方ステップＳ７２又はＳ７３の答が否定（ＮＯ）のとき、すなわち曲進行位置がｉ番目のイベントバッファの発音許可期間内にないとき又は押鍵されたキーのキーコードが当該イベントバッファ内のノート番号と一致しないときは、カウント値ｉが所定数ｎと等しいか否かを判別し（ステップＳ７４）、ｉ＜ｎであるときは、カウント値ｉを「１」だけ増加させてステップＳ７２に戻る。ここで、所定数ｎは、通常はイベントバッファ１２の数１６とするが、和音を構成する楽音の数の少ない曲では、もっと少なくしてもよい。
【００４３】
ステップＳ７４でｉ＝ｎとなると、カウント値ｊを「１」に設定し（ステップＳ７６）、曲進行位置がｊ番目のイベントバッファの発音許可期間内か否かを判別する（ステップＳ７７）。その答が肯定（ＹＥＳ）のときはさらに押鍵されたキーのキーコードが当該イベントバッファ内のノート番号±ノート範囲数の範囲内にあるか否かを判別する（ステップＳ７８）。その結果、ステップＳ７７及びＳ７８の答がともに肯定（ＹＥＳ）のときは、前記ステップＳ８１に進む。
【００４４】
一方ステップＳ７７又はＳ７８の答が否定（ＮＯ）のとき、すなわち曲進行位置がｊ番目のイベントバッファの発音許可期間内にないとき又は押鍵されたキーのキーコードが当該イベントバッファ内のノート番号±ノート範囲数の範囲内にないときは、カウント値ｊが所定数ｎと等しいか否かを判別し（ステップＳ７９）、ｊ＜ｎであるときは、カウント値ｊを「１」だけ増加させてステップＳ７７に戻る。ステップＳ７９でｊ＝ｎとなると、本処理を終了する。
【００４５】
本処理により、演奏者によるキーオンタイミングが発音許可期間内にあり、且つキーコードが演奏データと一致するとき又は所定範囲内（ノート番号±ノート範囲数）にあるときは、キーオンタイミング時に発音処理及び得点加算が行われる一方、それ以外のときは発音処理及び得点加算は行われない。
【００４６】
図１３は、トリガーオフイベントに対応したトリガー処理のフローチャートであり、キーオフイベント（トリガーオフイベント）について図１２と同様の処理を行うものである。
【００４７】
先ずステップＳ９１では、カウント値ｋを「１」に設定し、次いで曲進行位置がｋ番目のイベントバッファの消音許可期間内か否かを判別する（ステップＳ９２）。その答が肯定（ＹＥＳ）のときはさらに離鍵されたキーのキーコードと当該イベントバッファ内のノート番号が一致する否かを判別する（ステップＳ９３）。その結果、ステップＳ９２及びＳ９３の答がともに肯定（ＹＥＳ）のときは、当該イベントバッファのデータに対応する楽音を消音し（ステップＳ１０１）、得点加算処理及び表示処理を実行し（ステップＳ１０２）、当該イベントバッファを空にして（ステップＳ１０３）、本処理を終了する。このように一致する場合は、後述する所定範囲内に入ったとき（ステップＳ９８の答が肯定（ＹＥＳ）のとき）より加算する点数を多くする。
【００４８】
一方ステップＳ９２又はＳ９３の答が否定（ＮＯ）のとき、すなわち曲進行位置がｋ番目のイベントバッファの消音許可期間内にないとき又は離鍵されたキーのキーコードが当該イベントバッファ内のノート番号と一致しないときは、カウント値ｋが所定数ｎと等しいか否かを判別し（ステップＳ９４）、ｋ＜ｎであるときは、カウント値ｋを「１」だけ増加させてステップＳ９２に戻る。
【００４９】
ステップＳ９４でｋ＝ｎとなると、カウント値ｍを「１」に設定し（ステップＳ９６）、曲進行位置がｍ番目のイベントバッファの消音許可期間内か否かを判別する（ステップＳ９７）。その答が肯定（ＹＥＳ）のときはさらに離鍵されたキーのキーコードが当該イベントバッファ内のノート番号±ノート範囲数の範囲内にあるか否かを判別する（ステップＳ９８）。その結果、ステップＳ９７及びＳ９８の答がともに肯定（ＹＥＳ）のときは、前記ステップＳ１０１に進む。
【００５０】
一方ステップＳ９７又はＳ９８の答が否定（ＮＯ）のとき、すなわち曲進行位置がｍ番目のイベントバッファの消音許可期間内にないとき又は離鍵されたキーのキーコードが当該イベントバッファ内のノート番号±ノート範囲数の範囲内にないときは、カウント値ｍが所定数ｎと等しいか否かを判別し（ステップＳ９９）、ｍ＜ｎであるときは、カウント値ｍを「１」だけ増加させてステップＳ９７に戻る。ステップＳ９９でｍ＝ｎとなると、本処理を終了する。
【００５１】
本処理により、演奏者によるキーオフタイミングが消音許可期間内にあり、且つキーコードが演奏データと一致するとき又は所定範囲内（ノート番号±ノート範囲数）にあるときは、キーオフタイミング時に消音処理及び得点加算が行われる一方、それ以外のときは図８のステップＳ３７で強制的な消音処理が行われ、得点加算は行われない。
【００５２】
以上詳述した図１０〜１３の処理を選択又は組み合わせて、難易度に応じた得点加算が行われ、低レベルから高レベルまでの広い範囲の演奏技能に対応した演奏の練習が可能となる。例えば、難易度１は図１０の処理のみとし、難易度２は図１１の処理のみとし、難易度３は図１２の処理のみとし、難易度４〜７は図１２の処理でノート範囲数を徐々に小さくして実現し、難易度８〜１０は図１２及び１３の処理で、ノート範囲数を徐々に小さくして実現する。
【００５３】
以上のように本実施の形態では、複数のトリガー処理を難易度に応じて選択又は組み合わせるようにしたので、簡単な演奏動作から難易度の高い演奏動作まで段階的に練習することができる。また、イベントバッファを複数設けたので、複音楽器のパートにおいても音符単位の制御を行うことが可能となる。
【００５４】
なお、上述した実施の形態に片手モード（左手のみ、又は右手のみの演奏）を付加する場合には、演奏データのトラックを右手用と左手用に分けておき、一方のみトリガーコントロールを行い、他方のトラックは通常の自動演奏処理を行うようにすればよい。また、片手モードに限らず、従来の技術として述べた自動演奏装置と同様に、複数の自動演奏トラックの１つ又は２つをトリガー駆動トラックとし、他のトラックを通常の自動演奏用のノーマルトラックとしてもよい。
【００５５】
また、演奏動作と演奏データをと比較するためのパラメータとして、ベロシティを用い、ベロシティの許可範囲を設定するようにしてもよい。
【００５６】
また、上述した実施の形態では所定の条件を満たす場合のみ発音するようにしたが、これに限るものではなく、所定の条件を満たさない場合も発音するようにしてもよい。ただし、その場合には、得点を加算しないようにし、さらに間違いであることを表示したり、警告音（エラー音）を発音するなどして、演奏者に注意を促すことが望ましい。
【００５７】
また、上述した難易度に応じた所定条件を満たす場合のみ、発音及び得点加算を行うトリガー処理を、従来のワンキープレイ専用の練習装置（自動演奏装置）に適用してもよい。その場合は、例えば図１４に示すようなトリガー処理を行う。
【００５８】
同図ステップＳ１１１では、ノートオンデータを読み出し、次いで難易度に応じた所定条件を満たすか否かを判別する。この場合の所定条件としては、例えばキーコードが所定範囲内にあるか、あるいは演奏データと一致するか否かがある。
【００５９】
ステップＳ１１２に所定条件が満たされる場合は、読み出されたデータに対応する楽音を発音するとともに（ステップＳ１１３）、得点加算及び表示処理を行って（ステップＳ１１４）、本処理を終了する。
【００６０】
また、ステップＳ１１２で所定条件が満たされない場合は、エラー音を発音するとともに（ステップＳ１１５）、間違いである旨を表示して（ステップＳ１１６）、本処理を終了する。
【００６１】
【発明の効果】
以上説明したように、請求項１に記載の発明によれば、演奏操作手段から演奏操作が入力されたときに、該入力タイミングが発音許容期間内に含まれる演奏データがすべて検索され、該検索されたすべての演奏データに基づいて、前記演奏操作の入力タイミングで発音されるので、すなわち、複数の演奏データを同時に発音することができるので、複数パートからなる演奏データであっても、演奏データ毎に発音制御を行うことができる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態にかかる演奏練習装置の構成を示すブロック図である。
【図２】  演奏データの構成を説明するための図である。
【図３】  イベントバッファの記憶内容を説明するための図である。
【図４】  発音許可期間及び消音許可期間を決定するためのパラメタータを、演奏の難易度に対応して格納したテーブルを示す図である。
【図５】  ディスプレイの表示画面の一例を示す図である。
【図６】  図１のＣＰＵで実行されるメインルーチンのフローチャートである。
【図７】  割込処理のフローチャートである。
【図８】  自動演奏処理のフローチャートである。
【図９】  自動演奏処理の一部を詳細に示すフローチャートである。
【図１０】  トリガー処理のフローチャートである。
【図１１】  トリガー処理のフローチャートである。
【図１２】  トリガー処理のフローチャートである。
【図１３】  トリガー処理のフローチャートである。
【図１４】  トリガー処理のフローチャートである。
【符号の説明】
１  鍵盤
２  ＲＡＭ
３  ＲＯＭ
４  ＣＰＵ
５  操作子
６  ディスプレイ
【図１】
0003743364.tif 000002
【図２】
0003743364.tif 000003
【図３】
0003743364.tif 000004
【図４】
0003743364.tif 000005
【図５】
0003743364.tif 000006
【図６】
0003743364.tif 000007
【図７】
0003743364.tif 000008
【図８】
0003743364.tif 000009
【図９】
0003743364.tif 000010
【図１０】
0003743364.tif 000011
【図１１】
0003743364.tif 000012
【図１２】
0003743364.tif 000013
【図１３】
0003743364.tif 000014
【図１４】
0003743364.tif 000015