(57)【要約】【課題】両手を使った鍵盤演奏の難易度を評価する演奏難易度装置を実現する。【解決手段】ＣＰＵ１０は、評価対象となる第１音、第１音と同じ発音タイミングで反対パートの第２音、第１音ｍｅの次に発音タイミングとなる第３音および第２音の次に発音タイミングとなる第４音の各音符データを楽曲データ中から検索し、該当する４つの音符データに含まれる指番号に基づいて両手を使った鍵盤演奏の難易度のタイプを判定する。予め記憶されたタイプ毎の難易度値の内、判定された曲中に存在する難易度のタイプ毎の難易度値を読み出して累算し、曲を両手で弾く難易度を取得する。【選択図】図１
2014032244.tif 000002
【特許請求の範囲】
【請求項１】
曲を構成する音符夫々を演奏するに必要な指を表す指番号および当該音符の演奏パートを識別するパートデータを含む音符データの中から、当該音符データに含まれるパートデータに基づいて所定の関係にある第１乃至第４の音符データを検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で演奏する場合の難易度のタイプを判定するタイプ判定手段と、
前記タイプ判定手段により判定されたタイプ毎の難易度値を曲を両手で演奏する場合の難易度として取得する難易度取得手段と
を具備することを特徴とする演奏難易度評価装置。
【請求項２】
前記タイプ判定手段は、前記音符データに含まれるパートデータに基づいて所定の関係にある第１乃至第４の音符データを順次検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で演奏する場合の難易度のタイプを判定し、
前記難易度取得手段は、前記タイプ判定手段により判定されたタイプ毎の難易度値を順次累算し、曲を両手で演奏する場合の難易度を取得することを特徴とする請求項1記載の演奏難易度評価装置。
【請求項３】
前記タイプ判定手段は、評価対象となる第１音ｍｅ、第１音ｍｅと同じ発音タイミングで反対パートの第２音ｏｔｈｅｒ、第１音ｍｅの次に発音タイミングとなる第３音ｎｅｘｔおよび第１音ｍｅと同じ発音タイミングで反対のパートの第２音ｏｔｈｅｒの次に発音タイミングとなる第４音ｄｉａｇｏｎａｌの各音符データを前記第１乃至第４の音符データとして順次検索する検索手段を備えることを特徴とする請求項１記載の演奏難易度評価装置。
【請求項４】
前記タイプ判定手段は、
右手パートを主体として、評価対象となる第１の音符データを更新する毎に、難易度のタイプ判別に用いる第１乃至第４の音符データを順次検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で弾く難易度のタイプを判定する第１の判定手段と、
左手パートを主体として、評価対象となる第１の音符データを更新する毎に、難易度のタイプ判別に用いる第１乃至第４の音符データを順次検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で弾く難易度のタイプを判定する第２の判定手段と
を備えることを特徴とする請求項１記載の演奏難易度評価装置。
【請求項５】
前記第１および第２の判定手段は、第１乃至第４の音符データにそれぞれ含まれる指番号に基づき、一方の手で弾く指の離れ具合と他方の手で弾く指の離れ具合とで定まる両手の指使いの左右対称性に応じて両手で弾く難易度のタイプを判定することを特徴とする請求項４記載の演奏難易度評価装置。
【請求項６】
前記第１および第２の判定手段は、第１乃至第４の音符データが揃わない場合、欠落する音符データの数に応じて両手で弾く難易度のタイプを判定することを特徴とする請求項４記載の演奏難易度評価装置。
【請求項７】
前記第１および第２の判定手段は、第１乃至第４の音符データが和音を構成するか否かを判別する和音判別手段を備え、和音を構成する場合と和音を構成しない場合と分けて難易度のタイプを判定することを特徴とする請求項４記載の演奏難易度評価装置。
【請求項８】
コンピュータに、
曲を構成する音符を演奏するに必要な指を表す指番号および当該音符の演奏パートを識別するパートデータを含む音符データの中から、当該音符データに含まれるパートデータに基づいて所定の関係にある第１乃至第４の音符データを検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で演奏する場合の難易度のタイプを判定するタイプ判定ステップと、
前記タイプ判定ステップで判定されたタイプ毎の難易度値を曲を両手で演奏する場合の難易度として取得する難易度取得ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲を鍵盤楽器で演奏する際の難易度を評価する装置に関し、特に両手を使った鍵盤演奏の難易度を評価する演奏難易度評価装置およびプログラムに関する。
【背景技術】
【０００２】
従来より、楽曲を鍵盤楽器で演奏する際の難易度を評価する装置が知られている。この種の技術として、例えば特許文献１には、楽曲を構成する各音符を表す楽音データ中の音高情報、運指情報および時間情報の何れかに基づいて、楽曲の演奏に必要な要素（運指、リズム、調性）のそれぞれについて個別難易度を算出し、算出された複数種の個別難易度のぞれぞれに重み係数を乗じて、重みが付与された個別難易度を累算することにより楽曲全体の難易度を取得する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２８１８８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記特許文献１に開示の技術では、右手の指使いと左手の指使いとに分け、それぞれ独立して運指の難易度を評価する為、右手の指使いと左手の指使いとを協調させながら楽曲を弾く運指の難しさ、つまり両手を使った鍵盤演奏の難易度を評価することが出来ないという問題がある。
【０００５】
本発明は、このような事情に鑑みてなされたもので、両手を使った鍵盤演奏の難易度を評価することができる演奏難易度評価装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の演奏難易度評価装置は、曲を構成する音符夫々を演奏するに必要な指を表す指番号および当該音符の演奏パートを識別するパートデータを含む音符データの中から、当該音符データに含まれるパートデータに基づいて所定の関係にある第１乃至第４の音符データを順次検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で演奏する場合の難易度のタイプを判定するタイプ判定手段と、前記タイプ判定手段により判定されたタイプ毎の難易度値を曲を両手で演奏する場合の難易度として取得する難易度取得手段とを具備することを特徴とする。
【発明の効果】
【０００７】
本発明では、両手を使った鍵盤演奏の難易度を評価することができる。
【図面の簡単な説明】
【０００８】
【図１】電子楽器１００の全体構成を示すブロック図である。
【図２】ＲＡＭ１２の主要データ構成を示すメモリマップである。
【図３】メインルーチンの動作を示すフローチャートである。
【図４】難易度評価処理の動作を示すフローチャートである。
【図５】難易度評価処理の動作を示すフローチャートである。
【図６】コスト判定処理の動作を示すフローチャートである。
【図７】コスト判定処理の動作を示すフローチャートである。
【図８】コスト判定処理の動作を示すフローチャートである。
【図９】難易度評価処理の具体的な動作の一例を説明する為の図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施形態について説明する。
Ａ．構成
図１は、実施の一形態による演奏難易度評価装置を備えた電子楽器１００の全体構成を示すブロック図である。この図において、ＣＰＵ１０は、演奏操作に応じて鍵盤１３が発生する演奏情報に基づき音源１６に楽音発生を指示する通常の楽器機能を有すると共に、曲の演奏練習に供せられるデータであって、手本（模範演奏）となる楽曲データ（後述する）に基づき両手を使って鍵盤演奏する際の難易度を評価する難易度評価機能を具備する。本発明に係わるＣＰＵ１０の特徴的な処理動作については追って詳述する。
【００１０】
ＲＯＭ１１は、データエリアおよびプログラムエリアを備える。ＲＯＭ１１のデータエリアには、手本（模範演奏）となる楽曲データが複数曲分記憶（ファクトリープリセット）される。これら複数曲の楽曲データの内、ユーザに指定される楽曲データがＲＡＭ１２の楽曲データエリアＭＥ（後述する）にストアされる。ＲＯＭ１１のプログラムエリアには、ＣＰＵ１０にロードされる各種の制御プログラムが記憶される。各種の制御プログラムとは、後述のメインルーチンを構成する難易度評価処理を含む。なお、難易度評価処理はコスト判定処理を含む。
【００１１】
ＲＡＭ１２は、楽曲データエリアおよびワークエリアを備える。ここで、図２を参照して、ＲＡＭ１２の楽曲データエリアＭＥおよびワークエリアＷＥに記憶される主要なデータについて説明する。ＲＡＭ１２の楽曲データエリアＭＥには、ユーザ指定の楽曲データがＲＯＭ１１から読み出されてストアされる。楽曲データは、曲を構成する各音に対応した複数の音符データ（１）〜（ｎ）から成る。
【００１２】
１つの音符データは、発音ピッチを表す音高Ｐｉｔ、発音タイミングを表す発音時刻Ｔｉｍｅ、発音継続時間を表す音長Ｇａｔｅ、弾くべき指を表す指番号Ｆｉｇおよび演奏パートを識別するパート番号Ｐａｒｔを含む。なお、発音時刻Ｔｉｍｅは、絶対時間形式と呼ばれ、曲先頭からの経過時間で発音タイミングを表す。指番号Ｆｉｇは、対応する音符を弾く（押鍵する）指を指定する番号であり、具体的には親指ならば「１」、人差し指ならば「２」、中指ならば「３」、薬指ならば「４」、小指ならば「５」となる。パート番号Ｐａｒｔは、対応する音符が右手パート（メロディパート）又は左手パート（伴奏パート）の何れかであるかを識別する番号であり、右手パートの場合に「０」、左手パートの場合に「１」となる。
【００１３】
ＲＡＭ１２のワークエリアＷＥには、後述する難易度評価処理に用いられる各種変数を一時記憶するレジスタが設けられる。レジスタｍｅには、ＲＡＭ１２の楽曲データエリアＭＥに格納された楽曲データの内、評価対象となる音符データがストアされる。レジスタｎｅｘｔには、レジスタｍｅにストアされた音符データの次に発音する音符データがストアされる。レジスタｏｔｈｅｒには、レジスタｍｅにストアされた音符データと同一の発音タイミングであって、レジスタｍｅにストアされた音符データとは反対のパートの音符データがストアされる。レジスタｄｉａｇｏｎａｌには、レジスタｏｔｈｅｒにストアされた音符データと同じパートで次に発音する音符データがストアされる。
【００１４】
レジスタｆ０には、レジスタｍｅの音符データ中の指番号Ｆｉｇがストアされる。レジスタｆｎには、レジスタｎｅｘｔの音符データ中の指番号Ｆｉｇがストアされる。レジスタｆｏには、レジスタｏｔｈｅｒの音符データ中の指番号Ｆｉｇがストアされる。レジスタｆｄには、レジスタｄｉａｇｏｎａｌの音符データ中の指番号Ｆｉｇがストアされる。レジスタｆｏ２には、レジスタｏｔｈｅｒの音符データ中の指番号Ｆｉｇの換算値（小指側から数え直した指番号６−ｆｏ）がストアされる。レジスタｆｄ２には、レジスタｄｉａｇｏｎａｌの音符データ中の指番号Ｆｉｇの換算値（小指側から数え直した指番号６−ｆｄ）がストアされる。
【００１５】
レジスタｉＣＭＴｙｐｅは、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号を一時記憶する。タイプ番号とは、４つの音を弾く左右両手の指の組み合わせから判別される難易度（コスト）の種類（タイプ）を識別する番号である。カウンタｉＣＭＴｙｐｅＣｎｔ［１］〜［Ｎ］は、タイプ番号で指定される種類（タイプ）毎の数を計数する。レジスタｉＣＭＴｙｐｅＣｏｓｔ［１］〜［Ｎ］には、タイプ番号で指定される種類（タイプ）毎の難易度（コスト）が記憶される。種類（タイプ）毎の難易度（コスト）は、経験的に得られる数値情報である。レジスタｃｍｔｙｐｅｎは、種類（タイプ）の数を一時記憶する。
【００１６】
再び図１を参照して実施形態の構成について説明を進める。図１において、鍵盤１３は、演奏操作（押離鍵操作）に応じたキーオン／キーオフイベント、鍵番号およびベロシティ等を含む演奏情報を発生する。操作部１４は、装置パネルに配設される各種操作スイッチを有し、ユーザ操作されるスイッチ種に対応したスイッチイベントを発生する。操作部１４に配設される主要なスイッチとしては、例えばパワーオンオフする電源スイッチの他、電子楽器１００の動作モードを楽器機能モード又は難易度評価機能モードの何れかに切り替えるモード切り替えスイッチ、楽曲データを選択する曲選択スイッチや、動作終了を指示する終了スイッチ等がある。
【００１７】
表示部１５は、例えば動作モードが難易度評価機能モードであれば、ＣＰＵ１０から供給される表示制御信号に応じて、難易度評価される楽曲データを楽譜表示したり、難易度の評価結果を表示したりする。音源１６は、周知の波形メモリ読み出し方式によって構成され、鍵盤１３から供給される演奏情報に基づきＣＰＵ１０が生成する演奏データに応じた楽音データを発生する。サウンドシステム１７は、音源１６から出力される楽音データをアナログ形式の楽音信号に変換した後、その楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカより発音させる。
【００１８】
Ｂ．動作
次に、図３〜図９を参照して上記構成による電子楽器１００の動作を説明する。以下では、電子楽器１００の動作モードが難易度評価機能モードである場合に、ＣＰＵ１０が実行するメインルーチン、該当メインルーチンからコールされる難易度評価処理および当該難易度評価処理からコールされるコスト判定処理の各動作について述べる。
【００１９】
（１）メインルーチンの動作
図３は、メインルーチンの動作を示すフローチャートである。メインルーチンは、モード切り替えスイッチにより電子楽器１００の動作モードを難易度評価機能モードに切り替えた場合に実行される。動作モードが難易度評価機能モードに切り替えられると、ＣＰＵ１０は、図３に図示するメインルーチンを実行してステップＳＡ１に処理を進め、楽器各部を初期化するイニシャライズを行う。イニシャライズが完了すると、ＣＰＵ１０はステップＳＡ２に進み、終了スイッチによる終了操作の有無を判断する。終了操作が為されなければ、判断結果は「ＮＯ」になり、ステップＳＡ３に進む。
【００２０】
ステップＳＡ３では、ＲＯＭ１１のデータエリアに記憶される複数曲の楽曲データの中から曲選択スイッチ操作により選択された楽曲データを読み出してＲＡＭ１２の楽曲データエリアＭＥにストアするデータ入力処理を実行する。次いで、ステップＳＡ４では、ＲＡＭ１２の楽曲データエリアＭＥにストアされた楽曲データに基づき難易度評価処理を実行する。
【００２１】
難易度評価処理では、後述するように、右手パートを主体とした場合と、左手パートを主体とした場合とに分け、各場合毎に楽曲データ中の評価対象となる音符データ（レジスタｍｅの音符データ）を更新する都度、難易度（コスト）の種類（タイプ）の判別に用いる４つの音符データ（レジスタｍｅ、レジスタｎｅｘｔ、レジスタｏｔｈｅｒおよびレジスタｄｉａｇｏｎａｌにストアされる各音符データ）を楽曲データ中から検索し、該当する４つの音符データに含まれる指番号Ｆｉｇに基づいて両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を判定し、その種類（タイプ）の数を累算する動作を、楽曲データ中の全ての音符データを評価の対象にし終えるまで繰り返して楽曲データ中に存在する難易度（コスト）の種類（タイプ）毎の数を得る。そして、種類（タイプ）毎の難易度（コスト）を予め記憶したレジスタｉＣＭＴｙｐｅＣｏｓｔ［１］〜［Ｎ］の中から楽曲データ中に存在する種類（タイプ）毎の難易度（コスト）を読み出して加算することで累算コストｉＣＭＣｏｓｔ（両手を使った鍵盤演奏の難易度）を取得する。
【００２２】
この後、上述のステップＳＡ２に処理を戻し、以後、終了操作が為されるまで上述したステップＳＡ２〜ＳＡ９を繰り返し実行する。そして、終了操作が為されると、上記ステップＳＡ２の判断結果が「ＹＥＳ」になり、本処理を終える。
【００２３】
（２）難易度評価処理の動作
次に、図４〜図５を参照して難易度評価処理の動作を説明する。上述したメインルーチンのステップＳＡ４（図３参照）を介して本処理が実行されると、ＣＰＵ１０は図４に図示するステップＳＢ１に処理を進め、ポインタｉをゼロリセットし、続くステップＳＢ２では、ポインタｉが「２」より小さいか否か、つまり右手パートを主体とした難易度（コスト）の種類（タイプ）の判別および左手パートを主体とした難易度（コスト）の種類（タイプ）の判別の双方を終えたかどうかを判断する。
【００２４】
右手パートを主体とした難易度（コスト）の種類（タイプ）の判別および左手パートを主体とした難易度（コスト）の種類（タイプ）の判別の双方を終えていなければ、上記ステップＳＢ２の判断結果は「ＹＥＳ」になり、ステップＳＢ３に進む。ステップＳＢ３では、ポインタｉが「０」であるか否か判断する。ポインタｉが「０」ならば、判断結果は「ＹＥＳ」となり、ステップＳＢ４に進む。ステップＳＢ４では、右手パートを主体とした難易度（コスト）の種類（タイプ）の判別を進める為、右手パートを指定するパート情報ｉＲＨをインデックスｔｒにセットすると共に、左手パートを指定するパート情報ｉＬＨをインデックスｏｔｒにセットした後、ステップＳＢ６に進む。
【００２５】
そして、ステップＳＢ６では、最初に評価の対象となる音符データとして、インデックスｔｒで指定される右手パートの先頭ノートの音符データをレジスタｍｅにストアする。続いて、ステップＳＢ７では、楽曲データ中の全ての音符データを評価の対象にし終えたかどうかを判断する。全ての音符データを評価の対象にし終えていなければ、ここでの判断結果は「ＮＯ」になり、ステップＳＢ８に進む。ステップＳＢ８では、レジスタｍｅにストアされた音符データの次に発音する音符データを楽曲データ中から検索してレジスタｎｅｘｔにストアする。
【００２６】
次いで、ステップＳＢ９では、レジスタｍｅにストアされた音符データと同一の発音タイミングであって、インデックスｏｔｒで指定されるパートの音符データを楽曲データ中から検索してレジスタｏｔｈｅｒにストアする。例えばポインタｉが「０」の場合には、レジスタｍｅにストアされた音符データと同一の発音タイミングであって、インデックスｏｔｒで指定される左手パートの音符データがレジスタｏｔｈｅｒにストアされる。
【００２７】
続いて、ステップＳＢ１０では、レジスタｏｔｈｅｒにストアされた音符データと同じパートで次に発音する音符データを楽曲データ中から検索してレジスタｄｉａｇｏｎａｌにストアする。なお、上記ステップＳＢ８〜ＳＢ１０において、楽曲データ中に該当する音符データが存在しない場合には、例えば該当音無しを意味するヌルデータを対応するレジスタにストアする。
【００２８】
さて、こうして難易度（コスト）の種類（タイプ）の判別に用いる４つの音符データがレジスタｍｅ、ｎｅｘｔ、ｏｔｈｅｒおよびｄｉａｇｏｎａｌにストアされると、ステップＳＢ１１を介してコスト判定処理を実行する。コスト判定処理では、後述するように、レジスタｍｅ、ｎｅｘｔ、ｏｔｈｅｒおよびｄｉａｇｏｎａｌにストアされた音符データが和音を構成する場合と、和音を構成しない場合と分け、各場合毎に４音の音符データに各々含まれる指番号Ｆｉｇに基づき両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号を判定する他、上記４音の中から１音が欠落した場合や、２音が欠落した場合における難易度（コスト）の種類（タイプ）を表すタイプ番号を判定し、さらに３音が欠落して両手を使った鍵盤演奏が成立しない場合には、タイプ番号として難易度（コスト）が存在しない旨を表す「０」を判定する。
【００２９】
上記ステップＳＢ１１のコスト判定処理によって、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号がレジスタｉＣＭＴｙｐｅにストアされると、ステップＳＢ１２に進み、そのレジスタｉＣＭＴｙｐｅの値（タイプ番号）が「０」より大きいか否かを判断する。レジスタｉＣＭＴｙｐｅの値（タイプ番号）が「０」より大きい場合、つまり両手を使った鍵盤演奏の難易度（コスト）が存在すると、上記ステップＳＢ１２の判断結果は「ＹＥＳ」になり、ステップＳＢ１３に進み、レジスタｉＣＭＴｙｐｅの値（タイプ番号）に対応するカウンタｉＣＭＴｙｐｅＣｎｔ［ｉＣＭＴｙｐｅ］をインクリメントした後、ステップＳＢ１４に進む。これによりレジスタｉＣＭＴｙｐｅの値（タイプ番号）で識別される難易度（コスト）の種類（タイプ）の数がカウントされる。
【００３０】
一方、レジスタｉＣＭＴｙｐｅの値（タイプ番号）が「０」の場合、つまり両手を使った鍵盤演奏が成立せず難易度（コスト）が存在しなければ、上記ステップＳＢ１２の判断結果は「ＮＯ」になり、ステップＳＢ１４に進み、レジスタｍｅの音符データの次に発音する音符データを当該レジスタｍｅにストアして更新した後、上述のステップＳＢ７に処理を戻す。
【００３１】
以後、ステップＳＢ７〜ＳＢ１４では、評価対象となる音符データ（レジスタｍｅの音符データ）を更新する毎に、難易度（コスト）の種類（タイプ）の判別に用いる４つの音符データ（レジスタｍｅ、レジスタｎｅｘｔ、レジスタｏｔｈｅｒおよびレジスタｄｉａｇｏｎａｌにストアされる各音符データ）を楽曲データ中から検索し、該当する音符データに基づき両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を判定し、その種類（タイプ）の数を累算する動作を繰り返す。
【００３２】
そして、楽曲データ中の全ての音符データを評価の対象にし終えると、上述したステップＳＢ７の判断結果が「ＹＥＳ」になり、ステップＳＢ１５に進み、ポインタｉをインクリメントして歩進させた後、上述のステップＳＢ２に処理を戻す。この場合、右手パートを主体とした難易度（コスト）の種類（タイプ）の判別を終えただけなので、ポインタｉは「２」より小さく、従ってステップＳＢ２の判断結果は「ＹＥＳ」になり、ステップＳＢ３に進む。
【００３３】
ステップＳＢ３では、ポインタｉの歩進に応じて、判断結果が「ＮＯ」になり、ステップＳＢ５に進み、左手パートを主体とした難易度（コスト）の種類（タイプ）の判別を進めるべく、左手パートを指定するパート情報ｉＬＨをインデックスｔｒにセットすると共に、右手パートを指定するパート情報ｉＲＨをインデックスｏｔｒにセットした後、ステップＳＢ６に進む。
【００３４】
ステップＳＢ６以降では、前述した右手パートを主体とした難易度（コスト）の種類（タイプ）の判別と同様、左手パートを主体とした難易度（コスト）の種類（タイプ）の判別を進める。すなわち、評価対象となる音符データ（レジスタｍｅの音符データ）を更新する毎に、難易度（コスト）の種類（タイプ）の判別に用いる４つの音符データ（レジスタｍｅ、レジスタｎｅｘｔ、レジスタｏｔｈｅｒおよびレジスタｄｉａｇｏｎａｌにストアされる各音符データ）を楽曲データ中から検索し、該当する音符データに基づき両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を判定し、その種類（タイプ）の数を累算する動作を繰り返す。
【００３５】
左手パートを主体とした難易度（コスト）の種類（タイプ）の判別が完了し、楽曲データ中の全ての音符データを評価の対象にし終えると、前述したステップＳＢ７の判断結果が「ＹＥＳ」になり、ステップＳＢ１５に進み、ポインタｉをインクリメントして歩進させた後、上述のステップＳＢ２に処理を戻す。この場合、歩進されたポインタｉが「２」となる為、ステップＳＢ２の判断結果は「ＮＯ」になり、図５に図示するステップＳＢ１６に進む。
【００３６】
ステップＳＢ１６では、ポインタｉをゼロリセットし、続くステップＳＢ１７では、ポインタｉがレジスタｃｍｔｙｐｅｎに格納される種類（タイプ）の数より小さいか否かを判断する。なお、本実施形態では、種類（タイプ）の数を「１４（種）」としている。そして、ポインタｉがレジスタｃｍｔｙｐｅｎに格納される種類（タイプ）の数より小さければ、上記ステップＳＢ１７の判断結果は「ＹＥＳ」となり、ステップＳＢ１８に進む。
【００３７】
ステップＳＢ１８では、ポインタｉをタイプ番号として指定するカウンタｉＣＭＴｙｐｅＣｎｔ［ｉ］の値、すなわちポインタｉで指定される難易度（コスト）の種類（タイプ）の数が「０」より大きいか否かを判断する。難易度（コスト）の種類（タイプ）の数が「０」以下、つまり両手を使った鍵盤演奏が成立せず難易度（コスト）が存在しない場合には、判断結果が「ＮＯ」になり、ステップＳＢ２０に進み、ポインタｉをインクリメントして歩進させた後、上述のステップＳＢ１７に処理を戻す。
【００３８】
一方、ポインタｉで指定される難易度（コスト）の種類（タイプ）の数が「０」より大きく、難易度（コスト）が存在する場合には、上記ステップＳＢ１８の判断結果が「ＹＥＳ」になり、ステップＳＢ１９に進む。ステップＳＢ１９では、ポインタｉで指定される種類（タイプ）の難易度（コスト）をレジスタｉＣＭＴｙｐｅＣｏｓｔ［ｉ］から読み出してレジスタｉＣＭＣｏｓｔに加算する。そして、ステップＳＢ２０に進み、ポインタｉをインクリメントして歩進させた後、上述のステップＳＢ１７に処理を戻す。
【００３９】
以後、歩進されるポインタｉ（タイプ番号）がレジスタｃｍｔｙｐｅｎに格納される種類（タイプ）の数を超えるまでの間、上述したステップＳＢ１７〜ＳＢ２０を繰り返し、これによりポインタｉ（タイプ番号）に応じてレジスタｉＣＭＴｙｐｅＣｏｓｔ［ｉ］から読み出され、楽曲データ中に存在する種類（タイプ）毎の難易度（コスト）をレジスタｉＣＭＣｏｓｔに加算し、曲を両手で弾く難易度に相当する累算コストｉＣＭＣｏｓｔを取得する。
【００４０】
以上のように、難易度評価処理では、右手パートを主体とした場合と、左手パートを主体とした場合とに分け、各場合毎に楽曲データ中の評価対象となる音符データ（レジスタｍｅの音符データ）を更新する都度、難易度（コスト）の種類（タイプ）の判別に用いる４つの音符データ（レジスタｍｅ、レジスタｎｅｘｔ、レジスタｏｔｈｅｒおよびレジスタｄｉａｇｏｎａｌにストアされる各音符データ）を楽曲データ中から検索し、該当する４つの音符データに含まれる指番号Ｆｉｇに基づいて両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を判定し、その種類（タイプ）の数を累算する動作を、楽曲データ中の全ての音符データを評価の対象にし終えるまで繰り返すことによって、楽曲データ中に存在する難易度（コスト）の種類（タイプ）毎の数を得る。
【００４１】
そして、種類（タイプ）毎の難易度（コスト）を予め記憶したレジスタｉＣＭＴｙｐｅＣｏｓｔ［１］〜［Ｎ］の中から楽曲データ中に存在する種類（タイプ）毎の難易度（コスト）を読み出して加算することで累算コストｉＣＭＣｏｓｔを取得する。累算コストｉＣＭＣｏｓｔは、楽曲データで表される曲を両手を使って鍵盤演奏する際の難易度に相当するので、両手を使った鍵盤演奏の難易度を評価することが可能になる。
【００４２】
（３）コスト判定処理の動作
次に、図６〜図８を参照してコスト判定処理の動作を説明する。上述した難易度評価処理のステップＳＢ１１（図４参照）を介して本処理が実行されると、ＣＰＵ１０は図６に図示するステップＳＣ１に処理を進める。ステップＳＣ１では、レジスタｍｅの音符データ中の指番号Ｆｉｇをレジスタｆ０にストアし、レジスタｎｅｘｔの音符データ中の指番号Ｆｉｇをレジスタｆｎにストアする。また、レジスタｏｔｈｅｒの音符データ中の指番号Ｆｉｇをレジスタｆｏにストアし、レジスタｄｉａｇｏｎａｌの音符データ中の指番号Ｆｉｇをレジスタｆｄにストアする。さらに、レジスタｏｔｈｅｒの音符データ中の指番号Ｆｉｇの換算値（小指側から数え直した指番号６−ｆｏ）をレジスタｆｏ２にストアし、レジスタｄｉａｇｏｎａｌの音符データ中の指番号Ｆｉｇの換算値（小指側から数え直した指番号６−ｆｄ）をレジスタｆｄ２にストアする。
【００４３】
続いて、ステップＳＣ２では、レジスタｍｅ、ｎｅｘｔ、ｏｔｈｅｒおよびｄｉａｇｏｎａｌの全てについて欠落無く音符データがストアされているか否かを判断する。以下、「欠落の無い場合」、「１つ欠落した場合」、「２つ欠落した場合」および「３つ以上欠落した場合」に分けて動作説明を進める。
【００４４】
ａ．欠落の無い場合
レジスタｍｅ、ｎｅｘｔ、ｏｔｈｅｒおよびｄｉａｇｏｎａｌの全てについて欠落無く音符データがストアされていると、上記ステップＳＣ２の判断結果は「ＹＥＳ」となり、図７に図示するステップＳＣ３に進む。ステップＳＣ３では、和音の有無を判断する。すなわち、レジスタｍｅ、ｎｅｘｔ、ｏｔｈｅｒおよびｄｉａｇｏｎａｌに格納される音符データが和音を構成する音高関係にあるかどうかを判断する。以下、和音を構成しない場合と、和音を構成する場合とに分けて動作説明を進める。
【００４５】
ａ−１．和音を構成しない場合
和音を構成しない場合には、上記ステップＳＣ３の判断結果が「ＹＥＳ」になり、ステップＳＣ４に進む。ステップＳＣ４では、レジスタｆ０にストアされたレジスタｍｅの音符データ中の指番号Ｆｉｇと、レジスタｆｏにストアされたレジスタｏｔｈｅｒの音符データ中の指番号Ｆｉｇとが一致し、かつレジスタｆｎにストアされたレジスタｎｅｘｔの音符データ中の指番号Ｆｉｇと、レジスタｆｄにストアされたレジスタｄｉａｇｏｎａｌの音符データ中の指番号Ｆｉｇとが一致するか否かを判断する。
【００４６】
ここで、レジスタｍｅの音符データを評価対象となる第１音ｍｅ、レジスタｏｔｈｅｒの音符データを第１音ｍｅと同じ発音タイミングで反対パートの第２音ｏｔｈｅｒ、レジスタｎｅｘｔの音符データを第１音ｍｅの次に発音タイミングとなる第３音ｎｅｘｔ、レジスタｄｉａｇｏｎａｌの音符データを第１音ｍｅと同じ発音タイミングで反対のパートの第２音ｏｔｈｅｒの次に発音タイミングとなる第４音ｄｉａｇｏｎａｌと言い換える。
【００４７】
そうすると、上記ステップＳＣ４が意味するところは、第１音ｍｅおよび第２音ｏｔｈｅｒを左右両手の同じ指で弾き、次に第３音ｎｅｘｔおよび第４音ｄｉａｇｏｎａｌを左右両手の同じ指で弾く運指パターンであるかどうかを判別することになる。この運指パターンに該当すると、上記ステップＳＣ４の判断結果が「ＹＥＳ」になり、ステップＳＣ５に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「１」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００４８】
一方、第１音ｍｅおよび第２音ｏｔｈｅｒを左右両手の同じ指で弾き、次に第３音ｎｅｘｔおよび第４音ｄｉａｇｏｎａｌを左右両手の同じ指で弾く運指パターンに該当しなければ、上記ステップＳＣ４の判断結果は「ＮＯ」になり、ステップＳＣ６に進む。
【００４９】
ステップＳＣ６では、５通りの指使い（「一方の手の親指および他方の手の小指」、「一方の手の人差し指および他方の手の薬指」、「一方の手の中指および他方の手の中指」、「一方の手の薬指および他方の手の人差し指」、「一方の手の小指および他方の手の親指」）の何れかで第１音ｍｅおよび第２音ｏｔｈｅｒを弾き、次に上記５通りの指使いの何れかで第３音ｎｅｘｔおよび第４音ｄｉａｇｏｎａｌを弾く運指パターンであるかどうかを判別する。
【００５０】
そして、この運指パターンに該当すると、上記ステップＳＣ６の判断結果が「ＹＥＳ」になり、ステップＳＣ７に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「２」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００５１】
これに対し、上記の運指パターンに該当しなければ、上記ステップＳＣ６の判断結果は「ＮＯ」になり、ステップＳＣ８に進む。ステップＳＣ８では、レジスタｆｎにストアされたレジスタｎｅｘｔの音符データ中の指番号Ｆｉｇからレジスタｆ０にストアされたレジスタｍｅの音符データ中の指番号Ｆｉｇを減算した値（ｆｎ−ｆ０）と、レジスタｆｄにストアされたレジスタｄｉａｇｏｎａｌの音符データ中の指番号Ｆｉｇからレジスタｆｏにストアされたレジスタｏｔｈｅｒの音符データ中の指番号Ｆｉｇを減算した値（ｆｄ−ｆｏ）との差分を算出してレジスタａにストアする。
【００５２】
ここで、ｆｎ−ｆ０は一方の手で第１音ｍｅを弾く指と第３音ｎｅｘｔを弾く指との離れ具合（指の数）となり、ｆｄ−ｆｏは他方の手で第２音ｏｔｈｅｒを弾く指と第４音ｄｉａｇｏｎａｌを弾く指との離れ具合（指の数）となる。したがって、レジスタａには、一方の手で弾く指の離れ具合（指の数）と他方の手で弾く指の離れ具合（指の数）との差分値、換言すれば両手の指使いの左右対称性を表す値がストアされる。つまり、両手の指使いが左右対称であれば、一方の手で弾く指の離れ具合（指の数）と他方の手で弾く指の離れ具合（指の数）との差分値は「０」となり、両手の指使いが左右非対称になるほど差分値は増加（最大値は「３」）する。
【００５３】
続いて、ステップＳＣ９では、レジスタａにストアされた差分値（両手の指使いの左右対称性を表す値）が「０」であるか否かを判断する。差分値が「０」であれば、判断結果は「ＹＥＳ」になり、ステップＳＣ１０に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「３」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００５４】
一方、レジスタａにストアされた差分値が「０」でなければ、上記ステップＳＣ９の判断結果は「ＮＯ」になり、ステップＳＣ１１に進み、レジスタａにストアされた差分値（両手の指使いの左右対称性を表す値）が「１」であるか否かを判断する。差分値が「１」ならば、判断結果は「ＹＥＳ」になり、ステップＳＣ１２に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「４」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００５５】
これに対し、レジスタａにストアされた差分値が「１」でなければ、上記ステップＳＣ１１の判断結果は「ＮＯ」になり、ステップＳＣ１３に進み、レジスタａにストアされた差分値（両手の指使いの左右対称性を表す値）が「２」であるか否かを判断する。差分値が「２」であると、判断結果は「ＹＥＳ」になり、ステップＳＣ１４に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「５」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００５６】
一方、レジスタａにストアされた差分値が「２」でなければ、上記ステップＳＣ１３の判断結果は「ＮＯ」になり、ステップＳＣ１５に進み、レジスタａにストアされた差分値（両手の指使いの左右対称性を表す値）が「３」であるか否かを判断する。レジスタａにストアされた差分値（両手の指使いの左右対称性を表す値）が「３」でない場合、つまり両手の指使いが成立しない状況ならば、判断結果は「ＮＯ」になり、難易度（コスト）の種類（タイプ）を判定せずに本処理を終えるが、差分値が「３」であると、上記ステップＳＣ１５の判断結果は「ＹＥＳ」になり、ステップＳＣ１６に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「６」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００５７】
ａ−２．和音を構成する場合
和音を構成する場合には、前述したステップＳＣ３の判断結果が「ＮＯ」になり、図８に図示するステップＳＣ１７に進む。ステップＳＣ１７では、前述したステップＳＣ４（図７参照）と同様、第１音ｍｅおよび第２音ｏｔｈｅｒを左右両手の同じ指で弾き、次に第３音ｎｅｘｔおよび第４音ｄｉａｇｏｎａｌを左右両手の同じ指で弾く運指パターンであるかどうかを判別する。この運指パターンに該当すると、判断結果は「ＹＥＳ」になり、ステップＳＣ１８に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「８」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００５８】
一方、第１音ｍｅおよび第２音ｏｔｈｅｒを左右両手の同じ指で弾き、次に第３音ｎｅｘｔおよび第４音ｄｉａｇｏｎａｌを左右両手の同じ指で弾く運指パターンに該当しなければ、上記ステップＳＣ１７の判断結果は「ＮＯ」になり、ステップＳＣ１９に進む。
【００５９】
ステップＳＣ１９では、５通りの指使い（「一方の手の親指および他方の手の小指」、「一方の手の人差し指および他方の手の薬指」、「一方の手の中指および他方の手の中指」、「一方の手の薬指および他方の手の人差し指」、「一方の手の小指および他方の手の親指」）の何れかで第１音ｍｅおよび第２音ｏｔｈｅｒを弾き、次に上記５通りの指使いの何れかで第３音ｎｅｘｔおよび第４音ｄｉａｇｏｎａｌを弾く運指パターンであるかどうかを判別する。
【００６０】
そして、この運指パターンに該当すると、上記ステップＳＣ１９の判断結果が「ＹＥＳ」になり、ステップＳＣ２０に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「９」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００６１】
これに対し、上記の運指パターンに該当しなければ、上記ステップＳＣ１９の判断結果は「ＮＯ」になり、ステップＳＣ２１に進む。ステップＳＣ２１では、前述したステップＳＣ８（図７参照）と同様、一方の手で弾く指の離れ具合（指の数）ｆｎ−ｆ０と他方の手で弾く指の離れ具合（指の数）ｆｄ−ｆｏとの差分値、すなわち両手の指使いの左右対称性を表す値をレジスタａにストアする。
【００６２】
続いて、ステップＳＣ２２では、レジスタａにストアされた差分値（両手の指使いの左右対称性を表す値）が「０」であるか否かを判断する。差分値が「０」であれば、判断結果は「ＹＥＳ」になり、ステップＳＣ２３に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「１０」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００６３】
一方、レジスタａにストアされた差分値が「０」でなければ、上記ステップＳＣ２２の判断結果は「ＮＯ」になり、ステップＳＣ２４に進み、レジスタａにストアされた差分値（両手の指使いの左右対称性を表す値）が「１」であるか否かを判断する。差分値が「１」ならば、判断結果は「ＹＥＳ」になり、ステップＳＣ２５に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「１１」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００６４】
これに対し、レジスタａにストアされた差分値が「１」でなければ、上記ステップＳＣ２４の判断結果は「ＮＯ」になり、ステップＳＣ２６に進み、レジスタａにストアされた差分値（両手の指使いの左右対称性を表す値）が「２」であるか否かを判断する。差分値が「２」であると、判断結果は「ＹＥＳ」になり、ステップＳＣ２７に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「１２」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００６５】
一方、レジスタａにストアされた差分値が「２」でなければ、上記ステップＳＣ２６の判断結果は「ＮＯ」になり、ステップＳＣ２８に進み、レジスタａにストアされた差分値（両手の指使いの左右対称性を表す値）が「３」であるか否かを判断する。レジスタａにストアされた差分値（両手の指使いの左右対称性を表す値）が「３」でない場合、つまり両手の指使いが成立しない状況ならば、判断結果は「ＮＯ」になり、難易度（コスト）の種類（タイプ）を判定せずに本処理を終えるが、差分値が「３」であると、上記ステップＳＣ２８の判断結果は「ＹＥＳ」になり、ステップＳＣ２９に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「１３」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００６６】
ｂ．１つが欠落した場合
レジスタｍｅ、ｎｅｘｔ、ｏｔｈｅｒおよびｄｉａｇｏｎａｌの内、１つの音符データが欠落していると、ステップＳＣ３０（図６参照）の判断結果が「ＹＥＳ」となり、ステップＳＣ３１に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「１５」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００６７】
ｃ．２つが欠落した場合
レジスタｍｅ、ｎｅｘｔ、ｏｔｈｅｒおよびｄｉａｇｏｎａｌの内、２つの音符データが欠落していると、ステップＳＣ３２の判断結果が「ＹＥＳ」となり、ステップＳＣ３３に進み、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「１９」をレジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００６８】
ｄ．３つ以上欠落した場合
レジスタｍｅ、ｎｅｘｔ、ｏｔｈｅｒおよびｄｉａｇｏｎａｌの内、３つ以上の音符データが欠落していると、上記ステップＳＣ３２の判断結果が「ＮＯ」となり、ステップＳＣ３４に進み、両手を使った鍵盤演奏が成立せず難易度（コスト）が存在しない旨を表す「０」を、レジスタｉＣＭＴｙｐｅにストアして本処理を終える。
【００６９】
以上のように、評価対象となる第１音ｍｅ、第１音ｍｅと同じ発音タイミングで反対パートの第２音ｏｔｈｅｒ、第１音ｍｅの次に発音タイミングとなる第３音ｎｅｘｔおよび第１音ｍｅと同じ発音タイミングで反対のパートの第２音ｏｔｈｅｒの次に発音タイミングとなる第４音ｄｉａｇｏｎａｌが前述の難易度評価処理によって楽曲データ中から検索されると、コスト判定処理では、それら４音が和音を構成する場合と和音を構成しない場合と分け、各場合毎に４音の音符データに各々含まれる指番号Ｆｉｇに基づき両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号を判定する他、上記４音の中から１音が欠落した場合や、２音が欠落した場合における難易度（コスト）の種類（タイプ）を表すタイプ番号を判定し、さらに３音が欠落して両手を使った鍵盤演奏が成立しない場合には、タイプ番号として難易度（コスト）が存在しない旨を表す「０」を判定する。
【００７０】
Ｃ．具体的な動作例
次に、図９を参照して難易度評価処理の具体的な動作例を説明する。図９（ａ）は、右手パートおよび左手パートからなる楽曲データの一部を楽譜表示した一例、同図（ｂ）は当該楽曲データの一部を左右両手で弾く場合の運指を示す。なお、図９（ａ）の楽譜において音符近傍に図示される数値は指番号Ｆｉｇを示す。
【００７１】
図９に図示する楽譜において、右手パートの１小節目第２音（Ｃ５音）を、評価対象となる第１音ｍｅとした場合、難易度評価処理のステップＳＢ８（図４参照）により、右手パートの２小節目第１音（Ｇ５音）が第３音ｎｅｘｔとなり、難易度評価処理のステップＳＢ９により、左手パートの１小節目第２音（Ｃ４音）が第２音ｏｔｈｅｒとなり、難易度評価処理のステップＳＢ１０により、左手パートの２小節目第１音（Ｅ４音）が第４音ｄｉａｇｏｎａｌとなる。
【００７２】
そして、難易度評価処理のステップＳＢ１１を介してコスト判定処理が実行されると、この場合、右手で第１音ｍｅを弾く親指「１」と第３音ｎｅｘｔを弾く薬指「４」との離れ具合（指の数）ｆｎ−ｆ０が「３」、左手で第２音ｏｔｈｅｒを弾く親指「１」と第４音ｄｉａｇｏｎａｌを弾く人差し指「２」との離れ具合（指の数）ｆｄ−ｆｏが「１」となるので、両手の指使いの左右対称性を表す値としてレジスタａに「２」がストアされる結果、コスト判定処理のステップＳＣ１４（図７参照）により、両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を表すタイプ番号「５」がレジスタｉＣＭＴｙｐｅにストアされる。
【００７３】
以後、同様に右手パートを主体として、評価対象となる音符データ（レジスタｍｅの音符データ）を更新する毎に、難易度（コスト）の種類（タイプ）の判別に用いる４つの音符データ（レジスタｍｅ、レジスタｎｅｘｔ、レジスタｏｔｈｅｒおよびレジスタｄｉａｇｏｎａｌにストアされる各音符データ）を楽曲データ中から検索し、該当する音符データに基づき両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を判定し、その種類（タイプ）の数を累算する動作を、楽曲データ中の右手パートの全ての音符データを評価対象として読み出し終えるまで繰り返す。
【００７４】
そして、右手パートを主体とした難易度（コスト）の種類（タイプ）の判別を終えると、次に左手パートを主体として同様の難易度（コスト）の種類（タイプ）の判別を行い、楽曲データ中に存在する難易度（コスト）の種類（タイプ）毎の数を得る。そして、種類（タイプ）毎の難易度（コスト）を予め記憶したレジスタｉＣＭＴｙｐｅＣｏｓｔ［１］〜［Ｎ］の中から楽曲データ中に存在する種類（タイプ）毎の難易度（コスト）を読み出して加算し、曲を両手で弾く難易度に相当する累算コストｉＣＭＣｏｓｔを取得する。
【００７５】
以上説明したように、本実施形態では、評価対象となる第１音ｍｅ、第１音ｍｅと同じ発音タイミングで反対パートの第２音ｏｔｈｅｒ、第１音ｍｅの次に発音タイミングとなる第３音ｎｅｘｔおよび第１音ｍｅと同じ発音タイミングで反対のパートの第２音ｏｔｈｅｒの次に発音タイミングとなる第４音ｄｉａｇｏｎａｌの各音符データを楽曲データ中から検索し、該当する４つの音符データに含まれる指番号Ｆｉｇに基づいて両手を使った鍵盤演奏の難易度（コスト）の種類（タイプ）を判定し、その種類（タイプ）の数を累算する動作を、楽曲データ中の全ての音符データを評価の対象にし終えるまで繰り返して楽曲データ中に存在する難易度（コスト）の種類（タイプ）毎の数を得る。そして、種類（タイプ）毎の難易度（コスト）を予め記憶したレジスタｉＣＭＴｙｐｅＣｏｓｔ［１］〜［Ｎ］の中から楽曲データ中に存在する種類（タイプ）毎の難易度（コスト）を読み出して加算し、曲を両手で弾く難易度に相当する累算コストｉＣＭＣｏｓｔを取得するので、両手を使った鍵盤演奏の難易度を評価することができる。
【００７６】
なお、上述した実施形態では、楽曲データ中に存在する種類（タイプ）毎の難易度（コスト）を累算して難易度を評価する態様としたが、これに加えて、楽曲データ中に存在する難易度（コスト）の種類（タイプ）毎の数に応じて、その種類（タイプ）に対応する難易度（コスト）を重み付けしてから累算することも可能である。
【００７７】
また、本実施形態では、ユーザの演奏技量を考慮した難易度評価を行っていないが、例えば「右手小指を動かし難い」、「左手薬指での押鍵が苦手」、「手が小さく所定音高差以上の２音を同時押鍵できない」等のユーザ個別の演奏技能を加味すべく、両手を使った鍵盤演奏において特定の運指が為される場合の難易度（コスト）を調整する態様とすることも可能であり、このようにすることでユーザの演奏技量にマッチした難易度評価を具現出来る。
【００７８】
加えて、上述した実施形態では、評価対象となる第１音ｍｅ、第１音ｍｅと同じ発音タイミングで反対パートの第２音ｏｔｈｅｒ、第１音ｍｅの次に発音タイミングとなる第３音ｎｅｘｔおよび第１音ｍｅと同じ発音タイミングで反対のパートの第２音ｏｔｈｅｒの次に発音タイミングとなる第４音ｄｉａｇｏｎａｌを弾く指の組み合わせで難易度（コスト）を評価できるものと仮定しているが、これに限らず４音以上弾く指の組み合わせで難易度（コスト）を評価する態様も当然可能であることは言うまでもない。
【００７９】
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
【００８０】
（付記）
［請求項１］
曲を構成する音符夫々を演奏するに必要な指を表す指番号および当該音符の演奏パートを識別するパートデータを含む音符データの中から、当該音符データに含まれるパートデータに基づいて所定の関係にある第１乃至第４の音符データを検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で演奏する場合の難易度のタイプを判定するタイプ判定手段と、
前記タイプ判定手段により判定されたタイプ毎の難易度値を曲を両手で演奏する場合の難易度として取得する難易度取得手段と
を具備することを特徴とする演奏難易度評価装置。
【００８１】
［請求項２］
前記タイプ判定手段は、前記音符データに含まれるパートデータに基づいて所定の関係にある第１乃至第４の音符データを順次検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で演奏する場合の難易度のタイプを判定し、
前記難易度取得手段は、前記タイプ判定手段により判定されたタイプ毎の難易度値を順次累算し、曲を両手で演奏する場合の難易度を取得することを特徴とする請求項1記載の演奏難易度評価装置。
【００８２】
［請求項３］
前記タイプ判定手段は、評価対象となる第１音ｍｅ、第１音ｍｅと同じ発音タイミングで反対パートの第２音ｏｔｈｅｒ、第１音ｍｅの次に発音タイミングとなる第３音ｎｅｘｔおよび第１音ｍｅと同じ発音タイミングで反対のパートの第２音ｏｔｈｅｒの次に発音タイミングとなる第４音ｄｉａｇｏｎａｌの各音符データを前記第１乃至第４の音符データとして順次検索する検索手段を備えることを特徴とする請求項１記載の演奏難易度評価装置。
【００８３】
［請求項４］
前記タイプ判定手段は、
右手パートを主体として、評価対象となる第１の音符データを更新する毎に、難易度のタイプ判別に用いる第１乃至第４の音符データを順次検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で弾く難易度のタイプを判定する第１の判定手段と、
左手パートを主体として、評価対象となる第１の音符データを更新する毎に、難易度のタイプ判別に用いる第１乃至第４の音符データを順次検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で弾く難易度のタイプを判定する第２の判定手段と
を備えることを特徴とする請求項１記載の演奏難易度評価装置。
【００８４】
［請求項５］
前記第１および第２の判定手段は、第１乃至第４の音符データにそれぞれ含まれる指番号に基づき、一方の手で弾く指の離れ具合と他方の手で弾く指の離れ具合とで定まる両手の指使いの左右対称性に応じて両手で弾く難易度のタイプを判定することを特徴とする請求項４記載の演奏難易度評価装置。
【００８５】
［請求項６］
前記第１および第２の判定手段は、第１乃至第４の音符データが揃わない場合、欠落する音符データの数に応じて、両手で弾く難易度のタイプを判定することを特徴とする請求項４記載の演奏難易度評価装置。
【００８６】
［請求項７］
前記第１および第２の判定手段は、第１乃至第４の音符データが和音を構成するか否かを判別する和音判別手段を備え、和音を構成する場合と和音を構成しない場合と分けて難易度のタイプを判定することを特徴とする請求項４記載の演奏難易度評価装置。
【００８７】
［請求項８］
コンピュータに、
曲を構成する音符を演奏するに必要な指を表す指番号および当該音符の演奏パートを識別するパートデータを含む音符データの中から、当該音符データに含まれるパートデータに基づいて所定の関係にある第１乃至第４の音符データを順次検索し、該当する第１乃至第４の音符データにそれぞれ含まれる指番号に基づき両手で演奏する場合の難易度のタイプを判定するタイプ判定ステップと、
前記タイプ判定ステップで判定されたタイプ毎の難易度値を曲を両手で演奏する場合の難易度として取得する難易度取得ステップと
を実行させることを特徴とするプログラム。
【符号の説明】
【００８８】
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  鍵盤
１４  操作部
１５  表示部
１６  音源
１７  サウンドシステム
１００  電子楽器
【図１】
2014032244.tif 000003
【図２】
2014032244.tif 000004
【図３】
2014032244.tif 000005
【図４】
2014032244.tif 000006
【図５】
2014032244.tif 000007
【図６】
2014032244.tif 000008
【図７】
2014032244.tif 000009
【図８】
2014032244.tif 000010
【図９】
2014032244.tif 000011