(57)【要約】【課題】歌詞がきれいに表示し切れない場合でも、ユーザが特別な操作をすることなく歌詞を容易に読むことができるようにすること。【解決手段】この楽譜表示システムでは、演奏データから音符表示及び歌詞表示データが得られ、音符表示データに従って各音符Ｎ１〜Ｎ５が完全に表示される。歌詞については、仮に、各歌詞表示データに従い各音符Ｎ１〜Ｎ５に合わせて歌詞Ｌ１〜Ｌ５を表示した際に、歌詞同士が重なる区間（「基本表示範囲」と呼ばれ、任意に設定可能である。）を検出し、この重なり区間に対応する一連の歌詞表示データを複数グループＧ１〜Ｇ３に分割する。そして、検出された重なり区間が再生される際には、グループＧ１〜Ｇ３毎に歌詞表示データに従い、対応音符Ｎ１〜Ｎ５の位置に合わせて各グループの歌詞Ｌ１＋Ｌ２，Ｌ３＋Ｌ４，Ｌ５を順次表示すると共に、簡略表記Ｍｋで隣接歌詞Ｌ３，Ｌ２，Ｌ４の存在を知らせる。【選択図】図３
2005055457.tif 000002
【特許請求の範囲】
【請求項１】
音符表示データ及びこれに対応する歌詞表示データを取得するデータ取得手段と、
取得された音符表示データに基づいて音符を表示する音符表示手段と、
取得された歌詞表示データに基づく歌詞を、対応する音符表示データに基づき表示される音符に合わせて表示した場合に、歌詞同士が重なる区間を検出する重なり検出手段と、
検出された区間に対応する一連の歌詞表示データを複数のグループに分割する分割手段と、
上記一連の歌詞表示データが再生対象である間、分割された各グループの歌詞表示データに基づいて歌詞を順次表示する歌詞表示手段とを具備することを特徴とする楽譜表示装置。
【請求項２】
前記歌詞表示手段は、分割された歌詞表示データに基づく歌詞を、対応する音符表示データに基づく音符の表示位置に合うように表示することを特徴とする請求項１に記載の楽譜表示装置。
【請求項３】
前記歌詞表示手段は、分割された各グループの歌詞表示データに基づく歌詞を表示する際、当該歌詞に隣接して別の歌詞が当該区間内に存在することを簡略表示することを特徴とする請求項１又は２に記載の楽譜表示装置。
【請求項４】
音符表示データ及びこれに対応する歌詞表示データを取得するステップと、
取得された音符表示データに基づいて音符を表示するステップと、
取得された歌詞表示データに基づく歌詞を、対応する音符表示データに基づき表示される音符に合わせて表示した場合に、歌詞同士が重なる区間を検出するステップと、
検出された区間に対応する一連の歌詞表示データを複数のグループに分割するステップと、
上記一連の歌詞表示データが再生対象である間、分割された各グループの歌詞表示データに基づいて歌詞を順次表示するステップとから成る手順を情報処理装置に実行させるための楽譜表示プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、歌詞情報付きの演奏データに基づいて楽譜を表示する際に歌詞を読み易くすることができる楽譜表示システムに関する。
【０００２】
【従来の技術】
従来より、自動演奏データに基づいて見栄えのよい楽譜表示を行うようにした装置やプログラムは、例えば、特許文献１に示されるように、既によく知られている。特許文献１では、各小節内でタイミングの異なる音符が重なって表示されないように、各小節の表示幅および各音符位置の割り付けを制御している。
【０００３】
【特許文献１】特開平１１−３２７４２７号公報
【０００４】
ところで、自動演奏データには歌詞を表わすイベントで構成される歌詞情報が含まれているものがある。このような自動演奏データは、歌詞情報も音符情報と同様にタイミング情報を持っており、音符に基づいて表示される楽譜に合わせて表示することができる。この場合、音符については、重ならないように小節幅が調整されて表示されるが、歌詞については考慮されていない。そのため、表示画面上で音符密度の高い小節などでは、歌詞の各文字が重なって表示されたり、表示しきれない部分が省略されるなどしてユーザが読みづらくなることがある。
【０００５】
【発明が解決しようとする課題】
この発明は、このような不都合に鑑み、歌詞情報付きの演奏データなどに基づいて楽譜表示する際に、歌詞がきれいに表示し切れない場合でも、ユーザは特別な操作をすることなく歌詞を容易に読むことができるようにした楽譜表示システムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
この発明の主たる特徴に従う楽譜表示装置又はその楽譜表示プログラムの手順は、音符表示データ（Ｎｄ）及びこれに対応する歌詞表示データ（Ｌｄ）を取得するデータ取得手段又はステップ（Ｓ２，Ｓ４）と、取得された音符表示データ（Ｎｄ）に基づいて音符（Ｎ１〜Ｎ５）を表示する音符表示手段又はステップ（Ｓ３）と、取得された歌詞表示データ（Ｌｄ：Ｌｄ１〜Ｌｄ５）に基づく歌詞（Ｌ１〜Ｌ５）を、対応する音符表示データ（Ｎｄ）に基づき表示される音符（Ｎ１〜Ｎ５）に合わせて表示した場合に、歌詞同士が重なる区間（基本表示範囲）を検出する重なり検出手段又はステップ（Ｓ６→ＮＯ）と、検出された区間に対応する一連の歌詞表示データ（Ｌｄ１〜Ｌｄ５）を複数のグループ（Ｇ１〜Ｇ３）に分割する分割手段又はステップ（Ｓ８）と、一連の歌詞表示データが再生対象である間（Ｒ４→ＹＥＳ）、分割された各グループ（Ｇ１，Ｇ２，Ｇ３）の歌詞表示データ（Ｌｄ１＋Ｌｄ２，Ｌｄ３＋Ｌｄ４，Ｌｄ５）に基づいて歌詞（Ｌ１＋Ｌ２，Ｌ３＋Ｌ４，Ｌ５）を順次表示する歌詞表示手段又はステップ（Ｒ５〜Ｒ１１）とを備える〔請求項１，４〕。なお、括弧書きは、対応する実施例の参照記号又は用語を例示したものであり、以下においても同様である。
【０００７】
この発明による楽譜表示装置の歌詞表示手段（Ｒ５〜Ｒ１１）は、分割された歌詞表示データ（Ｌｄ１〜Ｌｄ５）に基づく歌詞（Ｌ１〜Ｌ５）を、対応する音符表示データ（Ｎｄ）に基づく音符（Ｎ１〜Ｎ５）の表示位置に合うように表示する（Ｒ６）〔請求項２〕ように構成し、或いは、分割された各グループ（Ｇ１，Ｇ２，Ｇ３）の歌詞表示データ（Ｌｄ１＋Ｌｄ２，Ｌｄ３＋Ｌｄ４，Ｌｄ５）に基づく歌詞（Ｌ１＋Ｌ２，Ｌ３＋Ｌ４，Ｌ５）を表示する際、当該歌詞（Ｌ１＋Ｌ２，Ｌ３＋Ｌ４，Ｌ５）に隣接して別の歌詞（Ｌ３，Ｌ２，Ｌ４）が当該区間（基本表示範囲）内に存在することを簡略表示する（Ｒ７〜Ｒ１１）〔請求項３〕ように構成することができる。
【０００８】
〔作用〕
この発明による楽譜表示システムにおいては、歌詞情報付きの曲データをＭＩＤＩ形式などで表現した演奏データを読み出し、読み出した演奏データから音符表示データ（Ｎｄ）及び歌詞表示データ（Ｌｄ）を取得すると（Ｓ２，Ｓ４）、取得した各音符表示データ（Ｎｄ）に従って各音符（Ｎ１〜Ｎ５）が完全に表示される。また、歌詞表示データ（Ｌｄ）については、仮に、各歌詞表示データ（Ｌｄ）に従い各音符（Ｎ１〜Ｎ５）に合わせて歌詞（Ｌ１〜Ｌ５）を表示した際に、歌詞（Ｌ１〜Ｌ５）同士が重なる区間〔「区間」は、実施例では基本表示範囲といい、小節、拍、音符毎などの時間的な所定の範囲（位置）を指す。〕を検出する。ここで、「歌詞同士が重なる」には、例えば、拍の区切りや小節線などの所定区間の区分線と重なる状態、つまり、所定区間内に歌詞が入り切らない状態が含まれる。次に、検出された区間に表示されるべき歌詞（Ｌ１〜Ｌ５）がこの区間で表示可能になるように、重なり区間に対応する一連の歌詞表示データ（Ｌｄ１〜Ｌｄ５）を複数グループ（Ｇ１〜Ｇ３）に分割する。そして、検出された重なり区間が再生対象である間、分割されたグループ（Ｇ１，Ｇ２，Ｇ３）毎に歌詞表示データ（Ｌｄ１＋Ｌｄ２，Ｌｄ３＋Ｌｄ４，Ｌｄ５）に従って、各グループに対応する歌詞（Ｌ１＋Ｌ２，Ｌ３＋Ｌ４，Ｌ５）を順次表示する。
【０００９】
また、分割された歌詞表示データ（Ｌｄ１〜Ｌｄ５）に従って歌詞（Ｌ１〜Ｌ５）を表示する際には、対応する音符（Ｎ１〜Ｎ５）の表示位置に合うように表示する。この際、さらに、表示しようとしているグループ（Ｇ１，Ｇ２，Ｇ３）の歌詞（Ｌ１＋Ｌ２，Ｌ３＋Ｌ４，Ｌ５）に隣接する歌詞（Ｌ３，Ｌ２，Ｌ４）の存在を簡略表記（Ｍｋ）で追加し、この追加表示により、重なり区間内における当該表示中の歌詞（Ｌ１＋Ｌ２，Ｌ３＋Ｌ４，Ｌ５）の順番（先頭、途中、末尾）が分かるようにする。
【００１０】
このように、この発明によると、演奏データの歌詞情報に従う歌詞を全て表示し切れない重なり区間については、当該区間の歌詞をグループ分けし、再生に応じてグループ分けした歌詞を順次表示するようにしているので、歌詞をきれいに表示し切れない場合でも、ユーザは、特別な操作をすることなく、歌詞を容易に読むことができる。また、その際、音符表示位置に合わせて歌詞を表示し、楽譜の主要素である音符の表示には影響させず、楽譜表示をきれいな状態に維持することができる。さらに、表示されている歌詞が重なり区間の歌詞の一部分である場合、区間内における表示中の歌詞の位置付けを追加表示で知ることができる。
【００１１】
【発明の実施の形態】
〔システム構成〕
図１は、この発明の一実施例による楽譜表示システムのハードウエア構成例を示す。この例では、楽譜表示装置本体を構成する情報処理装置には、ポータブルキーボード等の電子楽器が用いられるが、電子楽器に特化した形態でなくとも、演奏データに基づく楽譜表示処理機能を有するパーソナルコンピュータ等の汎用処理装置の形態でもよい。この楽譜表示装置は、中央処理装置（ＣＰＵ）１、ランダムアクセスメモリ（ＲＡＭ）２、読出専用メモリ（ＲＯＭ）３、外部記憶装置４、入力操作部５、表示部６、音源部７、通信インターフェース（通信Ｉ／Ｆ）８などの要素を備え、これらの要素１〜８はバス９に接続される。
【００１２】
装置全体を制御するＣＰＵ１は、所定の制御プログラムに従って各種処理を実行し、ＲＡＭ２は、これらの処理で利用される種々の情報を一時的に記憶するための処理バッファとして機能する。例えば、楽譜表示処理時には、歌詞表示データをグループ分けする際のグループ番号などがＲＡＭ２上に格納される。また、ＲＯＭ３は、ＣＰＵ１に楽譜表示処理を実行させるための楽譜表示プログラムを含む各種制御プログラムや各種データ等を記憶している。
【００１３】
外部記憶装置４は、ハードディスク（ＨＤ）や、コンパクトディスク・リード・オンリィ・メモリ（ＣＤ−ＲＯＭ）、フレキシブルディスク（ＦＤ）、光磁気（ＭＯ）ディスク、ディジタル多目的ディスク（ＤＶＤ）、メモリカード等の記憶媒体を用いた記憶手段である。楽譜表示プログラム等の各種制御データは、ＲＯＭ３だけでなく外部記憶装置４に記憶させることができる。例えば、ＲＯＭ３に制御プログラムが記憶されていない場合、ＨＤやＣＤ−ＲＯＭなどの外部記憶装置４に制御プログラムを記憶させておいてそれをＲＡＭ２に読み込むことで、ＲＯＭ３に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができ、制御プログラムの追加やバージョンアップ等を容易に行うことができる。また、楽譜表示プログラムや歌詞表示データを含む演奏データ等をインストールすることによって、所望の楽譜表示装置を実現することができる。
【００１４】
入力操作部５は、演奏用鍵盤などの演奏操作子や、文字キー等のスイッチを主体とするパネル操作子と、それらの検出回路から成り、操作子による演奏／設定入力操作の内容を検出回路で検出してシステム本体内に導入する。例えば、演奏操作子の演奏入力操作に基づく実演奏データを入力したり、パネル操作子のスイッチ操作にてシステムの動作状態を設定したり楽譜表示に必要な各種情報を入力することができる。表示部６は、ディスプレイ（ＣＲＴ、ＬＣＤ等の表示器）１０の表示内容や各種インジケータの点灯状態をＣＰＵ１からの指令に従って制御し、楽譜表示を行ったり入力操作に対する表示援助を行う。
【００１５】
音源部７は、音源（ソフトウエアを含む）や効果付与ＤＳＰを含み、ＣＰＵ１で処理された演奏データに対応する楽音信号を生成し、音源部７に接続されるサウンドシステム１１は、Ｄ／Ａ変換部やアンプ、スピーカを備え、音源部７からの楽音信号に基づく楽音を発生する。つまり、音源７及びサウンドシステム１１は楽音生成部を形成し、演奏データに基づく楽音を発音することができる。
【００１６】
また、図示の通信Ｉ／Ｆ８は、ローカルエリアネットワーク（ＬＡＮ）や、インターネット、電話回線などの一般用通信ネットワーク、或いは、ＭＩＤＩ用ネットワークに接続される各種インターフェースを一括して表わしており、サーバ等の他の情報処理装置やＭＩＤＩ機器などの種々の外部機器ＰＤと、必要な各種情報を授受することができる。例えば、この装置に制御プログラムや各種データ等が記憶されていない場合、通信Ｉ／Ｆ８を介して他の情報処理装置ＰＤから制御プログラムや種々のデータ等をダウンロードすることができる。また、外部機器ＰＤにＭＩＤＩ鍵盤などの別の演奏入力操作装置を用いて、その演奏操作に基づく演奏データを通信Ｉ／Ｆ８から取り込むこともできる。
【００１７】
〔表示データの例〕
この発明の一実施例による楽譜表示システムでは、ＲＯＭ３、外部記憶装置４或いは外部機器ＰＤから演奏データを呼び出し、この演奏データに音符情報及び歌詞情報として含まれる音符データ及び歌詞データから得られる音符表示データ及び歌詞表示データに基づき、演奏データの進行に従ってディスプレイ１０の楽譜画面に音符列及び歌詞列から成る楽譜を表示していくことができる。この場合、演奏操作子（５）による実演奏に対して楽譜表示でガイドしたり、楽音生成部（７，１１）を通じて演奏データが再生されるのに合わせて楽譜を表示し、或いは、音符データ及び歌詞データのみを再生して楽譜を表示して、当該演奏データの内容を視認したりするのに利用することができる。
【００１８】
図２は、この発明の一実施例による楽譜表示システムで楽譜表示に用いられる表示データの例を表わす。このシステムでは、図２（１），（２）に夫々示されるような音符表示及び歌詞表示データＮｄ，Ｌｄを演奏データから取得してこれを楽譜表示に利用する。音符表示データＮｄは、例えば、ＭＩＤＩ形式で表わされる演奏データにおける所定パート（例えば、メロディパート）の音符データから作成され、音符データの音符イベント毎に、図２（１）のように、タイミングデータ、音高（音高軸上の位置）、音符種類、音符フォントのサイズ、表示位置（時間軸上の位置）、等々、の要素データを有しており、これらの要素データを用いて、演奏データの進行に従った音符列をディスプレイ１０の音符表示領域に表示することができる。ここで、音符には休符が含まれるものとする。
【００１９】
歌詞表示データＬｄは、演奏データに含まれる歌詞データから作成され、歌詞データの歌詞イベント毎に、図２（２）のように、タイミングデータ、歌詞（文字）情報、文字フォント種類、文字フォントのサイズ、表示位置（時間軸上の位置）、等々、の要素データを有している。各歌詞イベントは、歌詞文字を特定するための歌詞（文字）情報として、１文字分に限らず、複数文字分持つ場合もある。表示される歌詞には、ひらがなやカタカナの外に、漢字や数字、アルファベット或いはその他の文字を用いることができる。また、スペースや括弧、更に改ページや改行なども含み、語句を識別するもの（文節を区切るための何らかの情報）があってもよい。従って、各歌詞イベントは、楽譜画面に実際に表示される文字だけでなく、スペース情報Ｓｐなどが加わり、文字とスペースや区切り情報のセットを表わす場合もある。或いは、表示する文字情報を持たず、例えば、改行情報や改ページ情報などの区切り情報のみから成る場合もある。
【００２０】
また、１つの（音符イベント毎の）音符表示データＮｄには１以上の（歌詞イベント毎の）歌詞表示データＬｄを対応させることができる。そして、歌詞表示データＬｄの要素データを用いて、音符の進行に従った歌詞列をディスプレイ１０の歌詞表示領域に表示することができる。なお、以下の例では、説明を簡単にするために、１つの（音符イベント毎の）音符表示データＮｄにそれぞれ対応して１つの（歌詞イベント毎の）歌詞表示データＬｄが設定され、従って、各歌詞表示データＬｄにより各音符表示データＮｄに対応する１乃至複数文字から成る歌詞を表示することができるものとする。
【００２１】
〔歌詞表示例〕
この発明の一実施例による楽譜表示システムでは、歌詞を対応する音符の位置に合わせて表示する際に、表示される歌詞同士が重なることがある場合には、これを検出して、歌詞表示に重なりをもたらす一連の歌詞データを複数のグループに分割し、グループ分けされた歌詞データ毎に順次その表示タイミングで表示する。図３は、この発明の一実施例による楽譜表示態様を説明するための楽譜表示例である。
【００２２】
ここで、図３を用いてこの発明の一実施例による楽譜表示システムの概略を簡単に説明しておくと、次のとおりである。このシステムでは、演奏データから音符表示及び歌詞表示データＮｄ，Ｌｄが得られ、音符表示データＮｄに従って各音符Ｎ１〜Ｎ５が完全に表示される。一方、歌詞については、仮に、各歌詞表示データＬｄ＝Ｌｄ１〜Ｌｄ５に従い各音符Ｎ１〜Ｎ５に合わせて歌詞Ｌ１〜Ｌ５を表示した際に、歌詞同士が重なる区間〔小節、拍、音符毎などに対応する時間的な所定の位置範囲を指し「基本表示範囲」と呼ばれ、任意に設定可能である。以下の具体例では小節に対応する区間が採用される。〕を検出し、この重なり区間に対応する一連の歌詞表示データＬｄ１〜Ｌｄ５を複数グループＧ１〜Ｇ３に分割する。そして、検出された重なり区間が再生される際には、グループＧ１〜Ｇ３毎に歌詞表示データＬｄ１＋Ｌｄ２，Ｌｄ３＋Ｌｄ４，Ｌｄ５に従い、対応音符Ｎ１＋Ｎ２，Ｎ３＋Ｎ４，Ｎ５の位置に合わせて各グループの歌詞Ｌ１＋Ｌ２，Ｌ３＋Ｌ４，Ｌ５を当該区間内に順次表示すると共に、簡略表記Ｍｋを追加的に表示して隣接歌詞Ｌ３，Ｌ２，Ｌ４の存在を知らせる。
【００２３】
以下、図３についてより詳しく説明する。図３は、演奏データの或る１小節分に対応する音符表示及び歌詞表示データに基づいて表示される音符列及び歌詞列を例示したものである。この楽譜表示システムでは、楽譜表示に際して、例えば、時間軸を横（左右）方向にした楽譜画面がディスプレイ１０に表示される。この楽譜画面には、例えば、上部に音符表示領域が設けられ、音符表示領域の下側に隣接して歌詞表示領域が設けられると共に、両表示領域における時間軸の方向及び目盛を一致させ、設定された基本表示範囲（時間的な位置）の制限に従って歌詞表示データＬｄに基づいて歌詞が表示される。
【００２４】
図３の例では、基本表示範囲に、音符データの１小節分に対応する１小節表示区間（時間軸に沿う１小節分の表示区間）が用いられる。上述した１小節分の音符表示データＮｄは、５つの音符イベント分から成り、音符表示領域には、それらの要素データ〔図２（１）〕に従って、図３（ａ），（ｂ）の各上段に示すように、１小節表示区間内に５つの音符Ｎ１〜Ｎ５が自動的に割付け配置される。
【００２５】
一方、音符Ｎ１〜Ｎ５に対応する５つの歌詞イベント分の歌詞表示データＬｄ（各歌詞表示データを記号“Ｌｄ１”〜“Ｌｄ５”で表わす。）により表示される歌詞については、この例の場合、当該歌詞表示データＬｄ１〜Ｌｄ５は、各要素データ〔図２（２）〕に従って、対応する歌詞Ｌ１〜Ｌ５を重ならないようにそのまま歌詞表示領域に表示したとすると、図３（ａ）の下段に示すように、１小節表示区間に収まり切らずこの区間からはみ出してしまうような時間長に設定されている。つまり、歌詞Ｌ１〜Ｌ５の時間軸方向の総表示長は、音符Ｎ１〜Ｎ５が配置される１小節表示区間よりも長く、仮に、音符Ｎ１〜Ｎ５に合わせて１小節表示区間内に収まるように歌詞Ｌ１〜Ｌ５を表示した場合には、歌詞Ｌ１〜Ｌ５同士が重なり合うことになる。なお、この例では、第２及び第４歌詞Ｌ２，Ｌ４は、括弧書きで図示するように、通常の文字列“○○…○”，“△△…△”とスペース文字（空白文字）Ｓｐから成る状態である〔各歌詞イベントは、最後にスペース情報Ｓｐを持っている〕とする。
【００２６】
そこで、このシステムでは、楽譜を初期表示する際には、図３（ａ）の下段に示される歌詞Ｌ４，Ｌ５のように、少なくとも１小節表示区間即ち基本表示範囲からはみ出す歌詞については、表示を省略し、その代わりに、“……”のような歌詞存在マークＭｋにより、区間内に歌詞が後続していることを簡略表示する。
【００２７】
また、演奏データの再生時（楽譜表示のみの再生を含む）には、図３（ｂ）の下３段のように、グループ分けによる歌詞列表示態様を採用する。すなわち、図示の歌詞Ｌ１〜Ｌ５のように、１小節表示区間即ち基本表示範囲内に収まるように歌詞を表示した場合に歌詞同士が重なり合うときには、この区間（範囲）の音符Ｎ１〜Ｎ５に対応する一連の歌詞表示データＬｄ１〜Ｌｄ５を、例えば、スペース情報（空白文字）Ｓｐなどの語句の区切りを表わす情報に従って、複数のグループＧ１〜Ｇ３に分割し、各グループＧ１〜Ｇ３の先頭の歌詞表示データＬｄ１，Ｌｄ３，Ｌｄ５のタイミングデータが示す再生対象時点ごとに、各グループＧ１〜Ｇ３に属する歌詞表示データＬｄ１＋Ｌｄ２，Ｌｄ３＋Ｌｄ４，Ｌｄ５の内容に従って、当該グループＧ１〜Ｇ３に対応する歌詞列Ｌ１＋Ｌ２，Ｌ３＋Ｌ４，Ｌ５だけの表示に順次切り換えていく。また、その際、この基本表示範囲内に含まれる他グループの歌詞列については具体的な文字表示を省略する。
【００２８】
この場合、表示中の歌詞列の前方乃至後方には、図示の例では、“……”で表わされる必要な歌詞存在マークＭｋを追加的に表示して、当該基本表示範囲（１小節表示区間）内において表示中の歌詞列に隣接する歌詞が存在することをユーザに報知することができる。これにより、ユーザは、現在表示されている歌詞列の基本表示範囲内における位置付け（表示中の歌詞列が、基本表示範囲の先頭、途中又は末尾の何れに位置しているのか）を認知することができる。なお、歌詞表示の前後に追加される歌詞存在マークＭｋについては、この例では“……”を表示するようにしているが、他の表示態様でもよい。
【００２９】
〔楽譜初期表示処理フロー〕
図４は、この発明の一実施例による楽譜表示を開始した当初における楽譜初期表示処理の手順を表わすフローチャートであり、図５は、図４の楽譜初期表示処理フローにおけるグループ分け処理（Ｓ８）の具体的な手順を表わすフローチャートである。この楽譜初期表示フローが楽譜表示プログラムに従ってスタートすると、ユーザがパネル操作子５を用いて、ＲＯＭ３や外部記憶装置４などに記録されている演奏データ（曲データと呼ばれる）から楽譜表示したい所望の曲を指示したり、基本表示範囲（位置）を小節などで指示する等の設定操作を行うことができる。ＣＰＵ１は、このようなユーザ設定操作に応じて、楽譜表示の対象となる演奏データを選択し、基本表示範囲（例えば、１小節表示区間）などを設定する（ステップＳ１：以下、“Ｓ…”等の記号単独で該当ステップを表わす）。
【００３０】
ＣＰＵ１は、次いで、設定された演奏データから音符データを読み出し、音符同士が重ならないように全曲分の音符表示データＮｄを作成し（Ｓ２）、さらに、作成された音符表示データに基づき、全曲にわたって音符列を音符表示領域に表示する（Ｓ３）。次に、歌詞に関しては、設定された演奏データから歌詞データを読み出し、歌詞データのタイミングに合う音符表示データＮｄを探索し、探索した音符表示データＮｄの表示位置に対応するように、歌詞データに基づく全曲分の歌詞表示データＬｄを作成し（Ｓ４）、その後、作成された歌詞表示データＬｄに基づいて図示破線枠内の歌詞表示処理（Ｓ５〜Ｓ１０）を行う。
【００３１】
歌詞表示処理（Ｓ５〜Ｓ１０）は、基本表示範囲（位置）単位で（例えば、１小節表示区間毎に）、つまり、第１基本表示範囲から最終基本表示範囲まで、１つの基本表示範囲毎に、順次、繰り返し実行される。そして、全基本表示範囲について処理が完了すると、歌詞表示データＬｄに基づく歌詞列が、音符列に対応して全曲にわたり表示される。なお、音符列及び歌詞列は、ユーザのパネル設定操作に応じて、必要な曲部分のみを表示することもできる。
【００３２】
さて、歌詞表示処理（Ｓ５〜Ｓ１０）においては、まず、当該基本表示範囲（位置）に表示されるべき歌詞列の基になる１乃至複数の歌詞表示データＬｄを抽出する（Ｓ５）。次に、抽出した歌詞表示データＬｄに基づいて歌詞を表示した場合、全ての歌詞を重なりがなく而も基本表示範囲内に収まるように表示することができるか否かを判定する（Ｓ６）。ここで、当該歌詞表示データＬｄは重ならず且つ基本表示範囲からはみ出すことなく表示可能であるときは（Ｓ６→ＹＥＳ）、通常の表示形式を採用し、抽出した各歌詞表示データＬｄに基づく歌詞列を音符列に対応させてそのまま歌詞表示領域に表示する（Ｓ７）。
【００３３】
一方、重なりなく基本表示範囲内に収めることができないと判定されたときは（Ｓ６→ＮＯ）、抽出した各歌詞表示データＬｄに対して、図５に詳細フローが示される「グループ分け処理」を行い（Ｓ８）、このグループ分け処理の結果に基づいて歌詞を表示する（Ｓ９）。グループ分け処理（Ｓ８：Ｓ８１〜Ｓ８６）においては、当該基本表示範囲内に表示されるべき歌詞の基になる歌詞表示データＬｄを抽出し、これらの歌詞表示データＬｄを、スペース情報Ｓｐなどの区切り情報を用いて複数のグループに分割し、当該基本表示範囲の先頭に位置すべきグループの歌詞表示データＬｄから、順次、番号１、２，…を付けていく。そのため、まず、初期状態（条件）として、抽出された歌詞表示データＬｄのうち先頭（最初）の歌詞表示データＬｄを番号付けの処理対象としてセットすると共にグループ番号“１”をセットする（Ｓ８１）。
【００３４】
次いで、現在セットされているグループ番号を、処理対象にセットされた歌詞表示データＬｄのグループ番号として記憶する番号設定処理を行う（Ｓ８２）。続いて、当該歌詞表示データＬｄの次に更なる歌詞表示データＬｄｎが存在するか否かを判別する次データ判別ステップ（Ｓ８３）に進む。そして、次データ判別ステップで更なる歌詞表示データＬｄｎがあると判別されたときは（Ｓ８３→ＹＥＳ）、現在処理対象になっている歌詞表示データＬｄの歌詞（文字）情報の最後にスペース情報（空白文字）Ｓｐがあるか否かを判定する（Ｓ８４）。
【００３５】
ここで、スペース情報Ｓｐがなければ（Ｓ８４→ＮＯ）、更なる歌詞表示データＬｄｎを処理対象の歌詞表示データＬｄに新たにセットして（Ｓ８５）、番号設定処理ステップ（Ｓ８２）に戻り、新たにセットされた歌詞表示データＬｄに対して現在のグループ番号を設定する。また、スペース情報Ｓｐがあるときは（Ｓ８４→ＹＥＳ）、更なる歌詞表示データＬｄｎを処理対象の歌詞表示データＬｄに新たにセットすると共に、現在のグループ番号を“１”だけインクリメントして（Ｓ８６）、番号設定処理ステップ（Ｓ８２）に戻り、新たにセットされた歌詞表示データＬｄに、インクリメントされた現在のグループ番号を設定する。
【００３６】
そして、次データ判別ステップ（Ｓ８３）で更なる歌詞表示データＬｄｎがあると判別される間は（Ｓ８３→ＹＥＳ）、上述した処理（Ｓ８５→Ｓ８２，Ｓ８６→Ｓ８２）の何れかを繰り返し、更なる歌詞表示データＬｄｎがないと判別されると（Ｓ８３→ＮＯ）、当該基本表示範囲におけるグループ分け処理を終了し、楽譜初期表示処理フロー（図４）の表示ステップ（Ｓ９）にリターンする。
【００３７】
グループ分け後の表示ステップ（Ｓ９）では、グループ分け処理（図５）でグループ番号“１”が設定された歌詞表示データＬｄに基づいて、対応する歌詞を歌詞表示領域に表示する。さらに、当該基本表示範囲において、表示された歌詞の時間軸進行方向（例えば、時間軸が水平方向に設定されていれば、右横）に余裕があれば、“……”等の歌詞存在マークＭｋを追加表示する（Ｓ１０）。
【００３８】
〔再生時楽譜表示処理フロー〕
上述した楽譜初期表示処理を終えると、このシステムの再生時楽譜表示処理により、演奏データ再生（楽譜表示のみに利用する場合を含む）の進行に従って、グループ分け処理された基本表示範囲の歌詞表示を順次切り換えていくことができる。なお、データ再生時には、音符や他の基本表示範囲の歌詞の表示は基本的に初期表示の内容を維持するが、従来知られた方法で音符や歌詞を強調表示して現時点で再生している位置を報知する等の表示制御を付加することができる。
【００３９】
図６及び図７は、この発明の一実施例による再生時楽譜表示処理の手順を表わすフローチャートである。楽譜初期表示の処理（図４及び図５）が終わり、パネル操作子（例えばデータ再生ボタン）５のユーザ操作などによりデータ再生が開始し、この処理フローがスタートすると、まず、ＣＰＵ１は、ユーザ操作などによりデータ再生を停止する指示がなされた否かを検出する（Ｒ１）。
【００４０】
ここで、再生ストップの指示を検出しなければ（Ｒ１→ＮＯ）、歌詞表示データＬｄのタイミングデータを調べて、現在、再生対象となるべき基本表示範囲（位置）があるか否かを判定し（Ｒ２）、再生対象とすべき基本表示範囲があれば（Ｒ２→ＹＥＳ）、再生対象となる基本表示範囲を抽出し（Ｒ３）、さらに、抽出された当該基本表示範囲内の歌詞表示データＬｄに対応するグループ番号があるか否かを判定する（Ｒ４）。ここで、グループ番号がないときには（Ｒ４→ＮＯ）、再生停止検出ステップ（Ｒ１）に戻る。
【００４１】
つまり、再生ストップの指示が検出されず（Ｒ１→ＮＯ）、再生対象となる基本表示範囲がある限り（Ｒ３→ＹＥＳ）、再生対象の基本表示範囲内の歌詞表示データＬｄに対するグループ番号有無の判定（Ｒ４）を繰り返す。従って、歌詞列を重ならず収め切るような基本表示範囲を再生対象としている間は、当該基本表示範囲内にグループ番号が設定された歌詞表示データＬｄが現れないので（Ｒ４→ＮＯ）、再生ストップ無し（Ｒ１→ＮＯ）→新たな基本表示範囲有り（Ｒ２→ＹＥＳ）→基本表示範囲抽出（Ｒ３）→グループ番号無し（Ｒ４→ＮＯ）のループ処理を繰り返すだけで、これらの基本表示範囲については、楽譜初期表示処理（図４及び図５）による表示状態を維持し、表示内容に変化がない。
【００４２】
一方、グループ番号が設定された基本表示範囲が再生対象になると、ＣＰＵ１は、グループ番号判定ステップでグループ番号有りと判定し（Ｒ４→ＹＥＳ）、再生対象とされた基本表示範囲（位置）内における歌詞表示データの中から、現在の再生対象である歌詞表示データＬｄを探索し、探索された歌詞表示データＬｄを含むグループを表示対象に指定する（Ｒ５：図７）。そして、指定されたグループの歌詞表示データ（探索した歌詞表示データＬｄ及び同じグループ番号の歌詞表示データ）に基づいて歌詞を表示し（Ｒ６）、さらに、グループ番号に応じて歌詞存在マークＭｋを追加表示する（Ｒ７〜Ｒ１１）。
【００４３】
ここで、歌詞表示ステップ（Ｒ６）で表示される歌詞の配置については、対応する歌詞表示データＬｄに従って、歌詞が重ならなず而も当該基本表示範囲（位置）からはみ出さないように表示するだけでなく、当該歌詞の左右にある表示領域にゆとりがあれば、対応する音符になるべく近くなるように調整する。
【００４４】
また、歌詞存在マーク追加表示処理（Ｒ７〜Ｒ１１）においては、まず、再生対象である歌詞表示データＬｄのグループ番号が“１”であるか否かを判定する（Ｒ７）、ここで、グループ番号“１”であれば（Ｒ７→ＹＥＳ）、当該基本表示範囲（位置）内で、歌詞の進行方向（例えば、右側）の表示領域にゆとりがある場合に、“……”のような歌詞存在マークＭｋを追加表示し（Ｒ８）、その後、再生停止検出ステップ（Ｒ１）に戻る。
【００４５】
一方、再生対象である歌詞表示データＬｄのグループ番号が“１”でないときは（Ｒ７→ＮＯ）、さらに、現在、表示対象になっている歌詞表示データグループのグループ番号が、基本表示範囲（位置）内の最後の歌詞表示データＬｄに対応するグループ番号であるか否かを判定する（Ｒ９）。ここで、最後のグループ番号でないときは（Ｒ９→ＮＯ）、当該基本表示範囲（位置）内で歌詞の時間進行方向（例えば、右側）の表示領域にゆとりがあれば“……”のような歌詞存在マークＭｋを追加表示し、同様に、時間を遡る方向（例えば、左側）の表示領域にゆとりがあればここにも歌詞存在マークＭｋを追加表示する（Ｒ１０）。そして、この追加表示の処理後、再生停止検出ステップ（Ｒ１）に戻る。
【００４６】
また、最後のグループ番号のときは（Ｒ９→ＹＥＳ）、当該基本表示範囲（位置）内で歌詞の時間遡行方向（例えば、左側）の領域にゆとりがあれば“……”のような歌詞存在マークＭｋを追加表示し（Ｒ１１）、その後、再生停止検出ステップ（Ｒ１）に戻る。
【００４７】
ここで、図３に例示したケース（基本表示範囲＝１小節表示区間）について具体的に説明する。このケースでは、図示の区間（基本表示範囲）が再生対象（タイミング）になると〔Ｒ２（ＹＥＳ）〕、当該基本表示範囲について、歌詞表示データＬｄ１〜Ｌｄ５が抽出され〔Ｒ３〕、グループ番号“１”〜“３”があるので〔Ｒ４（ＹＥＳ）〕、各グループＧ１〜Ｇ３に属する歌詞表示データが、順次、表示対象に指定される〔Ｒ５〕。
【００４８】
まず、１拍目のタイミングでは、グループ番号“１”の第１グループＧ１の第１歌詞表示データＬｄ１が探索され、探索された第１歌詞表示データＬｄ１及びこれと同じグループ番号“１”の第２歌詞表示データＬｄ２から成る第１グループＧ１が歌詞の表示対象に指定され〔Ｒ６〕、第１及び第２歌詞表示データＬｄ１，Ｌｄ２に基づいて、図３（２）の下から３段目のように、この基本表示範囲内で、対応する音符Ｎ１，Ｎ２になるべく近くなるように、歌詞Ｌ１，Ｌ２が表示される〔Ｒ６〕。また、表示される歌詞Ｌ１，Ｌ２のグループ番号は“１”であり〔Ｒ７（ＹＥＳ）〕、歌詞Ｌ２の右側領域に表示のゆとりがあるので、“……”で示される歌詞存在マークＭｋを追加表示する〔Ｒ８〕。
【００４９】
次に、３拍目のタイミングになると〔同一基本表示範囲を再生対象としている間は、Ｒ１（ＮＯ）〜Ｒ４（ＹＥＳ）を通過〕、グループ番号“２”をもつ第２グループＧ２の第３歌詞表示データＬｄ３が探索・指示されて、第２グループＧ２が歌詞の表示対象に切り換えられる〔Ｒ５〕。これにより、第２グループＧ２の第３及び第４歌詞表示データＬｄ３，Ｌｄ４に基づき、図３（２）の下から２段目のように、この基本表示範囲内で、対応する音符Ｎ３，Ｎ４になるべく近くなるように歌詞Ｌ３，Ｌ４を表示する〔Ｒ６〕。また、表示される歌詞Ｌ３，Ｌ４のグループ番号は“２”であり〔Ｒ７（ＮＯ）→Ｒ９（ＮＯ）〕、歌詞Ｌ３の左側領域に表示のゆとりがあるので、“……”で示される歌詞存在マークＭｋを追加表示する〔Ｒ１０〕。なお、図３のケースでは、歌詞Ｌ３を対応音符Ｎ３の位置に近づけるように配置したので、歌詞Ｌ４の右側領域には、表示のゆとりがなく、歌詞存在マークＭｋが表示されない。
【００５０】
さらに、４拍目のタイミングになると、この基本表示範囲でグループ番号の最大値“３”をもつ第３グループＧ３の第５歌詞表示データＬｄ５が表示対象に切り換えられる〔Ｒ５〕。これにより、第５歌詞表示データＬｄ５に基づいて、図３（２）の最下段のように、この基本表示範囲内で対応する音符Ｎ５になるべく近くなるように歌詞Ｌ５を表示する〔Ｒ６〕。また、表示される歌詞Ｌ５は最後のグループ番号“３”であり〔Ｒ７（ＮＯ）→Ｒ９（ＹＥＳ）〕、当該歌詞Ｌ５の左側領域には表示のゆとりがあるので、“……”で示される歌詞存在マークＭｋを追加表示する〔Ｒ１０〕。
【００５１】
さて、再生停止検出ステップ（Ｒ１）で再生ストップの指示を検出したとき（Ｒ１→ＹＥＳ）は、直ちに、この再生時楽譜表示処理を終了する。また、再生処理が進み、再生対象にすべき基本表示範囲がなくなったときも（Ｒ３→ＮＯ）、この再生時楽譜表示処理を終了する。
【００５２】
〔種々の実施態様〕
以上、この発明の好適な一実施例について説明したが、これは単なる一例であって、この発明は、その精神を逸脱しない範囲で種々の変更が可能であり、種々の態様で実施することができる。例えば、実施例では、音符情報は、１パート（１トラック）に入っているものとしたが、特許文献１のように、複数パート（複数トラック）からなるものでもよい。音符情報の楽譜（小節、拍など）への位置割付け方法は、従来ある方法を用いてよい。また、歌詞情報は、表示される音符情報と同じトラックに入っていてもよいし、別のトラックに入っていてもよい。
【００５３】
実施例では、歌詞情報と音符情報は、それぞれ別のイベントとして扱っているが、例えば、音符情報の中に、対応する歌詞情報を持つような形式でもよい。また、歌詞情報は、タイミング情報を持っていれば、音符情報と別ファイルにしてもよい。さらに、歌詞情報と音符情報が別イベントの場合、それぞれのタイミング情報で位置を対応付ける。
【００５４】
実施例では、１曲分の楽譜を一度に全部表示するものとして説明しているが、ページ切替やスクロールなどで表示を進める方式を適用することができ、この場合、楽譜表示を或る一定量毎に切り替えたり連続的に推移させる。また、初期表示は手動で、再生時は自動で、楽譜表示を進行させる方法を採ることもできる。
【００５５】
楽譜が拡大表示される等により、歌詞がきれいに表示される（重なりや所定区間外へのはみ出しがない）ようになった場合、その時点で、表示可能判定（Ｓ６）の基準を変更し、歌詞グループ化による細分化表示対象から外すようにしてもよい。また、歌詞表示データのグループ分けは、実施例では、歌詞情報の最後にスペースが含まれているかどうかに基づいて判断したが、この方法に限らず、区切り検出の条件に他の区切り情報を含めてもよい。或いは、構文解析のアルゴリズムを用いるなどしてもよい。さらに、各グループが表示する区間（「位置」）に入るかどうかをチェックして、入り切らない場合は更に細かくグループ分けするようにしてもよい。その際、複数文字を含むような１つの歌詞イベントを複数の歌詞表示データに分割する方法を採ることができる。
【００５６】
各歌詞表示データに設定するグループ情報は、例えば、歌詞表示データのシリアル番号を付けておいて、その順番でグループ情報を一時記憶するバッファを用意しておいてもよいし、図２（２）の歌詞表示データ（Ｌｄ）の中にグループ情報（初期値は０など）を持たせるようにしてもよい。また、実施例では、グループ情報を番号で表したが、例えば文字などでもよい。
【００５７】
再生時に該当するグループの歌詞を表示する際、表示対象である歌詞表示データの再生タイミングが来る少し（例えば、０．１秒や半拍）前に表示するようにしてもよい。また、グループ分けされた歌詞表示データを楽譜中の対応する音符に合うように表示する方法には種々の手法を用いることができる。例えば、グループ内の先頭の歌詞表示データに対応する音符表示位置に合わせてグループ内の各歌詞の表示位置を算出し、グループ内末尾の歌詞が表示領域内に入ればそのまま表示する。もし、はみ出す場合には、グループ内末尾の歌詞が表示領域内に入るところまで、グループ内の各歌詞の表示位置を左側にずらす。
【００５８】
【発明の効果】
以上説明したように、この発明によれば、歌詞を全て表示し切れない重なり区間については、その区間の歌詞をグループ分けし、再生に応じてグループ分けした歌詞を順次表示するようにしているので、歌詞をきれいに表示し切れない場合でも、ユーザは、特別な操作をすることなく、歌詞を容易に読むことができる。また、その際、音符の表示位置に合わせて歌詞を表示して音符の表示には影響しないようにしているので、楽譜表示はきれいな状態が維持される。さらに、表示されている歌詞が重なり区間の歌詞の一部分である場合、追加表示によって、その区間内における表示中の歌詞の位置付けを知ることができる。
【図面の簡単な説明】
【図１】図１は、この発明の一実施例による楽譜表示システムのハードウエア構成例を示すブロック図である。
【図２】図２は、この発明の一実施例による楽譜表示システムで楽譜表示に用いられる表示データの例を説明するための図である。
【図３】図３は、この発明の一実施例による楽譜表示態様を説明するための楽譜表示例である。
【図４】図４は、この発明の一実施例による楽譜初期表示処理の手順を表わすフローチャートである。
【図５】図４は、この発明の一実施例による楽譜初期表示処理におけるグループ分け処理手順を表わすフローチャートである。
【図６】図６は、この発明の一実施例による再生時楽譜表示処理の手順を表わすフローチャートの一部である。
【図７】図７は、この発明の一実施例による再生時楽譜表示処理の手順を表わすフローチャートの他部である。
【符号の説明】
Ｎｄ  音符イベント毎の音符表示データ、
Ｌｄ  歌詞イベント毎の歌詞表示データ（Ｌｄ１〜Ｌｄ５等は図示せず）、
Ｎ１〜Ｎ５  音符、
Ｌ１〜Ｌ５  歌詞、
Ｓｐ  スペース情報（空白文字）、
Ｍｋ  歌詞存在マーク。
【図１】
2005055457.tif 000003
【図２】
2005055457.tif 000004
【図３】
2005055457.tif 000005
【図４】
2005055457.tif 000006
【図５】
2005055457.tif 000007
【図６】
2005055457.tif 000008
【図７】
2005055457.tif 000009