(57)【要約】  【課題】  飽き難く、ウエイトトレーニングの継続を支援できるウエイトトレーニング支援装置を提供することである。  【解決手段】  使用者が操作するアーム２３に接続されたウエイト１３が、アーム２３の操作に応じて昇降する。アーム２３の動きがリニアエンコーダ７３により検知される。この検知結果に基づいて、アーム２３の動きが所定条件を満足した時に、トリガを発生する。音楽を奏でるための楽曲データに従い、トリガに応答して、楽音を発生する。【選択図】  図１
2008279250.tif 000002
【特許請求の範囲】
【請求項１】
使用者が操作する操作部に接続された重量部材が、前記使用者による前記操作部の操作に応じて昇降するウエイトトレーニング装置による前記使用者のウエイトトレーニングを支援するウエイトトレーニング支援装置であって、
前記使用者に対して、音声及び／又は映像により、前記操作部の操作をガイドするガイド手段と、
前記操作部の動きを直接的又は間接的に検出する検出手段と、
前記検出手段による検出の結果に基づいて、音声及び／又は映像によるエフェクトを発生するエフェクト手段と、を備えるウエイトトレーニング支援装置。
【請求項２】
前記検出手段による検出の結果に基づいて、前記操作部の動きが所定条件を満足した時に、トリガを発生するトリガ発生手段をさらに備え、
前記エフェクト手段は、音楽を奏でるための楽曲データに従い、前記トリガに応答して、楽音を発生する、請求項２記載のウエイトトレーニング支援装置。
【請求項３】
前記音楽に対応し、前記トリガに依存しない楽音を発生する自動演奏手段をさらに備える請求項２記載のウエイトトレーニング支援装置。
【請求項４】
前記ガイド手段は、画面を移動する第１オブジェクトが、前記画面に静止して表示された第２オブジェクトに到達するタイミングにより、前記操作部の操作のタイミングをガイドする、請求項１から３のいずれかに記載のウエイトトレーニング支援装置。
【請求項５】
使用者が操作する操作部に接続された重量部材が、前記使用者による前記操作部の操作に応じて昇降するウエイトトレーニング装置による前記使用者のウエイトトレーニングを支援するウエイトトレーニング支援装置であって、
前記操作部の動きを直接的又は間接的に検出する検出手段と、
前記操作部の動きが所定条件を満足した時に、トリガを発生するトリガ発生手段と、
音楽を奏でるための楽曲データに従い、前記トリガに応答して、楽音を発生するエフェクト手段と、を備えるウエイトトレーニング支援装置。
【請求項６】
使用者が操作する操作部に接続された重量部材が、前記使用者による前記操作部の操作に応じて昇降するウエイトトレーニング装置による前記使用者のウエイトトレーニングを支援するウエイトトレーニング支援装置であって、
前記操作部の動きを直接的又は間接的に検出する検出手段と、
前記検出手段による検出の結果に基づいて、前記使用者に対して、映像により、前記操作部の操作状況を明示する明示手段と、を備えるウエイトトレーニング支援装置。
【請求項７】
前記検出手段は、
光ビームを発射する発光手段と、
前記発光手段が発射した光ビームを受光して、電気信号に変換する受光手段と、を含み、
前記発光手段は、前記操作部と前記重量部材とを接続する線状部材に取り付けられた、前記受光手段に入射する光ビームの光量を変化させる光量変化部材に、光ビームを照射する、請求項１から６のいずれかに記載のウエイトトレーニング支援装置。
【請求項８】
前記受光手段は、第１受光部及び第２受光部を含み、
前記第１受光部及び前記第２受光部は、前記操作部が操作されたときの前記線状部材の移動方向に沿って配置される、請求項７記載のウエイトトレーニング支援装置。
【請求項９】
前記光量変化部材が前記発光手段及び前記受光手段の上を通過するように、前記線状部材の動きを規制する規制手段をさらに備え、
前記規制手段が規制する前記線状部材の動きは、前記操作部が操作されたときの前記線状部材の移動方向と垂直な方向への動きである、請求項７又は８記載のウエイトトレーニング支援装置。
【請求項１０】
使用者が操作する操作部に接続された重量部材が、前記使用者による前記操作部の操作に応じて昇降するウエイトトレーニング装置による前記使用者のウエイトトレーニングを支援するウエイトトレーニング支援プログラムであって、
前記使用者に対して、音声及び／又は映像により、前記操作部の操作をガイドするステップと、
前記操作部の動きを直接的又は間接的に検出するステップと、
前記検出の結果に基づいて、音声及び／又は映像によるエフェクトを発生するステップと、をコンピュータに実行させるためのウエイトトレーニング支援プログラム。
【請求項１１】
使用者が操作する操作部に接続された重量部材が、前記使用者による前記操作部の操作に応じて昇降するウエイトトレーニング装置による前記使用者のウエイトトレーニングを支援するウエイトトレーニング支援プログラムであって、
前記操作部の動きを直接的又は間接的に検出するステップと、
前記操作部の動きが所定条件を満足した時に、トリガを発生するステップと、
音楽を奏でるための楽曲データに従い、前記トリガに応答して、楽音を発生するステップと、をコンピュータに実行させるためのウエイトトレーニング支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウエイトトレーニングの継続を支援するためのウエイトトレーニング支援装置及びそれらの関連技術に関する。
【背景技術】
【０００２】
特許文献１には、ウエイトトレーニング装置が開示されている。このウエイトトレーニング装置では、上下運動する重量部材の通過を光電スイッチにより検出して、上下運動の回数をカウントする。
【０００３】
【特許文献１】特開昭６２−４４２７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ウエイトトレーニングは継続的に行うことが必要であるが、一般に、単調な動作の繰り返しであるため、飽き易く、多くの人にとって、継続してウエイトトレーニングを行うことは困難である。
【０００５】
そこで、本発明の目的は、飽き難く、ウエイトトレーニングの継続を支援できるウエイトトレーニング支援装置及びその関連技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明の第１の観点によれば、ウエイトトレーニング支援装置は、使用者が操作する操作部に接続された重量部材が、前記使用者による前記操作部の操作に応じて昇降するウエイトトレーニング装置による前記使用者のウエイトトレーニングを支援するウエイトトレーニング支援装置であって、前記使用者に対して、音声及び／又は映像により、前記操作部の操作をガイドするガイド手段と、前記操作部の動きを直接的又は間接的に検出する検出手段と、前記検出手段による検出の結果に基づいて、音声及び／又は映像によるエフェクトを発生するエフェクト手段と、を備える。
【０００７】
この構成によれば、使用者にガイドが示されるだけでなく、使用者による操作部の操作、つまり、ウエイトトレーニングの実行に応じて、エフェクトが発生する。その結果、飽き難く、ウエイトトレーニングの継続を支援できる。
【０００８】
このウエイトトレーニング支援装置は、前記検出手段による検出の結果に基づいて、前記操作部の動きが所定条件を満足した時に、トリガを発生するトリガ発生手段をさらに備え、前記エフェクト手段は、音楽を奏でるための楽曲データに従い、前記トリガに応答して、楽音を発生する。
【０００９】
この構成によれば、使用者は、操作部を操作することにより、音楽を奏でることができるので、より一層飽き難く、ウエイトトレーニングの継続をより効果的に支援できる。
【００１０】
このウエイトトレーニング支援装置は、前記音楽に対応し、前記トリガに依存しない楽音を発生する自動演奏手段をさらに備える。
【００１１】
この構成によれば、使用者は、よりリズム良く、操作部の操作を行うことができる。
【００１２】
上記ウエイトトレーニング支援装置において、前記ガイド手段は、画面を移動する第１オブジェクトが、前記画面に静止して表示された第２オブジェクトに到達するタイミングにより、前記操作部の操作のタイミングをガイドする。
【００１３】
この構成によれば、使用者は、操作部の操作タイミングを容易に認識できる。
【００１４】
本発明の第２の観点によれば、ウエイトトレーニング支援装置は、使用者が操作する操作部に接続された重量部材が、前記使用者による前記操作部の操作に応じて昇降するウエイトトレーニング装置による前記使用者のウエイトトレーニングを支援するウエイトトレーニング支援装置であって、前記操作部の動きを直接的又は間接的に検出する検出手段と、前記操作部の動きが所定条件を満足した時に、トリガを発生するトリガ発生手段と、音楽を奏でるための楽曲データに従い、前記トリガに応答して、楽音を発生するエフェクト手段と、を備える。
【００１５】
この構成によれば、使用者は、操作部を操作することにより、つまり、ウエイトトレーニングを実行することにより、音楽を奏でることができる。その結果、飽き難く、ウエイトトレーニングの継続を支援できる。
【００１６】
本発明の第３の観点によれば、ウエイトトレーニング支援装置は、使用者が操作する操作部に接続された重量部材が、前記使用者による前記操作部の操作に応じて昇降するウエイトトレーニング装置による前記使用者のウエイトトレーニングを支援するウエイトトレーニング支援装置であって、前記操作部の動きを直接的又は間接的に検出する検出手段と、前記検出手段による検出の結果に基づいて、前記使用者に対して、映像により、前記操作部の操作状況を明示する明示手段と、を備える。
【００１７】
この構成によれば、使用者は、自分がどのようなペースで操作部を操作しているかを認識できるので、操作部の操作を一定のペースで行うことが容易になる。
【００１８】
上記第１から第３の観点によるウエイトトレーニング支援装置において、前記検出手段は、光ビームを発射する発光手段と、前記発光手段が発射した光ビームを受光して、電気信号に変換する受光手段と、を含み、前記発光手段は、前記操作部と前記重量部材とを接続する線状部材に取り付けられた、前記受光手段に入射する光ビームの光量を変化させる光量変化部材に、光ビームを照射する。
【００１９】
この構成によれば、操作部の動きを簡易に検出できる。
【００２０】
このウエイトトレーニング支援装置において、前記受光手段は、第１受光部及び第２受光部を含み、前記第１受光部及び前記第２受光部は、前記操作部が操作されたときの前記線状部材の移動方向に沿って配置される。
【００２１】
この構成によれば、線状部材の移動方向及び速さを簡易に検出できる。
【００２２】
このウエイトトレーニング支援装置は、前記光量変化部材が前記発光手段及び前記受光手段の上を通過するように、前記線状部材の動きを規制する規制手段をさらに備え、前記規制手段が規制する前記線状部材の動きは、前記操作部が操作されたときの前記線状部材の移動方向と垂直な方向への動きである。
【００２３】
この構成によれば、線状部材の長さ方向の動きをより確実に検出できる。
【００２４】
本発明の第４の観点によれば、ウエイトトレーニング支援プログラムは、使用者が操作する操作部に接続された重量部材が、前記使用者による前記操作部の操作に応じて昇降するウエイトトレーニング装置による前記使用者のウエイトトレーニングを支援するウエイトトレーニング支援プログラムであって、前記使用者に対して、音声及び／又は映像により、前記操作部の操作をガイドするステップと、前記操作部の動きを直接的又は間接的に検出するステップと、前記検出の結果に基づいて、音声及び／又は映像によるエフェクトを発生するステップと、をコンピュータに実行させる。
【００２５】
この構成によれば、上記第１の観点によるウエイトトレーニング支援装置と同様の効果を奏する。
【００２６】
本発明の第５の観点によれば、ウエイトトレーニング支援プログラムは、使用者が操作する操作部に接続された重量部材が、前記使用者による前記操作部の操作に応じて昇降するウエイトトレーニング装置による前記使用者のウエイトトレーニングを支援するウエイトトレーニング支援プログラムであって、前記操作部の動きを直接的又は間接的に検出するステップと、前記操作部の動きが所定条件を満足した時に、トリガを発生するステップと、音楽を奏でるための楽曲データに従い、前記トリガに応答して、楽音を発生するステップと、をコンピュータに実行させる。
【００２７】
この構成によれば、上記第２の観点によるウエイトトレーニング支援装置と同様の効果を奏する。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
【００２９】
図１は、本発明の実施の形態によるウエイトトレーニングシステムの全体構成を示す外観斜視図である。図１を参照して、このシステムは、ウエイトトレーニング装置１、アダプタ３、カートリッジ５、及びテレビジョンモニタ７を備える。
【００３０】
ウエイトトレーニング装置１は、逆Ｕ字状のフレーム１９及び垂直方向に延びる支柱２１を含み、これらは、水平方向に延びる連結部材１６及び１８によって連結される。なお、フレーム１９は、垂直方向に起立した２本の足、及びこれらを連結する水平方向に延びる連結部材を含む。左右のアーム２３は、それらが一体となって、支柱２１の上側先端部の支軸２２の回りに回動可能に取り付けられる。アーム２３の各々には、使用者が把持するグリップ２５及び２７が取り付けられる。また、ウエイトトレーニング装置１は、使用者が腰掛ける座部３３及び使用者の背中が当たるパッド３１を含む。
【００３１】
ウエイトトレーニング装置１は、垂直方向に積み上げられた複数のウエイト１３を含む。複数のウエイト１３のうち、使用者の所望の数だけを固定ピン（図示せず）でまとめ、まとめられたウエイト１３は、フレーム１９に固定された垂直方向に延びる２本のガイド１５に沿って上下動することができる。一番上のウエイト１３には、ワイヤ１７が接続されるので、使用者がアーム２３を動かすと、ワイヤ１７が上下し、応じて、まとめられたウエイト１３が上下動する。この機構は後述する。
【００３２】
アダプタ３には、カートリッジ５が装着され、また、カートリッジ５に電源を供給する電源回路を備える。また、アダプタ３は、ＡＶケーブル９により、テレビジョンモニタ７に接続される。従って、アダプタ３及びＡＶケーブル９を介してカートリッジ５が作成したビデオ信号ＶＤ及びオーディオ信号ＡＵをテレビジョンモニタ７に与えることができる。これにより、テレビジョンモニタ７に、各種画面を表示し、スピーカ（図示せず）から音楽や効果音を出力することができる。
【００３３】
カートリッジ５は、アダプタ３及び配線１１を介して、ウエイトトレーニング装置１に搭載されたリニアエンコーダ７３（後述）と電気的に接続され、アーム２３の回動によるウエイト１３の上下動を検知できる。
【００３４】
図２は、図１のウエイト１３とアーム２３との連結機構の説明図である。図２を参照して、２つの滑車３５Ｌ，３５Ｒは、図１の支柱２１の上端付近（矢印Ａ１）に配置・固定される。２つの滑車３７Ｌ，３７Ｒは、支柱２１の下端（矢印Ａ２）に配置・固定される。２つの滑車３９Ｌ，３９Ｒは、フレーム１９の一方の足の下端（矢印Ａ３）に配置・固定される。滑車４７及び４９は、フレーム１９の２本の足を連結する水平方向の連結部材に固定される。
【００３５】
ワイヤ５９の一方端は、一方のアーム２３に固定された連結部材２９に接続される。この連結部材２９から延びるワイヤ５９は、滑車３５Ｌにかかり、垂直下方向に延び、滑車３７Ｌにかかり、水平方向に延び、滑車３９Ｌにかかり、垂直上方向に延び、動滑車４１にかかり、垂直下方向に延び、滑車３９Ｒにかかり、水平方向に延び、滑車３７Ｒにかかり、垂直上方向に延び、滑車３５Ｒにかかり、そして、その他方端が、他方のアーム２３に固定された連結部材２９に接続される。
【００３６】
動滑車４３及び４５は、一体的に構成され、一体となって回転する。この動滑車４３及び４５は、動滑車４１と、連結部材５１によって接続される。ワイヤ１７の一方端は、フレーム１９に固定され、ワイヤ１７の他方端は、ウエイト１３に固定される。ウエイト１３から垂直上方向に延びるワイヤ１７は、滑車４９にかかり、滑車４５を介して、滑車４７にかかり、滑車４３を介して、フレーム１９に固定される。
【００３７】
使用者が、アーム２３を押し上げると、連結部材２９が支軸２２の回りに回動し、ワイヤ５９が矢印方向に引っ張られる。すると、動滑車４１，４３，４５が下降し、ウエイト１３が引っ張り上げられる。
【００３８】
ウエイトトレーニング装置１は、ウエイト１３の上下動を検出するためのリニアエンコーダ７３を備えている。リニアエンコーダ７３は、スケール５７及びセンサユニット５３を含む。スケール５７は、ワイヤ５９に沿って、ワイヤ５９に固定される。センサユニット５３は、フレーム１９に固定される。従って、スケール５７は、ワイヤ５９の動きと共に上下動するが、センサユニット５３は、ワイヤ５９の動きに関係なく固定される。また、センサユニット５３には、２個のガイド５５が設けられ、スケール５７は、ガイド５５に沿って上下動する。
【００３９】
センサユニット５３は、配線１１により、アダプタ３を介して、カートリッジ５に接続される。従って、センサユニット５３からの出力信号は、カートリッジ５に与えられ、カートリッジ５は、スケール５７の上下動、つまり、ワイヤ５９の上下動を検知できる。スケール５７つまりワイヤ５９は、ウエイト１３と連動しているので、ワイヤ５９の上下動は、ウエイト１３の上下動と相関する。別の言い方をすれば、スケール５７つまりワイヤ５９は、アーム２３と連動しているので、ワイヤ５９の上下動は、アーム２３の回動と相関する。
【００４０】
なお、リニアエンコーダ７３、カートリッジ５、及びアダプタ３は、ウエイトトレーニング支援装置を構成する。
【００４１】
図３（ａ）は、図２のセンサユニット５３の斜視図である。図３（ａ）を参照して、センサユニット５３は、鞍状の形状をとり、その頂部に、所定間隔だけ離して、２個のガイド５５が設けられる。なお、センサユニット５３のハウジングは、赤外線のみを透過する赤外線フィルタとしての機能を有する。
【００４２】
図３（ｂ）は、図２のセンサユニット５３の平面図である。図３（ｂ）を参照して、センサユニット５３は、その内部に、赤外発光ダイオード６１並びにフォトトランジスタ６３及び６５を備える。フォトトランジスタ６３及び６５は、垂直方向に、つまり、ワイヤ５９の長さ方向に所定間隔で配置される。赤外発光ダイオード６１は、フォトトランジスタ６３及び６５と対向して配置される。
【００４３】
図３（ｃ）は、図２のスケール５７の説明図である。図３（ｃ）を参照して、スケール５７の底面６７には、反射パターンが形成される。この反射パターンは、垂直方向に交互に形成される光反射部７１と光吸収部６９とからなる。白色の光反射部７１は受けた光を反射し、黒色の光吸収部６９は、受けた光を吸収する。ワイヤ５９の上下動に応じて、スケール５７の底面６７がセンサユニット５３に接触した状態で摺り動く。
【００４４】
従って、センサユニット５３のフォトトランジスタ６３及び６５は、赤外発光ダイオード６１が照射して、スケール５７の光反射部７１が反射した赤外光を受光し、電気信号に変換して、カートリッジ５に出力する。スケール５７は光吸収部６９を有しているので、スケール５７の上下動に応じて、フォトトランジスタ６３及び６５からは、パルス信号が出力される。このパルス信号の周期が短いほどワイヤ５９が素早く上下動したことを意味し、このパルス信号の周期が短いほどワイヤがゆっくりと上下動したことを意味する。また、フォトトランジスタ６３及び６５は、所定間隔だけ離れて配置されるので、それぞれが出力するパルス信号の位相差を検出することで、ワイヤ５９が、垂直上方向に移動したのか、垂直下方向に移動したのか、を判別できる。
【００４５】
図４は、図１のカートリッジ５の電気的構成を示す図である。図４を参照して、アダプタ３に装着されるカートリッジ５は、プロセッサ７５及び外部メモリ７７（例えば、フラッシュメモリ、ＲＯＭ、及び／又はＲＡＭ）を含む。また、プロセッサ７５は、方向・変位検出回路７８を含む。リニアエンコーダ７３のフォトトランジスタ６３及び６５が出力する２本の電気信号は、方向・変位検出回路７８に入力される。方向・変位検出回路７８は、この２本の電気信号に基づいて、スケール５７の移動方向及び変位量を検出し、レジスタ（図示せず）に格納する。
【００４６】
カートリッジ５のプロセッサ７５には、外部メモリ７７が接続される。外部メモリ７７は、プログラム領域、画像データ領域、および音声データ領域を含む。図５に示すように、プログラム領域には、制御プログラム７９が格納され、画像データ領域には、テレビジョンモニタ７に表示される画面を構成するすべての画像データ８１が格納され、音声データ領域には、音楽や効果音のための音声データ８３が格納されている。音声データ８３は、楽譜データ８５及び音源データ８７を含む。音源データ８７は、波形データ及びエンベロープデータを含む。楽譜データ８５は、トリガによる発音用の楽譜データ、ＢＧＭ用の楽譜データ、及び音符マーク登録用の楽譜データを含む。
【００４７】
プロセッサ７５は、制御プログラム７９を実行して、画像データ８１及び音声データ８３を読み出し、必要な処理を施して、ビデオ信号ＶＤ及びオーディオ信号ＡＵを生成する。この場合、プロセッサ７５は、方向・変位検出回路７８が検出した移動方向及び変位量を処理に反映する。ビデオ信号ＶＤ及びオーディオ信号ＡＵは、ＡＶケーブル９を通して、テレビジョンモニタ７に与えられる。
【００４８】
プロセッサ７５は、図示しないが、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、グラフィックスプロセサ、サウンドプロセサおよびＤＭＡコントローラ等の各種機能ブロックを含むとともに、アナログ信号を取り込むときに用いられるＡ／Ｄコンバータ、赤外線信号やキー操作信号のような入力デジタル信号を受けかつ出力デジタル信号を外部機器に与える入出力制御回路、及び内部メモリ等を含む。なお、方向・変位検出回路７８は、入出力制御回路に含まれる。
【００４９】
ＣＰＵは、外部メモリ７７に格納された制御プログラム７９を実行する。Ａ／Ｄコンバータからのデジタル信号および入出力制御回路からのデジタル信号はＣＰＵに与えられ、ＣＰＵは、制御プログラム７９に従って、それらの信号に応じて必要な演算を実行する。グラフィックスプロセサは、外部メモリ７７に格納された画像データ８１に対して、ＣＰＵの演算結果によって必要になったグラフィック処理を実行して、テレビジョンモニタ７に表示する画像を表すビデオ信号ＶＤを生成する。サウンドプロセサは、外部メモリ７７に格納された音声データ８３に対して、ＣＰＵの演算結果によって必要になったサウンド処理を実行して、音楽や効果音等を表すオーディオ信号ＡＵを生成する。内部メモリは、例えば、ＲＡＭにより構成され、ワーキング領域、カウンタ領域、レジスタ領域、テンポラリデータ領域、及び／又はフラグ領域等として利用される。
【００５０】
次に、上記のウエイトトレーニングシステムの応用例１〜３を順次説明する。なお、プレイヤは、座部３３に座って、テレビジョンモニタ７に表示されたトレーニング画面を見ながら、アーム２３を操作（押し上げと戻し）する。
【００５１】
（応用例１）
【００５２】
図６は、応用例１におけるトレーニング画面の例示図である。図６を参照して、プロセッサ７５がテレビジョンモニタ７に表示するトレーニング画面は、操作状況表示部８９、重さ表示部９５、回数表示部９３、及びガイド表示部９１を含む。操作状況表示部８９は、アーム２３の操作状況を、ライン９７から上下に延びるバー９９で示す。詳細は、次の通りである。
【００５３】
アーム２３が操作されずウエイト１３が上がっていない状態を基準状態と呼ぶ。基準状態から、使用者がアーム２３を押し上げると、ワイヤ５９の移動に伴ってスケール５７が下降する。この時のフォトトランジスタ６３及び６５の出力により、プロセッサ７５は、スケール５７の下降と移動速度を検知できる。そして、使用者がアーム２３を戻すと、ワイヤ５９の移動に伴ってスケール５７が上昇し、基準状態に戻る。この時のフォトトランジスタ６３及び６５の出力により、プロセッサ７５は、スケール５７の上昇と移動速度を検知できる。
【００５４】
プロセッサ７５の方向・変位検出回路７８は、フォトトランジスタ６３及び６５からの２本の電気信号に基づいてスケール５７の移動方向及び変位量（以下、これらを合わせて「変位ベクトルＤ」と呼ぶ。）を検出し、レジスタ（図示せず）に格納する。スケール５７が下降する方向、つまり、アーム２３が押し上げられる方向を、変位ベクトルＤの正とし、スケール５７が上昇する方向、つまり、アーム２３が戻される方向を、変位ベクトルＤの負とする。なお、Ｄは正負の符号を含む。また、アーム２３が基準状態から押し上げられ、再び基準状態に戻されるまでを、操作の１サイクルとする。
【００５５】
プロセッサ７５は、変位ベクトルＤから、スケール５７の移動速度を算出する。そして、プロセッサ７５は、スケール５７の移動速度に応じて伸縮するバー９９を操作状況表示部８９に表示する。具体的には、アーム２３が押し上げられ、スケール５７が基準状態から下降すると、移動速度が正になり、応じて、バー９９は、正方向に延び、アーム２３が最大（当該使用者にとって）に押し上げられた時点で最大値となる。そして、そこからアーム２３が引き戻され、スケール５７が上昇すると、移動速度が負になり、応じて、バー９９は、短くなり、基準状態で最小値となる。この場合、スケール５７が上昇する際の移動速度によっては、バー９９が負方向に延びる場合もある。なお、バー９９の正方向は、ライン９７から垂直上方向であり、バー９９の負方向は、ライン９７から垂直下方向である。また、操作の１サイクルが終了すると、現在のバー９９の右隣の位置にバー９９が新たに表示される。
【００５６】
一般に、ウエイトトレーニングにおいては、アーム２３を押し上げる速度（時間）とアーム２３を戻す速度（時間）とが同じになるように、アーム２３の操作を行うのが好ましいとされる。従って、１サイクルの終了後にバー９９が表示されないか、バー９９が短い場合は、良好にアーム２３を操作していることが分かる。１サイクル終了後の直近のバー９９が上方向に大きく延びていたら、アーム２３を押し上げる速度がアーム２３を戻す速度よりも大分速かったことが分かる。１サイクル終了後の直近のバー９９が下方向に大きく延びていたら、アーム２３を戻す速度がアーム２３を押し上げる速度よりも大分速かったことが分かる。このように、使用者は、操作状況表示部８９を見ることにより、自分がアーム２３をどのようなペースで操作しているのかを容易に認識できる。
【００５７】
さて、プロセッサ７５は、固定ピンでまとめられたウエイト１３の重量の合計値を重さ表示部９５に表示する。プロセッサ７５は、使用者が行うべき、アーム２３の押し上げ動作の回数を回数表示部９３にカウントダウン表示する。
【００５８】
また、プロセッサ７５は、使用者のアーム２３の操作状況を評価し、評価結果に応じたガイドをガイド表示部９１に表示する。この場合、プロセッサ７５は、三段階（ゆっくり上げましょう、ゆっくり戻しましょう、ちょうど良い）でガイドする。プロセッサ７５は、１サイクル終了後のバー９９の長さＬｗの絶対値が所定値Ｌｇより小さい場合は、「ちょうど良い」なるガイドを表示し、１サイクル終了後のバー９９の長さＬｗの絶対値が所定値Ｌｇより大きく、かつ、長さＬｗが正の場合は、アーム２３の押し上げが速過ぎと判断して、「ゆっくり挙げましょう」なるガイドを表示し、１サイクル終了後のバー９９の長さＬｗの絶対値が所定値Ｌｇより大きく、かつ、長さＬｗが負の場合は、アーム２３の戻しが速過ぎと判断して、「ゆっくり戻しましょう」なるガイドを表示する。
【００５９】
さて、次に、フローチャートを用いて、応用例１におけるプロセッサ７５の処理の流れを説明する。
【００６０】
図７は、図４のプロセッサ７５による全体処理の流れを示すフローチャートである。図７を参照して、ステップＳ５００にて、プロセッサ７５は、各種変数（フラグやカウンタを含む。）の初期化等、システムの初期設定を実行する。ステップＳ５０２にて、プロセッサ７５は、外部メモリ７７に格納された制御プログラムに従った情報処理を実行する。ステップＳ５０４にて、プロセッサ７５は、ビデオ同期信号による割り込みが発生するまで待機する。つまり、プロセッサ７５は、ビデオ同期信号による割り込みが発生していない場合は、同じステップＳ５０４に戻り、ビデオ同期信号による割り込みが発生した場合は、ステップＳ５０６に進む。例えば、ビデオ同期信号による割り込みは、１／６０秒ごとに発生する。この割り込みに同期して、ステップＳ５０６及びステップＳ５０８にて、プロセッサ７５は、ステップＳ５０２の処理結果に従って、テレビジョンモニタ７に表示する画像を更新すると共に、音声の再生を行う。そして、プロセッサ７５は、ステップＳ５０２に戻る。
【００６１】
図８は、応用例１における図７のステップＳ５０２で実行される情報処理の流れを示すフローチャートである。図８を参照して、ステップＳ５２０にて、プロセッサ７５は、操作状況表示部８９の表示を制御する。ステップＳ５２２にて、プロセッサ７５は、重さ表示部９５に表示するウエイト１３の重量の合計値を表す数字を設定する。ステップＳ５２４にて、プロセッサ７５は、回数表示部９３に表示するアーム２３の押し上げ動作の回数を表す数字を設定する。ステップＳ５２６にて、プロセッサ７５は、ガイド表示部９１の表示を制御する。
【００６２】
図９は、図８のステップＳ５２０で実行される操作状況表示部制御の流れを示すフローチャートである。図９を参照して、ステップＳ５４０にて、プロセッサ７５は、プレイの終了を示す終了フラグをチェックし、オンの場合ステップＳ５４２に進み、終了処理を実行し、オフの場合ステップＳ５４４に進む。
【００６３】
ステップＳ５４４にて、プロセッサ７５は、方向・変位検出回路７８のレジスタからスケール５７の変位ベクトルＤを取得する。ステップＳ５４６にて、プロセッサ７５は、タイマＴを１つインクリメントする。
【００６４】
ステップＳ５４８にて、プロセッサ７５は、前回の変位ベクトルＤの大きさが０であり、かつ、今回の変位ベクトルＤの大きさが０以外の場合、ステップＳ５５０に進み、それ以外はステップＳ５６０に進む。ステップＳ５５０にて、プロセッサ７５は、変位ベクトルＤが、負から正に変化したか否かを判断し、変化した場合ステップＳ５５２に進み、それ以外はステップＳ５６０に進む。前回の変位ベクトルＤの大きさが０であり、かつ、今回の変位ベクトルＤの大きさが０以外の場合とは、アーム２３が最大（当該使用者にとって）まで押し上げられて静止し、これにより、変位ベクトルＤが０になり、再び、引き戻す動作が開始され、変位ベクトルＤが負になったか（第１の状態）、あるいは、アーム２３が基準状態まで引き戻され静止し、これにより、変位ベクトルＤが０になり、再び、押し上げる動作が開始され、変位ベクトルＤが正になった場合（第２の状態）、である。そして、さらに、変位ベクトルＤが、負から正に変化したということは、アーム２３が第２の状態であることを意味する。
【００６５】
アーム２３が第２の状態になったということは、操作の１サイクルが終了したことを意味し、ステップＳ５５２にて、プロセッサ７５は、行われた操作のサイクル数を計数するカウンタＣｎ１を１つインクリメントする。ステップＳ５５４にて、プロセッサ７５は、カウンタＣｎ１の値が定数Ｎ１に等しくなったか否かを判断し、等しい場合ステップＳ５５６に進み、終了フラグをオンにし、それ以外はステップＳ５５８に進む。定数Ｎ１は、使用者が行うべき操作のサイクル数である。従って、使用者が規定のサイクル数Ｎ１だけ、操作を完了すると、プレイを終了すべく、ステップＳ５５６に進むのである。
【００６６】
さて、ステップＳ５５８では、今回の１サイクルのための新たなバー９９を、直近で終了した１サイクルのためのバー９９の右隣に表示すべく、当該新たなバー９９のｘ座標を設定する。
【００６７】
ステップＳ５６０では、プロセッサ７５は、変位レベルＤＬ１を算出する。変位レベルＤＬ１は、変位ベクトルＤの累積値であり、正負の符号を含む。ステップＳ５６２にて、プロセッサ７５は、変位レベルＤＬ１の絶対値が定数Ｓｅより大きいか否かを判断し、大きい場合はステップＳ５６６に進み、それ以外はステップＳ５６４に進む。また、ステップＳ５６４にて、プロセッサ７５は、変位ベクトルＤが０か否かを判断し、０の場合ステップＳ５６６に進み、それ以外はステップＳ５７４に進む。
【００６８】
ステップＳ５６２又はステップＳ５６４で「ＹＥＳ」が判断された後、ステップＳ５６６にて、プロセッサ７５は、変位レベルＤＬ１及びタイマＴの値により、スケール５７の速度Ｖ１（正負の符号を含む。）を算出する。ステップＳ５６８にて、プロセッサ７５は、変位レベルＤＬ１及びタイマＴを０にリセットする。
【００６９】
ステップＳ５７０にて、プロセッサ７５は、バーセグメントの長さＢＳ１を算出する。なお、バー９９は複数のバーセグメントから構成される。具体的には、スケール５７の移動速度Ｖ１に定数Ｍを乗じて、結果を長さＢＳ１（正負の符号を含む。）とする。そして、ステップＳ５７２にて、プロセッサ７５は、長さＢＳ１のバーセグメントを最新のバー９９に加算する設定を行う。この場合、バー９９の長さを、バーセグメントの加算後の長さに直ちに設定することもできるが、変化を滑らかに見せるために、徐徐に加算後の長さに近づくように、バー９９のアニメーションを設定する。なお、長さＢＳ１は、正負の符号を持つので、長さＢＳ１が正の場合バー９９は正方向に延び、長さＢＳ１が負の場合バー９９は負方向に縮む。ステップＳ５７４では、プロセッサ７５は、方向・変位検出回路７８のレジスタを０にリセットする。
【００７０】
ここで、アーム２３が基準状態から最大（平均的なモデルとなる使用者にとって）まで押し上げられた時の変位レベルＤＬ１の絶対値をＤＡとする。この絶対値ＤＡを所定数で割ったときの商を定数Ｓｅとする（ステップＳ５６２）。従って、変位レベルＤＬ１の絶対値が定数Ｓｅを超えるたびに、ステップＳ５６６〜Ｓ５７２の処理が行われ、バー９９が更新される。
【００７１】
また、変位ベクトルＤが０ということは、アーム２３が基準状態にあるか、あるいは、最大まで押し上げられた位置にある場合であるので、この場合は、変位レベルＤＬ１の絶対値の大きさに関係なく、ステップＳ５６６〜Ｓ５７２の処理を行うべく、ステップＳ５６４が設けられる。
【００７２】
図１０は、図８のステップＳ５２６で実行されるガイド表示部制御の流れを示すフローチャートである。図１０を参照して、ステップＳ６００にて、プロセッサ７５は、操作の１サイクルが終了したか否かを判断して、終了した場合ステップＳ６０４に進み、それ以外はリターンする。
【００７３】
ステップＳ６０４にて、プロセッサ７５は、１サイクル終了後のバー９９の長さＬｗの絶対値が所定値Ｌｇより小さいか否かを判断し、小さい場合ステップＳ６０６に進み、「ちょうど良い。」なるガイドを設定し、それ以外はステップＳ６０８に進む。
【００７４】
ステップＳ６０８では、プロセッサ７５は、１サイクル終了後のバー９９の長さＬｗが０より大きいか否かを判断し、大きい場合はステップＳ６１０に進み、それ以外はステップＳ６１２に進む。ステップＳ６１０では、プロセッサ７５は、「ゆっくり挙げましょう。」なるガイドを設定する。一方、ステップＳ６１２では、プロセッサ７５は、「ゆっくり戻しましょう。」なるガイドを設定する。
【００７５】
図１１は、応用例１の変形例におけるトレーニング画面の説明図である。図１１を参照して、プロセッサ７５がテレビジョンモニタ７に表示するトレーニング画面は、操作状況表示部６２、重さ表示部９５、回数表示部９３を含む。操作状況表示部６２は、アーム２３の操作状況を青色（右上がりの斜線で示す）のバー６５及び赤色（右下がりの斜線で示す）バー６６で示す。詳細は、次の通りである。
【００７６】
プロセッサ７５は、スケール５７が下降するとき、つまり、アーム２３が押し上げられたときは、スケール５７の移動速度の大きさに応じて、上方向に延びるバー６５をライン１０８を起点として表示する。そして、プロセッサ７５は、スケール５７の移動方向が上昇（アーム２３の引き戻し）へ変化したときに、当該バー６５の表示を終了し、その隣にバー６６の表示を開始する。
【００７７】
プロセッサ７５は、スケール５７が上昇するとき、つまり、アーム２３が戻されるときは、スケール５７の移動速度の大きさに応じて、上方向に延びるバー６６をライン１０８を起点として表示する。そして、プロセッサ７５は、スケール５７の移動方向が下降（アーム２３の押し上げ）へ変化したときに、当該バー６５の表示を終了し、その隣にバー６６の表示を開始する。
【００７８】
バー６５がライン１０８とライン１０７の間にあるときは、アーム２３の押し上げの速度が遅すぎることを意味する。バー６５がライン１０７とライン１０６の間にあるときは、アーム２３の押し上げの速度がちょうど良いことを意味する。バー６５がライン１０６とライン１０５の間にあるときは、アーム２３の押し上げの速度が速すぎることを意味する。
【００７９】
バー６６がライン１０８とライン１０７の間にあるときは、アーム２３の戻しの速度が遅すぎることを意味する。バー６６がライン１０７とライン１０６の間にあるときは、アーム２３の戻しの速度がちょうど良いことを意味する。バー６６がライン１０６とライン１０５の間にあるときは、アーム２３の戻しの速度が速すぎることを意味する。
【００８０】
このように、使用者は、操作状況表示部６２を見ることにより、自分がアーム２３をどのようなペースで操作しているのかを容易に認識できる。
【００８１】
さて、次に、フローチャートを用いて、変形例におけるプロセッサ７５の処理の流れを説明する。変形例におけるプロセッサ７５の処理は、図７及び図８に示した処理と同様である。ただし、変形例では、図８のステップＳ５２６は実行されず、また、ステップＳ５２０は、次に示すフローチャートのようになる。
【００８２】
図１２は、応用例１の変形例における図８のステップＳ５２０で実行される操作状況表示部制御の流れを示すフローチャートである。図１２を参照して、ステップＳ６３０にて、プロセッサ７５は、プレイの終了を示す終了フラグをチェックし、オンの場合ステップＳ６３２に進み、終了処理を実行し、オフの場合ステップＳ６３４に進む。
【００８３】
ステップＳ６３４にて、プロセッサ７５は、方向・変位検出回路７８のレジスタからスケール５７の変位ベクトルＤを取得する。ステップＳ６３６にて、プロセッサ７５は、タイマＴを１つインクリメントする。
【００８４】
ステップＳ６３８にて、プロセッサ７５は、前回の変位ベクトルＤの大きさが０であり、かつ、今回の変位ベクトルＤの大きさが０以外の場合、ステップＳ６４０に進み、それ以外はステップＳ６４８に進む。前回の変位ベクトルＤの大きさが０であり、かつ、今回の変位ベクトルＤの大きさが０以外の場合とは、アーム２３が最大（当該使用者にとって）まで押し上げられて静止し、これにより、変位ベクトルＤが０になり、再び、引き戻す動作が開始され、変位ベクトルＤが負になったか（第１の状態）、あるいは、アーム２３が基準状態まで引き戻され静止し、これにより、変位ベクトルＤが０になり、再び、押し上げる動作が開始され、変位ベクトルＤが正になった場合（第２の状態）、である。
【００８５】
ステップＳ６４０にて、プロセッサ７５は、行われたアーム２３の押し上げ及び引き戻しの合計回数を計数するカウンタＣｎ２を１つインクリメントする。ステップＳ６４２にて、プロセッサ７５は、カウンタＣｎ２の値が定数Ｎ２に等しくなったか否かを判断し、等しい場合ステップＳ６４４に進み、終了フラグをオンにし、それ以外はステップＳ６４６に進む。定数Ｎ２は、使用者が行うべき操作のサイクル数の２倍の値である。なぜなら、カウンタＣｎ２は、アームの往路の終了時と復路の終了時のそれぞれでカウントアップされるからである。使用者がＮ２回の押し上げと引き戻しを完了すると、プレイを終了すべく、ステップＳ６４４に進むのである。
【００８６】
さて、ステップＳ６４６では、直近で押し上げ動作が終了した場合、次の引き戻し動作のためのバー６６のｘ座標を設定し、あるいは、直近で引き戻し動作が終了した場合、次の押し上げ動作のためのバー６５のｘ座標を設定する。
【００８７】
ステップＳ６４８では、プロセッサ７５は、変位レベルＤＬ２を算出する。変位レベルＤＬ２は、変位ベクトルＤの絶対値の累積値であり、符号は正である。ステップＳ６５０にて、プロセッサ７５は、変位レベルＤＬ２が定数Ｓｅより大きいか否かを判断し、大きい場合はステップＳ６５４に進み、それ以外はステップＳ６５２に進む。また、ステップＳ６５２にて、プロセッサ７５は、変位ベクトルＤが０か否かを判断し、０の場合ステップＳ６５４に進み、それ以外はステップＳ６６２に進む。
【００８８】
ステップＳ６５０又はステップＳ６５２で「ＹＥＳ」が判断された後、ステップＳ６５４にて、プロセッサ７５は、変位レベルＤＬ２及びタイマＴの値により、スケール５７の速度Ｖ２（符号は正）を算出する。ステップＳ６５６にて、プロセッサ７５は、変位レベルＤＬ２及びタイマＴを０にリセットする。
【００８９】
ステップＳ６５８にて、プロセッサ７５は、バーセグメントの長さＢＳ２を算出する。なお、バー６５及び６６は複数のバーセグメントから構成される。具体的には、スケール５７の移動速度Ｖ２に定数Ｍを乗じて、結果を長さＢＳ２（符号は正）とする。そして、ステップＳ６６０にて、プロセッサ７５は、長さＢＳ２のバーセグメントを、バー６５及び６６のうち最新のバーに加算する設定を行う。この場合、バーの長さを、バーセグメントの加算後の長さに直ちに設定することもできるが、変化を滑らかに見せるために、徐徐に加算後の長さに近づくように、バーのアニメーションを設定する。なお、長さＢＳ２の符号は正なので、必ずバーは正方向に延びる。ステップＳ６６２では、プロセッサ７５は、方向・変位検出回路７８のレジスタを０にリセットする。
【００９０】
ここで、アーム２３が基準状態から最大（平均的なモデルとなる使用者にとって）まで押し上げられた時の変位レベルＤＬ２を所定数で割ったときの商を定数Ｓｅとする（ステップＳ６５０）。従って、変位レベルＤＬ２が定数Ｓｅを超えるたびに、ステップＳ６５４〜Ｓ６６０の処理が行われ、バー（６５，６６）が更新される。
【００９１】
また、変位ベクトルＤが０ということは、アーム２３が基準状態にあるか、あるいは、最大まで押し上げられた位置にある場合であるので、この場合は、変位レベルＤＬ２の大きさに関係なく、ステップＳ６５４〜Ｓ６６０の処理を行うべく、ステップＳ６５２が設けられる。
【００９２】
さて、以上のように、応用例１及びその変形例では、操作状況表示部８９又は６２をテレビジョンモニタ７に表示することにより、アーム２３の操作状況が明示される。従って、使用者は、自分がどのようなペースでアーム２３を操作しているかを認識できるので、アーム２３の操作を一定のペースで行うことが容易になる。
【００９３】
（応用例２）
【００９４】
応用例２では、プロセッサ７５は、アーム２３の操作に応じて、楽音を生成して、音楽を奏でる。詳細は次の通りである。
【００９５】
プロセッサ７５は、スケール５７の速さが所定の閾値ＴＨ１より大きくなり、かつ、スケール５７の移動方向が変化した場合にトリガを発生する。そして、プロセッサ７５は、トリガが発生する度に、楽曲の一音一音を発音する。この場合、プロセッサ７５は、スケール５７の速さに応じて、楽音の音量を制御する。
【００９６】
また、プロセッサ７５は、スケール５７の速さが所定の閾値ＴＨ２を下回った場合に、最新のトリガによる発音の終了処理を行う。ただし、プロセッサ７５は、スケール５７の速さが所定の閾値ＴＨ２を下回っていない場合でも、新たなトリガが発生した場合は、新たなトリガによる発音を優先し、前回のトリガによる発音の終了処理を行う。
【００９７】
ここで、発音の終了処理とは、発音を直ちに中止するという意味ではなく、音の減衰処理を行うという意味である。従って、発音の停止処理が開始されてから、音が出なくなるまで、一定時間（リリースタイム）要することになる。
【００９８】
さらに、プロセッサ７５は、新たなトリガに応じた発音のための発音チャンネルを、前回のトリガに応じた発音のための発音チャンネルと異ならせる。従って、前回のトリガによる発音が、新たなトリガによる発音開始によって直ちに停止されることがないため、滑らかな演奏を実行できる。
【００９９】
さて、プロセッサ７５は、トリガが発生するたびに、図１３の楽譜データを参照して、ポインタが指し示すノートナンバを取得して、対応する楽音を生成し、オーディオ信号ＡＵとして、テレビジョンモニタ７のスピーカに出力する。なお、図１３の楽譜データは、トリガによる発音用の楽譜データであり、楽譜データ８５に含まれる。
【０１００】
図１３を参照して、トリガによる発音用の楽譜データは、ノートナンバ及び楽器指定情報が時系列に配置されたデータである。ノートナンバは、ピッチ（音の高さ）を指定する情報である。楽器指定情報は、どの楽器の音色を使うかを指定する情報である。応用例２では、一例として、バイオリンの音色を指定している。なお、発音開始、発音長および音量は、スケール５７の動き、つまり、アーム２３の操作に依存して変化する。
【０１０１】
プロセッサ７５は、トリガが発生し、ノートナンバを取得すると、ポインタを次に進める。従って、使用者は、アーム２３の操作（押し上げと戻し）を繰り返すことにより、図１３の楽譜データに含まれる一連のノートナンバが示す音楽を奏でることができる。
【０１０２】
なお、プロセッサ７５は、図示は省略したが、上記のトリガに応じて変化する映像をテレビジョンモニタ７に表示する。
【０１０３】
さて、以上のように、応用例２では、使用者は、アーム２３を操作することにより、つまり、ウエイトトレーニングを実行することにより、音楽を奏でることができる。その結果、飽き難く、ウエイトトレーニングの継続を支援できる。
【０１０４】
（応用例３）
【０１０５】
応用例３では、プロセッサ７５は、アーム２３の操作に応じて、楽音を生成して、音楽を奏でる。この点、応用例２と同様である。ただし、応用例２と異なり、アーム２３の操作ガイドが表示される。異なる点を中心に説明する。
【０１０６】
図１４は、応用例３におけるトレーニング画面の説明図である。図１４を参照して、このトレーニング画面の上枠の近傍には、使用者が選択した曲名が表示される。この例では、曲名として、曲Ａが表示されている。曲名の下段には、インジケータ１０３が表示される。このインジケータ１０３は、ＢＧＭ（ｂａｃｋｇｒｏｕｎｄ  ｍｕｓｉｃ）の進行状況を表す。すなわち、インジケータ１０３を構成する帯状の長方形の長さが、曲Ａ全体の時間的な長さを表す。そして、ＢＧＭの進行に従って、インジケータ１０３の色を特定の色に変化させていくことで、現在発音されているＢＧＭの時間的な位置を表す。
【０１０７】
このため、ＢＧＭの発音が進むに従って、インジケータ１０３において、特定の色に変化した部分の面積が増加し、曲Ａの最後には、インジケータ１０３の全てが特定の色に変化する。なお、図１４では、特定の色を斜線で表している。
【０１０８】
さらに、インジケータ１０３に重ねて、使用者の現在の操作位置を表す縦棒１０４が表示される。従って、使用者は、適切な操作位置に対して、どの程度ずれて操作しているかを把握できる。つまり、インジケータ１０３において、特定の色に変化した部分の先端（右端）が、現在の適切な操作位置であるため、この先端（右端）の位置と、使用者の現在の操作位置を表す縦棒１０４の位置と、を比較すれば、現在自分がどの程度ずれて操作しているかを把握できる。ここで言う操作位置とは、楽曲全体の時間を表す時間軸上の位置のことである。
【０１０９】
また、インジケータ１０３の下段には、操作ガイドとして、音符マークｎ−０、…、ｎ−６、…、が表示される。ここで、音符マークｎ−０、…、ｎ−６、…、を包括的に表現する場合は、音符マークｎと表記する。
【０１１０】
この音符マークｎは、画面の右端に出現し、一定速度で左方向に移動し、画面の左端に到達して消滅する。この音符マークｎが、操作指示枠１０１に入るタイミングあるいは操作指示マーク１０２の真上に来るタイミングで、使用者がアーム２３を操作してトリガを発生させると、ＢＧＭに合った楽音を発生できる。
【０１１１】
また、この音符マークｎの間隔は、選択した曲Ａの楽譜での音符の時間軸上の間隔を表している。従って、使用者は、この間隔を見ることで、アーム２３の操作のタイミングを直感的に把握できる。ここで、アーム２３の操作のタイミングとは、トリガを発生させるタイミングのことである。
【０１１２】
さらに、音符マークｎに付随した発音長指示バー１００は、発音する長さを表している。従って、使用者は、この発音長指示バー１００を見ることで、その発音を持続させる期間を直感的に把握できる。なお、音符マークｎ−１に付随する発音長指示バー１００は、次の音符マークｎ−２まで延びていない。これは、この発音長指示バー１００の終端（右端）に休符があることを示している。
【０１１３】
さらに、使用者がアーム２３を操作して、プロセッサ７５が楽音を発生させると、発生させた楽音に対応する音符マークｎ及びその音符マークｎに付随する発音長指示バー１００の色が変化する。これにより、使用者は、プロセッサ７５がトリガに応じて現在どの音符マークｎに対応した楽音を発生しているかを直感的に知ることができる。
【０１１４】
さらに、画面には、シンクロ値１１１が表示される。このシンクロ値１１１は、使用者の操作が本来のタイミングからどのくらいずれているかを数値で示す。
【０１１５】
ところで、プロセッサ７５は、図１５に示すＢＧＭ用の楽譜データに従って、ＢＧＭを生成し、オーディオ信号ＡＵとして、テレビジョンモニタ７のスピーカに出力する。なお、図１５の楽譜データは、楽譜データ８５に含まれる。
【０１１６】
図１５を参照して、ＢＧＭ用の楽譜データは、コマンド、ノートナンバ／待機時間情報、楽器指定情報、ベロシティ情報、及び、ゲートタイム情報、が時系列に配置されたデータである。ノートオンは、音を出すコマンド、待機は、待機時間を設定するコマンド、である。待機時間は、現在のコマンドを読み出してから次のコマンドを読み出すまでの時間（ある音符から次の音符までの時間）である。ノートナンバは、ピッチ（音の高さ）を指定する情報である。待機時間情報は、待機時間を指定する情報である。楽器指定情報は、どの楽器の音色を使うかを指定する情報である。ベロシティは、音の強弱の情報、つまり、音量の情報、である。ゲートタイムは、音が発音される長さである。
【０１１７】
プロセッサ７５は、コマンドを読み出すたびに、ポインタを次に進めて、図１５の楽譜データが示すＢＧＭを演奏していく。
【０１１８】
また、プロセッサ７５は、図１６に示す音符マーク登録用の楽譜データに従って、音符マークｎを生成し、テレビジョンモニタ７に表示する。なお、図１６の楽譜データは、楽譜データ８５に含まれる。
【０１１９】
図１６を参照して、音符マーク登録用の楽譜データは、コマンド、ノートナンバ／待機時間情報、及び、楽器指定情報、が時系列に配置されたデータである。楽器指定情報は、音楽を奏でる楽器（音色）を示す番号ではなく、言わば、音符マークｎを出現させる楽器を示す番号である。このような楽器指定情報により、この楽譜データが、音楽を奏でる楽譜データではなく、音符マークｎを出現させる楽譜データであることが示される。従って、ノートオンは、音を出すコマンドではなく、音符マークｎを出現させるコマンドである。具体的には、対応するノートナンバ「６９」により、音符マークｎを出現させることが指示される。
【０１２０】
また、ノートオフは、音を止めるコマンドではなく、発音長指示バー１００の表示の停止を指示するコマンドである。具体的には、対応するノートナンバ「５５」により、発音長指示バー１００の表示の停止が指示される。また、開始コードは、音符マーク登録用の楽譜データの先頭に配置するコードである。そして、対応するノートナンバ「１０８」は、音符マーク登録用の楽譜データの先頭を示す情報である。こうすることで、ＢＧＭ用の楽譜データと音符マーク登録用の楽譜データとの先頭を揃える。また、終了コードは、音符マーク登録用の楽譜データの末尾に配置するコードである。そして、ノートナンバ「８４」は、音楽終了を示す情報である。
【０１２１】
なお、音符マークｎの移動速度は一定であり、従って、音符マークｎが画面右端に出現してから操作指示枠１０１に到達するまでの時間Ｔｄも一定である。音符マークｎが操作指示枠１０１に到達するタイミングでトリガを発生させるとＢＧＭに合った楽音が発生するのであるから、音符マークｎの出現タイミングは、ＢＧＭの進行よりも時間Ｔｄだけ早くなる。
【０１２２】
上記のように、使用者は、アーム２３を操作（押し上げ、引き戻し）して、音楽の演奏を行うことができる。
【０１２３】
さて、次に、フローチャートを用いて、応用例３におけるプロセッサ７５の処理の流れを説明する。
【０１２４】
図１７は、応用例３における、図４のプロセッサ７５による全体処理の流れを示すフローチャートである。図１７に示すように、ステップＳ１にて、プロセッサ７５は、システムの初期設定を実行する。ステップＳ２にて、プロセッサ７５は、演奏状態をチェックする。ステップＳ３にて、プロセッサ７５は、演奏が終了したかどうかを判断する。プロセッサ７５は、演奏が終了した場合（後述の音楽終了フラグがオン）は処理を終了し、演奏が終了していない場合は、ステップＳ４に進む。
【０１２５】
ステップＳ４にて、プロセッサ７５は、スケール５７の移動方向及び移動速さＶ０を計測して、それらがトリガ発生条件を満足している場合に、トリガを発生させる（発音フラグオン）。ステップＳ５にて、プロセッサ７５は、トリガに応じて発音する楽音の音量を制御すべく、スケール５７の移動速さＶ０に応じて、エンベロープ係数を算出する。
【０１２６】
ステップＳ６にて、プロセッサ７５は、トリガによる発音用の楽譜データポインタに従って、波形データのアタック部及びループ部の先頭アドレスを内部メモリ（プロセッサ７５に内蔵）に格納するとともに、算出されたエンベロープ係数を加味したエンベロープデータを、内部メモリに格納する。なお、波形データのアタック部及びループ部やエンベロープデータは、トリガ発音のための楽音関連情報である。ステップＳ７にて、プロセッサ７５は、音符マークｎ等のオブジェクトの表示に必要なオブジェクト関連情報を内部メモリに格納する。
【０１２７】
ステップＳ８にて、プロセッサ７５は、ビデオ同期信号による割り込みが発生するまで待機する。つまり、プロセッサ７５は、ビデオ同期信号による割り込みが発生していない場合は、同じステップＳ８に戻り、ビデオ同期信号による割り込みが発生した場合は、ステップＳ９に進む。例えば、ビデオ同期信号による割り込みは、１／６０秒ごとに発生する。この割り込みに同期して、ステップＳ９及びステップＳ１０の処理が実行され、そして、ステップＳ２に戻る。
【０１２８】
つまり、ステップＳ９にて、プロセッサ７５は、オブジェクト関連情報をグラフィックプロセッサ（プロセッサ７５に内蔵）に与えるとともに、グラフィックプロセッサは、内部メモリから背景関連情報を取得する。グラフィックプロセッサは、オブジェクト及び背景を表す画像信号ＶＤを生成して（本実施の形態では、コンポジット信号が生成される。）、テレビジョンモニタ７に与える。
【０１２９】
また、ステップＳ１０にて、プロセッサ７５は、ＢＧＭ用の楽譜データに従って、ＢＧＭ発音のための楽音関連情報を内部メモリに格納する。サウンドプロセッサ（プロセッサ７５に内蔵）は、内部メモリから、トリガ発音（ステップＳ６参照）およびＢＧＭ発音のための楽音関連情報を取得して、これらの情報を基に楽音信号ＡＬ及びＡＲ（上記ではこれらを合わせてＡＵと表記）を生成し、テレビジョンモニタ７に与える。また、ステップＳ１０では、プロセッサ７５は、音符マーク登録用の楽譜データに従って、音符マークｎを登録する。
【０１３０】
図１８は、図１７のステップＳ１の初期設定処理の流れの一例を示すフローチャートである。図１８に示すように、ステップＳ３０にて、プロセッサ７５は、音符マーク登録用の楽譜データポインタを初期化する。ステップＳ３１にて、プロセッサ７５は、音符マーク登録用の実行待機カウンタを「０」にセットする。ステップＳ３２にて、プロセッサ７５は、ＢＧＭ用の楽譜データポインタを初期化する。ステップＳ３３にて、プロセッサ７５は、ＢＧＭ用の実行待機カウンタを「ｔ」にセットする。ステップＳ３４にて、プロセッサ７５は、トリガによる発音用の楽譜データポインタを初期化する。
【０１３１】
ステップＳ３５にて、プロセッサ７５は、各種カウンタを初期化する。ステップＳ３６にて、プロセッサ７５は、各種フラグを初期化する。ステップＳ３７にて、プロセッサ７５は、背景の表示に必要な背景関連情報及びオブジェクト関連情報をそれぞれ内部メモリの背景用データ領域およびオブジェクト用データ領域に格納する。
【０１３２】
具体的には、次の通りである。背景画像が、例えば、３２×３２のブロックからなるとする。そして、背景画像が、横２５６画素×縦２５６画素からを構成されるとすると、１つのブロックは、横８画素×縦８画素からなる。プロセッサ７５は、このブロックごとに、デプス値及びカラーパレット情報を内部メモリに格納するとともに、ブロックごとに、画素パターン指定情報の格納位置情報を内部メモリに格納する。なお、画素パターン指定情報は、各画素の色を指定する情報である。
【０１３３】
また、プロセッサ７５は、表示対象の全オブジェクトのオブジェクト関連情報（オブジェクトの、サイズ、デプス値、カラーパレット情報、画素パターン指定情報の格納位置情報、水平座標および垂直座標）を内部メモリに格納する。
【０１３４】
ここで、ＢＧＭ用の実行待機カウンタを「ｔ」にセットし（ステップＳ３３）、音符マークｎの登録用の実行待機カウンタを「０」にセットした（ステップＳ３１）理由は次の通りである。
【０１３５】
図１４に示されるように、音符マークｎが右端に出現してから、操作指示枠１０１に入るまでに一定時間を要することから、この時間誤差を解消するために、一定時間だけ早く音符マークｎを出現させる必要があるからである。つまり、音符マーク登録用では、ＢＧＭ用に比べて、一定時間（カウント値ｔ）だけ早く楽譜データを読み出すようにしてある。なお、音符マークの登録用の実行待機カウンタ、及び、ＢＧＭ用の実行待機カウンタは、カウントダウンを行うものである。
【０１３６】
図１９は、図１７のステップＳ４のトリガ処理の流れの一例を示すフローチャートである。図１９に示すように、ステップＳ５０にて、プロセッサ７５は、方向・変位検出回路７８のレジスタ（速度レジスタと呼ぶこともある。）から、変位ベクトルｖ０を取得し、当該レジスタをリセットする。なお、変位ベクトルｖ０は、１ビデオフレーム間の移動方向及び変位量を表すので、以降、移動速度ｖ０と呼ぶ。
【０１３７】
ステップＳ５１にて、プロセッサ７５は、移動速度ｖ０の符号が正であれば、ステップＳ５３に進み、負であれば、ステップＳ５２に進む。ステップＳ５３では、プロセッサ７５は、変数Ｖ０（移動速さ）に、移動速度ｖ０の値を代入する。一方、ステップＳ５２では、プロセッサ７５は、負の値である移動速度ｖ０の絶対値｜ｖ０｜を求め、これを変数Ｖ０（移動速さ）に代入する。
【０１３８】
ステップＳ５４にて、プロセッサ７５は、スケール５７の移動速さＶ０が、予め定められた最大値ＭＡＸを超えているかどうかを判断する。移動速さＶ０が、予め定められた最大値ＭＡＸを超えていれば、ステップＳ５５に進み、移動速さＶ０に最大値ＭＡＸを代入して、ステップＳ５６に進む。一方、最大値ＭＡＸ以下であれば、プロセッサ７５は、そのままステップＳ５６に進む。
【０１３９】
ステップＳ５６にて、プロセッサ７５は、移動速さＶ０が予め定められた閾値ＴｈＶを超えているかどうか判断する。移動速さＶ０が予め定められた閾値ＴｈＶを超えていれば、ステップＳ５７に進み、閾値ＴｈＶ以下であれば、ステップＳ６３に進む。
【０１４０】
ステップＳ５７にて、プロセッサ７５は、移動速度ｖ０及び方向フラグを参照して、スケール５７の移動方向が変化したかどうかを判断する。この方向フラグは、スケール５７の移動方向を表すフラグである。例えば、スケール５７が下降（アーム２３の押し上げ）している場合（移動速度ｖ０が正を維持）に「０１」を保持し、スケール５７が上昇（アーム２３の引き戻し）している場合（移動速度ｖ０が負を維持）に「１０」を保持し、リセット値を「００」とする。一方、スケール５７の現在の移動方向は、ステップＳ５０で取得した移動速度ｖ０の符号により知ることができる。従って、移動速度ｖ０の符号が正であり、かつ、方向フラグが「１０」である場合や、移動速度ｖ０の符号が負であり、かつ、方向フラグが「０１」である場合は、移動方向が変化したことになる。なお、演奏開始直後では、方向フラグが「００」に初期化された状態なので、移動速度ｖ０が「０」でないときは（つまり、正あるいは負）、移動方向の変化が検知される。
【０１４１】
そして、ステップＳ５８では、プロセッサ７５は、方向フラグを更新する。ステップＳ５９にて、プロセッサ７５は、発音フラグをオンにする。つまり、トリガ発生の条件（移動速さＶ０が閾値ＴｈＶを超えたこと、かつ、移動方向が変化したこと）を満たしているので、プロセッサ７５は、トリガを発生する（発音フラグオン）。
【０１４２】
ステップＳ６０にて、プロセッサ７５は、発音中フラグをチェックする。発音中フラグは、例えば、発音中でない場合は「００」がセットされ、チャンネルＣＨ０，ＣＨ１が発音中であれば「０１」がセットされ、チャンネルＣＨ２，ＣＨ３が発音中であれば「１０」がセットされる。このうち、「００」がオフを意味し、「０１」や「１０」はオンを意味する。ステップＳ６０では、発音中フラグがオフであればステップＳ６２に進み、オンであればステップＳ６１に進む。ステップＳ６１では、プロセッサ７５は、ハードウエアリリースフラグをオンにする。なぜなら、発音中に新たなトリガが発生したからである。
【０１４３】
ここで、ハードウエアリリースとは、サウンドプロセッサが消音のためのエンベロープデータを生成して、消音（音の減衰処理）を行うことをいう。なお、ハードウエアリリースの代わりに、ソフトウエアリリースを行うことができる。ソフトウエアリリースとは、プロセッサ７５が、消音のためのエンベロープデータを用意して、これを、サウンドプロセッサに与えることで、サウンドプロセサが消音処理（音の減衰処理）を行うことである。
【０１４４】
ステップＳ６２では、プロセッサ７５は、トリガカウンタＣｔｇをインクリメントし、メインルーチンにリターンする。
【０１４５】
一方、ステップＳ６３では、プロセッサ７５は、スケール５７の移動速さＶ０が「０」かどうかを判断する。移動速さＶ０が「０」ならば、ステップＳ６４へ進み、「０」でないならば、ステップＳ６８へ進む。ステップＳ６４にて、プロセッサ７５は、リリースカウンタＣｒｌをインクリメントする。ステップＳ６５にて、プロセッサ７５は、リリースカウンタＣｒｌが一定値ｋになったかどうかを判断する。リリースカウンタＣｒｌが一定値ｋになった場合は、ステップＳ６６に進み、一定値ｋになっていない場合は、メインルーチンにリターンする。ステップＳ６６にて、プロセッサ７５は、リリースカウンタＣｒｌを「０」にリセットする。ステップＳ６７にて、プロセッサ７５は、ハードウエアリリースフラグをオンにする。一方、ステップＳ６８では、プロセッサ７５は、リリースカウンタＣｒｌを「０」にリセットして、メインルーチンにリターンする。
【０１４６】
ここで、ステップＳ６３〜Ｓ６８の処理は、移動速さＶ０が、連続してｋ回「０」であった場合に、ハードウエアリリースを実行する処理である。例えば、ｋ＝４、である。このような処理は、使用者の意図に反して、スケール５７が停止したと認識されるのを防止する処理である。ゆっくりとスケール５７を操作する際、人間の操作なので、ある時に移動速さＶ０が「０」になる場合もある。しかし、これをもって直ちにスケール５７の停止と認識したのでは、使用者の意図に反してしまうことになる。このため、複数回連続して移動速さＶ０が「０」になった場合に、スケール５７が停止したと認識する。
【０１４７】
図２０は、図１７のステップＳ６の楽音セット処理の流れの一例を示すフローチャートである。図２０に示すように、ステップＳ１００にて、プロセッサ７５は、発音フラグのオン／オフ（トリガ発生の有無）を判断して、発音フラグがオフであれば、ステップＳ１０６に進み、発音フラグがオン（トリガ発生）であれば、ステップＳ１０１に進む。ステップＳ１０１にて、プロセッサ７５は、図１３のトリガ発音用の楽譜データから、楽譜データポインタが指す音符情報（ノートナンバ及び楽器指定情報）を読み込む。ステップＳ１０２にて、プロセッサ７５は、読み込んだノートナンバに応じた波形ピッチ制御情報を内部メモリの楽音用データ領域に格納する。この場合、ノートナンバ（ピッチ情報）と波形ピッチ制御情報とを関連付けたテーブルが用意されており、このテーブルを利用する。
【０１４８】
ステップＳ１０３にて、プロセッサ７５は、読み込んだ音符情報に応じた波形データのアタック部の先頭アドレスを内部メモリの楽音用データ領域に格納する。ステップＳ１０４にて、プロセッサ７５は、読み込んだ音符情報に応じた波形データのループ部の先頭アドレスを内部メモリの楽音用データ領域に格納する。ステップＳ１０５にて、プロセッサ７５は、トリガ発音用の楽譜データポインタをインクリメントする。
【０１４９】
ここで、発音処理で使用するピッチ制御情報について説明しておく。ピッチ制御情報は、波形データ及びエンベロープデータを読み出す周期を変えることによって行われるピッチ変換に用いられる。つまり、プロセッサ７５のサウンドプロセッサは、波形データのためのピッチ制御情報を一定期間毎に読み出して累算する。また、サウンドプロセッサは、エンベロープデータのためのピッチ制御情報を一定期間毎に読み出して累算する。そして、サウンドプロセッサは、この累算結果を加工して、波形データ及びエンベロープデータのアドレスポインタとする。よって、ピッチ制御情報に大きな値が設定されれば、アドレスポインタのインクリメントは早く行われ、周波数が高くなり、ピッチ制御情報に小さな値が設定されれば、アドレスポインタのインクリメントは遅く行われ、周波数が低くなる。このようにして、サウンドプロセッサは、波形データおよびエンベロープデータのピッチ変換を行う。なお、波形データのピッチ制御情報を波形ピッチ制御情報と呼び、エンベロープデータのピッチ制御情報をエンベロープピッチ制御情報と呼ぶ。
【０１５０】
さて、ステップＳ１０６にて、プロセッサ７５は、発音フラグをチェックして、オンであればステップＳ１０９に進み、オフであればステップＳ１０７に進む。
【０１５１】
ステップＳ１０７にて、プロセッサ７５は、発音中フラグがオンかどうかを判断して、オフであれば、メインルーチンにリターンし、オンであれば、ステップＳ１０８に進む。ステップＳ１０８にて、プロセッサ７５は、ハードウエアリリースフラグの状態をチェックし、オンであれば、メインルーチンにリターンする。一方、ハードウエアリリースフラグがオフであれば、ステップＳ１０９に進む。
【０１５２】
ステップＳ１０９にて、プロセッサ７５は、外部メモリ７７に格納された圧縮されたエンベロープデータを読み出して、内部メモリに展開する。さらに、プロセッサ７５は、エンベロープピッチ制御情報を内部メモリの楽音用データ領域に格納する。なお、ステップＳ１０９では、ステップＳ１０１で読み込んだ音符情報に応じた波形データに対応したエンベロープデータが読み出される。
【０１５３】
ステップＳ１１０にて、プロセッサ７５は、展開したエンベロープデータに、図１７のステップＳ５で求めたエンベロープ係数を乗算する。ステップＳ１１１にて、プロセッサ７５は、ステップＳ１１０の乗算結果を、新たなエンベロープデータとして、内部メモリの楽音用データ領域に格納する。このように、移動速さＶ０に応じたエンベロープ係数を用いて、エンベロープデータを加工することにより、音量を制御する。
【０１５４】
図２１は、図１７のステップＳ７のオブジェクトセット処理の流れの一例を示すフローチャートである。図２１に示すように、ステップＳ１２４にて、プロセッサ７５は、スタートから現在までの時間を表すカウンタＴｓｐをインクリメントする。ステップＳ１２５にて、プロセッサ７５は、トリガの発生に応じて、該当する音符マークｎの色を変更すべく、当該音符マークｎに対するカラーパレット情報を変更する。ステップＳ１２６にて、プロセッサ７５は、発音長指示バー１００の出現を制御する。
【０１５５】
ステップＳ１２７にて、プロセッサ７５は、現在の操作位置を表す縦棒１０４を制御する。具体的には次の通りである。縦棒１０４は、本実施の形態では、例えば、１６画素×１６画素のスプライト１つにより構成されるとする。また、最新のトリガによる発音に対応した音符マークｎを出現させたノートナンバから開始コード（図１６参照）までの時間Ｔｎｓ、開始コードから終了コードまでの時間Ｔｓｅ、および、インジケータ１０３の全長を表す画素数Ｌｉｎ、を用いて、ｘｖｂ＝（Ｔｎｓ／Ｔｓｅ）×Ｌｉｎを算出する。そして、縦棒１０４のｘ座標を（ｘ１＋ｘｖｂ）、ｙ座標をｙ１（定数）とする。ｘ１はインジケータ１０３の左端のｘ座標である。デフォルトとして、ｘ＝ｘ１、ｙ＝ｙ１が設定される。以上のようにして、トリガが発生するたびに、縦棒１０４のｘ座標が更新され、操作者の現在の操作位置が示される。
【０１５６】
ステップＳ１２８では、プロセッサ７５は、インジケータ１０３を制御する。具体的には、次の通りである。インジケータ１０３は、複数のベルトオブジェクトから構成され、本実施の形態では、例えば、このベルトオブジェクトは、１６画素×１６画素のスプライト１つにより構成されるとする。そして、このベルトオブジェクトの種類は、１７種類である。第１は透明のスプライト、第２は長さが１画素のベルトを表すスプライト、第３は長さが２画素のベルトを表すスプライト、…、第１７は長さが１６画素のベルトを表すスプライトである。このように、１画素単位で、ベルトオブジェクトが用意される。インジケータ１０３の水平方向の長さは、例えば、９６画素、つまり、ベルトオブジェクト６個分である。
【０１５７】
プロセッサ７５は、スタートから現在までの時間Ｔｓｐ、楽曲全体の時間Ｔｓｅ、および、インジケータ１０３の全長を表す画素数Ｌｉｎ、を用いて、ｘｉｎ＝（Ｔｓｐ／Ｔｓｅ）／Ｌｉｎを算出する。さらに、プロセッサ７５は、ｘｉｎ／１６の商Ａおよび余りＢを求める。プロセッサ７５は、この商Ａおよび余りＢにより、表示するベルトオブジェクトを６つ選択する。そして、プロセッサ７５は、選択した全ベルトオブジェクトのｘ座標およびｙ座標を設定する。例えば、商Ａ＝２、余りＢ＝４、であれば、第１７ベルトオブジェクト２個、第５ベルトオブジェクト１個、第１ベルトオブジェクト３個、が選択され、それぞれのｘ座標およびｙ座標が設定される。
【０１５８】
ステップＳ１２９では、プロセッサ７５は、シンクロ値１１１を制御する。具体的には次の通りである。０〜９までの１０個の数字オブジェクトが用意される。各数字オブジェクトは、１６画素×１６画素のスプライト１つからなる。プロセッサ７５は、最新のトリガによる発音に対応する音符マークｎを出現させたノートナンバから開始コード（図１６参照）までの時間Ｔｎｓ、スタートから現在までの時間Ｔｓｐ、を用いて、ずれＤｉｆ＝｜Ｔｓｐ−Ｔｎｓ｜を算出する。
【０１５９】
そして、プロセッサ７５は、このずれＤｉｆに応じた変動値をテーブル（後述の図２２（ｂ））から取得して、これを、現在のシンクロ値１１１に加算する。プロセッサ７５は、この加算結果に応じた数字オブジェクトを選択して、ｘ座標およびｙ座標を設定する。例えば、加算結果が、「８９」である場合は、「０」を表す数字オブジェクトを１個、「８」を表す数字オブジェクトを１個、「９」を表す数字オブジェクトを１個選択して、それぞれのｘ座標およびｙ座標を設定する。この場合、「０」を表す数字オブジェクトの座標は、画面の外部に設定される。
【０１６０】
図２２（ａ）は、音符マークｎと、開始コードから音符マークｎまでの時間Ｔｎｓと、を関連付けたテーブルの例示図、図２２（ｂ）は、ずれＤｉｆと、シンクロ値１１１の変動値と、を関連付けたテーブルの例示図、である。プロセッサ７５は、最新のトリガによる発音に対応する音符マークｎに関連付けられた時間Ｔｎｓを、図２２（ａ）のテーブルから取得して、上記ずれＤｉｆを計算する。そして、プロセッサ７５は、ずれＤｉｆに応じた変動値を、図２２（ｂ）のテーブルから取得して、現在のシンクロ値１１１への上記加算処理を行う。
【０１６１】
さて、ステップＳ１３０では、プロセッサ７５は、座標および個数の双方が変動するオブジェクトの数を、カウンタｃＮ１にセットする。本実施の形態では、座標および個数の双方が変動するオブジェクトは、音符マークｎおよび発音長指示バー１００を構成するバーオブジェクトである。例えば、音符マークｎの数を「４０」、発音長指示バー１００を構成するバーオブジェクトの数を「４０」とする。そうすると、カウンタｃＮ１には、「８０」がセットされる。
【０１６２】
ステップＳ１３１にて、プロセッサ７５は、Ｖｘ＝Ｖｘ＋Ａｘ、Ｖｙ＝Ｖｙ＋Ａｙ、ｘ＝ｘ＋Ｖｘ、ｙ＝ｙ＋Ｖｙ、とする。ここで、Ｖｘはオブジェクトの水平方向の速度、Ａｘはオブジェクトの水平方向の加速度、Ｖｙはオブジェクトの垂直方向の速度、Ａｙはオブジェクトの垂直方向の加速度、ｘはオブジェクトの水平方向の位置座標、ｙはオブジェクトの垂直方向の位置座標、である。
【０１６３】
ここで、本実施の形態では、例えば、音符マークｎは、１６画素×１６画素のスプライト１つにより構成されるとする。また、発音長指示バー１００は、単数あるいは複数のバーオブジェクトから構成され、本実施の形態では、例えば、このバーオブジェクトは、１６画素×１６画素のスプライト１つにより構成されるとする。そして、このバーオブジェクトの種類は、９種類である。第１は透明のスプライト、第２は長さが２画素のバーを表すスプライト、第３は長さが４画素を表すスプライト、…、第９は長さが１６画素のバーを表すスプライトである。このように、２画素単位で、バーオブジェクトが用意される。これは、後述のように、本実施の形態では、音符マークｎおよび発音長指示バー１００の速度を２画素／フレームとしているからである。
【０１６４】
オブジェクトが音符マークｎである場合は、ステップＳ１３１では、後述する音符マーク登録処理で設定された初期速度Ｖｘ０（Ｖｘの初期値）および初期座標ｘ０（ｘの初期値），ｙ０（ｙの初期値）を基に、音符マークｎの座標（ｘ，ｙ）が計算される。なお、音符マークｎでは、Ｖｙ＝０、Ａｘ＝Ａｙ＝０、とする。Ｖｘ０は、一定値である。本実施の形態では、例えば、Ｖｘ０＝２画素／フレームとする。また、音符マークｎについては、デフォルトとして、ｘおよびｙには、画面外の値が設定されており、Ｖｘ＝Ｖｙ＝０、Ａｘ＝Ａｙ＝０、である。
【０１６５】
オブジェクトが発音長指示バー１００を構成するバーオブジェクトである場合は、ステップＳ１３１では、ステップＳ１２６で設定された初期速度Ｖｘ０（Ｖｘの初期値）および初期座標ｘ０（ｘの初期値），ｙ０（ｙの初期値）を基に、バーオブジェクトの座標（ｘ，ｙ）が計算される。なお、発音長指示バー１００では、Ｖｙ＝０、Ａｘ＝Ａｙ＝０、とする。本実施の形態では、例えば、Ｖｘ０＝２画素／フレームとする（音符マークｎと同じ。）。また、初期座標ｘ０，ｙ０は、音符マークｎの初期座標ｘ０，ｙ０と同じ値である。また、音符マークｎと同様に、デフォルトとして、ｘおよびｙには、画面外の値が設定されており、Ｖｘ＝Ｖｙ＝０、Ａｘ＝Ａｙ＝０、である。
【０１６６】
ステップＳ１３２にてプロセッサ７５は、カウンタｃＮ１をデクリメントする。ステップＳ１３３にて、プロセッサ７５は、カウンタｃＮ１が「０」より小さいかどうかを判断する。つまり、プロセッサ７５は、座標および個数の双方が変動するオブジェクト全てについて、ステップＳ１３１の座標計算を実行したかどうかを判断する。カウンタｃＮ１が「０」以上の場合は、全オブジェクトの座標計算が終了していないので、ステップＳ１３１に進み、「０」より小さい場合は、全オブジェクトの座標計算が終了しているので、ステップＳ１３４に進む。
【０１６７】
ステップＳ１３４にて、プロセッサ７５は、カウンタｃＮ２に、表示対象の全オブジェクト数をセットする。ステップＳ１３５にて、プロセッサ７５は、オブジェクトがアニメーション処理の対象かどうかを判断する。オブジェクトがアニメーション処理の対象であれば、ステップＳ１３６に進み、対象でなければ、ステップＳ１３７に進む。ステップＳ１３６では、オブジェクトのアニメーション処理が実行される。具体的には、次のフレームで表示するオブジェクトの画素パターン指定情報の格納位置情報を、内部メモリに格納する。
【０１６８】
例えば、インジケータ１０３を構成する６個のベルトオブジェクトは、アニメーション対象であり、次のフレームで表示する６個のベルトオブジェクトのそれぞれの画素パターン指定情報の格納位置情報を、内部メモリに格納する。また、例えば、シンクロ値１１１を表す３個の数字オブジェクトは、アニメーション対象であり、次のフレームで表示する３個の数字オブジェクトのそれぞれの画素パターン指定情報の格納位置情報を、内部メモリに格納する。
【０１６９】
ステップＳ１３７にて、プロセッサ７５は、カウンタｃＮ２をデクリメントする。ステップＳ１３８にて、プロセッサ７５は、カウンタｃＮ２が「０」より小さいかどうかを判断する。つまり、プロセッサ７５は、全オブジェクトについて、ステップＳ１３５の処理を実行したかどうかを判断する。カウンタｃＮ２が「０」より小さい場合は、ステップＳ１３９に進み、「０」以上の場合は、ステップＳ１３５に進む。
【０１７０】
ここで、ステップＳ１２５〜Ｓ１２９、ステップＳ１３１、ステップＳ１３６の結果は、内部メモリのオブジェクト用データ領域に格納される。
【０１７１】
ステップＳ１３９にて、プロセッサ７５は、カウンタｃＮ３に、表示対象の全オブジェクト数をセットする。ステップＳ１４０にて、プロセッサ７５は、オブジェクトが変更されたかどうかを判断する。オブジェクトが変更された場合は、ステップＳ１４１に進み、変更されていない場合は、ステップＳ１４２に進む。なお、デプス値、カラーパレット情報、画素パターン指定情報の格納位置情報、水平座標、および、垂直座標のうち、いずれか１つでも変更されていれば、オブジェクトが変更されたとする。また、図１８のステップＳ３７において、各オブジェクトのオブジェクト関連情報がセットされたことは、各オブジェクトの変更に該当する。
【０１７２】
ステップＳ１４１にて、プロセッサ７５は、変更後のオブジェクトのスプライトパラメータ（デプス値、カラーパレット情報、画素パターン指定情報の格納位置情報、水平座標、垂直座標）を書き換える。この場合、変更されたスプライトパラメータのみを書き換える。
【０１７３】
例えば、オブジェクトの座標が変更されていれば、プロセッサ７５は、そのオブジェクトの水平座標及び垂直座標を基に、そのオブジェクトを構成する各スプライトの水平座標及び垂直座標を算出して、座標情報を書き換える。なお、オブジェクトが１つのスプライトから構成される場合は、そのオブジェクトの水平座標及び垂直座標が、スプライトの水平座標及び垂直座標となる。
【０１７４】
また、例えば、オブジェクトのカラーパレット情報が変更されていれば、プロセッサ７５は、そのオブジェクトを構成する各スプライトのカラーパレット情報を変更する。なお、オブジェクトが１つのスプライトから構成される場合は、そのオブジェクトのカラーパレット情報が、スプライトのカラーパレット情報となる。
【０１７５】
また、例えば、オブジェクトの画素パターン指定情報の格納位置情報が変更されていれば、そのオブジェクトの画素パターン指定情報の格納位置情報を基に、そのオブジェクトを構成する各スプライトの画素パターン指定情報の格納位置情報を算出して、格納位置情報を書き換える。この場合、スプライトのサイズが分かっているので、オブジェクトの画素パターン指定情報の格納位置情報から容易に、各スプライトの画素パターン指定情報の格納位置情報を算出できる。なお、オブジェクトが１つのスプライトから構成される場合は、そのオブジェクトの画素パターン指定情報の格納位置情報が、スプライトの画素パターン指定情報の格納位置情報となる。
【０１７６】
ステップＳ１４２にて、プロセッサ７５は、カウンタｃＮ３をデクリメントする。ステップＳ１４３にて、プロセッサ７５は、カウンタｃＮ３が「０」より小さいかどうかを判断する。つまり、プロセッサ７５は、全オブジェクトについて、ステップＳ１４０の処理を実行したかどうかを判断する。カウンタｃＮ３が「０」以上の場合は、ステップＳ１４０に進み、「０」より小さい場合は、メインルーチンにリターンする。
【０１７７】
ここで、スプライトパラメータは、内部メモリのスプライト用データ領域に格納される。図１７に戻って、ステップＳ９では、プロセッサ７５は、スプライト用データ領域に格納されたスプライトパラメータをグラフィックプロセッサに与える。また、ステップＳ９では、グラフィックプロセッサは、内部メモリの背景用データ領域に格納された背景関連情報（図１８のステップＳ３７参照）を読み込む。そして、グラフィックプロセッサは、これらの情報を基に画像信号ＶＤを生成する。
【０１７８】
図２３は、図２１のステップＳ１２５の音符色変更処理の流れの一例を示すフローチャートである。図２３に示すように、ステップＳ１６０にて、プロセッサ７５は、テレビジョンモニタ７に表示中の音符マークｎの番号Ｎｍと、トリガカウンタＣｔｇと、を比較する。表示中の音符マークｎの番号Ｎｍが、トリガカウンタのカウント値Ｃｔｇ以下の場合は、ステップＳ１６２に進み、そうでない場合は、ステップＳ１６３に進む。
【０１７９】
ステップＳ１６２にて、プロセッサ７５は、当該番号Ｎｍの音符マークｎのカラーパレット情報及びその音符マークｎに付随する発音長指示バー１００のカラーパレット情報を変更する。ステップＳ１６３にて、プロセッサ７５は、表示中の全ての音符マークｎについて、ステップＳ１６０〜Ｓ１６２の処理を終了したかどうかを判断し、終了していない場合はステップＳ１６０に進み、終了した場合は、図２１のステップＳ１２６に進む。以上のようにして、トリガにより発生させた楽音に対応する音符マークｎ及びその音符マークｎに付随する発音長指示バー１００の色を変化させる。
【０１８０】
図２４は、図２１のステップＳ１２６の発音長指示バー制御処理の流れの１例を示すフローチャートである。図２４に示すように、ステップＳ１８０にて、プロセッサ７５は、発音長指示バー１００のストップフラグがオンか否かを判断する。オンであれば、ステップＳ１８６に進み、オフであれば、ステップＳ１８１に進む。なお、このストップフラグは、後述するが、図１６の音符マーク登録用の楽譜データから、ノートオフが読み出されたときにオンになる。
【０１８１】
ステップＳ１８１にて、プロセッサ７５は、発音長指示バー１００の出現フラグがオンか否かを判断する。オンであれば、ステップＳ１８２に進み、オフであれば、図２１のステップＳ１２７に進む。なお、この出現フラグは、後述するが、音符マーク登録用の楽譜データから、ノートオンが読み出されたときにオンになる。ステップＳ１８２にて、プロセッサ７５は、カウンタＣｂａをデクリメントする。なお、カウンタＣｂａは、後述するが、音符マーク登録用の楽譜データから、ノートオンが読み出されたときに「８」にセットされる。「８」とした理由は後で詳しく説明する。
【０１８２】
ステップＳ１８３にて、プロセッサ７５は、カウンタＣｂａが、「０」かどうかを判断する。カウンタＣｂａが「０」の場合は、ステップＳ１８４に進み、それ以外の場合は、図２１のステップＳ１２７に進む。
【０１８３】
ステップＳ１８４にて、プロセッサ７５は、カウンタＣｂａに「８」をセットする。「８」とした理由は、上記と同様であり、後で詳しく説明する。ステップＳ１８５にて、プロセッサ７５は、表示されていないバーオブジェクト（発音長指示バー１００を構成）であって、カウンタＣｂａの値（この場合は、Ｃｂａ＝８）に応じたバーオブジェクトに対して、初期座標（ｘ０，ｙ０）および初期速度Ｖｘ０を設定して、図２１のステップＳ１２７に進む。
【０１８４】
一方、ステップＳ１８６にて、プロセッサ７５は、表示されていないバーオブジェクト（発音長指示バー１００を構成）であって、カウンタＣｂａの値に応じたバーオブジェクトに対して、初期座標（ｘ０，ｙ０）および初期速度Ｖｘ０を設定する。ステップＳ１８７にて、プロセッサ７５は、ストップフラグおよび出現フラグをオフにして、図２１のステップＳ１２７に進む。
【０１８５】
なお、カウンタＣｂａの値に応じたバーオブジェクトは、長さが（Ｃｂａ×２）画素のバーを表すスプライトからなるバーオブジェクトである。
【０１８６】
ここで、上記例では、音符マークｎが、１６画素×１６画素のスプライト１個から構成され、その速度が、２画素／フレームの例を挙げている。従って、音符マークｎが登録されてから（出現フラグオン）、８フレーム経過後に、１６画素×１６画素の音符マークｎの全体が画面に表示される。なお、音符マークｎの登録時においては、音符マークｎを構成する１６画素×１６画素のスプライトの左辺が、画面の右辺に接するように、音符マークｎを配置する。
【０１８７】
音符マークｎの全体が画面に表示されたとき、バーオブジェクトを画面の右辺に隣接して待機させる必要がある。つまり、バーオブジェクトを構成する１６画素×１６画素のスプライトの左辺が、画面の右辺に接するように、バーオブジェクトを配置する。以上のことから、ステップＳ１８１で、出現フラグがオンであっても直ちに、ステップＳ１８５に進むのではなく、出現フラグがオンになってから、８フレーム経過後に、ステップＳ１８５に進む。
【０１８８】
上記ステップＳ１８５では、長さが１６画素のバーを表すスプライトからなるバーオブジェクトに対して、初期座標および初期速度が設定される。なぜなら、ストップフラグがオンになるまでは、長さが１６画素のバーを表すバーオブジェクトを次々に表示することで、適切に発音長指示バー１００を表示できるからである。一方、上記ステップＳ１８６では、長さが（Ｃｂａ×２）画素のバーを表すバーオブジェクトに対して、初期座標および初期速度が設定される。
【０１８９】
例えば、ストップフラグがオンになったときのカウンタＣｂａの値が「４」のときは、長さが８画素のバーを表すバーオブジェクトに対して、初期座標および初期速度が設定される。このようなステップＳ１８６の処理により、図１４の音符マークｎ−１に付属する発音長指示バー１００のような、終端（右端）に休符がある発音長指示バー１００を表示することができる。
【０１９０】
図２５は、図１７のステップＳ１０の音声処理の流れの１例を示すフローチャートである。図２５に示すように、ステップＳ２００にて、プロセッサ７５は、図１５のＢＧＭ用の楽譜データに基づいて、ＢＧＭの発音処理を実行する。ステップＳ２０１にて、プロセッサ７５は、図１６の音符マーク登録用の楽譜データに基づいて、音符マークｎの登録処理を実行する。ステップＳ２０２にて、プロセッサ７５は、トリガに基づく発音処理を実行する。
【０１９１】
図２６は、図２５のステップＳ２００のＢＧＭ発音処理の流れの一例を示すフローチャートである。図２６に示すように、ステップＳ２２０にて、プロセッサ７５は、ＢＧＭ用の実行待機カウンタをチェックする。ＢＧＭ用の実行待機カウンタの値が「０」ならば、ステップＳ２２２へ進み、「０」でないならば、ステップＳ２３０へ進んで、実行待機カウンタをデクリメントし、ステップＳ２２５に進む。
【０１９２】
ステップＳ２２２にて、プロセッサ７５は、図１５のＢＧＭ用の楽譜データから、ＢＧＭ用の楽譜データポインタの指すコマンドを読み出して解釈する。コマンドがノートオンであれば、ステップＳ２２４に進み、それ以外であれば、つまり、待機であれば、ステップＳ２３１に進み、ＢＧＭ用の実行待機カウンタに待機時間をセットして、ステップＳ２２５に進む。
【０１９３】
ステップＳ２２４にて、プロセッサ７５は、楽譜データポインタが指すノートナンバ及び楽器指定情報に応じて、波形ピッチ制御情報、波形データの先頭アドレス情報、エンベロープピッチ制御情報およびエンベロープデータの先頭アドレス情報を内部メモリの楽音データ領域に格納するとともに、ベロシティ情報に応じたチャンネルボリューム情報およびゲートタイム情報を、楽音データ領域に格納する。そして、プロセッサ７５は、サウンドプロセッサに対して、内部メモリへのアクセス指示を出す。すると、サウンドプロセッサは、必要なタイミングで、内部メモリの楽音データ領域に格納された上記情報を読み込んで、音声信号ＡＬ，ＡＲを生成する。
【０１９４】
ステップＳ２２５にて、プロセッサ７５は、ＢＧＭ用の楽譜データポインタをインクリメントする。ステップＳ２２６にて、プロセッサ７５は、音符のゲートタイムの残り時間をチェックする。ステップＳ２２７にて、プロセッサ７５は、ゲートタイムが終了した場合は、ステップＳ２２８に進んで、サウンドプロセッサに対し、その音符の発音終了指示を与え、ステップＳ２２９に進む。一方、ステップＳ２２７では、ゲートタイムが終了していない場合は、ステップＳ２２９に進む。ステップＳ２２９にて、プロセッサ７５は、発音中の全音符について、ステップＳ２２６の処理を終了したかどうかを判断し、終了していなければステップＳ２２６に進み、終了していれば、図２５のステップＳ２０１に進む。
【０１９５】
図２７は、図２５のステップＳ２０１の音符マーク登録処理の流れの一例を示すフローチャートである。図２７に示すように、ステップＳ２５０にて、プロセッサ７５は、音符マーク登録用の実行待機カウンタをチェックする。音符マーク登録用の実行待機カウンタの値が「０」ならば、ステップＳ２５２へ進み、「０」でないならば、ステップＳ２６０へ進んで、実行待機カウンタをデクリメントし、図２５のステップＳ２０２へ進む。
【０１９６】
ステップＳ２５２にて、プロセッサ７５は、図１６の音符マーク登録用の楽譜データから、音符マーク登録用の楽譜データポインタの指すコマンドを読み出して解釈する。ステップＳ２５３では、コマンドがノートオンであれば、ステップＳ２５４に進み、それ以外であれば、ステップＳ２６１に進む。
【０１９７】
ステップＳ２５４にて、プロセッサ７５は、新規に音符マークｎを登録する。具体的には、新規音符マークｎの初期速度Ｖｘ０および初期座標ｘ０，ｙ０を設定する。ステップＳ２５５にて、プロセッサ７５は、音符表示カウンタＣｎｔをインクリメントする。ステップＳ２５６にて、プロセッサ７５は、新規音符マークの番号として、音符表示カウンタＣｎｔの値を設定する。
【０１９８】
ステップＳ２５７にて、プロセッサ７５は、発音長指示バー１００の出現フラグをオンにする。ステップＳ２５８にて、プロセッサ７５は、カウンタＣｂａ（図２４参照）に「８」を代入する。これは、上述のように、音符マークｎが登録されてから８フレーム経過後に、１６画素×１６画素の音符マークｎの全体が画面に表示されるからである。
【０１９９】
さて、一方、ステップＳ２６１では、プロセッサ７５は、音符マーク登録用の楽譜データポインタの指すコマンドがノートオフであれば、ステップＳ２６２に進んで、発音長指示バー１００のストップフラグをオンにして、ステップＳ２５９に進む。音符マーク登録用の楽譜データポインタの指すコマンドがノートオフなければステップＳ２６３に進む。ステップＳ２６３では、プロセッサ７５は、音符マーク登録用の楽譜データポインタが開始コードを指していれば、ステップＳ２５９に進み、そうでなければ、ステップＳ２６４に進む。
【０２００】
ステップＳ２６４では、プロセッサ７５は、音符マーク登録用の楽譜データポインタが指すコマンドが待機であれば、ステップＳ２６５に進んで、実行待機カウンタに待機時間をセットして、ステップＳ２５９に進む。一方、楽譜データポインタが指すコマンドが待機でなければ、つまり、終了コードであれば、ステップＳ２６６に進んで、音楽終了フラグをオンにして、図２５のステップＳ２０２に進む。
【０２０１】
さて、ステップＳ２５９では、プロセッサ７５は、音符マーク登録用の楽譜データポインタをインクリメントして、図２５のステップＳ２０２に進む。
【０２０２】
図２８は、図２５のステップＳ２０２のトリガによる発音処理の流れの一例を示すフローチャートである。図２８に示すようにステップＳ２８０にて、プロセッサ７５は、発音中フラグをチェックしてオフであればステップＳ２８５に進み、オンであればステップＳ２８１に進む。ステップＳ２８１では、プロセッサ７５は、ハードウエアリリースフラグをチェックして、オフであればステップＳ２８４に進み、オンであればステップＳ２８２に進む。
【０２０３】
ステップＳ２８２にて、プロセッサ７５は、サウンドプロセッサ２０３に対し、トリガにより現在発音中のチャンネルの発音終了指示を出す。現在発音中のチャンネルは、発音中フラグにセットされた値により認識できる。ステップＳ２８３にて、プロセッサ７５は、ハードウエアリリースフラグ及び発音中フラグをオフにして、ステップＳ２８５へ進む。
【０２０４】
一方、ステップＳ２８４では、プロセッサ７５は、サウンドプロセッサに対し、内部メモリ（現在発音中のチャンネルに対応した楽音データ領域）へのアクセス指示を出す。するとサウンドプロセッサは、必要なタイミングで、内部メモリへアクセスして、図１７のステップＳ６で格納された楽音関連情報（波形データの先頭アドレス情報、波形ピッチ制御情報、エンベロープデータ、エンベロープピッチ制御情報）を読み込んで、これを基に楽音信号ＡＬ，ＡＲを生成する。
【０２０５】
ステップＳ２８５では、プロセッサ７５は、発音フラグをチェックして、オフであればリターンし、オンであればステップＳ２８６に進む。ステップＳ２８６では、プロセッサ７５は、発音中フラグを参照して、現在設定されているチャンネルをチェックし、現在のチャンネルがチャンネルＣＨ０，ＣＨ１であればステップＳ２８７に進み、チャンネルＣＨ２，ＣＨ３であれば、ステップＳ２８８に進む。
【０２０６】
ステップＳ２８７では、プロセッサ７５は、発音のためのチャンネルをチャンネルＣＨ０，ＣＨ１からチャンネルＣＨ２，ＣＨ３へ変更する。一方、ステップＳ２８８では、プロセッサ７５は、発音のためのチャンネルをチャンネルＣＨ２，ＣＨ３からチャンネルＣＨ０，ＣＨ１へ変更する。
【０２０７】
ステップＳ２８９では、プロセッサ７５は、サウンドプロセッサに対し、内部メモリ（新たに設定されたチャンネルに対応した楽音データ領域）へのアクセス指示を出す。するとサウンドプロセッサは、必要なタイミングで、内部メモリへアクセスして、図１７のステップＳ６で格納された楽音関連情報を読み込んで、これを基に楽音信号ＡＬ，ＡＲを生成する。
【０２０８】
ステップＳ２９０にて、プロセッサ７５は、ステップＳ２８７あるいはステップＳ２８８で設定されたチャンネルに応じて、発音中フラグをセットする。ステップＳ２９１にて、プロセッサ７５は、発音フラグをオフにする。
【０２０９】
以上のように、トリガ発生のたびに（発音フラグがオンになるたびに）、発音のチャンネルを切り替えるのは、次の音符の発音のために、現在の音符の発音が終了されることを防止するためである。例えば、トリガ発音のためのチャンネルを全音符について共通にすると、ある音符の発音を実行中に、次のトリガが発生した場合は、その音符の発音を終了して、そのトリガに応じた音符の発音を開始しなければならず、音が途切れたようになって、聞き苦しい場合もある。なお、１回のトリガ発音のためのチャンネルとして、２つのチャンネルＣＨ０，ＣＨ１あるいはＣＨ２，ＣＨ３を使用しているのは、音量を増大させるためである。
【０２１０】
さて、以上のように、応用例３では、使用者に対して、アーム２３の操作タイミングが示されるだけでなく、使用者によるアーム２３の操作、つまり、ウエイトトレーニングの実行に応じて、楽音が発生し、音楽を奏でることができる。その結果、飽き難く、ウエイトトレーニングの継続を支援できる。
【０２１１】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
【０２１２】
（１）上記では、スケール５７を動滑車４１と滑車３９Ｒとの間のワイヤ５９に取り付けた。ただし、スケール５７は、ワイヤ５９のうち、任意の位置に取り付けることができる。また、スケール５７は、ワイヤ１７の任意の位置に取り付けることもできる。これらの場合、センサユニット５３は、スケール５７の取付け位置に応じて変更される。
【０２１３】
（２）上記では、リニアエンコーダ７３を用いて、アーム２３の動きを間接的に検出した。ただし、ロータリエンコーダを用いて、アーム２３の回動を直接的に検出することもできる。
【０２１４】
（３）上記では、リニアエンコーダ７３を用いて、アーム２３（ウエイト１３）の動きを検出した。ただし、イメージセンサ等の撮像装置により、アーム２３（ウエイト１３）を撮像し、その映像を解析して、アーム２３（ウエイト１３）の動きを検出することもできる。この場合、再帰反射部材を検出対象（アーム２３又はウエイト１３）に取り付け、これに光（例えば赤外光）を照射することにより、より容易に検出対象を認識できる。もちろん、検出対象に発光装置を取り付けてもよい。この場合光の照射は不要である。
【０２１５】
（４）上記の操作状況表示部８９，６２は例示であり、アーム２３の操作状況が分かるものであれば、これらに限定されない。例えば、アーム２３が押し上げられる場合は、スケール５７の移動量に応じて上方向に延びるバーを表示し、アーム２３が引き戻される場合は、スケール５７の移動量に応じてバーの長さを短くしていく。この場合、アーム２３が基準状態から最大まで押し上げられ静止するまでの時間とスケール５７の移動量を計測し、これらから、スケール５７の上昇速度ｖｓを算出する。そして、アーム２３の引き戻しが開始された時に、バーの頂点と同じ高さから、上昇速度ｖｓと同じ速度で下降するオブジェクトを表示する。使用者は、このオブジェクトの下降速度と同じ速度で、アーム２３を引き戻せば、アーム２３の押し上げの速度と引き戻しの速度とを同じにできる。
【０２１６】
（５）上記の応用例１及び変形例では、リニアエンコーダ７３による検出の結果に応じて、映像によるエフェクトを生成し（操作状況表示部８９，６２）、応用例２及び３では、リニアエンコーダ７３による検出の結果に応じて、音声によるエフェクトを生成した（トリガによる楽音の生成）。ただし、エフェクトは、これらに限定されない。
【図面の簡単な説明】
【０２１７】
【図１】図１は、本発明の実施の形態によるウエイトトレーニングシステムの全体構成を示す外観斜視図である。
【図２】図１のウエイト１３とアーム２３との連結機構の説明図である。
【図３】（ａ）図２のセンサユニット５３の斜視図である。（ｂ）図２のセンサユニット５３の平面図である。（ｃ）図２のスケール５７の説明図である。
【図４】図１のカートリッジ５の電気的構成を示す図である。
【図５】図５の外部メモリ７７に格納されたデータの概念図である
【図６】応用例１におけるトレーニング画面の例示図である。
【図７】図４のプロセッサ７５による全体処理の流れを示すフローチャートである。
【図８】応用例１における図７のステップＳ５０２で実行される情報処理の流れを示すフローチャートである。
【図９】図８のステップＳ５２０で実行される操作状況表示部制御の流れを示すフローチャートである。
【図１０】図８のステップＳ５２６で実行されるガイド表示部制御の流れを示すフローチャートである。
【図１１】応用例１の変形例におけるトレーニング画面の説明図である。
【図１２】応用例１の変形例における図８のステップＳ５２０で実行される操作状況表示部制御の流れを示すフローチャートである。
【図１３】応用例２における、トリガによる発音のための楽譜データの説明図である。
【図１４】応用例３におけるトレーニング画面の説明図である。
【図１５】応用例３における、ＢＧＭのための楽譜データの説明図である。
【図１６】応用例３における、音符マーク出現のための楽譜データの説明図である。
【図１７】応用例３における、図４のプロセッサ７５による全体処理の流れを示すフローチャートである。
【図１８】図１７のステップＳ１の初期設定処理の流れを示すフローチャートである。
【図１９】図１７のステップＳ４のトリガ処理の流れを示すフローチャートである。
【図２０】図１７のステップＳ６の楽音セット処理の流れを示すフローチャートである。
【図２１】図１７のステップＳ７のオブジェクトセット処理の流れを示すフローチャートである。
【図２２】（ａ）音符マークｎと、開始コードから音符マークｎまでの時間Ｔｎｓと、を関連づけたテーブルの例示図である。（ｂ）ずれＤｉｆと、シンクロ値の変動値と、を関連づけたテーブルの例示図である。
【図２３】図２１のステップＳ１２５の音符色変更処理の流れを示すフローチャートである。
【図２４】図２１のステップＳ１２６の発音長指示バー制御処理の流れを示すフローチャートである。
【図２５】図１７のステップＳ１０の音声処理の流れを示すフローチャートである。
【図２６】図２５のステップＳ２００のＢＧＭ発音処理の流れを示すフローチャートである。
【図２７】図２５のステップＳ２０１の音符マーク登録処理の流れを示すフローチャートである。
【図２８】図２５のステップＳ２０２のトリガによる発音処理の流れを示すフローチャートである。
【符号の説明】
【０２１８】
１…ウエイトトレーニング装置、３…アダプタ、５…カートリッジ、７…テレビジョンモニタ、７３…リニアエンコーダ、７５…プロセッサ、７７…外部メモリ、７８…方向・変位検出回路。
【図２】
2008279250.tif 000003
【図３】
2008279250.tif 000004
【図４】
2008279250.tif 000005
【図５】
2008279250.tif 000006
【図７】
2008279250.tif 000007
【図８】
2008279250.tif 000008
【図９】
2008279250.tif 000009
【図１０】
2008279250.tif 000010
【図１２】
2008279250.tif 000011
【図１３】
2008279250.tif 000012
【図１４】
2008279250.tif 000013
【図１５】
2008279250.tif 000014
【図１６】
2008279250.tif 000015
【図１７】
2008279250.tif 000016
【図１８】
2008279250.tif 000017
【図１９】
2008279250.tif 000018
【図２０】
2008279250.tif 000019
【図２１】
2008279250.tif 000020
【図２２】
2008279250.tif 000021
【図２３】
2008279250.tif 000022
【図２４】
2008279250.tif 000023
【図２５】
2008279250.tif 000024
【図２６】
2008279250.tif 000025
【図２７】
2008279250.tif 000026
【図２８】
2008279250.tif 000027
【図１】
2008279250.tif 000028
【図６】
2008279250.tif 000029
【図１１】
2008279250.tif 000030