(57)【要約】【課題】曲が進行しても得点の変化率が小さくならないようにする。【解決手段】ＣＰＵ１は、曲データにおける各発音イベントの発音指示タイミングと演奏タイミングとのタイミング差を検出し、検出したタイミング差に応じて５段階の得点ランクの中で１つの得点ランクを指定し、指定した得点ランクに応じた得点ポイントを設定して、前回までの演奏に応じて演算した前回の総合得点に対して、今回の演奏に応じて設定した得点ポイントを累算することによって、今回の総合得点を演算する際に得点ランクに対応するスレッシュポイントに総合得点を収束させるように今回の総合得点を演算する。【選択図】        図１
2004271712.tif 000002
【特許請求の範囲】
【請求項１】
演奏採点の対象となる曲データにおける各発音イベントの発音指示タイミングと各発音イベントに対する演奏結果の演奏タイミングとのタイミング差を検出する検出手段と、
前記検出手段によって検出されたタイミング差に応じて複数段階の得点ランクの中で１つの得点ランクを指定する指定手段と、
前記指定手段によって指定された得点ランクに応じた加算値又は減算値を設定する設定手段と、
前回までの演奏に応じて演算した前回の総合得点に対して今回の演奏に応じて前記設定手段によって設定された加算値又は減算値を累算することによって今回の総合得点を演算する際に得点ランクに対応する目標値に総合得点を収束させるように前記今回の総合得点を演算する演算手段と、
を備えた演奏採点装置。
【請求項２】
前記指定した得点ランクが高い場合にはあらかじめ指定した得点ランクに対応する目標値を高い値に変更し、前記指定した得点ランクが低い場合にはあらかじめ指定した得点ランクに対応する目標値を低い値に変更する変更手段をさらに備えたことを特徴とする請求項１記載の演奏採点装置。
【請求項３】
演奏採点の対象となる曲データにおける各発音イベントの発音指示タイミングと前記各発音イベントに対する演奏結果の演奏タイミングとのタイミング差を検出する第１のステップと、
前記第１のステップによって検出されたタイミング差に応じて複数段階の得点ランクの中で１つの得点ランクを指定する第２のステップと、
前記第２のステップによって指定された得点ランクに応じた加算値又は減算値を設定する第３のステップと、
前回までの演奏に応じて演算した前回の総合得点に対して今回の演奏に応じて前記第３のステップにより設定された加算値又は減算値を累算することによって今回の総合得点を演算する際に得点ランクに対応する目標値に総合得点を収束させるように前記今回の総合得点を演算する第４のステップと、
を実行する演奏採点処理のプログラム。
【請求項４】
前記第２のステップによって指定された得点ランクが高い場合にはあらかじめ指定した得点ランクに対応する目標値を高い値に変更し、前記指定された得点ランクが低い場合にはあらかじめ指定した得点ランクに対応する目標値を低い値に変更する第５のステップをさらに有することを特徴とする請求項３記載の演奏採点処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏採点装置および演奏採点処理のプログラムに関する。
【０００２】
【従来の技術】
演奏者による曲の演奏に応じて、演奏タイミングの正確さを採点して、ゲーム感覚で演奏教習が可能な演奏採点装置が提案されている。従来の提案の一例として、演奏者のための演奏用パートの楽曲情報を含む楽曲情報を再生する手段と、演奏者による演奏タイミング情報を入力する演奏タイミング入力手段と、前記演奏用パートの楽曲情報に基づいて、一音ごとの採点対象となる期間を設定し、該採点対象期間における前記演奏タイミング情報の入力を監視する監視手段と、前記採点対象期間内を複数の得点エリアに分割して、それぞれの得点エリアに割り付ける得点を管理する得点管理手段と、前記入力された演奏タイミング情報が、前記採点対象期間内のどのエリアに該当するのかを特定する得点エリア特定手段と、前記得点管理手段に基づいて、演奏者による演奏タイミング情報に対して得点付けを行なう採点手段とを備えた演奏情報採点装置がある。
この構成によれば、演奏者により演奏された音の演奏タイミングをその演奏タイミングの正確さの度合いにより細かく採点することができる（例えば、特許文献１参照。）。
【０００３】
【特許文献１】
特開２００１−８３９６８号公報（段落番号「０００５」、「０００６」）
【０００４】
【発明が解決しようとする課題】
上記特許文献１の演奏情報採点装置などの従来の技術においては、演奏した音符数に対する得点の単純な加減算による総合得点では、曲によって音符数が異なるために、最高得点が曲ごとに異なるので、得点から実力を判断することが難しいという課題があった。そこで、総合得点を音符数で除算して平均点を算出する方法、又は、加減算による総合得点に下限および上限（例えば、０点および１００点）を設ける方法が考えられる。
しかしながら、平均点を算出する方法においては、曲が進行するにつれて計算の分母となる音符数が増加するため、曲が進むにつれて得点の変化率が小さくなり、ゲームとしての面白みに欠けるという課題が新たに発生する。
また、加減算による総合得点に下限および上限を設ける方法においては、初期の採点結果が最終の採点結果に反映されないという課題が新たに発生する。
【０００５】
本発明は、上記従来の技術における課題を解決するものであり、曲が進行しても得点の変化率が小さくならず、且つ、初期の採点結果を最終の採点結果に反映させて、得点から演奏者の実力を正確に判断できる演奏採点装置および演奏採点処理のプログラムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
請求項１に記載の演奏採点装置は、演奏採点の対象となる曲データにおける各発音イベントの発音指示タイミング（実施形態においては、レジスタＯＮＴＩＭＥ［ＩＤＸ］の時間に相当する）と各発音イベントに対する演奏結果の演奏タイミング（実施形態においては、レジスタＴＩＭＥにストアされた押鍵の時間に相当する）とのタイミング差を検出する検出手段（実施形態においては、図１のＣＰＵ１の機能に相当する）と、検出手段によって検出されたタイミング差に応じて複数段階  （実施形態においては、５段階に相当する）  の得点ランクの中で１つの得点ランクを指定する指定手段（実施形態においては、図１のＣＰＵ１の機能に相当する）と、指定手段によって指定された得点ランクに応じた加算値又は減算値（実施形態においては、図２（Ｃ）の得点ポイントＲＰ［ＲＡＮＫ］の値に相当する）を設定する設定手段（実施形態においては、図１のＲＯＭ４のＲＰ［ＲＡＮＫ］の値を読み出すＣＰＵ１の機能に相当する）と、前回までの演奏に応じて演算した前回の総合得点（実施形態においては、レジスタＴＯＴＡＬの値に相当する）に対して今回の演奏に応じて設定手段によって設定された加算値又は減算値を累算することによって今回の総合得点を演算する際に得点ランクに対応する目標値（実施形態においては、図３のスレッシュポイントＴＨＲＥＳＨ［１］〜［５］の値に相当する）に総合得点を収束させるように今回の総合得点を演算する演算手段（実施形態においては、図１のＣＰＵ１の機能に相当する）とを備えた構成になっている。
【０００７】
この場合において、指定した得点ランクが高い場合にはあらかじめ指定した得点ランク（実施形態においては、スレッシュポイントＴＨＲＥＳＨ［１］および［２］に相当する）に対応する目標値を高い値に変更し、指定した得点ランクが低い場合にはあらかじめ指定した得点ランクに対応する目標値（実施形態においては、スレッシュポイントＴＨＲＥＳＨ［１］、［２］、［４］および［５］に相当する）を低い値に変更する変更手段（実施形態においては、図１のＣＰＵ１の機能に相当する）をさらに備えた構成にしてもよい。
【０００８】
請求項３に記載の演奏採点処理のプログラムは、演奏採点の対象となる曲データにおける各発音イベントの発音指示タイミング（実施形態においては、レジスタＯＮＴＩＭＥ［ＩＤＸ］の値に相当する）と各発音イベントに対する演奏結果の演奏タイミング（実施形態においては、レジスタＴＩＭＥにストアされた押鍵の時間に相当する）とのタイミング差を検出する第１のステップ（実施形態においては、図７のステップＳＤ７に相当する）と、第１のステップによって検出されたタイミング差に応じて複数段階（実施形態においては、５段階に相当する）の得点ランクの中で１つの得点ランクを指定する第２のステップ（実施形態においては、図７のステップＳＤ８、ステップＳＤ９、ステップＳＤ１０、ステップＳＤ１１、に相当する）と、第２のステップによって指定された得点ランクに応じた加算値又は減算値（実施形態においては、図２（Ｃ）の得点ポイントＲＰ［ＲＡＮＫ］の値に相当する）を設定する第３のステップ（実施形態においては、図８のステップＳＥ３に相当する）と、前回までの演奏に応じて演算した前回の総合得点に対して今回の演奏に応じて第３のステップにより設定された加算値又は減算値を累算することによって今回の総合得点を演算する際に得点ランクに対応する目標値（実施形態においては、図３のスレッシュポイントＴＨＲＥＳＨ［１］〜［５］の値に相当する）に総合得点を収束させるように今回の総合得点を演算する第４のステップ（実施形態においては、図８のステップＳＥ１ないしステップＳＥ４に相当する）とを実行する構成になっている。
【０００９】
この場合において、第２のステップによって指定された得点ランクが高い場合にはあらかじめ指定した得点ランクに対応する目標値（実施形態においては、スレッシュポイントＴＨＲＥＳＨ［１］および［２］に相当する）を高い値に変更し、指定された得点ランクが低い場合にはあらかじめ指定した得点ランクに対応する目標値（実施形態においては、スレッシュポイントＴＨＲＥＳＨ［１］、［２］、［４］および［５］に相当する）を低い値に変更する第５のステップ（実施形態においては、図８のステップＳＥ６ないしステップＳＥ１２に相当する）をさらに有するように構成してもよい。
【００１０】
【発明の実施の形態】
以下、本発明による演奏採点装置の実施形態について、図を参照して説明する。
図１は、実施形態における演奏採点装置の構成を示すブロック図である。この図において、ＣＰＵ１は、システムバスを介して、鍵盤２、スイッチ部３、ＲＯＭ４、ＲＡＭ５、表示部６、および楽音発生部７に接続され、これら各部との間で、コマンドおよびデータを授受しながら、この演奏採点装置全体を制御する。
【００１１】
鍵盤２は、押鍵、離鍵の演奏に応じて、ノートオンおよびベロシティ、ノートオフのデータをＣＰＵ１に入力する。
スイッチ部３は、採点対象の曲を選択する曲選択スイッチ、演奏採点のモードに設定する演奏採点スイッチ、およびその他のスイッチなどで構成され、操作に応じたオン／オフの状態をＣＰＵ１に入力する。
ＲＯＭ４は、演奏採点処理のプログラム、演奏採点の対象となる曲データ（シーケンスデータ）、得点ランクごとのポイントおよび得点ランクごとの基準のスレッシュポイント（これらについては後述する）、起動時のイニシャライズにおける初期値などをあらかじめ記憶している。
ＲＡＭ５は、ＣＰＵ１によって処理される各種のデータを一時的に記憶するとともに、プログラムの実行に必要な各種のレジスタやフラグのエリアを持っている。
表示部６は、採点対象の曲の楽譜や演奏結果などを表示する。
楽音生成部７は、ＣＰＵ１の発音指示（ノートオンコマンド）および波形データに応じて、楽音信号を生成してＤ／Ａ変換回路８に出力する。Ｄ／Ａ変換回路８は、その楽音信号をディジタルからアナログに変換し、アンプ９を介してスピーカ１０に供給して発音させる。また、楽音生成部７は、ＣＰＵ１の消音指示（ノートオフコマンド）に応じて発音を停止させる。
【００１２】
図２は、図１のＲＯＭ４のメモリ構成を示す図である。図２（Ａ）は、演奏採点の対象となる曲データにおける各発音イベントのノートデータＮＯＴＥ［  ］であり、図２（Ｂ）は、各発音イベントの発音指示タイミングを示すオンタイムＯＮＴＩＭＥ［  ］を示す曲データの先頭からの時間データである。任意のｎ番目の発音イベントＮＯＴＥ［ｎ］と発音指示タイミングＯＮＴＩＭＥ［ｎ］とが対応する。
【００１３】
図２（Ｃ）は、５段階の得点ランク（ＲＡＮＫ＝１，２，３，４，５）の各得点ランクに応じて設定する得点ポイントＲＰ［ＲＡＮＫ］のパラメータを示している。この実施形態における各段階の得点ランクに応じて設定するパラメータは下記の値になっている。
ＲＰ［１］＝５
ＲＰ［２］＝２
ＲＰ［３］＝２
ＲＰ［４］＝２
ＲＰ［５］＝５
【００１４】
図２（Ｄ）は、各得点ランクに対応する基準のスレッシュポイントＢＡＳＥ［ＲＡＮＫ］のパラメータを示している。この実施形態における各段階の得点ランクに対する基準のスレッシュポイントのパラメータは下記の値になっている。
ＢＡＳＥ［１］＝１
ＢＡＳＥ［２］＝２５
ＢＡＳＥ［３］＝５０
ＢＡＳＥ［４］＝７５
ＢＡＳＥ［５］＝１００
【００１５】
図３は、図１のＲＡＭ５のメモリ構成を示す図である。ＰＬＡＹは、スイッチ部３の演奏採点スイッチの操作に応じて値（０又は１）を反転（トグル）する演奏採点モードフラグであり、ＰＬＡＹの値が「０」から「１」にトグルすると演奏開始となり、ＰＬＡＹの値が「１」から「０」にトグルすると演奏終了となる。ＴＩＭＥは、曲の先頭からの現在の経過時間を一定時間ごとにストアするレジスタである。ＩＤＸは、音符の番号を指定するレジスタであり、ＩＤＸで指定されたＲＯＭ４の各発音イベントおよびその発音指示タイミングが、ＮＯＴＥ［ＩＤＸ］およびＯＮＴＩＭＥ［ＩＤＸ］で表される。
【００１６】
ＴＯＴＡＬは、曲データの各発音イベントであるノートイベントを演奏するたびに、その演奏結果を採点した総合得点をストアするレジスタである。ＲＡＮＫは、発音指定タイミングであるオンタイムの時間と演奏タイミングとのタイミング差に対応する得点ランク（１，２，３，４，５）の現在値をストアするレジスタである。ＧＡＴＥは、採点期間中に「１」にセットされ、それ以外の期間は「０」にリセットされるフラグである。ＫＥＹＯＮは、採点対象期間内に鍵盤２が押鍵されると「１」にセットされるフラグである。このフラグは押鍵の時間切れ処理のために使用される。ＴＨＲＥＳＨ［ＲＡＮＫ＝１，２，３，４，５］は、得点ランク毎の目標値（以下、「スレッシュポイント」という）の現在値をストアするレジスタである。
【００１７】
次に、図１の演奏採点装置の動作について、図４ないし図８に示すＣＰＵ１のフローチャート、図９および図１０に示す演奏結果の総合得点などを示す表およびグラフを参照して、詳細に説明する。
図４はＣＰＵ１のメインフローチャートであり、ＲＡＭ５のレジスタおよびフラグをクリアするなどの所定の初期化処理（ステップＳＡ１）の後、スイッチ部３の各スイッチのオン／オフを検索するスイッチ処理（ステップＳＡ２）、鍵盤２の押鍵および離鍵を検索する鍵盤処理（ステップＳＡ３）、その他の処理（ステップＳＡ４）を繰り返し実行する。
【００１８】
図５は、メインフローチャートにおけるステップＳＡ２のスイッチ処理のフローチャートである。まず、演奏採点スイッチがオンされたか否かを判別し（ステップＳＢ１）、このスイッチがオンでない場合には、その他のスイッチ処理を実行して（ステップＳＢ２）、メインフローチャートに戻る。
一方、このスイッチがオンされたときは、演奏採点フラグＰＬＡＹをトグル（値を反転）する（ステップＳＢ３）。そして、フラグＰＬＡＹの値が「０」から「１」に変化したか否かを判別する（ステップＳＢ４）。この値が「１」に変化したときは、レジスタＴＩＭＥに「０」をストアし、レジスタＩＤＸに「１」をストアし、レジスタＴＯＴＡＬに「５０」をストアし、フラグＫＥＹＯＮに「０」をセットし、レジスタＴＨＲＥＳＨ［１］〜［５］にＢＡＳＥ［１］〜［５］の値を代入する（ステップＳＢ５）。そして、演奏開始処理を行い（ステップＳＢ６）、メインフローチャートに戻る。
ステップＳＢ４において、演奏採点フラグＰＬＡＹの値が「１」から「０」に変化したときは、演奏終了処理を行なって（ステップＳＢ７）、メインフローチャートに戻る。
【００１９】
図６は、一定時間ごとのタイマインタラプトに応じて実行されるタイマ処理のフローチャートである。まず、ＰＬＡＹの値が「１」であるか否かを判別し（ステップＳＣ１）、この値が「０」である場合には、このタイマ処理を実行することなく、メインフローチャートに戻る。一方、この値が「１」である場合には、ＴＩＭＥの値に現在の経過時間をストアして更新する（ステップＳＣ２）。次に、ＧＡＴＥの値が「０」であるか否かを判別する（ステップＳＣ３）。この値が「０」である場合には、ＴＩＭＥにストアした現在の経過時間が、ＩＤＸで指定したＯＮＴＩＭＥ［ＩＤＸ］の８分音符前以内であるか否かを判別する（ステップＳＣ４）。すなわち、現在の経過時間が採点対象期間内に達したか否かを判別する。ＴＩＭＥの値がＯＮＴＩＭＥ［ＩＤＸ］の８分音符前以内である場合には、採点対象期間内に達したのでＧＡＴＥを「１」にセットし、まだ押鍵がされていないのでＫＥＹＯＮを「０」にリセットする（ステップＳＣ５）。
【００２０】
ステップＳＣ３においてＧＡＴＥの値が「１」である場合には、ＴＩＭＥにストアした現在の経過時間が、ＩＤＸで指定したＯＮＴＩＭＥ［ＩＤＸ］の８分音符後以降であるか否かを判別する（ステップＳＣ６）。すなわち、現在の経過時間が採点対象期間を過ぎたか否かを判別する。ＴＩＭＥの値がＯＮＴＩＭＥ［ＩＤＸ］の８分音符後以降である場合には、ＧＡＴＥの値を「０」にリセットする（ステップＳＣ７）。
【００２１】
次に、ＫＥＹＯＮの値が「０」であるか否かを判別する（ステップＳＣ８）。すなわち、採点対象期間内に押鍵されなかったか否かを判別する。ＫＥＹＯＮの値が「０」で、時間切れにより押鍵がされなかったと判別した場合には、ＲＡＮＫに「１」すなわち最低の得点ランクをストアする（ステップＳＣ９）。そして、得点処理を実行する（ステップＳＣ１０）。この得点処理の後、又は、ステップＳＣ８において、ＫＥＹＯＮの値が「１」で、採点対象期間内に押鍵がされた場合には、ＮＯＴＥ［  ］およびＯＮＴＩＭＥ［  ］を指定するＩＤＸの値を「１」だけインクリメントする（ステップＳＣ１１）。すなわち、次の発音イベントを指定する。
【００２２】
ステップＳＣ１１において、ＩＤＸの値をインクリメントした後、又は、ステップＳＣ６において、ＴＩＭＥの値がＯＮＴＩＭＥ［ＩＤＸ］の８分音符後以降でなく、採点対象期間内である場合、又は、ステップＳＣ５において、ＧＡＴＥの値を「１」にセットし、ＫＥＹＯＮの値を「０」にリセットした後、又は、ステップＳＣ４において、ＴＩＭＥの値がＯＮＴＩＭＥ［ＩＤＸ］の８分音符前以内でない場合、すなわち、まだ採点対象期間に達していない場合には、曲データ再生処理や曲終了に伴う自動停止処理などのその他の処理を実行して（ステップＳＣ１２）、メインフローチャートに戻る。
【００２３】
図７は、図４のメインフローチャートにおけるステップＳＡ３の鍵盤処理のフローチャートである。まず、押鍵があるか否かを判別する（ステップＳＤ１）。押鍵があったときは、ＰＬＡＹの値が「１」であるか否かを判別する（ステップＳＤ２）。この値が「１」で演奏採点モードである場合には、ＧＡＴＥの値が「１」であるか否かを判別する（ステップＳＤ３）。この値が「１」で採点対象期間内である場合には、ＫＥＹＯＮの値が「０」であるか否かを判別する（ステップＳＤ４）。この値が「０」である場合には、押鍵されたノート（音高）とＮＯＴＥ［ＩＤＸ］のノート（音高）とが一致するか否かを判別する（ステップＳＤ５）。
【００２４】
押鍵されたノートとＮＯＴＥ［ＩＤＸ］のノートとが一致しない場合には、レジスタＲＡＮＫに「１」をストアする（ステップＳＤ６）。押鍵されたノートとＮＯＴＥ［ＩＤＸ］のノートとが一致した場合には、ＴＩＭＥの現在時間すなわち押鍵した演奏タイミングと、ＯＮＴＩＭＥ［ＩＤＸ］の時間すなわち押鍵すべき発音指示タイミングとの音符単位の時間差（タイミング差）を判別する（ステップＳＤ７）。
【００２５】
判別した時間差が６４分音符未満である場合には、ＲＡＮＫに「５」をストアする（ステップＳＤ８）。判別した時間差が６４分音符以上で３２分音符未満である場合には、ＲＡＮＫに「４」をストアする（ステップＳＤ９）。判別した時間差が３２分音符以上で１６分音符未満である場合には、ＲＡＮＫに「３」をストアする（ステップＳＤ１０）。判別した時間差が１６分音符以上である場合には、ＲＡＮＫに「２」をストアする（ステップＳＤ１１）。
【００２６】
ステップＳＤ６、ステップＳＤ８、ステップＳＤ９、ステップＳＤ１０、又はステップＳＤ１１において、ＲＡＮＫに値をストアした後は、得点処理を実行する（ステップＳＤ１２）。そして、ＫＥＹＯＮを「１」にセットする（ステップＳＤ１３）。ＫＥＹＯＮを「１」にセットすることにより、図６のタイマ処理におけるステップＳＣ８の判別でステップＳＣ１０の得点処理は行なわない。すなわち、図６のステップＳＣ１０は、押鍵がされなかった場合の得点処理であり、図７のステップＳＤ１２は、押鍵がされた場合の得点処理である。
【００２７】
図７のステップＳＤ１３において、ＫＥＹＯＮに「１」をセットした後、又は、ステップＳＤ２において、ＰＬＡＹが「０」である場合、ステップＳＤ３において、ＧＡＴＥが「０」である場合、若しくはステップＳＤ４においてＫＥＹＯＮが「１」である場合には、楽音生成部７にノートオンコマンドおよび押鍵のノートを送出する押鍵発音処理を実行する（ステップＳＤ１４）。この押鍵発音処理の後、又は、ステップＳＤ１において押鍵がない場合には、離鍵処理などのその他の処理を行い（ステップＳＤ１５）、メインフローチャートに戻る。
【００２８】
図８は、図６のタイマ処理におけるステップＳＣ１０、又は、図７の鍵盤処理におけるステップＳＤ１２の得点処理のフローチャートである。まず、得点ランクであるＲＡＮＫの値（１，２，３，４，５）に対応するスレッシュポイントＴＨＲＥＳＨ［ＲＡＮＫ］の整数部ＩＮＴ（ＴＨＲＥＳＨ［ＲＡＮＫ］）の値を、前回までの演奏に応じて演算した前回の総合得点ＴＯＴＡＬの値から減算し、減算結果Ａを算出する（ステップＳＥ１）。
【００２９】
次に、その減算結果Ａの絶対値ＡＢＳ（Ａ）の値が、ＲＡＮＫに応じた得点ポイントＲＰ［ＲＡＮＫ］の値より大きいか否かを判別する（ステップＳＥ２）。すなわち、ポイントＲＰ［ＲＡＮＫ］の値をＴＯＴＡＬの総合得点の値に累算した場合に、累算した総合得点の値がスレッシュポイントの値に達しないか否かを判別する。
【００３０】
ＡＢＳ（Ａ）の値が得点ポイントＲＰ［ＲＡＮＫ］の値より大きい場合、すなわち、累算した総合得点の値がスレッシュポイントの値に達しない場合には、得点ポイントＲＰ［ＲＡＮＫ］の値にＡの値の符号ＳＧＮ（Ａ）を乗算し、その乗算した値をＴＯＴＡＬの値から減算した値を、新たな総合得点の値としてＴＯＴＡＬにストアして更新する（ステップＳＥ３）。
【００３１】
一方、ＡＢＳ（Ａ）の値が得点ポイントＲＰ［ＲＡＮＫ］の値以下である場合、すなわち、累算した総合得点の値がスレッシュポイントの値に達するか超える場合には、ステップＳＥ１で算出したＡの１／２の絶対値に「１」を加算し、その整数部分にＡの値の符号ＳＧＮ（Ａ）を乗算し、その乗算した値をＴＯＴＡＬの値から減算した値を、新たな総合得点の値としてＴＯＴＡＬにストアして更新する（ステップＳＥ４）。
【００３２】
したがって、ある得点ランクに対応する得点ポイントを前回の総合得点に累算しても、その累算した新たな総合得点の値は、その得点ランクに対応するスレッシュポイントの値を超えることはない。その得点ランクが連続した場合には、総合得点の値はスレッシュポイントに収束する。
【００３３】
ステップＳＥ３又はステップＳＥ４において、新たな総合得点をＴＯＴＡＬにストアした後は、今回の演奏による得点ランクＲＡＮＫの値を判別する（ステップＳＥ５）。この後、判別したＲＡＮＫの値に応じて、現在のスレッシュポイントＴＨＲＥＳＨ［  ］の値と基準のスレッシュポイントＢＡＳＥ［  ］の値との大小を比較して、ステップＳＥ６ないしステップＳＥ１２の処理において、スレッシュポイントＴＨＲＥＳＨ［１］ないしＴＨＲＥＳＨ［５］の値を変更する。ただし、ＴＨＲＥＳＨ［３］だけは「５０」で固定のままである。
【００３４】
ステップＳＥ５の判別でＲＡＮＫの値が「１」である場合において、さらに、ＴＨＲＥＳＨ［１］の値がＢＡＳＥ［１］の値より大きい場合は、ＴＨＲＥＳＨ［１］の値からＢＡＳＥ［１］の値を減算して、その減算結果に係数Ｃ１（＝６３／６４）を乗算し、その乗算結果にＢＡＳＥ［１］の値を加算し、その加算結果を新たなスレッシュポイントの値として、ＴＨＲＥＳＨ［１］の値を下げる（ステップＳＥ６）。
【００３５】
さらに、ステップＳＥ６の後、ＴＨＲＥＳＨ［２］の値がＢＡＳＥ［２］の値より大きい場合は、ＴＨＲＥＳＨ［２］の値からＢＡＳＥ［２］の値を減算して、その減算結果に係数Ｃ２（＝６３／６４）を乗算し、その乗算結果にＢＡＳＥ［２］の値を加算し、その加算結果を新たなスレッシュポイントの値として、ＴＨＲＥＳＨ［２］の値を下げる（ステップＳＥ７）。
【００３６】
さらに、ステップＳＥ７の後、ＴＨＲＥＳＨ［４］の値がＢＡＳＥ［３］の値より大きい場合は、ＴＨＲＥＳＨ［４］の値からＢＡＳＥ［３］の値を減算して、その減算結果に係数Ｃ３（＝３１／３２）を乗算し、その乗算結果にＢＡＳＥ［３］の値を加算し、その加算結果を新たなスレッシュポイントの値として、  ＴＨＲＥＳＨ［４］の値を下げる（ステップＳＥ８）。
【００３７】
さらに、ステップＳＥ８の後、ＴＨＲＥＳＨ［５］の値がＢＡＳＥ［４］の値より大きい場合は、ＴＨＲＥＳＨ［５］の値からＢＡＳＥ［４］の値を減算して、その減算結果に係数Ｃ４（＝３１／３２）を乗算し、その乗算結果にＢＡＳＥ［４］の値を加算し、その加算結果を新たなスレッシュポイントの値として、ＴＨＲＥＳＨ［５］の値を下げる（ステップＳＥ９）。
【００３８】
ステップＳＥ５の判別でＲＡＮＫの値が「２」又は「３」である場合において、さらに、ＴＨＲＥＳＨ［４］の値がＢＡＳＥ［３］の値より大きい場合は、ＴＨＲＥＳＨ［４］の値からＢＡＳＥ［３］の値を減算して、その減算結果に係数Ｃ３（＝３１／３２）を乗算し、その乗算結果にＢＡＳＥ［３］の値を加算し、その加算結果を新たなスレッシュポイントの値として、  ＴＨＲＥＳＨ［４］の値を下げる（ステップＳＥ８）。
【００３９】
さらに、ステップＳＥ８の後、ＴＨＲＥＳＨ［５］の値がＢＡＳＥ［４］の値より大きい場合は、ＴＨＲＥＳＨ［５］の値からＢＡＳＥ［４］の値を減算して、その減算結果に係数Ｃ４（＝３１／３２）を乗算し、その乗算結果にＢＡＳＥ［４］の値を加算し、その加算結果を新たなスレッシュポイントの値として、ＴＨＲＥＳＨ［５］の値を下げる（ステップＳＥ９）。
【００４０】
ステップＳＥ５の判別でＲＡＮＫの値が「４」又は「５」である場合において、さらに、ＴＨＲＥＳＨ［１］の値がＢＡＳＥ［３］の値より小さい場合は、ＢＡＳＥ［３］の値からＴＨＲＥＳＨ［１］の値を減算して、その減算結果に係数Ｃ５（＝３１／３２）を乗算し、その乗算結果をＢＡＳＥ［３］の値から減算し、その減算結果を新たなスレッシュポイントの値として、ＴＨＲＥＳＨ［１］の値を上げる（ステップＳＥ１０）。
【００４１】
さらに、ステップＳＥ１０の後、ＴＨＲＥＳＨ［２］の値がＢＡＳＥ［３］の値より小さい場合は、ＢＡＳＥ［３］の値からＴＨＲＥＳＨ［２］の値を減算して、その減算結果に係数Ｃ６（＝３１／３２）を乗算し、その乗算結果をＢＡＳＥ［３］の値から減算し、その減算結果を新たなスレッシュポイントの値として、ＴＨＲＥＳＨ［２］の値を上げる（ステップＳＥ１１）。
【００４２】
さらにこの後、ＲＡＮＫの値が「４」であるか否かを判別し（ステップＳＥ１２）、この値が「４」である場合において、さらに、ＴＨＲＥＳＨ［５］の値がＢＡＳＥ［４］の値より大きい場合は、ＴＨＲＥＳＨ［５］の値からＢＡＳＥ［４］の値を減算して、その減算結果に係数Ｃ４（＝３１／３２）を乗算し、その乗算結果にＢＡＳＥ［４］の値を加算し、その加算結果を新たなスレッシュポイントの値として、ＴＨＲＥＳＨ［５］の値を下げる（ステップＳＥ９）。
【００４３】
ステップＳＥ１２において、ＲＡＮＫの値が「４」でなく「５」である場合、又は、ステップＳＥ９において、ＴＨＲＥＳＨ［５］の値を下げた後は、ステップＳＥ３若しくはステップＳＥ４における演算で求めた総合得点ＴＯＴＡＬを表示する得点表示処理を行なう（ステップＳＥ１３）。そして、メインフローチャートに戻る。
【００４４】
このように、図８のステップＳＥ６ないしステップＳＥ１２の処理では、値が固定のスレッシュポイントＴＨＲＥＳＨ［３］を除いて、得点ランクの変化に応じて他のスレッシュポイントＴＨＲＥＳＨ［１］〜［５］の値を変更する。
この場合において、得点ランクが「１」の場合には、あらかじめ指定された４つのスレッシュポイントＴＨＲＥＳＨ［１］、ＴＨＲＥＳＨ［２］、ＴＨＲＥＳＨ［４］、およびＴＨＲＥＳＨ［５］の値をすべて下げる。得点ランクが「２」または「３」の場合には、あらかじめ指定された２つのスレッシュポイントＴＨＲＥＳＨ  ［４］およびＴＨＲＥＳＨ［５］の値を下げる。得点ランクが「４」の場合には、あらかじめ指定された２つのスレッシュポイントＴＨＲＥＳＨ［１］およびＴＨＲＥＳＨ［２］の値を上げ、ＴＨＲＥＳＨ［５］の値を下げる。得点ランクが「４」の場合には、あらかじめ指定された２つのスレッシュポイントＴＨＲＥＳＨ［１］およびＴＨＲＥＳＨ［２］の値を上げる。
【００４５】
また、スレッシュポイントを変更する演算において、ＴＨＲＥＳＨ［ＲＡＮＫ］とＢＡＳＥ［ＲＡＮＫ］との差分に乗算する係数Ｃ１〜Ｃ６は、「０」より大きく「１」より小さい値である。図８においては、ＴＨＲＥＳＨ［１］およびＴＨＲＥＳＨ［２］の値を下げる場合は、６３／６４の値であり、ＴＨＲＥＳＨ［４］およびＴＨＲＥＳＨ［５］の値を下げる場合、並びに、ＴＨＲＥＳＨ［１］およびＴＨＲＥＳＨ［２］の値を上げる場合は、３１／３２の値であるが、０＜Ｃ１〜Ｃ６＜１の範囲であれば、他の条件に応じて最適な値に設定してもよい。
【００４６】
図９は、各発音イベントＮ（１〜５０）に対する演奏結果に対して、本発明を適用した場合の数値表であり、ＲＡＮＫ（得点ランク）、ＴＨＲＥＳＨ［１］、ＴＨＲＥＳＨ［２］、ＴＨＲＥＳＨ［４］、ＴＨＲＥＳＨ［５］からなるスレッシュポイントに応じて、初期値「５０」から推移するＴＯＴＡＬ（総合得点）を示す数値表である。なお、この数値表には、従来適用されていたＡＶＥＲＡＧＥ（平均型総合得点）を比較のために含めている。また、図１０は、図９の数値表に対応して表示部６の画面に表示されたグラフを示す図である。図１０において、（Ａ）は、従来のＡＶＥＲＡＧＥ（平均型総合得点）の推移を示すグラフであり、（Ｂ）は、本発明を適用した場合の総合得点の推移を示すグラフである。なお、（Ｂ）にはスレッシュポイントの推移を示すグラフも表示されている。
【００４７】
図９に示すように、演奏結果に応じた得点ランクＲＡＮＫの値は、Ｎが「１」から「１２」までの序盤に高い得点ランク「５」が続き、Ｎが「１３」から「３４」までの中盤では得点ランクが次第に低下してゆき、Ｎが「３５」から「４０」までの部分では最低の得点ランク「１」に落ち込んでいる。その後、Ｎが「４１」以降の終盤になると、再び高い得点ランク「４」又は「５」に上昇している。
【００４８】
図１０（Ａ）のＡＶＥＲＡＧＥ（平均型総合得点）のグラフでは、Ｎが「１」から「１２」までの最初の部分においては、高い得点ランクが続くにもかかわらず、Ｎが「１」から「４」の部分だけ総合得点が急激に上昇し、その後は、変化率が極めて小さい平坦な推移になっている。また、Ｎが「３５」から「４０」までの部分においては、得点ランクが最低となっているにもかかわらず、総合得点は「５０」より大きく、あまり低下していない。さらに、終盤になってＮが「４１」から「５０」までは、高い得点ランクに急激に上昇しているにもかかわらず、総合得点はあまり上昇していない。
これは、平均型総合得点を求める演算式が下記の数１のように、演算式の分母に音符数（この場合、初期値「５０」の分を加えて、Ｎ＋１）があるため、曲が進行するにつれて分母が大きくなり、得点の変化率が小さくなるからである。
【数１】
2004271712.tif 000003
【００４９】
これに対して、図１０（Ｂ）のグラフでは、Ｎが「１」から「１２」までの最初の部分の高い得点ランクに応じて、一定の大きな変化率で総合得点が「９５」まで自然に上昇している。また、総合得点が「９５」を超えた後は、得点ランク「５」のスレッシュポイントＴＨＲＥＳＨ［５］に収束するように緩やかに上昇している。その後、得点ランクが最低となるＮが「３５」から「４０」までの部分では、総合得点も比較的大きな変化率で低下している。また、終盤の高い得点ランクに従って、総合得点も比較的大きな変化率で上昇している。
これは、図８のステップＳＥ１ないしステップＳＥ４の演算式に示すように、総合得点を算出するのに除算を用いず、加減算を用いているとともに、得点ランクに対応するスレッシュポイントに総合得点を収束させるように演算しているからである。
【００５０】
このように、図１０（Ａ）に示す平均型総合得点の推移では、曲の進行に伴って増加する音符数によって、総合得点の変化率が次第に小さくなって、得点ランクの変化に追従できないが、図１０（Ｂ）に示す実施形態の総合得点の推移では、曲の進行に伴って音符数が増加しても、総合得点の変化率は小さくならず、得点ランクの変化に追従することができる。
【００５１】
さらに、図１０（Ｂ）に見られるように、Ｎが「３５」から「４０」までの部分においては、得点ランクは最低の「１」となっているが、総合得点の値はスレッシュポイントＴＨＲＥＳＨ［１］の値「２７」までしか低下していない。これは、Ｎが「１」から「２０」までの高い得点ランク「５」および「４」によって、スレッシュポイントＴＨＲＥＳＨ［１］が初期値「１」から上昇していて、それが総合得点の低下の歯止めになっているからである。また、図示されていないが、Ｎが「５０」以降において高い得点ランク「５」が続いた場合でも、総合得点は「７５」を超えることはない。これは、Ｎが「１３」以降の得点ランク「４」〜「１」によって、スレッシュポイントＴＨＲＥＳＨ［５］が初期値「１００」から下降していて、それが総合得点の上昇の歯止めになっているからである。
【００５２】
すなわち、上記実施形態においては、固定されている基準のスレッシュポイントＢＡＳＥ［ＲＡＮＫ］の代わりに、図８のステップＳＥ６ないしステップＳＥ１２の処理によって、得点ランクの推移に応じて変化するスレッシュポイントＴＨＲＥＳＨ［ＲＡＮＫ］を用いるので、初期結果を最終結果に反映することができる。
【００５３】
以上のように、上記実施形態における演奏採点装置によれば、ＣＰＵ１は、演奏採点の対象となる曲データにおける各発音イベントの発音指示タイミングと各発音イベントに対する演奏結果の演奏タイミングとのタイミング差を検出し、検出したタイミング差に応じて５段階の得点ランクの中で１つの得点ランクを指定し、その指定した得点ランクに応じた得点ポイントＲＰ［ＲＡＮＫ］を設定して、前回までの演奏に応じて演算した前回の総合得点に対して、今回の演奏に応じて設定した得点ポイントを累算することによって、今回の総合得点を演算する際に得点ランクに対応するスレッシュポイントに総合得点を収束させるように、今回の総合得点を演算する。
したがって、演奏に伴って曲が進行しても得点の変化率が小さくならず、演奏の得点ランクに追従した総合得点を算出することができる。
【００５４】
また、上記実施形態における演奏採点装置によれば、指定した得点ランクが高い場合には、あらかじめ指定された得点ランクに対応するスレッシュポイントを高い値に変更し、指定した得点ランクが低い場合には、あらかじめ指定された得点ランクに対応するスレッシュポイントを低い値に変更するので、初期の採点結果を最終の採点結果に反映させて、得点から演奏者の実力を正確に判断できる。
【００５５】
なお、上記実施形態においては、５段階の得点ランクＲＰ［１］〜ＲＰ［５］を設定して、各得点ランクに対応するスレッシュポイントＴＨＲＥＳＨ［１］〜ＴＨＲＥＳＨ［５］によって、総合得点を算出する場合について説明したが、本発明の適用範囲は、５段階の得点ランクに限定するものではない。６段階以上の得点ランクでもよいし、あるいは、２段階から４段階の得点ランクでもよい。
【００５６】
なおまた、上記実施形態における演奏採点装置においては、読み出し専用のメモリであるＲＯＭ４にあらかじめ演奏採点処理のプログラムを格納し、ＣＰＵ１によってそのプログラムを実行する構成にしたが、書き換え可能なメモリに演奏採点処理のプログラムをインストールする構成も可能である。すなわち、ＦＤ（フレキシブルディスク）、ＣＤ−ＲＯＭなどの外部記憶媒体に記憶されている演奏採点処理のプログラムや、インターネットなどの通信網を介してダウンロードされる演奏採点処理のプログラムを、パソコンなどの汎用の情報処理装置のハードディスクなどにインストールして実行することも可能である。この場合には、プログラムの発明を構成する。
【００５７】
すなわち、本発明による演奏採点処理のプログラムは、演奏採点の対象となる曲データにおける各発音イベントの発音指示タイミングと各発音イベントに対する演奏結果の演奏タイミングとのタイミング差を検出する第１のステップと、第１のステップによって検出されたタイミング差に応じて複数段階の得点ランクの中で１つの得点ランクを指定する第２のステップと、第２のステップによって指定された得点ランクに応じた加算値又は減算値を設定する第３のステップと、前回までの演奏に応じて演算した前回の総合得点に対して今回の演奏に応じて第３のステップにより設定された加算値又は減算値を累算することによって今回の総合得点を演算する際に得点ランクに対応する目標値に総合得点を収束させるように今回の総合得点を演算する第４のステップとを実行する。
【００５８】
また、第２のステップによって指定された得点ランクが高い場合にはあらかじめ指定された得点ランクに対応する目標値を高い値に変更し、指定された得点ランクが低い場合にはあらかじめ指定された得点ランクに対応する目標値を低い値に変更する第５のステップをさらに有する。
【００５９】
【発明の効果】
本発明によれば、演奏採点の対象となる曲データにおける各発音イベントの発音指示タイミングと各発音イベントに対する演奏結果の演奏タイミングとのタイミング差を検出して、その検出したタイミング差に応じて複数段階の得点ランクの中で１つの得点ランクを指定し、その指定した得点ランクに応じた加算値又は減算値を設定し、前回までの演奏に応じて演算した前回の総合得点に対して、今回の演奏に応じて設定した加算値又は減算値を累算することによって、今回の総合得点を演算する際に得点ランクに対応する目標値に総合得点を収束させるように、今回の総合得点を演算するので、曲が進行しても得点の変化率が小さくならず、得点ランクの変化に追従した総合得点を算出できるという効果がある。
【００６０】
また、本発明によれば、指定された得点ランクが高い場合にはあらかじめ指定された得点ランクに対応する目標値を高い値に変更し、指定された得点ランクが低い場合にはあらかじめ指定された得点ランクに対応する目標値を低い値に変更するので、初期の採点結果を最終の採点結果に反映させて、得点から演奏者の実力を正確に判断できるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施形態における演奏採点装置の構成を示すブロック図。
【図２】図１のＲＯＭ４のメモリ構成を示す図。
【図３】図１のＲＡＭ５のメモリ構成を示す図
【図４】図１のＣＰＵ１のメインフローチャート。
【図５】図４のメインフローチャートにおけるスイッチ処理のフローチャート。
【図６】タイマインタラプトに応じたタイマ処理のフローチャート。
【図７】図４のメインフローチャートにおける鍵盤処理のフローチャート。
【図８】図６のタイマ処理又は図７の鍵盤処理における得点処理のフローチャート。
【図９】各発音イベントＮに対する演奏結果に対して本発明の実施形態を適用した場合の総合得点などの推移を表す数値表の図。
【図１０】（Ａ）は従来の平均型総合得点の推移を示すグラフを示す図、（Ｂ）は本発明の実施形態を適用した場合の総合得点の推移を示すグラフを示す図。
【符号の説明】
１  ＣＰＵ
２  鍵盤
３  スイッチ部
４  ＲＯＭ
５  ＲＡＭ
６  表示部
７  楽音生成部
８  Ｄ／Ａ変換器
９  アンプ
１０  スピーカ
【図１】
2004271712.tif 000004
【図２】
2004271712.tif 000005
【図３】
2004271712.tif 000006
【図４】
2004271712.tif 000007
【図５】
2004271712.tif 000008
【図６】
2004271712.tif 000009
【図７】
2004271712.tif 000010
【図８】
2004271712.tif 000011
【図９】
2004271712.tif 000012
【図１０】
2004271712.tif 000013