(57)【特許請求の範囲】
【請求項１】
音符と歌詞とを相互に対応付けて表示する楽曲表示装置であって、
歌詞データに含まれる歌詞の長さに関する情報と、その歌詞データに対応する音符データに含まれるノートオン情報とに基づいて、歌詞同士が重なって表示されるか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて、前記歌詞の表示位置を決定する決定手段と、
前記決定手段により決定された表示位置に基づいて、前記歌詞を表示装置に表示する表示手段とを有し、
前記決定手段は、歌詞同士が重なって表示されると前記判定手段により判定された場合には、各音符の先頭位置に当該音符に対応する歌詞の先頭位置が揃うように、前記歌詞を複数段に振り分けて前記歌詞の表示位置を決定することを特徴とする楽曲表示装置。
【請求項２】
前記決定手段は、歌詞同士が重なって表示されると前記判定手段により判定された場合には、前記歌詞を複数段に振り分け、振り分けた歌詞の表示位置が、その歌詞と対応する音符の表示位置と合うように、前記歌詞の表示位置を決定することを特徴とする請求項１に記載の楽曲表示装置。
【請求項３】
前記歌詞データに対応する音符データに含まれるノートオン情報には、通し番号情報が付されており、
前記決定手段は、歌詞同士が重なって表示されると前記判定手段により判定された場合には、前記通し番号情報を用いて、前記歌詞を複数段の表示位置に振り分けることを特徴とする請求項２に記載の楽曲表示装置。
【請求項４】
前記表示手段は、前記決定手段により前記歌詞が複数段に振り分けられても、前記歌詞同士が重なる場合、その重なっている部分を交互に表示装置に表示することを特徴とする請求項２又は３に記載の楽曲表示装置。
【請求項５】
前記表示手段は、予め設定された領域に表示される歌詞についてのみ、前記決定手段により決定された表示位置に基づいて、前記歌詞を表示装置に表示することを特徴とする請求項１〜４の何れか１項に記載の楽曲表示装置。
【請求項６】
前記歌詞データに含まれる歌詞の長さに関する情報と、その歌詞データに対応する音符データに含まれるノートオン情報とに基づいて、前記予め設定された領域以外の領域に表示される歌詞同士が重なるか否かを判定する第２の判定手段と、
前記予め設定された領域以外の領域に歌詞を１段で前記表示装置に表示する第２の表示手段とを有し、
前記第２の表示手段は、前記予め設定された領域以外の領域に表示される歌詞同士が重なると前記第２の判定手段により判定された場合、その重なる部分については、前の歌詞より後の歌詞を優先して表示させることにより、前記予め設定された領域以外の領域に歌詞を１段で表示させることを特徴とする請求項５に記載の楽曲表示装置。
【請求項７】
音符と歌詞とを相互に対応付けて表示装置に表示させることをコンピュータに実行させるためのコンピュータプログラムであって、
歌詞データに含まれる歌詞の長さに関する情報と、その歌詞データに対応する音符データに含まれるノートオン情報とに基づいて、歌詞同士が重なって表示されるか否かを判定する判定ステップと、
前記判定ステップによる判定結果に基づいて、前記歌詞の表示位置を決定する決定ステップと、
前記決定ステップにより決定された表示位置に基づいて、前記歌詞を表示装置に表示する表示ステップとをコンピュータに実行させ、
前記決定ステップは、歌詞同士が重なって表示されると前記判定ステップにより判定された場合には、各音符の先頭位置に当該音符に対応する歌詞の先頭位置が揃うように、前記歌詞を複数段に振り分けて前記歌詞の表示位置を決定することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲表示装置及びコンピュータプログラムに関し、特に、音符に合わせて歌詞を表示するために用いて好適なものである。
【背景技術】
【０００２】
音符を楽譜の形態にしてＬＣＤ（Liquid Crystal Display）等の表示装置に表示するに際し、その音符に、対応する歌詞を合わせて表示する電子楽器がある。このように音符に合わせて歌詞を表示する場合、音符の長さに従った時間間隔で歌詞を表示すると、歌詞が重なって表示される虞がある。また、歌詞が全て表示されるように音符の間隔を調整して表示すると音符の間隔が演奏の時間間隔と異なってしまう虞がある。
そこで、特許文献１では、歌詞同士が重なる区間（小節）を検出し、この区間に対応する歌詞を複数のグループに分割し、分割したグループ毎に歌詞の表示を順次行うようにしている。
【０００３】
【特許文献１】特開２００５−５５４５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前述した従来の技術では、小節内の全ての歌詞を一度に表示することができない。従って、例えば、歌詞の全体をユーザに把握させることが出来なくなり、却って表示が見づらくなる虞があるという問題点があった。
本発明はこのような問題点に鑑みてなされたものであり、音符とその音符に対応する歌詞とを可及的に分かりやすく表示できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の楽曲表示装置は、音符と歌詞とを相互に対応付けて表示する楽曲表示装置であって、歌詞データに含まれる歌詞の長さに関する情報と、その歌詞データに対応する音符データに含まれるノートオン情報とに基づいて、歌詞同士が重なって表示されるか否かを判定する判定手段と、前記判定手段による判定結果に基づいて、前記歌詞の表示位置を決定する決定手段と、前記決定手段により決定された表示位置に基づいて、前記歌詞を表示装置に表示する表示手段とを有し、前記決定手段は、歌詞同士が重なって表示されると前記判定手段により判定された場合には、各音符の先頭位置に当該音符に対応する歌詞の先頭位置が揃うように、前記歌詞を複数段に振り分けて前記歌詞の表示位置を決定することを特徴とする。
【０００６】
本発明のコンピュータプログラムは、音符と歌詞とを相互に対応付けて表示装置に表示させることをコンピュータに実行させるためのコンピュータプログラムであって、歌詞データに含まれる歌詞の長さに関する情報と、その歌詞データに対応する音符データに含まれるノートオン情報とに基づいて、歌詞同士が重なって表示されるか否かを判定する判定ステップと、前記判定ステップによる判定結果に基づいて、前記歌詞の表示位置を決定する決定ステップと、前記決定ステップにより決定された表示位置に基づいて、前記歌詞を表示装置に表示する表示ステップとをコンピュータに実行させ、前記決定ステップは、歌詞同士が重なって表示されると前記判定ステップにより判定された場合には、各音符の先頭位置に当該音符に対応する歌詞の先頭位置が揃うように、前記歌詞を複数段に振り分けて前記歌詞の表示位置を決定することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、音符とその音符に対応する歌詞とを従来よりも分かりやすく表示することが可能になる。
【発明を実施するための最良の形態】
【０００８】
以下に、図面を参照しながら、本発明の一実施形態について説明する。
図１は、本実施形態の楽曲表示装置を備えた電子楽器の概略構成の一例を示したブロック図である。なお、以下では、電子楽器が電子ピアノである場合を例に挙げて説明する。
図１において、電子楽器は、中央処理装置（以下、ＣＰＵと称する）１と、フラッシュメモリ２と、ランダムアクセスメモリ（以下、ＲＡＭと称する）３と、外部記憶媒体装着部４と、外部入出力用インターフェース部５と、信号バス６と、キースキャン回路７と、鍵盤８と、パネルスキャン回路９と、操作パネル１０と、楽音発生部１１と、波形フラッシュメモリ１２と、デジタル／アナログ変換部（以下、Ｄ／Ａ変換部と称する）１３と、アナログ信号処理部１４と、パワーアンプ１５と、スピーカ部１６とを有している。
【０００９】
図１に示すように、ＣＰＵ１、フラッシュメモリ２、ＲＡＭ３、キースキャン回路７、パネルスキャン回路９、楽音発生部１１、外部記憶媒体装着部４、及び外部入出力用インターフェース部５は、それぞれ信号バス６に接続され、相互に通信することが可能である。
【００１０】
（鍵盤）
鍵盤８は、複数の鍵と、それら複数の鍵の各々に対応して設けられた複数の鍵スイッチとを有している。電子楽器のユーザは、前記複数の鍵を押鍵及び離鍵して所望の演奏を行う。
（キースキャン回路）
キースキャン回路７は、鍵盤８の各鍵スイッチのスキャン処理を行うためのものである。
【００１１】
（操作パネル）
操作パネル１０は、各種操作子や表示装置を有している。本実施形態の電子楽器では、表示装置として、例えばＬＣＤ（Liquid Crystal Display；液晶ディスプレイ）が設けられている。
【００１２】
前記操作子としては、電子楽器に電源を供給するための電源スイッチや、電子楽器の設定状態を初期値にリセットするためのリセットスイッチや、テンポや音量を設定するためのダイアルや、音色を選択するための音色選択スイッチが設けられている。
【００１３】
また、前記操作子として、レジストレーションの記憶を行うためのRegist設定スイッチや、設定したレジストレーションを呼び出すためのRegistボタンが設けられている。なお、レジストレーションとは、ユーザが鍵盤８を押鍵及び離鍵して行う演奏時の設定を言う。ここで、演奏時の設定は、操作パネル１０や鍵盤８の操作内容に基づいて行われるものであり、例えば、音色、伴奏、テンポ、及び演奏効果（音色に変化を与えること）等が設定項目となる。
【００１４】
さらに、前記操作子として、外部記憶媒体装着部４に装着された外部記憶媒体にデータを書き込む指示を行うためのディスク書込ボタン（スイッチ）と、外部記憶媒体装着部４に装着された外部記憶媒体からデータを読み込む指示を行うためのディスク読込ボタン（スイッチ）とを含むディスク操作スイッチが設けられている。
【００１５】
また、前記操作子として、自動演奏データ（又は自動伴奏データ）を呼び出すための自動演奏呼び出しスイッチや、自動演奏呼び出しスイッチにより呼び出された自動演奏データ（又は自動伴奏データ）に基づく自動演奏（又は自動伴奏）を開始するための自動演奏開始スイッチも設けられている。ここで、自動演奏とは、楽曲の全てのパートの演奏を電子楽器が自動で行うことを言う。また、自動伴奏とは、鍵盤８の押鍵及び離鍵に応じたメロディパート（演奏音）を発音させて行うマニュアル演奏に対する伴奏を電子楽器が自動で行うことを言う。
なお、前記操作子は、前述したものに限定されるものではない。また、前述した機能を実現するための操作子であれば、操作子の形態は前述したものに限定されない。
【００１６】
（パネルスキャン回路）
パネルスキャン回路９は、操作パネル１０に設けられている各種操作子のスキャン処理を行うためのものである。
【００１７】
（ＣＰＵ）
ＣＰＵ１は、本実施形態の電子楽器の全体を統括制御するためのものであり、フラッシュメモリ２に格納されている制御プログラムに従って、ＲＡＭ３をワークメモリとして利用しながら、例えば次のような処理を行う。
【００１８】
ＣＰＵ１は、パネルスキャン回路９によりスキャン処理された結果を入力し、操作パネル１０の操作内容を識別する。
また、ＣＰＵ１は、キースキャン回路７によりスキャン処理された結果を入力して、鍵の操作内容（押鍵及び離鍵）を識別する。
そして、その鍵の操作内容（鍵の押鍵及び離鍵）に基づく演奏データや、操作パネル１０の操作内容に基づくデータを楽音発生部１１に割り当てる処理を行う。
【００１９】
この演奏データは、前記各鍵の操作が押鍵（キーオン）であるか離鍵（キーオフ）であるかを示すキーオン／オフ信号や、音高データである音高や、音量制御データであるベロシティデータや、演奏のテンポの絶対値を示すテンポ情報（以下、必要に応じて単にテンポ情報と称する）や、各鍵の動作スピードに関するキータッチレスポンス信号などから構成される。
【００２０】
また、ＣＰＵ１は、前記レジストレーション設定スイッチを用いて設定されたレジストレーションの内容をフラッシュメモリ２に記憶する。その後、前記レジストレーション実行スイッチが操作されると、操作されたレジストレーション実行スイッチに応じたレジストレーションの内容をフラッシュメモリ２から読み出し、読み出したレジストレーションの内容に従った演奏が行われるように電子楽器の設定を変更する。
【００２１】
さらに、ＣＰＵ１は、前記自動演奏呼び出しスイッチの操作内容に基づいて選択された楽曲に関わる自動演奏データを、フラッシュメモリ２から読み出す。その後、前記自動演奏開始スイッチが操作されると、読み出した自動演奏データを楽音発生部１１に割り当てる。これにより、自動演奏データに基づく自動演奏の楽音が発音されるようになる。このように、本実施形態の電子楽器では、ＣＰＵ１が、自動演奏データの再生を行うシーケンサの役割の一部を果たすようにしている。
【００２２】
本実施形態では、このような自動演奏データの再生を行うに際し、操作パネル１０に設けられているＬＣＤに、音符に合わせて歌詞を表示するようにしている。なお、音符については、楽譜の形態で表示するようにしている。
図２は、本実施形態における歌詞の表示位置の決定方法の一例を説明する図である。
図２（ａ）では、自動演奏データに関わる音符を２行ずつ順次表示する場合を例に挙げて示している。具体的に説明すると、例えば、１行目に表示されている音符に基づく演奏が終わると、２行目に表示されている音符が１行目に表示されると共に、２行目に表示されている音符より後に演奏される音符が２行目に表示される。このように、本実施形態では、演奏中の音符が１行目に表示されるようにしている（以下では、演奏中の音符を表示する行（１行目）を演奏タイミングの行と称する）。
【００２３】
この演奏タイミングの行に表示される音符２１ａ〜２１ｅに対応する歌詞２２ａ〜２２ｅの表示位置を決定するに際しては、まず、歌詞２２ａ〜２２ｅを１段で表示した場合に歌詞２２ａ〜２２ｅの少なくとも何れか２つが相互に重なるか否かを判定する。この判定は、音符２１ａ〜２１ｅのキーオン情報に基づいて、第１の音符（例えば音符２１ａ）がオンされてから次の第２の音符（例えば音符２１ｂ）がオンされるまでの時間を求め、求めた時間に対応する長さを算出する。そして、算出した長さが、第１の音符に対応する第１の歌詞（例えば歌詞２２ａ）の長さ以上である場合には、第１の歌詞及び第２の歌詞（例えば歌詞２２ａ、２２ｂ）は相互に重ならないと判定し、そうでない場合には第１の歌詞及び第２の歌詞（例えば歌詞２２ａ、２２ｂ）は相互に重なると判定する。
なお、前記において、音符２１ａ〜２１ｅのキーオン情報は、音符データに含まれており、歌詞の長さに関する情報は、歌詞データに含まれている。
【００２４】
以上のようにして行う判定の結果、歌詞２２ａ〜２２ｅの少なくとも何れか２つが相互に重なる場合には、歌詞２２ａ〜２２ｅを複数段に振り分けて表示する。このとき、歌詞２２ａ〜２２ｅの先頭と、歌詞２２ａ〜２２ｅに対応する音符２１ａ〜２１ｅの表示位置とを合わせて表示するようにしている（図２（ａ）の上段部の破線を参照）。
ここで、本実施形態では、歌詞２２に対して楽曲の最初から順番に０（ゼロ）を初期値とする通し番号を付している。また、音符２１に対しても楽曲の最初から順番に０（ゼロ）を初期値とする通し番号を付している。よって、これら歌詞２２及び音符２１に付されている通し番号を参照し、通し番号が一致する歌詞２２及び音符２１について、歌詞２２ａ〜２２ｅの先頭と、音符２１ａ〜２１ｅの表示位置とを合わせるようにしている。
【００２５】
また、歌詞２２ａ〜２２ｅを複数段に振り分ける際には、例えば、歌詞２２に対して順番に付されている通し番号を用いる。すなわち、歌詞２２ａ〜２２ｅをＮ（Ｎは２以上の自然数）段に振り分ける場合、歌詞２２ａ〜２２ｅに付されている通し番号をＮで割った際の余りを求める（すなわち、剰余計算を行う）。そして、相対的に小さい余りが求められたときの通し番号が付されている歌詞ほど上段に振り分け、相対的に大きい余りが求められたときの通し番号が付されている歌詞ほど下段に振り分ける。
【００２６】
前述したように、図２（ａ）では、歌詞２２ａ〜２２ｅを２段に振り分けて表示する場合を例に挙げて示している。この例を用いて歌詞を複数段に振り分ける方法を具体的に説明する。まず、通し番号として「０」、「２」、「４」が付されている歌詞２２ａ、２１ｃ、２１ｅについては、通し番号を、段数である「２」で割った余りは「０」である。一方、通し番号として、「１」、「３」が付されている歌詞２２ｂ、２２ｄについては、通し番号を、段数である「２」で割った余りは「１」である。よって、音符演奏タイミングの行における奇数番目の音符２２ａ、２１ｃ、２１ｅに対応する歌詞２２ａ、２２ｃ、２２ｅを上段に表示し、偶数段目の音符２２ｂ、２２ｄに対応する歌詞２２ｂ、２２ｄを下段に表示する。
一方、歌詞２２ａ〜２２ｅが相互に重ならないと判定した場合には、歌詞を複数段に振り分けずに１行で表示する。
【００２７】
演奏タイミングの行でない２行目に表示される音符２１ｆ〜２１ｉに対応する歌詞２２ｆ〜２２ｉについても、歌詞２２ｆ〜２２ｉを１段で表示した場合に歌詞２２ｆ〜２２ｉが相互に重なるか否かを判定する。この判定方法は、前述したのと同じである。そして、歌詞２２ｆ〜２２ｉが相互に重なると判定した場合、この相互に重なる部分については後の歌詞の文字を前の歌詞の文字に優先して表示するようにしている。
このとき、歌詞２２ｆ〜２２ｉの先頭と、歌詞２１ｆ〜２１ｉに対応する音符２１ｆ〜２１ｉの表示位置とを合わせて表示する（図２（ａ）の下段部の破線を参照）。なお、歌詞２２ｆ〜２２ｉの先頭と音符２１の表示位置とを合わせる方法は、前述したのと同じである。
【００２８】
具体的に図２に示す例では、歌詞２２ｆと歌詞２２ｇ、及び歌詞２２ｇと歌詞２２ｈが相互に重なっている（図２（ｂ）を参照）。そこで、歌詞２２ｆを構成する文字のうち、歌詞２２ｇと相互に重なる文字（斜線部）を表示しないようにする。同様に、歌詞２２ｇを構成する文字のうち、歌詞２２ｈ相互に重なる文字（斜線部）を表示しないようにする。
【００２９】
以上のように、本実施形態では、演奏タイミングの行でない２行目に表示される音符２１ｆ〜２１ｉに対応する歌詞２２ｆ〜２２ｉについては、歌詞２２ｆ〜２２ｉを複数段に振り分けずに１行で表示するようにする。このようにすれば、表示スペースを確保することができる。
なお、ＣＰＵ１は、前述したものの他に種々の処理を行うということは言うまでもない。
【００３０】
（フラッシュメモリ）
フラッシュメモリ２は、読み出し可能なメモリであり、ＣＰＵ１の制御プログラムの他、レジストレーションデータや、自動演奏データ等、種々のデータを格納する。
【００３１】
（ＲＡＭ）
ＲＡＭ３は読み書きが可能なメモリであり、ＣＰＵ１のプログラム実行過程において各種の必要なデータを一時的に記憶したり、編集可能なパラメータデータを記憶したりする記憶領域を有している。このＲＡＭ３の一部あるいは全部はバッテリーバックアップされており、必要なデータを、電子楽器の電源がオフにされても保持しておくことができるようにしている。
【００３２】
（波形メモリ）
波形メモリ１２は、音色や音域に応じた種々の楽音波形データを記憶している。
（楽音発生部）
楽音発生部１１は、前述したようにしてＣＰＵ１により割り当てられた演奏データや自動演奏データと、操作パネル１０の操作内容に基づくデータとに基づいて、波形メモリ１２から必要な楽音波形データを読み出し、所望のデジタル楽音信号を発生させる。
【００３３】
（Ｄ／Ａ変換部）
Ｄ／Ａ変換部１３は、楽音発生部１１で発生されたデジタル楽音信号をアナログ楽音信号に変換する機能を有する。
（アナログ信号処理部）
アナログ信号処理部１４は、Ｄ／Ａ変換部１３でＤ／Ａ変換されたアナログ楽音信号に対し、フィルタ処理（ノイズ除去処理）や音質調整、信号レベル（ゲイン）調整等を施す機能を有する。
【００３４】
（パワーアンプ）
パワーアンプ１５は、アナログ信号処理部１４でノイズ除去処理が施されたアナログ楽音信号に対し、増幅処理を施して適当なレベルに増幅する。
（スピーカ部）
スピーカ部１６は、パワーアンプ１５で増幅されたアナログ楽音信号を可聴信号として放音するためのものであり、１個あるいは複数個で構成されている。
【００３５】
（外部記憶装置装着部）
外部記憶媒体装着部４は、例えば、ＣＤ−ＲＷドライブである。そして、ＣＰＵ１は、ＣＤ−ＲＷドライブに装着されたＣＤ−ＲＯＭに記憶されている制御プログラムや各種データを読み出して必要な処理を行う。なお、外部記憶媒体装着部４は、ＣＤ−ＲＷドライブに限定されず、フレキシブルディスク（ＦＤ）装置や、光磁気ディスク（ＭＯ）装置などであってもよいということは言うまでもない。
【００３６】
（外部入出力用インターフェース部）
外部入出力用インターフェース部５は、外部装置との間で、演奏情報などのデータのやり取りを行うためのものである。具体的に、この外部入出力用インターフェース部５は、例えばＭＩＤＩ（Musical Instrument Digital Interface）である。
【００３７】
以上のように、本実施形態では、ＣＰＵ１がフラッシュメモリ２に記憶されているプログラムを実行する等して、フラッシュメモリ２に記憶されている自動演奏データを再生する際に、操作パネル１０に設けられているＬＣＤに、音符２１及び歌詞２２を表示することによって、楽曲表示装置が実現される。
【００３８】
次に、図３〜図１０のフローチャートを参照しながら、電子楽器に配設されたＣＰＵ１により実行される処理の一例を説明する。
図３は、ＣＰＵ１により実行されるメインルーチンの処理の一例を説明するフローチャートである。
まず、ステップＳ１において、初期化処理を実行する。
次に、ステップＳ２において、イベントが発生したか否かを判定する。この判定の結果、イベントが発生した場合には、ステップＳ３に進み、イベント処理を実行する。このイベント処理の詳細については、図５を参照しながら後述する。一方、イベントが発生していない場合には、このステップＳ３を省略してステップＳ４に進む。
そして、ステップＳ４において、その他の処理を実行する。ここで、その他の処理とは、電子楽器で一般的に行われている処理である。
【００３９】
次に、図４のフローチャートを参照しながら、図３のステップＳ３のイベント処理の詳細の一例を説明する。
まず、ステップＳ１１において、発生したイベントが、自動演奏を行う楽曲を選択する楽曲選択イベントか否かを判定する。例えば、操作パネル１０に設けられている自動演奏呼び出しスイッチがオンされると、発生したイベントが楽曲選択イベントであると判定する。
【００４０】
この判定の結果、発生したイベントが楽曲選択イベントである場合には、ステップＳ１２に進み、楽曲選択イベント処理を行う。この楽曲選択イベント処理については、図５、図６を参照しながら後述する。一方、発生したイベントが楽曲選択イベントでない場合には、ステップＳ１３に進む。ステップＳ１３では、発生したイベントが演奏イベントであるか否かを判定する。ここで、演奏イベントとは、演奏を実行するためのイベントを言い、例えば、鍵盤８やダンパペダル等の演奏操作子の操作に係るイベントや、自動演奏の実行に係るイベントである。
【００４１】
この判定の結果、発生したイベントが演奏イベントである場合には、ステップＳ１４に進み、演奏イベント処理を行う。この演奏イベント処理については、図７〜図９を参照しながら後述する。
一方、発生したイベントが演奏イベントでない場合には、ステップＳ１５に進み、発生したイベントが、その他処理が必要なイベントか否かを判定する。この判定の結果、発生したイベントが、その他処理が必要なイベントである場合には、ステップＳ１６に進み、発生したイベントに応じた処理を行う。一方、発生したイベントが、その他処理が必要なイベントでない場合には、図３に示したフローチャートに戻る。
【００４２】
次に、図５のフローチャートを参照しながら、図４のステップＳ１２の楽曲選択イベント処理の一例を詳細に説明する。
まず、ステップＳ２１において、フラッシュメモリ２に記憶されている自動演奏データに基づいて、選択可能な楽曲を判別し、判別した楽曲の一覧を操作パネル１０に設けられている表示装置（ＬＣＤ）に表示する。
次に、ステップＳ２２において、自動演奏呼び出しスイッチの操作内容に基づいて、ステップＳ２１で表示した楽曲の一覧の中から、楽曲が選択されるまで待機する。
次に、ステップＳ２３において、ステップＳ２２で選択された楽曲に関わる自動演奏データをフラッシュメモリ２から読み出す楽曲データ読み出し処理を行い、図４に示したフローチャートに戻る。
【００４３】
次に、図６のフローチャートを参照しながら、図５のステップＳ２３の楽曲データ読み出し処理の一例を詳細に説明する。
まず、ステップＳ３１において、図５のステップＳ２２で選択されたと判定された楽曲に関わる自動演奏データを読み出してＲＡＭ３に展開する。そして、自動演奏データに基づく音符２１及び歌詞２２を、操作パネル１０に設けられているＬＣＤに表示するためのレイアウト処理を行う。このレイアウト処理により、自動演奏データに基づく音符２１は、複数行（ここではＭmax行（Ｍmaxは２以上の自然数）とする）の楽譜に分けられる。
次に、ステップＳ３２において、変数Ｍを１にする。
次に、ステップＳ３３において、変数Ｎを１にする。
【００４４】
次に、ステップＳ３４において、ステップＳ３１で読み出した自動演奏データに基づく歌詞２２のうち、Ｍ行目の楽譜に属する音符（例えば音符２１ａ〜２１ｅ）に対応する歌詞（例えば歌詞２２ａ〜２２ｅ）を、Ｎ段で表示することが可能か否かを判定する。すなわち、Ｍ行目の楽譜に属する音符に対応する歌詞を、Ｎ段で表示した場合に、それら歌詞のうちの少なくとも２つが相互に重なるか否かを判定する。
【００４５】
この判定は、前述したように、例えば、Ｍ行目の楽譜に属する音符のキーオン情報に基づいて、Ｍ行目の楽譜に属する第１の音符（例えば音符２１ａ）がオンされてから次の第２の音符（例えば音符２１ｂ）がオンされるまでの時間を求め、求めた時間に対応する長さを算出する。そして、算出した長さが、第１の音符（例えば音符２１ａ）に対応する第１の歌詞（例えば歌詞２２ａ）の長さ以上である場合には、第１の歌詞及び第２の歌詞（例えば歌詞２２ａ、２２ｂ）は相互に重ならないと判定し、そうでない場合には第１の歌詞及び第２の歌詞（例えば歌詞２２ａ、２２ｂ）は相互に重なると判定する。
【００４６】
この判定の結果、ステップＳ３１で読み出した自動演奏データに基づく歌詞２２のうち、Ｍ行目の楽譜に属する音符（例えば音符２１ａ〜２１ｅ）に対応する歌詞（例えば歌詞２２ａ〜２２ｅ）を、Ｎ段で表示することが可能でない場合には、後述するステップＳ３７に進み、そうでない場合には、ステップＳ３５に進む。
【００４７】
ステップＳ３５では、Ｍ行目の楽譜に属する音符（例えば音符２１ａ〜２１ｅ）に対応する歌詞（例えば歌詞２２ａ〜２２ｅ）を前述したようにしてＮ段に振り分ける。そして、振り分けた歌詞２２の先頭の文字が、その歌詞２２に対応する音符２１の表示領域に合うように、歌詞２２の表示位置を決定する。なお、変数Ｎとして「１」が指定されている場合には、歌詞２２を複数段に振り分ける必要はないということは言うまでもない。
【００４８】
次に、ステップＳ３６において、変数ＭがＭmaxであるか否かを判定する。この判定の結果、変数ＭがＭmaxでない場合には、後述するステップＳ４０に進む。一方、変数ＭがＭmaxである場合には、ステップＳ３１で読み出した自動演奏データに基づく全ての歌詞２２の表示位置が決定したので、ステップＳ５のフローチャートに戻る。
【００４９】
ステップＳ３４において、ステップＳ３１で読み出した自動演奏データに基づく歌詞２２のうち、Ｍ行目の楽譜に属する音符（例えば音符２１ａ〜２１ｅ）に対応する歌詞（例えば歌詞２２ａ〜２２ｅ）を、Ｎ段で表示することが可能でないと判定された場合には、ステップＳ３７に進む。ステップＳ３７では、変数ＮがＮmaxであるか否かを判定する。このＮmaxは、歌詞２２の表示段数の最大値（上限値）を示すものであり、予め設定される値である。この判定の結果、変数ＮがＮmaxでない場合には、ステップＳ３８に進み、変数Ｎに１を加算してステップＳ３４に戻る。
【００５０】
一方、変数ＮがＮmaxである場合には、歌詞２２の表示段数をこれ以上増やすことはできないと判定してステップＳ３９に進む。ステップＳ３９では、ステップＳ３５と同様に、Ｍ行目の楽譜に属する音符（例えば音符２１ａ〜２１ｅ）に対応する歌詞（例えば歌詞２２ａ〜２２ｅ）をＮ段に振り分ける。そして、振り分けた歌詞２２の先頭の文字が、その歌詞２２に対応する音符２１の表示位置に合うように、歌詞２２の表示位置を決定する。ただし、ここでは、互いに重なる歌詞が存在する。そこで、本実施形態では、この互いに重なる歌詞については、一定間隔で交互に表示されるようにしている。よって、この互いに重なる歌詞の少なくとも一部の表示位置は同じ位置に設定される。
【００５１】
ステップＳ３６において、変数ＭがＭmaxでないと判定された場合には、ステップＳ４０に進み、変数Ｍに１を加算する。そして、ステップＳ３１で読み出した自動演奏データに基づく全ての歌詞２２の表示位置が決定するまでステップＳ３３〜Ｓ４０を繰り返し行う。
【００５２】
次に、図７のフローチャートを参照しながら、図４のステップＳ１４の演奏イベント処理の一例を詳細に説明する。
まず、ステップＳ５１において、発生したイベントが、鍵盤８やダンパペダル等の演奏操作子の操作であるか否かを判定する。この判定の結果、発生したイベントが演奏操作子の操作である場合には、ステップＳ５２に進み、演奏操作子の操作内容に応じて、発音及び消音の何れかの処理を行う。
【００５３】
一方、発生したイベントが演奏操作子の操作でない場合には、ステップＳ５３に進み、発生したイベントが、操作パネル１０に設けられている自動演奏開始スイッチのオン操作であるか否かを判定する。この判定の結果、発生したイベントが自動演奏開始スイッチのオン操作である場合には、ステップＳ５４に進み、自動演奏処理を行う。この自動演奏処理については、図８のフローチャートを参照しながら後述する。
【００５４】
一方、発生したイベントが自動演奏開始スイッチのオン操作でない場合には、ステップＳ５５に進み、発生したイベントが、その他処理が必要なイベントか否かを判定する。この判定の結果、発生したイベントが、その他処理が必要なイベントである場合には、ステップＳ５６に進み、発生したイベントに応じた処理を行う。一方、発生したイベントが、その他処理が必要なイベントでない場合には、図４に示したフローチャートに戻る。
【００５５】
次に、図８のフローチャートを参照しながら、図７のステップＳ５４の自動演奏処理の一例を詳細に説明する。
まず、ステップＳ６１において、図４のステップＳ１２の楽曲選択イベント処理で楽曲が選択されているか否かを判定する。この判定の結果、楽曲が選択されていない場合には、自動演奏を行う対象が選択されていないので、図７のフローチャートに戻る。
一方、楽曲が選択されている場合には、ステップＳ６２に進む。ステップＳ６２では、歌詞／音符表示処理を行う。この歌詞／音符表示処理の詳細については、図９のフローチャートを参照しながら後述する。
【００５６】
次に、ステップＳ６３において、図６のステップＳ３１で読み出された自動演奏データ（音符データ）に合わせて、自動演奏を行う。
次に、ステップＳ６４において、自動演奏の進行に合わせて、操作パネル１０に設けられた表示装置（ＬＣＤ）への表示対象となる音符２１と歌詞２２とを変更して、図７のフローチャートに戻る。
【００５７】
次に、図９のフローチャートを参照しながら、図８のステップＳ６２の歌詞／音符表示処理の一例を詳細に説明する。
まず、ステップＳ７１において、演奏タイミングの行の音符（例えば音符２１ａ〜２２ｅ）を楽譜の形態で、操作パネル１０に設けられたＬＣＤに表示すると共に、その音符に対応する歌詞（例えば歌詞２２ａ〜２２ｅ）を、図６の楽曲データ読み出し処理で決定された表示位置に従って、操作パネル１０に設けられたＬＣＤに表示する。
【００５８】
次に、ステップＳ７２において、演奏タイミングの行以外の行の表示処理を行い、図８のフローチャートに戻る。
ここで図１０のフローチャートを参照しながら、この演奏タイミングの行以外の行の表示処理の一例を詳細に説明する。
まず、ステップＳ８１において、演奏タイミングの行以外の行について、１段で表示しても歌詞同士が重ならないかどうかを判定する。この判定は、演奏タイミングの行以外の行の音符（例えば音符２１ｆ〜２１ｉ）のキーオン情報に基づいて、第１の音符（例えば音符２１ｆ）がオンされてから次の第２の音符（例えば音符２１ｇ）がオンされるまでの時間を求め、求めた時間に対応する長さを算出する。そして、算出した長さが、第１の音符（例えば音符２１ｆ）に対応する第１の歌詞（例えば歌詞２２ｆ）の長さ以上である場合には、第１の歌詞及び第２の歌詞（例えば歌詞２２ｆ、２２ｇ）は相互に重ならないと判定し、そうでない場合には第１の歌詞及び第２の歌詞（例えば歌詞２２ｆ、２２ｇ）は相互に重なると判定する。
【００５９】
この判定の結果、１段で表示しても歌詞同士が重ならない場合には、ステップＳ８２に進む。ステップＳ８２では、該当する行の音符を楽譜の形態で、操作パネル１０に設けられたＬＣＤに表示すると共に、その音符に対応する歌詞を、対応する音符の位置に合わせて、操作パネル１０に設けられたＬＣＤに１段で表示する。
一方、１段で表示すると歌詞同士が重なる場合には、ステップＳ８３に進む。ステップＳ８３では、ステップＳ８２と同様に、該当する行の音符を楽譜の形態で、操作パネル１０に設けられたＬＣＤに表示すると共に、その音符に対応する歌詞を、対応する音符の位置に合わせて、操作パネル１０に設けられたＬＣＤに１段で表示する。ただし、歌詞同士の重なる部分については、前述したように後の歌詞の文字を歌詞の文字に優先して表示する（図２の歌詞２２ｆ〜２２ｈを参照）。
【００６０】
次に、ステップＳ８４において、演奏タイミングの行以外の表示すべき全ての行についての表示処理が完了したか否かを判定する。この判定の結果、演奏タイミングの行以外の表示すべき全ての行についての表示処理が完了した場合には、図９のフローチャートに戻る。一方、演奏タイミングの行以外の表示すべき全ての行についての表示処理が完了していない場合には、ステップＳ８５に進み、表示処理が完了していない行を指定し、演奏タイミングの行以外の表示すべき全ての行についての表示処理が完了するまでステップＳ８１〜Ｓ８５を繰り返し行う。
【００６１】
以上のように本実施形態では、演奏タイミングの行に表示される音符２１ａ〜２１ｅに対応する歌詞２２ａ〜２２ｅについては、歌詞２２ａ〜２２ｅを１段で表示した場合に歌詞２２ａ〜２２ｅが相互に重なるか否かを判定する。そして、この判定の結果、歌詞が相互に重ならないと判定した場合には、歌詞を音符の位置に合わせて１段で表示して、最も見やすい表示を行うようにする。一方、歌詞２２ａ〜２２ｅが相互に重なると判定した場合には、歌詞２２ａ〜２２ｅを複数段に順番に振り分けると共に、振り分けた歌詞２２ａ〜２２ｅの先頭と、歌詞２２ａ〜２２ｅに対応する音符２１ａ〜２１ｅの表示位置とを合わせて表示する。よって、演奏タイミングの行に表示される音符２１ａ〜２１ｅに対応する歌詞２２ａ〜２２ｅについては、歌詞同士が重なることなくなり、全ての歌詞２２ａ〜２２ｅを可及的に分かりやすく表示することができる。
【００６２】
また、本実施形態では、演奏タイミングの行に表示される音符２１ａ〜２１ｅに対応する歌詞２２ａ〜２２ｅを複数段に順番に振り分けるに際し、歌詞２２の表示段数の最大値（上限値）Ｎmaxを設定し、歌詞２２をＮmax段に振り分けても、歌詞同士が重なる場合、この互いに重なり合う歌詞２２については、一定間隔で交互に表示するようにした。よって、演奏タイミングの行に表示される音符２１ａ〜２１ｅに対応する歌詞２２ａ〜２２ｅの表示スペースの増大を可及的に防止することと、全ての歌詞２２ａ〜２２ｅを可及的に分かりやすく表示することとを両立させることができる。
【００６３】
さらに、本実施形態では、演奏タイミングの行以外の行については、歌詞２２ｆ〜２２ｉを１行に表示するようにしたので、演奏タイミングの行以外の行についての歌詞２２ｆ〜２２ｉの表示スペースの増大を防止することができる。そして、歌詞同士の重なる部分については、後の歌詞の文字を歌詞の文字に優先して表示するようにしたので、歌詞の始めの文字を可及的に表示することができる。
【００６４】
なお、本実施形態では、演奏タイミングの行における歌詞２２ａ〜２２ｅを複数段に順番に振り分けるようにしたが、歌詞を複数段に振り分ける行は演奏タイミングの行に限定されない。例えば、演奏タイミングの行ではなく、演奏タイミングの行の次の行における歌詞（例えば歌詞２２ｆ〜２２ｉ）を複数段に振り分けるようにしてもよい。このようにすれば、演奏タイミングになる前に、歌詞情報を容易に且つ正確にユーザに把握させることができる。また、表示スペースは増大するが、より多くの歌詞情報を分かりやすく表示するために、複数行における歌詞を複数段に振り分けるようにしてもよい。例えば、演奏タイミングの行における歌詞２２ａ〜２２ｅだけでなく、演奏タイミングの行の次の行における歌詞２２ｆ〜２２ｉも複数段に振り分けるようにしてもよい。
【００６５】
また、本実施形態では、演奏タイミングの行における歌詞２２ａ〜２２ｅを複数段に順番に振り分けるようにし、歌詞を複数段に振り分ける行が固定されている場合を例に挙げて説明したが、歌詞を複数段に振り分ける行をユーザによる操作に従って変更できるようにしてもよい。この操作は、例えば操作パネル１０を用いて行うようにすればよい。
【００６６】
さらに、本実施形態では、歌詞をＮmax段に振り分けても、歌詞同士が重なる場合、この互いに重なる歌詞については、一定間隔で交互に表示するようにしたが、必ずしもこのようにする必要はない。例えば、演奏タイミングに従って、互いに重なる歌詞の表示を切り替えるようにしてもよい。具体例を説明すると、互いに重なる前後２つの歌詞のうち、前の歌詞の演奏が終了するまでは、前の歌詞を表示し、前の歌詞の演奏が終了したら後の歌詞を表示するようにしてもよい。この他、互いに重なり合う歌詞（単語）の表示を変えるのではなく、互いに重なり合う部分（文字）の表示のみを変えるようにしてもよい。
【００６７】
また、本実施形態では、初期値を０（ゼロ）とする通し番号を歌詞２２ａ〜２２ｅに対して付し、歌詞２２ａ〜２２ｅに付されている通し番号をＮで割った際の余りを用いて歌詞２２ａ〜２２ｅを複数段に振り分けるようにしたが、必ずしもこのようにする必要はない。例えば、初期値を１とする通し番号を、音符２１及び歌詞２２に対して付してもよい。このようにした場合には、歌詞２２ａ〜２２ｅに付されている通し番号から１を引いた値をＮで割った際の余りを求めるようにする。そして、相対的に小さい余りが求められたときの通し番号が付されている歌詞ほど上段に振り分け、相対的に大きい余りが求められたときの通し番号が付されている歌詞ほど下段に振り分けるようにする。
【００６８】
また、本実施形態では、歌詞２２及び音符２１に付されている通し番号を参照して、音符２１ａ〜２１ｅと、歌詞２２ａ〜２２ｅの表示位置を合わせるようにしたが、必ずしもこのようにする必要はない。例えば、音符データ及び歌詞データに含まれるタイミングデータを用いて、音符２１ａ〜２１ｅと、歌詞２２ａ〜２２ｅの対応関係をチェックして、音符２１ａ〜２１ｅと、歌詞２２ａ〜２２ｅの表示位置を合わせるようにしてもよい。
【００６９】
また、本実施形態では、自動演奏データについて、歌詞と音符とを合わせて表示する場合を例に挙げて説明したが、音符データと、歌詞データとを含むファイルのデータであれば、表示対象となるデータは自動演奏データに限定されるものではないということは言うまでもない。
【００７０】
（本発明の他の実施形態）
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００７１】
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、およびそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００７２】
また、コンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００７３】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００７４】
なお、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００７５】
【図１】本発明の実施形態を示し、電子楽器の概略構成の一例を示したブロック図である。
【図２】本発明の実施形態を示し、歌詞の表示位置の決定方法の一例を説明する図である。
【図３】本発明の実施形態を示し、メインルーチンの処理の一例を説明するフローチャートである。
【図４】本発明の実施形態を示し、図３のステップＳ３のイベント処理の詳細の一例を説明するフローチャートである。
【図５】本発明の実施形態を示し、図４のステップＳ１２の楽曲選択イベント処理の一例を詳細に説明するフローチャートである。
【図６】本発明の実施形態を示し、図５のステップＳ２３の楽曲データ読み出し処理の一例を詳細に説明するフローチャートである。
【図７】本発明の実施形態を示し、図４のステップＳ１４の演奏イベント処理の一例を詳細に説明するフローチャートである。
【図８】本発明の実施形態を示し、図７のステップＳ５４の自動演奏処理の一例を詳細に説明するフローチャートである。
【図９】本発明の実施形態を示し、図８のステップＳ６２の歌詞／音符表示処理の一例を詳細に説明するフローチャートである。
【図１０】本発明の実施形態を示し、図９のステップＳ７２の演奏タイミングの行以外の行の表示処理の一例を詳細に説明するフローチャートである。
【符号の説明】
【００７６】
１  ＣＰＵ
２  フラッシュメモリ
３  ＲＯＭ
４  外部記憶媒体装着部
５  外部入出力用インターフェース部
９  パネルスキャン回路
１０  操作パネル
２１  音符
２２  歌詞
【図１】
0004486042.tif 000002
【図２】
0004486042.tif 000003
【図３】
0004486042.tif 000004
【図４】
0004486042.tif 000005
【図５】
0004486042.tif 000006
【図６】
0004486042.tif 000007
【図７】
0004486042.tif 000008
【図８】
0004486042.tif 000009
【図９】
0004486042.tif 000010
【図１０】
0004486042.tif 000011