(57)【特許請求の範囲】
【請求項１】
ユーザが操作入力を行う操作手段と、少なくとも音データを記憶する記憶手段とを備える演奏装置であって、
前記操作手段からの操作入力に応じて、前記記憶手段に記憶された音データに基づいて演奏音を出力する演奏音出力手段、
前記操作手段からの操作入力の履歴を前記記憶手段に記憶する履歴記憶手段、
現時点までの所定期間についての操作入力の履歴に基づいて演奏テンポを検出する演奏テンポ検出手段、
前記演奏テンポ検出手段によって検出された演奏テンポと、現在の操作入力とが所定の関係であるかどうかを判定する判定手段、
前記判定手段によって所定の関係であることが判定されたとき、前記記憶手段に記憶された特別音に対応する音データを出力する特別音出力手段、
前記演奏テンポ検出手段によって検出された演奏テンポを前記記憶手段に記憶する演奏テンポ記憶手段、
前記演奏テンポ記憶手段によって記憶された演奏テンポが一定の範囲内で継続しているか否かを判定する演奏テンポ変化判定手段、および
前記演奏テンポ変化判定手段の判定結果に基づいて、前記特別音を変化させる特別音変化手段を備える、演奏装置。
【請求項２】
前記演奏テンポ検出手段は、現時点までの所定期間についての操作入力の第１履歴と、当該第１履歴を所定のルールに従って算出した遅延時間でずらした第２履歴とを、異なる遅延時間毎に複数回比較する履歴比較手段を含み、前記履歴比較手段の比較結果において、第１履歴との一致度が最も高い第２履歴についての遅延時間に基づいて前記演奏テンポを検出する、請求項１記載の演奏装置。
【請求項３】
前記判定手段は、前記演奏テンポ検出手段によって検出された演奏テンポにおける四分音符の先頭のタイミングと、現在の操作入力のタイミングとが一致するか或いはほぼ一致するか否かを判定する、請求項２記載の演奏装置。
【請求項４】
前記特別音変化手段は、前記演奏テンポ変化判定手段によって前記演奏テンポが一定の範囲内で継続していることが判定された場合に、前記特別音の音量が大きくなるように変化させ、前記演奏テンポ変化判定手段によって前記演奏テンポが一定の範囲内で継続していないことが判定された場合に、前記特別音の音量が小さくなるように変化させる、請求項１ないし３のいずれかに記載の演奏装置。
【請求項５】
ユーザが操作入力を行う操作手段と、少なくとも音データを記憶する記憶手段とを備える演奏装置の演奏制御プログラムであって、
前記演奏装置のプロセッサを、
前記操作手段からの操作入力に応じて、前記記憶手段に記憶された音データに基づいて演奏音を出力する演奏音出力手段、
前記操作手段からの操作入力の履歴を前記記憶手段に記憶する履歴記憶手段、
現時点までの所定期間についての操作入力の履歴に基づいて演奏テンポを検出する演奏テンポ検出手段、
前記演奏テンポ検出手段によって検出された演奏テンポと、現在の操作入力とが所定の関係であるかどうかを判定する判定手段、
前記判定手段によって所定の関係であることが判定されたとき、前記記憶手段に記憶された特別音に対応する音データを出力する特別音出力手段、
前記演奏テンポ検出手段によって検出された演奏テンポを前記記憶手段に記憶する演奏テンポ記憶手段、
前記演奏テンポ記憶手段によって記憶された演奏テンポが一定の範囲内で継続しているか否かを判定する演奏テンポ変化判定手段、および
前記演奏テンポ変化判定手段の判定結果に基づいて、前記特別音を変化させる特別音変化手段として機能させる、演奏制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は演奏装置および演奏制御プログラムに関し、特にたとえば、ユーザが操作入力を行う操作手段と、少なくとも音データを記憶する記憶手段とを備える、演奏装置および演奏制御プログラムに関する。
【背景技術】
【０００２】
従来、娯楽目的の演奏装置としては、たとえば、音楽ゲーム装置やファミリーキーボードなどがあった。このような演奏装置は、演奏される音楽（伴奏）に合わせて、ボタンや鍵盤を操作するものであり、操作のタイミングに応じて点数や評価が決定されるものである。
【０００３】
また、この種の背景技術の一例が特許文献１に開示される。この特許文献１には、模擬的にオーケストラの指揮を行う音楽演奏装置が開示され、プレイヤが指揮棒としての操作部を振ることにより、音楽の演奏状態（テンポ，音量）が制御される。これにより、プレイヤに対し、音楽の演奏に携わっている感覚が与えられる。
【０００４】
さらに、背景技術の他の例が特許文献２に開示される。この特許文献２のテンポ抽出装置は、ＣＤや放送などによりオーディオ信号の形態で提供される音楽信号の一部分を入力信号として、入力された音楽信号の自己相関関数を算出し、算出結果に基づいて音楽信号のテンポを抽出する。
【特許文献１】特開２００１−２１５９６３
【特許文献２】特開２００２−１１６７５４
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来の演奏装置では、伴奏に合わせてボタンや鍵盤を操作するだけなので、プレイヤ自身が音楽を演奏するという楽しさを得ることができない。この点は、特許文献１に開示される技術も同様であり、音楽の演奏に携わっている感覚が得られるだけである。すなわち、娯楽的な要素が少ない。また、特許文献２に開示される技術では、ＣＤや放送などの音楽信号のテンポを抽出するだけであり、ユーザが演奏する音楽のテンポを抽出するものではなく、ユーザが演奏する演奏装置に適用するのは困難である。
【０００６】
それゆえに、この発明の主たる目的は、新規な、演奏装置および演奏制御プログラムを提供することである。
【０００７】
また、この発明の他の目的は、演奏の楽しさを増大させることができる、演奏装置および演奏制御プログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
請求項１の発明は、ユーザが操作入力を行う操作手段と、少なくとも音データを記憶する記憶手段とを備える演奏装置である。この演奏装置は、演奏音出力手段、履歴記憶手段、演奏テンポ検出手段、判定手段、特別音出力手段、演奏テンポ記憶手段、演奏テンポ変化判定手段、および特別音変化手段を備える。演奏音出力手段は、操作手段からの操作入力に応じて、記憶手段に記憶された音データに基づいて演奏音を出力する。履歴記憶手段は、操作手段からの操作入力の履歴を記憶手段に記憶する。演奏テンポ検出手段は、現時点までの所定期間についての操作入力の履歴に基づいて演奏テンポを検出する。判定手段は、演奏テンポ検出手段によって検出された演奏テンポと、現在の操作入力とが所定の関係であるかどうかを判定する。特別音出力手段は、判定手段によって所定の関係であることが判定されたとき、記憶手段に記憶された特別音に対応する音データを出力する。演奏テンポ記憶手段は、演奏テンポ検出手段によって検出された演奏テンポを記憶手段に記憶する。演奏テンポ変化判定手段は、演奏テンポ記憶手段によって記憶された演奏テンポが一定の範囲内で継続しているか否かを判定する。そして、特別音変化手段は、演奏テンポ変化判定手段の判定結果が肯定的であるとき、特別音を変化させる。
【００１０】
請求項１の発明では、演奏装置（１０）は、ユーザが操作入力を行う操作手段（２２，２４）と、少なくとも音データを記憶する記憶手段（４２）とを備える。この演奏装置は、演奏音出力手段（３４，３６ａ，３６ｂ，４８，Ｓ７）、履歴記憶手段（３４，４２，Ｓ１１）、演奏テンポ検出手段（３４，Ｓ１３）、判定手段（３４，Ｓ２３，Ｓ２５）、特別音出力手段（３４，３６ａ，３６ｂ，４８，Ｓ２７）、演奏テンポ記憶手段（３４，Ｓ１５）、演奏テンポ変化判定手段（３４，Ｓ１７）、および特別音変化手段（３４，Ｓ１９，Ｓ２１）を備える。演奏音出力手段は、操作手段からの操作入力に応じて、記憶手段に記憶された音データに基づいて演奏音を出力する。つまり、ユーザの演奏に従った音が出力される。履歴記憶手段は、操作手段からの操作入力の履歴を記憶手段に記憶する。たとえば、演奏開始から一定時間毎に、操作入力の有無が記憶される。演奏テンポ検出手段は、現時点までの所定期間についての操作入力の履歴に基づいて演奏テンポを検出する。判定手段は、演奏テンポ検出手段によって検出された演奏テンポと、現在の操作入力とが所定の関係であるかどうかを判定する。特別音出力手段は、判定手段によって所定の関係であることが判定されたとき、記憶手段に記憶された特別音に対応する音データを出力する。たとえば、演奏を盛り上がるような効果音が出力される。演奏テンポ記憶手段は、演奏テンポ検出手段によって検出された演奏テンポを記憶手段に記憶する。つまり、演奏テンポの履歴が記録される。演奏テンポ変化判定手段は、演奏テンポが一定の範囲内で継続しているか否かを判定する。たとえば、今回検出された演奏テンポと前回検出された演奏テンポとの差が一定の範囲内であれば、演奏テンポが安定していると判断し、そうでなければ、演奏テンポが不安定であると判断する。特別音変化手段は、演奏テンポ変化判定手段の判定結果基づいて、特別音を変化させる。たとえば、特別音の音量を変化させたり、他の特別音を出力したりする。
【００１１】
請求項１の発明によれば、ユーザが自由に演奏し、演奏された音楽のテンポと現在の操作入力とが所定の関係を有するか否かの評価に応じて、拍手音のような効果音が出力されるので、娯楽的な要素を大きくすることができる。また、テンポが安定している場合に、特別音を変化させるので、演奏を盛り上げるなどの他の演出を加えることができるので、娯楽的な要素を加えることができる。
【００１２】
請求項２の発明は請求項１に従属し、演奏テンポ検出手段は、現時点までの所定期間についての操作入力の第１履歴と、当該第１履歴を所定のルールに従って算出した遅延時間でずらした第２履歴とを、異なる遅延時間毎に複数回比較する履歴比較手段を含み、履歴比較手段の比較結果において、第１履歴との一致度が最も高い第２履歴についての遅延時間に基づいて演奏テンポを検出する。
【００１３】
請求項２の発明では、履歴比較手段（３４，Ｓ４３，Ｓ４５，Ｓ４７，Ｓ５１）は、現時点までの所定期間についての操作入力の第１履歴と、当該第１履歴を所定のルールに従って算出した遅延時間でずらした第２履歴とを、異なる遅延時間毎に複数回比較する。この比較結果において、第１履歴との一致度が最も高い第２履歴についての遅延時間に基づいて演奏テンポが検出される。つまり、ユーザの操作入力のタイミングについて自己相関関係を算出することにより、演奏テンポが特定される。
【００１４】
請求項２の発明によれば、ユーザの操作入力に基づいて演奏テンポを検出するので、伴奏に合わせて演奏する必要がなく、ユーザ自身の演奏を楽しむことができる。
【００１５】
請求項３の発明は請求項２に従属し、判定手段は、演奏テンポ検出手段によって検出された演奏テンポにおける四分音符の先頭のタイミングと、現在の操作入力のタイミングとが一致するか或いはほぼ一致するか否かを判定する。
【００１６】
請求項３の発明では、判定手段は、演奏テンポ検出手段によって検出された演奏テンポにおける四分音符の先頭のタイミングと、現在の操作入力とのタイミングとが一致するか或いはほぼ一致するか否かを判定する。つまり、演奏テンポにおける四分音符の先頭のタイミングと、現在の操作入力のタイミングとの位相ずれ（ずれ量）が一定範囲内であるかどうかを判定するのである。
【００１７】
請求項３の発明によれば、現在の操作入力のタイミングが、演奏テンポの四分音符の先頭のタイミングと一致するか或いはほぼ一致するかを判定するので、四分音符の先頭のタイミングのような所望のタイミングでのみ特定音を出力することができる。
【００１８】
請求項４の発明は請求項１ないし３のいずれかに従属し、特別音変化手段は、演奏テンポ変化判定手段によって演奏テンポが一定の範囲内で継続していることが判定された場合に、特別音の音量が大きくなるように変化させ、演奏テンポ変化判定手段によって演奏テンポが一定の範囲内で継続していないことが判定された場合に、特別音の音量が小さくなるように変化させる。
【００１９】
請求項４の発明では、特別音変化手段（３４，Ｓ１９，Ｓ２１）は、演奏テンポ変化判定手段によって演奏テンポが一定の範囲内で継続していることが判定された場合に、特別音の音量が大きくなるように変化させ（Ｓ１９）、演奏テンポ変化判定手段によって演奏テンポが一定の範囲内で継続していないことが判定された場合に、特別音の音量が小さくなるように変化させる（Ｓ２１）。
【００２０】
請求項４の発明によれば、演奏テンポが一定の範囲内で継続しているか否かに応じて、特別音の音量が大きくされたり、小さくされたりするような娯楽的な要素を加えることができる。
【００２１】
請求項５の発明は、ユーザが操作入力を行う操作手段と、少なくとも音データを記憶する記憶手段とを備える演奏装置の演奏制御プログラムである。この演奏制御プログラムは、演奏装置のプロセッサを、演奏音出力手段、履歴記憶手段、演奏テンポ検出手段、判定手段、特別音出力手段、演奏テンポ記憶手段、演奏テンポ変化判定手段、および特別音変化手段として機能させる。演奏音出力手段は、操作手段からの操作入力に応じて、記憶手段に記憶された音データに基づいて演奏音を出力する。履歴記憶手段は、操作手段からの操作入力の履歴を記憶手段に記憶する。演奏テンポ検出手段は、現時点までの所定期間についての操作入力の履歴に基づいて演奏テンポを検出する。判定手段は、演奏テンポ検出手段によって検出された演奏テンポと、現在の操作入力とが所定の関係であるかどうかを判定する。特別音出力手段は、判定手段によって所定の関係であることが判定されたとき、記憶手段に記憶された特別音に対応する音データを出力する。演奏テンポ記憶手段は、演奏テンポ検出手段によって検出された演奏テンポを記憶手段に記憶する。演奏テンポ変化判定手段は、演奏テンポ記憶手段によって記憶された演奏テンポが一定の範囲内で継続しているか否かを判定する。そして、特別音変化手段は、演奏テンポ変化判定手段の判定結果が肯定的であるとき、特別音を変化させる。
【００２２】
請求項５の発明においても、請求項１の演奏装置の発明と同様に、娯楽的な要素を大きくすることができる。
【発明の効果】
【００２３】
この発明によれば、演奏される音楽に合わせてボタン操作するものではなく、自己の演奏がテンポ良く行われている場合に、演奏タイミングに合わせて特定音が出力されるので、娯楽的な要素が大きい。したがって、音楽を演奏する楽しさを増大させることができる。
【００２４】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２５】
図１を参照して、この発明の実施例であるゲーム装置１０は、演奏制御プログラムが組み込まれることにより、演奏装置として機能する。このゲーム装置１０は、第１の液晶表示器（ＬＣＤ）１２および第２のＬＣＤ１４を含む。ＬＣＤ１２およびＬＣＤ１４は、所定の配置位置となるようにハウジング1６に収納される。この実施例では、ハウジング１６は、上側ハウジング１６ａと下側ハウジング１６ｂとによって構成され、ＬＣＤ１２は上側ハウジング１６ａに収納され、ＬＣＤ１４は下側ハウジング１６ｂに収納される。したがって、ＬＣＤ１２とＬＣＤ１４とは縦（上下）に並ぶように近接して配置される。
【００２６】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【００２７】
図１からも分かるように、上側ハウジング１６ａは、ＬＣＤ１２の平面形状よりも少し大きな平面形状を有し、一方主面からＬＣＤ１２の表示面を露出するように開口部が形成される。一方、下側ハウジング１６ｂは、その平面形状が上側ハウジング１６ａよりも横長に選ばれ、横方向の略中央部にＬＣＤ１４の表示面を露出するように開口部が形成される。下側ハウジング１６ｂのＬＣＤ１４の左方には電源スイッチ１８が設けられる。
【００２８】
また、上側ハウジング１６ａには、ＬＣＤ１２を挟んで左右に、スピーカ３６ａおよび３６ｂ（図２）のための音抜き孔２０ａおよび２０ｂが形成される。そして、下側ハウジング１６ｂには、マイク（図示せず）のためのマイク孔２０ｃが形成されるとともに、操作スイッチ２２（２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２Ｌおよび２２Ｒ）が設けられる。
【００２９】
また、上側ハウジング１６ａと下側ハウジング１６ｂとは、上側ハウジング１６ａの下辺（下端）と下側ハウジング１６ｂの上辺（上端）の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、ＬＣＤ１２の表示面とＬＣＤ１４の表示面とが対面するように、上側ハウジング１６ａを回動させて折りたたんでおけば、ＬＣＤ１２の表示面およびＬＣＤ１４の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング１６ａと下側ハウジング１６ｂとは、回動可能に連結せずに、それらを一体的（固定的）に設けたハウジング１６を形成するようにしてもよい。
【００３０】
操作スイッチ２２は、方向指示スイッチ（十字スイッチ）２２ａ，スタートスイッチ２２ｂ、セレクトスイッチ２２ｃ、動作スイッチ（Ａボタン）２２ｄ、動作スイッチ（Ｂボタン）２２ｅ、動作スイッチ（Ｘボタン）２２ｆ、動作スイッチ（Ｙボタン）２２ｇ、動作スイッチ（Ｌボタン）２２Ｌおよび動作スイッチ（Ｒボタン）２２Ｒを含む。スイッチ２２ａは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の左側に配置される。その他のスイッチ２２ｂ−２２ｇは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の右側に配置される。さらに、スイッチ２２Ｌおよびスイッチ２２Ｒは、それぞれ、上側ハウジング１６ａとの連結部を挟む下側ハウジング１６ｂの上側面の左右角部に配置される。
【００３１】
方向指示スイッチ２２ａは、ディジタルジョイスティックとして機能し、４つの押圧部の１つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。また、各押圧部には、特定の役割（この実施例では、ギターのコード）を割り当てることができ、４つの押圧部の１つを操作することによって、割り当てられた役割を指示（指定）することができる。
【００３２】
スタートスイッチ２２ｂは、プッシュボタンで構成され、ゲームを開始（再開）したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ２２ｃは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【００３３】
動作スイッチ２２ｄすなわちＡボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(ＲＰＧ)やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ２２ｅすなわちＢボタンは、プッシュボタンで構成され、セレクトスイッチ２２ｃで選択したゲームモードの変更やＡボタン２２ｄで決定したアクションの取り消し等のために用いられる。
【００３４】
動作スイッチ２２ｆすなわちＸボタン、および動作スイッチ２２ｇすなわちＹボタンは、プッシュボタンで構成され、Ａボタン２２ｄとＢボタン２２ｅだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Ｘボタン２２ｆおよびＹボタン２２ｇは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてＸボタン２２ｆとＹボタン２２ｇとを必ずしも使用しなくてよい。
【００３５】
動作スイッチ２２Ｌ（左押しボタン）および動作スイッチ２２Ｒ（右押しボタン）は、プッシュボタンで構成され、左押しボタン（Ｌボタン）２２Ｌおよび右押しボタン（Ｒボタン）２２Ｒは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることができ、また、Ａボタン２２ｄおよびＢボタン２２ｅの補助的な操作に用いることができる。さらに、Ｌボタン２２ＬおよびＲボタン２２Ｒは、方向スイッチ２２ａ、Ａボタン２２ｄ，Ｂボタン２２ｅ，Ｘボタン２２ｆ，Ｙボタン２２ｇに割り当てられた役割を、他の役割に変更することができる。この実施例では、Ｌボタン２２Ｌを押すと、方向スイッチ２２ａに割り当てられたコードが他のコードに変更される。
【００３６】
また、ＬＣＤ１４の上面には、タッチパネル２４が装着される。タッチパネル２４としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル２４は、その上面をスティック２６ないしはペン（スタイラスペン）或いは指（以下、これらを「スティック２６等」という場合がある。）で、押圧したり、撫でたり、触れたりすることにより操作（タッチ入力）すると、スティック２６等の操作位置の座標を検出して、検出した座標（検出座標）に対応する座標データを出力する。
【００３７】
なお、この実施例では、ＬＣＤ１４（ＬＣＤ１２も同じ、または略同じ。）の表示面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル２４の検出精度も表示画面に対応して２５６ｄｏｔ×１９２ｄｏｔとしてあるが、タッチパネル２４の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【００３８】
ＬＣＤ１２およびＬＣＤ１４には異なるゲーム画面が表示される。たとえば、レースゲームでは一方のＬＣＤに運転席からの視点による画面を表示し、他方のＬＣＤにレース（コース）全体の画面を表示することができる。また、ＲＰＧでは、一方のＬＣＤにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のＬＣＤにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のＬＣＤ（この実施例では、ＬＣＤ１２）にゲームのプレイ画面を表示し、他方のＬＣＤ（この実施例では、ＬＣＤ１４）に当該ゲームを操作するための線や図形（アイコンを含む。）などの操作オブジェクトを含むゲーム画面（操作画面）を表示することができる。さらには、２つのＬＣＤ１２およびＬＣＤ１４を合わせて１つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物（敵キャラクタ）を表示することもできる。
【００３９】
したがって、プレイヤはスティック２６等でタッチパネル２４を操作することにより、ＬＣＤ１４の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、操作オブジェクトなどの画像を指示（操作）したり、コマンドを選択（入力）したりすることができる。また、３次元ゲーム空間に設けられる仮想カメラ（視点）の方向を変化させたり、ゲーム画面（マップ）のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【００４０】
なお、ゲームの種類によっては、タッチパネル２４を用いることにより、その他の入力指示も可能である。たとえば、座標入力指示を入力したり、ＬＣＤ１４において文字，数字，記号等を手書き入力したりすることができる。
【００４１】
このように、ゲーム装置１０は、２画面分の表示部となるＬＣＤ１２およびＬＣＤ１４を有し、いずれか一方（この実施例では、ＬＣＤ１４）の上面にタッチパネル２４が設けられるので、２画面（１２，１４）と２系統の操作部（２２，２４）とを有する構成になっている。
【００４２】
また、この実施例では、スティック２６は、たとえば下側ハウジング１６ｂに設けられる収納部（図１では点線で示す）に収納することができ、必要に応じて取り出される。ただし、スティック２６を設けない場合には、その収納部も設ける必要はない。
【００４３】
さらに、ゲーム装置１０はメモリカード（またはカートリッジ）２８を含み、このメモリカード２８は着脱自在であり、下側ハウジング１６ｂの裏面ないしは下端（底面）に設けられる挿入口３０（図１では点線で示す）に挿入される。図１では省略するが、挿入部３０の奥部には、メモリカード２８の挿入方向先端部に設けられるコネクタ（図示せず）と接合するためのコネクタ３２（図２参照）が設けられており、したがって、メモリカード２８が挿入部３０に挿入されると、コネクタ同士が接合され、ゲーム装置１０のＣＰＵコア３４（図２参照）がメモリカード２８にアクセス可能となる。
【００４４】
なお、図１では表現できないが、上側ハウジング１６ａの音抜き孔２０ａおよび２０ｂと対応する位置であり、この上側ハウジング１６ａの内部にはスピーカ３６ａおよび３６ｂ（図２参照）が設けられる。
【００４５】
また、図１では省略するが、たとえば、下側ハウジング１６ｂの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング１６ｂの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【００４６】
図２はゲーム装置１０の電気的な構成を示すブロック図である。図２を参照して、ゲーム装置１０は電子回路基板３８を含み、この電子回路基板３８には上述のＣＰＵコア３４等の回路コンポーネントが実装される。ＣＰＵコア３４は、バス４０を介して前述のコネクタ３２に接続されるととともに、ＲＡＭ４２、第１のグラフィック処理ユニット（ＧＰＵ）４４、第２のＧＰＵ４６、入出カインターフエース回路（以下、「Ｉ／Ｆ回路」という。）４８およびＬＣＤコントローラ５０が接続される。
【００４７】
コネクタ３２には、上述したように、メモリカード２８が着脱自在に接続される。メモリカード２８は、ＲＯＭ２８ａおよびＲＡＭ２８ｂを含み、図示は省略するが、ＲＯＭ２８ａおよびＲＡＭ２８ｂは、互いにバスで接続され、さらに、コネクタ３２と接合されるコネクタ（図示せず）に接続される。したがって、上述したように、ＣＰＵコア３４は、ＲＯＭ２８ａおよびＲＡＭ２８ｂにアクセスすることができるのである。
【００４８】
ＲＯＭ２８ａは、ゲーム装置１０で実行すべきゲーム（音楽演奏ゲーム）のためのゲームプログラム、画像データ（文字やキャラクタの画像、背景画像、アイテム画像、アイコン（ボタン）画像、メッセージ画像など）およびゲームに必要な音（音楽）のデータ（音データ）等を予め記憶する。ＲＡＭ（バックアップＲＡＭ）２８ｂは、そのゲームの途中データやゲームの結果データなどを記憶（セーブ）する。
【００４９】
ＲＡＭ４２は、バッファメモリないしはワーキングメモリとして使用される。つまり、ＣＰＵコア３４は、メモリカード２８のＲＯＭ２８ａに記憶されたプログラム、画像データおよび音データ等をＲＡＭ４２にロードし、ロードしたプログラムを実行する。また、ＣＰＵコア３４は、ゲームの進行に応じて一時的に発生するデータ（ゲームデータやフラグデータ）をＲＡＭ４２に記憶しつつゲーム処理を実行する。
【００５０】
なお、ゲームプログラム、画像データおよび音データ等は、ＲＯＭ２８ａから一度に全部、または部分的かつ順次的に読み出され、ＲＡＭ４２に記憶（ロード）される。
【００５１】
ただし、メモリカード２８のＲＯＭ２８ａには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音（音楽）データが記憶されてもよい。かかる場合には、ゲーム装置１０では、当該アプリケーションが実行される。
【００５２】
ＧＰＵ４４およびＧＰＵ４６は、それぞれ、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、ＣＰＵコア３４からのグラフィックスコマンド（graphics command ：作画命令）を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、ＣＰＵコア３４は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム（ゲームプログラムに含まれる。）をＧＰＵ４４およびＧＰＵ４６のそれぞれに与える。
【００５３】
また、ＧＰＵ４４には、第１のビデオＲＡＭ（以下、「ＶＲＡＭ」という。）５２が接続され、ＧＰＵ４６には、第２のＶＲＡＭ５４が接続される。ＧＰＵ４４およびＧＰＵ４６が作画コマンドを実行するにあたって必要なデータ（画像データ：キャラクタデータやテクスチャ等のデータ）は、ＧＰＵ４４およびＧＰＵ４６が、それぞれ、第１のＶＲＡＭ５２および第２のＶＲＡＭ５４にアクセスして取得する。
【００５４】
なお、ＣＰＵコア３４は、描画に必要な画像データをＧＰＵ４４およびＧＰＵ４６を介して第１のＶＲＡＭ５２および第２のＶＲＡＭ５４に書き込む。ＧＰＵ４４はＶＲＡＭ５２にアクセスして描画のための画像データを作成し、ＧＰＵ４６はＶＲＡＭ５４にアクセスして描画のための画像データを作成する。
【００５５】
ＶＲＡＭ５２およびＶＲＡＭ５４は、ＬＣＤコントローラ５０に接続される。ＬＣＤコントローラ５０はレジスタ５６を含み、レジスタ５６はたとえば１ビットで構成され、ＣＰＵコア３４の指示によって「０」または「１」の値（データ値）を記憶する。ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「０」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１２に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１４に出力する。また、ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「１」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１４に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１２に出力する。
【００５６】
なお、ＬＣＤコントローラ５０は、ＶＲＡＭ５２およびＶＲＡＭ５４から直接画像データを読み出したり、ＧＰＵ４４およびＧＰＵ４６を介してＶＲＡＭ５２およびＶＲＡＭ５４から画像データを読み出したりする。
【００５７】
Ｉ／Ｆ回路４８には、操作スイッチ２２，タッチパネル２４およびスピーカ３６ａ，３６ｂが接続される。ここで、操作スイッチ２２は、上述したスイッチ２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２ｇ，２２Ｌおよび２２Ｒであり、操作スイッチ２２が操作されると、対応する操作信号（操作データ）がＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。また、タッチパネル２４からの座標データがＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。さらに、ＣＰＵコア３４は、ゲーム音楽（ＢＧＭ）、効果音またはゲームキャラクタの音声（擬制音）などのゲームに必要な音データをＲＡＭ４２から読み出し、Ｉ／Ｆ回路４８を介してスピーカ３６ａ，３６ｂから出力する。
【００５８】
図３は、図１および図２に示すゲーム装置１０を用いて、この実施例のゲームをプレイする場合のゲーム画面および操作画面などを主として示す。たとえば、この実施例では、プレイヤは擬似的にギターを演奏することができる。図３に示すように、ＬＣＤ１２には、ギターを演奏するプレイヤキャラクタを含むゲーム画面が表示され、ＬＣＤ１４には、ギターの弦を模した操作オブジェクトを含むゲーム画面（操作画面）が表示される。図示は省略するが、たとえば、プレイヤは、左手の親指でスイッチ２２ａを操作するとともに、左手の人指し指でＬボタン２２Ｌを操作するように、左手でゲーム装置１０を把持する。また、プレイヤは、右手で弦を弾くように操作するために、右手でスティック２６を把持する。
【００５９】
図示は省略するが、この実施例では、Ｌボタン２２Ｌを押す毎に、モード（たとえば、モード１，モード２）を切り換えることができる。また、モード１の場合と、モード２の場合とのそれぞれについて、方向スイッチ２２ａの各押圧部に所望のコードを割り当てることができる。したがって、演奏する曲に応じて、または、曲の演奏中に、モードを切り換えて、使用可能なコードを変更することができる。ただし、モードは３つ以上であってもよい。
【００６０】
なお、図３では表現できないが、プレイヤキャラクタはアニメーション表示される。
【００６１】
また、この実施例では、右利きのプレイヤを想定して、方向スイッチ２２ａの各押圧部にコードを割り当て、モードの切り換えをＬボタン２２Ｌで行うようにしてある。ただし、左利きのプレイヤの場合には、Ａボタン２２ｄ，Ｂボタン２２ｅ，Ｘボタン２２ｆ，Ｙボタン２２ｇのそれぞれにコードを割り当て、モードの切り換えをＲボタン２２Ｒで行うようにしてもよい。これらは、プレイヤが切り換えることができるようにしてもよい。
【００６２】
たとえば、プレイヤがゲーム装置１０を用いて、擬似的にギターを演奏する場合には、ＬＣＤ１４（タッチパネル２４）上で、１または複数の弦（操作オブジェクト）を弾くように、スティック２６をスライドさせる。すると、このスライド操作に合わせて、操作画面上の弦が弾かれる。このとき、弾かれた弦の音がスピーカ３６ａ，３６ｂから出力される。ただし、上述したように、プレイヤが方向スイッチ２２ａのいずれか１つの押圧部を操作すると、当該押圧部に割り当てられたコードが選択される。したがって、コードが選択された状態で、当該コードの音を鳴らすための弦がすべて弾かれると、当該コードの音がスピーカ３６ａ，３６ｂから出力される。
【００６３】
従来の音楽ゲーム装置やファミリーキーボードのような演奏装置を用いて音楽を演奏する場合には、プレイヤは、伴奏のリズムに合わせて、ボタンや鍵盤を操作する。この操作のタイミングの良さに応じて点数や評価が決まる。また、模擬的にオーケストラの指揮を行う音楽演奏装置では、プレイヤが指揮棒としての操作部を振ることにより、音楽の演奏状態（テンポ，音量）が制御される。
【００６４】
しかし、このような演奏装置では、プレイヤに対し、音楽の演奏に携わっている感覚が与えられるだけであり、プレイヤ自身が音楽を演奏するという楽しさを得ることができない。すなわち、娯楽的な要素が少ない。
【００６５】
そこで、この実施例では、プレイヤが演奏する音楽（曲）のテンポ（演奏テンポ）を検出し、テンポを規定する四分音符の始まりのタイミングと、演奏のタイミング（タッチ入力のタイミング）とが一致する或いはほぼ一致する場合に、拍手音のような効果音（特定音）を出力する。また、テンポが安定している場合には、効果音の音量を次第に大きくし、演奏を盛り上げ、逆に、テンポが不安定である場合には、効果音の音量を次第に小さくする。つまり、娯楽的な要素が付加される。
【００６６】
具体的には、プレイヤは、たとえば所望の音楽（曲）についての楽譜を見ながら、ゲーム装置１０を用いて、模擬的にギターを演奏する。演奏を開始すると、歓声のような効果音が出力され、プレイヤにステージ等で演奏するような臨場感を与える。演奏中では、プレイヤが操作オブジェクト（弦）を弾くタイミング（タッチ入力）が検出され、その履歴が時系列に従って記録される。この実施例では、後述するように、１フレーム（フレーム：画面更新単位時間（１／６０秒））毎に、プレイヤが演奏する音楽の演奏テンポを検出するようにしてあるため、演算能力を考慮して、タッチ入力の履歴（タッチ入力履歴）は３秒に相当するフレーム数だけ記録するようにしてある。
【００６７】
たとえば、図４（Ａ）に示すような音符（音程やコードは無視）に従ってプレイヤが演奏した場合に、図４（Ｂ）に示すような履歴（タッチ入力履歴）が得られたとする。ただし、図４では、タッチ入力が瞬間的に行われたように、縦棒でそのタイミングを示してあるが、実際には、一回のタッチ入力は数フレームの幅を持っている。これは、図３に示したように、プレイヤが演奏する場合に、１または複数の弦を弾くようにスティック２６をスライドさせるためである。
【００６８】
このタッチ入力履歴を用いて、プレイヤの演奏する音楽の演奏テンポが検出される。具体的には、タッチ入力履歴を、各テンポＴ（この実施例では、１５０−９０）における四分音符の長さ分だけずらしながら比較し（自己相関関数を算出し）、一致度が最も高い（相関が最も大きい）場合のテンポＴが演奏テンポとして検出される。
【００６９】
たとえば、図４（Ｃ）に示す例では、テンポＴが１５０，１２０，９０の場合において、各々の四分音符の長さ分だけ、図４（Ｂ）に示すタッチ入力履歴（以下、説明の都合上、「元の履歴」ということがある。）をずらした（遅延させた）タッチ入力履歴（以下、説明の都合上、「遅延履歴」ということがある。）が示される。図４（Ｃ）に示すように、元の履歴と遅延履歴とを比較すると、テンポＴが１５０である場合には、元の履歴と遅延履歴とが一致するタイミングは２個である。また、テンポＴである１２０の場合には、元の履歴と遅延履歴とが一致するタイミングは５個である。さらに、テンポＴが９０である場合には、元の履歴と遅延履歴とが一致するタイミングは２個である。つまり、テンポＴが１２０である場合に、元の履歴と遅延履歴との相関が最も高いと言える。
【００７０】
なお、簡単のため、図４（Ｃ）では、３つの遅延履歴について示してあるが、実際には、テンポＴを９０から１５０まで、１テンポずつ加算して、元の履歴と各々の遅延履歴とを比較するようにしてある。
【００７１】
また、図４（Ｃ）（後述する図４（Ｄ）も同じ。）では、元の履歴と遅延履歴（図４では四分音符の先頭）とのタイミングが一致することを丸印で示してある。
【００７２】
ただし、厳密に言うと、元の履歴と遅延履歴とは、一致するタイミングの個数を検出するのではなく、自己相関関数（相関値）を算出し、最も相関値（評価値）ｖ１が大きい場合のテンポＴを演奏テンポとして検出するのである。ここで、相関値ｖ１は数１に示す自己相関関数に従って算出される。
【００７３】
［数１］
ｖ１＝ｖ１＋ｈ［ｔ］×ｈ［ｔ＋ａ］
ａ＝１分間のフレーム数／１分間の四分音符の数（テンポ）
ｔ＝０〜（ＨＩＳＴ＿ＴＩＭＥ−Ａ＿ＭＡＸ−１）
ただし、相関値ｖ１の初期値は０であり、ｈ［］はタッチ入力履歴（この実施例では、３秒間分）であり、ａはテンポ周期であり、ＨＩＳＴ＿ＴＩＭＥは履歴時間（３秒に相当するフレーム数）であり、Ａ＿ＭＡＸはテンポＴが９０である場合のａ（テンポ周期）である。以下、同様である。
【００７４】
なお、このような相関関係を計算することにより、元の履歴と遅延履歴との一致度を検出することができるのは、各タッチ入力が数フレームの幅を持っているためである。したがって、ゲーム装置１０を用いて、打楽器のような他の楽器を演奏する場合には、入力のタイミングが幅を有していないため、上述のようにして相関関係を計算するのは困難である。かかる場合には、入力のタイミングを中心とするガウス分布（正規分布）を求めて、入力のタイミングに或る程度の幅を持たせる必要がある。
【００７５】
上述したように、相関が最も高いときのテンポＴが演奏テンポとして特定される。特定された演奏テンポの履歴は記録され、演奏テンポが安定している場合には、後述する効果音の音量が増大され、逆に、演奏テンポが不安定である場合には、効果音の音量が低減される。たとえば、今回検出された演奏テンポと前回検出された演奏テンポとのずれが所定値（この実施例では、５テンポ）以内である場合には、演奏テンポは安定していると判断され、ずれが所定値を超えている場合には、演奏テンポが不安定であると判断される。
【００７６】
また、演奏テンポが特定されると、四分音符内における位相のずれが検出される。言い換えると、現在のタッチ入力（演奏）のタイミングと、特定された演奏テンポの四分音符の先頭に相当するタイミングとのずれ量（位相ずれ）が検出される。これは、現在のタッチ入力が、四分音符の先頭に相当するタイミングまたはそれに近いタイミングで行われた場合に、拍手音のような効果音を鳴らして、演奏を盛り上げるためである。
【００７７】
具体的には、特定された演奏テンポにおける四分音符の長さに相当する間隔（四分音符間隔）のインパルス関数を生成する。そして、生成したインパルス関数を、現フレームから１フレームずつずらした場合における、元の履歴と演奏テンポとの相関が検出される。つまり、プレイヤの演奏のタイミングと、特定した演奏テンポのタイミングとの位相ずれを検出し、演奏のタイミングの位相ずれが少ない場合に、効果音が出力されるのである。
【００７８】
ここで、特定された演奏テンポにおける四分音符の先頭でのみ「１」となり、他の位置で「０」となるインパルス関数が生成される。このインパルス関数を１フレームずつずらしながら、タッチ入力履歴とインパルス関数との相関が検出される。具体的には、数２に従って、相関値ｖ２が算出される。
【００７９】
［数２］
ｖ２＝ｖ２＋ｈ［ｔ］
ｔ＝ｂ〜（ＨＩＳＴ＿ＴＩＭＥ−ｂｅｓｔ＿ａ＋ｂ）
ｂ＝０〜ｂｅｓｔ＿ａ−１
ただし、相関値ｖ２の初期値は０であり、ｂｅｓｔ＿ａは相関値ｖ１が最大のときのテンポ周期ａであり、ｂは位相ずれのフレーム数である。
【００８０】
たとえば、図４（Ｄ）には、位相をずらしていない場合のインパルス関数と、位相をΔｄ１，Δｄ２，Δｄ３に相当するフレーム数だけずらしたインパルス関数とが表示される。ただし、図４（Ｄ）では、特定された演奏テンポにおける四分音符の長さを白抜きの矢印で示してある。図４（Ｂ）および図４（Ｄ）から分かるように、タッチ入力履歴（元の履歴）との一致度が高いのは、演奏テンポにおける四分音符間隔のインパルス関数の位相をΔｄ２に相当するフレーム数だけずらした場合である。
【００８１】
ただし、演奏テンポＴの位相をΔｄ２に相当するフレーム数だけずらした場合における四分音符の先頭のタイミングは、現在のタッチ入力のタイミングと比較的大きくずれている。図４（Ｄ）に示す例では、約四分音符の半分に相当する長さ（八分音符の長さ）だけ、位相がずれていると言える。図面では分かり難いが、かかる場合には、位相のずれが一定の範囲（たとえば、前後５フレーム）を超えているため、効果音は出力されない。
【００８２】
なお、図４（Ｂ）および図４（Ｄ）に示すように、現在のタッチ入力の直前のタッチ入力のタイミングと、四分音符間隔のインパルス関数のタイミングとは一致する或いはほぼ一致する。図面では分かり難いが、このような場合には、位相のずれが一定の範囲内であるため、効果音が出力されるのである。
【００８３】
また、拍手音が出力された回数がカウントされ、拍手音が出力された回数が一定回数（この実施例では、３０）以上であれば、プレイヤが演奏を終了したときに、歓声の効果音が出力される。これは、演奏終了時に歓声の効果音を出力して、ステージ等で演奏しているような臨場感をプレイヤに与えるためである。
【００８４】
図５は図２に示したＲＡＭ４２のメモリマップである。この図５を参照して、ＲＡＭ４２は、プログラム記憶領域７０およびデータ記憶領域７２を含む。プログラム記憶領域７０は、演奏制御プログラム（ゲームプログラム）を記憶する。たとえば、ゲームプログラムは、ゲームメイン処理プログラム７０ａ、画像生成プログラム７０ｂ、画像表示プログラム７０ｃ、タッチオン・オフ検出プログラム７０ｄ、タッチ入力履歴記録プログラム７０ｅ、テンポ検出プログラム７０ｆ、位相ずれ検出プログラム７０ｇ、サウンド出力プログラム７０ｈおよび効果音出力プログラム７０ｉなどによって構成される。
【００８５】
ゲームメイン処理プログラム７０ａは、この実施例のゲーム（音楽演奏ゲーム）のメイン処理を実行するためのプログラムである。画像生成プログラム７０ｂは、ゲーム画像（ゲーム画面，操作画面）を生成するためのプログラムである。具体的には、画像生成プログラム７０ｂは、プレイヤキャラクタ、プレイヤキャラクタが使用する楽器のオブジェクト、背景オブジェクトを含むゲーム画面を生成したり、ギターの弦のような操作オブジェクトを含む操作画面を生成したりする。
【００８６】
タッチオン・オフ検出プログラム７０ｄは、プレイヤがタッチパネル２４にタッチしていない（タッチ入力無し）状態からタッチパネル２４にタッチする（タッチ入力有り）状態に変化するタッチオン操作を検出するとともに、タッチオン状態からタッチオフ状態に変化するタッチオフ操作を検出するためのプログラムである。また、このタッチオン・オフ検出プログラム７０ｄに従って、ＣＰＵコア３４は、後述するタッチオンフラグ７２ａ（図６参照）をオン（成立）／オフ（不成立）する。ＣＰＵコア３４は、タッチ入力が有る場合に、タッチオンフラグ７２ａをオンし、タッチ入力が無い場合に、タッチオンフラグ７２ａをオフする。
【００８７】
タッチ入力履歴記録プログラム７０ｅは、プレイヤが演奏を開始してから演奏を終了するまでの間、タッチオン・オフ検出プログラム７０ｄに従ってタッチ入力（タッチオン操作）の履歴を時系列に従って記録するためのプログラムである。つまり、タッチ入力履歴記録プログラム７０ｅに従って、ＣＰＵコア３４は、後述するタッチ入力履歴データ７２ｂ（図６参照）をデータ記憶領域７２に記録する。ただし、この実施例では、上述したように、現フレームを含む３秒分のフレーム数に相当するタッチ入力履歴を用いて、テンポを検出するようにしてある。このため、タッチ入力履歴記憶プログラム７０ｅは、現フレームから過去に遡って、３秒を超えているフレームに相当するタッチ入力のタイミングについてはリジェクトする。
【００８８】
テンポ検出プログラム７０ｆは、タッチ入力履歴を、各テンポＴ（１５０−９０）における四分音符の長さ分だけずらしながら比較し、比較した結果、最も一致度が高いときのテンポＴを演奏テンポとして特定するためのプログラムである。つまり、タッチ入力履歴の自己相関関数が算出され、相関が最も高い場合のテンポＴが、演奏テンポとして特定されるのである。位相ずれ検出プログラム７０ｇは、テンポ検出プログラム７０ｆに従って検出された演奏テンポと、タッチ入力履歴とのずれ量（位相ずれ）を検出するためのプログラムである。
【００８９】
サウンド出力プログラム７０ｈは、プレイヤの演奏に従う音を、出力するためのプログラムである。つまり、プレイヤが弦を弾く操作を実行すると、これに応じて、ギター音が出力される。効果音出力プログラム７０ｉは、拍手の音や歓声のような効果音を、出力するためのプログラムである。たとえば、プレイヤが演奏を開始したときに、または、演奏中に拍手音が一定回数以上出力され、演奏を終了したときに、歓声が出力される。また、特定された演奏テンポにおける四分音符の先頭のタイミングと、プレイヤの演奏（タッチ入力）のタイミングとが一致する或いはほぼ一致する（この実施例では、位相ずれが５フレーム以内）場合に、拍手音が出力される。上述したように、拍手音の音量は、テンポが安定している場合に増大され、テンポが不安定である場合に減少される。
【００９０】
なお、図示は省略するが、プログラム記憶領域７０には、バックアッププログラムなども記憶される。バックアッププログラムは、プレイヤの指示や所定のイベントに従ってゲームデータ（ゲームの途中データや結果データ）をＲＡＭ２８ｂに記憶（セーブ）するためのプログラムである。
【００９１】
図６はＲＡＭ４２のデータ記憶領域７２の一例を示す図解図である。図６を参照して、データ記憶領域７２には、タッチオンフラグ７２ａ、タッチ入力履歴データ７２ｂ、テンポデータ７２ｃ、弦位置データ７２ｄ、サウンドデータ７２ｅおよび画像データ７２ｆなどが記憶される。
【００９２】
タッチオンフラグ７２ａは、タッチ入力の有無を判断するためのフラグであり、上述したように、タッチオン・オフ検出プログラム７０ｄに従ってオン／オフされる。たとえば、タッチオンフラグ７２ａは、１ビットのレジスタで構成され、当該フラグがオンされると、レジスタにデータ値「１」が記憶され、逆に、当該フラグがオフされると、レジスタにデータ値「０」が記憶される。
【００９３】
タッチ入力履歴データ７２ｂは、タッチ入力履歴についてのデータである。ただし、タッチ入力履歴データ７２ｂは、最大で、現フレームを含む過去３秒分の各フレームに対応するデータ（７２０，７２２，…）を記憶される。ここで、タッチ入力履歴とは、各フレームにおける、タッチ座標とタッチオンフラグ７２ａのオン／オフの情報（フラグ情報）とをいう。ただし、タッチオンフラグ７２ａがオフの場合には、タッチ入力が無いため、タッチ座標は記憶されない。
【００９４】
テンポ履歴データ７２ｃは、現フレームの直前のフレームまでに、毎フレーム算出された演奏テンポを時系列に従って記憶したデータである。弦位置データ７２ｄは、ＬＣＤ１４（操作画面）に操作オブジェクト（弦）を表示するためのデータ（７３０，７３２，７３４など）である。具体的には、各弦（第１弦，第２弦，…，第６弦）についてのＬＣＤ１４の表示位置（横方向の座標（Ｘ座標））が記憶される。また、この弦位置データ７２ｄは、各弦がプレイヤによって弾かれたか否かを判断する場合にも用いられる。具体的には、プレイヤがスティック２６でタッチパネル２４をタッチし、そのままスライドするとき、このスティック２６の移動に従って撓む弦の表示位置のＸ座標（弦位置データ７２ｄが示すＸ座標）と、現在のタッチ位置のＸ座標との差が一定値（たとえば、１０ｄｏｔ）を超えると、当該弦が弾かれたと判断する。
【００９５】
サウンドデータ７２ｅは、ギター音データ７４０および効果音データ７４２を含む。ギター音データ７４０は、ギターの各弦に対応する音のデータを記憶する。したがって、音階に応じた音やコードに従う音は、各現に対応する音のデータを用いて生成され、出力される。また、効果音データ７４２は、拍手や歓声のような効果音についてのデータである。画像データ７２ｆは、ＬＣＤ１２およびＬＣＤ１４にゲーム画面や操作画面を表示するための画像を生成するためのデータ（キャラクタデータやテクスチャデータなど）である。
【００９６】
また、データ記憶領域７２には、フレームカウンタ７２ｇおよび拍手音カウンタ７２ｈなどが設けられる。フレームカウンタ７２ｇは、演奏開始からのフレーム数をカウントするためのカウンタである。拍手音カウンタ７２ｈは、プレイヤが演奏中に拍手音が出力された回数をカウントするためのカウンタである。
【００９７】
なお、図示は省略するが、データ記憶領域には、他のゲームデータやフラグデータも記憶され、他のカウンタも設けられる。
【００９８】
具体的には、図２に示したＣＰＵコア３４が図７および図８に示すフロー図に従って演奏処理を実行する。図７に示すように、ＣＰＵコア３４は、演奏処理を開始すると、ステップＳ１で、初期化処理を実行する。ここでは、たとえば、フレームカウンタ７２ｇおよび拍手音カウンタ７２ｈをリセットする。つまり、カウント値が０に設定される。ステップＳ３では、プレイヤが演奏を開始したか否かを判断する。つまり、演奏ゲームを開始してから、初めてタッチ入力を検出したか否かを判断する。
【００９９】
ステップＳ３で“ＮＯ”であれば、つまりプレイヤが演奏を開始していなければ、同じステップＳ３に戻る。一方、ステップＳ３で“ＹＥＳ”であれば、つまりプレイヤが演奏を開始すれば、ステップＳ５で、歓声の効果音を出力する。ここでは、ＣＰＵコア３４は、データ記憶領域７２の歓声についての効果音データ７４２を読み出し、Ｉ／Ｆ回路４８を介して、右スピーカ３６ａおよび左スピーカ３６ｂから出力する。以下、効果音を出力する場合において同様である。
【０１００】
次のステップＳ７では、ゲーム処理を実行する。ここでは、プレイヤの操作入力（ボタン操作やタッチ入力）を検出したり、ＬＣＤ１２のゲーム画面を表示（更新）したり、ＬＣＤ１４の操作画面をプレイヤのタッチ入力に従って表示（更新）したりする。また、プレイヤの操作入力に従ってギター音を出力する。ここでは、プレイヤの操作入力は、タッチ入力のみの場合と、ボタン操作（方向スイッチ２２ａの操作）およびタッチ入力の場合とがある。したがって、弾かれた弦に対応する単音やコードの音が出力される。ここでは、ＣＰＵコア３４は、弾かれた弦に対応する音についてのギター音データ７４２をデータ記憶領域７２から読み出し、Ｉ／Ｆ回路４８を介して、右スピーカ３６ａおよび左スピーカ３６ｂから出力する。さらに、Ｌボタン２２Ｌの操作に応じて、モードを切り換える。
【０１０１】
続くステップＳ９では、フレーム数をカウントする。つまり、フレームカウンタ７２ｇをインクリメントする。ここで、図７および図８に示すフロー図において、ステップＳ７−Ｓ３１のスキャンタイムは１フレームであり、したがって、演奏が継続している間では、ステップＳ７の処理が実行される度に、１フレームずつ加算（カウント）され、演奏開始からのフレーム数がカウントされる。
【０１０２】
次のステップＳ１１では、タッチ入力履歴を更新する。ステップＳ７で検出したタッチ入力に応じて、タッチ座標およびフラグ情報のデータをデータ記憶領域７２に記憶するのである。つまり、タッチ入力履歴データ７２ｂが更新される。ただし、タッチ入力が無い場合には、タッチ座標は記憶されない。
【０１０３】
タッチ入力履歴を更新すると、ステップＳ１３で、後述するテンポ検出処理（図９参照）実行し、ステップＳ１５で、テンポ履歴を更新する。つまり、テンポ検出処理によって今回検出された演奏テンポの数値データがデータ記憶領域７２に記憶（追加）され、テンポ履歴データ７２ｃが更新される。
【０１０４】
そして、ステップＳ１７では、テンポ履歴のずれ量が所定値（たとえば、５テンポ）以内であるかどうかを判断する。具体的には、ＣＰＵコア３４は、今回検出したテンポと前回検出したテンポとの差（の絶対値）が所定値以内であるか否かを判断する。ステップＳ１７で“ＹＥＳ”であれば、つまりテンポ履歴のずれ量が所定値以内であれば、演奏テンポが安定していると判断して、盛り上がりの効果音（たとえば、拍手音）用の音量値を増加させて、図８に示すステップＳ２３に進む。一方、ステップＳ１７で“ＮＯ”であれば、つまりテンポ履歴のずれ量が所定値を超えていれば、演奏テンポが不安定であると判断して、盛り上がりの効果音用の音量値を減少させて、ステップＳ２３に進む。
【０１０５】
図８に示すように、ステップＳ２３では、後述する四分音符内の位相ずれ検出処理（図１０参照）を実行する。つまり、ＣＰＵコア３４は、盛り上がりの効果音を出力するタイミングであるか否かを検出する。次のステップＳ２５では、位相が四分音符の先頭のタイミングであるかどうかを判断する。つまり、ＣＰＵコア３４は、現フレーム（演奏のタイミング）と四分音符の先頭のタイミングとの位相ずれが一定範囲（たとえば、５フレーム）内であるかどうかを判断する。
【０１０６】
ステップＳ２５で“ＮＯ”であれば、つまり位相が四分音符の先頭のタイミングでなければ、そのままステップＳ３１に進む。一方、ステップＳ２５で“ＹＥＳ”であれば、つまり位相が四分音符の先頭のタイミングであれば、ステップＳ２７で、盛り上がりの効果音すなわち拍手音を出力し、ステップＳ２９で、拍手音の回数（出力回数）をカウントして、つまり拍手音カウンタ７２ｈをインクリメントして、ステップＳ３１に進む。
【０１０７】
ステップＳ３１では、演奏終了であるかどうかを判断する。ここでは、ＣＰＵコア３４は、演奏終了の指示が入力されたかどうかを判断する。ただし、タッチ入力が無い時間をカウントするタイマを設けておき、当該タイマが一定時間（たとえば、１０秒）をカウントしたときに、演奏終了であると判断するようにしてもよい。
【０１０８】
ステップＳ３１で“ＮＯ”であれば、つまり演奏終了でなければ、図７に示したステップＳ７に戻る。しかし、ステップＳ３１で“ＹＥＳ”であれば、つまり演奏終了であれば、ステップＳ３３で、拍手音の出力回数が一定回数（たとえば、３０）以上であるかどうかを判断する。つまり、拍手音カウンタ７２ｈのカウント値が一定回数以上であるかどうかを判断する。ステップＳ３３で“ＮＯ”であれば、つまり拍手音カウンタ７２ｈのカウント値が一定回数未満であれば、そのまま演奏処理を終了する。一方、ステップＳ３３で“ＹＥＳ”であれば、つまり拍手音カウンタ７２ｈのカウント値が一定回数以上であれば、ステップＳ３５で、歓声の効果音を出力し、演奏処理を終了する。
【０１０９】
図９は、図７に示したステップＳ１３のテンポ検出処理を示すフロー図である。なお、上述したように、演奏処理におけるステップＳ７−Ｓ３１のスキャンタイムは１フレームであるため、このテンポ検出処理は、毎フレーム実行される。図９に示すように、ＣＰＵコア３４はテンポ検出処理を開始すると、ステップＳ４１で、テンポＴを初期値に設定する（Ｔ＝９０）。
【０１１０】
次のステップＳ４３では、テンポＴにおける四分音符の長さだけずらしたタッチ入力履歴（遅延履歴）と、元の履歴との相関値ｖ１を数１に従って算出する。そして、ステップＳ４５で、算出した相関値ｖ１とテンポＴとを対応づけて記憶領域７２に保存（一時記憶）する。
【０１１１】
続いて、ステップＳ４７で、テンポＴが最大値（Ｔ＝１５０）であるかどうかを判断する。つまり、テンポＴが９０から１５０までのすべてについて、相関値ｖ１を算出したかどうかを判断する。ステップＳ４７で“ＹＥＳ”であれば、つまりテンポＴが最大値であれば、ステップＳ４９で、最も相関値ｖ１が大きくなるテンポＴを特定して、テンポ検出処理をリターンする。つまり、最も相関の高いテンポＴが演奏テンポとして特定される。一方、ステップＳ４７で“ＮＯ”であれば、つまりテンポＴが最大値でなければ、ステップＳ５１で、テンポＴを１増加して（Ｔ＝Ｔ＋１）、ステップＳ４３に戻る。
【０１１２】
なお、図示は省略するが、演奏テンポを特定したとき、データ記憶領域７２に一時記憶された相関値ｖ１とテンポＴとはすべて消去される。
【０１１３】
図１０は、図８に示したステップＳ２３の位相ずれ検出処理を示すフロー図である。なお、上述したように、演奏処理におけるステップＳ７−Ｓ３１のスキャンタイムは１フレームであるため、この位相ずれ検出処理も、毎フレーム実行される。図１０に示すように、四分音符内の位相検出処理を開始すると、ステップＳ６１で、位相ｔに初期値を設定する（ｔ＝０）。つまり、ＣＰＵコア３４は、特定した演奏テンポで決まる四分音符の開始タイミングと、現フレームのタイミングとを一致させる。
【０１１４】
続くステップＳ６３では、四分音符の先頭のみを「１」とし、それ以外を「０」とする関数（インパルス関数）を位相フレーム分ずらしたものと、元の履歴との相関値ｖ２を数２に従って算出する。そして、ステップＳ６５で、算出した相関値ｖ２と位相ｔとを対応づけてデータ記憶領域７２に保存（一時記憶）する。
【０１１５】
続いて、ステップＳ６７では、位相ｔが四分音符の長さに相当するフレーム数であるかどうかを判断する。つまり、位相ｔが最大フレーム数になったかどうかを判断する。ステップＳ６７で“ＹＥＳ”であれば、つまり位相ｔが四分音符の長さに相当するフレーム数であれば、ステップＳ６９で、最も相関値ｖ２の大きくなる位相ｔを特定して、位相ずれ検出処理をリターンする。つまり、最も相関の高い位相ｔが四分音符内の位相ずれとして特定される。一方、ステップＳ６７で“ＮＯ”であれば、つまり位相ｔが四分音符の長さに相当するフレーム数に達していなければ、ステップＳ７１で、位相ｔを１加算して（ｔ＝ｔ＋１）、ステップＳ６３に戻る。
【０１１６】
なお、図示は省略するが、位相ｔを特定したとき、データ記憶領域７２に一時記憶された相関値ｖ２と位相とはすべて消去される。
【０１１７】
この実施例によれば、プレイヤが自由に演奏するときのテンポを検出し、検出したテンポの四分音符のタイミングと、プレイヤの演奏するタイミングとが一致するとき、効果音を鳴らすので、娯楽的な要素の大きい音楽演奏を楽しむことができる。
【０１１８】
なお、この実施例では、テンポが安定しているか否かで、拍手音（効果音）の音量値を変化させるようにしたが、効果音自体を変化させるようにしてもよい。たとえば、テンポが安定している場合には、拍手音に歓声や口笛のような他の音を加えて、効果音を変化させるようにし、逆にテンポが不安定である場合には、拍手音から、ざわめきやいわゆるブーイングのような他の効果音に変化させるようにしてもよい。
【０１１９】
また、この実施例では、ポインティングデバイスとしてタッチパネルを用いるようにしたが、これに限定されるべきではない。他の例としては、コンピュータマウス、タッチパッドまたはペンタブレットを用いることができる。ただし、かかる場合には、ゲーム画面にマウスポインタのような指示画像を表示する必要がある。
【０１２０】
さらに、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、ＬＣＤは１つでもよく、タッチパネルは２つのＬＣＤのそれぞれに設けるようにしてもよい。
【図面の簡単な説明】
【０１２１】
【図１】図１はこの発明のゲーム装置の一実施例を示す図解図である。
【図２】図２は図１に示すゲーム装置の電気的な構成を示すブロック図である。
【図３】図３は図１に示すゲーム装置で一例として音楽演奏ゲームをプレイしている状態を示す図解図である。
【図４】図４は音楽演奏ゲームをプレイしている場合に演奏のテンポを検出する方法およびそのテンポの四分音符内の位相を検出する方法を説明するための図解図である。
【図５】図５は図２に示すＲＡＭのメモリマップの一例を示す図解図である。
【図６】図６は図５に示すデータ記憶領域の一例を示す図解図である。
【図７】図７は図２に示すＣＰＵコアの演奏処理の一部を示すフロー図である。
【図８】図８は図２に示すＣＰＵコアの演奏処理の他の一部であって、図７に後続するフロー図である。
【図９】図９は図２に示すＣＰＵコアのテンポ検出処理を示すフロー図である。
【図１０】図１０は図２に示すＣＰＵの四分音符内の位相ずれ検出処理を示すフロー図である。
【符号の説明】
【０１２２】
１０  …ゲーム装置
１２，１４  …ＬＣＤ
１６，１６ａ，１６ｂ  …ハウジング
２２  …操作スイッチ
２４  …タッチパネル
２６  …スティック
２８  …メモリカード
２８ａ  …ＲＯＭ
２８ｂ，４２  …ＲＡＭ
３４  …ＣＰＵコア
３６ａ，３６ｂ  …スピーカ
４４，４６  …ＧＰＵ
４８  …Ｉ／Ｆ回路
５０  …ＬＣＤコントローラ
５２，５４  …ＶＲＡＭ
【図１】
0005351373.tif 000002
【図２】
0005351373.tif 000003
【図３】
0005351373.tif 000004
【図４】
0005351373.tif 000005
【図５】
0005351373.tif 000006
【図６】
0005351373.tif 000007
【図７】
0005351373.tif 000008
【図８】
0005351373.tif 000009
【図９】
0005351373.tif 000010
【図１０】
0005351373.tif 000011