(57)【要約】【課題】画面上に表示された多段構成の楽譜を簡単な操作で部分的あるいは全体的に再生することのできる楽譜演奏装置を提供する。【解決手段】楽譜演奏装置に設けられたＣＰＵ１１は、複数の段からなり、所定の楽曲を表した楽譜を画面上に表示する楽譜表示部１１ａと、画面上の任意の位置が指示された際に、その指示位置に応じて楽譜の複数の一部あるいは全体で表された楽曲を演奏対象として再生する再生制御部１１ｂとを備える。【選択図】図２
2014186224.tif 000002
【特許請求の範囲】
【請求項１】
複数の段からなり、所定の楽曲を表わした楽譜を画面上に表示する楽譜表示手段と、
上記画面上の任意の位置を指示する指示手段と、
上記指示手段によって指示された位置に応じて上記楽譜の上記複数の段の一部あるいは全体で表された楽曲を演奏対象として再生する再生制御手段と
を具備したことを特徴とする楽譜演奏装置。
【請求項２】
上記再生制御手段は、
上記指示手段によって指示された位置が上記楽譜の上記複数の段のいずれかに対応していた場合には当該段で表された楽曲を演奏対象として選択して再生することを特徴とする請求項１記載の楽譜演奏装置。
【請求項３】
上記再生制御手段は、
上記指示手段によって指示された位置が上記楽譜の上記複数の段の間に対応していた場合には上記楽譜の上記複数の段のすべてで表された楽曲を演奏対象として選択して再生することを特徴とする請求項１または２に記載の楽譜演奏装置。
【請求項４】
上記再生制御手段は、
上記指示手段によって指示された位置の移動に伴い、当該指示位置の移動に対応して楽譜で表された楽曲を連続的に再生することを特徴とする請求項１から３のいずれかに記載の楽譜演奏装置。
【請求項５】
上記再生制御手段は、
上記指示手段によって指示された位置の移動が上記楽譜の後ろから前への方向の移動であった場合に、当該指示位置の移動に対応して楽譜で表された楽曲を逆方向に再生することを特徴とする請求項１から４のいずれかに記載の楽譜演奏装置。
【請求項６】
上記再生制御手段は、
上記指示手段によって指示された位置の移動が上記楽譜の後ろから前への方向の移動であった場合に、当該移動によってある音符の通常時の消音タイミングに相当する位置を通過した際に、当該音符を発音させるとともに、当該移動によってある音符の通常時の発音タイミングに相当する位置を通過した際に、当該音符を消音させることを特徴とする請求項５記載の楽譜演奏装置。
【請求項７】
複数の段からなり、所定の楽曲を表わす楽譜を画面上に表示するステップと、
上記画面上の任意の位置を指示するステップと、
上記指示された位置に応じて上記楽譜の上記複数の段の一部あるいは全体で表された楽曲を演奏対象として再生するステップと
を備えたことを特徴とする楽譜演奏方法。
【請求項８】
コンピュータによって実行される楽譜演奏のためのプログラムであって、
上記コンピュータに、
複数の段からなり、所定の楽曲を表わす楽譜を画面上に表示する機能と、
上記画面上の任意の位置を指示する機能と、
上記指示された位置に応じて上記楽譜の上記複数の段の一部あるいは全体で表された楽曲を演奏対象として再生する機能と
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面上に表示された楽譜を演奏する楽譜演奏装置、楽譜演奏方法及びプログラムに関する。
【背景技術】
【０００２】
従来、タッチパネルを備えた楽譜演奏装置において、画面上に表示された楽譜の任意の位置をユーザがタッチすることで、そのタッチした位置から楽譜の演奏を開始する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２１５６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した特許文献１では、ユーザのタッチ操作により演奏ポインタを移動させることで、その演奏ポインタの移動に応じたタイミングで楽譜上の各音符を発音することができる。しかしながら、通常、楽曲の楽譜は複数の楽譜の段により記譜されているのが一般的である。
【０００５】
例えば、ピアノの楽曲では、右手パートと左手パートの２段の五線譜によって記譜されていることが一般的であるし、オーケストラや合奏・合唱譜、さらにはバンドスコアなどの楽譜では、各種楽器別に五線譜が付された多段構成の楽譜が用いられている。このような場合に、例えば右手パートの演奏がどのようになっているのか、ある一つの楽器の音がどのような演奏をしているかなどを確認しながら読譜したり練習したりすることは、上記特許文献１の技術では実現されていなかった。
【０００６】
本発明は上記のような点に鑑みなされたもので、画面上に表示された多段構成の楽譜を簡単な操作で部分的あるいは全体的に再生することのできる楽譜演奏装置、楽譜演奏方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る楽譜演奏装置は、複数の段からなり、所定の楽曲を表わした楽譜を画面上に表示する楽譜表示手段と、上記画面上の任意の位置を指示する指示手段と、上記指示手段によって指示された位置に応じて上記楽譜の上記複数の段の一部あるいは全体で表された楽曲を演奏対象として再生する再生制御手段とを具備したことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、画面上に表示された多段構成の楽譜を簡単な操作で部分的あるいは全体的に再生することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は本発明の一実施形態に係る演奏システムの構成を示すブロック図である。
【図２】図２は同実施形態における演奏システムのＰＣに備えられたＣＰＵの機能構成を示すブロック図である。
【図３】図３は同実施形態における演奏システムの表示画面に関する制御変数を示す図である。
【図４】図４は同実施形態における演奏システムの楽譜画像に関する制御変数を示す図である。
【図５】図５は同実施形態における演奏システムの小節情報の構成を示す図である。
【図６】図６は同実施形態における演奏システムの演奏情報の構成を示す図である。
【図７】図７は同実施形態における演奏システムの楽譜画像の表示画面の一例を示す図である。
【図８】図８は同実施形態における演奏システムの両パート選択時の画面状態を示す図である。
【図９】図９は同実施形態における演奏システムの右パート選択時の画面状態を示す図である。
【図１０】図１０は同実施形態における演奏システムの左パート選択時の画面状態を示す図である。
【図１１】図１１は同実施形態における演奏システムのＰＣ（ＣＰＵ）によって実行されるメイン処理を示すフローチャートである。
【図１２】図１２は上記図１１のステップＡ１３で実行される楽譜画像表示処理を示すフローチャートである。
【図１３】図１３は同実施例における楽譜画像として用いられる元画像とディスプレイ画面４２との関係を示す図である。
【図１４】図１４は上記図１１のステップＡ１７で実行される再生処理を示すフローチャートである。
【図１５】図１５は上記図１４のステップＣ１２で実行される時刻取得処理を示すフローチャートである。
【図１６】図１６は上記図１５のステップＤ１３で実行される小節番号取得処理を示すフローチャートである。
【図１７】図１７は同実施形態におけるユーザの指示位置と小節の領域との関係を説明するための図である。
【図１８】図１８は上記図１５のステップＤ１４で実行される小節内時刻処理を示すフローチャートである。
【図１９】図１９は同実施形態における指示位置と小節内時刻との関係を説明するための図である。
【図２０】図２０は上記図１４のステップＣ１５で実行される発音判断処理を示すフローチャートである。
【図２１】図２１は上記図２０のステップＧ１６で実行される順方向発音／消音処理を示すフローチャートである。
【図２２】図２２は上記図２０のステップＧ１７で実行される逆方向発音／消音処理を示すフローチャートである。
【図２３】図２３は同実施形態における順方向移動時の消音／発音のタイミングを示す図である。
【図２４】図２４は同実施形態における逆方向移動時の消音／発音のタイミングを示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施形態について説明する。
【００１１】
図１は本発明の一実施形態に係る演奏システムの構成を示すブロック図である。
【００１２】
この演奏システムは、ＰＣ（パーソナルコンピュータ）１０と電子楽器２０とで構成される。ＰＣ１０は、本発明の楽譜演奏装置として用いられる。ＰＣ１０には、主制御部であるＣＰＵ１１と、このＣＰＵ１１に接続されるＲＡＭ１２、ＲＯＭ１３、入力部１４、表示部１５、ＭＩＤＩインタフェース（Ｉ／Ｆ）１６などが設けられている。
【００１３】
ＣＰＵ１１は、ＲＯＭ１２に記憶された各種プログラム１２ａを起動し、入力部１４から入力されるイベントに従って各種処理を実行する。本実施形態において、このＣＰＵ１１には、本発明の楽譜演奏装置を実現するための各種機能が備えられている（図２参照）。
【００１４】
ＲＡＭ１２には、ＣＰＵ１１の処理に必要な各種データが記憶される。このＲＡＭ１２には、後述する楽譜の画像データや演奏情報などが記憶される。ＲＯＭ１３には、各種プログラム１２ａなどが記憶されている。上記各種プログラム１２ａには、本発明の楽譜演奏制御用のプログラムも含まれる。
【００１５】
入力部１４は、例えばキーボードやマウスなどの入力デバイスであり、ユーザの入力操作に対応したイベントを発生してＣＰＵ１１に与える。表示部１５は、例えばＬＣＤ（Liquid Crystal Display）等のカラー表示可能な表示デバイスからなり、所定サイズの画面を有する。ここで、本実施形態では、入力部１４としてタッチパネルを用い、そのタッチパネルが表示部１５の画面上に載置された構成を想定している。
【００１６】
ＭＩＤＩインタフェース１６は、ＭＩＤＩ（musical instrument digital interface）規格の電子楽器２０との間で信号の入出力処理を行う。
【００１７】
電子楽器２０としては電子ピアノが用いられる。この電子楽器２０は、所定音高数分の鍵を有するキーボード２１と、電子楽器２０とＰＣ１０との間の信号の入出力処理を行うＭＩＤＩインタフェース２２と、様々な楽音を発生可能な音源・サウンドシステム２３とを備える。
【００１８】
図２はＣＰＵ１１の機能構成を示すブロック図である。ＣＰＵ１１には、本発明の楽譜演奏装置に関わる機能構成として、楽譜表示部１１ａと再生制御部１１ｂが設けられている。
【００１９】
楽譜表示部１１ａは、複数の段からなり、所定の楽曲を表した楽譜を画面上に表示する。再生制御部１１ｂは、上記画面上の任意の位置が指示された際に、その指示位置に応じて楽譜の各段の一部あるいは全体で表された楽曲を演奏対象として再生する。
【００２０】
このような構成において、ＲＡＭ１２などに記憶された楽譜の画像データが表示部１５の画面上に表示される。ユーザが画面上の任意の位置をタッチ操作により指示すると、その指示された位置に対応した楽譜の音符が再生出力される。この場合、楽譜の各音符の演奏情報はＲＡＭ１２などに記憶されており、そこから指示位置に対応した音符の演奏情報が読み出されて再生出力される。
【００２１】
図３は表示画面に関する制御変数を示す図である。
【００２２】
表示画面に関する制御変数として、「表示中のページ」，「前回の指示時刻」，「ディスプレイ上のｘ方向楽譜表示開始座標」，「ディスプレイ上のｙ方向楽譜表示開始座標」，「ディスプレイ上の楽譜表示幅」，「ディスプレイ上の楽譜表示高さ」，「ページ数」，「各ページの画像データ」，「元画像に対する表示倍率」，「元画像のｘ方向表示開始座標」，「元画像のｙ方向表示開始座標」，「元画像のｘ方向の表示幅」，「元画像のｙ方向の表示幅」が図３に示すような変数で定義されている。これらの変数に関するデータは、例えばＲＡＭ１２内の図示せぬ表示画面制御領域に記憶されている。
【００２３】
図４は楽譜画像に関する制御変数を示す図である。
【００２４】
楽譜画像に関する制御変数として、「画像データ」，「幅」，「高さ」が図４に示すような変数で定義されている。これらの変数に関するデータは、例えばＲＡＭ１２内の図示せぬ楽譜画像制御領域に記憶されている。
【００２５】
図５は小節情報の構成を示す図である。
【００２６】
楽譜のデータは小節単位で管理されている。図中の“Ｍｅａｓ［Ｎ］”は小節の番号を表している。各小節の「ページ番号」，「元画像上での小節の矩形座標（Ｌｅｆｔ／Ｔｏｐ／Ｒｉｇｈｔ／Ｂｏｔｔｏｍ）」，「段番号」，「元画像上での右パートの最上部五線のｙ座標」，「元画像上での右パートの最下部五線のｙ座標」，「元画像上での左パートの最下部五線のｙ座標」，「小節先頭の時刻」，「小節の長さ（時間）」が図５に示すような変数で定義されており、これらの変数に関するデータが例えばＲＡＭ１２内の図示せぬ小節管理領域に記憶されている。
【００２７】
図６は演奏情報の構成を示す図である。
【００２８】
演奏情報は、楽譜の各音符を発音するための情報であり、音符単位で管理されている。図中の“Ｎｏｔｅ［Ｎ］”は音符（ノート）番号を表している。各音符の「発音開始時間」，「発音継続時間」，「音高」，「トラック番号（１：右手用，２：左手用）」，「小節番号」，「元画像上での玉のｘ座標」，「元画像上での玉のｙ座標」が図６に示すような変数で定義されており、これらの変数に関するデータが例えばＲＡＭ１２内の図示せぬ演奏情報管理領域に記憶されている。
【００２９】
ここで、本システムの動作を説明する前に理解を容易にするため、本発明の楽譜演奏方法について具体例を挙げて説明する。
【００３０】
図７は楽譜画像の表示画面の一例を示す図である。
【００３１】
図中の３０が楽譜画像を示している。図中の３１ａが楽譜画像３０の上段の五線譜、３１ｂが楽譜画像３０の下段の五線譜を示している。上段の五線譜３１ａはピアノの右パート、下段の五線譜３１ｂはピアノの左パートに相当する。また、３２は現在の演奏位置を示す演奏ポインタであり、楽譜画像３０と共に画面上に表示される。
【００３２】
演奏ポインタ３２は、上段の五線譜３１ａと下段の五線譜３１ｂと直交する形状で配置され、ユーザのタッチ操作によって曲の進行方向あるいは逆方向に移動する。この演奏ポインタ３２は楽譜画像３０に対する現在の再生位置を示している。
【００３３】
ここで、画面上の任意の位置を指示したとき、その指示された位置に応じて、楽曲の一部または全部のパート（楽譜の段）が再生出力される。この様子を図８乃至図１０に示す。
【００３４】
図８は両パート選択時の画面状態、図９は右パート選択時の画面状態、図１０は左パート選択時の画面状態を示している。
【００３５】
図８に示すように、ユーザが画面上に表示された楽譜画像３０の上段の五線譜３１ａと下段の五線譜３１ｂとの間を指でタッチすると、上段の五線譜３１ａと下段の五線譜３１ｂの両方が演奏対象として選択される。この場合、演奏ポインタ３２がユーザの指示位置に移動し、演奏ポインタ３２で示される上段の五線譜３１ａの右パートの音と下段の五線譜３１ｂの左パートの音が同時に再生出力される。
【００３６】
なお、図中の３３ａは上段が発音中であることを表わす発音マーク、３３ｂは下段が発音中であることを表わす発音マークである。
【００３７】
図９に示すように、ユーザが画面上に表示された楽譜画像３０の上段の五線譜３１ａを指でタッチすると、上段の五線譜３１ａが演奏対象として選択される。この場合、演奏ポインタ３２がユーザの指示位置に移動し、演奏ポインタ３２で示される上段の五線譜３１ａの右パートの音のみが再生出力される。
【００３８】
図１０に示すように、ユーザが画面上に表示された楽譜画像３０の下段の五線譜３１ｂを指でタッチすると、下段の五線譜３１ｂが演奏対象として選択される。この場合、演奏ポインタ３２がユーザの指示位置に移動し、演奏ポインタ３２で示される下段の五線譜３１ｂの左パートの音のみが再生出力される。
【００３９】
このように、画面上での指示位置を変えるだけで、楽譜の全パートあるいは左右パート別に音を区別して再生することができる。したがって、楽譜の段構成と関連付けて各音を確認しながら楽器を練習するような場合に便利である。
【００４０】
次に、本システムの動作について、（ａ）メイン処理、（ｂ）楽譜画像表示処理、（ｃ）再生処理に分けて説明する。なお、以下の各フローチャートで示される処理は、ＰＣ１０に設けられたＣＰＵ１１がＲＯＭ１３に記憶されたプログラム１３ａを読み込むことにより実行される。
【００４１】
（ａ）メイン処理
図１１は本システムにおけるＰＣ１０（ＣＰＵ１１）によって実行されるメイン処理を示すフローチャートである。
【００４２】
まず、ＣＰＵ１１は、電源投入時のイニシャライズとして、図３から図６に示した各種制御変数を必要に応じて初期化した後（ステップＡ１１）、所定の操作により選択された楽譜の画像データをＲＡＭ１２から読み込み（ステップＡ１２）、表示部１５の画面上に表示する（ステップＡ１３）。詳しくは、後に図１２を参照して説明する。
【００４３】
このときの状態が図７である。  
なお、図７では、楽譜画像３０の一部分（ここでは６小節分）しか示されていないが、実際には画面サイズに応じて、さらに多くの小節分を表示可能である。
【００４４】
同画面上に設けられた図示せぬ再生開始ボタンの操作により再生開始が指示されると（ステップＡ１５のＹｅｓ）、ＣＰＵ１１は、現在表示中の楽譜画像３０に関する楽曲の再生処理を実行する（ステップＡ１７）。この再生処理については、後に図１４などを参照して詳しく説明する。
【００４５】
また、同画面上に設けられた図示せぬ停止ボタンの操作により停止指示があると（ステップＡ１６のＹｅｓ）、停止フラグがセットされて、そこで再生が停止される（ステップＡ１８）。同画面上に設けられた図示せぬ終了ボタンの操作により終了指示があると（ステップＡ１４のＹｅｓ）、ここでの一連の処理が終了する。
【００４６】
（ｂ）楽譜画像表示処理
図１２は上記図１１のステップＡ１３で実行される楽譜画像表示処理を示すフローチャートである。
【００４７】
いま、図１３に示すように、楽譜画像として用いられる元画像４１内の一部をディスプレイ画面（表示部１５の画面）４２に表示する場合を想定する。なお、各変数の定義は図３に従う。
【００４８】
まず、ＣＰＵ１１は、ディスプレイ画面４２内の画像表示エリア４４の始点の座標（ｓｃｒＸ，ｓｃｒＹ）と、縦横サイズ（ｓｃｒＳＸ，ｓｃｒＳＹ）を設定する（ステップＢ１１）。例えば、ＰＣで作動しているアプリケーションのウィンドウの所定の楽譜表示エリアなどに基づいて設定される。続いて、ＣＰＵ１１は、楽譜表示する元画像４１内の始点の座標（ｘ，ｙ）を設定する（ステップＢ１２）。
【００４９】
具体的には、例えば、上記ステップＡ１２でユーザに選択された楽譜の所定の位置（ユーザが選択した曲の１ページ目の先頭や、ユーザの指定位置など）のページ数と楽譜画像上の位置に応じて設定される。
【００５０】
ここで、ＣＰＵ１１は、元画像４１に対する表示倍率（Ｓｃａｌｅ）を取得し（ステップＢ１３）、その表示倍率に従って元画像４１の中で楽譜表示する矩形領域を決定し（ステップＢ１４）、その矩形領域内の画像４３を楽譜画像３０としてディスプレイ画面４２上の画像表示エリア４４に展開して表示する（ステップＢ１５）。
【００５１】
具体的には、ユーザの設定や、アプリケーションによって設定された表示倍率（Ｓｃａｌｅ）に基づき、ステップＢ１２で設定された元画像４１内の始点の座標（ｘ，ｙ）から、画面表示する縦横サイズ（ｓｃｒＳＸ，ｓｃｒＳＹ）をスケール変換したサイズの画像部分を画像表示する矩形領域として決定し、表示倍率（Ｓｃａｌｅ）により拡大縮小を施してディスプレイ画面４２上の画像表示エリア４４に展開して表示する。
【００５２】
（ｃ）再生処理
図１４は上記図１１のステップＡ１７で実行される再生処理を示すフローチャートである。
【００５３】
再生処理は、最初に画面上の位置が指示された際に、指示位置に対応した画像上の位置を求め、そこから、指示された位置における楽曲の時刻を取得する処理（ステップＣ１２）と、画面上での指示位置がドラッグ（移動）された場合（ステップＣ１４のＹｅｓ）に、その移動に基づいて発音を判断する処理（ステップＣ１５）に分けられる。
【００５４】
なお、再生処理を実行する前に当該処理に関わる各種変数の初期化が行われる（ステップＣ１１）。また、発音判断処理は、上記ステップＡ１８に示した停止フラグがＯＦＦの状態で（ステップＣ１３のＹｅｓ）、指示位置の移動があったとき（ステップＣ１４のＹｅｓ）に実行される。
【００５５】
以下に、時刻取得処理と発音判断処理について詳しく説明する。
【００５６】
（時刻取得処理）
図１５は上記図１４のステップＣ１２で実行される時刻取得処理を示すフローチャートである。
【００５７】
まず、ＣＰＵ１１は、ディスプレイ画面４２上でユーザが指示した位置の座標を取得し（ステップＤ１１）、その指示座標に対応した元画像４１上の座標を求める（ステップＤ１２）。具体的には、以下のような計算式により、指示座標に対応した元画像４１上の座標を求める。
【００５８】
なお、ｘｔ，ｙｔはディスプレイ画面４２上の指示座標であり、ｘｓ，ｙｓはｘｔ，ｙｔに対応する元画像４１上の指示座標である。その他の変数の定義は図３に従うものとする。
【００５９】
xs = scoreCtrl.scrX + (xt - scoreCtrl.scrX) / scoreCtrl.scrSX * scoreCtrl.SX
ys = scoreCtrl.scrY + (yt - scoreCtrl.scrY) / scoreCtrl.scrSY * scoreCtrl.SY
指示座標に対応した元画像４１上の指示座標（ｘｓ，ｙｓ）が求められると、ＣＰＵ１１は、その指示座標（ｘｓ，ｙｓ）に基づいてユーザが指示した小節を判断し、その小節番号を取得する（ステップＤ１３）。
【００６０】
図１６に小節番号取得処理の詳細フローを示す。  
小節番号取得処理では、ＣＰＵ１１は、まず、ユーザの指示座標に対応した元画像４１上の指示座標（ｘｓ，ｙｓ）を含む小節を検索する（ステップＥ１１）。具体的には、検索対象とする小節の番号をｂとして、そのｂを初期値から順に更新しながら、以下のような条件を満たす小節の矩形領域（Ｒｅｃｔ）を検索する。
【００６１】
Meas[b].Rect.Left < xs < Meas[b].Rect.Right
Meas[b].Rect.Top  < ys < Meas[b].Rect.Bottom
図１７にユーザが３小節目の位置を画面上で指示していた例を示す。  
この例では、Ｍｅａｓ［３］．Ｒｅｃｔ．Ｌｅｆｔ，Ｍｅａｓ［３］．Ｒｅｃｔ．Ｒｉｇｈｔ，Ｍｅａｓ［３］．Ｒｅｃｔ．Ｔｏｐ，Ｍｅａｓ［３］．Ｒｅｃｔ．Ｂｏｔｔｏｍの４つの座標で特定される小節の矩形領域内に指示座標（ｘｓ，ｙｓ）が存在している。
【００６２】
なお、楽曲によっては、五線譜のさらに上の部分あるいは下の部分に加線を付加して、五線の範囲を超える高音または低音の音符が書かれることがある。このような音符の位置を考慮して、単純に最上段の五線譜の第五線のｙ座標を「Ｒｅｃｔ．Ｔｏｐ」とし、また最下段の五線譜の第一線のｙ座標を「Ｒｅｃｔ．Ｂｏｔｔｏｍ」とするのではなく、例えば、五線譜の上下に所定本数分（例えば二本線分）の余裕を持たせた範囲が指定された場合に、当該小節が指定されたものと判断するようにしても良い。あるいは、各楽曲の各段の楽譜で、その段に表れる最高音や最低音に応じて、判断基準とする座標位置を適宜変更するようにしても差し支えない。
【００６３】
ここで、楽譜の最後の小節まで検索しても該当する小節が見つからなかった場合には（ステップＥ１２のＮｏ）、ＣＰＵ１１は、画面上の楽譜表示領域外の位置が指示されたものと判断し、例えば「正しく指示して下さい」等のエラーメッセージを表示するなどして、次の指示を待つ（ステップＥ１３）。
【００６４】
該当する小節が見つかった場合（ステップＥ１２のＹｅｓ）、ＣＰＵ１１は、さらに小節内のどこを指示しているのかを探す（ステップＥ１４）。具体的には、以下のような条件１，条件２を用いて小節内の位置を探す。なお、ｙｓはユーザの指示座標に対応した元画像４１のｙ座標である。
【００６５】
・条件１
Meas[b].TopR < ys < Meas[b].BottomR
・条件２
Meas[b].TopL < ys < Meas[b].BottomL
上記条件１を満たしていれば、ＣＰＵ１１は、指示座標（ｘｓ，ｙｓ）が当該小節内の上段の五線譜上に存在するものと判断し（ステップＥ１７のＹｅｓ）、再生位置として当該小節の右パートをセットする（ステップＥ１８）。この状態が図９である。
【００６６】
また、上記条件２を満たしていれば、ＣＰＵ１１は、指示座標（ｘｓ，ｙｓ）が当該小節内の下段の五線譜上に存在するものと判断し（ステップＥ１７のＮｏ）、再生位置として当該小節の左パートをセットする（ステップＥ１９）。この状態が図１０である。
【００６７】
一方、上記条件１および上記条件２の両方とも満たしていなければ、ＣＰＵ１１は、指示座標（ｘｓ，ｙｓ）が当該小節内の上段の五線譜と下段の五線譜との間に存在するものと判断し（ステップＥ１５のＹｅｓ）、再生位置として当該小節の両手パートをセットする（ステップＥ１９）。この状態が図８である。
【００６８】
続いて、図１５に示すように、ＣＰＵ１１は、ユーザの指示座標（ｘｓ，ｙｓ）に基づいて小節内時刻を取得する処理を行う（ステップＤ１４）。「小節内時刻」とは、楽譜演奏上における小節内でのある位置の発音時刻のことである。例えば、ある小節の一拍目の音符は、小節の開始時刻と同時に発音され、また、二拍目の音符は、小節の開始時刻より一拍分の時間が経過した後に発音される、などのことをいう。以下では、さらに、例えば一拍目と二拍目の間の位置が指示された場合に、その指示位置に応じて、その位置の正確な時刻を算出するようにしている。楽譜の各音符には、図６に示したように発音開始時間が定められている。この音符の発音開始時間を利用して小節内時刻を求める。
【００６９】
図１８に小節内時刻処理の詳細フローを示す。  
小節内時刻処理では、ＣＰＵ１１は、まず、上記ステップＤ１２で求めた元画像４１上の指示座標（ｘｓ，ｙｓ）を取得すると共に（ステップＦ１１）、上記ステップＤ１３で求めた小節番号を取得する（ステップＦ１２）。
【００７０】
ここで、上記小節番号で定められる小節内において、ＣＰＵ１１は、元画像４１上の当該小節の矩形領域の左端に時刻判定座標ｘｌ，同矩形領域の右端に時刻判定座標ｘｒを設定する（ステップＦ１３）。そして、ＣＰＵ１１は、検索対象とする音符の番号をｎとして、そのｎを初期値（ｎ＝１）から順に更新しながら、以下のような手順で小節内時刻を求める。
【００７１】
すなわち、ＣＰＵ１１は、当該小節内のｎ番目の音符が指示座標（ｘｓ，ｙｓ）より右にあるか否かを判断する（ステップＦ１６）。このｎ番目の音符が指示座標（ｘｓ，ｙｓ）より右にない、すなわち指示座標より左にある場合には（ステップＦ１６のＮｏ）、ＣＰＵ１１は、左端の時刻判定座標ｘｌをｎ番目の音符のｘ座標に更新した後（ステップＦ１７）、ｎをインクリメント（＋１更新）して、次の音符に関して上記同様の処理を行う（ステップＦ１８→Ｆ１５）。
【００７２】
一方、ｎ番目の音符が指示座標（ｘｓ，ｙｓ）より右にあった場合には（ステップＦ１６のＹｅｓ）、ＣＰＵ１１は、その時点で右端の時刻判定座標ｘｒをｎ番目の音符のｘ座標に更新する（ステップＦ１９）。そして、ＣＰＵ１１は、指示座標ｘｓと現時点の時刻判定座標ｘｌ，ｘｒとの関係から以下のような比例配分式を用いて小節内時刻（Ｔｉｍｅ）を算出する（ステップＦ２０）。
【００７３】
Time = tl + (tr-tl) * (xs-xl) / (xr-xl)
なお、ｔｌはｘｌに対応した時刻、ｔｒはｘｒに対応した時刻である。
【００７４】
図１９に具体例を示す。  
例えば図１９（ａ）に示すように、ユーザが小節内の１番目の音符と２番目の音符との間を指示したとする。このような場合、左端の時刻判定座標ｘｌは１番目の音符のｘ座標に更新され、右の時刻判定座標ｘｒは２番目の音符のｘ座標に更新される。したがって、時刻ｔｌを１番目の音符の演奏情報、時刻ｔｒを２番目の音符の演奏情報から得て、上記比例配分式により小節内時刻Ｔｉｍｅを求めることができる。
【００７５】
一方、図１９（ｂ）に示すように、ユーザが小節の左端近くを指示したとすると、指示座標の左に音符がないので、１番目の音符のときに上記ステップＦ１６でＹｅｓと判断される。したがって、上記ステップＦ１９にて右端の時刻判定座標ｘｒは、１番目の音符のｘ座標に更新される。このとき、左端の時刻判定座標ｘｌは、上記ステップＦ１３で設定された左端（小節の先頭）のままである。このように場合には、例えば小節１番目の音符を基準にして小節内時刻Ｔｉｍｅを求めるものとする。
【００７６】
また、図１９（ｃ）に示すように、ユーザが小節の右端近くを指示したとすると、指示座標の右に音符がないので、上記ステップＦ１６でＹｅｓと判断されることがない。したがって、左端の時刻判定座標ｘｌは何度も更新され、最終的に最後の音符のｘ座標に更新されることになる。このとき、右端の時刻判定座標ｘｒは、上記ステップＦ１３で設定された右端（小節の末端）のままである。このように場合には、小節内の最後の音符の発音時刻（ｘｌ）と、小節の終了タイミング（次小節の開始タイミング、ｘｒ）との間で、指示座標（ｘｓ，ｙｓ）に応じて上記比例配分式を用いることにより、小節内時刻Ｔｉｍｅを求めることができる。
【００７７】
（発音判断処理）
次に、発音判断処理について説明する。
【００７８】
図２０は上記図１４のステップＣ１５で実行される発音判断処理を示すフローチャートである。この発音判断処理は、指示座標の移動があったとき（ステップＣ１４のＹｅｓ）に実行される。
【００７９】
すなわち、指示座標の移動があると、ＣＰＵ１１は、まず、前回の指示座標の時刻と現在の指示座標の時刻を取得する（ステップＧ１１，Ｇ１２）。なお、ここで言う「時刻」とは、上述した小節内時刻のことである。具体的には、前回の指示座標の時刻（ステップＧ１１）は、ステップＣ１２で取得された初回の指示位置の指示座標、あるいは、後述するステップＧ１８で保存された前回の指示位置の指示座標を参照して取得する。また、現在の指示座標の時刻（ステップＧ１２）は、移動先の（現在の）指示座標に対して、上述の図１５と同様の処理を行って取得する。この図１５の処理は、上述したものと同様であるため、その説明を省略する。
【００８０】
前回の指示座標の時刻と現在の指示座標の時刻との差が許容値を超えていた場合（ステップＧ１３のＹｅｓ）、ＣＰＵ１１は、異常な移動であると判断して全消音処理を実行する（ステップＧ１４）。これは、例えばユーザが数小節先を指示した場合、つまり例えばユーザが指示位置を縦に、楽譜の段を無視したような指示を行った場合や、楽譜表示エリア外を指示した場合などである。全消音処理では、発音中の音符の情報を保持しておくための図示せぬ発音中バッファをオールクリアして再生処理自体を終了する。なお、発音中バッファはＲＡＭ１２の所定のエリアに設けられる。
【００８１】
両者の時刻差が許容値以内であり、正常な移動であった場合には、ＣＰＵ１１は、その移動が順方向移動（楽譜を左から右になぞる移動）であるか否かを判断する（ステップＧ１５）。現在の指示座標の時刻が前回の指示座標の時刻より遅い時刻であった場合には順方向移動であると判断される。順方向移動の場合（ステップＧ１５のＹｅｓ）、ＣＰＵ１１は、順方向移動に応じた発音／消音処理を実行する（ステップＧ１６）。詳しくは、後に図２１を参照して説明する。
【００８２】
一方、現在の指示座標の時刻が前回の指示座標の時刻より早い時刻であった場合には逆方向移動（楽譜を右から左になぞる移動）であると判断される。逆方向移動の場合（ステップＧ１５のＮｏ）、ＣＰＵ１１は、逆方向移動に応じた発音／消音処理を実行する（ステップＧ１７）。詳しくは、後に図２２を参照して説明する。
【００８３】
また、次の指示座標の移動に備え、ＣＰＵ１１は、現在の指示座標の時刻を前回の指示座標の時刻としてコピーしてＲＡＭ１２などに保持しておく（ステップＧ１８）。
【００８４】
（順方向発音／消音処理）
図２１は上記図２０のステップＧ１６で実行される順方向発音／消音処理を示すフローチャートである。
【００８５】
指示座標の移動が順方向であった場合、ＣＰＵ１１は、上記発音中バッファを参照して現在発音中の音符の情報を取得する（ステップＨ１１）。現在発音中の音符があれば、ＣＰＵ１１は、当該音符の消音タイミングが前回の指示座標の時刻（以下、単に前回時刻と略す）と現在の指示座標の時刻（以下、単に現在時刻と略す）との間にあるか否かを判断する（ステップＨ１２）。なお、順方向移動の場合には、音符の消音タイミングは、当該音符の発音開始時間と発音継続時間を加えることによって定められる。
【００８６】
当該音符の消音タイミングが前回時刻と現在時刻との間にあれば（ステップＨ１２のＹｅｓ）、ＣＰＵ１１は、当該音符を消音してから次の音符に移行する（ステップＨ１３）。
【００８７】
ここで、一般に、複数段のそれぞれに音符がある場合や、重音奏法などで、同じ段内でも複数の音符がある場合など、同じ時刻に２つ以上の音符が存在することがあるため、ＣＰＵ１１は、現在発音中のすべての音符について上記同様の処理を施し、該当する音符があれば消音を行う（ステップＨ１４）。
【００８８】
続いて、ＣＰＵ１１は、図６に示した演奏情報を参照し、音符の情報を順次取得する（ステップＨ１５）。そして、ＣＰＵ１１は、当該音符の発音タイミングが前回時刻と現在時刻との間にあるか否かを判断する（ステップＨ１６）。なお、上記「発音タイミング」は、当該音符の情報に含まれる「発音開始時間」から得られる。
【００８９】
当該音符の発音タイミングが前回時刻と現在時刻との間にあれば（ステップＨ１６のＹｅｓ）、ＣＰＵ１１は、図６に示した演奏情報に基づいて当該音符を発音する（ステップＨ１７）。このとき、ＣＰＵ１１は、当該音符が発音中であることを上記発音中バッファに保持しておく（ステップＨ１８）。
【００９０】
図６に示した演奏情報に含まれるすべての音符について、ＣＰＵ１１は上記同様の処理を施し、該当する音符について発音を行う（ステップＨ１９）。なお、処理時間短縮のため、例えば、前回の指示座標と現在の指示座標の属する小節の間に存在する音符のみを順次対象として発音処理（ステップＨ１５からＨ１９）を行うこととしても良い。これにより、指示座標の順方向の移動に伴い、当該移動によって楽譜上の発音位置を経過した楽譜上の各音符が再生出力されることになる。なお、指示座標を順方向に移動させた場合に、図７乃至図１０に示した演奏ポインタ３２の表示位置もその移動操作に伴って順方向に更新される。
【００９１】
図２３に順方向移動時の消音／発音のタイミングを示す。
【００９２】
いま、左から１番目の音符が発音中であったとすると、その音符の消音タイミング（発音開始時間＋発音継続時間）が前回時刻（ｌａｓｔ）と現在時刻（ｔｉｍｅ）との間にあれば、１番目の音符を消音する。また、２番目の音符の発音タイミング（発音開始時間）が前回時刻（ｌａｓｔ）と現在時刻（ｔｉｍｅ）との間にあれば、２番目の音符の発音を行うことになる。
【００９３】
（逆方向発音／消音処理）
図２２は上記図２０のステップＧ１７で実行される逆方向発音／消音処理を示すフローチャートである。
【００９４】
指示座標の移動が逆方向であった場合、ＣＰＵ１１は、上記発音中バッファを参照して現在発音中の音符の情報を取得する（ステップＩ１１）。現在発音中の音符があれば、ＣＰＵ１１は、当該音符の消音タイミングが現在の指示座標の時刻（以下、単に現在時刻と略す）と前回の指示座標の時刻（以下、単に前回時刻と略す）との間にあるか否かを判断する（ステップＩ１２）。ここで、逆方向移動の場合には、音符の消音タイミングは、当該音符の発音開始時間が基準となる。
【００９５】
当該音符の消音タイミングが現在時刻と前回時刻との間にあれば（ステップＩ１２のＹｅｓ）、ＣＰＵ１１は、当該音符を消音してから次の音符に移行する（ステップＩ１３）。
【００９６】
また、同じ時刻に２つ以上の音符が存在することがあるため、ＣＰＵ１１は、現在発音中のすべての音符について上記同様の処理を施し、該当する音符があれば消音を行う（ステップＩ１４）。
【００９７】
続いて、ＣＰＵ１１は、図６に示した演奏情報を参照し、音符の情報を順次取得する（ステップＩ１５）。そして、ＣＰＵ１１は、当該音符の発音タイミングが現在時刻と前回時刻との間にあるか否かを判断する（ステップＩ１６）。ここで、上記「発音タイミング」は、逆方向移動の場合には、当該音符の発音開始時間と発音継続時間を加えることによって定められる。
【００９８】
当該音符の発音タイミングが現在時刻と前回時刻との間にあれば（ステップＩ１６のＹｅｓ）、ＣＰＵ１１は、図６に示した演奏情報に基づいて当該音符を発音する（ステップＩ１７）。このとき、ＣＰＵ１１は、当該音符が発音中であることを上記発音中バッファに保持しておく（ステップＩ１８）。
【００９９】
図６に示した演奏情報に含まれるすべての音符について、ＣＰＵ１１は上記同様の処理を施し、該当する音符について発音を行う（ステップＩ１９）。なお、処理時間短縮のため、例えば、前回の指示座標と現在の指示座標の属する小節の間に存在する音符のみを順次対象として発音処理（ステップＨ１５からＨ１９）を行うこととしても良い。これにより、指示座標の逆方向の移動に伴い、当該移動によって楽譜上の(逆向き移動の場合の）発音位置を経過した楽譜上の各音符が逆再生で出力されることになる。なお、指示座標を逆方向に移動させた場合に、図７乃至図１０に示した演奏ポインタ３２の表示位置もその移動操作に伴って逆方向に更新される。
【０１００】
図２４に逆方向移動時の消音／発音のタイミングを示す。
【０１０１】
いま、左から２番目の音符が発音中であったとする。逆方向移動時には、音符の消音タイミングは発音開始時間が基準となる。この消音タイミングが現在時刻（ｔｉｍｅ）と前回時刻（ｌａｓｔ）との間にあれば、２番目の音符を消音する。また、逆方向移動時には、音符の発音タイミングはその音符の（発音開始時間＋発音継続時間）のタイミング（順方向移動時の消音タイミング）が基準となる。従って、１番目の音符の発音タイミング（発音開始時間＋発音継続時間）が前回時刻（ｌａｓｔ）と現在時刻（ｔｉｍｅ）との間にあれば、１番目の音符を発音することになる。
【０１０２】
以上のように本実施形態によれば、例えばピアノ演奏などで用いられる多段構成の楽譜を画面上に表示した場合に、ユーザが画面上の任意の位置を指示することで、その指示された位置に応じて楽譜の各段の一部または全体を演奏対象として選択して、その選択された段の音符を再生することができる。
【０１０３】
また、指示位置を移動させれば、その指示位置の移動に対応して楽譜を連続的に再生することができるので、直感的な操作で曲の流れを容易に把握することもできる。
【０１０４】
さらに、指示位置を逆方向に移動させれば、その指示位置の逆方向への移動に対応して楽譜を逆方向に再生することもできる。この場合、楽譜の各音符が単純に逆方向に１音ずつ再生されるのではなく、連続性を持って逆再生されるので、直感的な操作でユニークな楽曲として楽しむことができる。
【０１０５】
なお、上記実施形態では、タッチパネル式のディスプレイ画面を用いてユーザがタッチ操作により位置を指定するものとして説明したが、例えばマウスなどの他のポインティングデバイスを用いて位置を指定しても良い。
【０１０６】
また、上記実施形態では、ピアノ演奏で用いる楽譜として、左右パート別の２段構成の楽譜を例にして説明したが、例えばオーケストラや吹奏楽の演奏などで用いられる多段構成の楽譜であっても同様に適用可能である。このような場合、例えば、複数段の楽譜のうちの、ある段の五線譜上を指定した場合は、その指定された段のパートのみを発音させ、楽譜の中の、段以外の部分（段と段の中間部分等）を指定した場合は、全パートを発音させるようにすることが可能である。
【０１０７】
さらに、楽譜の段は五線譜に限らず、例えば１本の線上にリズムパターだけを記したような楽譜であっても良い。このような場合は、例えば、あらかじめ設定された上下範囲を指定された場合に「その段を指定された」と判断して、その段の発音を行うこととすることができる。
【０１０８】
また、上記実施形態では、楽譜の画像データを読み込んで画面上に表示する場合について説明したが、本発明は電子楽譜のように、最初から演奏情報とリンクされている楽譜データを用いることでも良い。さらに、演奏情報として、ＭＩＤＩデータやＷＡＶデータを利用することも可能である。この場合、例えば、画面上に各トラックのＭＩＤＩデータやＷＡＶデータを表示し、画面上をクリックしてドラッグした場合に、その画面表示上のどのトラックの位置をドラッグしているかに応じて、その段のＭＩＤＩあるいはＷＡＶデータを再生する、また、トラックとトラックの間や、上下の端部をクリックしてドラッグされた場合には全パートを再生するようにすることができる。
【０１０９】
また、上記実施形態において、ユーザによる画面上の任意の位置のタッチ操作で指示される画面上の指示位置は、（ｘｔ，ｙｔ）という座標をもつ一点が指示されるものとして説明したが、これに限られず、デバイスの仕様により、ある長さの線状の部分が指示されたり、ある広さをもつ面状の部分が指示される場合であってもよい。
【０１１０】
このような場合には、例えば、線の属する楽譜の段のうち、もっとも長い線分部分が属している段が指示されたものとしたり、面の属する楽譜の段のうち、もっとも広い部分面が属している段が指示されたものとすることができる。さらに、簡易的には、例えば、面の中心を通る垂直方向の線分で、もっとも長い線分部分が属している段が指示されたものとしても良い。
【０１１１】
要するに、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１１２】
さらに、上述した実施形態において記載した手法は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フレシキブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に適用したり、通信媒体により伝送して各種装置に適用することも可能である。本装置を実現するコンピュータは、記録媒体に記録されたプログラムを読み込み、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【０１１３】
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。  
［１］
複数の段からなり、所定の楽曲を表わした楽譜を画面上に表示する楽譜表示手段と、
上記画面上の任意の位置を指示する指示手段と、
上記指示手段によって指示された位置に応じて上記楽譜の上記複数の段の一部あるいは全体で表された楽曲を演奏対象として再生する再生制御手段と
を具備したことを特徴とする楽譜演奏装置。
【０１１４】
［２］
上記再生制御手段は、
上記指示手段によって指示された位置が上記楽譜の上記複数の段のいずれかに対応していた場合には当該段で表された楽曲を演奏対象として選択して再生することを特徴とする［１］記載の楽譜演奏装置。
【０１１５】
［３］
上記再生制御手段は、
上記指示手段によって指示された位置が上記楽譜の上記複数の段の間に対応していた場合には上記楽譜の上記複数の段のすべてで表された楽曲を演奏対象として選択して再生することを特徴とする請求項［１］または［２］に記載の楽譜演奏装置。
【０１１６】
［４］
上記再生制御手段は、
上記指示手段によって指示された位置の移動に伴い、当該指示位置の移動に対応して楽譜で表された楽曲を連続的に再生することを特徴とする［１］から［３］のいずれかに記載の楽譜演奏装置。
【０１１７】
［５］
上記再生制御手段は、
上記指示手段によって指示された位置の移動が上記楽譜の後ろから前への方向の移動であった場合に、当該指示位置の移動に対応して楽譜で表された楽曲を逆方向に再生することを特徴とする［１］から［４］のいずれかに記載の楽譜演奏装置。
【０１１８】
［６］
上記再生制御手段は、
上記指示手段によって指示された位置の移動が上記楽譜の後ろから前への方向の移動であった場合に、当該移動によってある音符の通常時の消音タイミングに相当する位置を通過した際に、当該音符を発音させるとともに、当該移動によってある音符の通常時の発音タイミングに相当する位置を通過した際に、当該音符を消音させることを特徴とする［５］記載の楽譜演奏装置。
【０１１９】
［７］
複数の段からなり、所定の楽曲を表わす楽譜を画面上に表示するステップと、
上記画面上の任意の位置を指示するステップと、
上記指示された位置に応じて上記楽譜の上記複数の段の一部あるいは全体で表された楽曲を演奏対象として再生するステップと
を備えたことを特徴とする楽譜演奏方法。
【０１２０】
［８］
コンピュータによって実行される楽譜演奏のためのプログラムであって、
上記コンピュータに、
複数の段からなり、所定の楽曲を表わす楽譜を画面上に表示する機能と、
上記画面上の任意の位置を指示する機能と、
上記指示された位置に応じて上記楽譜の上記複数の段の一部あるいは全体で表された楽曲を演奏対象として再生する機能と
を実現させることを特徴とするプログラム。
【符号の説明】
【０１２１】
１０…ＰＣ、１１…ＣＰＵ、１１ａ…音符表示部、１１ｂ…再生制御部、１２…ＲＡＭ、１３…ＲＯＭ、１３ａ…プログラム、１４…入力部、１５…表示部、１６…ＭＩＤＩインタフェース、２０…電子楽器、２１…キーボード、２２…ＭＩＤＩインタフェース、２３…音源・サウンドシステム、３０…楽譜画像、３１ａ…上段の五線譜、３１ｂ…下段の五線譜、３２…演奏ポインタ。
【図１】
2014186224.tif 000003
【図２】
2014186224.tif 000004
【図３】
2014186224.tif 000005
【図４】
2014186224.tif 000006
【図５】
2014186224.tif 000007
【図６】
2014186224.tif 000008
【図７】
2014186224.tif 000009
【図８】
2014186224.tif 000010
【図９】
2014186224.tif 000011
【図１０】
2014186224.tif 000012
【図１１】
2014186224.tif 000013
【図１２】
2014186224.tif 000014
【図１３】
2014186224.tif 000015
【図１４】
2014186224.tif 000016
【図１５】
2014186224.tif 000017
【図１６】
2014186224.tif 000018
【図１７】
2014186224.tif 000019
【図１８】
2014186224.tif 000020
【図１９】
2014186224.tif 000021
【図２０】
2014186224.tif 000022
【図２１】
2014186224.tif 000023
【図２２】
2014186224.tif 000024
【図２３】
2014186224.tif 000025
【図２４】
2014186224.tif 000026