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
JP4529175B2 - 運指候補表示装置および運指候補表示処理プログラム - Google Patents
[go: Go Back, main page]

JP4529175B2 - 運指候補表示装置および運指候補表示処理プログラム - Google Patents

運指候補表示装置および運指候補表示処理プログラム Download PDF

Info

Publication number
JP4529175B2
JP4529175B2 JP2004251416A JP2004251416A JP4529175B2 JP 4529175 B2 JP4529175 B2 JP 4529175B2 JP 2004251416 A JP2004251416 A JP 2004251416A JP 2004251416 A JP2004251416 A JP 2004251416A JP 4529175 B2 JP4529175 B2 JP 4529175B2
Authority
JP
Japan
Prior art keywords
fingering
sequence
stored
event
sound
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
JP2004251416A
Other languages
English (en)
Other versions
JP2006071674A5 (ja
JP2006071674A (ja
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 JP2004251416A priority Critical patent/JP4529175B2/ja
Publication of JP2006071674A publication Critical patent/JP2006071674A/ja
Publication of JP2006071674A5 publication Critical patent/JP2006071674A5/ja
Application granted granted Critical
Publication of JP4529175B2 publication Critical patent/JP4529175B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Auxiliary Devices For Music (AREA)

Description

本発明は、鍵盤を備えた電子楽器に用いて好適な運指候補表示装置および運指候補表示処理プログラムに関する。
演奏者に弾くべき鍵の位置や鍵操作の指使い(運指)を案内する運指情報を発生する装置が知られている。例えば特許文献1には、隣り合う2つの音に対して鍵盤を操作したときの指使いの容易さを表す2音運指データをそれぞれの指の組合わせに対応付けて記憶しておき、その内から曲データ(与えられたメロディの音列)に対応する2音運指データを読み出し、読み出した2音運指データの累算値を最適にする運指を決定して運指情報を発生させる装置が開示されている。
特許第2526954号明細書
ところで、上記特許文献1に開示の装置では、曲から一義的に決る代表的な運指を発生させる為、曲中でユーザが指定する範囲について複数の異なる運指をユーザに提示することができない、という問題がある。
そこで本発明は、このような事情に鑑みてなされたもので、曲中の指定範囲で複数の異なる運指を提示することができる運指候補表示装置および運指候補表示処理プログラムを提供することを目的としている。
上記目的を達成するため、請求項1に記載の発明では、曲を構成する複数のイベント及び当該各イベントを演奏するための指の種類を表す運指情報からなる運指系列を複数記憶する曲記憶手段と、予め設定された値が記憶されたレジスタと、運指系列を記憶するバッファと、この曲記憶手段に記憶された運指系列を順次選択する運指系列選択手段と、この運指系列選択手段により運指系列が順次選択される毎に、前記曲記憶手段に記憶されたイベントを順次読み出すとともに、当該読み出されたイベントに対応しかつ前記選択された運指系列に含まれる運指情報と、前記読み出されたイベントに続くイベントに対応しかつ前記選択された運指系列に含まれる運指情報とに基づき、演奏のし易さを評価する評価値を前記イベント毎に算出し、この算出された評価値を累算することにより選択された運指系列の評価値を生成する運指系列評価手段と、この運指系列評価手段により生成された運指系列の評価値が演奏不可を表す値でなく、かつ当該評価値が前記レジスタに記憶された値以下であるという条件を満たすか否か判別する判別手段と、この判別手段により条件を満たすと判別された場合に、対応する運指系列を前記バッファに記憶する記憶制御手段と、前記バッファに運指系列が記憶される毎に、前記レジスタに記憶された値を当該記憶された運指系列の評価値に更新する更新手段と、前記運指系列選択手段により前記曲記憶手段に記憶された運指系列が全て選択された後、前記バッファに記憶された運指系列を所定の表示手段に表示させる表示制御手段と、を具備することを特徴とする。
また請求項2に記載のように、前記運指候補表示装置はさらに、前記曲記憶手段に記憶された複数のイベントの内から任意のイベントを指定する指定手段と、前記指定手段により指定されたイベントの前後で所定数分の範囲を設定する曲範囲設定手段と、を有し、前記運指系列選択手段は、前記曲範囲設定手段により設定された曲範囲の先頭および後端に各々対応する開始イベントから終了イベントまでの各イベントに夫々対応して記憶された複数の運指系列を順番に選択する、ように構成してもよい。
また請求項3に記載のように、前記運指候補表示装置はさらに、前記各イベントに対応して当該各イベントに含まれる音高の高低傾向を表す傾向データを有するとともに、前記曲記憶手段に記憶された複数のイベントの内から任意のイベントを指定する指定手段と、前記指定手段により指定されたイベントの前後夫々に存在するイベントのうち、対応する傾向データが極値を表すイベント間の区間を検索する曲区間検索手段と、を有し、前記運指系列選択手段は、前記曲区間検索手段により検索された曲区間の先頭および後端に各々対応する開始イベントから終了イベントまでの各イベントに夫々対応して記憶された複数の運指系列を順番に選択する、ように構成してもよい
さらに請求項4に記載の発明は、曲を構成する複数の音高及び当該各音高を演奏するための指の種類を表す運指情報からなる運指系列を複数記憶する曲記憶手段と、予め設定された値が記憶されたレジスタと、運指系列を記憶するバッファと、を有する運指候補表示装置として用いられるコンピュータに、前記曲記憶手段に記憶された運指系列を順次選択する運指系列選択ステップと、前記運指系列が順次選択される毎に、前記曲記憶手段に記憶されたイベントを順次読み出すとともに、当該読み出されたイベントに対応しかつ前記選択された運指系列に含まれる運指情報と、前記読み出されたイベントに続くイベントに対応しかつ前記選択された運指系列に含まれる運指情報とに基づき、演奏のし易さを評価する評価値を前記イベント毎に算出し、この算出された評価値を累算することにより選択された運指系列の評価値を生成する運指系列評価ステップと、この生成された運指系列の評価値が演奏不可を表す値でなく、かつ当該評価値が前記レジスタに記憶された値以下であるという条件を満たすか否か判別する判別ステップと、この条件を満たすと判別された場合に、対応する運指系列を前記バッファに記憶する記憶制御ステップと、前記バッファに運指系列が記憶される毎に、前記レジスタに記憶された値を当該記憶された運指系列の評価値に更新する更新ステップと、前記曲記憶手段に記憶された運指系列が全て選択された後、前記バッファに記憶された運指系列を所定の表示手段に表示させる表示制御ステップと、を実行させることを特徴とする。
請求項1、4に記載の発明によれば、曲を構成する複数の音高及び当該各音高を演奏するための指の種類を表す運指情報からなる運指系列を複数記憶する曲記憶手段から運指系列を順次選択する。そしてこの運指系列が順次選択される毎に、記憶されたイベントを順次読み出し、この読み出されたイベントに対応しかつ選択されている運指系列に含まれる運指情報と、読み出されたイベントに続くイベントに対応かつ選択された運指系列に含まれる運指情報とに基づいて、演奏のし易さを評価する評価値をイベント毎に算出し、この算出された評価値を累算することにより選択された運指系列の評価値を生成する。ここでこの生成された運指系列の評価値が演奏不可を表す値でなく、かつ当該評価値が所定のレジスタに記憶された値以下であるという条件を満たす場合には、対応する運指系列をバッファに記憶するとともに、このバッファに運指系列が記憶される毎に、レジスタの値をこの記憶された運指系列の評価値に更新する。そして運指系列が全て選択された後、記憶された運指系列を表示させる。この結果、曲中の指定範囲で複数の異なる運指を提示することができる。
請求項に記載の発明によれば、さらに、記憶された複数のイベントの内から任意のイベントを指定し、この指定されたイベントの前後で所定数分の範囲を設定するとともに、この設定された曲範囲の先頭および後端に各々対応する開始イベントから終了イベントまでの各イベントに夫々対応して記憶された複数の運指系列を順番に選択することにより、曲中の1イベントを指定するだけで曲範囲が設定され、設定された曲範囲で複数の異なる運指を提示することができる。
請求項3に記載の発明によれば、各イベントに含まれる音高の高低傾向を表す傾向データをイベント夫々に対応して有し、記憶された複数のイベントの内から任意のイベントを指定して、指定されたイベントの前後夫々に存在するイベントのうち、対応する傾向データが極値を表すイベント間の区間を検索し、検索された曲区間の先頭および後端に各々対応する開始イベントから終了イベントまでの各イベントに夫々対応して記憶された複数の運指系列を順番に選択する。この結果、曲中の1イベントを指定するだけで音高の高低が入れ替われる曲区間の、音楽的に自然な運指系列を複数提示することができる。
以下、図面を参照して本発明の実施形態について説明する。
A.第1実施形態
(1)構成
図1は、第1実施形態による運指候補表示装置の全体構成を示すブロック図である。運指候補表示装置は、データ入力部1、表示部2、データ指定部3、CPU4、ROM5およびRAM6を備える。データ入力部1は、図示されていない運指情報発生装置において生成された楽曲データを取り込み、RAM6に格納する。楽曲データとは、図2に図示するように、MIDIデータ形式で構成され、曲を構成する各音を表す曲データと各音毎の運指データとを備える。曲データは、曲を構成する各音に対応したイベントMidiEvent毎の発音開始時間、発音時間およびピッチを表す。
一方、運指データは、曲データで表される音に対応した、鍵盤座標iPosx、運指候補cfigAlt[0]〜cfigAlt[N]を有する。鍵盤座標iPosxは、対応する音のピッチ(音高)の鍵盤位置を表す。運指候補cfigAlt[0]〜cfigAlt[N]とは、曲データで表される音に対応した運指の候補を表す。なお、ここで言う運指とは、鍵操作する指を表す値(「0:親指」、「1:人差し指」、「2:中指」、「3:薬指」および「4:小指」)を指す。したがって、1つの音について運指候補は、親指から小指まで最大5通りの系列が定義可能になっている。後述するように、各音に割当てられた運指候補cfigAlt[0]〜cfigAlt[N]は、ポインタiで指定される。ポインタiで指定される各音の運指の候補は、運指系列と総称される。
表示部2は、CPU4の制御の下に、例えば図4に図示するように、上述した楽曲データに基づき曲データを楽譜表示したり、その表示された楽譜上で運指候補の表示範囲を指定したりする運指表示画面UG等を表示する。データ指定部3は、マウスあるいはキーボード等の入力デバイスを備え、表示部2に画面表示された運指表示画面UG中(図4参照)で運指候補の表示範囲(開始音および終了音)を指定したり、当該画面UGに配設される「複数候補生成ボタン」や、運指候補の表示切替えを指示する「候補1」〜「候補3」の各ボタンをクリックして対応するクリックイベントを発生する。CPU4は、装置各部を制御するものであり、本発明の要旨に関わる処理動作については追って詳述する。
ROM5は、上記CPU4にロードされる各種制御プログラムやテーブル等を記憶する。ここで言う各種制御プログラムとは、後述するメインルーチンおよび評価処理を含む。また、ROM5には、コストテーブルcCostTwoFingerが設けられる。コストテーブルcCostTwoFingerとは、隣り合う2音、つまり現在評価対象としている音と次の音とを勘案して、現在評価対象としている音に割当てられた運指の容易さを表す評価値を読み出すテーブルである。具体的には、黒鍵/白鍵の別を表すiBW、次の音が現在評価対象としている音の高音側か低音側かを表すiPM、現在評価対象としている音にアサインされる運指cfigを表すiFt、次の音にアサインされる運指cfigを表すiTt、現在評価対象としている音の鍵盤位置と次の音の鍵盤位置との離間距離iIntに応じた評価値が登録される。さらに、ROM5には、例えば図4に図示した運指表示画面UG等を構成する各種画像データが記憶される。
RAM6は、データエリアおよびワークエリアを備える。RAM6のデータエリアには、データ入力部1を介して取り込んだ楽曲データがストアされる。RAM6のワークエリアには、CPU4が実行するメインルーチンおよび評価処理において用いられる各種レジスタ・フラグデータが一時記憶される。
(2)動作
次に、図3〜図6を参照して第1実施形態の動作について説明する。以下では、図2に図示した楽曲データがデータ入力部1を介してRAM6のデータエリアに格納されていることを前提として、メインルーチンの動作を説明した後、評価処理の動作について述べる。
<メインルーチンの動作>
装置電源の投入に応じて、図3に図示するメインルーチンが実行されると、CPU4は、ステップSA1に進み、ROM5に格納される画像データを読み出して図4に図示する運指表示画面UGを表示部2に画面表示した後、この運指表示画面UGに表示される楽譜中でユーザ設定される開始音および終了音をそれぞれ指定するポインタを、ポインタmef(開始音),met(終了音)にストアする。
次いで、ステップSA2では、運指表示画面UGに配設される「複数候補生成ボタン」がクリック操作されるまで待機し、当該ボタンがクリック操作されると、判断結果が「YES」になり、ステップSA3に進む。ステップSA3では、運指系列を指定するポインタiおよび運指系列の評価値costsを保持するバッファBuf[k]を指定するポインタkをそれぞれゼロリセットする。
続いて、ステップSA4では、ポインタiの値がNに達したか、すなわち全ての運指系列について評価し終えたかどうかを判断する。評価し終えていなければ、判断結果は「NO」になり、ステップSA5を介して評価処理(後述する)を実行し、ポインタiが指定する運指系列の評価値costs(後述する)を求める。そして、ステップSA6では、上記ステップSA5の評価処理にて求めた評価値costsが禁止値NOT_PERMITでなく、かつレジスタiCbufに格納される、前回評価した運指系列の評価値costs以下であるか否か、つまり前回評価した運指系列より今回評価した運指系列の方が弾き易いかどうかを判断する。前回評価した運指系列の方が弾き易い場合には、判断結果が「NO」になり、ステップSA7に進み、運指系列を指定するポインタiをインクリメントして歩進させた後、上述のステップSA4に処理を戻す。
一方、前回評価した運指系列より今回評価した運指系列の方が弾き易い場合には、上記ステップSA6の判断結果が「YES」になり、ステップSA8に進み、ポインタkで指定されるバッファBuf[k]に、今回評価した運指系列とその評価値costsをストアする。次いで、ステップSA9では、ポインタkを歩進させ、続くステップSA10では、今回評価した運指系列の評価値costsをレジスタiCbufに格納して前回値に更新する一方、ポインタiを歩進させてから上述のステップSA4に処理を戻す。
以後、全ての運指系列について評価し終えるまで上述のステップSA4〜SA10を繰り返す。これにより、ポインタiが歩進される毎に、前回評価した運指系列の評価値と今回評価した評価値とを比較し、より弾き易い運指系列とその評価値costsがバッファBuf[k]にストアされる。そして、全ての運指系列について評価し終えると、ステップSA4の判断結果が「YES」となり、ステップSA11に進み、運指系列表示を行う。
運指系列表示とは、バッファBuf[k]の内容を、評価値costsが小さい順、つまり弾き易い順に運指系列を並び替え、並び替えた順序を、例えば運指候補の表示切替えを指示する「候補1」〜「候補3」の各ボタンに割当てる。そして、例えばユーザが運指表示画面UGに配設される「候補1」ボタンをクリック操作した場合には、「候補1」の運指系列をバッファBuf[k]から読み出し、図5に図示するように、運指表示画面UGの運指表示部UGAにおいて、開始音から終了音までの運指を表示する。
<評価処理の動作>
次に、図6を参照して評価処理の動作を説明する。上述したメインルーチンのステップSA5(図3参照)を介して本処理が実行されると、CPU4は図6に図示するステップSB1に処理を進め、レジスタcostsをゼロリセットすると共に、ポインタmefの開始音を評価対象音に設定すべくポインタmeにストアする。続いて、ステップSC2では、評価対象音の運指候補me[cfigAlt[i]]をレジスタiFtに、評価対象音の鍵盤座標me[iPosx]をレジスタiFpに、評価対象音が黒鍵/白鍵のいずれであるかを識別する値me[iPosx]%2(評価対象音の鍵盤座標2の2の剰余値)をレジスタiBWにそれぞれストアする。なお、me[iPosx]%2は、「0」の場合に白鍵を、「1」の場合に黒鍵を表す。
次いで、ステップSB3では、評価対象音の次の音me[next]を指定するポインタをポインタmenにセットする。そして、ステップSB4では、ポインタmenにて指定される次の音の運指候補men[cfigAlt[i]]をレジスタiTfに、次の音の鍵盤座標men[iPosx]をレジスタiTpにそれぞれストアする。
続いて、ステップSB5では、レジスタiFpに格納された評価対象音の鍵盤座標と、レジスタiTpに格納された次の音の鍵盤座標とを大小比較し、iFp<iTpなら「0」を、iFpiTpなら「1」をレジスタiPMにストアする。つまり次の音が評価対象音より高音側なら「0」、それ以外なら「1」となる値をレジスタiPMにストアする。また、ステップSB5では、評価対象音の鍵盤座標と次の音の鍵盤座標から両鍵の離間距離(iTp−iFp又はiFp−iTp)をレジスタiIntにストアする。
そして、ステップSB6では、上記ステップSB2〜SB5において得たレジスタiBW、iPM、iFt、iTt、iIntの各値に従い、ROM5に格納されるコストテーブルcCostTwoFingerから評価対象音にアサインされる運指系列iの運指候補について運指の容易さを表す評価値iCostを読み出す。次いで、ステップSB7では、評価対象音にアサインされる運指系列iの運指候補が、「黒鍵の運指に親指や小指を割り当てない」、「和音時の運指逆転」および「運指可能幅を超えない」とする禁止条件のいずれかに合致するかどうかを判断する。いずれかの禁止条件に該当する場合には、判断結果が「YES」になり、ステップSB8に進み、レジスタcostsに禁止値NOT_PERMITをストアして本処理を終える。
なお、レジスタcostsに禁止値NOT_PERMITがストアされた場合、前述したメインルーチンのステップSA6(図3参照)の判断結果が「NO」となり、対応する運指系列iが比較対象から除外されるようになっている。
一方、評価対象音にアサインされる運指系列iの運指候補が禁止条件に該当しなければ、上記ステップSB7の判断結果は「NO」となり、ステップSB9に進む。ステップSB9では、上記ステップSB6にて求めた評価値iCostを、ポインタmeで指定される評価対象音の評価値を一時記憶するレジスタme[iCost]にストアする。続いて、ステップSB10では、レジスタme[iCost]の値をレジスタcostsに加算して運指系列iの評価値costsを累算する。
次いで、ステップSB11では、ポインタmeが終了音を指定するポインタmetに一致したか否か、すなわち運指系列iにおける開始音から終了音までの全ての運指候補について評価し終えたかどうかを判断する。評価し終えていなければ、判断結果は「NO」になり、ステップSB12に進み、評価対象音を次の音に移すべくポインタmeを歩進させた後、上述のステップSB2に処理を戻す。以後、ユーザ指定された開始音から終了音までの曲範囲において、運指系列iの全ての運指候補について評価し終えるまで上記ステップSB2〜SB12を繰り返す。そして、全ての運指候補について評価し終えると、上記ステップSB11の判断結果が「YES」になり、本処理を完了させる。
以上のように、第1実施形態では、曲を構成する各音毎に複数の運指候補を備えた楽曲データの内からユーザが開始音から終了音までの曲範囲を指定すると、指定された開始音から終了音までを評価対象音として変化させ、評価対象音とその次の音との関係に応じて定まる当該評価対象音の運指候補の評価値iCostを累算して運指系列の評価値costsを生成する。こうした運指系列の評価値costsを複数の運指候補に対応して複数系列分求める。評価値costsが生成される毎に前回の評価値costsと比較し、より値が小さく弾き易い運指系列とその評価値costsとをバッファBuf[k]に保存し、全ての運指系列について評価し終えた時点でバッファBuf[k]に保存された運指系列の内、弾き易い順に運指系列を表示するので、曲中の指定範囲で複数の異なる運指を提示することが可能になっている。
B.第2実施形態
次に、図7〜図8を参照して第2実施形態の動作を説明する。第2実施形態が上述の第1実施形態と相違する点は、ユーザが曲中の任意の1音を指定するだけで、その指定した音を含む前後の所定音数分を範囲指定することにある。以下、こうした第1実施形態による「メインルーチン」および「範囲評価処理」の各動作を説明する。なお、第2実施形態の「評価処理」は、上述の第1実施形態と同一なので、その説明については省略する。
<メインルーチンの動作>
装置電源の投入に応じて、図7に図示するメインルーチンが実行されると、CPU4は、ステップSC1を介して範囲指定処理を実行する。範囲指定処理では、後述するように、ROM5に格納される各種画像データを読み出して図4に図示する運指表示画面UGを表示部2に画面表示した後、その運指表示画面UGにおいて楽譜表示される各音の内からユーザが任意の1音を指定すると、その指定した音を含む前後の所定音数分を範囲指定し、その範囲の開始音をポインタmefに、終了音をポインタmetにストアするようになっている。
次いで、ステップSC2では、運指表示画面UGに配設される「複数候補生成ボタン」がクリック操作されるまで待機し、当該ボタンがクリック操作されると、判断結果が「YES」になり、ステップSC3に進む。ステップSC3では、運指系列を指定するポインタiおよび運指系列の評価値costを保持するバッファBuf[k]を指定するポインタkをそれぞれゼロリセットする。
続いて、ステップSC4では、ポインタiの値がNに達したか、すなわち全ての運指系列について評価し終えたかどうかを判断する。評価し終えていなければ、判断結果は「NO」になり、ステップSC5を介して前述の評価処理(図6参照)を実行し、ポインタiが指定する運指系列の評価値costsを求める。そして、ステップSC6では、上記ステップSC5の評価処理にて求めた評価値costsが禁止値NOT_PERMITでなく、かつレジスタiCbufに格納される、前回評価した運指系列の評価値costs以下であるか否か、つまり前回評価した運指系列より今回評価した運指系列の方が弾き易いかどうかを判断する。前回評価した運指系列の方が弾き易い場合には、判断結果が「NO」になり、ステップSC7に進み、運指系列を指定するポインタiをインクリメントして歩進させた後、上述のステップSC4に処理を戻す。
一方、前回評価した運指系列より今回評価した運指系列の方が弾き易い場合には、上記ステップSC6の判断結果が「YES」になり、ステップSC8に進み、ポインタkで指定されるバッファBuf[k]に、今回評価した運指系列とその評価値costsをストアする。次いで、ステップSC9では、ポインタkを歩進させ、続くステップSC10では、今回評価した運指系列の評価値costsをレジスタiCbufに格納して前回値に更新する一方、ポインタiを歩進させてから上述のステップSC4に処理を戻す。
以後、全ての運指系列について評価し終えるまで上述のステップSC4〜SC10を繰り返す。これにより、ポインタiが歩進される毎に、前回評価した運指系列の評価値と今回評価した評価値とを比較し、より弾き易い運指系列とその評価値costsがバッファBuf[k]にストアされる。そして、全ての運指系列について評価し終えると、ステップSA4の判断結果が「YES」となり、ステップSC11に進み、前述した第1実施形態と同様に運指系列表示を行う。
<範囲指定処理の動作>
次に、図8を参照して範囲指定処理の動作を説明する。上記メインルーチンのステップSC1(図7参照)を介して本処理が実行されると、CPU4は図8に図示するステップSD1に処理を進める。ステップSD1では、運指表示画面UG(図4参照)に楽譜表示される各音の内、ユーザが所望の音meAを指定(クリック操作)するまで待機する。そして、音meAが指定されると、判断結果が「YES」になり、ステップSD2に進む。ステップSD2では、ユーザ指定された音meAの一つ前の音meA[prev]を指定するポインタをレジスタmetmpにストアすると共に、音符数をカウントするカウンタiCntをゼロリセットする。
続いて、ステップSD3では、レジスタmetmpで指定される音が曲先頭でなく、かつカウンタiCntの値が音符数iNoteCntより小さいかどうかを判断する。音符数iNoteCntは予め設定される規定音符数である。したがって、このステップSD3では、ユーザ指定された音meAから音符数iNoteCnt分を隔てた範囲先頭の音に達していないかどうかを判断する。範囲先頭の音に達していなければ、判断結果は「YES」となり、ステップSD4に進み、レジスタmetmpに格納されるポインタをポインタmefにセットする。次いで、ステップSD5では、ポインタmefで指定される音の一つ前の音mef[prev]を指定するポインタをレジスタmetmpにストアする。そして、ステップSD6では、音を一つ前に進めたのに応じてカウンタiCntを歩進させた後、上記ステップSD3に戻す。
以後、ステップSD3〜SD6を繰り返してユーザ指定の音meAから音符数iNoteCnt分を隔てた範囲先頭の音へ1音づつ前に進める。そして、ユーザ指定の音meAから音符数iNoteCnt分を隔てた範囲先頭の音に達すると、ステップSD3の判断結果が「NO」になり、ステップSD7に進む。なお、この時にポインタmefは範囲先頭の音を指定するポインタとなる。続いて、ステップSD7では、ユーザ指定された音meAの一つ後の音meA[next]を指定するポインタをレジスタmetmpにストアすると共に、音符数をカウントするカウンタiCntをゼロリセットする。
次に、ステップSD8では、レジスタmetmpで指定される音が曲終端ENDでなく、かつカウンタiCntの値が音符数iNoteCntより小さいかどうかを判断する。したがって、このステップSD8では、ユーザ指定された音meAから音符数iNoteCnt分を隔てた範囲後端の音に達していないかどうかを判断する。範囲後端の音に達していなければ、判断結果は「YES」となり、ステップSD9に進み、レジスタmetmpに格納されるポインタをポインタmetにセットする。次いで、ステップSD10では、ポインタmetで指定される音の一つ後の音met[next]を指定するポインタをレジスタmetmpにストアする。そして、ステップSD11では、音を一つ後に進めたのに応じてカウンタiCntを歩進させた後、上記ステップSD8に戻す。
以後、ステップSD8〜SD11を繰り返してユーザ指定の音meAから音符数iNoteCnt分を隔てた範囲後端の音へ1音づつ後に進める。そして、ユーザ指定の音meAから音符数iNoteCnt分を隔てた範囲後端の音に達すると、ステップSD8の判断結果が「NO」になり、本処理を終える。なお、ステップSD8の判断結果が「NO」になる時には、ポインタmetは範囲後端の音を指定するようセットされる。
以上のように、第2実施形態によれば、ユーザが曲中の任意の1音を指定するだけで、その指定した音を含む前後の所定音数分の範囲指定が行われ、その後は前述の第1実施形態と同様、指定された範囲の開始音から終了音までを評価対象音として変化させ、評価対象音とその次の音との関係に応じて定まる当該評価対象音の運指候補の評価値iCostを累算して運指系列の評価値costsを生成し、そうした運指系列の評価値costsを複数の運指候補に対応して複数系列分求め、評価値costsが生成される毎に前回の評価値costsと比較して、より値が小さく弾き易い運指系列とその評価値costsとをバッファBuf[k]に保存し、全ての運指系列について評価し終えた時点でバッファBuf[k]に保存された運指系列の内、弾き易い順に運指系列を表示するので、ユーザが曲中の任意の1音を指定するだけで、それに応じて定まる曲範囲で複数の異なる運指を提示することが可能になっている。
C.第3実施形態
次に、図9を参照して第3実施形態の動作を説明する。第3実施形態が上述の第2実施形態と相違する点は、運指データ中に音列(曲データ)の高低傾向を表すデータcTendencyを設け、このデータcTendencyを参照して、ユーザが指定した音の前後において音の高低が入れ替われる区間を範囲指定することにある。以下では、こうした第3実施形態による範囲指定処理の動作を説明する。なお、第3実施形態のメインルーチンは、上述の第2実施形態と同一なので、その説明については省略する。
上述した第2実施形態と同様、メインルーチンのステップSC1(図6参照)を介して本処理が実行されると、CPU4は図9に図示するステップSE1に処理を進める。ステップSE1では、運指表示画面UG(図4参照)に楽譜表示される各音の内、ユーザが所望の音meAをクリック操作して音指定するまで待機する。そして、音meAが指定されると、判断結果が「YES」になり、ステップSE2に進む。ステップSE2では、ユーザ指定された音meAの一つ前の音meA[prev]を指定するポインタをレジスタmetmpにストアする。次いで、ステップSE3では、レジスタmetmpに格納されるポインタを、区間先頭ポインタmefにセットする。
続いて、ステップSE4では、mef[cTendency]、すなわち区間先頭ポインタmefで指定される音の運指データとして設けられた高低傾向cTendencyが「0」であるかどうかを判断する。高低傾向cTendencyは、音列(曲データ)の高低傾向を表すデータであり、「0」の場合に極値(ピーク)を表す。したがって、このステップSE4では、区間先頭ポインタmefが極値であるかどうかを判断する。区間先頭ポインタmefが極値でなければ、判断結果は「NO」になり、ステップSE5に進み、区間先頭ポインタmefをさらに一つ前の音に進めて上記ステップSE3に処理を戻す。以後、極値の高低傾向cTendencyを有する音が見つかるまで区間先頭ポインタmefを前に進ませ、極値の高低傾向cTendencyを有する音が見つかり、区間先頭の音が定まると、ステップSE4の判断結果が「YES」となり、ステップSE6に進む。
そして、ステップSE6では、ユーザ指定された音meAの一つ後の音meA[next]を指定するポインタをレジスタmetmpにストアする。次いで、ステップSE7では、レジスタmetmpに格納されるポインタを、区間後端ポインタmetにセットする。続いて、ステップSE8では、met[cTendency]、すなわち区間後端ポインタmefで指定される音の運指データの高低傾向cTendencyが「0」であるかどうか、つまり区間後端ポインタmetで指定される音が極値であるかどうかを判断する。区間後端ポインタmetの音が極値でなければ、判断結果は「NO」になり、ステップSE9に進み、区間後端ポインタmetをさらに一つ後の音に進めて上記ステップSE7に処理を戻す。
以後、極値の高低傾向cTendencyを有する音が見つかるまで区間後端ポインタmetを後に進ませ、極値の高低傾向cTendencyを有する音が見つかり、区間後端の音が定まると、ステップSE8の判断結果が「YES」となり、本処理を終える。
このように、第3実施形態による範囲指定処理では、ユーザ指定の音meAの前後において音の高低が入れ替われる音列区間を範囲指定する為、音楽的に自然な運指系列を複数提示し得るようになっている。
本発明による第1実施形態の構成を示すブロック図である。 曲データおよび運指データを備えた楽曲データの構成を示す図である。 メインルーチンの動作を示すフローチャートである。 運指表示画面UGの一例を示す図である。 運指表示画面UGにおける運指系列表示の一例を示す図である。 評価処理の動作を示すフローチャートである。 第2実施形態によるメインルーチンの動作を示すフローチャートである。 第2実施形態による範囲指定処理の動作を示すフローチャートである。 第3実施形態による範囲指定処理の動作を示すフローチャートである。
符号の説明
1 データ入力部
2 表示部
3 データ指定部
4 CPU
5 ROM
6 RAM

Claims (4)

  1. 曲を構成する複数のイベント及び当該各イベントを演奏するための指の種類を表す運指情報からなる運指系列を複数記憶する曲記憶手段と、
    予め設定された値が記憶されたレジスタと、
    運指系列を記憶するバッファと、
    この曲記憶手段に記憶された運指系列を順次選択する運指系列選択手段と、
    この運指系列選択手段により運指系列が順次選択される毎に、前記曲記憶手段に記憶されたイベントを順次読み出すとともに、当該読み出されたイベントに対応しかつ前記選択された運指系列に含まれる運指情報と、前記読み出されたイベントに続くイベントに対応しかつ前記選択された運指系列に含まれる運指情報とに基づき、演奏のし易さを評価する評価値を前記イベント毎に算出し、この算出された評価値を累算することにより選択された運指系列の評価値を生成する運指系列評価手段と、
    この運指系列評価手段により生成された運指系列の評価値が演奏不可を表す値でなく、かつ当該評価値が前記レジスタに記憶された値以下であるという条件を満たすか否か判別する判別手段と、
    この判別手段により条件を満たすと判別された場合に、対応する運指系列を前記バッファに記憶する記憶制御手段と、
    前記バッファに運指系列が記憶される毎に、前記レジスタに記憶された値を当該記憶された運指系列の評価値に更新する更新手段と、
    前記運指系列選択手段により前記曲記憶手段に記憶された運指系列が全て選択された後、前記バッファに記憶された運指系列を所定の表示手段に表示させる表示制御手段と、
    を具備する運指候補表示装置。
  2. 前記運指候補表示装置はさらに、前記曲記憶手段に記憶された複数のイベントの内から任意のイベントを指定する指定手段と、前記指定手段により指定されたイベントの前後で所定数分の範囲を設定する曲範囲設定手段と、を有し、
    前記運指系列選択手段は、前記曲範囲設定手段により設定された曲範囲の先頭および後端に各々対応する開始イベントから終了イベントまでの各イベントに夫々対応して記憶された複数の運指系列を順番に選択する、請求項1に記載の運指候補表示装置。
  3. 前記運指候補表示装置はさらに、前記各イベントに対応して当該各イベントに含まれる音高の高低傾向を表す傾向データを有するとともに、前記曲記憶手段に記憶された複数のイベントの内から任意のイベントを指定する指定手段と、前記指定手段により指定されたイベントの前後夫々に存在するイベントのうち、対応する傾向データが極値を表すイベント間の区間を検索する曲区間検索手段と、を有し、
    前記運指系列選択手段は、前記曲区間検索手段により検索された曲区間の先頭および後端に各々対応する開始イベントから終了イベントまでの各イベントに夫々対応して記憶された複数の運指系列を順番に選択する、請求項1に記載の運指候補表示装置。
  4. 曲を構成する複数の音高及び当該各音高を演奏するための指の種類を表す運指情報からなる運指系列を複数記憶する曲記憶手段と、予め設定された値が記憶されたレジスタと、運指系列を記憶するバッファと、を有する運指候補表示装置として用いられるコンピュータに、
    前記曲記憶手段に記憶された運指系列を順次選択する運指系列選択ステップと、
    前記運指系列が順次選択される毎に、前記曲記憶手段に記憶されたイベントを順次読み出すとともに、当該読み出されたイベントに対応しかつ前記選択された運指系列に含まれる運指情報と、前記読み出されたイベントに続くイベントに対応しかつ前記選択された運指系列に含まれる運指情報とに基づき、演奏のし易さを評価する評価値を前記イベント毎に算出し、この算出された評価値を累算することにより選択された運指系列の評価値を生成する運指系列評価ステップと、
    この生成された運指系列の評価値が演奏不可を表す値でなく、かつ当該評価値が前記レジスタに記憶された値以下であるという条件を満たすか否か判別する判別ステップと、
    この条件を満たすと判別された場合に、対応する運指系列を前記バッファに記憶する記憶制御ステップと、
    前記バッファに運指系列が記憶される毎に、前記レジスタに記憶された値を当該記憶された運指系列の評価値に更新する更新ステップと、
    前記曲記憶手段に記憶された運指系列が全て選択された後、前記バッファに記憶された運指系列を所定の表示手段に表示させる表示制御ステップと、
    を実行させる運指候補表示プログラム。
JP2004251416A 2004-08-31 2004-08-31 運指候補表示装置および運指候補表示処理プログラム Expired - Fee Related JP4529175B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004251416A JP4529175B2 (ja) 2004-08-31 2004-08-31 運指候補表示装置および運指候補表示処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004251416A JP4529175B2 (ja) 2004-08-31 2004-08-31 運指候補表示装置および運指候補表示処理プログラム

Publications (3)

Publication Number Publication Date
JP2006071674A JP2006071674A (ja) 2006-03-16
JP2006071674A5 JP2006071674A5 (ja) 2010-04-22
JP4529175B2 true JP4529175B2 (ja) 2010-08-25

Family

ID=36152428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004251416A Expired - Fee Related JP4529175B2 (ja) 2004-08-31 2004-08-31 運指候補表示装置および運指候補表示処理プログラム

Country Status (1)

Country Link
JP (1) JP4529175B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2526954B2 (ja) * 1987-12-30 1996-08-21 カシオ計算機株式会社 自動運指付け装置
JP3704824B2 (ja) * 1996-08-02 2005-10-12 ヤマハ株式会社 鍵盤楽器の運指パターン決定装置およびメロディ決定装置
JP4058858B2 (ja) * 1999-03-08 2008-03-12 ヤマハ株式会社 運指情報生成方法、装置及び記録媒体
JP4182637B2 (ja) * 2000-03-14 2008-11-19 カシオ計算機株式会社 運指情報生成装置、運指情報生成方法、及び運指情報生成プログラムを記憶した記憶媒体

Also Published As

Publication number Publication date
JP2006071674A (ja) 2006-03-16

Similar Documents

Publication Publication Date Title
JP5790686B2 (ja) コード演奏ガイド装置、方法、およびプログラム
CN110114811A (zh) 演奏辅助装置以及方法
JP5071441B2 (ja) 楽曲難易度評価装置および楽曲難易度評価プログラム
JP4529175B2 (ja) 運指候補表示装置および運指候補表示処理プログラム
CN103377646A (zh) 音符位置检测装置、电子乐器及音符位置推测方法
JP6168117B2 (ja) 楽譜情報生成装置、楽譜情報生成方法及びプログラム
JP4482853B2 (ja) 演奏診断装置および演奏診断プログラム
JP5742302B2 (ja) 楽譜情報生成装置および楽譜情報生成プログラム
JP3278886B2 (ja) 調検出装置
JP6817551B2 (ja) 楽音発生装置、楽音発生方法、プログラムおよび電子楽器
JP4613817B2 (ja) 運指表示装置、及びプログラム
JP2007286637A (ja) コード判定装置およびコード判定処理プログラム
JP4696808B2 (ja) 臨時記号表示装置および臨時記号表示プログラム
JP5742303B2 (ja) 楽音生成制御装置および楽音生成制御プログラム
JP4525924B2 (ja) 転調区間表示装置、臨時記号表示装置、転調区間表示プログラムおよび臨時記号表示プログラム
JP4492446B2 (ja) 同時に操作可能な演奏操作子の位置関係を計測する計測装置およびプログラム
JP5029770B2 (ja) 演奏支援情報生成装置および演奏支援情報生成プログラム
JP5810691B2 (ja) 楽譜情報生成装置および楽譜情報生成プログラム
JP4877611B2 (ja) 演奏練習装置および演奏練習プログラム
JP4816930B2 (ja) 演奏支援情報生成装置および演奏支援情報生成プログラム
JP3951842B2 (ja) スペクトル設定装置およびスペクトル設定方法
JP4543832B2 (ja) 運指情報修正装置および運指情報修正処理プログラム
JP3916063B2 (ja) スペクトル設定装置およびスペクトル設定方法
JP4035715B2 (ja) 伴奏生成装置および伴奏生成プログラム
JP2000112470A (ja) 運指表示装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100422

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: 20100517

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100530

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees