(57)【要約】      （修正有）【課題】  音符だけでなく歌詞またはコードネームも見栄えよく表示することが可能となる楽譜表示装置および楽譜表示方法を実現するためのプログラムを提供する。【解決手段】  小節の演奏データは、第１、第２および第４拍がそれぞれ１つの４分音符からなり、第３拍が２つの８分音符からなる音符列と、音符毎に１文字ずつ対応付けられた歌詞列とよって構成されている。各拍の表示領域の時間軸方向の長さは一定であるため、第３拍の歌詞は、（ａ）に示すように、重なって表示される。歌詞が重なって表示される個所を検出し、該検出された個所の歌詞以降を１段下げて表示するようにしている（（ｂ）参照）。音符の数に対して歌詞の数が多く、１小節の表示範囲内に歌詞表示を２段で行ったとしても、未だ重なって表示される個所がある場合には、重なって表示される個所がなくなるまで段数を増やして行く。【選択図】  図２
2005148563.tif 000002
【特許請求の範囲】
【請求項１】
供給された演奏データから、該演奏データに含まれる音符データおよび歌詞データまたはコードネームデータを読み出す読み出し手段と、
該読み出し手段によって読み出された音符データに基づいて、該音符データに含まれる、少なくとも一部の音符を楽譜表示する楽譜表示手段と、
該楽譜表示手段によって表示される楽譜全体を時間軸方向に複数の区間に分割する分割手段と、
前記読み出し手段によって読み出された歌詞データまたはコードネームデータに基づいて、該歌詞データまたはコードネームデータに含まれる歌詞またはコードネームを、前記表示された音符に対応付けて表示するときに、前記分割された複数の区間のうち、歌詞同士が重なる歌詞データまたはコードネーム同士が重なるコードネームデータが含まれる区間を検出する検出手段と、
該検出手段によって少なくとも１つの区間が検出されたときには、該区間に含まれる歌詞同士またはコードネーム同士が重ならないように、該区間の歌詞またはコードネームを複数段に分けて表示させるように前記楽譜表示手段を制御する制御手段と
を有することを特徴とする楽譜表示装置。
【請求項２】
前記制御手段は、少なくとも第１段目に表示される各歌詞または各コードネームを、該各歌詞または各コードネームに対応する音符の表示位置に合わせて表示させるように制御することを特徴とする請求項１に記載の楽譜表示装置。
【請求項３】
供給された演奏データから、該演奏データに含まれる音符データおよび歌詞データまたはコードネームデータを読み出す読み出し手順と、
該読み出し手順によって読み出された音符データに基づいて、該音符データに含まれる、少なくとも一部の音符を表示手段上に楽譜表示する楽譜表示手順と、
前記表示手段上に表示される楽譜全体を時間軸方向に複数の区間に分割する分割手順と、
前記読み出し手順によって読み出された歌詞データまたはコードネームデータに基づいて、該歌詞データまたはコードネームデータに含まれる歌詞またはコードネームを、前記表示された音符に対応付けて表示するときに、前記分割された複数の区間のうち、歌詞同士が重なる歌詞データまたはコードネーム同士が重なるコードネームデータが含まれる区間を検出する検出手順と、
該検出手順によって少なくとも１つの区間が検出されたときには、該区間に含まれる歌詞同士またはコードネーム同士が重ならないように、該区間の歌詞を複数段に分けて表示させるように前記楽譜表示手順を制御する制御手順と
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音符だけでなく歌詞またはコードネームも見栄えよく表示する楽譜表示装置および楽譜表示方法を実現するためのプログラムに関する。
【背景技術】
【０００２】
表示装置に五線譜を表示し、供給された演奏データに基づいて、前記五線譜上に音符を見栄えよく表示する楽譜表示装置は、従来から知られている。
【０００３】
このような楽譜表示装置として、演奏データに基づいて、該演奏データに含まれる音符を単純に楽譜表示したのでは、発音タイミングの異なる音符が重なって表示されてしまう場合に、その音符の属する小節の表示幅を延ばしたり、その音符の表示位置を変更したりして、音符が重なって表示されないように表示制御するものがある（たとえば、特許文献１参照）。
【特許文献１】特開平１１−３２７４２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、演奏データに、音符データだけでなく、歌詞データまたはコードネームデータも含まれているときには、歌詞データまたはコードネームデータも、音符データと同様のデータフォーマット（たとえば、イベントデータとタイミングデータ（その直後に位置するイベントデータを再生すべきタイミングを示すデータ）を一組とし、それを再生順に並べたフォーマット）を採ることが多いので、この場合には、音符と一緒に歌詞またはコードネームも楽譜表示させるようにしている。
【０００５】
しかし、上記従来の楽譜表示装置を用いて、音符と一緒に歌詞またはコードネームも楽譜表示した場合には、音符については、上記表示制御によって隣接する音符同士が重ならないように表示されるものの、歌詞またはコードネームについては、特に考慮されていないために、音符密度の高い表示個所では、歌詞またはコードネームの文字が重なって表示されてしまい、判読し難くなることがある。
【０００６】
この問題に対処するために、表示画面を時間軸方向（再生方向）に拡大表示させる機能（この種の装置には、通常備えられている機能である）を使うことも考えられるが、この機能を使うと、楽譜全体に亘って一定倍率で拡大表示されてしまうので、元々音符密度が低く、歌詞またはコードネームが重ならずに表示されている個所では、歌詞またはコードネームの文字間隔が必要以上に広がってしまい、却って判読し辛くなることもある。
【０００７】
本発明は、この点に着目してなされたものであり、音符データだけでなく歌詞データまたはコードネームデータも含まれている演奏データに基づいて楽譜表示を行うときに、音符だけでなく歌詞またはコードネームも見栄えよく表示することが可能となる楽譜表示装置および楽譜表示方法を実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１に記載の楽譜表示装置は、供給された演奏データから、該演奏データに含まれる音符データおよび歌詞データまたはコードネームデータを読み出す読み出し手段と、該読み出し手段によって読み出された音符データに基づいて、該音符データに含まれる、少なくとも一部の音符を楽譜表示する楽譜表示手段と、該楽譜表示手段によって表示される楽譜全体を時間軸方向に複数の区間に分割する分割手段と、前記読み出し手段によって読み出された歌詞データまたはコードネームデータに基づいて、該歌詞データまたはコードネームデータに含まれる歌詞またはコードネームを、前記表示された音符に対応付けて表示するときに、前記分割された複数の区間のうち、歌詞同士が重なる歌詞データまたはコードネーム同士が重なるコードネームデータが含まれる区間を検出する検出手段と、該検出手段によって少なくとも１つの区間が検出されたときには、該区間に含まれる歌詞同士またはコードネーム同士が重ならないように、該区間の歌詞またはコードネームを複数段に分けて表示させるように前記楽譜表示手段を制御する制御手段とを有することを特徴とする。
【０００９】
好ましくは、前記制御手段は、少なくとも第１段目に表示される各歌詞または各コードネームを、該各歌詞または各コードネームに対応する音符の表示位置に合わせて表示させるように制御することを特徴とする。
【００１０】
上記目的を達成するため、請求項３に記載のプログラムは、請求項１と同様の技術的思想によって実現できる。
【発明の効果】
【００１１】
請求項１または３に記載の発明によれば、供給された演奏データから読み出された音符データに基づいて、該音符データに含まれる、少なくとも一部の音符が表示手段上に楽譜表示され、該表示される楽譜全体が時間軸方向に複数の区間に分割され、前記演奏データから読み出された歌詞データまたはコードネームデータに基づいて、該歌詞データまたはコードネームデータに含まれる歌詞またはコードネームを、前記表示された音符に対応付けて表示するときに、前記分割された複数の区間のうち、歌詞同士が重なる歌詞データまたはコードネーム同士が重なるコードネームデータが含まれる区間が検出されると、該区間に含まれる歌詞同士またはコードネーム同士が重ならないように、該区間の歌詞またはコードネームが複数段に分けて表示されるので、音符だけでなく歌詞またはコードネームも見栄えよく表示することが可能となる。
【００１２】
請求項２に記載に発明によれば、少なくとも第１段目に表示される各歌詞または各コードネームは、該各歌詞または各コードネームに対応する音符の表示位置に合わせて表示されるので、ユーザは、少なくとも１段目の各歌詞または各コードネームと各音符との対応関係を明確に把握することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１４】
図１は、本発明の一実施の形態に係る楽譜表示装置の概略構成を示すブロック図である。
【００１５】
同図に示すように、本実施の形態の楽譜表示装置は、文字入力用キーボード、マウス等のポインティングデバイスおよび各種スイッチ等の複数の操作子からなる操作子群１と、該操作子群１の各操作子の操作状態を検出する検出回路２と、装置全体の制御を司るＣＰＵ３と、該ＣＰＵ３が実行する制御プログラムや各種テーブルデータ等を記憶するＲＯＭ４と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ５と、前記制御プログラムを含む各種アプリケーションプログラムや各種演奏データ、各種データ等を記憶する外部記憶装置６と、各種情報等を表示する、たとえば液晶ディスプレイ（ＬＣＤ）および発光ダイオード（ＬＥＤ）等を備えた表示装置７と、外部ＭＩＤＩ（Musical Instrument Digital Interface）機器等の外部制御機器１００を接続し、この外部制御機器１００とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）８と、上記記憶された演奏データ等を楽音信号に変換する音源回路９と、該音源回路９からの楽音信号に各種効果を付与するための効果回路１０と、該効果回路１０からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１１とにより構成されている。
【００１６】
上記構成要素２〜１０は、バス１２を介して相互に接続され、通信Ｉ／Ｆ８には外部制御機器１００が接続され、音源回路９には効果回路１０が接続され、効果回路１０にはサウンドシステム１１が接続されている。
【００１７】
外部記憶装置６としては、たとえば、フレキシブルディスクドライブ（ＦＤＤ）、ハードディスクドライブ（ＨＤＤ）、ＣＤ−ＲＯＭドライブおよび光磁気ディスク（ＭＯ）ドライブ等を挙げることができる。そして、外部記憶装置６には、前述のように、ＣＰＵ３が実行する制御プログラムも記憶でき、ＲＯＭ４に制御プログラムが記憶されていない場合には、この外部記憶装置６に制御プログラムを記憶させておき、それをＲＡＭ５に読み込むことにより、ＲＯＭ４に制御プログラムを記憶している場合と同様の動作をＣＰＵ３にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００１８】
通信Ｉ／Ｆ８には、図示例では、外部制御機器１００が直接接続されているが、これに限られず、たとえばＬＡＮ（Local Area Network）やインターネット、電話回線等の通信ネットワークを介して、サーバコンピュータが接続されるようにしてもよい。この場合、外部記憶装置６に上記各プログラムや各種パラメータが記憶されていなければ、通信Ｉ／Ｆ８は、サーバコンピュータからプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、楽譜表示装置）は、通信Ｉ／Ｆ８および通信ネットワークを介してサーバコンピュータへとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワークを介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ８を介して、これらプログラムやパラメータを受信して外部記憶装置６に蓄積することにより、ダウンロードが完了する。
【００１９】
なお、本実施の形態の楽譜表示装置は、上述の構成から分かるように、汎用的なパーソナルコンピュータ上に構築されたものであるが、これに限らず、本発明を実施できる最小限要素のみから構成した専用装置上に構築してもよい。
【００２０】
以上のように構成された楽譜表示装置が実行する制御処理を、まず図２および図３を参照してその概要を説明し、次に図４および図５を参照して詳細に説明する。
【００２１】
図２は、同じ演奏データに基づいて、従来の楽譜表示装置および本実施の形態の楽譜表示装置によりそれぞれ表示された楽譜の一例を示す図であり、同図（ａ）が、従来の楽譜表示装置によって表示された楽譜を示し、同図（ｂ）が、本実施の形態の楽譜表示装置によって表示された楽譜を示している。なお、同図（ａ）は、本実施の形態の楽譜表示装置が表示制御を行う前の歌詞表示データ（後述する図３参照）に基づいて歌詞表示した楽譜を表しているとも言える。ただし、本実施の形態では、表示制御を行う前の歌詞表示データに基づいて歌詞を表示するようには構成されていない（ただし、音符表示はなされる）。もちろん、このような歌詞表示機能を持たせるようにしてもよい。
【００２２】
図示例では、供給された演奏データ、つまり楽譜表示の対象となる演奏データのうち、ある１小節の演奏データに基づいて表示された楽譜が描画されている。同図から分かるように、この小節の演奏データは、第１、第２および第４拍がそれぞれ１つの４分音符からなり、第３拍が２つの８分音符からなる音符列と、音符毎に１文字ずつ対応付けられた歌詞列とよって構成されている。
【００２３】
この小節では、第３拍の音符密度が他の拍の音符密度に対して高く、かつ音符毎に歌詞が配置されているにも拘わらず、各拍の表示領域の時間軸方向の長さは一定（厳密に言えば、第３拍の表示領域は、音符密度が高い分、音符密度の低い他の拍より長いが、音符毎に配置されている歌詞が重ならないで表示できるほど長くはない）であるため、第３拍の歌詞は、図２（ａ）に示すように、重なって表示される。
【００２４】
そこで、本実施の形態の楽譜表示装置は、歌詞が重なって表示される個所を検出し、該検出された個所の歌詞以降を１段下げて表示するようにしている（図２（ｂ）参照）。ただし、音符の数に対して歌詞の数が多く、１小節の表示範囲内に歌詞表示を２段で行ったとしても、未だ重なって表示される個所がある場合には、後述するように、重なって表示される個所がなくなるまで段数を増やして行く。なお、図２（ｂ）の例では、１段下げて表示される歌詞は、当該表示範囲の先頭から表示するようにしているが、これに限らず、当該表示範囲の末尾から右詰で表示するようにしてもよい。
【００２５】
また、本実施の形態では、楽譜表示の基礎となるデータとして、供給された演奏データのみを用いているので、換言すれば、供給された演奏データのみに基づいて楽譜表示するようにしているので、まず、供給された演奏データに基づいて音符表示用の音符表示データと歌詞表示用の歌詞表示データを生成し、次に、この表示用の音符表示データと歌詞表示データに基づいて楽譜表示するようにしている。なお、五線譜やト音記号等の、楽譜表示用の定型データは、たとえば、前記ＲＯＭ４に予め記憶させておき、それを読み出して楽譜表示に用いるようにすればよい。
【００２６】
図３は、音符表示データおよび歌詞表示データの各フォーマットの一例を示す図であり、音符表示データは、表示すべき音符毎に１つずつ設けられ、歌詞表示データは、表示すべき歌詞毎に１つずつ設けられている。
【００２７】
同図に示すように、各音符表示データは、それぞれ、当該音符の発音タイミングを示すタイミングデータ２１と、当該音符の音高を示す音高データ２２と、当該音符の種類（４分音符や８分音符等）を示す音符種類データ２３と、当該音符を表示するフォントのサイズを示すフォントサイズデータ２４と、当該音符の楽譜上の表示位置を示す表示位置データ２５と、当該音符の表示色を示すデータや当該音符に装飾を施す場合に、その装飾の種類を決定するデータ等のその他データ（図示せず）とによって構成されている。
【００２８】
ここで、タイミングデータ２１および音高データ２２は、演奏データがどのようなフォーマットのものであっても、通常そのデータ内に含まれているので、それを読み出して直接得ることができ、音符種類データ２３は、演奏データ内に含まれていないとしても、発音継続時間を示すデータは通常含まれているので、それを読み出し、簡単な演算を施すことによって、得ることができる。また、フォントサイズデータ２４や表示色を示すデータは、ユーザが予め設定していれば、それを読み出し、ユーザが予め設定していなければ、デフォルト値を読み出して、得ることができる。さらに、表示位置データ２５は、まず、タイミングデータ２１に基づいて算出したものを設定し、次に、たとえば前記特許文献１に記載された楽譜割付方法を用いて、そのまま表示したのでは重なってしまう音符に対する再レイアウト（対象となる小節数、小節幅、拍および音符の再レイアウト）を行い、その再レイアウト結果に基づいて、設定されたデータを更新する（更新の必要がないこともある）。
【００２９】
また、各歌詞表示データは、それぞれ、当該歌詞の歌唱タイミングを示すタイミングデータ３１と、当該歌詞の内容（文字）を示す歌詞データ３２と、当該歌詞を表示するフォントの種類（明朝体やゴシック体等）を示すフォント種類データ３３と、当該歌詞を表示するフォントのサイズを示すフォントサイズデータ３４と、当該音符の楽譜上の水平方向（演奏が進行する方向、つまり時間軸方向）の表示位置を示す表示位置（時間）データ３５と、当該音符の楽譜上の垂直方向（演奏が進行する方向に対して垂直方向）の表示位置（具体的には、段数）を示す表示位置（段）データ３６と、当該歌詞の表示色を示すデータ等のその他データ（図示せず）とによって構成されている。
【００３０】
ここで、タイミングデータ３１および歌詞データ３２は、演奏データがどのようなフォーマットのものであっても、通常そのデータ内に含まれているので、それを読み出して直接得ることができる。また、フォント種類データ３３、フォントサイズデータ３４および表示色を示すデータは、ユーザが予め設定していれば、それを読み出し、ユーザが予め設定していなければ、デフォルト値を読み出して、得ることができる。さらに、表示位置（時間）データ３５および表示位置（段）データ３６は、タイミングデータ３１、歌詞データ３２、フォント種類データ３３、フォントサイズデータ３４、音符表示データの表示位置データ（更新後のもの）２５および表示範囲に基づいて算出して得ることができる。なお、算出方法については、後述する。
【００３１】
このように生成された音符表示データおよび歌詞表示データを用いて、ある１小節の楽譜を表示したときの一例が、図２（ａ）であり、音符密度が高い表示領域では、歌詞が重なって表示されることがある。そこで、本発明は、歌詞が重なって表示されないように、楽譜表示の再レイアウトを行うことを特徴とする。
【００３２】
次に、この制御処理を詳細に説明する。
【００３３】
図４および図５は、本実施の形態の楽譜表示装置、特にＣＰＵ３が実行する楽譜表示処理の手順を示すフローチャートであり、この楽譜表示処理は、主として、次の処理によって構成されている。すなわち、
（１）ユーザ設定処理
（２）音符表示データ生成および表示処理
（３）歌詞表示データ生成処理
（４）楽譜表示処理
である。
【００３４】
以下、（１）〜（４）の処理を順に説明する。
【００３５】
上記（１）のユーザ設定処理は、図４のステップＳ１に対応し、このユーザ設定処理としては、操作者が楽譜表示の対象とする演奏データを選択したときに、該演奏データを、たとえば、前記外部記憶装置６から読み出して、前記ＲＡＭ５に確保された演奏データ格納領域に格納する処理や、前記表示範囲（たとえば、「１小節」）、前記表示色、前記表示フォントのサイズおよび歌詞の表示フォントの種類を設定する処理等が挙げられる。
【００３６】
上記（２）の音符表示データ生成および表示処理は、図４のステップＳ２およびＳ３に対応し、（２）音符表示データ生成および表示処理では、前記演奏データ格納領域に格納されている演奏データから、音符に関するデータ（音符データ）を読み出し、この音符データに対して前記従来の楽譜割付方法を施すことにより、音符を楽譜表示したときに隣接する音符同士が重ならないような音符表示データを生成した（ステップＳ２）後、この音符表示データに基づいて楽譜表示を行う（ステップＳ３）。この楽譜表示では、五線譜上に音符のみが表示され、歌詞は表示されない。もちろん、ステップＳ３の処理を削除し、後述するステップＳ４の処理の後に、「音符表示データおよび歌詞表示データに基づき表示」という処理を加えることにより、前記図２（ａ）のように、五線譜上に、いずれも重なって表示されない音符と一部重なって表示される歌詞を表示するようにしてもよい。なお、ステップＳ３の楽譜表示では、五線譜やト音記号等の、どの楽譜表示にも共通に表示されるものは、言うまでもなく表示されるが、この表示は、前述のように、ＲＯＭ４に予め記憶されたデータを読み出し、このデータに基づいて行うようにすればよい。
【００３７】
本発明は、演奏データから、このような音符表示データを生成することを特徴とするものではないので、前記特許文献１に記載された楽譜割付方法、すなわち公知の楽譜割付方法を用いて、音符表示データを生成するようにしている。もちろん、楽譜割付方法は、公知のものに限らず、将来発明されるものであってもよい。また、楽譜割付方法として、前記特許文献１に記載のものを採用したのは、便宜上に過ぎず、音符を楽譜表示したときに隣接する音符同士が重ならないような音符表示データを生成可能な方法であれば、どのような方法を採用してもよい。
【００３８】
前記（３）の歌詞表示データ生成処理は、図４のステップＳ４〜Ｓ７に対応する。なお、ステップＳ５は、サブルーチンであり、その詳細は、図５に示されている。
【００３９】
（３）歌詞表示データ生成処理では、まず、前記演奏データ格納領域に格納されている演奏データから、歌詞に関するデータ（歌詞データ）を読み出し、この歌詞データの歌唱タイミングに合う発音タイミングの音符表示データを探し、その音符表示データの表示位置に対応した歌詞表示データを作成する（ステップＳ４）。具体的には、このステップＳ４の処理では、前記図３の歌詞表示データ中、表示位置（段）データ３６以外のデータが作成される。ただし、ステップＳ４で作成された表示位置（時間）データ３５に基づいて歌詞表示した場合、前記図２（ａ）のように、隣接する歌詞が重なって表示されることもある。また、フォント種類データ３３、フォントサイズデータ３４および表示色データ等には、前述のように、ユーザ設定値（ユーザ設定値がない場合には、デフォルト値）がそのまま設定される。
【００４０】
次に、楽譜全体を表示したときの全楽譜領域を複数の表示範囲（本実施の形態では、１小節）に分割し、この分割後の表示範囲毎に、当該表示範囲に表示すべき歌詞表示データの表示位置（時間）データ３５および表示位置（段）データ３６を調整する処理を行う（ステップＳ５〜Ｓ７）
具体的には、当該表示範囲に含まれる歌詞表示データのそれぞれについて、その次に位置する歌詞表示データと表示が重なっているかどうかを判別し（図５のステップＳ１２）、表示の重なりが検出された場合と、表示の重なりが検出されない場合とで、ステップＳ１３〜Ｓ２４の処理とステップＳ２５の２系統の処理に分ける。すなわち、前者の処理では、（ｉ）表示に重なりが出る直前までの歌詞表示データの表示位置（段）データ３６を“１（段）”に設定し（ステップＳ１３）、（ｉｉ）直前の歌詞表示と表示に重なりが出る最初の歌詞表示データ以降のデータのうち、当該表示範囲の次段に表示できる歌詞表示データの表示位置（段）データ３６を次段に設定し（ステップＳ１４〜Ｓ２１）、（ｉｉｉ）当該表示範囲に表示すべき歌詞表示データがなくなるまで上記（ｉｉ）の途中の一部処理を繰り返し（ステップＳ２２→Ｓ２３→Ｓ２４→Ｓ１７）、後者の処理では、表示範囲内の全歌詞表示データの各表示位置（段）データ３６を“１（段）”に設定する（ステップＳ２５）。
【００４１】
以下、上記（ｉｉ）および（ｉｉｉ）の処理をさらに詳細に説明する。
【００４２】
まず、当該表示範囲内において、直前の歌詞表示と表示に重なりが出る最初の歌詞表示データ以降の各歌詞表示データを格納するための領域Ｄａｔａと、当該表示範囲の２段目以降の段に表示される各歌詞表示データの時間軸上の表示位置を格納するための領域Ｔｉｍｅと、各歌詞表示データの表示段を決定するための領域Ｌｉｎｅとを、前記ＲＡＭ５上に確保し、各領域Ｄａｔａ，ＴｉｍｅおよびＬｉｎｅにそれぞれ初期値を格納する（ステップＳ１４，Ｓ１５およびＳ１１）。なお、領域Ｌｉｎｅの確保と初期化は、この処理（ｉｉ）より前のステップＳ１１でなされている。
【００４３】
次に、表示段Ｌｉｎｅを“１”だけインクリメントして、表示の段数を次段に進めておき（ステップＳ１６）、領域Ｄａｔａに格納されている歌詞表示データ（以下、このデータを「歌詞表示データＤａｔａ」という）を、領域Ｔｉｍｅに格納されている時間軸上の表示位置（以下、この位置を「表示位置Ｔｉｍｅ」という）に表示した場合に、この歌詞表示データＤａｔａが当該表示範囲内に収まって表示されるかどうかを判別する（ステップＳ１７）。歌詞表示データＤａｔａには、最初、初期値として直前の歌詞表示と表示に重なりが出る最初の歌詞表示データが設定されており、表示位置Ｔｉｍｅには、最初、初期値として当該表示範囲の時間軸上の先頭位置が設定されているので、ステップＳ１７では、最初、当該表示範囲の２段目の先頭に表示される歌詞表示データが、当該表示範囲内に収まって表示されるかどうかが判別される。そして、この判別は、後述するステップＳ２０およびＳ２１の処理と同様に、当該歌詞、当該フォント種類および当該フォントサイズから算出した値、すなわち当該歌詞の表示幅Ｗｉｄｔｈを表示位置Ｔｉｍｅに加算した結果（時間軸上の位置）が、当該表示範囲の末尾の位置（時間軸上の位置）を超えるかどうかによってなされる。
【００４４】
ステップＳ１７の判別の結果、歌詞表示データＤａｔａの表示が当該表示範囲を超えるときには、表示段Ｌｉｎｅをさらに次の段に設定する（ステップＳ１６）一方、歌詞表示データＤａｔａの表示が当該表示範囲を超えないときには、歌詞表示データＤａｔａの表示位置（時間）データ３５を表示位置Ｔｉｍｅに設定する（ステップＳ１８）とともに、歌詞表示データＤａｔａの表示位置（段）データ３６を表示段Ｌｉｎｅに設定する（ステップＳ１９）。
【００４５】
そして、歌詞表示データＤａｔａの歌詞の表示幅Ｗｉｄｔｈを、当該歌詞、当該フォント種類および当該フォントサイズから算出した値に設定し（ステップＳ２０）、この設定後の表示幅Ｗｉｄｔｈで、表示位置Ｔｉｍｅを更新しておく（ステップＳ２１）。ここまでが、処理（ｉｉ）の手順である。
【００４６】
次に、歌詞表示データＤａｔａは、当該表示範囲内に表示すべき最後の歌詞表示データであるかどうかを判別し（ステップＳ２２）、表示すべき歌詞表示データが残っているときには、次の歌詞表示データを読み出して（ステップＳ２３）、歌詞表示データＤａｔａとした（ステップＳ２４）後、前記ステップＳ１７に戻って、処理（ｉｉ）の途中の処理から繰り返す。ここまでが、処理（ｉｉｉ）の手順である。
【００４７】
前記（４）の楽譜表示処理は、図４のステップＳ８に対応し、以上のようにして生成された音符表示データおよび歌詞表示データに基づいて楽譜表示を行う。
【００４８】
このように、本実施の形態では、楽譜全体を表示したときの全楽譜領域を複数の表示範囲に分割し、この分割後の表示範囲毎に、当該表示範囲に含まれる歌詞表示データのそれぞれについて、その次に位置する歌詞表示データとの表示の重なりを検出し、表示の重なりが検出された場合には、当該表示範囲において、直前の歌詞表示と表示に重なりが出る最初の歌詞表示データ以降の歌詞表示データを次段以降に分けて表示するようにしたので、音符だけでなく歌詞も見栄えよく表示することが可能となる。また、少なくとも１段目に表示される各歌詞は、該各歌詞に対応する音符の表示位置に合わせて表示されるので、ユーザは、少なくとも１段目の各歌詞と各音符との対応関係を明確に把握することができる。
【００４９】
なお、本実施の形態では、各表示範囲に表示すべき歌詞表示データを対応する音符に合わせた状態で１段に表示しきれない場合に、複数段に分けて表示するようにしているが、まず、各表示範囲に表示すべき歌詞表示データを対応する音符に合わせずに、当該表示範囲の先頭から、各歌詞表示データが重ならない程度に詰めることにより、１段で表示可能かどうかを判別し、それでも１段で表示できないときに、複数段に分けて表示するようにしてもよい。
【００５０】
また、本実施の形態では、歌詞を複数段に表示するときの各段の間隔については、特に言及していないが、固定値であってもよいし、可変値であってもよい。可変値の場合には、その値をユーザが設定できるように構成した方が好ましい。
【００５１】
さらに、本実施の形態では、表示範囲として、「１小節」を採用したが、これは便宜上に過ぎず、小節に限らず、拍でもよいし、楽節でもよい。また、小節の場合でも、単小節に限らず、複数小節であってもよい。さらに、表示範囲は、ユーザが選択できるように構成してもよい。
【００５２】
また、本実施の形態では、表示の重なりは、隣接する歌詞表示データについて判別しているが、これに限らず、１つの歌詞表示データと、たとえば拍の区切りまたは小節線とが重なる場合も、表示が重なると判別するようにしてもよい。
【００５３】
なお、本実施の形態では、演奏データのフォーマットについては特に指定されていないので、自動演奏可能なものであればどのようなものを採用してもよい。たとえば、音符データは、単数パートからなるものでもよいし、複数パートからなるものでもよい。音符データが複数パートからなる場合には、歌詞データは、対応付けて表示される音符データと同じトラック（パート）に入っていた方が処理の都合上好ましいが、これに限られるわけではなく、別のトラックに入っていてもよい。演奏データは、音符データと歌詞データを一まとめにして、１つのファイルで形成するようにしたが、音符データと歌詞データとを別ファイルで形成するようにしてもよい。この場合、歌詞データは、該歌詞データに含まれる個々の歌詞が、音符データに含まれるどの音符に対応するかを示す情報（たとえば、タイミング情報）を備えておく必要がある。
【００５４】
また、本実施の形態では、音符データおよび歌詞データはそれぞれ別のイベントとして取り扱うようにしたが、これに限らず、音符イベント中に歌詞情報を含むようなデータフォーマットを採用してもよい。
【００５５】
さらに、本実施の形態では、各歌詞イベント中にはそれぞれ１文字分の歌詞情報が含まれる例を挙げて説明したが、これに限らず、複数文字分の歌詞情報が含まれるイベントが混在するようにしてもよい。文字も、ひらがなに限らず、漢字、数字またはアルファベット文字など、どのような文字であってもよい。
【００５６】
また、本実施の形態では、演奏データの全体に亘って、音符表示データおよび歌詞表示用データを生成した後、これらデータに基づいて、一括して楽譜表示するようにしたが、これに限らず、表示範囲毎に生成途中の音符表示データおよび歌詞表示用データに基づいて、各段階で楽譜表示するようにしてもよい。
【００５７】
なお、演奏データに、歌詞に関するデータ（歌詞データ）ではなく、コードネーム（和音名）に関するデータ（コードネームデータ）が含まれている場合には、歌詞データに代えて、コードネームデータに本発明をそのまま適用することにより、コードネームを音符に対応付けて楽譜表示したときに起こり得る、コードネーム同士の表示の重なりを解消することができる。
【００５８】
また、本実施の形態では、演奏データに含まれる音符に関するデータ（音符データ）はすべて表示するようにしたが、表示装置７の表示能力上、その一部の音符データを表示できない場合には、その一部の音符データを除いた後の音符データを表示するようにすればよい。
【００５９】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ３やＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００６０】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６１】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００６２】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００６３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ３などが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施の形態に係る楽譜表示装置の概略構成を示すブロック図である。
【図２】同じ演奏データに基づいて、従来の楽譜表示装置および本実施の形態の楽譜表示装置がそれぞれ表示した楽譜の一例を示す図である。
【図３】音符表示データおよび歌詞表示データの各フォーマットの一例を示す図である。
【図４】図１の楽譜表示装置、特にＣＰＵが実行する楽譜表示処理の手順を示すフローチャートである。
【図５】ある表示範囲内に表示すべき歌詞表示データの表示位置（時間、段）を調整するサブルーチンの詳細な手順を示すフローチャートである。
【符号の説明】
【００６５】
１…操作子群（分割手段），３…ＣＰＵ（読み出し手段、楽譜表示手段、分割手段、検出手段、制御手段），７…表示装置（楽譜表示手段、表示手段）
【図１】
2005148563.tif 000003
【図２】
2005148563.tif 000004
【図３】
2005148563.tif 000005
【図４】
2005148563.tif 000006
【図５】
2005148563.tif 000007