(57)【要約】【課題】ユーザが評価対象の曲を演奏してその評価を受ける際に、ユーザの技量を正しく評価することにより、演奏技術の向上を効率的に図ることができるようにする。【解決手段】ＣＰＵ１は、プログラムＲＯＭ３のプログラムに従って、曲メモリ５に記憶された演奏対象の曲データの内容に応じて評価対象期間を設定し、その評価対象期間における曲データの所定期間ごとの演奏結果を評価して、その評価結果を表示部８に出力して表示させる。【選択図】        図１
2004205567.tif 000002
【特許請求の範囲】
【請求項１】
演奏対象の曲データの内容に応じて評価対象期間を設定する期間設定手段と、
前記評価対象期間における前記曲データの所定期間ごとの演奏結果を評価する演奏評価手段と、
前記演奏評価手段による評価結果を所定の表示手段に出力して表示させる評価出力手段と、
を備えたことを特徴とする演奏評価装置。
【請求項２】
前記演奏評価手段は、前記曲データの所定の音符数ごとに演奏結果を評価することを特徴とする請求項１記載の演奏評価装置。
【請求項３】
前記演奏評価手段は、前記曲データの所定の時間経過ごとに演奏結果を評価することを特徴とする請求項１記載の演奏評価装置。
【請求項４】
前記期間設定手段は、前記曲データに含まれている識別データに基づいて評価対象期間を設定することを特徴とする請求項１ないし３のうちいずれか１項記載の演奏評価装置。
【請求項５】
前記期間設定手段は、前記曲データにおける発音イベントの発音時間の傾向に応じて評価対象期間を設定することを特徴とする請求項１ないし３のうちいずれか１項記載の演奏評価装置。
【請求項６】
前記期間設定手段は、前記曲データのテンポに応じて評価対象期間を設定することを特徴とする請求項１ないし３のうちいずれか１項記載の演奏評価装置。
【請求項７】
前記演奏評価手段は、前回の所定期間の演奏結果に対する今回の所定期間の演奏結果を評価することを特徴とする請求項１ないし６のいずれか１項記載の演奏評価装置。
【請求項８】
演奏対象の曲データの内容に応じて評価対象期間を設定する第１のステップと、
前記評価対象期間における前記曲データの所定期間ごとの演奏結果を評価する第２のステップと、
前記第２のステップによる評価結果を所定の表示手段に出力して表示させる第３のステップと、
を実行することを特徴とする演奏評価プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏教習において演奏を評価するための演奏評価装置および演奏評価プログラムに関する。
【０００２】
【従来の技術】
演奏教習の分野ではないが、演奏を評価する観点から類似する従来技術として、カラオケ歌唱を採点する採点機能を備えたカラオケ装置が提案されている。この提案によれば、カラオケ曲の演奏に合わせて歌唱された歌唱音声信号を入力して、この歌唱音声信号を分析して周波数・音量などを割り出し、これをリアルタイムに採点する構成になっている。採点は、カラオケ曲のガイドメロディデータと前記周波数データ・音量データとを比較して、その一致度・相違度に基づいて行なう（特許文献１参照）。
【０００３】
【特許文献１】
特開平１０−１６１６７３号公報（段落番号「０００７」）
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来の技術においては、カラオケ曲の内容に関係なく、ガイドメロディデータの開始と同時にリアルタイムの採点すなわち評価が始まるので、技量的にも精神的にも最も困難な歌唱開始の部分から採点されるために、歌い出しに失敗したユーザは、最初に低い評価、例えば、「音程が悪い」、「テンポが悪い」、「声が出ていない」のような評価を受けることになる。したがって、その後は、悪い状態を改善できないまま曲が終了する場合が多い。
【０００５】
このことは、カラオケ曲の歌唱に限らず楽器の演奏においても同様である。例えば、電子鍵盤楽器において練習曲すなわち評価対象の曲を演奏してその評価を受ける場合には、曲の最初の部分はタイミングを取るのが困難であり、特に初心者にとってはスムーズな演奏開始はむしろ稀である。このため、曲の最初から最後まで一様に評価した場合には、演奏者であるユーザの技量を過小評価するおそれがある。さらに、この演奏開始部分の難易度は、評価対象の曲の内容によって異なる。
したがって、歌唱力の優劣を争うゲームの場合とは異なり、音楽教育の一環として評価対象の曲を演奏する場合には、ユーザの演奏技術の向上が最大の狙いであるので、上記従来の技術をもってしては、むしろユーザの演奏技術の向上を阻害するおそれがある。
【０００６】
本発明は、ユーザが評価対象の曲を演奏してその評価を受ける際に、ユーザの技量を正しく評価することにより、演奏技術の向上を効率的に図ることができる演奏評価装置および演奏評価プログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
請求項１に記載の演奏評価装置は、演奏対象の曲データの内容に応じて評価対象期間(実施形態においては、図１２および図２０の評価支援有効範囲に相当する)を設定する期間設定手段(実施形態においては、図１のＣＰＵ１に相当する)と、評価対象期間における曲データの所定期間(実施形態においては、基準ノート数又はその時間範囲に相当する)ごとの演奏結果を評価する演奏評価手段(実施形態においては、図１のＣＰＵ１に相当する)と、演奏評価手段による評価結果を所定の表示手段(実施形態においては、図１の表示部８に相当する)に出力して表示させる評価出力手段(実施形態においては、図１のＣＰＵ１に相当する)とを備えた構成になっている。
【０００８】
この場合において、演奏評価手段は、曲データの所定の音符数ごとに演奏結果を評価するように構成してもよい。
あるいは、演奏評価手段は、曲データの所定の時間経過ごとに演奏結果を評価するように構成してもよい。
【０００９】
また、この場合において、期間設定手段は、曲データに含まれている識別データ(実施形態においては、有効フラグおよび無効フラグに相当する)に基づいて評価対象期間を設定するように構成してもよい。
また、この場合において、期間設定手段は、曲データにおける発音イベントの発音時間(実施形態においては、ノートオンからノートオフまでの時間に相当する)の傾向に応じて評価対象期間を設定するように構成してもよい。
あるいは、期間設定手段は、曲データのテンポに応じて評価対象期間を設定するように構成してもよい。
また、この場合において、演奏評価手段は、前回の所定期間の演奏結果(実施形態においては、レジスタＦＨＹＯＫＡの値に相当する)に対する今回の所定期間の演奏結果(実施形態においては、レジスタＨＹＯＫＡの値に相当する)を評価するように構成してもよい。
【００１０】
請求項８に記載の演奏評価プログラムは、演奏対象の曲データの内容に応じて評価対象期間(実施形態においては、図１２および図２０の評価支援有効範囲に相当する)を設定する第１のステップと、評価対象期間における曲データの所定期間(実施形態においては、基準ノート数又はその時間範囲に相当する)ごとの演奏結果を評価する第２のステップと、第２のステップによる評価結果を所定の表示手段(実施形態においては、図１の表示部８に相当する)に出力して表示させる第３のステップとを実行する。上記各ステップは、図１のＣＰＵ１によって実行されるフローチャートの処理機能に相当する。
【００１１】
【発明の実施の形態】
以下、本発明による演奏評価装置の第１の実施形態ないし第５の実施形態について、図を参照して説明する。
図１は、各実施形態における演奏評価装置のシステムの構成を示すブロック図である。この図において、ＣＰＵ１は、システムバス２を介して、プログラムＲＯＭ３、ワークＲＡＭ４、曲メモリ５、鍵盤６、スイッチ部７、表示部８、および音源９に接続され、これら各部との間で、コマンドおよびデータを授受しながら、この装置全体を制御する。
【００１２】
プログラムＲＯＭ３は、ＣＰＵ１によって実行される制御プログラム、演奏評価プログラムなどのアプリケーションプログラム、起動時のイニシャライズにおける初期データなどをあらかじめ記憶している。ワークＲＡＭ４は、プログラムの実行に必要な各種のレジスタやフラグのエリアを持っている。曲メモリ５は、演奏の評価対象である複数の自動演奏曲の曲データを記憶している。鍵盤６は、演奏操作に応じて鍵番号およびベロシティをＣＰＵ１に入力する。スイッチ部７は、曲メモリ５に記憶されている曲を選択するスイッチ、自動演奏を開始又は停止するスタート／ストップスイッチなどで構成されている。
表示部８は、自動演奏曲すなわち評価対象の曲の楽譜や評価結果などを表示する。音源９は、発音回路１０に接続され、ＣＰＵ１の発音指示（ノートオンコマンド）や消音指示（ノートオフコマンド）に応じて、演奏者を支援する声援やその他の音響信号を発生して発音回路１０に出力し又は出力を停止する。発音回路１０は、Ｄ／Ａ変換回路、フィルタ回路、増幅回路、スピーカなどで構成され、音源９から出力される音響信号に応じて楽音を発生する。
なお、図には示していないが、ＣＰＵ１の演奏指示に応じて点灯してガイド表示を行なうＬＥＤが各鍵ごとに設けられている。
【００１３】
次に、第１の実施形態における動作について、図２〜図１１に示すＣＰＵ１のフローチャート、および図１２、図１３に示す図を参照して説明する。
図２（１）は、ＣＰＵ１の演奏評価処理のメインフローチャートであり、図２（２）はタイマインタラプトのフローチャートである。図２（１）において、イニシャライズを行なって(ステップＡ１)、ワークＲＡＭ４の各種のレジスタをクリアし、各種のフラグを「０」にリセットし、タイマインタラプトを禁止する。イニシャライズの後は、スイッチ部７の各スイッチのオンおよびオフを検出するスイッチ処理(ステップＡ２)、曲メモリ５から選択された評価対象の曲の曲データを読み出して演奏指示を行う自動演奏処理(ステップＡ３)、鍵盤６を走査して演奏すなわち押鍵および離鍵の鍵変化を検出する鍵盤処理(ステップＡ４)、評価対象の曲の演奏結果を評価する評価処理(ステップＡ５)、およびその他の処理(ステップＡ６)を繰り返し実行する。
図２（２）において、設定した一定時間ごとの周期でタイマインタラプトが入ると、後述するレジスタＴＩＭＥの値をデクリメントして(ステップＡ７)、メインフローに戻る。
【００１４】
図３は、メインフローにおけるステップＡ２のスイッチ処理のフローチャートである。まず、曲選択処理を実行し(ステップＢ１)、次に、スタート／ストップスイッチ処理を実行する(ステップＢ２)。次に、その他のスイッチ処理を行い(ステップＢ３)、メインフローに戻る。
図４は、スイッチ処理におけるステップＢ１の曲選択スイッチ処理のフローチャートである。スタートフラグＳＴＦが「０（演奏停止）」であるか否かを判別し(ステップＣ１)、このフラグが「１（自動演奏）」である場合にはこのフローを終了するが、このフラグが「０」である場合には、曲選択のスイッチが操作されたか否かを判別する(ステップＣ２)。スイッチの操作がない場合にはこのフローを終了するが、スイッチが操作されたときは、そのスイッチによって指定された選択曲の番号をレジスタＭにストアする(ステップＣ３)。そして、このフローを終了する。
【００１５】
図５は、図３におけるステップＢ３のスタート／ストップスイッチ処理のフローチャートである。スタート／ストップスイッチがオンされたか否かを判別し(ステップＤ１)、オンされない場合にはこのフローを終了するが、オンされたときはフラグＳＴＦの値を反転する(ステップＤ２)。そして、ＳＴＦの値が「１」であるか否かを判別する(ステップＤ３)。ＳＴＦの値が「１」である場合には自動演奏を開始して、レジスタＭの選択曲の番号で指定される曲（Ｍ）の先頭アドレスをレジスタＡＤにストアする(ステップＤ４)。また、曲（Ｍ）のテンポをレジスタＴＥＭＰＯにストアする(ステップＤ５)。
【００１６】
次に、ＡＤにより指定される先頭アドレスの曲データのタイムを読出し(ステップＤ６)、そのタイムをレジスタＴＩＭＥにストアする(ステップＤ７)。そして、ＴＥＭＰＯに基づくタイマインタラプトの周期を設定する(ステップＤ８)。次に、曲の進行に応じて曲開始からの音符をカウントするレジスタＮを「０」にクリアし(ステップＤ９)、演奏結果を評価するための所定数の音符をカウントするレジスタＴを「０」にクリアする(ステップＤ１０)。次に、タイマインタラプトの禁止を解除する(ステップＤ１１)。したがって、図２（２）のタイマインタラプトに示したように、ＴＥＭＰＯに基づく周期ごとにＴＩＭＥの値がデクリメントされる。
ステップＤ３において、ＳＴＦが「１」から「０」に反転したときは、自動演奏の停止であるので、タイマインタラプトを禁止して(ステップＤ１２)、鍵盤６のガイド表示をすべて消灯する(ステップＤ１３)。そして、メインフローに戻る。
【００１７】
図６ないし図８は、メインフローにおけるステップＡ３の自動演奏処理のフローチャートである。ＳＴＦが「１」であるか否かを判別し(ステップＥ１)、ＳＴＦが「１」で自動演奏状態である場合には、タイマインタラプトごとにデクリメントされるＴＩＭＥの値が「０」に達したか否かを判別する(ステップＥ２)。ＳＴＦが「０」である場合、又は、ＴＩＭＥの値が「０」に達していない場合には、このフローを終了するが、ＴＩＭＥの値が「０」に達したときは、次の曲データを読み出すために、ＡＤのアドレスを進める(ステップＥ３)。そして、ＡＤのアドレスによる曲データの読出しを行なう(ステップＥ４)。
【００１８】
次に、読出した曲データがＥＮＤすなわち曲の終了でないか否かを判別する(ステップＥ５)。ＥＮＤでない場合には、そのデータがノートオフのイベントであるか否かを判別する(ステップＥ６)。ノートオフのイベントでない場合には、図７のフローにおいて、データがタイムであるか否かを判別し(ステップＥ１３)、タイムである場合には、そのタイムをＴＩＭＥにストアして(ステップＥ１４)、このフローを終了する。
データがタイムでない場合には、ノートオンのイベントであるか否かを判別する(ステップＥ１５)。ノートオンのイベントである場合には、レジスタＮＯＴＥにイベントのノートをストアする(ステップＥ１６)。次に、イベントのノートに対応して鍵盤６のガイド表示を点灯する(ステップＥ１７)。また、ガイドフラグＧＵＩＤＥ  ＯＮＦを「１」にセットする(ステップＥ１８)。そして、押鍵の有無を示すフラグＫＥＹ  ＯＮＦが「１（押鍵）」であるか否かを判別する(ステップＥ１９)。
【００１９】
ＫＥＹ  ＯＮＦが「１」である場合には、鍵盤６が押鍵されている。このため、ＮＯＴＥにストアしたイベントのノートと、後述する図９の鍵盤処理においてレジスタＫＥＹにストアされた押鍵のノートとが一致するか否かを判別する(ステップＥ２０)。一致する場合、すなわちＧＵＩＤＥ  ＯＮＦを「１」にセットしたときには、すでに演奏指示する鍵が押鍵されている場合には、レジスタＰＯＩＮＴの値にαの値を加算する(ステップＥ２１)。一致しない場合、すなわちガイド表示した鍵とは異なる鍵が押鍵されている場合には、ＰＯＩＮＴの値からαを減算する(ステップＥ２２)。αを加算又は減算した後は、評価フラグＨＹＯＫＡＦを「１」にセットする(ステップＥ２３)。ステップＥ１５において、データがノートオンのイベントでない場合には、その他のイベント処理を行なう(ステップＥ２４)。
ステップＥ２３においてＨＹＯＫＡＦを「１」にセットした後、ステップＥ１９においてＫＥＹ  ＯＮＦが「０」である場合、又は、ステップＥ２４においてその他のイベント処理を行なった後は、図６のステップＥ３に移行してＡＤを進める。
【００２０】
図６のステップＥ４で読出した曲データが、ステップＥ６においてノートオフのイベントであると判別した場合には、イベントのノートに対応する鍵のガイド表示を消灯する(ステップＥ７)。そして、ガイドフラグＧＵＩＤＥ  ＯＮＦを「０」にリセットし(ステップＥ８)、評価を行なう所定期間の１つの音符に対する処理が終わったので、Ｔのノート数をインクリメントする(ステップＥ９)。この後、図８のフローにおいて、Ｔのノート数が基準ノート数に達したか否かを判別する(ステップＥ２５)。
【００２１】
Ｔのノート数が基準ノート数に達したときは、表示や音声などでユーザに対して支援するか否かを示すフラグＳＨＩＥＮＦを「１（支援）」にセットする(ステップＥ２６)。そして、Ｔのノート数を「０」にクリアする(ステップＥ２７)。Ｔをクリアした後、又は、ステップＥ２５においてＴのノート数が基準ノート数に達しない場合には、ＨＹＯＫＡＦが「０」であるか否かを判別し(ステップＥ２８)、「０」である場合には「１」にセットする(ステップＥ２９)。ＨＹＯＫＡＦを「１」にセットした後、又は、ＨＹＯＫＡＦが「１」である場合には、曲の最初からのノート数をストアするレジスタＮのノート数をインクリメントする(ステップＥ３０)。そして、図６のステップＥ３に移行してＡＤのアドレスを進める。
【００２２】
図６のステップＥ５において、読み出したデータがＥＮＤである場合には、ＳＴＦを「０」にリセットして(ステップＥ１０)、鍵盤６のガイド表示をすべて消灯する(ステップＥ１１)。また、タイマインタラプトを禁止する(ステップＥ１２)。そして、このフローを終了してメインフローに戻る。
【００２３】
図９は、メインフローにおけるステップＡ４の鍵盤処理のフローチャートである。このフローでは、鍵走査を行なって(ステップＦ１)、鍵変化があるか否かを判別する(ステップＦ２)。鍵変化がない場合には、このフローを終了してメインフローに戻る。鍵変化がオフからオンに変化した場合、すなわち押鍵がされた場合には、その押鍵のノートをレジスタＫＥＹにストアする(ステップＦ３)。そして、ＫＥＹのノートを元にノートオンコマンドを作成し(ステップＦ４)、そのノートオンコマンドを音源９に送出する(ステップＦ５)。そして、ＫＥＹ  ＯＮＦを「１」にセットする(ステップＦ６)。
【００２４】
次に、ＧＵＩＤＥ  ＯＮＦが「１」であるか否かを判別する(ステップＥ７)。このフラグが「０」である場合にはメインフローに戻るが、このフラグが「１」で押鍵指示の鍵のガイド表示が点灯している場合には、ＫＥＹにストアしたノートとＮＯＴＥにストアした押鍵指示のノートとが一致するか否かを判別する(ステップＦ８)。一致した場合、すなわち、押鍵指示された鍵が正確に押鍵された場合には、ＰＯＩＮＴにαの値を加算する(ステップＦ９)。一致しなかった場合、すなわち、押鍵指示された鍵とは異なる鍵が押鍵された場合には、ＰＯＩＮＴからαの値を減算する(ステップＦ１０)。αの値を加算又は減算した後は、ＨＹＯＫＡＦを「１」にセットする(ステップＦ１１)。そして、メインフローに戻る。
【００２５】
ステップＦ２において、鍵変化がオンからオフに変化した場合、すなわち、離鍵がされた場合には、その離鍵のノートをＫＥＹにストアする(ステップＦ１２)。そして、ＫＥＹのノートを元にノートオンコマンドを作成し(ステップＦ１３)、そのノートオフコマンドを音源９に送出する(ステップＦ１４)。そして、ＫＥＹ  ＯＮＦを「０」にリセットする(ステップＦ１５)。そして、このフローを終了してメインフローに戻る。
【００２６】
図１０および図１１は、メインフローにおけるステップＡ５の評価処理のフローチャートである。図１０のフローにおいて、まず、ＨＹＯＫＡＦが「１」であるか否かを判別する(ステップＧ１)。このフラグが「１」である場合にはこれを「０」にリセットする(ステップＧ２)。次に、評価すべき所定期間の配列Ｐ（ｎ）を指定するポインタｎを「０」にセットして(ステップＧ３)、Ｐ（ｎ）にＰ（ｎ＋１）を代入して(ステップＧ４)、ｎの値をインクリメントする(ステップＧ５)。そして、ｎ＋１の値が評価ノート数になったか否かを判別する(ステップＧ６)。評価ノート数になっていない場合には、ステップＧ４に移行して、ステップＧ６までの処理を繰り返す。
【００２７】
ステップＧ６において、ｎ＋１の値が評価ノート数になった場合には、ＰＯＩＮＴの値をＰ（ｎ）にストアする(ステップＧ７)。ＰＯＩＮＴの値をＰ（ｎ）にストアした後は、フラグＳＨＩＥＮＦが「１」であるか否かを判別し(ステップＧ８)、ＳＨＩＥＮＦが「０」である場合にはこのフローを終了するが、ＳＨＩＥＮＦが「１」である場合には、これをリセットする(ステップＧ９)。
【００２８】
次に、Ｎにストアした曲の最初からの音符数が、あらかじめ設定されている２つの音符数であるＤ１より大きくＤ２より小さい期間にあるか否かを判別する(ステップＧ１０)。すなわち、曲の最初の音符からＤ１までの音符、および、Ｄ２の音符から曲の終了までの範囲を除く期間（評価対象期間）にＮの音符数があるか否かを判別する。Ｎにストアした音符数がこの期間にない場合には、このフローを終了する。
【００２９】
Ｎにストアした音符数がＤ１より大きくＤ２より小さい期間にある場合には、図１１のフローにおいて、配列Ｐ（ｎ）の評価ノート数を指定するポインタｎを「０」にセットする(ステップＧ１１)。次に、評価用レジスタＨＹＯＫＡを「０」にクリアする(ステップＧ１２)。そして、ＨＹＯＫＡにＰ（ｎ）の値を加算する(ステップＧ１３)。次に、ｎの値をインクリメントして(ステップＧ１４)、ｎの値が評価ノート数になったか否かを判別する(ステップＧ１５)。評価ノート数になっていない場合には、ステップＧ１３に移行して、ステップＧ１５までの処理を繰り返す。
【００３０】
ｎの値が評価ノート数になった場合には、前回の所定期間における評価データをストアするＦＨＹＯＫＡに評価データがあるか否かを判別する(ステップＧ１６)。ＦＨＹＯＫＡに評価データがある場合には、今回の所定期間の評価データをストアしたＨＹＯＫＡの値がＦＨＹＯＫＡの値以下であるか、又は、ＨＹＯＫＡの値がＦＨＹＯＫＡの値より大きいか否かを判別する(ステップＧ１７)。すなわち、今回の所定期間の評価が前回より低い若しくは同じか、又は、前回より高いかを判別する。
【００３１】
ＨＹＯＫＡの値（今回の評価）がＦＨＹＯＫＡの値（前回の評価）以下である場合には、例えば「もっとがんばれ」などの第１の声援音声を指定する変数ＶＯＩＣＥ１（ＨＹＯＫＡ）のデータをレジスタＬＡＮＫにストアする(ステップＧ１８)。一方、ＨＹＯＫＡの値がＦＨＹＯＫＡの値より大きい場合、又は、ＦＨＹＯＫＡに評価データがない場合には、例えば「いいぞ、その調子」などの第２の声援音声を指定する変数ＶＯＩＣＥ２（ＨＹＯＫＡ）のデータをレジスタＬＡＮＫにストアする(ステップＧ１９)。ＬＡＮＫにいずれかの声援音声のデータをストアした後は、ＬＡＮＫのデータに基づく声援の音声データを発生する(ステップＧ２０)。次に、ＨＹＯＫＡの値をＦＨＹＯＫＡにストアして更新し(ステップＧ２１)、次の所定期間の評価に備える。そして、このフローを終了してメインフローに戻る。
【００３２】
図１２は、評価小節経過数に対する評価レベルの具体例を示す図である。この場合は、演奏対象の曲データにおいて、Ｄ１＝２５、Ｄ２＝８に設定されている。すなわち、評価支援有効範囲（評価対象期間）は、曲の最初から２５まで、および、曲の総音符数から８を減算した音符数の範囲を除く、図１２の矢印で示す期間である。また、評価基準ノート数は１０個であり、評価基準ノート数の１０音符数ごとに逐次演奏状態を評価採点し、合計２０音符ごとの評価状況に応じて演奏支援を実施する。すなわち、前回の１０個の音符に対する評価と、今回の１０個の音符に対する評価とを比較する。
【００３３】
したがって、評価ノート数が２０，３０，４０，５０，６０，７０，８０，１００を経過した時点で、その経過以前の２０音符の評価状況が算出される。その評価状況に応じて、表示部８での支援の表示や音源９による音声又は効果音での支援を発音させる。そして、最初の１０個の評価および今回の１０個の評価が前回の１０個より大きい場合には評価がアップし、今回の１０個の評価が前回の１０個より小さい場合には評価がダウンする。
【００３４】
図１３は、演奏指示のガイドノートと実際の押鍵のノートとのタイミングの関係を示す図である。例１の場合には、ガイドノートＣ３がオンからオフまでの期間（ガイド表示が点灯している期間）にＣ３の押鍵がなされた場合であり、ポイントアップとして評価される。これは図９のフローにおけるステップＦ９の処理（ＰＯＩＮＴにαを加算）に対応する。
例２の場合には、ノートＣ３の押鍵がなされている期間に、ガイドノートＣ３がオン（ガイド表示が点灯）になった場合であり、ポイントアップとして評価される。これは、図７のフローにおけるステップＥ２１の処理（ＰＯＩＮＴにαを加算）に対応する。
例３の場合には、ガイドノートＣ３がオンからオフまでの期間にＥ３の押鍵がなされた場合である。すなわち、ガイド表示の鍵とは異なる鍵が押鍵された場合であるので、ポイントダウンとして評価される。これは図９のフローにおけるステップＦ１０の処理（ＰＯＩＮＴからαを減算）に対応する。
【００３５】
以上のように、この第１の実施形態によれば、ＣＰＵ１は、演奏対象の曲データの内容に応じて評価対象期間（図１２の評価支援有効範囲)を設定し、その評価対象期間における曲データの所定期間(基準ノート数)ごとの演奏結果を評価して、その評価結果を表示部８に出力して表示させる。したがって、評価対象として不適当な期間を除外して、ユーザの技量を正しく評価することにより、演奏技術の向上を効率的に図ることができる。
この場合において、ＣＰＵ１は、曲データの所定の音符数ごとに演奏結果を評価するので、ユーザに対してきめ細かな評価をすることができ、演奏技術の向上に極めて有効となる。
また、この場合において、ＣＰＵ１は、前回の所定期間の演奏結果(レジスタＦＨＹＯＫＡの値)に対する今回の所定期間の演奏結果(レジスタＨＹＯＫＡの値)を評価するので、ユーザの意欲や集中度などを客観的に判断できるので、ユーザに対して的確に叱咤激励の支援をリアルタイムで行なうことができる。
【００３６】
次に、第２の実施形態の動作について、図１４ないし図１６に示すＣＰＵ１のフローチャートを参照して説明する。なお、この第２の実施形態において、図２（１）のメインフロー、図２（２）のタイマインタラプトのフロー、図３のスイッチ処理のフロー、図４の曲選択処理のフロー、図９の鍵盤処理のフロー、図１０および図１１の評価処理のフロー、並びに、自動演奏処理の一部のフローについては、第１の実施形態と同じであるので、その図面および記述を援用して、第１の実施形態と異なる部分のフローについて説明する。
【００３７】
図１４は、図３のスイッチ処理におけるステップＢ３のスタート／ストップスイッチ処理のフローチャートである。まず、スタート／ストップスイッチがオンされたか否かを判別し(ステップＨ１)、オンされない場合にはこのフローを終了するが、オンされたときはスタートフラグＳＴＦの値を反転する(ステップＨ２)。そして、ＳＴＦの値が「１」であるか否かを判別する(ステップＨ３)。ＳＴＦの値が「１」である場合には自動演奏を開始して、レジスタＭの選択曲の番号で指定される曲（Ｍ）の先頭アドレスをレジスタＡＤにストアする(ステップＨ４)。また、曲（Ｍ）のテンポをレジスタＴＥＭＰＯにストアする(ステップＨ５)。
【００３８】
次に、ＡＤによって指定される先頭アドレスの曲データのタイムを読出し(ステップＨ６)、そのタイムをレジスタＴＩＭＥにストアする(ステップＨ７)。そして、ＴＥＭＰＯに基づくタイマインタラプトの周期を設定する(ステップＨ８)。次に、曲の進行に応じて曲開始からの時間をカウントするレジスタＮにタイムをストアし(ステップＨ９)、演奏結果を評価する所定期間における音符をカウントするレジスタＴを「０」にクリアする(ステップＨ１０)。次に、タイマインタラプトの禁止を解除する(ステップＨ１１)。
ステップＨ３において、ＳＴＦが「１」から「０」に反転したときは、自動演奏の停止であるので、タイマインタラプトを禁止して(ステップＨ１２)、鍵盤６のガイド表示をすべて消灯する(ステップＨ１３)。そして、メインフローに戻る。
【００３９】
図１５および図１６は、図２のメインフローにおけるステップＡ３の自動演奏処理の一部のフローチャートである。残りのフローチャートは、第１の実施形態において図６に示したものと同じである。図６のフローにおいて読み出した曲データがＥＮＤでもノートオフでもない場合には、図１５のフローにおいて、そのデータがタイムであるか否かを判別し(ステップＪ１)、タイムである場合には、そのタイムをレジスタＴＩＭＥにストアして(ステップＪ２)、Ｎの値にタイムを累算する(ステップＪ３)。この第２の実施形態においては、レジスタＮは曲の開始からの経過時間をストアするので、イベントからイベントまでのタイムをＮの値に累算するのである。そして、このフローを終了する。
【００４０】
読み出したデータがタイムでない場合には、ノートオンのイベントであるか否かを判別する(ステップＪ４)。ノートオンのイベントである場合には、レジスタＮＯＴＥにイベントのノートをストアする(ステップＪ５)。次に、イベントのノートに対応してガイド表示を点灯する(ステップＪ６)。また、ガイドフラグＧＵＩＤＥ  ＯＮＦを「１」にセットする(ステップＪ７)。そして、押鍵の有無を示すフラグＫＥＹ  ＯＮＦが「１（押鍵）」であるか否かを判別する(ステップＪ８)。
【００４１】
ＫＥＹ  ＯＮＦが「１」である場合には、ＮＯＴＥにストアしたイベントのノートと、図９の鍵盤処理においてレジスタＫＥＹにストアした押鍵のノートとが一致するか否かを判別する(ステップＪ９)。一致する場合、すなわちＧＵＩＤＥＯＮＦを「１」にセットしたときに、すでに演奏指示する鍵が押鍵されている場合には、レジスタＰＯＩＮＴの値にαの値を加算する(ステップＪ１０)。ＮＯＴＥにストアしたイベントのノートと、図９の鍵盤処理においてレジスタＫＥＹにストアされた押鍵のノートとが一致しない場合には、ＰＯＩＮＴの値からαを減算する(ステップＪ１１)。αを加算又は減算した後は、評価フラグＨＹＯＫＡＦを「１」にセットする(ステップＪ１２)。ステップＪ４において、データがノートオンのイベントでない場合には、その他のイベント処理を行なう(ステップＪ１３)。
ステップＪ１２においてＨＹＯＫＡＦを「１」にセットした後、ステップＪ８においてＫＥＹ  ＯＮＦが「０」である場合、又は、ステップＪ１３においてその他のイベント処理を行なった後は、図６のステップＥ３に移行してＡＤのアドレスを進める。
【００４２】
図６のステップＥ９において、Ｔの値をインクリメントした後は、図１６のフローにおいて、Ｔのノート数が基準ノート数に達したか否かを判別する(ステップＪ１３)。Ｔのノート数が基準ノート数に達したときは、ユーザに対して支援するか否かを示すフラグＳＨＩＥＮＦを「１（支援）」にセットする(ステップＪ１４)。そして、Ｔのノート数を「０」にクリアする(ステップＪ１５)。Ｔをクリアした後、又は、ステップＪ１３においてＴのノート数が基準ノート数に達しない場合には、ＨＹＯＫＡＦが「０」であるか否かを判別し(ステップＪ１６)、「０」である場合にはこれを「１」にセットする(ステップＪ１７)。ＨＹＯＫＡＦを「１」にセットした後、又は、ＨＹＯＫＡＦが「１」である場合には、図６のステップＥ３に移行してＡＤのアドレスを進める。
【００４３】
以上のように、この第２の実施形態によれば、ＣＰＵ１は、曲データの所定の時間経過ごとに演奏結果を評価するので、ユーザに対してきめ細かな評価をすることができ、演奏技術の向上に極めて有効となる。
【００４４】
次に、第３の実施形態の動作について、図ないし図に示すＣＰＵ１のフローチャートおよび図を参照して説明する。なお、この第３の実施形態において、図２（１）のメインフロー、図２（２）のタイマインタラプトのフロー、図３のスイッチ処理のフロー、図４の曲選択処理のフロー、図９の鍵盤処理のフロー、並びに、自動演奏処理の一部のフロー、および、評価処理の一部のフローについては、第１の実施形態と同じであるので、その図面および記述を援用して、第１の実施形態と異なる部分のフローについて説明する。
【００４５】
図１７は、図３のスイッチ処理におけるステップＢ３のスタート／ストップスイッチ処理のフローチャートである。まず、スタート／ストップスイッチがオンされたか否かを判別し(ステップＫ１)、オンされない場合にはこのフローを終了するが、オンされたときはスタートフラグＳＴＦの値を反転する(ステップＫ２)。そして、ＳＴＦの値が「１」であるか否かを判別する(ステップＫ３)。ＳＴＦの値が「１」である場合には自動演奏を開始して、レジスタＭの選択曲の番号で指定される曲（Ｍ）の先頭アドレスをレジスタＡＤにストアする(ステップＫ４)。また、曲（Ｍ）のテンポをレジスタＴＥＭＰＯにストアする(ステップＫ５)。
【００４６】
次に、ＡＤによって指定される先頭アドレスの曲データのタイムを読出し(ステップＫ６)、そのタイムをレジスタＴＩＭＥにストアする(ステップＫ７)。そして、ＴＥＭＰＯに基づくタイマインタラプトの周期を設定する(ステップＫ８)。次に、演奏結果を評価する所定期間における音符をカウントするレジスタＴを「０」にクリアし(ステップＫ９)、タイマインタラプトの禁止を解除する(ステップＫ１０)。そして、メインフローに戻る。
ステップＫ３において、ＳＴＦが「１」から「０」に反転したときは、自動演奏の停止であるので、タイマインタラプトを禁止して(ステップＫ１１)、鍵盤６のガイド表示をすべて消灯する(ステップＫ１２)。そして、メインフローに戻る。
【００４７】
図１８は、図２のメインフローにおけるステップＡ３の自動演奏処理の一部のフローチャートである。残りのフローチャートは、第１の実施形態において示した図６、および、第２の実施形態において示した図１６と同じである。図６のフローにおいて読み出した曲データがＥＮＤでもノートオフでもない場合には、図１８のフローにおいて、データがタイムであるか否かを判別し(ステップＬ１)、タイムである場合には、そのタイムをレジスタＴＩＭＥにストアする(ステップＬ２)。そして、このフローを終了する。
【００４８】
データがタイムでない場合には、ノートオンのイベントであるか否かを判別する(ステップＬ３)。ノートオンのイベントである場合には、レジスタＮＯＴＥにイベントのノートをストアする(ステップＬ４)。次に、イベントのノートに対応して鍵盤６のガイド表示を点灯する(ステップＬ５)。また、ガイドフラグＧＵＩＤＥ  ＯＮＦを「１」にセットする(ステップＬ６)。そして、押鍵の有無を示すフラグＫＥＹ  ＯＮＦが「１（押鍵）」であるか否かを判別する(ステップＬ７)。
【００４９】
ＫＥＹ  ＯＮＦが「１」である場合には、鍵盤６が押鍵されている。この場合には、ＮＯＴＥにストアしたイベントのノートと、図９の鍵盤処理においてレジスタＫＥＹにストアした押鍵のノートとが一致するか否かを判別する(ステップＬ８)。一致する場合、すなわちＧＵＩＤＥ  ＯＮＦを「１」にセットしたときに、すでに演奏指示する鍵が押鍵されている場合には、レジスタＰＯＩＮＴの値にαの値を加算する(ステップＬ９)。ＮＯＴＥにストアしたイベントのノートと、図９の鍵盤処理においてレジスタＫＥＹにストアされた押鍵のノートとが一致しない場合には、ガイド表示を点灯した鍵とは異なる鍵が押鍵された場合であるので、ＰＯＩＮＴの値からαを減算する(ステップＬ１０)。αを加算又は減算した後は、評価フラグＨＹＯＫＡＦを「１」にセットする(ステップＬ１１)。
【００５０】
ステップＬ３において、データがノートオンのイベントでない場合には、データが有効フラグであるか否かを判別する(ステップＬ１２)。有効フラグである場合には、フラグＹＵＫＯＦを「１」にセットする(ステップＬ１３)。データが有効フラグでない場合には、無効フラグであるか否かを判別する(ステップＬ１４)。無効フラグである場合には、ＹＵＫＯＦを「０」にリセットする(ステップＬ１５)。データが有効フラグおよび無効フラグでない場合には、その他のイベント処理を行なう(ステップＬ１６)。
【００５１】
ステップＬ１１においてＨＹＯＫＡＦを「１」にセットした後、ステップＬ７においてＫＥＹ  ＯＮＦが「０」である場合、ステップＬ１３若しくはＬ１５においてＹＵＫＯＦを「１」若しくは「０」にセットした後、又は、ステップＬ１６においてその他のイベント処理を行なった後は、図６のステップＥ３に移行してＡＤのアドレスを進める。
なお、図６のステップＥ９において、Ｔの値をインクリメントした後は、第２の実施形態における図１６に示したフローを実行する。
【００５２】
図１９は、メインフローにおけるステップＡ５の評価処理のフローチャートである。図１９のフローにおいて、まず、ＨＹＯＫＡＦが「１」であるか否かを判別する(ステップＭ１)。このフラグが「１」である場合にはこれを「０」にリセットする(ステップＭ２)。次に、評価すべき所定期間の配列Ｐ（ｎ）を指定するポインタｎを「０」にセットして(ステップＭ３)、Ｐ（ｎ）にＰ（ｎ＋１）を代入して(ステップＭ４)、ｎの値をインクリメントする(ステップＭ５)。そして、ｎ＋１の値が評価ノート数になったか否かを判別する(ステップＭ６)。評価ノート数になっていない場合には、ステップＭ４に移行して、ステップＭ６までの処理を繰り返す。
【００５３】
ステップＭ６において、ｎ＋１の値が評価ノート数になった場合には、ＰＯＩＮＴの値をＰ（ｎ）にストアする(ステップＭ７)。ＰＯＩＮＴの値をＰ（ｎ）にストアした後は、フラグＳＨＩＥＮＦが「１」であるか否かを判別し(ステップＭ８)、フラグが「０」である場合にはこのフローを終了するが、フラグが「１」である場合には、これをリセットする(ステップＭ９)。次に、フラグＹＵＫＯＦが「１」であるか否かを判別する(ステップＭ１０)。このフラグが「０」である場合にはこのフローを終了するが、このフラグが「１」で、現在演奏している曲データの位置が、評価支援有効範囲すなわち評価対象期間である場合には、第１の実施形態における図１１のフローに移行して、演奏評価処理を行なう。
【００５４】
図２０は、評価小節経過数に対する評価レベルの具体例を示す図である。この場合は、演奏対象の曲データの中に有効フラグのデータおよび無効フラグのデータが挿入されている。そして、有効フラグから無効フラグまでの期間が評価支援有効範囲すなわち評価対象期間として設定される。
【００５５】
以上のように、この第３の実施形態によれば、ＣＰＵ１は、曲データに含まれている有効フラグおよび無効フラグによって設定された評価対象期間における所定期間(基準ノート数)ごとの演奏結果を評価して、その評価結果を表示部８に出力して表示させる。したがって、曲の難易度などの内容に応じて有効フラグおよび無効フラグの位置を設定し、評価対象として不適当な期間を除外して、ユーザの技量を正しく評価することにより、演奏技術の向上を効率的に図ることができる。
【００５６】
次に、第４の実施形態の動作について、図２１および図２２を参照して説明する。第４の実施形態においては、曲選択スイッチ処理が上記第１ないし第３の実施形態と異なっている。
図２１において、フラグＳＴＦが「０」であるか否かを判別し(ステップＮ１)、このフラグが「０」で自動演奏停止状態である場合には、曲選択スイッチが操作されたか否かを判別する(ステップＮ２)。このスイッチが操作されない場合、又は、ＳＴＦが「１」で自動演奏状態である場合には、このフローを終了してメインフローに戻る。
【００５７】
ステップＮ２において、曲選択スイッチが操作されたときは、選択された曲番号をレジスタＭにストアする(ステップＮ３)。次に、３つのレジスタＳＨＯＲＴ，ＭＩＤ，ＬＯＮＧに「０」をストアしてクリアする(ステップＮ４)。次に、曲（Ｍ）データのスタートアドレスをレジスタＡＤにストアして(ステップＮ５)、ＡＤのアドレスにより曲データを読出し(ステップＮ６)、読み出したデータを判別する。読み出したデータがノートオンのイベントであるか否かを判別し(ステップＮ７)、ノートオンのイベントである場合には、そのイベントのノートをレジスタＮＯＴＥにストアする(ステップＮ８)。
【００５８】
次に、曲データを先読みするためのポインタｎを「１」にセットし(ステップＮ９)、レジスタＴＩＭＥに「０」をストアしてクリアする(ステップＮ１０)。そして、図２２のフローにおいて、現在のアドレスにポインタｎの値を加算した（ＡＤ＋ｎ）のアドレスにより曲データを読出し(ステップＮ１１)、読み出したデータの種別を判別する(ステップＮ１２)。データがタイムである場合には、レジスタＴにそのタイムを加算して累算する(ステップＮ１３)。データがタイムでもノートオフでもなく、その他のデータである場合には、ｎの値をインクリメントして(ステップＮ１４)、ステップＮ１１に移行して次の曲データを読み出す。そして、曲データの中のタイムおよびノートオフのイベントを捜す。
【００５９】
データがノートオフである場合には、そのノートオフのノートとＮＯＴＥにストアしたノートとが一致するか否かを判別する(ステップＮ１５)。一致しない場合には、ｎの値をインクリメントして(ステップＮ１４)、ステップＮ１１に移行して次の曲データを読み出す。そして、曲データの中のタイムおよびＮＯＴＥのノートと一致するノートオフのイベントを捜す。すなわち、ＮＯＴＥにストアしたノートオンのイベントがノートオフになる時間（音長）を計測する。
ステップＮ１５において、ノートオフのノートとＮＯＴＥにストアしたノートとが一致したとき、すなわち、読み出したノートオンの音符の音長がレジスタＴにストアされたときは、Ｔにストアされた音符の音長が２分音符以上であるか、４分音符から８分音符の範囲であるか、又は、１６分音符以下であるかを判別する(ステップＮ１６)。
【００６０】
Ｔの音符の音長が２分音符以上である場合には、レジスタＬＯＮＧの値をインクリメントする(ステップＮ１７)。Ｔの音符の音長が４分音符から８分音符の範囲である場合には、レジスタＭＩＤの値をインクリメントする(ステップＮ１８)。Ｔの音符の音長が１６分音符以下である場合には、レジスタＳＨＯＲＴの値をインクリメントする(ステップＮ１９)。いずれかのレジスタの値をインクリメントした後、又は、図２１のステップＮ７においてデータがノートオンでない場合には、ＡＤのアドレスをインクリメントする(ステップＮ２０)。
【００６１】
次に、ＡＤのアドレスが曲データの最終アドレスを超えたか否かを判別する(ステップＮ２２)。最終アドレスを超えていない場合には、図２１のステップＮ６に移行してＡＤのアドレスにより曲データを読み出す。ＡＤのアドレスが最終アドレスである場合には、３つのレジスタＳＨＯＲＴ，ＭＩＤ，ＬＯＮＧの中でストアしたノート数が最大値であるのはどのレジスタであるかを判別する(ステップＮ２１)。
【００６２】
レジスタＬＯＮＧが最大値である場合には、評価支援有効範囲（評価対象期間）を規定するレジスタＤ１およびＤ２の値にそれぞれ「１５」および「９２」をストアする(ステップＮ２３)。レジスタＭＩＤが最大値である場合には、Ｄ１およびＤ２の値にそれぞれ「２５」および「８４」をストアする(ステップＮ２４)。レジスタＳＨＯＲＴが最大値である場合には、Ｄ１およびＤ２の値にそれぞれ「４０」および「６８」をストアする(ステップＮ２５)。Ｄ１およびＤ２に値をストアした後は、このフローを終了してメインフローに戻る。すなわち、音長の長い音符が多くある曲ほど、評価対象期間を広く設定する。
【００６３】
以上のように、この第４の実施形態によれば、ＣＰＵ１は、曲データにおける音符のノートオンからノートオフまでの発音時間の傾向に応じて評価対象期間を設定するので、音長の短い音符が多くあるような演奏操作の頻度が高い曲については、評価対象から除外する期間を広く設定して、ユーザが余裕をもって演奏できるようにし、音長の長い音符が多くあるような演奏頻度の低い曲については、評価対象から除外する期間を狭く、すなわち評価対象期間を広くすることにより、評価対象として不適当な期間を除外して、ユーザの技量を正しく評価することにより、演奏技術の向上を効率的に図ることができる。
【００６４】
次に、第５の実施形態の動作について、図２３を参照して説明する。第５の実施形態においても、第４の実施形態と同様に、曲選択スイッチ処理が上記第１ないし第３の実施形態と異なっている。
まず、フラグＳＴＦが「０」であるか否かを判別し(ステップＰ１)、このフラグが「０」で自動演奏停止状態である場合には、曲選択スイッチが操作されたか否かを判別する(ステップＰ２)。このスイッチが操作されない場合、又は、ＳＴＦが「１」で自動演奏状態である場合には、このフローを終了してメインフローに戻る。
【００６５】
ステップＰ２において、曲選択スイッチが操作されたときは、選択された曲番号をレジスタＭにストアする(ステップＰ３)。次に、曲（Ｍ）のテンポをレジスタＴＥＭＰＯにストアする(ステップＰ４)。さらに、評価支援有効範囲（評価対象期間）を規定するレジスタＤ１およびＤ２の値に、ＮＯＴＥ（ＴＥＭＰＯ）のノートをストアする(ステップＰ５)。そして、このフローを終了してメインフローに戻る。したがって、テンポの速い曲ほどレジスタＤ１およびＤ２の値が大きくなり、評価対象期間が短くなる。
【００６６】
以上のように、この第５の実施形態によれば、ＣＰＵ１は、曲データのテンポに応じて評価対象期間を設定するので、テンポの速い曲については、評価対象から除外する期間を広く設定して、ユーザが余裕をもって演奏できるようにし、テンポの低い曲については、評価対象から除外する期間を狭く、すなわち評価対象期間を広くすることにより、評価対象として不適当な期間を除外して、ユーザの技量を正しく評価することにより、演奏技術の向上を効率的に図ることができる。
【００６７】
なお、上記各実施形態においては、図１のプログラムＲＯＭ３に予め記憶されている演奏評価プログラムをＣＰＵ１によって実行する演奏評価装置について説明したが、ＦＤ（フレキシブルディスク）、ＣＤ−ＲＯＭなどの外部記憶媒体に記憶されている演奏評価プログラムや、インターネットなどの通信網を介してダウンロードされる演奏評価プログラムを、パソコンなどの汎用の情報処理装置にインストールして実行することも可能である。この場合には、プログラムの発明を構成する。
【００６８】
すなわち、本発明による演奏評価プログラムは、演奏対象の曲データの内容に応じて評価対象期間を設定する第１のステップと、評価対象期間における曲データの所定期間ごとの演奏結果を評価する第２のステップと、第２のステップによる評価結果を所定の表示手段に出力して表示させる第３のステップとを実行する。
【００６９】
【発明の効果】
本発明によれば、ＣＰＵ１は、演奏対象の曲データの内容に応じて評価対象期間を設定し、その評価対象期間における曲データの所定期間ごとの演奏結果を評価して、その評価結果を表示部８に出力して表示させる。したがって、評価対象として不適当な期間を除外して、ユーザの技量を正しく評価することにより、演奏技術の向上を効率的に図ることができる。
【図面の簡単な説明】
【図１】本発明の各実施形態における演奏評価装置の構成を示すブロック図。
【図２】第１の実施形態におけるＣＰＵの演奏評価処理のメインフローチャート。
【図３】第１の実施形態におけるスイッチ処理のフローチャート。
【図４】第１の実施形態における曲選択スイッチ処理のフローチャート。
【図５】第１の実施形態におけるスタート／ストップスイッチ処理のフローチャート。
【図６】第１の実施形態における自動演奏処理のフローチャート。
【図７】図６に続く自動演奏処理のフローチャート。
【図８】図６に続く自動演奏処理のフローチャート。
【図９】第１の実施形態における鍵盤処理のフローチャート。
【図１０】第１の実施形態における評価処理のフローチャート。
【図１１】図１０に続く評価処理のフローチャート。
【図１２】第１の実施形態における評価小節経過数に対する評価レベルの具体例を示す図。
【図１３】第１の実施形態におけるガイドノートおよび押鍵ノートのタイミング図。
【図１４】第２の実施形態におけるスタート／ストップスイッチ処理のフローチャート。
【図１５】第２の実施形態における自動演奏処理の一部のフローチャート。
【図１６】第２の実施形態における自動演奏処理の一部のフローチャート。
【図１７】第３の実施形態におけるスタート／ストップスイッチ処理のフローチャート。
【図１８】第３の実施形態における自動演奏処理の一部のフローチャート。
【図１９】第３の実施形態における評価処理の一部のフローチャート。
【図２０】第３の実施形態における評価小節経過数に対する評価レベルの具体例を示す図。
【図２１】第４の実施形態における曲選択スイッチ処理のフローチャート。
【図２２】図２１に続く曲選択スイッチ処理のフローチャート。
【図２３】第５の実施形態における曲選択スイッチ処理のフローチャート。
【符号の説明】
１  ＣＰＵ
３  プログラムＲＯＭ
４  ワークＲＡＭ
５  曲メモリ
６  鍵盤
７  スイッチ部
８  表示部
９  音源
１０  発音回路
【図１】
2004205567.tif 000003
【図２】
2004205567.tif 000004
【図３】
2004205567.tif 000005
【図４】
2004205567.tif 000006
【図５】
2004205567.tif 000007
【図６】
2004205567.tif 000008
【図７】
2004205567.tif 000009
【図８】
2004205567.tif 000010
【図９】
2004205567.tif 000011
【図１０】
2004205567.tif 000012
【図１１】
2004205567.tif 000013
【図１２】
2004205567.tif 000014
【図１３】
2004205567.tif 000015
【図１４】
2004205567.tif 000016
【図１５】
2004205567.tif 000017
【図１６】
2004205567.tif 000018
【図１７】
2004205567.tif 000019
【図１８】
2004205567.tif 000020
【図１９】
2004205567.tif 000021
【図２０】
2004205567.tif 000022
【図２１】
2004205567.tif 000023
【図２２】
2004205567.tif 000024
【図２３】
2004205567.tif 000025