(57)【要約】【課題】模範演奏と実演奏とを比較して演奏評価を行なうためのＣＰＵの処理負担を軽減する。【解決手段】ＣＰＵ１は、プログラムＲＯＭ３のプログラムに従って、曲メモリ５に記憶された模範演奏データである曲データを読出し、この読み出された曲データから模範オン区間を抽出すると共に、鍵盤６により供給される実演奏データから実オン区間を抽出する。そしてこの両オン区間の重なり及び対応する音高が同一であることが検出されたなら演奏評価の点数を加点すると共に、両オン区間の重なりは検出されたが、対応する音高が異なる場合は減点するようにしている。【選択図】        図１
2004226467.tif 000002
【特許請求の範囲】
【請求項１】
発音すべき楽音の音高、当該楽音を発生すべきタイミング及び消音すべきタイミングを指示する模範演奏データを順次供給する模範演奏データ供給手段と、
指定された音高で楽音の発音を指示するタイミング及び消音を指示するタイミングからなる実演奏データを順次供給する実演奏データ供給手段と、
前記模範演奏データ供給手段より供給される模範演奏データに基づき、発音すべきタイミングから消音すべきタイミングまでの区間を示す模範オン区間を抽出する模範オン区間抽出手段と、
前記実演奏データ供給手段より供給される実演奏データに基づき、発音を指示するタイミングから消音を指示するタイミングまでの区間を示す実オン区間を抽出する実オン区間抽出手段と、
前記模範オン区間抽出手段により抽出された模範オン区間と前記実オン区間抽出手段により抽出された実オン区間抽出手段とが重なり合うか否か検出する検出手段と、
前記検出手段により重なりが検出された場合のみ、前記模範オン区間に対応する音高と実オン区間に対応する音高を比較する比較手段と、
前記比較手段により両音高が同一であると判定された場合は評価点を加点する一方、両音高が同一でないと判定された場合は評価点を減点する演奏評価手段と、
を備えたことを特徴とする演奏評価装置。
【請求項２】
前記模範演奏データ供給手段は、指定された音高で楽音の発音開始を指示するオンイベント、消音を指示するオフイベント及び各イベント間の時間を示すタイムが一連のデータとして記憶される演奏データ記憶手段と、この演奏データ記憶手段から前記タイムに基づいたタイミングで対応するイベントを読み出して供給する読出し手段と、を有することを特徴とする請求項１記載の演奏評価装置。
【請求項３】
発音すべき楽音の音高、当該楽音を発生すべきタイミング及び消音すべきタイミングを指示する模範演奏データを順次供給するステップと、指定された音高で楽音の発音を指示するタイミング及び消音を指示するタイミングからなる実演奏データを順次供給するステップと、
供給される前記模範演奏データに基づき、発音すべきタイミングから消音すべきタイミングまでの区間を示す模範オン区間を抽出するステップと、
供給される前記実演奏データに基づき、発音を指示するタイミングから消音を指示するタイミングまでの区間を示す実オン区間を抽出するステップと、
抽出された前記模範オン区間と実オン区間とが重なり合うか否か検出するステップと、
前記模範オン区間と実オン区間との重なりが検出された場合のみ、前記模範オン区間に対応する音高と実オン区間に対応する音高を比較するステップと、
前記両音高が同一であると判定された場合は評価点を加点する一方、両音高が同一でないと判定された場合は評価点を減点するステップと、
を実行することを特徴とする演奏評価プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏教習において演奏を評価するための演奏評価装置および演奏評価プログラムに関する。
【０００２】
【従来の技術】
従来から、電子楽器に演奏状態を評価するシステムを付加することが提案されている。これは、電子楽器本体に模範となる模範演奏データを記憶しておき、この模範演奏データと実際の演奏により供給される実演奏データとを比較する方法がとられている。この比較の方法として、実演奏と模範演奏の間で、両者の音高及び押鍵又は離鍵のタイミングが一致しているか否かが判定される。
このうち音高の比較は、鍵盤等の演奏操作子のうち正しい操作子が操作されたか否かを判定し、タイミングは模範演奏のタイミングに等しいタイミングで操作されたか否かが判定される（特許文献１及び２参照）。
【０００３】
【特許文献１】
実開平０４−  ４８５５３号公報
特開平１０−１６１６７３号公報
【０００４】
【発明が解決しようとする課題】
上記従来の技術においては、音高の評価は、模範演奏データで指定された音高に対応する操作子が操作されたか否かを判定するだけであるが、演奏タイミングの評価は、模範のタイミングと同一タイミングであるか否か、さらには慎重に決められた許容範囲内に入っているか否かを判定しなければならない。このためには、模範演奏タイミングと実演奏タイミングとの差を検出することはもちろん、実演奏のタイミングが模範演奏のタイミングより早い場合を想定して模範演奏データを先に読み出す等の処理を行なわねばならない。
【０００５】
このような処理を行なうことは、これ以外に電子楽器本来の処理を行っているＣＰＵには負担が重く、特にテンポの速い曲等を演奏処理しようとすると、ＣＰＵが処理しきれず、演奏ずれ等を起こす恐れがあった。
これを防止するためには、より高価でかつ高性能なＣＰＵを用いる必要があり、電子楽器全体のコストを押し上げる結果となっていた。
【０００６】
本発明は、演奏評価処理の負担が軽く、高価なＣＰＵを用いなくとも演奏評価を可能とする演奏評価装置および演奏評価プログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
請求項１に記載の演奏評価装置は、発音すべき楽音の音高、当該楽音を発生すべきタイミング及び消音すべきタイミングを指示する模範演奏データを順次供給する模範演奏データ供給手段、及び指定された音高で楽音の発音を指示するタイミング及び消音を指示するタイミングからなる実演奏データを順次供給する実演奏データ供給手段を有する。
模範演奏データ供給手段は、例えば指定された音高で楽音の発音開始を指示するオンイベント、消音を指示するオフイベント及び各イベント間の時間を示すタイムが一連のデータとして記憶される演奏データ記憶手段と、この演奏データ記憶手段からタイムに基づいたタイミングで対応するイベントを読み出して供給する読出し手段とから構成してもよい。
【０００８】
次に、模範演奏データ供給手段より供給される模範演奏データに基づき、発音すべきタイミングから消音すべきタイミングまでの区間を示す模範オン区間を抽出する模範オン区間抽出手段、及び実演奏データ供給手段より供給される実演奏データに基づき、発音を指示するタイミングから消音を指示するタイミングまでの区間を示す実オン区間を抽出する実オン区間抽出手段を有する。
【０００９】
そして、模範オン区間抽出手段により抽出された模範オン区間と実オン区間抽出手段により抽出された実オン区間抽出手段とが重なり合うか否か検出する検出手段、及び検出手段により重なりが検出された場合のみ、前記模範オン区間に対応する音高と実オン区間に対応する音高を比較する比較手段を有する。
さらに、比較手段により両音高が同一であると判定された場合は評価点を加点する一方、両音高が同一でないと判定された場合は評価点を減点する演奏評価手段と、を有する。
【００１０】
請求項３に記載の演奏評価プログラムは、発音すべき楽音の音高、当該楽音を発生すべきタイミング及び消音すべきタイミングを指示する模範演奏データを順次供給するステップと、指定された音高で楽音の発音を指示するタイミング及び消音を指示するタイミングからなる実演奏データを順次供給するステップと、供給される模範演奏データに基づき、発音すべきタイミングから消音すべきタイミングまでの区間を示す模範オン区間を抽出するステップと、供給される実演奏データに基づき、発音を指示するタイミングから消音を指示するタイミングまでの区間を示す実オン区間を抽出するステップと、抽出された模範オン区間と実オン区間とが重なり合うか否か検出するステップと、模範オン区間と実オン区間との重なりが検出された場合のみ、模範オン区間に対応する音高と実オン区間に対応する音高を比較するステップと、両音高が同一であると判定された場合は評価点を加点する一方、両音高が同一でないと判定された場合は評価点を減点するステップと、を実行する。上記各ステップは、ＣＰＵによって実行されるフローチャートの処理機能に相当する。
【００１１】
【発明の実施の形態】
以下、本発明による演奏評価装置の第１の実施形態ないし第５の実施形態について、図を参照して説明する。
図１は、各実施形態における演奏評価装置のシステムの構成を示すブロック図である。この図において、ＣＰＵ１は、システムバス２を介して、プログラムＲＯＭ３、ワークＲＡＭ４、曲メモリ５、鍵盤６、スイッチ部７、表示部８、および音源９に接続され、これら各部との間で、コマンドおよびデータを授受しながら、この装置全体を制御する。
【００１２】
プログラムＲＯＭ３は、ＣＰＵ１によって実行される制御プログラム、演奏評価プログラムなどのアプリケーションプログラム、起動時のイニシャライズにおける初期データなどをあらかじめ記憶している。ワークＲＡＭ４は、プログラムの実行に必要な各種のレジスタやフラグのエリアを持っている。曲メモリ５は、演奏の評価対象である複数の自動演奏曲の曲データを記憶している。鍵盤６は、演奏操作に応じて鍵番号およびベロシティをＣＰＵ１に入力する。スイッチ部７は、曲メモリ５に記憶されている曲を選択するスイッチ、自動演奏を開始又は停止するスタート／ストップスイッチなどで構成されている。
表示部８は、自動演奏曲すなわち評価対象の曲の楽譜や評価結果などを表示する。音源９は、発音回路１０に接続され、ＣＰＵ１の発音指示（ノートオンコマンド）や消音指示（ノートオフコマンド）に応じて、演奏者を支援する声援やその他の音響信号を発生して発音回路１０に出力し又は出力を停止する。発音回路１０は、Ｄ／Ａ変換回路、フィルタ回路、増幅回路、スピーカなどで構成され、音源９から出力される音響信号に応じて楽音を発生する。
なお、図には示していないが、ＣＰＵ１の演奏指示に応じて点灯してガイド表示を行なうＬＥＤが各鍵ごとに設けられている。
【００１３】
次に、第１の実施形態における動作について、図２〜図１１に示すＣＰＵ１のフローチャート、および図１２、図１３に示す図を参照して説明する。
図２（１）は、ＣＰＵ１の演奏評価処理のメインフローチャートであり、図２（２）はタイマインタラプトのフローチャートである。図２（１）において、イニシャライズを行なって（ステップＡ１）、ワークＲＡＭ４の各種のレジスタをクリアし、各種のフラグを「０」にリセットし、タイマインタラプトを禁止する。イニシャライズの後は、スイッチ部７の各スイッチのオンおよびオフを検出するスイッチ処理（ステップＡ２）、曲メモリ５から選択された評価対象の曲の曲データを読み出して演奏指示を行う自動演奏処理（ステップＡ３）、鍵盤６を走査して演奏すなわち押鍵および離鍵の鍵変化を検出する鍵盤処理（ステップＡ４）、評価対象の曲の演奏結果を評価する評価処理（ステップＡ５）、およびその他の処理（ステップＡ６）を繰り返し実行する。
図２（２）において、設定した一定時間ごとの周期でタイマインタラプトが入ると、後述するレジスタＴＩＭＥの値をデクリメントして（ステップＡ７）、メインフローに戻る。
【００１４】
図３は、メインフローにおけるステップＡ２のスイッチ処理のフローチャートである。まず、曲選択処理を実行し（ステップＢ１）、次に、スタート／ストップスイッチ処理を実行する（ステップＢ２）。次に、その他のスイッチ処理を行い（ステップＢ３）、メインフローに戻る。
図４は、スイッチ処理におけるステップＢ１の曲選択スイッチ処理のフローチャートである。スタートフラグＳＴＦが「０（演奏停止）」であるか否かを判別し（ステップＣ１）、このフラグが「１（自動演奏）」である場合にはこのフローを終了するが、このフラグが「０」である場合には、曲選択のスイッチが操作されたか否かを判別する（ステップＣ２）。スイッチの操作がない場合にはこのフローを終了するが、スイッチが操作されたときは、そのスイッチによって指定された選択曲の番号をレジスタＭにストアする（ステップＣ３）。そして、このフローを終了する。
【００１５】
図５は、図３におけるステップＢ３のスタート／ストップスイッチ処理のフローチャートである。スタート／ストップスイッチがオンされたか否かを判別し（ステップＤ１）、オンされない場合にはこのフローを終了するが、オンされたときはフラグＳＴＦの値を反転する（ステップＤ２）。そして、ＳＴＦの値が「１」であるか否かを判別する（ステップＤ３）。ＳＴＦの値が「１」である場合には自動演奏を開始して、レジスタＭの選択曲の番号で指定される曲（Ｍ）の先頭アドレスをレジスタＡＤにストアする（ステップＤ４）。また、曲（Ｍ）のテンポをレジスタＴＥＭＰＯにストアする（ステップＤ５）。
【００１６】
次に、ＡＤにより指定される先頭アドレスの曲データのタイムを読出し（ステップＤ６）、そのタイムをレジスタＴＩＭＥにストアする（ステップＤ７）。そして、ＴＥＭＰＯに基づくタイマインタラプトの周期を設定する（ステップＤ８）。次に、曲の進行に応じて曲開始からの音符をカウントするレジスタＮを「０」にクリアし（ステップＤ９）、演奏結果を評価するための所定数の音符をカウントするレジスタＴを「０」にクリアする（ステップＤ１０）。次に、タイマインタラプトの禁止を解除する（ステップＤ１１）。したがって、図２（２）のタイマインタラプトに示したように、ＴＥＭＰＯに基づく周期ごとにＴＩＭＥの値がデクリメントされる。
ステップＤ３において、ＳＴＦが「１」から「０」に反転したときは、自動演奏の停止であるので、タイマインタラプトを禁止して（ステップＤ１２）、鍵盤６のガイド表示をすべて消灯する（ステップＤ１３）。そして、メインフローに戻る。
【００１７】
図６ないし図８は、メインフローにおけるステップＡ３の自動演奏処理のフローチャートである。ＳＴＦが「１」であるか否かを判別し（ステップＥ１）、ＳＴＦが「１」で自動演奏状態である場合には、タイマインタラプトごとにデクリメントされるＴＩＭＥの値が「０」に達したか否かを判別する（ステップＥ２）。ＳＴＦが「０」である場合、又は、ＴＩＭＥの値が「０」に達していない場合には、このフローを終了するが、ＴＩＭＥの値が「０」に達したときは、次の曲データを読み出すために、ＡＤのアドレスを進める（ステップＥ３）。そして、ＡＤのアドレスによる曲データの読出しを行なう（ステップＥ４）。
【００１８】
次に、読出した曲データがＥＮＤすなわち曲の終了でないか否かを判別する（ステップＥ５）。ＥＮＤでない場合には、そのデータがノートオフのイベントであるか否かを判別する（ステップＥ６）。ノートオフのイベントでない場合には、図７のフローにおいて、データがタイムであるか否かを判別し（ステップＥ１３）、タイムである場合には、そのタイムをＴＩＭＥにストアして（ステップＥ１４）、このフローを終了する。
データがタイムでない場合には、ノートオンのイベントであるか否かを判別する（ステップＥ１５）。ノートオンのイベントである場合には、レジスタＮＯＴＥにイベントのノートをストアする（ステップＥ１６）。次に、イベントのノートに対応して鍵盤６のガイド表示を点灯する（ステップＥ１７）。また、ガイドフラグＧＵＩＤＥ  ＯＮＦを「１」にセットする（ステップＥ１８）。そして、押鍵の有無を示すフラグＫＥＹ  ＯＮＦが「１（押鍵）」であるか否かを判別する（ステップＥ１９）。
【００１９】
ＫＥＹ  ＯＮＦが「１」である場合には、鍵盤６が押鍵されている。このため、ＮＯＴＥにストアしたイベントのノートと、後述する図９の鍵盤処理においてレジスタＫＥＹにストアされた押鍵のノートとが一致するか否かを判別する（ステップＥ２０）。一致する場合、すなわちＧＵＩＤＥ  ＯＮＦを「１」にセットしたときには、すでに演奏指示する鍵が押鍵されている場合には、レジスタＰＯＩＮＴの値にαの値を加算する（ステップＥ２１）。一致しない場合、すなわちガイド表示した鍵とは異なる鍵が押鍵されている場合には、ＰＯＩＮＴの値からαを減算する（ステップＥ２２）。αを加算又は減算した後は、評価フラグＨＹＯＫＡＦを「１」にセットする（ステップＥ２３）。ステップＥ１５において、データがノートオンのイベントでない場合には、その他のイベント処理を行なう（ステップＥ２４）。
ステップＥ２３においてＨＹＯＫＡＦを「１」にセットした後、ステップＥ１９においてＫＥＹ  ＯＮＦが「０」である場合、又は、ステップＥ２４においてその他のイベント処理を行なった後は、図６のステップＥ３に移行してＡＤを進める。
【００２０】
図６のステップＥ４で読出した曲データが、ステップＥ６においてノートオフのイベントであると判別した場合には、イベントのノートに対応する鍵のガイド表示を消灯する（ステップＥ７）。そして、ガイドフラグＧＵＩＤＥ  ＯＮＦを「０」にリセットし（ステップＥ８）、評価を行なう所定期間の１つの音符に対する処理が終わったので、Ｔのノート数をインクリメントする（ステップＥ９）。この後、図８のフローにおいて、Ｔのノート数が基準ノート数に達したか否かを判別する（ステップＥ２５）。
【００２１】
Ｔのノート数が基準ノート数に達したときは、表示や音声などでユーザに対して支援するか否かを示すフラグＳＨＩＥＮＦを「１（支援）」にセットする（ステップＥ２６）。そして、Ｔのノート数を「０」にクリアする（ステップＥ２７）。Ｔをクリアした後、又は、ステップＥ２５においてＴのノート数が基準ノート数に達しない場合には、ＨＹＯＫＡＦが「０」であるか否かを判別し（ステップＥ２８）、「０」である場合には「１」にセットする（ステップＥ２９）。ＨＹＯＫＡＦを「１」にセットした後、又は、ＨＹＯＫＡＦが「１」である場合には、曲の最初からのノート数をストアするレジスタＮのノート数をインクリメントする（ステップＥ３０）。そして、図６のステップＥ３に移行してＡＤのアドレスを進める。
【００２２】
図６のステップＥ５において、読み出したデータがＥＮＤである場合には、ＳＴＦを「０」にリセットして（ステップＥ１０）、鍵盤６のガイド表示をすべて消灯する（ステップＥ１１）。また、タイマインタラプトを禁止する（ステップＥ１２）。そして、このフローを終了してメインフローに戻る。
【００２３】
図９は、メインフローにおけるステップＡ４の鍵盤処理のフローチャートである。このフローでは、鍵走査を行なって（ステップＦ１）、鍵変化があるか否かを判別する（ステップＦ２）。鍵変化がない場合には、このフローを終了してメインフローに戻る。鍵変化がオフからオンに変化した場合、すなわち押鍵がされた場合には、その押鍵のノートをレジスタＫＥＹにストアする（ステップＦ３）。そして、ＫＥＹのノートを元にノートオンコマンドを作成し（ステップＦ４）、そのノートオンコマンドを音源９に送出する（ステップＦ５）。そして、ＫＥＹ  ＯＮＦを「１」にセットする（ステップＦ６）。
【００２４】
次に、ＧＵＩＤＥ  ＯＮＦが「１」であるか否かを判別する（ステップＥ７）。このフラグが「０」である場合にはメインフローに戻るが、このフラグが「１」で押鍵指示の鍵のガイド表示が点灯している場合には、ＫＥＹにストアしたノートとＮＯＴＥにストアした押鍵指示のノートとが一致するか否かを判別する（ステップＦ８）。一致した場合、すなわち、押鍵指示された鍵が正確に押鍵された場合には、ＰＯＩＮＴにαの値を加算する（ステップＦ９）。一致しなかった場合、すなわち、押鍵指示された鍵とは異なる鍵が押鍵された場合には、ＰＯＩＮＴからαの値を減算する（ステップＦ１０）。αの値を加算又は減算した後は、ＨＹＯＫＡＦを「１」にセットする（ステップＦ１１）。そして、メインフローに戻る。
【００２５】
ステップＦ２において、鍵変化がオンからオフに変化した場合、すなわち、離鍵がされた場合には、その離鍵のノートをＫＥＹにストアする（ステップＦ１２）。そして、ＫＥＹのノートを元にノートオンコマンドを作成し（ステップＦ１３）、そのノートオフコマンドを音源９に送出する（ステップＦ１４）。そして、ＫＥＹ  ＯＮＦを「０」にリセットする（ステップＦ１５）。そして、このフローを終了してメインフローに戻る。
【００２６】
図１０および図１１は、メインフローにおけるステップＡ５の評価処理のフローチャートである。図１０のフローにおいて、まず、ＨＹＯＫＡＦが「１」であるか否かを判別する（ステップＧ１）。このフラグが「１」である場合にはこれを「０」にリセットする（ステップＧ２）。次に、評価すべき所定期間の配列Ｐ（ｎ）を指定するポインタｎを「０」にセットして（ステップＧ３）、Ｐ（ｎ）にＰ（ｎ＋１）を代入して（ステップＧ４）、ｎの値をインクリメントする（ステップＧ５）。そして、ｎ＋１の値が評価ノート数になったか否かを判別する（ステップＧ６）。評価ノート数になっていない場合には、ステップＧ４に移行して、ステップＧ６までの処理を繰り返す。
【００２７】
ステップＧ６において、ｎ＋１の値が評価ノート数になった場合には、ＰＯＩＮＴの値をＰ（ｎ）にストアする（ステップＧ７）。ＰＯＩＮＴの値をＰ（ｎ）にストアした後は、フラグＳＨＩＥＮＦが「１」であるか否かを判別し（ステップＧ８）、ＳＨＩＥＮＦが「０」である場合にはこのフローを終了するが、ＳＨＩＥＮＦが「１」である場合には、これをリセットする（ステップＧ９）。
【００２８】
次に、Ｎにストアした曲の最初からの音符数が、あらかじめ設定されている２つの音符数であるＤ１より大きくＤ２より小さい期間にあるか否かを判別する（ステップＧ１０）。すなわち、曲の最初の音符からＤ１までの音符、および、Ｄ２の音符から曲の終了までの範囲を除く期間（評価対象期間）にＮの音符数があるか否かを判別する。Ｎにストアした音符数がこの期間にない場合には、このフローを終了する。
【００２９】
Ｎにストアした音符数がＤ１より大きくＤ２より小さい期間にある場合には、図１１のフローにおいて、配列Ｐ（ｎ）の評価ノート数を指定するポインタｎを「０」にセットする（ステップＧ１１）。次に、評価用レジスタＨＹＯＫＡを「０」にクリアする（ステップＧ１２）。そして、ＨＹＯＫＡにＰ（ｎ）の値を加算する（ステップＧ１３）。次に、ｎの値をインクリメントして（ステップＧ１４）、ｎの値が評価ノート数になったか否かを判別する（ステップＧ１５）。評価ノート数になっていない場合には、ステップＧ１３に移行して、ステップＧ１５までの処理を繰り返す。
【００３０】
ｎの値が評価ノート数になった場合には、前回の所定期間における評価データをストアするＦＨＹＯＫＡに評価データがあるか否かを判別する（ステップＧ１６）。ＦＨＹＯＫＡに評価データがある場合には、今回の所定期間の評価データをストアしたＨＹＯＫＡの値がＦＨＹＯＫＡの値以下であるか、又は、ＨＹＯＫＡの値がＦＨＹＯＫＡの値より大きいか否かを判別する（ステップＧ１７）。すなわち、今回の所定期間の評価が前回より低い若しくは同じか、又は、前回より高いかを判別する。
【００３１】
ＨＹＯＫＡの値（今回の評価）がＦＨＹＯＫＡの値（前回の評価）以下である場合には、例えば「もっとがんばれ」などの第１の声援音声を指定する変数ＶＯＩＣＥ１（ＨＹＯＫＡ）のデータをレジスタＬＡＮＫにストアする（ステップＧ１８）。一方、ＨＹＯＫＡの値がＦＨＹＯＫＡの値より大きい場合、又は、ＦＨＹＯＫＡに評価データがない場合には、例えば「いいぞ、その調子」などの第２の声援音声を指定する変数ＶＯＩＣＥ２（ＨＹＯＫＡ）のデータをレジスタＬＡＮＫにストアする（ステップＧ１９）。ＬＡＮＫにいずれかの声援音声のデータをストアした後は、ＬＡＮＫのデータに基づく声援の音声データを発生する（ステップＧ２０）。次に、ＨＹＯＫＡの値をＦＨＹＯＫＡにストアして更新し（ステップＧ２１）、次の所定期間の評価に備える。そして、このフローを終了してメインフローに戻る。
【００３２】
図１２は、評価小節経過数に対する評価レベルの具体例を示す図である。この場合は、演奏対象の曲データにおいて、Ｄ１＝２５、Ｄ２＝８に設定されている。すなわち、評価支援有効範囲（評価対象期間）は、曲の最初から２５まで、および、曲の総音符数から８を減算した音符数の範囲を除く、図１２の矢印で示す期間である。また、評価基準ノート数は１０個であり、評価基準ノート数の１０音符数ごとに逐次演奏状態を評価採点し、合計２０音符ごとの評価状況に応じて演奏支援を実施する。すなわち、前回の１０個の音符に対する評価と、今回の１０個の音符に対する評価とを比較する。
【００３３】
したがって、評価ノート数が２０，３０，４０，５０，６０，７０，８０，１００を経過した時点で、その経過以前の２０音符の評価状況が算出される。その評価状況に応じて、表示部８での支援の表示や音源９による音声又は効果音での支援を発音させる。そして、最初の１０個の評価および今回の１０個の評価が前回の１０個より大きい場合には評価がアップし、今回の１０個の評価が前回の１０個より小さい場合には評価がダウンする。
【００３４】
図１３は、演奏指示のガイドノートと実際の押鍵のノートとのタイミングの関係を示す図である。例１の場合には、ガイドノートＣ３がオンからオフまでの期間（ガイド表示が点灯している期間）にＣ３の押鍵がなされた場合であり、ポイントアップとして評価される。これは図９のフローにおけるステップＦ９の処理（ＰＯＩＮＴにαを加算）に対応する。
例２の場合には、ノートＣ３の押鍵がなされている期間に、ガイドノートＣ３がオン（ガイド表示が点灯）になった場合であり、ポイントアップとして評価される。これは、図７のフローにおけるステップＥ２１の処理（ＰＯＩＮＴにαを加算）に対応する。
例３の場合には、ガイドノートＣ３がオンからオフまでの期間にＥ３の押鍵がなされた場合である。すなわち、ガイド表示の鍵とは異なる鍵が押鍵された場合であるので、ポイントダウンとして評価される。これは図９のフローにおけるステップＦ１０の処理（ＰＯＩＮＴからαを減算）に対応する。
【００３５】
以上のように、この第１の実施形態によれば、ＣＰＵ１は、曲メモリ５に記憶された模範演奏データである曲データを読出し、この読み出された曲データから模範オン区間を抽出すると共に、鍵盤６により供給される実演奏データから実オン区間を抽出する。そしてこの両オン区間の重なり及び対応する音高が同一であることが検出されたなら演奏評価の点数を加点すると共に、両オン区間の重なりは検出されたが、対応する音高が異なる場合は減点するようにしている。したがって、従来のように模範演奏と実演奏との操作タイミングの差異の検出、あるいは模範演奏データの先読み等の処理を行う必要がなく、ＣＰＵ１の処理負担は軽くなる。しかも、演奏者による演奏が行われたときのみ評価点数の加点あるいは減点が行われるため、より演奏者の演奏が反映した評価がなされる。
【００３６】
なお、上記各実施形態においては、図１のプログラムＲＯＭ３に予め記憶されている演奏評価プログラムをＣＰＵ１によって実行する演奏評価装置について説明したが、ＦＤ（フレキシブルディスク）、ＣＤ−ＲＯＭなどの外部記憶媒体に記憶されている演奏評価プログラムや、インターネットなどの通信網を介してダウンロードされる演奏評価プログラムを、パソコンなどの汎用の情報処理装置にインストールして実行することも可能である。この場合には、プログラムの発明を構成する。
【００３７】
すなわち、本発明による演奏評価プログラムは、発音すべき楽音の音高、当該楽音を発生すべきタイミング及び消音すべきタイミングを指示する模範演奏データを順次供給するステップと、指定された音高で楽音の発音を指示するタイミング及び消音を指示するタイミングからなる実演奏データを順次供給するステップと、供給される模範演奏データに基づき、発音すべきタイミングから消音すべきタイミングまでの区間を示す模範オン区間を抽出するステップと、供給される実演奏データに基づき、発音を指示するタイミングから消音を指示するタイミングまでの区間を示す実オン区間を抽出するステップと、抽出された模範オン区間と実オン区間とが重なり合うか否か検出するステップと、模範オン区間と実オン区間との重なりが検出された場合のみ、模範オン区間に対応する音高と実オン区間に対応する音高を比較するステップと、両音高が同一であると判定された場合は評価点を加点する一方、両音高が同一でないと判定された場合は評価点を減点するステップと、を実行する。
【００３８】
【発明の効果】
本発明によれば、供給される模範演奏データから模範オン区間を抽出すると共に、供給される実演奏データから実オン区間を抽出する。そしてこの両オン区間の重なり及び対応する音高が同一であることが検出されたなら演奏評価の点数を加点すると共に、両オン区間の重なりは検出されたが、対応する音高が異なる場合は減点するようにしている。したがって、従来のように模範演奏と実演奏との操作タイミングの差異の検出、あるいは模範演奏データの先読み等の処理を行う必要がなく、演奏評価のためのＣＰＵの処理負担を軽くすることができる。しかも、演奏者による演奏が行われたときのみ評価点数の加点あるいは減点が行われるため、より演奏者の演奏が反映した評価がなされる。
【図面の簡単な説明】
【図１】本発明の各実施形態における演奏評価装置の構成を示すブロック図。
【図２】第１の実施形態におけるＣＰＵの演奏評価処理のメインフローチャート。
【図３】第１の実施形態におけるスイッチ処理のフローチャート。
【図４】第１の実施形態における曲選択スイッチ処理のフローチャート。
【図５】第１の実施形態におけるスタート／ストップスイッチ処理のフローチャート。
【図６】第１の実施形態における自動演奏処理のフローチャート。
【図７】図６に続く自動演奏処理のフローチャート。
【図８】図６に続く自動演奏処理のフローチャート。
【図９】第１の実施形態における鍵盤処理のフローチャート。
【図１０】第１の実施形態における評価処理のフローチャート。
【図１１】図１０に続く評価処理のフローチャート。
【図１２】第１の実施形態における評価小節経過数に対する評価レベルの具体例を示す図。
【図１３】第１の実施形態におけるガイドノートおよび押鍵ノートのタイミング図。
【符号の説明】
１  ＣＰＵ
３  プログラムＲＯＭ
４  ワークＲＡＭ
５  曲メモリ
６  鍵盤
７  スイッチ部
８  表示部
９  音源
１０  発音回路
【図１】
2004226467.tif 000003
【図２】
2004226467.tif 000004
【図３】
2004226467.tif 000005
【図４】
2004226467.tif 000006
【図５】
2004226467.tif 000007
【図６】
2004226467.tif 000008
【図７】
2004226467.tif 000009
【図８】
2004226467.tif 000010
【図９】
2004226467.tif 000011
【図１０】
2004226467.tif 000012
【図１１】
2004226467.tif 000013
【図１２】
2004226467.tif 000014
【図１３】
2004226467.tif 000015