(57)【特許請求の範囲】
【請求項１】
個々の楽音を表す音符や前記楽音の演奏を特徴付ける各種音楽記号を、所定の表示画面に表示された楽譜上の適宜の位置に入力することで、該楽譜に従う楽音を再生するための演奏情報を編集する楽曲情報編集装置であって、
各種音楽記号の入力に従い、該入力された音楽記号を楽譜上に表示するための楽譜表示情報を生成し、該生成した楽譜表示情報に対して固有の識別子を付加する表示情報生成手段と、
前記生成した楽譜表示情報に対応する部分的な再生情報を生成し、該生成した部分的な再生情報の全てに対して前記楽譜表示情報に付加したのと同じ識別子を付加する再生情報生成手段と、
前記生成した部分的な再生情報を前記演奏情報の所定位置に書き込む制御手段と
を具えてなり、
前記生成した楽譜表示情報と該楽譜表示情報に対応する部分的な再生情報とを固有の識別子で対応付けて楽譜全体の演奏情報を構成するようにしたことを特徴とする楽曲情報編集装置。
【請求項２】
前記制御手段は、入力された音楽記号が独立記号である場合に、前記作成された再生情報を演奏情報の所定位置に挿入することにより楽譜全体の演奏情報を生成することを特徴とする請求項１に記載の楽曲情報編集装置。
【請求項３】
前記制御手段は、入力された音楽記号が装飾記号である場合に、前記作成された再生情報を入力された装飾記号が音楽的に影響を及ぼす全ての音符に関する再生情報に上書きすることにより楽譜全体の演奏情報を生成することを特徴とする請求項１に記載の楽曲情報編集装置。
【請求項４】
既に音楽記号が入力されている箇所に新たな音楽記号を追加的に入力した場合に、前記表示情報生成手段は以前に入力された音楽記号と新たに入力された音楽記号の全てを表示する楽譜表示情報を生成し、前記再生情報生成手段は前記生成した楽譜表示情報に対応する部分的な再生情報を生成し、以前に入力された音楽記号に関する楽譜表示情報及び再生情報に付加されている識別子とは異なる新たな識別子を該生成した楽譜表示情報及び再生情報に対してそれぞれ付加することを特徴とする請求項１に記載の楽曲情報編集装置。
【請求項５】
個々の楽音を表す音符や前記楽音の演奏を特徴付ける各種音楽記号を、所定の表示画面に表示された楽譜上の適宜の位置に入力することで、該楽譜に従う楽音を再生するための演奏情報を編集する楽曲情報編集プログラムであって、
各種音楽記号の入力に従い、該入力された音楽記号を楽譜上に表示するための楽譜表示情報を生成し、該生成した楽譜表示情報に対して固有の識別子を付加するステップと、
前記生成した楽譜表示情報に対応する部分的な再生情報を生成し、該生成した部分的な再生情報の全てに対して前記楽譜表示情報に付加したのと同じ識別子を付加するステップと、
前記生成した部分的な再生情報を前記演奏情報の所定位置に書き込むことで、生成した楽譜表示情報と該楽譜表示情報に対応する部分的な再生情報とを固有の識別子で対応付けて楽譜全体の演奏情報を生成するステップと
を具備する楽曲情報編集プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、所定の表示装置に表示された五線譜などの楽譜上に所望の音符や音楽記号等を適宜に入力するといった楽譜編集操作に従って、自動的に自動演奏等に用いる演奏情報を生成する楽曲情報編集装置及び楽曲情報編集プログラムに関する。特に、楽譜編集操作を加えた箇所に対応する部分的な演奏情報のみを自動的に生成するようにした楽曲情報編集装置及び楽曲情報編集プログラムに関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータの普及に伴い、コンピュータを用いて楽器を演奏したり、作曲したり、編曲したり、音色を合成したりするＤＴＭ（デスクトップミュージック）により、誰でもが音楽を自由かつ簡単に楽しめるようになってきた。特に、最近のＤＴＭにおいては、ディスプレイなどの表示装置に表示された五線譜上に所望の音符や音楽記号などを適宜に配置して楽譜編集を行うことによって、該楽譜に対応した演奏情報を自動的に生成することができるようになっている。これによると、例えばＭＩＤＩ（Musical Instrument Digital Interface）規格等に関する専門的な知識の少ないユーザや、あるいは音符が読めないといったような音楽的な知識の少ないユーザであっても、より自然な演奏、美しい演奏、生々しい演奏、癖のある個性的な演奏など、表情ある多彩な演奏を行うことが可能な演奏情報を、楽譜を編集するといった簡単な操作だけで生成することができる。こうしたＤＴＭ、すなわち楽曲情報編集装置では、表示装置上に作成した楽譜を表示する楽譜表示情報と、作成した楽譜に対応する楽曲を再生（つまり自動演奏）する演奏情報とを別々に、それぞれ楽譜の開始から終りまでの楽譜全体分について記憶している。
【０００３】
【発明が解決しようとする課題】
ところで、上述したような従来の楽曲情報編集装置においては、楽譜の一部の箇所が編集された場合、楽譜表示情報に対しては楽譜編集箇所に対応する部分のデータのみを編集する一方で、演奏情報に対しては楽譜編集箇所に関わらず楽譜の開始から終りまでの楽譜全体分のデータを新たに再生成する。すなわち、従来の楽曲情報編集装置においては楽譜表示情報と演奏情報とが部分的に対応付けられて記憶されていなかったことから、楽譜の一部の箇所に対して編集を加えるたびに楽譜全体分の演奏情報を新たに生成しなければならなかった。このように、従来では楽譜の編集が行われるたびに、こうした楽譜の編集部分の大小に関わらず常に楽譜全体分の演奏情報を生成していたため、楽譜表示情報の編集量に比べて演奏情報の編集量が無駄に増え、楽曲情報編集処理に時間がかかり効率が非常に悪い、という問題点があった。
【０００４】
本発明は上述の点に鑑みてなされたもので、楽譜への部分的な編集に応じて、該楽譜の編集部分に対応する演奏情報のみを自動的に生成することにより演奏情報の生成に係る処理量を軽減し、効率的に楽曲情報編集処理を行うことができるようにした楽曲情報編集装置及び楽曲情報編集プログラムを提供しようとするものである。
【０００５】
【課題を解決するための手段】
本発明に係る楽曲情報編集装置は、個々の楽音を表す音符や前記楽音の演奏を特徴付ける各種音楽記号を、所定の表示画面に表示された楽譜上の適宜の位置に入力することで、該楽譜に従う楽音を再生するための演奏情報を編集する楽曲情報編集装置であって、各種音楽記号の入力に従い、該入力された音楽記号を楽譜上に表示するための楽譜表示情報を生成し、該生成した楽譜表示情報に対して固有の識別子を付加する表示情報生成手段と、前記生成した楽譜表示情報に対応する部分的な再生情報を生成し、該生成した部分的な再生情報の全てに対して前記楽譜表示情報に付加したのと同じ識別子を付加する再生情報生成手段と、前記生成した部分的な再生情報を前記演奏情報の所定位置に書き込む制御手段とを具えてなり、前記生成した楽譜表示情報と該楽譜表示情報に対応する部分的な再生情報とを固有の識別子で対応付けて楽譜全体の演奏情報を構成するようにしたことを特徴とする。
【０００６】
この発明によると、各種音楽記号の入力に従って生成した楽譜表示情報と該楽譜表示情報に対応する部分的な再生情報とを固有の識別子で対応付けて楽譜全体の演奏情報を構成するようにしたことから、効率的に楽曲情報編集処理を行うことができる。すなわち、個々の楽音を表す音符や前記楽音の演奏を特徴付ける各種音楽記号を、所定の表示画面に表示された楽譜上の適宜の位置に入力した場合には、該入力された音楽記号を楽譜上に表示するための楽譜表示情報を生成するが、該生成した楽譜表示情報に対して固有の識別子を付加しておく。また、各種音楽記号を入力した場合には、前記生成した楽譜表示情報に対応する部分的な再生情報を生成する。この際に、該生成した部分的な再生情報の全てに対して前記楽譜表示情報に付加したのと同じ識別子を付加しておく。そして、前記生成した部分的な再生情報を前記演奏情報の所定位置に書き込むことで、入力された音楽記号を含む楽譜全体の演奏情報を生成する。このように、音楽記号の入力といった楽譜への部分的な編集に応じて、該編集された楽譜に対応する部分的な再生情報のみを生成し、入力した音楽記号を表示するための楽譜表示情報と生成した部分的な再生情報とを固有の識別子で対応付けておくことで、音楽記号の入力時には部分的な再生情報のみを編集対象とすることができる。したがって、楽曲情報の生成に係る処理量を軽減でき、効率的に楽曲情報編集処理を行うことができるようになる。
【０００７】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【０００８】
【発明の実施の形態】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明する。
【０００９】
図１は、この発明に係る楽曲情報編集装置の全体構成の一実施例を示したハード構成ブロック図である。ここに示された楽曲情報編集装置のハードウエア構成例はコンピュータを用いて構成されており、そこにおいて、楽曲情報（後述するように、詳しくは演奏情報と楽譜表示情報とが含まれる）の編集はコンピュータがこの発明に係る楽曲情報編集処理を実現する所定のプログラム（ソフトウエア）を実行することにより実施される。勿論、この楽曲情報編集処理はコンピュータソフトウエアの形態に限らず、ＤＳＰ（Digital Signal Processor）によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。また、本発明に係る楽曲情報編集装置はパーソナルコンピュータに限らず、電子楽器やカラオケ装置又は電子ゲーム装置、あるいはその他のマルチメディア機器等、任意の製品応用形態をとっているものであってもよい。
【００１０】
本実施例に示す楽曲情報編集装置は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータによって制御されるようになっている。ＣＰＵ１は、この楽曲情報編集装置全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してリードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３、ＭＩＤＩインタフェース（Ｉ／Ｆ）４、操作回路５、表示回路６、音源回路７、外部記憶装置８、通信インタフェース（Ｉ／Ｆ）９がそれぞれ接続される。更に、ＣＰＵ１には、タイマ割込み処理（インタラプト処理）における割込み時間や各種時間を計時するタイマ１Ａが接続される。すなわち、タイマ１Ａは時間間隔を計数したり、楽譜編集に伴い生成される楽曲情報の中の演奏情報に従って楽曲を再生する際に用いる演奏テンポを設定したりするためのクロックパルスを発生する。このようなタイマ１ＡからのクロックパルスはＣＰＵ１に対して処理タイミング命令として与えられたり、あるいはＣＰＵ１に対してインタラプト命令として与えられる。ＣＰＵ１は、これらの命令に従って各種処理を実行する。
【００１１】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種制御プログラム（例えば、後述する楽曲情報編集処理などのプログラム）や各種データ（例えば、後述する音楽記号定義テーブルや曲テンプレートなど）や複数の音楽記号のそれぞれを表示するための複数の音楽記号画像データや音符を表示するための音符画像データ等を格納するものである。ＲＡＭ３は、ユーザによる楽譜編集操作に伴って生成される１つの楽譜及び該楽譜に対応する楽曲を表す楽曲情報（後述するように、演奏情報と楽譜表示情報とを含む）やＣＰＵ１が所定のプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中の制御プログラムやそれに関連するデータを記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。
【００１２】
ここで、上述したＲＯＭ２に記憶される音楽記号定義テーブル及び曲テンプレートについて、簡単に説明する。まず、音楽記号定義テーブルについて説明する。
音楽記号定義テーブルは音楽記号毎の種類定義情報、すなわち楽譜編集の際に表示装置６Ａ（例えば、ディスプレイ）に表示された五線譜上に入力することが可能な音楽記号の全てについて、それぞれの音楽記号を所定の種類に分類する定義情報である。音楽記号を所定の種類別に大きく分けると、第１の種類として楽曲全体（例えば、メロディに関するメロディパート、ベースやコード演奏などに関する伴奏パート、リズム伴奏に関するリズムパートなどの複数パートの全て）に対して音楽的な影響を及ぼす記号、第２の種類として１つのパートに対してのみに音楽的な影響を及ぼし、音符表示の編集を必要とせず予め用意されている音楽記号の画像データをそのまま表示に使う記号、第３の種類として１つのパートにおける特定箇所の音符に対して音楽的な影響を及ぼし、特定箇所の音符表示の編集を必要とし予め用意されている音楽記号と音符の画像データを使って新たな表示用の画像データを生成してそれを表示に使う記号とがある。上記第１の種類に分類される音楽記号はおもにテンポを制御するために用いられる音楽記号（例えば、アレグロやリタルダンドなど）であり、この実施例ではこうした音楽記号を「マスタ独立記号」と呼ぶ。上記第２の種類に分類される音楽記号はおもにパートごとの音量を制御するために用いられる音楽記号であり（例えば、メゾ・フォルテやピアニッシモなど）、この実施例ではこうした音楽記号を「（通常）独立記号」と呼ぶ。上記第３の種類に分類される音楽記号はおもに音符の音高を変化させたり、発音長を変化させたり、隣接する音符と連続的につなげたり、装飾音を付加したりするために用いられる音楽記号（例えば、チョーキングやトリルなど）であり、この実施例ではこうした音楽記号を「装飾記号」と呼ぶ。ユーザによって五線譜上に入力されたそれぞれの音楽記号を上記３つの種類のいずれかに分類するために、上記したような音楽記号定義テーブルが予めＲＯＭ２に用意されている。
【００１３】
次に、曲テンプレートについて簡単に説明する。
曲テンプレートは大きく分けて、音楽記号と、表示データ（後述する）から再生データ（後述する）を作成するための方法を表す情報とから構成されるデータである。すなわち、個々の曲テンプレートは音楽記号毎に再生データの作成方法を記憶しており、各音楽記号に従う音楽的特徴を実現するための楽音制御情報（つまり再生データ）を表示データを用いて作成することができるようになっている。例えば、音楽記号と表情付けのための楽音制御情報との対応関係を所定の表情付けアルゴリズムにおけるルールとして設定し、この表情付けルールを表す生成方法情報を予め音楽記号毎に記憶しておき（つまり曲テンプレート）、入力された音楽記号に対応する表情付けアルゴリズムに従って楽音制御情報を生成して演奏情報に付加する。こうした曲テンプレートと表示データを用いた楽音制御情報の生成については、一例として本出願人が既に出願済みの特開2001‐159892号がある。
【００１４】
図１に示すハードウエア構成の説明に戻って、ＭＩＤＩインタフェース（Ｉ／Ｆ）４は、当該楽曲情報編集装置に接続された外部の電子楽器４Ａ等からＭＩＤＩ規格の演奏情報（つまり、ＭＩＤＩデータ）を当該楽曲情報編集装置へ入力したり、あるいは当該楽曲情報編集装置からＭＩＤＩ規格の演奏情報（ＭＩＤＩデータ）を外部の電子楽器４Ａ等へ出力するためのインタフェースである。外部の電子楽器４Ａはユーザによる操作に応じてＭＩＤＩデータを発生する機器であればよく、鍵盤型、弦楽器型、管楽器型、打楽器型、身体装着型等どのようなタイプの操作子を具えた（若しくは、操作形態からなる）機器であってよい。
【００１５】
なお、ＭＩＤＩインタフェース４は専用のＭＩＤＩインタフェースを用いるものに限らず、ＲＳ−２３２Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインタフェースを用いてＭＩＤＩインタフェース４を構成するようにしてもよい。この場合、ＭＩＤＩデータ以外のデータをも同時に送受信するようにしてもよい。ＭＩＤＩインタフェース４として上記したような汎用のインタフェースを用いる場合には、外部の電子楽器４ＡはＭＩＤＩデータ以外のデータも送受信できるようにしてよい。勿論、演奏情報に関するデータフォーマットはＭＩＤＩ形式のデータに限らず、他の形式であってもよく、その場合はＭＩＤＩインタフェース４と外部の電子楽器４Ａはそれにあった構成とする。
【００１６】
操作子５Ａは、表示装置６Ａに表示された五線譜に対して音符や音楽記号を入力するための各種のスイッチ等を含んで構成される。勿論、音高、音色、効果等を選択・設定・制御するために用いる数値データ入力用のテンキーや文字データ入力用のキーボード、あるいは表示装置６Ａに表示される所定のポインティングデバイスを操作するために用いるマウスなどの各種操作子を含んでいてよい。操作回路５は、操作子５Ａの各スイッチの操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス１Ｄを介してＣＰＵ１に出力する。表示回路６はユーザによる楽譜編集を補助するためにユーザに対し提示する五線譜や、ユーザが提示された五線譜上に入力することのできる音符や音楽記号などの各種記号一覧等の各種情報を、例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成される表示装置６Ａに表示するのは勿論のこと、演奏情報を再生する際に用いる各種演奏条件やＣＰＵ１の制御状態などを表示装置６Ａに表示する。
【００１７】
音源回路７は、複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられた演奏情報を入力し、この演奏情報に基づいて楽音信号を発生する。音源回路７から発生された楽音信号は、アンプやスピーカなどを含むサウンドシステム７Ａから発音される。演奏情報の形式はＭＩＤＩ形式のようなディジタル符号化されたものであってもよいし、ＰＣＭ、ＤＰＣＭ、ＡＤＰＣＭのような波形サンプルデータ方式からなるものであってもよい。この音源回路７とサウンドシステム７Ａの構成には、従来のいかなる構成を用いてもよい。例えば、音源回路７はＦＭ、ＰＣＭ、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、また専用のハードウェアで構成してもよいし、ＣＰＵ１によるソフトウェア処理で構成してもよい。
【００１８】
外部記憶装置８は、楽譜編集操作に応じて生成される楽曲情報（後述する）や、ＣＰＵ１が実行する各種制御プログラム等の制御に関するデータなどを記憶するものである。前記ＲＯＭ２に制御プログラムが記憶されていない場合に、この外部記憶装置８（例えばハードディスク）に制御プログラムを記憶させておき、それをＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置８はハードディスク（ＨＤ）に限られず、フレキシブルディスク（ＦＤ）、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＷ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Digital Versatile Disk）等の着脱自在な様々な形態の外部記憶媒体を利用する記憶装置であればどのようなものであってもよい。半導体メモリなどであってもよい。
【００１９】
通信インタフェース（Ｉ／Ｆ）９は、例えばＬＡＮやインターネット、電話回線等の有線あるいは無線の通信ネットワークＸに接続されており、該通信ネットワークＸを介して、図示しないサーバコンピュータなどと接続され、当該サーバコンピュータなどから制御プログラム、若しくは上述した音楽記号定義テーブルや曲テンプレートなどの各種データを楽曲情報編集装置側に取り込むためのインタフェースである。すなわち、ＲＯＭ２や外部記憶装置８（例えば、ハードディスク）等に制御プログラムや各種データが記憶されていない場合に、サーバコンピュータなどから制御プログラムや各種データをダウンロードするために用いられる。クライアントとなる楽曲情報編集装置は、通信インターフェース９及び通信ネットワークＸを介してサーバコンピュータへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求された制御プログラムや各種データを通信ネットワークＸを介して本楽曲情報編集装置へと配信し、本楽曲情報編集装置が通信インタフェース９を介して、これら制御プログラムや各種データを受信して外部記憶装置８（例えば、ハードディスク）等に蓄積することにより、ダウンロードが完了する。なお、通信インタフェース９及び通信ネットワークＸは、有線のものに限らず無線のものであってもよい。また、双方を具えていてもよい。
【００２０】
なお、上述したような楽曲情報編集装置は操作子５Ａや表示装置６Ａあるいは音源回路７などを１つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、ＭＩＤＩインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことはいうまでもない。
【００２１】
図１に示した楽曲情報編集装置においては、表示装置６Ａ上に表示された五線譜に対して、ユーザがマウス等を利用して適宜の位置に所望の音符や音楽記号を配置していくことで、所定の楽曲情報を生成することができるようになっている。生成される楽曲情報は１つの楽曲を表す情報であって、表示装置６Ａ上に所定の楽譜を表示する楽譜表示情報と、その楽譜に対応する楽曲を再生する演奏情報とからなるデータである。そこで、本発明に係る楽曲情報編集装置における楽譜編集操作に従って生成される楽曲情報、つまり演奏情報及び楽譜表示情報の各々のデータ構成について、図２及び図３を用いてそれぞれ説明する。
【００２２】
まず、楽曲情報に含まれる演奏情報のデータ構成について、図２を用いて説明する。図２は、演奏情報のデータ構成の一実施例を示す概念図である。この演奏情報は楽譜編集操作に従って生成される１つの楽曲全体を再生するためのデータであり、従来から知られたＳＭＦ（Standard MIDI File）等の所定のファイル形式で記録された複数パート構成（若しくは複数トラック構成）のデータである。
【００２３】
図２から理解できるように、演奏情報は大別すると、１つのマスタトラックデータと複数のトラックデータとに分けることができる。マスタトラックデータは楽曲再生の際に用いる各種の再生態様を設定するための情報であり、例えば自動演奏の際に用いる演奏テンポを規定するテンポデータ、音色を規定する音色データ、音量を規定する音量データなどを含む。このマスタトラックデータは、全てのトラックデータに共通に利用されるデータである。一方、第１トラック、第２トラック、…といった各トラックデータは自動演奏される楽曲の再生内容を表わす情報であり、各パート（例えば、メロディに関するメロディパート、ベースやコード演奏などに関する伴奏パート、リズム伴奏に関するリズムパート）毎のタイミングデータとイベントデータの組みを再生進行順に記憶しているデータである。
【００２４】
各トラックデータに記憶されるタイミングデータは発音や消音などの楽曲を再生するための各種イベントデータを処理すべき時間（すなわち、タイミング）を表わすデータであり、ＭＩＤＩクロックに準じたクロック数で表すことのできるデータである。このタイミングデータは、イベントを処理すべきタイミングを曲の先頭や各小節の先頭からの絶対時間（つまり、絶対的なクロック数）、あるいは１つ前のイベントからの相対時間（つまり、相対的なクロック数）で示される。各トラックデータに記憶されるイベントデータは、発音や消音などの楽曲を再生するための各種イベントの内容を表わすデータである。こうした各種イベントの内容としてはキーオン、キーオフ、テンポ変更、音色変更などがあり、これらのイベントを基にして楽曲再生（つまり自動演奏）は行われる。これらのタイミングデータや演奏イベントデータに対しては、該イベントデータと対応しているオブジェクトデータ（後述する図３参照）を表す識別子（ＩＤ）が必要に応じて付加される。すなわち、識別子ＩＤはオブジェクト情報が存在するタイミングデータ及び演奏イベントデータに対してのみ付加されるものであり、この識別子ＩＤにより演奏イベントとオブジェクトデータ（詳しくは表示データ）との対応をとるようにしている。この識別子(ＩＤ)は、１回の楽譜編集に対して１個の固有の識別子（ＩＤ）が割当てられる。例えばＩＤ１、ＩＤ２、ＩＤ３、…などの固有の記号が識別子（ＩＤ）として、１回の楽譜編集毎にそれぞれ割当てられることになる。
【００２５】
なお、演奏情報は図２に示したようにマスタトラックデータと各トラックデータとが連続的に記憶領域に記憶されているものに限らず、飛び飛びの記憶領域に散在して記憶されていてもよい。例えば、マスタトラックデータと各トラックデータとを別々のメモリ上に記憶してもよい。ただし、この場合には各々散在するデータを、連続するデータとして別途管理することが必要であることはいうまでもない。例えば、マスタトラックデータと各トラックデータとを関連づけしたテーブルを用意しておき、このテーブルを参照することによって１つの演奏情報を決定するようにしてよい。さらに、複数パートに関するタイミングデータと演奏イベントデータとを１つのトラックデータに混在記憶させてもよく、この場合には各タイミングデータ及び演奏イベントデータ毎にトラックを識別するためのトラック識別データなどを付与しておくとよい。
【００２６】
次に、楽曲情報に含まれる楽譜表示情報のデータ構成について、図３を用いて説明する。図３は、楽譜表示情報のデータ構成の一実施例を示す概念図である。この楽譜表示情報は楽譜編集の際に入力された音楽記号に関連する楽譜を表示装置６Ａ上に表示するためのデータであり、入力された音楽記号に関する演奏情報と対応付けられて記憶されている。
【００２７】
図３から理解できるように、楽譜表示情報は大別すると、オブジェクト情報とＩＤリスト情報とに分けることができる。オブジェクト情報は複数のオブジェクトデータ（第１オブジェクト、第２オブジェクト、第３オブジェクト、…）からなり、各オブジェクトデータは識別子(ＩＤ)と表示データとを含む。識別子(ＩＤ)は個々のオブジェクトデータを識別するためのデータであり、それぞれのオブジェクトデータごとに固有の記号（例えばＩＤ１、ＩＤ２、ＩＤ３、…など）が付される。各オブジェクトデータはこの識別子(ＩＤ)によって、同じ記号の識別子(ＩＤ)が付された演奏情報のタイミングデータ及び演奏イベントデータと対応付けされる。表示データは楽譜編集に従って入力された音楽記号や該音楽記号によって編集が加えられた音符などの表示画像を作成するためのデータであり、これに従って表示装置６Ａに表示した五線譜上に楽譜編集における音楽記号の入力に従う内容の楽譜を表示することができるようになっている。表示データは、楽譜表示用のタイミングデータと楽譜表示用のイベントデータとを演奏進行順（すなわち、表示装置６Ａ上に表示する楽譜の表示順）に記憶する。例えば、楽譜編集の際に装飾記号が入力された場合には、入力された装飾記号と該装飾記号に付随する一連の音符や他の装飾記号（つまり、入力された装飾記号により音楽的に影響が及ぼされるもの全て）を表すデータが、音符イベントと装飾記号イベントとを組み合わせた１つのイベントデータとして表示データに記録される。音符イベントは、表示する音符の内容を表わすデータである。装飾イベントは、表示する装飾記号の内容を表わすデータである。楽譜表示用のタイミングデータは、表示装置６Ａ上における音符イベントデータ（又は音符イベントと装飾記号イベントとを組み合わせたイベントデータ）の表示位置を表わすデータである。該楽譜表示用のタイミングデータは、上述した演奏情報におけるタイミングデータと同様のＭＩＤＩクロックに準じたクロック数で表わされるデータである。また、楽譜編集の際に独立記号が入力された場合には、該独立記号を表すデータのみが１つのイベントデータとして記録される。
【００２８】
ＩＤリスト情報は、各トラック毎で使用している識別子（ＩＤ）情報を表示の順番に記録したデータである。マスタトラックＩＤリストはマスタ独立記号、すなわち全てのパート（もしくはトラック）に影響する記号に対して付された識別子（ＩＤ）を記録する。第１トラックＩＤリストは独立記号や装飾記号など、すなわち第１トラック（パート）に影響する記号に対して付された識別子（ＩＤ）をそれぞれの記号毎に装飾記号ＩＤリスト又は独立記号ＩＤリストに分類して記録する。
【００２９】
図１に示した楽曲情報編集装置においては、表示装置６Ａに表示されている五線譜に対して、ユーザがマウス等を利用して適宜の位置に音符や音楽記号を配置していくことで、楽曲情報を生成することができる。特に、ユーザが五線譜上に音楽記号を入力した場合には、該楽譜編集操作に応じた楽譜表示を行う楽譜表示情報を生成し、該生成した楽譜表示情報と予め用意された曲テンプレートとを用いて作成した楽譜編集に対応する再生データに識別子（ＩＤ）を付加して演奏情報の所定位置に記憶する。そこで、こうした表示装置６Ａに表示された五線譜上でのユーザによる楽譜編集に伴って行われる楽曲情報の生成処理、すなわち楽譜表示情報及び演奏情報を生成する楽曲情報編集処理について説明する。図４は、図１に示した楽曲情報編集装置におけるＣＰＵ１で実行する「楽曲情報編集処理」の一実施例を示すフローチャートである。この「楽曲情報編集処理」は、当該プログラムの起動が指示されて終了が指示されるまでの間動作する処理である。以下、図４に示したフローチャートに従って、当該処理の動作を説明する。
【００３０】
ステップＳ１では、五線譜を表示する。すなわち、ユーザがマウス等を利用して音符や音楽記号を適宜の位置に配置して楽曲を生成しやすくするために、表示装置６Ａ上に五線譜を表示する。ステップＳ２では、作成済みの楽曲情報を選択して表示装置６Ａ上に楽譜を表示する指示が行われたか否かを判定する。作成済みの楽曲情報を選択して表示する指示は、既存の楽曲情報を編集する場合や、あるいは既存の楽曲情報を利用しながら新たな楽曲情報を作成する場合などに行われる指示である。作成済みの楽曲情報を選択して楽譜を表示する指示が行われていた場合には（ステップＳ２のＹＥＳ）、「楽譜の表示」処理を行う（ステップＳ３）。この「楽譜の表示」処理では、選択された楽曲情報に従って表示装置６Ａ上に楽譜を表示する。すなわち、ユーザが操作子５Ａ等を用いてＲＯＭ２やＲＡＭ３あるいは外部記憶装置８などに予め記憶されている楽曲情報の中から所望の楽曲情報を選択すると、該選択した楽曲情報に従って、表示装置６Ａ上に表示した五線譜に対して音符や音楽記号などを所定の位置に順次に表示して所定の楽曲の楽譜表示を完成する（詳しくは後述する）。一方、作成済みの楽曲情報を選択して楽譜を表示する指示が行われていない場合には（ステップＳ２のＮＯ）、上記「楽譜の表示」処理を行わないで、ステップＳ４の処理へいく。すなわち、既存の楽曲情報を利用せずに最初から最後まで新規に楽曲情報を作成する場合には、作成済みの楽曲情報を選択して楽譜を表示する指示を行う必要がないことからそうした指示は行われない。したがって、こうした場合には「楽譜の表示」処理を行わない。
【００３１】
ステップＳ４では、演奏イベントを入力する指示があったか否かを判定する。すなわち、ユーザが操作子５Ａ等を用いて五線譜上に新たに音符を追加する、あるいは五線譜上に既に表示されている音符を編集する（具体的には、音符の削除や音符の配置位置の変更、あるいは音符種類の変更など）といった指示があったか否かを判定する。演奏イベントを入力する指示があった場合には（ステップＳ４のＹＥＳ）、入力された演奏イベントのデータを演奏情報の対応する位置に書き込む（ステップＳ５）。例えば、五線譜上に新たに音符が追加された場合には入力された音符に関する演奏イベントデータを演奏情報の対応する位置に書き込むし、五線譜上に既に表示されている音符を編集した場合には演奏情報の対応する位置にある既存の演奏情報を削除して、入力された音符に関する演奏イベントデータを演奏情報の対応する位置に書き込む。そして、編集された部分の楽譜の表示を編集後の演奏情報の内容に従った楽譜の表示に変更する（ステップＳ６）。すなわち、五線譜上の表示を編集前の楽譜表示から編集後の楽譜表示へと変更する。一方、演奏イベントを入力する指示がなかった場合には（ステップＳ４のＮＯ）、上記ステップＳ５及びステップＳ６の処理を行わない。
【００３２】
ステップＳ７では、音楽記号のイベントを入力する指示があったか否かを判定する。すなわち、ユーザが操作子５Ａ等を用いて五線譜上に新たに音楽記号を追加する、あるいは五線譜上に既に表示されている音楽記号を編集する（具体的には、音楽記号の削除や音楽記号の種類の変更など）といった指示や、音楽記号の影響を受ける音符（つまり、オブジェクト情報に含まれる音符イベント）を編集するといった指示があったか否かを判定する。音楽記号のイベントを入力する指示がなかった場合には（ステップＳ７のＮＯ）、ステップＳ１１の処理へジャンプする。他方、音楽記号のイベントを入力する指示があった場合には（ステップＳ７のＹＥＳ）、入力された音楽記号が独立記号であるか否かを判定する（ステップＳ８）。入力された音楽記号が独立記号である場合には（ステップＳ８のＹＥＳ）、「独立記号の編集」処理を実行する（ステップＳ９）。入力された音楽記号が独立記号でない場合、すなわち装飾記号である場合には（ステップＳ８のＮＯ）、「装飾記号の編集」処理を実行する（ステップＳ１０）。これらの「独立記号の編集」処理あるいは「装飾記号の編集」処理では、入力された音楽記号のイベントに関するデータを楽曲情報の中の演奏情報と楽譜表示情報にそれぞれ書き込む処理を行う。こうした処理については後述することから、ここでの詳細な説明を省略する。楽曲の再生が指示された場合には、楽曲情報の中の演奏情報に従って楽曲を再生する（ステップＳ１１）。例えば、ＳＭＦ（Sequential MIDI File）などを使っての自動演奏処理が行われる。ステップＳ１２では、該楽曲情報編集プログラムを終了する指示があったか否かを判定する。終了指示があった場合には（ステップＳ１２のＹＥＳ）、該処理を終了する。終了指示がない場合には（ステップＳ１２のＮＯ）、ステップＳ２の処理に戻って、上記ステップＳ２〜ステップＳ１２までの処理を繰り返すことにより、楽譜編集操作に従う楽曲情報生成処理を引き続き実行する。
【００３３】
ここで、上述した「楽曲情報編集処理」のステップＳ３で起動する「楽譜の表示」処理について、図５を用いて説明する。図５は、「楽譜表示処理」の一実施例を示したフローチャートである。
まず、選択された楽曲情報のうちの演奏情報に従った楽譜を表示する（ステップＳ２１）。すなわち、演奏情報のタイミングデータと演奏イベントデータとに従って、表示装置６Ａの五線譜上の適宜の位置に音符や休符などを配置して楽譜を表示する。この際に、選択された楽曲情報の演奏情報から識別子ＩＤの付されたタイミングデータ及び演奏イベントデータを抽出して、該抽出された識別子ＩＤの付された各データについての表示を行わないように予め設定しておく。そのため、このステップＳ２１の処理によって表示装置６Ａ上に表示される楽譜には、装飾記号により影響を及ぼされた音符などが表示されない。ステップＳ２２では、ＩＤリスト情報にＩＤリストがあるかないかを判定する。すなわち、該楽曲はマスタ独立記号や独立記号若しくは装飾記号に関する何らかの楽譜編集が既に行われているものであり、該編集に伴って楽譜表示情報におけるＩＤリスト情報のＩＤリスト（つまり、マスタトラックＩＤリスト、第１トラックＩＤリスト、第２トラックＩＤリスト、…）の少なくともいずれかのＩＤリストに識別子ＩＤが登録済みであるか否かを判定する。
【００３４】
ＩＤリスト情報にＩＤリストがない場合には（ステップＳ２２のＮＯ）、当該処理を終了する。すなわち、この場合には、該楽曲に対してマスタ独立記号や独立記号若しくは装飾記号等に関する何らかの編集が行われていない楽曲であり、上記ステップＳ２１の処理において五線譜上に該楽曲に関する全ての楽譜が表示されていることから、後述するステップＳ２３〜ステップＳ３２までの処理を行わずに、該処理を終了する。一方、ＩＤリスト情報にＩＤリストがある場合には（ステップＳ２２のＹＥＳ）、全てのトラックに関するＩＤリスト（つまり、第１トラックＩＤリスト、第２トラックＩＤリスト、…）について、装飾記号ＩＤリストにデータが記録されているか否かを判定する（ステップＳ２３）。装飾記号ＩＤリストにデータが記録されている場合には（ステップＳ２３のＹＥＳ）、すなわち該楽譜が装飾記号に関する楽譜編集が行われている楽曲の楽譜である場合には、装飾記号ＩＤリストから識別子ＩＤを読み出して、その識別子ＩＤに対応する表示データをオブジェクト情報から読み出す（ステップＳ２４）。そして、読み出された表示データを使って表示する楽譜のデータ（具体的には表示画像）を作成し（ステップＳ２５）、該作成した楽譜のデータを五線譜上の対応する位置に表示する（ステップＳ２６）。
【００３５】
上記ステップＳ２５で実行する楽譜のデータの作成処理は、当該「楽譜表示処理」プログラムとは別の専用のプログラムで行う。すなわち、装飾記号の表示に関しては音符の表示位置にあわせて、装飾記号の表示位置を調節しながら表示しなければならない。そこで、こうした表示に関する処理を素早く効率的に行うために専用のプログラムに従い、オブジェクト情報から読み出した表示データを使って五線譜上に表示する楽譜の表示画像を作成する。このように、楽譜表示に従い入力された装飾記号に関するデータを演奏情報とは別の楽譜表示情報に記憶しておき、該楽譜表示情報を用いて専用プログラムによる装飾記号に関する表示画像をまとめて作成するようにすると、こうした楽譜の表示をより素早く効率的に行うことができるようになる、という利点がある。
【００３６】
ステップＳ２７では、マスタトラック以外の全てのトラックに関するＩＤリスト（つまり、第１トラックＩＤリスト、第２トラックＩＤリスト、…）について、独立記号ＩＤリストにデータが記録されているか否かを判定する。独立記号ＩＤリストにデータが記録されている場合には（ステップＳ２７のＹＥＳ）、すなわち該楽譜が独立記号に関する楽譜編集が行われている楽曲の楽譜である場合には、独立記号ＩＤリストから識別子ＩＤを読み出して、その識別子ＩＤに対応する表示データをオブジェクト情報から読み出す（ステップＳ２８）。そして、読み出された表示データの示す音楽記号に相当する予め用意されている画像データを読み出して五線譜上の対応する位置に表示する（ステップＳ２９）。ステップＳ３０では、楽譜表示情報のマスタトラックＩＤリストにデータが記録されているか否かを判定する。楽譜表示情報のマスタトラックＩＤリストにデータが記録されている場合には（ステップＳ３０のＹＥＳ）、すなわち該楽譜がマスタ独立記号に関する楽譜編集が行われている楽曲の楽譜である場合には、マスタトラックＩＤリストから識別子ＩＤを読み出して、その識別子ＩＤに対応する表示データをオブジェクト情報から読み出す（ステップＳ３１）。そして、読み出された表示データに相当する予め用意されている画像データを読み出して五線譜上の対応する位置に表示する（ステップＳ３２）。これらの独立記号やマスタ独立記号に関しての表示については上述の装飾記号の表示と異なり、音符の表示と組み合わせて表示する必要がなく予め用意されている記号ごとの画像を対応する位置（つまり、表示データ中のタイミングデータで表される位置）に表示すればよいだけであり、音符の表示位置にあわせて独立記号やマスタ独立記号の表示位置を調節しながら表示する必要がないことから、専用のプログラムを用いることなく表示が行える。
【００３７】
以上のようにして、この実施例に示す「楽譜表示処理」においては、識別子ＩＤの付されていないタイミングデータ及び演奏イベントデータの表示と、識別子ＩＤの付されたタイミングデータ及び演奏イベントデータの表示とを分けて表示する。すなわち、演奏情報に従って識別子ＩＤの付されていないデータに関する楽譜をまず表示しておき、該表示に対してマスタ独立記号や独立記号若しくは装飾記号（つまり、識別子ＩＤの付されたデータ）に関する表示を追加的に表示する。この際に、識別子ＩＤの付されていないタイミングデータ及び演奏イベントデータの表示については、普通の音符（つまり、音楽記号による編集が加えられていない音符）であることからＳＭＦのデータをそのまま利用して表示処理すればよい。他方、識別子ＩＤの付されたタイミングデータ及び演奏イベントデータの表示については、なにかしらの音楽記号によって編集が加えられたものであることから、ＳＭＦのデータを利用せずに、マスタ独立記号や独立記号若しくは装飾記号に関しての楽譜編集が行われた箇所についての表示データを利用して表示処理すればよい。この実施例においては、全トラック分の音符表示、全トラック分の装飾記号、全トラック分の独立記号、マスタトラックのマスタ独立記号の順に表示処理することで、楽譜全体の表示を完成するようになっている。このように、楽譜編集の内容にあわせて演奏情報と楽譜表示情報の各々の表示データとを組み合わせて用いることによって、表示装置６Ａ上に楽譜全体を表示する。
【００３８】
なお、上述した「楽譜表示処理」においては、選択された楽曲情報の演奏情報から識別子ＩＤの付されたタイミングデータ及び演奏イベントデータを抽出して、該抽出された識別子ＩＤの付された各データについての表示を行わないようにしたがこれに限らない。例えば、ステップＳ２１における楽譜表示の際には識別子ＩＤのあり・なしに関わらず、演奏情報における全てのタイミングデータ及び演奏イベントデータについての表示を行っておき、ステップＳ２３〜ステップＳ３２までの各処理において、識別子ＩＤの付されたタイミングデータ及び演奏イベントデータの表示についてのみ、既に表示済みの内容と表示内容を差し替えて、あるいは上書きして表示するようにしてもよい。
【００３９】
次に、上述した「楽曲情報編集処理」のステップＳ９で起動する「独立記号の編集」処理について、図６を用いて説明する。図６は、「独立記号編集処理」の一実施例を示したフローチャートである。
ステップＳ４１では、楽曲情報で使用されていないＩＤ番号（つまり識別子ＩＤ）を検出して、新たなＩＤ番号とする。例えば、既にマスタ独立記号や独立記号若しくは装飾記号を楽譜に付加しており、これらの音楽記号に対するＩＤ番号として「ＩＤ５」までが使用済みであるような場合には、「ＩＤ６」を新たなＩＤ番号とする。ステップＳ４２では、入力された音楽記号（ここでは独立記号）に対応する表示データを作成する。ここで作成される独立記号に対応する表示データは、その独立記号を表示するための画像データを読み出す指示データである。すなわち、この指示データに従って、独立記号毎に予め用意されている表示用の画像が読み出されることにより、楽譜に独立記号が単独で表示されるようになっている。ステップＳ４３では、新たなＩＤ番号と作成された表示データを１つのオブジェクトデータとしてオブジェクト情報に追加する。この場合に追加される表示データは入力された独立記号を五線譜上に表示するためのデータであり、該独立記号を表示するためのデータのみが記録される。ステップＳ４４では、新たなＩＤ番号をＩＤリスト情報の対応するリストの対応する位置に書き込む。例えば、第１トラックとしてメロディパートの楽曲が記録されており、該メロディパートの所望の演奏箇所に対して独立記号が付加された場合には、ＩＤリスト情報における第１トラックリストの独立記号ＩＤリスト（図３参照）の所定位置（つまり、今回編集された記号の演奏進行に相当する順の位置）に新たなＩＤ番号を書き込む。ステップＳ４５では、作成した表示データと予め用意されている所定の曲テンプレートとに従って再生データを作成し、該作成した再生データをタイミング検出等に従って算出された演奏情報の対応する位置に書き込む。この場合に作成される再生データは、独立記号に対応した楽曲を再生するためのデータである。演奏データに作成した再生データを書き込む際には、前記ＩＤ番号と同じＩＤ番号の識別子ＩＤが付加される。ステップＳ４６では、作成された表示データの示す音楽記号に相当する予め用意されている画像データを読み出して五線譜上の対応する位置に表示する。この「独立記号編集処理」により記録される演奏情報及び楽譜表示情報（オブジェクト情報及びＩＤリスト情報を含む）についての具体例は後述することから、ここでの詳細な説明は省略する。
【００４０】
なお、上述した実施例においては、表示データと曲テンプレートとに従って作成した再生データを演奏情報のみに記録するようにしたが、演奏情報と共にオブジェクト情報にも作成した再生データを記録しておくようにしてもよい。こうすると、複数の音楽記号を用いながら順次に楽譜編集を行う場合に便利である。特に、操作に応じて楽譜編集状態を１段階前の編集状態へと順次に戻していくことのできる「undo機能」において便利である。すなわち、再生データをオブジェクト情報に識別子ＩＤ及び表示データと共に記録しておくことによって、「undo機能」を使用する毎に１段階前の表示データとそれに対応する曲テンプレートとに従って再生データを再作成しなくても、演奏情報を１段階前の編集状態へと簡単に書き換えることができる。
【００４１】
次に、上述した「楽曲情報編集処理」のステップＳ１０で起動する「装飾記号の編集」処理について、図７及び図８を用いて説明する。図７及び図８は「装飾記号編集処理」の一実施例を示したフローチャートであり、図７は前半部分の処理を、図８は後半部分の処理をそれぞれ示したフローチャートである。すなわち、図８に示した処理は図７に示した処理の後に引き続き実行される処理である。
【００４２】
まず、「装飾記号の編集」処理の前半部分について、図７のフローチャートを用いて説明する。
ステップＳ５１では、入力された音楽記号（ここでは装飾記号）が影響を及ぼす演奏イベントを演奏情報から検出する。ステップＳ５２では、検出された演奏イベントを演奏情報から削除する。ステップＳ５３では、削除された演奏イベントに対応する表示を消去する。すなわち、表示装置６Ａ上に表示されている五線譜から該音符表示を消去する。ただし、この処理は行わなくてもよく、影響を及ぼす音符表示を消去せずにそのまま残して新たな画像を上書き的に表示するようにしてもよい。
【００４３】
ステップＳ５４では、ステップＳ５１で検出した演奏イベントが識別子ＩＤの付加されたものであるか否かを判定する。すなわち、当該装飾記号を付加する前に、既に何らかの音楽記号が付加されている演奏イベントであるか否かを判定する。検出された演奏イベントが識別子ＩＤの付加されたものでない場合、すなわち今回の装飾記号が該演奏イベントに対して初めて付加された音楽記号である場合には（ステップＳ５４のＮＯ）、検出された演奏イベントと入力された音楽記号から表示データを作成する（ステップＳ５５）。他方、検出された演奏イベントが識別子ＩＤの付加されたものである場合、すなわち既に何らかの音楽記号が付加されている演奏イベントである場合には（ステップＳ５４のＹＥＳ）、付加されているＩＤに対応するオブジェクトデータから表示データを読み出し（ステップＳ５６）、該読み出された表示データと入力された音楽記号から新たな表示データを作成する（ステップＳ５７）。すなわち、以前入力された音楽記号と今回入力した装飾記号の両方を表示するための表示データを新たに作成する。ステップＳ５８では、楽曲情報で使用されていないＩＤ番号（識別子ＩＤ）を検出して新たなＩＤ番号とする。ステップＳ５９では、新たなＩＤ番号と作成された表示データを１つのオブジェクトデータとしてオブジェクト情報に追加する。なお、この際に追加されたオブジェクト情報に取り込まれたオブジェクト情報（つまり、以前に入力された音楽記号に関するオブジェクト情報）を削除してもよい。ステップＳ６０では、新たなＩＤ番号をＩＤリスト情報の対応するリストの対応する位置に書き込む。例えば、第１トラックとしてメロディパートの楽曲が記録されており、該メロディパートの所望の演奏箇所に対して装飾記号が付加された場合には、ＩＤリスト情報における第１トラックリストの装飾記号ＩＤリスト（図３参照）の所定位置（つまり、今回編集された記号の演奏進行に相当する順の位置）に新たなＩＤ番号を書き込む。そして、新たに作成されたオブジェクトデータに取り込まれたオブジェクトデータのＩＤ（すなわち、上記ステップＳ５６で読み出されたオブジェクトデータのＩＤ）を装飾記号リストから削除しておく。
【００４４】
次に、「装飾記号の編集」処理の後半部分の処理について、図８のフローチャートを用いて説明する。
上述した図７のステップＳ６０に続く図８のステップＳ６１では、装飾記号が入力されたときに演奏情報を編集しない指示があったか否かを判定する。演奏情報を編集しない指示を行う場合には、例えば「SHIFT」スイッチなどの所定の操作子を押しながら装飾記号を入力するようにすればよい。装飾記号が入力されたときに演奏情報を編集しない指示があった場合、例えば「SHIFT」スイッチを押しながら装飾記号の入力を行った場合には（ステップＳ６１のＹＥＳ）、作成された表示データと演奏情報とにより作成される再生データを書き込むべき演奏情報の位置に空白データを書き込む（ステップＳ６２）。空白データはそのデータの位置に再生データがあるべきだがあえて再生データを記録しなかったことを表すデータであり、編集された記号が影響を及ぼす時間範囲（つまり、編集された記号の表示データで表示される画像に対応した演奏時間）と、編集された記号のオブジェクトデータに付加されているＩＤ番号とを有している。他方、装飾記号が入力されたときに演奏情報を編集しない指示がなかった場合、例えば「SHIFT」スイッチを押すことなく装飾記号の入力のみを行った場合には（ステップＳ６１のＮＯ）、作成された表示データと予め用意されている曲テンプレートとに従って再生データを作成し、該作成した再生データを演奏情報の対応する位置に書き込む（ステップＳ６３）。この際に、該作成した再生データの中の全てのイベントデータに対しては、新たなＩＤ番号（ステップＳ５８参照）を付加する。ステップＳ６４では、作成された表示データを使って表示する楽譜のデータを作成する。この楽譜データの作成処理は、当該「装飾記号編集処理」プログラムとは別の専用のプログラムで行う。ステップＳ６５では，作成された楽譜のデータを五線譜上の対応する位置に表示する。この「装飾記号編集処理」により記録される演奏情報及び楽譜表示情報（オブジェクト情報及びＩＤリスト情報を含む）についての具体例は後述することから、ここでの詳細な説明は省略する。
【００４５】
次に、演奏イベントを五線譜を用いた楽譜編集によらずに直接入力することによって、演奏情報の空白データを編集する「直接入力」処理について、図９を用いて説明する。図９は、「直接入力処理」の一実施例を示したフローチャートである。
ステップＳ７１では、演奏イベントを入力する指示があったか否かを判定する。例えば、ピアノロールなどを用いて演奏イベントを入力したり、あるいは数値入力をすることにより演奏イベントを入力したりするなどして、ユーザが直接演奏イベントを入力する指示を行ったか否かを判定する。演奏イベントを入力する指示がない場合には（ステップＳ７１のＮＯ）、当該処理を終了する。演奏イベントを入力する指示があった場合には（ステップＳ７１のＹＥＳ）、入力の指示されたタイミングに空白データがあるか否かを判定する（ステップＳ７２）。入力の指示されたタイミングに空白データがある場合には（ステップＳ７２のＹＥＳ）、空白データに付加されている識別子ＩＤを入力された演奏イベントに付加して、そのデータを演奏情報の対応する位置に書き込む（ステップＳ７３）。こうして、直接入力された演奏イベントとオブジェクト情報の表示データとを識別子ＩＤにより対応付けておく。入力の指示されたタイミングに空白データがない場合には（ステップＳ７２のＮＯ）、入力された演奏イベントに基づいて演奏情報を書き換え、楽譜の表示を変更する（ステップＳ７４）。
【００４６】
ここで、楽曲情報編集処理時における表示装置６Ａに表示する表示内容、演奏情報及び楽譜表示情報（オブジェクト情報及びＩＤリスト情報を含む）に記録する記録内容について、楽譜編集内容毎に図１０〜図１６を用いて順次説明する。以下に示す図１０〜図１６までの各図においては、上から順に表示装置６Ａにおける楽譜表示例、楽譜表示例に示す入力がなされた場合に作成される演奏情報、楽譜表示例に示す入力がなされた場合に作成されるオブジェクト情報、楽譜表示例に示す入力がなされた場合に作成されるＩＤリスト情報についての具体例を示す。また、楽譜編集に伴って追加されるデータについては太枠で囲んで図示した。なお、以下の説明では第１トラックの楽曲（例えば、メロディパートなど）に対してのみに楽譜編集を行った場合について説明する。
【００４７】
まず、楽譜編集として通常の音符のみ（つまり、音楽記号を付加していない音符）を表示装置６Ａに表示された五線譜上に入力した場合における楽曲情報編集処理について、図１０を用いて説明する。図１０は、通常の音符のみを入力した場合における楽曲情報編集処理を説明するための概念図である。
【００４８】
図１０の楽譜表示例に示すように、表示装置６Ａに表示された五線譜上に音符Ａ、音符Ｂ、音符Ｃ、音符Ｄのような通常の音符のみを演奏進行順に入力して楽譜編集を行った場合には図４のステップＳ４でＹＥＳと判定され、ステップＳ７でＮＯと判定されることから、演奏情報のみが作成されて楽譜表示情報は作成されない。すなわち、楽譜表示情報に対しては、該音符Ａ〜音符Ｄの入力の際にはマスタ独立記号、独立記号、装飾記号のいずれの入力も行われていないことから、オブジェクト情報及びＩＤリスト情報（つまりマスタトラックＩＤリスト、第１トラックＩＤリストの装飾記号ＩＤリスト及び独立記号ＩＤリスト）には何らのデータも記録されない。他方、演奏情報に対しては、マスタトラックには何らのデータも記録されないが、第１トラックには音符Ａ〜音符Ｄの各タイミングデータ及び各音符イベントデータ（図では、例えば音符Ａのタイミングデータ及び音符Ａの音符イベントデータとをあわせて単に「音符Ａ」として表示した）を時系列、すなわち演奏進行順に記録する（図４のステップＳ５）。こうして演奏情報の第１トラックに記録された音符Ａ〜音符Ｄの各タイミングデータ及び各音符イベントに対しては、識別子ＩＤが付加されていない。したがって、この場合には、演奏情報からこれらの音符Ａ〜音符Ｄの各タイミングデータ及び各音符イベントデータのみを読み出して表示処理するだけで、図１０に示したような通常の音符のみからなる楽譜を表示する（図４のステップＳ６）。
【００４９】
次に、楽譜編集として、図１０に示す楽譜表示に対して装飾記号（この実施例ではチョーキング）を入力した場合における楽曲情報編集処理について、図１１を用いて説明する。図１１は、装飾記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【００５０】
図１１の楽譜表示例に示すように、表示装置６Ａに表示された音符Ａ、音符Ｂ、音符Ｃ、音符Ｄのうち、音符Ｂ（図では新たな楽譜表示として音符ｂと表示）から音符Ｃ（図では新たな楽譜表示として音符ｃと表示）にかけてチョーキングを行うように楽譜編集を行った場合には図４のステップＳ８でＮＯと判定され、楽譜表示情報が作成されると共に演奏情報の対応箇所が編集される。すなわち、楽譜表示情報に対しては、オブジェクト情報の第１オブジェクトとして識別子ＩＤ「ＩＤ１」が付加された表示データ「音符ｂ＋cho（チョーキング記号）＋音符ｃ」（図に示す楽譜表示例における点線で囲んだ表示を行うためのデータ）が作成順に記録される（図７のステップＳ５９）。ＩＤリスト情報の第１トラックＩＤリストの装飾記号ＩＤリストには、上記オブジェクト情報の第１オブジェクトに識別子ＩＤとして記録したものと同じ識別子ＩＤ「ＩＤ１」が演奏進行順に記録される（図７のステップＳ６０）。他方、演奏情報に対しては、マスタトラックには何らのデータも記録されないが、第１トラックには、作成した再生データが「音符Ｂ」と「音符Ｃ」のデータにかえて記録される（図８のステップＳ６３）。再生データは、上記表示データと予め用意された曲テンプレートに従い生成されたデータである。こうして作成された再生データに含まれる全ての演奏イベントに対しては、識別子ＩＤ「ＩＤ１」が付加される。したがって、この場合には、演奏情報から音符Ａと音符Ｄの各タイミングデータ及び各音符イベントを読み出して処理することにより音符Ａと音符Ｄを表示し、オブジェクト情報から演奏情報に付加された識別子ＩＤ「ＩＤ１」に対応する表示データを読み出して表示処理することによって、音符ｂと音符ｃとをチョーキング記号で装飾した楽譜を表示する（図８のステップＳ６５）。
【００５１】
次に、楽譜編集として、図１０に示す楽譜表示に対して装飾記号（この実施例ではチョーキング）を「SHIFT」スイッチを押しながら入力した場合（つまり、図８のステップＳ６１でＹＥＳと判定された場合）における楽曲情報編集処理について、図１２を用いて説明する。図１２は、「SHIFT」スイッチを押しながら装飾記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【００５２】
「SHIFT」スイッチを押しながら図１１に示した楽譜表示例と同様に、表示装置６Ａに表示された音符Ａ、音符Ｂ、音符Ｃ、音符Ｄのうち、音符Ｂ（図では新たな楽譜表示として音符ｂと表示）から音符Ｃ（図では新たな楽譜表示として音符ｃと表示）にかけてチョーキングを行うように楽譜編集を行った場合には、図１１に示したものと同様の楽譜表示情報が作成される。すなわち、楽譜表示情報に対しては、オブジェクト情報の第１オブジェクトとして識別子ＩＤ「ＩＤ１」が付加された表示データ「音符ｂ＋cho（チョーキング記号）＋音符ｃ」が作成順に記録される（図７のステップＳ５９）。装飾記号ＩＤリストには、識別子ＩＤ「ＩＤ１」が演奏進行順に記録される（図７のステップＳ６０）。他方、演奏情報の第１トラックには、空白データが「音符Ｂ」と「音符Ｃ」のデータにかえて記録される（図８のステップＳ６２）。空白データは、識別子ＩＤ「ＩＤ１」が付加された表示データに対応する演奏イベントが記録されるべき位置であることを表す演奏イベントを含まないデータである。この空白データには、識別子ＩＤ「ＩＤ１」が付加されている。この場合には、音符ｂと音符ｃとをチョーキング記号で装飾した楽譜を表示するが、該演奏情報を再生しても空白データに対応する区間は発音されない。ユーザはこうした空白データに対して適宜に演奏イベントを直接入力することにより、チョーキング表示箇所での演奏をユーザ独自の演奏で行うようにすることができる。
なお、上記実施例においては演奏情報から音符Ｂと音符Ｃとを削除して空白データを記録した例を示したがこれに限らず、空白データを記録する際に音符Ｂと音符Ｃを残しておいてそれらの演奏イベントに空白データに付加している識別子ＩＤ「ＩＤ１」を付加するようにして記録してもよい。
【００５３】
次に、楽譜編集として、図１１に示す楽譜表示に対して更に他の装飾記号（この実施例ではトリル）を入力した場合における楽曲情報編集処理について、図１３を用いて説明する。図１３は、装飾記号が付加されている部分に更に装飾記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【００５４】
図１３の楽譜表示例に示すように、表示装置６Ａに表示された音符Ｂ（図では新たな楽譜表示として音符ｂと表示）から音符Ｃ（図では新たな楽譜表示として音符ｃと表示）にかけてチョーキングを行い、その後に音符ｂに対してトリルを行うように楽譜編集を行った場合には、図７のステップＳ５１で検出される演奏イベントが図１１で作成された第１トラックの再生データであることから、図７のステップＳ５４でＹＥＳと判定されることになり、以前の楽譜編集処理で作成されたオブジェクト情報から新たなオブジェクト情報を作成する。すなわち、オブジェクト情報の第２オブジェクトとして識別子ＩＤ「ＩＤ２」を付加した表示データ「音符ｂ＋tr（トリル記号）＋cho（チョーキング記号）＋音符ｃ」（図に示す楽譜表示例における点線で囲んだ表示を行うためのデータ）を、識別子ＩＤ「ＩＤ１」が付加された表示データ「音符ｂ＋cho＋音符ｃ」を基にして作成して記録する（図７のステップＳ５６とステップＳ５７）。したがって、識別子ＩＤ「ＩＤ２」を付加した表示データは、識別子ＩＤ「ＩＤ１」が付加されている表示データの内容を含む。ＩＤリスト情報の第１トラックＩＤリストの装飾記号ＩＤリストには、識別子ＩＤのうち最新の識別子ＩＤ「ＩＤ２」のみが記録される。すなわち、利用されているオブジェクト情報の識別子ＩＤだけを記録する。他方、演奏情報のマスタトラックには何らのデータも記録されないが、第１トラックには識別子ＩＤ「ＩＤ１」の付された再生データが削除されて、その位置に識別子ＩＤ「ＩＤ２」の付された新たに作成した再生データが書き込まれる（図８のステップＳ６３）。勿論、作成された再生データに含まれる全ての演奏イベントに対しては、識別子ＩＤ「ＩＤ２」が付加されている。したがって、この場合には、演奏情報から音符Ａと音符Ｄの各タイミングデータ及び各音符イベントを読み出して表示処理することにより音符Ａと音符Ｄを表示し、オブジェクト情報から識別子ＩＤ「ＩＤ２」に対応する表示データを読み出して表示処理することによって音符ｂと音符ｃとをチョーキング記号及びトリル記号で装飾した楽譜を表示する（図８のステップＳ６５）。
【００５５】
次に、楽譜編集として、図１０に示す楽譜表示に対して更にマスタ独立記号（この実施例ではアレグロ）を入力した場合における楽曲情報編集処理について、図１４を用いて説明する。図１４は、マスタ独立記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【００５６】
図１４の楽譜表示例に示すように、表示装置６Ａに表示された音符Ａ〜音符Ｄの区間の最初にアレグロ（Allegro）を行うように楽譜編集を行った場合には図４のステップＳ８でＹＥＳと判定され、演奏情報の内容を修正することなく、マスタ独立記号に対応する再生データが追加される。すなわち、楽譜表示情報に対しては、オブジェクト情報の第１オブジェクトとして識別子ＩＤ「ＩＤ１」が付加された表示データ「Allegro」（図に示す楽譜表示例における点線で囲んだ表示を行うためのデータ）が記録される（図６のステップＳ４３）。ＩＤリスト情報のマスタトラックＩＤリストには、上記オブジェクト情報の第１オブジェクトとして記録したものと同じ識別子ＩＤ「ＩＤ１」が演奏進行順に記録される（図６のステップＳ４４）。他方、演奏情報のマスタトラックには、演奏イベントには影響を及ぼさず、追加されたアレグロ記号に対応する再生データ（この場合にはテンポデータ）が追加される。この際に、演奏情報のマスタトラックの再生データを追加する位置に、以前からテンポデータが記録されていたような場合には、該テンポデータは削除されて新たに作成されたデータが有効となる。第１トラックには何らのデータも追加記録されないことから、音符Ａ〜音符Ｄの各タイミングデータ及び各音符イベントデータが演奏進行順に記録されたままである。したがって、この場合には、演奏情報から音符Ａ〜音符Ｄまでの各タイミングデータ及び各音符イベントを読み出して表示処理することにより音符Ａ〜音符Ｄまでを表示し、オブジェクト情報から識別子ＩＤ「ＩＤ１」に対応する表示データを読み出して表示処理することによって「Allegro」記号が付された楽譜を表示する（図６のステップＳ４６）。
【００５７】
次に、楽譜編集として、図１０に示す楽譜表示に対して更に独立記号（この実施例ではメゾ・フォルテ）を入力した場合における楽曲情報編集処理について、図１５を用いて説明する。図１５は、独立記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【００５８】
図１５の楽譜表示例に示すように、表示装置６Ａに表示された音符Ａ、音符Ｂ、音符Ｃ、音符Ｄのうち、音符Ｂ（図では新たな楽譜表示として音符ｂと表示）に対してメゾ・フォルテ（ｍｆ）を付加するように楽譜編集を行った場合には図４のステップＳ８でＹＥＳと判定され、演奏情報の内容を修正することなく、独立記号に対応する再生データが追加される。すなわち、楽譜表示情報に対しては、オブジェクト情報の第１オブジェクトに識別子ＩＤとして「ＩＤ１」が付加された表示データ「ｍｆ（メゾ・フォルテ記号）」（図に示す楽譜表示例における点線で囲んだ表示を行うためのデータ）が記録される（図６のステップＳ４３）。ＩＤリスト情報の第１トラックＩＤリストの独立記号ＩＤリストには、上記オブジェクト情報の第１オブジェクトとして記録したものと同じ識別子ＩＤ「ＩＤ１」が演奏進行順に記録される（図６のステップＳ４４）。他方、演奏情報の第１トラックには、演奏イベントには影響を及ぼさず、追加されたメゾ・フォルテ記号に対応する再生データが追加される。この実施例ではメゾ・フォルテに対応するエクスプレッションデータ（つまり、対応するトラックのみに影響を及ぼす音量データ）が「音符Ａ」と「音符Ｂ」のデータの間に追加される。したがって、この場合には、演奏情報から音符Ａ〜音符Ｄまでの各タイミングデータ及び各音符イベントを読み出して処理することにより音符Ａ〜音符Ｄまでを表示し、オブジェクト情報から識別子ＩＤ「ＩＤ１」に対応する表示データを読み出して処理することによって「ｍｆ」が付された楽譜を表示する（図６のステップＳ４６）。
【００５９】
次に、楽譜編集として、図１５に示す楽譜表示に対して更に装飾記号（この実施例ではトリル）を入力した場合における楽曲情報編集処理について、図１６を用いて説明する。図１６は、独立記号が既に付加されている部分に更に装飾記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【００６０】
図１６の楽譜表示例に示すように、表示装置６Ａに表示されたメゾ・フォルテが既に付されている音符Ｂ（図では新たな楽譜表示として音符ｂと表示）に対して、更にトリルを行うように楽譜編集を行った場合には、図７のステップＳ５１で図１５の「音符Ｂ」に対応する演奏イベントが検出されて、このイベントにはＩＤ番号が付加されていないのでステップＳ５４でＮＯと判定されることになり、ステップＳ５５で「音符Ｂ」に装飾記号が追加された部分のオブジェクト情報を新たに作成する。この場合には、以前からあった独立記号に関するオブジェクト情報については修正しない。すなわち、オブジェクト情報の第２オブジェクトとして識別子ＩＤ「ＩＤ２」を付加した表示データ「音符ｂ+tr（トリル記号）」（図に示す楽譜表示例における一点鎖線で囲んだ表示を行うためのデータ）を新たに作成して、第１オブジェクトと共に記録する（図７のステップＳ５９）。すなわち、識別子ＩＤ「ＩＤ１」が付加された表示データ「ｍｆ（メゾ・フォルテ記号）」は残しておく。ＩＤリスト情報の第１トラックＩＤリストの装飾記号ＩＤリストには、上記オブジェクト情報の第２オブジェクトとして新たに記録したものと同じ識別子ＩＤ「ＩＤ２」が演奏進行順に記録される（図７のステップＳ６０）。一方、ＩＤリスト情報の第１トラックＩＤリストの独立記号ＩＤリストには、識別子ＩＤ「ＩＤ１」がそのまま記録されている。すなわち、装飾記号を追加する前に行われた独立記号（メゾ・フォルテ記号）のデータには影響を及ぼさない。他方、演奏情報に対しては、追加された装飾記号（トリル記号）に対応する再生データが演奏情報の対応する位置の演奏イベントに上書きされる。すなわち、この実施例においては、「音符Ｂ」のデータがあった位置に識別子ＩＤ「ＩＤ２」の付された再生データが上書きされて記録される。したがって、この場合には、演奏情報から音符Ａと音符Ｃと音符Ｄの各タイミングデータ及び各音符イベントを読み出して処理することにより音符Ａと音符Ｃと音符Ｄを表示し、オブジェクト情報から識別子ＩＤ「ＩＤ１」に対応する表示データを読み出して処理することによって「ｍｆ」記号が付され、かつ、オブジェクト情報から識別子ＩＤ「ＩＤ２」に対応する表示データを読み出して処理することによって音符ｂをトリル記号で装飾した楽譜を表示する（図８のステップＳ６５）。
【００６１】
なお、再生データと空白データを選択的に演奏情報に書き込む処理（図８参照）は、独立記号の編集において適応してもよい。
なお、上述した「楽曲情報編集処理」（図４参照）により生成される演奏情報のフォーマットは、イベントの発生時刻を曲や小節内における絶対時間で表した『イベント＋絶対時間』形式のもの、イベントの発生時刻を１つ前のイベントからの時間で表した『イベント＋相対時間』形式のもの、音符の音高と符長あるいは休符と休符長で楽音データを表した『音高（休符）＋符長』形式のもの、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域にイベントを記憶した『ベタ方式』形式のものなど、どのような形式のものであってもよい。
【００６２】
【発明の効果】
この発明によれば、楽曲再生用の演奏情報と楽譜表示用の楽譜表示情報を別々に構成し、楽譜に対する部分的な編集に応じて、該編集された楽譜の部分に対応する位置に関しての演奏情報のみを作成するようにしたことから、演奏情報の作成に係る処理量を軽減して効率的に楽曲情報編集処理を行うことができる、という効果を得る。
【図面の簡単な説明】
【図１】  この発明に係る楽曲情報編集装置の全体構成の一実施例を示したハード構成ブロック図である。
【図２】  演奏情報のデータ構成の一実施例を示す概念図である。
【図３】  楽譜表示情報のデータ構成の一実施例を示す概念図である。
【図４】  楽曲情報編集処理の一実施例を示すフローチャートである。
【図５】  楽譜表示処理の一実施例を示したフローチャートである。
【図６】  独立記号編集処理の一実施例を示したフローチャートである。
【図７】  装飾記号編集処理における前半部分の一実施例を示したフローチャートである。
【図８】  装飾記号編集処理における後半部分の一実施例を示したフローチャートである。
【図９】  直接入力処理の一実施例を示したフローチャートである。
【図１０】  通常の音符のみを入力した場合における楽曲情報編集処理を説明するための概念図である。
【図１１】  装飾記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【図１２】  「SHIFT」スイッチを押しながら装飾記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【図１３】  装飾記号が付加されている部分に更に装飾記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【図１４】  マスタ独立記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【図１５】  独立記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【図１６】  独立記号が既に付加されている部分に更に装飾記号を入力した場合における楽曲情報編集処理を説明するための概念図である。
【符号の説明】
１…ＣＰＵ、１Ａ…タイマ、２…ＲＯＭ、３…ＲＡＭ、４…ＭＩＤＩインタフェース、４Ａ…電子楽器、５…操作回路、５Ａ…操作子、６…表示回路、６Ａ…表示装置（ディスプレイ）、７…音源回路、７Ａ…サウンドシステム、８…外部記憶装置、９…通信インタフェース、Ｘ…通信ネットワーク、１Ｄ…データ及びアドレスバス
【図１】
0003709820.tif 000002
【図２】
0003709820.tif 000003
【図３】
0003709820.tif 000004
【図４】
0003709820.tif 000005
【図５】
0003709820.tif 000006
【図６】
0003709820.tif 000007
【図７】
0003709820.tif 000008
【図８】
0003709820.tif 000009
【図９】
0003709820.tif 000010
【図１０】
0003709820.tif 000011
【図１１】
0003709820.tif 000012
【図１２】
0003709820.tif 000013
【図１３】
0003709820.tif 000014
【図１４】
0003709820.tif 000015
【図１５】
0003709820.tif 000016
【図１６】
0003709820.tif 000017