(57)【特許請求の範囲】
【請求項１】
楽譜表示用の楽譜データが表す演奏を再生させるための演奏データを生成することにより、該楽譜データを該演奏データに変換する装置であって、
前記楽譜データとして、前記楽譜上に出現するシンボルの種類を示すシンボルデータ毎に、該シンボルデータが示すシンボルの楽譜上における表示位置を指定する位置データを少なくとも付加されて構成される楽譜データを取得する楽譜データ取得手段と、
前記楽譜データ取得手段が取得した楽譜データを構成するシンボルデータを、該シンボルデータが示すシンボルが音符か否かによって少なくとも分類し、該シンボルデータが示す音符以外のシンボルによって指示される演奏上の操作を必要に応じて反映させつつ、該音符を示すシンボルデータ、及びそれに付加された位置データから、発音させるべき楽音を示す楽音データ、及び該楽音の発音タイミングを示す時間データからなる単位演奏データを生成していくことにより前記演奏データを生成する演奏データ生成手段と、を具備した楽譜データ変換装置において、
前記演奏データ生成手段は、前記楽譜データによって表示される楽譜上に、大きさが異なる音符、及び繰り返し記号が配置されている場合、該繰り返し記号によって指定される範囲内に存在する音符を示すシンボルデータを参照しての単位演奏データの生成は、１回目は大きいほうの音符を示すイベントデータのみを参照して行い、２回目は小さいほうの音符を示すイベントデータも参照して行うことにより、該繰り返し記号が指示する演奏上の操作を前記演奏データの生成に反映させる、
ことを特徴とする楽譜データ変換装置。
【請求項２】
楽譜表示用の楽譜データとして、楽譜上に出現するシンボルの種類を示すシンボルデータ毎に、該シンボルデータが示すシンボルの楽譜上における表示位置を指定する位置データを少なくとも付加されて構成される楽譜データを取得する楽譜データ取得手段と、
前記楽譜データ取得手段により取得された楽譜データを構成するシンボルデータを、該シンボルデータが示すシンボルが音符か否かによって少なくとも分類し、該シンボルデータが示す音符以外のシンボルによって指示される演奏上の操作を必要に応じて反映させつつ、該音符を示すシンボルデータ、及びそれに付加された位置データから、発音させるべき楽音を示す楽音データ、及び該楽音の発音タイミングを示す時間データからなる単位演奏データを生成していくことにより前記演奏データを生成し、前記楽譜データによって表示される楽譜上に、大きさが異なる音符、及び繰り返し記号が配置されている場合、該繰り返し記号によって指定される範囲内に存在する音符を示すシンボルデータを参照しての単位演奏データの生成は、１回目は大きいほうの音符を示すイベントデータのみを参照して行い、２回目は小さいほうの音符を示すイベントデータも参照して行うことにより、該繰り返し記号が指示する演奏上の操作を前記演奏データの生成に反映させる演奏データ生成手段と、
を実現させるプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽譜を表示するための楽譜データから他のデータを生成するための技術に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
現在では、音楽を楽しむためのソフトウェア（以降、音楽ソフトと呼ぶ）の数が増えただけでなく、その音楽ソフトには様々な機能が搭載されるようになっている。その機能として、ユーザに楽曲を作成させる作曲機能は多くの音楽ソフトに搭載されている。このため、作曲機能が搭載された音楽ソフトを購入したユーザは、パーソナルコンピュータ（以降、パソコンと略す）の画面上で作曲を気軽に行うことができる。
【０００３】
画面上での作曲は、普通、様々な形で行えるようになっている。例えば、マウスなどのポインティングデバイスを操作して五線譜上に音符を配置していくことで楽譜を作成する他に、数値を入力して演奏データを直接、作成することもできるようになっている。
【０００４】
演奏データを作成することで作曲を行った場合、その演奏データを再生することで演奏の内容を確認することができる。しかし、楽譜などの形で作曲した場合には、作曲した楽曲が実際にはどのような演奏なのかを必ずしも的確に把握することはできない。このことから、作曲機能を搭載した音楽ソフトの多くには、作成した楽曲から演奏用の演奏データを生成する機能が合わせて搭載されている。その機能によって生成した演奏データを再生することにより、ユーザは作曲した楽曲の内容を確認することができる。なお、その演奏データは、演奏上のイベントの内容を表すイベントデータ、及びそのイベントデータの処理タイミングを示す時間データからなるデータ対を処理順序に従って並べた形で構成されたシーケンスデータである。
【０００５】
周知のように、楽譜上には、音符だけでなく、様々なシンボル（記号）が記譜される。しかし、従来の楽譜から演奏データを生成、言い換えれば楽譜を演奏データに変換する機能（以降、楽譜データ変換機能と呼ぶ）は、五線譜上に配置された音符のみを対象にして演奏データを生成していた。このため、演奏の再現性は低く、配置した音符の種類の間違いなどを気付かせることはできても、楽曲の全体的な内容をユーザに確認させることができないという問題点があった。
【０００６】
例えば歌を歌う場合、歌詞とは異なり、楽譜があれば音程をどのように変化させていけば良いかを歌い手は容易に理解することができる。楽器を演奏する場合には、楽譜は必要不可欠である。そのようなことを行う人にとって、楽譜が表す演奏を聴かせることは非常に参考になる。楽譜を表示させるためのデータ（楽譜データ）は、現在では広く社会に普及したネットワークを利用して容易に配信することができる。このようなことからも、楽譜が表す演奏の再現性の向上が強く望まれるようになっている。
【０００７】
本発明の課題は、高い再現性を有する演奏データを楽譜（楽譜データ）から生成する技術を提供することにある。
【０００８】
【課題を解決するための手段】
本発明の楽譜データ変換装置は、楽譜表示用の楽譜データが表す演奏を再生させるための演奏データを生成することにより、該楽譜データを該演奏データに変換する装置であって、楽譜データとして、楽譜上に出現するシンボルの種類を示すシンボルデータ毎に、該シンボルデータが示すシンボルの楽譜上における表示位置を指定する位置データを少なくとも付加されて構成される楽譜データを取得する楽譜データ取得手段と、前記楽譜データ取得手段が取得した楽譜データを構成するシンボルデータを、該シンボルデータが示すシンボルが音符か否かによって少なくとも分類し、該シンボルデータが示す音符以外のシンボルによって指示される演奏上の操作を必要に応じて反映させつつ、該音符を示すシンボルデータ、及びそれに付加された位置データから、発音させるべき楽音を示す楽音データ、及び該楽音の発音タイミングを示す時間データからなる単位演奏データを生成していくことにより前記演奏データを生成する演奏データ生成手段と、を具備し、前記演奏データ生成手段は、前記楽譜データによって表示される楽譜上に、大きさが異なる音符、及び繰り返し記号が配置されている場合、該繰り返し記号によって指定される範囲内に存在する音符を示すシンボルデータを参照しての単位演奏データの生成は、１回目は大きいほうの音符を示すイベントデータのみを参照して行い、２回目は小さいほうの音符を示すイベントデータも参照して行うことにより、該繰り返し記号が指示する演奏上の操作を前記演奏データの生成に反映させる、ことを特徴とする。
【００１１】
本発明の記録媒体は、楽譜表示用の楽譜データとして、楽譜上に出現するシンボルの種類を示すシンボルデータ毎に、該シンボルデータが示すシンボルの楽譜上における表示位置を指定する位置データを少なくとも付加されて構成される楽譜データを取得する楽譜データ取得手段と、前記楽譜データ取得手段により取得された楽譜データを構成するシンボルデータを、該シンボルデータが示すシンボルが音符か否かによって少なくとも分類し、該シンボルデータが示す音符以外のシンボルによって指示される演奏上の操作を必要に応じて反映させつつ、該音符を示すシンボルデータ、及びそれに付加された位置データから、発音させるべき楽音を示す楽音データ、及び該楽音の発音タイミングを示す時間データからなる単位演奏データを生成していくことにより前記演奏データを生成し、前記楽譜データによって表示される楽譜上に、大きさが異なる音符、及び繰り返し記号が配置されている場合、該繰り返し記号によって指定される範囲内に存在する音符を示すシンボルデータを参照しての単位演奏データの生成は、１回目は大きいほうの音符を示すイベントデータのみを参照して行い、２回目は小さいほうの音符を示すイベントデータも参照して行うことにより、該繰り返し記号が指示する演奏上の操作を前記演奏データの生成に反映させる演奏データ生成手段と、を実現させるプログラムを記録している。
【００１２】
本発明では、楽譜データによって表示される楽譜上に配置されるシンボルを音符か否かによって少なくとも２つに大別し、音符以外のシンボルによって指示される演奏上の操作を必要に応じて反映させつつ、音符が表す楽音の発音を指示するための単位演奏データを生成していくことで演奏データを生成する。そのようにして生成した演奏データは、その再生時に、反復記号や繰り返し記号、強弱記号、或いは速度記号といった楽譜上に出現するシンボルによって指示される演奏上の操作を表現する。このことから、高い再現性が実現されることになる。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
＜第１の実施の形態＞
図１は、本実施の形態による楽譜データ変換装置を搭載した電子楽器の外観図である。
【００１４】
その電子楽器は、図１に示すように、多数の鍵を有する鍵盤１０１を備えた電子鍵盤楽器である。その上面には、各種スイッチやボタンなどの操作子がスイッチ群１０２として鍵盤１０１の近傍に配置され、例えば液晶表示装置である表示装置１０３がそのスイッチ群１０２の近傍に配置され、それらを挟む形で２つのスピーカ１０４が配置されている。本実施の形態による楽譜データ変換装置は、その電子楽器がフロッピーディスク（以降、ＦＤと略記する）１１０から読み出した楽譜データを演奏データに変換する装置として実現されている。
【００１５】
なお、上記スイッチ群１０２を構成する操作子としては、特に図示していないが、テンキーやカーソルキー、自動演奏の開始を指示するためのスタートスイッチ、その終了を指示するためのストップスイッチ、確定スイッチ、などがある。その確定スイッチは、表示装置１０３上で選択状態となっている項目（アイコン、或いはボタンなど）に割り当てられた機能（コマンド）の実行を指示するためのスイッチである。
【００１６】
図２は、上記電子楽器の回路構成図である。
その電子楽器は、図２に示すように、楽器全体の制御を行うＣＰＵ２０１と、２つのタイマ２０２、及び２０３と、ＣＰＵ２０１が実行するプラグラムや各種制御データなどを格納したＲＯＭ２０４と、そのＣＰＵ２０１がワーク用に用いるＲＡＭ２０５と、上述した鍵盤１０１、表示装置１０３、及びスイッチ群１０２と、図１に示すフロッピーディスク（以降、ＦＤと略記する）１１０にアクセスするフロッピーディスクドライブ（以降、ＦＤＤと略記する）２０６と、ＣＰＵ２０１の指示に従って発音させるべき楽音の波形データを生成する音源２０７と、その音源２０７が生成した波形データを音声に変換して出力するサウンドシステム２０８と、を備えて構成されている。
【００１７】
上記鍵盤１０１、及びスイッチ群１０２は、それへのユーザの操作を検出する回路を備えたものである。上記サウンドシステム２０８は、図１に示す２つのスピーカ１０４、音源２０７から入力した波形データをアナログのオーディオ信号に変換するＤ／Ａコンバータ、及び、そのコンバータが出力したオーディオ信号を増幅して各スピーカ１０４に出力するアンプ、などから構成されている。
【００１８】
以上の構成において、動作を説明する。
ＣＰＵ２０１は、電源がオンされると、ＲＯＭ２０４に格納されたプログラムを読み出して実行することにより、楽器全体の制御を開始する。表示装置１０３には、例えば各種アイコンやボタンなどが配置されたメニュー画面を表示させるための画像データを送出し、その画面を表示させる。それ以降は、ユーザの鍵盤１０１、或いはスイッチ群１０２への操作に応じて制御を行う。
【００１９】
なお、表示装置１０３に送出するメニュー画面の画像データは、例えばＣＰＵ２０１が、ＲＡＭ２０５を作業用に使用して、ＲＯＭ２０４から読み出した表示させるべき画像のデータを用いて生成したものである。ＣＰＵ２０１から表示装置１０３に送られた画像データは特には図示しないメモリ（例えばデュアルポートＲＡＭ）に格納される。それ以降における表示内容の変更、具体的には画面の切り換えやアイコンの選択状態／非選択状態の切り換え、楽譜の表示、などは、ＣＰＵ２０１が、そのメモリに格納された画像データ中でデータを書き換えるべき部分を特定し、その特定した部分のデータを書き換えることで行われる。
【００２０】
ユーザが鍵盤１０１上の鍵を押鍵、或いは離鍵すると、その操作内容を示す情報がそれの検出回路からＣＰＵ２０１に送出される。ＣＰＵ２０１は、その情報を基に音源２０７に送出すべきコマンドを生成してその音源２０７に送出する。それにより、ユーザの鍵盤１０１への操作に応じて、サウンドシステム２０８から楽音をリアルタイムで放音させる。
【００２１】
一方、ユーザがスイッチ群１０２を操作すると、鍵盤１０１のときと同様に、それの検出回路からその操作内容を示す情報がＣＰＵ２０１に送出される。ＣＰＵ２０１は、その情報、更には表示装置１０３に表示させている内容などを基に、制御すべき対象を特定し、その特定した対象に対する制御を行う。それにより、特に詳細な説明は省略するが、ユーザは、表示装置１０３に表示された内容を通して、様々な指示を行えるようになっている。ＦＤ１１０へのアクセスや楽譜データの演奏データへの変換、などの指示は、例えば、先ず、表示装置１０３の画面上に配置されたアイコン、或いはボタンのなかで所定のアイコン、或いはボタンを選択状態にし、確定スイッチを操作して行うようになっている。
【００２２】
ＣＰＵ２０１は、鍵盤１０１、及びスイッチ群１０２から操作内容を示す情報の取得を、例えばタイマ２０２が出力する割り込み信号をトリガとして行う。それにより、その取得は、所定時間間隔が経過する毎に行うようになっている。
【００２３】
本実施の形態では、以下のような楽譜データを演奏データに変換することを前提としている。図３〜図９の各種説明図を参照して、その楽譜データについて詳細に説明する。
【００２４】
図３は、その楽譜データの構成を説明する図である。
図３に示すように、楽譜データは、楽譜上に表示（配置）すべきシンボルの種類を示すシンボルナンバーデータ、その大きさ（サイズ）を示すサイズデータ、その表示位置を示すＸ、Ｙデータを１シンボル分のデータ（以降、単位シンボルデータと呼ぶ）として、その単位シンボルデータがシンボル数分だけ集まった形で構成されている。本実施の形態では、そのような構成の楽譜データを配列変数（変数名はＳｃｏｒｅ  Ｄａｔａである）の形で扱っており、図３中の「Ｉｎｄｅｘ」（インデックス）の値はそれが付された単位シンボルデータが格納されている配列変数中の要素を指定する引数の値となる。
【００２５】
図４に示すように、楽譜上に出現するシンボルには、それぞれ、異なるナンバー（シンボルナンバー）が割り当てられている。上記シンボルナンバーデータには、表示すべきシンボルのナンバーが格納される。シンボルナンバーで指定されるシンボルを表示するために、ＲＯＭ２０４には各種シンボルの画像データが格納されている。
【００２６】
図５は、シンボルの表示方法を説明するための図である。
各種シンボルの画像データは、図５（ａ）に示すように、例えばビットマップパターンの形でＲＯＭ２０４に格納されている。各画像データには基準点がそれぞれ定められており、シンボルの表示位置は、図５（ｂ）に示すように、それの画像データの基準点の表示位置を指定することで行うようになっている。本実施の形態では、その表示位置をＸＹ座標系で指定することを前提としている。上記Ｘ、Ｙデータは、それぞれ、Ｘ軸上での位置を指定するデータ、Ｙ軸上での位置を指定するデータである。図５（ｂ）中の「ｘ」「ｙ」は、それぞれ、Ｘ、Ｙデータとして格納された値を示している。
【００２７】
図６は、楽譜データ例を示す図である。図６（ａ）には、小節線、及び５線を表示するためのデータをまとめ、図６（ｂ）にはそれ以外のシンボルを表示するためのデータをまとめて示してある。その図６に示す楽譜データにより、図８に示す楽譜が表示される。
【００２８】
図７は、他の楽譜データ例を示す図である。その楽譜データは、例えば既に決められた五線上に表示すべきシンボルを表示させるためのものである。その図７に示す楽譜データにより、図９に示す楽譜を表示させることができる。
【００２９】
図７に示す楽譜データでは、シンボルサイズの値が「−０１」となっている音符が３つ存在している。シンボルサイズの「００」が通常の大きさを表しているのに対し、「−０１」はその大きさより一回り小さい大きさを表している。
【００３０】
また、図７に示す楽譜データには、シンボル「Ｄ．Ｃ．」の表示を指示する単位シンボルデータが存在している。そのシンボル「Ｄ．Ｃ．」は、周知のように、曲の先頭に戻るのを指示する繰り返し記号である。このことから、図９に示す楽譜の演奏は、１回目は、普通サイズの音符の楽音を鳴らす演奏を行い、一通り演奏が終了して先頭に戻っての２回目では、サイズが一回り小さい音符が近傍に配置されている音符までは通常サイズの音符の楽音を鳴らし、それ以降は、サイズが一回りサイズが小さい音符の楽音を鳴らすることで行うようになっている。
【００３１】
図３に示す楽譜データは、上述したような構成となっている。このため、その表示は、ＣＰＵ２０１が、単位シンボルデータ毎に、シンボルナンバーで指定されたシンボルの画像データをＲＯＭ２０４から読み出し、その読み出した画像データを必要に応じて、即ちサイズデータの値に応じて加工し、ＲＯＭ２０４から読み出した、或いは加工した画像データをＸ、Ｙデータで指定されるＸＹ座標に配置していくことで行われる。実際の表示は、１画面分の画像データを生成してから表示装置１０３のメモリにそれを書き込むことで行っても良く、ＲＯＭ２０４から読み出した、或いは加工したシンボルの画像データを随時、そのメモリに書き込んでいくことで行っても良い。
【００３２】
なお、演奏データの生成の対象とする楽譜データは、上記のような楽譜データに限定されるものではない。楽譜データが画像データであっても、パターンマッチングなどの手法によって、その画像データで表示されるシンボルの種類やその表示位置を特定することができることから、言い換えれば図６、或いは図７に示すような楽譜データを生成できることから、楽譜データは画像データであっても良い。
【００３３】
上述したような構成の楽譜データから生成する演奏データは、以下のような構成となっている。その構成、及び、それの生成方法について、図１０〜図１２に示す各種説明図を参照して説明する。
【００３４】
図１０は、上記演奏データの構成を説明する図である。
その演奏データは、図１０に示すように、直前のイベントからの経過時間（デルタタイム）で処理タイミングを表す時間データ、イベントの種類を示すコマンドデータ、楽音の音高を指定するノートデータ、及びイベントを生じさせる形態を指定するデータであるデュレーションデータを１イベント分のデータ（以降、単位イベントデータと呼ぶ）として、それを処理順序に従って並べた形で構成されている。本実施の形態では、そのような構成の演奏データを配列変数（変数名はＳｏｎｇ  Ｄａｔａである）の形で扱っており、図１０中の「Ｉｎｄｅｘ」（インデックス）の値は配列変数中の要素を指定する引数となる。クレーム中の楽音データは、単位イベントデータから時間データを除いた部分に対応する。
【００３５】
上記時間データには、所定の単位時間でデルタタイムを表す値が格納される。本実施の形態では、４分音符の期間を２４で割った値に対応する時間を単位時間としている。コマンドデータには、発音開始（ノートオン）、或いは消音（ノートオフ）を示す値などが格納される。本実施の形態では、ノートオンは９０Ｈ（Ｈは１６進数を表す）、ノートオフは８０Ｈとしている。ノートデータには、ノートオン／オフすべき楽音の音高を示す値（ノートナンバー）が格納される。最後のデュレーションデータには、楽音の発音期間（ゲートタイム）を上記単位時間で表した値が格納される。
【００３６】
ノートオン／オフすべき楽音の音高は、音符のＹ座標値、即ち単位シンボルデータ中のＹデータの値に対応する。このことから、本実施の形態では、図１１に示すようなＹ座標値とノートナンバーの対応関係を示すテーブル（以降、音高テーブルと呼ぶ）を制御データとしてＲＯＭ２０４に用意している。それにより、楽譜データからの演奏データの生成は、ＣＰＵ２０１が、単位シンボルデータ毎に、そのテーブルを参照しつつ、単位イベントデータを生成していくことで行われる。図１２に示す演奏データ例は、図７に示す楽譜データから生成したものである。なお、上記音高テーブルは、配列変数ＮｏｔｅＮｏＴａｂｌｅとして扱っている。
【００３７】
上述したように、図７に示す楽譜データによって図９に示す楽譜が表示される。その楽譜には、シンボル（繰り返し記号）「Ｄ．Ｃ．」が配置され、２小節目には、サイズが通常よりも小さい音符が３つ配置されている。その３つの音符は、シンボル「Ｄ．Ｃ．」によって指定された範囲まで演奏を進行させて曲（楽譜）の先頭に戻り、２回目の演奏に入ってから、２小節目に存在する通常サイズの音符の代わりに鳴らすべき音符である。図１２中の２回目分の単位イベントデータは、その２回目の演奏に入ってから鳴らすべき音符の単位シンボルデータから生成したものである。それ以前、即ち１回目分の単位イベントデータは、通常サイズの音符の単位シンボルデータから生成したものである。
【００３８】
このようにして、本実施の形態では、シンボル「Ｄ．Ｃ．」が表す演奏上の操作を演奏データの生成に反映させている。そのように音符以外のシンボルが表す演奏上の操作を演奏データの生成に反映させた場合、楽譜上の音符から単に単位イベントデータを生成する場合とは異なり、高い再現性を実現させることができる。図９に示すような楽譜では、演奏の流れのなかで発音させるべき楽音だけを適切なタイミングで発音させていく演奏データを生成することができる。このため、楽譜データを取得するだけでも非常に参考となる演奏をユーザに聴かせることができる。
【００３９】
本実施の形態では、図１２から明らかなように、ゲートタイムは、音符の発音期間の１／２としている。４分音符は２４単位時間であることから、それのゲートタイムは１２としている。デルタタイムについては、複数の楽音を同時に発音させることは前提としていないことから、直前に位置する音符の発音開始タイミングまでの時間としている。２回目の演奏に入って始めに鳴らす小さいサイズの２分音符の直前には２分音符が位置している。このことから、そのデルタタイムは４８となっている。
【００４０】
なお、楽譜データから生成する演奏データは、図１０に示すような演奏データに限定されるものではない。例えばＭＩＤＩデータ、或いはそれに類似したデータを用いて構成したものであっても良い。
【００４１】
次に、上記楽譜データの変換、及びその変換によって得られた演奏データを再生するためのＣＰＵ２０１の動作について、図１３〜図１７に示す各種動作フローチャートを参照して詳細に説明する。
【００４２】
図１３は、楽譜データ変換再生処理の動作フローチャートである。その変換再生処理は、例えばユーザがスイッチ群１０２を操作して、楽譜データの変換を指示し、その対象としてＦＤ１１０にファイル形式で格納された楽譜データを指定（選択）した場合に、ＣＰＵ２０１がＲＯＭ２０４に格納されたプログラムを実行することで実現される処理を抜粋してその流れを表したものである。始めに、図１３を参照して、その変換再生処理について詳細に説明する。
【００４３】
先ず、ステップ１３０１では、ユーザが指定した、ＦＤ１１０にファイル形式で格納されている楽譜データの読み取りをＦＤＤ２０６に指示し、それによってＦＤＤ２０６から送られてくるその楽譜データをＲＡＭ２０５に格納する。続くステップ１３０２では、ＲＡＭ２０５に格納した楽譜データを対象にして、それの演奏データを生成する楽譜変換処理を実行する。
【００４４】
楽譜変換処理を実行することで、ＲＡＭ２０５に演奏データが格納される。ステップ１３０２に続くステップ１３０３では、ＲＡＭ２０５に格納された楽譜データを表示装置１０３に表示させるとともに、それの演奏データを再生する再生処理を実行する。その再生処理を実行した後、一連の処理を終了する。
【００４５】
演奏データ中の単位イベントデータの処理や、その処理による演奏の進行に合わせた楽譜上の音符の表示色の変更などは、例えばタイマ２０３が出力する割り込み信号によって起動するタイマインタラプト処理を実行することで行うようになっている。このため、上記再生処理では、実際には、そのタイマインタラプト処理を実行させるうえでの初期設定が行われる。その初期設定の一つとして、タイマ２０３に、テンポ値に応じた値を設定することにより、ユーザが指定したテンポで演奏データを再生できるようになっている。
【００４６】
このように、本実施の形態では、楽譜データをＦＤ１１０から読み出すと、演奏データの生成、更にはその再生を順次、行うようになっている。それにより、処理の対象となる楽譜データや演奏データが複数、存在しないことから、図３に示す楽譜データ、及び図１０に示す演奏データのインデックス値は０からとなっている。
【００４７】
図１４は、上記ステップ１３０２として実行される楽譜変換処理の動作フローチャートである。次に、図１４を参照して、その変換処理について詳細に説明する。
【００４８】
楽譜上に出現するシンボルは、各種の音符や休符、及びシンボル「Ｄ．Ｃ．」などだけでなく、それら以外にも様々なシンボルが存在している。しかし、ここでは、便宜的に、図７に示す楽譜データ（図９に示す楽譜）から演奏データを生成するために実行される部分に注目し、図１４には、その注目した部分だけを抽出してその流れを表している。
【００４９】
先ず、ステップ１４０１では、初期設定を行う。その初期設定により、変数Ｉｎｄｅｘには−１を代入し、変数、ＳＤＩｎｄｅｘ、Ｄｅｌｔａ、２ｎｄＦＬＡＧ、及び２ｎｄＦには、それぞれ０を代入する。変数Ｉｎｄｅｘは配列変数Ｓｃｏｒｅ  Ｄａｔａ（楽譜データ）中の要素を指定する引数として用いる変数であり、変数ＳＤＩｎｄｅｘは、配列変数Ｓｏｎｇ  Ｄａｔａ（演奏データ）中の要素を指定する引数として用いる変数である。変数Ｄｅｌｔａは、デルタタイム算出用に用意した変数、２ｎｄＦＬＡＧ、及び２ｎｄＦは、共にシンボル「Ｄ．Ｃ．」が指示する演奏上の操作を演奏データの生成に反映するために用意した変数である。
【００５０】
ステップ１４０１に続くステップ１４０２では、変数Ｉｎｄｅｘの値をインクリメントする。その後に移行するステップ１４０３では、配列変数Ｓｃｏｒｅ  Ｄａｔａ中の変数Ｉｎｄｅｘで指定される要素のなかのシンボルナンバーデータ（図中では、Ｓｃｏｒｅ  Ｄａｔａ（Ｉｎｄｅｘ（Ｓｙｍｂｏｌ＃））と表記）が表すナンバーを判定する。変数Ｉｎｄｅｘの値で指定される要素に単位シンボルデータが存在していない場合、その旨が判定されて、ここで一連の処理が終了する。そうでない場合には、そのナンバーが判定され、その判定結果に応じてステップ１４０４〜１４０８のうちの何れかに移行する。
【００５１】
そのナンバーが５２、５３、６２、或いは０であった場合、ステップ１４０４〜１４０７のうちの何れかに移行し、そのステップの処理を実行した後、ステップ１４０２に戻る。一方、そのナンバーが２であった場合には、ステップ１４０８に移行して、変数２ｎｄＦＬＡＧの値が０か否か判定する。その値が０であった場合、判定はＹＥＳとなり、ステップ１４０９で変数２ｎｄＦに１を代入した後、ステップ１４０２に戻る。そうでない場合には、判定はＮＯとなり、ステップ１４１０で変数２ｎｄＦに３を代入した後、そのステップ１４０２に戻る。このように変数２ｎｄＦに値を代入するのは、シンボル「Ｄ．Ｃ．」によって指定される範囲を小節単位で区切るようにしているためである。
【００５２】
上述した楽譜変換処理を実行することにより、図７に示す楽譜データから図１２に示す演奏データが生成されることになる。次に、その楽譜変換処理内で実行される各種サブルーチン処理について詳細に説明する。
【００５３】
図１５は、上記ステップ１４０４として実行される４分音符処理の動作フローチャートである。これは、４分音符の表示を指示する単位シンボルデータからそれに対応する単位イベントデータを生成するための処理である。楽譜変換処理内で実行されるサブルーチン処理では、図１５を参照して、始めに４分音符処理について詳細に説明する。
【００５４】
先ず、ステップ１５０１では、配列変数Ｓｃｏｒｅ  Ｄａｔａ中の変数Ｉｎｄｅｘで指定される要素のなかのサイズデータ（図中では、Ｓｃｏｒｅ  Ｄａｔａ（Ｉｎｄｅｘ（ＳｙｍｂｏｌＳｉｚｅ））と表記）の値が０か否か判定する。変数Ｉｎｄｅｘの値で指定される要素の単位シンボルデータが通常サイズの音符（ここでは４分音符）の表示を指示するものであった場合、判定はＹＥＳとなってステップ１５０２に移行する。そうでない場合には、判定はＮＯとなってステップ１５０８に移行する。
【００５５】
ステップ１５０２では、変数２ｎｄＦＬＡＧの値が２か否か判定する。その変数には、後述するように、通常サイズよりも小さい音符の単位イベントデータの生成を開始した際に２が代入される。このことから、その生成を開始していた場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなってステップ１５０３に移行する。
【００５６】
ステップ１５０３〜ステップ１５０７では、変数Ｉｎｄｅｘの値が指定する単位シンボルデータから単位イベントデータを生成し、それを変数ＳＤＩｎｄｅｘの値が指定する配列変数Ｓｏｎｇ  Ｄａｔａの要素Ｓｏｎｇ  Ｄａｔａ（ＳＤＩｎｄｅｘ）に代入・保存するための処理が行われる。
【００５７】
先ず、ステップ１５０３では、配列変数Ｓｏｎｇ  Ｄａｔａ中の変数ＳＤＩｎｄｅｘで指定される要素に、その時間データ（図中では、Ｓｏｎｇ  Ｄａｔａ（ＳＤＩｎｄｅｘ（Ｄｅｌｔａ））と表記）の値として変数Ｄｅｌｔａの値を代入する。続くステップ１５０４では、その要素に、そのコマンドデータ（図中では、Ｓｏｎｇ  Ｄａｔａ（ＳＤＩｎｄｅｘ（Ｃｏｍｍａｎｄ））と表記）の値として９０Ｈを代入する。その後、ステップ１５０５に移行する。
【００５８】
ステップ１５０５では、その要素に、ノートデータの値として、配列変数ＮｏｔｅＮｏＴａｂｌｅのなかで変数Ｉｎｄｅｘの値が指定する単位シンボルデータ中のＹデータの値によって指定される要素（図中ではＮｏｔｅＮｏＴａｂｌｅ［Ｓｃｏｒｅ  Ｄａｔａ（Ｉｎｄｅｘ（Ｙ））］で表記）の値を代入する。続くステップ１５０６では、その要素に、デュレーションデータの値として１２を代入する。その代入を行った後は、ステップ１５０７に移行して、変数Ｄｅｌｔａに２４を代入し、変数ＳＤＩｎｄｅｘの値をインクリメントした後、一連の処理を終了する。
【００５９】
一方、ステップ１５０１の判定がＮＯとなって移行するステップ１５０８では、変数２ｎｄＦＬＡＧの値が１か否か判定する。その変数の値が１であった場合、判定はＹＥＳとなってステップ１５０９に移行する。そうでない場合には、判定はＮＯとなってステップ１５１１に移行する。
【００６０】
ステップ１５０９では、変数ＳＤＩｎｄｅｘの値をデクリメントし、変数Ｄｅｌｔａに、配列変数Ｓｏｎｇ  Ｄａｔａ中の変数ＳＤＩｎｄｅｘの値で指定される要素の時間データ（図中ではＳｏｎｇ  Ｄａｔａ（ＳＤＩｎｄｅｘ（Ｄｅｌｔａ））と表記）の値を代入する。続くステップ１５１０では、変数２ｎｄＦＬＡＧに２を代入する。その後は、上述したステップ１５０３に移行する。
【００６１】
上記ステップ１５０８の判定がＮＯとなって移行するステップ１５１１では、変数２ｎｄＦＬＡＧの値が２か否か判定する。その変数の値が２であった場合、判定はＹＥＳとなってステップ１５０３に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００６２】
このように、４分音符処理では、通常サイズの音符（４分音符）の単位イベントデータは、変数２ｎｄＦＬＡＧの値が２となっていない間、生成するようになっている。反対に、それよりも小さいサイズの音符（４分音符）の単位イベントデータは、その値が０となっていない間、生成するようになっている。それにより、１回目は通常サイズの音符の単位イベントデータのみを生成し、２回目は、小さいサイズの音符が直後に位置していない通常サイズの音符の単位イベントデータは生成し、その小さいサイズの音符が直後に位置している通常サイズの音符以降は、その小さいサイズの音符の単位イベントデータのみを生成するようになっている。
【００６３】
図１４に示す楽譜変換処理内でステップ１４０５として実行される２分音符処理は、上記４分音符処理と基本的に同じである。異なるのは、上記ステップ１５０６で、配列変数Ｓｏｎｇ  Ｄａｔａ中の変数ＳＤＩｎｄｅｘで指定される要素に、デュレーションデータの値として２４を代入し、続くステップ１５０７で変数Ｄｅｌｔａに４８を代入することだけである。このため、図面を参照しての説明は省略する。
【００６４】
図９に示す楽譜では、Ｘ座標値が７４である通常サイズの４分音符の直後にそれよりも小さいサイズの２分音符が続いている（図７参照）。２回目の演奏では、それまでには小さいサイズの音符は存在していないことから、その２分音符を処理対象とした際に、２分音符処理におけるステップ１５０１の判定がＮＯとなり、且つステップ１５０８の判定がＹＥＳとなる。このことから、図９に示す楽譜では、その２分音符を処理対象とした場合にステップ１５０９に移行し、その直前に位置する通常サイズである４分音符の単位イベントデータの代わりに、その２分音符の単位シンボルデータを保存し、変数２ｎｄＦＬＡＧに２を代入することになる。このため、それ以降は、４分音符処理の実行時に、Ｘ座標値が１０１、１１１のサイズが小さい４分音符の単位イベントデータが生成されることになる。
【００６５】
図１６は、図１４に示す楽譜変換処理内でステップ１４０６として実行される４分休符処理の動作フローチャートである。次に、図１６を参照して、その休符処理について詳細に説明する。
【００６６】
４分休符を含む各種の休符は、音のない場所とその長さを表す記号である。音符間に休符が存在していると、その休符分だけ変数Ｄｅｌｔａに保持させた値（デルタタイム）を大きくさせる必要がある。その大きさには、音符と同じく、通常サイズとそれよりも小さいサイズとがある。このことから、４分休符処理では、４分休符が配置された位置、そのサイズ、及びそれを処理する状況を考慮しつつ、変数Ｄｅｌｔａの値の更新を行うようになっている。
【００６７】
先ず、ステップ１６０１では、配列変数Ｓｃｏｒｅ  Ｄａｔａ中の変数Ｉｎｄｅｘで指定される要素のなかのサイズデータ（図中では、Ｓｃｏｒｅ  Ｄａｔａ（Ｉｎｄｅｘ（ＳｙｍｂｏｌＳｉｚｅ））と表記）の値が０か否か判定する。変数Ｉｎｄｅｘの値で指定される要素の単位シンボルデータが通常サイズの休符（ここでは４分休符）の表示を指示するものであった場合、判定はＹＥＳとなってステップ１６０２に移行する。そうでない場合には、判定はＮＯとなってステップ１６０４に移行する。
【００６８】
ステップ１６０２では、変数２ｎｄＦＬＡＧの値が２か否か判定する。その変数の値が２であった場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなり、次にステップ１６０３で変数Ｄｅｌｔａに、それまでの値に２４（４分休符の時間に対応する値）を加算した値を代入した後、一連の処理を終了する。そのようにして、４分休符が通常サイズの大きさであり、それよりも小さいサイズのシンボルを処理対象としていない状況では、変数Ｄｅｌｔａの値が示す時間間隔（デルタタイム）を４分休符分だけ長くさせる更新を行う。
【００６９】
一方、ステップ１６０１の判定がＮＯとなって移行するステップ１６０４では、変数２ｎｄＦＬＡＧの値が１か否か判定する。その変数の値が１であった場合、判定はＹＥＳとなってステップ１６０５に移行する。そうでない場合には、判定はＮＯとなってステップ１６０７に移行する。
【００７０】
ステップ１６０５では、変数ＳＤＩｎｄｅｘの値をデクリメントし、変数Ｄｅｌｔａに、配列変数Ｓｏｎｇ  Ｄａｔａの変数ＳＤＩｎｄｅｘの値で指定される要素の時間データ（図中ではＳｏｎｇ  Ｄａｔａ（ＳＤＩｎｄｅｘ（Ｄｅｌｔａ））と表記）の値を代入する。続くステップ１６０６では、変数２ｎｄＦＬＡＧに２を代入する。その後は、上述したステップ１６０３に移行し、変数Ｄｅｌｔａの値が示す時間間隔（デルタタイム）を４分休符分だけ長くさせる更新を行った後、一連の処理を終了する。
【００７１】
上記ステップ１６０４の判定がＮＯとなって移行するステップ１６０７では、変数２ｎｄＦＬＡＧの値が２か否か判定する。その変数の値が２であった場合、判定はＹＥＳとなってステップ１６０７に移行し、上述したようにして変数Ｄｅｌｔａの値を更新した後、一連の処理を終了する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００７２】
図１７は、図１４に示す楽譜変換処理内でステップ１４０７として実行される小節線処理の動作フローチャートである。次に、図１７を参照して、その小節線処理について詳細に説明する。
【００７３】
上述したように、シンボル「Ｄ．Ｃ．」によって指定される範囲は小節線で区切るようにしている。このことから、小節線処理では、そのシンボルが指示する曲の先頭に戻るという演奏上の操作を演奏データ上で実現させるための各種設定、即ち各種変数への値の代入が状況に応じて行うようになっている。
【００７４】
先ず、ステップ１７０１では、変数２ｎｄＦの値が１か否か判定する。その変数には、シンボル「Ｄ．Ｃ．」を最初に処理した際に１が代入される（図１４参照）。このことから、そのシンボル「Ｄ．Ｃ．」の直後に位置する小節線を初めて処理対象とした場合、判定はＹＥＳとなり、ステップ１７０２で変数２ｎｄＦＬＡＧに１、変数Ｉｎｄｅｘに−１、及び変数２ｎｄＦに２をそれぞれ代入した後、ステップ１７０３に移行する。そうでない場合には、判定はＮＯとなり、ステップ１７０５に移行する。
【００７５】
ステップ１７０３では、変数２ｎｄＦＬＡＧの値が２か否か判定する。その変数に２が代入されていた場合、判定はＹＥＳとなり、ステップ１７０４で変数２ｎｄＦＬＡＧに０を代入した後、一連の処理を終了する。そうでない場合には、判定はＮＯとなり、ここで一連の処理が終了する。
【００７６】
一方、ステップ１７０１の判定がＮＯとなって移行するステップ１７０５では、変数２ｎｄＦの値が３か否か判定する。図１４に示すように、シンボル「Ｄ．Ｃ．」を２回、処理対象とした際に変数２ｎｄＦには３が代入される。このことから、そのシンボル「Ｄ．Ｃ．」の直後に位置する小節線を２回、処理対象とした場合、判定はＹＥＳとなり、ステップ１７０３に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００７７】
ステップ１７０５→１７０３に移行したときには、通常、変数２ｎｄＦＬＡＧには２が代入されている。このため、ステップ１７０３の判定はＹＥＳとなり、変数２ｎｄＦＬＡＧには０が代入されることになる。それにより、シンボル「Ｄ．Ｃ．」が配置された楽譜では、そのシンボルによって指定される範囲を２度、繰り返し演奏する演奏データが生成されることになる。このため、図７に示す楽譜データからは図１２に示す演奏データが生成される。
＜第２の実施の形態＞
上記第１の実施の形態では、楽譜データが表す演奏を再生するために必要なデータのみを生成して演奏データを構成させている。これに対し、第２の実施の形態は、その演奏データに、演奏の再生に直接的に係わらないデータを生成して挿入するようにしたものである。
【００７８】
第２の実施の形態による楽譜データ変換装置を搭載した電子楽器の構成は、基本的に上記第１の実施の形態における電子楽器のそれと同じである。また、各部の動作も基本的には同じである。このことから、第１の実施の形態の説明で付した符号をそのまま用いて、第１の実施の形態から異なる部分についてのみ説明することにする。
【００７９】
シンボル「Ｄ．Ｃ．」が存在する楽譜の演奏では、同じ部分を繰り返し演奏することになる。その繰り返しのために、演奏と楽譜との対応がとりにくい人も多いと考えられる。このようなことから、第２の実施の形態では、演奏データ中に、楽譜上の演奏位置を示す情報を単位イベントデータとして挿入するようにしている。
【００８０】
図７に示すように、楽譜データ中には、小節線の表示を指示する単位シンボルデータが存在している。第２の実施の形態では、その単位シンボルデータから、それが表示を指示する小節線の単位イベントデータを生成し、その単位イベントデータに、その小節線によって区切られた小節を示す情報を格納するようにしている。その小節を示す情報は、楽譜先頭からの小節数とし、その小節数をノートデータとして格納している。コマンドデータの値は００Ｈとしている。時間データには変数Ｄｅｌｔａの値を格納している。
【００８１】
小節線の単位イベントデータを含む、楽譜データからの演奏データの生成は、第１の実施の形態と同じく、ＣＰＵ２０１が楽譜データ変換再生処理を実行することで行われる。第２の実施の形態における楽譜データ変換再生処理は、図１３に示す第１の実施の形態におけるそれから、ステップ１３０２、及び１３０３の処理が異なる。それ以外のステップの処理は基本的に同じである。このことから、ステップ１３０２、及び１３０３についてのみ説明する。
【００８２】
ステップ１３０２では楽譜変換処理が実行される。第２の実施の形態における楽譜変換処理は、図１４に示す第１の実施の形態におけるそれから、ステップ１４０１、及び１４０７の処理が異なる。それ以外のステップの処理は基本的に同じである。このことから、楽譜変換処理では、ステップ１４０１、及び１４０７についてのみ説明する。
【００８３】
第２の実施の形態では、小節数のカウントを行うために変数Ｂａｒを用意している。ステップ１４０１では、上述した各種変数への値の代入に加え、その変数Ｂａｒに０を代入している。
【００８４】
図１８は、上記ステップ１４０７として実行される小節線処理の動作フローチャートである。次に、図１８を参照して、第２の実施の形態における小節線処理について詳細に説明する。
【００８５】
第１の実施の形態における小節線処理では、シンボル「Ｄ．Ｃ．」が指示する曲の先頭に戻るという演奏上の操作を演奏データ上で実現させるための各種設定、即ち各種変数への値の代入を状況に応じて行うようになっている。第２の実施の形態では、それに加え、小節線の単位イベントデータの生成、及びそれに係わる各種設定を行うようになっている。
【００８６】
先ず、ステップ１８０１では、変数２ｎｄＦの値が１か否か判定する。シンボル「Ｄ．Ｃ．」の直後に位置する小節線を初めて処理対象とした場合、判定はＹＥＳとなり、ステップ１８０２で変数２ｎｄＦＬＡＧに１、変数Ｉｎｄｅｘに−１、変数２ｎｄＦに２、及び変数Ｂａｒに０をそれぞれ代入した後、ステップ１８０３に移行する。そうでない場合には、判定はＮＯとなり、ステップ１８０９に移行する。
【００８７】
ステップ１８０３では、変数２ｎｄＦＬＡＧの値が２か否か判定する。その変数に２が代入されていた場合、判定はＹＥＳとなり、ステップ１８０４で変数２ｎｄＦＬＡＧに０を代入した後、ステップ１８０５に移行する。そうでない場合には、判定はＮＯとなり、そのステップ１８０５に移行する。
【００８８】
ステップ１８０５では、変数Ｂａｒの値をインクリメントする。続くステップ１８０６では、配列変数Ｓｏｎｇ  Ｄａｔａ中の変数ＳＤＩｎｄｅｘで指定される要素に、その時間データ（図中では、Ｓｏｎｇ  Ｄａｔａ（ＳＤＩｎｄｅｘ（Ｄｅｌｔａ））と表記）の値として変数Ｄｅｌｔａの値を代入する。その代入後は、ステップ１８０７でその要素に、そのコマンドデータ（図中では、ＳｏｎｇＤａｔａ（ＳＤＩｎｄｅｘ（Ｃｏｍｍａｎｄ））と表記）の値として００Ｈを代入する。その次に移行するステップ１８０８では、その要素に、ノートデータ（図中では、Ｓｏｎｇ  Ｄａｔａ（ＳＤＩｎｄｅｘ（Ｎｏｔｅ＃））と表記）の値として、変数Ｂａｒの値を代入する。その代入の他には、変数ＳＤＩｎｄｅｘの値をインクリメントし、変数Ｄｅｌｔａには０を代入する。そのような変数の値の更新を行った後、一連の処理を終了する。
【００８９】
一方、ステップ１８０１の判定がＮＯとなって移行するステップ１８０９では、変数２ｎｄＦの値が３か否か判定する。シンボル「Ｄ．Ｃ．」の直後に位置する小節線を２回、処理対象とした場合、判定はＹＥＳとなり、ステップ１８０３に移行する。そうでない場合には、判定はＮＯとなり、ステップ１８０５に移行する。
【００９０】
演奏データの再生時に、演奏データ中に挿入された小節線の単位イベントデータの内容を表示させるようにすると、現在、楽譜中のどこを演奏中なのかをユーザは随時、確認することができるようになる。このため、ユーザにとっての利便性をより向上させられるという効果が得られる。
【００９１】
なお、本実施の形態（第１および第２の実施の形態）では、シンボル「Ｄ．Ｃ．」によって指示される演奏上の操作を演奏データの生成に反映させているが、演奏データの生成に反映させるシンボルはそれに限定されるものではない。例えば図１９に示す楽譜上に配置されているクレシェンドやデクレシェンド・アクセントなどの強弱記号を演奏データの生成に反映させても良い。その反映は、例えば単位イベントデータに、楽音を発音させる際の強さ（ベロシティ値）をデータとして加えれば行えるようになる。それ以外には、図２０に示すように、速度記号やリタルダンドといった演奏速度の変更を指示する記号を演奏データの生成に反映させても良い。その反映は、例えば単位イベントデータ中の時間データの値を操作することで行うことができる。
【００９２】
また、本実施の形態では、音符間の時間間隔（デルタタイム）を直前の音符、それとの間に存在する休符、などから求めているが、そのようにシンボルが示す時間から求めなくても良い。デルタタイムは、例えば音符のＸ座標値、小節線間の間隔、音部記号などを基に求めても良い。
【００９３】
本実施の形態は電子楽器に搭載された楽譜データ変換装置に本発明を適用したものであるが、本発明を適用できる楽譜データ変換装置はそれに限定されるものではない。楽譜（楽譜データ）を生成する機能、それを受信する機能、或いは記録媒体から読み出す機能を搭載することで楽譜データを取得できる装置であれば、本発明は幅広く適用させることができる。高い再現性を有する演奏データを生成できることから、楽譜を表示できるカラオケ装置や、演奏すべき楽譜を表示したり、その演奏を行ったりする音楽教育用の装置などに本発明を適用させても良い。そのような装置が通信回線を介して楽譜データを受信する機能を搭載しているのであれば、演奏データを必ずしも受信する必要はないことから、より短い時間で必要なデータを受信することができる。これは、その通信回線が公衆網などの送信（通話）時間で料金を課金する回線であれば、データの受信にかかる費用がより低く抑えられることを意味する。
【００９４】
上記楽譜データ変換装置の動作を実現させるようなプログラムは、ＣＤ−ＲＯＭ、フロッピーディスク、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等の通信回線を用いて、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザはプログラムを取得して任意の楽譜データ変換装置、或いはコンピュータ等のデータ処理装置にロードすることにより、その装置に本発明を適用させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【００９５】
【発明の効果】
以上、説明したように本発明は、楽譜データによって表示される楽譜上に配置されるシンボルを音符か否かによって少なくとも２つに大別し、音符以外のシンボルによって指示される演奏上の操作を必要に応じて反映させつつ、音符が表す楽音の発音を指示するための単位演奏データを生成していくことで演奏データを生成する。このため、その再生時において、反復記号や繰り返し記号、強弱記号、或いは速度記号といった楽譜上に出現するシンボルによって指示される演奏上の操作を表現する、高い再現性を有する演奏データを生成することができる。
【図面の簡単な説明】
【図１】第１の実施の形態による楽譜データ変換装置を搭載した電子楽器の外観図である。
【図２】第１の実施の形態による楽譜データ変換装置を搭載した電子楽器の回路構成図である。
【図３】楽譜データの構成を説明する図である。
【図４】シンボルに割り当てたナンバーを説明する図である。
【図５】シンボルの表示方法を説明するための図である。
【図６】楽譜データ例を示す図である（その１）。
【図７】楽譜データ例を示す図である（その２）。
【図８】楽譜表示例を示す図である（その１）。
【図９】楽譜表示例を示す図である（その２）。
【図１０】演奏データの構成を説明する図である。
【図１１】Ｙ座標値とノートナンバーの対応関係を示す図である。
【図１２】楽譜データから生成された演奏データ例を示す図である。
【図１３】楽譜データ変換再生処理の動作フローチャートである。
【図１４】楽譜変換処理の動作フローチャートである。
【図１５】４分音符処理の動作フローチャートである。
【図１６】４分休符処理の動作フローチャートである。
【図１７】小節線処理の動作フローチャートである。
【図１８】小節線処理の動作フローチャートである（第２の実施の形態）。
【図１９】他の楽譜表示例を示す図である（その１）。
【図２０】他の楽譜表示例を示す図である（その２）。
【符号の説明】
１０２    スイッチ群
１０３    表示装置
１１０    フロッピーディスク
２０１    ＣＰＵ
２０４    ＲＯＭ
２０５    ＲＡＭ
２０６    フロッピーディスクドライブ
２０７    音源
２０８    サウンドシステム
【図１】
0003837994.tif 000002
【図２】
0003837994.tif 000003
【図３】
0003837994.tif 000004
【図４】
0003837994.tif 000005
【図５】
0003837994.tif 000006
【図６】
0003837994.tif 000007
【図７】
0003837994.tif 000008
【図８】
0003837994.tif 000009
【図９】
0003837994.tif 000010
【図１０】
0003837994.tif 000011
【図１１】
0003837994.tif 000012
【図１２】
0003837994.tif 000013
【図１３】
0003837994.tif 000014
【図１４】
0003837994.tif 000015
【図１５】
0003837994.tif 000016
【図１６】
0003837994.tif 000017
【図１７】
0003837994.tif 000018
【図１８】
0003837994.tif 000019
【図１９】
0003837994.tif 000020
【図２０】
0003837994.tif 000021