(57)【特許請求の範囲】
【請求項１】
ＭＩＤＩイベント情報を入力する入力手段と、
該入力手段から入力されたＭＩＤＩイベント情報を識別し、該ＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した楽譜論理情報を生成する生成手段と
を有することを特徴とする譜面情報生成装置。
【請求項２】
前記楽譜論理情報を譜面として表示する場合における表示態様を規定したテンプレート情報を記憶した記憶手段と、
該記憶手段から前記テンプレート情報を読み出す読み出し手段と、
前記生成手段によって生成された楽譜論理情報に記述されたＸＭＬタグを、前記読み出し手段によって読み出されたテンプレート情報に基づいて整形する整形手段と
をさらに有することを特徴とする請求項１に記載の譜面情報生成装置。
【請求項３】
前記整形手段によって整形された楽譜論理情報に基づいて、表示内容をＶＭＬで記述したベクタ・グラフィックスデータに変換する変換手段をさらに有することを特徴とする請求項２に記載の譜面情報生成装置。
【請求項４】
前記記憶手段には、前記テンプレート情報が複数記憶され、該記憶された複数のテンプレート情報からいずれかを選択する選択手段と、
該選択手段によって選択されたテンプレート情報を前記記憶手段から読み出す読み出し手段と
をさらに有し、
前記整形手段は、前記読み出し手段によって読み出されたテンプレート情報に基づいて、前記生成手段によって生成された楽譜論理情報に記述されたＸＭＬタグを整形することを特徴とする請求項２に記載の譜面情報生成装置。
【請求項５】
前記生成手段は、前記入力されたＭＩＤＩイベント情報および該ＭＩＤＩイベント情報に基づく楽譜論理情報にそれぞれ識別情報を付与し、前記入力されたＭＩＤＩイベント情報と該ＭＩＤＩイベント情報に基づく楽譜論理情報とを関連づけることを特徴とする請求項１〜４のいずれかに記載の譜面情報生成装置。
【請求項６】
表示手段と、
ＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した楽譜論理情報を記憶した楽譜論理情報記憶手段と、
該楽譜論理情報記憶手段から前記楽譜論理情報を読み出す楽譜論理情報読み出し手段と、
該楽譜論理情報読み出し手段によって読み出された楽譜論理情報に基づいて、譜面描画情報を生成する譜面描画情報生成手段と、
該譜面描画情報生成手段によって生成された譜面描画情報に基づいて、前記表示手段に表示させる譜面をレンダリングするレンダリング手段と
を有することを特徴とする譜面情報表示装置。
【請求項７】
前記楽譜論理情報およびＭＩＤＩイベント情報にはそれぞれ識別情報が付与され、該識別情報の付与されたＭＩＤＩイベント情報を記憶したＭＩＤＩイベント情報記憶手段と、
該ＭＩＤＩイベント情報記憶手段から前記ＭＩＤＩイベント情報を読み出すＭＩＤＩイベント情報読み出し手段と、
該ＭＩＤＩイベント情報読み出し手段によって読み出されたＭＩＤＩイベント情報に基づいて、楽音信号を形成出力する楽音信号発生手段と、
該楽音信号発生手段によって形成出力される楽音信号の基になるＭＩＤＩイベント情報と前記レンダリング手段によってレンダリングされる譜面の基になる楽譜論理情報とが同期するように、当該ＭＩＤＩイベント情報および楽譜論理情報にそれぞれ付与された識別情報に基づいて制御する制御手段と
をさらに有することを特徴とする請求項６に記載の譜面情報表示装置。
【請求項８】
ＭＩＤＩイベント情報を入力する入力手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、
前記プログラムは、前記処理手段に対して、
前記入力手段から入力されたＭＩＤＩイベント情報を識別させる識別ステップと、
該識別ステップによって識別されたＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した楽譜論理情報を生成させる生成ステップと
を有することを特徴とする記憶媒体。
【請求項９】
ＭＩＤＩイベント情報を入力する入力手段と、楽譜論理情報を譜面として表示する場合における表示態様を規定したテンプレート情報を記憶した記憶手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、
前記プログラムは、前記処理手段に対して、
前記入力手段から入力されたＭＩＤＩイベント情報を識別させる識別ステップと、
該識別ステップによって識別されたＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した前記楽譜論理情報を生成させる生成ステップと、
前記記憶手段から前記テンプレート情報を読み出させる読み出しステップと、
前記生成ステップによって生成された楽譜論理情報に記述されたＸＭＬタグを、前記読み出しステップによって読み出されたテンプレート情報に基づいて整形させる整形ステップと
を有することを特徴とする記憶媒体。
【請求項１０】
ＭＩＤＩイベント情報を入力する入力手段と、楽譜論理情報を譜面として表示する場合における表示態様を規定したテンプレート情報を記憶した記憶手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、
前記プログラムは、前記処理手段に対して、
前記入力手段から入力されたＭＩＤＩイベント情報を識別させる識別ステップと、
該識別ステップによって識別されたＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した前記楽譜論理情報を生成させる生成ステップと、
前記記憶手段から前記テンプレート情報を読み出させる読み出しステップと、
前記生成ステップによって生成された楽譜論理情報に記述されたＸＭＬタグを、前記読み出しステップによって読み出されたテンプレート情報に基づいて整形させる整形ステップと、
該整形ステップによって整形された楽譜論理情報に基づいて、表示内容をＶＭＬで記述したベクタ・グラフィックスデータに変換させる変換ステップと
を有することを特徴とする記憶媒体。
【請求項１１】
ＭＩＤＩイベント情報を入力する入力手段と、楽譜論理情報を譜面として表示する場合における表示態様を規定したテンプレート情報を複数記憶した記憶手段と、操作入力手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、
前記プログラムは、前記処理手段に対して、
前記入力手段から入力されたＭＩＤＩイベント情報を識別させる識別ステップと、
該識別ステップによって識別されたＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した前記楽譜論理情報を生成させる生成ステップと、
前記操作入力手段に対するユーザの入力操作に応じて、前記記憶手段に記憶された複数のテンプレート情報からいずれかを選択させる選択ステップと、
該選択ステップによって選択されたテンプレート情報を前記記憶手段から読み出させる読み出しステップと、
前記生成ステップによって生成された楽譜論理情報に記述されたＸＭＬタグを、前記読み出しステップによって読み出されたテンプレート情報に基づいて整形させる整形ステップと
を有することを特徴とする記憶媒体。
【請求項１２】
前記生成ステップでは、前記入力されたＭＩＤＩイベント情報および該ＭＩＤＩイベント情報に基づく楽譜論理情報にそれぞれ識別情報を付与させ、前記入力されたＭＩＤＩイベント情報と該ＭＩＤＩイベント情報に基づく楽譜論理情報とを関連づけさせることを特徴とする請求項８〜１１のいずれかに記載の記憶媒体。
【請求項１３】
表示手段と、ＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した楽譜論理情報を記憶した楽譜論理情報記憶手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、
前記プログラムは、前記処理手段に対して、
前記楽譜論理情報記憶手段から前記楽譜論理情報を読み出させる楽譜論理情報読み出しステップと、
該楽譜論理情報読み出しステップによって読み出された楽譜論理情報に基づいて、譜面描画情報を生成する譜面描画情報生成ステップと、
該譜面描画情報生成ステップによって生成された譜面描画情報に基づいて、前記表示手段に表示させる譜面をレンダリングさせるレンダリングステップと
を有することを特徴とする記憶媒体。
【請求項１４】
表示手段と、ＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した楽譜論理情報を記憶した楽譜論理情報記憶手段と、前記楽譜論理情報およびＭＩＤＩイベント情報にはそれぞれ識別情報が付与され、該識別情報の付与されたＭＩＤＩイベント情報を記憶したＭＩＤＩイベント情報記憶手段と、ＭＩＤＩイベント情報に基づいて、楽音信号を形成出力する楽音信号発生手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、
前記プログラムは、前記処理手段に対して、
前記楽譜論理情報記憶手段から前記楽譜論理情報を読み出させる楽譜論理情報読み出しステップと、
該楽譜論理情報読み出しステップによって読み出された楽譜論理情報に基づいて、譜面描画情報を生成する譜面描画情報生成ステップと、
該譜面描画情報生成ステップによって生成された譜面描画情報に基づいて、前記表示手段に表示させる譜面をレンダリングするレンダリングステップと、
前記ＭＩＤＩイベント情報記憶手段から前記ＭＩＤＩイベント情報を読み出させるＭＩＤＩイベント情報読み出しステップと、
該ＭＩＤＩイベント情報読み出しステップによって読み出されたＭＩＤＩイベント情報を前記楽音信号発生手段に供給させる供給ステップと、
該供給ステップによって供給されるＭＩＤＩイベント情報と前記レンダリングステップによってレンダリングされる譜面の基になる楽譜論理情報とが同期するように、当該ＭＩＤＩイベント情報および楽譜論理情報にそれぞれ付与された識別情報に基づいて制御する制御ステップと
を有することを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、譜面情報を生成する譜面情報生成装置、生成された譜面情報を表示する譜面情報表示装置、および、譜面情報を生成する譜面情報生成方法および該生成された譜面情報を表示する譜面情報表示方法を実現する各プログラムを格納した記憶媒体に関する。
【０００２】
【従来の技術】
譜面情報を表示する譜面表示装置は、従来より知られている。
【０００３】
この従来の譜面表示装置は、譜面情報として、その装置独自のデータフォーマットを備えた演奏データを要求し、この種の演奏データが提供されると、その提供された演奏データに基づいて譜面を表示していた。
【０００４】
そして、標準の演奏データのフォーマットであるＳＭＦ（Standard MIDI File）形式の演奏データを、上記装置独自のデータフォーマットの演奏データに変換して上記従来の譜面表示装置に提供するアプリケーションソフトウェアもあった。
【０００５】
また、表示可能な譜面情報として、その装置独自のデータフォーマットを備えた譜面データを要求する譜面表示装置に対して、ＳＭＦ形式の演奏データを、上記独自の譜面データに変換して、その装置に提供するアプリケーションソフトウェアも知られている。
【０００６】
【発明が解決しようとする課題】
しかし、上記従来の譜面表示装置では、譜面情報として、その装置独自の演奏データや譜面データを要求するので、表示結果が異ならない譜面情報であっても、装置の種類ごとに異なるデータフォーマットの譜面情報を用意する必要があり、譜面情報の提供者にとって、費用面および時間面での負担が大きかった。
【０００７】
また、提供可能な譜面情報は、譜面表示装置が備えている機能に限定されるので、譜面情報の提供者がそれ以上の機能を望んだ場合には、その機能を譜面表示装置に追加する必要があり、したがって、譜面情報の提供者は、機能を思い通りに拡張した譜面情報を提供することができなかった。
【０００８】
本発明は、この点に着目してなされたものであり、譜面情報の提供者に対する費用面および時間面での負担を低減するとともに、譜面情報提供者が思い通りに機能を拡張した譜面情報を提供することが可能な譜面情報生成装置、譜面情報表示装置および記憶媒体を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の譜面情報生成装置は、ＭＩＤＩイベント情報を入力する入力手段と、該入力手段から入力されたＭＩＤＩイベント情報を識別し、該ＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した楽譜論理情報を生成する生成手段とを有することを特徴とする。
【００１０】
ここで、「汎用演奏情報」は、典型的には、ＳＭＦ形式の演奏情報であるが、これに限られるわけではない。
【００１１】
また、「論理情報」とは、音符の音長、音高、ベロシティ、ボイス、パート等の譜面を表示するときに必要な情報であるが、直接描画とは関わりのない情報である。たとえば、ＳＭＦ形式の演奏情報中に、“９０３Ｃ７Ｆ”，“メタイベントの時間情報”，“９０３Ｃ００”というデータ、すなわち、ノートナンバ“３Ｃ”のノートオン、時間情報、ノートナンバ“３Ｃ”のノートオフというデータが入っているときには、このデータから、音高は“３Ｃ”、すなわちド、音長は、時間情報に応じた音長、すなわち４分音符や８分音符等、さらには何小節の何拍目の音符か等の情報が分かる。これらの情報を、論理情報と呼んでいる。
【００１２】
さらに、「汎用言語」とは、現在最も注目されているＸＭＬ（extensible markup language）を想定しているが、これに限られるわけではない。この「汎用言語」として、ＸＭＬを採用した場合には、汎用言語で記述された論理情報とは、タグを使って表現された論理情報を意味する。すなわち、上述の例では、
<note beat="4">
＜ｈｅａｄ  ｐｉｔｃｈ＝”ｃ”／＞
</note>
が、汎用言語で記述された論理情報である。
【００１３】
ＸＭＬでは、１つの要素は、開始タグと終了タグとの対で表現され、開始タグは要素名を“<”と“>”で挟んだもので、終了タグは要素名を“</”と“>”で挟んだものである。
【００１４】
以上の事情は、請求項が変わっても同様である。
【００１５】
また、請求項２に記載の譜面情報生成装置は、請求項１の譜面情報生成装置において、前記楽譜論理情報を譜面として表示する場合における表示態様を規定したテンプレート情報を記憶した記憶手段と、該記憶手段から前記テンプレート情報を読み出す読み出し手段と、前記生成手段によって生成された楽譜論理情報に記述されたＸＭＬタグを、前記読み出し手段によって読み出されたテンプレート情報に基づいて整形する整形手段とをさらに有することを特徴とする。
【００１６】
ここで、「規定情報」とは、汎用演奏情報からでは得られない、譜面を表示する場合の書式に関する情報をいい、具体的には、音符の表示位置、小節幅、連桁、符幹、符尾等の表示の仕方（見せ方）を規定する情報である。
【００１７】
論理情報が、たとえば「ド」の音高で４分音符のときには、ト音記号あるいはヘ音記号に応じて、その表示態様は変化し、また、調に応じて「ド」でも、「シ」の＃で表現したり等のいくつかの表示態様があり、さらに、４分音符にしても、８分音符２つをタイで結んだ表示態様や、その他多数の表示態様がある。「規定情報」は、これらの表示態様のうちいずれの表示態様を採用するかを規定する情報である。そして、この「規定情報」も、論理情報と同じ汎用言語で記述されているため、論理情報が、たとえばＸＭＬで記述されている場合には、「規定情報」も、表示態様がタグによって記述されることになる。
【００１８】
なお、この「規定情報」として、いくつかのバリエーション（たとえば、大人用、子供用、上級者用、初級者用）を設けておき、この中から自由に選択できるようにしておけば、便利である。
【００１９】
以上の事情は、請求項が変わっても同様である。
【００２０】
さらに、請求項３に記載の譜面情報生成装置は、請求項２の譜面情報生成装置において、前記整形手段によって整形された楽譜論理情報に基づいて、表示内容をＶＭＬで記述したベクタ・グラフィックスデータに変換する変換手段をさらに有することを特徴とする。
また、請求項４に記載の譜面情報生成装置は、請求項２の譜面情報生成装置において、前記記憶手段には、前記テンプレート情報が複数記憶され、該記憶された複数のテンプレート情報からいずれかを選択する選択手段と、該選択手段によって選択されたテンプレート情報を前記記憶手段から読み出す読み出し手段とをさらに有し、前記整形手段は、前記読み出し手段によって読み出されたテンプレート情報に基づいて、前記生成手段によって生成された楽譜論理情報に記述されたＸＭＬタグを整形することを特徴とする。
さらに、請求項５に記載の譜面情報生成装置は、請求項１〜４のいずれかの譜面情報生成装置において、前記生成手段は、前記入力されたＭＩＤＩイベント情報および該ＭＩＤＩイベント情報に基づく楽譜論理情報にそれぞれ識別情報を付与し、前記入力されたＭＩＤＩイベント情報と該ＭＩＤＩイベント情報に基づく楽譜論理情報とを関連づけることを特徴とする。
【００２１】
ここで、「リンク情報」としては、たとえば、ＩＤ（identification number）が典型的であるが、これに限られるわけではない。
【００２６】
ここで、「画像情報」としては、音楽記号や音楽フォント等が挙げられる。汎用言語として、上述のように、“ＸＭＬ”を採用した場合には、対応付けは、タグによって行われる。また、「供給手段」とは、広く供給できれば、その形態は問わない。たとえば、記憶媒体に供給（記憶）して配布したり、ネットワーク（たとえば、インターネットやＬＡＮ））を介して配信したりする形態が挙げられる。以下、請求項が変わっても同様。
【００２７】
また、請求項６に記載の譜面情報表示装置は、表示手段と、ＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した楽譜論理情報を記憶した楽譜論理情報記憶手段と、該楽譜論理情報記憶手段から前記楽譜論理情報を読み出す楽譜論理情報読み出し手段と、該楽譜論理情報読み出し手段によって読み出された楽譜論理情報に基づいて、譜面描画情報を生成する譜面描画情報生成手段と、該譜面描画情報生成手段によって生成された譜面描画情報に基づいて、前記表示手段に表示させる譜面をレンダリングするレンダリング手段とを有することを特徴とする。
【００２８】
さらに、請求項７に記載の譜面情報表示装置は、請求項６の譜面情報表示装置において、前記楽譜論理情報およびＭＩＤＩイベント情報にはそれぞれ識別情報が付与され、該識別情報の付与されたＭＩＤＩイベント情報を記憶したＭＩＤＩイベント情報記憶手段と、該ＭＩＤＩイベント情報記憶手段から前記ＭＩＤＩイベント情報を読み出すＭＩＤＩイベント情報読み出し手段と、該ＭＩＤＩイベント情報読み出し手段によって読み出されたＭＩＤＩイベント情報に基づいて、楽音信号を形成出力する楽音信号発生手段と、該楽音信号発生手段によって形成出力される楽音信号の基になるＭＩＤＩイベント情報と前記レンダリング手段によってレンダリングされる譜面の基になる楽譜論理情報とが同期するように、当該ＭＩＤＩイベント情報および楽譜論理情報にそれぞれ付与された識別情報に基づいて制御する制御手段とをさらに有することを特徴とする。
【００３２】
上記目的を達成するため、請求項８に記載の記憶媒体は、ＭＩＤＩイベント情報を入力する入力手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、前記プログラムは、前記処理手段に対して、前記入力手段から入力されたＭＩＤＩイベント情報を識別させる識別ステップと、該識別ステップによって識別されたＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した楽譜論理情報を生成させる生成ステップとを有することを特徴とする。
【００３３】
また、請求項９に記載の記憶媒体は、ＭＩＤＩイベント情報を入力する入力手段と、楽譜論理情報を譜面として表示する場合における表示態様を規定したテンプレート情報を記憶した記憶手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、前記プログラムは、前記処理手段に対して、前記入力手段から入力されたＭＩＤＩイベント情報を識別させる識別ステップと、該識別ステップによって識別されたＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した前記楽譜論理情報を生成させる生成ステップと、前記記憶手段から前記テンプレート情報を読み出させる読み出しステップと、前記生成ステップによって生成された楽譜論理情報に記述されたＸＭＬタグを、前記読み出しステップによって読み出されたテンプレート情報に基づいて整形させる整形ステップとを有することを特徴とする。
【００３４】
さらに、請求項１０に記載の記憶媒体は、ＭＩＤＩイベント情報を入力する入力手段と、楽譜論理情報を譜面として表示する場合における表示態様を規定したテンプレート情報を記憶した記憶手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、前記プログラムは、前記処理手段に対して、前記入力手段から入力されたＭＩＤＩイベント情報を識別させる識別ステップと、該識別ステップによって識別されたＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した前記楽譜論理情報を生成させる生成ステップと、前記記憶手段から前記テンプレート情報を読み出させる読み出しステップと、前記生成ステップによって生成された楽譜論理情報に記述されたＸＭＬタグを、前記読み出しステップによって読み出されたテンプレート情報に基づいて整形させる整形ステップと、該整形ステップによって整形された楽譜論理情報に基づいて、表示内容をＶＭＬで記述したベクタ・グラフィックスデータに変換させる変換ステップとを有することを特徴とする。
【００３５】
また、請求項１１に記載の記憶媒体は、ＭＩＤＩイベント情報を入力する入力手段と、楽譜論理情報を譜面として表示する場合における表示態様を規定したテンプレート情報を複数記憶した記憶手段と、操作入力手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、前記プログラムは、前記処理手段に対して、前記入力手段から入力されたＭＩＤＩイベント情報を識別させる識別ステップと、該識別ステップによって識別されたＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した前記楽譜論理情報を生成させる生成ステップと、前記操作入力手段に対するユーザの入力操作に応じて、前記記憶手段に記憶された複数のテンプレート情報からいずれかを選択させる選択ステップと、該選択ステップによって選択されたテンプレート情報を前記記憶手段から読み出させる読み出しステップと、前記生成ステップによって生成された楽譜論理情報に記述されたＸＭＬタグを、前記読み出しステップによって読み出されたテンプレート情報に基づいて整形させる整形ステップとを有することを特徴とする。
【００３７】
また、請求項１２に記載の記憶媒体は、請求項８〜１１のいずれかの記憶媒体において、前記生成ステップでは、前記入力されたＭＩＤＩイベント情報および該ＭＩＤＩイベント情報に基づく楽譜論理情報にそれぞれ識別情報を付与させ、前記入力されたＭＩＤＩイベント情報と該ＭＩＤＩイベント情報に基づく楽譜論理情報とを関連づけさせることを特徴とする。
【００３８】
さらに、請求項１３に記載の記憶媒体は、表示手段と、ＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した楽譜論理情報を記憶した楽譜論理情報記憶手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、前記プログラムは、前記処理手段に対して、前記楽譜論理情報記憶手段から前記楽譜論理情報を読み出させる楽譜論理情報読み出しステップと、該楽譜論理情報読み出しステップによって読み出された楽譜論理情報に基づいて、譜面描画情報を生成する譜面描画情報生成ステップと、該譜面描画情報生成ステップによって生成された譜面描画情報に基づいて、前記表示手段に表示させる譜面をレンダリングさせるレンダリングステップとを有することを特徴とする。
【００３９】
また、請求項１４に記載の記憶媒体は、表示手段と、ＭＩＤＩイベント情報の種類に対応したＸＭＬタグにより情報単位が区分され、該ＸＭＬタグ内に前記ＭＩＤＩイベント情報の内容に応じたデータを記述した楽譜論理情報を記憶した楽譜論理情報記憶手段と、前記楽譜論理情報およびＭＩＤＩイベント情報にはそれぞれ識別情報が付与され、該識別情報の付与されたＭＩＤＩイベント情報を記憶したＭＩＤＩイベント情報記憶手段と、ＭＩＤＩイベント情報に基づいて、楽音信号を形成出力する楽音信号発生手段と、処理手段とを有するコンピュータにおいて実行されるプログラムを格納した、前記コンピュータで読み取り可能な記憶媒体であって、前記プログラムは、前記処理手段に対して、前記楽譜論理情報記憶手段から前記楽譜論理情報を読み出させる楽譜論理情報読み出しステップと、該楽譜論理情報読み出しステップによって読み出された楽譜論理情報に基づいて、譜面描画情報を生成する譜面描画情報生成ステップと、該譜面描画情報生成ステップによって生成された譜面描画情報に基づいて、前記表示手段に表示させる譜面をレンダリングするレンダリングステップと、前記ＭＩＤＩイベント情報記憶手段から前記ＭＩＤＩイベント情報を読み出させるＭＩＤＩイベント情報読み出しステップと、該ＭＩＤＩイベント情報読み出しステップによって読み出されたＭＩＤＩイベント情報を前記楽音信号発生手段に供給させる供給ステップと、該供給ステップによって供給されるＭＩＤＩイベント情報と前記レンダリングステップによってレンダリングされる譜面の基になる楽譜論理情報とが同期するように、当該ＭＩＤＩイベント情報および楽譜論理情報にそれぞれ付与された識別情報に基づいて制御する制御ステップとを有することを特徴とする。
【００４５】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００４６】
図１は、本発明の一実施の形態に係る譜面情報生成・表示装置の概略構成を示すブロック図である。
【００４７】
同図に示すように、本実施の形態の譜面情報生成・表示装置は、主に文字情報を入力するためのキーボード１と、ポインティングデバイスであるマウス２と、キーボード１の各キーの操作状態を検出するキー操作検出回路３と、マウス２の操作状態を検出するマウス操作検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムや、各種テーブルデータ等を記憶するＲＯＭ６と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば大型液晶ディスプレイ（ＬＣＤ）若しくはＣＲＴ（Cathode Ray Tube）ディスプレイおよび発光ダイオード（ＬＥＤ）等を備えた表示装置９と、記憶媒体であるフロッピディスク（ＦＤ）２０をドライブするフロッピディスクドライブ（ＦＤＤ）１０と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するハードディスク（図示せず）をドライブするハードディスクドライブ（ＨＤＤ）１１と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するコンパクトディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）２１をドライブするＣＤ−ＲＯＭドライブ（ＣＤ−ＲＯＭＤ）１２と、外部からのＭＩＤＩ（Musical Instrument Digital Interface）信号を入力したり、ＭＩＤＩ信号を外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１３と、通信ネットワーク１０１を介して、たとえばサーバコンピュータ１０２とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１４と、鍵盤１から入力された演奏データや予め設定された演奏データ等を楽音信号に変換する音源回路１５と、該音源回路１５からの楽音信号に各種効果を付与するための効果回路１６と、該効果回路１６からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１７とにより構成されている。
【００４８】
上記構成要素３〜１６は、バス１８を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＭＩＤＩＩ／Ｆ１３には他のＭＩＤＩ機器１００が接続され、通信Ｉ／Ｆ１４には通信ネットワーク１０１が接続され、音源回路１５には効果回路１６が接続され、効果回路１６にはサウンドシステム１７が接続されている。
【００４９】
なお、本実施の形態では、音源回路１５は、その名称の通り、すべてハードウェアで構成したが、これに限らず、一部ソフトウェアで構成し、残りの部分をハードウェアで構成してもよいし、また、すべてソフトウェアで構成するようにしてもよい。
【００５０】
ＨＤＤ１１のハードディスクには、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、このハードディスクに制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００５１】
ＣＤ−ＲＯＭドライブ１２のＣＤ−ＲＯＭ２１から読み出された制御プログラムや各種データは、ＨＤＤ１１内のハードディスクにストアされる。これにより、制御プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このＣＤ−ＲＯＭドライブ１２以外にも、外部記憶装置として、光磁気ディスク（ＭＯ）装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００５２】
ＭＩＤＩＩ／Ｆ１３は、専用のものに限らず、ＲＳ−２３２ＣやＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェースより構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信してもよい。
【００５３】
通信Ｉ／Ｆ１４は、上述のように、たとえばＬＡＮ（Local Area Network）やインターネット、電話回線等の通信ネットワーク１０１に接続されており、該通信ネットワーク１０１を介して、サーバコンピュータ１０２に接続される。ＨＤＤ１１内のハードディスクに上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１４は、サーバコンピュータ１０２からプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、譜面情報生成・表示装置）は、通信Ｉ／Ｆ１４および通信ネットワーク１０１を介してサーバコンピュータ１０２へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータ１０２は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク１０１を介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ１４を介して、これらプログラムやパラメータを受信してＨＤＤ１１内のハードディスクに蓄積することにより、ダウンロードが完了する。
【００５４】
この他、外部コンピュータ等との間で直接データのやりとりを行うためのインターフェースを備えてもよい。
【００５５】
なお、本実施の形態の譜面情報生成・表示装置は、上述の構成から分かるように、汎用的なパーソナルコンピュータ上に構築されたものであるが、これに限らず、本発明を実施できる最小限要素のみから構成した専用装置上に構築してもよい。
【００５６】
以上のように構成された譜面情報生成・表示装置が実行する制御処理を、まず、図２を参照してその概要を説明し、次に、図３〜図８を参照して詳細に説明する。
【００５７】
本実施の形態の譜面情報生成・表示装置は、主として、次の制御処理を行う。すなわち、
（１）汎用演奏データ（または汎用譜面データ）を入力し、この入力された汎用演奏データに基づいて、譜面情報の一構成要素である楽譜論理データ（この楽譜論理データは汎用言語で記述される）を生成する楽譜論理データ生成処理
（２）浄書データを供給し、この供給された浄書データを上記楽譜論理データに付加する浄書データ供給・付加処理
（３）上記楽譜論理データのスタイルを決定するスタイルデータ（このスタイルデータも、譜面情報の構成要素の一つであり、汎用言語で記述される）を上記楽譜論理データに対応付けて供給するスタイル情報供給処理
（４）前記入力された汎用演奏データ中の各ノートオンイベントにＩＤを付与するとともに、該汎用演奏データ中の各ノートオンイベントと前記生成された楽譜論理データ中の各ノートオンデータとをそれぞれ対応付けるために、この楽譜論理データ中の各ノートオンデータにもＩＤを付与するＩＤ付与処理
（５）前記生成された楽譜論理データに、レイヤデータ（layer data）を付加するレイヤデータ付加処理
（６）上記（１）〜（５）の譜面情報を編集する編集処理
（７）上記（１）〜（６）の譜面情報から、汎用演奏データを生成する演奏データ生成処理
（８）上記（１）〜（６）の譜面情報を表示する表示処理
（９）前記入力された汎用演奏データを再生するとともに、その再生に連動して上記表示された譜面の表示態様を変更する演奏データ連動表示態様変更処理
（１０）上記表示された譜面の表示態様の変更を指示する変更指示データを入力し、この入力データに応じて、表示譜面の表示態様を変更する演奏データ非連動表示態様変更処理
の各処理を行う。
【００５８】
なお、上記（１）の楽譜論理データ生成処理によって生成された楽譜論理データを、外部に供給するようにしてもよい。
【００５９】
ここで、「供給」の形態は、どのようなものであってもよい。要するに、広く供給できれば、その形態は問わないという趣旨である。たとえば、記憶媒体に供給（記憶）して配布したり、ネットワーク（たとえば、インターネットやＬＡＮ）を介して配信したりする形態が挙げられる。この事情は、上記（２），（３）の「供給」についても、同様に成立する。
【００６０】
図２は、本実施の形態の譜面情報生成・表示装置が実行する処理の体系を示すブロック図である。
【００６１】
同図において、汎用演奏データ（本実施の形態では、ＳＭＦ形式の演奏データ）が入力される（ブロック３１）と、この入力された汎用演奏データに基づいて、汎用言語（本実施の形態では、ＸＭＬ）で記述される楽譜論理データを生成する（ブロック３３）。また、汎用演奏データの代わりに、紙譜面が与えられた場合には、その紙譜面に記載されている譜面情報を、たとえばスキャナ（図示せず）で読み取って電子的な汎用譜面データとし（ブロック３２）、これを汎用演奏データ（ＳＭＦ形式の演奏データ）に変換した後に、上述のようにして、この変換された汎用演奏データに基づいて、汎用言語で記述される楽譜論理データを生成する（ブロック３３）。この楽譜論理データ生成処理が、前記制御処理（１）に相当する。
【００６２】
ここで、楽譜論理データとは、「同論理」の譜面情報を生成するために必要なデータをいう。
【００６３】
二つの譜面情報が与えられたときに、両譜面情報を便宜上、次の３種類の「譜面関係」で表現する。すなわち、
（１）同論理：両譜面情報から同一の演奏データ（ＳＭＦ形式の演奏データ）が得られる場合
（２）同相：両譜面情報は「同論理」であり、かつ、トポロジー的に同一である場合（具体的には、両譜面情報が、現物の譜面を写譜するときに必要となる最小限度の情報を含んでいる場合であり、たとえば連桁（beam）や符幹・符尾（stem）等を「同論理」の両譜面情報に追加したものである）
（３）同一：両譜面情報を表示したときの各表示譜面が同一の場合
の３種類である。
【００６４】
より具体的には、「楽譜論理データ」とは、音符の音長、音高、ベロシティ、ボイス、パート等の譜面を表示するときに必要な情報であるが、直接描画とは関わりのない情報である。たとえば、ＳＭＦ形式の演奏情報中に、“９０３Ｃ７Ｆ”，“メタイベントの時間情報”，“９０３Ｃ００”というデータ、すなわち、ノートナンバ“３Ｃ”のノートオン、時間情報、ノートナンバ“３Ｃ”のノートオフというデータが入っているときには、このデータから、音高は“３Ｃ”、すなわち「ド」、音長は、時間情報に応じた音長、すなわち４分音符や８分音符等、さらには何小節の何拍目の音符か等の情報が分かる。これらの情報を、論理情報と呼び、この論理情報を、次に説明する汎用言語で記述したものが、「楽譜論理データ」である。
【００６５】
また、ＸＭＬとは、World Wide Web Consortium（以下、“Ｗ３Ｃ”の略称を用いる）によって標準化された、Ｗｅｂページを含め、Ｗｅｂにあるデータを記述する汎用的なデータ記述言語であり、現在バージョン1.0がＷ３Ｃの正式な勧告（XML 1.0 W3C Recommendation）となっている。
【００６６】
ＸＭＬは、ＩＳＯ（International Organization for Standardization）が１９８６年に制定した文書記述言語であるＳＧＭＬ（Standard Generalized Markup Language）の仕様を削減して軽量化を図り、かつＨＴＭＬ（hypertext markup language）のもつインターネットでのリンク機能を取り込み、最新の研究成果を追加した仕様となっている。すなわち、ＸＭＬは、ＳＧＭＬのサブセットであり、任意の文書型を認容するＳＧＭＬの文書を、ＨＴＭＬと同様に、ＷＷＷ（world wide web）上で配布、受信および処理を行えるようにしている。
【００６７】
ＳＧＭＬの特徴は、
（１）文書の本文における章や節などの文書の構造の定義（ＤＴＤ：document type definition）
（２）ディスプレイ上やプリントアウト時の表示のされ方（スタイル）
の二つを本文から切り離して管理することが可能な点にある。
【００６８】
さらに、ＳＧＭＬの特徴は、ＨＴＭＬと同様に、（３）タグなどで囲まれた標準的なテキストデータで表現されるとともに、ＨＴＭＬと異なって、（４）ＤＴＤに正しく定義さえすれば、タグを任意に拡張することができる点にある。
【００６９】
そして、ＸＭＬの特徴は、ＳＧＭＬの上記（２）および（３）の特徴を備える点、および、（４）の一部の特徴、すなわち、タグを任意に拡張できるが、ＤＴＤを備える必要がなく、また、ＤＴＤを備えていても、文書がＤＴＤの定義に従わなくてもよいという特徴を備える点にある。
【００７０】
次に、浄書データを供給する（ブロック３４）。浄書データとは、「同論理」であって、「同相」でない楽譜論理データを、「同相」にさせるためのデータを言い、前述のように、楽譜論理データ中の、たとえばノートオンデータに、たとえば連桁や符幹・符尾等のタグを追加させるためのデータである。
【００７１】
楽譜論理データが、たとえば「ド」の音高で４分音符のときには、ト音記号あるいはヘ音記号に応じて、その表示態様は変化し、また、調に応じて「ド」でも、「シ」の＃で表現したり等のいくつかの表示態様があり、さらに、４分音符にしても、８分音符２つをタイで結んだ表示態様や、その他多数の表示態様がある。「浄書データ」は、これらの表示態様のうちいずれの表示態様を採用するかを規定する情報である。そして、この「浄書データ」も、楽譜論理データと同じ汎用言語で記述されているため、楽譜論理データが、たとえばＸＭＬで記述されている場合には、「浄書データ」も、表示態様がタグによって記述されることになる。
【００７２】
そして、浄書データとして、たとえば、大人用、子供用、上級者用、初級者用等の複数のバリエーションのテンプレートが予め用意されており、この中からユーザが好みのものを選択すると、そのバリエーションの浄書データが供給される。このとき、用意されたバリエーション中に、ユーザの好みのものが存在しない場合には、ユーザの好みに最も近いテンプレートを選択し、これを編集してユーザの好みに合わせ、この編集後の浄書データを供給するようにすればよい。
【００７３】
なお、浄書データは、楽譜論理データに新たなタグを追加したり、既存のタグの内容を変更したりするものであるため、ＸＭＬに準拠したデータである。
【００７４】
次に、レイヤデータを供給する（ブロック３５）。
【００７５】
本実施の形態では、譜面情報を表示するためのアプリケーションソフトウェアとして、汎用のビューア（たとえば、Ｗｅｂブラウザ）と専用のビューアとを採用し、上述のように、譜面情報は汎用言語のＸＭＬで記述されているため、どちらのビューアでも、譜面情報を表示することができる。そして、専用のビューアには、表示された譜面に書き込みができる機能が設けられ、書き込み内容は、譜面情報と同様に、ＸＭＬで記述されるデータに変換されて、レイヤデータとして同一画面上に表示される。すなわち、ＸＭＬで記述された書き込み内容は、レイヤデータとして、譜面情報と合成することで、同一画面上に表示することができる。ブロック３５は、譜面情報と合成するために、レイヤデータを供給する処理を行っている。
【００７６】
なお、レイヤデータとして供給される情報は、上述したような専用ビューア上での書き込み内容の他にも、各種内容のものがあるが、その内容は後述する。
【００７７】
さらに、音楽用スタイルシートを供給する（ブロック３６）。スタイルシートとは、前記ＳＧＭＬの特徴（２）のスタイル、すなわち、ディスプレイ上やプリントアウト時における、楽譜論理データ＋浄書データの表示のされ方を決定するテンプレートをいう。具体的には、各タグを、どのようなフォントで、どのような位置に、どのような色で表示するかを決定するテンプレートのことである。
【００７８】
ここで、スタイルシートは、上述したように、汎用言語（本実施の形態では、ＸＳＬ（extensible style language））で記述されている。
【００７９】
このスタイルシートも、前記浄書データと同様に、複数のバリエーションが予め用意されており、ユーザは、この中から、好みのものを選択して採用する。もちろん、予め用意されたバリエーション中に、ユーザの好みのものが存在しない場合には、浄書データと同様に、編集することもできる。ただし、スタイルシートでは、タグとその表示の仕方とが一対一に対応付けられているため、タグを追加したり、削除したりしたときには、それに応じて、楽譜論理データおよび浄書データ中のタグも追加または削除する必要がある。
【００８０】
このようにして、ブロック３３〜３６で生成または供給された各種データに基づいて、コンテンツ、すなわち譜面情報を生成する（ブロック３８）。また、本実施の形態では、この譜面情報の生成前または生成後のデータに対して、編集操作を行うこともできるように構成されている（ブロック３７）。
【００８１】
ブロック３８で生成された譜面情報は、付加価値情報３８ａ、楽譜表示図形情報３８ｂおよび楽音演奏情報３８ｃの３種類の情報に大きく分類することができ、付加価値情報３８ａを構成する各情報は、個々のアプリケーションによって起動され（ブロック３９）、楽譜表示図形情報３８ｂは、汎用または専用のビューアにより、表示装置９上に表示され（ブロック４０）、楽音演奏情報３８ｃは、音源回路１５に供給されて、楽音が発生される（ブロック４１）。
【００８２】
以下、本実施の形態の譜面情報生成・表示装置が実行する制御処理を、詳細に説明する。
【００８３】
図３は、入力された汎用演奏データおよび汎用譜面データから譜面情報（コンテンツ）を生成する処理の流れを示すブロック図である。同図は、図２の処理の一部を抜粋したものであるため、図３中、図２と同様のブロックには同一符号が付されている。
【００８４】
図３において、ブロック３１から入力された汎用演奏データ（ブロック３２から汎用譜面データが入力された場合には、この汎用譜面データは、前述のように、汎用演奏データに変換される）は、ソフトウェアで形成される譜面作成エンジンにより、図４のフローチャートで示される処理が施されて（ブロック５１）、図２のブロック３８で説明したように、コンテンツが生成される。
【００８５】
図４は、上記ブロック５１の譜面作成エンジンが実行する譜面情報作成処理の手順を示すフローチャートである。
【００８６】
同図において、まず、ブロック３１から汎用演奏データであるＳＭＦ形式の演奏データが入力されると、この入力されたＳＭＦ形式の演奏データを前記ＲＡＭ７の演奏データ記憶領域に一旦記憶する（ステップＳ１）。
【００８７】
次に、この演奏データを分析して、各種判断を行い、前記楽譜論理データを生成する（ステップＳ２）。ここで、演奏データの分析・判断は、具体的には、次のようにして行う。
【００８８】
すなわち、
（１）ノートオン／オフイベントを構成するノートナンバから音符のピッチを検出する
（２）ノートオンイベントから、該ノートオンイベントに対応するノートオフイベントまでの時間を算出し、この算出値から音符の音長を検出する
（３）上記（１）および（２）の検出結果から、奏法を検出する
等である。
【００８９】
これらの分析・判断手法は、いずれも公知の手法であり、本発明は、この分析・判断手法の点に特徴を有するものではなく、このように分析され判断された結果に基づいて、前述のように、ＸＭＬで記述される楽譜論理データを自動的に生成する点に特徴を有している。
【００９０】
このようにして生成された楽譜論理データは、２つに分岐され、一方はステップＳ３の処理に移行し、もう一方はステップＳ４の処理に移行する。ステップＳ３およびＳ４の各処理は、同時に進行しないため、たとえば、ステップＳ３の処理に移行するモードとステップＳ４の処理に移行するモードの２モードを設定し、ユーザの指示に応じて、いずれかの処理に移行するようにすればよい。
【００９１】
ステップＳ３では、生成された楽譜論理データに、前記ブロック３５で供給された浄書データを付与することにより、整形された楽譜論理データを生成する。ここで、浄書データは、純粋なデータではなく、各種テンプレート（浄書データ）を備えたフィルタプログラムであり、このフィルタプログラムに、上記生成された楽譜論理データを通すことにより、前述のように、楽譜論理データに新たなタグが追加され、または、既存のタグが変形されて、整形された楽譜論理データが生成される。
【００９２】
一方、ステップＳ４では、生成された楽譜論理データと、入力されたＳＭＦ形式の演奏データとのリンク情報を生成する。具体的には、上述したように、演奏データの各ノートオンイベントにそれぞれＩＤを付与して、各ノートオンイベントをメタイベントにする一方、生成された楽譜論理データの各ノートオンデータ（タグ）にもそれぞれＩＤを付与する。これにより、演奏データの各ノートオンイベントと、楽譜論理データの各ノートオンデータとが一対一に対応付けられ、その後、コンテンツである譜面情報に同期して、演奏データによる自動演奏を行ったり、譜面側から演奏データによる自動演奏の開始位置を指示したり、演奏データに合わせて、表示された譜面をめくったり、スクロールさせたりすることが可能になる。
【００９３】
なお、メタイベントとされたノートオンイベントを含む演奏データをシーケンサで再生する場合、シーケンサは、通常、メタデータを無視して、メタデータが付与されていない通常のノートオンイベントと見なすため、不具合は生じない。
【００９４】
なお、本実施の形態では、楽譜論理データの生成の基になる入力汎用演奏データとして、ＳＭＦ形式の演奏データを例に挙げたが、他のフォーマットの演奏データが入力された場合には、この演奏データをＳＭＦ形式にフォーマットすることで、上述の処理をそのまま適用することができる。
【００９５】
また、汎用演奏データとして、ＳＭＦ形式以外のフォーマットの演奏データが入力されたときには、そのフォーマットに合った分析・判断手法を選択できるように構成しておけば、ＳＭＦ形式以外のフォーマットの演奏データをＳＭＦ形式の演奏データに変換することなく、上述の処理をそのまま（または大幅な変更を加えずに）適用することができる。
【００９６】
さらに、生成された楽譜論理データには、演奏データの全情報がタグとして記載されているため、楽譜論理データから、元の演奏データを簡単に復元することができる。したがって、ＳＭＦ形式以外のフォーマットの演奏データから、上述のようにして、楽譜論理データが生成されると、この楽譜論理データから、簡単に、ＳＭＦ形式の演奏データを生成することができる。
【００９７】
図５は、生成された楽譜論理データ、供給された浄書データおよびスタイルシートから譜面情報を表示する処理の流れを示すブロック図である。同図は、図２の処理の一部を抜粋したものであるため、図５中、図２と同様のブロックには同一符号が付されている。
【００９８】
ブロック３３で生成された楽譜論理データは、前述したように、ブロック３４で供給された浄書データによって整形され、整形された楽譜論理データが、ブロック６１に供給される。また、ブロック３６からブロック６１へは、音楽用スタイルシートが供給される。
【００９９】
ブロック６１では、まず、整形された楽譜論理データが、スタイルシートというコンバータ用テンプレートによってコンバートされ、さらに、ＶＭＬ（vector markup language）の機能によってＶＭＬで記述されたデータにコンバートされ、ベクタ・グラフィックスデータとして表示される。ここで、ＶＭＬは、Ｗｅｂ上でベクタ・グラフィックスを表示するためのフォーマットの標準案の一つである。この言語の長所は、標準であるため、広くサポートされていることと、ベクタ方式であるため、拡大・縮小表示を行っても画質が衰えないことである。
【０１００】
スタイルシートは、整形された楽譜論理データ中の各タグを描画情報（図形情報）としての音楽記号や音楽フォントに対応させるためのテンプレートのようなものである。
【０１０１】
本実施の形態のスタイルシートは、音楽用のスタイルシートであり、前述したように、複数のバリエーションを持たせている。たとえば、上級者用および初級者用の２種類のスタイルシートを用意し、上級者用スタイルシートでは、整形された楽譜論理データがトリルになっている場合、トリル記号に変換する一方、初級者用スタイルシートでは、実際の音符で、しかも実際のトリル回数より少なくして弾きやすい楽譜情報に変換する。
【０１０２】
図６は、整形された楽譜論理データおよび音楽用スタイルシートをＷｅｂブラウザで実際に表示した表示例を示す図である。
【０１０３】
図７は、ＸＭＬによる楽譜論理データの２種類の記述方法を示す図であり、（ａ）は、パート別記述方法を示し、（ｂ）は、小節別記述方法を示している。
同図（ａ）のパート別記述方法とは、あるパートの楽譜を第１小節から終了小節まで記述し、次に別のパートを同様に第１小節から終了小節まで記述する。これを、全パートに亘って繰り返す。
【０１０４】
同図（ｂ）の小節別記述方法とは、第１小節について全パートを記述し、次に第２小節について全パート記述する。これを、終了小節まで繰り返す。
【０１０５】
前述のように、演奏データ中の各ノートオンイベントにＩＤを付与し、そのＩＤと対応した情報を楽譜論理データ中の各ノートオンデータにも付与しているため、譜面表示を行いながら、演奏データによる自動演奏を行う場合に、次の各種処理を行うことができる。
【０１０６】
すなわち、
（１）自動演奏中の演奏データと同期して表示された譜面の音符を通常表示と異ならせる（色を変更したり、点滅させたりする）処理
（２）楽譜論理データ中のＩＤと対応した情報が記載される位置に、ＵＲＬを記載しておき、演奏に同期してそのＵＲＬへアクセスする処理
（３）楽譜が複数ページに分割されて表示される場合に、演奏中のイベントのＩＤと、表示中の譜面の音符のＩＤとを比較して、譜面を自動的にめくる処理
（４）演奏に合わせて、特定のパートを別の色で表示する処理
の各処理を行うことができる。
【０１０７】
図８は、上記（１）〜（４）のうちの（１）〜（３）の各処理の手順を示すフローチャートである。
【０１０８】
同図において、まず、演奏データから、時間情報によって示される時間だけ経過後ノートオンイベントを読み出す（ステップＳ１１）。
【０１０９】
次に、読み出されたノートオンイベントが、ＩＤメタイベントであるか否かを判別し（ステップＳ１２）、ＩＤメタイベントでないとき、すなわち、ＩＤが付与されていない通常のノートオンイベントのときには、そのノートオンイベントを前記音源回路１５に送出する（ステップＳ１３）。
【０１１０】
そして、読み出すべきノートオンイベントがなくなったか否かを判別し（ステップＳ１４）、なくなったときには、本処理を終了する一方、まだ残っているときには、そのノートオンイベントまでポインタを進めた後に、前記ステップＳ１１に戻る。
【０１１１】
前記ステップＳ１２で、読み出されたノートオンイベントがＩＤメタイベントのときには、現在表示中の音符に該当ＩＤの音符があるか否かを判別し（ステップＳ１５）、該当ＩＤの音符がないときには、取得されたＩＤに該当する音符があるページを検索して表示する（ステップＳ１６）一方、該当ＩＤの音符があるときには、ステップＳ１６をスキップしてステップＳ１７に進む。
【０１１２】
ステップＳ１７では、取得したＩＤに対応した音符データを楽譜論理データ中から検出し、表示譜面上の対応する音符を、たとえば、その表示色を変更したり、点滅表示させたりしてデフォルメ表示し、続くステップＳ１８では、該当ＩＤ個所にＵＲＬまたは所定の動作を促すタグが挿入されているか否かを判別する。
【０１１３】
ステップＳ１８で、該当ＩＤ個所にＵＲＬまたは所定の動作を促すタグが挿入されているときには、対応するＵＲＬへアクセスし、または挿入されている所定イベントを起動した（ステップＳ１９）後に、ステップＳ１４に進む一方、該当ＩＤ個所にＵＲＬも、所定の動作を促すタグも挿入されていないときには、何もせずにステップＳ１４に進む。
【０１１４】
なお、前記（３）の処理（ステップＳ１５，Ｓ１６の処理に相当する）に代えて、読み出されたＩＤメタイベントが現在表示中の譜面の最後の音符のＩＤと一致するか否かを判別し、一致したときには、次のページの譜面を表示するようにしてもよい。
【０１１５】
前述のように、譜面情報は、汎用言語、すなわちＳＧＭＬのサブセットであるＸＭＬで記述されているため、他のＳＧＭＬ系の言語と共通の文書として取り扱うことができる。そのため、他のＳＧＭＬ，ＸＭＬに準拠した言語で記述された文書と同時にレイヤ表示を行うことができる。レイヤは複数重ね合わせることができる。
【０１１６】
したがって、表示譜面に対する書き込みデータを別文書で作成し、表示譜面とレイヤ表示することができる。この別文書には、補足説明、図形データの他に、ＵＲＬや、所定イベントの起動（たとえば、Ｊａｖａの起動）を促す制御情報を含ませることもできる。これにより、表示譜面の所定個所をマウスでクリックすれば、所定のＵＲＬへアクセスしたり、アニメーションが起動したり、表示譜面に対して各種付加価値情報を加えることができる。
【０１１７】
また、この言語は共通言語であるため、ユーザ側で簡単にレイヤデータを作成することができる。たとえば、共通フォーマットが出力可能なワープロ、ドローイング系アプリケーション、ホームページ作成アプリケーション等で簡単に作成することができる。
【０１１８】
さらに、譜面情報に付加価値情報をタグとして挿入すれば、演奏に同期してイベントを起動させ、別文書でレイヤデータ側に付加価値情報を挿入しておけば、指定型でイベントを起動するという使い分けが可能である。
【０１１９】
以上のように生成された譜面情報の付加価値をさらに高めるために、専用のアプリケーションを用意し、機能を拡張する。
【０１２０】
専用アプリケーションとしては、次の機能を備えたものを用意する。
【０１２１】
すなわち、
（１）外部からＭＩＤＩ信号を受信するようにし、所定のＭＩＤＩ信号を受信したときに、譜面をめくるようにする機能
（２）外部からＭＩＤＩ信号を受信するようにし、トランスポーズイベント（移調イベント）を受信したときに、楽譜論理データのノートオン／オフのピッチデータに、トランスポーズイベントの値を演算して新たな楽譜論理データを生成し、再度浄書データで整形し、音楽用スタイルシートで変換して、譜面表示をし直すことにより、移調による譜面表示の更新を行う機能
（３）浄書データ、楽譜論理データ中に暗号化された使用回数制限情報をタグとして入力しておき、専用のアプリケーションから印刷を行う場合に、印刷モジュール側からタグに暗号または透かしデータとして付与されている利用制限回数を参照し、これを超過して譜面の印刷を行えないようにして、コンテンツ制作者を保護する機能
（４）楽譜入力用ワープロのように、楽譜表示画面からグラフィックデータとして音符等の音楽記号を入力すると、表示画面を変更するとともに、入力情報から楽譜論理データおよび浄書データも変更するようにする機能、そして、これらを外部記憶装置に保存したり読み出しが行えるようにする機能
（５）楽譜論理データから直接演奏データを生成する機能（この機能により、楽譜論理データをＳＭＦ等の演奏データとして取り扱うことができる）
等である。
【０１２２】
楽譜論理データおよび浄書データは、ＸＭＬで記述され、音楽用スタイルシートはＸＳＬで記述されているように、各データがＷｅｂ上で配布しやすい共通言語で記述されているため、ネットワークを介して、音楽教習を行うことができる。
【０１２３】
図９は、ネットワークを介して音楽教習を行うときに、教師端末と生徒端末がそれぞれ行う処理の手順を示すフローチャートである。
【０１２４】
教師端末および生徒端末は、それぞれ、図１のハードウェアと同様のハードウェアによって構成されているとし、両端末は、ＬＡＮ（local area network）を介して接続されているものとする。
【０１２５】
なお、ネットワークは、ＬＡＮに限る必要はなく、インターネットでもよい。
【０１２６】
図９において、教師端末は、教材データとしての模範演奏データ、楽譜論理データ、浄書データ、音楽用スタイルシートおよびレイヤデータを作成して生徒端末（またはダウンロード用サーバ）に転送する（ステップＳ２１）。
【０１２７】
なお、本実施の形態では、模範演奏データは、他の教材データと一緒に転送（またはダウンロード）するようにしたが、これに限らず、教師が直接演奏し、これにＩＤを付与して、ストリーミング情報としてリアルタイムで送信するようにしてもよい。
【０１２８】
これに対して、生徒端末は、教材データを受信（またはサーバからダウンロード）し（ステップＳ３１）、この教材データ中の、楽譜論理データ、浄書データ、音楽用スタイルシートおよびレイヤデータをコンバートして、レイヤ付きの（たとえば、コメントおよびカリキュラム付きの）譜面情報を取得するとともに、教材データ中の模範演奏データも取得する（ステップＳ３２）。
【０１２９】
そして、練習の成果を教師端末（またはダウンロード用サーバ）に返送する（ステップＳ３３）。ここで、練習の成果としては、実際に生徒自身が演奏した演奏情報と、教師へのメッセージとしてのレイヤデータを作成する。
【０１３０】
なお、この演奏データも、前記模範演奏データと同様に、生徒が直接演奏し、これにＩＤを付与して、ストリーミング情報としてリアルタイムで送信するようにしてもよい。
【０１３１】
これに対して、教師端末は、練習成果を受信（またはサーバからダウンロード）し、評価を行い、次のステップの教材を作成した（ステップＳ２２）後に、前記ステップＳ２１に戻り、上述の処理を繰り返す。
【０１３２】
本実施の形態では、前述したように、自動演奏中の演奏データと同期して、表示された譜面の音符を通常表示と異ならせるようにしたが、これとは逆に、表示された譜面上、ユーザが指示した位置の音符から自動演奏を開始できるようにしてもよい。これは、次の方法により実現できる。
【０１３３】
表示譜面上の位置を指示するためのポインチングカーソルを、たとえば前記レイヤデータにより表示し、ユーザがこのポインチングカーソルを用いて指示した位置を、表示譜面（表示装置９の表示画面）上の座標として検出する。ここで、表示譜面は、たとえばビットマップデータのフォーマットで表示装置９に供給することにより、表示装置９上に表示されるものとすると、座標は、１画面分の総ビットマップデータを基準として検出される。そして、この座標、すなわち、ポインチングカーソルにより指示された位置の座標に、音符が表示されているときには、その音符を強調表示させるとともに、その音符のＩＤに対応する、演奏データ中のノートイベントを検出し、そのノートイベント以降の演奏データを音源回路１５に供給することにより、表示譜面上、ユーザが指示した位置の音符から自動演奏を開始する。
【０１３４】
また、本実施の形態では、入力された汎用演奏データ（汎用譜面データが入力されている場合には、これを汎用演奏データに変換したもの）に基づいて、楽譜表示図形情報を生成するとともに楽音演奏情報を生成し、生成された楽譜表示図形情報は、表示装置９に供給して譜面を表示し、生成された楽音演奏情報は、音源回路１５に供給して楽音を生成するが、これに限らず、楽譜表示図形情報および楽音演奏情報そのもの、またはその基となる情報を、それぞれ別の供給源から入力するようにしてもよい。たとえば、楽音演奏情報は、音楽用ＣＤから供給するようにし、楽譜表示図形情報は、当該音楽用ＣＤがＣＤエクストラの場合には、楽音データの記憶領域とは異なる記憶領域から供給するようにし、当該音楽用ＣＤが通常のＣＤの場合には、他の記録媒体や、前記通信ネットワーク１０１を介してサーバコンピュータ１０２から供給するようにする。そして、音楽用ＣＤは、前記ＣＤ−ＲＯＭドライブ１２で再生することにより、楽音演奏情報（この場合には、楽音データそのもの）を発生させて、音源回路１５に供給するとともに、楽譜表示図形情報は、そのまま表示装置９に供給して、譜面を表示させる。もちろん、楽譜表示図形情報として、ＸＭＬで記述されたもの以外のものが供給された場合には、その供給された楽譜表示図形情報をＸＭＬで記述されたものに変換した後に、表示装置９に供給する。また、楽譜表示図形情報が、同一のＣＤ、すなわちＣＤエクストラから供給されるときには、入力される楽音演奏情報に対応する楽譜表示図形情報を入力するようにすればよいが、楽譜表示図形情報が、他の記録媒体や、サーバコンピュータ１０１から供給されるときには、入力される楽音演奏情報に関する情報、たとえば曲名、演奏者名、演奏日時等をＣＤから読み出し、この読み出された情報に一致する楽譜表示図形情報を、目的の記録媒体や、サーバコンピュータ１０１から検索して入力する。また、曲の再生と、表示譜面との同期は、その曲の再生時間に基づいて行うようにする。曲の再生時間は、ＣＤに記録されているので、それを読み出して使用する。
【０１３５】
なお、楽音演奏情報は、音楽用ＣＤから供給される楽音データに限らず、音声ストリームデータ等の、時間情報を備えたオーディオデータであってもよい。また、楽譜表示図形情報に代えて、またはそれに加えて、再生される楽音演奏情報に関する解説やその再生時間等の情報を表示するようにしてもよい。
【０１３６】
また、本実施の形態では、譜面表示は、前記図６に示したように、実際の譜面に近いものであったが、これに限らず、より演奏をしやすく加工するようにしてもよい。
【０１３７】
図１０は、ユーザの演奏を支援するために、音符とピアノロールを同時表示した譜面表示の一例を示す図であり、（ａ）は、通常の音符とピアノロールとの同時表示を示し、（ｂ）は、音符ｎ０が指示されたときに、そのピアノロールｐｒ０が強調表示（図示例では反転表示）された様子を示している。
【０１３８】
従来、音符とピアノロールは、別々に表示されていたが、本実施の形態では、音符の位置にピアノロールを重ねて表示するようにしている。これにより、ユーザは各音符の楽音をどのくらい発音すればよいかを一目で確認でき、演奏をより容易に行うことができる。
【０１３９】
なお、ピアノロールの長さは、その音符に対応するキーオンイベントからキーオフイベントまでの時間情報を検出（または算出）し、その検出結果に基づいて決定するようにし、ピアノロールの表示は、前記レイヤデータによって行うようにすればよい。
【０１４０】
また、ピアノロールに代えて、抑揚レベルを表示するようにしてもよい。ここで、抑揚レベルとは、１つの音符を演奏するときの抑揚レベルをいい、小節やフレーズに亘る抑揚レベルを意味していない。抑揚レベルは、その音符に対応するキーオンイベント中のベロシティデータに基づいて決定し、その表示は、前記ピアノロールと同様に、バーの長さを発音継続時間に応じて変更するとともに、前記ピアノロールと異なり、バーの幅を抑揚レベルに応じて変更することによって行う。なお、抑揚レベルは、音符の各音価および各ベロシティデータに応じた抑揚レベルのマップを予め作成し、このマップを、目的の音符の音価およびベロシティデータに応じて検索することにより、決定するようにすればよい。また、抑揚レベルは、隣接する抑揚レベルの差分値として記憶しておけば、マップの記憶容量を削減することができる。
【０１４１】
ＳＭＦ形式の演奏データには休符イベントが含まれていないため、ＳＭＦ形式の演奏データに基づいて譜面表示を行う従来の装置では、休符をイベントとして取り扱っていなかった。このため、休符を直接編集することはできなかった。本実施の形態では、ＳＭＦ形式の演奏データを解析することにより、休符イベントを生成し、この休符イベントを直接編集できるようにしている。
【０１４２】
休符イベントは、次のようにして生成する。すなわち、目的の演奏データ中、最初のノートオンイベントからノートオンイベント毎に順次、その対応するノートオフイベントまでの発音継続時間が、その直後に位置するノートオンイベントの出現時点と重なるか否かをチェックし、重なる場合には、当該隣接する音符（ノートイベント）間には休符イベントが含まれていないと判別し、重ならない場合には、その消音されている時間に応じた音符長の休符イベントが含まれていると判別する。
【０１４３】
図１１は、生成された休符イベントの表示例とその編集例を示す図であり、（ａ）は、生成された休符イベントを、その休符イベントを挟んで存在する音符とともに表示させた一例を示し、（ｂ）は、（ａ）の休符イベントの音符長を変更せずに、その休符イベントの前後に存在する音符の音符長を変更（編集）した一例を示し、（ｃ）は、（ａ）の休符イベントおよびその直後の音符の各音符長を変更（編集）した一例を示している。
【０１４４】
図１１（ａ）において、和音ｎ１およびｎ２の各構成音の発音継続時間は、前記図１０と同様に、ピアノロールｎ１１〜ｎ１３およびｎ２１〜ｎ２３により表示され、ピアノロールｎ１２の終端とピアノロールｎ２１の先端との時間間隔が消音継続時間を示すインターバルｉとして表示されている。
【０１４５】
自動演奏が進行し、その自動演奏が和音ｎ１に移行すると、和音ｎ１が強調表示され、和音ｎ１の構成音の最後の発音が終了した時点（ピアノロールｎ１２の終端の時点）で、生成された休符ｒが強調表示され、インターバルｉの消音継続時間が経過すると、次の和音ｎ２が強調表示される。
【０１４６】
自動演奏を行っていない状態で、図示しないポインチングカーソルを用いて、（ｂ）に示すように、インターバルｉをその長さを変更せずに、矢印ａ１の長さだけ和音ｎ２の方向に移動させると、ピアノロールｎ１１〜ｎ１３の長さが矢印ａ１の長さだけ長く変更されるとともに、ピアノロールｎ２１〜ｎ２３の長さが矢印ａ１の長さだけ短く変更される。それと同時に、和音ｎ１およびｎ２の音符長が、それぞれ和音ｎ１′およびｎ２′の音符長に変更されて表示される。
【０１４７】
また、上記ポインチングカーソルを用いて、（ｃ）に示すように、インターバルｉを矢印ａ２の長さだけ長く変更すると、ピアノロールｎ２１〜ｎ２３の長さが矢印ａ２の長さだけ短く変更される。それと同時に、休符ｒおよび和音ｎ２の音符長が、それぞれ休符ｒ′およびｎ２′の音符長に変更されて表示される。
【０１４８】
このように、休符イベントを生成するようにしたので、演奏をさらに容易に行うことができるとともに、休符イベントそのもの、およびその近傍のイベントの編集を容易に行うことができる。
【０１４９】
なお、表示された休符を、ポインチングカーソルによって指示することで、その休符位置から自動演奏を開始できるようにしてもよい。休符はイベントとして生成するようにしたので、前述した方法を適用することにより、簡単に実現することができる。
【０１５０】
本実施の形態では、譜面表示は、表示装置９の表示能力に応じてなされていた。すなわち、表示すべき譜面が表示装置９の１画面分より多く存在する場合には、１画面に表示できる限り表示し、表示できない分は次頁以降のものとしていた。しかし、これではユーザの多様なニーズに応えることはできないため、ユーザのニーズに応じて、その表示態様を変更するようにしてもよい。具体的には、次のような表示態様を採用する。すなわち、
（１）印刷スペース優先表示
（２）音楽的見やすさ優先表示
（３）演奏性優先表示
等である。
【０１５１】
（１）の印刷スペース優先表示とは、印刷頁（したがって、表示頁も）を最も少なくするような表示態様をいい、スコアを表示（印刷）するときに有用な表示態様である。具体的には、小節毎の音符数を検出し、音符数に応じて小節区切りの長さを変更することで、印刷スペースを圧縮する。これは、小節区切りの長さを音符数に拘わらず固定にすると、音符数が少ない小節は、音符数が多い小節より、余白部分（音符が記載されていない部分）が多いので、これを縮減させても、ユーザは違和感を生じ難いからである。
【０１５２】
（２）の音楽的見やすさ優先表示とは、音楽的に一まとまりの部分を同じ頁内（または同じ段内）に優先的に表示するような表示態様をいい、音楽を創作するときに有用な表示態様である。具体的には、音楽的に一まとまりの部分を示すシンボルやフレーズマークを検出し、これに応じて改頁（または改段）する位置を決定する。音楽的に一まとまりの部分として、たとえばフレーズ区切りを採用した場合には、公知の手法により、演奏データからフレーズ区切りの位置を自動的に検出し、この位置で改頁（または改段）するようにすればよい。
【０１５３】
（３）の演奏性優先表示とは、ユーザがその演奏を最もし易いような表示態様をいい、パート譜やピアノ譜等に有用な表示態様である。具体的には、演奏データから休符の存在する位置を検出し、その位置が譜めくりをすべき位置になるように、譜面の表示位置を調整する。なお、譜めくりをすべき位置を偶数頁毎または奇数頁毎のいずれかに設定できるようにしてもよいし、演奏性優先パートを設定できるようにしてもよい。
【０１５４】
譜面表示を行う従来の装置では、図１２（ａ）に示す譜面のように、１小節に４つの音符（４つの４分音符）を表示するものとして、その１小節区間を等間隔に分割し、連音符が含まれていても、その分割区間に表示するようにすると、連音符を構成する各音符の表示間隔が狭まって見辛くなるため、図１２（ｂ）に示す譜面のように、表示すべき音符の種類に応じて表示間隔を変更するようにしている。表示間隔を変更する方法としては、たとえば、音符の種類に応じて表示間隔を調整するためのスペーシング情報というパラメータを定義し、このパラメータに基づいて表示間隔を決定する方法が知られている。そして、従来のスペーシング情報は、対応する小節内の座標を示すように定義されていたので、換言すると、従来のスペーシング情報は、小節毎に定義する必要があったので、スペーシング情報を用いるためには、小節毎定義しなければならず、面倒であった。
【０１５５】
これに対処するために、本実施の形態では、次のようにスペーシングデータを定義し、これを用いて表示間隔を調整している。
【０１５６】
図１２は、スペーシングデータの定義の仕方と、このように定義されたスペーシングデータを用いて表示間隔を調整した表示結果の一例を示す図であり、（ａ）は、スペーシングデータが初期値の場合を示し、（ｂ）は、スペーシングデータが意味のある所定値（初期値以外）の場合を示している。
【０１５７】
（ａ）および（ｂ）に示すように、スペーシングデータは、（カウント値，座標値）の組によって定義される。具体的には、（ａ）の場合には、（０，１０），（４８０，３０），（９６０，５０），（１３４０，７０），（１８２０，９０）と定義され、（ｂ）の場合には、（０，１０），（４８０，４５），（９６０，６５），（１３４０，７５），（１８２０，９０）と定義されている。ここで、カウント値とは、ＳＭＦ形式の演奏データにおける時間情報（発音継続時間）を意味し、“４８０”が４分音符の音符長に相当する。そして、座標は、１小節内の相対座標を示している。
【０１５８】
（ｂ）において、□（０，１０）と□（４８０，４５）との間には、４連符を表示するようにしている。すなわち、４連符が表示される間隔を、他の音符が表示される間隔より長くするように、スペーシングデータを定義している。そして、スペーシングデータは、図示例からも分かるように、離散値であるため、その中間値を補間により決定する必要がある。図示例では、補間方法として、直線補間を採用したが、これに限らず、音符の種類に応じて補間方法を変更するようにしてもよい。
【０１５９】
スペーシングデータは、予め様々な組み合わせのデータを作成して、テーブルデータとして記憶し、その中からユーザが選択できるようにすれば、ユーザが一からスペーシングデータを作成する手間が省ける。もし、テーブルデータ内に、ユーザの望むスペーシングデータが存在しないときには、ユーザの好みに最も近いものを選択し、それを編集できるようにすればよい。
【０１６０】
また、スペーシングデータは、従来のスペーシング情報と異なり、適用すべき小節に拘わらない汎用的なものとして定義したので、複数の小節に亘って１つのスペーシングデータを適用することができる。もちろん、所定の１小節に対してのみ、スペーシングデータを適用するようにしてもよい。
【０１６１】
このようにして、スペーシングデータをパターン化し複数の小節に亘って共有できるようにしたので、スペーシングデータを作成する手間を省くことができるとともに、そのデータ容量を削減することができる。また、あるスペーシングデータを適用して表示した結果、ユーザの好みに合わなかったときには、直ぐに他のスペーシングデータを適用することができ、ユーザの操作性が向上する。
【０１６２】
次に、ＳＭＦ形式の演奏データから、前記楽譜論理データの一部を自動的に生成する方法を説明する。
【０１６３】
ＳＭＦ形式の演奏データに含まれるメタイベントには、各パートで用いるべき楽器の種類を示しているものがあるため、このメタイベントを検出して解析することにより、譜面表示すべき楽器の種類を知ることができる。一方、楽器の種類毎に、用いるべき音部記号、表示段数、移調情報、記譜情報（たとえば、符頭や、音部をはみ出したときの表示等）、楽器の編成リスト等を記載したテンプレートを用意しておく。そして、入力された演奏データのメタイベントを解析して得られた楽器の種類に応じて、いずれかのテンプレートを選択し、そのテンプレートに記載されている情報に基づいて、前記楽譜論理データの一部を自動的に生成する。たとえば、表示譜面に表示される各パートの並び順の決定、該各パートを演奏すべき楽器名の表示、該楽器に合った音部記号の選択等である。
【０１６４】
図１３は、このようにして自動生成された楽譜論理データの一部を実際に表示したときの表示の一例を示す図である。同図に示すように、各パートには楽器名が表示され、その楽器名に合う音部記号および調号（移調による）が表示されている。そして、パートの並びも、所定のルール、すなわち、検出された楽器の種類および選択されたテンプレートに基づいて自動認識された楽器編成に対応したルールに従って決定されている。
【０１６５】
上記例では、各パートはいずれも、曲の始めから終わりまで１種類の楽器で演奏されるものとしたが、曲の途中で他の楽器に持ち替えて演奏する種類の曲もあり、図１４は、このような種類の曲において、楽器の持ち替えを生ずるパートを譜面表示したときの表示の一例を示している。
【０１６６】
同図中、（ａ）は、曲の途中で、ＭＩＤＩメッセージの「プログラムチェンジ」により、楽器が「アルトサックス（Ａ．Ｓａｘ）」から「テナーサックス（Ｔ．Ｓａｘ）」に変更される場合を示し、（ｂ）は、サックスパートが（ａ）のような場合に、各楽器毎に別段表示した表示の一例を示し、（ｃ）は、サックスパートが（ａ）のような場合に、各楽器を１段に持ち替え表示した表示の一例を示している。
【０１６７】
この場合にも、図１３で説明したように、選択されたテンプレートに基づいて、楽譜論理データの一部を生成している。ただし、この場合には、テンプレートとして、別段表示を行うためのものと、持ち替え表示を行うためのものの２種類を用意しておき、ユーザの指示に応じて、そのいずれかを選択する必要がある。
【０１６８】
また、譜面表示すべきパートの数が増えれば増えるほど、それだけ各パートの管理が面倒になるため、その管理をし易くする方法が望まれる。図１５は、多数のパートを簡単に管理する方法を説明するための図である。なお、この多数パートの管理方法は、汎用の演奏データに基づいて、汎用言語で記述された譜面情報を生成し、表示する装置に限らず、多数パートを管理する装置であれば、どのようなものに対しても適用することができる。
【０１６９】
図１５（ａ）において、楽器全体をルート（Ｒｏｏｔ）とし、その楽器全体を複数個の範疇に分割する。たとえば、木管楽器（Ｗｏｏｄ）、金管楽器（Ｂｒａｓｓ）、弦楽器、打楽器（ともに図示せず）等である。そして、これらの範疇のものを、ルートの下層とする。さらに、たとえば、木管楽器の範疇に含まれる楽器、具体的には、フルート（Ｆｌｕｔｅ）、オーボエ（Ｏｂｏｅ）、クラリネット（Ｃｌａｒｉ）、ファゴット（Ｆａｇｏｔ）等を、木管楽器の下層とする。そして、同じ種類の楽器でも、音色が微妙に異なるもの、たとえば、フルートに属するものＦ１１およびＦ１２を、フルートの下層とする。
【０１７０】
このように、各楽器に対して上層／下層の関係を形成しておき、ユーザが必要とする層のものを表示する。たとえば、ユーザが木管楽器の範疇に属する楽器の種類まで必要な場合には、Ｒｏｏｔ近傍のマーク|>（黒塗り三角形）をポインチングカーソルでクリックすることで、そのマークを▼に変更すると、その下層の楽器の範疇が現れ、その中のＷｏｏｄ近傍のマーク|>（黒塗り三角形）をクリックすることで、そのマークを▼に変更すると、その下層の楽器名が現れる。図１５（ａ）は、この状態を示している。
【０１７１】
さらに、Ｆｌｕｔｅ近傍のマーク|>（黒塗り三角形）をクリックすることで、そのマークを▼に変更すると、その下層のＦ１１およびＦ１２が現れる。図１５（ｂ）は、この状態を示している。
【０１７２】
図１６は、図１５で説明した各パートの管理方法を、本発明の譜面表示に適用した適用例を示す図であり、（ａ）は、フルートの下層まで表示し、それに応じてフルートＦ１１およびＦ１２それぞれ個別のパート譜を表示した場合を示し、（ｂ）は、フルートの表示までとし、それに応じてフルートＦ１１およびＦ１２で演奏すべき音符を１段に表示した場合を示している。
【０１７３】
図１７は、図１５で説明した各パートの管理方法を、パートではない、曲の構成に適用した適用例を示す図であり、（ａ）は、曲全体の構成がすべてオープンになった状態のイメージを示す図であり、（ｂ）は、（ａ）中、Ａ区間とＢ区間の各１６小節がまとめられてクローズになった状態を示す図である。すなわち、（ａ）において、ＡおよびＢ各近傍のマーク▼をクリックすることで、そのマークを|>（黒塗り三角形）に変更すると、（ｂ）に示すように、各１６小節が縮小され、まとめられて表示される。
【０１７４】
このようにして、ユーザは、曲全体の構造とその詳細とを自由に切り換えて見ることができ、これにより、ユーザの操作性を向上させることができる。
【０１７５】
複数声部が１パートにまとめられて譜面表示されているものを、分離したいことがある。図１８は、この要求に応える方法を説明するための図であり、（ａ）は、分離すべき声部を指定する道具を示し、（ｂ）は、分離後の表示例を示す図である。
【０１７６】
（ａ）において、たとえばレイヤデータにより、ノード“□”を有するスプリットラインｓを表示譜面上に重ねて表示させ、そのノード“□”を移動させることにより、スプリットラインｓを分離すべき和声の位置に合わせる。この図示例では、スプリットラインｓにより、１パートにまとめられて表示されている和声部を、右手パートと左手パートに分割するようにしている。
【０１７７】
このようにして、（ａ）の和声部を左手パートと右手パートに分割し、この分割後の右手パートを表示したものが、（ｂ）の上の譜面表示であり、この分割後の左手パートを表示したものが（ｂ）の下の譜面表示である。（ｂ）の下の譜面表示中、休符が表示されているが、これは、その位置（２拍目と４拍目）の音符が右手パートに属することを視覚的に理解でき易くするためになされている。
【０１７８】
なお、スプリットラインｓのノード“□”の位置を、音符と関連付けて記憶しておくと、声部分けの再編集時に使用できる。また、既に分離された情報に基づいて、スプリットラインｓのノード“□”の位置を自動生成するようにしてもよい。
【０１７９】
本実施の形態の譜面情報生成・表示装置で表示される譜面は、紙に印刷された譜面と同様の品質を備えているため、表示譜面をプリンタでプリントアウトした場合のプリント結果は、紙譜面と同様の品質になる。したがって、表示譜面をプリンタで自由にプリントアウトすることにより発生する譜面の不正な複製を防止する必要がある。その防止方法を、次に説明する。
【０１８０】
すなわち、本実施の形態の譜面情報生成・表示装置単独では、表示譜面をプリンタが必要な印刷イメージに変換できないようにする。具体的には、表示用のフォントと、印刷用のフォントとを分け、表示用のフォントは表示装置９に譜面を表示させるときの最低限の品質を備えたものとし、それを用いて表示譜面のハードコピーを取ったとしても、印刷品質が落ちるため、複製には向かず、一方、印刷用のフォントは、サーバコンピュータ１０２上にのみ格納しておき、サーバコンピュータ１０２が、本実施の形態の譜面情報生成・表示装置から、表示譜面をプリントアウトする指示を受信し、続いて、その表示譜面と同様の譜面を印刷するための情報を受信すると、これに応じて、サーバコンピュータ１０２は、印刷イメージを生成し、本実施の形態の譜面情報生成・表示装置にダウンロードするようにする。本実施の形態の譜面情報生成・表示装置は、このダウンロードした印刷イメージを、そのままプリンタに出力することで、表示譜面と同様の譜面をプリンタからプリントアウトすることができる。
【０１８１】
そして、サーバコンピュータ１０２が印刷イメージを作成してダウンロードする度に、課金するようにすれば、譜面の不正コピーを防止することができる。
【０１８２】
なお、表示譜面のハードコピーまで防止するようにするには、たとえば、表示譜面に“ＳＡＭＰＬＥ”等の透かし文字を描画しておくようにすればよい。また、課金は、ネットワーク上で決済するシステムを用いればよい。
【０１８３】
このように、表示譜面に課金をするようになると、その料金を算出する方法が必要になる。たとえば、次のようにしてその料金を算出する。
【０１８４】
図１９は、表示譜面の印刷に課金するときの料金の算出方法を説明するための図であり、（ａ）は、制作コストと初期価格との関係を示す初期価格曲線を示し、（ｂ）は、経年と経年度数との関係を示す経年曲線を示し、（ｃ）は、アクセス数とアクセス度数との関係を示すアクセス曲線を示している。
【０１８５】
実売価格は、たとえば、「初期価格×経年度数＋アクセス度数」という算出式により算出する。この算出式は、「実売価格は、そのコンテンツが古くなれば、低下傾向を示すが、そのコンテンツを欲する度合いが強ければ（アクセス度数が大きければ）、増加傾向を示す」ということを意味する。
【０１８６】
なお、この算出式は、表示譜面の印刷に対する課金に限らず、どのようなコンテンツに対する課金にも、同様に適用することができる。
【０１８７】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ５やＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１８８】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１８９】
プログラムコードを供給するための記憶媒体としては、たとえば、前記フロッピーディスク２０、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ２１、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ６などを用いることができる。また、他のＭＩＤＩ機器１００や通信ネットワーク１０１を介してサーバコンピュータ１０２からプログラムコードが供給されるようにしてもよい。
【０１９０】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１９１】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ５などが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１９２】
【発明の効果】
以上説明したように、請求項１または８に記載の発明によれば、入力されたＭＩＤＩイベント情報に基づいて、該ＭＩＤＩイベント情報を楽譜表示するときに必要な楽譜論理情報であって、ＸＭＬで記述されたものが生成されるので、譜面情報の提供者は、この楽譜論理情報を画像情報と対応付ける情報を用意するだけで、汎用のビューアに譜面が表示され、したがって、譜面情報の提供者は、ビューア毎に異なった譜面情報を提供する必要がなくなり、費用面および時間面の負担を削減することができる。
【０１９３】
また、請求項２または９に記載の発明によれば、ＭＩＤＩイベント情報を楽譜表示するときに必要な楽譜論理情報であって、ＸＭＬで記述されたものが、該楽譜論理情報に基づいて楽譜表示するときの表示態様を規定するテンプレート情報に基づいて整形されるので、ユーザの思い通りの譜面を表示させることができる。
【０１９４】
さらに、請求項５または１２に記載の発明によれば、ＭＩＤＩイベント情報を楽譜表示するときに必要な楽譜論理情報であって、ＸＭＬで記述されたものと、前記ＭＩＤＩイベント情報とをリンクさせるための識別情報が、当該楽譜論理情報およびＭＩＤＩイベント情報にそれぞれ付与されるので、ＭＩＤＩイベント情報に基づく自動演奏と楽譜論理情報に基づく譜面表示とを連動させることができる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態に係る譜面情報生成・表示装置の概略構成を示すブロック図である。
【図２】  図１の譜面情報生成・表示装置が実行する処理の体系を示すブロック図である。
【図３】  入力された汎用演奏データおよび汎用譜面データから譜面情報を生成する処理の流れを示すブロック図である。
【図４】  図３の譜面作成エンジンが実行する譜面情報作成処理の手順を示すフローチャートである。
【図５】  生成された楽譜論理データ、供給された浄書データおよびスタイルシートから譜面情報を表示する処理の流れを示すブロック図である。
【図６】  整形された楽譜論理データおよび音楽用スタイルシートをＷｅｂブラウザで実際に表示した表示例を示す図である。
【図７】  ＸＭＬによる楽譜論理データの２種類の記述方法を示す図である。
【図８】  図１の譜面情報生成・表示装置が、譜面表示を行いながら、演奏データによる自動演奏を行う場合に、行うことができる処理の手順を示すフローチャートである。
【図９】  ネットワークを介して音楽教習を行うときに、教師端末と生徒端末がそれぞれ行う処理の手順を示すフローチャートである。
【図１０】  ユーザの演奏を支援するために、音符とピアノロールを同時表示した譜面表示の一例を示す図である。
【図１１】  生成された休符イベントの表示例とその編集例を示す図である。
【図１２】  スペーシングデータの定義の仕方と、このように定義されたスペーシングデータを用いて表示間隔を調整した表示結果の一例を示す図である。
【図１３】  自動生成された楽譜論理データの一部を実際に表示したときの表示の一例を示す図である。
【図１４】  曲の途中で他の楽器に持ち替えて演奏する種類の曲において、楽器の持ち替えを生ずるパートを譜面表示したときの表示の一例を示している。
【図１５】  多数のパートを簡単に管理する方法を説明するための図である。
【図１６】  図１５で説明した各パートの管理方法を、本発明の譜面表示に適用した適用例を示す図である。
【図１７】  図１５で説明した各パートの管理方法を、パートではない、曲の構成に適用した適用例を示す図である。
【図１８】  複数声部が１パートにまとめられて譜面表示されているものを、分離したいという要求に応える方法を説明するための図である。
【図１９】  表示譜面の印刷に課金するときの料金の算出方法を説明するための図である。
【符号の説明】
５  ＣＰＵ
６  ＲＯＭ
７  ＲＡＭ
９  表示装置
１１  ＨＤＤ
１３  ＭＩＤＩＩ／Ｆ
１４  通信Ｉ／Ｆ
１５  音源回路
【図１】
0003659124.tif 000002
【図２】
0003659124.tif 000003
【図３】
0003659124.tif 000004
【図４】
0003659124.tif 000005
【図５】
0003659124.tif 000006
【図６】
0003659124.tif 000007
【図７】
0003659124.tif 000008
【図８】
0003659124.tif 000009
【図９】
0003659124.tif 000010
【図１０】
0003659124.tif 000011
【図１１】
0003659124.tif 000012
【図１２】
0003659124.tif 000013
【図１３】
0003659124.tif 000014
【図１４】
0003659124.tif 000015
【図１５】
0003659124.tif 000016
【図１６】
0003659124.tif 000017
【図１７】
0003659124.tif 000018
【図１８】
0003659124.tif 000019
【図１９】
0003659124.tif 000020