(57)【特許請求の範囲】
【請求項１】
楽曲の楽譜の画像データを格納した画像データファイルと、
前記楽曲を構成する一連の楽音について、小節ごとに発音すべき音高を示す情報、および、その発音タイミングを示す時間情報を含む音楽データを格納した複数の単位音楽データファイルと、
前記楽譜におけるパート線、五線および小節線が存在する位置、並びに、小節の各々の領域および小節番号を含む、楽譜要素データを格納した楽譜要素データファイルと、
前記画像データに基づく楽譜の画像を表示する表示手段と、
前記表示手段に重ね合わせて配置された、前記表示手段上の操作位置及び操作回数を検出する位置検出手段と、
前記単位音楽データファイルを読み出して、前記音楽データに基づき、楽音生成手段に対して楽音の発音を指示する発音制御手段と、を備え、
前記発音制御手段が、前記楽譜要素データファイルを参照して、前記位置検出手段により検出された操作位置に基づき、前記表示された楽譜中の位置を特定し、前記楽譜中の位置に対応する単位音楽データファイル中の音楽データに基づき、前記楽音生成手段に対して楽音の発音の指示を、前記位置検出手段により検出された操作回数だけ繰り返すように構成されたことを特徴とする楽音生成制御装置。
【請求項２】
前記楽譜要素データファイルが、繰り返し記号の種別および位置を含み、
前記複数の単位音楽データファイルにおいて、前記楽譜における当該楽譜の構成要素である繰り返し記号の種別および位置に基づいて、繰り返しによる重複が排除されていることを特徴とする請求項１に記載の楽音生成制御装置。
【請求項３】
前記発音制御手段が、前記単位音楽データファイルの音楽データに基づく発音の指示を完了した後、前記単位音楽データファイルに対して次の小節に対応する単位音楽データファイルを読み出して、当該読み出された単位音楽データファイル中の音楽データに基づき発音を指示するように構成されたことを特徴とする請求項１または２に記載の楽音生成制御装置。
【請求項４】
前記発音制御手段が、前記操作回数だけ、前記単位音楽データファイルの音楽データに基づく発音の指示を繰り返した後、前記単位音楽データファイルに対して次の小節に対応する単位音楽データファイルを読み出して、当該読み出された単位音楽データファイル中の音楽データに基づき発音を指示するように構成されたことを特徴とする請求項１に記載の楽音生成制御装置。
【請求項５】
楽曲の楽譜の画像データを格納した画像データファイルと、
前記楽曲を構成する一連の楽音について、小節ごとに発音すべき音高を示す情報、および、その発音タイミングを示す時間情報を含む音楽データを格納した複数の単位音楽データファイルと、 前記楽譜におけるパート線、五線および小節線が存在する位置、並びに、小節の各々の領域および小節番号を含む、楽譜要素データを格納した楽譜要素データファイルと、
前記画像データに基づく楽譜の画像を表示する表示手段と、
前記表示手段に重ね合わせて配置された、前記表示手段上の操作位置及び操作回数を検出する位置検出手段と、を備えたコンピュータに、
前記単位音楽データファイルを読み出して、前記音楽データに基づき、楽音生成手段に対して楽音の発音を指示する発音制御ステップを実行させ、
前記発音制御ステップが、前記楽譜要素データファイルを参照して、前記位置検出手段により検出された操作位置に基づき、前記表示された楽譜中の位置を特定し、前記楽譜中の位置に対応する単位音楽データファイル中の音楽データに基づき、前記楽音生成手段に対して楽音の発音の指示を、前記位置検出手段により検出された操作回数だけ繰り返すように構成されたことを特徴とする楽音生成制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示される楽譜についての楽譜データと、当該楽譜に基づく楽曲の演奏についての音楽データとを関連付ける楽譜情報を用いて、音楽データに基づく楽曲の再生を制御する楽音生成制御装置および楽音生成制御プログラムに関する。
【背景技術】
【０００２】
電子楽器や音楽再生装置において、表示部の画面上に楽譜を表示しつつ、楽譜に表示された音符に対応する楽音を発音させることで楽曲の演奏を実現する技術が提案されている。
【０００３】
たとえば、特許文献１には、鍵盤を押鍵して得た演奏データと、楽譜データとを比較して、演奏者による演奏されている楽譜の位置を検索し、楽譜中の検索された位置を、表示する装置が提案されている。
【０００４】
また、特許文献２においては、ＭＩＤＩデータファイルと、小節ごとの楽譜を示す楽譜画像データを格納した楽譜画像データファイルと、各小節についての制御コードを含む練習支援データが用いられている。制御コードは、楽譜上での所属ページ、ＭＩＤＩデータの対応部分、対応する楽譜画像データを指定するコードを含む。特許文献２に示す装置においては、制御コードに基づいて、練習対象となった小節の所属ページが認識され、当該ページに属する小節に対応する楽譜を表示するように構成されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３０７７２６９号公報
【特許文献２】特開平１０−２４０１１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実際の楽譜は、通常は種々の繰り返し記号が含まれ、同一の小節が複数回にわたって演奏される。その一方、楽曲を演奏するための音楽データ（たとえば、ＭＩＤＩデータを格納したＳＭＦ（Ｓｔａｎｄａｒｄ  Ｍｉｄｉ  Ｆｉｌｅ））は、発音開始に対応するオートオンイベント、発音終了（消音）に対応するノートオフイベント、および、イベント間の時間情報から構成されるため、繰り返しが考慮されないものである。したがって、楽譜上の音符と、音楽データ上のイベントとは必ずしも一意的に対応していないため、楽譜上の所定の位置（たとえば、小節）を指定した場合に、適切な楽曲の演奏ができない場合がある。
【０００７】
本発明は、楽譜データと、楽譜に基づく楽曲を演奏する音楽データとを適切に対応付けた楽譜情報に基づき、ユーザが所望の位置から楽曲を演奏させることができる楽音生成制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的は、楽曲の楽譜の画像データを格納した画像データファイルと、
前記楽曲を構成する一連の楽音について、小節ごとに発音すべき音高を示す情報、および、その発音タイミングを示す時間情報を含む音楽データを格納した複数の単位音楽データファイルと、
前記楽譜におけるパート線、五線および小節線が存在する位置、並びに、小節の各々の領域および小節番号を含む、楽譜要素データを格納した楽譜要素データファイルと、
前記画像データに基づく楽譜の画像を表示する表示手段と、
前記表示手段に重ね合わせて配置された、前記表示手段上の操作位置及び操作回数を検出する位置検出手段と、
前記単位音楽データファイルを読み出して、前記音楽データに基づき、楽音生成手段に対して楽音の発音を指示する発音制御手段と、を備え、
前記発音制御手段が、前記楽譜要素データファイルを参照して、前記位置検出手段により検出された操作位置に基づき、前記表示された楽譜中の位置を特定し、前記楽譜中の位置に対応する単位音楽データファイル中の音楽データに基づき、前記楽音生成手段に対して楽音の発音の指示を、前記位置検出手段により検出された操作回数だけ繰り返すように構成されたことを特徴とする楽音生成制御装置により達成される。
【発明の効果】
【０００９】
本発明によれば、楽譜データと、楽譜に基づく楽曲を演奏する音楽データとを適切に対応付けた楽譜情報に基づき、ユーザが所望の位置から楽曲を演奏させることができる楽音生成制御装置を提供することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施の形態にかかる楽音再生システムの構成を示すブロックダイヤグラムである。
【図２】図２は、本実施の形態にかかる端末装置の構成を示すブロックダイヤグラムである。
【図３】図３は、本実施の形態にかかる端末装置の外観を示す略正面図である。
【図４】図４は、本実施の形態にかかるセンタ装置１０の機能を示すブロックダイヤグラムである。
【図５】図５は、本実施の形態にかかる楽譜要素抽出部により実行される処理（直線等検出処理）の例を示すフローチャートである。
【図６】図６は、楽譜データに基づく楽譜の例を示す図である。
【図７】図７は、ステップ５０２（パート線の検出処理）の処理例をより詳細に示すフローチャートである。
【図８】図８は、ステップ５０３（五線の検出処理）の処理例をより詳細に示すフローチャートである。
【図９】図９は、二値化された楽譜においてｙ座標のそれぞれについての画素数を示すグラフである。
【図１０】図１０は、ステップ５０４（小節線の検出処理）の処理例をより詳細に示すフローチャートである。
【図１１】図１１は、本実施の形態にかかる繰り返し記号の検出処理の例を示すフローチャートである。
【図１２】図１２（ａ）〜（ｅ）は、繰り返し記号および対応するシンボルの例を示す図である。
【図１３】図１３（ａ）〜（ｄ）は、繰り返し記号および対応するシンボルの例を示す図である。
【図１４】図１４は、本実施の形態にかかる楽譜要素データファイルの生成処理の例を示すフローチャートである。
【図１５】図１５は、音楽データ分割部により実行される単位音楽データファイル生成処理の例を示すフローチャートである。
【図１６】図１６（ａ）は、ある楽曲の楽譜の構造を概略的に示す図、図１６（ｂ）は、当該楽曲のオリジナル音楽データの構造を概略的に示す図である。
【図１７】図１７は、取得された、重複の無い複数の単位音楽データファイルの例を示す図である。
【図１８】図１８は、本実施の形態にかかる端末装置において実行される処理の例を示すフローチャートである。
【図１９】図１９は、本字嫉視の形態にかかるパネルスイッチ処理の例を示すフローチャートである。
【図２０】図２０は、本実施の形態にかかるソング選択処理の例を示すフローチャートである。
【図２１】図２１は、本実施の形態にかかるスタート・ストップスイッチ処理の例を示すフローチャートである。
【図２２】図２２は、本実施の形態にかかる演奏操作検出処理の例を示すフローチャートである。
【図２３】図２３は、本実施の形態にかかる演奏操作検出処理の例を示すフローチャートである。
【図２４】図２４は、本実施の形態にかかる演奏操作検出処理の例を示すフローチャートである。
【図２５】図２５は、端末装置の表示部の画面上に楽譜が表示された例を示す図である。
【図２６】図２６は、図２２のステップ２２０３をより詳細に示すフローチャートである。
【図２７】図２７は、図２２のステップ２２０３をより詳細に示すフローチャートである。
【図２８】図２８は、図２７のステップ２７０３をより詳細に示すフローチャートである。
【図２９】図２９は、本実施の形態にかかるリピート記号処理の例を示すフローチャートである。
【図３０】図３０は、本実施の形態にかかるソング処理の例を示すフローチャートである。
【図３１】図３１は、ステップ１５０４の処理例をより詳細に示すフローチャートである。
【図３２】図３２は、本実施の形態にかかる画像更新処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の実施の形態について説明する。図１は、本発明の実施の形態にかかる楽音再生システムの構成を示すブロックダイヤグラムである。図１に示すように、本実施の形態にかかる楽音再生システムは、センタ装置１０と、端末装置３０とを有している。本実施の形態にかかるセンタ装置１０は、ＣＰＵ１１、入力部１２、表示部１３、ＲＯＭ１４、ＲＡＭ１５、フラッシュメモリ１６、通信インタフェース（Ｉ／Ｆ）１７およびサウンドシステム１８を有している。センタ装置１０として、たとえば、パーソナルコンピュータやサーバを用いることができる。
【００１２】
本実施の形態において、センタ装置１０は、楽曲を演奏するための音楽データを含む音楽データファイル、楽曲の楽譜の画像データを含む楽譜データファイルを、記憶装置（たとえば、フラッシュメモリ１６など）に格納している。センタ装置１０は、上記音楽データおよび画像データを関連付けるためのデータ（後述する楽譜要素データ）を含むファイルである楽譜要素データファイル生成して、音楽データファイルおよび楽譜データファイルとともに、端末装置３０に送信する。
【００１３】
ＣＰＵ１１は、楽譜データを読み出して、楽譜データ中の五線や小節線などの楽譜要素を抽出する処理、抽出された楽譜要素に基づいて、音楽データを小節毎に分割して、小節単位の音楽データを含む単位音楽データファイルを生成する処理など種々の処理を実行する。入力部１２は、キーボード、マウスなどの入力装置を含む。また、表示部１３は、たとえば液晶表示装置を含む。
【００１４】
ＲＯＭ１４は、楽譜データを読み出して、楽譜データ中の五線や小節線などの楽譜要素を抽出する処理、抽出された楽譜要素に基づいて、音楽データを小節毎に分割して、小節単位の音楽データを含む単位音楽データファイルを生成する処理などの処理プログラムを格納する。ＲＡＭ１５は、ＲＯＭ１４から読み出されたプログラムや、処理の過程で生じたデータを記憶する。また、フラッシュメモリ１６には、種々の楽曲の音楽データを含む音楽データファイルおよび当該楽曲の楽譜データを含む楽譜データファイルが格納される。
【００１５】
通信Ｉ／Ｆ１７は、インターネットなどの外部ネットワークを介したデータ送受信を制御する。サウンドシステム１８は、音源部１９、オーディオ回路２０およびスピーカ２１を有する。
【００１６】
図２は、本実施の形態にかかる端末装置の構成を示すブロックダイヤグラムである。図２に示すように、本実施の形態にかかる端末装置３０は、ＣＰＵ３１、タッチパネル３２、表示部１３、ＲＯＭ３４、ＲＡＭ３５、フラッシュメモリ３６、通信インタフェース（Ｉ／Ｆ）３７およびサウンドシステム３８を有している。端末装置３０として、たとえば、スマートフォンを用いることができる。
【００１７】
本実施の形態において、端末装置３０は、センタ装置１０から音楽データファイル（後述する単位音楽データファイル）、楽譜データファイルおよび楽譜要素データファイルを受信して、これらデータファイルに含まれるデータに基づき、楽譜を表示し、また、指定された小節から楽曲を演奏し、或いは、指定された小節を繰り返す。
【００１８】
ＣＰＵ３１は、表示部１３の画面上に表示すべき楽譜やアイコン等の表示、タッチパネルへの接触の検出、楽譜要素データファイルおよび単位音楽データファイルに基づく楽曲の演奏など、種々の処理を実行する。タッチパネル３２は、液晶表示装置を含む表示部３３に重ねられて配置されている。
【００１９】
ＲＯＭ３４は、表示部１３の画面上に表示すべき楽譜やアイコン等の表示、タッチパネルへの接触の検出、楽譜要素データファイルおよび単位音楽データファイルに基づく楽曲の演奏など、種々の処理プログラムを格納する。ＲＡＭ３５は、ＲＯＭ３４から読み出されたプログラムや、処理の過程で生じたデータを記憶する。フラッシュメモリ３６は、受信した楽譜データファイル、楽譜要素データファイルおよび単位音楽データファイルを格納することができる。通信Ｉ／Ｆ３７は、インターネットなどの外部ネットワークを介したデータ送受信を制御する。サウンドシステム３８は、音源部３９、オーディオ回路４０およびスピーカ４１を有する。
【００２０】
図３は、本実施の形態にかかる端末装置の外観を示す略正面図である。図３に示すように、端末装置３０は、液晶表示装置を含む表示部３３と、タッチパネル３２とが重ねられて配置される。表示部３３の画面上には、たとえば、楽譜（符号３００参照）や、種々のアイコン（符号３１０〜３１２参照）を含む入力部３０１が表示される。使用者は、楽譜３００の所望の位置に触れることにより、楽譜中の小節などを指定することができる。また、使用者は、所望のアイコンに触れることにより、コマンドを入力することが可能である。
【００２１】
以下、センタ装置１０にて実行される処理について説明する。図４は、本実施の形態にかかるセンタ装置１０の機能を示すブロックダイヤグラムである。図４に示すように、センタ装置１０は、楽譜要素抽出部４２、データファイル生成部４３および音楽データ分割部４４を有する。本実施の形態において、センタ装置１０のフラッシュメモリ１６には、楽曲の音楽データであるオリジナル音楽データを含むオリジナル音楽データファイル４００と、当該楽曲の楽譜データであるオリジナル楽譜データを含むオリジナル楽譜データファイル４０１とが格納されている。
【００２２】
オリジナル音楽データファイル４００は、いわゆるスタンダードＭＩＤＩファイル（ＳＭＦ）であり、楽音の発音を含むイベント間の時間間隔を示す時間情報(デルタタイム)、ノートオンイベントやノートオフイベントなどイベントの種別を示す情報などを含む。また、オリジナル楽譜データファイル４０１は、たとえば、ＰＤＦファイルなど既知のフォーマットの画像データファイルである。
【００２３】
楽譜要素抽出部４２は、オリジナル楽譜データファイル４０１を読み出して、ファイル中のデータから、端末装置３０に送信するための表示用楽譜データファイル４０３を生成する。表示用楽譜データファイル４０３は、たとえば、ＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃ）ファイルである。無論、ＰＮＧ以外の他のフォーマットの画像データであっても良い。また、楽譜要素抽出部４２は、オリジナル楽譜データファイル４０１を二値化して、たとえば、ビットマップの二値化データファイル４０２を生成する。
【００２４】
さらに、楽譜要素抽出部４２は、二値化データファイル４０２を参照して、楽譜の構成要素であるパート線、五線、小節線などを抽出する。なお、本実施の形態において、楽譜構成要素は、楽譜中の五線、パート線や小節線など、楽譜中の時間領域やパートを規定するための線、および、繰り返し記号を含む。楽譜構成要素には、楽曲において演奏される楽曲を直接規定する音符は含まれない。
【００２５】
また、楽譜要素抽出部４２は、抽出された楽譜の構成要素の座標データを取得する。デーファイル生成部４３は、楽譜要素抽出部４２にて取得された情報に基づき、楽譜要素の種別およびその位置を特定する情報を含む楽譜要素データファイル４０４を生成する。生成された表示用楽譜データファイル４０３、二値化データファイル４０２、楽譜要素データファイル４０４は、たとえば、フラッシュメモリ１６に格納される。
【００２６】
音楽データ分割部４４は、オリジナル音楽データファイル４００中の音楽データと、楽譜要素データファイル中の楽譜要素データ４０４とに基づいて、音楽データを、小節毎の単位音楽データに分割し、かつ、繰り返し記号などによる重複を排除して、所定の単位音楽データファイル４０５を生成する。単位音楽データファイル４０５も、例えば、フラッシュメモリ１６に格納される。
【００２７】
なお、楽譜要素抽出部４２、データファイル生成部４３および音楽データ分割部４４は、主として、図１に示すＣＰＵ１１により実現される。以下、これらにより実行される処理についてより詳細に説明する。図５は、本実施の形態にかかる楽譜要素抽出部により実行される処理（直線等検出処理）の例を示すフローチャートである。図４に示すように、画像要素抽出部４２は、オリジナル楽譜データを二値化して、生成された二値化データを含む二値化データファイルＲＡＭ１５に格納する（ステップ５０１）。たとえば、二値化データはビットマップデータである。なお、オリジナル画像データファイルが既に二値化データである場合には、ステップ５０１は省略される。
【００２８】
次いで、楽譜要素抽出部４２は、二値化データからパート線を検出する（ステップ５０２）。パート線は、パート垂直線とも称されるものである。図６は、楽譜データに基づく楽譜の例を示す図である。パート線とは、パート線で結ばれたパートは同時に演奏することを示すものであり、楽譜の段を規定するものである。通常、パート線は、楽譜の左端に位置している。図６において、符号６０１に示す線がパート線である。この例では、いわゆるパート線により大譜表が画定されている。いわゆるスコア（総譜）では、複数のパートの五線の左端が、パート線により連結されることになる。
【００２９】
図７は、ステップ５０２（パート線の検出処理）の処理例をより詳細に示すフローチャートである。図７に示すように、楽譜要素抽出部４２は、楽譜の画像中、左端から所定の範囲の領域において、所定値より多く連続する垂直線を検出する（ステップ７０１）。垂直線が検出された場合には（ステップ７０２でＹｅｓ）、楽譜要素抽出部４２は、垂直線に相当する画素群を特定し（ステップ７０３）、さらに、見出された垂直線から下方に位置する画素を参照して、所定値より多く連続する別の垂直線を検出する（ステップ７０４）。
【００３０】
当該別の垂直線が検出された場合には（ステップ７０５でＹｅｓ）、楽譜要素抽出部４２は、当該別の垂直線に相当する画素群を特定する（ステップ７０６）。なお、楽譜要素抽出部４２は、上記画素群の位置情報をＲＡＭ１５に記憶しておくことにより、画素群を特定することができる。楽譜要素抽出部４２は、楽譜の画像中、下端まで垂直線の検索が終了したかを判断する（ステップ７０７）。ステップ７０７でＮｏと判断された場合には、ステップ７０４に戻る。その一方、ステップ７０７でＹｅｓと判断された場合には、楽譜要素抽出部４２は、検出された垂直線の位置情報（座標）をＲＡＭ１５に格納し（ステップ７０８）、その後、パート線の検出処理を終了する。
【００３１】
パート線の検出処理においては、図６において、左端に位置する垂直線であるパート線（符号６０１が検出される）。また、検出された垂直線（符号６０１参照）から下方（符号６１９参照）に位置する他の垂直線（図６においては図示せず）が検出されることになる。
【００３２】
パート線の検出処理が終了すると、楽譜要素抽出部４２は、楽譜中の五線を検出する（ステップ５０３）。図８は、ステップ５０３（五線の検出処理）の処理例をより詳細に示すフローチャートである。図８に示すように、楽譜要素抽出部４２は、垂直方向においてパート線が位置する範囲を特定する（ステップ８０１）。次いで、楽譜要素抽出部４２は、ステップ８０１で特定された範囲で、水平方向における黒点に相当する画素数をカウントする（ステップ８０２）。楽譜要素抽出部４２は、パート線が位置する全ての範囲で画素数のカウントが終了したかを判断する（ステップ８０３）。ステップ８０３でＮｏと判断された場合には、ステップ８０２に戻る。
【００３３】
ステップ８０２においては、パート線が位置する範囲で、ｙ軸方向（垂直方向）の座標（ｙ座標）ごとに、同一のｙ座標を有する画素のそれぞれの値（画素値）が参照され、黒点を示す値であれば、カウント値がインクリメントされる。このようにして、パート線が位置するｙ座標のそれぞれについて、横方向（ｘ軸方向）の黒点に相当する画素数がカウント値として取得される。図９は、ｙ座標のそれぞれについての画素数を示すグラフである。図９において、横軸は、ｙ軸方向（垂直方向）の位置、縦軸は、画素数（カウント値）を示している。
【００３４】
図６から理解できるように、楽譜では、五線（符号６０２、６０３）を構成する線（第一線〜第五線）の位置において、水平方向に直線が延びる。したがって、その位置における画素数（カウント値）は、他の位置と比較して顕著に大きい。図９の例では、符号９０１〜９０５に示すように、一定間隔の５つの位置のカウント値が、他の位置でのカウント値（たとえば、符号９１０、９１１参照）と比較して顕著に大きい。本実施の形態においては、このように一定間隔で５つのまとまりで位置する、カウント値が顕著に大きい位置を見出し、この位置を五線の位置であると判断する。このような五線の位置を判定するために、ステップ８０４以下の処理が実行される。
【００３５】
楽譜要素抽出部４２は、カウント値の最大値（カウント最大値）より所定割合（たとえば、２０パーセント）より小さいカウント値を示す位置を、五線の候補位置から除外する（ステップ８０４）。次いで、楽譜要素抽出部４２は、カウント値の極大値を見出して、極大値を示す位置およびその周辺所定範囲の位置をマージする（ステップ８０５）。ステップ８０５においては、前記周辺の所定範囲を同一位置とみなして、所定範囲の位置についても見いだされた極大値を与えれば良い。また、楽譜要素抽出部４２は、カウント値の最大偏差σを算出し、その所定倍（たとえば３倍：３σ）以下のカウント値を示す位置を、五線の候補位置から除外する（ステップ８０６）。楽譜要素抽出部４２は、候補位置から除外された位置を除き、所定間隔で位置する５つのカウント値を特定する（ステップ８０７）。この５つの位置が五線位置となる。楽譜要素抽出部４２は、当該五線位置の情報をＲＡＭ１５に格納する（ステップ８０８）。
【００３６】
五線の検出処理が終了すると、楽譜要素抽出部４２は、楽譜中の小節線を検出する（ステップ５０４）。図１０は、ステップ５０４（小節線の検出処理）の処理例をより詳細に示すフローチャートである。小節線は、ある小節と次の小節とを区切るための、五線上、或いは、パート線と同じ長さでの垂直線である（図６の符号６０４〜６０６参照）。図１０に示すように、楽譜要素抽出部４２は、まず、五線譜の線上或いは線間に配置された音符を検出する（符号１０１０参照）。
【００３７】
より詳細には、楽譜要素抽出部４２は、垂直方向において、パート線およびその上下所定範囲を含む、長方形の領域を特定する（ステップ１００１）。特定された領域は、音符が配置される可能性がある領域にほぼ対応する。次いで、五線を構成する線の間隔に一致する大きさの楕円形を検出する（ステップ１００２）。ステップ１００２においては、たとえば、検出された楕円形の中心位置の座標がＲＡＭ１５に格納される。楽譜要素抽出部４２は、全てのパート線に関して、ステップ１００２が実行されたかを判断する（ステップ１００３）。ステップ１００３でＮｏと判断された場合には、ステップ１００２に戻り、次のパート線について特定された領域について、音符のタマの位置が検出される。
【００３８】
ステップ１００３でＹｅｓと判断された場合には、楽譜要素抽出部４２は、上記パート線およびその上下所定の範囲を含む領域において、検出された音符に対応する楕円形と所定距離以上離間し、かつ、パート線と近似する長さを有する垂直線を見出す（ステップ１００４）。楽譜要素抽出部４２は、検出された垂直線の情報を、ＲＡＭ１５に格納する（ステップ１００５）。楽譜要素抽出部４２は、全てのパート線に関して、ステップ１００４、１００５が実行されたかを判断する（ステップ１００６）。ステップ１００６でＮｏと判断された場合には、ステップ１００４に戻り、次のパート線について特定された領域について、同様の処理が実行される。ステップ１００６でＹｅｓと判断された場合には、小節線の検出処理を終了する。
【００３９】
小節線の検出（図５のステップ５０４）が終了すると、楽譜要素抽出部４２は、繰り返し記号を検出する。図１１は、本実施の形態にかかる繰り返し記号の検出処理の例を示すフローチャートである。図１１に示すように、楽譜要素検出部４２は、ＲＡＭ１５に格納された二値化された楽譜データを取得する（ステップ１１０１）。次いで、楽譜要素検出部４２は、検出対象となる繰り返し記号を選択する。繰り返し記号（反復記号）としては、図１２、図１３に示すように、繰り返しの先頭記号（符号１２０１）、繰り返しの後端記号（符号１２１１）、１番カッコ（符号１２３１）、２番カッコ（符号１２４１）、トゥコーダ（符号１３０１）、ヴィーデ或いはコーダマーク（符号１３１１）、セーニョ（符号１３２１）、ダルセーニョ（符号１３３１）、ダカーポ（図示せず）などが含まれる。これら繰り返し記号の図形を含む画像データが、ＲＡＭ１５に予め格納され、ステップ１１０２においては、楽譜要素抽出部４２は、所定の記号の画像データを読み出せば良い。
【００４０】
次いで、楽譜要素抽出部４２は、記号のサイズを五線の幅に基づいて正規化する（ステップ１１０３）。次いで、楽譜要素抽出部４２は、記号と楽譜データの所定のエリアとの一致係数（相関値）を算出する（ステップ１１０４）。たとえば、記号の画像データの画素と、所定のエリアの画像データの画素とを比較して、画素値が一致した場合には、一致係数をインクリメントして、最終的な一致係数を相関値とする。楽譜要素抽出部４２は、楽譜データにおいて、エリアをシフトすることで、全てのエリアについての相関値を算出する。楽譜要素抽出部４２は、相関値が最大となるエリアを特定し（ステップ１１０５）、当該エリアの画素データを取り出す（ステップ１１０６）。
【００４１】
次いで、楽譜要素抽出部４２は、取り出された画像データの画素と、楽譜データにおける所定のエリアの画像データの画素とを比較して相関値を算出する（ステップ１１０７）。ステップ１１０５で検出されたエリアに存在する繰り返し記号が、この楽譜の中で用いられている記号であるため、同一の記号をより精度良く検出するために、ステップ１１０７において、検出されたエリアの画像データを用いて、記号を再度検出している。楽譜要素抽出部４２は、相関値が一定の閾値より大きなエリアを特定する（ステップ１１０８）。その後、楽譜要素抽出部４２は、楽譜データにおいて、特定されたエリアに、繰り返し記号に対応する所定のシンボルを描画する（ステップ１１０９）。楽譜要素抽出部４２は、全ての繰り返し記号について処理を終了したかを判断する（ステップ１１１０）。ステップ１１１０でＹｅｓと判断された場合には、処理を終了し、ステップ１１１０でＮｏと判断された場合には、ステップ１１０２に戻る。
【００４２】
以下、繰り返し記号に対応するシンボルについて説明する。図１２（ａ）〜（ｅ）、図１３（ａ）〜（ｄ）において、右側に記載された繰り返し記号（符号１２００〜１２４０、１３００〜１３３０参照）に対応するシンボルを左側に示す（符号１２０１〜１２４１、１３０１〜１３３１参照）。繰り返しの先頭記号１２０１に対応するシンボル１２００は、所定数の画素から構成されている。ここで、上側２ドット（符号１２０２参照）は、
繰り返しの先頭記号、繰り返しの後端記号、１番カッコ、２番カッコを表すために用いられ、下側２ドット（符号１２０３参照）は、トゥコーダ、コーダマーク、セーニョ、ダルセーニョ、ダカーポを表すために用いられる。繰り返しの先頭記号と後端記号とは、第１階層の上側において反対向きに黒の画素を配置することで区別される（符号１２００、１２１０、１２２０参照）。また、繰り返しのカッコは、第１階層の下側において反対向きに黒の画素を配置することで区別される（符号１２３０、１２４０参照）。
【００４３】
また、コーダへの移行の指示（トゥコーダ）およびコーダは、第２階層の下側において反対向きに黒の画素を配置することで区別され（符号１３００，１３１０参照）、セーニョおよびダルセーニョは、第２階層の上側において反対向きに黒の画素を配置することで区別される。
【００４４】
ステップ１１０９においては、上記所定数の画素から構成されるシンボルが、二値化された楽譜データ中、検出したエリア或いはその近傍に描画される。シンボルは、後述する画素要素データファイルを作成する際に参照される。なお、本実施の形態においては、繰り返し記号を検出し、二値化された楽譜データ中、当該繰り返し記号が検出された位置の近傍に、対応するシンボルを配置している。しかしながら、この手法に限定されるものではなく、繰り返し記号を検出すると、その種別および位置情報をＲＡＭ１５に格納しても良い。
【００４５】
繰り返し記号の検出（図５のステップ５０５）が終了すると、データファイル生成部４３は、ステップ５０２〜５０５で得られた情報に基づき、楽譜要素データファイルを生成する（ステップ５０６）。図１４は、本実施の形態にかかる楽譜要素データファイルの生成処理の例を示すフローチャートである。図１４に示すように、データファイル生成部４３は、ＲＡＭ１５に格納された五線の位置情報、パート線および小節線の位置情報を、ＲＡＭ１５中の楽譜要素データファイルに、所定の順序および形式で格納する（ステップ１４０１、１４０２）。次いで、データファイル生成部４３は、パート線の位置、小節線の位置、および、五線の位置に基づいて、小節番号と、当該小節番号を有する小節の位置とを対応付けて、ＲＡＭ１５中の楽譜要素データファイルに格納する（ステップ１４０３）。さらに、データファイル生成部４３は、パート線および小節線のそれぞれの近傍に、繰り返し記号のシンボルが存在するかを判断する。シンボルが存在する場合には、シンボルに対応付けられた繰り返し記号の種別、および、その位置情報（たとえば、繰り返し記号が位置している小節番号、および、繰り返し記号に隣接するパート線或いは小節線を示す情報）を、ＲＡＭ１５中の楽譜要素データファイルに格納する（ステップ１４０４）。このようにして、楽譜に含まれる五線、パート線、小節線、繰り返し記号、および、小節の位置を含む楽譜要素の情報を格納した楽譜要素データファイルを生成することができる。さらに、楽譜が複数のパートを含む場合には、楽譜要素ファイルにおいて、五線の位置とパート（音色）とを対応させた情報を格納するのが望ましい。
【００４６】
音楽データ分割部４４は、オリジナル音楽データファイルを、小節単位のデータファイル（単位音楽データファイル）に分割し、かつ、楽譜要素データファイルを参照して、繰り返し記号に基づき重複する小節を特定して、重複する単位音楽データファイルの一方を削除する。図１５は、音楽データ分割部により実行される単位音楽データファイル生成処理の例を示すフローチャートである。図１５に示すように、音楽データ分割部４４は、フラッシュメモリ１６に格納されたオリジナル音楽データファイルを取得する（ステップ１５０１）。オリジナル音楽データファイルは、楽音の発音（ノートオンイベント）を含むイベント間の時間間隔を示す時間情報(デルタタイム)、ノートオンイベントを含むイベントを示す情報のほか、時間の単位を示す情報（単位時間が４分音符をどれだけ分解したかを示す分解能、たとえば、２４０の分解能）や、楽曲の拍子を示す情報が含まれる。ノートオンイベントとノートオフイベントとの間の時間情報により、ノートオンにかかる音符の長さがわかる。
【００４７】
音楽データ分割部４４は、オリジナル音楽データにおいて、楽曲の開始部分から、イベントを示す情報および時間情報を参照して、上記分解能に基づき、音符の長さを算出し（ステップ１５０２）、１つのファイル中に１小節分のイベントを示す情報および時間情報を含む単位音楽データファイルを生成する（ステップ１５０３）。生成された単位音楽データファイルは、ＲＡＭ１５に格納される。次いで、音楽データ分割部４４は、楽譜要素データファイルに含まれる繰り返し記号に関する情報（繰り返し記号の種別およびその位置情報）に基づき、重複する単位音楽データファイルを削除する（ステップ１５０４）。
【００４８】
図１６（ａ）は、ある楽曲の楽譜の構造を概略的に示す図、図１６（ｂ）は、当該楽曲のオリジナル音楽データの構造を概略的に示す図である。図１６（ａ）および図１６（ｂ）において、括弧内の数字は小節番号を示す。また、図１６（ｂ）において、小節番号の前に付された数字は、単位音楽データファイルのファイル番号である。ファイル番号は、たとえば、図１５のステップ１５０３においてファイルが生成されるときに、音楽データ分割部４４が与えれば良い。たとえば、図１６（ｂ）における先頭の単位音楽データファイル（符号１６２１参照）は、ファイル番号が１番であり、括弧内に示すように第１小節に対応することが示されている。
【００４９】
図１６（ａ）に示すように、この楽曲では、第５小節（符号１６０５）の先頭に繰り返しの先頭記号およびセーニョがあり、第８小節（符号１６０８）の先頭に１番カッコ、後端に繰り返しの後端記号がある。第９小節（符号１６０９）の先頭には２番カッコが存在する。また、第１２小節（符号１６１２）の先頭には、トゥコーダ、第１３小節（符号１６１３）の後端にはダルセーニョ、第１４小節（符号１６１４）の先頭には、コーダが存在する。オリジナル音楽データファイルから小節単位で分割された単位音楽データファイルは、図１６（ｂ）に示すように、２８個存在する。繰り返しが存在するため、第５小節に相当する単位音楽データファイルが複数回出現する（符号１６２５、１６２９、１６３７、２６４１参照）。
【００５０】
図３１は、図１５のステップ１５０４の処理例をより詳細に示すフローチャートである。図３１に示すように、音楽データ分割部４４は、ファイル番号を示すパラメータを「１」に初期化し（ステップ３１０１）、ファイル番号が示す単位音楽データファイルについて、繰り返し記号を参照して、楽譜中の小節番号を算出する（ステップ３１０２）。小節番号は、単位音楽データファイルのファイル番号に対応付けてＲＡＭ１５に格納される（ステップ３１０３）。音楽データ分割部４４は、最後のファイル番号を有するファイルについて、小節番号の算出が終了したかを判断する（ステップ３１０４）。ステップ３１０４でＮｏと判断された場合には、音楽データ分割部４４は、ファイル番号をインクリメントして（ステップ３１０５）、ステップ３１０２に戻る。
【００５１】
ステップ３１０４でＹｅｓと判断された場合には、音楽データ分割部４４は、再度、ファイル番号を「１」に初期化して（ステップ３１０６）、ファイル番号が示す音楽データファイルに対応付けられた小節番号が、すでに出現しているかを判断する（ステップ３１０７）。ステップ３１０７でＹｅｓと判断された場合には、当該重複する小節番号を有する単位音楽データファイルを排除する（ステップ３１０８）。音楽データ分割部４４は、最後のファイル番号を有するファイルについて処理が終了したかを判断する（ステップ３１０９）。ステップ３１０９でＮｏと判断された場合には、音楽データ分割部４４は、ファイル番号をインクリメントして（ステップ３１１０）、ステップ３１０７に戻る。このような処理により、排除されなかった単位音楽データファイルが、重複のない最終的な単位音楽データファイルとなる。音楽データ分割部４４は、排除されなかった単位音楽データファイルを、最終的な単位音楽データファイルとして、小節番号と対応付けてＲＡＭ１５に格納する（ステップ３１１１）。
【００５２】
図１６に示す例では、音楽データ分割部４４は、楽譜要素データファイルを参照して、第５小節〜第７小節が繰り返されることに基づき、ファイル番号が第９番〜第１１番の単位音楽データファイルは、繰り返しの第５小節〜第７小節であると判断し、これにより、第９番〜第１１番の単位音楽データファイルを除外すべきであると判断する。同様に、楽譜要素データファイル中のダルセーニョにより第１３小節から第５小節に戻ることが検出され、上述した繰り返し記号および第１２小節のトゥコーダおよび第１４小節のコーダも加味して、第１７番〜第２６番の単位音楽データファイルが重複していると判断し、これらを除外すべきであると判断する。
【００５３】
このようにして、音楽データ分割部４４は、図１７に示すように、重複の無い、１５個の最終的な単位音楽データファイルを得ることができる。音楽データ分割部４４は、また、単位音楽データファイルの各々に、ファイルの順序にしたがって小節番号を付加する。たとえば、符号１７０１、１７０５で示すものが、単位音楽データファイルを示している。重複を排除した結果、単位音楽データファイルは、図１６（ａ）に示すような楽譜の小節番号と対応するファイルのみから構成され、また、単位音楽データファイルの順序も楽譜の小節番号の順序と一致する。
【００５４】
以下に詳述するように、単位音楽データファイルを再生して、楽音を発音させる際には、楽譜要素データファイル中の繰り返し記号が参照され、繰り返し記号にしたがって、再生すべき単位音楽データファイルが特定され得る。
【００５５】
以下、本実施の形態にかかる端末装置における処理について説明する。図１８は、本実施の形態にかかる端末装置において実行される処理の例を示すフローチャートである。図１８に示すように、端末装置３０のＣＰＵ３１は、端末装置３０の電源が投入されると、ＲＡＭ３５中のデータや、表示部３３の表示画面のクリアを含むイニシャル処理を実行する（ステップ１８０１）。
【００５６】
イニシャル処理（ステップ１８０１）が終了すると、ＣＰＵ３１は、タッチパネル３２上のスイッチのそれぞれの操作を検出し、検出された操作にしたがった処理を実行するパネルスイッチ処理を実行する（ステップ１８０２）。たとえば、表示部３３の画面上には、種々のアイコン（図３の符号３０１参照）が表示され、ユーザがアイコンに触れることにより、ＣＰＵ３１によりタッチパネル３２上のスイッチ操作が検出される。図１９は、本実施の形態にかかるパネルスイッチ処理の例を示すフローチャートである。
【００５７】
図１９に示すように、パネルスイッチ処理には、ソング選択処理（ステップ１９０１）、スタート・ストップスイッチ処理（ステップ１９０２）、他のパネルスイッチ処理（ステップ１９０３）が含まれる。図２０は、本実施の形態にかかるソング選択処理の例を示すフローチャートである。図２０に示すように、ＣＰＵ３１は、タッチパネル３２においてソングボタンに対応する位置がオンされたかを判断する（ステップ２００１）。ステップ２００１でＮｏと判断された場合には、ソング選択処理が終了される。
【００５８】
ステップ２００１でＹｅｓと判断された場合には、ＣＰＵ３１は、通信Ｉ／Ｆ３７に、センタ装置１０に対するソングリスト送信依頼の送信を指示する（ステップ２００２）。これに応答して、通信Ｉ／Ｆ３７は、センタ装置１０に対してソングリスト送信依頼を送信し、センタ装置１０からソングリストを受信する。ＣＰＵ３１は、受理したソングリストを表示部３３の画面上に表示する（ステップ２００３）。ユーザは表示部３３において表示されたカーソルボタンをタッチすることで、所望のソング名を指定することができる。ＣＰＵ３１は、表示部３３の画面上に表示されたソングリストにおいてカーソルが位置するソング名を強調表示する（ステップ２００４）。
【００５９】
ＣＰＵ３１は、表示部３３において表示された決定スイッチがオンされたことを検出すると（ステップ２００５でＹｅｓ）、通信Ｉ／Ｆ３７に、センタ装置１０に対する決定されたソング名の楽曲の表示用楽譜データファイル、一連の単位音楽データファイルおよび楽譜要素データファイルの送信依頼の送信を指示する（ステップ２００６）。これに応答して、通信Ｉ／Ｆ３７は、センタ装置１０に、所定の楽曲の表示用楽譜データファイル、一連の単位音楽データファイルおよび楽譜要素データファイルの送信依頼を送信し、センタ装置１０から、当該楽曲の表示用楽譜データファイル、一連の単位音楽データファイルおよび楽譜要素データファイルを受理する（ステップ２００７）。ＣＰＵ３１は、受理した表示用楽譜データファイル、一連の単位音楽データファイルおよび楽譜要素データファイルを、フラッシュメモリ３６に格納する（ステップ２００７）。
【００６０】
次いで、ＣＰＵ３１は、楽譜データファイルに基づいて、表示部３３の画面上に楽譜を表示する（ステップ２００８）また、ＣＰＵ３１は、楽譜要素データファイル中の垂直線および小節線の座標に基づいて、楽譜において先頭小節に対応する領域を強調表示する（ステップ２００９）。強調表示として、たとえば、その部分だけ他の色（赤色）の半透明表示とすれば良い。
【００６１】
次に、スタート・ストップスイッチ処理について説明する。図２１は、本実施の形態にかかるスタート・ストップスイッチ処理の例を示すフローチャートである。図２１に示すように、ＣＰＵ３１は、表示部３３において表示されたスタート・ストップスイッチの操作があったかを判断する（ステップ２１０１）。ステップ２１０１でＮｏと判断された場合には、スタート・ストップスイッチ処理を終了する。
【００６２】
ステップ２１０１でＹｅｓと判断された場合には、ＣＰＵ３１は、ＲＡＭ３５に格納されたスタートフラグＳＴＦを反転させ（ステップ２１０２）、スタートフラグＳＴＦが「１」であるかを判断する（ステップ２１０３）。ステップ２１０３でＹｅｓと判断された場合には、ＣＰＵ３１は、楽譜要素データファイルを参照して、所定の単位音楽データファイルを特定する（ステップ２１０４）。たとえば、最初のスタート・ストップスイッチのオンであれば、ＣＰＵ３１は、先頭の単位音楽データファイルを所定の単位音楽データファイルとして特定する。或いは、スタート・ストップスイッチの操作により楽曲の再生が停止されている状態であれば、ＣＰＵ３１は、停止した位置に対応する単位音楽データファイルを所定単位音楽データファイルとして特定する。
【００６３】
次いで、ＣＰＵ３１は、特定された単位音楽データファイル中、所定アドレスのデータレコードを取得する（ステップ２１０５）。取得されたデータレコードは、たとえば、ＲＡＭ３５に格納される。たとえば、最初のスタート・ストップスイッチのオンであれば、ＣＰＵ３１は、先頭アドレスのデータレコードを取得する。或いは、スタート・ストップスイッチの操作により楽曲の再生が停止されている状態であれば、ＣＰＵ３１は、停止した位置に対応するデータレコードを取得する。
【００６４】
また、ＣＰＵ３１は、タイマインタラプトを開始する（ステップ２１０６）。タイマインタラプトが解除されることにより、所定の時間間隔でタイマインタラプト処理が実行され、ＣＰＵ３１の内部に設けられたタイマがインクリメントされる。なお、ステップ２１０３でＮｏと判断された場合、つまり、ＳＴＦが「０」である場合には、ＣＰＵ３１は、タイマインタラプトを停止する（ステップ２１０７）。
【００６５】
その後、ＣＰＵ３１は、他のパネルスイッチ処理を実行する（ステップ１９０３）。他のパネルスイッチ処理には、テンポスイッチの操作によるテンポデータの設定およびテンポデータのＲＡＭ２３への格納などが含まれる。
【００６６】
パネルスイッチ処理（ステップ１８０２）が終了すると、ＣＰＵ３１は、画像更新処理を実行する（ステップ１８０３）。画像更新処理においては、ＣＰＵ３１は、楽曲の再生が進行しているときに、表示された楽譜において、現在演奏中の小節の領域を強調表示し、或いは、表示部３３の画面上に表示する楽譜の部分を変更する。画像更新処理については後に再度説明する。
【００６７】
画像更新処理（ステップ１８０３）が終了すると、ＣＰＵ３１は、演奏操作検出処理を実行する（ステップ１８０４）。図２２〜図２４は、本実施の形態にかかる演奏操作検出処理の例を示すフローチャートである。図２２に示すように、ＣＰＵ３１は、表示部３３において楽譜が表示された領域での操作（ユーザによる接触）があったかを判断する（ステップ２２０１）。図２５は、端末装置の表示部の画面上に楽譜が表示された例を示す図である。図２５において、たとえば、破線２５０１の内側の領域が、楽譜が表示された領域となる。
【００６８】
ステップ２２０１でＹｅｓと判断された場合には、ＣＰＵ３１は、ユーザにより接触された位置の座標を取得する（ステップ２２０２）。ステップ２２０２では位置の座標のほか、操作回数、操作時刻、操作時間（接触された時間長）および前回操作からの差分値を得て、これらをＲＡＭ３５に格納する。次いで、ＣＰＵ３１は、ユーザが接触した位置の座標および楽譜要素データファイルに基づいて、接触した位置に対応する小節番号を取得する（ステップ２２０３）。
【００６９】
図２６、２７は、図２２のステップ２２０３をより詳細に示すフローチャートである。図２６に示すように、ＣＰＵ３１は、ＲＡＭ３５に格納された、操作された位置の座標、操作回数、操作時刻、操作時間（接触された時間長）および前回操作からの差分値を取得する。次いで、ＣＰＵ３１は、操作された位置が、小節線の付近であるかを判断する（ステップ２６０２）。ここでは、操作された位置が、小節線を含む前後左右所定の長方形の領域内であるかを判断すれば良い。
【００７０】
ステップ２６０２でＹｅｓと判断された場合には、ＣＰＵ３１は、楽譜要素データファイルを参照して、操作された位置の付近にある小節線について、リピート記号が存在するかを判断する（ステップ２６０３）。ステップ２６０３でＹｅｓと判断された場合には、ＣＰＵ３１は、ＲＡＭ３５中のリピートフラグを「１」にセットするとともに、リピート記号の情報をＲＡＭ３５に格納する（ステップ２６０４）。
【００７１】
次いで、ＣＰＵ３１は、操作された位置が、小節の範囲、つまり、五線と小節線とで囲まれた領域内であるかを判断する（ステップ２６０５）。ステップ２６０５でＹｅｓと判断された場合には、ＣＰＵ３１は、楽譜要素データファイルを参照して、操作された位置に対応する小節番号を取得する（ステップ２６０６）。また、ＣＰＵ３１は、操作時間が、所定の閾値Ｔｈ１より大きいかを判断する（ステップ２６０７）。ステップ２６０７でＹｅｓと判断された場合には、ＣＰＵ３１は、ミュートフラグを「１」にセットする（ステップ２６０８）。ステップ２６０８において、ミュートフラグのセットに加えて、ＣＰＵ３１は、楽譜要素データファイル中のパート線および五線の位置を参照して、表示されている楽譜が複数パートから構成される場合には、操作された位置に対応するパートをミュートパートとして、ＲＡＭ３５にパートを示す情報を格納する。パートを示す情報として、ミュートすべき五線の位置情報を利用することができる。
【００７２】
次いで、ＣＰＵ３１は、今回の操作された位置が、前回の操作位置から所定の範囲内であり、かつ、操作間隔である差分値が所定の閾値Ｔｈ２より小さいかを判断する（ステップ２７０１）。ステップ２７０１でＹｅｓと判断された場合には、操作回数に、今回の操作回数を加算して、新たな操作回数をＲＡＭ３５に格納する（ステップ２７０２）。その後、ＣＰＵ３１は、楽譜上のユーザによる操作により次に演奏すべき小節番号を取得する（ステップ２７０３）。
【００７３】
図２８は、図２７のステップ２７０３をより詳細に示すフローチャートである。図２８に示すように、ＣＰＵ３１は、ＲＡＭ３５に格納された繰り返しの完了回数が、繰り返し回数以下であるかを判断する（ステップ２８０１）。ステップ２８０１でＹｅｓと判断された場合には、小節の繰り返しが完了していないことになる。この場合には、ＣＰＵ３１は、繰り返し回数が２以上であるかを判断する（ステップ２８０２）。ステップ２８０２でＹｅｓと判断された場合には、ＣＰＵ３１は、次の小節番号を現在の小節番号と同じ番号としてＲＡＭ３５に格納する（ステップ２８０３）。次いで、ＣＰＵ３１は、ＲＡＭ３５中の完了回数を示すパラメータをインクリメントする（ステップ２８０４）。ステップ２８０１でＮｏと判断された場合、つまり、完了回数が繰り返し回数より多くなった場合には、ＣＰＵ３１は、ＲＡＭ３５に格納された、繰り返し回数を示すパラメータおよび完了回数を示すパラメータを「０」にリセットする（ステップ２８０５）。
【００７４】
ステップ２８０２でＮｏと判断された場合、或いは、ステップ２８０５の後に、ＣＰＵ３１は、ＲＡＭ３５に格納されたリピートフラグが「０」であるかを判断する（ステップ２８０６）。ステップ２８０６でＹｅｓと判断された場合には、ＣＰＵ３１は、次の小節番号を、現在の小節番号に「１」を加えた番号としてＲＡＭ３５に格納する（ステップ２８０７）。ステップ２８０６でＮｏと判断された場合には、リピート記号が存在していることを意味する。したがって、ＣＰＵ３１は、リピート先決定処理を実行する（ステップ２８０８）。リピート先決定処理については後に詳述する。
【００７５】
図２２のステップ２２０３が終了すると、ＣＰＵ３１は、スタートフラグＳＴＦが「１」であるかを判断する（ステップ２２０４）。ステップ２２０４では、現在楽曲が演奏されているかが判断される。ステップ２２０４でＹｅｓと判断された場合には、ＣＰＵ３１は、ＲＡＭ３５中のリピートフラグが「０」であり、かつ、ミュートフラグが「０」であるかを判断する（ステップ２２０５）。ステップ２２０５においては、楽曲が演奏中で表示された楽譜上の操作があったときに、それがパートのミュートや繰り返しの指示でないことが判断されている。
【００７６】
ステップ２２０５でＹｅｓと判断された場合には、さらに、ＲＡＭ３５中の繰り返し回数を示すパラメータが「０」であるかを判断する（ステップ２２０６）。ステップ２２０６でＹｅｓと判断された場合には、ＣＰＵ３１は、単位音楽データファイルのデータレコードのうち、現在発音中の楽音についてノートオフイベントを生成して、音源部３９に指示する（ステップ２２０７）。また、ＣＰＵ３１は、タイマインタラプトを停止する（ステップ２２０８）とともに、スタートフラグＳＴＦを「０」にリセットする（ステップ２２０９）。
【００７７】
ステップ２２０４〜２２０６の何れかでＮｏと判断された場合、或いは、ステップ２２０９が実行された後に、ステップ２３０１に進む。ステップ２３０１において、ＣＰＵ３１は、スタートフラグＳＴＦが「１」で、かつ、ミュートフラグが「１」であるかを判断する（ステップ２３０１）。ステップ２３０１でＹｅｓと判断された場合には、ＣＰＵ３１は、単位音楽データファイルのデータレコードのうち、ミュートパートに対応する音色、音高の楽音についてノートオフイベントを生成して、音源部３９に指示する（ステップ２３０２）。楽譜要素データファイル中のミュートすべき五線の位置情報に基づいて、ミュートすべきパートの音色を決定することができる。
【００７８】
また、ＣＰＵ３１は、次の小節番号は現在の小節番号と不一致であるかを判断する（ステップ２３０３）。ステップ２３０３でＹｅｓと判断された場合には、次の小節番号に対応する単位音楽データファイルを取得する（ステップ２３０４）。その後、取得された単位音楽データファイルの先頭アドレスのデータレコードを取得して、ＲＡＭ３５に格納する（ステップ２３０５）。その後、ＣＰＵ３１はタイマインタラプトを解除する（ステップ２３０６）とともに、スタートフラグＳＴＦを「１」にセットする（ステップ２３０７）。
【００７９】
ステップ２２０１でＮｏと判断された場合には、ＣＰＵ３１は、スタートフラグが「１」であるかを判断する（ステップ２４０１）。ステップ２４０１でＹｅｓと判断された場合には、ＣＰＵ３１は、単位音楽データファイルを参照して、現在発音中の楽音が小節の末尾の楽音であるかを判断する（ステップ２４０２）。ステップ２４０１或いは２４０２でＮｏと判断された場合には、演奏操作検出処理を終了する。
【００８０】
ステップ２４０２でＹｅｓと判断された場合には、ＣＰＵ３１は、楽譜要素データファイルを参照して、次の小節番号を特定する（ステップ２４０３）。後述するように、楽譜要素データファイルにおいて、現在の小節の末尾に関してリピート記号が存在しない場合には、ＣＰＵ３１は、次の小節番号を、現在の小節番号に「１」を加えた番号としてＲＡＭ３５に格納する。また、楽譜要素データファイルにおいて現在の小節の末尾にリピート記号が存在する場合、或いは、現在の小節番号に「１」を加えた次の小節番号を得た場合に、当該次の小節番号に対応する小節の先頭にリピート記号が存在する場合には（ステップ２４０４でＹｅｓ）、ＣＰＵ３１は、リピート先決定処理を実行する（ステップ２４０５）。ステップ２４０４でＮｏと判断された場合或いは、ステップ２４０５の後、ステップ２３０４に進む。
【００８１】
図２９は、本実施の形態にかかるリピート記号処理の例を示すフローチャートである。本実施の形態において、リピート記号には、いわゆる繰り返しの先頭記号および後端記号、並びに、これに関連する番号付きカッコを含む第１群と、ダルセーニョ、ダカーポ、トゥコーダ、ヴィーデ（コーダ）、セーニョを含む第２群とに分けられている。また、第１群および第２群のそれぞれについて、各記号は、開始（Ｓｔａｒｔ）、終端（Ｅｎｄ）、行き先（Ｔｏ）、出発元（Ｆｒｏｍ）という４つの記号種別に対応付けられている。
【００８２】
たとえば、第１群に属するリピート記号は、以下の記号種別と対応付けられる。
【００８３】
繰り返しの先頭記号：開始（Ｓｔａｒｔ）
繰り返しの終端記号：終端（Ｅｎｄ）
番号付きカッコのうち、最終番号以外のカッコ：出発元（Ｆｒｏｍ）
番号付きカッコのうち、最終番号のカッコ：行き先（Ｔｏ）。
【００８４】
また、第２群に属するリピート記号は、以下の記号種別と対応付けられる。
【００８５】
ダカーポ：終端（Ｅｎｄ）
ダルセーニョ：終端（Ｅｎｄ）
曲先頭：開始（Ｓｔａｒｔ）、ただしダカーポが存在する場合のみ
セーニョ：開始（Ｓｔａｒｔ）
ヴィーデ：出発元（Ｆｒｏｍ）
コーダ：行き先（Ｔｏ）。
【００８６】
したがって、楽譜要素データファイルにおいては、小節番号に対応して、リピート記号の属する群（第１群或いは第２群）およびリピート記号の名称および記号種別が含まれる。また、番号付きのカッコについては、上記情報に加えて、リピート指定数（つまり、繰り返し番号に相当する数字）が付加される。
【００８７】
リピート記号処理は、群ごとに実行される。したがって、第１群のリピート記号についてのリピート記号処理、および、第２群のリピート記号についてのリピート記号処理がそれぞれ実行される。図２９に示すように、ＣＰＵ３１は、リピート記号種別を参照する（ステップ２９０１）。リピート記号種別が開始（Ｓｔａｒｔ）である場合には、ＣＰＵ３１は、ＲＡＭ３５中のリピート位置として、現在の小節番号を格納する（ステップ２９０２）。
【００８８】
リピート種別が終端（Ｅｎｄ）である場合には、ＣＰＵ３１は、ＲＡＭ３５中の次の小節番号として、リピート位置の小節番号をセットする（ステップ２９０３）。また、ＣＰＵ３１は、ＲＡＭ３５中のリピート記号に関する繰り返し回数を示すパラメータをインクリメントする（ステップ２９０４）。リピート記号種別が行き先（Ｔｏ）である場合には、処理を終了する。
【００８９】
リピート希望種別が出発元（Ｆｒｏｍ）である場合には、ＣＰＵ３１は、ＲＡＭ３５中の、リピート記号に関する繰り返し回数が、リピート指定数以上であるかを判断する（ステップ２９０５）。ステップ２９０５でＮｏと判断された場合には処理を終了する。その一方、ステップ２９０５でＹｅｓと判断された場合には、ＣＰＵ３１は、楽譜要素データファイル中、リピート記号種別の行き先（Ｔｏ）を示すリピート記号を含む小節を検索する（ステップ２９０６）。なお、ここでは、同じ群に属するリピート記号が検索される。ＣＰＵ３１は、ＲＡＭ３５中の次の小節番号として、検索された小節番号をセットする（ステップ２９０７）。また、ＣＰＵ３１は、リピート記号に関する繰り返し回数を「０」にリセットする（ステップ２９０８）。
【００９０】
演奏操作検出処理（図１８のステップ１８０４）が終了すると、ＣＰＵ３１は、ソング処理を実行する（ステップ１８０５）。図３０は、本実施の形態にかかるソング処理の例を示すフローチャートである。図３０に示すように、ＣＰＵ３１は、単位音楽データファイルのアドレスを歩進する（ステップ３００１）。ステップ３００１においては、アドレスの歩進により、時間を示すデータレコードのアドレスとなるようにする。ＣＰＵ３１は、アドレスが既に単位音楽データファイルの末尾になっているかを判断する（ステップ３００２）。ステップ３００２でＹｅｓと判断された場合には、ＣＰＵ３１は、ＲＡＭ３５に格納された次の小節番号を参照して、当該次の小節番号を有する単位音楽データファイルを取得する（ステップ３００３）。
【００９１】
その後、ＣＰＵ３１は、単位音楽データファイルにおいて、アドレスが示すデータレコードにおける時間情報を参照して（ステップ３００４）、現在時刻が、時間情報に基づく次のイベントの実行タイミングに達しているかを判断する（ステップ３００５）。ステップ３００５でＹｅｓと判断された場合には、ＣＰＵ３１は、ＲＡＭ３５中のミュートフラグが「１」であるかを判断する（ステップ３００６）。ステップ３００６でＹｅｓと判断された場合には、ＣＰＵ３１は、時間情報に後続するデータレコードを参照して、イベントが、ミュートパートの音色に関連するかを判断する（ステップ３００７）。ステップ３００７でＹｅｓと判断された場合には、ソング処理を終了する。
【００９２】
ステップ３００６でＹｅｓ、或いは、ステップ３００７でＮｏと判断された場合には、ＣＰＵ３１は、発音・消音処理を実行する（ステップ３００８）。ステップ３００８において、ＣＰＵ３１は、時間情報に後続するデータレコードを参照して、当該イベントがノートオンイベントであれば、データレコードが示す音色および音高での発音を示すノートオンイベントを生成して、音源部３９に出力する。また、ＣＰＵ３１は、イベントがノートオフイベントであれば、データレコードが示す音色および音高で発音中の楽音を消音するノートオフイベントを参照して、音源部３９に出力する。
【００９３】
ソング処理（ステップ１８０５）が終了すると、音源部３９において音源発音処理が実行される（ステップ１８０６）。音源発音処理では、音源部３９が、ＣＰＵ３１からノートオンイベントを受理すると、ノートオンイベントに含まれる音高および音色情報に基づき、ＲＯＭ３４から所定の音色の波形データを、音高にしたがった速度で読み出して、所定の楽音データを生成する。また、音源部３９が、ＣＰＵ３１からノートオフイベントを受理すると、ノートオフイベントに示される音色および音高の楽音を消音する。
【００９４】
音源発音処理（ステップ１８０６）が終了すると、ＣＰＵ３１は、その他の処理を実行して（ステップ１８０７）、ステップ１８０２に戻る。その他の処理には、通信Ｉ／Ｆ３７を介したセンタ装置１０とのデータ送受信、メモリカードなど外部記憶媒体（図示せず）からのデータの読み出し、外部記憶媒体へのデータ書き込みなどが含まれる。
【００９５】
次に図１８のステップ１８０３の画像更新処理について再度説明する。図３２は、本実施の形態にかかる画像更新処理の例を示すフローチャートである。図３２に示すように、ＣＰＵ３２は、スタートフラグＳＴＦが「１」であるかを判断する（ステップ３２０１）。ステップ３２０１でＮｏと判断された場合には、画像更新処理を終了する。ステップ３２０１でＹｅｓと判断された場合には、ＣＰＵ３１は、ＲＡＭ３５中に次の小節番号が格納されているかを判断する（ステップ３２０２）。ステップ３２０２でＹｅｓと判断された場合には、次の小節番号に対応する小節の領域を強調表示する（ステップ３２０３）。その後、ＣＰＵ３１は、次の小節番号を現在の小節番号として、ＲＡＭ３５に格納するとともに、次の小節番号をクリアする（ステップ３２０４）。
【００９６】
その後、ＣＰＵ３１は、現在強調表示されている小節の領域の位置を取得し（ステップ３２０５）、その位置が、画像中右下の表示範囲内であるかを判断する（ステップ３２０６）。ステップ３２０６では、現在演奏中の小節が、画像中の右下側（末端）に位置しているかが判断される。ステップ３２０６でＹｅｓと判断された場合には、ＣＰＵ３１は、現在強調表示されている小節を先頭として所定小節数に対応する楽譜データファイルの部分を読み出し（ステップ３２０７）、読み出された楽譜データファイルの領域を、表示部３３の画面上に表示する（ステップ３２０８）。
【００９７】
本実施の形態によれば、楽譜要素抽出部４２が、画像データファイル中の楽譜において、当該楽譜の構成要素であるパート線、五線、および、小節線の位置に基づいて、前記楽譜における小節の各々の領域および小節番号を特定する。音楽データ分割部４４は、音楽データファイル中の時間情報に基づいて、音楽データファイルを分割して、小節ごとの、音高を示す情報および時間情報を含む、複数の単位音楽データファイルを生成する。また、音楽データ分割部４４は、画像データファイル中の楽譜において、当該楽譜の構成要素である繰り返し記号の種別およびその位置と、パート線、五線および小節線の位置と、に基づき、繰り返し記号の位置する小節を特定して、複数の単位音楽データファイルから、繰り返しにより重複する単位音楽データファイルを排除して、重複のない最終的な単位音楽データファイルを取得するとともに、最終的な単位音楽データファイルと、小節番号とを対応付けて、ＲＡＭ３５に格納する。したがって、本実施の形態においては、それぞれが楽譜の小節と１対１に対応する単位音楽データファイルを得ることが可能となる。
【００９８】
また、本実施の形態においては、上記画像データファイル、単位音楽データファイル、楽譜要素データファイルとを用いて、ユーザが所望の位置からのデータ再生が可能となる。端末装置３０は、画像データに基づく楽譜の画像を表示する表示部３３、および、表示部３３に重ね合わせて配置され、表示部３３上の操作位置を検出するタッチパネル３２を有する。ＣＰＵ３１は、単位音楽データファイルを読み出して、前記音楽データに基づき、楽音生成手段に対して楽音の発音を指示する。特に、ＣＰＵ３１は、楽譜要素データファイルを参照して、前記位置検出手段により検出された操作位置に対応する、前記表示された楽譜中の位置を特定し、前記楽譜中の位置に対応する単位音楽データファイル中の音楽データに基づき、前記楽音生成手段に対して楽音の発音を指示する。したがって、ユーザが表示部３３に表示された楽譜中、所望の位置を指定することにより、指定された小節の楽曲の再生が可能となる。
【００９９】
また、本実施の形態においては、楽譜要素データファイルが、繰り返し記号の種別および位置を含み、複数の単位音楽データファイルにおいて、前記楽譜における、当該楽譜の構成要素である繰り返し記号の種別および位置に基づいて、繰り返しによる重複が排除されている。したがって、繰り返し記号を含む楽譜の表示、および、その楽譜中の位置にしたがった単位音楽ファイルの指定が可能となる。
【０１００】
本実施の形態においては、ＣＰＵ３１は、単位音楽データファイルの音楽データに基づく発音の指示を完了した後、単位音楽データファイルに対して次の小節に対応する単位音楽データファイルを読み出して、当該読み出された単位音楽データファイル中の音楽データに基づき発音を指示する。これにより、指定された楽譜中の位置にしたがった小節以降の楽曲の再生が実現できる。
【０１０１】
また、本実施の形態においては、ＣＰＵ３１は、タッチパネル３２への操作回数を検出すいて、操作位置および操作回数に基づき、表示された楽譜中の位置およびその操作回数を特定する。また、ＣＰＵ３１は、楽譜中の位置に対応する単位音楽データファイルの音楽データに基づく発音の指示を、操作回数だけ繰り返す。これにより、ユーザは、楽曲における所望の小節の再生を所望の回数だけ繰り返すことが可能となる。
【０１０２】
さらに、本実施の形態においては、ＣＰＵ３１は、操作回数だけ、単位音楽データファイルの音楽データに基づく発音の指示を繰り返した後、単位音楽データファイルに対して次の小節に対応する単位音楽データファイルを読み出して、当該読み出された単位音楽データファイル中の音楽データに基づき発音を指示する。これにより、小節の所定回数の繰り返しの後に、次の小節からの再生を実現することができる。
【０１０３】
本発明は、以上の実施の形態に限定されることはない。たとえば、前記実施の形態においては、センタ装置１０により、表示用楽譜データファイル、楽譜要素データファイル、および、単位音楽データファイルが生成され、生成されたデータファイルは、端末装置３０に送信される。端末装置３０は、受信した表示用楽譜データファイルを表示部３３の画面上に表示するとともに、楽譜要素データファイルを参照しつつ、単位音楽データファイルに基づく楽曲の演奏を実現している。しかしながら、センタ装置１０において、音源部１９を含むサウンドシステム１８を利用して、センタ装置１０が、楽譜要素データファイルを参照しつつ、単位音楽データファイルに基づく楽曲の演奏を行っても良い。同様に、表示用楽譜データファイルに基づく楽譜の表示や小節の指定などをセンタ装置１０において実現することも可能である。
【０１０４】
以上、本発明の実施の形態について詳細に説明したが、本発明の範囲は上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明およびその均等の範囲が、本発明の範囲内に包含される。以下、本出願の願書に最初に添付した特許請求の範囲に記載された発明を付記する。なお、付記に記載した請求項の項番は、本出願の願書に最初に添付した特許請求の範囲の項番に相当する。
【０１０５】
［付記］
請求項１に記載された発明は、楽曲の楽譜の画像データを格納した画像データファイルと、
前記楽曲を構成する一連の楽音について、小節ごとに発音すべき音高を示す情報、および、その発音タイミングを示す時間情報を含む音楽データを格納した複数の単位音楽データファイルと、  前記楽譜におけるパート線、五線および小節線が存在する位置、並びに、小節の各々の領域および小節番号を含む、楽譜要素データを格納した楽譜要素データファイルと、を格納した記憶手段と、
前記画像データに基づく楽譜の画像を表示する表示手段と、
前記表示手段に重ね合わせて配置された、前記表示手段上の操作位置を検出する位置検出手段と、
前記単位音楽データファイルを読み出して、前記音楽データに基づき、楽音生成手段に対して楽音の発音を指示する発音制御手段と、を備え、
前記発音制御手段が、前記楽譜要素データファイルを参照して、前記位置検出手段により検出された操作位置に対応する、前記表示された楽譜中の位置を特定し、前記楽譜中の位置に対応する単位音楽データファイル中の音楽データに基づき、前記楽音生成手段に対して楽音の発音を指示するように構成されたことを特徴とする楽音生成制御装置である。
【０１０６】
請求項２に記載された発明は、前記楽譜要素データファイルが、繰り返し記号の種別および位置を含み、
前記複数の単位音楽データファイルにおいて、前記楽譜における当該楽譜の構成要素である繰り返し記号の種別および位置に基づいて、繰り返しによる重複が排除されている楽音生成制御装置である。
【０１０７】
請求項３に記載された発明は、前記発音制御手段が、前記単位音楽データファイルの音楽データに基づく発音の指示を完了した後、前記単位音楽データファイルに対して次の小節に対応する単位音楽データファイルを読み出して、当該読み出された単位音楽データファイル中の音楽データに基づき発音を指示するように構成された楽音生成制御装置である。
【０１０８】
請求項４に記載された発明は、前記位置検出手段が、前記表示手段上の操作回数を検出し、
前記発音制御手段が、前記操作位置および前記操作回数に基づき、前記表示された楽譜中の位置およびその操作回数を特定し、前記楽譜中の位置に対応する前記単位音楽データファイルの音楽データに基づく発音の指示を、前記操作回数だけ繰り返すように構成された楽音生成制御装置である。
【０１０９】
請求項５に記載された発明は、前記発音制御手段が、前記操作回数だけ、前記単位音楽データファイルの音楽データに基づく発音の指示を繰り返した後、前記単位音楽データファイルに対して次の小節に対応する単位音楽データファイルを読み出して、当該読み出された単位音楽データファイル中の音楽データに基づき発音を指示するように構成された楽音生成制御装置である。
【０１１０】
請求項６に記載された発明は、楽曲の楽譜の画像データを格納した画像データファイルと、
前記楽曲を構成する一連の楽音について、小節ごとに発音すべき音高を示す情報、および、その発音タイミングを示す時間情報を含む音楽データを格納した複数の単位音楽データファイルと、  前記楽譜におけるパート線、五線および小節線が存在する位置、並びに、小節の各々の領域および小節番号を含む、楽譜要素データを格納した楽譜要素データファイルと、
前記画像データに基づく楽譜の画像を表示する表示手段と、
前記表示手段に重ね合わせて配置された、前記表示手段上の操作位置を検出する位置検出手段と、を備えたコンピュータに、
前記単位音楽データファイルを読み出して、前記音楽データに基づき、楽音生成手段に対して楽音の発音を指示する発音制御ステップを実行させ、
前記発音制御ステップが、前記楽譜要素データファイルを参照して、前記位置検出手段により検出された操作位置に対応する、前記表示された楽譜中の位置を特定し、前記楽譜中の位置に対応する単位音楽データファイル中の音楽データに基づき、前記楽音生成手段に対して楽音の発音を指示するように構成されたことを特徴とする楽音生成制御プログラムである。
【符号の説明】
【０１１１】
１０        センタ装置
３０        端末装置
１１、３１  ＣＰＵ
１２        入力部
１３、３３  表示部
１４、３４  ＲＯＭ
１５、３５  ＲＡＭ
１６、３６  フラッシュメモリ
１７、３７  通信Ｉ／Ｆ
１８、３８  サウンドシステム
１９、３９  音源部
２１、４１  スピーカ
３２        タッチパネル
４２        楽譜要素抽出部
４３        データファイル生成部
４４        音楽データ分割部
【図１】
0005742303.tif 000002
【図２】
0005742303.tif 000003
【図３】
0005742303.tif 000004
【図４】
0005742303.tif 000005
【図５】
0005742303.tif 000006
【図６】
0005742303.tif 000007
【図７】
0005742303.tif 000008
【図８】
0005742303.tif 000009
【図９】
0005742303.tif 000010
【図１０】
0005742303.tif 000011
【図１１】
0005742303.tif 000012
【図１２】
0005742303.tif 000013
【図１３】
0005742303.tif 000014
【図１４】
0005742303.tif 000015
【図１５】
0005742303.tif 000016
【図１６】
0005742303.tif 000017
【図１７】
0005742303.tif 000018
【図１８】
0005742303.tif 000019
【図１９】
0005742303.tif 000020
【図２０】
0005742303.tif 000021
【図２１】
0005742303.tif 000022
【図２２】
0005742303.tif 000023
【図２３】
0005742303.tif 000024
【図２４】
0005742303.tif 000025
【図２５】
0005742303.tif 000026
【図２６】
0005742303.tif 000027
【図２７】
0005742303.tif 000028
【図２８】
0005742303.tif 000029
【図２９】
0005742303.tif 000030
【図３０】
0005742303.tif 000031
【図３１】
0005742303.tif 000032
【図３２】
0005742303.tif 000033