以下、図面を参照し、この発明の実施形態について説明する。
<第1実施形態>
図1は、この発明の第1実施形態による楽譜表示装置1の構成を示すブロック図である。楽譜表示装置1は、制御部11、ユーザインターフェース(以下、ユーザI/Fという)12、揮発性記憶部13、不揮発性記憶部14およびこれらの各構成要素間のデータ授受を媒介するバス15を有している。
ユーザI/F12は、例えば、タッチパネルなどである。ユーザI/F12は、各種データの示す内容などを画面に表示する表示機能と、ユーザによるタッチなどの操作を受け付け、その操作内容を表すデータを制御部11に与える入力機能とを有する。なお、操作内容を表すデータとは、タップ操作であればそのタップ位置を示すデータであり、フリック操作であればフリック方向とフリック量を示すデータである。すなわち、ユーザI/F12は、表示手段の役割と入力手段の役割とを兼ねている。
制御部11は、例えば、CPU(Central Processing Unit:中央処理装置)である。制御部11は、不揮発性記憶部14に格納されているプログラムを実行することにより楽譜表示装置1の各部を制御する制御中枢である。
揮発性記憶部13は、例えばRAM(Random Access Memory)である。揮発性記憶部13は、制御部11によりワークエリアとして利用される。不揮発性記憶部14は、例えば、フラッシュメモリやハードディスクドライブであり、各種のプログラムなどの情報を記憶するための記憶装置である。不揮発性記憶部14には、本実施形態に特有なものとして、楽譜表示プログラム141および楽譜データ20が格納されている。
楽譜表示プログラム141は、楽譜表示装置1の主プログラムである。制御部11は、楽譜表示プログラム141を実行することによりタブレット端末などのコンピュータを楽譜表示装置1として機能させる。楽譜データ20は、ユーザI/F12の画面に表示する楽譜の画像データである。本実施形態における楽譜データ20は、例えば、PDF(Portable Document Format)ファイルなどの楽譜の画像データである。楽譜データ20は、ネットワークを介して入手しても良いし、紙媒体からスキャナなどを介して読み込むことにより入手しても良い。制御部11は、楽譜表示プログラム141に従って、楽譜データ20の示す楽譜をユーザI/F12の画面に表示する処理を行う。楽譜表示プログラム141に従って制御部11が実行する処理については、動作の説明において詳述する。また、楽譜データ20は、当該楽譜データ20の示す楽譜の時間軸における所定の領域毎に区分されている。すなわち、この楽譜データ20は、表示対象の楽譜がその楽譜における時間軸に沿って連続する複数の所定の領域に区分されたデータの集合である。本明細書において、楽譜の時間軸とは、音符の拍方向の軸のことであり、旋律の時間的な流れの方向の軸のことであり、大譜表における各横線に沿った方向の軸のことを言う。また、この所定の領域の具体例として、ページ、大譜表、小節、音符(本明細書において音符は休符を含む)などが挙げられる。本実施形態の楽譜データ20は、当該楽譜データ20の示す楽譜における各ページを識別するページ情報を含んでおり、このページ情報により、ページ毎に区分されている。換言すると、楽譜データ20の示す楽譜はページ毎に区分されている。また、musicXML(XML(eXtensible Markup Language)形式の楽譜表記のためのファイルフォーマット)ファイルをレンダリングした楽譜画像を楽譜データ20として用いても良いし、楽譜浄書ソフトウェア(楽譜を読譜し易い楽譜に編集するソフトウェア)で作成した楽譜ファイルをレンダリングした楽譜画像を楽譜データ20として用いても良い。これらにおいても、ページ毎に区分され得るからである。
以上が、楽譜表示装置1の構成である。
次に、楽譜表示装置1の動作およびユーザの使用態様を説明する。
楽譜表示装置1の制御部11は、ユーザからの指示を契機として楽譜表示プログラム141の実行を開始する。例えば、制御部11は、ユーザI/F12の画面上の楽譜表示プログラム141を示すアイコンへのタップを契機として楽譜表示プログラム141の実行を開始する。図2は、楽譜表示プログラム141に従って制御部11が実行する処理の流れを示すフローチャートである。まず、制御部11は、ユーザI/F12の画面に表示する楽譜をユーザに選択させる(SA110)。具体的には、制御部11は、不揮発性記憶部14に記憶されている楽譜データ20の一覧を表示可能な楽譜の一覧として画面に表示する。ユーザは、ユーザI/F12の画面に表示されている表示可能な楽譜の一覧の中の1の楽譜を示す画像をタップしてユーザI/F12の画面に表示させる楽譜を選択する。楽譜が選択されると(SA120)、制御部11は、選択された楽譜に対応する楽譜データ20を不揮発性記憶部14から読み出す(SA130)。次に、制御部11は、読み出した楽譜データ20の示す楽譜における複数の領域分の楽譜、具体的には連続する2ページ分の楽譜をユーザI/F12の画面に表示する処理を行う(SA140)。さらに具体的には、制御部11は、ユーザI/F12の画面における向かって左半分(以後、画面の左半分という)の位置に連続する2ページのうちの若番のページ(例えば1ページ目)の楽譜を表示し、ユーザI/F12の画面における向かって右半分(以後、画面の右半分という)の位置に連続する2ページのうちの老番のページ(例えば2ページ目)の楽譜を表示する処理を行う。
次いで、楽譜の譜めくりについて説明する。制御部11は、ユーザI/F12の画面に表示されている楽譜における1の領域に対する譜めくり指示がユーザI/F12を介して与えられたか否かにより譜めくり処理を行う。具体的に説明すると、まず、制御部11は、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する(図示略)。制御部11は、ユーザによる入力操作を示す情報を取得するまで、入力操作を示す情報を取得したか否かの判断を繰り返す。入力操作を示す情報を取得した場合、制御部11は、当該入力操作を示す情報の内容を判断する。具体的には、制御部11は、取得した入力操作を示す情報が、表示されている2ページ分の楽譜のうちの老番ページに対する譜めくり指示であるか否かを判断する(SA150)。さらに具体的に説明すると、制御部11は、取得した入力操作を示す情報がユーザI/F12の画面上のユーザによる左方向(つまり、若番ページ方向)のフリック操作を示す情報である場合に、老番ページに対する譜めくり指示であると判断する。取得した入力操作を示す情報が老番ページに対する譜めくり指示である場合(SA150:Yes)、制御部11は、楽譜を進める譜めくり処理であるステップSA160〜SA180の処理を行う。
楽譜を進める譜めくり処理を具体例を挙げつつ説明する。図3は、楽譜を進める譜めくり処理による画面遷移の一例を示す概略図である。本実施形態では、譜めくり処理に従ってユーザI/F12の画面に表示される内容は、図3(A)〜図3(E)の順に変わる。図3(A)は、画面の左半分に1ページ目(図3ではP1)の楽譜が表示されており、画面の右半分に2ページ目(図3ではP2)の楽譜が表示されている状態である。この状態において、制御部11は、表示されている2ページ分の楽譜のうちの老番ページに対する譜めくり指示、すなわち図3における2ページ目に対する譜めくり指示を取得したとする。この指示を取得した制御部11は、表示されている2ページ分の楽譜のうちの若番ページの楽譜、すなわち画面の左半分に表示されている1ページ目の楽譜を縮小表示する処理を行う(図2:SA160、図3(B))。このとき、制御部11は、若番ページ(1ページ目)の楽譜に対して徐々に縮小するアニメーションを施す。これにより、若番ページ(1ページ目)の楽譜に対して老番ページ(2ページ目)の楽譜が相対的に画面の手前に浮き出るような感覚をユーザに体感させることができる。
次に、制御部11は、譜めくり対象の老番ページ(本動作例では2ページ目)の楽譜をユーザI/F12の画面の最前面に表示しつつ、当該2ページ目の楽譜を若番ページ(1ページ目)が表示されていた位置、すなわち画面の中央よりも左側の位置に移動する処理を行う(図2:SA170、図3(C)〜(D))。このとき、図3(C)に示すように、制御部11は、2ページ目の楽譜に対して徐々に移動するアニメーションを施す。このステップSA170において2ページ目の楽譜を最前面に表示するようにしたため、1ページ目の楽譜は、2ページ目の楽譜の裏側に隠れる。そして、制御部11は、このステップSA170において2ページ目の楽譜を移動する処理を行うとともに、2ページ目よりも1つ老番のページ、すなわち3ページ目(図3ではP3)の縮小した楽譜を表示する処理を行う。3ページ目の表示処理では、制御部11は、2ページ目の楽譜が表示されていた領域(すなわち画面の右半分)であり、かつ、2ページ目の楽譜の背面側に3ページ目の縮小した楽譜を配置し、2ページ目の楽譜の移動に伴って3ページ目の縮小した楽譜が徐々に画面上に現れるような処理を行う。
次に、制御部11は、譜めくり対象の老番ページの移動前の領域に縮小表示している1つ老番のページ(3ページ目)の楽譜を通常の大きさに拡大表示する処理を行う(図2:SA180、図3(E))。このとき、制御部11は、1つ老番のページ(3ページ目)の楽譜に対して徐々に拡大するアニメーションを施す。これにより、1つ老番のページ(3ページ目)の楽譜に対して譜めくり対象の老番ページ(2ページ目)の楽譜が相対的に画面の奥に沈み込む感覚をユーザに体感させることができる。このようにして、ユーザI/F12の表示状態は、1ページ目の楽譜と2ページ目の楽譜を表示する状態から、2ページ目の楽譜と3ページ目の楽譜を表示する状態に変わる。この楽譜を進める譜めくりにおいては、ユーザI/F12の画面に表示されている2ページ分の楽譜のうち画面の右半分に積まれて表示されているページ(老番ページ)の楽譜を、画面の左半分に表示されているページ(若番ページ)の楽譜の上に積み重ねるような感覚をユーザに体感させることができる。ステップSA180の後、制御部11は、入力操作を示す情報をユーザI/F12から取得したか否かを判断する処理に戻り、入力操作を示す情報を再度取得した場合、ステップSA150以降の処理を行う。
一方、取得した入力操作を示す情報が老番ページに対する譜めくり指示でない場合(SA150:No)、制御部11は、取得した入力操作を示す情報が、表示されている2ページ分の楽譜のうちの若番ページに対する譜めくり指示であるか否かを判断する(SA190)。さらに具体的に説明すると、制御部11は、取得した入力操作を示す情報がユーザI/F12の画面上のユーザによる右方向(つまり、老番ページ方向)のフリック操作を示す情報である場合に、若番ページに対する譜めくり指示であると判断する。取得した入力操作を示す情報が若番ページに対する譜めくり指示である場合(SA190:Yes)、制御部11は、楽譜を戻す譜めくり処理であるステップSA200〜SA220の処理を行う。制御部11は、取得した入力操作を示す情報が若番ページに対する譜めくり指示でない場合(SA190:No)、取得した入力操作を示す情報が、楽譜表示プログラム141の終了指示であるか否かを判断する(図示略)。制御部11は、楽譜表示プログラム141の終了指示である場合、楽譜表示プログラム141を終了し、楽譜表示プログラム141の終了指示でない場合、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する処理および当該入力操作を示す情報の内容を判断する処理に戻る(SA150)。
楽譜を戻す譜めくり処理を具体例を挙げつつ説明する。図4は、楽譜を戻す譜めくり処理による画面遷移の一例を示す概略図である。図4では、譜めくり処理に従ってユーザI/F12の画面に表示される内容が図4(A)〜図4(E)の順に変わる。図4(A)は、画面の左半分に2ページ目(図4ではP2)の楽譜が表示されており、画面の右半分に3ページ目(図4ではP3)の楽譜が表示されている状態である。この状態において、制御部11は、表示されている2ページ分の楽譜のうちの若番ページに対する譜めくり指示、すなわち図4における2ページ目に対する譜めくり指示を取得したとする。この指示を取得した制御部11は、表示されている2ページ分の楽譜のうちの老番ページの楽譜、すなわち画面の右半分に表示されている3ページ目の楽譜を縮小表示する処理を行う(図2:SA200、図4(B))。このとき、制御部11は、老番ページ(3ページ目)の楽譜に対して徐々に縮小するアニメーションを施す。これにより、老番ページ(3ページ目)の楽譜に対して若番ページ(2ページ目)の楽譜が相対的に画面の手前に浮き出るような感覚をユーザに体感させることができる。
次に、制御部11は、譜めくり対象の若番ページ(本動作例では2ページ目)の楽譜をユーザI/F12の画面の最前面に表示しつつ、2ページ目の楽譜を老番ページ(3ページ目)の楽譜が表示されていた位置、すなわち画面の中央よりも右側の位置に移動する処理を行う(図2:SA210、図4(C)〜(D))。このとき、図4(C)に示すように、制御部11は、2ページ目の楽譜に対して徐々に移動するアニメーションを施す。このステップSA210において2ページ目の楽譜を最前面に表示するようにしたため、3ページ目の楽譜は、2ページ目の楽譜の裏側に隠れる。そして、制御部11は、このステップSA210において2ページ目の楽譜を移動する処理を行うとともに、2ページ目よりも1つ若番のページ、すなわち1ページ目(図4ではP1)の縮小した楽譜を表示する処理を行う。1ページ目の表示処理では、制御部11は、2ページ目の楽譜が表示されていた領域(すなわち画面の左半分)であり、かつ、2ページ目の楽譜の背面側に1ページ目の縮小した楽譜を配置し、2ページ目の楽譜の移動に伴って1ページ目の縮小した楽譜が徐々に画面上に現れるような処理を行う。
次に、制御部11は、譜めくり対象の若番ページの移動前の領域に縮小表示している1つ若番のページ(1ページ目)の楽譜を通常の大きさに拡大表示する処理を行う(図2:SA220、図4(E))。このとき、制御部11は、1つ若番のページ(1ページ目)の楽譜に対して徐々に拡大するアニメーションを施す。これにより、1つ若番のページ(1ページ目)の楽譜に対して譜めくり対象の若番ページ(2ページ目)の楽譜が相対的に画面の奥に沈み込む感覚をユーザに体感させることができる。このようにして、ユーザI/F12の表示状態は、2ページ目の楽譜と3ページ目の楽譜を表示する状態から、1ページ目の楽譜と2ページ目の楽譜を表示する状態に変わる。この楽譜を戻す譜めくりにおいては、ユーザI/F12の画面に表示されている2ページ分の楽譜のうち画面の左半分に積まれて表示されているページ(若番ページ)の楽譜を、画面の右半分に表示されているページ(老番ページ)の楽譜の上に積み重ねるような感覚をユーザに体感させることができる。ステップSA220の後、制御部11は、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する処理および当該入力操作を示す情報の内容を判断する処理に戻る(SA150)。
このように、本実施形態の楽譜表示装置1の制御部11は、ユーザI/F12の画面に表示されている2ページ分の楽譜のうちの一方のページに対する譜めくり指示(具体的には、ユーザI/F12の画面上のユーザによる左方向のフリック操作の示す情報、または右方向のフリック操作の示す情報)をユーザI/F12を介して取得したことを契機として、当該一方のページの楽譜を他方のページの楽譜の上に積み重ねるように移動して画面に表示し、当該一方のページの楽譜の移動に伴って当該一方のページの楽譜の移動前に当該一方のページの楽譜を表示していた位置に当該一方のページよりも1つ老番のページの楽譜または当該一方のページよりも1つ若番のページの楽譜を画面に表示する処理を行う。すなわち、本実施形態による楽譜表示装置1の制御部11は、ユーザI/F12の画面に表示されている楽譜における1の領域に対する譜めくり指示をユーザI/F12を介して取得したことを契機として、譜めくり指示のあった領域内の楽譜をユーザI/F12の画面に残して表示しつつ、当該譜めくり指示のあった領域内の楽譜を基準として当該譜めくり指示のあった領域よりも楽譜の時間軸における未来方向に連続する領域内の楽譜、または、当該譜めくり指示のあった領域よりも楽譜の時間軸における過去方向に連続する領域内の楽譜をユーザI/F12の画面に表示する処理を行う。このため、ユーザは、休符部分などの演奏の手が空く瞬間にいつでも譜めくりを行うことができる。例えば、ユーザは、難しいフレーズや忙しいフレーズに至る前の休符において当該休符の属する領域に対して予め譜めくり操作を行っておく、という具合である。当該休符の後に到来する難しいフレーズや忙しいフレーズを画面に表示したまま譜めくりされるため、ユーザは、その難しいフレーズや忙しいフレーズを演奏しつつその先の楽譜内容を把握することができる。これにより、ユーザの譜めくり操作に関する演奏の停止を回避したり演奏の停止のリスクを低減することができる。また、本実施形態による楽譜表示装置1では、ページ毎に譜めくりを行うため、楽譜内容が切れて(例えば、大譜表が上下に切れて)表示されることはない。従って、従来の楽譜表示装置に比べ、利便性の高い楽譜表示装置を提供することができる。
また、本実施形態による楽譜表示装置1では、譜めくり処理を行っても、常に、ユーザI/F12の画面の左半分に若番ページの楽譜が表示され、同右半分に老番ページの楽譜が表示される。このため、ユーザは、譜めくり後においても譜めくり前と同様に、視線を楽譜の左から右へまたは上から下へ運ぶことができ、違和感なく演奏することができる。また、本実施形態による楽譜表示装置1では、フリック操作の示す情報を譜めくり指示としているため、ユーザは、素早く譜めくり操作を行うことができる。
なお、本実施形態では、譜めくり処理の際に、他方のページの楽譜を縮小表示する処理、および譜めくりにより新たに表示される楽譜を通常の大きさに拡大する処理を行っていた。これらの縮小表示処理および拡大表示処理は、一方のページの楽譜を他方のページの楽譜の上に積み重ねるような感覚をユーザにより強く与えるために行う処理であるが、本実施形態において必須な処理ではない。例えば、一方のページの楽譜の移動前の位置であり当該一方のページの楽譜の背面に当該一方のページよりも1つ老番のページの楽譜を通常の大きさで配置し、通常の大きさで表示されている他方のページの楽譜の前面の位置への当該一方のページの楽譜の移動に伴って当該一方のページよりも1つ老番のページが現れるようにすることで、当該一方のページの楽譜を当該他方のページの楽譜の上に積み重ねるような感覚をユーザに体感させることは可能であるからである。また、縮小表示、移動表示および拡大表示の際にアニメーションを施していたが、それらの表示の際にアニメーションを施さないようにしても良い。
<第2実施形態>
第1実施形態による楽譜表示装置1は、ページ単位で譜めくりを行うものであった。これに対し、この発明の第2実施形態による楽譜表示装置1Aは、大譜表単位で譜めくりを行うものである。図5は、本実施形態による楽譜表示装置1Aの構成を示すブロック図である。図5に示すように、本実施形態による楽譜表示装置1Aは、楽譜表示プログラム141に代えて楽譜表示プログラム141Aを、楽譜データ20に代えて楽譜データ20Aを有する点において第1実施形態による楽譜表示装置1と異なる。
楽譜表示プログラム141Aは、制御部11に実行させる処理内容が第1実施形態による楽譜表示プログラム141と異なる。楽譜表示プログラム141Aに従って制御部11が実行する処理については、動作の説明において詳述する。
楽譜データ20Aは、当該楽譜データ20の示す楽譜の時間軸における所定の領域毎に区分されている点において第1実施形態による楽譜データ20と同様であるが、区分の単位が第1実施形態による楽譜データ20と異なる。具体的には、楽譜データ20Aは、楽譜画像が大譜表毎に区分されるようにブロック化されている。
図6は、楽譜データ20Aの構成を示す概念図である。図6では、楽譜データ20Aを画像イメージで示している。図6の例では、複数の大譜表が上下方向に並べられている。図6に示すように、楽譜データ20Aは、画像領域22A毎にブロック化されている。各画像領域22Aには、それらを区別するための番号k(k=1、2、・・・j−1、j、j+1・・・)が各々付与されている。なお、各画像領域を区別するときは、画像領域22Ajのように表示する。画像領域22Aは、1の大譜表および当該1の大譜表に属する音符や記号などを取り囲む領域である。例えば、画像領域22Aは、1の大譜表を中央に配置し、当該1の大譜表の最上線よりも上側にある音符等のうち最も上側の部分よりも所定の余白分だけ上側の位置を画像領域22Aの上側境界とし、当該1の大譜表の最下線よりも下側にある音符等のうち最も下側の部分よりも所定の余白分だけ下側の位置を画像領域22Aの下側境界とした領域である。なお、上下に隣り合う大譜表の中間を隣り合う画像領域22Aの境界としても良い。なお、楽譜における曲名部分は、その曲名部分を大譜表と同様にして取り扱えば良い。
以上が、楽譜表示装置1Aの構成である。
次に、楽譜表示装置1Aの動作およびユーザの使用態様を説明する。
図7は、制御部11が楽譜表示プログラム141Aに従って実行する処理の流れを示すフローチャートである。楽譜表示プログラム141Aの実行開始の指示は、第1実施形態と同様である。まず、制御部11は、第1実施形態におけるステップSA110と同様に、ユーザI/F12の画面に表示する楽譜をユーザに選択させる(SB110)。次に、制御部11は、楽譜が選択されたか否かを判断する(SB120)。楽譜の選択がされなかった場合(SB120:No)、制御部11は、新たな楽譜データ20Aの生成を指示されたか否かを判断する(SB130)。新たな楽譜データ20Aの生成を指示された場合(SB130:Yes)、制御部11は、楽譜データ20Aの元となる楽譜元データをユーザに選択させる(SB140)。楽譜元データは、例えば、PDFファイルなどの楽譜の画像データであり、ユーザによって予め準備される。なお、楽譜元データは、第1実施形態における楽譜データ20と同等のものである。楽譜元データが選択されると、制御部11は、選択された楽譜元データに対してその内容の解析を行う(SB150)。この解析により、楽譜元データにおける大譜表、小節、音符、記号などの各要素が認識される。楽譜元データの解析については、例えば、特開平05−035924号公報、特開平06−102869号公報、特開平06−102870号公報、特開平06−102871号公報などの従来技術を利用すれば良い。次に、制御部11は、ステップSB150にて解析した楽譜元データから楽譜データ20Aを生成して不揮発性記憶部14に書き込む(SB160)。より詳細に説明すると、制御部11は、解析により大譜表等を認識した楽譜元データを、それら認識した大譜表等に基づいて複数の画像領域22Aの各々に対応するブロックに区分し、画像領域22Aの各々に対して番号付けする。このようにして、楽譜データ20Aが生成される。新たな楽譜データ20Aが生成されると、制御部11は、ステップSB110に戻り、当該新たな楽譜データ20Aを含めてユーザI/F12の画面に表示する楽譜をユーザに選択させる。なお、新たな楽譜データ20Aの生成の指示がない場合(SB130:No)、制御部11は、ステップSB120の処理に戻る。
ステップSB120において楽譜が選択された場合(SB120:Yes)、制御部11は、まず、選択された楽譜に対応する楽譜データ20Aを不揮発性記憶部14から読み出す(SB170)。次に、制御部11は、連続する複数の画像領域22A内の楽譜データの示す画像(すなわち各大譜表)をユーザI/F12の画面の上下方向に順次並べて表示する処理を行う(SB180)。より詳細に説明する。各大譜表の表示に際し、制御部11は、ユーザI/F12の画面の左上隅を画面の座標系の原点に設定し、各画像領域22Aの左上隅を各画像領域22Aの座標系の原点に設定する。そして、制御部11は、表示すべき連続する複数の画像領域22Aのうちの最も若番の画像領域22A(例えば1番目の画像領域22A1)の左上隅(当該画像領域22A1の原点)を画面の左上隅(画面の座標系における原点)に配置する。制御部11は、当該最若番の画像領域22Aの大きさから画面の座標系における当該最若番の画像領域22Aの左下隅の座標を求める。制御部11は、当該最若番の画像領域22Aの1つ老番の画像領域22A(例えば2番目の画像領域22A2)の左上隅(当該画像領域22A2の原点)を当該最若番の画像領域22Aの左下隅の直下の座標に配置する。以下同様にして、表示すべき各画像領域22Aを画面における上端から下方に順次並べる。これにより、図8に例示するように、並べた各画像領域22Aに属する各大譜表が画面に表示される。
次いで、楽譜の譜めくりについて説明する。制御部11は、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する(図示略)。制御部11は、ユーザによる入力操作を示す情報を取得するまで、入力操作を示す情報を取得したか否かの判断を繰り返す。入力操作を示す情報を取得した場合、制御部11は、取得した入力操作を示す情報が、ユーザI/F12の画面に表示されている複数の大譜表の中の1の大譜表の属する画像領域22Aに対する楽譜を進める譜めくり指示であるか否かを判断する(SB190)。より詳細に説明する。ユーザがユーザI/F12の画面に表示されている複数の大譜表の中の1の大譜表が表示されている位置の画面上を上方向にフリックすると、制御部11は、当該上方向のフリック操作の示す情報から当該上方向のフリック操作の行われた画面上の座標を認識し、画面の座標系における各画像領域22Aの配置情報から当該認識した座標に対応する画像領域22Aを認識する。そして、制御部11は、取得した当該上方向のフリック操作の示す情報を当該認識した画像領域22A(すなわち、ユーザの上方向のフリック操作によって指定された1の大譜表の属する画像領域22A)に対する楽譜を進める譜めくり指示であると判断する。
取得した入力操作を示す情報が1の画像領域22Aに対する楽譜を進める譜めくり指示である場合(SB190:Yes)、制御部11は、楽譜を進める譜めくり処理であるステップSB200の処理を行う。楽譜を進める譜めくり処理を具体例を挙げつつ説明する。図9は、楽譜を進める譜めくり処理による画面遷移の一例を示す概略図である。図9の例では、譜めくり処理に従ってユーザI/F12の画面に表示される内容が図9(A)〜図9(C)の順に変わる。図9(A)は、画面の上端から下端に向かって、1番目の大譜表(図9ではD1)の属する画像領域22A1、2番目の大譜表(図9ではD2)の属する画像領域22A2、3番目の大譜表(図9ではD3)の属する画像領域22A3、4番目の大譜表(図9ではD4)の属する画像領域22A4、5番目の大譜表(図9ではD5)の属する画像領域22A5の順に配置されている状態である。この状態において、制御部11は、画像領域22A3に対する楽譜を進める譜めくり指示(すなわち画面における大譜表D3が表示されている部分に対する上方向のフリック操作を示す情報)を取得したとする。この指示を取得した制御部11は、各画像領域22AをユーザI/F12の画面の上方向にスクロールして譜めくり指示のあった画像領域22A3をユーザI/F12の画面の最上段に配置して楽譜の時間軸における未来方向に連続する複数の画像領域22Aを画像領域22A3の下方に順次並べてユーザI/F12の画面に表示する処理を行う(図7:SB200、図9(B)〜(C))。より詳細に説明すると、制御部11は、譜めくり指示のあった画像領域22A3の左上隅が画面の左上隅に重なるように画像領域22A3を移動し、画像領域22A3の移動に従って画像領域22A3の下側の画像領域22A4および22A5を上方向に移動し、画像領域22A6の左上隅が画像領域22A5の左下隅の直下の座標に位置するように画像領域22A6を上方向に移動し、画像領域22A7の左上隅が画像領域22A6の左下隅の直下の座標に位置するように画像領域22A7を上方向に移動する処理を行う。このとき、制御部11は、図9(B)に示すように、各画像領域22Aに対して徐々に上方向にスクロールするアニメーションを施す。また、制御部11は、譜めくり指示のなされた画像領域22A3の左縁および右縁に各々マーカ24(例えば、水色のバー)を表示する。このマーカ24により、ユーザは、譜めくり指示のなされた大譜表D3を容易に視認することができる。ステップSB200の後、制御部11は、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する処理および当該入力操作を示す情報の内容を判断する処理に戻る(SB190)。
取得した入力操作を示す情報が1の画像領域22Aに対する楽譜を進める譜めくり指示でない場合(SB190:No)、制御部11は、取得した入力操作を示す情報が、ユーザI/F12の画面に表示されている複数の大譜表の中の1の大譜表の属する画像領域22Aに対する楽譜を戻す譜めくり指示であるか否かの判断を行う(SB210)。より詳細に説明する。ユーザがユーザI/F12の画面に表示されている複数の大譜表の中の1の大譜表が表示されている位置の画面上を下方向にフリックすると、制御部11は、当該下方向のフリック操作の示す情報から当該下方向のフリック操作の行われた画面上の座標を認識し、画面の座標系における各画像領域22Aの配置情報から当該認識した座標に対応する画像領域22Aを認識する。そして、制御部11は、取得した下方向のフリック操作の示す情報を当該認識した画像領域22A(すなわち、ユーザの下方向のフリック操作によって指定された1の大譜表の属する画像領域22A)に対する楽譜を戻す譜めくり指示であると判断する。
ステップSB210において、取得した入力操作を示す情報が1の画像領域22Aに対する楽譜を戻す譜めくり指示でない場合(SB210:No)、制御部11は、取得した入力操作を示す情報が、楽譜表示プログラム141Aの終了指示であるか否かを判断する(図示略)。制御部11は、それが楽譜表示プログラム141Aの終了指示である場合、楽譜表示プログラム141Aを終了し、それが楽譜表示プログラム141Aの終了指示でない場合、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する処理および当該入力操作を示す情報の内容を判断する処理に戻る(SB190)。一方、取得した入力操作を示す情報が1の画像領域22Aに対する楽譜を戻す譜めくり指示である場合(SB210:Yes)、制御部11は、楽譜を戻す譜めくり処理であるステップSB220の処理を行う。
楽譜を戻す譜めくり処理を具体例を挙げつつ説明する。図10は、楽譜を戻す譜めくり処理による画面遷移の一例を示す概略図である。図10の例では、譜めくり処理に従ってユーザI/F12の画面に表示される内容が図10(A)〜図10(C)の順に変わる。図10(A)は、画面の上端から下端に向かって、大譜表D4の属する画像領域22A4、大譜表D5の属する画像領域22A5、大譜表D6の属する画像領域22A6、大譜表D7の属する画像領域22A7、大譜表D8の属する画像領域22A8の順に配置されている状態である。この状態において、制御部11は、画像領域22A6に対する楽譜を戻す譜めくり指示(すなわち画面における大譜表D6が表示されている部分に対する下方向のフリック操作を示す情報)を取得したとする。この指示を取得した制御部11は、各画像領域22AをユーザI/F12の画面の下方向にスクロールして譜めくり指示のあった画像領域22A6をユーザI/F12の画面の最下段に配置して楽譜の時間軸における過去方向に連続する複数の画像領域22Aを画像領域22A6の上方に順次並べてユーザI/F12の画面に表示する処理を行う(図7:SB220、図10(B)〜(C))。より詳細に説明すると、制御部11は、譜めくり指示のあった画像領域22A6の左下隅の座標が画面の左下隅に重なるように画像領域22A6を移動し、画像領域22A6の移動に従って画像領域22A6の上側の画像領域22A4および22A5を下方向に移動し、画像領域22A3の左下隅が画像領域22A4の左上隅の直上の座標に位置するように画像領域22A3を下方向に移動し、画像領域22A2の左下隅が画像領域22A3の左上隅の直上の座標に位置するように画像領域22A2を下方向に移動する処理を行う。このとき、制御部11は、図10(B)に示すように、各画像領域22Aに対して徐々に下方向にスクロールするアニメーションを施す。また、制御部11は、楽譜を進める譜めくり処理と同様に、譜めくり指示のなされた画像領域22A6の左縁および右縁に各々マーカ24を表示する。ステップSB220の後、制御部11は、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する処理および当該入力操作を示す情報の内容を判断する処理に戻る(SB190)。なお、5段分の大譜表を画面に表示する態様を説明したが、画面に表示する大譜表の数はこれに限られない。
このように、本実施形態による楽譜表示装置1Aは、ページ単位の譜めくりに代えて大譜表単位で譜めくりを行う点を除いて第1実施形態による楽譜表示装置1と同様であるから、本実施形態においても、第1実施形態と同様の効果が得られる。また、ユーザI/F12の画面に表示されている複数の大譜表の中の1の大譜表の属する画像領域22Aに対して譜めくり操作を行うため、ユーザは、譜めくり指示を行う領域を変えることにより譜めくり範囲を変えることができる。例えば、大譜表D1〜大譜表D5が表示されている状態で大譜表D3の属する画像領域22A3に対して楽譜を進める譜めくり指示を行った場合には大譜表D3〜大譜表D6が画面に表示されるのに対して、大譜表D1〜大譜表D5が表示されている状態で大譜表D4の属する画像領域22A4に対して楽譜を進める譜めくり指示を行った場合には大譜表D4〜大譜表D7が画面に表示される、という具合である。これにより、ユーザは、演奏中において柔軟に譜めくり操作を行うことができる。この点においても利便性の高い楽譜表示装置を提供することができるといえる。
また、本実施形態による楽譜表示装置1Aでは、大譜表単位で譜めくりを行うため、必ずしも1ページ分の大譜表を画面に表示する必要はない。このため、第1実施形態の楽譜表示装置1に比べ、ユーザI/F12の画面サイズを小さくすることができる。また、複数の楽譜表示装置1AにおいてユーザI/F12の画面サイズが各々異なっていても(例えば画面のアスペクト比が異なっていても)、ユーザI/F12の画面に表示する大譜表の数を変えるなどによりそれら複数の楽譜表示装置1Aを同様に扱うことができる。
また、例えば、各ページにおける最上段に位置する大譜表よりも上方に過剰に広い余白部分がある場合や、各ページにおける最下段に位置する大譜表よりも下方に過剰に広い余白部分がある場合には、適切な余白サイズになるように画像領域22Aのサイズを適切なものに調整しても良い。余白部分における過剰に広い部分を省略して各大譜表をユーザI/F12の画面に表示することができるようになるからである。これにより、ユーザI/F12の画面を有効に活用することができる。
<第3実施形態>
第2実施形態による楽譜表示装置1Aは、大譜表単位で譜めくりを行うものであった。これに対して、この発明の第3実施形態による楽譜表示装置1Bは、小節単位で譜めくりを行うものである。図11は、本実施形態による楽譜表示装置1Bの構成を示すブロック図である。図11に示すように、本実施形態による楽譜表示装置1Bは、楽譜表示プログラム141Aに代えて楽譜表示プログラム141Bを、楽譜データ20Aに代えて楽譜データ20Bを有する点において第2実施形態による楽譜表示装置1Aと異なる。
楽譜表示プログラム141Bは、制御部11に実行させる処理内容が第2実施形態による楽譜表示プログラム141Aと異なる。楽譜表示プログラム141Bに従って制御部11が実行する処理については、動作の説明において詳述する。
楽譜データ20Bは、当該楽譜データ20Bの示す楽譜画像が小節毎に区分されるようにブロック化されている点において第2実施形態による楽譜データ20Aと異なる。図12は、楽譜データ20Bの構成を示す概念図である。図12では、楽譜データ20Bを画像イメージで示している。図12は、大譜表を1つだけ表示し、複数の小節を画面の横方向に並べて表示する態様である。図12に示すように、楽譜データ20Bは、画像領域22B毎にブロック化されている。各画像領域22Bには、それらを区別するための番号k(k=1、2、・・・j−1、j、j+1・・・)が各々付与されている。なお、各画像領域を区別するときは、画像領域22Bjのように表示する。画像領域22Bは、1の小節および当該小節に属する音符や記号などを取り囲む領域であり、小節線を隣接する画像領域22Bとの境界とした領域である。なお、大譜表における左端のト音記号などは最初の小節の属する画像領域22Bに含めて取り扱っても良いし、最初の小節の属する画像領域22Bから独立して取り扱っても良い。
以上が、楽譜表示装置1Bの構成である。
次に、楽譜表示装置1Bの動作およびユーザの使用態様を説明する。
図13は、画面に表示する楽譜が選択された後に楽譜表示プログラム141Bに従って楽譜表示装置1Bの制御部11が行う処理(すなわち、第2実施形態の図7のSB170〜SB220に対応する処理)の流れを示すフローチャートである。なお、楽譜データ20Bは、第2実施形態の楽譜データ20Aと同様にして生成される。まず、制御部11は、選択された楽譜に対応する楽譜データ20Bを不揮発性記憶部14から読み出す(SC110)。次に、制御部11は、連続する複数の画像領域22B内の楽譜データ20Bの示す画像(すなわち各小節)をユーザI/F12の画面の横方向に並べて表示する処理を行う(SC120)。より詳細に説明する。制御部11は、表示すべき連続する複数の画像領域22Bのうちの最も若番の画像領域22B(例えば1番目の画像領域22B1)の左上隅(画像領域22B1の原点)を画面の左上隅(画面の座標系における原点)に配置する。制御部11は、当該最若番の画像領域22Bの大きさから画面の座標系における当該最若番の画像領域22Bの右上隅の座標を求める。制御部11は、当該最若番の画像領域22Bの1つ老番の画像領域22B(例えば2番目の画像領域22B2)の左上隅(画像領域22B2の原点)を当該最若番の画像領域22Bの右上隅の直右の座標に配置する。以下同様にして、表示すべき各画像領域22Bを画面における左端から右方向に順次並べる。これにより、並べた各画像領域22Bに属する各小節が画面に表示される。
次いで、楽譜の譜めくりについて説明する。制御部11は、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する(図示略)。制御部11は、ユーザによる入力操作を示す情報を取得するまで、入力操作を示す情報を取得したか否かの判断を繰り返す。入力操作を示す情報を取得した場合、制御部11は、取得した入力操作を示す情報が、ユーザI/F12の画面に表示されている複数の小節の中の1の小節の属する画像領域22Bに対する楽譜を進める譜めくり指示であるか否かを判断する(SC130)。より詳細に説明する。ユーザがI/F12の画面に表示されている複数の小節の中の1の小節が表示されている位置の画面上を左方向にフリックすると、制御部11は、当該左方向のフリック操作の示す情報から当該左方向のフリック操作の行われた画面上の座標を認識し、画面の座標系における各画像領域22Bの配置情報から当該認識した座標に対応する画像領域22Bを認識する。そして、制御部11は、取得した当該左方向のフリック操作の示す情報を当該認識した画像領域22B(すなわち、ユーザの左方向のフリック操作によって指定された1の小節の属する画像領域22B)に対する楽譜を進める譜めくり指示であると判断する。
取得した入力操作を示す情報が1の画像領域22Bに対する楽譜を進める譜めくり指示である場合(SC130:Yes)、制御部11は、楽譜を進める譜めくり処理であるステップSC140の処理を行う。楽譜を進める譜めくり処理を具体例を挙げつつ説明する。図14は、楽譜を進める譜めくり処理による画面遷移の一例を示す概略図である。図14の例では、譜めくり処理に従ってユーザI/F12の画面に表示される内容が図14(A)〜図14(C)の順に変わる。図14(A)は、画面の左端から右端に向かって、1番目の小節(図14ではS1)の属する画像領域22B1、2番目の小節(図14ではS2)の属する画像領域22B2、3番目の小節(図14ではS3)の属する画像領域22B3、4番目の小節(図14ではS4)の属する画像領域22B4の順に配置されている状態である。この状態において、制御部11は、画像領域22B3に対する楽譜を進める譜めくり指示(すなわち画面における小節S3が表示されている部分に対する左方向のフリック操作を示す情報)を取得したとする。この指示を取得した制御部11は、各画像領域22BをユーザI/F12の画面の左方向にスクロールして譜めくり指示のあった画像領域22B3をユーザI/F12の画面の最左側に配置して画像領域22B3よりも楽譜の時間軸における未来方向に連続する複数の画像領域22Bを画像領域22B3の右方向に順次並べてユーザI/F12の画面に表示する処理を行う(図13:SC140、図14(B)〜(C))。より詳細に説明すると、制御部11は、譜めくり指示のあった画像領域22B3の左上隅(画像領域22B3の原点)が画面の左上隅(画面の座標系の原点)に重なるように画像領域22B3を移動し、画像領域22B3の移動に従って画像領域22B3の右側の画像領域22B4を左方向に移動し、画像領域22B5の左上隅が画像領域22B4の右上隅の直右の座標に位置するように画像領域22B5を左方向に移動し、画像領域22B6の左上隅が画像領域22B5の右上隅の直右の座標に位置するように画像領域22B6を左方向に移動する処理を行う。このとき、制御部11は、図14(B)に示すように、各画像領域22Bに対して徐々に左方向にスクロールするアニメーションを施す。また、制御部11は、譜めくり指示のなされた画像領域22B3の上縁および下縁に各々マーカ24(例えば、水色のバー)を表示する。ステップSC140の後、制御部11は、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する処理および当該入力操作を示す情報の内容を判断する処理に戻る(SC130)。
取得した入力操作を示す情報が1の画像領域22Bに対する楽譜を進める譜めくり指示でない場合(SC130:No)、制御部11は、取得した入力操作を示す情報が、ユーザI/F12の画面に表示されている複数の小節の中の1の小節の属する画像領域22Bに対する楽譜を戻す譜めくり指示であるか否かの判断を行う(SC150)。より詳細に説明する。ユーザがユーザI/F12の画面に表示されている複数の小節の中の1の小節が表示されている位置の画面上を右方向にフリックすると、制御部11は、当該右方向のフリック操作の示す情報から当該右方向のフリック操作の行われた画面上の座標を認識し、画面の座標系における各画像領域22Bの配置情報から当該認識した座標に対応する画像領域22Bを認識する。そして、制御部11は、取得した当該右方向のフリック操作の示す情報を当該認識した画像領域22B(すなわち、ユーザの右方向のフリック操作によって指定された1の小節の属する画像領域22B)に対する楽譜を戻す譜めくり指示であると判断する。
ステップSC150において、取得した入力操作を示す情報が1の画像領域22Bに対する楽譜を戻す譜めくり指示でない場合(SC150:No)、制御部11は、取得した入力操作を示す情報が、楽譜表示プログラム141Bの終了指示であるか否かを判断する(図示略)。制御部11は、それが楽譜表示プログラム141Bの終了指示である場合、楽譜表示プログラム141Bを終了し、それが楽譜表示プログラム141Bの終了指示でない場合、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する処理および当該入力操作を示す情報の内容を判断する処理に戻る(SB190)。一方、取得した入力操作を示す情報が1の画像領域22Bに対する楽譜を戻す譜めくり指示である場合(SC150:Yes)、制御部11は、楽譜を戻す譜めくり処理であるステップSC160の処理を行う。
楽譜を戻す譜めくり処理を具体例を挙げつつ説明する。図15は、楽譜を戻す譜めくり処理による画面遷移の一例を示す概略図である。図15の例では、譜めくり処理に従ってユーザI/F12の画面に表示される内容が図15(A)〜図15(C)の順に変わる。図15(A)は、画面の左端から右端に向かって、小節S4の属する画像領域22B4、小節S5の属する画像領域22B5、小節S6の属する画像領域22B6、小節S7の属する画像領域22B7の順に配置されている状態である。この状態において、制御部11は、画像領域22B5に対する楽譜を戻す譜めくり指示(すなわち画面における小節S5が表示されている部分に対する右方向のフリック操作を示す情報)を取得したとする。この指示を取得した制御部11は、各画像領域22BをユーザI/F12の画面の右方向にスクロールして譜めくり指示のあった画像領域22B5をユーザI/F12の画面の最右側に配置して楽譜の時間軸における過去方向に連続する複数の画像領域22Bを画像領域22B5の左方向に順次並べてユーザI/F12の画面に表示する処理を行う(図13:SC160、図15(B)〜(C))。より詳細に説明すると、制御部11は、譜めくり指示のあった画像領域22B5の右上隅が画面の右上隅に重なるように画像領域22B5を移動し、画像領域22B5の移動に従って画像領域22B5の左側の画像領域22B4を右方向に移動し、画像領域22B3の右上隅が画像領域22B4の左上隅の直左の座標に位置するように画像領域22B3を右方向に移動し、画像領域22B2の右上隅が画像領域22B3の左上隅の直左の座標に位置するように画像領域22B2を右方向に移動する処理を行う。このとき、制御部11は、図15(B)に示すように、各画像領域22Bに対して徐々に右方向にスクロールするアニメーションを施す。また、制御部11は、楽譜を進める譜めくり処理と同様に、譜めくり指示のなされた画像領域22B5の上縁および下縁に各々マーカ24を表示する。ステップSC160の後、制御部11は、ユーザによる入力操作を示す情報をユーザI/F12から取得したか否かを判断する処理および当該入力操作を示す情報の内容を判断する処理に戻る(SC130)。なお、4小節分を画面に表示する態様を説明したが、画面に表示する小節の数はこれに限られない。
このように、本実施形態による楽譜表示装置1Bは、小節単位で譜めくりを行う点を除いて第2実施形態による楽譜表示装置1Aと同様であるから、本実施形態においても、第2実施形態と同様の効果が得られる。また、本実施形態による楽譜表示装置1Bは、第2実施形態の楽譜表示装置1Aに比べ、ユーザI/F12の画面サイズをさらに小さくすることができる。
<第4実施形態>
第2実施形態による楽譜表示装置1Aは、譜めくり指示のあった画像領域22Aの大譜表が画面の最上段または最下段に表示されるようにスクロールさせた。これに対して、この発明の第4実施形態による楽譜表示装置1Cは、表示されている大譜表のうちの一部の大譜表を譜めくり指示により他の大譜表に置き換えるものである。図16は、本実施形態による楽譜表示装置1Cの構成を示すブロック図である。図16に示すように、本実施形態による楽譜表示装置1Cは、楽譜表示プログラム141Aに代えて楽譜表示プログラム141Cを有する点において第2実施形態による楽譜表示装置1Aと異なる。楽譜表示プログラム141Cは、制御部11に実行させる処理内容が第2実施形態による楽譜表示プログラム141Aと異なる。
図17は、楽譜を画面に表示した後に楽譜表示プログラム141Cに従って楽譜表示装置1Cの制御部11が行う処理(すなわち、第2実施形態の図7のSB190〜SB220に対応する処理)の流れを示すフローチャートである。図7と同様の処理には同じ符号を付して説明を省略する。取得した入力操作を示す情報が1の画像領域22Aに対する楽譜を進める譜めくり指示である場合(SB190:Yes)、制御部11は、楽譜を進める譜めくり処理であるステップSD120の処理を行う。また、取得した入力操作を示す情報が1の画像領域22Aに対する楽譜を戻す譜めくり指示である場合(SB210:Yes)、制御部11は、楽譜を戻す譜めくり処理であるステップSD140の処理を行う。
本実施形態における楽譜を進める譜めくり処理を具体例を挙げつつ説明する。図18は、楽譜を進める譜めくり処理による画面遷移の一例を示す概略図である。図18(A)は、画面の上端から下端に向かって、大譜表D1の属する画像領域22A1、大譜表D2の属する画像領域22A2、大譜表D3の属する画像領域22A3、大譜表D4の属する画像領域22A4、大譜表D5の属する画像領域22A5、大譜表D6の属する画像領域22A6の順に配置されている状態である。この状態において、制御部11は、画像領域22A5に対する楽譜を進める譜めくり指示(すなわち画面における大譜表D5が表示されている部分に対する上方向のフリック操作を示す情報)を取得したとする。この指示を取得した制御部11は、譜めくり指示のあった画像領域22A5内の大譜表D5よりも楽譜の時間軸における過去方向の大譜表D1〜D4を、画面に表示されている大譜表のうちの最老番の大譜表D6よりも楽譜の時間軸における未来方向に連続する複数の大譜表(すなわち、大譜表D7、大譜表D8・・・)に、画面に表示されている大譜表のうちの最若番の大譜表から順に置き換えて表示する処理を行う(SD120)。これにより、図18(A)の状態から図18(B)の状態に変わる。より詳細に説明すると、制御部11は、大譜表D1の属する画像領域22A1が配置されている位置に、大譜表D7の属する画像領域22A7を配置する。同様に、制御部11は、大譜表D2の属する画像領域22A2が配置されている位置に大譜表D8の属する画像領域22A8を配置し、大譜表D3の属する画像領域22A3が配置されている位置に大譜表D9の属する画像領域22A9を配置し、大譜表D4の属する画像領域22A4が配置されている位置に大譜表D10の属する画像領域22A10を配置する。ステップSD120の後、制御部11は、ステップSB190の処理に戻る。
図18(B)の状態において、入力操作を示す情報を取得し、その取得した入力操作を示す情報が大譜表D9の属する画像領域22A9に対する楽譜を進める譜めくり指示である場合(SB190:Yes)、制御部11は、大譜表D5の属する画像領域22A5が配置されている位置に大譜表D11の属する画像領域22A11を配置する。同様に、制御部11は、大譜表D6の属する画像領域22A6が配置されている位置に大譜表D12の属する画像領域22A12を配置し、大譜表D7の属する画像領域22A7が配置されている位置に大譜表D13の属する画像領域22A13を配置し、大譜表D8の属する画像領域22A8が配置されている位置に大譜表D14の属する画像領域22A14を配置する。これにより図18(B)の状態から図18(C)の状態に変わる。
本実施形態における楽譜を戻す譜めくり処理を具体例を挙げつつ説明する。図19は、楽譜を戻す譜めくり処理による画面遷移の一例を示す概略図である。図19(A)は、画面の上端から下端に向かって、画像領域22A13、画像領域22A14、画像領域22A9、画像領域22A10、画像領域22A11、画像領域22A12の順に配置されている状態である。この状態において、制御部11は、画像領域22A10に対する楽譜を戻す譜めくり指示(すなわち画面における大譜表D10が表示されている部分に対する下方向のフリック操作を示す情報)を取得したとする。この指示を取得した制御部11は、譜めくり指示のあった画像領域22A10内の大譜表D10よりも楽譜の時間軸における未来方向の大譜表D11〜D14を、画面に表示されている大譜表のうちの最若番の大譜表D9よりも楽譜の時間軸における過去方向に連続する複数の大譜表(すなわち、大譜表D8、大譜表D7・・・)に、画面に表示されている大譜表のうちの最老番の大譜表から順に置き換えて表示する処理を行う(SD140)。これにより、図19(A)の状態から図19(B)の状態に変わる。より詳細に説明すると、制御部11は、大譜表D14の属する画像領域22A14が配置されている位置に大譜表D8の属する画像領域22A8を配置する。同様に、制御部11は、大譜表D13の属する画像領域22A13が配置されている位置に大譜表D7の属する画像領域22A7を配置し、大譜表D12の属する画像領域22A12が配置されている位置に大譜表D6の属する画像領域22A6を配置し、大譜表D11の属する画像領域22A11が配置されている位置に大譜表D5の属する画像領域22A5を配置する。ステップSD140の後、制御部11は、ステップSB190の処理に戻る。
図19(B)の状態において、入力操作を示す情報を取得し、その取得した入力操作を示す情報が大譜表D5の属する画像領域22A5に対する楽譜を戻す譜めくり指示である場合(SB190:No、SB210:Yes)、制御部11は、大譜表D10の属する画像領域22A10が配置されている位置に大譜表D4の属する画像領域22A4を配置する。同様に、制御部11は、大譜表D9の属する画像領域22A9が配置されている位置に大譜表D3の属する画像領域22A3を配置し、大譜表D8の属する画像領域22A8が配置されている位置に大譜表D2の属する画像領域22A2を配置し、大譜表D7の属する画像領域22A7が配置されている位置に大譜表D1の属する画像領域22A1を配置する。この場合、この設定されている画像領域22Aのなかで画像領域22A1が最若番の画像領域22Aであるため、画像領域22A6が配置されている位置には、引き続き画像領域22A6を配置する。これにより、図19(B)の状態から図19(C)の状態に変わる。
なお、制御部11は、第2実施形態と同様に、楽譜を進める譜めくり処理または楽譜を戻す譜めくり処理に際してアニメーション(例えば、徐々に置き換えるアニメーションなど)を施しても良い。また、制御部11は、第2実施形態と同様に、譜めくり指示のなされた画像領域22Aの左縁および右縁にマーカを表示しても良い。また、6段分の大譜表を画面に表示する態様を説明したが、画面に表示する大譜表の数はこれに限られない。
このように、本実施形態による楽譜表示装置1Cは、大譜表を置き換えるようにして譜めくりを行う点を除いて第2実施形態による楽譜表示装置1Aと同様であるから、本実施形態においても、第2実施形態と同様の効果が得られる。
また、本実施形態による楽譜表示装置1Cでは、譜めくり指示のあった画像領域22A内の大譜表が画面上において移動しないため、ユーザは、譜めくりに伴って当該譜めくり指示のあった画像領域22A内の大譜表に対する視線を移動する必要がない。従って、楽譜表示装置1Cでは、譜めくりの際に視線を移動することによる演奏への影響を少なくすることができる。
また、画面に表示されている部分における楽譜の時間軸が連続していない境界部分に、楽譜の時間軸が連続していない旨を示す表示を行っても良い。例えば、図18(B)の大譜表10の画像領域22A10と大譜表D5の画像領域22A5との境界部分に、紙の切れ目を表すような表示を行う、という具合である。このようにすることで、ユーザは、楽譜の時間軸が連続していない境界部分をより容易に認識することができ、次の譜めくり指示をどのタイミングで行えば良いかをより容易に把握することができる。
<第5実施形態>
第1〜第4実施形態では、本発明の楽譜表示装置の具体的な実施形態を示していた。第5実施形態では、これら第1〜第4実施形態の特徴をまとめた楽譜表示装置を説明する。
図20は、本実施形態の楽譜表示装置(具体的には、楽譜表示装置1〜1C)の制御手段(具体的には、制御部11)が行う処理内容を示すフローチャートである。図20に示すように、本実施形態の楽譜表示装置の制御手段は、ユーザからの指示を契機として楽譜表示プログラム(具体的には、楽譜表示プログラム141〜141C)の実行を開始し、まず、表示対象の楽譜の楽譜データ(具体的には、楽譜データ20〜20B)を生成する(SE110)。この楽譜データは、表示対象の楽譜がその楽譜における時間軸に沿って連続する複数の所定の領域に区分されたデータの集合である。次に、制御手段は、区分されたすべての領域の中から、楽譜における時間軸に沿って連続する複数の領域を抽出する(SE120)。この際、制御手段は、区分されたすべての領域の中から1の領域を抽出開始位置の領域として決定し、その抽出開始位置の領域を起点として、楽譜の時間軸に沿って未来方向に連続する複数の領域を抽出する。次に、制御手段は、抽出した領域内の楽譜を表示手段(具体的には、ユーザI/F12)に表示させる(SE130)。これにより、抽出開始位置の領域を含む時間的に連続する複数の領域内の楽譜が表示手段に表示される。
次に、制御手段は、表示されている楽譜の1の領域に対する譜めくり指示を入力手段(具体的には、ユーザI/F12)を介して取得する(SE140)。すなわち、譜めくり指示は、抽出された時間的に連続する複数の領域内の楽譜のうちのいずれか1の領域内の楽譜を対象とした譜めくりを示す情報である。制御手段は、この譜めくり指示の取得を契機として、抽出開始位置を1または複数の領域数分だけ楽譜の時間軸における未来方向または過去方向にずらす処理を行う(SE150)。次に、制御手段は、ステップSE150によってずれた抽出開始位置を抽出の起点とし、楽譜における時間軸に沿って未来方向に連続する複数の領域であり、譜めくり指示のあった領域を含む連続する複数の領域を抽出する(SE160)。そして、制御手段は、抽出開始位置をずらした後において抽出した領域内の楽譜を表示手段に表示させる(SE130)。
このように、本実施形態の楽譜表示装置によれば、譜めくり指示のあった領域内の楽譜が表示手段に表示されたまま譜めくりされる。このため、ユーザの譜めくり操作に関する演奏の停止を回避したり演奏の停止のリスクを低減することができる。また、楽譜の時間軸における所定の領域(具体的には、ページ、大譜表、小節、音符など)毎に区分された楽譜のうちの複数の領域分の楽譜が表示手段の画面に表示されるため、表示手段の画面の中央近傍において楽譜内容が切れて(例えば、大譜表等が上下に切れて)表示されることはない。
図21は、本実施形態の楽譜表示装置の各構成要素の機能を示す図である。楽譜表示装置のユーザI/Fは、表示機能と入力機能とを有している。より詳細には、ユーザI/Fは、楽譜における連続する複数の領域を表示する機能と、譜めくり指示を取得する機能とを有している。また、楽譜表示装置1Eの制御部は、楽譜データ生成機能と、楽譜における連続する複数の領域を抽出する機能と、抽出開始位置を楽譜の時間軸に沿ってずらす機能と、譜めくり指示のあった領域を含む連続する複数の領域を抽出する機能とを有している。楽譜表示装置では、制御部が楽譜表示プログラムを実行することにより、制御部およびユーザI/Fにおいてこれらの機能を実現している。
また、より好適には、制御手段は、楽譜の時間軸に沿って連続する複数の領域内の楽譜を楽譜の時間軸に沿った順に並べて表示手段の画面に表示させる処理を行うものであって、表示手段に表示されている楽譜における1の領域に対する譜めくり指示を入力手段を介して取得したことを契機として、譜めくり指示のあった領域が抽出開始位置を示す領域となるように抽出開始位置を楽譜の時間軸における未来方向にずらし、ずらした抽出開始位置から楽譜の時間軸に沿って連続する複数の領域を抽出して楽譜の時間軸に沿った順に並べ、当該抽出した複数の領域内の楽譜をスクロールさせて表示手段に表示させる処理、または、譜めくり指示のあった領域が抽出終了位置を示す領域となるように抽出開始位置を楽譜の時間軸における過去方向にずらし、ずらした抽出開始位置から抽出終了位置まで楽譜の時間軸に沿って連続する複数の領域を抽出して楽譜の時間軸に沿った順に並べ、当該抽出した複数の領域内の楽譜をスクロールさせて表示手段に表示させる処理を行うものである。第1〜第3実施形態の楽譜表示装置1〜1Bは、この態様の一実施形態である。
<第6実施形態>
第1実施形態の楽譜表示装置1は、ページ単位で楽譜を画面に表示する表示モード(以下、ページ表示モードと呼ぶ)で動作するものであった。第2実施形態の楽譜表示装置1Aは、大譜表単位で楽譜を画面に表示する表示モード(以下、大譜表表示モードと呼ぶ)で動作するものであった。第3実施形態の楽譜表示装置1Bは、小節単位で楽譜を画面に表示する表示モード(以下、小節表示モードと呼ぶ)で動作するものであった。この発明の第6実施形態による楽譜表示装置1Fは、このような各種の表示モードのなかから動作すべき表示モードを決定する処理を含むものである。楽譜表示装置1Fは、楽譜表示装置1〜1Bと同様の構成要素を含んでいる。
楽譜表示装置1Fでは、ユーザI/F12の画面の形状が長方形である。また、楽譜表示装置1Fは、ユーザI/F12の画面の姿勢を検出してその結果を出力する姿勢検出センサ(図示略)をさらに有している。姿勢検出センサは、例えば、地磁気センサである。より詳細には、姿勢検出センサは、画面が地面に対して傾いている(すなわち、画面が地面と略水平になっていない)際に、その画面の長辺が水平よりも鉛直寄りに保持されているか(換言すると、画面が縦長の姿勢で保持されているか)、あるいは、その画面の長辺が鉛直よりも水平寄りに保持されているか(換言すると、画面が横長の姿勢で保持されているか)を逐次検出する。そして、姿勢検出センサは、その検出結果を制御部11へ逐次出力する。例えば、タブレットやスマートフォンなどの携帯端末を楽譜表示装置1Fとして機能させた場合、当該携帯端末に内蔵されている地磁気センサを本実施形態の姿勢検出センサとして用いれば良い。
楽譜表示装置1Fは、表示モードの一態様として、n(nは複数)ページ分の楽譜の一覧を画面に表示するnアップ表示モードを含んでいる。図22および図23は、nアップ表示モードで楽譜を表示させた場合の画面の例を示す図である。図22は、縦長の姿勢で保持されている画面に4ページ分の楽譜を表示する4アップ表示モードで楽譜を表示させた場合の画面を示している。図23は、横長の姿勢で保持されている画面に8ページ分の楽譜を表示する8アップ表示モードで楽譜を表示させた場合の画面を示している。
本実施形態の楽譜表示装置1Fの制御部11は、姿勢検出センサの検出結果であるユーザI/F12の画面の姿勢と、楽譜の表示される大きさを示す表示拡大率とに従って、動作すべき表示モードを決定する。このため、不揮発性記憶部14には、この表示拡大率の初期値が予め記憶されている。
制御部11には、ユーザI/F12を介して表示拡大率の変更を示す情報が入力される。ユーザによる表示拡大率を変更させる操作は、例えば、ピンチインやピンチアウトである。ピンチインは、画面上に置いた2本の指を近づける操作である。ピンチインは、ピンチイン前に比べて、当該指の間隔の変化量に応じた量だけ表示拡大率を小さくする操作である。ピンチアウトは、画面上に置いた2本の指を遠ざける操作である。ピンチアウトは、ピンチアウト前に比べて、当該指の間隔の変化量に応じた量だけ表示拡大率を大きくする操作である。
画面の姿勢が変化した場合、表示拡大率が変化した場合、または、画面の姿勢と表示拡大率の両方が変化した場合、制御部11は、その変化後の画面の姿勢と表示拡大率とに従って、表示モードを決定する。このため、楽譜表示装置1Fでは、画面の姿勢および表示拡大率に従って、表示モード(具体的には、ページ表示モード、大譜表表示モード、小節表示モードおよびnアップ表示モード)が他の表示モード(具体的には、ページ表示モード、大譜表表示モード、小節表示モードおよびnアップ表示モード)に切り替わる。なお、この表示モードの切り替えには、nアップ表示モードから当該nアップ表示モードのページ数とは異なるページ数のnアップ表示モードへの切り替えが含まれている。
図24は、本実施形態の楽譜表示装置1Fの制御部11が行う処理内容を示すフローチャートである。図24に示すステップSA110〜ステップSA130は、図2に示すそれと同様であるため説明を省略する。
楽譜表示装置1Fの制御部11は、選択された楽譜データ20を読み出した後(ステップSA130)、姿勢検出センサからユーザI/F12の画面が縦長の姿勢で保持されているか、あるいは横長の姿勢で保持されているかの検出結果を逐次取得する(SF110)。次に、制御部11は、設定されている表示拡大率の初期値を揮発性記憶部13に読み出す(SF120)。次に、制御部11は、姿勢検出センサの検出結果と、読み出した表示拡大率とに従って表示モードを決定する(SF130)。そして、制御部11は、決定した表示モードで楽譜を表示する(SF140)。
ステップSF130およびSF140について、より詳細に説明する。姿勢検出センサの検出結果が、画面が縦長の姿勢で保持されていることを示すものであり、かつ、読み出した表示拡大率が、所定の閾値以上の場合(例えば、表示拡大率が100%以上の場合)、制御部11は、大譜表表示モードで楽譜を表示させる制御を行う。この場合、制御部11は、読み出した表示拡大率に従った数分だけ、大譜表の属する連続する画像領域を抽出する。例えば、表示拡大率が100%である場合、制御部11は、連続する1ページ分の画像領域(例えば、図9(A)の大譜表D1〜D6の各画像領域)を抽出する一方、表示拡大率が100%よりも大きい場合(例えば、表示拡大率が120%などの場合)、制御部11は、1ページ分よりも少ない数の画像領域(例えば、図9(A)の大譜表D1〜D5の各画像領域)を抽出する、という具合である。
姿勢検出センサの検出結果が、画面が縦長の姿勢で保持されていることを示すものであり、かつ、読み出した表示拡大率が、所定の閾値よりも小さい場合(例えば、表示拡大率が100%よりも小さい場合)、制御部11は、nアップ表示モードで楽譜を表示させる制御を行う。この場合、制御部11は、読み出した表示拡大率に従った数分だけ、ページの属する連続する画像領域を抽出する。例えば、表示拡大率が25%である場合、制御部11は、連続する4ページ分の画像領域(例えば、図22のページP1〜P4の各画像領域)を抽出する、という具合である。なお、表示拡大率がさらに小さい場合、制御部11は、16アップ表示モード等で楽譜を表示させても良い。
姿勢検出センサの検出結果が、画面が横長の姿勢で保持されていることを示すものであり、かつ、読み出した表示拡大率が、所定の範囲内である場合(例えば、表示拡大率が12.5%よりも大きく200%よりも小さい場合)、制御部11は、ページ表示モードで楽譜を表示させる制御を行う。この場合、制御部11は、連続する2ページ分の画像領域(例えば、図3(A)のページP1およびP2の各画像領域)を抽出する。
姿勢検出センサの検出結果が、画面が横長の姿勢で保持されていることを示すものであり、かつ、読み出した表示拡大率が、所定の範囲の上限を超える場合(例えば、表示拡大率が200%を超える場合)、制御部11は、小節表示モードで楽譜を表示させる制御を行う。この場合、制御部11は、連続する複数の小節分の画像領域(例えば、図14(A)の小節S1〜S4)を抽出する。
姿勢検出センサの検出結果が、画面が横長の姿勢で保持されていることを示すものであり、かつ、読み出した表示拡大率が、所定の範囲の下限を超える場合、制御部11は、nアップ表示モードで楽譜を表示させる制御を行う。この場合、制御部11は、読み出した表示拡大率に従った数分だけ、ページの属する連続する画像領域を抽出する。例えば、表示拡大率が12.5%である場合、制御部11は、連続する8ページ分の画像領域(例えば、図23のページP1〜P8の各画像領域)を抽出する、という具合である。なお、表示拡大率がさらに小さい場合、制御部11は、18アップ表示モード等で楽譜を表示させても良い。
各表示モードで動作している状態において、制御部11は、ユーザI/F12を介して取得した情報が譜めくり指示を示すものであるか否かを判別する(SF150)。取得した情報が譜めくり指示を示すものであった場合(SF150:Yes)、制御部11は、当該表示モードにおいて譜めくり処理を行う(SF160)。この譜めくり処理は、上記の各実施形態において説明した譜めくりに関する処理と同様であるため説明を省略する。そして、制御部11は、譜めくり処理後の楽譜を画面に表示する(SF140)。
一方、各表示モードで動作している状態において、ユーザI/F12を介して取得した情報が譜めくり指示を示すものでなかった場合(SF140:No)、制御部11は、当該取得した情報が、ピンチインを示すものであるか否か、または、ピンチアウトを示すものであるか否かを判別する(SF170)。当該取得した情報がピンチインを示すものである場合(SF170:Yes)、制御部11は、ピンチインの操作前に比べて、ピンチインの操作量に応じた量だけ表示拡大率を小さくし(SF180)、当該取得した情報がピンチアウトを示すものである場合(SF170:Yes)、制御部11は、ピンチアウトの操作前に比べて、ピンチアウトの操作量に応じた量だけ表示拡大率を大きくする(SF180)。制御部11は、この変更した表示拡大率を揮発性記憶部13に格納する。その後、制御部11は、揮発性記憶部13に格納された表示拡大率(すなわち、ステップSF180において変更した後の表示拡大率)と、姿勢検出センサの検出結果とに従って、再び表示モードを決定する(SF130)。この際、制御部11は、変更後の表示拡大率の値によっては、表示拡大率の変更前の表示モードとは異なる表示モードを決定する。これにより、表示モードが切り替えられる。
表示拡大率の変更による表示モードの切り替えの具体例を示す。
第1の例では、制御部11は、図9(A)に示すように、縦長の姿勢に保持された画面に大譜表表示モードで楽譜を表示させているとする。この状態において、画面上においてユーザがピンチインを行うと、制御部11は、そのピンチインを示す情報を取得する(SF170:Yes)。制御部11は、そのピンチインの操作量に応じて、例えば、表示拡大率を100%から25%に変更する(SF180)。その後、制御部11は、画面が縦長の姿勢に保持されていることを示す検出結果と、変更後の表示拡大率である表示拡大率25%とから、再び表示モードを決定する(SF130)。この例では、表示拡大率が所定の閾値よりも小さいため、制御部11は、表示モードを大譜表表示モードから4アップ表示モードへ切り替える。この際、制御部11は、表示モードの切り替えの直前の最上段の大譜表を含むページの属する画像領域を抽出開始位置の画像領域とする。そして、制御部11は、この抽出開始位置の画像領域から時間的に連続する4ページ分の画像領域を抽出する。そして、制御部11は、図22に示すように、縦長の姿勢に保持された画面に4アップ表示モードで楽譜を表示させる。
第2の例では、制御部11は、図22に示すように、縦長の姿勢に保持された画面に4アップ表示モードで楽譜を表示させているとする。この状態において、画面上における3番目のページP3が表示されている部分においてユーザがピンチアウトを行うと、制御部11は、そのピンチアウトを示す情報を取得する(SF170:Yes)。制御部11は、そのピンチアウトの操作量に応じて、例えば、表示拡大率を25%から100%に変更する(SF180)。その後、制御部11は、画面が縦長に保持されていることを示す検出結果と、変更後の表示拡大率である表示拡大率100%とから、再び表示モードを決定する(SF130)。この例では、表示拡大率が、所定の閾値以上であるため、制御部11は、表示モードを4アップ表示モードから大譜表表示モードへ切り替える。この際、ピンチアウトが画面上における3番目のページP3が表示されている部分においてされていることから、制御部11は、当該3番目のページP3の最上段の大譜表(図22では、大譜表D11)の属する画像領域を抽出開始位置の画像領域とする。制御部11は、この抽出開始位置の画像領域から時間的に連続する1ページ分の大譜表(図22の例では、大譜表D11〜D15)の画像領域を抽出する。そして、制御部11は、図25に示すように、縦長の姿勢に保持された画面にピンチアウトによって指定されたページの楽譜を大譜表表示モードで表示させる。
第3の例では、制御部11は、図3(A)に示すように、横長の姿勢に保持された画面にページ表示モードで楽譜を表示させているとする。この状態において、画面上においてユーザがピンチインを行うと、制御部11は、そのピンチインを示す情報を取得する(SF170:Yes)。制御部11は、そのピンチインの操作量に応じて、例えば、表示拡大率を100%から12.5%に変更する(SF180)。その後、制御部11は、画面が横長の姿勢に保持されていることを示す検出結果と、変更後の表示拡大率である表示拡大率12.5%とから、再び表示モードを決定する(SF130)。この例では、表示拡大率が所定の範囲の上限を超えているため、制御部11は、表示モードをページ表示モードから8アップ表示モードへ切り替える。この際、制御部11は、表示モードの切り替えの直前の若番のページを抽出開始位置の画像領域とし、この抽出開始位置の画像領域から時間的に連続する8ページ分の画像領域を抽出する。そして、制御部11は、図23に示すように、横長の姿勢に保持された画面に8アップ表示モードで楽譜を表示させる。
第4の例では、制御部11は、図23に示すように、横長の姿勢に保持された画面に8アップ表示モードで楽譜を表示させているとする。この状態において、画面上における3番目のページP3が表示されている部分においてユーザがピンチアウトを行うと、制御部11は、そのピンチアウトを示す情報を取得する(SF170:Yes)。制御部11は、そのピンチアウトの操作量に応じて、例えば、表示拡大率を12.5%から100%に変更する(SF180)。その後、制御部11は、画面が横長に保持されていることを示す検出結果と、変更後の表示拡大率である表示拡大率100%とから、再び表示モードを決定する(SF130)。この例では、表示拡大率が、所定の範囲内であるため、制御部11は、表示モードを8アップ表示モードからページ表示モードへ切り替える。この際、ピンチアウトが画面上における3番目のページP3が表示されている部分においてされていることから、制御部11は、当該3番目のページP3の属する画像領域を抽出開始位置の画像領域とし、この抽出開始位置の画像領域から時間的に連続する2ページ(図26の例では、ページP3およびP4)の画像領域を抽出する。そして、制御部11は、図26に示すように、横長の姿勢に保持された画面にピンチアウトによって指定されたページを含む楽譜をページ表示モードで表示させる。
第5の例では、制御部11は、図3(A)に示すように、横長の姿勢に保持された画面にページ表示モードで楽譜を表示させているとする。この状態において、画面上における1ページ目の上から3段目の大譜表が表示されている部分においてユーザがピンチアウトを行うと、制御部11は、そのピンチアウトを示す情報を取得する(SF170:Yes)。制御部11は、そのピンチアウトの操作量に応じて、例えば、表示拡大率を100%から200%に変更する(SF180)。その後、制御部11は、画面が横長に保持されていることを示す検出結果と、変更後の表示拡大率である表示拡大率200%とから、再び表示モードを決定する(SF130)。この例では、表示拡大率が所定の範囲の下限を超えているため、制御部11は、表示モードをページ表示モードから小節表示モードへ切り替える。この際、ピンチアウトが画面上における1ページ目の上から3段目の大譜表が表示されている部分においてされていることから、制御部11は、当該1ページ目の上から3段目の大譜表の最左側の小節の属する画像領域を抽出開始位置の画像領域とし、この抽出開始位置の画像領域から時間的に連続する大譜表1段分の小節(図27の例では、S9〜S12)の画像領域を抽出する。そして、制御部11は、図27に示すように、横長の姿勢に保持された画面にピンチアウトによって指定された大譜表を含む楽譜を小節表示モードで表示させる。
以上が、表示拡大率の変更による表示モードの切り替えの具体例である。
図24のフローチャートにおいて、当該取得した情報が、ピンチインを示すものでなかった場合、または、ピンチアウトを示すものでなかった場合(SF170:No)、制御部11は、当該取得した情報が、画面の姿勢が変更されたことを示すものであるか否かを判別する(SF190)。より詳細には、制御部11は、直前に取得した姿勢検出センサの検出結果と今回取得した姿勢検出センサの検出結果とが異なるか否かを判別する。例えば、直前に取得した姿勢検出センサの検出結果が、画面が縦長の姿勢で保持されていることを示すものであり、今回取得した姿勢検出センサの検出結果が、画面が横長の姿勢で保持されていることを示すものであった場合、当該取得した情報は、画面の姿勢が変更されたことを示すものである、という具合である。当該取得した情報が、画面の姿勢が変更されたことを示すものである場合(SF190:Yes)、制御部11は、今回取得した画面の姿勢の検出結果(換言すると、変更後の画面の姿勢の検出結果)と、揮発性記憶部13に格納されている表示拡大率(換言すると、現在の表示拡大率)とから、再び表示モードを決定する(SF130)。この場合、画面の姿勢が変更されているため、表示モードが切り替えられる。
画面の姿勢の変更による表示モードの切り替えの具体例を示す。
第6の例では、制御部11は、図9(A)に示すように、表示拡大率100%で、縦長の姿勢に保持された画面に大譜表表示モードで楽譜を表示させているとする。この状態において、ユーザは、画面が横長の姿勢となるように当該画面を動かしたとする。この場合、姿勢検出センサは、画面の動きに応じて画面が横長の姿勢に保持されたことを検出し、制御部11は、その検出結果を取得する。直前に取得した縦長の姿勢を示す検出結果と今回取得した横長の姿勢を示す検出結果とが異なるため(SF190:Yes)、制御部11は、今回取得した横長の姿勢を示す検出結果と、現在の表示拡大率である表示拡大率100%とから、再び表示モードを決定する(SF130)。この例では、制御部11は、表示モードを大譜表表示モードからページ表示モードへ切り替える。この際、制御部11は、表示モードの切り替えの直前の最上段の大譜表を含むページの属する画像領域を抽出開始位置の画像領域とし、この抽出開始位置の画像領域から時間的に連続する2ページ分の画像領域を抽出する。そして、制御部11は、図4(A)に示すように、横長の姿勢に保持された画面にページ表示モードで楽譜を表示させる。
第7の例では、制御部11は、図4(A)に示すように、表示拡大率100%で、横長の姿勢に保持された画面にページ表示モードで楽譜を表示させているとする。この状態において、ユーザは、画面が縦長の姿勢になるように当該画面を動かしたとする。この場合、姿勢検出センサは、画面の動きに応じて画面が縦長の姿勢に保持されたことを検出し、制御部11は、その検出結果を取得する。直前に取得した横長の姿勢を示す検出結果と今回取得した縦長の姿勢を示す検出結果とが異なるため(SF190:Yes)、制御部11は、今回取得した縦長の姿勢を示す検出結果と、現在の表示拡大率である表示拡大率100%とから、再び表示モードを決定する(SF130)。この例では、制御部11は、表示モードをページ表示モードから大譜表表示モードへ切り替える。この際、制御部11は、例えば、表示モードの切り替えの直前の最左側のページの最上段の大譜表の属する画像領域を抽出開始位置の画像領域とし、この抽出開始位置の画像領域から時間的に連続する1ページ分の画像領域を抽出する。そして、制御部11は、図9(A)に示すように、縦長の姿勢に保持された画面に大譜表表示モードで楽譜を表示させる。
以上が、画面の姿勢の変更による表示モードの切り替えの具体例である。
図24のフローチャートにおいて、当該取得した情報が、画面の姿勢が変更されたことを示すものでない場合(SF190:No)、制御部11は、ステップSF150へ戻り、次に取得する情報に対してステップSF150〜SF190の処理を繰り返す。また、制御部11は、ピンチインやピンチアウトや画面の姿勢の変更に応じて表示モードを切り替えた(SF130)後において取得した情報が譜めくり指示を示すものであった場合(SF150:Yes)、その切り替えた後の表示モードにおいて譜めくり処理を行う(SF160)。
以上が、楽譜表示装置1Fの制御部11が行う処理の流れである。
なお、表示モードの切り替えの具体的な態様は、上記の具体例に限られない。
以上のように、本実施形態による楽譜表示装置1Fでは、画面の姿勢と、楽譜の表示拡大率とから表示モードを決定している。このため、ユーザは、画面の姿勢を変更したり、楽譜の表示拡大率を変更する操作を行ったりすることにより、楽譜表示装置1Fの表示モードを所望の表示モードに切り替えることができる。従って、楽譜表示装置1Fは、ユーザにとって、より利便性の高いものとなる。
なお、制御部11には、ユーザI/F12を介して表示拡大率を直接指定する情報が入力されても良い。
なお、本実施形態の第2の具体例では、4アップ表示モードで楽譜が画面に表示されている状態でその画面上における3番目のページP3が表示されている部分においてユーザがピンチアウトを行った場合、制御部11は、当該3番目のページを大譜表表示モードで表示させる処理を行っていた。しかし、nアップ表示モードで表示されている楽譜の所望のページを大譜表モードで表示させるためのユーザの操作は、ピンチアウトに限られない。例えば、nアップ表示モードで表示されている楽譜の所望のページを大譜表モードで表示させるためのユーザの操作は、ロングタップなどであっても良い。この態様は、直前の表示モードがnアップ表示モードであり、かつ、取得した情報が、画面上における所望のページが表示されている部分へのロングタップを示すものであるか否かを判別する処理を制御部11が行うことにより実現することができる。
なお、制御部11は、表示モードを決定して(SF130)その表示モードで楽譜を画面に表示させる(SF140)際に、画面の大きさに合わせて楽譜が表示されるように、表示拡大率を自動調整しても良い。例えば、画面が縦長の姿勢に保持されている場合、制御部11は、楽譜の各ページの横幅が画面の短辺と同程度になるように表示拡大率を自動調整する、という具合である。また、画面が横長の姿勢に保持されている場合、制御部11は、楽譜の各小節の縦幅が画面の短辺と同程度になるように表示拡大率を自動調整する、という具合である。なお、画面が横長の姿勢に保持されている場合、制御部11は、楽譜の最初の小節から最後の小節までの全小節に亙って各小節の縦幅を調査した後、最も大きな縦幅が画面の短辺と同程度になり、かつ、最も大きな縦幅の小節における五線の間隔と他の小節の五線の間隔とが全小節に亙って同じになるように、表示拡大率を自動調整するのがより好ましい。五線の間隔が曲の途中で変わると非常に見難いからである。
なお、画面の姿勢と表示モードの種類との関係は、上記の各具体例に限られない。例えば、制御部11は、ユーザによるユーザI/F12の操作などに応じて、縦長の姿勢で保持された画面に小節表示モードで楽譜を表示させても良い。この態様は、パート数が多い楽譜を表示させるのに好適である。また、例えば、制御部11は、ユーザによるユーザI/F12の操作などに応じて、横長の姿勢で保持された画面に大譜表表示モードで楽譜を表示させても良い。
<他の実施形態>
以上、この発明の第1から第6実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
(1)上記各実施形態の楽譜データ20〜20Bは、ページ毎、大譜表毎または小節毎に区分されていた。しかし、楽譜データの区分される領域はこれらに限られない。例えば、楽譜データは、音符毎に区分されても良い。この態様では、例えば、楽譜データの画像イメージにおける隣り合う音符間を、隣り合う画像領域の境界にすれば良い。また、ユーザの操作に応じて譜めくり単位を変更可能にしても良い。例えば、制御部は、画面における音符が表示されている位置を始点とするフリック操作を示す情報を取得した場合、音符単位で譜めくり処理を行い、画面における音符が表示されていない位置を始点とするフリック操作を示す情報を取得した場合、小節単位で譜めくり処理を行う、という具合である。また、制御部は、スタイラスペンによるフリック操作を示す情報を取得した場合、音符単位で譜めくり処理を行い、手指によるフリック操作を示す情報を取得した場合、小節単位で譜めくり処理を行う、という例も挙げられる。
(2)上記各実施形態による制御部11は、フリック操作の示す情報を譜めくり指示として取得していた。しかし、譜めくり指示は、このフリック操作により与えられるものに限られない。例えば、制御部11は、シングルタップ操作の示す情報を楽譜を進める譜めくり指示として取得し、ダブルタップ操作の示す情報を楽譜を戻す譜めくり指示として取得するようにしても良い。また、例えば、第1実施形態において、ユーザI/F12の右半分の画面上へのタップ操作を示す情報を楽譜を進める譜めくり指示として取得し、ユーザI/F12の左半分の画面上へのタップ操作を示す情報を楽譜を戻す譜めくり指示として取得しても良い。なお、フリックやタップなどの簡単な操作であって素早く入力することができる操作を譜めくり操作とするのが好ましい。
(3)上記第2実施形態による楽譜表示装置1Aは、譜めくり指示のあった画像領域22Aの大譜表が画面の最上段または最下段に表示されるように譜めくりを行っていた。しかし、楽譜表示装置は、譜めくり指示のあった画像領域22Aの大譜表が画面の最上段または最下段に表示される態様に限られない。少なくとも、楽譜表示装置は、表示手段と、入力手段と、楽譜の時間軸における所定の領域毎に区分された楽譜のうちの連続する複数の領域を抽出して表示手段に表示させる処理を行う制御手段と、を具備しており、表示手段に表示されている楽譜における1の領域に対する譜めくり指示を入力手段を介して取得したことを契機として、抽出開始位置を1または複数の領域数分だけ楽譜の時間軸における未来方向または過去方向にずらして当該譜めくり指示のあった領域を含む連続する複数の領域を抽出し、表示手段に表示させるものであれば良い。このとき、抽出開始位置をずらした後においても譜めくり指示のあった領域を含むようにしているため、抽出開始位置のずらし量は、抽出する領域の数よりも少ないことを要する。この態様では、楽譜表示装置は、予め設定された領域数分だけ抽出開始位置をずらす(譜めくりする)ようにしても良いし、譜めくり指示の内容(例えば画面へのタップ数)により抽出開始位置のずらし量(譜めくり量)を変えるようにしても良い。例えば、楽譜表示装置は、1番目〜5番目の大譜表を画面に表示している状態において、4番目の大譜表の属する画像領域22A4に対するユーザによる画面へのダブルタップを示す情報を取得すると、2領域分だけずれた3番目〜7番目の大譜表を画面に表示する、という具合である。この実施形態においても、第2実施形態と同様の効果が得られる。また、この実施形態では、ユーザは、より多様な譜めくりを行うことができる。なお、画像領域が大譜表単位の場合に限られず、ページ単位や小節単位や音符単位の場合も同様である。また、画像領域をスクロールする場合に限られず、画像領域内の楽譜を積み重ねるような場合や画像領域を置き換える場合も同様である。
(4)また、連続する複数の領域の抽出数(すなわち、画面に表示される大譜表などの数)は、ユーザによって指定可能であっても良い。また、例えば、ユーザによって指定された数の大譜表などが画面全体に亙って表示されるように、大譜表などの数に応じて、大譜表などを拡大または縮小して表示しても良いし、大譜表における一部(例えば余白部分)などを隣りの大譜表の背面側に重なるように表示しても良い。このようにすることで、例えば、画面の最下段または最上段の大譜表において、大譜表が上下に切れて表示されることなく、連続する複数の領域内の大譜表のすべてを表示させることができる。また、連続する複数の領域の範囲は、各々の領域で異なっていても良い。例えば、大譜表のパート数が楽曲の途中で変化する、という具合である。この場合においても、大譜表などを拡大または縮小して表示する、または、大譜表の一部を重ねて表示するようにすれば、上述と同様の効果が得られる。
(5)楽譜を進める譜めくり指示または楽譜を戻す譜めくり指示のあった画像領域の大譜表が画面の中央に表示されるようにしても良い。例えば、制御部11は、図9(A)の状態において、大譜表D5に対する楽譜を進める譜めくり指示を取得すると、大譜表D5を画面の中央に表示されるように各画像領域をスクロールする。この場合、画面には、上端から下端に向かって、大譜表D3、大譜表D4、大譜表D5、大譜表D6、大譜表D7の順に表示される。ページ単位や小節単位や音符単位の場合も同様である。
(6)また、楽譜を進める譜めくり指示のあった画像領域の次の画像領域の大譜表が画面の最上段に表示されるようにしても良い。例えば、制御部11は、図9(A)の状態において、大譜表D3に対する楽譜を進める譜めくり指示を取得すると、大譜表D3の次の大譜表D4が画面の最上段に表示されるように各画像領域をスクロールする。この場合、画面には、上端から下端に向かって、大譜表D4、大譜表D5、大譜表D6、大譜表D7、大譜表D8の順に表示される。同様に、楽譜を戻す譜めくり指示のあった画像領域の前の画像領域の大譜表が画面の最下段に表示されるようにしても良い。例えば、制御部11は、図10(A)の状態において、大譜表D6に対する楽譜を戻す譜めくり指示を取得すると、大譜表D6の前の大譜表D5が画面の最下段に表示されるように各画像領域をスクロールする。この場合、画面には、上端から下端に向かって、大譜表D1、第譜表D2、大譜表D3、大譜表D4、大譜表D5の順に表示される。また、譜めくり指示のあった画像領域の大譜表が画面の最上段または最下段に表示される態様と、譜めくり指示のあった画像領域の次の大譜表または前の大譜表が画面の最上段または最下段に表示される態様とを、ユーザの操作により切り替え可能にしても良い。例えば、画像領域内の上半分の領域に対する楽譜を進める譜めくり指示を取得した場合、当該画像領域の大譜表を画面の最上段に表示し、画像領域内の下半分の領域に対する楽譜を進める譜めくり指示を取得した場合、当該画像領域の次の画像領域の大譜表を画面の最上段に表示する、という具合である。また、例えば、画像領域に対する1本指のフリックを示す情報を取得した場合、当該画像領域の大譜表を画面の最上段に表示し、画像領域に対する2本指のフリックを示す情報を取得した場合、当該画像領域の次の画像領域の大譜表を画面の最上段に表示する、というようにしても良い。なお、画像領域が大譜表単位の場合に限られず、ページ単位や小節単位や音符単位の場合も同様である。例えば、画像領域が小節単位の態様では、制御部11は、図14(A)の状態において、小節S3に対する楽譜を進める譜めくり指示を取得すると、小節S3の次の小節S4が画面の最左端に表示されるように各画像領域をスクロールする、という具合である。また、例えば、画像領域内の左半分の領域に対する楽譜を進める譜めくり指示を取得した場合、当該画像領域の小節を画面の最左側に表示し、画像領域内の右半分の領域に対する楽譜を進める譜めくり指示を取得した場合、当該画像領域の次の画像領域の小節を画面の最左側に表示する、という具合である。
(7)第2実施形態において、楽譜を進める譜めくり指示によってスクロールされた後の最下段の画像領域については、その画像領域の全体だけでなく、その画像領域の一部が画面に表示されるようになっていても良い。例えば、図9(C)において、大譜表D7における下側部分が画面に表示されず大譜表D7における上側部分が画面に表示される、という具合である。同様に、楽譜を戻す譜めくり指示によってスクロールされた後の最上段の画像領域については、その画像領域の全体だけでなく、その画像領域の一部が画面に表示されるようになっていても良い。例えば、図10(C)において、大譜表D2における上側部分が画面に表示されず大譜表D2における下側部分が画面に表示される、という具合である。また、第3実施形態において、楽譜を進める譜めくり指示によってスクロールされた後の最右の画像領域については、その画像領域の全体だけでなく、その画像領域の一部が画面に表示されるようになっていても良い。同様に、楽譜を戻す譜めくり指示によってスクロールされた後の最左の画像領域については、その画像領域の全体だけでなく、その画像領域の一部が画面に表示されるようになっていても良い。また、第4実施形態において、楽譜を進める譜めくり指示によって置き換えられた後の最老番の画像領域については、その画像領域の全体だけでなく、その画像領域の一部が画面に表示されるようになっていても良い。同様に、楽譜を戻す譜めくり指示によって置き換えられた後の最若番の画像領域については、その画像領域の全体だけでなく、その画像領域の一部が画面に表示されるようになっていても良い。
(8)上記各実施形態では、楽譜における画面に表示している部分の一部を表示しつつ、他の部分を譜めくりしていた。しかし、楽譜における画面に表示している部分の全部を譜めくりする態様を併用しても良い。例えば、第1実施形態のページ毎に譜めくりする態様において、フリックを示す情報を画面の中央付近で検出した場合には画面に表示されている2ページ分の楽譜の一方を譜めくりする処理を行い、フリックを示す情報を画面の周囲付近で検出した場合には画面に表示されている2ページ分の楽譜の両方を譜めくりする処理を行う、という具合である。また、第1実施形態のページ毎に譜めくりする態様において、画像領域に対する1本指のフリックを示す情報を取得した場合には画面に表示されている2ページ分の楽譜の一方を譜めくりする処理を行い、画像領域に対する2本指のフリックを示す情報を取得した場合には画面に表示されている2ページ分の楽譜の両方を譜めくりする処理を行うようにしても良い。これにより、演奏状況に応じてより多様な譜めくりを行うことができる。
(9)第1実施形態による楽譜表示装置1では、一方のページの楽譜を他方のページの楽譜の上に積み重ねるように譜めくり処理を行っていた。しかし、他方のページの楽譜を表示している位置に一方のページの楽譜をスクロールさせるように譜めくり処理を行っても良い。また、図28に例示するように、画面に2を超える複数のページを表示させて、各ページをページ毎にスクロールさせるように、または各ページを積み重ねるように譜めくり処理を行っても良い。このとき、制御部11は、画面の横方向に複数のページを表示させ、第2および第3実施形態と同様に、1のページに対する譜めくり指示を取得したとき、当該譜めくり指示のあったページの楽譜が画面の最左側または最右側に表示されるように各ページの楽譜を左方向または右方向にスクロールする処理または積み重ねる処理を行えば良い。具体的には、図28(A)のように、画面の左側にページP1が表示され、画面の中央にページP2が表示され、画面の右側にページP3が表示されている状態において、制御部11は、ページP2に対する楽譜を進める譜めくり指示を取得したとする。この場合、制御部11は、図28(B)のように、譜めくり指示のあったページP2が画面の左側に表示され、ページP3が画面の中央に表示され、ページP3の次のページP4が画面の右側に表示されるように処理を行う、という具合である。なお、ページのスクロールに際し、例えば書籍のページをめくるような譜めくりアニメーションを施しても良い。また、制御部11は、第1実施形態におけるページと同様に、大譜表や小節などを積み重ねるように譜めくり処理を行っても良い。
(10)第2実施形態による楽譜表示装置1Aでは、1の画像領域20Aに1の大譜表が含まれるように楽譜データ20Aを設定していた。しかし、1の画像領域に複数の(例えば2個の)大譜表が含まれるように楽譜データを設定しても良い。この態様では、2個の大譜表を1単位として各大譜表の譜めくり処理を行えば良い。第4実施形態においても同様である。なお、ページ毎に譜めくりを行う第1実施形態は、1の画像領域に複数の大譜表が含まれる1例である。また、第3実施形態による楽譜表示装置1Bでは、1の画像領域20Bに1の小節が含まれるように楽譜データ20Bを設定していたが、1の画像領域に複数の(例えば2個の)小節が含まれるように楽譜データを設定しても良い。
(11)上記第4実施形態による楽譜表示装置1Cでは、大譜表を置き換えるように譜めくり処理を行っていた。しかし、ページや小節などを置き換えるように譜めくり処理を行っても良い。
(12)上記第2実施形態における画像領域22Aは、1の大譜表および当該1の大譜表に属する音符や記号などを取り囲む領域であり、隣り合う画像領域22Aは、互いに重なっていなかった。しかし、隣り合う画像領域22A同士が互いに重なり合うように画像領域の範囲を決定しても良い。例えば、当該大譜表の1段上の大譜表の最下線から当該大譜表の1段下の大譜表の最上線までを当該大譜表における画像領域の範囲に決定する、という具合である。この場合、当該大譜表の1段上の大譜表の最下線から当該大譜表の最上線までの範囲は、1段上の大譜表の画像領域と当該大譜表の画像領域との両方において重なっており、当該大譜表の1段下の大譜表の最上線から当該大譜表の最下線までの範囲は、1段下の大譜表の画像領域と当該大譜表の画像領域との両方において重なっている。このように隣り合う画像領域が互いに重なるように画像領域を決定すると、譜めくり処理の前後に関わらず、当該大譜表の上余白または下余白に書き込まれるコメントなどを当該大譜表とともに確実に画面に表示することができる。例えば、譜めくり指示により当該大譜表が最上段に表示された場合、当該大譜表の上余白に書き込まれたコメントなどを当該大譜表とともに確実に画面に表示することができる、といった具合である。また、隣り合う画像領域同士が互いに重ならない部分と、隣り合う画像領域同士が互いに重なり合う部分とを混在させても良い。また、制御部は、隣り合う画像領域同士が互いに重なる部分に対応する入力操作を示す情報を取得した場合、隣り合う画像領域のいずれに対する入力操作を示す情報であるかを判断しても良い。例えば、1の大譜表の下余白と、それよりも1段下の大譜表の上余白とが重なる場合において、制御部は、当該重なる部分における上半分に対応する入力操作を示す情報を当該1の大譜表に対する入力操作を示す情報であると判断し、当該重なる部分における下半分に対応する入力操作を示す情報を当該1段下の大譜表に対する入力操作を示す情報であると判断する、という具合である。なお、隣り合う画像領域同士が互いに重なる部分に対応する入力操作を示す情報の判断態様は、これに限られない。
(13)上記各実施形態では、譜めくりの際にアニメーションを施していた。制御部11は、フリック速度やフリック量などに応じて譜めくりの際のアニメーションの速度を変えても良い。例えば、フリック速度の速い譜めくり指示を取得した場合、譜めくりの際のアニメーションの速度を早くする、という具合である。
(14)上記各実施形態による楽譜表示プログラムは、コンピュータを、楽譜の時間軸において所定の領域毎に区分された楽譜のうちの連続する複数の領域を抽出して表示手段に表示させる処理を行う制御手段であって、表示手段に表示されている楽譜における1の領域に対する譜めくり指示を入力手段を介して取得したことを契機として、抽出開始位置を1または複数の領域数分だけ楽譜の時間軸における未来方向または過去方向にずらして当該譜めくり指示のあった領域を含む連続する複数の領域を抽出し、表示手段に表示させる処理を行う制御手段として機能させることを特徴としていた。この楽譜表示プログラムは、コンピュータにインストールされた状態で取引されても良いし、コンピュータ読み取り可能な記憶媒体に記憶された状態で取引されても良いし、ネットワークを介したダウンロードにより取引されても良い。また、楽譜表示プログラムにおける各処理を電子回路により実現しても良い。
(15)上記各実施形態の技術的特徴は、1個の五線譜からなる楽譜や五線譜とタブ譜とを組み合わせたものからなる楽譜や複数のパートから構成される楽譜など、様々な態様の楽譜に適用することができる。
(16)第1実施形態では、ユーザは、ユーザI/F12の画面に表示されている表示可能な楽譜の一覧の中の1の楽譜を示す画像をタップしてユーザI/F12の画面に表示させる楽譜を選択していた。しかし、楽譜の選択は、この態様に限られない。例えば、楽譜表示装置は、表示可能な複数の楽譜の中から画面に表示する楽譜の候補を絞り込み、絞り込んだ楽譜の中から画面に表示する楽譜を選択しても良い。この態様の楽譜表示装置は、例えば、表示可能な複数の楽譜の中からユーザによって指定されたフレーズに類似するフレーズを含む楽譜を検索して、画面に表示する楽譜の候補を絞り込む。このため、本実施形態の楽譜表示プログラムは、ユーザによって指定されたフレーズ(以下、検索用フレーズという)に類似するフレーズを含む楽譜を検索する検索モードのサブルーチンを含んでいる。
図29は、本変形例の制御部11が、表示可能な楽譜の一覧を画面に表示させた場合の当該画面の一例を示す概略図である。図29では、表示可能な楽譜M−1〜M−30を示す画像(例えばサムネイル)が表示されている。この図29の状態において、ユーザは、表示すべき楽譜を効率良く選択するために、ユーザI/F12に対して検索モードの開始を示す操作を行う。なお、表示可能な楽譜の一覧が画面に表示される際、表示可能なすべての楽譜のサムネイルが画面内に表示されていなくても良い。
図30は、この変形例における楽譜表示装置1Gの制御部11が楽譜表示プログラムに従って実行する処理の流れを示すフローチャートである。制御部11は、ユーザI/F12から検索モードの開始を示す指示を取得すると(SG110)、検索モードのサブルーチンに従ってステップSG120以降の処理を実行する。まず、制御部11は、検索対象である表示可能な楽譜の楽譜データを揮発性記憶部13にすべて読み出す(SG120)。次に、制御部11は、検索用フレーズを取得する(SG130)。例えば、制御部11は、ユーザが楽器で演奏したフレーズを検索用フレーズとして取得する。なお、この検索用フレーズは、マイクなどを介してオーディオデータ形式で取得されたものであっても良いし、電子楽器などからMIDIデータ形式で取得されたものであっても良い。
次に、制御部11は、検索用フレーズと、検索対象の各楽譜の中のフレーズとを比較する(SG140)。すなわち、制御部11は、検索対象の各楽譜の中のフレーズが検索用フレーズと類似しているか否かを判別する。そして、制御部11は、検索対象の各楽譜の中のフレーズとユーザによって指定されたフレーズとの類似の程度を示すフレーズの類似度を検索対象の楽譜毎に決定する(SG150)。
次に、制御部11は、検索対象の楽譜毎に決定したフレーズの類似度が大きい1または複数個の楽譜を、表示する楽譜の候補として決定する(SG160)。例えば、制御部11は、検索対象の楽譜のうち、当該フレーズの類似度が大きい順に予め設定された個数分の楽譜を、表示する楽譜の候補として決定する。また、他の例として、制御部11は、検索対象の楽譜のうち、当該フレーズの類似度が予め設定された閾値以上のすべての楽譜を、表示する楽譜の候補として決定する。
次に、制御部11は、表示する楽譜の候補として決定した楽譜の一覧を画面に表示させる(SG170)。図31は、ステップSG170の状態の画面を示す図である。図31の例では、候補として決定された楽譜M−1、M−2、M−3およびM−24のサムネイルが、実線で示すように明確に表示されている。また、図31の例では、候補として決定されなかった他の楽譜のサムネイルが、破線で示すように、表示されていない。なお、候補として決定されなかった楽譜は、候補として決定された楽譜のサムネイルに比べ、候補として決定された楽譜のサムネイルと容易に識別できる程度に不明確に(例えば薄く)、そのサムネイルが表示されても良い。
次に、制御部11は、ユーザの操作に応じた並び替え指示を取得したか否かを判別する(SG180)。例えば、制御部11は、ユーザI/F12の並び替え用のソフトウェアボタンのタップを示す情報を並び替え指示として取得する。並び替え指示を取得した場合(SG180:Yes)、制御部11は、候補として決定された楽譜の一覧の表示順をフレーズの類似度の大きい順に並び替えて、その並び替えた後の順番で当該楽譜を表示する(SG190)。図32は、この並び替えが行われた後の画面を示す図である。例えば、図32に示すように、フレーズの類似度が最も大きい楽譜のサムネイルが画面の左上に配置され、フレーズの類似度が小さくなるに従って、その楽譜のサムネイルが画面の左から右へ配置され、さらに、画面の上から下へ配置される。図32の例では、フレーズの類似度が楽譜M−3の次に大きい楽譜M−24が、並び替えによって、楽譜M−3の右隣りに配置されている。また、図32のように、並び替え後の各楽譜のサムネイルを並び替え前に比べて拡大して表示しても良い。
制御部11は、ステップSG190に後続して、ステップSG200の処理を行う。また、制御部11は、並び替え指示を取得しなかった場合(SG180:No)も、ステップSG200の処理を行う。ステップSG200では、制御部11は、表示する楽譜の候補として決定した楽譜の一覧を画面に表示させてから(すなわち、ステップSG170の処理を行ってから)所定時間(例えば5秒)経過したか否かを判別する。その所定時間が経過していない場合(SG200:No)、制御部11は、その所定時間が経過するまで、ステップSG180〜ステップSG200を繰り返す。そして、その所定時間が経過した場合(SG200:Yes)、制御部11は、フレーズの類似度が最も大きい楽譜を自動的に選択し(SG210)、検索モードのサブルーチンを終了する。
このように、この変形例の楽譜表示装置は、表示する楽譜の候補を絞り込んだ後に、表示する楽譜を選択する。このため、ユーザは、検索用フレーズの演奏をすることによって、表示する楽譜を容易に選択することができる。また、この変形例の楽譜表示装置は、表示可能な楽譜が多数ある場合に、特に有益である。
なお、この変形例の制御部11は、所定時間が経過した後に(SG200:Yes)、フレーズの類似度が最も大きい楽譜を自動的に選択していた(SG210)。しかし、楽譜を自動的に選択する態様は、この態様に限られない。例えば、制御部11は、最も大きいフレーズの類似度が所定の閾値以上になったか否かを判別する処理を行い、当該最も大きいフレームの類似度が所定の閾値以上になった場合、当該フレームの類似度が最も大きい楽譜を自動的に選択しても良い。また、制御部11は、図31のように楽譜の候補を決定してその楽譜の一覧を表示させた後に、または、図32のように楽譜の候補を並び替えてその楽譜の一覧を表示させた後に、ユーザI/F12を介して楽譜を選択する指示を取得しても良い。この場合のユーザI/F12を介して楽譜を選択する指示の一例としては、画面上における所望の楽譜が表示されている部分へのタップを示す情報などである。
なお、制御部11は、フレーズの類似度が最も大きい楽譜を自動的に選択した(SG210)後、当該選択された楽譜を自動的に画面に表示させても良い。この際、制御部11は、予め設定された表示モード(例えば、大譜表表示モード等)で楽譜を画面に表示させても良いし、第6実施形態のように、予め設定された条件に応じて表示モードを決定し、その決定した表示モードで楽譜を画面に表示させても良い。また、制御部11は、検索用フレーズに類似するフレーズ部分の楽譜が画面に表示されるように楽譜を画面に表示させても良い。これらの態様によれば、ユーザの行う操作回数が少なくなり、ユーザは、よりスムーズに演奏や練習を行うことができる。
なお、制御部11が、フレーズの類似度が最も大きい楽譜を自動的に選択した後に、ユーザが、所定時間以内(例えば5秒以内)別の楽譜を選択し直す虞もある。この場合、制御部11は、フレーズの類似度を算出するアルゴリズムの精度を向上させるため、学習処理を行っても良い。また、ユーザが選択し直した後の楽譜が、表示する楽譜の候補として決定されていたものであった場合に限って、制御部11は、学習処理を行っても良い。
なお、ユーザが指定するフレーズは、表示させようとする楽譜が示す曲の始めのフレーズでも良いし、当該曲の途中のフレーズでも良い。