(57)【特許請求の範囲】
【請求項１】
演奏情報を記憶部から読み出す読出処理と、
利用者による弦を押さえる指の使いやすさを示す指係数を含む演奏特性係数を設定する係数設定処理と、
読出処理で読み出された演奏情報中の１演奏音に対し、指板上の指の位置を示すポジション候補を１乃至複数決定する候補決定処理と、
候補決定処理で決定されたポジション候補に対し、係数設定処理で設定した演奏特性係数を使用して、ポジション候補に対するポジション負荷を算出するポジション負荷算出処理と、
第１の演奏音に対応するポジション候補のポジション負荷と、第１の演奏音に隣接する第２の演奏音に対応するポジション候補のポジション負荷に基づき、移動負荷を算出し、算出された移動負荷に基づき、演奏音に対するポジション候補の内、１のポジション候補をポジションとして決定するポジション決定処理と、を情報処理装置に実行させることを特徴とする
運指決定プログラム。
【請求項２】
演奏情報を記憶部から読み出す読出処理と、
フレットの利用頻度を示すフレット利用頻度係数を含む演奏特性係数を設定する係数設定処理と、
読出処理で読み出された演奏情報中の１演奏音に対し、指板上の指の位置を示すポジション候補を１乃至複数決定する候補決定処理と、
候補決定処理で決定されたポジション候補に対し、係数設定処理で設定した演奏特性係数を使用して、ポジション候補に対するポジション負荷を算出するポジション負荷算出処理と、
第１の演奏音に対応するポジション候補のポジション負荷と、第１の演奏音に隣接する第２の演奏音に対応するポジション候補のポジション負荷に基づき、移動負荷を算出し、算出された移動負荷に基づき、演奏音に対するポジション候補の内、１のポジション候補をポジションとして決定するポジション決定処理と、を情報処理装置に実行させることを特徴とする
運指決定プログラム。
【請求項３】
演奏情報を記憶部から読み出す読出処理と、
演奏特性係数を設定する係数設定処理と、
読出処理で読み出された演奏情報中の１演奏音に対し、指板上の指の位置を示すポジション候補を１乃至複数決定する候補決定処理と、
候補決定処理で決定されたポジション候補に対し、係数設定処理で設定した演奏特性係数を使用して、ポジション候補に対するポジション負荷を算出するポジション負荷算出処理と、
第１の演奏音に対応するポジション候補のポジション負荷と、第１の演奏音に隣接する第２の演奏音に対応するポジション候補のポジション負荷に基づき、移動負荷を算出し、算出された移動負荷に基づき、演奏音に対するポジション候補の内、１のポジション候補をポジションとして決定するポジション決定処理と、を情報処理装置に実行させ、
ポジション決定処理は、所定範囲の演奏音に対応するポジション候補の組み合わせについて移動負荷を算出し、所定範囲を拡大していくことで、最終的に楽曲全体における移動負荷を算出する工程を有し、
工程中、算出された移動負荷が所定条件を満たしていないポジション候補の組み合わせを、移動負荷算出の対象から外すことを特徴とする
運指決定プログラム。
【請求項４】
演奏情報を記憶部から読み出す読出処理と、
演奏特性係数を設定する係数設定処理と、
読出処理で読み出された演奏情報中の１演奏音に対し、指板上の指の位置を示すポジション候補を１乃至複数決定する候補決定処理と、
候補決定処理で決定されたポジション候補に対し、係数設定処理で設定した演奏特性係数を使用して、ポジション候補に対するポジション負荷を算出するポジション負荷算出処理と、
第１の演奏音に対応するポジション候補のポジション負荷と、第１の演奏音に隣接する第２の演奏音に対応するポジション候補のポジション負荷に基づき、移動負荷を算出し、算出された移動負荷に基づき、演奏音に対するポジション候補の内、１のポジション候補をポジションとして決定するポジション決定処理と、を情報処理装置に実行させ、
ポジション決定処理は、第１の演奏音に対応するポジション候補から、第２の演奏音に対応するポジション候補に移動する際の腕移動係数を使用して移動負荷を算出し、
腕移動係数は、第１の演奏音に対応するポジション候補中のフレット番号と、第２の音の演奏音に対応するポジション候補内のフレット番号の差分に基づく値であることを特徴とする
運指決定プログラム。
【請求項５】
演奏情報を記憶部から読み出す読出処理と、
演奏特性係数を設定する係数設定処理と、
読出処理で読み出された演奏情報中の１演奏音に対し、指板上の指の位置を示すポジション候補を１乃至複数決定する候補決定処理と、
候補決定処理で決定されたポジション候補に対し、係数設定処理で設定した演奏特性係数を使用して、ポジション候補に対するポジション負荷を算出するポジション負荷算出処理と、
第１の演奏音に対応するポジション候補のポジション負荷と、第１の演奏音に隣接する第２の演奏音に対応するポジション候補のポジション負荷に基づき、移動負荷を算出し、算出された移動負荷に基づき、演奏音に対するポジション候補の内、１のポジション候補をポジションとして決定するポジション決定処理と、を情報処理装置に実行させ、
ポジション決定処理は、第１の演奏音に対応するポジション候補から、第２の演奏音に対応するポジション候補に移動する際の弦移動係数を使用して移動負荷を算出し、
弦移動係数は、第１の演奏音に対応するポジション候補中の弦番号と、第２の音の演奏音に対応するポジション候補内の弦番号の差分に基づく値であることを特徴とする
運指決定プログラム。
【請求項６】
ポジション決定処理で決定したポジションに基づいて、タブ譜情報を出力する出力処理を情報処理装置に実行させることを特徴とする
請求項１から請求項５の何れか１項に記載の運指決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ギター、ベース等の各種弦楽器について、楽曲情報に基づいて指板上の運指を決定するための運指決定プログラムに関する。
【背景技術】
【０００２】
従来、ギター、ベース等の弦楽器を演奏する場合、音符で構成された楽譜以外に、指板上の押弦位置を示して構成されたタブ譜を使用することがよく知られている。タブ譜を使用することで、指板上の音符位置が分からない演奏者であっても、タブ譜に表示された押弦位置を押さえることで、容易に演奏を行うことが可能である。タブ譜の形成は、人が楽譜からタブ譜を起こす以外に、情報処理装置を使用して楽曲情報から自動でタブ譜を形成することも行われている。
【０００３】
特許文献１には、指のポジションの分散をできるだけ小さくすると同時に、実際の運指を想定することで演奏可能なタブ譜を自動作成するタブ譜自動作成プログラムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１６３４４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されるタブ譜自動作成プログラムは、指のポジションの分散をできるだけ小さくすると同時に、実際の運指を想定することで演奏可能なタブ譜を形成することが可能である。ところで、ギター、ベースといった弦楽器についてある楽曲をコピー演奏する場合、当該楽曲のオリジナルアーティストを真似して行いたいという要望が考えられる。オリジナルアーティストは、必ずしも効率的な運指を取るとは限られず、弦やフレット位置で異なる音のニュアンスを考慮して運指を決めることがある。特許文献１に開示されるタブ譜自動作成プログラムでは、このようなオリジナルアーティストの癖を考慮してタブ譜を形成することはできない。また、演奏者には、練習を開始して間もない初心者から、長年に亘る経験を有する上級者まで存在する。特に、初心者は、指板を押させる際、薬指や小指を思うように動かすことができないため押弦に苦労する。特許文献１に開示されるタブ譜自動作成プログラムは、このような演奏者の演奏技術に関する特性も考慮することはできない。
【０００６】
本発明に係る運指決定プログラムは、オリジナルアーティストの演奏特性、ユーザーの演奏技術に関する特性等、各種演奏特性を考慮して、適切な弦楽器の運指を決定することを目的としている。
【課題を解決するための手段】
【０００７】
そのため本発明に係る運指決定プログラムは、以下の構成を採用したことを特徴としている。
演奏情報を記憶部から読み出す読出処理と、
利用者による弦を押さえる指の使いやすさを示す指係数を含む演奏特性係数を設定する係数設定処理と、
読出処理で読み出された演奏情報中の１演奏音に対し、指板上の指の位置を示すポジション候補を１乃至複数決定する候補決定処理と、
候補決定処理で決定されたポジション候補に対し、係数設定処理で設定した演奏特性係数を使用して、ポジション候補に対するポジション負荷を算出するポジション負荷算出処理と、
第１の演奏音に対応するポジション候補のポジション負荷と、第１の演奏音に隣接する第２の演奏音に対応するポジション候補のポジション負荷に基づき、移動負荷を算出し、算出された移動負荷に基づき、演奏音に対するポジション候補の内、１のポジション候補をポジションとして決定するポジション決定処理と、を情報処理装置に実行させることを特徴とする。
【０００９】
また本発明に係る運指決定プログラムは、
演奏情報を記憶部から読み出す読出処理と、
演奏特性係数を設定する係数設定処理と、
読出処理で読み出された演奏情報中の１演奏音に対し、指板上の指の位置を示すポジション候補を１乃至複数決定する候補決定処理と、
候補決定処理で決定されたポジション候補に対し、係数設定処理で設定した演奏特性係数を使用して、ポジション候補に対するポジション負荷を算出するポジション負荷算出処理と、
第１の演奏音に対応するポジション候補のポジション負荷と、第１の演奏音に隣接する第２の演奏音に対応するポジション候補のポジション負荷に基づき、移動負荷を算出し、算出された移動負荷に基づき、演奏音に対するポジション候補の内、１のポジション候補をポジションとして決定するポジション決定処理と、を情報処理装置に実行させ、
ポジション決定処理は、所定範囲の演奏音に対応するポジション候補の組み合わせについて移動負荷を算出し、所定範囲を拡大していくことで、最終的に楽曲全体における移動負荷を算出する工程を有し、
工程中、算出された移動負荷が所定条件を満たしていないポジション候補の組み合わせを、移動負荷算出の対象から外すことを特徴とする。
【００１０】
また本発明に係る運指決定プログラムは、
演奏情報を記憶部から読み出す読出処理と、
演奏特性係数を設定する係数設定処理と、
読出処理で読み出された演奏情報中の１演奏音に対し、指板上の指の位置を示すポジション候補を１乃至複数決定する候補決定処理と、
候補決定処理で決定されたポジション候補に対し、係数設定処理で設定した演奏特性係数を使用して、ポジション候補に対するポジション負荷を算出するポジション負荷算出処理と、
第１の演奏音に対応するポジション候補のポジション負荷と、第１の演奏音に隣接する第２の演奏音に対応するポジション候補のポジション負荷に基づき、移動負荷を算出し、算出された移動負荷に基づき、演奏音に対するポジション候補の内、１のポジション候補をポジションとして決定するポジション決定処理と、を情報処理装置に実行させ、
ポジション決定処理は、所定範囲の演奏音に対応するポジション候補の組み合わせについて移動負荷を算出し、所定範囲を拡大していくことで、最終的に楽曲全体における移動負荷を算出する工程を有し、
工程中、算出された移動負荷が所定条件を満たしていないポジション候補の組み合わせを、移動負荷算出の対象から外すことを特徴とする。
【００１１】
また本発明に係る運指決定プログラムは、
演奏情報を記憶部から読み出す読出処理と、
演奏特性係数を設定する係数設定処理と、
読出処理で読み出された演奏情報中の１演奏音に対し、指板上の指の位置を示すポジション候補を１乃至複数決定する候補決定処理と、
候補決定処理で決定されたポジション候補に対し、係数設定処理で設定した演奏特性係数を使用して、ポジション候補に対するポジション負荷を算出するポジション負荷算出処理と、
第１の演奏音に対応するポジション候補のポジション負荷と、第１の演奏音に隣接する第２の演奏音に対応するポジション候補のポジション負荷に基づき、移動負荷を算出し、算出された移動負荷に基づき、演奏音に対するポジション候補の内、１のポジション候補をポジションとして決定するポジション決定処理と、を情報処理装置に実行させ、
ポジション決定処理は、第１の演奏音に対応するポジション候補から、第２の演奏音に対応するポジション候補に移動する際の腕移動係数を使用して移動負荷を算出し、
腕移動係数は、第１の演奏音に対応するポジション候補中のフレット番号と、第２の音の演奏音に対応するポジション候補内のフレット番号の差分に基づく値であることを特徴とする。
【００１２】
また本発明に係る運指決定プログラムは、
演奏情報を記憶部から読み出す読出処理と、
演奏特性係数を設定する係数設定処理と、
読出処理で読み出された演奏情報中の１演奏音に対し、指板上の指の位置を示すポジション候補を１乃至複数決定する候補決定処理と、
候補決定処理で決定されたポジション候補に対し、係数設定処理で設定した演奏特性係数を使用して、ポジション候補に対するポジション負荷を算出するポジション負荷算出処理と、
第１の演奏音に対応するポジション候補のポジション負荷と、第１の演奏音に隣接する第２の演奏音に対応するポジション候補のポジション負荷に基づき、移動負荷を算出し、算出された移動負荷に基づき、演奏音に対するポジション候補の内、１のポジション候補をポジションとして決定するポジション決定処理と、を情報処理装置に実行させ、
ポジション決定処理は、第１の演奏音に対応するポジション候補から、第２の演奏音に対応するポジション候補に移動する際の弦移動係数を使用して移動負荷を算出し、
弦移動係数は、第１の演奏音に対応するポジション候補中の弦番号と、第２の音の演奏音に対応するポジション候補内の弦番号の差分に基づく値であることを特徴とする。
【００１３】
さらに本発明に係る運指決定プログラムは、
ポジション決定処理で決定したポジションに基づいて、タブ譜情報を出力する出力処理を情報処理装置に実行させることを特徴とする。
【発明の効果】
【００１４】
本発明に係る運指決定プログラムによれば、指係数、あるいは、フレット利用頻度係数等の演奏特性係数を使用することで、単なる効率的な運指ではなく、オリジナルアーティストの手癖を真似た運指、あるいは、初心者など、特定の指を動かしづらい利用者に適した運指を決定することが可能である。
【図面の簡単な説明】
【００１５】
【図１】本実施形態の運指決定システムを示すブロック図
【図２】本実施形態の楽曲情報、設定情報のデータ構成を示す図
【図３】左手の指番号を説明するための図
【図４】弦楽器（ギター）の指板を説明するための図
【図５】本実施形態の指係数、フレット利用頻度係数、異弦同フレット係数のデータ例を示す図
【図６】本実施形態のポジション候補決定処理を示すフロー図
【図７】本実施形態のポジション候補検索処理を示すフロー図
【図８】本実施形態の指番号割り当て処理を示すフロー図
【図９】ポジション決定処理の概要を説明するための図
【図１０】本実施形態のポジション決定処理を示すフロー図
【図１１】ポジション移動負荷の計算を説明するための図
【図１２】従来のプログラムを使用した出力例を示す図
【図１３】本実施形態のプログラムを使用した出力例（全係数非適用時）を示す図
【図１４】本実施形態のプログラムを使用した出力例（フレット間隔係数、左腕移動係数適用時）を示す図
【図１５】本実施形態のプログラムを使用した出力例（図１４＋異弦同フレット係数適用時）を示す図
【図１６】本実施形態のプログラムを使用した出力例（図１５＋フレット利用頻度係数適用時）を示す図
【図１７】本実施形態のプログラムを使用した出力例（図１６＋弦移動係数適用時）を示す図
【図１８】本実施形態のプログラムを使用した出力例（図１７＋小指出現率を下げた指係数適用時）を示す図
【発明を実施するための形態】
【００１６】
図１は、本実施形態の運指決定システムを示すブロック図である。本実施形態の運指決定システムは、パーソナルコンピューター等、各種情報処理装置１を有して構成されている。また、情報処理装置１には、各種情報を記憶するための記憶部２、情報処理装置１で形成された情報を印字出力するプリンター３が接続されている。本発明に係る運指決定プログラムは、この情報処理装置１で動作するプログラムである。運指決定プログラムは、記憶部２に記憶された各種情報を使用して、ギター、ベース等、各種弦楽器における指板上の運指を規定したタブ譜情報を出力する。本実施形態では、楽曲情報、及び、それに対応する設定情報が必要とされる。また、楽曲情報に代え、演奏を録音した音声情報を使用することも可能である。音声情報を使用する場合、運指決定プログラムにおいて音声情報から音程抽出処理（Ｓ００１）を実行することで、楽曲情報への変換が行われる。
【００１７】
図２は、本実施形態の楽曲情報、設定情報のデータ構成を示す図である。図２（ａ）に示されるように、楽曲情報は、楽曲ＩＤ、アーティストＩＤを含んで構成される属性情報、そして、演奏情報を含んで構成される。演奏情報は、ＭＩＤＩ規格に従ったＭＩＤＩ情報等を採用することが可能であり、実質、楽譜を規定する情報に相当する。本実施形態の運指決定プログラムは、この楽譜に相当する演奏情報から、弦楽器における運指を規定したタブ譜情報を形成する。このような演奏情報からタブ譜情報を形成するプログラムは、従前から存在している。本実施形態の運指決定プログラムは、各種演奏特性を規定する設定情報を使用してタブ譜情報を形成する点において異なっている。
【００１８】
図２（ｂ）には、運指決定プログラムがタブ譜情報を形成する際、使用する設定情報のデータ構成が示されている。本実施形態では、図２（ｂ１）に示される楽曲設定情報、図２（ｂ２）に示されるアーティスト設定情報の何れかが使用される。楽曲設定情報は、楽曲ＩＤで楽曲情報に対応付けられる。楽曲設定情報は、当該楽曲の演奏特性、使用する楽器の特性等を規定した情報である。アーティスト設定情報は、アーティストＩＤで楽曲情報に対応付けられる。アーティスト設定情報も楽曲設定情報と同様、当該楽曲の演奏特性、使用する楽器の特性等を規定した情報である。同じアーティストであっても楽曲によっては、演奏特性が異なる、あるいは、使用する弦楽器が異なる場合がある。本実施形態では、楽曲設定情報とアーティスト設定情報を使用して管理し、ある楽曲情報について処理を実行する場合、楽曲設定情報が存在する場合には、当該楽曲情報を優先して使用することで、楽曲個別に設定を行うことを可能としている。また、楽曲設定情報が存在しない場合には、アーティスト設定情報が使用される。
【００１９】
楽曲設定情報、アーティスト設定情報中には、チューニング情報、指係数、フレット利用頻度係数、異弦同フレット係数、弦本数、フレット数、フレット間隔係数、弦間隔係数、弦負荷係数が規定されている。チューニング情報は、使用する弦楽器のチューニング（各解放弦の音高）を規定した情報である。チューニング情報を使用することで、一般的なチューニングの他、変則的なチューニングにも対応することが可能である。指係数、フレット利用頻度係数、異弦同フレット係数は、運指決定プログラムで形成されたタブ譜情報を使用して演奏を行う利用者、もしくは、オリジナルアーティストの特性（「演奏特性」という）に関する情報である。指係数は、利用者による弦を押さえる指の使いやすさを示した情報である。フレット利用頻度係数は、指板上での押弦位置（弦とフレットが交差する箇所）の利用頻度を規定した情報である。異弦同フレット係数は、演奏音の変更に伴って弦を押さえる指を移動させる際、同じフレット内において同じ指で弦移動させる場合に使用される係数であって、各指と開放弦とする場合について設定された係数である。異弦同フレット係数は、後で説明する弦移動係数に対して指毎の重み付けを与えるものということもできる。
【００２０】
図３には、左手に割り振られた指番号が示されている。右利きの利用者の場合、左手で弦楽器の弦を押さえる（押弦）ことになるが、例えば、熟練した利用者の場合、各指を自在に動かして押弦することが可能であるものの、初心者にとって小指や薬指は動かし難い指として知られている。本実施形態では、このような事情を考慮し、タブ譜情報を利用する利用者の演奏特性を考慮することが可能である。図５（ａ）には、指係数のデータ例が示されている。押弦する各指について係数が割り当てられている。本実施形態の指係数は「１．００」を基準とし、この係数が大きくなるほど、形成するタブ譜情報中、対応する指の出現率が低くなる。例えば、動かし難い指の係数を大きく設定しておくことで、タブ譜情報での出現率を低下させ、初心者でも演奏しやすくすることが可能である。このような利用法以外に、楽曲のオリジナルアーティストの癖を真似ることも可能である。例えば、オリジナルアーティストが親指を積極的に使用して演奏を行う場合、親指の係数を他の指の係数よりも小さく設定しておくことで、オリジナルアーティストの癖を反映したタブ譜情報を形成することが可能である。
【００２１】
図４には、弦楽器（ギター）の指板を説明するための図である。指板にはフレットが設けられており、弦楽器に張られた弦との交差している。指板上の各位置を押弦することで、音程Ａ〜Ｇを奏でることが可能である。図４に示すチューニングは、ギターにおける標準的なチューニングであって、弦は弦番号の数値が大きいほど太い弦である。また、フレット番号は１３までしか図示していないが、実際にはそれ以上設けることも可能である。
【００２２】
弦楽器を使用する際は、図４に示す指板上で押弦して演奏することになるが、弦楽器では同じ音の高さの音が指板上に複数存在する。また、押弦する位置で音のニュアンスも異なるため、アーティストによっては好んで使用する押弦位置が異なる場合がある。また、同じアーティストであっても楽曲の雰囲気によって押弦位置を使い分ける場合もある。本実施形態のフレット利用頻度係数は、このような事情を考慮したものであり、各押弦位置についてその利用頻度を数値で規定している。図５（ｂ）には、フレット利用頻度係数のデータ例が示されている。本実施形態のフレット利用頻度係数は「１．００」を基準とし、この係数が大きい押弦位置ほど、形成するタブ譜情報中、当該押弦位置の出現率が低くなる。図５（ｂ）では、フレット番号と弦番号で規定される押弦位置について、「１．００」を白色で、「１．０５〜１．３０」までを薄い褐色で、「１．３５以上」を濃い褐色で示している。このようなフレット利用頻度係数を使用してタブ譜情報を形成した場合、濃い押弦位置程、出現頻度が低くなり、当該押弦位置と音の高さが同じ他の押弦位置が使用（代用）されることになる。図５（ｃ）には、異弦同フレット係数のデータ例が示されている。本実施形態の異弦同フレット係数は、開放弦とする場合の「１．００」を基準とし、同じフレット上で指を移動させる場合、利用し難い指ほど、数値が大きく設定されている。以上、説明した指係数、フレット利用頻度係数、異弦同フレット係数は、本発明における「演奏特性係数」に相当し、設定情報（楽曲設定情報、もしくは、アーティスト設定情報）を使用してユーザーが任意に設定できる。もしくは、情報処理装置１に設けられたキーボードやマウス等、各種入力手段を使用して、ユーザーが任意に設定できる。
【００２３】
設定情報中、弦本数、フレット数、フレット間隔係数、弦間隔係数、弦負荷係数は、利用者が使用する弦楽器の特性（楽器特性）を示す情報である。弦本数は、使用する弦楽器に設けられた弦の本数である。フレット数は使用する弦楽器に設けられたフレットの数である。フレット間隔係数は使用する弦楽器のフレット間隔に応じた値を有する。弦楽器においてフレットの間隔が大きい程、指を伸ばして押弦しなければならない等、演奏が難しくなることが考えられる。本実施形態では、フレット間隔が大きい弦楽器程、このフレット間隔係数を大きな値としている。弦間隔係数は使用する弦楽器の隣接した弦の間隔に対応した値である。弦の間隔が大きい弦楽器ほど、バレーコードが難しくなる等、演奏が難しくなることが考えられる。本実施形態では、弦間隔が大きい弦楽器程、この弦間隔係数を大きな値としている。弦負荷係数は、使用する弦によって設定される値である。同じ弦であっても太さ等、特性の異なる弦を使用する場合がある。本実施形態では、このような事情を考慮して、使用する弦に応じた弦負荷係数を設定している。例えば、太い弦は細い弦と比較して押弦に要する力が大きく必要となる。したがって、本実施形態では、弦が太い程、弦負荷係数を大きな値としている。
【００２４】
本実施形態の運指決定プログラムは、楽曲情報、設定情報に基づいて、弦楽器の指板上での運指を規定したタブ譜情報を形成する。そのため、運指決定プログラムは、図１に示すようにポジション候補決定処理（Ｓ１００）、ポジション決定処理（Ｓ２００）、タブ譜出力処理（Ｓ３００）を実行する。以下に、ポジション候補決定処理（Ｓ１００）、ポジション決定処理（Ｓ２００）の詳細を説明する。
【００２５】
図６は、本実施形態のポジション候補決定処理（Ｓ２００）を示すフロー図である。ポジション候補決定処理では、まず、記憶部２に記憶している楽曲情報を読み込む（Ｓ１０１）。そして、まず、楽曲情報中の楽曲ＩＤを参照し、楽曲情報に対応した楽曲設定ファイルを検索する（Ｓ１０２）。楽曲設定情報がある場合（Ｓ１０２：Ｙｅｓ）、当該楽曲設定情報を読み込む（Ｓ１０３）。一方、楽曲設定情報が無い場合（Ｓ１０２：Ｎｏ）、楽曲情報中のアーティストＩＤを参照し、楽曲情報に対応したアーティスト設定情報を検索する（Ｓ１０４）。アーティスト設定情報がある場合（Ｓ１０４：Ｙｅｓ）、当該アーティスト設定情報を読み込む（Ｓ１０５）。このように本実施形態では、楽曲設定情報を優先して読み込むことで、アーティストに関する設定よりも楽曲個別の設定を優先することを可能としている。また、アーティスト設定情報が無い場合（Ｓ１０４：Ｎｏ）には、タブ譜情報を形成するために最低限必要となるチューニング情報を、演奏情報中に使用される最高音、最低音等を使用して推定する（Ｓ１０６）。この場合、他の設定については標準的な設定が使用される。このような形態に代え、エラーを出力する、設定情報の設定をユーザーに促す等してもよい。
【００２６】
なお、本実施形態では、設定情報を読み込むことで各種係数を設定することとしており、ユーザーが設定情報を書き換えることで各種係数を設定することが可能である。このような設定情報を読み込む形態に代え、タブ譜情報作成時に、各係数を設定できるユーザーインターフェイスを使用することとしてもよい。
【００２７】
次に、設定情報（楽曲設定情報あるいはアーティスト設定情報）中、チューニング情報、弦本数、フレット数を使用して、図４に示すような指板上の押弦位置に対し音高を配置したチューニング配列を生成する（Ｓ１０７）。そして、演奏情報中、あるタイミングで演奏すべき演奏音（単音と和音の場合あり）について、押弦位置候補と、押弦位置候補に対し指番号が割り当てられポジション候補を決定する。本実施形態では、演奏情報の小節単位で、各演奏音についてポジション候補を決定する。まず、小節番号Ｎを初期化（Ｓ１０８）して、１小節目に含まれる演奏音を抽出する（Ｓ１０９）。そして、演奏音番号Ｍを初期化（Ｓ１１０）して、１小節目内の１番目の演奏音を抽出する（Ｓ１１１）。そして、抽出した演奏音について、押弦位置候補を検索する押弦位置候補検索処理（Ｓ１３０）、押弦位置候補検索処理で検索された押弦位置候補に対して、指番号を割り当ててポジション候補を決定する指番号割り当て処理（Ｓ１５０）を実行する。Ｓ１１１〜Ｓ１１４を繰り返し実行することで、Ｍ番目の小節内の全ての演奏音についてポジション候補が決定する。また、Ｓ１０９〜Ｓ１１６を繰り返し実行することで、演奏情報中の全ての演奏音についてポジション候補が決定する。
【００２８】
図７は、本実施形態の押弦位置候補検索処理（Ｓ１３０）を示すフロー図である。演奏音には、単音の場合、和音の場合があるが、ここでは単音の場合を説明する。まず、設定情報中に設定されている使用する弦楽器の弦本数を設定し、最も弦番号の大きい弦が検索対象弦として設定される（Ｓ１３１）。本実施形態では、図４に示す指板中、弦番号の大きい弦から順に押弦位置候補を行うこととしている。そして、検索対象弦について、０フレットから最大フレット（設定情報中のフレット数）まで、演奏音に対応する押弦位置の検索を行う（Ｓ１３２）。検索課程において検索対象となる演奏音と一致した場合（Ｓ１３３：一致あり）には、弦番号と、フレット番号を押弦位置候補として格納し（Ｓ１３４）、弦番号を１減らして（Ｓ１３６）、検索対象弦を変更する（Ｓ１３６）。また、検索対象となる演奏音と一致しなかった場合（Ｓ１３３：一致無し）には、弦番号を１減らして（Ｓ１３６）、検索対象弦を変更する（Ｓ１３６）。また、検索対象弦が最小限番号となった場合（Ｓ１３５：Ｙｅｓ）、一致箇所の有無の確認が行われる（Ｓ１３６）。一致箇所が無かった場合、すなわち、演奏音に対応する押弦位置候補が指板上で見つからなかった場合（Ｓ１３７：Ｙｅｓ）には、エラー出力を行うことでユーザーに通知する（Ｓ１３８）、押弦位置候補検索処理（Ｓ１３０）を終了する。押弦位置候補が１以上見つかった場合（Ｓ１３７：Ｎｏ）は、そのまま押弦位置候補検索処理（Ｓ１３０）を終了する。
【００２９】
以上、演奏音が単音の場合における押弦位置候補検索処理（Ｓ１３０）について説明したが、演奏音が和音の場合には、和音を構成する各単音について同様の処理を実行することで、和音を構成する各単音について押弦位置候補を検索する。その後、各単音の押弦位置候補を組み合わせることで、和音に対する押弦位置候補が決定されることになる。
【００３０】
図８は、本実施形態の指番号割り当て処理（Ｓ１５０）を示すフロー図である。指番号割り当て処理（Ｓ１５０）では、押弦位置候補検索処理（Ｓ１３０）で検索された押弦位置候補に対して、指番号を割り当てることでポジション候補が決定される。ここでは、単音の場合における指番号割り当て処理（Ｓ１５０）について説明する。まず、対象となる演奏音について検索された１の押弦位置候補が読み出される（Ｓ１５１）。そして、指番号Ｊを初期化（Ｓ１５２）した後、押弦位置候補に指番号Ｊを割り当てる。（Ｓ１５３）。次に、指番号Ｊに対応する指係数を設定情報から取得する（Ｓ１５４）。そして、押弦位置候補に対応したフレット利用頻度係数を設定情報から取得する（Ｓ１５５）。そして、押弦位置候補に対応したフレット間隔係数を設定情報から取得する（Ｓ１５６）。そして、押弦位置候補の弦番号に対応した弦負荷係数を設定情報から取得する（Ｓ１５７）。最後にＳ１５４〜Ｓ１５７で取得した係数を全て掛け合わせ、ポジション候補に対応するポジション負荷が算出される（Ｓ１５８）。
【００３１】
指番号Ｊを順次変更して（Ｓ１６０）、指番号Ｊが４（小指）となるまで、Ｓ１５３〜Ｓ１５８を繰り返し実行することで、押弦位置候補に対して指番号を割り当てたポジション候補、並びに、当該ポジション候補に対するポジション負荷が算出される。演奏音に対して検索された各押弦位置候補に対して、Ｓ１５１〜Ｓ１６０の処理を繰り返し実行することで、ある演奏音に対して検索された押弦位置候補に対応するポジション候補、並びに、当該ポジション候補に対するポジション負荷が算出されることになる。
【００３２】
以上、演奏音が単音の場合の指番号割り当て処理（Ｓ１５０）について説明したが、演奏音が和音の場合には、和音中を構成する各単音に対して指番号を割り当てることで、和音におけるポジション候補を決定し、各単音について算出されたポジション負荷を掛け合わせることで、和音についてのポジション負荷が算出される。和音における指番号の割り当ては、例えば、フレット番号が大きく弦番号が小さい押弦位置候補から順に、指番号の大きい指を割り当てていくこと等が考えられる。その際には、複数の弦を１つの指で押弦するセーハ奏法等の特殊事情を考慮して、指番号を割り当てることが好ましい。
【００３３】
ポジション候補決定処理（Ｓ１００）では、押弦位置候補検索処理（Ｓ１３０）と指番号割り当て処理（Ｓ１５０）を実行することで、演奏情報中の各演奏音に対応するポジション候補とそのポジション負荷が決定される。次に実行するポジション決定処理（Ｓ２００）では、最適となるポジション候補の組み合わせを決定する。ところで、押弦位置候補検索処理（Ｓ１３０）では、１の演奏音に対して複数の押弦位置候補が検索され、更に指番号割り当て処理（Ｓ１５０）では、押弦位置候補に対して指番号の組み合わせが加わることとなり、１の演奏音に対応するポジション候補は多数となる場合がある。このような１の演奏音に対応して多数のポジション候補の存在が考えられる中、楽曲全体でポジション候補の組み合わせを検討すると、その組み合わせは膨大な数となる場合がある。本実施形態のポジション決定処理（Ｓ２００）では、このような事情を考慮して、ポジション候補間の移動負荷が所定条件を満たさない場合には、当該ポジション候補の組み合わせを除外することで、演算数の削減を図り効率的にポジションを決定することとしている。
【００３４】
図９は、ポジション決定処理（Ｓ２００）の概要を説明するための図である。ここでは、説明を簡単にするため、楽曲が８つの演奏音で構成されている場合について説明する。また、各演奏音のポジション候補の数は、実際の数よりも少ないものとしている。本実施形態では、まず、隣接するポジション候補間について、移動負荷が計算される。移動負荷とは、各ポジション候補とそのポジション負荷を使用し、ある演奏音から次の演奏音に移動する負荷であって、各ポジション候補とそのポジション負荷を使用して算出される値である。まず、１階層の計算では、第１演奏音と第２演奏音間（１−１）、第３演奏音と第４演奏音間（１−２）、第５演奏音と第６演奏音間（１−３）、第７演奏音と第８演奏音間（１−４）のポジション負荷が算出される。例えば、第１演奏音と第２演奏音間（１−１）については、第１演奏音の３通りのポジション候補と第２演奏音の４通りのポジション候補間で合計１２通りの組み合わせが存在する。１階層の計算では、全ての組み合わせについてポジション負荷が計算される。
【００３５】
そして、計算されたポジション負荷中、所定条件を満たしていないポジション候補の組み合わせが除外される。本実施形態では、ポジション負荷が大きい値であるほど、演奏が困難であることに相当している。そのため、ポジション負荷の小さい順に組み合わせを並べた際、所定順位（あるいは全体の所定パーセント）以内か以外かという条件を使用して、ポジション候補の組み合わせをポジション決定の候補から除外する。そして、２階層の計算、すなわち、第１演奏音から第４演奏音間（２−１）、第５演奏音から第８演奏音間（２−２）の組み合わせについてポジション負荷を算出する。例えば、第１演奏音から第４演奏音間（２−１）では、第１階層の計算において、第１演奏音と第２演奏音間（１−１）と、第３演奏音と第４演奏音間（１−１）間の移動負荷を計算済みであるため、これに第２演奏音と第３演奏音間の移動負荷を加えることで計算できる。また、第２階層の計算では、第１階層の計算で除外した組み合わせについては、移動負荷を計算しないことで計算量の削減が図られている。
【００３６】
第２階層の計算においても所定条件を満たしていないポジション候補の組み合わせが除外される。そして、最後に楽曲全体となる第１演奏音から第８演奏音（３）の組み合わせについて移動負荷の計算が行われる。第３階層では、第１階層、第２階層の計算結果を使用し、第４演奏音と第５演奏音の移動負荷を新たに計算することで、ポジション候補の組み合わせ毎に移動負荷が算出できる。この楽曲全体の移動負荷が最も小さいポジション候補の組み合わせを、タブ譜情報に使用するポジションとして決定する。
【００３７】
以上、図９に示す簡易例の説明を行ったが、実際のポジション決定処理（Ｓ２００）について図１０のフロー図を用いて説明を行う。まず、対象となる所定範囲の演奏音のポジション候補を取得する（Ｓ２０１）。図９の簡易例の場合、第１演奏音と第２演奏音がこれに相当する。そして、ポジション候補間の組み合わせを抽出する（Ｓ２０２）。そして、抽出したポジション候補間の組み合わせについて移動負荷の計算を行う（Ｓ２０３）。
【００３８】
図１１は、ポジション移動負荷の計算を説明するための図である。演奏音には単音の場合、和音の場合があるため、（ａ）単音間、（ｂ）和音間、（ｃ）単音と和音間の３通りの形態が存在する。図１１（ａ）は、単音間ポジション移動時の例であって、４弦９フレットを指番号３（薬指）で押弦している状態から、２弦５フレットを指番号１（人差し指）で押弦している状態にポジション移動する例である。本実施形態では、以下の計算式（１）を使用して移動負荷が求められる。
移動負荷＝Ｐ１×Ａ×Ｂ×Ｃ×Ｄ×Ｐ２    ・・・（１）
腕移動係数が０で、弦移動係数が０以外の場合には、
移動負荷＝Ｐ１×Ａ×Ｂ×Ｃ×Ｄ×Ｅ×Ｐ２・・・（１）
但し、
Ｐ１：ポジション負荷（移動元）
Ｐ２：ポジション負荷（移動先）
Ａ：  腕移動係数
Ｂ：  弦移動係数
Ｃ：  音値係数
Ｄ：  ＢＰＭ係数
Ｅ：異弦同フレット係数
【００３９】
ここで、ポジション負荷Ｐ１は、移動元（図１１（ａ）の例では、４弦９フレット）におけるポジション負荷であり、ポジション負荷Ｐ２は、移動先（図１１（ａ）の例では、２弦５フレット）におけるポジション負荷である。また、腕移動係数Ａは、押弦位置の移動に関する係数であって、以下の計算式（１−１）で求められる。
腕移動係数Ａ＝｜（Ｆ２−Ｆ１）−（Ｙ２−Ｙ１）｜    ・・・（１−１）
但し、
Ｆ１：移動元フレット番号
Ｆ２：移動先フレット番号
Ｙ１：移動元指番号
Ｙ２：移動先指番号
【００４０】
例えば、図１１（ａ）の例では、腕移動係数Ａは｜（５−９）−（１−３）｜＝２として計算される。
【００４１】
また、弦移動係数は、弦を押さえる指の移動に関する係数であって、以下の計算式（１−２）で求められる。
弦移動係数Ｂ＝｜Ｇ２−Ｇ１｜
但し、
Ｇ１：移動元弦番号
Ｇ２：移動先弦番号
【００４２】
例えば、図１１（ａ）の例では、弦移動係数Ｂは｜２−４｜＝２として計算される。音値係数は、移動元の演奏音の音符長に相当する値である。異弦同フレット係数は、演奏音の変更に伴い弦を押さえる指を移動させる際、同じフレット内において同じ指で弦移動させる場合に使用される係数であって、各指と開放弦とする場合について設定された係数である。異弦同フレット係数は、弦移動係数に対して指毎の重み付けを与えるものということもできる。なお、また、ＢＰＭは移動元の演奏音におけるテンポ（Beat Per Minute）に相当する値である。音値係数及びＢＰＭは演奏情報から取得することが可能である。
【００４３】
図１１（ｂ）は、和音間ポジション移動時の例である。和音から和音に移動する場合、指毎に計算式（１）を使用した移動負荷を算出し、各指について算出された移動負荷を掛け合わせることで和音についての移動負荷が算出される。但し、各指についての計算となるため、計算式（１−１）中、指の移動（Ｙ２−Ｙ１）の項は使用しない。また、移動元もしくは移動先のフレットが０フレットの場合、計算式（１）中、各係数Ａ、Ｂ、Ｃ、Ｄの値は固定（例えば「１」）とする。また、移動元の和音と移動先の和音間に共通する指が無いときは、他の指の押弦位置に基づいて仮想の押弦位置が設定される。例えば、図１１（ｂ）の例では、移動先に無い中指（指番号２）の押弦位置を、移動先の薬指（指番号３）、小指（指番号４）の位置に基づいて４弦８フレットに設定する。したがって、中指については、腕移動係数Ａは｜８−３｜＝５として計算される。
【００４４】
図１１（ｃ）は、和音から単音へのポジション移動時の例である。和音間と同様、各について計算された移動負荷を掛け合わせることでポジション間の移動負荷が算出される。和音間の計算と同様、計算式（１−１）中、指の移動（Ｙ２−Ｙ１）の項は使用しない。また、単音側のフレットが０フレットである場合、指の動きとしては、押さえるもしくは離すのみの動きであって移動に余裕があるため、計算式（１）中、各係数Ａ、Ｂ、Ｃ、Ｄの値は固定（例えば「１」）とする。また、和音側と単音間に共通する指が無いときは、他の指の押弦位置に基づいて仮想の押弦位置が設定される。
【００４５】
以上のような計算方法により、各ポジション候補間における移動負荷が算出される（Ｓ２０４）。所定範囲の演奏音について、対象となるポジション候補の組み合わせ（例えば、第１演奏音と第２演奏音間（１−１）の場合、３×４＝１２通りの組み合わせ）の移動負荷の算出が完了した場合（Ｓ２０４：Ｙｅｓ）、計算された移動負荷に基づいて、除外するポジション候補の組み合わせを決定する（Ｓ２０５）。除外の対象となる組み合わせは、前述したようにポジション負荷の小さい順に組み合わせを並べた際、所定順位（あるいは全体の所定パーセント）以下であることを条件とすることなどが考えられる。この他、ポジション負荷が閾値よりも大きいこと等を条件としてもよい。対象外となったポジション候補の組み合わせは、所定範囲を拡大して再度、当該範囲を含んで行われる移動負荷の計算（Ｓ２０４）から除外される。
【００４６】
そして、楽曲中、全ての所定範囲を完了したか否かが判定される（Ｓ２０６）。これは、図９で説明した同じ階層における計算が完了したか否かの判定に相当している。例えば、第１階層の計算については、第１演奏音と第２演奏音間（１−１）、第３演奏音と第４演奏音間（１−２）、第５演奏音と第６演奏音間（１−３）、第７演奏音と第８演奏音間（１−４）について、計算が完了したかに相当し、第２階層については、第１演奏音から第４演奏音（２−１）、第５演奏音から第８演奏音の計算が完了したかに相当する。楽曲中、全ての所定範囲の計算を完了していない場合（Ｓ２０６：Ｎｏ）、同じ階層中の異なる所定範囲に変更（Ｓ２０７）し、当該所定範囲の計算を行う。一方、楽曲中全ての所定範囲の計算を完了した場合（Ｓ２０６：Ｙｅｓ）、所定範囲を拡大、すなわち、階層を変更（Ｓ２０９）して計算を行う。例えば、第１階層の計算（１−１〜１−４）が完了した場合、第２階層の計算に取りかかる。また、第２階層の計算（２−１、２−２）が完了した場合、楽曲全体の第３階層の計算に取りかかる。そして、楽曲全体を所定範囲とする計算が完了した場合（Ｓ２０８：Ｙｅｓ）、そして、楽曲全体におけるポジション候補の組み合わせ中、最も移動負荷が小さいポジション候補の組み合わせを選択し、タブ譜情報で使用するポジションとして決定する（Ｓ２１０）。
【００４７】
このように、ポジション決定処理では、所定範囲を拡大していく過程において、条件を満たさないポジション候補の組み合わせを対象から除外することで、膨大なポジション候補の組み合わせの数となることを抑制し、計算量の削減を図っている。ポジション候補の所定範囲は、本実施形態のように、楽曲全体において隣接する演奏音間を最初の所定範囲（第１階層）に設定し、その組み合わせを拡大していくこととしている。このような形態以外に、例えば、楽曲の先頭から順次、演奏音の組み合わせを拡大する形態も考えられる。本実施形態では、このような形態と比較して、楽曲全体でバランスよく、最良のポジション候補の組み合わせを決定する点において優れた形態となっている。
【００４８】
ポジション決定処理（Ｓ２００）で決定されたポジション候補は、タブ譜出力処理（Ｓ３００）において、記憶部２にタブ譜情報として格納される、あるいは、プリンター３に印字出力される。
【００４９】
本実施形態の運指決定プログラムに関するタブ譜情報について例を取って説明する。図１２は、従来のプログラムを使用したタブ譜情報の出力例を示す図である。なお、この従来のプログラムでは、指番号を割り当てる機能は有していない。この従来のプログラムでは、押弦位置がフレット間隔の広い低フレット番号に割り当てられており、例えば、高いフレット位置で演奏する演奏者の演奏形態としては不適切である。また、弦移動や１本の弦での移動が多く、運指が非効率となっている。また、楽譜中、最後に位置する和音の運指も適切とはいえない。
【００５０】
図１３から図１８は、本実施形態のプログラムを使用したタブ譜情報の出力例であって、順に使用する係数を実施形態に近づくようにした形態となっている。まず、図１３は、全係数非適用時のタブ譜情報の出力例である。１小節目において弦番号の大きい弦（６弦）内での移動が高くなっている。また、３小節目では弦を跨いだ移動が多く、運指が非効率となっている。また、押弦位置候補検索処理で説明したように、弦番号の大きい弦（低音弦）から割り当てられるため、全体として低音弦、高フレットが割り当てられているため、演奏性が低くなっている。また、全ての押弦が指番号１（人差し指）となってしまっている。
【００５１】
図１４は、図１３に対し、フレット間隔係数、腕移動係数を適用したときのタブ譜情報の出力例である。図１３と比較して１本の弦内での移動は無く、演奏の効率は改善されたものの、２小節目において小指での異弦間の同フレット移動が発生（破線枠Ａ）すると共に、３小節目において、弦を跨ぐ移動が発生（破線枠Ｂ）しており、運指が非効率となっている。
【００５２】
図１５は、図１４に対し、異弦同フレット係数を適用したときのタブ譜情報の出力例である。異弦同フレット係数を適用することで、図１４で説明した小指での異弦間の同フレット移動（破線枠Ｃ）は解消されている。また、３小節目以降、押さえづらい低音弦の高フレットとポジション遷移してしまっており、図１４の場合と同様、弦を跨ぐ移動（破線枠Ｄ）が引き続き発生している。
【００５３】
図１６は、図１５に対し、フレット利用頻度係数を適用したときのタブ譜出力例である。フレット利用頻度係数を適用することで、押さえづらい低音弦の高フレットポジションへの遷移は解消している。また、３小節目の弦を跨ぐ移動（破線枠Ｅ）が引き続き発生している。また、３小節目と４小節目間の移動距離（破線枠Ｆ）が大きくなっている。
【００５４】
図１７は、図１６に対し、弦移動係数を適用したときのタブ譜出力例である。図１６以前に発生した弦を跨ぐ移動が解消している。また、３小節目と４小節目間の移動距離も自然な形態となっており、全体として効率的なタブ譜情報となっている。
【００５５】
図１８は、図１７に対し、小指出現率を下げた指係数を適用したときのタブ譜情報の出力例である。タブ譜情報中、破線枠Ｇ、Ｈで囲んだ箇所について、図１７の場合と比較して小指（指番号４）の出現率が抑えられている。このようなタブ譜情報は、負担の少ない運指となっており、初心者に対して好適な形態となっている。
【００５６】
以上、本発明に係る運指決定プログラムについて説明したが、本発明の運指決定プログラムは、指係数、あるいは、フレット利用頻度係数等の演奏特性係数を使用することで、単なる効率的な運指ではなく、オリジナルアーティストの手癖を真似た運指、あるいは、初心者など、特定の指を動かしづらい利用者に適した運指を決定することが可能である。
【符号の説明】
【００５７】
１：情報処理装置                      ２：記憶部
３：プリンター
【図１】
0006632447.tif 000002
【図２】
0006632447.tif 000003
【図３】
0006632447.tif 000004
【図４】
0006632447.tif 000005
【図５】
0006632447.tif 000006
【図６】
0006632447.tif 000007
【図７】
0006632447.tif 000008
【図８】
0006632447.tif 000009
【図９】
0006632447.tif 000010
【図１０】
0006632447.tif 000011
【図１１】
0006632447.tif 000012
【図１２】
0006632447.tif 000013
【図１３】
0006632447.tif 000014
【図１４】
0006632447.tif 000015
【図１５】
0006632447.tif 000016
【図１６】
0006632447.tif 000017
【図１７】
0006632447.tif 000018
【図１８】
0006632447.tif 000019