(57)【特許請求の範囲】
【請求項１】
楽曲の拍子から小節規定時間を計算する小節規定時間計算手段と、
小節内の音符、休符の発音タイミング、音価から小節演奏時間を計算する小節演奏時間計算手段と、
計算された前記小節規定時間と小節演奏時間を比較する第１比較手段と、
前記小節規定時間と小節演奏時間が一致しない場合に小節内に連符が存在すると推定し、音符、休符の発音タイミング、音価を修正する音価修正手段とを備え、
前記音価修正手段は、
修正対象音符を順次決定する対象音決定手段と、
前記小節内における修正対象音符の音価を２／３に変更して連符化処理を行う連符化処理手段と、
前記小節規定時間と変更された音価による修正小節演奏時間を比較する第２比較手段とを備え、
前記対象音決定手段により順次決定された各修正対象音符に対して前記連符化処理及び前記第２比較手段による比較を繰り返して行い、前記小節規定時間と前記修正小節演奏時間が等しくなった時の各音符の変更音価で３連符の連符化を確定させる
ことを特徴とする楽譜演奏装置。
【請求項２】
前記連符化処理手段は、前記小節内における修正対象音符より１つ大きい音価を有する音符の音価についても２／３の音価に変更して連符化処理を行うことで、２通りの連符推定を行う請求項１に記載の楽譜演奏装置。
【請求項３】
前記対象音決定手段は６４分音符、３２分音符、１６分音符、８分音符、４分音符、２分音符の順に対象音を変更しながら、前記連符化処理手段で繰り返し連符推定を行う請求項１に記載の楽譜演奏装置。
【請求項４】
楽曲の拍子から小節規定時間を計算する小節規定時間計算ステップと、
小節内の音符、休符の発音タイミング、音価から小節演奏時間を計算する小節演奏時間計算ステップと、
計算された前記小節規定時間と小節演奏時間を比較し、前記小節規定時間と小節演奏時間が一致しない場合に小節内に連符が存在すると推定する連符推定ステップと、
小節内の音符に対して修正対象音符を順次決定する対象音決定ステップと、
前記小節内における修正対象音符の音価を２／３に変更して連符化処理を行い、前記小節規定時間と変更された音価による修正小節演奏時間を比較し、小節規定時間と前記修正小節演奏時間が等しくなった時の各音符の変更音価で３連符の連符化を確定させる連符化処理ステップとを備え、
３連符の連符化が確定するまで前記対象音決定ステップで順次決定される修正対象音符に対して前記連符化処理を繰り返して行うことをコンピュータに実行させるための楽譜演奏プログラム。
【請求項５】
前記対象音決定ステップで修正対象音符を決定し、前記連符化処理ステップで修正対象音符の音価を変更した後に、音価の変更が１回目である場合は前記修正対象音符より１つ大きい音価を有する音符の音価についても２／３の音価に変更して前記連符化処理を行う請求項４に記載の楽譜演奏プログラム。
【請求項６】
前記修正対象音符は、６４分音符、３２分音符、１６分音符、８分音符、４分音符、２分音符の順に変更しながら、前記連符化処理を繰り返し行う請求項４に記載の楽譜演奏プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子的に取り込まれた楽譜の音楽情報から演奏を行う楽譜演奏技術に関し、特に、楽譜に記述された音符形状から音価を決定するに際して、３連符の連符記号が記述されない場合でも正しい音価が求められる楽譜演奏装置及び楽譜演奏プログラムに関する。
【背景技術】
【０００２】
楽譜演奏装置は、ＰＤＦの楽譜ファイルや、スキャナで取り込まれた楽譜から抽出した音符の描画位置、発音開始時間、持続時間、小節線の描画位置などの楽譜情報から演奏情報を作成し、この演奏情報により自動的に演奏を行うものである。楽譜から楽譜情報を抽出して演奏情報を作成する手順は、例えば特許文献１に記載されている。
楽譜における３連符、５連符などの音価（音符の時間長）は、実際に記述されている音符で示される時間長と異なる。例えば図１９の第１小節の矢印部分に示されるように、３連符が８分音符で記述されているような場合、その時間長は８分音符の２／３となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−１２９１５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
楽譜から演奏情報を生成するに際して、記述された音符形状から音価を決定する場合、図１９の第１小節の矢印部分のように３連符を示す連符記号（連符を示す数）がある場合は、その記号（数字）を認識できれば正しい音価を求めることができる。しかしながら、連符記号は図１９の第３小節の矢印部分のように省略されることが多く、この場合は楽譜を読み取って演奏情報を作成するに際して、通常の８分音符として音価を求めてしまうことになる。
また、連符記号の記載があったとしても、楽譜には指番号などが記載されている場合が多く、楽譜から演奏情報を生成するに際して、指番号と連符記号（連符を示す数）とを区別する必要があり、そのための読取技術が必要であった。
【０００５】
本発明は上記事情に鑑みて提案されたもので、楽譜において連符記号が記述されない場合であっても、３連符に特化して正しい音価を有する演奏情報を作成して自動演奏を可能とした楽譜演奏装置及び楽譜演奏プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するため本発明の楽譜演奏装置（請求項１）は、楽曲の拍子から小節規定時間を計算する小節規定時間計算手段と、小節内の音符、休符の発音タイミング、音価(GateTime）から小節演奏時間を計算する小節演奏時間計算手段と、計算された前記小節規定時間と小節演奏時間を比較する第１比較手段と、前記小節規定時間と小節演奏時間が一致しない場合に小節内に連符が存在すると推定し、音符、休符の発音タイミング、音価を修正する音価修正手段とを備え、前記音価修正手段は、修正対象音符を順次決定する対象音決定手段と、前記小節内における修正対象音符の音価を２／３に変更して連符化処理を行う連符化処理手段と、前記小節規定時間と変更された音価による修正小節演奏時間を比較する第２比較手段とを備え、前記対象音決定手段により順次決定された各修正対象音符に対して前記連符化処理及び前記第２比較手段による比較を繰り返して行い、前記小節規定時間と前記修正小節演奏時間が等しくなった時の各音符の変更音価で３連符の連符化を確定させることを特徴としている。
【０００７】
請求項２は、請求項１の楽譜演奏装置において、前記連符化処理手段は、前記小節内における修正対象音符より１つ大きい音価を有する音符の音価についても２／３の音価に変更して連符化処理を行うことで、２通りの連符推定を行うことを特徴としている。
【０００８】
請求項３は、請求項１の楽譜演奏装置において、前記対象音決定手段は６４分音符、３２分音符、１６分音符、８分音符、４分音符、２分音符の順に対象音を変更しながら、前記連符化処理手段で繰り返し連符推定を行うことを特徴としている。
【０００９】
請求項４は、コンピュータに実行させるための楽譜演奏プログラムであって、次の手順を含むことを特徴としている。
楽曲の拍子から小節規定時間を計算する小節規定時間計算ステップ。
小節内の音符、休符の発音タイミング、音価（GateTime）から小節演奏時間を計算する小節演奏時間計算ステップ。
計算された前記小節規定時間と小節演奏時間を比較し、前記小節規定時間と小節演奏時間が一致しない場合に小節内に連符が存在すると推定する連符推定ステップ。
小節内の音符に対して修正対象音符を順次決定する対象音決定ステップ。
前記小節内における修正対象音符の音価を２／３に変更して連符化処理を行い、前記小節規定時間と変更された音価による修正小節演奏時間を比較し、小節規定時間と前記修正小節演奏時間が等しくなった時の各音符の変更音価で３連符の連符化を確定させる連符化処理ステップ。
そして、前記連符化処理は、３連符の連符化が確定するまで前記対象音決定ステップで順次決定される修正対象音符に対して繰り返して行われる。
【００１０】
請求項５は、請求項４の楽譜演奏プログラムにおいて、前記対象音決定ステップで修正対象音符を決定し、前記連符化処理ステップで修正対象音符の音価を変更した後に、音価の変更が１回目である場合は前記対象音符より１つ大きい音価を有する音符の音価についても２／３の音価に変更して前記連符化処理を行うことを特徴としている。
【００１１】
請求項６は、請求項４の楽譜演奏プログラムにおいて、前記対象音符は、６４分音符、３２分音符、１６分音符、８分音符、４分音符、２分音符の順に変更しながら、前記連符化処理を繰り返し行うことを特徴としている。
【発明の効果】
【００１２】
本発明の楽譜演奏装置及び楽譜演奏プログラムによれば、楽譜において連符記号が記述されない場合であっても、小節規定時間と小節演奏時間が一致しない場合に小節内に連符部分を推定し、音符、休符の発音タイミング、音価を修正する連符化処理を行うことで、正しい音価を有する演奏情報を作成することができる。
連符化処理は、小節内における修正対象音符の音価を２／３に変更し、小節規定時間と修正小節演奏時間が等しくなる対象音が音価を修正する連符と判断することで、楽譜において最も多用される３連符に特化した連符化処理を行うことができる。
【００１３】
また、対象音決定手段により修正対象音符を決定するに際して、６４分音符〜２分音符の（音価が小さい）順に連符推定を行うことで、音価の小さい音符の連符が多用される傾向にある楽曲において効率良い連符化処理を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る楽譜演奏装置が組み込まれた自動演奏装置の機能を示すブロック図である。
【図２】自動演奏装置のハードウエア構成例を示すブロック図である。
【図３】楽譜情報記憶手段が記憶する情報の詳細を説明するモデル図である。
【図４】演奏情報作成手段の構成を示す機能ブロック図である。
【図５】演奏情報作成手段による演奏情報の作成手順を示すフローチャート図である。
【図６】小節情報配列の一例を示すモデル図である。
【図７】楽譜例である。
【図８】図７の楽譜例の各音符から得た演奏情報を示す表である。
【図９】楽譜から小節演奏時間を算出する場合の手順を示すフローチャート図である。
【図１０】イベント種類の一例を示すモデル図である。
【図１１】連符推定を行う場合の全体の流れを示すフローチャート図である。
【図１２】連符推定を行う場合の詳細手順を示すフローチャート図である。
【図１３】楽譜例である。
【図１４】楽譜例の各音符に対して連符推定処理を行った場合の演奏情報を示す表である。
【図１５】図１３の楽譜例に対して正しい連符記号が表示された楽譜例である。
【図１６】楽譜例である。
【図１７】楽譜例の各音符に対して連符推定処理を行った場合の情報を示す表である。
【図１８】図１６の楽譜例に対して正しい連符記号が表示された楽譜例である。
【図１９】楽譜例である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら本発明の楽譜演奏装置について説明する。
図１は、コンピュータ上で動作し本発明の楽譜演奏装置（楽譜演奏プログラム）が組み込まれた自動演奏装置のブロック図であり、楽譜をスキャンした楽譜ファイルやＰＤＦ楽譜ファイルを記憶する楽譜ファイル記憶手段１と、楽譜ファイルを認識して楽譜情報を生成する楽譜情報生成手段２と、生成された楽譜情報を記憶する楽譜情報記憶手段３と、楽譜情報から演奏情報を作成する演奏情報作成手段４と、生成された演奏情報を記憶する演奏情報記憶手段５と、演奏情報を順次読み出し実際に音楽を演奏する楽音演奏手段６と、楽譜ファイルや楽譜情報を表示する楽譜表示手段７を備えて構成されている。
本発明の特徴的な構成は、演奏情報作成手段４において、楽譜情報から演奏情報を作成するに際し、連符の推定を行って正しい音価を求めるものであり、そのために必要な連符推定プログラムは演奏情報作成手段４の一部として機能する。
【００１６】
自動演奏装置のハードウエアは、パーソナルコンピュータ等の汎用情報処理装置によって実現することができる。図２は、コンピュータ上に構築された自動演奏装置のハードウエア構成を示すブロック図であり、バス１０に対して、ディスプレイ１１、マウス１２、キーボード１３、ＲＯＭ１４、ＲＡＭ１５、ＣＰＵ１６、ＨＤＤ１７、ディスクドライブ１８、ＭＩＤＩインターフェイス１９、オーディオインターフェイス２０、ネットワークインターフェイス２１を接続して構成されている。
【００１７】
コンピュータのＨＤＤ１７には、ＭＩＤＩインターフェイス１９、オーディオインターフェイス２０若しくはネットワークインターフェイス２１を介して楽譜ファイルを取り込んで演奏情報を作成し自動演奏を行うための楽譜演奏プログラムが、ディスクドライブ１８に装着された記録媒体からインストールされ、若しくはインターネットを介して所定のＵＲＬよりダウンロードされている。
ＣＰＵ１６は、上記の手順によりインストール又はダウンロードされた所定の制御プログラム（楽譜演奏プログラム）に従って各種処理（各ステップ）を実行し、楽譜演奏装置全体を制御するものであり、楽譜ファイル記憶手段１、楽譜情報生成手段２、楽譜情報記憶手段３を要部機能として備えることで、取り込んだ楽譜情報を電子情報として記憶し、記憶した情報を楽譜表示手段７に表示可能とするとともに、演奏情報作成手段４、演奏情報記憶手段５、楽音演奏手段６を備えることで、楽譜情報に応じて生成した演奏情報により楽音を自動的に演奏可能としている。
ＲＡＭ１５は、ＣＰＵ１６での処理に使用される情報を一時記憶するものである。
【００１８】
楽譜ファイル記憶手段１は、ＲＡＭ１５及びＨＤＤ１７で構成されている。楽譜ファイルは、上述したようにネットワークインターフェイス２１等から取り込んでもよいし、コンピュータに対して別途イメージスキャナを接続して取り込むようしてもよい。
楽譜情報生成手段２は、ＨＤＤ１７に記憶されたプログラムとそれを実行するＣＰＵ１６と、作業記憶領域として使用されるＲＡＭ１５などで構成されている。
楽譜情報記憶手段３は、ＲＡＭ１５及びＨＤＤ１７で構成される。
演奏情報作成手段４は、ＨＤＤ１７に記憶されたプログラムと、それを実行するＣＰＵ１６と、作業記憶領域として使用されるＲＡＭ１５などで構成される。
演奏情報記憶手段５は、ＲＡＭ１５及びＨＤＤ１７などで構成される。
楽音演奏手段６は、ＨＤＤ１７に記憶された楽譜演奏プログラムと、プログラムを実行するＣＰＵ１６と、作業記憶領域として使用されるＲＡＭ１５、音源装置及びオーディオインターフェイス２０などを含んで構成される。音源装置には、Ｄ／Ａ変換器、アンプ、スピーカを含むサウンドシステムが含まれている。
楽譜表示手段７は、ＨＤＤ１７に記憶された楽譜演奏プログラムと、プログラムを実行するＣＰＵ１６と、作業記憶領域として使用されるＲＡＭ１５、液晶ディスプレイ等のディスプレイ１１で構成される。
【００１９】
楽譜情報記憶手段３は、図３に示すように、ページ情報記憶手段３１とパート情報記憶手段３２を備えて構成されている。パート情報記憶手段３２は、パート数分のパート情報３３の配列として構成される。各パート情報３３には、音色、再生音量、再生定位情報などが含まれる。ページ情報記憶手段３１には、ページ数分のページ情報３４の配列として記録されている。各ページ情報３４には、少なくとも段落情報記憶手段３５と、五線情報記憶手段３６が含まれる。
【００２０】
段落情報記憶手段３５には、その段落に所属する全パートあるいは全五線共通に効力がある段落所属記号情報３５ａの配列として記録されている。各段落所属記号情報３５ａに記録される段落所属記号には、段落内でユニークな記号ID、記号カテゴリ情報、記号種類情報、記号カテゴリと記号種類に応じたパラメータ配列、ページ内での記号位置などが含まれる。記号カテゴリの例としては、繰り返し記号、小節線などが挙げられる。記号種類の例としては、D.C.、D.S.、繰り返し括弧など（カテゴリ＝繰り返し記号）、単線、二重線、繰り返し始点、繰り返し終点、終止線など（カテゴリ＝小節線）が挙げられる。
【００２１】
五線情報記憶手段３６には、ページ内の五線数分の五線情報３６ａの配列として記録されている。各五線情報３６ａには、所属パートID、所属段落ID、五線所属記号情報３６ｂなどが含まれる。五線所属記号情報３６ｂは、その五線に所属する五線所属記号の配列として記録されている。
五線所属記号情報３６ｂに記録される五線所属記号には、段落内でユニークな記号ID、記号カテゴリ情報、記号種類情報、OnTime、GateTime、記号カテゴリと記号種類に応じたパラメータ配列、ページ内での記号位置（ページの左上を原点とした座標）などが含まれる。
【００２２】
記号カテゴリの例としては、音符、休符、拍子記号、音部記号、調号、臨時記号などが挙げられる。
記号種類情報の例としては、全音符、４分音符、８分音符、１６分音符、３２分音符など（カテゴリ＝音符）、全休符、４分休符、８分休符、１６分休符、３２分休符など（カテゴリ＝休符）ト音記号、へ音記号など（カテゴリ＝音部記号）が挙げられる。
パラメータの例としては、音程（MIDIのNoteNo.）、付点の数、ChordID、TimingNo.、連桁IDなど（カテゴリ＝音符）、付点の数、ChordID、TimingNo.など（カテゴリID＝休符）、ChordID（同一タイミングに発音する音符グループのID）、TimingNo.（発音順番を示す番号）、GateTime（音符、休符の時間長を示す値）、OnTime（小節の先頭から発音開始までの時間）などが挙げられる。
【００２３】
演奏情報作成手段４は、図４に示すように、楽曲の拍子から小節規定時間を計算する小節規定時間計算手段４０１と、小節内の音符、休符の発音タイミング、音価(GateTime）から小節演奏時間を計算する小節演奏時間計算手段４０２と、計算された前記小節規定時間と小節演奏時間を比較する第１比較手段４０３と、前記小節規定時間と小節演奏時間が一致しない場合に小節内に連符が存在すると推定し、音符、休符の発音タイミング、音価を修正する音価修正手段４０４とを備えて構成されている。
音価修正手段４０４は、修正対象音符を順次決定する対象音決定手段４４１と、小節内における修正対象音符の音価を２／３に変更して連符化処理を行う連符化処理手段４４２とを備えている。連符化処理手段４４２は、変更された音価により小節演奏時間を算出する修正演奏時間算出手段を有し、小節規定時間と変更された音価による修正小節演奏時間は第２比較手段４４３で比較される。
そして、各修正対象音符に対して、連符化処理手段４４２による連符化処理、及び、第２比較手段による比較を繰り返して行い、小節規定時間と修正小節演奏時間が等しくなった時の各音符の変更音価で３連符の連符化を確定させるように構成されている。
【００２４】
次に、楽譜演奏装置による楽譜作成の全体手順について、図５のフローチャートを参照しながら説明する。
先ず、楽譜情報生成手段２により楽譜情報の生成が行われる（ステップ４１）。楽譜情報生成手段２は、楽譜ファイル記憶手段１から楽譜ファイルを読み出し、そのファイルに含まれる描画情報から、ページ情報、パート情報、段落情報、段落所属記号情報、五線情報、五線所属記号情報が一般に知られている既存技術により生成される。ただし、五線所属記号情報のChordID、TimingNo.、GateTime、OnTimeは演奏情報作成手段４によって与えられる。
生成された楽譜情報は、楽譜情報記憶手段３に記録される。
【００２５】
続いて、演奏情報作成手段４によりステップ４２〜ステップ４６の手順で演奏情報が作成される。
【００２６】
ステップ４２では、図６に示すような小節情報配列を作成する。小節情報は各小節に対応するページ番号、段落番号、左側小節線の記号ID、右側小節線の記号ID、楽曲の拍子から求められる小節規定時間、小節番号を含んでいる。
小節規定時間は式（１）で求められる。
小節規定時間＝TimeBase×４／Den×Num        式（１）
ここでTimeBaseは、４分音符あたりのTickで、本実施例では480とする。
Denは楽曲の拍子の分母（１拍の長さ）、Numは楽曲拍子の分子（小節内の拍の数）を表す（小節規定時間計算手段４０１）。
【００２７】
次に、同一タイミングで発音される音符グループを示すChordIDを付与する（ステップ４３）。ChordIDは、横方向の位置及び同一の符尾に接しているかどうかによって決定される。
発音順番を示すTimingNo.を付与する（ステップ４４）。TimingNo.は、ChordID及び横方向の位置によって決定される。
GateTimeおよびOnTimeを付与する（ステップ４５）。GateTimeは音符の種類、付点の数によって決定され、OnTimeはGateTime及びTimingNo.によって決定される。
ステップ４２〜ステップ４５については、一般に知られている既存技術により行われる。
【００２８】
図７の楽譜に対してステップ４５までの手順で得られたChordID、TimingNo.、GateTime、OnTimeの演奏情報の一例を図８に示す。音符No.は、楽譜について上段左から右、続いて下段左から右に数字を順に付けたものである。カテゴリは、音符、休符別を表示する。この楽譜の場合、上段左から音符No.1〜No.10となり、下段左から音符No.11〜No.16となる。
本実施例では、GateTime及びOnTimeなどの時間はTickを用いて表す。４分音符の長さを480Tickと規定している。
【００２９】
図７の楽譜を例にOnTime及び小節演奏時間の算出手順について、図９のフローチャートを参照しながら説明する。
TimingNo.を１に初期化する（ステップ９１）。
EndTime配列を初期化する（ステップ９２）。
TimingNo.＝1の音符No.1を読み出す（ステップ９３）。
音符No.1のOnTimeを算出する（ステップ９４）。TimingNo.は１なので、OnTime=0となる。
音符No.1のEndTimeを計算する（ステップ９５）。音符1のOnTimeに音符No.1のGateTimeを加算し、EndTime＝240となる。このEndTimeをEndTime配列に加える。
同じTimingNo.の音符があるので、ステップ９３へ戻る（ステップ９６）。
【００３０】
音符No.11を読み出す（ステップ９３）。
音符No.11のOnTimeを算出する（ステップ９１）。これもTimingNo.は１なのでOnTime=0となる。
音符No.11のEndTimeを計算する（ステップ９５）。音符No.11のOnTimeに音符No.11のGateTimeを加算し、EndTime = 480となる。
EndTime配列には、240があるのみで、480は無いので480もEndTime配列へ追加する。
TimingNo＝１の音符の読み出しが終わったので、TimingNo.を２に更新し、次のTimingNo.の音符を読み出す。
【００３１】
音符No.2を読み出し（ステップ９３）、OnTimeを算出する（ステップ９４）。音符No.2のOnTimeは、EndTime配列の最も短い時間となる。この場合は240となる。
音符No.2のEndTimeを計算する（ステップ９５）。音符No.2のOnTimeに音符No.2のGateTimeを加算して、EndTime＝480となる。
480は既にEndTime配列に存在するので480はEndTime配列へは追加しない。さらにTimingNo.＝２の音符はもう存在しないので、今回音符No.2のOnTime割り当てた240をEndTime配列から削除する。
TimingNo.を３に更新し、次のTimingNo.の音符を読み出す。
【００３２】
音符No.3を読み出し（ステップ９３）、OnTimeを計算する（ステップ９４）。音符No.3のOnTimeはEndTime配列の最も短い値となる。この場合は480となる。
音符No.3のEndTimeを計算する（ステップ９５）。音符No.3のOnTimeに音符No.3のGateTimeを加算し、720となる。この値はEndTime配列にないのでEndTime配列に追加する。今回はTimingNo.3の音符がまだ存在するので、TimingNo.の更新は行われず、EndTime配列の480も削除しない。
【００３３】
ステップ９３で同じTimigNo.の音符No.12を読み出し、OnTimeを計算する（ステップ９４）。音符No.3のOnTimeはEndTime配列の最も小さい値の480となる。
音符No.3のEndTimeを計算する（ステップ９５）。音符No.3のOnTime+GateTime=960となる。この値はEndTime配列に無いので、EndTime配列に追加する。TimingNo.＝３の音符も他には無いので、EndTime配列の最も小さい値を削除する。
同様に処理を行うことで、全ての音符のOnTimeが算出されるとともにEndTime配列の更新が行われる。全ての音符の処理が終わったときにEndTime配列に残っている最も大きい値が小節演奏時間となる。
【００３４】
本発明の特徴的な構成は、ステップ４５に続くステップ４６で楽譜における連符推定を行い、ChordID、TimingNo.、GateTime、OnTimeの修正を行うことである。この部分についての詳細説明は後述する。
【００３５】
ステップ４６で連符推定を行った楽譜情報から演奏情報を作成する（ステップ４７）。演奏情報はMIDI規格のフォーマットを踏襲しており、以下のような演奏イベント情報の配列で構成される。
ノートイベント      ：音符の発音開始、発音停止のイベント
コントロールイベント：音量、定位、などを発音チャネルに設定するイベント
音色イベント        ：発音チャネルの音色を指定するイベント
テンポイベント      ：楽曲のテンポを設定するイベント
【００３６】
図１０に演奏イベント情報のフォーマットを示す。
イベント種類は、ノートイベント、コントロールイベント、テンポイベントなどを識別する番号である。
Data1は、ノートイベントであればその音程、コントロールイベントであれば、音量、定位などを識別する番号、テンポイベントであればテンポ値が入る。
Data2は、ノートイベントであればその発音強さ（０の場合発音停止を示す）、コントロールイベントであれば、音量、定位などの設定値が入る。
時間情報は楽曲開始からのそのイベント発生までの時間（Tick）が入る。
チャネル番号は、発音、音量などの制御対象となるチャネル番号が入る。
【００３７】
図５で示したステップ４６（連符推定）における大まかな流れについて、図１１のフローチャートを参照しながら説明する。
先ず、ステップ４２で作成した小節情報を読み出す（ステップ５１）。
この小節に含まれる音符情報を読み出し、音符配列に格納する（ステップ５２）。
【００３８】
音符上の読み出しは、以下の手順で行われる。
小節情報に記憶されたページ番号を元に、ページ情報を読み出す。
このページ情報から、小節情報の段落番号が示す段落情報を読み出す。
さらに段落情報から小節情報の左小節線の記号IDと一致する段落所属記号を読み出し、この横方向の位置を小節左端位置とする。同様に右小節線の段落所属記号を読み出し、小節右端位置とする。
ページ情報から小節情報の段落番号と所属段落IDが一致する五線情報を読み出す。
小節左端位置と小節右端位置の間に位置し、カテゴリが音符または休符である五線所属記号を小節音符配列に格納する。
【００３９】
小節演奏時間計算手段４０２により小節音符配列から小節演奏時間を算出する（ステップ５３）。
この小節演奏時間と、小節規定時間計算手段４０１により小節情報から算出した小節規定時間とを第１比較手段４０３で比較し（ステップ５４）、一致しない場合は連符推定を行う（ステップ５５）。ステップ５４で小節演奏時間と小節規定時間が一致する場合は、次の小節への処理へ移る（ステップ５６）。
【００４０】
次に、図１１で示したステップ５５における連符推定の詳細手順について、図１２のフローチャートを参照しながら、図１３の楽譜から図１４に示す演奏情報を作成する場合を例に説明する。
連符化処理を行うに際しては、６４分音符、３２分音符、１６分音符、８分音符、４分音符、２分音符の順に連符化を行う対象音を変更しながら繰り返し連符推定を行う。
６４分音符〜２分音符の順に連符推定を行うのは、楽曲においては、通常、音価の小さい音符の連符の方が、音価の大きい音符の連符より多用される傾向にあるためである。
【００４１】
また、１つの対象音に対して、それより１つ上の音価（例えば、４分音符に対する２分音符）を変更する場合と、変更しない場合の２回連符推定を行う。対象音に対して１つ上の音価（例えば、４分音符に対する２分音符）を変更することで、異なる音符から構成される３連符を判定することができる。
【００４２】
図１３の楽譜では、対象音を６４分音符〜８分音符とした場合は、対象となる音符が無いので、最初に対象音とされる音符は４分音符となる。
【００４３】
先ず、小節規定時間を算出する（ステップ１０１）。この楽譜の場合は、４／４拍子なので、上述した式（１）より小節規定時間は1920となる。
対象音決定手段４４１により対象音とされる音符（修正対象音符）を４分音符に決定し（ステップ１０２）、連符化処理手段４４２により小節内の全ての４分音符の音価480に対して２／３の音価となる320へ変更する（ステップ１０３）。
修正対象音符に対する音価の変更が１回目である場合は（ステップ１０４）、４分音符より１つ上の音価である２分音符の音価も変更する（ステップ１０５）。２分音符の音価は、音価960に対して２／３の音価となる640に変換される。
【００４４】
連符化処理手段４４２の修正演奏時間算出手段により修正音価に対する小節演奏時間を計算する（ステップ１０６）。この場合は、小節演奏時間は、音価320が３個で960、これに640を加算して1600となる。
第２比較手段４４３により小節演奏時間(1600)と小節規定時間(1920)を比較する（ステップ１０７）。小節演奏時間(1600)は小節規定時間(1920)と一致しないので、ステップ１０８へ移行する。
【００４５】
ステップ１０８では、音価の変更が１回目なので、ステップ１０９へ移行し、変更した音価を元に戻し、ステップ１０３へ移行する。
ステップ１０３では、再び音価を480から320へ変更する。今度は音価の変更が２回目なのでステップ１０５は行わずステップ１０６で修正演奏時間算出手段により小節演奏時間を算出する。今回の場合、小節演奏時間は、音価320が３個で960、これに960（変更しない音価）を加算して1920となるので小節規定時間(1920)と一致し（ステップ１０７）、処理を終了する。
【００４６】
２回目のステップ１０７で演奏時間と小節規定時間とが一致しない楽譜である場合には、ステップ１０８からステップ１１０へ移行し、全ての音符の種類が完了したかどうかを判断し、完了している場合は処理を終了する。また、全ての音符の種類が完了していない場合は、変更した音価を元に戻してステップ１０２へ移行し（ステップ１１１）、対象音を変更して上述の処理が再度行われる。
【００４７】
図１３の楽譜の場合、４分音符の音価が変更されることで３連符の存在が判明し、図１４のような音符No.1〜音符No.3の音価の変更により連符化処理された演奏情報が作成される。したがって、正確な連符が表示された楽譜は、図１５に示すように、４分音符に３連符に連符記号「３」が表示されたものとなる。
【００４８】
次に図１６の楽譜について連符化を行って図１７の演奏情報を作成する場合について説明する。
この楽譜の場合も、対象音を６４分音符〜８分音符とした時には、対象となる音符が無いので、最初に対象音とされる音符は４分音符となる。
【００４９】
先ず、小節規定時間を算出する（ステップ１０１）。この楽譜の場合は、４／４拍子なので、上述した式（１）より小節規定時間は1920となる。
対象音とされる音符（修正対象音符）を４分音符に決定し（ステップ１０２）、小節内の全ての４分音符の音価480に対して２／３の音価となる320へ変更する（ステップ１０３）。
修正対象音符に対する音価の変更が１回目である場合は（ステップ１０４）、４分音符より１つ上の音価である２分音符の音価も変更する（ステップ１０５）。２分音符の音価は、音価960に対して２／３の音価となる640に変換される。
【００５０】
連符化処理手段４４２の修正演奏時間算出手段により修正音価に対する小節演奏時間を計算する（ステップ１０６）。この場合は、小節演奏時間は、音価320が４個で1280、これに640を加算して1920となる。
小節演奏時間(1920)と小節規定時間(1920)を比較する（ステップ１０７）。小節演奏時間は小節規定時間と一致するため（ステップ１０７）、処理を終了する。
【００５１】
図１６の楽譜の場合、図１７のような音符No.1〜音符No.5の音価の変更により連符化処理された演奏情報が作成されるので、４個の４分音符及び２分音符の音価が変更されることで２組の３連符の存在が判明する。
したがって、正確な連符が表示された楽譜は、図１８に示すように、２分音符と４分音符に３連符に連符記号「３」が表示され、これに続く４分音符の３連符に連符番号「３」が表示されたものとなる。
【００５２】
上述した連符化処理によれば、楽譜において最も多用される３連符に特化した連符化処理を行うことができ、連桁でつながらない２分音符の３連符や、４分音符の３連符などの推定を可能としている。
【符号の説明】
【００５３】
４…演奏情報作成手段、  ４０１…小節規定時間計算手段、  ４０２…小節演奏時間計算手段、  ４０３…第１比較手段、  ４０４…音価修正手段、  ４４１…対象音決定手段、  ４４２…連符化処理手段、  ４４３…第２比較手段。
【図１】
0005960488.tif 000002
【図２】
0005960488.tif 000003
【図３】
0005960488.tif 000004
【図４】
0005960488.tif 000005
【図５】
0005960488.tif 000006
【図６】
0005960488.tif 000007
【図７】
0005960488.tif 000008
【図８】
0005960488.tif 000009
【図９】
0005960488.tif 000010
【図１０】
0005960488.tif 000011
【図１１】
0005960488.tif 000012
【図１２】
0005960488.tif 000013
【図１３】
0005960488.tif 000014
【図１４】
0005960488.tif 000015
【図１５】
0005960488.tif 000016
【図１６】
0005960488.tif 000017
【図１７】
0005960488.tif 000018
【図１８】
0005960488.tif 000019
【図１９】
0005960488.tif 000020