Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4096784B2 - Performance evaluation apparatus and performance evaluation program - Google Patents
[go: Go Back, main page]

JP4096784B2 - Performance evaluation apparatus and performance evaluation program - Google Patents

Performance evaluation apparatus and performance evaluation program Download PDF

Info

Publication number
JP4096784B2
JP4096784B2 JP2003099864A JP2003099864A JP4096784B2 JP 4096784 B2 JP4096784 B2 JP 4096784B2 JP 2003099864 A JP2003099864 A JP 2003099864A JP 2003099864 A JP2003099864 A JP 2003099864A JP 4096784 B2 JP4096784 B2 JP 4096784B2
Authority
JP
Japan
Prior art keywords
performance data
pitch
evaluation
note
performance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003099864A
Other languages
Japanese (ja)
Other versions
JP2004309600A (en
Inventor
仁嗣 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2003099864A priority Critical patent/JP4096784B2/en
Priority to US10/735,510 priority patent/US20040123726A1/en
Priority to CN2006101060166A priority patent/CN1897104B/en
Priority to CNB2003101232741A priority patent/CN1293505C/en
Priority to CN2006101060170A priority patent/CN1897105B/en
Publication of JP2004309600A publication Critical patent/JP2004309600A/en
Application granted granted Critical
Publication of JP4096784B2 publication Critical patent/JP4096784B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Auxiliary Devices For Music (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To make efficiently improvable musical performance technique by correctly evaluating user's skill when the user plays a music to be evaluated and the musical performance is evaluated. <P>SOLUTION: A CPU 1 judges a case wherein a musical performance start timing is detected within the range of an indicated sounding period or a case wherein a sounding start timing is indicated within a specified time after the detected musical performance start timing as coincidence of timing and other cases as non-coincidence of timing, and evaluates the musical performance with more scores when the coincidence of pitch is judged and with less scores when the non-coincidence of the pitch is judged. <P>COPYRIGHT: (C)2005,JPO&amp;NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、演奏教習において演奏を評価するための演奏評価装置および演奏評価プログラムに関する。
【0002】
【従来の技術】
演奏教習の分野ではないが、演奏を評価する観点から類似する従来技術として、カラオケ歌唱を採点する採点機能を備えたカラオケ装置が提案されている。この提案によれば、カラオケ曲の演奏に合わせて歌唱された歌唱音声信号を入力して、この歌唱音声信号を分析して周波数・音量などを割り出し、これをリアルタイムに採点する構成になっている。採点は、カラオケ曲のガイドメロディデータと前記周波数データ・音量データとを比較して、その一致度・相違度に基づいて行なう(特許文献1参照)。
【0003】
【特許文献1】
特開平10−161673号公報(段落番号「0007」)
【0004】
【発明が解決しようとする課題】
しかしながら、上記従来の技術においては、カラオケ曲のガイドメロディデータの開始タイミングに合わせて歌うことは初心者でなくとも困難である。ガイドメロディデータの開始タイミングより発声が遅れたり早くなったりするのが普通である。発声の遅れが僅かな時間であれば、ある程度の高い評価を受けるが、発声が早い場合にはその時間が僅かであっても、低い評価を受けることになる。
【0005】
このことは、カラオケ曲の歌唱に限らず楽器の演奏においても同様である。例えば、曲データの発音イベントにおける音高と発音開始タイミングおよび発音終了タイミングによる発音期間とを指示する場合において、指示される発音開始タイミングより前に演奏がされた場合には、その時間差にかかわらず減点の対象になってしまう。このため、曲データの楽譜を見ながら発音期間の指示に従って演奏する場合には、指示された発音開始タイミングと演奏開始タイミングとがほぼ一致しても、発音開始タイミングより僅か前に演奏がされた場合には減点の対象になってしまうので、ユーザの技量を正しく評価することができず、演奏技術の向上を図る上で好ましくない。
【0006】
本発明は、ユーザが評価対象の曲を演奏してその評価を受ける際に、ユーザの技量を正しく評価することにより、演奏技術の向上を効率的に図ることができる演奏評価装置および演奏評価プログラムを提供することを目的とする。
【0007】
【課題を解決するための手段】
請求項1に記載の演奏評価装置は、発音すべき楽音の音高、当該楽音の発音を指示する模範演奏データを順次供給する模範演奏データ供給手段と、演奏操作により指定される音高で楽音の発音を指示する実演奏データを順次供給する実演奏データ供給手段と、前記模範演奏データ供給手段から発音を指示する模範演奏データが供給されたときに前記実演奏データ供給手段から発音を指示する実演奏データが既に供給されている場合、当該両演奏データの音高が同一か否か判定する第1の判定手段と、前記実演奏データ供給手段から発音を指示する実演奏データが供給されたときに前記模範演奏データ供給手段から発音を指示する模範演奏データが既に供給されている場合、当該両演奏データの音高が同一か否か判定する第2の判定手段と、前記第1及び第2の判定手段のいずれか一方にて両音高が同一であると判定された場合は評価点を加点する一方、両音高が同一でないと判定された場合は評価点を減点する演奏評価手段と、前記第1の判定手段により両音高が同一でないと判定された場合、前記模範演奏データの音高を指定する第1の音高指定手段と、前記第2の判定手段により両音高が同一でないと判定された場合、前記実演奏データの音高を指定する第2の音高指定手段と、前記第1の音高指定手段により模範演奏データの音高が指定された後から所定時間内に、前記第2の判定手段にて実演奏データの音高と当該指定された音高と一致したと判定された場合に、前記演奏評価手段における評価点の減点を無効にするとともに当該評価点を加点する第1の評価修正手段と、前記第2の音高指定手段により実演奏データの音高が指定された後から所定時間内に、前記第1の判定手段により模範演奏データの音高と当該指定された音高と一致したと判定された場合に、前記演奏評価手段における評価点の減点を無効にするとともに当該評価点を加点する第2の評価修正手段と、を備えた構成になっている。
【0009】
この場合において、前記所定時間を設定操作に応じて設定可能な時間設定手段をさらに有するように構成してもよい。
【0010】
請求項3に記載の演奏評価プログラムは、発音すべき楽音の音高、当該楽音の発音を指示する模範演奏データを順次供給する模範演奏データ供給ステップと、演奏操作により指定される音高で楽音の発音を指示する実演奏データを順次供給する実演奏データ供給ステップと、前記発音を指示する模範演奏データが供給されたときに前記発音を指示する実演奏データが既に供給されている場合、当該両演奏データの音高が同一か否か判定する第1の判定ステップと、前記発音を指示する実演奏データが供給されたときに前記発音を指示する模範演奏データが既に供給されている場合、当該両演奏データの音高が同一か否か判定する第2の判定ステップと、前記第1及び第2の判定ステップのいずれか一方にて両音高が同一であると判定された場合は評価点を加点する一方、両音高が同一でないと判定された場合は評価点を減点する演奏評価ステップと、前記第1の判定ステップにより両音高が同一でないと判定された場合、前記模範演奏データの音高を指定する第1の音高指定ステップと、前記第2の判定ステップにより両音高が同一でないと判定された場合、前記実演奏データの音高を指定する第2の音高指定ステップと、前記第1の音高指定ステップにより模範演奏データの音高が指定された後から所定時間内に、前記第2の判定ステップにて実演奏データの音高と当該指定された音高と一致したと判定された場合に、前記演奏評価ステップにおける評価点の減点を無効にするとともに当該評価点を加点する第1の評価修正ステップと、前記第2の音高指定ステップにより実演奏データの音高が指定された後から所定時間内に、前記第1の判定ステップにより模範演奏データの音高と当該指定された音高と一致したと判定された場合に、前記演奏評価ステップにおける評価点の減点を無効にするとともに当該評価点を加点する第2の評価修正ステップと、をコンピュータに実行させる。
【0011】
【発明の実施の形態】
以下、本発明による演奏評価装置の実施形態について、図を参照して説明する。
図1は、実施形態における演奏評価装置のシステムの構成を示すブロック図である。この図において、CPU1は、システムバス2を介して、プログラムROM3、ワークRAM4、曲メモリ5、鍵盤6、スイッチ部7、表示部8、および音源9に接続され、これら各部との間で、コマンドおよびデータを授受しながら、この装置全体を制御する。
【0012】
プログラムROM3は、CPU1によって実行される制御プログラム、演奏評価プログラムなどのアプリケーションプログラム、起動時のイニシャライズにおける初期データなどをあらかじめ記憶している。ワークRAM4は、プログラムの実行に必要な各種のレジスタやフラグのエリアを持っている。曲メモリ5は、演奏の評価対象である複数の自動演奏曲の曲データを記憶している。鍵盤6は、演奏操作に応じてノートおよびベロシティをCPU1に入力する。スイッチ部7は、曲メモリ5に記憶されている曲を選択するスイッチ、自動演奏を開始又は停止するスタート/ストップスイッチなどで構成されている。
表示部8は、自動演奏曲すなわち評価対象の曲の楽譜や評価結果などを表示する。音源9は、最大N個の発音チャンネルによってポリ演奏が可能であり、CPU1の発音指示(ノートオンコマンド)や消音指示(ノートオフコマンド)に応じて、楽音信号を発生して発音回路10に出力し又は出力を停止する。発音回路10は、D/A変換回路、フィルタ回路、増幅回路、スピーカなどで構成され、音源9から出力される楽音信号に応じて楽音を発生する。
なお、図には示していないが、CPU1の演奏指示に応じて点灯してガイド表示を行なうLEDが各鍵ごとに設けられている。
【0013】
次に、実施形態における動作について、図2ないし図16に示すCPU1のフローチャート、および図17ないし図19に示す図を参照して説明する。
図2は、CPU1の演奏評価処理のメインフローチャートである。まず、イニシャライズを行なって(ステップA1)、ワークRAM4の各種のレジスタをクリアし、各種のフラグを「0」にリセットし、タイマインタラプトを禁止する。イニシャライズの後は、スイッチ部7の各スイッチのオンおよびオフを検出するスイッチ処理(ステップA2)、曲メモリ5から選択された評価対象の曲の曲データを読み出して演奏指示を行う自動演奏処理(ステップA3)、鍵盤6を走査して演奏すなわち押鍵および離鍵の鍵変化を検出する鍵盤処理(ステップA4)、評価対象の曲の演奏結果を評価する評価処理(ステップA5)、およびその他の処理(ステップA6)を繰り返し実行する。
このメインフローチャートにおいて、一定時間ごとのタイマインタラプトが入ると、タイマインタラプト処理を実行するが、このタイマインタラプトの処理については後述する。
【0014】
図3は、メインフローにおけるステップA2のスイッチ処理のフローチャートである。まず、曲選択処理を実行し(ステップB1)、次に、スタート/ストップスイッチ処理を実行する(ステップB2)。次に、その他のスイッチ処理を行い(ステップB3)、メインフローに戻る。
図4は、スイッチ処理におけるステップB1の曲選択スイッチ処理のフローチャートである。スタートフラグSTFが「0(演奏停止)」であるか否かを判別し(ステップC1)、このフラグが「1(自動演奏)」である場合にはこのフローを終了するが、このフラグが「0」である場合には、曲選択のスイッチが操作されたか否かを判別する(ステップC2)。スイッチの操作がない場合にはこのフローを終了するが、スイッチが操作されたときは、そのスイッチによって指定された選択曲の番号をレジスタMにストアする(ステップC3)。そして、このフローを終了する。
【0015】
図5は、図3におけるステップB3のスタート/ストップスイッチ処理のフローチャートである。スタート/ストップスイッチがオンされたか否かを判別し(ステップD1)、オンされない場合にはこのフローを終了するが、オンされたときはフラグSTFの値を反転する(ステップD2)。そして、STFの値が「1」であるか否かを判別する(ステップD3)。STFの値が「1」である場合には自動演奏を開始して、レジスタMの選択曲の番号で指定される曲(M)の先頭アドレスをレジスタADにストアする(ステップD4)。また、曲(M)のテンポをレジスタTEMPOにストアする(ステップD5)。
【0016】
次に、ADにより指定される先頭アドレスの曲データのタイムを読出し(ステップD6)、そのタイムをレジスタTIMEにストアする(ステップD7)。そして、TEMPOに基づくタイマインタラプトの周期を設定する(ステップD8)。次に、曲の進行に応じて曲開始からの音符をカウントするレジスタNを「0」にクリアし(ステップD9)、演奏結果を評価するための所定数の音符をカウントするレジスタTを「0」にクリアする(ステップD10)。次に、タイマインタラプトの禁止を解除する(ステップD11)。したがって、TEMPOに基づく周期ごとにTIMEの値がデクリメントされる。
ステップD3において、STFが「1」から「0」に反転したときは、自動演奏の停止であるので、タイマインタラプトを禁止して(ステップD12)、鍵盤6のガイド表示をすべて消灯する(ステップD13)。そして、メインフローに戻る。
【0017】
図6ないし図9は、メインフローにおけるステップA3の自動演奏処理のフローチャートである。STFが「1」であるか否かを判別し(ステップE1)、STFが「1」で自動演奏状態である場合には、タイマインタラプトごとにデクリメントされるTIMEの値が「0」に達したか否かを判別する(ステップE2)。STFが「0」である場合、又は、TIMEの値が「0」に達していない場合には、このフローを終了するが、TIMEの値が「0」に達したときは、次の曲データを読み出すために、ADのアドレスを進める(ステップE3)。そして、ADのアドレスによる曲データの読出しを行なう(ステップE4)。
【0018】
次に、読出した曲データがENDすなわち曲の終了であるか否かを判別する(ステップE5)。読み出したデータがENDである場合には、STFを「0」にリセットして(ステップE6)、鍵盤6のガイド表示をすべて消灯する(ステップE7)。また、タイマインタラプトを禁止する(ステップE8)。そして、このフローを終了してメインフローに戻る。
一方、読み出したデータがENDでない場合には、図7のフローチャートにおいて、そのデータがノートオフのイベントであるか否かを判別する(ステップE9)。そのデータがノートオフのイベントであると判別した場合には、イベントのデータをレジスタNOTEにストアし(ステップE10)、NOTEに対応する鍵のガイド表示を消灯する(ステップE11)。
【0019】
次に、音源9による最大N個の発音チャンネルのポリ演奏で、最大N個のノートをストアできる演奏ガイドの配列レジスタにおいて、配列を指定するポインタiを初期値「0」にセットして(ステップE12)、iの値をインクリメントしながら、ノートオフのイベントに該当するノートを捜す。すなわち、NOTE(i)のノートとNOTEのノートとが一致するか否かを判別し(ステップE13)、一致しない場合には、iの値をインクリメントする(ステップE14)。そして、iの値がNの値を超えたか否かを判別する(ステップE15)。Nの値を超えていない場合には、ステップE13においてNOTE(i)およびNOTEのノートとの一致を判別する。
【0020】
ステップE13において、NOTE(i)のノートとNOTEのノートとが一致したと判別したときは、NOTE(i)、タイムレジスタNOTETIME(i)、フラグNOTEF(i)に空き状態を示すデータNULLをストアする(ステップE16)。NOTETIME(i)は、ガイド表示の点灯開始タイミングすなわちイベントの発音開始タイミングから演奏開始タイミングまでの押鍵待ち許容時間をストアするレジスタである。また、NOTEF(i)は、NOTE(i)のノートが発音中で「1」消音中でNULLとなるフラグである。
【0021】
NOTE(i)、NOTETIME(i)、NOTEF(i)にNULLをストアした後は、フラグMFを「0」にリセットする(ステップE17)。MFは配列レジスタにおいて最大N個のノートがすべて発音中の場合に「1」にセットされるフラグである。したがって、ステップE16においてNOTE(i)にNULLをストアした後は、配列レジスタの少なくとも1個が空き状態になるので、MFを「0」にリセットする。そして、評価を行なう所定期間の1つの音符に対する処理が終わったので、音符数すなわちイベント数をカウントするレジスタTの値をインクリメントする(ステップE18)。
【0022】
ステップE9において、データがノートオフでない場合には、図8のフローチャートにおいて、データがタイムか否かを判別する(ステップE19)。タイムである場合には、レジスタTIMEにタイムの値をストアして(ステップE20)、メインフローに戻る。
データがタイムでない場合には、データがノートオンであるか否かを判別する(ステップE21)。データがノートオンのイベントでないと判別した場合には、その他のイベント処理を行なう(ステップE22)。そして、図6のフローチャートのステップE3に移行して、ADのアドレスを進める。
【0023】
図8のステップE21において、データがノートオンであると判別した場合には、イベントのノートをレジスタNOTEにストアする(ステップE23)。次に、音源9による最大N個の発音チャンネルのポリ演奏で、最大N個のノートをストアできる配列レジスタにおいて、配列レジスタを指定するポインタiを初期値「0」にセットして(ステップE24)、iの値をインクリメントしながら、ノートオンのイベントをストアする空き状態のエリアを捜す。すなわち、NOTE(i)がNULLであるか否かを判別し(ステップE25)、NULLでない場合には、iの値をインクリメントする(ステップE26)。そして、iの値がNの値を超えたか否かを判別する(ステップE27)。Nの値を超えた場合、すなわち、空き状態の配列がない場合には、フラグMFを「1」にセットする(ステップE28)。この場合には、NOTEのイベントは無効になり、図6のフローチャートのステップE3に移行して、ADのアドレスを進める。
【0024】
一方、図8のステップE25において、NOTE(i)がNULLである場合には、NOTEのノートをNOTE(i)にストアし(ステップE29)、NOTEに対応するガイド表示を行う(ステップE30)。ガイド表示を行った後は、図9のフローチャートにおいて、鍵盤6のノートをストアする鍵変化の配列レジスタを指定するポインタjを初期値「0」にセットして(ステップE31)、jの値をインクリメントしながら、配列KEY(j)の中でNOTEのノートに一致するエリアを捜す。
【0025】
すなわち、ポインタで指定する配列KEY(i)がNULL(空き状態)でないか否かを判別し(ステップE32)、NULLでない場合にはNOTEのノートとKEY(i)のノートとが一致するか否かを判別する(ステップE33)。KEY(i)がNULLである場合、又は、NOTEのノートとKEY(i)のノートとが一致しない場合には、jの値をインクリメントする(ステップE34)。そして、jの値が最大数Nを超えたか否かを判別する(ステップE35)。jの値がNを超えた場合には、フラグMFが「0」であるか否かを判別する(ステップE36)。すなわち、NOTEのノートに一致するノートが配列KEY(0)〜(N)の中にない場合には、配列NOTE(0)〜(N)に空きがある(MFが「0」)か否かを判別する。
【0026】
MFが「0」で配列NOTE(0)〜(N)に空きがある場合には、押鍵をガイドするノートオンのイベントが有効であり、NOTEのノートに一致するノートがこの時点ではないことを示している。この場合には、NOTEF(i)を「1」にセットし(ステップE37)、NOTETIME(i)に押鍵待ち許容時間taをストアする(ステップE38)。また、NOTEのノートに一致するノートがKEY(0)〜(N)の中にないので、評価ポイントをカウントするPointの値からαを減算するポイントダウンを行う(ステップE39)。そして、評価フラグHYOKAFを「1(評価実行)」にセットする(ステップE40)。
【0027】
ステップE35において、jの値がNを超えていない場合には、ステップE32およびステップE33において、NULLでないKEY(j)でNOTEのノートと一致するノートの有無を判別する。NOTEのノートとKEY(j)のノートとが一致する場合には、KEY(j)のノートが押鍵状態であるか離鍵状態であるかを示すフラグKEYF(j)が「1(押鍵状態)」であるか又はNULL(離鍵状態)であるかを判別する(ステップE41)。KEYF(j)が「1」である場合には、KEYF(j)をNULLにセットする(ステップE42)。
【0028】
さらに、タイムレジスタKEYTIME(j)にNULLをストアする(ステップE43)。KEYTIME(j)は、演奏開始タイミングからノートオンのイベントの発音開始タイミングまでのガイド待ち許容時間をストアするレジスタである。次に、評価ポイントPointの値にαを加点する(ステップE44)。KEYF(j)が「1」である場合には、NOTEのノートに対応するガイド表示に対応するノートがすでに押鍵されており、ガイド待ち許容時間以内に押鍵ガイドがなされた場合である。したがって、ステップE39において減点したPointを解消(補正)するために、Pointにαを加点する(ステップE44)。次に、NOTEのノートとKEY(j)のノートが一致していることによる加点を行うために、Pointにαを加点する(ステップE45)。そして、HYOKAFに「1」をセットする(ステップE40)。
一方、ステップE41において、KEYF(j)が「0」である場合には、NOTEのノートによる発音開始タイミングに応じて押鍵がなされた場合であるので、Pointにαを加点する(ステップE45)。そして、HYOKAFに「1」をセットする(ステップE40)。
HYOKAFに「1」をセットした後、又は、ステップE36においてMFが「1」である場合には、図6のステップE3に移行してADのアドレスを進める。
【0029】
図7のステップE18においてTの値をインクリメントした後、又は、ステップE15において、演奏ガイドの配列レジスタを指定するポインタiの値が最大値Nを超えた場合には、図10のフローチャートにおいて、演奏したノート数が基準ノート数を超えたか否かを判別する(ステップE46)。Tのノート数が基準ノート数に達したときは、表示や音声などでユーザに対して支援するか否かを示すフラグSHIENFを「1(支援)」にセットする(ステップE47)。そして、Tのノート数を「0」にクリアする(ステップE48)。Tをクリアした後、又は、ステップE46においてTのノート数が基準ノート数に達しない場合には、HYOKAFが「0」であるか否かを判別し(ステップE49)、「0」である場合には「1」にセットする(ステップE50)。HYOKAFを「1」にセットした後、又は、HYOKAFが「1」である場合には、曲の最初からのノート数をストアするレジスタNのノート数をインクリメントする(ステップE51)。そして、図6のステップE3に移行してADのアドレスを進める。
【0030】
図11ないし図13は、メインフローにおけるステップA4の鍵盤処理のフローチャートである。図11において、まず、鍵走査を行なって(ステップF1)、鍵変化があるか否かを判別する(ステップF2)。鍵変化がない場合には、このフローを終了してメインフローに戻る。鍵変化がオンからオフに変化した場合、すなわち、離鍵がされた場合には、その離鍵のノートをKEYにストアする(ステップF3)。そして、KEYのノートを元にノートオンコマンドを作成し(ステップF4)、そのノートオフコマンドを音源9に送出する(ステップF5)。
【0031】
次に、鍵変化の配列レジスタを指定するポインタjを初期値「0」にセットして(ステップF6)、jの値をインクリメントしながら、離鍵のノートのエリアを捜す。すなわち、KEY(j)がNULLでないか否かを判別し(ステップF7)、NULLでない場合、すなわち空き状態でない場合には、KEY(j)のノートとKEYのノートとが一致するか否かを判別する(ステップF8)。KEY(j)がNULLである場合、又は、KEY(j)のノートとKEYのノートとが一致しない場合には、jの値をインクリメントする(ステップF9
)。そして、jの値が配列の最大値Nを超えたか否かを判別する(ステップF10)。jの値が最大値Nを超えていない場合には、ステップF7およびステップF8において、NULLでないKEY(j)において、KEY(j)のノートとKEYのノートとが一致するか否かを判別する。
【0032】
KEY(j)のノートとKEYのノートとが一致する場合には、KEY(j)、KEYTIME(j)、KEYF(j)にNULLをストアする(ステップF11)。そして、鍵変化の配列レジスタが空き無し又は空き有りを示すフラグFFを「0(空き有り)」にセットする(ステップF12)。この後、又はステップF10において、jの値が最大値Nを超えた場合には、メインフローに戻る。
【0033】
ステップF2において、鍵変化がオフからオンに変化した場合、すなわち押鍵がされた場合には、図12のフローチャートにおいて、その押鍵のノートをレジスタKEYにストアする(ステップF13)。そして、KEYのノートを元にノートオンコマンドを作成し(ステップF14)、そのノートオンコマンドを音源9に送出する(ステップF15)。次に、鍵変化の配列レジスタを指定するポインタjを初期値「0」にセットして(ステップF16)、押鍵されたノートをストアするエリアを捜す。
【0034】
すなわち、KEY(j)がNULL(空き状態)であるか否かを判別し(ステップF17)、NULLでない場合には、jの値をインクリメントする(ステップF18)。そして、jの値が最大値Nを超えたか否かを判別する(ステップF19)。jの値が最大値Nを超えた場合には、フラグFFを「1(空き無し)」にセットする(ステップF20)。jの値が最大値Nを超えていない場合には、ステップF17において、KEY(j)がNULLであるか否かを判別する。
【0035】
KEY(j)がNULLである場合、又は、FFが「1」である場合には、演奏ガイドの配列を指定するポインタiを初期値「0」にセットして(ステップF22)、iの値をインクリメントしながら、配列NOTE(i)の内容を検索する。すなわち、NOTE(i)がNULLでないか否かを判別し(ステップF23)、NOTE(i)がNULLでない場合には、NOTE(i)のノートとKEYのノートとが一致するか否かを判別する(ステップF24)。
【0036】
ステップF23において、NOTE(i)がNULLである場合、又は、ステップF24において、NOTE(i)のノートとKEYのノートとが一致しない場合には、図13のフローチャートにおいて、iの値をインクリメントする(ステップF30)。そして、iの値が演奏ガイドの配列の最大値Nを超えたか否かを判別する(ステップF31)。iの値がNの値を超えていない場合には、図12のステップF23において、NOTE(i)がNULLであるか否かを判別する。
【0037】
ステップF31において、iの値がNの値を超えた場合には、フラグFFが「0(空き有り)」であるか否かを判別する(ステップF32)。FFが「1」である場合には、鍵変化の配列に空きがない状態である。この場合にはメインフローに戻る。一方、FFが「0」である場合には、押鍵したノートが有効であり、まだガイドされていない状態である。この場合には、Pointからαを減点する(ステップF33)。そして、KEYF(j)を「1」にセットし(ステップF34)、KEYTIME(j)にガイド待ち許容時間tbをストアする(ステップF35)。次に、HYOKAFを「1(評価実行)」にセットする(ステップF36)。
【0038】
図12のステップF24において、NOTE(i)のノートとKEYのノートPとが一致する場合には、NOTEF(i)が「1」であるか否かを判別する(ステップF25)。NOTEF(i)が「1」である場合、すなわち、ガイド待ち許容時間ta内に、演奏をガイドした鍵が押鍵された場合には、評価ポイントのレジスタPointにαを加点する(ステップF26)。すなわち、図13のステップF33において減点したPointの値を解消する。
【0039】
次に、NOTE(i)にNULL(空き状態)をストアし(ステップF27)、図13において、NOTETIME(i)にNULLをストアする(ステップF28)。そして、評価ポイントのレジスタPointにαを加点する(ステップF29)。すなわち、演奏ガイドのノートに一致した押鍵によって、改めて評価ポイントを加点する。次に、HYOKAFを「1(評価実行)」にセットする(ステップF36)。
図12のステップF25において、NOTEF(i)がNULLである場合には、押鍵ガイドのノートに応じて押鍵されたノートが一致したので、図13のステップF29において、評価ポイントのレジスタPointにαを加点する。次に、HYOKAFを「1(評価実行)」にセットする(ステップF36)。そして、メインフローに戻る。
【0040】
図14は、タイマインタラプトのフローチャートである。一定時間ごとのタイマインタラプトに応じて、レジスタTIMEの値をデクリメントする(ステップG1)。そして、演奏ガイドの配列レジスタを指定するポインタiを初期値「0」にセットして(ステップG2)、iの値をインクリメントしながら、ステップG3からステップG9までのループ処理を繰り返す。
【0041】
そのループ処理では、まず、NOTETIME(i)がNULLでないか否かを判別し(ステップG3)、NULLでない場合には、NOTETIME(i)の値(初期値はta)をデクリメントする(ステップG4)。そして、NOTETIME(i)の値が「0」に達したか否かを判別する(ステップG5)。すなわち、押鍵待ち許容時間taが経過しても押鍵がなかったか否かを判別する。NOTETIME(i)の値が「0」に達したときは、NOTETIME(i)にNULLをストアし(ステップG6)、NOTEF(i)にNULLをストアする(ステップG7)。この場合には、ノートオンのイベントの発音開始タイミングよりも後に押鍵した演奏開始タイミングが遅すぎるので、押鍵待ちを解消するのである。
【0042】
ステップG7において、NOTEF(i)にNULLをストアした後、又は、ステップG3において、NOTETIME(i)がNULLである場合、若しくは、ステップG5において、NOTETIME(i)の値が「0」に達していない場合には、iの値をインクリメントして(ステップG8)、iの値が配列の最大値Nを超えたか否かを判別する(ステップG9)。iの値がNの値を超えていない場合には、ステップG3に移行して、ループ処理を繰り返す。
ステップG9において、iの値がNの値を超えたときは、上記ループ処理を終了し、鍵変化の配列レジスタを指定するポインタj初期値「0」にセットして(ステップG10)、jの値をインクリメントしながら、ステップG11からステップG17までのループ処理を繰り返す。
【0043】
そのループ処理では、まず、KEYTIME(j)がNULLでないか否かを判別し(ステップG11)、NULLでない場合には、KEYTIME(j)の値(初期値はtb)をデクリメントする(ステップG12)。そして、KEYTIME(j)の値が「0」に達したか否かを判別する(ステップG13)。すなわち、ガイド待ち許容時間tbが経過してもガイドがなかったか否かを判別する。KEYTIME(j)の値が「0」に達したときは、KEYTIME(j)にNULLをストアし(ステップG14)、KEYF(j)にNULLをストアする(ステップG15)。すなわち、ノートオンのイベントの発音開始タイミングよりも前に押鍵した演奏開始タイミングが早過ぎたので、ガイド待ちを解消するのである。
【0044】
ステップG15において、KEYF(j)にNULLをストアした後、又は、ステップG11において、KEYTIME(j)がNULLである場合、若しくは、ステップG13において、KEYTIME(j)の値が「0」に達していない場合には、jの値をインクリメントして(ステップG16)、jの値が配列の最大値Nを超えたか否かを判別する(ステップG17)。Nの値を超えていない場合には、ステップG11に移行して、ループ処理を繰り返す。jの値がNの値を超えたときは、上記ループ処理を終了してメインフローに戻る。
【0045】
なお、押鍵待ち許容時間taおよびガイド待ち許容時間tbは、ユーザの設定に応じて変更するようにしてもよい。また、押鍵待ち許容時間taを設けずに、ノートオンからノートオフまでの発音期間に押鍵がされた場合にタイミング一致と見なして加点するように構成してもよい。
【0046】
図15および図16は、メインフローにおけるステップA5の評価処理のフローチャートである。図15のフローにおいて、まず、HYOKAFが「1」であるか否かを判別する(ステップH1)。このフラグが「1」である場合にはこれを「0」にリセットする(ステップH2)。次に、評価すべき所定期間の配列P(n)を指定するポインタnを「0」にセットして(ステップH3)、P(n)にP(n+1)を代入して(ステップH4)、nの値をインクリメントする(ステップH5)。そして、n+1の値が評価ノート数になったか否かを判別する(ステップH6)。評価ノート数になっていない場合には、ステップH4に移行して、ステップH6までの処理を繰り返す。
【0047】
ステップH6において、n+1の値が評価ノート数になった場合には、POINTの値をP(n)にストアする(ステップH7)。POINTの値をP(n)にストアした後は、フラグSHIENFが「1」であるか否かを判別し(ステップH8)、SHIENFが「0」である場合にはこのフローを終了するが、SHIENFが「1」である場合には、これをリセットする(ステップH9)。
【0048】
次に、Nにストアした曲の最初からの音符数が、あらかじめ設定されている2つの音符数であるD1より大きくD2より小さい期間にあるか否かを判別する(ステップH10)。すなわち、曲の最初の音符からD1までの音符、および、D2の音符から曲の終了までの範囲を除く期間(評価対象期間)にNの音符数があるか否かを判別する。Nにストアした音符数がこの期間にない場合には、このフローを終了する。
【0049】
Nにストアした音符数がD1より大きくD2より小さい期間にある場合には、図11のフローにおいて、配列P(n)の評価ノート数を指定するポインタnを「0」にセットする(ステップH11)。次に、評価用レジスタHYOKAを「0」にクリアする(ステップH12)。そして、HYOKAにP(n)の値を加算する(ステップH13)。次に、nの値をインクリメントして(ステップH14)、nの値が評価ノート数になったか否かを判別する(ステップH15)。評価ノート数になっていない場合には、ステップH13に移行して、ステップH15までの処理を繰り返す。
【0050】
nの値が評価ノート数になった場合には、前回の所定期間における評価データをストアするFHYOKAに評価データがあるか否かを判別する(ステップH16)。FHYOKAに評価データがある場合には、今回の所定期間の評価データをストアしたHYOKAの値がFHYOKAの値以下であるか、又は、HYOKAの値がFHYOKAの値より大きいか否かを判別する(ステップH17)。すなわち、今回の所定期間の評価が前回より低い若しくは同じか、又は、前回より高いかを判別する。
【0051】
HYOKAの値がFHYOKAの値より大きい場合、又は、FHYOKAに評価データがない場合には、前回より高い評価であるLANKUP(HYOKA)のデータをレジスタLANKにストアする(ステップH18)。一方、HYOKAの値(今回の評価)がFHYOKAの値(前回の評価)以下である場合には、前回より低いか又は同じ評価であるLANKDOWN(HYOKA)のデータをレジスタLANKにストアする(ステップH19)。LANKにいずれかのデータをストアした後は、LANKのデータに基づく評価結果を表示部8に表示する(ステップH20)。次に、HYOKAの値をFHYOKAにストアして更新し(ステップH21)、次の所定期間の評価に備える。そして、このフローを終了してメインフローに戻る。
【0052】
次に、実施形態における具体的な動作について、図17ないし図19を参照して説明する。
図17は、和音の演奏ガイドに対する押鍵例を示す図である。図17(1)は、同一の発音開始タイミングからなる4つの和音(C3,D3,E3,F3)のガイドノートを示している。図17(2)は、このガイドノートに対する押鍵例であり、発音開始タイミングより後の時間に各ノートに対する演奏開始タイミングで押鍵がなされている。この場合には、各ノートの発音期間内に押鍵がなされているので、各押鍵に対してすべてPointにαを加点するポイントアップ処理(UP)となる。図17(3)は、他の押鍵例であり、発音開始タイミングより前の時間に各ノートに対する演奏開始タイミングで押鍵がなされている。この場合には、ガイドノートの発音開始タイミングの時点において、各押鍵に対してすべてPointにαを加点するポイントアップ処理となる。
【0053】
図18は、発音開始タイミングが異なる複数のノートの演奏ガイドに対する押鍵例を示す図である。
図18(1)は、異なる発音開始タイミングからなる4つのノート(C3,D3,E3,F3)のガイドノートを示している。図18(2)は、ガイド待ち許容時間tbを設けない場合の押鍵例である。まず、D3のノートの演奏開始タイミングで押鍵があり、次にC3のノートの発音開始タイミングでガイドがなされている。すなわち、ガイドノートと押鍵ノートが一致しないと判断され、この時点でPointからαを減点するポイントダウン処理(DOWN)となる。その後、D3のノートの発音開始タイミングでガイドがなされた時点で、ポイントアップ処理となる。また、E3のノートの演奏開始タイミングで押鍵があった時点では、C3およびD3のノートでガイドがなされている。この場合にも、Pointからαを減点するポイントダウン処理となる。その後、E3のノートの発音開始タイミングでガイドがなされた時点で、ポイントアップ処理となる。また、F3のノートの演奏開始タイミングで押鍵があった時点では、C3,D3,E3のノートでガイドがなされている。この場合にも、Pointからαを減点するポイントダウン処理となる。その後、F3のノートの発音開始タイミングでガイドがなされた時点で、ポイントアップ処理となる。
【0054】
このように、ガイド待ち許容時間tbを設けない場合には、3回のポイントダウンと4回のポイントアップの結果、1回のポイントアップになり、ガイドノートの発音開始タイミングから僅か前の時間にそのノートに対する押鍵がされた場合でも、ポイントダウンになり、その後のポイントアップが相殺される結果となる。このため、ユーザの技量が正しく評価されない。
【0055】
図18(3)は、ガイド待ち許容時間tbを設けた場合の押鍵例である。D3のノートの演奏開始タイミングで押鍵があったときは、D3のガイドノートがない場合でもポイントダウン処理する。そして、t1(t1<tb)の時間経過した時点で、D3のノートの発音開始タイミングがあると、このポイントダウン処理を相殺してからポイントアップ処理を行う。同様に、E3のノートの演奏開始タイミングで押鍵があったときは、E3のガイドノートがない場合でもポイントダウン処理する。そして、t2(t2<tb)の時間経過した時点で、E3のノートの発音開始タイミングがあると、このポイントダウン処理を相殺してからポイントアップ処理を行う。また、F3のノートの演奏開始タイミングで押鍵があったときは、F3のガイドノートがない場合でもポイントダウン処理する。そして、t3(t3<tb)の時間経過した時点で、F3のノートの発音開始タイミングがあると、このポイントダウン処理を相殺してからポイントアップ処理を行う。
【0056】
図19は、発音開始タイミングが異なる複数のノートの演奏ガイドに対してすべての押鍵がされない場合の押鍵例を示す図である。
図19(1)は、異なる発音開始タイミングからなる3つのノート(C3,D3,E3)のガイドノートを示している。図19(2)は、ガイド待ち許容時間tbを設けない場合の押鍵例である。まず、D3のノートの演奏開始タイミングで押鍵があった時点では、C3のガイドノートで押鍵ガイドがなされている。このため、C3のガイドノートに対してD3の押鍵がなされたと解釈され、Pointからαを減点するポイントダウン処理となる。その後、D3のガイドノートの発音開始タイミングの時点で、ポイントアップ処理となる。このように、ガイド待ち許容時間tbを設けない場合には、ガイドノートの発音開始タイミングから僅か前の時間にそのノートに対する押鍵がされた場合でも、ポイントダウンになり、その後のポイントアップが相殺される結果となる。このため、ユーザの技量が正しく評価されない。
【0057】
図19(3)は、ガイド待ち許容時間tbを設けた場合の押鍵例である。D3のノートの演奏開始タイミングで押鍵があったときは、D3のガイドノートがない場合でもポイントダウン処理をtbの時間だけ待つ。そして、t4(t4<tb)の時間経過した時点で、D3のノートの発音開始タイミングがあると、ポイントアップ処理を行う。
【0058】
以上のように、この実施形態によれば、CPU1は、曲データの発音イベントにおける音高と発音開始タイミングおよび発音終了タイミングによる発音期間とを指示し、演奏された音高および演奏開始タイミングを検出する。そして、検出した音高と指示した音高との一致又は不一致を判定するとともに、指示した発音期間の範囲内に演奏開始タイミングが検出された場合又は検出された演奏開始タイミングから所定時間以内に発音開始タイミングが指示された場合をタイミングの一致と判定し他の場合をタイミングの不一致と判定する。これらの判定により、音高の一致と判定し且つタイミングの一致と判定した場合には加点の演奏評価を行い、音高の不一致と判定した場合又はタイミングの不一致と判定した場合には減点の演奏評価を行う。
したがって、ユーザが評価対象の曲を演奏してその評価を受ける際に、ユーザの技量を正しく評価することにより、演奏技術の向上を効率的に図ることができる。
【0059】
なお、上記各実施形態においては、図1のプログラムROM3に予め記憶されている演奏評価プログラムをCPU1によって実行する演奏評価装置について説明したが、FD(フレキシブルディスク)、CD−ROMなどの外部記憶媒体に記憶されている演奏評価プログラムや、インターネットなどの通信網を介してダウンロードされる演奏評価プログラムを、パソコンなどの汎用の情報処理装置にインストールして実行することも可能である。この場合には、プログラムの発明を構成する。
【0060】
すなわち、本発明による演奏評価プログラムは、発音すべき楽音の音高、当該楽音の発音を指示する模範演奏データを順次供給する模範演奏データ供給ステップと、演奏操作により指定される音高で楽音の発音を指示する実演奏データを順次供給する実演奏データ供給ステップと、前記発音を指示する模範演奏データが供給されたときに前記発音を指示する実演奏データが既に供給されている場合、当該両演奏データの音高が同一か否か判定する第1の判定ステップと、前記発音を指示する実演奏データが供給されたときに前記発音を指示する模範演奏データが既に供給されている場合、当該両演奏データの音高が同一か否か判定する第2の判定ステップと、前記第1及び第2の判定ステップのいずれか一方にて両音高が同一であると判定された場合は評価点を加点する一方、両音高が同一でないと判定された場合は評価点を減点する演奏評価ステップと、前記第1の判定ステップにより両音高が同一でないと判定された場合、前記模範演奏データの音高を指定する第1の音高指定ステップと、前記第2の判定ステップにより両音高が同一でないと判定された場合、前記実演奏データの音高を指定する第2の音高指定ステップと、前記第1の音高指定ステップにより模範演奏データの音高が指定された後から所定時間内に、前記第2の判定ステップにて実演奏データの音高と当該指定された音高と一致したと判定された場合に、前記演奏評価ステップにおける評価点の減点を無効にするとともに当該評価点を加点する第1の評価修正ステップと、前記第2の音高指定ステップにより実演奏データの音高が指定された後から所定時間内に、前記第1の判定ステップにより模範演奏データの音高と当該指定された音高と一致したと判定された場合に、前記演奏評価ステップにおける評価点の減点を無効にするとともに当該評価点を加点する第2の評価修正ステップと、をコンピュータに実行させる。
【0061】
【発明の効果】
本発明によれば、検出された演奏開始タイミングから所定時間以内に発音開始タイミングが指示された場合にはタイミングの一致と判定するので、ユーザが評価対象の曲を演奏してその評価を受ける際に、ユーザの技量を正しく評価することにより、演奏技術の向上を効率的に図ることができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施形態における演奏評価装置の構成を示すブロック図。
【図2】実施形態におけるCPUの演奏評価処理のメインフローチャート。
【図3】図2におけるスイッチ処理のフローチャート。
【図4】図3における曲選択スイッチ処理のフローチャート。
【図5】図3におけるスタート/ストップスイッチ処理のフローチャート。
【図6】図2における自動演奏処理のフローチャート。
【図7】図6に続く自動演奏処理のフローチャート。
【図8】図7に続く自動演奏処理のフローチャート。
【図9】図8に続く自動演奏処理のフローチャート。
【図10】図7に続く自動演奏処理のフローチャート。
【図11】図2における鍵盤処理のフローチャート。
【図12】図11に続く鍵盤処理のフローチャート。
【図13】図12に続く鍵盤処理のフローチャート。
【図14】タイマインタラプトのフローチャート。
【図15】図2における評価処理のフローチャート。
【図16】図15に続く評価処理のフローチャート。
【図17】和音の演奏ガイドに対する押鍵例を示す図。
【図18】発音開始タイミングが異なる複数のノートの演奏ガイドに対する押鍵例を示す図。
【図19】発音開始タイミングが異なる複数のノートの演奏ガイドに対してすべての押鍵がされない場合の押鍵例を示す図。
【符号の説明】
1 CPU
3 プログラムROM
4 ワークRAM
5 曲メモリ
6 鍵盤
7 スイッチ部
8 表示部
9 音源
10 発音回路
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a performance evaluation apparatus and a performance evaluation program for evaluating performance in performance learning.
[0002]
[Prior art]
Although not in the field of performance learning, karaoke devices having a scoring function for scoring karaoke songs have been proposed as similar conventional techniques from the viewpoint of evaluating performance. According to this proposal, the singing voice signal sung in accordance with the performance of the karaoke song is input, the singing voice signal is analyzed, the frequency / volume is determined, and this is scored in real time. . Scoring is performed based on the degree of coincidence / difference by comparing the guide melody data of karaoke music with the frequency data / volume data (see Patent Document 1).
[0003]
[Patent Document 1]
Japanese Patent Laid-Open No. 10-161673 (paragraph number “0007”)
[0004]
[Problems to be solved by the invention]
However, in the above conventional technique, it is difficult for a novice person to sing along with the start timing of the karaoke song guide melody data. Usually, the utterance is delayed or earlier than the start timing of the guide melody data. If the utterance delay is a short time, a high evaluation is received to some extent, but if the utterance is early, a low evaluation is received even if the time is short.
[0005]
This applies not only to singing karaoke songs but also to playing musical instruments. For example, in the case of instructing the pitch at the sounding event of the song data and the sounding period at the sounding start timing and the sounding end timing, if the performance is performed before the sounding start timing instructed, regardless of the time difference You will be deducted. For this reason, when performing according to the instruction of the pronunciation period while watching the music data score, even if the instructed sounding start timing and the performance start timing substantially coincide, the performance was performed slightly before the sounding start timing. In this case, since it becomes a target of deduction, the skill of the user cannot be evaluated correctly, which is not preferable for improving the performance technique.
[0006]
The present invention relates to a performance evaluation apparatus and a performance evaluation program capable of efficiently improving performance techniques by correctly evaluating a user's skill when a user plays a song to be evaluated and receives the evaluation. The purpose is to provide.
[0007]
[Means for Solving the Problems]
  The performance evaluation apparatus according to claim 1, wherein the musical performance at a pitch specified by the performance operation is provided by means of exemplary performance data supply means for sequentially supplying the musical performance to be generated, the exemplary performance data for instructing the pronunciation of the musical sound. Actual performance data supply means for sequentially supplying actual performance data for instructing pronunciation of sound, and when the model performance data for instructing sound generation is supplied from the model performance data supply means, the actual performance data supply means instructs sound generation When actual performance data has already been supplied, first performance determination means for determining whether or not the pitches of both performance data are the same, and actual performance data instructing sound generation from the actual performance data supply means are supplied. Sometimes, when the model performance data instructing the sound generation is already supplied from the model performance data supply means, the second determination means for determining whether or not the pitches of the performance data are the same, If either one of the first and second determination means determines that both pitches are the same, an evaluation score is added. If both pitches are determined not to be the same, the evaluation score is deducted. First performance designating means for designating the pitch of the model performance data, and the second judging means when the performance judging means and the first judging means judges that the pitches are not the same. When it is determined that the pitches are not the same, the pitch of the model performance data is designated by the second pitch designating means for designating the pitch of the actual performance data and the first pitch designating means. Within a predetermined period of time, if the second determination means determines that the pitch of the actual performance data matches the specified pitch, the evaluation score deduction in the performance evaluation means is invalidated. And a first evaluation correcting means for adding the evaluation score, In a predetermined time after the pitch of the actual performance data is specified by the second pitch specifying means, the pitch of the model performance data matches the specified pitch by the first determination means. When judged, the performance evaluation means has a second evaluation correction means for invalidating the deduction of the evaluation score and adding the evaluation score.
[0009]
  In this case, it may be configured to further include time setting means capable of setting the predetermined time according to a setting operation.
[0010]
  The performance evaluation program according to claim 3 is:Sample performance data supply step that sequentially supplies the pitch of the musical tone to be generated, model performance data that instructs the pronunciation of the musical tone, and actual performance data that instructs the pronunciation of the musical tone at the pitch specified by the performance operation If the actual performance data instructing the sound generation is already supplied when the actual performance data supplying step and the model performance data instructing the sound generation are supplied, whether or not the pitches of the two performance data are the same In the case where the first determination step for determination and the model performance data for instructing the sound generation are already supplied when the actual performance data for instructing the sound generation are supplied, whether or not the pitches of the two performance data are the same If both pitches are determined to be the same in one of the second determination step and the first and second determination steps, an evaluation point is added, while both pitches are the same. If it is determined that the pitch is not the same in the performance evaluation step in which the evaluation score is deducted and the first determination step, the first sound designating the pitch of the model performance data is determined. When it is determined that the pitch is not the same in the pitch specifying step and the second determining step, a second pitch specifying step for specifying the pitch of the actual performance data, and the first pitch specifying When it is determined in the second determination step that the pitch of the actual performance data matches the specified pitch within a predetermined time after the pitch of the model performance data is specified by the step, The first evaluation correction step for invalidating the deduction of the evaluation score in the performance evaluation step and adding the evaluation score, and the predetermined pitch after the pitch of the actual performance data is specified by the second pitch specification step. time When it is determined in the first determination step that the pitch of the model performance data matches the specified pitch, the deduction of the evaluation score in the performance evaluation step is invalidated and the evaluation score is A second evaluation correction step for adding points to the computer.Make it.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of a performance evaluation apparatus according to the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram illustrating a system configuration of a performance evaluation apparatus according to an embodiment. In this figure, a CPU 1 is connected to a program ROM 3, a work RAM 4, a music memory 5, a keyboard 6, a switch unit 7, a display unit 8, and a sound source 9 via a system bus 2. The entire apparatus is controlled while exchanging data.
[0012]
The program ROM 3 stores in advance a control program executed by the CPU 1, an application program such as a performance evaluation program, initial data at initialization at startup, and the like. The work RAM 4 has various register and flag areas necessary for program execution. The song memory 5 stores song data of a plurality of automatic performance songs that are performance evaluation targets. The keyboard 6 inputs notes and velocities to the CPU 1 in accordance with the performance operation. The switch unit 7 includes a switch for selecting music stored in the music memory 5, a start / stop switch for starting or stopping automatic performance, and the like.
The display unit 8 displays a musical score, an evaluation result, and the like of an automatic performance song, that is, a song to be evaluated. The tone generator 9 can perform a poly performance with a maximum of N tone generation channels, and generates a tone signal and outputs it to the tone generation circuit 10 in response to a tone generation instruction (note-on command) or a mute instruction (note-off command) from the CPU 1 Or stop the output. The sound generation circuit 10 includes a D / A conversion circuit, a filter circuit, an amplifier circuit, a speaker, and the like, and generates a musical sound according to a musical sound signal output from the sound source 9.
Although not shown in the figure, an LED is provided for each key to light up and display a guide in response to a performance instruction from the CPU 1.
[0013]
Next, the operation in the embodiment will be described with reference to the flowcharts of the CPU 1 shown in FIGS. 2 to 16 and the diagrams shown in FIGS. 17 to 19.
FIG. 2 is a main flowchart of the performance evaluation process of the CPU 1. First, initialization is performed (step A1), various registers in the work RAM 4 are cleared, various flags are reset to “0”, and timer interrupts are prohibited. After the initialization, a switch process for detecting on / off of each switch of the switch unit 7 (step A2), and an automatic performance process for reading out the music data of the evaluation target music selected from the music memory 5 and instructing performance ( Step A3), keyboard processing that scans the keyboard 6 to detect performance changes, that is, key changes in key depression and release (Step A4), evaluation processing that evaluates the performance results of the song to be evaluated (Step A5), and other The process (step A6) is repeatedly executed.
In this main flowchart, when a timer interrupt occurs at regular intervals, a timer interrupt process is executed. The timer interrupt process will be described later.
[0014]
FIG. 3 is a flowchart of the switch process in step A2 in the main flow. First, music selection processing is executed (step B1), and then start / stop switch processing is executed (step B2). Next, other switch processing is performed (step B3), and the process returns to the main flow.
FIG. 4 is a flowchart of the music selection switch process in step B1 in the switch process. It is determined whether or not the start flag STF is “0 (stop performance)” (step C1). If this flag is “1 (automatic performance)”, this flow is terminated. If "0", it is determined whether or not the music selection switch has been operated (step C2). If the switch is not operated, this flow is terminated. If the switch is operated, the number of the selected music designated by the switch is stored in the register M (step C3). Then, this flow ends.
[0015]
FIG. 5 is a flowchart of the start / stop switch process in step B3 in FIG. It is determined whether or not the start / stop switch has been turned on (step D1). If it is not turned on, this flow is terminated. If it is turned on, the value of the flag STF is inverted (step D2). Then, it is determined whether or not the STF value is “1” (step D3). When the value of STF is “1”, automatic performance is started, and the start address of the song (M) designated by the number of the selected song in the register M is stored in the register AD (step D4). Further, the tempo of the music (M) is stored in the register TEMPO (step D5).
[0016]
Next, the time of the music data at the head address designated by AD is read (step D6), and the time is stored in the register TIME (step D7). Then, a timer interrupt cycle based on TEMPO is set (step D8). Next, the register N for counting notes from the start of the song is cleared to “0” according to the progress of the song (step D9), and the register T for counting a predetermined number of notes for evaluating the performance result is set to “0”. (Step D10). Next, the prohibition of the timer interrupt is canceled (step D11). Therefore, the value of TIME is decremented for each period based on TEMPO.
In step D3, when the STF is reversed from “1” to “0”, the automatic performance is stopped. Therefore, the timer interrupt is prohibited (step D12), and all guide displays on the keyboard 6 are turned off (step D13). ). Then, the process returns to the main flow.
[0017]
6 to 9 are flowcharts of the automatic performance process at step A3 in the main flow. It is determined whether or not the STF is “1” (step E1). When the STF is “1” and the automatic performance state is set, the value of the TIME decremented for each timer interrupt reaches “0”. Whether or not (step E2). If the STF is “0” or if the TIME value has not reached “0”, this flow is terminated. If the TIME value has reached “0”, the next song data In order to read out, the address of AD is advanced (step E3). Then, the music data is read from the AD address (step E4).
[0018]
Next, it is determined whether or not the read music data is END, that is, the end of music (step E5). If the read data is END, the STF is reset to “0” (step E6), and all guide displays on the keyboard 6 are extinguished (step E7). In addition, the timer interrupt is prohibited (step E8). Then, this flow is ended and the process returns to the main flow.
On the other hand, if the read data is not END, it is determined whether or not the data is a note-off event in the flowchart of FIG. 7 (step E9). If it is determined that the data is a note-off event, the event data is stored in the register NOTE (step E10), and the key guide display corresponding to the NOTE is turned off (step E11).
[0019]
Next, in a performance guide array register capable of storing a maximum of N notes in a poly performance of a maximum of N sound channels by the sound source 9, a pointer i for specifying the array is set to an initial value "0" (step E12) Searching for a note corresponding to a note-off event while incrementing the value of i. That is, it is determined whether or not the NOTE (i) note matches the NOTE note (step E13). If they do not match, the value of i is incremented (step E14). Then, it is determined whether or not the value of i exceeds the value of N (step E15). If the value of N is not exceeded, it is determined in step E13 whether the note (i) matches the note of NOTE.
[0020]
In step E13, when it is determined that the note of NOTE (i) and the note of NOTE match, data NULL indicating the empty state is stored in NOTE (i), time register NOTETIME (i), and flag NOTEF (i). (Step E16). “NOTETIME (i)” is a register for storing a key press waiting allowable time from the lighting start timing of the guide display, that is, the event sounding start timing to the performance start timing. Further, NOTEF (i) is a flag that becomes NULL while the note of NOTE (i) is sounding and “1” is muted.
[0021]
After NULL is stored in NOTE (i), NOTETIME (i), and NOTEF (i), the flag MF is reset to “0” (step E17). MF is a flag that is set to “1” when a maximum of N notes are all sounding in the array register. Therefore, after NULL is stored in NOTE (i) in step E16, at least one of the array registers becomes empty, so MF is reset to “0”. Then, since the processing for one note in a predetermined period for evaluation is completed, the value of the register T for counting the number of notes, that is, the number of events is incremented (step E18).
[0022]
If it is determined in step E9 that the data is not note-off, it is determined in the flowchart of FIG. 8 whether the data is time (step E19). If it is time, the time value is stored in the register TIME (step E20), and the process returns to the main flow.
If the data is not time, it is determined whether the data is note-on (step E21). If it is determined that the data is not a note-on event, other event processing is performed (step E22). Then, the process proceeds to step E3 in the flowchart of FIG. 6 to advance the AD address.
[0023]
If it is determined in step E21 in FIG. 8 that the data is note-on, the event note is stored in the register NOTE (step E23). Next, in an array register that can store a maximum of N notes in a poly performance of a maximum of N sound channels by the sound source 9, a pointer i designating the array register is set to an initial value “0” (step E24). , I is incremented, and an empty area for storing the note-on event is searched. That is, it is determined whether or not NOTE (i) is NULL (step E25). If it is not NULL, the value of i is incremented (step E26). Then, it is determined whether or not the value of i exceeds the value of N (step E27). When the value of N is exceeded, that is, when there is no empty array, the flag MF is set to “1” (step E28). In this case, the NOTE event becomes invalid, and the process proceeds to step E3 in the flowchart of FIG. 6 to advance the AD address.
[0024]
On the other hand, if NOTE (i) is NULL in step E25 of FIG. 8, the note of NOTE is stored in NOTE (i) (step E29), and a guide display corresponding to the NOTE is performed (step E30). After the guide display, in the flowchart of FIG. 9, the pointer j for specifying the key change array register for storing the notes of the keyboard 6 is set to the initial value “0” (step E31), and the value of j is set. While incrementing, the area in the array KEY (j) that matches the note of NOTE is searched for.
[0025]
That is, it is determined whether or not the array KEY (i) designated by the pointer is not NULL (empty state) (step E32), and if it is not NULL, the note of NOTE and the note of KEY (i) match. Is determined (step E33). If KEY (i) is NULL, or if the note of NOTE and the note of KEY (i) do not match, the value of j is incremented (step E34). Then, it is determined whether or not the value of j exceeds the maximum number N (step E35). If the value of j exceeds N, it is determined whether or not the flag MF is “0” (step E36). That is, if there is no note in the array KEY (0) to (N) that matches the note of NOTE, whether or not there is a vacancy in the array NOTE (0) to (N) (MF is “0”). Is determined.
[0026]
When the MF is “0” and there is an empty space in the arrays NOTE (0) to (N), the note-on event for guiding the key depression is valid, and the note that matches the note of the note is not at this time. Is shown. In this case, NOTEF (i) is set to “1” (step E37), and the key press waiting allowable time ta is stored in NOTETIME (i) (step E38). Since there is no note in KEY (0) to (N) that matches the note of NOTE, point down is performed by subtracting α from the value of Point for counting the evaluation points (step E39). Then, the evaluation flag HYOKAF is set to “1 (execution execution)” (step E40).
[0027]
If the value of j does not exceed N in step E35, it is determined in step E32 and step E33 whether or not there is a note that matches the note in KEY (j) that is not NULL. When the note of NOT matches the note of KEY (j), the flag KEYF (j) indicating whether the key of KEY (j) is in the key depression state or the key release state is “1 (key depression State) ”or NULL (key release state) is determined (step E41). If KEYF (j) is “1”, KEYF (j) is set to NULL (step E42).
[0028]
Further, NULL is stored in the time register KEYTIME (j) (step E43). KEYTIME (j) is a register for storing a guide waiting allowable time from the performance start timing to the sound generation start timing of the note-on event. Next, α is added to the value of the evaluation point Point (step E44). When KEYF (j) is “1”, the note corresponding to the guide display corresponding to the note of NOTE has already been pressed, and the key pressing guide has been made within the guide waiting allowable time. Therefore, in order to eliminate (correct) the point deducted in step E39, α is added to the point (step E44). Next, α is added to Point in order to add points based on the fact that the NOTE note and the KEY (j) note match (step E45). Then, “1” is set in HYOKAF (step E40).
On the other hand, if KEYF (j) is “0” in step E41, it means that the key is pressed in accordance with the sounding start timing by the note of NOTE, and α is added to Point (step E45). . Then, “1” is set in HYOKAF (step E40).
After HYOKAF is set to “1” or when MF is “1” in step E36, the process proceeds to step E3 in FIG. 6 to advance the address of AD.
[0029]
After incrementing the value of T in step E18 of FIG. 7 or when the value of the pointer i designating the arrangement register of the performance guide exceeds the maximum value N in step E15, in the flowchart of FIG. It is determined whether or not the number of notes exceeds the reference number of notes (step E46). When the number of notes of T reaches the reference number of notes, a flag SHIENF indicating whether or not to support the user by display or voice is set to “1 (support)” (step E47). Then, the number of notes of T is cleared to “0” (step E48). After clearing T or if the number of notes in T does not reach the reference number in step E46, it is determined whether or not HYOKAF is “0” (step E49). Is set to "1" (step E50). After setting HYOKAF to “1” or when HYOKAF is “1”, the number of notes in the register N that stores the number of notes from the beginning of the song is incremented (step E51). Then, the process proceeds to step E3 in FIG. 6 to advance the address of AD.
[0030]
11 to 13 are flowcharts of the keyboard process in step A4 in the main flow. In FIG. 11, first, key scanning is performed (step F1) to determine whether or not there is a key change (step F2). When there is no key change, this flow is ended and the process returns to the main flow. When the key change changes from on to off, that is, when the key is released, the note of the key release is stored in the KEY (step F3). Then, a note-on command is created based on the KEY note (step F4), and the note-off command is sent to the sound source 9 (step F5).
[0031]
Next, a pointer j designating the key change array register is set to an initial value “0” (step F6), and the key release note area is searched while incrementing the value of j. That is, it is determined whether or not KEY (j) is NULL (step F7). If it is not NULL, that is, if it is not empty, it is determined whether or not the KEY (j) note matches the KEY note. A determination is made (step F8). If KEY (j) is NULL, or if the KEY (j) note does not match the KEY note, the value of j is incremented (step F9).
). Then, it is determined whether or not the value of j exceeds the maximum value N of the array (step F10). If the value of j does not exceed the maximum value N, it is determined in step F7 and step F8 whether or not the KEY (j) note matches the KEY note in KEY (j) that is not NULL. .
[0032]
If the KEY (j) note matches the KEY note, NULL is stored in KEY (j), KEYTIME (j), and KEYF (j) (step F11). Then, a flag FF indicating that the key change array register is empty or empty is set to “0 (available)” (step F12). Thereafter, or when the value of j exceeds the maximum value N in step F10, the process returns to the main flow.
[0033]
When the key change is changed from OFF to ON in step F2, that is, when the key is pressed, the note of the key press is stored in the register KEY in the flowchart of FIG. 12 (step F13). Then, a note-on command is created based on the KEY note (step F14), and the note-on command is sent to the sound source 9 (step F15). Next, a pointer j for designating the key change array register is set to an initial value “0” (step F16), and an area for storing the depressed note is searched.
[0034]
That is, it is determined whether or not KEY (j) is NULL (empty state) (step F17). If it is not NULL, the value of j is incremented (step F18). And it is discriminate | determined whether the value of j exceeded the maximum value N (step F19). If the value of j exceeds the maximum value N, the flag FF is set to “1 (no space available)” (step F20). If the value of j does not exceed the maximum value N, it is determined in step F17 whether KEY (j) is NULL.
[0035]
If KEY (j) is NULL or FF is “1”, a pointer i designating the arrangement of performance guides is set to an initial value “0” (step F22), and the value of i The contents of the array NOTE (i) are searched while incrementing. That is, it is determined whether NOTE (i) is not NULL (step F23). If NOTE (i) is not NULL, it is determined whether the note of NOTE (i) and the note of KEY match. (Step F24).
[0036]
If NOTE (i) is NULL in step F23, or if the note of NOTE (i) and the note of KEY do not match in step F24, the value of i is incremented in the flowchart of FIG. (Step F30). Then, it is determined whether or not the value of i exceeds the maximum value N of the performance guide array (step F31). If the value of i does not exceed the value of N, it is determined in step F23 of FIG. 12 whether or not NOTE (i) is NULL.
[0037]
In step F31, when the value of i exceeds the value of N, it is determined whether or not the flag FF is “0 (available)” (step F32). When the FF is “1”, the key change array is not empty. In this case, the process returns to the main flow. On the other hand, when FF is “0”, the key pressed is valid and not yet guided. In this case, α is deducted from Point (step F33). Then, KEYF (j) is set to “1” (step F34), and guide waiting allowable time tb is stored in KEYTIME (j) (step F35). Next, HYOKAF is set to “1 (execution execution)” (step F36).
[0038]
If the note of NOTE (i) and the note of key P match in step F24 of FIG. 12, it is determined whether or not NOTEF (i) is “1” (step F25). If NOTEF (i) is “1”, that is, if the key that guided the performance is pressed within the guide waiting allowable time ta, α is added to the evaluation point register Point (step F26). . That is, the Point value deducted in step F33 in FIG. 13 is canceled.
[0039]
Next, NULL (empty state) is stored in NOTE (i) (step F27), and in FIG. 13, NULL is stored in NOTETIME (i) (step F28). Then, α is added to the evaluation point register Point (step F29). That is, an evaluation point is added again by pressing the key that matches the note of the performance guide. Next, HYOKAF is set to “1 (execution execution)” (step F36).
In step F25 of FIG. 12, if NOTEF (i) is NULL, the key pressed in accordance with the note of the key pressing guide matches, so in step F29 of FIG. 13, the evaluation point register Point is stored. Add α. Next, HYOKAF is set to “1 (execution execution)” (step F36). Then, the process returns to the main flow.
[0040]
FIG. 14 is a flowchart of the timer interrupt. The value of the register TIME is decremented according to the timer interrupt at regular intervals (step G1). Then, the pointer i designating the performance guide array register is set to the initial value “0” (step G2), and the loop processing from step G3 to step G9 is repeated while incrementing the value of i.
[0041]
In the loop processing, first, it is determined whether or not NOTETIME (i) is not NULL (step G3). If it is not NULL, the value of NOTETIME (i) (initial value is ta) is decremented (step G4). . Then, it is determined whether or not the value of NOTETIME (i) has reached “0” (step G5). That is, it is determined whether or not there is no key depression even after the key depression waiting allowable time ta has elapsed. When the value of NOTETIME (i) reaches “0”, NULL is stored in NOTETIME (i) (step G6), and NULL is stored in NOTEF (i) (step G7). In this case, since the performance start timing when the key is pressed after the sound generation start timing of the note-on event is too late, the waiting for the key press is eliminated.
[0042]
After NULL is stored in NOTEF (i) at step G7, or when NOTETIME (i) is NULL in step G3, or the value of NOTETIME (i) has reached “0” at step G5. If not, the value of i is incremented (step G8), and it is determined whether or not the value of i exceeds the maximum value N of the array (step G9). If the value of i does not exceed the value of N, the process proceeds to step G3 and loop processing is repeated.
In step G9, when the value of i exceeds the value of N, the loop processing is ended, and the pointer j initial value “0” for designating the key change array register is set (step G10). While incrementing the value, the loop processing from step G11 to step G17 is repeated.
[0043]
In the loop processing, first, it is determined whether or not KEYTIME (j) is NULL (step G11). If it is not NULL, the value of KEYTIME (j) (initial value is tb) is decremented (step G12). . Then, it is determined whether or not the value of KEYTIME (j) has reached “0” (step G13). That is, it is determined whether or not there is no guide even after the guide waiting allowable time tb has elapsed. When the value of KEYTIME (j) reaches “0”, NULL is stored in KEYTIME (j) (step G14), and NULL is stored in KEYF (j) (step G15). That is, since the performance start timing pressed before the sound generation start timing of the note-on event is too early, the waiting for the guide is eliminated.
[0044]
In step G15, after NULL is stored in KEYF (j), or in step G11, KEYTIME (j) is NULL, or in step G13, the value of KEYTIME (j) has reached “0”. If not, the value of j is incremented (step G16), and it is determined whether or not the value of j exceeds the maximum value N of the array (step G17). If the value of N is not exceeded, the process proceeds to step G11 and the loop process is repeated. When the value of j exceeds the value of N, the loop process is terminated and the process returns to the main flow.
[0045]
Note that the key press waiting allowable time ta and the guide waiting allowable time tb may be changed according to a user setting. In addition, without providing the key press waiting allowable time ta, when a key is pressed during a sound generation period from note-on to note-off, the timing may be regarded as coincident and points may be added.
[0046]
15 and 16 are flowcharts of the evaluation process in step A5 in the main flow. In the flow of FIG. 15, first, it is determined whether or not HYOKAF is “1” (step H1). If this flag is “1”, it is reset to “0” (step H2). Next, a pointer n designating an array P (n) for a predetermined period to be evaluated is set to “0” (step H3), P (n + 1) is substituted for P (n) (step H4), The value of n is incremented (step H5). Then, it is determined whether or not the value of n + 1 has reached the number of evaluation notes (step H6). If the number of evaluation notes is not reached, the process proceeds to step H4 and the process up to step H6 is repeated.
[0047]
In step H6, when the value of n + 1 becomes the number of evaluation notes, the value of POINT is stored in P (n) (step H7). After the value of POINT is stored in P (n), it is determined whether or not the flag SHIENF is “1” (step H8). If SHIENF is “0”, this flow ends. If SHIENF is “1”, it is reset (step H9).
[0048]
Next, it is determined whether or not the number of notes from the beginning of the song stored in N is in a period larger than D1 which is two preset number of notes and smaller than D2 (step H10). That is, it is determined whether or not there are N notes in the period (evaluation target period) excluding the range from the first note of the song to D1 and the range from the note of D2 to the end of the song. If the number of notes stored in N is not in this period, this flow ends.
[0049]
If the number of notes stored in N is in a period greater than D1 and less than D2, a pointer n for designating the number of evaluation notes in the array P (n) is set to “0” in the flow of FIG. 11 (step H11). ). Next, the evaluation register HYOKA is cleared to “0” (step H12). Then, the value of P (n) is added to HYOKA (step H13). Next, the value of n is incremented (step H14), and it is determined whether or not the value of n has reached the number of evaluation notes (step H15). If the number of evaluation notes is not reached, the process proceeds to step H13, and the process up to step H15 is repeated.
[0050]
When the value of n becomes the number of evaluation notes, it is determined whether or not there is evaluation data in FHYOKA that stores evaluation data in the previous predetermined period (step H16). If there is evaluation data in FHYOKA, it is determined whether the value of HYOKA storing the evaluation data for the predetermined period is equal to or less than the value of FHYOKA, or whether the value of HYOKA is larger than the value of FHYOKA ( Step H17). That is, it is determined whether the evaluation of the current predetermined period is lower than or equal to the previous time or higher than the previous time.
[0051]
If the value of HYOKA is greater than the value of FHYOKA, or if there is no evaluation data in FHYOKA, LANKUP (HYOKA) data, which is higher than the previous evaluation, is stored in the register LANK (step H18). On the other hand, if the value of HYOKA (current evaluation) is less than or equal to the value of FHYOKA (previous evaluation), data of LANKDOWN (HYOKA) that is lower than or equal to the previous value is stored in the register LANK (step H19). ). After any data is stored in the LANK, the evaluation result based on the LANK data is displayed on the display unit 8 (step H20). Next, the value of HYOKA is stored and updated in FHYOKA (step H21), and prepared for the evaluation of the next predetermined period. Then, this flow is ended and the process returns to the main flow.
[0052]
Next, specific operations in the embodiment will be described with reference to FIGS.
FIG. 17 is a diagram showing an example of key depression for a chord performance guide. FIG. 17 (1) shows guide notes of four chords (C3, D3, E3, F3) having the same sounding start timing. FIG. 17B is an example of key depression for this guide note. Key depression is performed at the performance start timing for each note at a time after the sound generation start timing. In this case, since the key is pressed during the sound generation period of each note, the point-up process (UP) is performed in which α is added to Point for each key press. FIG. 17 (3) shows another example of key depression, in which key depression is performed at the performance start timing for each note at a time before the sound generation start timing. In this case, at the time of the start of sound generation of the guide note, the point-up process is performed by adding α to the point for each key depression.
[0053]
FIG. 18 is a diagram illustrating an example of key depression for a performance guide of a plurality of notes having different sounding start timings.
FIG. 18A shows guide notes of four notes (C3, D3, E3, F3) having different sounding start timings. FIG. 18B is an example of key depression when the guide waiting allowable time tb is not provided. First, there is a key depression at the performance start timing of the D3 note, and then a guide is made at the sound generation start timing of the C3 note. That is, it is determined that the guide note and the key-pressing note do not coincide with each other, and at this time, point down processing (DOWN) is performed in which α is deducted from Point. Thereafter, the point-up process is performed when the guide is given at the sound generation start timing of the note D3. Further, when a key is pressed at the performance start timing of the E3 note, guidance is provided by the C3 and D3 notes. In this case as well, the point-down process for deducting α from Point is performed. Thereafter, the point-up process is performed when the guide is given at the sounding start timing of the note E3. Further, when a key is pressed at the performance start timing of the F3 note, the C3, D3, and E3 notes are guided. In this case as well, the point-down process for deducting α from Point is performed. Thereafter, the point-up process is performed when the guide is given at the sound generation start timing of the F3 note.
[0054]
As described above, when the guide waiting allowable time tb is not provided, as a result of the point down three times and the point up four times, the point is one point up, and the time just before the sounding start timing of the guide note is reached. Even if the key is pressed against the note, the point is down and the subsequent point up is offset. For this reason, a user's skill is not evaluated correctly.
[0055]
  FIG. 18 (3) shows an example of key depression when the guide waiting allowable time tb is provided. When there is a key depression at the start of D3 note performance, point down processing is performed even if there is no D3 guide note.To do.Then, at the time when t1 (t1 <tb) has elapsed, if there is a sounding start timing of the note D3,After offsetting this point-down processPerform point-up processing. Similarly, when there is a key depression at the performance start timing of the E3 note, point down processing is performed even if there is no E3 guide note.To do.Then, at the point in time when t2 (t2 <tb) has elapsed, if there is a timing to start sounding the note of E3,After offsetting this point-down processPerform point-up processing. In addition, when there is a key depression at the performance start timing of the F3 note, point down processing is performed even if there is no F3 guide note.To do.Then, at the point when time t3 (t3 <tb) has elapsed, if there is a sounding start timing of the note of F3,After offsetting this point-down processPerform point-up processing.
[0056]
FIG. 19 is a diagram illustrating an example of key depression when not all keys are depressed with respect to a plurality of note performance guides having different sounding start timings.
FIG. 19 (1) shows guide notes of three notes (C3, D3, E3) having different sounding start timings. FIG. 19 (2) shows an example of key depression when the guide waiting allowable time tb is not provided. First, when there is a key depression at the performance start timing of the note D3, the key depression guide is made with the guide note C3. For this reason, it is interpreted that the key of D3 is pressed with respect to the guide note of C3, and a point-down process for deducting α from Point is performed. Thereafter, point-up processing is performed at the timing of the sound generation start timing of the guide note D3. As described above, when the guide waiting allowable time tb is not provided, even if the key is pressed for the note at a time slightly before the start timing of the sound generation of the guide note, the point is down and the subsequent point up is offset. Result. For this reason, a user's skill is not evaluated correctly.
[0057]
FIG. 19 (3) shows an example of key depression when the guide waiting allowable time tb is provided. When there is a key depression at the performance start timing of the note D3, the point down process is waited for the time tb even if there is no guide note D3. Then, when the time point t4 (t4 <tb) has elapsed and there is a sounding start timing for the note D3, point-up processing is performed.
[0058]
As described above, according to this embodiment, the CPU 1 indicates the pitch in the sound generation event of the song data, the sound generation start timing, and the sound generation period by the sound end timing, and detects the played pitch and the performance start timing. To do. Then, it is determined whether or not the detected pitch matches the specified pitch, and when the performance start timing is detected within the specified sound generation period or within a predetermined time from the detected performance start timing. When the start timing is instructed, it is determined that the timing coincides, and in other cases, it is determined that the timing does not match. Based on these determinations, if it is determined that the pitches are coincident and timing is coincident, the performance evaluation of the added points is performed, and if it is determined that the pitches are not coincident or if the timing is inconsistent, the deduction performance is performed. Evaluate.
Therefore, when a user plays a song to be evaluated and receives the evaluation, it is possible to efficiently improve the performance technique by correctly evaluating the skill of the user.
[0059]
In each of the above embodiments, the performance evaluation apparatus that executes the performance evaluation program stored in advance in the program ROM 3 of FIG. 1 by the CPU 1 has been described. However, an external storage medium such as an FD (flexible disk) or CD-ROM It is also possible to install and execute a performance evaluation program stored in the computer or a performance evaluation program downloaded via a communication network such as the Internet on a general-purpose information processing apparatus such as a personal computer. In this case, the invention of the program is configured.
[0060]
  That is, the performance evaluation program according to the present invention is:Sample performance data supply step that sequentially supplies the pitch of the musical tone to be generated, model performance data that instructs the pronunciation of the musical tone, and actual performance data that instructs the pronunciation of the musical tone at the pitch specified by the performance operation If the actual performance data instructing the sound generation is already supplied when the actual performance data supplying step and the model performance data instructing the sound generation are supplied, whether or not the pitches of the two performance data are the same In the case where the first determination step for determination and the model performance data for instructing the sound generation are already supplied when the actual performance data for instructing the sound generation are supplied, whether or not the pitches of the two performance data are the same If both pitches are determined to be the same in one of the second determination step and the first and second determination steps, an evaluation point is added, while both pitches are the same. If it is determined that the pitch is not the same in the performance evaluation step in which the evaluation score is deducted and the first determination step, the first sound designating the pitch of the model performance data is determined. When it is determined that the pitch is not the same in the pitch specifying step and the second determining step, a second pitch specifying step for specifying the pitch of the actual performance data, and the first pitch specifying When it is determined in the second determination step that the pitch of the actual performance data matches the specified pitch within a predetermined time after the pitch of the model performance data is specified by the step, The first evaluation correction step for invalidating the deduction of the evaluation score in the performance evaluation step and adding the evaluation score, and the predetermined pitch after the pitch of the actual performance data is specified by the second pitch specification step. time When it is determined in the first determination step that the pitch of the model performance data matches the specified pitch, the deduction of the evaluation score in the performance evaluation step is invalidated and the evaluation score is And causing the computer to execute a second evaluation correction step of adding points.
[0061]
【The invention's effect】
According to the present invention, when the sound generation start timing is instructed within a predetermined time from the detected performance start timing, it is determined that the timing is coincident. Therefore, when the user plays the evaluation target song and receives the evaluation In addition, the performance skill can be improved efficiently by correctly evaluating the skill of the user.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a performance evaluation apparatus according to an embodiment of the present invention.
FIG. 2 is a main flowchart of a performance evaluation process of a CPU in the embodiment.
FIG. 3 is a flowchart of switch processing in FIG. 2;
4 is a flowchart of music selection switch processing in FIG. 3;
FIG. 5 is a flowchart of start / stop switch processing in FIG. 3;
6 is a flowchart of automatic performance processing in FIG.
FIG. 7 is a flowchart of automatic performance processing following FIG. 6;
FIG. 8 is a flowchart of automatic performance processing following FIG.
9 is a flowchart of automatic performance processing following FIG.
FIG. 10 is a flowchart of automatic performance processing following FIG.
FIG. 11 is a flowchart of keyboard processing in FIG. 2;
FIG. 12 is a flowchart of keyboard processing following FIG.
FIG. 13 is a flowchart of keyboard processing following FIG. 12;
FIG. 14 is a flowchart of a timer interrupt.
15 is a flowchart of the evaluation process in FIG.
FIG. 16 is a flowchart of evaluation processing following FIG. 15;
FIG. 17 is a diagram showing an example of key depression for a chord performance guide.
FIG. 18 is a diagram showing an example of key depression for a performance guide of a plurality of notes having different sounding start timings.
FIG. 19 is a diagram illustrating a key pressing example when not all keys are pressed with respect to a performance guide for a plurality of notes having different sounding start timings.
[Explanation of symbols]
1 CPU
3 Program ROM
4 Work RAM
5 song memory
6 keyboard
7 Switch part
8 Display section
9 Sound source
10 Pronunciation circuit

Claims (3)

発音すべき楽音の音高、当該楽音の発音を指示する模範演奏データを順次供給する模範演奏データ供給手段と、
演奏操作により指定される音高で楽音の発音を指示する実演奏データを順次供給する実演奏データ供給手段と、
前記模範演奏データ供給手段から発音を指示する模範演奏データが供給されたときに前記実演奏データ供給手段から発音を指示する実演奏データが既に供給されている場合、当該両演奏データの音高が同一か否か判定する第1の判定手段と、
前記実演奏データ供給手段から発音を指示する実演奏データが供給されたときに前記模範演奏データ供給手段から発音を指示する模範演奏データが既に供給されている場合、当該両演奏データの音高が同一か否か判定する第2の判定手段と、
前記第1及び第2の判定手段のいずれか一方にて両音高が同一であると判定された場合は評価点を加点する一方、両音高が同一でないと判定された場合は評価点を減点する演奏評価手段と、
前記第1の判定手段により両音高が同一でないと判定された場合、前記模範演奏データの音高を指定する第1の音高指定手段と、
前記第2の判定手段により両音高が同一でないと判定された場合、前記実演奏データの音高を指定する第2の音高指定手段と、
前記第1の音高指定手段により模範演奏データの音高が指定された後から所定時間内に、前記第2の判定手段にて実演奏データの音高と当該指定された音高と一致したと判定された場合に、前記演奏評価手段における評価点の減点を無効にするとともに当該評価点を加点する第1の評価修正手段と、
前記第2の音高指定手段により実演奏データの音高が指定された後から所定時間内に、前記第1の判定手段により模範演奏データの音高と当該指定された音高と一致したと判定された場合に、前記演奏評価手段における評価点の減点を無効にするとともに当該評価点を加点する第2の評価修正手段と、
を備えたことを特徴とする演奏評価装置。
A model performance data supply means for sequentially supplying the pitch of the musical sound to be generated and the model performance data instructing the pronunciation of the musical sound;
Actual performance data supply means for sequentially supplying actual performance data instructing pronunciation of a musical tone at a pitch specified by a performance operation;
When actual performance data instructing pronunciation is already supplied from the actual performance data supplying means when the exemplary performance data instructing sound generation is supplied from the exemplary performance data supplying means, the pitches of both performance data are First determination means for determining whether or not they are the same;
When the model performance data instructing pronunciation is already supplied from the model performance data supply means when the actual performance data instructing pronunciation is supplied from the actual performance data supply means, the pitches of both performance data are Second determination means for determining whether or not they are the same;
If either one of the first and second determination means determines that both pitches are the same, an evaluation score is added. On the other hand, if it is determined that both pitches are not the same, an evaluation score is given. Performance evaluation means to deduct,
First pitch designating means for designating the pitch of the model performance data when the first judging means judges that both pitches are not the same;
Second pitch designating means for designating the pitch of the actual performance data when the second judging means judges that both pitches are not the same;
Within a predetermined time after the pitch of the model performance data is designated by the first pitch designating means, the pitch of the actual performance data matches the designated pitch by the second judging means. First evaluation correcting means for invalidating the deduction of the evaluation score in the performance evaluation means and adding the evaluation score,
Within a predetermined time after the pitch of actual performance data is specified by the second pitch specifying means, the pitch of the model performance data matches the specified pitch by the first determination means. A second evaluation correcting means for invalidating the deduction of the evaluation score in the performance evaluation means and adding the evaluation score when determined,
A performance evaluation apparatus comprising:
前記所定時間を設定操作に応じて設定可能な時間設定手段をさらに有することを特徴とする請求項1記載の演奏評価装置。 2. The performance evaluation apparatus according to claim 1 , further comprising time setting means capable of setting the predetermined time according to a setting operation . コンピュータに、On the computer,
発音すべき楽音の音高、当該楽音の発音を指示する模範演奏データを順次供給する模範演奏データ供給ステップと、An example performance data supply step for sequentially supplying the pitch of the musical sound to be generated and the exemplary performance data for instructing the pronunciation of the musical sound;
演奏操作により指定される音高で楽音の発音を指示する実演奏データを順次供給する実演奏データ供給ステップと、An actual performance data supply step for sequentially supplying actual performance data instructing pronunciation of a musical tone at a pitch specified by a performance operation;
前記発音を指示する模範演奏データが供給されたときに前記発音を指示する実演奏データが既に供給されている場合、当該両演奏データの音高が同一か否か判定する第1の判定ステップと、A first determination step of determining whether or not the pitches of the performance data are the same when the actual performance data instructing the pronunciation is already supplied when the model performance data instructing the pronunciation is supplied; ,
前記発音を指示する実演奏データが供給されたときに前記発音を指示する模範演奏データが既に供給されている場合、当該両演奏データの音高が同一か否か判定する第2の判定ステップと、A second determination step of determining whether or not the pitches of the two performance data are the same when the model performance data instructing the pronunciation is already supplied when the actual performance data instructing the pronunciation is supplied; ,
前記第1及び第2の判定ステップのいずれか一方にて両音高が同一であると判定された場合は評価点を加点する一方、両音高が同一でないと判定された場合は評価点を減点する演奏評価ステップと、If it is determined in either one of the first and second determination steps that both pitches are the same, an evaluation score is added. On the other hand, if it is determined that both pitches are not the same, an evaluation score is given. Performance evaluation step to deduct,
前記第1の判定ステップにより両音高が同一でないと判定された場合、前記模範演奏データの音高を指定する第1の音高指定ステップと、If it is determined in the first determination step that both pitches are not the same, a first pitch specifying step for specifying the pitch of the model performance data;
前記第2の判定ステップにより両音高が同一でないと判定された場合、前記実演奏データの音高を指定する第2の音高指定ステップと、A second pitch designating step of designating a pitch of the actual performance data when it is determined in the second determining step that both pitches are not the same;
前記第1の音高指定ステップにより模範演奏データの音高が指定された後から所定時間内に、前記第2の判定ステップにて実演奏データの音高と当該指定された音高と一致したと判定された場合に、前記演奏評価ステップにおける評価点の減点を無効にするとともにWithin a predetermined time after the pitch of the model performance data is specified by the first pitch specifying step, the pitch of the actual performance data matches the specified pitch in the second determination step. When it is determined that the evaluation score deduction in the performance evaluation step is invalidated 当該評価点を加点する第1の評価修正ステップと、A first evaluation correction step for adding the evaluation score;
前記第2の音高指定ステップにより実演奏データの音高が指定された後から所定時間内に、前記第1の判定ステップにより模範演奏データの音高と当該指定された音高と一致したと判定された場合に、前記演奏評価ステップにおける評価点の減点を無効にするとともに当該評価点を加点する第2の評価修正ステップと、Within a predetermined time after the pitch of actual performance data is specified by the second pitch specifying step, the pitch of the model performance data matches the specified pitch by the first determination step. A second evaluation correcting step of invalidating the deduction of the evaluation score in the performance evaluation step and adding the evaluation score when determined,
を実行させる演奏評価プログラム。A performance evaluation program that executes
JP2003099864A 2002-12-24 2003-04-03 Performance evaluation apparatus and performance evaluation program Expired - Fee Related JP4096784B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003099864A JP4096784B2 (en) 2003-04-03 2003-04-03 Performance evaluation apparatus and performance evaluation program
US10/735,510 US20040123726A1 (en) 2002-12-24 2003-12-11 Performance evaluation apparatus and a performance evaluation program
CN2006101060166A CN1897104B (en) 2002-12-24 2003-12-23 Device for musical performance evaluation
CNB2003101232741A CN1293505C (en) 2002-12-24 2003-12-23 Performance evaluation device and performance evaluation method
CN2006101060170A CN1897105B (en) 2002-12-24 2003-12-23 Device for musical performance evaluation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003099864A JP4096784B2 (en) 2003-04-03 2003-04-03 Performance evaluation apparatus and performance evaluation program

Publications (2)

Publication Number Publication Date
JP2004309600A JP2004309600A (en) 2004-11-04
JP4096784B2 true JP4096784B2 (en) 2008-06-04

Family

ID=33464158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003099864A Expired - Fee Related JP4096784B2 (en) 2002-12-24 2003-04-03 Performance evaluation apparatus and performance evaluation program

Country Status (1)

Country Link
JP (1) JP4096784B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160397A (en) * 2009-01-09 2010-07-22 Yamaha Corp Performance-evaluating apparatus and program
JP6758261B2 (en) * 2017-07-31 2020-09-23 株式会社コシダカホールディングス Scoring method

Also Published As

Publication number Publication date
JP2004309600A (en) 2004-11-04

Similar Documents

Publication Publication Date Title
JP4399961B2 (en) Music score screen display device and performance device
JP2004264501A (en) Keyboard musical instrument
JP5293710B2 (en) Key judgment device and key judgment program
CN1897105B (en) Device for musical performance evaluation
JPH08221063A (en) Automatic music player
JP3743024B2 (en) Performance practice device
JP4038836B2 (en) Karaoke equipment
JP4096784B2 (en) Performance evaluation apparatus and performance evaluation program
JP2000214848A (en) Performance support device, performance support method, and recording medium with performance support program recorded therein
JP3239411B2 (en) Electronic musical instrument with automatic performance function
JP5732982B2 (en) Musical sound generation device and musical sound generation program
JP3551014B2 (en) Performance practice device, performance practice method and recording medium
JP2985717B2 (en) Key press indicating device
JP3743364B2 (en) Performance practice device
JP3055554B2 (en) Operation instruction device
JP2002182642A (en) Performance guidance device and performance guidance method
JP4207564B2 (en) Performance apparatus and performance processing program
JPH0375874B2 (en)
JP3885737B2 (en) Performance evaluation apparatus and performance evaluation program
JP5692275B2 (en) Electronic musical instruments
JP5742592B2 (en) Musical sound generation device, musical sound generation program, and electronic musical instrument
JP2643277B2 (en) Automatic performance device
JP2586744B2 (en) Automatic accompaniment device for electronic musical instruments
JP2003122355A (en) Electronic musical instrument
JP3620321B2 (en) Automatic accompaniment device

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060228

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080303

R150 Certificate of patent or registration of utility model

Ref document number: 4096784

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees