(57)【特許請求の範囲】
【請求項１】
楽曲内の練習範囲に含まれる複数の小節夫々において、前記楽曲の演奏の評価基準となる複数種の演奏要素夫々に対してユーザの演奏が予め定められた基準に達成したか否かを表わす達成状況を検知するとともに、前記達成状況に基づいて前記練習範囲内に含まれる複数の小節全てにおいて達成されていないと判定された演奏要素に対応する練習段階を決定する練習段階決定部と、
前記練習段階毎に、前記練習範囲内を複数のフレーズに分割するための分割方法を指定するフレーズ分割方法データと、前記フレーズに含まれる小節のいずれかを繰り返し練習させるための繰返し方法を指定する繰返し方法データとを登録した練習段階テーブルを備え、前記決定された練習段階に対応するフレーズ分割方法及び繰返し方法データを前記練習段階テーブルから抽出し、前記抽出されたフレーズ分割方法データに基づいて前記練習範囲内を複数のフレーズに分割するとともに、前記練習範囲内に含まれる複数の小節夫々の達成状況に基づいて、前記練習範囲内に含まれる複数のフレーズの中からユーザに演奏の練習を行わせるフレーズを決定するとともに、前記抽出された繰り返し方法データに基づき、前記決定されたフレーズを構成している複数の小節をどのような順番で練習させるのかを指定するための練習順番を決定する練習順番決定部と、
前記決定された練習順番にて順次指定される小節により定められた練習区間内で、前記ユーザの演奏を前記対応する演奏要素に基づいて評価する演奏評価部と、
前記評価の結果に基づいて、前記対応する演奏要素でかつ、前記決定された練習段階における前記ユーザの演奏の新たな達成状況を決定し、当該新たな達成状況により、前記達成状況を更新する達成状況更新部と、
を備えることを特徴とする演奏練習装置。
【請求項２】
前記練習順番決定部は、前記決定されたフレーズにおける練習順番に基づいて、前記各練習区間を示す練習開始小節および練習終了小節を表す練習順番データリストを順次生成して記憶し、
前記演奏評価部は、前記練習順番データリストから練習順番データを順次読み出し、当該読み出された練習順番データ中の前記練習開始小節から前記練習終了小節までの間での前記ユーザの演奏を評価する、
ことを特徴とする請求項１に記載の演奏練習装置。
【請求項３】
前記演奏要素は、前記楽曲のフレーズを構成する各音符の音高、前記楽曲のフレーズのリズム、テンポ、および前記楽曲のフレーズの演奏進行の滑らかさを含む、
ことを特徴とする請求項１または２に記載の演奏練習装置。
【請求項４】
前記練習段階に対応する演奏要素が、前記音高、前記リズム、または前記テンポのいずれかである場合、
前記演奏評価部は、前記練習区間に含まれる小節毎に、当該小節内の各音符と前記ユーザの演奏により指示される各音符とを順次比較することにより、前記小節における前記演奏要素毎のユーザの演奏の完成度を算出して小節完成度データとして記憶し、
前記達成状況更新部は、前記練習区間に含まれる小節が、前記各演奏要素のいずれかにおいて完成度が所定の閾値に達していない場合、当該小節と前記完成度に達していない演奏要素に対応する練習段階とを未達成リストに登録し、
前記練習段階決定部は、前記未達成リストに登録された小節と練習段階とに基づいて、前記ユーザの演奏の達成状況を判別し、
前記練習順番決定部は、前記決定された練習段階の演奏要素に対応する前記未達成リストに登録されている小節が含まれるフレーズに基づいて、ユーザに演奏の練習を行わせるフレーズを決定する、
ことを特徴とする請求項３に記載の演奏練習装置。
【請求項５】
前記練習段階に対応する演奏要素が、演奏進行の滑らかさである場合、
前記演奏評価部は、前記練習区間に含まれる小節毎に、当該小節とそれに隣接する小節とを連続して演奏する練習において、前記ユーザの演奏が予め定められた演奏基準を満たすか否かを示す連続正解フラグを前記小節完成度データとして記憶し、
前記達成状況更新部は、前記練習区間に含まれる各小節において、当該小節に対応する前記連続正解フラグが前記演奏基準を満たさないことを示す場合に、前記小節をフレーズ境界位置リストに登録し、
前記練習段階決定部は、前記フレーズ境界位置リストに前記小節のいずれかが登録されている場合に、次の前記練習段階として、前記楽曲の演奏進行の滑らかさに対応する練習段階を決定し、
前記練習順番決定部は、前記フレーズ境界位置リストに登録されている小節をフレーズ境界とするフレーズを決定する、
ことを特徴とする請求項４に記載の演奏練習装置。
【請求項６】
前記練習段階が決定された後、当該決定された練習段階に対応する練習機能を設定する練習機能設定部を更に備える、
ことを特徴とする請求項１ないし５のいずれかに記載の演奏練習装置。
【請求項７】
演奏練習装置が、
楽曲内の練習範囲に含まれる複数の小節夫々において、前記楽曲の演奏の評価基準となる複数種の演奏要素夫々に対してユーザの演奏が予め定められた基準に達成したか否かを表わす達成状況を検知するとともに、前記達成状況に基づいて前記練習範囲内に含まれる複数の小節全てにおいて達成されていないと判定された演奏要素に対応する練習段階を決定し、
前記練習段階毎に、前記練習範囲内を複数のフレーズに分割するための分割方法を指定するフレーズ分割方法データと、前記フレーズに含まれる小節のいずれかを繰り返し練習させるための繰返し方法を指定する繰返し方法データとを登録した練習段階テーブルから、前記決定された練習段階に対応するフレーズ分割方法及び繰返し方法データを抽出し、前記抽出されたフレーズ分割方法データに基づいて前記練習範囲内を複数のフレーズに分割するとともに、前記練習範囲内に含まれる複数の小節夫々の達成状況に基づいて、前記練習範囲内に含まれる複数のフレーズの中からユーザに演奏の練習を行わせるフレーズを決定するとともに、前記抽出された繰り返し方法データに基づいて前記決定されたフレーズを構成している複数の小節をどのような順番で練習させるのかを指定するための練習順番を決定し、
前記決定された練習順番にて順次指定される小節により定められた練習区間内で、前記ユーザの演奏を前記対応する演奏要素に基づいて評価し、
前記評価の結果に基づいて、前記対応する演奏要素でかつ、前記決定された練習段階における前記ユーザの演奏の新たな達成状況を決定し、当該新たな達成状況により、前記達成状況を更新する、演奏練習方法。
【請求項８】
演奏練習装置として用いられるコンピュータに、
楽曲内の練習範囲に含まれる複数の小節夫々において、前記楽曲の演奏の評価基準となる複数種の演奏要素夫々に対してユーザの演奏が予め定められた基準に達成したか否かを表わす達成状況を検知するとともに、前記達成状況に基づいて前記練習範囲内に含まれる複数の小節全てにおいて達成されていないと判定された演奏要素に対応する練習段階を決定するステップと、
前記練習段階毎に、前記練習範囲内を複数のフレーズに分割するための分割方法を指定するフレーズ分割方法データと、前記フレーズに含まれる小節のいずれかを繰り返し練習させるための繰返し方法を指定する繰返し方法データとを登録した練習段階テーブルから、前記決定された練習段階に対応するフレーズ分割方法及び繰返し方法データを抽出し、前記抽出されたフレーズ分割方法データに基づいて前記練習範囲内を複数のフレーズに分割するとともに、前記練習範囲内に含まれる複数の小節夫々の達成状況に基づいて、前記練習範囲内に含まれる複数のフレーズの中からユーザに演奏の練習を行わせるフレーズを決定するとともに、前記抽出された繰り返し方法データに基づいて前記決定されたフレーズを構成している複数の小節をどのような順番で練習させるのかを指定するための練習順番を決定するステップと、
前記決定された練習順番にて順次指定される小節により定められた練習区間内で、前記ユーザの演奏を前記対応する演奏要素に基づいて評価するステップと、
前記評価の結果に基づいて、前記対応する演奏要素でかつ、前記決定された練習段階における前記ユーザの演奏の新たな達成状況を決定し、当該新たな達成状況により、前記達成状況を更新するステップと、
を実行させる演奏練習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲に合わせてユーザに演奏の練習を行わせる演奏練習装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
ユーザが楽器を演奏して、ある弾けるようになりたい区間を練習する時に、ユーザが練習に集中しやすくするため、設定操作の手間を減らせるような自動練習機能が提供されている。
【０００３】
楽器の自動練習機能に関する従来技術として、次のようなものが知られている（例えば特許文献１）。エラー判定によって、予め設定した演奏区間内のエラー数の割合が基準値以上である演奏区間をエラー区間として検出するエラー区間検出手段を備える。エラー区間検出手段でエラー数の割合が基準値以上であることが検出された場合に、見本演奏情報記憶手段上の見本演奏情報の、エラー区間に該当する演奏区間にリピート区間情報を挿入するリピート区間情報挿入手段を備える。そして、リピート指示に応答してリピート区間情報が挿入されている演奏区間をリピート区間として設定し、そのリピート区間の練習指示を繰り返し行う。これにより、見本曲と練習者の演奏との間で、ある程度以上の差異がある区間、例えば小節をエラー区間として見本演奏情報上に記録し、その記録（エラー区間情報）がある区間を、リピート指示に応答して再度練習できるようにする。
【０００４】
他の従来技術として、次のようなものが知られている（例えば特許文献２）。演奏操作に応じて発生する演奏データと、課題曲を形成する各音符を表すノートデータとを比較して得た演奏判定結果を、当該ノートデータ毎に付加した練習データを演奏記録データベース手段に履歴記録しておく。この演奏記録データベース手段に履歴記録された各練習データに含まれる演奏判定結果を参照してノートデータ毎の適正演奏回数および演奏練習回数を集計する。集計された適正演奏回数と演奏練習回数との比から課題曲を形成する各音符毎の演奏完成度を算出する。そして、算出された各音符毎の演奏完成度に応じて楽譜表示される各音符を区別表示する。これにより、演奏技術の完成度をユーザに教示することを可能にする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許４７４３６１５号公報
【特許文献２】特許４４８２８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、楽器の演奏要素としては、楽曲を構成する各音符の音高、各音符の発音列から定まるアクセントのある拍のグループ化された周期的な繰り返しであるリズム、各音符の発音列から定まる拍の周期の速さであるテンポ、さらには楽曲の演奏進行の滑らかさ等がある。このため、楽器の練習においても、音高とリズムを覚える、原曲テンポで弾けるようにする、一曲通して滑らかに演奏を進行できるようになる等のように、演奏要素毎に練習可能とすることが望まれる。
【０００７】
また、教師に師事しながら楽器の練習を行う場合には、演奏要素毎に、最適な練習範囲の長さはそれぞれ異なるものであり、練習範囲内の小節の繰り返しパターン等も異なる。
【０００８】
しかし、上述した従来技術では、演奏要素に即した練習が考慮されておらず、演奏要素によらず、ただ繰り返し練習するだけになっており、間違えやすいところの繰返し回数を増やす程度の制御しか行うことができないという問題点を有していた。
【０００９】
そこで、本発明は、演奏要素毎の練習を可能とするとともに、それぞれの練習の練習範囲長や練習順序の設定を自動化可能として、練習効率を向上させることを目的とする。
【課題を解決するための手段】
【００１０】
態様の一例では、楽曲内の練習範囲に含まれる複数の小節夫々において、前記楽曲の演奏の評価基準となる複数種の演奏要素夫々に対してユーザの演奏が予め定められた基準に達成したか否かを表わす達成状況を検知するとともに、前記達成状況に基づいて前記練習範囲内に含まれる複数の小節全てにおいて達成されていないと判定された演奏要素に対応する練習段階を決定する練習段階決定部と、前記練習段階毎に、前記練習範囲内を複数のフレーズに分割するための分割方法を指定するフレーズ分割方法データと、前記フレーズに含まれる小節のいずれかを繰り返し練習させるための繰返し方法を指定する繰返し方法データとを登録した練習段階テーブルを備え、前記決定された練習段階に対応するフレーズ分割方法及び繰返し方法データを前記練習段階テーブルから抽出し、前記抽出されたフレーズ分割方法データに基づいて前記練習範囲内を複数のフレーズに分割するとともに、前記練習範囲内に含まれる複数の小節夫々の達成状況に基づいて、前記練習範囲内に含まれる複数のフレーズの中からユーザに演奏の練習を行わせるフレーズを決定するとともに、前記抽出された繰り返し方法データに基づいて前記決定されたフレーズを構成している複数の小節をどのような順番で練習させるのかを指定するための練習順番を決定する練習順番決定部と、決定された練習順番にて順次指定される小節により定められた練習区間内で、ユーザの演奏を対応する演奏要素に基づいて評価する演奏評価部と、評価結果に基づいて、対応する演奏要素でかつ、決定された練習段階におけるユーザの演奏の新たな達成状況を決定し、その新たな達成状況により、達成状況を更新する達成状況更新部と、を備える。
【発明の効果】
【００１１】
本発明によれば、演奏要素毎の練習が可能となり、それぞれの練習の練習範囲長や練習順序の設定が自動化されるので、練習効率を向上させることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係る演奏練習装置の機能ブロック図である。
【図２】全体練習範囲とフレーズの例を示す図である。
【図３】ステップ１または２の練習段階でのフレーズ毎の練習順番の例を示す図である。
【図４】ステップ３の練習段階でのフレーズ毎の練習順番の例を示す図である。
【図５】ステップ４の練習段階でのフレーズと練習順番の例を示す図である。
【図６】練習段階テーブルのデータ構成例を示す図である。
【図７】練習順番データのリストのデータ構成例を示す図である。
【図８】小節完成度データのデータ構成例を示す図である。
【図９】演奏練習装置の実施形態のハードウェア構成の一例を示す図である。
【図１０】演奏練習制御処理の全体動作を示すフローチャートである。
【図１１】自動練習設定処理を示すフローチャート（その１）である。
【図１２】自動練習設定処理を示すフローチャート（その２）である
【図１３】全体練習範囲内の達成状況更新処理を示すフローチャートである。
【図１４】練習順番リスト生成処理を示すフローチャートである。
【図１５】演奏評価処理を示すフローチャートである。
【図１６】練習進捗の表示例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
【００１４】
図１は、本発明の実施形態に係る演奏練習装置１００の機能を示すブロック図である。
【００１５】
この演奏練習装置１００は、練習用の楽曲（以下単に「楽曲」と記載する）の演奏データを記憶する機能を備え、これらのうちからユーザが指定した楽曲の演奏データを順次処理して練習を行う機能を備える、電子ピアノ、シンセサイザー、電子ギター、電子サキソフォン、電子バイオリン等の電子楽器にＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）インタフェースを介して接続される。
【００１６】
この演奏練習装置１００は、練習段階決定部１０１、練習順番決定部１０２、演奏評価部１０３、達成状況更新部１０４を備える。この演奏練習装置１００は、小節毎の演奏データを順次入力して自動練習を行うための自動練習繰返し部１０７を備えてよい。また、この演奏練習装置１００は、練習段階テーブル１０５を備えてよい。さらに、この演奏練習装置１００は、練習機能設定部１０６を備えてよい。
【００１７】
練習段階決定部１０１は、例えばユーザにより指定された楽曲内の練習範囲におけるユーザの演奏の達成状況に応じて、楽曲の演奏の評価基準となる演奏要素に対応する練習段階を決定する。達成状況としては、後述する達成状況更新部１０４によって前回の練習段階での練習に対して更新されたものが入力される。
【００１８】
練習の開始時には、達成状況はないため、初期設定された練習段階が決定される。
【００１９】
練習段階に対応付けられる楽器の演奏要素としては例えば、楽曲を構成する各音符の音高、各音符の発音列から定まるアクセントのある拍のグループ化された周期的な繰り返しであるリズム、各音符の発音列から定まる拍の周期の速さであるテンポ、さらには楽曲の演奏進行の滑らかさ等を採用してよい。これらの演奏要素に対応付けられて、練習段階としては例えば、音高練習ステップ（以下「ステップ１」と呼ぶ）、リズム練習ステップ（以下「ステップ２」と呼ぶ）、テンポ練習ステップ（以下「ステップ３」と呼ぶ）、通し練習ステップ（以下「ステップ４」と呼ぶ）を設定してよい。
【００２０】
練習順番決定部１０２は、練習順番決定部１０２で決定された練習段階と、後述する達成状況更新部１０４が出力する達成状況に基づいて、練習範囲内に含まれる複数のフレーズの中からユーザに演奏の練習を行わせるフレーズを決定するとともに、その決定されたフレーズを構成している複数の小節のうち少なくとも１以上の小節をどのような順番で練習させるのかを指定するための練習順番を決定する。そして、練習順番決定部１０２は、例えば自動練習繰返し部１０７に、その決定したフレーズにおける各小節の練習順番に対応する練習区間での楽曲の練習の開始を指示する。
【００２１】
図２（ａ）および（ｂ）は、ユーザが指定した全体練習範囲と練習段階毎に決定されるフレーズの説明図である。図２中の数字は、楽曲の先頭からの小節番号を示す（図２では第１小節から第１６小節までが示されている）。ユーザは、練習の開始時に、楽曲を指定すると共に、その楽曲で弾けるようになりたいと思って練習を行う任意の小節の範囲を図２の全体練習範囲として指定する。図２（ａ）または（ｂ）の例では、第１小節から第１２小節までが、全体練習範囲として指定されている。全体練習範囲の決め方は、手動で決めてもよいし、なんらかの手法に基づいて自動的に決定されてもよい。
【００２２】
また、本実施形態では、連続する複数小節がまとめてフレーズとして管理され、フレーズ毎に練習が実行されその達成状況が確認される。
図２（ａ）の例は、練習段階が前述したステップ１，２，３である場合におけるフレーズの区分け例を示す図であり、３小節ずつまとめてフレーズとして管理されている。第１，２，３小節がフレーズ１、第４，５，６小節がフレーズ２、第７，８，９小節がフレーズ３、第１０，１１，１２小節がフレーズ４である。ステップ１，２，３などのように、音高、リズム、テンポを練習するような段階では、練習区間はあまり長すぎないほうがいいため、１フレーズは３小節程度の長さに固定される。勿論、フレーズの小節数は、ユーザの演奏レベルに応じて、例えば４小節以上に増やしてもよいし、２小節以下に減らしてもよい。
図２（ｂ）は、練習段階が前述したステップ４である場合におけるフレーズの区分け例を示す図である。ステップ４の練習では、楽曲の演奏進行の滑らかさに主眼が置かれる。このため、全体練習範囲中で上手に演奏できる区間は多くの小節が含まれても１つのフレーズとしてしまってよい。逆に、上手に演奏できずにすぐにつかえてしまうような区間では何回も練習できるように含まれる小節数が少なくても１つのフレーズとしたほうがよい場合もある。そこで、本実施形態では、各小節に、その小節を隣接する小節との間で連続して演奏できたか否かを示す連続正解フラグという情報をもたせる。この連続正解フラグは、連続して演奏できた状態（以下これを「正解」と表現する）の場合に例えば値１がセットされ、連続して演奏できなかった状態（以下これを「不正解」と表現する）の場合に例えば値０がセットされる。そして、この連続正解フラグが不正解を示す小節境界で、フレーズが分割される。図２（ｂ）において、両方向矢印が付与されている小節の組は同じフレーズに含まれ、両方向矢印が付与されていな小節の組はフレーズの境界となる。そして、全体練習範囲内で、小節３と４、６と７、および９と１０の各組で、連続正解フラグが不正解を示す。このため、小節１，２，３がフレーズ１、小節４，５，６がフレーズ２、小節７，８，９がフレーズ３、小節１０，１１，１２がフレーズ４に分割される。図２（ｂ）の例では、フレーズの分割が図２（ａ）の場合と同じになっているが、ステップ４では、上述したフレーズ分割方法に従う結果、各フレーズに含まれる小節数は３フレーズには限られず、フレーズ毎に可変長となり得る。
【００２３】
図１において、練習順番決定部１０２はまず、練習段階決定部１０１が決定した練習段階において、後述する達成状況更新部１０４が出力する達成状況に基づいて、図２のフレーズ１からフレーズ４のうちから次に練習を行うフレーズを決定する。練習対象となるフレーズの決定の仕方としては、練習段階が例えばステップ１（音高練習ステップ）、ステップ２（リズム練習ステップ）、またはステップ３（テンポ練習ステップ）の何れかのときには、次のように決定してよい。すなわち、楽曲の先頭から例えば３小節ずつ区切られたフレーズのうち、全体練習範囲内で、音高、リズム、またはテンポに関するユーザの演奏の完成度が所定の閾値に達していない小節を含むフレーズが、次に練習を行うフレーズとして決定されてよい。１度に練習を行うフレーズの数は、ユーザの演奏レベルに応じて、１フレーズでもよいし、複数フレーズが選択されるように設定できてもよい。また、練習段階が例えばステップ４（通し練習ステップ）であるときには、全体練習範囲内で、前述した連続正解フラグが不正解を示す小節を境界としてフレーズが分割されてよい。そして、その境界の前後のフレーズが、次に練習を行うフレーズの組として決定されてよい。１度に練習を行うフレーズの組の数は、１組でもよいし、複数組でもよい。練習順番決定部１０２は、このようにして決定したフレーズにおける各小節の練習順番を決定する。
【００２４】
図３は、ステップ１（音高練習ステップ）またはステップ２（リズム練習ステップ）の練習段階でのフレーズ毎の練習順番の例を示す図である。ステップ１または２に関しては、音高やリズムを覚えるという目的から、練習順番は小節を単位として短く設定する仕様が望ましい。そこで、練習順番決定部１０２は、まず練習を行う単位となるフレーズを例えば３小節という比較的短い単位で分割し、その上で例えば図３の色が濃い部分として示されるように、小節番号に関して、１，２，１と２、３、２と３、１と２と３という練習順番で、１小節から始まり連続する３小節程度まで細かく練習範囲を広げるように、フレーズ内の小節の各練習区間が決定される。以下、図３から図５の説明において、練習区間は、濃い色の部分として示される。
【００２５】
すなわち、図３に示されるように、例えばフレーズ１が次の練習フレーズとして決定された場合、図３に示される練習順番１から練習順番６までが決定される。練習順番１では、第１小節のみが練習区間とされる。練習順番２では、第２小節のみが練習区間とされる。練習順番３では、第１小節と第２小節の連続する２小節が練習区間とされる。練習順番４では、第３小節のみが練習区間とされる。練習順番５では、第２小節と第３小節の連続する２小節が練習区間とされる。最後に、練習順番６では、第１小節と第２小節と第３小節の連続する３小節が練習区間とされる。
【００２６】
フレーズ２，３，４（図２参照）がそれぞれ次の練習フレーズとして決定された場合も、第４，５，６小節、第７，８，９小節、第１０，１１，１２小節に関して、フレーズ１の第１、２，３小節と同様にして、練習順番が決定される。前述したように、フレーズ１，２，３，４は、１フレーズずつ練習区間とされてもよいし、複数フレーズ分がまとめて練習区間とされてもよい。
【００２７】
図４は、ステップ３（テンポ練習ステップ）の練習段階でのフレーズ毎の練習順番の例を示す図である。ステップ３に関しては、音高とリズムはＯＫなので、例えば、できていないフレーズの３小節分を通しでテンポの練習をさせるような繰返し方法が有効である。
【００２８】
すなわち、図４に示されるように、例えばフレーズ１が次の練習フレーズとして決定された場合、図４に示される練習順番１が決定される。練習順番１では、第１，２，３小節の連続する３小節が練習区間とされる。同様にして、フレーズ２，３，４がそれぞれ次の練習フレーズとして決定された場合は、練習順番２，３，４がそれぞれ次の練習フレーズとして決定される。練習順番２、３，４ではそれぞれ、第４，５，６小節、第７，８，９小節、または第１０，１１，１２小節のそれぞれ連続する３小節が練習区間とされる。この場合も前述したように、フレーズ１，２，３，４は、１フレーズずつ練習区間とされてもよいし、複数フレーズ分がまとめて練習区間とされてもよい。
【００２９】
図５は、ステップ４の練習段階でのフレーズと練習順番の例を示す図である。ステップ４では、音高もリズムもテンポも全部達成できているときに、練習順番決定部１０２はまず、前述した連続正解フラグが不正解を示す小節を境界としてフレーズを分割する。そして、練習順番決定部１０２は、その境界の前後のフレーズを、次に練習を行うフレーズの組として決定する。すなわち、ステップ４では、分割で得られる全てのフレーズから連続する２フレーズずつ選択されるフレーズの組が、次に練習するフレーズとして決定される。
【００３０】
図５の例は図２（ｂ）のフレーズ分割に対応しており、図２（ｂ）の全体練習範囲内で、小節３と４、６と７、および９と１０の各組で、連続正解フラグが不正解を示す。このため、小節１，２，３がフレーズ１、小節４，５，６がフレーズ２、小節７，８，９がフレーズ３、小節１０，１１，１２がフレーズ４に分割される。そのようにフレーズ分割が行われた上で、小節境界３と４を含む前後のフレーズ１と２の組、小節境界６と７を含む前後のフレーズ２と３の組、および小節境界９と１０を含む前後のフレーズ３と４の組が、それぞれ練習区間のフレーズとして決定される。
【００３１】
図５は、上述のようにして決定されたフレーズ１と２の組、フレーズ２と３の組、およびフレーズ３と４の組が、まとめて練習区間とされる場合の練習順番の例を示している。練習順番１，２，３，４，５，６，７，８の順で、練習が実行される。
【００３２】
まず、フレーズ１と２の組の練習順番１では、フレーズ１と２の組において、それらのつなぎ目である第３小節と第４小節の連続する２小節が練習区間とされる。続いて、練習順番２では、フレーズ１と２の組において、２つのフレーズを通した第１小節から第６小節までの連続する６小節が練習区間とされる。
【００３３】
次に、練習順番３では、フレーズ２と３の組において、それらのつなぎ目である第６小節と第７小節の連続する２小節が練習区間とされる。続いて、練習順番４では、フレーズ２と３の組において、２つのフレーズを通した第４小節から第９小節までの連続する６小節が練習区間とされる。さらに続いて、練習順番５では、フレーズ１から現在の組の最終フレーズ３までの３つのフレーズを通した第１小節から第９小節までの連続する９小節が練習区間とされる。
【００３４】
次に、練習順番６では、フレーズ３と４の組において、それらのつなぎ目である第９小節と第１０小節の連続する２小節が練習区間とされる。それに続いて、練習順番７では、フレーズ３と４の組において、２つのフレーズを通した第７小節から第１２小節までの連続する６小節が練習区間とされる。最後に、練習順番８では、フレーズ１から現在の組の最終フレーズ４（＝全体練習範囲の最終フレーズ）までの４つのフレーズを通した第１小節から第１２小節までの連続する１２小節が練習区間とされる。すなわち、全体練習範囲の全小節が練習区間とされる。
【００３５】
なお、ステップ４の練習段階でのフレーズと練習順番は、全体練習範囲を通しての通し練習の目的が達成できれば、図５に示される例以外にも様々な練習パターンを考えることができる。
【００３６】
図１の練習段階決定部１０１が、図３から図５に例示したようなフレーズの決定とフレーズ内の練習段階の決定のための制御動作を実現するために、図１の演奏練習装置１００は、練習段階テーブルを記憶する練習段階テーブル１０５を備えてよい。
【００３７】
図６は、練習段階テーブル１０５が記憶する練習段階テーブル６００のデータ構成例を示す図である。
【００３８】
この練習段階テーブル１０５は、練習段階データ６０１が示すステップ１から４の練習段階毎（図６に示されるテーブルの行毎）に、全体練習範囲内でのフレーズの分割方法を指定するフレーズ分割方法データ６０２と、その練習段階データ６０１が示す練習段階で選択されるフレーズ中の各小節の繰返し方法を指定する繰返し方法データ６０３を含む。
【００３９】
フレーズ分割方法データ６０２としては、ステップ１，２，３では、図６に例示されるように、全体練習範囲の先頭から３小節ずつ区切る（図２参照）という指定を行うデータを記憶してよい。また、フレーズ分割方法データ６０２として、ステップ４では、図６に例示されるように、フレーズの境界で滑らかに演奏できたか否かを判定する連続正解フラグが不正解を示す境界で区切るという指定を行うデータを記憶してよい。その他のフレーズ分割方法としては、例えば、先頭から４小節ずつ分割などにすると１回の練習範囲が長くなるため、３小節の場合より若干レベルが高い人向けの設定となる。或いは、フレーズ分割方法データ６０２として例えば、演奏が達成できていない小節に対してその前後の小節を含めた３小節などにする場合には、全体練習範囲に対してまだ全く達成できていない状態で練習を行った場合、練習区間となる小節が、１と２と３、２と３と４、３と４と５というように重複部分が多くなるため、練習の終盤で比較的演奏が達成できていない箇所が少ない仕上げ段階向けの設定として有効となる。
【００４０】
繰返し方法データ６０３としては、ステップ１，２では、図６に例示されるように、決定されているフレーズ内の先頭の小節から１小節ずつ練習区間を広げていく（図３参照）という指定を行うデータを記憶してよい。また、繰返し方法データ６０３として、ステップ３では、図６に例示されるように、決定されているフレーズ内の先頭から最後の小節までの連続小節範囲を練習区間とする（図４参照）という指定を行うデータを記憶してよい。このほか例えば、フレーズの長さに応じて一度に練習する最小単位を２小節にするなどと変更すると、効率良く練習ができる。さらに、繰返し方法データ６０３として、ステップ４では、図６に例示されるように、フレーズの組における２つのフレーズの境界の前後小節（計２小節）を練習し、その後、その組となる２フレーズ内の連続する小節を通して練習するという指定を行うデータを記憶してよい。あるいは、その後さらに、全体練習範囲の１フレーズ目からその組となる２フレーズの最後まで通して練習するという指定を行うデータを含んだりしてもよい。図５は、そのような指定に基づいて練習が行われる場合の練習順番の例である。
【００４１】
なお、図６では、フレーズ分割方法データ６０２や繰返し方法データ６０３は、文字列で表現されているが、練習段階テーブル６００に記憶される実際のデータは、文字列以外の数値データ等を使って記憶されてもよい。ただし、文字列での記憶により、例えばディスプレイに現在のフレーズ分割方法や繰返し方法をわかりやすく表示することが可能となる。また、例えば、あらかじめ種々の処理パターン、例えば種々のフレーズ分割方法を実現する回路やプログラムが機器に備えられていて、図６のテーブルには、それらの処理パターンを例えば番号で指定するデータが記憶されている形で実現することも可能である。
【００４２】
図１において、練習順番決定部１０２は、練習段階テーブル１０５に記憶された図６に例示される練習段階テーブル６００を参照することにより、練習段階決定部１０１が決定した練習段階に対応する図６に例示したフレーズ分割方法データ６０２および繰返し方法データ６０３を抽出する。練習順番決定部１０２は、抽出したフレーズ分割方法データ６０２および達成状況更新部１０４が出力する達成状況に基づいて、フレーズ（またはフレーズの組）を決定する。そして、練習順番決定部１０２は、抽出した繰返し方法データ６０３に基づいて、決定したフレーズにおける各小節の練習順番（図３から図５を参照）を決定する。
【００４３】
練習段階テーブル６００は、図６に例示されるように、練習段階データ６０１が示すステップ１から４の練習段階毎に、各練習段階が決定された場合に有効な練習の機能を設定するためのおすすめ練習機能データ６０４を記憶してよい。例えば、ステップ１の練習段階では、テンポはゆっくりで、また、音高がよくわかるように、メロディ音としてサスティーンの長い楽音が設定される等の、音高練習系機能が設定される。また、ステップ２の練習段階では、テンポは少しゆっくりで、また、リズムがよくわかるようにメロディ音に重ねて打楽器音の楽音が設定される等の、リズム練習系機能が設定される。また、ステップ３の練習段階では、最適なテンポが設定される等の、テンポ練習系機能が設定される。さらに、ステップ４の練習段階では、練習範囲の全体を通した楽曲の雰囲気がつかめるように、様々な演奏効果が設定される等の、動作練習系機能が設定される。
【００４４】
図１において、練習機能設定部１０６は、練習段階テーブル１０５に記憶された練習段階テーブル６００を参照することにより、練習段階決定部１０１が決定した練習段階に対応する図６に例示したおすすめ練習機能データ６０４を抽出する。図１において、練習機能設定部１０６は、抽出したおすすめ練習機能データ６０４に基づいて、練習段階決定部１０１が決定した練習段階において有効な練習の機能を、自動練習繰返し部１０７に設定する。自動練習繰返し部１０７は、練習機能設定部１０６から設定された自動練習機能を、例えばＭＩＤＩインタフェースを介してＭＩＤＩデータとして、電子楽器の機能設定部に対して設定する。
【００４５】
また、練習段階テーブル６００は、図６に例示されるように、図１の達成状況更新部１０４が出力する達成状況に基づいて次の練習段階を決定するための判定合否データ６０６、６０７、６０８を記憶してよい。
【００４６】
例えば、練習段階として音高練習ステップであるステップ１の練習を行わせるか否かを判断するための判定条件として、音高判定データ６０６、リズム判定データ６０７、およびテンポ判定データ６０８ともに不合格（図６中では「×」と表記）という判定条件を記憶した判定合否データ６０６、６０７、６０８が記憶される。すなわち、音高、リズム、テンポとも不合格の場合は、ステップ１から練習を行わせることが示されている。
【００４７】
また例えば、練習段階としてリズム練習ステップであるステップ２を決定するための判定条件として、音高判定データ６０６が合格（図６中では「○」と表記）、リズム判定データ６０７およびテンポ判定データ６０８が不合格という判定条件を記憶した判定合否データ６０６、６０７、６０８が記憶される。すなわち、音高のみ合格の場合には、ステップ２から練習を行わせることが示されている。
【００４８】
さらに例えば、練習段階としてテンポ練習ステップであるステップ３を決定するための判定合否条件として、音高判定データ６０６およびリズム判定データ６０７が合格、テンポ判定データ６０８が不合格という判定条件を記憶した判定合否データ６０６、６０７、６０８が記憶される。すなわち、音高とリズムが合格の場合には、ステップ３から練習を行わせることが示されている。
【００４９】
そして例えば、練習段階としてテンポ練習ステップであるステップ４を決定するための判定条件として、音高判定データ６０６、リズム判定データ６０７、およびテンポ判定データ６０８の全てが合格という判定条件を記憶した判定合否データ６０６、６０７、６０８が記憶される。すなわち、音高、リズム、テンポとも合格の場合は、ステップ４の練習を行わせることが示されている。なお、この図６には記載していないが、他の合格・不合格の組み合わせについても適宜定義されていてもよい。
【００５０】
図１において、練習段階決定部１０１は、練習段階テーブル１０５が記憶する練習段階テーブル６００中の各練習段階の判定合否データ６０６、６０７、６０８を参照することにより、達成状況更新部１０４が出力する達成状況が、どの練習段階の判定合否データ６０６、６０７、６０８が示す判定合否条件を満たすかを判定し、次の練習段階のステップを決定する。
【００５１】
練習段階テーブル６００はさらに、図６に例示されるように、練習段階データ６０１が示すステップ１から４の練習段階毎に、目的データ６０５、練習目標データ６０９、最適練習範囲データ６１０等を記憶してよい。これらのデータは例えば、各練習段階での練習時に、ディスプレイ等に、その練習段階の目的、練習目標、練習範囲の長短等を表示するために参照される。
【００５２】
図１において、練習順番決定部１０２は、決定したフレーズにおける各小節の練習順番に基づいて、練習順番データのリストを生成し記憶してよい。図７は、練習順番リスト７００のデータ構成例を示す図である。練習順番リスト７００の構成要素である＃１、・・・、＃ｊ、・・・、＃ｎ（ｎ：練習順番数、１≦ｊ≦ｎ）の各練習順番データ７０１は、練習区間を示す練習開始小節および練習終了小節からなる。
【００５３】
例えば、図３に例示したように、練習段階決定部１０１が、例えばフレーズ１を次の練習フレーズとして決定し、フレーズ１内で練習順番１から練習順番６までを決定した場合、＃１から＃６までの練習順番データ７０１を生成する。＃１の練習順番データ７０１は、練習開始小節＝１、練習終了小節＝１である。＃２の練習順番データ７０１は、練習開始小節＝２、練習終了小節＝２である。＃３の練習順番データ７０１は、練習開始小節＝１、練習終了小節＝２である。＃４の練習順番データ７０１は、練習開始小節＝３、練習終了小節＝３である。＃５の練習順番データ７０１は、練習開始小節＝２、練習終了小節＝３である。そして、＃６の練習順番データ７０１は、練習開始小節＝１、練習終了小節＝３である。
【００５４】
図１において、自動練習繰返し部１０７は、練習順番リスト７００から練習順番データ７０１を＃１、＃２、＃３、・・・、＃ｎという順番で順次読み出す。そして、自動練習繰返し部１０７は、読み出した練習順番データ７０１中の練習開始小節から練習終了小節までの各構成音符の演奏データを順次生成し、例えばＭＩＤＩを介してＭＩＤＩデータとして電子楽器に順次供給して、自動練習を順次実行する。
【００５５】
図１において、演奏評価部１０３は、練習順番決定部１０２により決定された練習順番にて自動練習繰返し部１０７により順次指定される小節により定められた練習区間内で、ユーザの演奏を対応する演奏要素に基づいて評価する。
【００５６】
より具体的には、演奏評価部１０３は、楽曲を構成する小節毎に、自動練習で対象となっている練習区間内の各小節において指定れる各音符とユーザの演奏で発生する各音符とを順次比較することにより、練習区間における演奏要素毎のユーザの演奏の完成度を算出してその練習区間内の各小節に対応する小節完成度データとして記憶する。図８は、小節完成度データ８０１のデータ構成例を示す図である。楽曲の全体練習範囲に含まれる小節数をｍとすれば、演奏評価部１０３は、小節番号＃１、・・・、＃ｉ、・・・、＃ｍ（１≦ｉ≦ｍ）に含まれる小節の小節完成度データ８０１を生成し記憶する。１つの小節完成度データ８０１には、音高達成率、リズム達成率、テンポ達成率、連続正解フラグ（前）、連続正解フラグ（後）、記録時刻が記憶される。
【００５７】
現在の練習段階が音高、リズム、またはテンポのいずれかの演奏要素に関するステップ１（音高練習ステップ）、ステップ２（リズム練習ステップ）、またはステップ３（テンポ練習ステップ）であるときには、演奏評価部１０３は、音高達成率、リズム達成率、またはテンポ達成率を算出し、小節完成度データ８０１として記憶する。
【００５８】
音高達成率は例えば、小節を構成する各音符について、楽曲の各音符とユーザの演奏とで、全ての音高（ノート番号）が一致すれば音高達成率は１（または１００％）であり、半分の音高が一致すれば音高達成率は０．５（または５０％）である。実際には、演奏評価部１０３は例えば、自動練習における楽曲の各音符のノート番号とユーザの演奏により発生するノートオンのノート番号が一致するか否かを判定し、一致したノート数を小節の全ノート数で除算して得られる値を音高達成率として算出できる。あるいは、細分化された時間毎に音高が一致するか否かを判定して、その判定結果を累積することによって音高達成率を算出することも可能である。その他、音高達成率は、公知の種々の手法により算出できる。
【００５９】
リズム達成率については、演奏評価部１０３は例えば、小節を構成する各音符の各時間長について、ユーザの演奏により得られる各時間長と、自動練習における楽曲の各音符の各時間長との比の平均値として算出できる。その他、リズム達成率は、公知の種々の手法により算出できる。
【００６０】
テンポ達成率については、演奏評価部１０３は例えば、ユーザの演奏における小節の演奏時間と、自動練習で対象となっている小節の演奏時間との比として算出できる。その他、テンポ達成率は、公知の種々の手法により算出できる。
【００６１】
現在の練習段階が、楽曲の演奏進行の滑らかさを練習するステップ４（通し練習ステップ）である場合には、演奏評価部１０３は、上記完成度を示す達成率のデータの代わりに、連続正解フラグを設定し、小節完成度データ８０１として記憶する。連続正解フラグとしては、連続正解フラグ（前）と連続正解フラグ（後）が設定される。
【００６２】
演奏評価部１０３は、連続正解フラグ（前）としては、現在の小節の１小節前の小節と現在の小節との連続する練習において、ユーザの演奏が所定の演奏基準を満たすときに正解を示す値（例えば“１”）を設定し、そうでなければ不正解を示す値（例えば“０”）を設定する。
【００６３】
演奏評価部１０３は、連続正解フラグ（後）としては、現在の小節の１小節後の小節と現在の小節との連続する練習において、ユーザの演奏が前述した所定の演奏基準を満たすときに正解を示す値を設定し、そうでなければ不正解を示す値を設定する。
【００６４】
所定の演奏基準としては例えば、音高達成率、リズム達成率、およびテンポ達成率のいずれもがそれぞれの閾値に比較して大きいか否かという基準を採用してよい。
【００６５】
図１において、達成状況更新部１０４は、演奏評価部１０３でのユーザの演奏の評価結果に基づいて、対応する演奏要素でかつ、練習段階決定部１０１により決定された練習段階におけるユーザの演奏の新たな達成状況を決定し、その新たな達成状況により、達成状況を更新する。
【００６６】
より具体的には、現在の練習段階が、ステップ１（音高練習ステップ）、ステップ２（リズム練習ステップ）、またはステップ３（テンポ練習ステップ）であるときには、達成状況更新部１０４は、小節毎に、演奏要素毎の完成度が所定の閾値に比較して小さい場合に、達成状況更新部１０４自身が保持する、その演奏要素に対応する練習段階の未達成リストに、その小節を追加登録する。この未達成リストは、その練習段階において、ユーザの演奏が練習基準を達成できなかった小節を示すリストである。
【００６７】
いま例えば、各小節の楽曲の先頭からの通し番号（小節番号）をｉ（１≦ｉ≦ｍ）とする。そして、達成状況更新部１０４は、ある小節（小節番号ｉ）において、音高の演奏要素について、＃ｉ番目の小節完成度データ８０１に記憶されている音高達成率が、音高達成率のための閾値に比較して小さい場合に、音高に対応するステップ１の練習段階の未達成リストに、その小節の小節番号ｉを追加登録する。
【００６８】
また、達成状況更新部１０４は、リズムの演奏要素についても、ある小節（小節番号ｉ）に対応する＃ｉ番目の小節完成度データ８０１に記憶されているリズム達成率が、リズム達成率のための閾値に比較して小さい場合に、リズムに対応するステップ２の練習段階の未達成リストに、小節番号ｉを追加登録する。
【００６９】
達成状況更新部１０４は、テンポの演奏要素についても、ある小節（小節番号ｉ）に対応する＃ｉ番目の小節完成度データ８０１に記憶されているテンポ達成率が、テンポ達成率のための閾値に比較して小さい場合に、テンポに対応するステップ３の練習段階の未達成リストに、小節番号ｉを追加登録する。
【００７０】
一方、現在の練習段階が楽曲の演奏進行の滑らかさを練習するステップ４（通し練習ステップ）である場合には、達成状況更新部１０４は、小節毎に、その小節（小節番号ｉ）に対応する＃ｉ番目の小節完成度データ８０１に記憶されている連続正解フラグ（後）に不正解を示す値が設定されている場合に、達成状況更新部１０４自身が保持するフレーズ境界位置リストに、その小節の小節番号を追加登録する。フレーズ境界位置リストは、演奏進行が滑らかでないフレーズの組の境界の小節を示すリストである。
【００７１】
以上のようにして、練習段階毎の未達成リストまたはフレーズ境界位置リストとして算出された達成状況は、次の練習段階の決定ならびにフレーズおよび練習順番の決定に供されて、楽曲の演奏の練習が進行させられる。
【００７２】
すなわち、図１において、練習段階決定部１０１は、前回の自動練習の結果達成状況更新部１０４が出力する、練習段階毎の未達成リストまたはフレーズ境界位置リストに基づいて、次の練習段階を決定する。
【００７３】
例えば、前回の練習段階が、ステップ１（音高練習ステップ）、ステップ２（リズム練習ステップ）、またはステップ３（テンポ練習ステップ）であったときには、練習段階決定部１０１は、前回の自動練習により未達成リストに小節が登録されている練習段階に基づいて、次の前記練習段階を決定する。
【００７４】
例えば、ステップ１の未達成リストに１つでも小節が登録されていれば、次の練習段階は、音高に関するステップ１に決定される。
【００７５】
また、ステップ１の未達成リストに小節は登録されておらず、ステップ２の未達成リストに１つでも小節が登録されていれば、次の練習段階は、リズムに関するステップ２に決定される。
【００７６】
さらに、ステップ１，２の未達成リストに小節は登録されておらず、ステップ３の未達成リストに１つでも小節が登録されていれば、次の練習段階は、テンポに関するステップ３に決定される。
【００７７】
最後に、ステップ１，２，３の未達成リストに小節は登録されておらず、フレーズ境界位置リストに１つでも小節が登録されていれば、次の練習段階は、楽曲の演奏進行の滑らかさに関するステップ４に決定される。
【００７８】
一方、前回の練習段階が楽曲の演奏進行の滑らかさを練習するステップ４（通し練習ステップ）であった場合には、練習段階決定部１０１は、フレーズ境界位置リストに小節が登録されているときに、次の練習段階として、ステップ４を再度決定する。
【００７９】
このようにして、ステップ１から４のいずれかの練習段階が決定されると、さらに、図１において、練習順番決定部１０２は、練習段階決定部１０１が決定した練習段階の演奏要素に対応する未達成リストまたはフレーズ境界位置リストに登録されている小節が含まれるフレーズに基づいて、次の練習のフレーズを決定する。
【００８０】
例えば、前回の練習段階が、ステップ１（音高練習ステップ）、ステップ２（リズム練習ステップ）、またはステップ３（テンポ練習ステップ）であったときには、練習順番決定部１０２は、練習段階決定部１０１が決定した練習段階の演奏要素に対応する未達成リストに登録されている小節が含まれるフレーズに基づいて、例えばそのフレーズをそのまま、次の練習のフレーズとして決定する。
【００８１】
前回の練習段階が楽曲の演奏進行の滑らかさを練習するステップ４（通し練習ステップ）であったときには、練習順番決定部１０２は、フレーズ境界位置リストに登録されている小節をフレーズ境界とする、その小節が含まれるフレーズとその次のフレーズの組を決定する。
【００８２】
図９は、図１の機能構成を有する演奏練習装置１００の実施形態のハードウェア構成の一例を示す図である。この演奏練習装置１００は、ＣＰＵ（中央演算処理装置）９０１、ＲＯＭ（リードオンリーメモリ）９０２、ＲＡＭ（ランダムアクセスメモリ）９０３、入力部９０４、表示部９０５、およびＭＩＤＩインタフェース部（以下「ＭＩＤＩ  Ｉ／Ｆ」と表記する）９０６が、バス９０７によって相互に接続された構成を備える。ＭＩＤＩ  Ｉ／Ｆ９０６は、外部（内蔵でもよい）の電子楽器９０８に接続される。
【００８３】
ＣＰＵ９０１は、ＲＯＭ９０２に記憶された制御プログラムに従って、当該演奏練習装置１００の全体の制御を行う。
【００８４】
ＲＯＭ９０２は、後述する各フローチャートで示される制御動作を実行する制御プログラムを記憶するほか、複数の楽曲の演奏データなどを記憶する。
【００８５】
ＲＡＭ９０３は、制御プログラムの実行に必要な、前述した、練習段階テーブル６００（図６）、練習順番リスト７００（図７）、小節完成度データ８０１（図８）、練習段階毎の未達成リスト、フレーズ境界位置リストなどの各種制御データや、練習対象となる演奏データ等を、一時的に記憶する。
【００８６】
入力部９０４は、ユーザによるキーボード、マウス、各種スイッチ等による入力操作を検出し、その検出結果をＣＰＵ９０１に通知する。
【００８７】
表示部９０５は、ＣＰＵ９０１の制御によって送られてくるデータを液晶ディスプレイなどに出力する。例えば、表示部９０５は、自動練習される楽曲の情報や、演奏の練習段階に関する図６の練習段階テーブル６００の内容などを表示する。
【００８８】
ＭＩＤＩ  Ｉ／Ｆ９０６は、前述した図１の自動練習繰返し部１０７の機能を実行するＣＰＵ９０１が順次生成する演奏データを、ＭＩＤＩフォーマットに変換しながら電子楽器９０８に順次供給して、自動練習を順次実行する。また、ＭＩＤＩ  Ｉ／Ｆ９０６は、前述した図１の練習機能設定部１０６の機能を実行するＣＰＵ９０１が、自動練習開始時に練習段階に応じて設定した練習機能を、ＭＩＤＩフォーマットに変換して電子楽器９０８の機能設定部に対して設定する。さらに、ＭＩＤＩ  Ｉ／Ｆ９０６は、ＣＰＵ９０１が実行する、自動練習における楽曲の各音符とユーザの演奏とで比較を行う演奏評価処理（図１の演奏評価部１０３の機能に対応する）のために、ユーザが電子楽器９０８において演奏した演奏データを取り込んで、ＲＡＭ９０３上のノート入力バッファに記憶させる。ＣＰＵ９０１は、演奏評価処理において、ノート入力バッファに取り込まれるユーザの演奏による演奏データと、自動練習における楽曲の各音符とを順次比較することにより、前述した小節完成度データ８０１（図８参照）を生成する。
【００８９】
本実施形態による演奏練習装置１００の動作は、後述する図１０から図１５のフローチャート等で実現される図１の各部の機能処理を搭載した制御プログラムを、ＣＰＵ１０１がＲＯＭ１０２から読み出して順次実行することで実現される。そのプログラムは、特には図示しない可搬型記録媒体を介して提供されてもよく、或いは特には図示しないネットワーク接続装置によりネットワークから取得できるようにしてもよい。
【００９０】
以下、本発明の動作について、フローチャートに沿って説明する。なお、各フローチャートの説明において、随時図９の各部を参照するものとする。
【００９１】
図１０は、図９のハードウェア構成を有する演奏練習装置１００が実行する演奏練習制御処理の全体動作を示すフローチャートである。
【００９２】
まず、ユーザが入力部９０４を操作することにより入力された練習モードに対して、ＣＰＵ９０１が練習モードをＲＡＭ９０３などに設定する（ステップＳ１００１）。練習モードとしては、自動練習モードと、手動練習モードを選択でき、さらに手動練習モードとしては、範囲指定練習モードと範囲未指定練習モードを選択できる。自動練習とそうでない練習の違いは、以下の通りである。自動練習では、演奏できるようになりたい大枠の範囲をユーザが設定したらそこからの進行方法が自動化される。これに対して、通常の範囲指定練習では、ユーザが繰り返し練習したい範囲を自ら指定して練習を行う。範囲を指定しない練習では、ユーザが好きな場所を見て弾いて練習するだけの特に機械的アシストの無い練習モードである。
【００９３】
次に、ＣＰＵ９０１は、ステップＳ１００１で自動練習モードが選択されたか否かを判定する（ステップＳ１００２）。
【００９４】
自動練習モードが選択されず、ステップＳ１００２の判定がＮＯならば、ＣＰＵ９０１はさらに、範囲指定練習モードが選択されたか否かを判定する（ステップＳ１０１０）。
【００９５】
範囲指定練習モードが選択されステップＳ１０１０の判定がＹＥＳならば、ＣＰＵ９０１は、入力部９０４を介して、ユーザの手動による範囲指定を受け付ける（ステップＳ１０１１）。
【００９６】
次に、ＣＰＵ９０１は、入力部９０４を介して、ユーザによる指定範囲の繰返し方法の指定を受け付ける（ステップＳ１０１２）。
【００９７】
一方、範囲指定練習モードが選択されステップＳ１０１０の判定がＮＯならば、ＣＰＵ９０１は、範囲を指定しない練習モードを設定する（ステップＳ１０１３）。
【００９８】
ステップＳ１０１２またはＳ１０１３の処理の後、ＣＰＵ９０１は、練習機能を設定する（ステップＳ１０１４）。ここでは、ＣＰＵ９０１は、ＭＩＤＩ  Ｉ／Ｆ９０６を介して電子楽器９０８に対して、練習機能を設定する。例えば、リズムのアシストや伴奏のアシスト等である。
【００９９】
その後、ＣＰＵ９０１は、ステップＳ１００５→Ｓ１００６の判定がＮＯ→Ｓ１００９→Ｓ１００５という繰返し処理によって、入力部９０４を介したユーザによる練習モードの変更の判定（ステップＳ１００５）と、入力部９０４を介したユーザによる練習の終了の判定（ステップＳ１００９）を繰り返し実行する。
【０１００】
自動練習モードが選択されステップＳ１００２の判定がＹＥＳならば、ＣＰＵ９０１は、自動練習に対する全体的な設定の処理を実行する（ステップＳ１００３）。ここでは例えば、ＣＰＵ９０１は、入力部９０４を介してユーザによる楽曲の選択などを受け付ける。
【０１０１】
次に、ＣＰＵ９０１は、自動練習設定処理を実行する（ステップＳ１００４）。ここでは、ＣＰＵ９０１は、図１に示される練習段階決定部１０１、練習順番決定部１０２、練習機能設定部１０６、および達成状況更新部１０４の前述した各機能に対応する処理を実行する。この処理の詳細は、図１１から図１４までのフローチャートを用いて後述する。
【０１０２】
ステップＳ１００４の自動練習設定処理によって自動練習の開始が指示されると、ＣＰＵ９０１は、前述した図７の練習順番リスト７００中の１つの練習順番データ７０１で定まる練習開始小節から練習終了小節までの間で、ステップＳ１００５からＳ１００９の繰返し処理を実行する。
【０１０３】
ステップＳ１００５からＳ１００９の繰返し処理において、自動練習中は自動練習中フラグがオン（例えば値１）になることによりステップＳ１００６の判定がＹＥＳとなって、ＣＰＵ９０１は、ステップＳ１００７で、演奏評価処理を実行する。ここでは、ＣＰＵ９０１は、図１に示される演奏評価部１０３の機能に対応する前述した処理を実行する。この処理の詳細は、図１５のフローチャートを用いて後述する。
【０１０４】
ステップＳ１００５からＳ１００９の繰り返し処理において、ＣＰＵ９０１は、ステップＳ１００８で、現在の練習順序が達成したか否か、すなわち、前述した図７の練習順番リスト７００中の１つの練習順番データ７０１で定まる練習開始小節から練習終了小節までの処理が終了したか否かを判定する。１つの練習順番データ７０１の練習終了小節までの処理が終了してステップＳ１００８の判定がＹＥＳになると、ＣＰＵ９０１は、ステップＳ１００４の自動練習設定処理に戻る。
【０１０５】
ステップＳ１００５からＳ１００９の繰り返し処理において、ＣＰＵ９０１は、ステップＳ１００５で、入力部９０４を介したユーザによる練習モードの変更の判定を行う。ユーザが入力部９０４で練習モードを変更すると、ステップＳ１００５の判定がＹＥＳになって、ＣＰＵ９０１は、ステップＳ１００１の練習モードの選択の処理に戻る。
【０１０６】
ステップＳ１００５からＳ１００９の繰り返し処理において、ＣＰＵ９０１は、ステップＳ１００９で、入力部９０４を介したユーザによる練習の終了の判定を行う。ユーザが入力部９０４で練習の終了を指示すると、ステップＳ１００９の判定がＹＥＳになって、ＣＰＵ９０１は、図１０のフローチャートの演奏練習制御処理を終了する。
【０１０７】
図１１および図１２は、図１０のステップＳ１００４の自動練習設定処理を示すフローチャートである。
【０１０８】
ＣＰＵ９０１はまず、ＲＡＭ９０３上に記憶している自動練習中フラグがオン（例えば値１）か否（オフ）（例えば値０）かを判定する（ステップＳ１１０１）。
【０１０９】
自動練習の開始時には、自動練習中フラグがオフでステップＳ１１０１の判定がＮＯとなって、ＣＰＵ９０１は、ステップＳ１１０５の処理に移行する。ＣＰＵ９０１は、ステップＳ１１０５以降では、最初の練習段階および練習順番の決定の各処理を実行し、それらの決定に基づいて自動練習をスタートさせる。
【０１１０】
また、自動練習中には自動練習中フラグがオンであり、前述したように１つの練習順番データ７０１の練習終了小節までの処理が終了して図１０のステップＳ１００８の判定がＹＥＳになると、図１０のステップＳ１００４に戻り、図１１のステップＳ１１０１の判定処理が実行され、この場合にステップＳ１１０１の判定がＹＥＳとなる。
【０１１１】
この結果、現在の練習段階において、図７の練習順番リスト７００中に次の練習順番データ７０１があれば、ステップＳ１１０２の判定がＹＥＳとなって、ＣＰＵ９０１は、次の練習順番データ７０１の練習開始小節と練習終了小節を読み出して次の練習順序へ進む（ステップＳ１１０４）。これにより、前述した図１０のステップＳ１００５からＳ１００９の繰り返し処理が再び実行されることにより、いままでと同じ練習段階中の次の練習順番データ７０１で決まる練習区間に対する演奏評価処理が実行される。
【０１１２】
一方、現在の練習段階において、図７の練習順番リスト７００中に次の練習順番データ７０１がなければ、ステップＳ１１０２の判定がＮＯとなって、ＣＰＵ９０１は、自動練習中フラグをオフにし（例えば値０をセットし）、ステップＳ１１０５の処理に移行する。この結果、ＣＰＵ９０１は、ステップＳ１１０５では、前の練習段階に対する達成状況の確認と、次の練習段階および練習順番の決定の各処理を実行し、それらの決定に基づいて改めて自動練習をスタートさせる。
【０１１３】
まず、ＣＰＵ９０１は、入力部９０４を介してユーザが、ＲＡＭ９０３に記憶されている前述した図６に例示される練習段階テーブル６００に登録されている、練習段階毎のフレーズ分割方法データ６０２または繰返し方法データ６０３を変更する指示を出しているか否かを判定する（ステップＳ１１０５）。
【０１１４】
ステップＳ１１０５の判定がＹＥＳならば、ＣＰＵ９０１は、入力部９０４からのユーザの設定変更を受け付ける（ステップＳ１１０６）。ＣＰＵ９０１は、この設定変更の結果を、ＲＡＭ９０３上の練習段階テーブル６００に反映させる。練習段階テーブル６００は、図１の練習段階テーブル１０５に対応する。
【０１１５】
ステップＳ１１０５の判定がＮＯの場合またはステップＳ１１０６の処理の後、ＣＰＵ９０１は、入力部９０４を介してユーザが楽曲中の前述した図２に例示される全体練習範囲を自動で選択する設定をしているか否かを判定する（ステップＳ１１０７）。
【０１１６】
全体練習範囲の選択が自動と設定されていた場合、ステップＳ１１０７の判定がＹＥＳとなり、ＣＰＵ９０１は、自動的に楽曲中の全体練習範囲を選択する（ステップＳ１１０８）。例えば、楽曲の全体、前半の範囲、後半の範囲、数小節などである。
【０１１７】
全体練習範囲の選択が自動ではなくステップＳ１１０７の判定がＮＯならば、ＣＰＵ９０１は、ユーザに入力部９０４を介して手動で全体練習範囲を選択させる（ステップＳ１１０９）。
【０１１８】
ステップＳ１１０８またはＳ１１０９による全体練習範囲の選択の後、ＣＰＵ９０１は、全体練習範囲内の達成状況更新処理を実行する（ステップＳ１１１０）。ここでは、ＣＰＵ９０１は、図１に示される達成状況更新部１０４の機能に対応する前述した処理を実行する。この処理の詳細は、図１３のフローチャートを用いて後述する。
【０１１９】
その後、ＣＰＵ９０１は、図１２のステップＳ１１１１からＳ１１３０までの一連の処理を実行する。ここでは、ＣＰＵ９０１は、前述した、図１に示される練習段階決定部１０１での練習段階の決定と、練習順番決定部１０２での練習するフレーズの決定および決定したフレーズにおける各小節の練習順番の決定と、練習機能設定部１０６での練習機能の設定の各処理を実行する。
【０１２０】
前述したように、図１の練習段階決定部１０１は、前回の自動練習の結果、図１の達成状況更新部１０４が出力する練習段階毎の未達成リストまたはフレーズ境界位置リストに基づいて、次の練習段階を決定する。達成状況更新部１０４の機能は、図１１のステップＳ１１１０の全体練習範囲内の達成状況更新処理によって実現され、後述する図１３のフローチャートで示される達成状況更新処理によって、練習段階毎の未達成リストが生成される。
【０１２１】
図１２において、ＣＰＵ９０１は、練習レベルの低いほうからステップ１，２，３の順で未達成リストをチェックする（ステップＳ１１１１→Ｓ１１１６→Ｓ１１２１）。
【０１２２】
ＣＰＵ９０１はまず、ＲＡＭ９０３上に記憶されているステップ１未達成リストに値があるか否かを判定する（ステップＳ１１１１）。
【０１２３】
ステップ１未達成リストに１つでも小節が登録されていてステップＳ１１１１の判定がＹＥＳならば、ＣＰＵ９０１は、練習ステップを示すＲＡＭ９０３上の変数ｓにステップ１を示す値１をセットする（ステップＳ１１１２）。これにより、次の練習段階は、音高に関するステップ１に決定される。
【０１２４】
続いて、ＣＰＵ９０１は、ＲＡＭ９０３に記憶された図６に例示される練習段階テーブル６００を参照することにより、練習段階ｓ＝１（ステップ１）に対応する図６に例示したフレーズ分割方法データ６０２を抽出し、例えば先頭から３小節ずつ区切ってフレーズを決定する（ステップＳ１１１３）。
【０１２５】
次に、ＣＰＵ９０１は、同じく練習段階テーブル６００を参照することにより、練習段階ｓ＝１（ステップ１）に対応する図６に例示した繰返し方法データ６０３を抽出し、図３に例示したような方法によるフレーズ内の小節に関する練習順番を設定する（ステップＳ１１１４）。
【０１２６】
さらに、ＣＰＵ９０１は、同じく練習段階テーブル６００を参照することにより、練習段階ｓ＝１（ステップ１）に対応する図６に例示したおすすめ練習機能データ６０４を抽出する。そして、ＣＰＵ９０１は、おすすめ練習機能データ６０４に対応する練習機能を、ＭＩＤＩ  Ｉ／Ｆ９０６を介してＭＩＤＩデータとして、電子楽器９０８の機能設定部に設定する（ステップＳ１１１５）。ステップ１の練習段階では、テンポはゆっくりで、また、音高がよくわかるように、メロディ音としてサスティーンの長い楽音が設定される等の、音高練習系機能が設定される。
【０１２７】
ステップ１未達成リストに小節が登録されておらずステップＳ１１１１の判定がＮＯならば、ＣＰＵ９０１は次に、ＲＡＭ９０３上に記憶されているステップ２未達成リストに値があるか否かを判定する（ステップＳ１１１６）。
【０１２８】
ステップ２未達成リストに１つでも小節が登録されていてステップＳ１１１６の判定がＹＥＳならば、ステップ１の場合と同様に、ＣＰＵ９０１は、練習ステップを示すＲＡＭ９０３上の変数ｓにステップ２を示す値２をセットする（ステップＳ１１１７）。これにより、次の練習段階は、リズムに関するステップ２に決定される。
【０１２９】
続いて、ＣＰＵ９０１は、ＲＡＭ９０３に記憶された図６に例示される練習段階テーブル６００を参照することにより、練習段階ｓ＝２（ステップ２）に対応する図６に例示したフレーズ分割方法データ６０２を抽出し、例えば先頭から３小節ずつ区切ってフレーズを決定する（ステップＳ１１１８）。
【０１３０】
次に、ＣＰＵ９０１は、同じく練習段階テーブル６００を参照することにより、練習段階ｓ＝２（ステップ２）に対応する図６に例示した繰返し方法データ６０３を抽出し、図３に例示したような方法によるフレーズ内の小節に関する練習順番を設定する（ステップＳ１１１９）。
【０１３１】
さらに、ＣＰＵ９０１は、同じく練習段階テーブル６００を参照することにより、練習段階ｓ＝２（ステップ２）に対応する図６に例示したおすすめ練習機能データ６０４を抽出する。そして、ＣＰＵ９０１は、おすすめ練習機能データ６０４に対応する練習機能を、ＭＩＤＩ  Ｉ／Ｆ９０６を介してＭＩＤＩデータとして、電子楽器９０８の機能設定部に設定する（ステップＳ１１２０）。ステップ２の練習段階では、テンポは少しゆっくりで、また、リズムがよくわかるようにメロディ音に重ねて打楽器音の楽音が設定される等の、リズム練習系機能が設定される。
【０１３２】
ステップ２未達成リストに小節が登録されておらずステップＳ１１１６の判定がＮＯならば、ＣＰＵ９０１は次に、ＲＡＭ９０３上に記憶されているステップ３未達成リストに値があるか否かを判定する（ステップＳ１１２１）。
【０１３３】
ステップ３未達成リストに１つでも小節が登録されていてステップＳ１１２１の判定がＹＥＳならば、ステップ１，２の場合と同様に、ＣＰＵ９０１は、練習ステップを示すＲＡＭ９０３上の変数ｓにステップ３を示す値３をセットする（ステップＳ１１２２）。これにより、次の練習段階は、テンポに関するステップ３に決定される。
【０１３４】
続いて、ＣＰＵ９０１は、ＲＡＭ９０３に記憶された図６に例示される練習段階テーブル６００を参照することにより、練習段階ｓ＝３（ステップ３）に対応する図６に例示したフレーズ分割方法データ６０２を抽出し、例えば先頭から３小節ずつ区切ってフレーズを決定する（ステップＳ１１２３）。
【０１３５】
次に、ＣＰＵ９０１は、同じく練習段階テーブル６００を参照することにより、練習段階ｓ＝３（ステップ３）に対応する図６に例示した繰返し方法データ６０３を抽出し、今度は図４に例示したような方法によるフレーズ内の小節に関する練習順番を設定する（ステップＳ１１２４）。
【０１３６】
さらに、ＣＰＵ９０１は、同じく練習段階テーブル６００を参照することにより、練習段階ｓ＝３（ステップ３）に対応する図６に例示したおすすめ練習機能データ６０４を抽出する。そして、ＣＰＵ９０１は、おすすめ練習機能データ６０４に対応する練習機能を、ＭＩＤＩ  Ｉ／Ｆ９０６を介してＭＩＤＩデータとして、電子楽器９０８の機能設定部に設定する（ステップＳ１１２５）。ステップ３の練習段階では、最適なテンポが設定されたり、また、現在の演奏のテンポを視覚的に表示してテンポを意識させる機能等の、テンポ練習系機能が設定される。
【０１３７】
ステップ３未達成リストに小節が登録されておらずステップＳ１１２１の判定がＮＯならば、ＣＰＵ９０１は、今度は未達成リストではなく、ＲＡＭ９０３上に記憶されているフレーズ境界位置リストに値があるか否かを判定する（ステップＳ１１２６）。
【０１３８】
フレーズ境界位置リストに１つでも小節が登録されていてステップＳ１１２６の判定がＹＥＳならば、ステップ１，２，３の場合と同様に、ＣＰＵ９０１は、練習ステップを示すＲＡＭ９０３上の変数ｓにステップ４を示す値４をセットする（ステップＳ１１２７）。これにより、次の練習段階は、楽曲の演奏進行の滑らかさに関するステップ４に決定される。
【０１３９】
続いて、ＣＰＵ９０１は、ＲＡＭ９０３に記憶された図６に例示される練習段階テーブル６００を参照することにより、練習段階ｓ＝４（ステップ４）に対応する図６に例示したフレーズ分割方法データ６０２を抽出し、小節完成度データ８０１（図８）中の連続正解フラグ（前）と連続正解フラグ（後）のうち例えば連続正解フラグ（後）が不正解を示す小節境界で分割されたフレーズを決定する（ステップＳ１１２８）。
【０１４０】
次に、ＣＰＵ９０１は、同じく練習段階テーブル６００を参照することにより、練習段階ｓ＝４（ステップ４）に対応する図６に例示した繰返し方法データ６０３を抽出し、図５に例示したような方法による２フレーズからなるフレーズ組内の小節に関する練習順番を設定する（ステップＳ１１２９）。
【０１４１】
さらに、ＣＰＵ９０１は、同じく練習段階テーブル６００を参照することにより、練習段階ｓ＝４（ステップ４）に対応する図６に例示したおすすめ練習機能データ６０４を抽出する。そして、ＣＰＵ９０１は、おすすめ練習機能データ６０４に対応する練習機能を、ＭＩＤＩ  Ｉ／Ｆ９０６を介してＭＩＤＩデータとして、電子楽器９０８の機能設定部に設定する（ステップＳ１１３０）。ステップ４の練習段階では、練習範囲の全体を通した楽曲の雰囲気がつかめるように、様々な演奏効果が設定される等の、動作練習系機能が設定される。
【０１４２】
以上のようにして、ＣＰＵ９０１は、ステップ１，２，３，または４のいずれかの練習段階とそれに関連する制御情報の設定が完了すると、ステップＳ１１１５，Ｓ１１２０，Ｓ１１２５，またはＳ１１３０からステップＳ１１３１の処理に移行する。
【０１４３】
ＣＰＵ９０１は、ステップＳ１１３１で、ステップ１から４の各ステップ毎に練習対象として決定されたフレーズ（またはフレーズの組）および各フレーズ内での小節の練習順番に基づいて図７に例示した練習順番データ７０１からなる練習順番リスト７００を生成する、練習順番リスト生成処理を実行する。ここでは、ＣＰＵ９０１は、前述した、図１に示される練習順番決定部１０２での図７に例示される練習順番リスト７００の生成とＲＡＭ９０３への記憶の処理を実行する。この処理の詳細は、図１４のフローチャートを用いて後述する。
【０１４４】
ＣＰＵ９０１は、ステップＳ１１３１によって図７に例示される練習順番リスト７００を生成しＲＡＭ９０３に記憶させると、ＲＡＭ９０３上の自動練習中フラグをオンに（例えば値１をセット）し、自動練習を開始する（ステップＳ１１３２１）。その後、ＣＰＵ９０１は、図１１および図１２のフローチャートで示される図１０のステップＳ１００４の自動練習設定処理を終了する。そして、ＣＰＵ９０１は、図１０のステップＳ１００５からＳ１００９の繰返し処理に移行し、自動練習を開始する。
【０１４５】
図１２において、フレーズ境界位置リストに小節が登録されておらずステップＳ１１２６の判定がＮＯならば、ＣＰＵ９０１は、練習が完了したと判定して、自動練習終了処理を実行する（ステップＳ１１３３）。この処理では、ＣＰＵ９０１は、例えばＲＡＭ９０３内の自動練習関連の制御データを削除したり、ＭＩＤＩ  Ｉ／Ｆ９０６を介して電子楽器９０８に対する練習機能の設定をクリアしたりする。最後に、ＣＰＵ９０１は、ＲＡＭ９０３上の自動練習中フラグをオフにして、図１１および図１２のフローチャートで示される図１０のステップＳ１００４の自動練習設定処理を終了する。この結果、図１０のステップＳ１００５→ステップＳ１００６の判定がＮＯ→ステップＳ１００９→ステップＳ１００５の繰返し処理により、入力部９０４からのユーザによる練習モードの変更の指定（ステップＳ１００５）、または練習の終了の指定（ステップＳ１００９）を待機する状態になる。
【０１４６】
図１３は、図１１のステップＳ１１１０の全体練習範囲内の達成状況更新処理を示すフローチャートである。ここでは、ＣＰＵ９０１は、図１に示される達成状況更新部１０４の機能に対応する処理を実行する。
【０１４７】
ＣＰＵ９０１は、まず、小節の繰返し制御のためのＲＡＭ９０３上の変数ｉに、図１１のステップＳ１１０８またはＳ１１０９で選択された全体練習範囲（図２を例を参照）の開始小節の番号をセットする（ステップＳ１３０１）。その後、ＣＰＵ９０１は、ステップＳ１３１１で変数ｉの値が全体練習範囲の終了小節の番号より小さいと判定される間、ステップＳ１３１２で変数ｉの値を＋１ずつインクリメントしながら、変数ｉによって指定される全体練習範囲内の各小節毎に、以下のステップＳ１３０２からＳ１３１０までの一連の処理を実行する。
【０１４８】
ＣＰＵ９０１はまず、前回の自動練習時の練習段階のステップ番号を記憶しているＲＡＭ９０３上の変数ｓの値が４であるか否か、すなわち前回の練習段階がステップ４であるか否かを判定する（ステップＳ１３０２）。
【０１４９】
前回の練習段階がステップ４ではなく（ステップ１，２，３のいずれかで）、Ｓ１３０２の判定がＮＯならば、ＣＰＵ９０１は、まず、全体練習範囲内の変数ｉの値が示すｉ番目の小節において、ユーザの演奏が音高の演奏要素についての練習基準を達成しているか否かを判定する（ステップＳ１３０３）。具体的には、ＣＰＵ９０１は、図８に例示される＃ｉの小節完成度データ８０１に記憶されている音高達成率が音高達成率のための閾値に比較して大きいか否かを判定する。
【０１５０】
ＣＰＵ９０１は、音高が達成されておらず（音高達成率が閾値に比較して小さく）、ステップＳ１３０３の判定がＮＯならば、ＲＡＭ９０３に記憶される例えば配列データであるステップ１未達成リストに、変数ｉの値である小節番号ｉを追加登録する（ステップＳ１３０４）。その後、ＣＰＵ９０１は、ステップＳ１３１１の処理に移行する。
【０１５１】
ＣＰＵ９０１は、音高が達成されており（音高達成率が閾値に比較して大きく）、ステップＳ１３０３の判定がＹＥＳならば、次に、全体練習範囲内の変数ｉの値が示すｉ番目の小節において、ユーザの演奏がリズムの演奏要素についての練習基準を達成しているか否かを判定する（ステップＳ１３０５）。具体的には、ＣＰＵ９０１は、図８に例示される＃ｉの小節完成度データ８０１に記憶されているリズム達成率がリズム達成率のための閾値に比較して大きいか否かを判定する。
【０１５２】
ＣＰＵ９０１は、リズムが達成されておらず（リズム達成率が閾値に比較して小さく）、ステップＳ１３０５の判定がＮＯならば、ＲＡＭ９０３に記憶される例えば配列データであるステップ２未達成リストに、変数ｉの値である小節番号ｉを追加登録する（ステップＳ１３０６）。その後、ＣＰＵ９０１は、ステップＳ１３１１の処理に移行する。
【０１５３】
ＣＰＵ９０１は、リズムが達成されており（リズム達成率が閾値に比較して大きく）、ステップＳ１３０５の判定がＹＥＳならば、次に、全体練習範囲内の変数ｉの値が示すｉ番目の小節において、ユーザの演奏がテンポの演奏要素についての練習基準を達成しているか否かを判定する（ステップＳ１３０７）。具体的には、ＣＰＵ９０１は、図８に例示される＃ｉの小節完成度データ８０１に記憶されているテンポ達成率がテンポ達成率のための閾値に比較して大きいか否かを判定する。
【０１５４】
ＣＰＵ９０１は、テンポが達成されておらず（テンポ達成率が閾値に比較して小さく）、ステップＳ１３０７の判定がＮＯならば、ＲＡＭ９０３に記憶される例えば配列データであるステップ３未達成リストに、変数ｉの値である小節番号ｉを追加登録する（ステップＳ１３０８）。その後、ＣＰＵ９０１は、ステップＳ１３１１の処理に移行する。
【０１５５】
ＣＰＵ９０１は、テンポについても達成されており（テンポ達成率が閾値に比較して大きく）、ステップＳ１３０７の判定がＹＥＳならば、楽曲の演奏進行の滑らかさに対する達成状況を判定するためのステップＳ１３０９の処理に移行する。
【０１５６】
ＣＰＵ９０１は、前回の練習段階がステップ４でＳ１３０２の判定がＹＥＳの場合、または上述したように、音高、リズム、およびテンポの全てについてユーザの演奏が練習基準を達成しておりステップＳ１３７０の判定がＹＥＳの場合には、ステップＳ１３０９を実行する。
【０１５７】
ＣＰＵ９０１は、ステップＳ１３０９において、全体練習範囲内の変数ｉの値が示す、図８に例示される＃ｉの小節完成度データ８０１に記憶されている連続正解フラグ（後）が正解を示している（値が真である）か否かを判定する。
【０１５８】
ＣＰＵ９０１は、連続正解フラグ（後）が正解を示しておらずステップＳ１３０９の判定がＮＯならば、ＲＡＭ９０３に記憶される例えば配列データであるフレーズ境界位置リストに、変数ｉの値である小節番号ｉを追加登録する（ステップＳ１３１０）。その後、ＣＰＵ９０１は、ステップＳ１３１１の処理に移行する。
【０１５９】
ＣＰＵ９０１は、連続正解フラグ（後）が正解を示しておりステップＳ１３０９の判定がＹＥＳならば、変数ｉの値である小節番号ｉに関しては、未達成リストおよびフレーズ境界位置リストへの登録は行わずに、ステップＳ１３１１の処理に移行する。
【０１６０】
ＣＰＵ９０１が、以上の未達成リストまたはフレーズ境界位置リストへの登録処理を、全体練習範囲の開始小節から終了小節までの全ての小節ｉ（１≦ｉ≦ｍ）について実行することにより、図１の達成状況更新部１０４の機能が実現される。変数ｉの値が全体練習範囲の終了小節に等しくなると、ステップＳ１３１１の判定がＮＯとなって、ＣＰＵ９０１は、図１３のフローチャートで示される図１０のステップＳ１１１０の全体練習範囲内の達成状況更新処理を終了する。
【０１６１】
図１４は、図１１および図１２の自動練習設定処理におけるステップＳ１１３１（図１２）の練習順番リスト生成処理を示すフローチャートである。ここでは、ＣＰＵ９０１は、図１に示される練習順番決定部１０２の一部の機能に対応する処理を実行する。
【０１６２】
ＣＰＵ９０１は、まず、フレーズの繰返し制御のためのＲＡＭ９０３上の変数ｉに、図１２のステップＳ１１１３、Ｓ１１１８、Ｓ１１２３、またはＳ１１２８で決定したフレーズの先頭番号＝１をセットする（ステップＳ１４０１）。その後、ＣＰＵ９０１は、ステップＳ１４０７で変数ｉの値が上記決定されたフレーズの数より小さいと判定される間、ステップＳ１４０８で変数ｉの値を＋１ずつインクリメントしながら、変数ｉによって指定される各フレーズ毎に、以下のステップＳ１４０２からＳ１４０６までの一連の処理を実行する。
【０１６３】
ＣＰＵ９０１はまず、ステップＳ１１１２、Ｓ１１１７、Ｓ１１２２、またはＳ１１２７で決定しＲＡＭ９０３上の変数ｓに記憶させた次回の（これから実行される）練習ステップ（練習段階）の番号が４であるか否か、すなわち次回の練習段階がステップ４であるか否かを判定する（ステップＳ１４０２）。
【０１６４】
次回の練習段階がステップ４ではなくＳ１４０２の判定がＮＯの場合（ステップ１，２，３のいずれかの場合）、ＣＰＵ９０１は、変数ｉが示すｉ番目のフレーズ内に、ＲＡＭ９０３に記憶されているステップｓ未達成リストに登録されている小節が含まれるか否かを判定する（ステップＳ１４０３）。
【０１６５】
ステップＳ１４０３の判定がＹＥＳならば、変数ｉが示すｉ番目のフレーズｉは練習対象であるため、ＣＰＵ９０１は、フレーズｉ内で、ステップＳ１１１４、Ｓ１１１９、またはＳ１１２４で決定した練習順番に従って、図７に例示されるデータ形式で、練習順番データ７０１を順次生成し、練習順番リスト７００の構成要素としてＲＡＭ９０３に記憶させる。練習順番に従って１組の連続する小節群が決定される毎に、その先頭小節と最終小節の各番号が練習開始小節と練習終了小節にセットされた練習順番データ７０１が１つ生成される。ステップ１，２の場合の練習順番の生成の仕方は図３を例に前述した通りであり、ステップ３の場合の練習順番の生成の仕方は図４を例に前述した通りである。その後、ＣＰＵ９０１は、ステップＳ１４０７の処理に移行する。
【０１６６】
ステップＳ１４０３の判定がＮＯならば、変数ｉが示すｉ番目のフレーズｉは練習対象ではないため、ＣＰＵ９０１は、練習順番データ７０１は生成せずに、ステップＳ１４０７の処理に移行する。
【０１６７】
次回の練習段階がステップ４でＳ１４０２の判定がＹＥＳの場合、ＣＰＵ９０１は、変数ｉが示すｉ番目のフレーズｉと、その次のｉ＋１番目のフレーズｉ＋１の連続する２フレーズ内で、ステップＳ１１２９で決定した練習順番に従って、図７に例示されるデータ形式で、練習順番データ７０１を順次生成し、練習順番リスト７００の構成要素としてＲＡＭ９０３に記憶させる（ステップＳ１４０５）。ここでは、ステップＳ１４０４の場合と同様に、練習順番に従って１組の連続する小節群が決定される毎に、その先頭小節と最終小節の各番号が練習開始小節と練習終了小節にセットされた練習順番データ７０１が１つ生成される。この場合の練習順番の生成の仕方は、前述した図５の例における、練習順番１，２，３，４，６，７が対応する。なお、この場合に、ステップＳ１４０３の場合と同様、フレーズｉとフレーズｉ＋１の連続する２フレーズ間が、演奏進行が滑らかでないと判定された「フレーズ境界位置リスト」に登録されている場合のみ、このステップＳ１４０５やステップＳ１４０６の練習順番生成を行うこととしても良い。
続いて、ＣＰＵ９０１は、現在の練習区間の先頭のフレーズ１から、フレーズｉ＋１までの連続するフレーズ内で、通しの練習順番を有する練習順番データ７０１を生成し、練習順番リスト７００の構成要素としてＲＡＭ９０３に記憶させる（ステップＳ１４０６）。この通しの練習順番の生成の仕方は、前述した図５の例における練習順番５，８が対応する。
その後、ＣＰＵ９０１は、ステップＳ１４０７の処理に移行する。
【０１６８】
ＣＰＵ９０１が、以上の練習順番リスト７００への練習順番データ７０１の登録処理を、決定された全てのフレーズｉ（１≦ｉ≦決定されたフレーズ数）について実行することにより、図１の練習順番決定部１０２が練習順番リスト７００を生成する機能が実現される。変数ｉの値が決定されたフレーズ数に等しくなると、ステップＳ１４０７の判定がＮＯとなって、ＣＰＵ９０１は、図１４のフローチャートで示される図１２のステップＳ１１３１の練習順番リスト生成処理を終了する。
【０１６９】
図１５は、図１０のステップＳ１００７の演奏評価処理を示すフローチャートである。ここでは、図１に示される演奏評価部１０３の機能に対応する処理が実行される。ＣＰＵ９０１は、音高、リズム、テンポ、楽曲の演奏進行の滑らかさの各演奏要素について、ノートオン毎に、ユーザにより演奏された音符の演奏データについて自動練習における楽曲の各音符に対する正誤判定を行って、ユーザの演奏を評価する。ＣＰＵ９０１は、音符毎の正誤判定の結果に基づいて、小節単位で、音高、リズム、テンポの各達成率と、連続正解フラグ（前）および連続正解フラグ（後）を算出し、ＲＡＭ９０３上の図８に例示される小節完成度データ８０１に記憶させる。
【０１７０】
図１５において、ＣＰＵ９０１はまず、現在ユーザがパート練習中か否かを判定する（ステップＳ１５０１）。「パート練習中」とは、ユーザが電子楽器９０８において例えば、パート練習中でないときに、最初に鍵盤を押鍵することにより練習を開始してから、ノートオフ後所定の時間ノートオンがなされない等の所定の条件に合致して「パート練習終了」と判断されるまでの期間をいう。自動練習の開始時には、パート練習はまだ開始されていないため、ステップＳ１５０１の判定はＮＯとなる。
【０１７１】
ステップＳ１５０１の判定がＮＯの場合、ＣＰＵ９０１は、パート練習開始の状態になったか否かを判定する
【０１７２】
ユーザがまだ押鍵等を開始していないとパート練習開始の状態にはならず、ステップＳ１５０１の判定はＮＯとなる。この場合には、ＣＰＵ９０１は、ステップＳ１５０８で小節完成度データ８０１をセットした後、図１５のフローチャートで示される図１０のステップＳ１００７の演奏評価処理を終了する。その後、図１０において、ステップＳ１００８の判定がＮＯ、ステップＳ１００９の判定がＮＯ、ステップＳ１００５の判定がＮＯ、ステップＳ１００６の判定がＹＥＳとなって、再び図１５のフローチャートで示されるステップＳ１００７が実行される。
【０１７３】
上述のように、ユーザが押鍵等によるノートオンを開始するまでは、図１５のＳ１５０１がＮＯ→Ｓ１５０２がＮＯ→Ｓ１５０８→図１０のＳ１００８がＮＯ→Ｓ１００９がＮＯ→Ｓ１００５がＮＯ→Ｓ１００６がＹＥＳ→Ｓ１５０１がＮＯという一連の処理が繰り返される（これを「第１の繰返し処理」と呼ぶ）。
【０１７４】
ユーザが押鍵等によるノートオンを行ってパート練習が開始されると、ＣＰＵ９０１は、ＲＡＭ９０３上に記憶されるパート練習中フラグをオンに（例えば値１をセット）する（ステップＳ１５０３）。パート練習中は、ユーザの押鍵・離鍵の操作に応じて、適宜ノートオン・ノートオフ等のデータがＭＩＤＩ  Ｉ／Ｆ９０６を介して、ＭＩＤＩデータとして電子楽器９０８からＲＡＭ９０３上のノート入力バッファに記憶される。また、このパート練習中となることによって、上記第１の繰返し処理中の図１５のステップＳ１５０２の判定がＹＥＳとなり、パート練習中は、ユーザの押鍵・離鍵の操作に応じたノートオン・ノートオフ等のデータがＲＡＭ９０３上のノート入力バッファに記憶されていくこととなる。
【０１７５】
続いて、ＣＰＵ９０１は、パート演奏終了の状態になったか否かを判定する（ステップＳ１５０４）。これは、例えば、パート練習中となっているときに、ユーザが全く押鍵していない状態が、例えば所定の時間続いた（例えば２秒間全く押鍵されない等）場合に、「パート演奏終了」と判断する。所定の時間は、曲のテンポやリズム、曲中に出現する休符長などを参考として決定される。ユーザが押鍵等を行って、パート練習中の状態を維持している間は、パート演奏終了の状態にはならず、ステップＳ１５０４の判定はＮＯとなる。この場合には、ＣＰＵ９０１は、ステップＳ１５０８で小節完成度データ８０１をセットした後、図１０のステップＳ１００８へ戻り、さらに処理を進める。その後、図１０において、ステップＳ１００８の判定がＮＯ、ステップＳ１００９の判定がＮＯ、ステップＳ１００５の判定がＮＯ、ステップＳ１００６の判定がＹＥＳとなって、再び図１５のフローチャートで示されるステップＳ１００７が実行される。そして、パート練習中フラグがオンになっているため、図１５のステップＳ１５０１の判定はＹＥＳになる。
【０１７６】
このようにして、ユーザが押鍵等によるノートオンを維持している間は、図１５のＳ１５０１がＹＥＳ→Ｓ１５０４がＮＯ→Ｓ１５０８→図１０のＳ１００８がＮＯ→Ｓ１００９がＮＯ→Ｓ１００５がＮＯ→Ｓ１００６がＹＥＳ→Ｓ１５０１がＹＥＳという一連の処理が繰り返される（これを「第２の繰返し処理」と呼ぶ）。なお、ユーザが押鍵等していないという状態も、演奏評価の対象となることから、第２の繰返し処理の中では、ノートオン・ノートオフの状態に拘わらず、パート練習中は、図１５のステップＳ１５０８で小節完成度データ８０１がセットされる処理が実行される
【０１７７】
パート練習中となっているときに、ユーザが全く押鍵していない状態が所定の時間続く等、所定の条件に合致すると、「パート演奏終了」であると判断されて、上記第２の繰返し処理中の図１５のステップＳ１５０４の判定がＹＥＳとなる。
【０１７８】
ステップＳ１５０４の判定がＹＥＳになると、ＣＰＵ９０１はまず、パート練習中フラグをオフに（例えば値０をセット）する。
【０１７９】
次に、ＣＰＵ９０１は、ＲＡＭ９０３上のノート入力バッファに記憶された、ノートオン・ノートオフ等の値を演奏データの正誤判定用のＲＡＭ９０３上の別の領域にコピーし、ノート入力バッファの内容を初期化する（新たにノートオンまたはノートオフデータを入力できる状態にする）（ステップＳ１５０６）。
【０１８０】
続いて、ＣＰＵ９０１は、上記コピーされたデータに基づいて、ユーザにより演奏された音符の演奏データについて自動練習における楽曲の各音符に対する正誤判定を行う（ステップＳ１５０７）。
【０１８１】
ＣＰＵ９０１は、ステップＳ１５０８で、ここまでの自動練習に基づき、現在の小節内での音高達成率、リズム達成率、テンポ達成率を更新し、それらの結果を現在の小節に対応する小節完成度データ８０１（図８参照）に記憶させる。また、現在の小節において１つ前の小節からの演奏の連続性が所定の基準のもとで維持されている場合には、ＣＰＵ９０１は、１つ前の小節の連続正解フラグ（後）と現在の小節の連続正解フラグをともに正解を示す値（例えば値１）にセットし、それぞれの小節の小節完成度データ８０１に記憶させる（以上、ステップＳ１５０８）。
【０１８２】
ＣＰＵ９０１は、ステップＳ１５０８を実行した後、図１５のフローチャートで示される図１０のステップＳ１００７の演奏評価処理を終了する。その後、図１０において、ステップＳ１００８の判定がＮＯ、ステップＳ１００９の判定がＮＯ、ステップＳ１００５の判定がＮＯ、ステップＳ１００６の判定がＹＥＳとなって、再び図１５のフローチャートで示されるステップＳ１００７が実行される。そして、パート練習中フラグがオフになっていた場合は、図１５のステップＳ１５０１の判定はＮＯになる。この結果、ユーザが次に押鍵等してパート練習が開始されるまで、再び前述した第１の繰返し処理になる。
【０１８３】
以上のようにして、図１５のフローチャートで示される図１０のステップＳ１００７の演奏評価処理では、自動練習における楽曲の各音符と、ユーザの演奏で発生する各音符とを順次比較することにより、現在の練習段階に対応する演奏要素をユーザの演奏が満たしているか否かを順次評価することが可能となる。
【０１８４】
以上説明した制御動作に加えて、ＣＰＵ９０１は例えば、図１１のステップＳ１１１０の全体練習範囲の達成状況更新処理において、前回の練習段階におけるユーザの演奏の達成状況を確認した後、例えば図９の表示部９０５の液晶ディスプレイ等に、練習の進捗を表示するような制御を行ってもよい。図１６は、練習進捗の表示例を示す図である。本実施形態による演奏練習制御処理では、ある練習区間について、ユーザの演奏→正誤判定→所定回数判定→次の練習範囲という順序で行っていくように、制御が行われてもよい。図１６に例示されるように、この場合の練習進捗の表示では例えば、ある練習区間の演奏正解の回数が左上の星の色が濃くなった数で表示され、その数が所定回数分になると次の練習範囲へ進むというようにユーザに認識させることができる。また、図１６に例示されるように、フレーズの長さが横方向の棒グラフで表示され、その棒グラフ中で色が濃い部分が右端まで一杯になると現在のステップが完了したというようにユーザに認識させることができる。
【０１８５】
以上の実施形態において、ユーザが自動練習を中断させた場合（例えば図１０のステップＳ１００９の判定がＮＯとなった場合）に、自動練習の途中経過を特には図示しない不揮発性のメモリに保存し、次回ユーザが自動練習を再開させた場合に、この保存内容を再度呼び出して途中から自動練習を再開するようにしてもよい。
【０１８６】
なお。上記の実施形態において、図６のテーブルで示されている各種の設定について、ユーザが適宜設定を変更できるようにしても良い。例えば、ステップＳ１１０６で、フレーズの分割方法／繰返し方法を設定変更できることとしているが、例えば、「先頭から３小節ずつ区切る」の小節数を、適宜設定変更できるようにしても良い。また、あらかじめ他に複数のフレーズ分割方法を実現する回路若しくは処理プログラムが備えられており、それらの中からユーザが所望する方法を指定する形で実現可能である。また、このような選択的な指定方法は、図６の他のテーブルの部分についても、同様に実現することができる。
また、図６のテーブルそのものが記憶されていなくても、このようなテーブルで示したのと同等の処理分岐を行うように、あらかじめ機器がセットされていることとしても良い。
【０１８７】
以上のようにして、本実施形態では、練習を段階別に分け、最適な練習範囲を設定して自動練習をすることができるので、ユーザは演奏の実践部分にだけ集中することができる。このようにして、本実施形態では、音高、リズム、テンポ、楽曲の演奏進行の滑らかさといった演奏要素毎の練習が可能となり、それぞれの練習の練習範囲長や練習順序の設定が自動化され、自動で練習の目的に合わせた機能を提供できる。これにより、練習効率を向上させることが可能となる。
【０１８８】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
指定された楽曲内の練習範囲におけるユーザの演奏の達成状況に応じて、前記楽曲の演奏の評価基準となる演奏要素に対応する練習段階を決定する練習段階決定部と、
当該決定された練習段階および前記達成状況に基づいて、前記練習範囲内に含まれる複数のフレーズの中からユーザに演奏の練習を行わせるフレーズを決定するとともに、当該決定されたフレーズを構成している複数の小節のうち少なくとも１以上の小節をどのような順番で練習させるのかを指定するための練習順番を決定する練習順番決定部と、
前記決定された練習順番にて順次指定される小節により定められた練習区間内で、前記ユーザの演奏を前記対応する演奏要素に基づいて評価する演奏評価部と、
前記評価結果に基づいて、前記対応する演奏要素でかつ、前記決定された練習段階における前記ユーザの演奏の新たな達成状況を決定し、当該新たな達成状況により、前記達成状況を更新する達成状況更新部と、
を備えることを特徴とする演奏練習装置。
（付記２）
前記練習段階毎に、前記練習範囲内を複数のフレーズに分割するための分割方法を指定するフレーズ分割方法データと、前記練習段階毎に選択され、前記フレーズに含まれる小節のいずれかを繰り返し練習させるための繰返し方法を指定する繰返し方法データとを登録した練習段階テーブルをさらに備え、
前記練習順番決定部は、前記練習段階テーブルから、前記決定された練習段階に対応する前記フレーズ分割方法データおよび前記繰返し方法データを抽出し、当該抽出した当該フレーズ分割方法データおよび前記達成状況に基づいて前記ユーザに演奏の練習を行わせるフレーズを決定するとともに、当該抽出した前記繰返し方法データに基づいて前記決定されたフレーズにおける練習順番を決定する、
ことを特徴とする付記１に記載の演奏練習装置。
（付記３）
前記練習順番決定部は、前記決定されたフレーズにおける練習順番に基づいて、前記各練習区間を示す練習開始小節および練習終了小節を表す練習順番データリストを順次生成して記憶し、
前記演奏評価部は、前記練習順番データリストから前記練習順番データを順次読み出し、当該読み出された練習順番データ中の前記練習開始小節から前記練習終了小節までの間での前記ユーザの演奏を評価する、
ことを特徴とする付記１または２のいずれかに記載の演奏練習装置。
（付記４）
前記演奏要素は、前記楽曲を構成する各音符の音高、前記楽曲のリズム、テンポ、および前記楽曲の演奏進行の滑らかさを含む、
ことを特徴とする付記１ないし３のいずれかに記載の演奏練習装置。
（付記５）
前記練習段階に対応する演奏要素が、前記音高、前記リズム、または前記テンポのいずれかである場合、
前記演奏評価部は、前記練習区間に含まれる小節毎に、当該小節内の各音符と前記ユーザの演奏により指示される各音符とを順次比較することにより、前記小節における前記演奏要素毎のユーザの演奏の完成度を算出して小節完成度データとして記憶し、
前記達成状況更新部は、前記練習区間に含まれる小節が、前記各演奏要素のいずれかにおいて完成度が所定の閾値に達していない場合、当該小節と前記完成度に達していない演奏要素に対応する練習段階とを未達成リストに登録し、
前記練習段階決定部は、前記未達成リストに登録された小節と練習段階とに基づいて、前記ユーザの演奏の達成状況を判別し、
前記練習順番決定部は、前記決定された練習段階の演奏要素に対応する前記未達成リストに登録されている小節が含まれるフレーズに基づいて、ユーザに演奏の練習を行わせるフレーズを決定する、
ことを特徴とする付記４に記載の演奏練習装置。
（付記６）
前記練習段階に対応する演奏要素が、演奏進行の滑らかさである場合、
前記演奏評価部は、前記練習区間に含まれる小節毎に、当該小節とそれに隣接する小節とを連続して演奏する練習において、前記ユーザの演奏が予め定められた演奏基準を満たすか否かを示す連続正解フラグを前記小節完成度データとして記憶し、
前記達成状況更新部は、前記練習区間に含まれる各小節において、当該小節に対応する前記連続正解フラグが前記演奏基準を満たさないことを示す場合に、前記小節をフレーズ境界位置リストに登録し、
前記練習段階決定部は、前記フレーズ境界位置リストに前記小節のいずれかが登録されている場合に、次の前記練習段階として、前記楽曲の演奏進行の滑らかさに対応する練習段階を決定し、
前記練習順番決定部は、前記フレーズ境界位置リストに登録されている小節をフレーズ境界とするフレーズを決定する、
ことを特徴とする付記４または５のいずれかに記載の演奏練習装置。
（付記７）
前記練習段階が決定された後、当該決定された練習段階に対応する練習機能を設定する練習機能設定部を更に備える、
ことを特徴とする付記１ないし６のいずれかに記載の演奏練習装置。
（付記８）
演奏練習装置が、
指定された楽曲内の練習範囲におけるユーザの演奏の達成状況に応じて、前記楽曲の演奏の評価基準となる演奏要素に対応する練習段階を決定し、
当該決定された練習段階および前記達成状況に基づいて、前記練習範囲内に含まれる複数のフレーズの中からユーザに演奏の練習を行わせるフレーズを決定するとともに、当該決定されたフレーズを構成している複数の小節のうち少なくとも１以上の小節をどのような順番で練習させるのかを指定するための練習順番を決定し、
前記決定された練習順番にて順次指定される小節により定められた練習区間内で、前記ユーザの演奏を前記対応する演奏要素に基づいて評価し、
前記評価結果に基づいて、前記対応する演奏要素でかつ、前記決定された練習段階における前記ユーザの演奏の新たな達成状況を決定し、当該新たな達成状況により、前記達成状況を更新する、演奏練習方法。
（付記９）
演奏練習装置として用いられるコンピュータに、
指定された楽曲内の練習範囲におけるユーザの演奏の達成状況に応じて、前記楽曲の演奏の評価基準となる演奏要素に対応する練習段階を決定するステップと、
当該決定された練習段階および前記達成状況に基づいて、前記練習範囲内に含まれる複数のフレーズの中からユーザに演奏の練習を行わせるフレーズを決定するとともに、当該決定されたフレーズを構成している複数の小節のうち少なくとも１以上の小節をどのような順番で練習させるのかを指定するための練習順番を決定するステップと、
前記決定された練習順番にて順次指定される小節により定められた練習区間内で、前記ユーザの演奏を前記対応する演奏要素に基づいて評価するステップと、
前記評価結果に基づいて、前記対応する演奏要素でかつ、前記決定された練習段階における前記ユーザの演奏の新たな達成状況を決定し、当該新たな達成状況により、前記達成状況を更新するステップと、
を実行させる演奏練習プログラム。
【符号の説明】
【０１８９】
１００  演奏練習装置
１０１  練習段階決定部
１０２  練習順番決定部
１０３  演奏評価部
１０４  達成状況確認部
１０５  練習段階テーブル
１０６  練習機能設定部
１０７  自動練習繰返し部
６００  練習段階テーブル
６０１  練習段階データ
６０２  フレーズ分割方法データ
６０３  繰返し方法データ
６０４  おすすめ練習機能データ
６０５  目的データ
６０６  音高の判定合否データ
６０７  リズムの判定合否データ
６０８  テンポの判定合否データ
６０９  練習目標データ
６１０  最適練習範囲データ
７００  練習順番リスト
７０１  練習順番データ
８０１  小節完成度データ
９０１  ＣＰＵ
９０２  ＲＯＭ
９０３  ＲＡＭ
９０４  入力部
９０５  表示部
９０６  ＭＩＤＩインタフェース部（ＭＩＤＩ  Ｉ／Ｆ）
９０７  バス
９０８  電子楽器
【図１】
0005983573.tif 000002
【図６】
0005983573.tif 000003
【図７】
0005983573.tif 000004
【図８】
0005983573.tif 000005
【図９】
0005983573.tif 000006
【図１０】
0005983573.tif 000007
【図１１】
0005983573.tif 000008
【図１２】
0005983573.tif 000009
【図１３】
0005983573.tif 000010
【図１４】
0005983573.tif 000011
【図１５】
0005983573.tif 000012
【図２】
0005983573.tif 000013
【図３】
0005983573.tif 000014
【図４】
0005983573.tif 000015
【図５】
0005983573.tif 000016
【図１６】
0005983573.tif 000017