(57)【要約】【課題】  曲中の指定範囲で複数の異なる運指を提示する運指候補表示装置を実現する。【解決手段】  各音毎に複数の運指候補を備えた曲中から開始音から終了音までの曲範囲を指定すると、その開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値ｉＣｏｓｔを累算して運指系列の評価値ｃｏｓｔｓを生成する。こうした運指系列の評価値ｃｏｓｔｓを複数の運指候補に対応して複数系列分求める。評価値ｃｏｓｔｓが生成される毎に前回の評価値ｃｏｓｔｓと比較し、より値が小さく弾き易い運指系列とその評価値ｃｏｓｔｓとをバッファＢｕｆ［ｋ］に保存し、全ての運指系列について評価し終えた時点でバッファＢｕｆ［ｋ］に保存された運指系列を表示する。【選択図】  図３
2006071674.tif 000002
【特許請求の範囲】
【請求項１】
各音毎に複数の運指候補を備えた曲中で開始音と終了音とを指定する範囲指定手段と、
前記範囲指定手段により指定された開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択手段と、
前記運指系列選択手段が選択する運指系列において、前記範囲指定手段により指定された開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価手段と、
前記運指系列評価手段が運指系列評価値を生成する毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶手段と、
前記記憶手段に記憶された運指系列を表示する表示手段と
を具備することを特徴とする運指候補表示装置。
【請求項２】
各音毎に複数の運指候補を備えた曲の内から任意の１音を指定する指定手段と、
前記指定手段により指定された音の前後で所定音数分の曲範囲を設定する曲範囲設定手段と、
前記曲範囲設定手段により設定された曲範囲の先頭および後端に各々対応する開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択手段と、
前記運指系列選択手段が選択する運指系列において、前記曲範囲設定手段により設定された曲範囲の先頭および後端に各々対応する開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価手段と、
前記運指系列評価手段が運指系列評価値を生成する毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶手段と、
前記記憶手段に記憶された運指系列を表示する表示手段と
を具備することを特徴とする運指候補表示装置。
【請求項３】
各音毎に複数の運指候補を備えた曲の内から任意の１音を指定する指定手段と、
前記指定手段により指定された音の前後で音高の高低が入れ替われる曲区間を検索する曲区間検索手段と、
前記曲区間検索手段により検索された曲区間の先頭および後端に各々対応する開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択手段と、
前記運指系列選択手段が選択する運指系列において、前記曲区間検索手段により検索された曲区間の先頭および後端に各々対応する開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価手段と、
前記運指系列評価手段が運指系列評価値を生成する毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶手段と、
前記記憶手段に記憶された運指系列を表示する表示手段と
を具備することを特徴とする運指候補表示装置。
【請求項４】
各音毎に複数の運指候補を備えた曲中で開始音と終了音とを指定する範囲指定処理と、
前記範囲指定処理にて指定された開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択処理と、
前記運指系列選択処理にて選択された運指系列において、前記範囲指定処理により指定された開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価処理と、
前記運指系列評価処理にて運指系列評価値が生成される毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶処理と、
前記記憶処理にて記憶された運指系列を表示する表示処理と
をコンピュータで実行させることを特徴とする運指候補表示処理プログラム。  
【請求項５】
各音毎に複数の運指候補を備えた曲の内から任意の１音を指定する指定処理と、
前記指定処理にて指定された音の前後で所定音数分の曲範囲を設定する曲範囲設定処理と、
前記曲範囲設定処理により設定された曲範囲の先頭および後端に各々対応する開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択処理と、
前記運指系列選択処理にて選択される運指系列において、前記曲範囲設定処理により設定された曲範囲の先頭および後端に各々対応する開始音から終了音までを評価対象音として変化させ、評価対象音とそ評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価処理と、
前記運指系列評価処理にて運指系列評価値が生成される毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶処理と、
前記記憶処理にて記憶された運指系列を表示する表示処理と
をコンピュータで実行させることを特徴とする運指候補表示処理プログラム。  
【請求項６】
各音毎に複数の運指候補を備えた曲の内から任意の１音を指定する指定処理と、
前記指定処理にて指定された音の前後で音高の高低が入れ替われる曲区間を検索する曲区間検索処理と、
前記曲区間検索処理にて検索された曲区間の先頭および後端に各々対応する開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択処理と、
前記運指系列選択処理にて選択される運指系列において、前記曲区間検索処理により検索された曲区間の先頭および後端に各々対応する開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価処理と、
前記運指系列評価処理にて運指系列評価値が生成される毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶処理と、
前記記憶処理にて記憶された運指系列を表示する表示処理と
をコンピュータで実行させることを特徴とする運指候補表示処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵盤を備えた電子楽器に用いて好適な運指候補表示装置および運指候補表示処理プログラムに関する。
【背景技術】
【０００２】
演奏者に弾くべき鍵の位置や鍵操作の指使い（運指）を案内する運指情報を発生する装置が知られている。例えば特許文献１には、隣り合う２つの音に対して鍵盤を操作したときの指使いの容易さを表す２音運指データをそれぞれの指の組合わせに対応付けて記憶しておき、その内から曲データ（与えられたメロディの音列）に対応する２音運指データを読み出し、読み出した２音運指データの累算値を最適にする運指を決定して運指情報を発生させる装置が開示されている。
【０００３】
【特許文献１】特許第２５２６９５４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記特許文献１に開示の装置では、曲から一義的に決る代表的な運指を発生させる為、曲中でユーザが指定する範囲について複数の異なる運指をユーザに提示することができない、という問題がある。
そこで本発明は、このような事情に鑑みてなされたもので、曲中の指定範囲で複数の異なる運指を提示することができる運指候補表示装置および運指候補表示処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、請求項１に記載の発明では、各音毎に複数の運指候補を備えた曲中で開始音と終了音とを指定する範囲指定手段と、前記範囲指定手段により指定された開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択手段と、前記運指系列選択手段が選択する運指系列において、前記範囲指定手段により指定された開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価手段と、前記運指系列評価手段が運指系列評価値を生成する毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶手段と、前記記憶手段に記憶された運指系列を表示する表示手段とを具備することを特徴とする。
【０００６】
請求項２に記載の発明では、各音毎に複数の運指候補を備えた曲の内から任意の１音を指定する指定手段と、前記指定手段により指定された音の前後で所定音数分の曲範囲を設定する曲範囲設定手段と、前記曲範囲設定手段により設定された曲範囲の先頭および後端に各々対応する開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択手段と、前記運指系列選択手段が選択する運指系列において、前記曲範囲設定手段により設定された曲範囲の先頭および後端に各々対応する開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価手段と、前記運指系列評価手段が運指系列評価値を生成する毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶手段と、前記記憶手段に記憶された運指系列を表示する表示手段とを具備することを特徴とする。
【０００７】
請求項３に記載の発明では、各音毎に複数の運指候補を備えた曲の内から任意の１音を指定する指定手段と、前記指定手段により指定された音の前後で音高の高低が入れ替われる曲区間を検索する曲区間検索手段と、前記曲区間検索手段により検索された曲区間の先頭および後端に各々対応する開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択手段と、前記運指系列選択手段が選択する運指系列において、前記曲区間検索手段により検索された曲区間の先頭および後端に各々対応する開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価手段と、前記運指系列評価手段が運指系列評価値を生成する毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶手段と、前記記憶手段に記憶された運指系列を表示する表示手段とを具備することを特徴とする。
【０００８】
請求項４に記載の発明では、各音毎に複数の運指候補を備えた曲中で開始音と終了音とを指定する範囲指定処理と、前記範囲指定処理にて指定された開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択処理と、前記運指系列選択処理にて選択された運指系列において、前記範囲指定処理により指定された開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価処理と、前記運指系列評価処理にて運指系列評価値が生成される毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶処理と、前記記憶処理にて記憶された運指系列を表示する表示処理とをコンピュータで実行させることを特徴とする。
【０００９】
請求項５に記載の発明では、各音毎に複数の運指候補を備えた曲の内から任意の１音を指定する指定処理と、前記指定処理にて指定された音の前後で所定音数分の曲範囲を設定する曲範囲設定処理と、前記曲範囲設定処理により設定された曲範囲の先頭および後端に各々対応する開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択処理と、前記運指系列選択処理にて選択される運指系列において、前記曲範囲設定処理により設定された曲範囲の先頭および後端に各々対応する開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価処理と、前記運指系列評価処理にて運指系列評価値が生成される毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶処理と、前記記憶処理にて記憶された運指系列を表示する表示処理とをコンピュータで実行させることを特徴とする。
【００１０】
請求項６に記載の発明では、各音毎に複数の運指候補を備えた曲の内から任意の１音を指定する指定処理と、前記指定処理にて指定された音の前後で音高の高低が入れ替われる曲区間を検索する曲区間検索処理と、前記曲区間検索処理にて検索された曲区間の先頭および後端に各々対応する開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する運指系列選択処理と、前記運指系列選択処理にて選択される運指系列において、前記曲区間検索処理により検索された曲区間の先頭および後端に各々対応する開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する運指系列評価処理と、前記運指系列評価処理にて運指系列評価値が生成される毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶する記憶処理と、前記記憶処理にて記憶された運指系列を表示する表示処理とをコンピュータで実行させることを特徴とする。
【発明の効果】
【００１１】
請求項１、４に記載の発明によれば、各音毎に複数の運指候補を備えた曲中で開始音と終了音とを指定すると、指定された開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択し、選択された運指系列において、開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する。運指系列評価値が生成される毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶しておき、記憶された運指系列を表示するので、曲中の指定範囲で複数の異なる運指を提示することができる。
【００１２】
請求項２、５に記載の発明によれば、各音毎に複数の運指候補を備えた曲の内から任意の１音を指定すると、指定された音の前後で所定音数分の曲範囲が設定され、設定された曲範囲の先頭および後端に各々対応する開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する。そして、選択された運指系列において、設定された曲範囲の先頭および後端に各々対応する開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する。運指系列評価値が生成される毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶しておき、記憶された運指系列を表示するので、曲中の１音を指定するだけで曲範囲が設定され、設定された曲範囲で複数の異なる運指を提示することができる。
【００１３】
請求項３、６に記載の発明によれば、各音毎に複数の運指候補を備えた曲の内から任意の１音を指定すると、指定された音の前後で音高の高低が入れ替われる曲区間が検索され、検索された曲区間の先頭および後端に各々対応する開始音から終了音までの各音がそれぞれ備える複数の運指候補から形成される複数の運指系列を順番に選択する。そして、選択された運指系列において、曲区間の先頭および後端に各々対応する開始音から終了音までを評価対象音として変化させ、評価対象音と評価対象音に続く音との関係に応じて定まる当該評価対象音の運指候補の評価値を累算して運指系列評価値を生成する。運指系列評価値が生成される毎に、先に生成された運指系列評価値と比較し、より値が小さい運指系列評価値を有する運指系列を記憶しておき、記憶された運指系列を表示するので、曲中の１音を指定するだけで音高の高低が入れ替われる曲区間の、音楽的に自然な運指系列を複数提示することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。
Ａ．第１実施形態  
（１）構成  
図１は、第１実施形態による運指候補表示装置の全体構成を示すブロック図である。運指候補表示装置は、データ入力部１、表示部２、データ指定部３、ＣＰＵ４、ＲＯＭ５およびＲＡＭ６を備える。データ入力部１は、図示されていない運指情報発生装置において生成された楽曲データを取り込み、ＲＡＭ６に格納する。楽曲データとは、図２に図示するように、ＭＩＤＩデータ形式で構成され、曲を構成する各音を表す曲データと各音毎の運指データとを備える。曲データは、曲を構成する各音に対応したイベントＭｉｄｉＥｖｅｎｔ毎の発音開始時間、発音時間およびピッチを表す。
【００１５】
一方、運指データは、曲データで表される音に対応した、鍵盤座標ｉＰｏｓｘ、運指候補ｃｆｉｇＡｌｔ［０］〜ｃｆｉｇＡｌｔ［Ｎ］を有する。鍵盤座標ｉＰｏｓｘは、対応する音のピッチ（音高）の鍵盤位置を表す。運指候補ｃｆｉｇＡｌｔ［０］〜ｃｆｉｇＡｌｔ［Ｎ］とは、曲データで表される音に対応した運指の候補を表す。なお、ここで言う運指とは、鍵操作する指を表す値（「０：親指」、「１：人差し指」、「２：中指」、「３：薬指」および「４：小指」）を指す。したがって、１つの音について運指候補は、親指から小指まで最大５通りの系列が定義可能になっている。後述するように、各音に割当てられた運指候補ｃｆｉｇＡｌｔ［０］〜ｃｆｉｇＡｌｔ［Ｎ］は、ポインタｉで指定される。ポインタｉで指定される各音の運指の候補は、運指系列と総称される。
【００１６】
表示部２は、ＣＰＵ４の制御の下に、例えば図４に図示するように、上述した楽曲データに基づき曲データを楽譜表示したり、その表示された楽譜上で運指候補の表示範囲を指定したりする運指表示画面ＵＧ等を表示する。データ指定部３は、マウスあるいはキーボード等の入力デバイスを備え、表示部２に画面表示された運指表示画面ＵＧ中（図４参照）で運指候補の表示範囲（開始音および終了音）を指定したり、当該画面ＵＧに配設される「複数候補生成ボタン」や、運指候補の表示切替えを指示する「候補１」〜「候補３」の各ボタンをクリックして対応するクリックイベントを発生する。ＣＰＵ４は、装置各部を制御するものであり、本発明の要旨に関わる処理動作については追って詳述する。
【００１７】
ＲＯＭ５は、上記ＣＰＵ４にロードされる各種制御プログラムやテーブル等を記憶する。ここで言う各種制御プログラムとは、後述するメインルーチンおよび評価処理を含む。また、ＲＯＭ５には、コストテーブルｃＣｏｓｔＴｗｏＦｉｎｇｅｒが設けられる。コストテーブルｃＣｏｓｔＴｗｏＦｉｎｇｅｒとは、隣り合う２音、つまり現在評価対象としている音と次の音とを勘案して、現在評価対象としている音に割当てられた運指の容易さを表す評価値を読み出すテーブルである。具体的には、黒鍵／白鍵の別を表すｉＢＷ、次の音が現在評価対象としている音の高音側か低音側かを表すｉＰＭ、現在評価対象としている音にアサインされる運指ｃｆｉｇを表すｉＦｔ、次の音にアサインされる運指ｃｆｉｇを表すｉＴｔ、現在評価対象としている音の鍵盤位置と次の音の鍵盤位置との離間距離ｉＩｎｔに応じた評価値が登録される。さらに、ＲＯＭ５には、例えば図４に図示した運指表示画面ＵＧ等を構成する各種画像データが記憶される。
【００１８】
ＲＡＭ６は、データエリアおよびワークエリアを備える。ＲＡＭ６のデータエリアには、データ入力部１を介して取り込んだ楽曲データがストアされる。ＲＡＭ６のワークエリアには、ＣＰＵ４が実行するメインルーチンおよび評価処理において用いられる各種レジスタ・フラグデータが一時記憶される。
【００１９】
（２）動作
次に、図３〜図６を参照して第１実施形態の動作について説明する。以下では、図２に図示した楽曲データがデータ入力部１を介してＲＡＭ６のデータエリアに格納されていることを前提として、メインルーチンの動作を説明した後、評価処理の動作について述べる。
【００２０】
＜メインルーチンの動作＞
装置電源の投入に応じて、図３に図示するメインルーチンが実行されると、ＣＰＵ４は、ステップＳＡ１に進み、ＲＯＭ５に格納される画像データを読み出して図４に図示する運指表示画面ＵＧを表示部２に画面表示した後、この運指表示画面ＵＧに表示される楽譜中でユーザ設定される開始音および終了音をそれぞれ指定するポインタを、ポインタｍｅｆ（開始音），ｍｅｔ（終了音）にストアする。
次いで、ステップＳＡ２では、運指表示画面ＵＧに配設される「複数候補生成ボタン」がクリック操作されるまで待機し、当該ボタンがクリック操作されると、判断結果が「ＹＥＳ」になり、ステップＳＡ３に進む。ステップＳＡ３では、運指系列を指定するポインタｉおよび運指系列の評価値ｃｏｓｔｓを保持するバッファＢｕｆ［ｋ］を指定するポインタｋをそれぞれゼロリセットする。
【００２１】
続いて、ステップＳＡ４では、ポインタｉの値がＮに達したか、すなわち全ての運指系列について評価し終えたかどうかを判断する。評価し終えていなければ、判断結果は「ＮＯ」になり、ステップＳＡ５を介して評価処理（後述する）を実行し、ポインタｉが指定する運指系列の評価値ｃｏｓｔｓ（後述する）を求める。そして、ステップＳＡ６では、上記ステップＳＡ５の評価処理にて求めた評価値ｃｏｓｔｓが禁止値ＮＯＴ＿ＰＥＲＭＩＴでなく、かつレジスタｉＣｂｕｆに格納される、前回評価した運指系列の評価値ｃｏｓｔｓ以下であるか否か、つまり前回評価した運指系列より今回評価した運指系列の方が弾き易いかどうかを判断する。前回評価した運指系列の方が弾き易い場合には、判断結果が「ＮＯ」になり、ステップＳＡ７に進み、運指系列を指定するポインタｉをインクリメントして歩進させた後、上述のステップＳＡ４に処理を戻す。
【００２２】
一方、前回評価した運指系列より今回評価した運指系列の方が弾き易い場合には、上記ステップＳＡ６の判断結果が「ＹＥＳ」になり、ステップＳＡ８に進み、ポインタｋで指定されるバッファＢｕｆ［ｋ］に、今回評価した運指系列とその評価値ｃｏｓｔｓをストアする。次いで、ステップＳＡ９では、ポインタｋを歩進させ、続くステップＳＡ１０では、今回評価した運指系列の評価値ｃｏｓｔｓをレジスタｉＣｂｕｆに格納して前回値に更新する一方、ポインタｉを歩進させてから上述のステップＳＡ４に処理を戻す。
【００２３】
以後、全ての運指系列について評価し終えるまで上述のステップＳＡ４〜ＳＡ１０を繰り返す。これにより、ポインタｉが歩進される毎に、前回評価した運指系列の評価値と今回評価した評価値とを比較し、より弾き易い運指系列とその評価値ｃｏｓｔｓがバッファＢｕｆ［ｋ］にストアされる。そして、全ての運指系列について評価し終えると、ステップＳＡ４の判断結果が「ＹＥＳ」となり、ステップＳＡ１１に進み、運指系列表示を行う。
運指系列表示とは、バッファＢｕｆ［ｋ］の内容を、評価値ｃｏｓｔｓが小さい順、つまり弾き易い順に運指系列を並び替え、並び替えた順序を、例えば運指候補の表示切替えを指示する「候補１」〜「候補３」の各ボタンに割当てる。そして、例えばユーザが運指表示画面ＵＧに配設される「候補１」ボタンをクリック操作した場合には、「候補１」の運指系列をバッファＢｕｆ［ｋ］から読み出し、図５に図示するように、運指表示画面ＵＧの運指表示部ＵＧＡにおいて、開始音から終了音までの運指を表示する。
【００２４】
＜評価処理の動作＞
次に、図６を参照して評価処理の動作を説明する。上述したメインルーチンのステップＳＡ５（図３参照）を介して本処理が実行されると、ＣＰＵ４は図６に図示するステップＳＢ１に処理を進め、レジスタｃｏｓｔｓをゼロリセットすると共に、ポインタｍｅｆの開始音を評価対象音に設定すべくポインタｍｅにストアする。続いて、ステップＳＣ２では、評価対象音の運指候補ｍｅ［ｃｆｉｇＡｌｔ［ｉ］］をレジスタｉＦｔに、評価対象音の鍵盤座標ｍｅ［ｉＰｏｓｘ］をレジスタｉＦｐに、評価対象音が黒鍵／白鍵のいずれであるかを識別する値ｍｅ［ｉＰｏｓｘ］％２（評価対象音の鍵盤座標２の２の剰余値）をレジスタｉＢＷにそれぞれストアする。なお、ｍｅ［ｉＰｏｓｘ］％２は、「０」の場合に白鍵を、「１」の場合に黒鍵を表す。
【００２５】
次いで、ステップＳＢ３では、評価対象音の次の音ｍｅ［ｎｅｘｔ］を指定するポインタをポインタｍｅｎにセットする。そして、ステップＳＢ４では、ポインタｍｅｎにて指定される次の音の運指候補ｍｅｎ［ｃｆｉｇＡｌｔ［ｉ］］をレジスタｉＴｆに、次の音の鍵盤座標ｍｅｎ［ｉＰｏｓｘ］をレジスタｉＴｐにそれぞれストアする。
続いて、ステップＳＢ５では、レジスタｉＦｐに格納された評価対象音の鍵盤座標と、レジスタｉＴｐに格納された次の音の鍵盤座標とを大小比較し、ｉＦｐ＜ｉＴｐなら「０」を、ｉＦｐ≦ｉＴｐなら「１」をレジスタｉＰＭにストアする。つまり次の音が評価対象音より高音側なら「０」、それ以外なら「１」となる値をレジスタｉＰＭにストアする。また、ステップＳＢ５では、評価対象音の鍵盤座標と次の音の鍵盤座標から両鍵の離間距離（ｉＴｐ−ｉＦｐ又はｉＦｐ−ｉＴｐ）をレジスタｉＩｎｔにストアする。
【００２６】
そして、ステップＳＢ６では、上記ステップＳＢ２〜ＳＢ５において得たレジスタｉＢＷ、ｉＰＭ、ｉＦｔ、ｉＴｔ、ｉＩｎｔの各値に従い、ＲＯＭ５に格納されるコストテーブルｃＣｏｓｔＴｗｏＦｉｎｇｅｒから評価対象音にアサインされる運指系列ｉの運指候補について運指の容易さを表す評価値ｉＣｏｓｔを読み出す。次いで、ステップＳＢ７では、評価対象音にアサインされる運指系列ｉの運指候補が、「黒鍵の運指に親指や小指を割り当てない」、「和音時の運指逆転」および「運指可能幅を超えない」とする禁止条件のいずれかに合致するかどうかを判断する。いずれかの禁止条件に該当する場合には、判断結果が「ＹＥＳ」になり、ステップＳＢ８に進み、レジスタｃｏｓｔｓに禁止値ＮＯＴ＿ＰＥＲＭＩＴをストアして本処理を終える。
なお、レジスタｃｏｓｔｓに禁止値ＮＯＴ＿ＰＥＲＭＩＴがストアされた場合、前述したメインルーチンのステップＳＡ６（図３参照）の判断結果が「ＮＯ」となり、対応する運指系列ｉが比較対象から除外されるようになっている。
【００２７】
一方、評価対象音にアサインされる運指系列ｉの運指候補が禁止条件に該当しなければ、上記ステップＳＢ７の判断結果は「ＮＯ」となり、ステップＳＢ９に進む。ステップＳＢ９では、上記ステップＳＢ６にて求めた評価値ｉＣｏｓｔを、ポインタｍｅで指定される評価対象音の評価値を一時記憶するレジスタｍｅ［ｉＣｏｓｔ］にストアする。続いて、ステップＳＢ１０では、レジスタｍｅ［ｉＣｏｓｔ］の値をレジスタｃｏｓｔｓに加算して運指系列ｉの評価値ｃｏｓｔｓを累算する。
【００２８】
次いで、ステップＳＢ１１では、ポインタｍｅが終了音を指定するポインタｍｅｔに一致したか否か、すなわち運指系列ｉにおける開始音から終了音までの全ての運指候補について評価し終えたかどうかを判断する。評価し終えていなければ、判断結果は「ＮＯ」になり、ステップＳＢ１２に進み、評価対象音を次の音に移すべくポインタｍｅを歩進させた後、上述のステップＳＢ２に処理を戻す。以後、ユーザ指定された開始音から終了音までの曲範囲において、運指系列ｉの全ての運指候補について評価し終えるまで上記ステップＳＢ２〜ＳＢ１２を繰り返す。そして、全ての運指候補について評価し終えると、上記ステップＳＢ１１の判断結果が「ＹＥＳ」になり、本処理を完了させる。
【００２９】
以上のように、第１実施形態では、曲を構成する各音毎に複数の運指候補を備えた楽曲データの内からユーザが開始音から終了音までの曲範囲を指定すると、指定された開始音から終了音までを評価対象音として変化させ、評価対象音とその次の音との関係に応じて定まる当該評価対象音の運指候補の評価値ｉＣｏｓｔを累算して運指系列の評価値ｃｏｓｔｓを生成する。こうした運指系列の評価値ｃｏｓｔｓを複数の運指候補に対応して複数系列分求める。評価値ｃｏｓｔｓが生成される毎に前回の評価値ｃｏｓｔｓと比較し、より値が小さく弾き易い運指系列とその評価値ｃｏｓｔｓとをバッファＢｕｆ［ｋ］に保存し、全ての運指系列について評価し終えた時点でバッファＢｕｆ［ｋ］に保存された運指系列の内、弾き易い順に運指系列を表示するので、曲中の指定範囲で複数の異なる運指を提示することが可能になっている。
【００３０】
Ｂ．第２実施形態
次に、図７〜図８を参照して第２実施形態の動作を説明する。第２実施形態が上述の第１実施形態と相違する点は、ユーザが曲中の任意の１音を指定するだけで、その指定した音を含む前後の所定音数分を範囲指定することにある。以下、こうした第１実施形態による「メインルーチン」および「範囲評価処理」の各動作を説明する。なお、第２実施形態の「評価処理」は、上述の第１実施形態と同一なので、その説明については省略する。
【００３１】
＜メインルーチンの動作＞
装置電源の投入に応じて、図７に図示するメインルーチンが実行されると、ＣＰＵ４は、ステップＳＣ１を介して範囲指定処理を実行する。範囲指定処理では、後述するように、ＲＯＭ５に格納される各種画像データを読み出して図４に図示する運指表示画面ＵＧを表示部２に画面表示した後、その運指表示画面ＵＧにおいて楽譜表示される各音の内からユーザが任意の１音を指定すると、その指定した音を含む前後の所定音数分を範囲指定し、その範囲の開始音をポインタｍｅｆに、終了音をポインタｍｅｔにストアするようになっている。
【００３２】
次いで、ステップＳＣ２では、運指表示画面ＵＧに配設される「複数候補生成ボタン」がクリック操作されるまで待機し、当該ボタンがクリック操作されると、判断結果が「ＹＥＳ」になり、ステップＳＣ３に進む。ステップＳＣ３では、運指系列を指定するポインタｉおよび運指系列の評価値ｃｏｓｔを保持するバッファＢｕｆ［ｋ］を指定するポインタｋをそれぞれゼロリセットする。
【００３３】
続いて、ステップＳＣ４では、ポインタｉの値がＮに達したか、すなわち全ての運指系列について評価し終えたかどうかを判断する。評価し終えていなければ、判断結果は「ＮＯ」になり、ステップＳＣ５を介して前述の評価処理（図６参照）を実行し、ポインタｉが指定する運指系列の評価値ｃｏｓｔｓを求める。そして、ステップＳＣ６では、上記ステップＳＣ５の評価処理にて求めた評価値ｃｏｓｔｓが禁止値ＮＯＴ＿ＰＥＲＭＩＴでなく、かつレジスタｉＣｂｕｆに格納される、前回評価した運指系列の評価値ｃｏｓｔｓ以下であるか否か、つまり前回評価した運指系列より今回評価した運指系列の方が弾き易いかどうかを判断する。前回評価した運指系列の方が弾き易い場合には、判断結果が「ＮＯ」になり、ステップＳＣ７に進み、運指系列を指定するポインタｉをインクリメントして歩進させた後、上述のステップＳＣ４に処理を戻す。
【００３４】
一方、前回評価した運指系列より今回評価した運指系列の方が弾き易い場合には、上記ステップＳＣ６の判断結果が「ＹＥＳ」になり、ステップＳＣ８に進み、ポインタｋで指定されるバッファＢｕｆ［ｋ］に、今回評価した運指系列とその評価値ｃｏｓｔｓをストアする。次いで、ステップＳＣ９では、ポインタｋを歩進させ、続くステップＳＣ１０では、今回評価した運指系列の評価値ｃｏｓｔｓをレジスタｉＣｂｕｆに格納して前回値に更新する一方、ポインタｉを歩進させてから上述のステップＳＣ４に処理を戻す。
【００３５】
以後、全ての運指系列について評価し終えるまで上述のステップＳＣ４〜ＳＣ１０を繰り返す。これにより、ポインタｉが歩進される毎に、前回評価した運指系列の評価値と今回評価した評価値とを比較し、より弾き易い運指系列とその評価値ｃｏｓｔｓがバッファＢｕｆ［ｋ］にストアされる。そして、全ての運指系列について評価し終えると、ステップＳＡ４の判断結果が「ＹＥＳ」となり、ステップＳＣ１１に進み、前述した第１実施形態と同様に運指系列表示を行う。
【００３６】
＜範囲指定処理の動作＞
次に、図８を参照して範囲指定処理の動作を説明する。上記メインルーチンのステップＳＣ１（図７参照）を介して本処理が実行されると、ＣＰＵ４は図８に図示するステップＳＤ１に処理を進める。ステップＳＤ１では、運指表示画面ＵＧ（図４参照）に楽譜表示される各音の内、ユーザが所望の音ｍｅＡを指定（クリック操作）するまで待機する。そして、音ｍｅＡが指定されると、判断結果が「ＹＥＳ」になり、ステップＳＤ２に進む。ステップＳＤ２では、ユーザ指定された音ｍｅＡの一つ前の音ｍｅＡ［ｐｒｅｖ］を指定するポインタをレジスタｍｅｔｍｐにストアすると共に、音符数をカウントするカウンタｉＣｎｔをゼロリセットする。
【００３７】
続いて、ステップＳＤ３では、レジスタｍｅｔｍｐで指定される音が曲先頭でなく、かつカウンタｉＣｎｔの値が音符数ｉＮｏｔｅＣｎｔより小さいかどうかを判断する。音符数ｉＮｏｔｅＣｎｔは予め設定される規定音符数である。したがって、このステップＳＤ３では、ユーザ指定された音ｍｅＡから音符数ｉＮｏｔｅＣｎｔ分を隔てた範囲先頭の音に達していないかどうかを判断する。範囲先頭の音に達していなければ、判断結果は「ＹＥＳ」となり、ステップＳＤ４に進み、レジスタｍｅｔｍｐに格納されるポインタをポインタｍｅｆにセットする。次いで、ステップＳＤ５では、ポインタｍｅｆで指定される音の一つ前の音ｍｅｆ［ｐｒｅｖ］を指定するポインタをレジスタｍｅｔｍｐにストアする。そして、ステップＳＤ６では、音を一つ前に進めたのに応じてカウンタｉＣｎｔを歩進させた後、上記ステップＳＤ３に戻す。
【００３８】
以後、ステップＳＤ３〜ＳＤ６を繰り返してユーザ指定の音ｍｅＡから音符数ｉＮｏｔｅＣｎｔ分を隔てた範囲先頭の音へ１音づつ前に進める。そして、ユーザ指定の音ｍｅＡから音符数ｉＮｏｔｅＣｎｔ分を隔てた範囲先頭の音に達すると、ステップＳＤ３の判断結果が「ＮＯ」になり、ステップＳＤ７に進む。なお、この時にポインタｍｅｆは範囲先頭の音を指定するポインタとなる。続いて、ステップＳＤ７では、ユーザ指定された音ｍｅＡの一つ後の音ｍｅＡ［ｎｅｘｔ］を指定するポインタをレジスタｍｅｔｍｐにストアすると共に、音符数をカウントするカウンタｉＣｎｔをゼロリセットする。
【００３９】
次に、ステップＳＤ８では、レジスタｍｅｔｍｐで指定される音が曲終端ＥＮＤでなく、かつカウンタｉＣｎｔの値が音符数ｉＮｏｔｅＣｎｔより小さいかどうかを判断する。したがって、このステップＳＤ８では、ユーザ指定された音ｍｅＡから音符数ｉＮｏｔｅＣｎｔ分を隔てた範囲後端の音に達していないかどうかを判断する。範囲後端の音に達していなければ、判断結果は「ＹＥＳ」となり、ステップＳＤ９に進み、レジスタｍｅｔｍｐに格納されるポインタをポインタｍｅｔにセットする。次いで、ステップＳＤ１０では、ポインタｍｅｔで指定される音の一つ後の音ｍｅｔ［ｎｅｘｔ］を指定するポインタをレジスタｍｅｔｍｐにストアする。そして、ステップＳＤ１１では、音を一つ後に進めたのに応じてカウンタｉＣｎｔを歩進させた後、上記ステップＳＤ８に戻す。
【００４０】
以後、ステップＳＤ８〜ＳＤ１１を繰り返してユーザ指定の音ｍｅＡから音符数ｉＮｏｔｅＣｎｔ分を隔てた範囲後端の音へ１音づつ後に進める。そして、ユーザ指定の音ｍｅＡから音符数ｉＮｏｔｅＣｎｔ分を隔てた範囲後端の音に達すると、ステップＳＤ８の判断結果が「ＮＯ」になり、本処理を終える。なお、ステップＳＤ８の判断結果が「ＮＯ」になる時には、ポインタｍｅｔは範囲後端の音を指定するようセットされる。
【００４１】
以上のように、第２実施形態によれば、ユーザが曲中の任意の１音を指定するだけで、その指定した音を含む前後の所定音数分の範囲指定が行われ、その後は前述の第１実施形態と同様、指定された範囲の開始音から終了音までを評価対象音として変化させ、評価対象音とその次の音との関係に応じて定まる当該評価対象音の運指候補の評価値ｉＣｏｓｔを累算して運指系列の評価値ｃｏｓｔｓを生成し、そうした運指系列の評価値ｃｏｓｔｓを複数の運指候補に対応して複数系列分求め、評価値ｃｏｓｔｓが生成される毎に前回の評価値ｃｏｓｔｓと比較して、より値が小さく弾き易い運指系列とその評価値ｃｏｓｔｓとをバッファＢｕｆ［ｋ］に保存し、全ての運指系列について評価し終えた時点でバッファＢｕｆ［ｋ］に保存された運指系列の内、弾き易い順に運指系列を表示するので、ユーザが曲中の任意の１音を指定するだけで、それに応じて定まる曲範囲で複数の異なる運指を提示することが可能になっている。
【００４２】
Ｃ．第３実施形態
次に、図９を参照して第３実施形態の動作を説明する。第３実施形態が上述の第２実施形態と相違する点は、運指データ中に音列（曲データ）の高低傾向を表すデータｃＴｅｎｄｅｎｃｙを設け、このデータｃＴｅｎｄｅｎｃｙを参照して、ユーザが指定した音の前後において音の高低が入れ替われる区間を範囲指定することにある。以下では、こうした第３実施形態による範囲指定処理の動作を説明する。なお、第３実施形態のメインルーチンは、上述の第２実施形態と同一なので、その説明については省略する。
【００４３】
上述した第２実施形態と同様、メインルーチンのステップＳＣ１（図６参照）を介して本処理が実行されると、ＣＰＵ４は図９に図示するステップＳＥ１に処理を進める。ステップＳＥ１では、運指表示画面ＵＧ（図４参照）に楽譜表示される各音の内、ユーザが所望の音ｍｅＡをクリック操作して音指定するまで待機する。そして、音ｍｅＡが指定されると、判断結果が「ＹＥＳ」になり、ステップＳＥ２に進む。ステップＳＥ２では、ユーザ指定された音ｍｅＡの一つ前の音ｍｅＡ［ｐｒｅｖ］を指定するポインタをレジスタｍｅｔｍｐにストアする。次いで、ステップＳＥ３では、レジスタｍｅｔｍｐに格納されるポインタを、区間先頭ポインタｍｅｆにセットする。
【００４４】
続いて、ステップＳＥ４では、ｍｅｆ［ｃＴｅｎｄｅｎｃｙ］、すなわち区間先頭ポインタｍｅｆで指定される音の運指データとして設けられた高低傾向ｃＴｅｎｄｅｎｃｙが「０」であるかどうかを判断する。高低傾向ｃＴｅｎｄｅｎｃｙは、音列（曲データ）の高低傾向を表すデータであり、「０」の場合に極値（ピーク）を表す。したがって、このステップＳＥ４では、区間先頭ポインタｍｅｆが極値であるかどうかを判断する。区間先頭ポインタｍｅｆが極値でなければ、判断結果は「ＮＯ」になり、ステップＳＥ５に進み、区間先頭ポインタｍｅｆをさらに一つ前の音に進めて上記ステップＳＥ３に処理を戻す。以後、極値の高低傾向ｃＴｅｎｄｅｎｃｙを有する音が見つかるまで区間先頭ポインタｍｅｆを前に進ませ、極値の高低傾向ｃＴｅｎｄｅｎｃｙを有する音が見つかり、区間先頭の音が定まると、ステップＳＥ４の判断結果が「ＹＥＳ」となり、ステップＳＥ６に進む。
【００４５】
そして、ステップＳＥ６では、ユーザ指定された音ｍｅＡの一つ後の音ｍｅＡ［ｎｅｘｔ］を指定するポインタをレジスタｍｅｔｍｐにストアする。次いで、ステップＳＥ７では、レジスタｍｅｔｍｐに格納されるポインタを、区間後端ポインタｍｅｔにセットする。続いて、ステップＳＥ８では、ｍｅｔ［ｃＴｅｎｄｅｎｃｙ］、すなわち区間後端ポインタｍｅｆで指定される音の運指データの高低傾向ｃＴｅｎｄｅｎｃｙが「０」であるかどうか、つまり区間後端ポインタｍｅｔで指定される音が極値であるかどうかを判断する。区間後端ポインタｍｅｔの音が極値でなければ、判断結果は「ＮＯ」になり、ステップＳＥ９に進み、区間後端ポインタｍｅｔをさらに一つ後の音に進めて上記ステップＳＥ７に処理を戻す。
【００４６】
以後、極値の高低傾向ｃＴｅｎｄｅｎｃｙを有する音が見つかるまで区間後端ポインタｍｅｔを後に進ませ、極値の高低傾向ｃＴｅｎｄｅｎｃｙを有する音が見つかり、区間後端の音が定まると、ステップＳＥ８の判断結果が「ＹＥＳ」となり、本処理を終える。
このように、第３実施形態による範囲指定処理では、ユーザ指定の音ｍｅＡの前後において音の高低が入れ替われる音列区間を範囲指定する為、音楽的に自然な運指系列を複数提示し得るようになっている。
【図面の簡単な説明】
【００４７】
【図１】本発明による第１実施形態の構成を示すブロック図である。
【図２】曲データおよび運指データを備えた楽曲データの構成を示す図である。
【図３】メインルーチンの動作を示すフローチャートである。
【図４】運指表示画面ＵＧの一例を示す図である。
【図５】運指表示画面ＵＧにおける運指系列表示の一例を示す図である。
【図６】評価処理の動作を示すフローチャートである。
【図７】第２実施形態によるメインルーチンの動作を示すフローチャートである。
【図８】第２実施形態による範囲指定処理の動作を示すフローチャートである。
【図９】第３実施形態による範囲指定処理の動作を示すフローチャートである。
【符号の説明】
【００４８】
１  データ入力部
２  表示部
３  データ指定部
４  ＣＰＵ
５  ＲＯＭ
６  ＲＡＭ
【図１】
2006071674.tif 000003
【図２】
2006071674.tif 000004
【図３】
2006071674.tif 000005
【図４】
2006071674.tif 000006
【図５】
2006071674.tif 000007
【図６】
2006071674.tif 000008
【図７】
2006071674.tif 000009
【図８】
2006071674.tif 000010
【図９】
2006071674.tif 000011