(57)【要約】【課題】  時系列情報を伴う、異なる形式のデータ間において、整合性が保たれているか否かを判定する作業を容易かつ正確に行うことを可能とする手段を提供する。【解決手段】  判定部１２４は、論理楽譜データ取得部１２１により取得された論理楽譜データから特定種類の楽譜要素データを検索し、検索した楽譜要素データに含まれるタイミングデータと同じタイミングもしくは近隣のタイミングを示すタイミングデータを含む演奏要素データを、演奏制御データ取得部１２２により取得された演奏制御データから検索する。判定部１２４は、検索した楽譜要素データと演奏要素データの内容に整合性が保たれているか否かを判定する。判定部１２４はそれらのデータ間に不整合があると判定した場合、修正候補データを作成し、変更部１２７はその修正候補データに従い、論理楽譜データおよび演奏制御データの変更を行う。【選択図】      図９
2006058577.tif 000002
【特許請求の範囲】
【請求項１】
タイミングを示すタイミングデータと当該タイミングデータにより示されるタイミングに関連するデータである内容データとの組合せである要素データを１以上含む第１の集合データを取得する第１取得手段と、
タイミングを示すタイミングデータと当該タイミングデータにより示されるタイミングに関連するデータである内容データとの組合せである要素データを１以上含む集合データであって、前記第１の集合データとは異なる形式の内容データを含む第２の集合データを取得する第２取得手段と、
前記第１の集合データに含まれる要素データのうち、特定のタイミングを示すタイミングデータを含む要素データに含まれる内容データにより示される第１の内容と、前記第２の集合データに含まれる要素データのうち、前記特定のタイミングを示すタイミングデータを含む要素データに含まれる内容データにより示される第２の内容とが予め定められた関係を満たすか否かを判定する判定手段と
を備えることを特徴とするデータ処理装置。
【請求項２】
前記判定手段により、前記第１の内容と前記第２の内容とが予め定められた関係を満たさないと判定された場合、前記第１の内容を示す内容データを含む要素データおよび前記第２の内容を示す内容データを含む要素データの少なくともいずれか一方を特定する情報を報知する報知手段
を備えることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記判定手段により、前記第１の内容と前記第２の内容とが予め定められた関係を満たさないと判定された場合、前記第１の内容を示す内容データおよび前記第２の内容を示す内容データの少なくともいずれか一方を、予め定められた条件に従い変更する変更手段
を備えることを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記第１の集合データおよび前記第２の集合データの各々は、
楽曲に含まれる楽音の発音制御を自動演奏装置に指示する演奏制御データ、
楽曲の楽譜の構成要素を示すデータと当該構成要素の前記楽曲における時間軸上の位置を示すタイミングデータとの組合せである論理楽譜データ、
時系列的に配置された複数の文字データ、
楽曲の音または音声を示す音データ、
時系列的に配置された複数の静止画データおよび
動画データ
のうちの少なくともいずれか１つを含むデータである
ことを特徴とする請求項１乃至３のいずれかに記載のデータ処理装置。
【請求項５】
タイミングを示すタイミングデータと当該タイミングデータにより示されるタイミングに関連するデータである内容データとの組合せである要素データを１以上含む第１の集合データに含まれる要素データのうち、特定のタイミングを示すタイミングデータを含む要素データに含まれる内容データにより示される第１の内容と、
タイミングを示すタイミングデータと当該タイミングデータにより示されるタイミングに関連するデータである内容データとの組合せである要素データを１以上含む集合データであって、前記第１の集合データとは異なる形式の内容データを含む第２の集合データに含まれる要素データのうち、特定のタイミングを示すタイミングデータを含む要素データに含まれる内容データにより示される第２の内容と
が予め定められた関係を満たすか否かを判定する処理
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の時系列データの処理技術に関し、より具体的には、複数の関連する時系列データにおける不整合を検出するための技術に関する。
【背景技術】
【０００２】
楽曲の演奏習得を支援する目的で、楽曲の楽譜をディスプレイに表示させると同時に、自動演奏装置に当該楽曲の自動演奏を行わせたり、当該楽曲の演奏習得者のためにメトロノーム音を鳴らせたりする技術がある。
【０００３】
例えば、特許文献１および特許文献２には、楽曲の進行に合わせて、当該楽曲の楽譜のうち現在演奏等がなされている部分を順次ディスプレイに表示する技術が開示されている。
【特許文献１】特開平０８−１２３４１６号公報
【特許文献２】特開２００１−０４２７６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、楽曲の楽譜をディスプレイ等に表示させると同時に、自動演奏装置に当該楽曲の自動演奏を行わせる場合、楽譜により示される情報と自動演奏装置に演奏の指示を与える演奏制御データとの間に整合性がなければならない。自動演奏装置により行われる演奏が楽譜の内容に従っていないと、自動演奏装置により行われる演奏を模範演奏としつつ楽譜に従った演奏を行おうとするユーザが、模範演奏と楽譜のいずれを信頼してよいか分からず混乱したり、誤った演奏方法や知識を身に付けてしまったりするからである。
【０００５】
しかし、楽譜を表示するためのデータと、自動演奏装置に演奏者の指示を与える演奏制御データとは、異なるプロセスにより作成される場合がある。例えば、印刷物としての楽譜を見ながら、あるミュージックエンジニアが楽譜を表示するためのデータを作成する一方で、他のミュージックエンジニアが演奏制御データを作成するような場合である。このように、異なるプロセスにより作成されるデータ間には、データ入力ミス等により不整合が生じる可能性がある。
【０００６】
従来、そのようなデータ間の不整合を検出し修正する作業は手作業で行われていた。すなわち、チェック担当者が楽譜の表示用データに従いディスプレイに表示される楽譜を目で確認すると同時に、演奏制御データに従い自動演奏装置により自動演奏される演奏音を耳で確認し、それらの内容を比べることにより、データ間の不整合の有無をチェックし、誤りがあればいずれかのデータを修正していた。このような従来のチェック作業は多大な時間と労力を要するだけでなく、チェック担当者の経験や能力によってチェックの品質が左右される、という問題があった。
【０００７】
同様な問題は、例えば楽譜を表示するためのデータと熟練演奏者による模範演奏の様子を録画した動画データとの間にも生じる。さらに、楽曲に関するものに限らず、例えば映画の内容を示す動画データと、その映画の字幕を示す文字データとの間等においても生じる。すなわち、この問題は相互に整合していることが要求される異なる形式の時系列データ間に広く生じる問題であると言える。
【０００８】
上記の状況に鑑み、本発明は、相互に整合していることが要求される異なる形式の時系列データ間において、整合性が保たれているか否かを判定する作業を容易かつ正確に行うことを可能とする手段を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を達成するために、本発明は、タイミングを示すタイミングデータと当該タイミングデータにより示されるタイミングに関連するデータである内容データとの組合せである要素データを１以上含む第１の集合データを取得する第１取得手段と、タイミングを示すタイミングデータと当該タイミングデータにより示されるタイミングに関連するデータである内容データとの組合せである要素データを１以上含む集合データであって、前記第１の集合データとは異なる形式の内容データを含む第２の集合データを取得する第２取得手段と、前記第１の集合データに含まれる要素データのうち、特定のタイミングを示すタイミングデータを含む要素データに含まれる内容データにより示される第１の内容と、前記第２の集合データに含まれる要素データのうち、前記特定のタイミングを示すタイミングデータを含む要素データに含まれる内容データにより示される第２の内容とが予め定められた関係を満たすか否かを判定する判定手段とを備えることを特徴とするデータ処理装置を提供する。
【００１０】
かかる構成のデータ処理装置によれば、時系列情報を伴う異なる形式のデータ間において、それぞれに含まれるデータのうち、同じタイミングに対応するものの内容が整合しているか否かを自動的に判定させることができる。その結果、ユーザは、手作業で同様の作業を行う場合と比べて手間を要することなく、一定の正確性を伴う結果を得ることができる。
【００１１】
好ましい態様において、上記のデータ処理装置は、前記判定手段により、前記第１の内容と前記第２の内容とが予め定められた関係を満たさないと判定された場合、前記第１の内容を示す内容データを含む要素データおよび前記第２の内容を示す内容データを含む要素データの少なくともいずれか一方を特定する情報を報知する報知手段を備える。
【００１２】
かかる構成のデータ処理装置によれば、ユーザは時系列情報を伴う異なる形式のデータ間に不整合があった場合に、その不整合を生じているデータ部分を容易に修正することが可能となる。
【００１３】
また、他の好ましい態様において、上記のデータ処理装置は、前記判定手段により、前記第１の内容と前記第２の内容とが予め定められた関係を満たさないと判定された場合、前記第１の内容を示す内容データおよび前記第２の内容を示す内容データの少なくともいずれか一方を、予め定められた条件に従い変更する変更手段を備える。
【００１４】
かかる構成のデータ処理装置によれば、ユーザは時系列情報を伴う異なる形式のデータ間に不整合があった場合に、手作業による修正等を行うことなく、その不整合が修正されたデータを得ることができる。
【００１５】
また、他の好ましい態様において、上記のデータ処理装置により処理される前記第１の集合データおよび前記第２の集合データの各々は、楽曲に含まれる楽音の発音制御を自動演奏装置に指示する演奏制御データ、楽曲の楽譜の構成要素を示すデータと当該構成要素の前記楽曲における時間軸上の位置を示すタイミングデータとの組合せである論理楽譜データ、時系列的に配置された複数の文字データ、楽曲の音または音声を示す音データ、時系列的に配置された複数の静止画データおよび動画データのうちの少なくともいずれか１つを含むデータである。
【００１６】
かかる構成のデータ編集装置によれば、例えば、同じ楽曲の楽譜と自動演奏や、映画の映像と字幕など、様々な視聴覚に関するデータ間において、各タイミングにおける整合性のチェックが可能である。
【００１７】
さらに、本発明は、タイミングを示すタイミングデータと当該タイミングデータにより示されるタイミングに関連するデータである内容データとの組合せである要素データを１以上含む第１の集合データに含まれる要素データのうち、特定のタイミングを示すタイミングデータを含む要素データに含まれる内容データにより示される第１の内容と、タイミングを示すタイミングデータと当該タイミングデータにより示されるタイミングに関連するデータである内容データとの組合せである要素データを１以上含む集合データであって、前記第１の集合データとは異なる形式の内容データを含む第２の集合データに含まれる要素データのうち、特定のタイミングを示すタイミングデータを含む要素データに含まれる内容データにより示される第２の内容とが予め定められた関係を満たすか否かを判定する処理をコンピュータに実行させることを特徴とするプログラムを提供する。
【００１８】
かかるプログラムによれば、上述した本発明にかかるデータ処理装置を、コンピュータにより実現することが可能となる。
【発明の効果】
【００１９】
本発明にかかるデータ処理装置およびプログラムによれば、手作業による手間を要することなく、時系列情報を伴う異なる形式のデータ間の整合性の有無に関し、正確な判定結果を得ることができる。
【発明を実施するための最良の形態】
【００２０】
［１．第１実施形態］
本発明の第１実施形態にかかるデータ処理装置（以下、「エラーチェックツール１０」と呼ぶ）は、ユーザに対する楽曲演奏の習得支援を行う装置（以下、「トレーナーツール２０」と呼ぶ）が用いるデータ間の整合性をチェックし、そのデータ間に不整合があった場合、必要なデータの修正を行う装置である。従って、以下、トレーナーツール２０の機能概要およびトレーナーツール２０が用いるデータの構造を説明した後、本実施形態にかかるエラーチェックツール１０の構成および動作を説明する。
【００２１】
［１．１．トレーナーツールの構成］
図１は、トレーナーツール２０の構成およびトレーナーツール２０に接続されたキーボード３０を示す図である。トレーナーツール２０は、トレーナーツール２０の各構成部の制御を行う制御部２０１、ユーザに対し楽譜等の表示を行う表示部２０２、音源部やスピーカ等を備え楽音の発音を行うサウンドシステム２０３、制御部２０１が行うべき処理を指示するプログラム等を記憶する記憶部２０４、キーボード３０とのデータの送受信を行う入出力Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０５およびトレーナーツール２０の構成部間の処理の同期に用いられるクロック信号を送出する発振器２０６を備えている。キーボード３０は、ユーザが楽曲演奏を行うための鍵盤等を備えたミュージックキーボードであり、ユーザの打鍵に応じたデータをトレーナーツール２０に送信する。
【００２２】
記憶部２０４は、制御部２０１に対し各種処理を指示するプログラムに加え、表示部２０２により表示される楽譜の内容を示す論理楽譜データ２０４１と、制御部２０１の制御の下でサウンドシステム２０３により行われる自動演奏の内容を示す演奏制御データ２０４２を、それぞれ複数記憶している。ある楽曲に関する論理楽譜データ２０４１と、同じ楽曲に関する演奏制御データ２０４２は、例えば拡張子を除くファイル名が共通しており、互いに対応付けがなされている。以下、個々の論理楽譜データ２０４１を論理楽譜データ２０４１ａ、論理楽譜データ２０４１ｂ、・・・と表し、個々の演奏制御データ２０４２のそれぞれを演奏制御データ２０４２ａ、演奏制御データ２０４２ｂ、・・・と表す。また、符号末尾が同じ論理楽譜データ２０４１と演奏制御データ２０４２は、同じ楽曲に関するデータであるものとする。さらに、論理楽譜データ２０４１ａおよび演奏制御データ２０４２ａは、ともに楽曲「聖者の行進」に関するデータであるものとする。
【００２３】
［１．２．論理楽譜データ］
続いて、論理楽譜データ２０４１の構造および役割を説明する。図２は、論理楽譜データ２０４１ａに従ってトレーナーツール２０の表示部２０２に表示される楽譜を示した図である。また、図３および図４は、論理楽譜データ２０４１ａの一部を例示した図であり、図３および図４は、それぞれ図２に示した楽譜の第１段および第４段に対応している。なお、実際には論理楽譜データ２０４１ａは図３および図４に示されるデータを含む一連のデータである。
【００２４】
論理楽譜データ２０４１ａは、図３および図４において各行のデータとして示される要素データ（以下、「楽譜要素データ」と呼ぶ）の集合であり、各楽譜要素データは楽譜に含まれる音符や強弱記号等の各構成要素（以下、「楽譜要素」と呼ぶ）を表示するための情報を含んでいる。楽譜要素データは、楽譜要素データを識別するための「ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）」、楽譜要素の表示位置の時間軸方向、すなわちＸ軸方向の位置を示す「ＭＢＴ（Ｍｅａｓｕｒｅ／Ｂｅａｔ／Ｔｉｃｋ）１」および「ＭＢＴ２」、楽譜要素の表示位置のＹ軸方向の位置を示す「Ｙ１」および「Ｙ２」、楽譜要素の種類を示す「Ｔｙｐｅ」、楽譜要素の種類に応じた各種情報を示す「Ｖａｌｕｅ」を含んでいる。また、「ＭＢＴ１」および「Ｙ１」と「ＭＢＴ２」および「Ｙ２」はそれぞれ対をなし、楽譜上の１点を示す。以下、各楽譜要素データを区別する必要がある場合、ＩＤを付して、楽譜要素データ「１」のように表す。
【００２５】
「ＭＢＴ１」および「ＭＢＴ２」は、３つの数値の組で構成されており、それぞれ小節番号、拍番号およびティック番号を示している。ティック番号とは、１拍を所定数に等分した時間単位であるティックの番号であり、以下の説明においては、例として１ティック＝１／４８０拍とする。例えば、「１：１：０００」は、第１小節第１拍の開始タイミングを示し、「１：１：００１」は第１小節第１拍の開始タイミングから１ティック（１／４８０拍）だけ経過したタイミングを示す。論理楽譜データ２０４１ａにおいて、「ＭＢＴ１」および「ＭＢＴ２」は楽譜の各段における先頭からのタイミングを示す。ただし、楽譜には、音部記号のようにいずれの小節にも属さない楽譜要素がある。そこで、「ＭＢＴ１」および「ＭＢＴ２」は、「Ｔｙｐｅ」に応じて、実際には存在しないタイミングを示す「０：０：０００」〜「０：１：４７９」、「＃：０：０００」（＃は正の整数）および「＃：Ｘ：４８０」（＃およびＸは正の整数）といった値をとることができる。
【００２６】
「０：０：０００」〜「０：１：４７９」は、第１小節よりも前の位置を示し、音部記号、調子記号、拍子記号等を表示するための楽譜要素データに用いられる。「＃：０：０００」は、第＃小節の始まりを示す小節線の位置を示す。「＃：Ｘ：４８０」は、第＃小節の終わりを示す小節線の位置を示す。その場合、Ｘは小節の最終拍の番号であり、例えば４／４拍子の楽曲においては、Ｘは「４」である。従って、例えば「２：４：４８０」と「３：０：０００」はともに第２小節と第３小節を区切る小節線の位置を示す。本実施形態においては、通常の小節線は後続の小節の始まりを示すものとして扱い、例えば第２小節と第３小節の間に位置する小節線の位置としては「３：０：０００」を用いる。そして、各段の最終小節の終了を示す小節線や、反復期間の終点を示すリピート記号のように、楽譜上、後続の小節が存在しない場合において、それらの小節線等の位置を「４：４：４８０」のように表す。ところで、「Ｔｙｐｅ」が「バーライン」であり、「ＭＢＴ１」および「ＭＢＴ２」が「＃：Ｘ：４８０」である楽譜要素データは、各段の末尾の小節線、すなわち各段の区切りを示す。そこで、以下、そのような楽譜要素データを「段区切りデータ」と呼ぶ。
【００２７】
楽譜の各段に対応する楽譜要素データ群において、各楽譜要素データは「ＭＢＴ１」により示されるタイミングが早い順に並んでいる。また、「ＭＢＴ１」により示されるタイミングが同じ場合、「Ｙ１」により示される値が小さい順に並んでいる。「Ｙ１」および「Ｙ２」は整数値であり、楽譜において第一線のＹ軸方向の位置を「１００」とし、隣り合う線間の距離を「１０」とした場合のＹ軸方向の位置を示す。例えば、第二線を示す楽譜要素データの「Ｙ１」および「Ｙ２」は「１１０」となる。
【００２８】
論理楽譜データ２０４１ａに含まれる全ての楽譜要素データは「ＭＢＴ１」と「Ｙ１」の値を有しており、「ＭＢＴ１」と「Ｙ１」の組合せは、楽譜要素データの「Ｔｙｐｅ」に応じて、楽譜要素の基準点もしくは始点を示す。基準点とは、例えばト音記号のト音位置を示す点や音符の符頭の中心点など、１点により位置を特定可能な各楽譜要素が持つ特徴点のことである。「ＭＢＴ１」と「Ｙ１」の組合せが楽譜要素の基準点を示す場合、その楽譜要素データは「ＭＢＴ２」と「Ｙ２」の値を持たない。一方、表示位置を特定するために始点と終点を要する楽譜要素は、「ＭＢＴ１」と「Ｙ１」の組合せが楽譜要素の表示位置の始点を示し、「ＭＢＴ２」と「Ｙ２」の組合せがその楽譜要素の表示位置の終点を示す。
【００２９】
「Ｔｙｐｅ」の値としては、第一線から第五線を示す「スコアライン」、音部記号を示す「クレフ」、調子記号を示す「キー」、拍子記号を示す「タイム」、楽曲の速度表示を示す「テンポ」、音符の符頭を示す「ノートヘッド」、音符の符尾を示す「ステム」、音符の符鈎を示す「フラグ」、小節線を示す「バーライン」、和声記号を示す「コード」、歌詞を示す「リリック」、備考等を示す「メモ」、タイおよびスラーの記号を示す「カーブ」、強弱記号を示す「フォルテ」等、音量変化記号を示す「クレッシェンド」等、速度変化記号を示す「リタルダンド」等、反復記号を示す「リピートマーク」等といった各種記号を示すものが用いられる。
【００３０】
上記に例示した「Ｔｙｐｅ」の値のうち、例えば「スコアライン」、「ステム」、「バーライン」、「カーブ」および「クレッシェンド」は始点および終点を要する楽譜要素を示しており、「ＭＢＴ２」および「Ｙ２」の値を持つ。一方、その他の楽譜要素データは「ＭＢＴ２」および「Ｙ２」の値を持たない。
【００３１】
「Ｖａｌｕｅ」は「Ｔｙｐｅ」に応じて様々な値をとり、また不要の場合には値をとらない。例えば、「Ｔｙｐｅ」が「クレフ」の場合、「Ｖａｌｕｅ」の値は「ト音記号」、「へ音記号」もしくは「ハ音記号」のいずれかである。また、例えば「Ｔｙｐｅ」が「スコアライン」の場合、「Ｖａｌｕｅ」は不要のため、いずれの値も入らない。
【００３２】
以下、論理楽譜データ２０４１ａにより楽譜の表示が指示される様子を、図２および図３を用いて簡単に説明する。既に述べたように、図３に示されるデータは、図２に示される楽譜の第１段の表示を指示するデータである。楽譜要素データ「１」は、「Ｙ１」および「Ｙ２」により示されるＹ軸方向「１００」の高さに、ＭＢＴ１「０：０：０００」で示される段の左端から、ＭＢＴ２「４：４：４８０」で示される段の右端にかけて線を引くことを指示している。すなわち、楽譜要素データ「１」は第１段の第一線の表示を指示している。同様に、楽譜要素データ「２」〜「５」は、第１段の第二線〜第五線の表示を指示している。
【００３３】
楽譜要素データ「６」〜「９」は、それぞれト音記号、テンポ記号、調子記号および拍子記号の表示を指示するデータである。楽譜要素データ「１０」および「１１」は、第１小節における第１拍および第２拍に位置する休符記号の表示を指示するデータである。楽譜要素データ「１２」は、「Ｏｈ，」という歌詞の表示を指示するデータである。
【００３４】
楽譜要素データ「１３」〜「１５」は、それぞれ八分音符の符頭、符尾および符鈎を示し、これら３つで一つの音符の表示を指示している。楽譜要素データ「１３」の「ＭＢＴ１」と「Ｙ１」は符頭の中心点を示しており、「Ｖａｌｕｅ」はその符頭が黒であることを示している。楽譜要素データ「１４」の「ＭＢＴ１」と「Ｙ１」は符尾の始点を、また「ＭＢＴ２」と「Ｙ２」は符尾の終点を示している。トレーナーツール２０は、楽譜要素データ「１４」の「Ｙ１」の値より「Ｙ２」の値が大きいことから、楽譜要素データ「１４」に従って符尾を表示する場合、「ＭＢＴ１」および「ＭＢＴ２」で示されるＸ軸方向の位置より、符頭の幅の半分だけ右側にずれた位置に符尾を表示する。楽譜要素データ「１５」の「ＭＢＴ１」と「Ｙ１」は符鈎の始点を、「ＭＢＴ２」と「Ｙ２」は符鈎の終点を、また「Ｖａｌｕｅ」はその符鈎が八分音符を示す一重の符鈎であることを示している。トレーナーツール２０は、楽譜要素データ「１５」の「Ｙ１」の値より「Ｙ２」の値が小さいことから、楽譜要素データ「１５」に従って符鈎を表示する場合、「ＭＢＴ１」および「ＭＢＴ２」で示されるＸ軸方向の位置より、符頭の幅の半分だけ右側にずれた位置に、右側に凸を描く符鈎を表示する。
【００３５】
楽譜要素データ「１６」以降が楽譜要素の表示を指示する仕組みは楽譜要素データ「１」〜「１５」と同様であるので、その説明を省略する。ここで、楽譜要素データ「４６」は「ＭＢＴ１」および「ＭＢＴ２」の値が「４：４：４８０」であり、「Ｖａｌｕｅ」が「バーライン」であるため、段区切りデータである。従って、トレーナーツール２０は、楽譜要素データ「４６」に従い小節線を表示するとともに、後続の楽譜要素データにより示される楽譜要素を異なる段に表示する。なお、本実施形態においては、楽譜要素データの「ＭＢＴ１」および「ＭＢＴ２」は各段の先頭を基準とするタイミングを示すように構成されているが、楽曲の先頭を基準とするタイミングを示すように構成してもよい。その場合、例えば、第４段の先頭小節は楽曲における第１３小節であるため、楽譜要素データ「１３７」の「ＭＢＴ１」は「１３：１：０００」となる。
【００３６】
［１．３．演奏制御データ］
続いて、演奏制御データ２０４２の構成を説明する。図５および図６は、演奏制御データ２０４２ａの内容の一部を例示した図であり、それぞれ、図２に示した楽譜の第１段および第４段に対応している。なお、実際には演奏制御データ２０４２ａは図５および図６に示されるデータを含む一連のデータである。演奏制御データ２０４２ａは、図５および図６において各行のデータとして示される要素データ（以下、「演奏要素データ」と呼ぶ）の集合であり、各演奏要素データは楽音の発音を指示したり、歌詞等の楽曲に関する情報を示したりするデータである。各演奏要素データは、演奏要素データを識別するための「ＩＤ」、楽曲の演奏パートを示す「Ｔｒａｃｋ」、楽曲における特定のタイミングを示す「ＭＢＴ」、演奏要素データの種類を示す「Ｔｙｐｅ」、演奏要素データの種類に応じた各種情報を示す「Ｖａｌｕｅ」を含んでいる。以下、各演奏要素データを区別する必要がある場合、ＩＤを付して、演奏要素データ「１」のように表す。
【００３７】
本実施形態において、楽曲「聖者の進行」は演奏パートを１つしか含んでいないため、全ての演奏要素データに関し「Ｔｒａｃｋ」は「１」である。演奏要素データは「ＭＢＴ」により示されるタイミングが早い順に並んでいる。
【００３８】
「Ｔｙｐｅ」の値は、楽曲の調子を示す「キー」、楽曲の拍子を指示する「タイム」、楽曲の速度を指示する「テンポ」、楽音の発音開始を指示する「ノートオン」、楽音の発音終了を指示する「ノートオフ」、楽曲に付される和声を示す「コード」、楽曲に付される歌詞を示す「リリック」および楽曲に付される備考等の情報を指示する「メモ」のいずれかである。ただし、「Ｔｙｐｅ」の値として、音色や音響効果に関するものなど、上記以外のものを用いるようにしてもよい。また、以下の説明において、「メモ」の「Ｖａｌｕｅ」は、「リリック」等の「Ｖａｌｕｅ」と異なり、通常は楽譜上に表示されないものとする。
【００３９】
「Ｔｙｐｅ」が「キー」、「タイム」、「コード」、「リリック」および「メモ」である演奏要素データの「Ｖａｌｕｅ」は、それぞれ調子、拍子、和声、歌詞および備考等の情報を示す。「Ｔｙｐｅ」が「テンポ」である演奏要素データの「Ｖａｌｕｅ」は楽曲の速度を示し、例えば「１２０」は４分音符が（１／１２０）分の長さとなる速度であることを示す。「Ｔｙｐｅ」が「ノートオン」である演奏要素データの「Ｖａｌｕｅ」は、楽音の音高を示す文字列と音量を示す数値との組合せである。例えば、演奏要素データ「４」のＶａｌｕｅ「Ｆ３（７２）」は中央のヘ音を７２（中程度）の音量で発音することを示す。なお、音量を示す数値は０〜１２７のいずれかの整数値である。「Ｔｙｐｅ」が「ノートオフ」である演奏要素データの「Ｖａｌｕｅ」は、発音を終了すべき楽音の音高を示す。
【００４０】
演奏制御データ２０４２ａの役割は、ＳＭＦ（Ｓｔａｎｄａｒｄ  ＭＩＤＩ  Ｆｉｌｅ）等の、自動演奏装置に自動演奏を指示するための一般的なデータの役割と同様であるので、その説明を省略する。
【００４１】
［１．４．トレーナーツールの動作］
続いて、トレーナーツール２０が上述した演奏制御データ２０４２ａおよび論理楽譜データ２０４１ａを用いて、ユーザに対し楽曲演奏の習得支援を行う際の動作を説明する。図７は、ユーザがトレーナーツール２０を用いた楽曲演奏の習得を行う際に、トレーナーツール２０の表示部２０２に表示される画面（以下、「トレーニング画面」と呼ぶ）を例示した図である。
【００４２】
トレーニング画面には、ユーザが演奏習得を行う楽曲を指定するためのボックス２０２１、ユーザが演奏習得を行いたいと考える楽曲部分の開始小節番号を指定するためのボックス２０２２、ユーザが演奏習得を行いたいと考える楽曲部分の終了小節番号を指定するためのボックス２０２３、ユーザが楽曲の演奏速度を指定するためのボックス２０２４、ユーザが模範演奏を聴くか自分で演奏の練習を行うかを選択するためのチェックボックス２０２５、ユーザが模範演奏もしくはユーザによる練習の開始を指示するためのボタン２０２６、そしてユーザが模範演奏もしくはユーザによる練習の停止を指示するためのボタン２０２７が表示されている。
【００４３】
また、トレーニング画面には、ユーザによりボックス２０２１に入力された楽曲名に対応する楽譜のうち、ボックス２０２２に入力された小節番号から始まる８小節分が、楽譜２０２８ａおよび楽譜２０２８ｂとして２段にわたり表示されている。また、楽譜２０２８ａの上部には、現在の演奏位置を示すマーク２０２９が表示されている。
【００４４】
ユーザは、まずボックス２０２１において演奏習得を行いたい楽曲名を選択する。ここで、ユーザは「聖者の行進」を選択するものとする。トレーナーツール２０は、そのユーザの選択に応じて、記憶部２０４から演奏制御データ２０４２ａを読み出し、演奏制御データ２０４２ａに含まれる最後の演奏要素データの「ＭＢＴ」から、楽曲「聖者の行進」が第２１小節まであることを特定し、ボックス２０２２に楽曲の先頭小節番号を示す「００１」を、ボックス２０２３に楽曲の末尾小節番号を示す「０２１」を表示する。また、トレーナーツール２０は、演奏制御データ２０４２ａから「Ｔｙｐｅ」が「テンポ」である最初の演奏要素データを検索し、検索した演奏要素データの「Ｖａｌｕｅ」から楽曲「聖者の行進」の速度の初期値が「１２０」であることを特定し、ボックス２０２４に「１２０」を表示する。
【００４５】
続いて、トレーナーツール２０は、記憶部２０４から論理楽譜データ２０４１ａを読み出し、論理楽譜データ２０４１ａに含まれる楽譜要素データの先頭から最初の段区切りデータまでのもの（図３参照）に従い、楽譜２０２８ａの表示を、また最初の段区切りデータと次の段区切りデータの間に含まれる楽譜要素データに従い、楽譜２０２８ｂの表示を行う。さらに、トレーナーツール２０は、マーク２０２９を楽譜２０２８ａの第１小節の先頭部分に表示する。
【００４６】
ユーザは、模範演奏を聴きたい場合、チェックボックス２０２５の「模範演奏」にチェックを付け、ボタン２０２６をクリックする。その操作に応じて、トレーナーツール２０は演奏制御データ２０４２ａに従いサウンドシステム２０３により楽音の発音を行うことにより、楽曲「聖者の行進」の自動演奏を開始する。その自動演奏の進行に伴い、トレーナーツール２０はマーク２０２９が楽譜２０２８ａにおける現在の演奏位置を示すように、マーク２０２９の表示位置を十分に短い時間間隔で変更する。
【００４７】
自動演奏が楽譜２０２８ａに示される楽曲部分の最後に達した場合、トレーナーツール２０は楽譜２０２８ｂに表示していた表示内容で楽譜２０２８ａの表示を更新し、楽譜２０２８ａの左端にマーク２０２９を移動するとともに、楽譜２０２８ｂの位置に後続する段の楽譜を表示する。ただし、更新後の楽譜２０２８ａに表示されている段が最終段である場合、トレーナーツール２０は楽譜２０２８ｂの位置には何も表示しない。その後、トレーナーツール２０は楽曲の自動演奏が終わるまで、上述したトレーニング画面の表示の更新を繰り返す。このようにして、トレーナーツール２０により楽譜の表示と模範演奏の自動演奏が連動して行われる。
【００４８】
一方、ユーザは自分で演奏の練習を行いたい場合、チェックボックス２０２５の「練習」にチェックを付け、ボタン２０２６をクリックする。その操作に応じて、トレーナーツール２０は演奏制御データ２０４２ａに含まれる「Ｔｙｐｅ」が「タイム」および「テンポ」である演奏要素データに従い、サウンドシステム２０３によるメトロノーム音の発音を開始する。そのメトロノーム音の発音に伴い、トレーナーツール２０は、ユーザが「模範演奏」を選択した場合と同様に、楽譜２０２８ａ等の表示の更新を行う。ユーザは、表示部２０２に表示される楽譜に従い、キーボード３０を用いて楽曲の演奏を行う。キーボード３０はユーザによる打鍵に応じたデータをトレーナーツール２０に送信し、トレーナーツール２０はキーボード３０から受信するデータに従い、サウンドシステム２０３による楽音の発音を行う。その結果、ユーザは楽譜に従った演奏の練習を行うことができる。
【００４９】
なお、演奏制御データ２０４２ａには１つの演奏パートに関するデータしか含まれていないが、複数の演奏パートに関するデータを含む演奏制御データ２０４２を用いる場合、例えばユーザが自分で演奏を行う演奏パートを選択し、トレーナーツール２０はユーザにより選択されなかった演奏パートのみを自動演奏するようにしてもよい。
【００５０】
［１．５．エラーチェックツールの構成］
続いて、本発明にかかるエラーチェックツール１０の構成を説明する。図８は、エラーチェックツール１０のハードウェア構成を示す図である。エラーチェックツール１０は、一般的なコンピュータと同様に、各種データ処理を行うとともに他の構成部の制御を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＣＰＵ１０１に基本的処理を行わせるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）等を記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２、ＣＰＵ１０１のデータ処理において一時的にデータを記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３、エラーチェックツール１０の機能を実現するためのアプリケーションプログラム（以下、「エラーチェックプログラム」と呼ぶ）や各種データを記憶するＨＤ（Ｈａｒｄ  Ｄｉｓｋ）１０４、ＣＰＵ１０１の指示に従い画像を表示するディスプレイ１０５、ユーザの操作に応じた信号を送信するキーボード１０６およびマウス１０７、そして各種の外部機器との間でデータの送受信を行う入出力Ｉ／Ｆ１０８を有している。
【００５１】
入出力Ｉ／Ｆ１０８には、例えば外部記憶装置４０１が接続され、エラーチェックツール１０は、外部記憶装置４０１との間で、論理楽譜データ２０４１および演奏制御データ２０４２の送受信を行うことができる。また、入出力Ｉ／Ｆ１０８はインターネット４０２とも接続され、インターネット４０２に接続された他の通信装置との間で、論理楽譜データ２０４１および演奏制御データ２０４２の送受信を行うこともできる。以下の説明においては、エラーチェックツール１０のＨＤ１０４には、入出力Ｉ／Ｆ１０８等を介してエラーチェックツール１０が取得した論理楽譜データ２０４１ａ（図３および図４参照）および演奏制御データ２０４２ａ（図５および図６参照）が既に記憶されているものとする。
【００５２】
ＣＰＵ１０１は、エラーチェックプログラムを実行することにより、エラーチェックツール１０の各種機能を実現する。図９は、エラーチェックツール１０の機能構成を示したブロック図である。ただし、エラーチェックツール１０が外部記憶装置４０１との間でデータ通信を行うための通信部等は、一般的な通信機器におけるものと同様であるため、図９においては省略されている。
【００５３】
エラーチェックツール１０は、論理楽譜データ２０４１をＨＤ１０４等から取得する論理楽譜データ取得部１２１、演奏制御データ２０４２をＨＤ１０４等から取得する演奏制御データ取得部１２２、論理楽譜データ取得部１２１および演奏制御データ取得部１２２により取得された論理楽譜データ２０４１および演奏制御データ２０４２を一時的に記憶する記憶部１２３、論理楽譜データ２０４１と演奏制御データ２０４２との整合性を判定する判定部１２４、論理楽譜データ２０４１および演奏制御データ２０４２の内容や判定部１２４による判定の結果を画面表示によりユーザに報知する表示部１２５、ユーザによる論理楽譜データ２０４１もしくは演奏制御データ２０４２に対する変更指示を取得する変更指示取得部１２６、判定部１２４による判定の結果および変更指示取得部１２６により取得されるユーザの変更指示に応じて論理楽譜データ２０４１もしくは演奏制御データ２０４２に対する変更を行う変更部１２７、変更部１２７により変更された論理楽譜データ２０４１をＨＤ１０４等に出力する論理楽譜データ出力部１２８、そして変更部１２７により変更された演奏制御データ２０４２をＨＤ１０４等に出力する演奏制御データ出力部１２９を備えている。なお、エラーチェックツール１０は、表示部１２５による画面表示による報知に加え、判定部１２４による判定結果を音等で報知する報知部をさらに備えるようにしてもよい。
【００５４】
図９における記憶部１２３、表示部１２５および変更指示取得部１２６は、それぞれ図８におけるＣＰＵ１０１の制御の下で、ＲＡＭ１０３、ディスプレイ１０５およびキーボード１０６またはマウス１０７により実現される。図９におけるその他の構成部は、主としてＣＰＵ１０１により実現される。また、以下の説明においては、エラーチェックツール１０は図８に示した装置がエラーチェックプログラムを実行することにより実現されるものとするが、図９に示した各構成部の機能をそれぞれ実行可能なプロセッサ等の組合せにより実現されてもよい。
【００５５】
［１．６．エラーチェックツールの動作］
以下、エラーチェックツール１０の動作を説明する。図１０は、エラーチェックツール１０のディスプレイ１０５に表示される画面（以下、「チェック画面」と呼ぶ）を例示した図である。チェック画面には、ユーザが整合性チェックを行う論理楽譜データ２０４１および演奏制御データ２０４２のファイル名（拡張子を除く）を指定するためのボックス１０５１、ボックス１０５３に表示されている楽譜の範囲を示すボックス１０５２、楽譜を示すボックス１０５３、演奏制御データを表示するためのリスト１０５４、ユーザが整合性チェックを行いたいと考える項目を選択するためのチェックボックス１０５５、ユーザがデータ間の不整合の修正を行う方法を選択するためのチェックボックス１０５６、ユーザがデータ間の不整合チェックの開始を指示するためのボタン１０５７、そしてユーザが不整合チェックにより変更されたデータの保存を指示するためのボタン１０５８が含まれている。
【００５６】
ユーザは、まずボックス１０５１において、整合性チェックを行いたい論理楽譜データ２０４１および演奏制御データ２０４２のファイル名（拡張子を除く）を選択する。ここで、ユーザは「聖者の行進」を選択するものとする。論理楽譜データ取得部１２１および演奏制御データ取得部１２２は、そのユーザの選択に応じて、ＨＤ１０４から論理楽譜データ２０４１ａおよび演奏制御データ２０４２ａをそれぞれ読み出し、記憶部１２３に一時的に記憶する。表示部１２５は記憶部１２３に新たに記憶されたそれらのデータに従い、ボックス１０５３およびリスト１０５４の表示を行う。その場合、表示部１２５は、ボックス１０５２に初期値として楽曲の最初の４小節を示す「００１〜００４」を表示するとともに、ボックス１０５３には論理楽譜データ２０４１ａに従い生成される楽譜の第１段を、またリスト１０５４には演奏制御データ２０４２ａに含まれる要素データの最初の部分を表示する。また、表示部１２５は、チェックボックス１０５５の表示を、初期値である「全て」が選択された状態で、またチェックボックス１０５６の表示を、初期値である「修正候補を表示」が選択された状態で表示する。図１０は、表示部１２５によるこれらの処理が完了した時点におけるチェック画面を示している。
【００５７】
ユーザは、チェックボックス１０５５およびチェックボックス１０５６に示されるオプションの初期値を用いてデータの整合性チェックを行いたい場合、ボタン１０５７をクリックする。その操作に応じて、判定部１２４は、例えば、反復、音高および音長、音量、速度、歌詞、そしてコードの順で、整合性チェックを行う。図１１は、判定部１２４により行われるこれらの判定処理の処理フローを示した図である。
【００５８】
判定部１２４は、記憶部１２３に記憶されている論理楽譜データ２０４１ａ（図３および図４参照）の先頭から順に、「Ｔｙｐｅ」が反復記号を示す楽譜要素データを検索する。反復記号を示す「Ｔｙｐｅ」としては、「リピートマーク」、「エンディング」、「コーダ」、「セーニョ」等がある。この場合、判定部１２４はまず、「Ｔｙｐｅ」が「リピートマーク」である楽譜要素データ「１３６」を検索結果として得る。判定部１２４は、楽譜要素データ「１３６」の「Ｖａｌｕｅ」が「スタート」であることから、続いて、「Ｔｙｐｅ」が「リピートマーク」であり、かつ「Ｖａｌｕｅ」が「エンド」である楽譜要素データを検索する。その結果、判定部１２４は楽譜要素データ「１７４」を検索結果として得る。
【００５９】
続いて、判定部１２４は、「Ｔｙｐｅ」が「エンディング」である楽譜要素データを先頭から検索する。「Ｔｙｐｅ」が「エンディング」である楽譜要素データは、楽譜においてリピートマークとともに用いられる楽曲末尾における第１括弧、第２括弧等を示す楽譜要素データであるからである。この場合、判定部１２４は楽譜要素データ「１７０」を検索結果として得る。判定部１２４は、楽譜要素データ「１７０」の「Ｖａｌｕｅ」が「ファースト」であることから、続いて、「Ｔｙｐｅ」が「エンディング」であり、かつ「Ｖａｌｕｅ」が「セカンド」である楽譜要素データを検索する。その結果、判定部１２４は楽譜要素データ「１７５」を検索結果として得る。判定部１２４は、楽譜要素データ「１７５」の検索に成功すると、一連の検索処理を終える（ステップＳ１０１）。
【００６０】
判定部１２４は、上記の一連の検索処理に成功すると（ステップＳ１０２；Ｙｅｓ）、検索された楽譜要素データに含まれる「ＭＢＴ１」および「ＭＢＴ２」の値を、楽曲の先頭からのタイミングを示す値に変換する処理（以下、「ＭＢＴ変換」と呼ぶ）を行う（ステップＳ１０３）。本実施形態においては、論理楽譜データ２０４１に含まれる「ＭＢＴ１」および「ＭＢＴ２」は、楽譜における各段の先頭からのタイミングを示しているからである。以下、ＭＢＴ変換の処理を説明する。
【００６１】
判定部１２４は、論理楽譜データ２０４１ａの先頭から順次、（１）楽譜要素データが小節の区切りを示すものであるか、（２）楽譜要素データがステップＳ１０１において検索された楽譜要素データであるか、また（３）楽譜要素データが反復記号に関するものであるかの判定を行う。以下、（１）〜（３）の判定を「ＭＢＴ変換のための判定」と呼ぶ。
【００６２】
ＭＢＴ変換のための判定において、楽譜要素データが小節の区切りを示すデータである場合、判定部１２４はカウンタに１を加算する。このカウンタの数値は先行する小節の総数を示す。なお、小節の区切りを示す楽譜要素データとしては、「Ｔｙｐｅ」が「バーライン」であるものに加え、例えば「Ｔｙｐｅ」が「リピートマーク」であり「Ｖａｌｕｅ」が「エンド」であるもの等がある。
【００６３】
ＭＢＴ変換のための判定において、判定対象の楽譜要素データがステップＳ１０１において検索されたものである場合、判定部１２４はその楽譜要素データの「ＭＢＴ１」および「ＭＢＴ２」に含まれる小節番号にその時点のカウンタの値を加算する。その結果、「ＭＢＴ１」および「ＭＢＴ２」は楽曲の先頭からのタイミングを示す数値となる。
【００６４】
また、判定部１２４は、ＭＢＴ変換のための判定において、楽譜要素データが反復記号に関するものである場合、その反復記号に従って、既にＭＢＴ変換のための判定を行った楽譜要素データに関しても、再度、ＭＢＴ変換のための判定およびＭＢＴ変換を行う。例えば、判定部１２４は、反復の終点を示す楽譜要素データ「１７４」までＭＢＴ変換のための判定を行った後、反復の始点を示す楽譜要素データ「１３６」に戻り、再度、楽譜要素データ「１３６」以降の楽譜要素データに関しＭＢＴ変換のための判定を繰り返す。以上がＭＢＴ変換の処理である。
【００６５】
ＭＢＴ変換の結果、ステップＳ１０１において検索された楽譜要素データの「ＭＢＴ１」および「ＭＢＴ２」は、以下のように変換される。以下、ＭＢＴ変換後の楽譜要素データを変換後楽譜要素データと呼ぶ。なお、楽譜要素データ「１３６」に関しては、反復記号に従い２回、ＭＢＴ変換が行われる結果、２つの変換後楽譜要素データとなる。以下、それらを変換後楽譜要素データ「１３６−１」および変換後楽譜要素データ「１３６−２」として区別する。
変換後楽譜要素データ「１３６−１」・・・ＭＢＴ１「１３：０：０００」、ＭＢＴ２「１３：０：０００」。
変換後楽譜要素データ「１７０」・・・ＭＢＴ１「１６：０：０００」、ＭＢＴ２「１６：４：４８０」。
変換後楽譜要素データ「１７４」・・・ＭＢＴ１「１６：４：４８０」、ＭＢＴ２「１６：４：４８０」。
変換後楽譜要素データ「１３６−２」・・・ＭＢＴ１「１７：０：０００」、ＭＢＴ２「１７：０：０００」。
変換後楽譜要素データ「１７５」・・・ＭＢＴ１「２０：０：０００」、ＭＢＴ２「２１：４：４８０」。
【００６６】
続いて、判定部１２４は、変換後楽譜要素データに基づき、楽曲において反復部分を示す小節番号を特定する。この場合、判定部１２４は変換後楽譜要素データの「Ｔｙｐｅ」および「Ｖａｌｕｅ」の内容に従い、変換後楽譜要素データ「１３６−１」のＭＢＴ１「１３：０：０００」で始まり変換後楽譜要素データ「１７０」のＭＢＴ１「１６：０：０００」の直前で終わる楽曲の部分、すなわち第１３小節〜第１５小節と、変換後楽譜要素データ「１３６−２」のＭＢＴ１「１７：０：０００」で始まり変換後楽譜要素データ「１７５」のＭＢＴ１「２０：０：０００」の直前で終わる楽曲の部分、すなわち第１７小節〜第１９小節が反復演奏されるべき部分であると特定する。
【００６７】
続いて、判定部１２４は演奏制御データ２０４２ａから、「ＭＢＴ」が「１３：１：０００」以降のタイミングを示し、反復時において値が同じとなるべきデータを含む演奏要素データを検索する。反復時において値が同じとなるべきデータとは、例えば「Ｔｙｐｅ」が「ノートオン」である演奏要素データの「Ｖａｌｕｅ」の値のうち、音高を示す部分である。一方、例えば「Ｔｙｐｅ」が「テンポ」である演奏要素データは、反復時に「Ｖａｌｕｅ」の値が変化したり、また反復時のテンポが同じ場合に演奏要素データ自体が省略されたりする場合があるので、判定部１２４はそれらの演奏要素データを検索対象としない。この場合、判定部１２４は検索結果として、演奏要素データ「８８」を得る。
【００６８】
演奏要素データ「８８」の「ＭＢＴ」は「１３：１：０００」であり、反復演奏されるべき部分は４小節ずれているので、判定部１２４は演奏制御データ２０４２ａに含まれる要素データのうち、「ＭＢＴ」が「１７：１：０００」の前後一定の範囲、例えば「１６：４：４６６」〜「１７：１：０１５」に含まれ、「Ｔｙｐｅ」が「コード」であり、かつ「Ｖａｌｕｅ」が「Ｂ♭ｍ」であるものを検索する。「ＭＢＴ」を「１７：１：０００」とせず、例えば「１６：４：４６６」〜「１７：１：０１５」とするのは、演奏制御データ２０４２ａが演奏者による実際の演奏に基づいて作成されたデータであるような場合、反復部分の対応する演奏要素データ間に、多少のタイミングのずれが生じるからである。
【００６９】
この場合、判定部１２４は検索に成功し、検索結果として演奏要素データ「１２０」を得る。判定部１２４は、このように検索に成功した場合、ステップＳ１０１において検索した楽譜要素データと、それらに対応する演奏要素データとの間の整合性に関する条件が満たされていると判定する。なお、ステップＳ１０５において、より正確な判定を行うために、判定部１２４は第１３小節〜第１５小節に含まれる複数の演奏要素データに関し、第１７小節〜第１９小節に含まれる対応する演奏要素データの検索を行い、それらの検索が全て成功した場合にのみ、ステップＳ１０１において検索した楽譜要素データと演奏制御データ２０４２ａとの整合性が保たれていると判定するようにしてもよい。
【００７０】
上記のように、ステップＳ１０５において楽譜要素データと演奏要素データとの整合性が保たれていると判定した場合、判定部１２４はステップＳ１０１の検索処理に戻る（ステップＳ１０５；Ｙｅｓ）。論理楽譜データ２０４１ａには、先のステップＳ１０１において検索した楽譜要素データの他に反復記号を示すものは含まれていないので、判定部１２４は２度目のステップＳ１０１の検索に失敗し（ステップＳ１０２；Ｎｏ）、反復記号に関する整合性チェックの処理を終了する。一方、ステップＳ１０１において新たに反復記号を示す楽譜要素データが検索された場合（ステップＳ１０２；Ｙｅｓ）、判定部１２４は新たに検索された楽譜要素データに関し、ステップＳ１０３以降の処理を繰り返す。
【００７１】
ステップＳ１０５における検索において検索に失敗した場合、判定部１２４は、演奏制御データ２０４２ａの内容がステップＳ１０１において検索した楽譜要素データの内容と整合していないと判定する（ステップＳ１０５；Ｎｏ）。その場合、判定部１２４は、図１０に示したチェック画面のチェックボックス１０５６において「修正候補を表示」が選択されていることから、論理楽譜データ２０４１ａを正しいと仮定した場合の演奏制御データ２０４２ａの修正候補データと、演奏制御データ２０４２ａが正しいと仮定した場合の論理楽譜データ２０４１ａの修正候補データとを作成する。より具体的には、例えば、判定部１２４は演奏制御データ２０４２ａの第１７小節〜第１９小節の内容を第１３小節〜第１５小節の内容で置換したものを演奏制御データ２０４２ａの修正候補データとして作成する。また、判定部１２４は論理楽譜データ２０４１ａからステップＳ１０１で検索した楽譜要素データを削除したものを、論理楽譜データ２０４１ａの修正候補データとして作成する。判定部１２４は、上記のように作成した修正候補データを、修正箇所を示すデータ（以下、「修正箇所データ」と呼ぶ）とともに表示部１２５および変更部１２７に送出し（ステップＳ１０６）、一連の処理をいったん終了する。
【００７２】
上記のステップＳ１０６において、表示部１２５は判定部１２４から修正候補データおよび修正箇所データを受け取ると、修正箇所データにより示される修正箇所を含むように、ボックス１０５２、ボックス１０５３およびリスト１０５４の表示を更新する。さらに、表示部１２５は別途、表示窓を開き、図１２に例示するような修正候補データの内容を示す画面（以下、「変更指示画面」と呼ぶ）をその表示窓に表示する。変更指示画面には、演奏制御データ２０４２ａが正しいと仮定した場合の論理楽譜データ２０４１ａの修正候補データに従った楽譜の表示を行うボックス１０６１、論理楽譜データ２０４１ａを正しいと仮定した場合の演奏制御データ２０４２ａの修正候補データを示すリスト１０６２、それらの修正候補データの選択を行うためのボタン１０６３およびボタン１０６４、手動による修正を選択するためのボタン１０６５を含んでいる。
【００７３】
ユーザは、チェック画面に示される現状の論理楽譜データ２０４１ａおよび演奏制御データ２０４２ａの内容と、変更指示画面に示される修正候補データの内容とを比較し、いずれかの修正候補データを選択する場合はボタン１０６３もしくはボタン１０６４をクリックする。ボタン１０６３がクリックされた場合、変更指示取得部１２６はユーザのクリック操作に応じて、論理楽譜データ２０４１ａの修正候補データが選択されたことを示すデータを変更部１２７に送出する。変更部１２７は、変更指示取得部１２６から受け取ったデータに従い、ステップＳ１０６において判定部１２４から受け取った論理楽譜データ２０４１ａの修正候補データにより、記憶部１２３に記憶されている論理楽譜データ２０４１ａを更新する。同様に、ユーザによりボタン１０６４がクリックされた場合、変更指示取得部１２６は演奏制御データ２０４２ａの修正候補データが選択されたことを示すデータを変更部１２７に送出し、変更部１２７は演奏制御データ２０４２ａの修正候補データにより、記憶部１２３に記憶されている演奏制御データ２０４２ａを更新する。
【００７４】
一方、ユーザがボタン１０６５をクリックした場合、変更指示取得部１２６は手動修正が選択されたことを示すデータを表示部１２５に送出する。そのデータに応じて、表示部１２５はチェック画面におけるボックス１０５３およびリスト１０５４をユーザにより編集可能とする。楽譜表示もしくはリスト表示されたデータの編集処理は、通常のオーサリングツールにおけるものと同様であるので、その説明を省略する。変更指示取得部１２６は、ユーザによるボックス１０５３およびリスト１０５４に対する編集操作に応じたデータを変更部１２７に送出する。変更部１２７は、変更指示取得部１２６から受け取るデータに従い、記憶部１２３に記憶されている論理楽譜データ２０４１ａおよび演奏制御データ２０４２ａの内容を更新する。
【００７５】
以上のように、記憶部１２３に記憶されている論理楽譜データ２０４１ａもしくは演奏制御データ２０４２ａの更新が行われると、判定部１２４は再度、更新後のそれらのデータを用いて、その時点でいったん終了していた反復記号に関する整合性チェックの処理（図１１；ステップＳ１０１〜ステップＳ１０６）を繰り返す。このようにして、論理楽譜データ２０４１ａと演奏制御データ２０４２ａとの間に反復記号に関する不整合性がなくなるまで、整合性チェックの処理およびデータの変更処理が繰り返される。
【００７６】
判定部１２４は、反復記号に関する整合性チェックの処理を終えると、続いて音高および音量に関し、類似の処理を行う。判定部１２４は、まず、論理楽譜データ２０４１ａから、「Ｔｙｐｅ」が「ノートヘッド」、「ステム」および「フラグ」であり、「ＭＢＴ１」が等しい楽譜要素データを検索する。この場合、判定部１２４は楽譜要素データ「１３」〜「１５」を検索結果として得る。次に、判定部１２４は検索した楽譜要素データに先行する楽譜要素データのうち、「Ｔｙｐｅ」が「キー」および「タイム」であり「ＭＢＴ１」が検索した楽譜要素データに最も近いものを検索する。この場合、判定部１２４は楽譜要素データ「８」および「９」を検索結果として得る（図１１；ステップＳ１０１）。判定部１２４はこれらの検索に成功すると（ステップＳ１０２；Ｙｅｓ）、検索した楽譜要素データに対しＭＢＴ変換を施す（ステップＳ１０３）。その結果、判定部１２４は変換後楽譜要素データを得る。ただし、この場合は楽譜要素データ「８」、「９」および「１３」〜「１５」は第１段に関する楽譜要素を示すものであるので、変換後楽譜要素データはＭＢＴ変換前の楽譜要素データと同じ内容となる。
【００７７】
変換後楽譜要素データは、それらの組合せにより「１：２：２４０」のタイミングに配置された中音域のヘ音の八分音符の表示を示している。そこで、判定部１２４は演奏制御データ２０４２ａの中から、「ＭＢＴ」が「１：２：２４０」の前後一定の範囲、例えば「１：２：２２５」〜「１：２：２５５」に含まれ、「Ｔｙｐｅ」が「ノートオン」、「Ｖａｌｕｅ」に「Ｆ３」を含む演奏要素データを検索する。この場合、判定部１２４は検索結果として演奏要素データ「４」を得る。続いて、判定部１２４は演奏制御データ２０４２ａの中から、「ＭＢＴ」が「１：２：４７９」の前後一定の範囲、例えば「１：２：４６４」〜「１：３：０１４」に含まれ、「Ｔｙｐｅ」が「ノートオフ」、「Ｖａｌｕｅ」が「Ｆ３」である演奏要素データを検索する（ステップＳ１０４）。なお、「１：２：４７９」は、「１：２：２４０」から八分音符の長さだけ経過したタイミングを示している。この場合、判定部１２４は検索結果として演奏制御データ「６」を得る。
【００７８】
判定部１２４は、上記のように、ステップＳ１０１において検索した楽譜要素データに応じた演奏要素データを検索し（ステップＳ１０４）、その検索に成功した場合、ステップＳ１０１において検索した楽譜要素データとそれらに対応する演奏要素データとの間で、整合性に関する条件が満たされていると判定する（ステップＳ１０５；Ｙｅｓ）。その場合、判定部１２４は処理をステップＳ１０１に戻し、論理楽譜データ２０４１ａに含まれる音高および音長に関する他の楽譜要素データについて、ステップＳ１０１以降の処理を繰り返す。
【００７９】
一方、判定部１２４はステップＳ１０４の検索に失敗した場合、ステップＳ１０１において検索した楽譜要素データとそれらに対応する演奏要素データとの間で、整合性に関する条件が満たされていないと判定する（ステップＳ１０５；Ｎｏ）。その場合、判定部１２４は演奏制御データ２０４２ａに基づく論理楽譜データ２０４１ａの修正候補データと、論理楽譜データ２０４１ａに基づく演奏制御データ２０４２ａの修正候補データを作成する。
【００８０】
例えば、楽譜要素データ「１７７」、「１７８」および「１８１」は第４段の第５小節から第６小節にかけてタイで結ばれ、継続して発音される中音域のヘ音を示す楽譜要素群を示している。しかしながら、図６に示される演奏制御データ２０４２ａには、楽譜要素データ「１７７」、「１７８」および「１８１」により示されるへ音の発音終了のタイミングに対応するＭＢＴ「２１：４：４７９」の前後に、Ｔｙｐｅ「ノートオフ」、Ｖａｌｕｅ「Ｆ３」である演奏要素データは見つからない。代わりに、ＭＢＴ「２０：４：４７４」にＴｙｐｅ「ノートオフ」、Ｖａｌｕｅ「Ｆ３」である演奏要素データ「１５１」が見つかる。その場合、判定部１２４は、演奏制御データ２０４２ａに基づき論理楽譜データ２０４１ａの修正候補データとして、楽譜要素データ「１７７」および「１８１」を削除した論理楽譜データ２０４１ａを作成する。また、判定部１２４は、論理楽譜データ２０４１ａに基づき演奏制御データ２０４２ａの修正候補データとして、演奏要素データ「１５１」の「ＭＢＴ」を「２１：４：４７９」に変更した演奏制御データ２０４２ａを作成する。
【００８１】
判定部１２４は、上記のように作成した修正候補データを表示部１２５および変更部１２７に送出する（ステップＳ１０６）。判定部１２４より修正候補データが送出された後の表示部１２５、変更指示取得部１２６および変更部１２７の処理は、反復記号に関する整合性チェックについて説明したものと同様であるので説明を省略する。このようにして、論理楽譜データ２０４１に含まれる音高および音長に関する楽譜要素データのそれぞれに関し、演奏制御データ２０４２ａに含まれる演奏要素データとの間の整合性がとられる。
【００８２】
ところで、音高および音長に関する上記の整合性チェックによっては、論理楽譜データ２０４１ａに含まれる楽譜要素データデータに関し整合性チェックが行われるため、例えば、論理楽譜データ２０４１ａに含まれているべき楽譜要素データが欠落しているような場合、そのエラーは検出されない。そこで、判定部１２４は引き続き、論理楽譜データ２０４１ａと演奏制御データ２０４２ａとの関係を入れ替えて、上記の音高および音長に関する整合性チェックの処理を行う。その結果、論理楽譜データ２０４１ａと演奏制御データ２０４２ａに含まれる音高および音長に関する要素データは、より高い精度で互いに整合性を備えたものとなる。
【００８３】
判定部１２４は、音高および音長に関する上記処理を終えると、音高および音長に関する処理と同様の処理を音量、速度、歌詞およびコードのそれぞれに関し、繰り返す。例えば、判定部１２４は音量に関する整合性チェックにおいて、「Ｔｙｐｅ」が「フォルテ」である楽譜要素データ「３５」を検索し（ステップＳ１０１）、それに対応する演奏要素データとして演奏要素データ「１８」を検索する（ステップＳ１０４）。演奏要素データ「１８」の「Ｖａｌｕｅ」により示される音量はやや小さい音量を示す「３２」であるため、この場合、判定部１２４は整合性の条件が満たされていないと判定する（ステップＳ１０５；Ｎｏ）。そして、判定部１２４は、楽譜要素データ「３５」の「Ｔｙｐｅ」を例えば「メゾピアノ」に変更した論理楽譜データ２０４１ａと、演奏要素データ「１８」の「Ｖａｌｕｅ」に含まれる数値を例えば「９４」に変更した演奏制御データ２０４２ａとをそれぞれ修正候補データとして作成し、表示部１２５および変更部１２７に送出する（ステップＳ１０６）。
【００８４】
また、例えば、判定部１２４は速度に関する整合性チェックにおいて、「Ｔｙｐｅ」が「リタルダンド」である楽譜要素データ「１３９」を検索し（ステップＳ１０１）、それに対応する演奏要素データとして「Ｔｙｐｅ」が「テンポ」である演奏要素データ「８７」および「１０６」を検索する（ステップＳ１０４）。演奏要素データ「８７」および「１０６」の「Ｖａｌｕｅ」はそれぞれ「１１０」および「１１５」であり、徐々に演奏速度を速める指示であることを示しているので、この場合、判定部１２４は整合性の条件が満たされていないと判定する（ステップＳ１０５；Ｎｏ）。そして、判定部１２４は、楽譜要素データ「１３９」の「Ｔｙｐｅ」を例えば「アッチェレランド」に変更した論理楽譜データ２０４１ａと、演奏要素データ「１０６」の「Ｖａｌｕｅ」を例えば「１０５」に変更した演奏制御データ２０４２ａとをそれぞれ修正候補データとして作成し、表示部１２５および変更部１２７に送出する（ステップＳ１０６）。
【００８５】
また、例えば、判定部１２４は歌詞に関する整合性チェックにおいて、「Ｔｙｐｅ」が「リリック」である楽譜要素データ「４３」を検索し（ステップＳ１０１）、それに対応する演奏要素データの検索を行うが（ステップＳ１０４）、その検索に失敗し、代わりに「Ｔｙｐｅ」が「メモ」である演奏要素データ「２７」を発見する。この場合、判定部１２４は整合性の条件が満たされていないと判定する（ステップＳ１０５；Ｎｏ）。そして、判定部１２４は、楽譜要素データ「４３」を削除した論理楽譜データ２０４１ａと、演奏要素データ「２７」の「Ｔｙｐｅ」を「リリック」に変更した演奏制御データ２０４２ａとをそれぞれ修正候補データとして作成し、表示部１２５および変更部１２７に送出する（ステップＳ１０６）。判定部１２４による、コードに関する整合性チェックの処理も、歌詞に関するものと全く同様である。
【００８６】
以上はエラーチェックツール１０のユーザがチェック画面のチェックボックス１０５５およびチェックボックス１０５６に含まれるオプションのうち、初期値を選択した場合についてのエラーチェックツール１０の動作であるが、ユーザはチェックボックス１０５５の他のオプションを選択することにより、エラーチェックツール１０に対し、各項目に関して個別に整合性チェックを行わせることができる。また、ユーザはチェックボックス１０５６の「楽譜を基準に修正」もしくは「演奏を基準に修正」を選択することにより、エラーチェックツール１０に自動的に論理楽譜データ２０４１ａと演奏制御データ２０４２ａとの間の不整合を修正させることができる。その場合、判定部１２４はデータ間の不整合を発見した場合、ユーザの選択に応じた修正候補データを作成し、その修正候補データを変更部１２７のみに送出し、表示部２０２は変更指示画面の表示を行わない。そして、変更部１２７は判定部１２４から受け取った修正候補データにより記憶部１２３に記憶されている論理楽譜データ２０４１ａもしくは演奏制御データ２０４２ａを更新する。
【００８７】
以上のような各種の整合性チェックを全て完了すると、判定部１２４はその完了を示すデータを表示部１２５に送出し、表示部１２５は整合性チェックの完了を示すメッセージを表示する。ユーザは、整合性チェックの処理において変更の加えられた論理楽譜データ２０４１ａおよび演奏制御データ２０４２ａを保存したい場合、チェック画面のボタン１０５８をクリックする。その操作に応じて、論理楽譜データ出力部１２８および演奏制御データ出力部１２９は、それぞれ記憶部１２３に記憶されている変更後の論理楽譜データ２０４１ａおよび演奏制御データ２０４２ａをＨＤ１０４に出力し、ＨＤ１０４はそれらのデータを記憶する。その後、ＨＤ１０４に記憶された論理楽譜データ２０４１ａおよび演奏制御データ２０４２ａは記憶媒体や通信網を介してトレーナーツール２０の記憶部２０４にコピーされ、トレーナーツール２０のユーザの演奏習得に用いられるが、その場合、トレーナーツール２０の表示部２０２により表示される楽譜の内容とサウンドシステム２０３により発音される演奏音との間には不整合がないため、高い品質の演奏習得支援サービスが提供される。
【００８８】
［２．第２実施形態］
本発明の第２実施形態にかかるデータ処理装置（以下、「エラーチェックツール５０」と呼ぶ）は、上記第１実施形態におけるエラーチェックツール１０と同様に、ユーザに対する楽曲演奏の習得支援を行う装置（以下、「トレーナーツール６０」と呼ぶ）において用いられるデータ間の整合性をチェックし、そのデータ間に不整合があった場合、必要なデータの修正を行う装置である。ただし、トレーナーツール６０においては、第１実施形態における演奏制御データ２０４２の代わりに、実際に演奏者により行われた模範演奏の様子を録画したデータである動画データと、その動画データとともに模範演奏の音を録音したデータである演奏音データが用いられる。また、エラーチェックツール５０は、第１実施形態における論理楽譜データ２０４１と演奏制御データ２０４２との間の整合性チェックの代わりに、論理楽譜データと動画データとの間の整合性チェックを行う。本実施形態におけるその他の点は第１実施形態と同様であるので、以下、本実施形態が第１実施形態と異なる点のみを説明する。また、以下の説明において、第１実施形態における構成部等と共通するものには、同じ名称および符号を用いる。
【００８９】
［２．１．動画データおよび演奏音データ］
トレーナーツール６０の記憶部２０４には、複数の楽曲の各々に関し、論理楽譜データ２０４１、動画データ５０１および演奏音データ５０２が記憶されている。図１３は、動画データ５０１の構造を模式的に示した図である。動画データ５０１は、複数の静止画データが時系列的に配列されたものである。以下の説明において、動画データ５０１は２０ミリ秒毎の静止画データを含んでおり、各々の静止画データには、その静止画データを表示すべきタイミングを示すデータ（以下、「表示タイミングデータ」と呼ぶ）が付されている。表示タイミングデータは、例えば０分０秒０００ミリ秒を示す場合、［０ｍ０ｓ０００ｍｓ］と表される。以下、表示タイミングデータが付された静止画データの各々を「画像要素データ」と呼ぶ。トレーナーツール６０の制御部２０１は、隣り合う画像要素データに基づき、それらを補間する静止画データを作成し、動画データ５０１に含まれる静止画データおよび補間により作成した静止画データを表示タイミングデータに示されるタイミングに従い順次、表示部２０２に送出する。その結果、表示部２０２により順次表示される静止画は、ユーザにより動画として見える。
【００９０】
ところで、既述のように動画データ５０１は演奏者が実際に模範演奏を行う様子を録画することにより作成されたデータである。演奏者は録画の際に、ハ音の各鍵の近傍に基準位置を示す赤い円形のマーク（以下、「基準マーク」と呼ぶ）が付され、さらに全ての鍵の近傍に打鍵時に点灯する黄色のランプが配置されたミュージックキーボードを用いている。その結果、動画データ５０１に含まれる画像要素データにより示される画像には、基準マークおよび打鍵された鍵を示すランプを示す画像が含まれている。
【００９１】
図１４は、演奏音データ５０２の構造を模式的に示した図である。演奏音データ５０２は、音の出力をすべきタイミングを示す「タイミング」、右側の音の出力値を示す「値−Ｒ」および左側の音の出力値を示す「値−Ｌ」を含む要素データ（以下、「音要素データ」と呼ぶ）の集合である。音要素データに含まれる「タイミング」は、［０ｍ０ｓ０００ｍｓ０］のように表され、「０ｍ０ｓ０００ｍｓ」の部分は表示タイミングデータと同様に０分０秒０００ミリ秒を示し、末尾の「０」は１／３２ミリ秒を単位とする時間の経過を示す。例えば、［０ｍ０ｓ０００ｍｓ５］は、基準タイミングから５／３２ミリ秒経過したタイミングを示す。
【００９２】
トレーナーツール６０のサウンドシステム２０３は、各音要素データに含まれる「値−Ｒ」および「値−Ｌ」で示される値に応じた電圧を「タイミング」で示されるタイミングでアンプに入力することによりスピーカの振動板を振動させる。その結果、ユーザには演奏音データ５０２により示される演奏音が聞こえる。
【００９３】
［２．２．トレーナーツールの動作］
図１５は、トレーナーツール６０の表示部２０２に表示されるトレーニング画面を例示した図である。トレーナーツール６０におけるトレーニング画面は、トレーナーツール２０におけるトレーニング画面の構成要素に加え、動画データ５０１に従った動画を表示するためのボックス６０１を含んでいる。トレーナーツール６０のユーザがチェックボックス２０２５において「模範演奏」を選択した後、ボタン２０２６をクリックすると、動画データ５０１に従った動画がボックス６０１に表示され、同時に演奏音データ５０２に従った演奏音がサウンドシステム２０３から発音され、さらに動画および演奏音の進行に伴い、論理楽譜データ２０４１に従った楽譜２０２８ａおよび楽譜２０２８ｂの表示が順次更新される。
【００９４】
また、ユーザがチェックボックス２０２５において「練習」を選択した後、ボタン２０２６をクリックすると、動画データ５０１に従った動画がボックス６０１に表示され、同時にメトロノーム音がサウンドシステム２０３から発音され、さらに動画およびメトロノーム音の進行に伴い、論理楽譜データ２０４１に従った楽譜２０２８ａおよび楽譜２０２８ｂの表示が順次更新される。
【００９５】
［２．３．エラーチェックツールの構成および動作］
エラーチェックツール５０のハードウェア構成は、図８に示したエラーチェックツール１０のハードウェア構成と同様である。ただし、エラーチェックツール５０のＨＤ１０４には、演奏制御データ２０４２の代わりに動画データ５０１および演奏音データ５０２が記憶されている。エラーチェックツール５０のＨＤ１０４に記憶されている論理楽譜データ２０４１、動画データ５０１および演奏音データ５０２は、同じ楽曲に関するものには拡張子のみが異なる同じファイル名が付されることにより、互いに対応付けられている。同じ楽曲に関する動画データ５０１と演奏音データ５０２は、同じ模範演奏を同じクロック信号に基づき動作する装置により録画および録音して得られたものであるので、それらの間の整合性は保たれている。しかしながら、論理楽譜データ２０４１は動画データ５０１および演奏音データ５０２とは個別に作成されるため、それらのデータ間には不整合がある可能性がある。エラーチェックツール５０は、論理楽譜データ２０４１と動画データ５０１との整合性チェックを行うことにより、同じ楽曲に関する論理楽譜データ２０４１、動画データ５０１および演奏音データ５０２が整合性を持ったものとなるように、論理楽譜データ２０４１に修正を加えるツールである。
【００９６】
図１６は、エラーチェックツール５０の機能構成を示したブロック図である。エラーチェックツール５０は、第１実施形態におけるエラーチェックツール１０と比較し、演奏制御データ取得部１２２の代わりに、動画データ取得部６２１を備えている。また、エラーチェックツール５０は動画データ５０１に含まれる静止画データから基準マークおよび点灯したランプの画像を認識する画像認識処理部６２２を備えている。一方、エラーチェックツール５０はエラーチェックツール１０が備えている演奏制御データ出力部１２９を備えていない。
【００９７】
ユーザがエラーチェックツール５０の表示部１２５に表示される画面において、整合性チェックの対象とするデータ群のファイル名を選択し、整合性チェックの開始を指示すると、論理楽譜データ取得部１２１および動画データ取得部６２１は、それぞれ指定されたファイル名の論理楽譜データ２０４１および動画データ５０１をＨＤ１０４から読み出し、記憶部１２３に一時的に記憶する。以下、ユーザはファイル名として「聖者の行進」を選択し、記憶部１２３には楽曲「聖者の行進」に関する論理楽譜データ２０４１ａおよび動画データ５０１ａが記憶されたものとする。
【００９８】
論理楽譜データ２０４１ａおよび動画データ５０１ａが記憶部１２３に記憶されると、画像認識処理部６２２は動画データ５０１ａに含まれる画像要素データのそれぞれについて、基準マークおよび点灯したランプの画像の認識処理を行う。画像認識処理部６２２は、まず画像要素データに含まれる各画素のＲＧＢ（Ｒｅｄ，Ｇｒｅｅｎ，Ｂｌｕｅ）データから、基準マークの色である赤およびそれに類似する色を示すものを抽出する。例えば、基準マークのＲＧＢデータが［２５５，０，０］である場合、画像認識処理部６２２は画像要素データに含まれる画素のうち、ＲＧＢデータが［２４５〜２２５，０〜５０，０〜５０］の範囲に入るものを抽出する。
【００９９】
続いて、画像認識処理部６２２は抽出した画素のうち、互いに隣接する画素をグループ化し、各グループの画素により示される図形の重心の座標データを算出する。さらに、画像認識処理部６２２は図形の外縁に位置する画素のそれぞれにつき、重心との距離を算出する。そして、画像認識処理部６２２は算出した重心との距離が、図形の外縁に位置する画素のいずれについても基準マークの半径を示す値の前後に含まれる場合、その図形を、基準マークを示す画像であると認識する。画像認識処理部６２２は、基準マークを示す画像として認識した図形の重心の座標データを、画像要素データに含まれる表示タイミングデータとともに記憶部１２３に記憶する。以下、基準マークを示す画像として認識した図形の重心を「基準点」と呼ぶ。
【０１００】
続いて、画像認識処理部６２２は画像要素データに含まれる点灯したランプの画像の認識処理を行う。画像認識処理部６２２が点灯したランプの画像を認識する処理は、画像要素データから抽出する画素のＲＢＧデータの範囲が異なる点を除き、基準マークの画像を認識する場合と同様である。画像認識処理部６２２は、点灯したランプを示す画像として認識した図形の重心の座標データを、画像要素データに含まれる表示タイミングデータとともに記憶部１２３に記憶する。以下、点灯したランプを示す画像として認識した図形の重心を「点灯点」と呼ぶ。
【０１０１】
図１７は、画像認識処理部６２２により記憶部１２３に記憶されるデータの構造を示す図である。ただし、画像認識処理部６２２が上記の画像認識処理を終えた時点では、「音高」の欄は空欄である。図１７に示すデータは、動画データ５０１ａに含まれる画像要素データから得られた座標データに基づき、いずれの音高の鍵がいずれのタイミングで打鍵されたかを特定するためのデータである。従って、図１７に示すデータを以下、「打鍵データ」と呼ぶ。打鍵データは、各画像要素データから得られたデータである要素データ（以下、「打鍵要素データ」と呼ぶ）の集まりである。各打鍵要素データは、打鍵要素データを識別する「ＩＤ」、対応する画像要素データに含まれる表示タイミングデータを示す「タイミング」、基準点の座標データを示す「基準点」、点灯点の座標データを示す「点灯点」および打鍵されている鍵の音高を示す「音高」を含んでいる。各打鍵要素データは「基準点」および「点灯点」に複数の座標データを含むことができる。以下、打鍵要素データを区別する場合、「ＩＤ」を付して、打鍵要素データ「１」のように表す。
【０１０２】
画像認識処理部６２２は、各打鍵要素データに関し、「基準点」および「点灯点」に基づき「音高」を特定する処理を以下のように行う。まず、画像認識処理部６２２は「基準点」の座標データを用いて、隣接する２つの基準点を１２等分に内分する点（以下、「内分点」と呼ぶ）の座標データを算出する。続いて、画像認識処理部６２２は基準点および内分点のそれぞれに音高を対応付ける。具体的には、画像認識処理部６２２は、基準点に対し、Ｘ座標の小さいものから順にＣ３、Ｃ４・・・のように音高を対応付け、例えばＣ３の基準点とＣ４の基準点の内分点に対し、Ｃ３に近いものから順にＣ＃３、Ｄ３・・・のように音高を対応付ける。
【０１０３】
続いて、画像認識処理部６２２は、「点灯点」に含まれる座標データのそれぞれに関し、その座標データにより示される点灯点に最も近い基準点もしくは内分点を特定する。例えば、図１７に例示される打鍵要素データ「４０」の場合、「点灯点」に含まれる座標データ（１０２，１６３）は、「基準点」に含まれる座標データ（５３，１８５）および（１７４，１８３）の内分点のうち、最も近いものとして５番目の内分点（１０３．４，１８４．２）を特定する。画像認識処理部６２２は、点灯点に最も近い基準点もしくは内分点に対応付けられた音高を、その点灯点に対応する音高として特定する。打鍵要素データ「４０」の場合、点灯点（１０２，１６３）は、Ｃ３を示す基準点（５３，１８５）から５番目に位置する内分点に最も近いため、対応する音高として「Ｆ３」が特定される。画像認識処理部６２２は以上のように点灯点の音高を特定すると、その音高を示すデータを打鍵要素データの「音高」に記憶する。
【０１０４】
ところで、基準点および点灯点を特定するにあたり、上述した方法以外の図形認識技術を用いてもよい。また、基準マークやランプを用いることなく、鍵の押下時の形状等を直接認識することにより、打鍵データにおける「音高」を特定するようにしてもよい。
【０１０５】
画像認識処理部６２２が全ての打鍵要素データに関し上記の音高の特定処理を終えると、判定部１２４は打鍵データに含まれる打鍵要素データのそれぞれに関し、論理楽譜データ２０４１ａに対応する音符を示す楽譜要素データが含まれているか否かを、以下のように判定する。まず、判定部１２４は打鍵要素データの「タイミング」の値を、論理楽譜データ２０４１ａの「ＭＢＴ１」および「ＭＢＴ２」において用いられているＭＢＴ形式に変換する。具体的には、判定部１２４は論理楽譜データ２０４１ａに含まれる「Ｔｙｐｅ」が「テンポ」である楽譜要素データを抽出し、各タイミングにおけるティックの時間長を決定した後、先頭タイミングからの経過時間に対応するＭＢＴを算出する。例えば、テンポが「１２０」である場合、１ティックの時間長は６０秒を１２０×４８０で除した時間長、すなわち約１．０４ミリ秒である。従って、テンポが「１２０」で変化しない場合、打鍵要素データ「４０」のタイミング［０ｍ０ｓ８００ｍｓ］は先頭タイミングから７６８ティックだけ経過したタイミングとなり、ＭＢＴ形式では「１：２：２８８」と表される。
【０１０６】
続いて、判定部１２４は打鍵要素データの「音高」の値を、論理楽譜データ２０４１ａの「Ｙ１」において用いられているＹ座標形式に変換する。例えば、打鍵要素データ「４０」の音高「Ｆ３」は「１０５」に変換される。判定部１２４は、変換後の打鍵要素データを用いて、論理楽譜データ２０４１ａに含まれる楽譜要素データのうち、「ＭＢＴ１」が打鍵要素データのタイミング以前もしくは打鍵要素データのタイミング以降の一定期間に含まれ、「Ｔｙｐｅ」が「ノートヘッド」、「Ｖａｌｕｅ」が打鍵要素データの「音高」であるものを検索する。ここで、「ＭＢＴ１」が打鍵要素データのタイミング以降の一定期間に含まれるものも検索対象とするのは、打鍵要素データに含まれる「タイミング」は実際の演奏におけるタイミング情報であるため、ゆらぎを持っているためである。例えば、判定部１２４は打鍵要素データ「４０」に関し、楽譜要素データ「１３」を検索結果として得る。
【０１０７】
上記の検索に成功した場合、続いて判定部１２４は検索された楽譜要素データと「ＭＢＴ１」の値が等しく、「Ｔｙｐｅ」が「ステム」および「フラグ」である楽譜要素データを検索する。例えば上記の検索処理において楽譜要素データ「１３」が検索された場合、判定部１２４は楽譜要素データ「１４」および「１５」を検索結果として得る。さらに、判定部１２４は、上記のように検索された楽譜要素データの「ＭＢＴ１」以前のタイミングを示す「ＭＢＴ１」を含み、「Ｔｙｐｅ」が「キー」である楽譜要素データを検索する。この場合、楽譜要素データ「８」が検索される。
【０１０８】
判定部１２４は、上記のように検索した楽譜要素データが、打鍵要素データと整合性を有しているか否かを判定する。例えば、楽譜要素データ「８」および「１３」〜「１５」は全体として「１：２：２４０」のタイミングに配置された中音域のヘ音の発音を指示する八分音符を示している。すなわち、「１：２：２４０」〜「１：２：４７９」の期間、中音域のへ音の発音が行われるべきであることを示している。一方、打鍵要素データ「４０」は「１：２：２８８」のタイミングにおいて、Ｆ３（中音域のへ音）が打鍵されていることを示しているので、判定部１２４はこれらのデータの整合性が保たれている、と判定する。判定部１２４は、論理楽譜データ２０４１ａが打鍵要素データと整合性を保っていると判定した場合、打鍵データに含まれる次の打鍵要素データに関し、上記の一連の整合性チェックに関する処理を繰り返す。
【０１０９】
一方、判定部１２４が打鍵要素データに対応する楽譜要素データの検索に失敗したり、対応する楽譜要素データの検索には成功したものの、打鍵要素データのタイミングが検索された楽譜要素データの示す音符により示される発音期間およびその前後に含まれていない場合、判定部１２４は論理楽譜データ２０４１ａが打鍵要素データと整合性を保っていないと判定する。その場合、判定部１２４は打鍵要素データに基づき論理楽譜データ２０４１ａの修正候補データを作成し、作成した修正候補データを表示部１２５および変更部１２７に送出する。その後、表示部１２５はユーザに修正指示を促す画面を表示し、その画面に応じたユーザの修正指示に従い、変更部１２７は論理楽譜データ２０４１ａを更新する。論理楽譜データ２０４１ａの更新が行われると、判定部１２４は更新後の論理楽譜データ２０４１ａを用いて、上記の一連の整合性チェックに関する処理を繰り返す。
【０１１０】
判定部１２４は、以上のような整合性チェックを打鍵データに含まれる全ての打鍵要素データについて完了すると、同様の整合性チェックを動画データ５０１ａと論理楽譜データ２０４１ａとを入れ替えて行う。その結果、例えば、論理楽譜データ２０４１ａに含まれている音符に応じた打鍵が、動画データ５０１によればなされていないような不整合も検出される。
【０１１１】
以上のような整合性チェックを全て完了すると、表示部１２５は整合性チェックの完了を示すメッセージを表示する。そのメッセージに応じてユーザがデータの保存を指示するボタンをクリックすると、論理楽譜データ出力部１２８は変更後の論理楽譜データ２０４１ａをＨＤ１０４に出力し、ＨＤ１０４はそのデータを記憶する。このようにしてＨＤ１０４に記憶された論理楽譜データ２０４１ａが動画データ５０１ａおよび演奏音データ５０２ａとともにトレーナーツール６０において用いられる場合、提供される演奏習得支援サービスは、表示される楽譜の内容と映像および発音される演奏音との間に不整合のない高い品質のものとなる。
【０１１２】
［３．第３実施形態］
本発明の第３実施形態にかかるデータ処理装置（以下、「エラーチェックツール７０」と呼ぶ）は、カラオケにおける歌詞の表示および着色を指示するデータ（以下、「歌詞データ」と呼ぶ）と、模範歌唱の音声データとの整合性をチェックし、そのデータ間に不整合があった場合、必要なデータの修正を行う装置である。本実施形態におけるエラーチェックツール７０の構成および動作は、多くの点で第２実施形態におけるエラーチェックツール５０と共通しているので、以下、本実施形態が第２実施形態と異なっている点のみを説明する。また、以下の説明において、第２実施形態における構成部等と共通するものには、同じ名称および符号を用いる。
【０１１３】
［３．１．エラーチェックツールの構成］
エラーチェックツール７０のハードウェア構成は、図８に示したエラーチェックツール１０のハードウェア構成と同様である。ただし、エラーチェックツール７０のＨＤ１０４には、論理楽譜データ２０４１および演奏制御データ２０４２の代わりに音声データ７０１および歌詞データ７０２が記憶されている。同じ楽曲に関するこれらのデータは、拡張子のみが異なる同じファイル名が付されることにより互いに対応付けられている。さらに、エラーチェックツール７０のＨＤ１０４には、後述する音声認識処理において利用される素片データベース７０３が記憶されている。
【０１１４】
音声データ７０１の構造は、第２実施形態における演奏音データ５０２（図１４参照）の構造と同様である。図１８は歌詞データ７０２の構造を示した図である。歌詞データ７０２は、カラオケ装置の表示部にいずれの文字をいずれのタイミングで表示し、かついずれのタイミングで着色するかを示す要素データ（以下、「歌詞要素データ」と呼ぶ）の集合である。各歌詞要素データは、「ＩＤ」、「歌詞」、「表示開始タイミング」、「表示終了タイミング」、「着色タイミング」および「表示位置」を含んでいる。以下、歌詞要素データを区別する必要がある場合、「ＩＤ」を付して、歌詞要素データ「１」のように表す。
【０１１５】
「歌詞」は歌詞に含まれる各々の文字を示す。「表示開始タイミング」および「表示終了タイミング」は、第２実施形態における表示タイミングデータ等と同様の形式のデータである。「着色タイミング」は、カラオケの歌唱者に対し歌唱開始のタイミングを示すために、表示されている歌詞の文字の表示色を変化させるタイミングを示すデータであり、その形式は「表示開始タイミング」および「表示終了タイミング」と同様である。「表示位置」は、カラオケ装置の表示部の左端位置を基準とした水平方向の位置を示す数値である。
【０１１６】
素片データベース７０３は、素片、すなわち音声学的な特徴部分に対応する音声波形の、スペクトルを示すデータ（以下、「スペクトルデータ」と呼ぶ）を格納したデータベースである。例えば、「さくら」という歌詞を発音した場合、その音は「＃ｓ」「ｓ」「ｓ−ａ」「ａ」「ａ−ｋ」「ｋ」「ｋ−ｕ」「ｕ」「ｕ−ｒ」「ｒ」「ｒ−ａ」「ａ＃」の素片に分解される。ただし、「＃ｓ」は「ｓ」の音の立ち上がり部分を、また例えば「ｓ−ａ」は「ｓ」から「ａ」に変化する部分を、また「ａ＃」は「ａ」の音の減衰部分を示す。素片データベース７０３は、これらの素片を示す記号（以下、「素片記号」と呼ぶ）と、各素片の音声波形のスペクトルデータを対応付けて記憶している。
【０１１７】
図１９は、エラーチェックツール７０の機能構成を示したブロック図である。エラーチェックツール７０は、第２実施形態におけるエラーチェックツール５０と比較し、論理楽譜データ取得部１２１および動画データ取得部６２１の代わりに音声データ取得部７２１および歌詞データ取得部７２２を備えている。また、エラーチェックツール７０は画像認識処理部６２２の代わりに、音声データ７０１からいずれの素片の発音がなされているかを認識する音声認識処理部７２３を備えている。また、エラーチェックツール７０は論理楽譜データ出力部１２８の代わりに、歌詞データ出力部７２４を備えている。さらに、エラーチェックツール７０は素片データベース取得部７２５を備えている。
【０１１８】
［３．２．エラーチェックツールの動作］
本実施形態におけるエラーチェックツール７０の動作は、第２実施形態におけるエラーチェックツール５０の動作と、音声認識処理部７２３および判定部１２４の動作のみが異なる。従って、以下、それらの異なる動作のみを説明する。
【０１１９】
ユーザの整合性チェックの開始指示に応じて、音声データ取得部７２１、歌詞データ取得部７２２および素片データベース取得部７２５は、それぞれ音声データ７０１、歌詞データ７０２および素片データベース７０３をＨＤ１０４から読み出し、記憶部１２３に記憶する。続いて、音声認識処理部７２３は音声データ７０１に含まれる要素データ（以下、「音声要素データ」と呼ぶ）のうち、例えば先頭の１００ミリ秒の期間に含まれるものを取り出し、取り出した音声要素データ群により示される音声波形のスペクトルデータを算出する。音声認識処理部７２３は、算出したスペクトルデータと、素片データベース７０３に含まれるスペクトルデータの各々との相関係数を求める等の方法により、算出したスペクトルデータに最も近い素片のスペクトルデータを特定する。音声認識処理部７２３は、特定した素片のスペクトルデータに対応付けられている素片記号を、その音声要素データ群のタイミングを示すデータ［０ｍ０ｓ０００ｍｓ０」とともに記憶部１２３に記憶する。このタイミングを示すデータは、取り出した音声要素データ群の先頭のものの「タイミング」の値である。
【０１２０】
続いて、音声認識処理部７２３は音声データ７０１から次の１００ミリ秒の期間に含まれる音声要素データを取り出し、上記と同様に対応する素片記号の特定を行う。特定した素片記号が最後に記憶部１２３に記憶したものと同じ場合、音声認識処理部７２３は新たに特定した素片記号を記憶部１２３に記憶することなく、次の１００ミリ秒の期間に含まれる音声要素データに関し、対応する素片記号を特定する処理を繰り返す。一方、音声認識処理部７２３は新たに特定した素片記号が最後に記憶部１２３に記憶したものと異なる場合、新たに特定した素片記号を、取り出した音声要素データ群のタイミングを示すデータとともに記憶部１２３に記憶した後、次の１００ミリ秒の期間に含まれる音声要素データに関し、対応する素片記号を特定する処理を繰り返す。
【０１２１】
図２０は、音声認識処理部７２３により記憶部１２３に記憶されたデータ（以下、「素片タイミングデータ」と呼ぶ）を例示した図である。素片タイミングデータは、複数の要素データ（以下、「素片要素データ」と呼ぶ）の集合であり、各素片要素データは「ＩＤ」、「素片記号」および「タイミング」を含んでいる。以下、各素片要素データを区別する場合、「ＩＤ」を付して素片要素データ「１」のように表す。
【０１２２】
音声認識処理部７２３により、素片タイミングデータの作成が音声データ７０１の全てに関し完了すると、判定部１２４は素片タイミングデータに含まれる素片要素データを先頭から順次、１つの文字の発音に対応する素片要素データ群にグループ化する。例えば、「＃ｓ」「ｓ」「ｓ−ａ」「ａ」は「さ」の発音を構成する一連の素片を示すので、判定部１２４は素片要素データ「１」〜「４」を１つの素片要素データ群とする。
【０１２３】
続いて、判定部１２４は各素片要素データ群に関し、歌詞データ７０２の中から、「歌詞」が素片要素データ群により示される文字を示し、かつ「着色タイミング」が素片要素データ群に含まれる先頭の素片要素データの「タイミング」により示されるタイミングの前後に含まれる歌詞要素データを検索する。例えば、素片要素データ「１」〜「４」に関し、判定部１２４は「歌詞」が「さ」であり、「着色タイミング」が例えば［０ｍ４１ｓ３００ｍｓ］〜［０ｍ４１ｓ７００ｍｓ］の範囲に含まれる歌詞要素データを検索し、歌詞要素データ「１」を検索結果として得る。
【０１２４】
判定部１２４は、上記の歌詞要素データの検索に成功すると、音声データ７０１と素片要素データ群との間に整合性があると判定して、次の素片要素データ群に関し、上記の一連の整合性チェックを繰り返す。一方、判定部１２４は、上記の歌詞要素データの検索に失敗すると、音声データ７０１と素片要素データ群との間に整合性がないと判定して、素片要素データ群に基づき歌詞データ７０２の修正候補データを作成し、作成した修正候補データを表示部１２５および変更部１２７に送出する。その後、ユーザの変更指示に従い変更部１２７が歌詞データ７０２の更新を行うと、判定部１２４は変更後の歌詞データ７０２を用いて、上記の一連の整合性チェックを繰り返す。
【０１２５】
以上のような整合性チェックを素片タイミングデータに含まれる全ての素片要素データに関し完了すると、表示部１２５は整合性チェックの完了を示すメッセージを表示する。そのメッセージに応じてユーザがデータの保存を指示するボタンをクリックすると、歌詞データ出力部７２４は変更後の歌詞データ７０２をＨＤ１０４に出力し、ＨＤ１０４はそのデータを記憶する。このようにしてＨＤ１０４に記憶された歌詞データ７０２は、模範歌唱の内容と整合性が保たれているため、カラオケ装置において歌詞データ７０２による歌詞表示が行われる際、正確なタイミングで歌詞の文字の表示色変更が行われる。
【図面の簡単な説明】
【０１２６】
【図１】本発明の第１実施形態にかかるトレーナーツールの構成を示した図である。
【図２】本発明の第１実施形態にかかるトレーナーツールの表示部に表示される楽譜を示した図である。
【図３】本発明の第１実施形態にかかる論理楽譜データの内容を例示した図である。
【図４】本発明の第１実施形態にかかる論理楽譜データの内容を例示した図である。
【図５】本発明の第１実施形態にかかる演奏制御データの内容を例示した図である。
【図６】本発明の第１実施形態にかかる演奏制御データの内容を例示した図である。
【図７】本発明の第１実施形態にかかるトレーナーツールの表示部に表示される画面を例示した図である。
【図８】本発明の第１実施形態にかかるエラーチェックツールのハードウェア構成を示した図である。
【図９】本発明の第１実施形態にかかるエラーチェックツールの機能構成を示したブロック図である。
【図１０】本発明の第１実施形態にかかるエラーチェックツールのディスプレイに表示される画面を例示した図である。
【図１１】本発明の第１実施形態にかかるエラーチェックツールの判定部により行われる整合性チェックの処理フローを示した図である。
【図１２】本発明の第１実施形態にかかるエラーチェックツールの表示部に表示される画面を例示した図である。
【図１３】本発明の第２実施形態にかかる動画データの構造を模式的に示した図である。
【図１４】本発明の第２実施形態にかかる演奏音データの構造を模式的に示した図である。
【図１５】本発明の第２実施形態にかかるトレーナーツールの表示部に表示される画面を例示した図である。
【図１６】本発明の第２実施形態にかかるエラーチェックツールの機能構成を示したブロック図である。
【図１７】本発明の第２実施形態にかかる打鍵データの構造を示した図である。
【図１８】本発明の第２実施形態にかかる歌詞データの構造を示した図である。
【図１９】本発明の第２実施形態にかかるエラーチェックツールの機能構成を示したブロック図である。
【図２０】本発明の第２実施形態にかかる素片タイミングデータの構造を示した図である。
【符号の説明】
【０１２７】
１０・５０・７０…エラーチェックツール、２０・６０…トレーナーツール、３０…キーボード、１０１…ＣＰＵ、１０２…ＲＯＭ、１０３…ＲＡＭ、１０４…ＨＤ、１０５…ディスプレイ、１０６…キーボード、１０７…マウス、１０８・２０５…入出力Ｉ／Ｆ、１２１…論理楽譜データ取得部、１２２…演奏制御データ取得部、１２３・２０４…記憶部、１２４…判定部、１２５・２０２…表示部、１２６…変更指示取得部、１２７…変更部、１２８…論理楽譜データ出力部、１２９…演奏制御データ出力部、２０１…制御部、２０３…サウンドシステム、２０６…発振器、４０１…外部記憶装置、４０２…インターネット、６２１…動画データ取得部、６２２…画像認識処理部、７２１…音声データ取得部、７２２…歌詞データ取得部、７２３…音声認識処理部、７２４…歌詞データ出力部、７２５…素片データベース取得部。
【図１】
2006058577.tif 000003
【図２】
2006058577.tif 000004
【図３】
2006058577.tif 000005
【図４】
2006058577.tif 000006
【図５】
2006058577.tif 000007
【図６】
2006058577.tif 000008
【図７】
2006058577.tif 000009
【図８】
2006058577.tif 000010
【図９】
2006058577.tif 000011
【図１０】
2006058577.tif 000012
【図１１】
2006058577.tif 000013
【図１２】
2006058577.tif 000014
【図１３】
2006058577.tif 000015
【図１４】
2006058577.tif 000016
【図１５】
2006058577.tif 000017
【図１６】
2006058577.tif 000018
【図１７】
2006058577.tif 000019
【図１８】
2006058577.tif 000020
【図１９】
2006058577.tif 000021
【図２０】
2006058577.tif 000022