(57)【要約】【課題】操作子を振る動きの適否を指揮者自身に教示する操作練習装置を実現する。【解決手段】ＣＰＵ１０は、設定されたテンポ値に応じた拍タイミングを発生させておき、センザ部１３が操作子部１の動きから拍を刻む動作を検出して割り込みイベントＴＡＫＴを発生すると、その割り込みイベントＴＡＫＴが発生したタイミングに基づき拍を刻む動作が拍タイミングに一致するか、拍タイミングより遅いか、拍タイミングより早いかを判別する。拍タイミングに一致する場合には次の拍タイミングに同期して把持部２を１回振動させ、拍タイミングより遅い場合には次の拍タイミングに同期して把持部２を２回振動させ、拍タイミングより早い場合には次の拍タイミングに同期して把持部２を３回振動させることで操作子を振る動きの適否を指揮者自身に教示できる。【選択図】図２
2015060031.tif 000002
【特許請求の範囲】
【請求項１】
設定されたテンポ値に応じた拍タイミングを検出する拍タイミング検出手段と、
操作子の動きから拍を刻む動作を検出する動作検出手段と、
前記動作検出手段が拍を刻む動作を検出した検出タイミングと、前記拍タイミング検出手段が検出した拍タイミングとに応じて、振動発生手段により発生される振動の形態を制御する振動制御手段と
を具備することを特徴とする操作練習装置。
【請求項２】
前記拍タイミング検出手段は、テンポ進行データを含む曲データを有し、当該曲データのテンポ進行データに従い、曲進行に伴って変化するテンポ値に応じた拍タイミングを検出することを特徴とする請求項１記載の操作練習装置。
【請求項３】
前記振動制御手段は、検出タイミングが拍タイミングに一致するか、拍タイミングより遅いか、あるいは拍タイミングより早いかを判別し、その判別結果に応じて、次の拍タイミングに同期して前記振動発生手段が発生する振動形態を異ならせることを特徴とする請求項１または２に記載の操作練習装置。
【請求項４】
前記振動制御手段は、前記検出タイミングが拍タイミングに一致する場合に次の拍タイミングに同期して前記振動発生手段に１回振動を発生させ、
前記検出タイミングが拍タイミングより遅い場合に次の拍タイミングに同期して前記振動発生手段に２回振動を発生させ、
前記検出タイミングが拍タイミングより早い場合に次の拍タイミングに同期して前記振動発生手段に３回振動を発生させることを特徴とする請求項３記載の操作練習装置。
【請求項５】
前記振動制御手段は、検出タイミングが拍タイミングに一致する場合には無振動とし、拍タイミングから遅れた場合には前記振動発生手段に振動を一定期間発生させ、拍タイミングより早い場合には当該振動よりゆっくりした振動を一定期間発生させることを特徴とする請求項３記載の操作練習装置。
【請求項６】
前記振動制御手段は、検出タイミングが拍タイミングに一致する場合には無振動とし、検出タイミングが拍タイミングに対して前後所定時間未満の遅れや進みの場合に弱い振動を発生させ、検出タイミングが拍タイミングに対して前後所定時間以上の遅れや進みの場合に強い振動を発生させることを特徴とする請求項３記載の操作練習装置。
【請求項７】
設定されたテンポ値に応じた拍タイミングを検出し、
操作子の動きから拍を刻む動作を検出し、
拍を刻む動作を検出した検出タイミングと拍タイミングとに応じて、振動発生手段により発生される振動の形態を制御する
ことを特徴とする操作練習方法。
【請求項８】
コンピュータに、
設定されたテンポ値に応じた拍タイミングを検出する拍タイミング検出ステップと、
操作子の動きから拍を刻む動作を検出する動作検出ステップと、
前記動作検出ステップが拍を刻む動作を検出した検出タイミングと、前記拍タイミング検出ステップで検出する拍タイミングとに応じて、振動発生手段により発生せさる振動の形態を制御する振動制御ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指揮棒を振る動きの適否を指揮者自身に教示する操作練習装置、操作練習方法およびプログラムに関する。
【背景技術】
【０００２】
指揮者が振る指揮棒の動きを検出して演奏者に伝える技術が知られている。この種の技術として、例えば特許文献１には、指揮者側に設けられる送信部と、演奏者側に設けられる受信部とから構成され、送信部が加速度センサなどを用いて指揮棒としての操作子の動きを検出し、検出した操作子の動きを表すデータを無線送信すると、受信部ではその操作子の動きを表すデータを受信してリズムデータに変換し、当該リズムデータに応じて振動発生させて操作子の動きに対応したリズムを演奏者に伝える技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２１７８５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述した特許文献１に開示の技術は、単に指揮棒としての操作子の動きを演奏者に伝えるだけに過ぎず、指揮棒を振る動きの適否を指揮者自身に教示することが出来ない、という問題がある。
【０００５】
本発明は、このような事情に鑑みてなされたもので、指揮棒を振る動きの適否を指揮者自身に教示することが出来る操作練習装置、操作練習方法およびプログラムに関する。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の操作練習装置は、設定されたテンポ値に応じた拍タイミングを検出する拍タイミング検出手段と、操作子の動きから拍を刻む動作を検出する動作検出手段と、前記動作検出手段が拍を刻む動作を検出した検出タイミングと、前記拍タイミング検出手段が検出した拍タイミングとに応じて、振動を発生する振動発生手段の振動形態を制御する振動制御手段とを具備することを特徴とする。
【０００７】
また、本発明の操作練習方法では、設定されたテンポ値に応じた拍タイミングを検出し、操作子の動きから拍を刻む動作を検出し、拍を刻む動作を検出した検出タイミングと拍タイミングとに応じて、振動発生する形態を制御することを特徴とする。
【０００８】
更に、本発明のプログラムでは、設定されたテンポ値に応じた拍タイミングを発生検出させる拍タイミング検出ステップと、操作子の動きから拍を刻む動作を検出する動作検出ステップと、前記動作検出ステップが拍を刻む動作を検出した検出タイミングと、前記拍タイミング検出ステップで検出する拍タイミングとに応じて、前記振動発生ステップで発生する振動の形態を制御する振動制御ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【０００９】
本発明では、操作子を振る動きの適否を指揮者自身に教示することが出来る。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１実施形態による操作練習装置１００の外観を示す外観図である。
【図２】操作練習装置１００の構成を示すブロック図である。
【図３】ＲＡＭ１２のメモリ構成を示すメモリマップである。
【図４】第１実施形態におけるスタート／ストップ信号受信処理の動作を示すフローチャートである。
【図５】第１実施形態における拍カウント発生処理の動作を説明するための図である。
【図６】第１実施形態における振動パターン１〜３の一例を示す波形図である。
【図７】第１実施形態における拍振動決定処理の動作を示すフローチャートである。
【図８】第１実施形態における拍振動決定処理の動作の一例を説明するための図である。
【図９】第１実施形態における拍振動決定処理の動作の一例を説明するための図である。
【図１０】第２実施形態の概要を説明するための外観図である。
【図１１】第２実施形態における曲データおよびテンポ進行データの構成を示す図である。
【図１２】第２実施形態におけるＲＡＭ１２のメモリ構成を示すメモリマップである。
【図１３】第２実施形態における再生モード開始処理の動作を示すフローチャートである。
【図１４】第２実施形態における再生モード開始処理の動作を示すフローチャートである。
【図１５】第２実施形態におけるテンポ進行データ先読み処理の動作を示すフローチャートである。
【図１６】第２実施形態におけるテンポ進行データ先読み処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態について説明する。
［第１実施形態］
Ａ．装置外観
図１は、本発明の第１実施形態による操作練習装置１００の外観を示す外観図である。操作練習装置１００は、通常の指揮棒と同等の形状を為す操作子部１とユーザ（指揮者）により把持される把持部２から構成される。操作子部１には、後述するセンサ部１３が内蔵される。
【００１２】
把持部２の操作面側には、押下操作毎に設定テンポ値をインクリメントさせるテンポＵＰスイッチ１４ａ−１、押下操作毎に設定テンポ値をデクリメントさせるテンポＤＯＷＮスイッチ１４ａ−２、これらスイッチ１４ａ−１〜１４ａ−２の押下操作で設定されるテンポ値を表示する表示部１５、動作開始を指示するスタートイベント又は動作停止を指示するストップイベントを押下操作される毎に交互に発生するスタート／ストップスイッチ１４ｂが配設される。なお、ここで言う動作開始（又は動作停止）とは、後述する拍カウント開始（拍カウント停止）を指す。
【００１３】
スタート／ストップスイッチ１４ｂは、上述した通り、トグルスイッチとして機能する他、電源スイッチとしても機能する。すなわちスタート／ストップスイッチ１４ｂを一定時間以上押下し続ける長押し操作が行われた場合に電源オフ中ならばパワーオン設定し、逆に長押し操作が行われた場合に電源オン中ならばパワーオフ設定する。
【００１４】
また、スタート／ストップスイッチ１４ｂは、テンポＵＰスイッチ１４ａ−１との併用によりモード切替スイッチとしても機能する。すなわち、スタート／ストップスイッチ１４ｂの長押し操作で電源オンされた操作練習装置１００は、通常モードに設定され、この通常モード下でスタート／ストップスイッチ１４ｂおよびテンポＵＰスイッチ１４ａ−１を同時押し操作すると、再生モードに遷移する。
【００１５】
通常モードとは、予め設定したテンポ値に従ってユーザが操作子を振り、その振る動きの適否を当該ユーザに教示する動作であり、これについては第１実施形態で言及する。一方、再生モードとは、曲進行順に再生（読み出し）されるテンポ進行データにより規定されるテンポ値に従ってユーザが操作子を振り、その振る動きの適否を当該ユーザに教示する動作であり、これについては第２実施形態で言及する。
【００１６】
把持部２の後端には、例えばｍｉｎｉＵＳＢ端子等の入力部１７を備える。後述する第２実施形態では、この入力部１７を介して外部のパーソナルコンピュータ（以下「ＰＣ」と表記する）等からテンポ進行データを内部メモリ（ＲＡＭ（Random Access Memory）１２）に取り込むようになっている。
【００１７】
Ｂ．構成
次に、図２を参照して操作練習装置１００の構成について説明する。図２において、ＣＰＵ（Central Processing Unit）１０は、操作部１４が発生する各種スイッチイベントや、センサ部１３が発生する割り込みイベントに応じて装置各部を制御する。本発明の要旨に係わるＣＰＵ１０の処理動作については追って詳述する。ＲＯＭ（Read Only Memory）１１は、上記ＣＰＵ１０が実行する各種プログラムを記憶する。各種プログラムとは、後述するスタート／ストップ信号受信処理および拍振動決定処理を含む。
【００１８】
ＲＡＭ１２は、図３に図示するワークエリアＷＡおよびデータエリアＤＡを備える。ＲＡＭ１２のワークエリアＷＡには、ＣＰＵ１０の処理に用いる各種レジスタデータが一時記憶される。ここで、図３を参照して本実施形態に係わる主要なレジスタの内容について説明する。
【００１９】
レジスタＴＥＭＰＯ＿ＤＡＴＡには、テンポＵＰスイッチ１４ａ−１又はテンポＤＯＷＮスイッチ１４ａ−２の押下操作で設定されるテンポ値が一時記憶される。テンポ値は、１分間あたりに発生する四分音符の数を表す。なお、電源オン当初はテンポ値「１２０」がデフォルト設定され、テンポＵＰスイッチ１４ａ−１又はテンポＤＯＷＮスイッチ１４ａ−２の押下操作に応じて「３０」〜「２４０」の範囲で可変設定される。
【００２０】
タイマＦＲＣ＿ＴＩＭＥＲは、１ｍｓｅｃ毎にカウントアップする自走タイマカウンタである。レジスタＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡには、タイマＦＲＣ＿ＴＩＭＥＲの計時を制御するカウンタ比較値が一時記憶される。カウンタ比較値は、レジスタＴＥＭＰＯ＿ＤＡＴＡに一時記憶されるテンポ値に対応した拍の間隔（ｍｓｅｃ）を表す。例えばレジスタＴＥＭＰＯ＿ＤＡＴＡに一時記憶されるテンポ値が「１２０」であれば、カウンタ比較値は「５００」（ｍｓｅｃ）となる。
【００２１】
カウンタＢＥＡＴ＿ＤＡＴＡは、レジスタＴＥＭＰＯ＿ＤＡＴＡに一時記憶されるテンポ値に従って発生する拍の数を計数する。カウンタＭＥＡＳＵＲＥ＿ＤＡＴＡは、カウンタＢＥＡＴ＿ＤＡＴＡにより計数される拍の数に応じて小節数を計数する。レジスタＲＨＹＴＨＭ＿ＤＡＴＡには、拍子データが一時記憶される。拍子データは、「０」の場合に４／４拍子を表し、「１」の場合に３／４拍子を表す。レジスタＶＩＢ＿ＰＴＮ＿ＤＡＴＡには、振動パターン１〜３の何れかを指定する値が一時記憶される。振動パターンが意図するところについては追って述べる。
【００２２】
ＲＡＭ１２のデータエリアＤＡには、再生モード下において、入力部１７を介して外部のＰＣ等から取り込んだテンポ進行データが格納される。データエリアＤＡに格納したテンポ進行データを再生して操作練習する形態については第２実施形態で述べる。
【００２３】
さて、再び図１を参照して操作練習装置１００の構成について説明を進める。図１において、センサ部１３は、３軸加速度センサ、３軸ジャイロセンサ（角速度センサ）、ＡＤ変換器および波形演算用ＤＳＰから構成され、操作子部１に内蔵される。センサ部１３は、ユーザによって振られる操作子部１の動きを検出し、検出した動きの中から拍を刻む動作（ある方向へ移動中に一瞬止まって他の方向へ移動する切り返し動作）を検出した場合に割り込みイベントＴＡＫＴを発生する。
【００２４】
操作部１４は、把持部２に配設されるテンポＵＰスイッチ１４ａ−１、テンポＤＯＷＮスイッチ１４ａ−２およびスタート／ストップスイッチ１４ｂから構成され、操作されるスイッチ種に応じたスイッチイベントを発生してＣＰＵ１０に供給する。表示部１５は、ＬＣＤパネル等から構成され、ＣＰＵ１０から供給される表示制御信号に応じて現在設定されているテンポ値などを表示する。
【００２５】
振動発生部１６は、回転軸に偏心ウェイトが装着されたモータなどから構成されるバイブレータであり、ＣＰＵ１０が指定する振動パターン１〜３の何れかに従って振動を発生する。入力部１７は、把持部２の後端に配設されるｍｉｎｉＵＳＢ端子を備えたシリアルインタフェースであり、ＣＰＵ１０の制御の下に、外部ＰＣからテンポ進行データを入力してＲＡＭ１２のデータエリアＤＡに格納する。
【００２６】
Ｃ．動作
以下では、図４〜図９を参照して操作練習装置１００のＣＰＵ１０が実行するスタート／ストップ信号受信処理および拍振動決定処理の各動作について説明する。
【００２７】
（１）スタート／ストップ信号受信処理の動作
図４は、スタート／ストップ信号受信処理の動作を示すフローチャートである。操作練習装置１００が通常モードに設定されている状態でスタート／ストップスイッチ１４ｂの押下操作に応じてスタート／ストップイベントが発生すると、本処理が実行され、ＣＰＵ１０は図４に図示するステップＳＡ１に進み、拍カウント発生中か否か、すなわちタイマＦＲＣ＿ＴＩＭＥＲが計時中であるかどうかを判断する。
【００２８】
タイマＦＲＣ＿ＴＩＭＥＲが計時中にスタート／ストップイベントが発生した場合には、上記ステップＳＡ１の判断結果が「ＹＥＳ」になり、ステップＳＡ２に進み、タイマＦＲＣ＿ＴＩＭＥＲの計時を止める拍カウント停止処理を実行して本処理を終える。
【００２９】
これに対し、タイマＦＲＣ＿ＴＩＭＥＲが停止中にスタート／ストップイベントが発生した場合には、上記ステップＳＡ１の判断結果が「ＮＯ」になり、ステップＳＡ３に進む。ステップＳＡ３では、小節数を計数するカウンタＭＥＡＳＵＲＥ＿ＤＡＴＡ（以下、小節数ＭＥＡＳＵＲＥ＿ＤＡＴＡと称す）をゼロリセットし、続くステップＳＡ４では、拍の数を計数するカウンタＢＥＡＴ＿ＤＡＴＡ（以下、拍数ＢＥＡＴ＿ＤＡＴＡと称す）をゼロリセットする。さらに、ステップＳＡ５では、タイマＦＲＣ＿ＴＩＭＥＲをゼロリセットする。
【００３０】
次いで、ステップＳＡ６では、タイマＦＲＣ＿ＴＩＭＥＲがインクリメントされるまで待機し、当該タイマＦＲＣ＿ＴＩＭＥＲがインクリメントされると、判断結果が「ＹＥＳ」になり、次のステップＳＡ７に進む。ステップＳＡ７では、タイマＦＲＣ＿ＴＩＭＥＲにより計時される時間が、レジスタＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡのカウンタ比較値より小さいか否かを判断する。ここで、カウンタ比較値は、レジスタＴＥＭＰＯ＿ＤＡＴＡのテンポ値に対応した１拍分の時間に相当するので、結局、上記ステップＳＡ７では、タイマＦＲＣ＿ＴＩＭＥＲの計時時間が、現在設定されているテンポ値に対応した１拍分の時間内であるかどうかを判断する。
【００３１】
タイマＦＲＣ＿ＴＩＭＥＲの計時時間が、現在設定されているテンポ値に対応した１拍分の時間内ならば、上記ステップＳＡ７の判断結果は「ＹＥＳ」になり、上記ステップＳＡ６に処理を戻す。以後、タイマＦＲＣ＿ＴＩＭＥＲの計時時間が、現在設定されているテンポ値に対応した１拍分の時間を超えるまでの間、上記ステップＳＡ６〜ＳＡ７を繰り返してタイマＦＲＣ＿ＴＩＭＥＲをインクリメントして歩進させる。
【００３２】
そして、歩進されたタイマＦＲＣ＿ＴＩＭＥＲにより計時された時間が、現在設定されているテンポ値に対応した１拍分の時間を超えると、上記ステップＳＡ７の判断結果が「ＮＯ」になり、ステップＳＡ８に進み、１拍分の時間経過に伴い、拍数ＢＥＡＴ＿ＤＡＴＡをインクリメントして歩進させる。次いで、ステップＳＡ９では、歩進された拍数ＢＥＡＴ＿ＤＡＴＡの値が「４」以上であるか否か、すなわち１小節を超えたかどうかを判断する。１小節を超えていなければ、判断結果は「ＮＯ」になり、前述のステップＳＡ５に処理を戻す。
【００３３】
一方、歩進された拍数ＢＥＡＴ＿ＤＡＴＡの値が「４」以上となって、１小節を超えると、上記ステップＳＡ９の判断結果が「ＹＥＳ」になり、ステップＳＡ１０に進み、拍数ＢＥＡＴ＿ＤＡＴＡをゼロリセットする。続いて、ステップＳＡ１１では、小節数ＭＥＡＳＵＲＥ＿ＤＡＴＡをインクリメントして歩進させた後、前述のステップＳＡ５に処理を戻す。
【００３４】
このように、スタート／ストップ信号受信処理では、タイマＦＲＣ＿ＴＩＭＥＲが停止中にスタート／ストップイベントが発生すると、１ｍｓｅｃ毎にカウントアップするタイマＦＲＣ＿ＴＩＭＥＲが起動し始める。そして、図５に図示するように、当該タイマＦＲＣ＿ＴＩＭＥＲの計時時間が、現在設定されているテンポ値に対応した１拍分の時間を超える毎に拍数ＢＥＡＴ＿ＤＡＴＡを歩進させる。
【００３５】
そして、例えば４／４拍子の場合には、拍数ＢＥＡＴ＿ＤＡＴＡの値が「４」以上に達する都度、小節数ＭＥＡＳＵＲＥ＿ＤＡＴＡを歩進させ、以後、こうした処理をスタート／ストップイベントが発生するまで繰り返す。そして、タイマＦＲＣ＿ＴＩＭＥＲが計時中にスタート／ストップイベントが発生すると、タイマＦＲＣ＿ＴＩＭＥＲの計時を止めるようになっている。
【００３６】
（２）拍振動決定処理の動作
次に、図６を参照して拍振動決定処理の動作を説明する。図６は、ＣＰＵ１０が実行する拍振動決定処理の動作を示すフローチャートである。ＣＰＵ１０では、センサ部１３から割り込みイベントＴＡＫＴが供給された場合にハードウェア割り込みとして本処理を実行する。なお、センサ部１３は、ユーザによって振られる操作子部１の動きの内、拍を刻む動作（ある方向へ移動中に一瞬止まって他の方向へ移動する切り返し動作）を検出した場合に割り込みイベントＴＡＫＴを発生する。したがって、本処理は、ユーザが拍を刻む動作を行う毎に割り込み実行される。
【００３７】
本処理が割り込み実行されると、ＣＰＵ１０は図６に図示するステップＳＢ１に進み、拍カウント発生中であるか否か、すなわちタイマＦＲＣ＿ＴＩＭＥＲが計時中であるかどうかを判断する。タイマＦＲＣ＿ＴＩＭＥＲが停止中ならば、判断結果は「ＮＯ」になり、本処理を終えるが、タイマＦＲＣ＿ＴＩＭＥＲが計時中であれば、判断結果は「ＹＥＳ」になり、ステップＳＢ２に進む。
【００３８】
ステップＳＢ２〜ＳＢ３では、タイマＦＲＣ＿ＴＩＭＥＲの計時時間が、判定時間ＳＡＭＥ＿ＴＩＭＥ以下又は判定時間（ＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡ−ＳＡＭＥ＿ＴＩＭＥ）以下であるか否かを判断する。ここで、判定時間ＳＡＭＥ＿ＴＩＭＥは、図５に図示するＣ１の区間、判定時間（ＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡ−ＳＡＭＥ＿ＴＩＭＥ）は図５に図示するＣ２の区間であり、具体的には拍カウントの発生タイミング（以下、拍タイミングと称す）前後１０ｍｓｅｃの期間を指す。
【００３９】
本実施形態では、図５に図示するＣ１の区間に相当する判定時間ＳＡＭＥ＿ＴＩＭＥ以下又は図５に図示するＣ２の区間に相当する判定時間（ＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡ−ＳＡＭＥ＿ＴＩＭＥ）以下で割り込みイベントＴＡＫＴが発生した場合に、拍タイミングと同時に拍を刻む動作が為されたと見なす。したがって、上記ステップＳＢ２，ＳＢ３では、拍タイミングと同時に拍を刻む動作が為されたか否かを判断する。
【００４０】
拍タイミングと同時に拍を刻む動作が為された場合には、上記ステップＳＢ２，ＳＢ３の何れかの判断結果が「ＹＥＳ」となり、ステップＳＢ７に進み、レジスタＶＩＢ＿ＰＴＮ＿ＤＡＴＡに振動パターン１を識別するデータＶＩＢ＿ＰＴＮ１をストアした後、振動パターン１発生処理を実行する。
【００４１】
振動パターン１発生処理では、次に到来する拍タイミングに同期して振動発生部１６から振動パターン１の振動を発生させる。振動パターン１とは、図７に図示するように、次に到来する拍タイミングに同期して１回の振動を発生する形態を指す。したがって、拍タイミングと同時に拍を刻む動作が為されると、操作練習装置１００の把持部２が次に到来する拍タイミングに同期して１回振動する。ユーザは、この振動を体感することによって拍を刻む動作が拍タイミングに一致したことを認知できる。
【００４２】
一方、割り込みイベントＴＡＫＴが発生した時のタイマＦＲＣ＿ＴＩＭＥＲの計時時間が、判定時間ＳＡＭＥ＿ＴＩＭＥ又は判定時間（ＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡ−ＳＡＭＥ＿ＴＩＭＥ）を超えた場合、つまり拍タイミングと同時に拍を刻む動作が為されなければ、上記ステップＳＢ２，ＳＢ３の各判断結果は何れも「ＮＯ」になり、ステップＳＢ４に進む。ステップＳＢ４では、割り込みイベントＴＡＫＴが発生した時のタイマＦＲＣ＿ＴＩＭＥＲの計時時間が、判定時間（ＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡ／２）より大きいか否か、すなわち拍を刻む動作が拍タイミングより早いか否かを判断する。
【００４３】
拍を刻む動作が拍タイミングより遅い場合、つまりＦＲＣ＿ＴＩＭＥＲ≦ＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡ／２であれば、上記ステップＳＢ４の判断結果は「ＮＯ」になり、ステップＳＢ５に進み、レジスタＶＩＢ＿ＰＴＮ＿ＤＡＴＡに振動パターン２を識別するデータＶＩＢ＿ＰＴＮ２をストアした後、振動パターン２発生処理を実行する。
【００４４】
振動パターン２発生処理では、次に到来する拍タイミングに同期して振動発生部１６から振動パターン２の振動を発生させる。振動パターン２とは、図７に図示するように、次に到来する拍タイミングに同期して２回の振動を発生する形態を指す。したがって、拍を刻む動作が拍タイミングより遅い場合には、操作練習装置１００の把持部２が次に到来する拍タイミングに同期して２回振動する。ユーザは、この振動を体感することによって拍を刻む動作が拍タイミングより遅いことを認知できる。
【００４５】
これに対し、拍を刻む動作が拍タイミングより早い場合、つまりＦＲＣ＿ＴＩＭＥＲ＞ＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡ／２ならば、上記ステップＳＢ４の判断結果は「ＹＥＳ」になり、ステップＳＢ６に進み、レジスタＶＩＢ＿ＰＴＮ＿ＤＡＴＡに振動パターン３を識別するデータＶＩＢ＿ＰＴＮ２をストアした後、振動パターン３発生処理を実行する。
【００４６】
振動パターン３発生処理では、次に到来する拍タイミングに同期して振動発生部１６から振動パターン３の振動を発生させる。振動パターン３とは、図７に図示するように、次に到来する拍タイミングに同期して３回の振動を発生する形態を指す。したがって、拍を刻む動作が拍タイミングより早い場合には、操作練習装置１００の把持部２が次に到来する拍タイミングに同期して３回振動する。ユーザは、この振動を体感することによって拍を刻む動作が拍タイミングより早いことを認知できる。
【００４７】
次に、図８〜図９を参照して拍振動決定処理の具体的な動作を説明する。先ず図８に図示するように、ユーザの拍を刻む動作に応じて、例えば時刻Ｔ０〜Ｔ６において割り込みイベントＴＡＫＴが発生したとする。そして、最初の時刻Ｔ０で行われた拍を刻む動作は、最初の拍１のタイミングに一致した為、次の拍２のタイミングで振動パターン１に基づき１回の振動が発生する。
【００４８】
次いで、時刻Ｔ１で行われた拍を刻む動作が拍２のタイミングより遅れると、次の拍３のタイミングで振動パターン２に基づき２回の振動が発生する。同様に、時刻Ｔ２〜Ｔ４においても拍タイミングから遅れて拍を刻む動作が為されると、それぞれ次拍のタイミングで振動パターン２に基づき２回の振動が発生する。
【００４９】
そして、時刻Ｔ５において為された拍を刻む動作が拍６のタイミングに一致すると、次の拍７のタイミングで振動パターン１に基づき１回の振動が発生する。これにより、ユーザは拍を刻む動作が拍タイミングに一致するか、あるいは遅れているかを体感する為、操作子を振る動きの適否を指揮者自身に教示することが可能になる。
【００５０】
次に、図９に図示するように、ユーザの拍を刻む動作に応じて、例えば時刻Ｔ０〜Ｔ６において割り込みイベントＴＡＫＴが発生したとする。そして、最初の時刻Ｔ０で行われた拍を刻む動作は、最初の拍１のタイミングに一致した為、次の拍２のタイミングで振動パターン１に基づき１回の振動が発生する。
【００５１】
次いで、時刻Ｔ１で行われた拍を刻む動作が拍２のタイミングより早いと、次の拍３のタイミングで振動パターン３に基づき３回の振動が発生する。同様に、時刻Ｔ２〜Ｔ４においても拍タイミングより早く拍を刻む動作が為されると、それぞれ次拍のタイミングで振動パターン３に基づき３回の振動が発生する。
【００５２】
そして、時刻Ｔ５において為された拍を刻む動作が拍６のタイミングに一致すると、次の拍７のタイミングで振動パターン１に基づき１回の振動が発生する。これにより、ユーザは拍を刻む動作が拍タイミングに一致するか、あるいは早いかを体感する為、操作子を振る動きの適否を指揮者自身に教示することが可能になる。
【００５３】
以上説明したように、第１実施形態では、予め設定されたテンポ値に応じた拍タイミングを発生させておき、ユーザ（指揮者）によって振られる操作子部１の動きから拍を刻む動作を検出して割り込みイベントＴＡＫＴを発生すると、その割り込みイベントＴＡＫＴが発生したタイミングに基づき拍を刻む動作が拍タイミングに一致するか、拍タイミングより遅いか、拍タイミングより早いかを判別する。そして、拍タイミングに一致する場合には次の拍タイミングに同期して把持部２を１回振動させ、拍タイミングより遅い場合には、次の拍タイミングに同期して把持部２を２回振動させ、拍タイミングより早い場合には、次の拍タイミングに同期して把持部２を３回振動させるので、指揮棒を振る動きの適否を指揮者自身に教示することが出来る。
【００５４】
なお、上述した第１実施形態では、拍を刻む動作が拍タイミングに一致する場合に１回振動させ、拍タイミングより遅い場合に２回振動させ、拍タイミングより早い場合に３回振動させるようにしたが、これに限らず、例えば拍を刻む動作が拍タイミングに一致する場合には無振動とし、拍タイミングから遅れた場合には一定期間素早い振動を発生させ、拍タイミングより早い場合には一定期間ゆっくりとした振動を発生させてユーザ（指揮者）に拍を刻む動作の遅れ／進みを体感させる態様とすることも可能であるし、そうした態様でも指揮棒を振る動きの適否を指揮者自身に教示することが出来る。
【００５５】
また、例えば拍を刻む動作が拍タイミングに一致する場合には無振動とし、拍を刻む動作が拍タイミングに対して前後所定時間未満の遅れや進みの場合に弱い振動を発生させ、拍を刻む動作が拍タイミングに対して前後所定時間以上の遅れや進みの場合に強い振動を発生させてユーザ（指揮者）に拍を刻む動作の遅れ／進みを体感させて指揮棒を振る動きの適否を指揮者自身に教示する態様としても指揮棒を振る動きの適否を指揮者自身に教示することが出来る。
【００５６】
［第２実施形態］
次に、第２実施形態について説明する。第２実施形態の構成は、第１実施形態と同一なので、その説明については省略する。第２実施形態では、スタート／ストップスイッチ１４ｂおよびテンポＵＰスイッチ１４ａ−１の同時押しで設定される再生モードの動作について述べる。再生モードとは、曲進行順に読み出されるテンポ進行データによって規定されるテンポ値に従ってユーザ（指揮者）が操作子を振り、その振る動きの適否を当該ユーザに教示する動作を指す。
【００５７】
第２実施形態では、図１０に図示するように、操作練習装置１００の入力部１７を介して外部のＰＣ２００からテンポ進行データをＲＡＭ１２のデータエリアＤＡに取り込む。ＰＣ２００では、図１１（ａ）に図示する一例の曲データ（ＭＩＤＩデータ）中からメタイベントで定義されるテンポデータを抽出してテンポ進行データを生成する。
【００５８】
図１１（ａ）に図示する一例の曲データ（ＭＩＤＩデータ）は、４／４拍子で第１小節〜第４小節までテンポ値「８０」、第５小節〜第８小節がテンポ値「１２０」に変化し、さらに第９小節〜第１０小節がテンポ値「１００」に変化し、第１１小節１拍〜２拍目がテンポ値「６０」、第１１小節３拍〜４拍目がテンポ値「８０」、第１２小節がテンポ値「１００」となる。
【００５９】
この曲データ中のメタイベントで定義されるテンポデータを抽出して得られるテンポ進行データは、図１１（ｂ）に図示するように、小節番号データ（２バイト）、拍番号データ（１バイト）、コマンド（１バイト）および値（１バイト）から構成される。小節番号データおよび拍番号データは、それぞれ第１小節目を０小節、１拍目を０拍としてカウントする。
【００６０】
コマンド「００」は拍子を表し、その値「００」は４／４拍子を表す。コマンド「０１」はテンポを表し、その値はテンポ値を表す。コマンド「１２７」および対応する値「００」は曲終了を表す。したがって、図１１（ａ）に図示する曲データ中のａ〜ｆが、同図（ｂ）に図示するテンポ進行データａ〜ｆにそれぞれ対応する。
【００６１】
操作練習装置１００の入力部１７を介して外部のＰＣ２００から取り込んだテンポ進行データは、図１２に図示するＲＡＭ１２のデータエリアＤＡに、テンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］として格納される。テンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］は、ポインタＰＴＲに応じて、小節番号データ、拍番号データ、拍子データおよびテンポデータが順次読み出されてＲＡＭ１２のワークエリアＷＡのレジスタＭＥＭ＿ＭＥＡＳＵＲＥ＿ＤＡＴＡ、レジスタＭＥＭ＿ＢＥＡＴ＿ＤＡＴＡ、レジスタＭＥＭ＿ＲＨＹＴＨＭ＿ＤＡＴＡおよびレジスタＭＥＭ＿ＴＥＭＰＯ＿ＤＡＴＡに一時記憶される。
【００６２】
なお、これらレジスタの内容を、小節番号データＭＥＭ＿ＭＥＡＳＵＲＥ＿ＤＡＴＡ、拍番号データＭＥＭ＿ＢＥＡＴ＿ＤＡＴＡ、拍子データＭＥＭ＿ＲＨＹＴＨＭ＿ＤＡＴＡおよびテンポデータＭＥＭ＿ＴＥＭＰＯ＿ＤＡＴＡと称す。
【００６３】
次に、図１３〜図１６を参照して第２実施形態の動作を説明する。以下では、再生モード下でＣＰＵ１０が実行する再生モード開始処理およびテンポ進行データ先読み処理の各動作について述べる。
【００６４】
（１）再生モード開始処理の動作
前述したように、スタート／ストップスイッチ１４ｂおよびテンポＵＰスイッチ１４ａ−１の同時押し操作によって再生モードに設定されると、ＣＰＵ１０は図１３に図示する再生モード開始処理を実行する。本処理が実行されると、ＣＰＵ１０は図１３に図示するステップＳＣ１〜ＳＣ５において、ポインタＰＴＲ、小節番号データＭＥＭ＿ＭＥＡＳＵＲＥ＿ＤＡＴＡ、拍番号データＭＥＭ＿ＢＥＡＴ＿ＤＡＴＡ、拍子データＭＥＭ＿ＲＨＹＴＨＭ＿ＤＡＴＡおよびテンポデータＭＥＭ＿ＴＥＭＰＯ＿ＤＡＴＡをそれぞれゼロクリアする初期化を行う。
【００６５】
初期化が完了すると、ステップＳＣ６に進み、ポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］が「０」、すなわち小節番号データが「０」であるか否かを判断する。小節番号データが「０」でなければ、判断結果は「ＮＯ」になり、本処理を終えるが、小節番号データが「０」であると、判断結果は「ＹＥＳ」になり、ステップＳＣ７に進む。
【００６６】
ステップＳＣ７では、ポインタＰＴＲを２つ進める。続いて、ステップＳＣ８では、その２つ進めたポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］が「０」、すなわち拍番号データが「０」であるか否かを判断する。拍番号データが「０」でなければ、判断結果は「ＮＯ」になり、ステップＳＣ９に進み、ポインタＰＴＲを２つ戻して本処理を終える。
【００６７】
一方、拍番号データが「０」であると、上記ステップＳＣ８の判断結果は「ＹＥＳ」になり、図１４に図示するステップＳＣ１０に進む。ステップＳＣ１０では、ポインタＰＴＲをインクリメントして歩進させ、続くステップＳＣ１１では、歩進されたポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］が「００」、すなわち拍子データを表すコマンドであるか否かを判断する。
【００６８】
拍子データを表すコマンドであると、上記ステップＳＣ１１の判断結果は「ＹＥＳ」になり、ステップＳＣ１２に進み、ポインタＰＴＲをインクリメントして歩進させる。そして、ステップＳＣ１３では、歩進されたポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］、つまり拍子データの値を読み出して拍子データＭＥＭ＿ＲＨＹＴＨＭ＿ＤＡＴＡにストアする。次いで、ステップＳＣ１４では、ポインタＰＴＲをインクリメントして歩進させ、続くステップＳＣ１５では、拍子データＭＥＭ＿ＲＨＹＴＨＭ＿ＤＡＴＡを、レジスタＲＨＹＴＨＭ＿ＤＡＴＡにストアした後、上述のステップＳＣ６に処理を戻す。
【００６９】
これに対し、拍子データを表すコマンドでなければ、上記ステップＳＣ１１の判断結果が「ＮＯ」になり、ステップＳＣ１６に進む。ステップＳＣ１６では、歩進されたポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］が「０１」、すなわちテンポデータを表すコマンドであるか否かを判断する。テンポデータを表すコマンドでなければ、判断結果は「ＮＯ」になり、前述したステップＳＣ６に処理を戻す。
【００７０】
一方、テンポデータを表すコマンドであれば、上記ステップＳＣ１６の判断結果は「ＹＥＳ」になり、ステップＳＣ１７に進み、ポインタＰＴＲをインクリメントして歩進させる。そして、ステップＳＣ１８では、歩進されたポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］、つまりテンポ値を読み出してテンポデータＭＥＭ＿ＴＥＭＰＯ＿ＤＡＴＡにストアする。
【００７１】
次いで、ステップＳＣ１９では、ポインタＰＴＲをインクリメントして歩進させ、続くステップＳＣ２０では、テンポデータＭＥＭ＿ＴＥＭＰＯ＿ＤＡＴＡを、レジスタＴＥＭＰＯ＿ＤＡＴＡにストアする。そして、ステップＳＣ２１では、レジスタＴＥＭＰＯ＿ＤＡＴＡのテンポ値に対応した１拍分の時間に相当するカウンタ比較値をレジスタＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡにストアして更新させた後、前述したステップＳＣ６に処理を戻す。
【００７２】
以上のように、再生モード開始処理では、例えばＲＡＭ１２のデータエリアＤＡに、図１１（ｂ）に図示するテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］が格納されている場合であれば、当該テンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］の内、先頭のテンポ進行データから拍子データ「００（４／４拍子）」を、２番目のテンポ進行データａからテンポ値「８０」をポインタＰＴＲに応じて先読み出しを行い、先読み出しされた拍子データ「００（４／４拍子）」をレジスタＲＨＹＴＨＭ＿ＤＡＴＡに、テンポ値「８０」をレジスタＴＥＭＰＯ＿ＤＡＴＡにストアする。また、レジスタＴＥＭＰＯ＿ＤＡＴＡのテンポ値に対応した１拍分の時間に相当するカウンタ比較値をレジスタＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡにストアして更新する。
【００７３】
なお、こうしてテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］から拍子データおよびテンポ値が先読み出しされた状態で、ユーザが操作子を振り下ろすと同時にスタート／ストップスイッチ１４ｂを押下操作すると、前述した第１実施形態のスタート／ストップ信号受信処理が実行され、先読み出しされたテンポ値に対応した拍タイミングの計時がスタートする。
【００７４】
（２）テンポ進行データ先読み処理の動作
次に、図１５〜図１６を参照してテンポ進行データ先読み処理の動作を説明する。本処理は、スタート／ストップスイッチ１４ｂの押下操作に応じて、前述した第１実施形態のスタート／ストップ信号受信処理が実行されている過程で、所定周期毎に割り込み実行される。
【００７５】
本処理の割り込みタイミングになると、ＣＰＵ１０は図１５に図示するステップＳＤ１に進む。ステップＳＤ１〜ＳＤ２では、小節数ＭＥＡＳＵＲＥ＿ＤＡＴＡが小節番号データＭＥＭ＿ＭＥＡＳＵＲＥ＿ＤＡＴＡ以上で、かつ拍数ＢＥＡＴ＿ＤＡＴＡが拍番号データＭＥＭ＿ＢＥＡＴ＿ＤＡＴＡ以上なければ、上記ステップＳＤ１〜ＳＤ２の各判断結果が「ＮＯ」になり、本処理を終える。
【００７６】
なお、小節数ＭＥＡＳＵＲＥ＿ＤＡＴＡおよび拍数ＢＥＡＴ＿ＤＡＴＡは、前述した第１実施形態におけるスタート／ストップ信号受信処理（図４参照）により計数される現在の小節数および拍数を指す。一方、小節番号データＭＥＭ＿ＭＥＡＳＵＲＥ＿ＤＡＴＡおよび拍番号データＭＥＭ＿ＢＥＡＴ＿ＤＡＴＡは、現在設定されているポインタＰＴＲに応じてテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］から読み出された小節番号および拍番号である。
【００７７】
一方、小節数ＭＥＡＳＵＲＥ＿ＤＡＴＡが小節番号データＭＥＭ＿ＭＥＡＳＵＲＥ＿ＤＡＴＡ以上になり、かつ拍数ＢＥＡＴ＿ＤＡＴＡが拍番号データＭＥＭ＿ＢＥＡＴ＿ＤＡＴＡ以上になり、次のテンポ進行データの読み出しタイミングになると、上記ステップＳＤ１〜ＳＤ２の各判断結果が「ＹＥＳ」になり、ステップＳＤ３に進む。
【００７８】
ステップＳＤ３では、拍子データＭＥＭ＿ＲＨＹＴＨＭ＿ＤＡＴＡを、レジスタＲＨＹＴＨＭ＿ＤＡＴＡにストアして拍子データを更新する。続いて、ステップＳＤ４では、テンポデータＭＥＭ＿ＴＥＭＰＯ＿ＤＡＴＡを、レジスタＴＥＭＰＯ＿ＤＡＴＡにストアしてテンポ値を更新する。そして、ステップＳＤ５では、テンポ値の更新に対応して１拍分の時間に相当するカウンタ比較値をレジスタＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡにストアして更新する。
【００７９】
次いで、ステップＳＤ６では、現在設定されているポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］、すなわち新たな小節番号データを先読み出しして小節番号データＭＥＭ＿ＭＥＡＳＵＲＥ＿ＤＡＴＡにストアする。この後、ステップＳＤ７に進み、ポインタＰＴＲを２つ進める。続くステップＳＤ８では、歩進されたポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］、すなわち新たな拍番号データを先読み出しして拍番号データＭＥＭ＿ＢＥＡＴ＿ＤＡＴＡにストアする。
【００８０】
そして、図１６に図示するステップＳＤ９に進み、ポインタＰＴＲをインクリメントして歩進させる。次のステップＳＤ１０では、歩進されたポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］が「００」、すなわち拍子データを表すコマンドであるか否かを判断する。
【００８１】
拍子データを表すコマンドであると、上記ステップＳＤ１０の判断結果は「ＹＥＳ」になり、ステップＳＤ１１に進み、ポインタＰＴＲをインクリメントして歩進させる。続いて、ステップＳＤ１２では、歩進されたポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］、つまり拍子データの値を先読み出しして拍子データＭＥＭ＿ＲＨＹＴＨＭ＿ＤＡＴＡにストアする。この後、ステップＳＤ１３に進み、ポインタＰＴＲをインクリメントして歩進させて本処理を終える。
【００８２】
一方、拍子データを表すコマンドでなければ、上記ステップＳＤ１０の判断結果が「ＮＯ」になり、ステップＳＤ１４に進む。ステップＳＤ１４では、歩進されたポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］が「０１」、すなわちテンポデータを表すコマンドであるか否かを判断する。テンポデータを表すコマンドでなければ、判断結果は「ＮＯ」になり、本処理を終える
【００８３】
これに対し、テンポデータを表すコマンドならば、上記ステップＳＤ１４の判断結果は「ＹＥＳ」になり、ステップＳＤ１５に進み、ポインタＰＴＲをインクリメントして歩進させる。そして、ステップＳＤ１５では、歩進されたポインタＰＴＲで指定されるテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］、つまりテンポ値を先読み出ししてテンポデータＭＥＭ＿ＴＥＭＰＯ＿ＤＡＴＡにストアする。この後、ポインタＰＴＲをインクリメントして歩進させて本処理を終える。
【００８４】
このように、テンポ進行データ先読み処理では、前述したスタート／ストップ信号受信処理（図４参照）により計数される現在の小節数ＭＥＡＳＵＲＥ＿ＤＡＴＡおよび拍数ＢＥＡＴ＿ＤＡＴＡが、現在再生中のテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］の小節番号データＭＥＭ＿ＭＥＡＳＵＲＥ＿ＤＡＴＡおよび拍番号データＭＥＭ＿ＢＥＡＴ＿ＤＡＴＡに達する毎に、既に先読み出し済みの拍子データＭＥＭ＿ＲＨＹＴＨＭ＿ＤＡＴＡおよびテンポデータＭＥＭ＿ＴＥＭＰＯ＿ＤＡＴＡを、レジスタＲＨＹＴＨＭ＿ＤＡＴＡおよびレジスタＴＥＭＰＯ＿ＤＡＴＡにそれぞれストアして拍子データおよびテンポ値を更新すると共に、テンポ値の更新に対応してレジスタＣＯＵＮＴ＿ＲＳＴ＿ＤＡＴＡのカウンタ比較値も更新する。
【００８５】
そして、次の新たなテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］を先読み出しして、小節番号データＭＥＭ＿ＭＥＡＳＵＲＥ＿ＤＡＴＡ、拍番号データＭＥＭ＿ＢＥＡＴ＿ＤＡＴＡ、拍子データＭＥＭ＿ＲＨＹＴＨＭ＿ＤＡＴＡおよびテンポデータＭＥＭ＿ＴＥＭＰＯ＿ＤＡＴＡを更新する。
【００８６】
したがって、例えばＲＡＭ１２のデータエリアＤＡに、図１１（ｂ）に図示するテンポ進行データＴＥＭＰＯＳＥＱ＿ＤＡＴＡ［ＰＴＲ］が格納されている場合に、スタート／ストップ信号受信処理（図４参照）により計数される現在の小節数ＭＥＡＳＵＲＥ＿ＤＡＴＡおよび拍数ＢＥＡＴ＿ＤＡＴＡが第５小節１拍目に達するとテンポ進行データｂに基づきテンポ値「１２０」に更新され、第９小節１拍目に達するとテンポ進行データｃに基づきテンポ値「１００」に更新され、第１１小節１拍目に達するとテンポ進行データｄに基づきテンポ値「６０」に更新され、第１１小節３拍目に達するとテンポ進行データｅに基づきテンポ値「８０」に更新され、第１２小節１拍目に達するとテンポ進行データｆに基づきテンポ値「１００」に更新される。
【００８７】
以上説明したように、第２実施形態では、曲データから抽出したテンポ進行データに従い、曲進行に伴って変化するテンポ値に応じた拍タイミングを発生させ、ユーザ（指揮者）によって振られる操作子部１の動きから拍を刻む動作を検出して割り込みイベントＴＡＫＴを発生すると、その割り込みイベントＴＡＫＴが発生したタイミングに基づき拍を刻む動作が拍タイミングに一致するか、拍タイミングより遅いか、拍タイミングより早いかを判別する。そして、拍タイミングに一致する場合には次の拍タイミングに同期して把持部２を１回振動させ、拍タイミングより遅い場合には、次の拍タイミングに同期して把持部２を２回振動させ、拍タイミングより早い場合には、次の拍タイミングに同期して把持部２を３回振動させるので、曲に合わせて指揮棒を振る動きの適否を指揮者自身に教示することが出来る。
【００８８】
なお、上述した第２実施形態では、外部ＰＣから取り込んだテンポ進行データに基づき曲進行に伴って変化するテンポ値に応じた拍タイミングを発生させる態様としたが、これに限らず、例えば外部ＰＣと操作練習装置１００とを無線接続又は有線接続して当該外部ＰＣからリアルタイムに出力されるテンポ進行データに従って操作練習する態様とすることも可能である。
なお、上述した実施の形態では操作練習装置の内部にセンサ部や振動発生部等を含むものとしたが、これらは操作練習装置の外部にあってもよい。さらに、第２実施形態において、外部ＰＣからテンポ進行データを取り込むことを例に挙げて説明したが、操作練習装置内部でテンポ進行データの作成を行ってもよい。
【００８９】
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
【００９０】
（付記）
［請求項１］  設定されたテンポ値に応じた拍タイミングを検出する拍タイミング検出手段と、
操作子の動きから拍を刻む動作を検出する動作検出手段と、
前記動作検出手段が拍を刻む動作を検出した検出タイミングと、前記拍タイミング検出手段が検出した拍タイミングとに応じて、振動発生手段により発生される振動の形態を制御する振動制御手段と
を具備することを特徴とする操作練習装置。
【００９１】
［請求項２］
前記拍タイミング検出手段は、テンポ進行データを含む曲データを有し、当該曲データのテンポ進行データに従い、曲進行に伴って変化するテンポ値に応じた拍タイミングを検出することを特徴とする請求項１記載の操作練習装置。
【００９２】
［請求項３］
前記振動制御手段は、検出タイミングが拍タイミングに一致するか、拍タイミングより遅いか、あるいは拍タイミングより早いかを判別し、その判別結果に応じて、次の拍タイミングに同期して前記振動発生手段が発生する振動形態を異ならせることを特徴とする請求項１または２に記載の操作練習装置。
【００９３】
［請求項４］
前記振動制御手段は、前記検出タイミングが拍タイミングに一致する場合に次の拍タイミングに同期して前記振動発生手段に１回振動を発生させ、
前記検出タイミングが拍タイミングより遅い場合に次の拍タイミングに同期して前記振動発生手段に２回振動を発生させ、
前記検出タイミングが拍タイミングより早い場合に次の拍タイミングに同期して前記振動発生手段に３回振動を発生させることを特徴とする請求項３記載の操作練習装置。
【００９４】
［請求項５］
前記振動制御手段は、検出タイミングが拍タイミングに一致する場合には無振動とし、拍タイミングから遅れた場合には前記振動発生手段に振動を一定期間発生させ、拍タイミングより早い場合には当該振動よりゆっくりした振動を一定期間発生させることを特徴とする請求項３記載の操作練習装置。
【００９５】
［請求項６］
前記振動制御手段は、検出タイミングが拍タイミングに一致する場合には無振動とし、検出タイミングが拍タイミングに対して前後所定時間未満の遅れや進みの場合に弱い振動を発生させ、検出タイミングが拍タイミングに対して前後所定時間以上の遅れや進みの場合に強い振動を発生させることを特徴とする請求項３記載の操作練習装置。
【００９６】
［請求項７］
設定されたテンポ値に応じた拍タイミングを検出し、
操作子の動きから拍を刻む動作を検出し、
拍を刻む動作を検出した検出タイミングと拍タイミングとに応じて、振動発生手段により発生される振動の形態を制御する
ことを特徴とする操作練習方法。
【００９７】
［請求項８］
コンピュータに、
設定されたテンポ値に応じた拍タイミングを検出する拍タイミング検出ステップと、
操作子の動きから拍を刻む動作を検出する動作検出ステップと、
前記動作検出ステップが拍を刻む動作を検出した検出タイミングと、前記拍タイミング検出ステップで検出する拍タイミングとに応じて、振動発生手段により発生させる振動の形態を制御する振動制御ステップと
を実行させることを特徴とするプログラム。
【符号の説明】
【００９８】
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  センサ部
１４  操作部
１４ａ−１  テンポＵＰスイッチ
１４ａ−２  テンポＤＯＷＮスイッチ
１４ｂ  スタート／ストップスイッチ１４ｂ
１５  表示部
１６  振動発生部
１７  入力部
１００  操作練習装置
【図１】
2015060031.tif 000003
【図２】
2015060031.tif 000004
【図３】
2015060031.tif 000005
【図４】
2015060031.tif 000006
【図５】
2015060031.tif 000007
【図６】
2015060031.tif 000008
【図７】
2015060031.tif 000009
【図８】
2015060031.tif 000010
【図９】
2015060031.tif 000011
【図１０】
2015060031.tif 000012
【図１１】
2015060031.tif 000013
【図１２】
2015060031.tif 000014
【図１３】
2015060031.tif 000015
【図１４】
2015060031.tif 000016
【図１５】
2015060031.tif 000017
【図１６】
2015060031.tif 000018