JP5121487B2 - 楽曲修正プログラムおよび楽曲修正装置 - Google Patents

楽曲修正プログラムおよび楽曲修正装置 Download PDF

Info

Publication number
JP5121487B2
JP5121487B2 JP2008030659A JP2008030659A JP5121487B2 JP 5121487 B2 JP5121487 B2 JP 5121487B2 JP 2008030659 A JP2008030659 A JP 2008030659A JP 2008030659 A JP2008030659 A JP 2008030659A JP 5121487 B2 JP5121487 B2 JP 5121487B2
Authority
JP
Japan
Prior art keywords
timing
note
music
correction
sound generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008030659A
Other languages
English (en)
Other versions
JP2009192619A (ja
Inventor
一生 戸高
祐一郎 岡村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2008030659A priority Critical patent/JP5121487B2/ja
Priority to US12/076,806 priority patent/US7781663B2/en
Publication of JP2009192619A publication Critical patent/JP2009192619A/ja
Application granted granted Critical
Publication of JP5121487B2 publication Critical patent/JP5121487B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/40Rhythm
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/076Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for extraction of timing, tempo; Beat detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/091Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for performance evaluation, i.e. judging, grading or scoring the musical qualities or faithfulness of a performance, e.g. with respect to pitch, tempo or other timings of a reference performance
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/135Musical aspects of games or videogames; Musical instrument-shaped game input interfaces
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/121Musical libraries, i.e. musical databases indexed by musical parameters, wavetables, indexing schemes using musical parameters, musical rule bases or knowledge bases, e.g. for automatic composing methods
    • G10H2240/131Library retrieval, i.e. searching a database or selecting a specific musical piece, segment, pattern, rule or parameter set

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

本発明は、楽曲修正プログラムおよび楽曲修正装置に関し、より特定的には、楽曲を構成する音の発音タイミングを修正するための楽曲修正プログラムおよび楽曲修正装置に関する。
従来、楽曲の演奏データに関する情報処理の技術分野において、演奏データにより示される発音タイミングを自動的に修正するクォンタイズという処理がある。クォンタイズ処理とは、演奏データにより示される発音タイミングを理想的なタイミング(クォンタイズタイミング。典型的には音符の発音タイミング)に自動的に揃える処理である。
上記のクォンタイズ処理には、演奏データにおいては異なる発音タイミングであった複数の音が、クォンタイズ処理によって同じ発音タイミングに修正されてしまうという問題がある。このような問題を解決するために、特許文献1に記載の自動演奏データ修正装置では、発音タイミングが単一のタイミングに修正されたしまった複数の音について、発音タイミングを移動したり音を削除したりしている。具体的には、自動演奏データ修正装置は、クォンタイズ処理を行った後、発音タイミングが単一のタイミングに修正された音が複数あるかどうかを検出して、ゲートタイム(発音の長さ)の短いものを削除したり、一方の音を隣接するクォンタイズタイミングに移動させたりしている。
特開平6−250648号公報
ここで、演奏データにより示される演奏内容には、クォンタイズタイミングで発音することを意図した音だけでなく、クォンタイズタイミングでないタイミングで発音することを意図した音が含まれている場合がある。例えば、演奏データが例えば人によって入力されたものである場合には、入力者(ユーザ)は、あえてクォンタイズタイミングを外したタイミングで発音するための入力(アドリブ入力と呼ぶ)を行うこともある。しかしながら、特許文献1に記載の自動演奏データ修正装置では、最終的に全ての音の発音タイミングがクォンタイズタイミングに移動することになるために、演奏データに本来含まれていたユーザの意図がクォンタイズ処理によって失われてしまうことがあった。すなわち、全ての音の発音タイミングをクォンタイズタイミングに揃える方法では、修正後の演奏データにはユーザによる(タイミングをあえてずらすという)意図が全く反映されなくなってしまう。このように、従来のクォンタイズ処理では、処理後の演奏データが画一的な内容になってしまい、上記のようなユーザのアドリブ入力に対応することができない。
それ故、本発明の目的は、演奏データに本来含まれていたユーザの意図を示す情報を残しつつ、リズムを揃えることが可能な楽曲修正プログラムおよび楽曲修正装置を提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、楽曲を構成する音の発音タイミング(ノートオンタイミング)を修正する楽曲修正装置(ゲーム装置3)のコンピュータ(CPU10)で実行される楽曲修正プログラム(ゲームプログラム60)である。楽曲修正プログラムは、演奏データ読出ステップ(S10)と、基準タイミング設定ステップ(S12〜S14)と、基準期間設定ステップ(S15)と、選択ステップ(S17)と、修正ステップ(S18)と、をコンピュータに実行させる。演奏データ読出ステップにおいて、コンピュータは、楽曲中における発音タイミングを表す演奏データ(63)を楽曲修正装置の記憶手段(フラッシュメモリ17)から読み出す。基準タイミング設定ステップにおいて、コンピュータは、楽曲の演奏期間内における複数の基準タイミング(グリッド)を設定する。基準期間設定ステップにおいて、コンピュータは、基準タイミングを含む基準期間(エリア)を基準タイミング毎に設定する。選択ステップにおいて、コンピュータは、基準期間内に含まれる発音タイミングのうち基準タイミングに最も近い発音タイミングを基準タイミング毎に選択する。修正ステップにおいて、コンピュータは、選択ステップで選択された発音タイミングを、基準タイミングに一致するよう修正する。
第2の発明においては、基準タイミング設定ステップにおいて、コンピュータは、所定の種類の音符(4分音符や8分音符や16分音符等)を発音するタイミングと一致するように複数の基準タイミングを等間隔に設定してもよい(ステップS12、図8参照)。このとき、基準期間設定ステップにおいて、コンピュータは、基準タイミングに対応する音符の間隔と等しい長さの基準期間を設定する。
第3の発明においては、基準期間設定ステップにおいて、コンピュータは、基準タイミングが基準期間の中央に位置するように基準期間を設定してもよい。
第4の発明においては、基準タイミング設定ステップにおいて、コンピュータは、互いに長さが異なる第1間隔と第2間隔とが交互に現れるように複数の基準タイミングを設定してもよい(ステップS13、図14参照)。このとき、基準期間設定ステップにおいて、コンピュータは、ある基準タイミングと次の基準タイミングとの中間が、隣接する2つの基準期間の境界となるように基準期間を設定する。
第5の発明においては、選択ステップにおいて、コンピュータは、基準期間内に含まれる発音タイミングのうち基準タイミングに最も近い発音タイミングのみを選択してもよい。このとき、修正ステップにおいて、コンピュータは、選択ステップで選択された発音タイミングのみを修正する。
第6の発明において、演奏データは、楽曲を構成する音の消音タイミング(ノートオフタイミング)を表すデータ(ノートオフデータ65)をさらに含んでいてもよい。このとき、楽曲修正プログラムは、第1削除ステップ(S24)をコンピュータにさらに実行させる。第1削除ステップにおいて、コンピュータは、修正ステップによる修正前のタイミングと修正後のタイミングとの間に存在する消音タイミングであって、選択された発音タイミングの音以外の音の消音タイミングを削除する(図17参照)。
第7の発明において、演奏データは、楽曲を構成する音の消音タイミング(ノートオフタイミング)を表すデータ(ノートオフデータ65)をさらに含んでいてもよい。このとき、楽曲修正プログラムは、移動ステップ(S27)と、第2削除ステップ(S29)をコンピュータにさらに実行させる。移動ステップにおいて、コンピュータは、選択された発音タイミングに対応する消音タイミングを当該選択された発音タイミングと同じ方向へ同じ量だけ移動させる。第2削除ステップにおいて、コンピュータは、移動ステップにおいて消音タイミングが当該消音タイミングの音以外の音の発音タイミングを超えて移動する場合、当該消音タイミングを削除する(図19参照)。
第8の発明においては、修正ステップにおいて、コンピュータは、基準期間内に含まれる発音タイミングのうちで選択ステップで選択されなかった発音タイミングを、選択された発音タイミングとの時間間隔を維持するように修正してもよい(図21参照)。
第9の発明においては、修正ステップにおいて、コンピュータは、基準期間内に含まれる発音タイミングのうちで選択ステップで選択されなかった発音タイミングが複数存在する場合、当該基準期間内の各発音タイミングの時間間隔の比率を維持するように、当該選択されなかった発音タイミングのうち少なくとも1つを修正してもよい(図22参照)。
第10の発明においては、楽曲修正プログラムは、演奏データ入力ステップ(S1)と、修正データ記憶ステップ(S22,S25)と、再生ステップ(S3)とをコンピュータにさらに実行させてもよい。演奏データ入力ステップにおいて、コンピュータは、演奏データを入力して記憶手段(フラッシュメモリ17)に記憶させる。修正データ記憶ステップにおいて、コンピュータは、第1修正ステップで発音タイミングが修正された演奏データを楽曲修正装置の記憶手段(メインメモリ)に記憶させる。再生ステップにおいて、コンピュータは、修正された楽曲データを読み出して楽曲の再生を実行する。
また、本発明は、上記第1〜第10の発明における各ステップを実行する楽曲修正装置と同等の機能を有する楽曲修正装置の形態で提供されてもよい。なお、当該楽曲修正装置においては、楽曲修正プログラムを実行するCPUによって上記各ステップにおける処理が実行されてもよいし、楽曲修正装置が備える専用の回路によって上記各ステップにおける処理の一部または全部が実行されてもよい。
第1の発明によれば、基準期間内において基準タイミングに最も近い発音タイミングのみが基準タイミングの位置に修正され、その他の発音タイミングが基準タイミングの位置に修正されることはない。これによれば、修正後の演奏データを再生する場合、基準タイミングでしか発音されないわけではなく、基準タイミング以外のタイミングで発音させることも可能である。したがって、第1の発明によれば、基準タイミング以外のタイミングで発音を行う意図を修正結果に反映させることができ、演奏データに本来含まれていた(例えば演奏データを入力したユーザの)意図を示す情報を残すことができる。また、第1の発明においては、基準タイミングに最も近い発音タイミングについては修正が行われるので、演奏結果が不自然になることを改善することができる。以上のように、第1の発明によれば、演奏データに本来含まれていたユーザの意図を示す情報を残しつつ、リズムを揃えることが可能となる。
第2の発明によれば、所定の種類の音符のタイミングに発音タイミングが修正されるので、修正後の演奏データの再生結果を自然なものにすることができる。また、第3の発明によれば、所定の種類の音符の間隔と一致するように基準期間が設定されるので、修正後の演奏データの再生結果をより自然なものにすることができる。
第4の発明によれば、互いに長さが異なる第1間隔と第2間隔とが交互に現れるように複数の基準タイミングが設定されることによって、修正後の演奏データを用いて、跳ねたリズム(3連符または6連符を基調としたリズム)の演奏結果を再生することができる。
第5の発明によれば、基準期間内において基準タイミングに最も近い発音タイミングのみが基準タイミングの位置に修正され、その他の発音タイミングは修正されない。したがって、当該その他の発音タイミングについては、元の(修正前の)演奏データに含まれる意図をそのまま残すことができる。
第6の発明によれば、発音タイミングを修正することによって、修正された発音タイミングが、その前の発音タイミングに対応する消音タイミングよりも前に位置することを防止することができる。これによって、ある発音タイミングが、その前の発音タイミングに対応する消音タイミングよりも前に位置するという、不正確な演奏データが生成されることを防止することができる。
また、第7の発明によれば、修正された発音タイミングに対応する消音タイミングを修正することによって、当該発音タイミングに係る音の長さを修正前後で一定とすることができる。また、上記消音タイミングを修正することによって、当該消音タイミングが、修正された発音タイミングの次の発音タイミングよりも後に位置するという問題が生じるおそれがあるが、第7の発明によれば、この問題を防止することができる。
ここで、演奏データにより表される複数の発音タイミング間の間隔が修正前と修正後とで変化してしまうと、修正後の演奏内容に対してユーザが不自然さを感じるおそれがある。これに対して、第8の発明によれば、ある基準期間に存在する発音タイミングが修正された場合であっても、当該基準期間内の発音タイミング同士の時間間隔は維持される。したがって、基準期間内の1つの発音タイミングのみを移動させることに起因する修正後の演奏データにより表される演奏内容の不自然さを緩和することができる。
また、第9の発明によれば、ある基準期間に存在する発音タイミングが修正された場合であっても、当該基準期間内の発音タイミング同士の時間間隔の比率は維持されるので、上記第8の発明と同様、修正後の演奏データにより表される演奏内容の不自然さを緩和することができる。
第10の発明によれば、入力された演奏データを修正して、修正された演奏結果を再生することができる。これによれば、例えば、ユーザが演奏した演奏結果を修正し、修正後の演奏結果をユーザに聞かせることも可能である。
(ゲームシステムの全体構成)
図1を参照して、本発明の一実施形態に係る楽曲修正装置の一例であるゲーム装置を含むゲームシステムについて説明する。図1は、ゲームシステムの外観図である。以下、据置型のゲーム装置およびゲームプログラムを一例にして、本実施形態に係る楽曲修正装置および楽曲修正プログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、コントローラ5、およびマーカ部6を含む。本システムは、コントローラ5を用いたゲーム操作に基づいてゲーム装置3において、楽曲の演奏入力および再生を行う音楽ゲームのためのゲーム処理を実行するものである。
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられ、データの読み取りが可能な情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。なお、ゲームプログラムはゲーム装置3の内部メモリ(不揮発であることが好ましいが揮発性でもよい)に予め記憶されていてもよいし、ゲーム装置3は、ゲーム装置3とネットワークを介して接続される所定のサーバ(または他のゲーム装置)からゲームプログラムをダウンロードして内部メモリに記憶するようにしても構わない。
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
コントローラ5は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与える入力装置である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは通信可能に構成されればよく、有線で接続されてもよい。
(ゲーム装置3の内部構成)
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10はシステムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
(コントローラ5の構成)
次に、図3〜図7を参照して、コントローラ5について説明する。図3および図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、他のコントローラ)を接続するために利用される。
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
また、コントローラ5は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
次に、図5および図6を参照して、コントローラ5の内部構造について説明する。図5および図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図7)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
なお、図3〜図6に示したコントローラ5の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられても構わない。
図7は、コントローラ5の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、および加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示す操作ボタンデータを通信部36のマイコン42へ出力する。
撮像情報演算部35は、撮像手段が撮像した画像データを解析し、画像内で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6Rおよび6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6Rおよび6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6Rおよび6L)の位置を算出する。以下では、算出されたマーカの位置を示す座標を「マーカ座標」と呼ぶ。画像処理回路41は、マーカ座標のデータ(マーカ座標データ)を通信部36のマイコン42へ出力する。マーカ座標データは、マイコン42によって操作データとしてゲーム装置3に送信される。マーカ座標はコントローラ5自体の向き(姿勢)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。検出された加速度は、コントローラ5を基準に設定されるXYZ座標系における3次元のベクトル(AX,AY,AZ)として表される。加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(姿勢)や動きに対応して変化するので、ゲーム装置3は加速度データを用いてコントローラ5の向きや動きを算出することができる。
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。
操作部32、撮像情報演算部35、および加速度センサ37からマイコン42へ出力された各データ(操作ボタンデータ、マーカ座標データ、および加速度データ)は、一時的にメモリ43に格納される。これらの各データは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3の無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変換されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいてゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。
上記コントローラ5を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ5によって画面上の任意の位置を指示する操作、および、コントローラ5自体を動かす操作を行うことができる。例えば、後述する音楽演奏ゲームにおいては、プレイヤは、コントローラ5を上から下へ動かす操作によって、ゲーム装置3に音を出力させるための入力(発音入力)を行うことができる。
(ゲーム装置で行われるゲームの概要)
次に、ゲーム装置3で行われるゲームの概要を説明する。本ゲームは、コントローラ5を用いてプレイヤに演奏を行わせ(演奏データを入力させ)、演奏後に演奏結果(演奏データ)を再生するゲームである。また、ゲーム装置3は、演奏結果を再生する際、演奏結果に含まれる発音タイミングを基準のタイミングに修正する処理(クォンタイズ処理)を実行する。
ゲーム装置3は、プレイヤに演奏を行わせる期間中、コントローラ5に対する入力を受け付ける。この期間中、プレイヤは所定の楽器の音を発音するタイミング(発音タイミング)をコントローラ5を用いて入力する。ゲーム装置3は、入力された発音タイミングを逐次記憶することにより、演奏結果を表す演奏データを記憶する。演奏データは、演奏において発音される1以上の音の発音タイミングを表すデータである。演奏データは、発音タイミングに加えて、音の消音タイミング(または音の長さ)、音の高さ、音の大きさ、および音色(音源の種類)等のうちのいくつかを表すものであってもよい。本実施形態では、演奏データは、例えばプレイヤの演奏における入力による発音を示すデータと、そのタイミングを示すデータと、入力されたキーの種類を示すデータとを含む。そして、再生時には発音のタイミングで当該キーの種類に予め対応付けられた音を再生するようにして、演奏された楽曲の再生を行う。また、演奏データは、MIDI(Musical Instrument Digital Interface)形式のデータを用いるようにしてもよい。以上のように、本実施形態においては、プレイヤによって入力された演奏データがゲーム装置3の記憶手段(例えばフラッシュメモリ17)に記憶される。
本実施形態では、演奏データは人によって入力されたデータであるとした。ただし、他の実施形態においては、演奏データは、発音タイミングを表すものであればどのようなものであってもよく、人によって入力されたデータに限らない。
演奏データが記憶された後に、再生の指示があると、ゲーム装置3は、記憶された演奏データを用いて演奏結果を再生する。このとき、ゲーム装置3は、演奏データにより表される発音タイミングを修正する処理を行った後、発音タイミングが修正された演奏データを用いて再生を行う。詳細は後述するが、本実施形態では、演奏データにより表される全ての発音タイミングが常に修正対象となるわけではなく、後述する条件を満たす発音タイミングのみが修正対象となる。以下、図8および図9を参照して、本発明における演奏データ修正処理(演奏データにより表される発音タイミングを修正する処理)の概要について説明する。
(演奏データ修正処理の概要)
図8は、演奏期間中における発音タイミングの一例を示す図である。図8は、楽曲全体の演奏期間のうちの一部を示しており、図8に示す横軸は時間tを示している。また、図8に示す音符51〜58はそれぞれ、時間軸上における発音タイミングを表している。
ゲーム装置3は、演奏データ修正処理において、まず、演奏データ読出ステップを実行する。演奏データ読出ステップでは、ゲーム装置3は、演奏データをゲーム装置3の記憶手段から読み出す。上述のように、本実施形態における演奏データは、プレイヤによって発音タイミングが入力されたデータであって、MIDI形式のデータに替えてもよい。なお、以下では、発音タイミングを「ノートオンタイミング」と呼ぶことがある。
次に、ゲーム装置3は、基準タイミング設定ステップを実行する。基準タイミング設定ステップでは、ゲーム装置3は、楽曲の演奏期間内における複数の基準タイミングを設定する。ここで、基準タイミング(クォンタイズタイミング)とは、修正後の(時間軸上における)位置の基準となるタイミングである。つまり、修正対象となる発音タイミングは、複数の基準タイミングのうちのいずれかのタイミングに修正される。図8においては、タイミングTg1、Tg2、Tg3、Tg4、およびTg5が基準タイミングである。基準タイミングは、例えば所定の種類の音符(4分音符や8分音符や16分音符等)のタイミングとなるように等間隔に設定される。ただし、基準タイミングは必ずしも等間隔に設定される必要はなく(図14参照)、所定の規則に従って設定されればよい。なお、図8は、1拍(4分音符の長さ)を48ティックで表現するものとし、16分音符のタイミングとなるように基準タイミングが設定されている例である。ここで、本実施形態では、時間の単位を、MIDI形式のデータで用いられる「1ティック(tic)」とし、演奏の開始から終了までの時間領域における時点をティック数で表すものとする。また、以下では、基準タイミングのことを「グリッド」と呼ぶことがある。
次に、ゲーム装置3は、基準期間設定ステップを実行する。基準期間設定ステップでは、ゲーム装置3は、基準タイミング毎に基準期間を設定する。基準期間とは、対応する基準タイミングを含むように、1つの基準タイミングにつき1つ設定される期間である。図8においては、期間A1〜A5が基準期間である。すなわち、基準期間A1が基準タイミングTg1に対応し、基準期間A2が基準タイミングTg2に対応し、基準期間A3が基準タイミングTg3に対応し、基準期間A4が基準タイミングTg4に対応し、基準期間A5が基準タイミングTg5に対応している。なお、図8においては、基準タイミングがそれに対応する基準期間の中央に位置するように基準期間が設定されており、具体的には、基準タイミングの前後6ティック分の期間に設定されている。ただし、基準期間は、対応する基準タイミングがその内側に含まれていればどのように設定されてもよい。また、以下では、基準期間のことを「エリア」と呼ぶことがある。
次に、ゲーム装置3は、選択ステップを実行する。選択ステップでは、ゲーム装置3は、基準期間内に含まれる発音タイミングのうち基準タイミングに最も近い発音タイミングを基準タイミング毎に選択する。選択ステップは、修正対象となる発音タイミングを選択するための処理である。具体的に図8の例を用いて説明すると、図8においては、音符51,52,54,57,58で示される発音タイミングが選択される。つまり、基準期間A1,A2,およびA5においては、その内側に1つしか発音タイミングが存在しないので、その内側に存在する発音タイミング(音符51,52,および58)が選択される。また、基準期間A3およびA4においては、その内側に存在する複数の発音タイミングのうち、基準タイミングに最も近い発音タイミング(音符54および57)が選択される。
次に、ゲーム装置3は、修正ステップを実行する。修正ステップでは、ゲーム装置3は、上記選択ステップで選択された発音タイミングを、基準タイミングに一致するよう修正する。図9は、図8に示す発音タイミングが修正された後の状態を示す図である。なお、図9においては、修正が行われた発音タイミングについて、修正前のタイミングを点線および斜線の音符によって表している。図9に示されるように、修正ステップによって、選択された発音タイミング(音符51,52,54,57,58で示される発音タイミング)は、それぞれ直近の基準タイミングの位置に修正される。
本実施形態においては、以上のようにして、演奏データにより表される発音タイミングのうちいくつかの発音タイミングについてタイミングの修正処理(クォンタイズ処理)が行われる。ゲーム装置3は、この修正処理が行われた後の演奏データを用いて演奏結果を再生する。これによって、実際に入力が行われた演奏データにおいては発音タイミングが基準タイミングから多少ずれている場合であっても、再生時には基準タイミングで音が発音されるので、演奏結果が不自然になることを改善することができる。例えば入力操作に慣れていない初心者のプレイヤ等が演奏操作を行う場合には、基準タイミングにうまく合わせて発音タイミングを入力できないことが考えられる。このような場合でも、本実施形態によれば、再生される演奏では基準タイミングで音が発音されるので、再生時には演奏の不自然さが改善され、初心者のプレイヤに対しても「ある程度上手に演奏することができた」との印象を与えることができる。
さらに、本実施形態によれば、全ての発音タイミングに対してタイミングの修正が行われるわけではなく、単一の基準期間内に複数の発音タイミングが存在する場合には、基準タイミングに最も近い発音タイミングを除くその他の発音タイミングについては修正が行われない。そのため、修正後の演奏データを用いて再生が行われても、基準タイミング以外のタイミングで発音が行われることがある。つまり、本実施形態によれば、基準タイミングでしか発音されないわけではなく、基準タイミング以外のタイミングで発音させることも可能である。したがって、本実施形態によれば、基準タイミング以外のタイミングで発音を行う意図を再生結果に反映させることができ、演奏データに本来含まれていた(プレイヤの)意図を示す情報を残すことができる。例えば、演奏操作に慣れたプレイヤが、決められたタイミング(基準タイミング)で発音を行うだけでなく、自分でアレンジを加えてアドリブの演奏操作を行うことが考えられるが、本実施形態によれば、このようなアドリブの演奏操作を反映して演奏結果を再生することができる。例えば、ある基準タイミングに対して複数回の発音を行うようにプレイヤが操作した場合を考える。この場合、修正前の演奏データにおいては、ある基準タイミングの付近に発音タイミングが複数個存在することとなる。従来のクォンタイズ処理であれば、このような演奏データが修正されると、複数回の発音タイミングが基準タイミング1回の発音に修正されてしまう。これに対して、本実施形態によれば、修正後の演奏データにおいても上記複数回の発音タイミングが残され、修正後の演奏データはプレイヤの意図を反映した演奏結果となる。
(ゲーム装置で行われるゲーム処理の詳細)
次に、上述した演奏データ修正処理を用いたゲーム処理の具体例として、ゲーム装置3において実行されるゲーム処理の詳細について説明する。まず、ゲーム装置3における処理において用いられる主なデータについて図10を用いて説明する。図10は、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図10に示すように、ゲーム装置3のメインメモリには、ゲームプログラム60、操作データ61、およびゲーム処理用データ62が記憶される。なお、メインメモリには、図10に示すデータの他、ゲームに用いられる音源のデータや、ゲームに登場する各種オブジェクトの画像データや、オブジェクトの各種パラメータを表すデータ等、ゲーム処理に必要なデータが記憶される。
ゲームプログラム60は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。ゲームプログラム60には、上述した演奏データ修正処理を実行するためのプログラムが含まれている。
操作データ61は、コントローラ5からゲーム装置3へ送信されてくる操作データである。操作データには、各操作ボタン32a〜32iに対する入力状態を表す操作ボタンデータ、前述したマーカ座標を表すマーカ座標データ、および、加速度センサ37によって検出された加速度(加速度ベクトル)を表す加速度データが含まれている。上述したように、コントローラ5からゲーム装置3へ1/200秒に1回の割合で操作データが送信されるので、メインメモリに記憶される操作データはこの割合で更新される。なお、メインメモリには、最新の(最後に取得された)操作データのみが記憶されてもよいし、最新の操作データとともに、過去に取得された操作データが記憶されてもよい。ゲーム装置3は、プレイヤの演奏操作を操作データに基づいて判別する。
ゲーム処理用データ62は、後述するゲーム処理(図12)において用いられるデータである。ゲーム処理用データ62は、演奏データ63、グリッドデータ66、およびエリアデータ67を含む。なお、図10に示すデータの他、ゲーム処理用データ62は、ゲーム処理において用いられる各種データを含む。
演奏データ63は、楽曲の演奏内容を表すデータであり、具体的には、楽曲を構成する各音の発音タイミングを少なくとも表すデータである。本実施形態においては、上述したように演奏データ63は、ノートオンデータ64およびノートオフデータ65を含んでいる。ノートオンデータ64は、ノートオンタイミング、すなわち、楽曲を構成する音の発音タイミングを表す。ノートオフデータ65は、ノートオフタイミング、すなわち、楽曲を構成する音を消音する(発音を停止する)タイミングである消音タイミングを表す。このように、本実施形態では、発音タイミングに加えて消音タイミングをも考慮した演奏データを用いることとし、演奏データ修正処理(後述するステップS2)において、発音タイミングおよび消音タイミングを修正するものとする。以下、図11を参照して、ノートオンタイミングおよびノートオフタイミングについて説明する。
図11は、ノートオンタイミングおよびノートオフタイミングを示す図である。図11において、横軸は時間tを示しており、丸はノートオンタイミングを示し、三角はノートオフタイミングを示している。図11においては、ノートオンタイミングTon1(ティック数=T1)およびそれに対応するノートオフタイミングToff1(ティック数=T2>T1)と、ノートオンタイミングTon2(ティック数=T3>T2)と、ノートオンタイミングTon3(ティック数=T4>T3)およびそれに対応するノートオフタイミングToff3(ティック数=T5>T4)とが設定されている。図11においては、矢印で示される期間が、発音が行われる期間である。図11に示されるように、ノートオンタイミングは、楽曲を構成する各音について設定される。つまり、演奏データ63には、楽曲を構成する音の数と同数のノートオンデータ64が含まれる。一方、図9に示されるように、ノートオフタイミングは、必ずしも全ての音について設定されるわけではない。なお、本実施形態では、ノートオフデータ65が設定されない音については、次の音が発音されるまで発音が継続されるものとする。例えば、図11に示すノートオンタイミングTon2(ティック数=T3)で発音される音は、次の発音タイミング、すなわち、ノートオンタイミングTon3(ティック数=T4)まで発音が継続される。そして、ノートオンタイミングTon3で発音される音が連続して発音される。
なお、本実施形態においては、演奏データ63はMIDI形式のデータ同様に、ノートオンデータ64およびノートオフデータ65は、演奏が開始してからの(演奏開始時点を“0”としたときの)ティック数によってタイミングを表す。なお、ノートオフデータ65は、ノートオフタイミングのティック数を表すものに代えて、音の長さ、すなわち、ノートオンタイミングからノートオフタイミングまでの長さ(ティック数)を表すものであってもよい。また、演奏データ63には、ノートオンデータ64およびノートオフデータ65の他、音の高さ、音の大きさ、音色等を表すデータが含まれていてもよい。
メインメモリに記憶される演奏データ63は、演奏データの入力処理(後述するステップS1)によってゲーム装置3のフラッシュメモリ17に記憶される演奏データが読み出されてメインメモリに記憶されたものである。その後、演奏データ修正処理において演奏データ63の内容(ノートオンデータ64およびノートオフデータ65)が修正されることによって、演奏データ63が修正される。その結果、演奏データ修正処理の完了時には、演奏データ63の内容はノートオンタイミングが修正された内容となる。
グリッドデータ66は、演奏期間を表す時間軸上に設定される1以上の基準タイミング(グリッド)を表すデータである。本実施形態では、グリッドデータ66も上記ノートオンデータ64およびノートオフデータ65と同様、演奏が開始してからのティック数として表現される。グリッドデータ66は、演奏データ修正処理において生成されてメインメモリに記憶される。詳細は後述するが、本実施形態においては、グリッドの設定方法として2種類の設定方法が用意されており、2種類の設定方法のアルゴリズムがゲームプログラム60に格納されているものとする。演奏データ修正処理においては、当該2種類の設定方法のうちいずれか一方がプレイヤによって選択される。
エリアデータ67は、グリッド毎に設定されるエリア(基準期間)を表すデータである。具体的には、エリアデータ67は、エリアの始端のティック数と終端のティック数とを表すデータである。エリアデータ67は、演奏データ修正処理において生成されてメインメモリに記憶される。詳細は後述するが、本実施形態においては、エリアの設定方法としては、上記2種類のグリッドの設定方法と一対一に対応する2種類の設定方法が用意されており、当該2種類の設定方法のアルゴリズムがゲームプログラム60に格納されているものとする。
次に、ゲーム装置3において行われるゲーム処理の詳細を、図12〜図19を用いて説明する。図12は、ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入され、ゲームプログラムが記憶された光ディスク4がゲーム装置3に挿入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図14に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、以下においては、図14に示す処理がCPU10によって実行されるものとして説明するが、当該処理の一部(例えばゲーム画像を生成・表示する処理)はCPU10およびGPU11bの協働動作として実行されてもよい。
ステップS1において、CPU10は、演奏データの入力処理を行う。演奏データの入力処理では、CPU10は、コントローラ5を用いたプレイヤによる演奏操作の入力を受け付けることによって演奏データを作成し、作成された演奏データをフラッシュメモリ17に記憶する。以下、演奏データの入力処理の一例を説明する。
演奏データの入力処理において、CPU10は、楽曲の演奏の開始とともにプレイヤによる演奏操作の受け付けを開始する。演奏される楽曲は、ゲームプログラム60において格納されている楽曲のうちから、プレイヤによって選択されてもよいし、ゲーム装置3によって自動的に決定されてもよい。また、CPU10は、プレイヤによる演奏操作を行いやすくする目的で、楽曲の演奏の開始とともに、伴奏の再生と、演奏タイミングを指示するゲーム画像の表示とを開始する。伴奏とは、プレイヤに演奏させる楽器のパート以外のパートの演奏を指す。また、ゲーム画像としては、例えば、プレイヤに演奏させるパートの楽譜がテレビ2に表示される。さらに、CPU10は、楽譜上における現在の位置を表す画像(マーク等)を楽譜に重ねて表示するようにしてもよい。これによれば、プレイヤは、グリッドに対して正確なタイミングでノートオンを指示しやすくなる。なお、他の実施形態においては、CPU10は、伴奏の再生やゲーム画面の表示を行わなくてもよい。
本実施形態では、演奏操作は、ノートオン(発音)およびノートオフ(消音)を指示する操作であるとする。すなわち、プレイヤは、コントローラ5を用いてノートオンおよびノートオフの入力を行う。ノートオンおよびノートオフの入力方法はどのような方法であってもよいが、例えば、コントローラ5自体を動かす操作や、コントローラ5のボタンを押下する操作によってノートオンおよびノートオフの入力が行うことが考えられる。入力方法の具体例としては、コントローラ5を上下(鉛直方向)に動かす操作をノートオンの入力操作とし、所定のボタン(例えばBボタン32i)を押下する操作をノートオフの入力操作とする例が考えられる。なお、コントローラ5の動きは、コントローラ5からゲーム装置3へ送信される操作データに含まれる加速度データやマーカ座標データを用いて算出することができるので、CPU10は、加速度データおよび/またはマーカ座標データに基づいて、コントローラ5を動かす操作が行われたか否かを判別することができる。また、入力方法の他の具体例としては、所定のボタンを押下する操作をノートオンの入力操作とし、押下した所定のボタンを離す(押下を解除する)操作をノートオフの入力操作とする例が考えられる。なお、本実施形態では、ノートオンおよびノートオフを指示する演奏操作を入力可能であるとするが、他の実施形態においては、ノートオンを指示する演奏操作のみを入力可能としてもよいし、他の情報(音の高さや音の大きさや音色等)を入力可能としてもよい。
楽曲の演奏期間中、CPU10は、上記ノートオンの入力操作が受け付けられたことに応じて、当該入力操作が行われた時点を示すティック数を表すノートオンデータを作成し、演奏データとしてメインメモリに記憶する。また、CPU10は、上記ノートオフの入力操作が受け付けられたことに応じて、当該入力操作が行われた時点を示すティック数を表すノートオフデータを作成し、演奏データとしてメインメモリに記憶する。なお、CPU10は、プレイヤによる入力操作に従ってノートオフタイミングを設定するだけでなく、自動的にノートオフタイミングを設定するようにしてもよい。具体的には、ノートオンから予め定められた所定時間が経過した時点をノートオフタイミングとし、当該時点を表すノートオフデータを自動的に生成してメインメモリに記憶してもよい。
以上のようにして演奏期間中にノートオンデータおよびノートオフデータが作成されることによって、演奏データが作成される。なお、本実施形態においては、ノートオンおよびノートオフのタイミングのみがプレイヤによる演奏操作に従って決定され、音の高さ、音の大きさ、および音色はCPU10によって自動的に決められる。これによって、作成された演奏データは、演奏内容を構成する各音について、ノートオンタイミング、ノートオフタイミング、音の高さ、音の大きさ、および音色等の情報を表すものとなる。本実施形態においては、作成された演奏データ(メインメモリに記憶されている)は、演奏結果を表すセーブデータとしてフラッシュメモリ17に移送されて記憶される。フラッシュメモリ17には、過去に生成された演奏データが保存され、現在までの演奏結果が蓄積されるようにしてもよい。なお、他の実施形態においては、演奏データを記憶するメモリは何でもよく、演奏データはメインメモリに記憶されてもよい。
以上に説明したステップS1の次に、ステップS2の処理が実行される。ステップS2において、CPU10は、演奏データ修正処理を実行する。演奏データ修正処理は、演奏データにより表されるノートオンタイミングを修正する処理である。以下、図13を参照して、演奏データ修正処理について説明する。
図13は、図12に示す演奏データ修正処理(ステップS2)の流れを示すフローチャートである。演奏データ修正処理においては、まずステップS10において、CPU10は、フラッシュメモリ17に記憶されている演奏データを読み出し、メインメモリに記憶する。フラッシュメモリ17に記憶されている演奏データとは、上述した演奏データの入力処理(ステップS1)によって生成されたものである。なお、過去に生成された演奏データがフラッシュメモリ17に複数種類記憶されている場合には、CPU10は、複数種類の演奏データのうちから再生すべき演奏データをプレイヤに選択させるようにしてもよい。ステップS10の次にステップS11の処理が実行される。
ステップS11において、CPU10は、発音タイミングの修正に関して、通常のリズムに基づく修正を行うか否かを判定する。ここで、本実施形態においては、ゲーム装置3は、通常のリズムに基づく修正(第1の修正方法)と、跳ねたリズム(3連符または6連符を基調としたリズム)に基づく修正(第2の修正方法)という2種類の修正が可能である。詳細は後述するが、第1の修正方法と第2の修正方法とでは、グリッドおよびエリアの設定方法が互いに異なっている。本実施形態においては、上記第1および第2の修正方法のうち、いずれの方法を実行するかは、プレイヤによって選択される。すなわち、CPU10は、例えば第1および第2の修正方法のいずれかをプレイヤに選択させるゲーム画像をテレビ2に表示し、いずれか一方を選択する指示入力を受け付ける。プレイヤは、第1および第2の修正方法のいずれか一方を選択する入力をコントローラ5を用いて行う。CPU10は、この入力に従ってステップS11の判定を行う。すなわち、プレイヤが第1の修正方法を選択した場合にはステップS11の判定結果は肯定となり、プレイヤが第2の修正方法を選択した場合にはステップS11の判定結果は否定となる。ステップS11の判定結果が肯定である場合、ステップS12の処理が実行される。一方、ステップS11の判定結果が否定である場合、ステップS13の処理が実行される。
ステップS12において、CPU10は、第1の修正方法に対応する設定方法でグリッドを設定する。このとき、グリッドは、演奏期間を表す時間軸上において、予め定められた等間隔に設定される(図8および図9参照)。グリッドは、典型的には、所定の種類の音符(4分音符や8分音符や16分音符等)のタイミングと一致するように等間隔で設定される。このように、第1の修正方法が選択された場合、以降の処理において、等間隔に設定されたグリッドを用いてノートオンタイミングの修正が行われる。ステップS12で設定された各グリッド(グリッドの位置を示すティック数)を表すデータが、グリッドデータ66としてメインメモリに記憶される。
一方、ステップS13において、CPU10は、第2の修正方法に対応する設定方法でグリッドを設定する。このとき、グリッドは、演奏期間を表す時間軸上において、互いに長さが異なる2種類の間隔が交互に現れるように、不等間隔に設定される。図14は、第2の修正方法を行う場合に設定されるグリッドの一例を示す図である。図14において、タイミングTg1,Tg2,Tg3,Tg4,およびTg5はグリッドであり、期間A1,A2,A3,A4,およびA5はエリアである。なお、図14は、1拍(4分音符の長さ)を48ティックで表現するものとし、6連符を基調としたリズムにおいて設定されるグリッドを示している。第2の修正方法においては、図14に示されるように、グリッドが、2種類の間隔(図14では16ティック間隔と8ティック間隔)が交互に現れるように設定される。なお、2種類の間隔の値は、予め定められている。以上のようにしてステップS13で設定された各グリッドを表すデータが、グリッドデータ66としてメインメモリに記憶される。
なお、本実施形態においては、上述した2種類の設定方法でグリッドが設定されるものとしたが、グリッドの設定方法はどのようなものであってもよい。また、本実施形態においては、ゲーム装置3は、複数種類のグリッド選択方法のうち1つをプレイヤに選択させるものとしたが、他の実施形態においては、CPU10が自動的に選択するようにしてもよい。例えば、楽曲に関する情報(例えばジャンル)がゲームプログラム60において格納されている場合には、当該情報に基づいてグリッド設定方法を選択してもよい。
図13の説明に戻り、上記ステップS12またはS13の後、ステップS14〜S19の処理ループが、設定されたグリッドの回数だけ繰り返し実行される。この処理ループにおいては、グリッドの位置に修正すべきノートオンタイミングが存在するか否かを判定する判定処理が行われ(後述するステップS16)、修正すべきノートオンタイミングがある場合には当該ノートオンタイミングが修正される(後述するステップS18)。上記処理ループにおいては、上記判定処理が各グリッドについて順番に行われることによって、最終的に演奏データ全体の修正が行われることとなる。以下、ステップS14〜S19の処理ループの詳細を説明する。
ステップS14において、CPU10は、演奏期間を表す時間軸上において設定されたグリッドのうち1つを選択する。グリッドの選択は、メインメモリに記憶されているグリッドデータ66により示される1以上のグリッドに対して、演奏期間を表す時間軸上において前から順に行われる。以下では、ステップS14で選択中のグリッドを「選択グリッド」と呼ぶ。なお、選択グリッドを表すデータ(例えば、選択グリッドのティック数を表すデータ)は、グリッドデータ66とは別にメインメモリに記憶される。ステップS14の次にステップS15の処理が実行される。
ステップS15において、CPU10は、選択グリッドに対応するエリアを設定する。ここで、上述した第1の修正方法が行われる場合と第2の修正方法が行われる場合とで、設定されるエリアは異なっている。以下、第1の修正方法が行われる場合と第2の修正方法が行われる場合とに分けてエリアの設定方法の具体例を説明する。
第1の修正方法が行われる場合、エリアは、選択グリッドがそのエリアの中央に位置するように設定される(図8および図9参照)。具体的には、CPU10は、エリアの始端のティック数として、選択グリッドのティック数から所定値を減算したティック数を算出し、エリアの終端のティック数として、選択グリッドのティック数に当該所定値を加算したティック数を算出する。なお、第1の修正方法において、所定の種類の音符のタイミングと一致するようにグリッドが設定される場合、典型的には、エリアは、当該所定の種類の音符の間隔と等しい長さに設定され、より好ましくは、グリッドがエリアの中央に位置するように設定される。
一方、第2の修正方法が行われる場合、エリアは、図14に示されるように、グリッドと次のグリッドとの中間位置が、隣接する2つのエリアの境界となるように設定される。図14の例では、各エリアA1,A2,A3,およびA4は、グリッドを基準として前または後のいずれか一方側に8ティック、他方側に4ティックの幅を有するように設定される。具体的には、CPU10は、選択グリッドとその前のグリッドとの間隔の1/2のティック数を選択グリッドのティック数から減算したティック数を、エリアの始端のティック数として算出する。また、CPU10は、選択グリッドとその次のグリッドとの間隔の1/2のティック数を選択グリッドのティック数に加算したティック数を、エリアの終端のティック数として算出する。
上記ステップS15において算出されたエリアの始端および終端のティック数を表すデータは、エリアデータ67としてメインメモリに記憶される。ステップS15の次にステップS16の処理が実行される。
ステップS16において、CPU10は、ステップS15で設定されたエリア内に発音タイミングが存在するか否かを判定する。ステップS16の判定は、メインメモリに記憶されている演奏データ63およびエリアデータ67を参照して行うことができる。すなわち、演奏データ63に含まれるノートオンデータ64のうち、エリアデータ67により示されるエリア内のティック数を表すノートオンデータ64が存在する場合、ステップS16の判定結果は肯定となる。一方、演奏データ63に含まれるノートオンデータ64のうち、エリアデータ67により示されるエリア内のティック数を表すノートオンデータ64が存在しない場合、ステップS16の判定結果は否定となる。ステップS16の判定結果が肯定である場合、ステップS17の処理が実行される。一方、ステップS16の判定結果が否定である場合、ステップS17およびS18の処理がスキップされて、後述するステップS19の処理が実行される。
ステップS17において、CPU10は、ステップS15で設定されたエリア内に存在するグリッドのうちで、選択グリッドに最も近いノートオンタイミングを選択する。すなわち、CPU10は、演奏データ63に含まれるノートオンデータ64のうち、それ(ノートオンデータ64)により示されるティック数と選択グリッドのティック数との差分の絶対値が最小となるノートオンデータ64を選択する。ステップS17で選択されたノートオンデータ64を表すデータは、選択ノートオンデータとしてノートオンデータ64とは別にメインメモリに記憶される。また、以下では、ステップS17で選択されたノートオンタイミングを、「選択ノートオンタイミング」と呼ぶ。ステップS17の次にステップS18の処理が実行される。
なお、ステップS17において、選択グリッドに最も近いノートオンタイミングが2つ存在する場合(すなわち、選択グリッドから前および後にそれぞれ所定ティック数離れた各位置にノートオンタイミングが存在する場合)、CPU10は、いずれか一方のみを選択する。なお、上記の場合において、選択グリッドの前に存在するノートオンタイミングと後に存在するノートオンタイミングとのいずれを選択するかは、予め定められていてもよいし、ランダムに決定されてもよい。
ステップS18において、CPU10は、タイミング移動処理を実行する。タイミング移動処理は、上記選択ノートオンタイミングを選択グリッドの位置に移動(修正)する処理である。以下、図15を参照して、タイミング移動処理について説明する。
図15は、図13に示すタイミング移動処理(ステップS18)の流れを示すフローチャートである。タイミング移動処理においては、まずステップS21において、CPU10は、選択ノートオンタイミングを前に移動させるか否かを判定する。ステップS21の判定は、選択ノートオンタイミングのティック数と選択グリッドのティック数との大小関係を用いて行うことができる。すなわち、選択ノートオンタイミングのティック数が選択グリッドのティック数よりも大きい場合、選択ノートオンタイミングが選択グリッドよりも後にあるので、選択ノートオンタイミングを前に移動させるべきと判断される。一方、選択ノートオンタイミングのティック数が選択グリッドのティック数よりも小さい場合、選択ノートオンタイミングが選択グリッドよりも前にあるので、選択ノートオンタイミングを後に移動させるべきと判断される。なお、選択ノートオンタイミングのティック数は、メインメモリに記憶されている上記選択ノートオンデータにより知ることができ、選択グリッドのティック数は、ステップS14でメインメモリに記憶された、選択グリッドを表すデータにより知ることができる。ステップS21の判定結果が肯定である場合、ステップS22の処理が実行される。一方、ステップS21の判定結果が否定である場合、後述するステップS25の処理が実行される。
なお、上記ステップS21において、選択ノートオンタイミングのティック数が選択グリッドのティック数と等しい場合、ステップS21の判定結果は肯定としてもよいし否定としてもよい。肯定および否定のいずれと判断しても、選択ノートオンタイミングは移動せず、結果的に同じであるからである。なお、選択ノートオンタイミングのティック数が選択グリッドのティック数と等しい場合には、不要な処理を省略する目的で、CPU10はタイミング移動処理を終了するようにしてもよい。
ステップS22において、CPU10は、選択ノートオンタイミングを前に移動させる。すなわち、CPU10は、選択ノートオンデータにより示されるノートオンデータ64の内容を、選択グリッドのティック数を表すように修正する。これによって、選択ノートオンタイミングが選択グリッドの位置に移動(修正)されたこととなる。ステップS22の次に、ステップS23の処理が実行される。
ここで、ノートオンタイミングを前に移動させる場合には、ノートオンタイミングが他のノートオンタイミングに対応するノートオフタイミングを超えて移動することがある。図16および図17は、選択ノートオンタイミングが前に移動する様子を示す図である。図16においては、あるエリアA内において、ノートオンタイミングTon5(ティック数=T11)およびそれに対応するノートオフタイミングToff5(ティック数=T13>T11)と、ノートオンタイミングTon6(ティック数=T14)およびそれに対応するノートオフタイミングTff6(ティック数=T15>T14)とが設定されている。また、ノートオンタイミングTon6が、選択グリッドTg(ティック数=T12(T11<T12<T13))に最も近い選択ノートオンタイミングである。図16において、選択ノートオンタイミングTon6を選択グリッドTgの位置に移動させると、図17に示されるように、選択ノートオンタイミングTon6はノートオフタイミングToff5を超えて移動することになる。このとき、ノートオンタイミングがその前のノートオフタイミングよりも前に位置してしまい、ノートオンおよびノートオフのタイミングが正確に表現されなくなってしまう。
そこで、本実施形態においては、CPU10は、選択ノートオンタイミングがノートオフタイミングを超えて移動する場合には、図17に示されるように、当該ノートオフタイミング(図17ではノートオフタイミングToff5)を削除する処理を行う。以下、この処理を具体的に説明する。
ステップS23において、CPU10は、選択ノートオンタイミングがノートオフタイミングを超えて移動したか否かを判定する。ステップS23の判定は、選択ノートオンタイミングの1つ前のノートオンタイミングに対応するノートオフタイミングが選択グリッドよりも後であるか否かによって行うことができる。すなわち、当該ノートオフタイミングのティック数が選択グリッドのティック数よりも大きい場合、選択ノートオンタイミングがノートオフタイミングを超えて移動したと判定される。逆に、当該ノートオフタイミングのティック数が選択グリッドのティック数以下である場合、選択ノートオンタイミングがノートオフタイミングを超えて移動していないと判定される。図17の例では、ノートオフタイミングToff5のティック数T13が、選択グリッドTgのティック数T12よりも大きいので、選択ノートオンタイミングがノートオフタイミングを超えて移動したと判定される。なお、当該ノートオフタイミング(のティック数)は、演奏データ63に含まれるノートオフデータ65を参照することにより知ることができる。ステップS23の判定結果が肯定である場合、ステップS24の処理が実行される。一方、ステップS23の判定結果が否定である場合、ステップS24の処理がスキップされ、CPU10はタイミング移動処理を終了する。
ステップS24において、CPU10は、選択ノートオンタイミングがそれを超えて移動したノートオフタイミングを削除する。すなわち、演奏データ63に含まれる、当該ノートオフタイミングを表すノートオフデータ65が削除される。これによって、ステップS22による修正前の選択ノートオンタイミングと修正後の選択ノートオンタイミングとの間に存在するノートオフタイミングが削除される。なお、ここで削除の対象となるノートオフタイミングは、選択ノートオンタイミングに対応しないノートオフタイミング、すなわち、選択ノートオンタイミング以外のノートオンタイミングに対応するノートオフタイミングである。ステップS24の後、CPU10はタイミング移動処理を終了する。
一方、ステップS25において、CPU10は、選択ノートオンタイミングを後に移動させる。すなわち、CPU10は、上記ステップS22と同様、選択ノートオンデータにより示されるノートオンデータ64の内容を、選択グリッドのティック数を表すように修正する。これによって、選択ノートオンタイミングが選択グリッドの位置に移動(修正)されたこととなる。ステップS25の次に、ステップS26の処理が実行される。
ここで、ノートオンタイミングを後に移動させる場合には、当該ノートオフタイミングに対応するノートオフタイミングを超えて移動しないように、ノートオフタイミングをノートオフタイミングと同じ量だけ後に移動させることが考えられる。ただし、上記ノートオフタイミングを後に移動させる場合、当該ノートオフタイミングが次のノートオンタイミングを超えて移動してしまうおそれがある。
図18および図19は、選択ノートオンタイミングが後に移動する様子を示す図である。あるエリアA内において、ノートオンタイミングTon8(ティック数=T21)およびそれに対応するノートオフタイミングToff8(ティック数=T23>T21)と、ノートオンタイミングTon9(ティック数=T24>T23)が設定されている。また、ノートオンタイミングTon8が、選択グリッドTg(ティック数=T22(T21<T22<T23))に最も近い選択ノートオンタイミングである。図18において、選択ノートオンタイミングTon8を選択グリッドTgの位置に移動させ、この移動に応じてノートオフタイミングToff8を選択ノートオンタイミングTon8と同じ量だけ移動させる場合を考える。つまり、ノートオフタイミングToff8の移動後のティック数がT25(=T23+(T22−T21))となるように移動させる場合を考える。この場合、図19に示されるように、ノートオフタイミングTon8は、次のノートオンタイミングToff9を超えて移動することになる。このとき、図17に示した場合と同様、ノートオンタイミングがその前のノートオフタイミングよりも前に位置してしまい、ノートオンおよびノートオフのタイミングが正確に表現されなくなってしまう。
そこで、本実施形態においては、CPU10は、選択ノートオンタイミングの移動に応じて移動するノートオフタイミングが次のノートオンタイミングを超えて移動する場合には、図19に示されるように、当該ノートオフタイミング(図19ではノートオフタイミングToff8)を削除する処理を行う。以下、この処理を具体的に説明する。
ステップS26において、CPU10は、選択ノートオンタイミングに対応するノートオフタイミングが存在するか否かを判定する。ステップS26の判定は、演奏データ63に含まれるノートオフデータ65を参照することにより行うことができる。ステップS26の判定結果が肯定である場合、ステップS27の処理が実行される。一方、ステップS26の判定結果が否定である場合、ステップS27〜S29の処理がスキップされ、CPU10はタイミング移動処理を終了する。
ステップS27において、CPU10は、選択ノートオンタイミングに対応するノートオフタイミングを後に移動させる。すなわち、CPU10は、当該ノートオフタイミングのティック数を、選択ノートオンタイミングの移動量だけ加算し、当該ノートオフタイミングを表すノートオフデータ65の内容を、加算後のティック数を表すように修正する。これによって、上記ノートオフタイミングは、選択ノートオンタイミングの移動量と等しい量だけ後に移動することとなる。なお、上記ノートオフタイミングを選択ノートオンタイミングの移動量と等しい量だけ移動させると、当該ノートオフタイミングがエリア外に移動してしまう場合には、CPU10は当該ノートオフタイミングをエリア内の範囲で移動させる。すなわち、上記の場合、エリアの後端の位置まで上記ノートオフタイミングを移動させる。ステップS27の次にステップS28の処理が実行される。
ステップS28において、CPU10は、選択ノートオンタイミングに対応するノートオフタイミングがノートオンタイミングを超えて移動したか否かを判定する。ステップS28の判定は、上記ノートオフタイミングが、選択ノートオンタイミングの1つ後のノートオンタイミングよりも後であるか否かによって行うことができる。すなわち、上記ノートオフタイミングのティック数が上記ノートオンタイミングのティック数よりも大きい場合、当該ノートオフタイミングが当該ノートオンタイミングを超えて移動したと判定される。逆に、上記ノートオフタイミングのティック数が上記ノートオンタイミングのティック数以下である場合、当該ノートオフタイミングが当該ノートオンタイミングを超えて移動したと判定される。ステップS28の判定結果が肯定である場合、ステップS29の処理が実行される。一方、ステップS28の判定結果が否定である場合、ステップS29の処理がスキップされ、CPU10はタイミング移動処理を終了する。
ステップS29において、CPU10は、ステップS27で移動したノートオフタイミングを削除する。すなわち、演奏データ63に含まれる、当該ノートオフタイミングを表すノートオフデータ65が削除される。これによって、選択ノートオンタイミングに対応するノートオフタイミングが削除される。ステップS29の後、CPU10はタイミング移動処理を終了する。
なお、上記タイミング移動処理においては、選択ノートオンタイミングを前に移動させる場合、それに対応するノートオフタイミングを移動させなかったが、他の実施形態においては、当該ノートオフタイミングを移動させるようにしてもよい。すなわち、選択ノートオンタイミングの移動量と同じ量だけ当該ノートオフタイミングを前に移動させるようにしてもよい。
図13の説明に戻り、ステップS18のタイミング移動処理の次に、ステップS19の処理が実行される。ステップS19において、CPU10は、選択グリッドの次のグリッドが存在するか否かを判定する。具体的には、グリッドデータ66において、選択グリッドよりもティック数が大きいグリッドが存在するか否かを判定する。ステップS19の判定結果が肯定である場合、ステップS14の処理が再度実行される。以降、演奏期間を表す時間軸上において最も後に設定されたグリッドが選択グリッドとなるまで、ステップS14〜S19の処理ループが繰り返し実行される。一方、ステップS19の判定結果が否定である場合、CPU10は演奏データ修正処理を終了する。
以上に説明した演奏データ修正処理によって、各グリッドについて、エリア内に存在する最も近いノートオンタイミングが選択され(ステップS17)、選択されたノートオンタイミングがグリッドの位置に修正される(ステップS18)。そして、ノートオンタイミングの選択および(必要に応じて)修正が演奏期間における最後のグリッドまで行われることによって、演奏データ63全体の修正が行われたこととなる。したがって、演奏データ修正処理の完了後にメインメモリに記憶されている演奏データ63は、修正後の演奏データを表すこととなる。
図12の説明に戻り、ステップS2の演奏データ修正処理の次に、ステップS3の処理が実行される。ステップS3において、CPU10は、ステップS2で修正された演奏データ63をメインメモリから読み出して再生する。すなわち、演奏データ63のノートオンデータ64により表されるノートオンタイミングで発音し、ノートオフデータ65により表されるノートオフタイミングで消音するように、演奏データ63により表される演奏内容を再生する。したがって、ステップS3の再生処理においては、いくつかのノートオンタイミングが修正された演奏内容で、ステップS1で入力された演奏データが再生される。また、再生される音(例えば音の高さおよび/または音色)は、ノートオンタイミングにおいて入力されたキーの種類を示すデータ(演奏データに含まれている)に従って決められる。すなわち、キーの種類と音とを対応付けた情報(例えばテーブル)がメインメモリに記憶されており、CPU10は、ノートオンタイミングで発音される音を、当該情報を参照して決定する。なお、演奏データ63を再生する際、CPU10は、演奏データの入力処理(ステップS1)と同様、演奏データ63により表される演奏内容と共に伴奏を再生するようにしてもよい。ステップS3の次にステップS4の処理が実行される。なお、ステップS2およびステップS3は、ステップS1の直後に限られず、ユーザの指示のあるときに行われるようにしてもよい。
ステップS4において、CPU10は、ゲームを終了するか否かを判定する。ステップS4の判定は、例えば、プレイヤがゲームを終了する指示を行ったか否か等によって行われる。ステップS4の判定結果が否定である場合、ステップS1の処理が再度実行される。以降、ステップS4でゲームを終了すると判定されるまで、ステップS1〜S4の処理ループが繰り返し実行される。すなわち、演奏データの入力処理、修正処理、および再生処理が繰り返し実行される。一方、ステップS4の判定結果が肯定である場合、CPU10は、図12に示すゲーム処理を終了する。以上で、ゲーム処理の説明を終了する。
以上のように、本実施形態におけるゲーム処理によれば、上述した演奏データ修正処理によって演奏データを修正することによって、エリア内においてグリッドに最も近いノートオンタイミングのみがグリッドの位置に修正される。これによって、入力された演奏データにおいてグリッドからずれているノートオンタイミングを修正することができるので、演奏結果の不自然さを改善することができる。また、全てのノートオンタイミングが必ず修正されるというわけではないので、入力された演奏データに含まれている意図を残して演奏結果を再生することができる。
なお、上記ゲーム処理では、演奏データ63がノートオンデータ64およびノートオフデータ65を含んでおり、演奏データ修正処理においてノートオンタイミングおよびノートオフタイミングを修正するものとした。ただし、他の実施形態においては、演奏データ63がノートオフデータ65を含んでいる場合であってもノートオンタイミングのみを修正するようにしてもよい。
また、上記実施形態では、あるエリア内においてグリッドに最近のノートオンタイミングのみを修正し、当該最近のノートオンタイミング以外の他のノートオンタイミング(以下、単に「他のノートオンタイミング」と記載する)については修正(移動)しないこととした。ここで、本発明は、上記他のノートオンタイミングを修正しない処理に限定されるものではなく、他の実施形態においては、ゲーム装置3は、当該他のノートオンタイミングを(グリッドとは異なる位置に)移動させる処理を行ってもよい。以下、上記実施形態の変形例として、上記他のノートオンタイミングを修正する例について説明する。
(第1の変形例)
以下、第1の変形例における処理について、図20および図21を参照して説明する。図20は、あるエリアにおける修正前のノートオンタイミングを示す図である。また、図21は、第1の変形例による修正後のノートオンタイミングを示す図である。
図20においては、あるエリアA内に3つのノートオンタイミングTon31,Ton32,およびTon33が等間隔に存在し、グリッドに最近のノートオンタイミングはノートオンタイミングTon32である。このとき、上記実施形態と同様、ノートオンタイミングTon32は、図21に示されるように、グリッドTgの位置に移動される。第1の変形例ではさらに、CPU10は、他のノートオンタイミングTon31およびTon33を、最近のノートオンタイミングTon32と同じ量だけ同じ方向に移動させる(図21参照)。つまり、最近のノートオンタイミングTon32の移動量をΔT1ティックとすると、他のノートオンタイミングTon31およびTon33は、それぞれ、ΔT1ティックだけ前に移動する。なお、図20および図21においては、最近のノートオンタイミングを前に移動させる場合について説明したが、後に移動させる場合も上記と同様である。
具体的には、CPU10は、図15に示すタイミング移動処理において、上記ステップS22またはS25の後、CPU10は、上記他のノートオンタイミングを、選択ノートオンタイミングと同じ量だけ同じ方向に移動させる処理を実行する。また、第1の変形例において、ノートオンタイミングに対応するノートオフタイミングが設定されている場合には、CPU10は、当該ノートオフタイミングもノートオンタイミングと同じ量だけ同じ方向に移動させるようにしてもよい。なお、エリア内のノートオンタイミングおよびそれに対応するノートオフタイミングを並行移動させる場合には、CPU10は、上述したステップS23,S24,S28,およびS29の処理を実行しなくてもよい。
ここで、演奏データにより表される複数のノートオンタイミング同士の間隔が修正前と修正後とで変化してしまうと、プレイヤが修正後の演奏に対して不自然さを感じるおそれがある。例えば、図20のように3つのノートオンタイミングTon31〜Ton33が等間隔で存在する場合において1つのノートオンタイミングTon32のみが移動すると、3つのノートオンタイミングTon31〜Ton33の間隔が等間隔でなくなってしまうので、プレイヤが修正後の演奏に対して不自然さを感じるおそれがある。これに対して、第1の変形例では、エリア内に含まれるノートオンタイミングのうちで、上記他のノートオンタイミングは、グリッドに最近のノートオンタイミングとの時間間隔を維持するように修正される。これによれば、エリア内におけるノートオンタイミング同士の間隔が変化しないので、修正後の演奏に対してプレイヤが感じる不自然さを無くすことができる。
(第2の変形例)
以下、第2の変形例における処理について、図20および図22を参照して説明する。図22は、第2の変形例による修正後のノートオンタイミングを示す図である。第2の変形例においても第1の変形例と同様、修正前のノートオンタイミングが図20に示す配置である場合を例として説明する。
第2の変形例においても上記実施形態と同様、ノートオンタイミングTon32は、図22に示されるように、グリッドTgの位置に移動される。第2の変形例ではさらに、CPU10は、他のノートオンタイミングTon31およびTon33のうち少なくとも1つを、エリアA内の各ノートオンタイミングTon31〜Ton33の時間間隔の比率を維持するように修正する。図22では、上記時間間隔の比率を維持するようにノートオンタイミングTon31が移動する。つまり、CPU10は、ノートオンタイミングTon31からノートオンタイミングTon32までの間隔と、ノートオンタイミングTon32からノートオンタイミングTon33までの間隔との比率が、修正前の比率(1:1)となるようにノートオンタイミングTon31を移動させる。具体的には、ノートオンタイミングTon31からノートオンタイミングTon32までの間隔が、ノートオンタイミングTon32からノートオンタイミングTon33までの間隔(ΔT2)に等しくなるように、ノートオンタイミングTon31を移動させる。なお、図22ではノートオンタイミングTon31を移動させる場合を例として説明したが、他の実施形態においては、ノートオンタイミングTon33のみを移動させてもよいし、ノートオンタイミングTon31およびTon33の両方を移動させてもよい。例えば、CPU10は、各ノートオンタイミングTon31およびTon33の移動後の位置がエリアA内に収まるように、当該ノートオンタイミングTon31およびTon33の少なくとも一方を移動させるようにしてもよい。
具体的には、CPU10は、図15に示すタイミング移動処理において、上記ステップS22またはS25の後、CPU10は、上記他のノートオンタイミングを、選択グリッドに対応するエリア内に存在する各ノートオンタイミングの時間間隔の比率を維持するように、当該他のノートオンタイミングのうち少なくとも1つを修正する。また、第2の変形例においても第1の変形例と同様、ノートオンタイミングに対応するノートオフタイミングが設定されている場合には、CPU10は、当該ノートオフタイミングをそれに対応するノートオンタイミングと同じ量だけ同じ方向に移動させるようにしてもよい。
以上のように、第2の変形例においては、エリア内に3つ以上のノートオンタイミングが存在する場合、当該エリア内に存在する各ノートオンタイミングの時間間隔の比率を維持するように、グリッドに最近のノートオンタイミング以外のノートオンタイミングのうち少なくとも1つが修正される。これによれば、第1の変形例と同様、エリア内におけるノートオンタイミング同士の間隔が変化しないので、修正後の演奏に対してプレイヤが感じる不自然さを無くすことができる。
(グリッドの設定に関する変形例)
なお、上記実施形態においては、グリッドは、演奏期間の全体に対して単一の規則で設定された。例えば、上述した第1の修正方法においては、グリッドは、演奏期間の全期間において等間隔で設定された。これに対して、他の実施形態においては、演奏期間の全体に対して複数種類のグリッドの設定方法が適用されてもよい。例えば、上記実施形態において、CPU10は、エリア内にノートオンタイミングが所定個数以上存在する場合に、当該エリア内に複数個のサブグリッドを設定し、サブグリッドを含むサブエリアをサブグリッド毎に設定してもよい。このとき、CPU10は、グリッドおよびエリアの場合と同様、サブエリア内に含まれるノートオンタイミングのうちサブグリッドに最も近いノートオンタイミングを選択する。そして、選択されたノートオンタイミングをサブグリッドに位置するように修正する。これによれば、エリア内に多数のノートオンタイミングがある場合であっても、各ノートオンタイミングを適切なタイミングに修正することができるとともに、エリア内に複数のノートオンタイミングを残すことができる。
(エリアの設定に関する変形例)
なお、上記実施形態においては、あるグリッドに対応するエリアと、その次のグリッドに対応するエリアとが隣接するように、エリアが設定された(図8および図14参照)。ここで、他の実施形態においては、あるグリッドに対応するエリアと、その次のグリッドに対応するエリアとは、互いに隣接している必要はなく、これら2つのエリアの間が空いていてもよい。なお、このとき、いずれのエリアに含まれないノートオンタイミングが存在する可能性があり、当該ノートオンタイミングは、グリッドの位置に修正されることがないノートオンタイミングとなる。したがって、演奏期間中の特定の期間内に存在するノートオンタイミングについては修正を行わないようにしたい場合には、当該特定の期間がいずれのグリッドのエリアにも含まれないようにエリアを設定すればよい。例えば、グリッドから所定間隔以上離れた期間が上記特定の期間となるようにエリアを設定すれば、グリッドから上記所定間隔以上離れたノートオンタイミングに対して修正が行われないようにすることができる。
本発明は、演奏データに本来含まれていたユーザの意図を示す情報を残しつつ、リズムを揃えること等を目的として、例えばユーザ(プレイヤ)によって入力された演奏データを修正して再生するゲーム装置やゲームプログラム等として利用することができる。
ゲームシステム1の外観図 ゲーム装置3の機能ブロック図 コントローラ5の外観構成を示す斜視図 コントローラ5の外観構成を示す斜視図 コントローラ5の内部構造を示す図 コントローラ5の内部構造を示す図 コントローラ5の構成を示すブロック図 演奏期間中における発音タイミングの一例を示す図 図8に示す発音タイミングが修正された後の状態を示す図 ゲーム装置3のメインメモリに記憶される主なデータを示す図 ノートオンタイミングおよびノートオフタイミングを示す図 ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャート 図12に示す演奏データ修正処理(ステップS2)の流れを示すフローチャート 第2の修正方法を行う場合に設定されるグリッドの一例を示す図 図13に示すタイミング移動処理(ステップS18)の流れを示すフローチャート 選択ノートオンタイミングが前に移動する様子を示す図 選択ノートオンタイミングが前に移動する様子を示す図 選択ノートオンタイミングが後に移動する様子を示す図 選択ノートオンタイミングが後に移動する様子を示す図 あるエリアにおける修正前のノートオンタイミングを示す図 第1の変形例による修正後のノートオンタイミングを示す図 第2の変形例による修正後のノートオンタイミングを示す図
符号の説明
1 ゲームシステム
2 テレビ
3 ゲーム装置
4 光ディスク
5 コントローラ
10 CPU
11c GPU
11e 内部メインメモリ
12 外部メインメモリ
51〜58 音符
60 ゲームプログラム
63 演奏データ
64 ノートオンデータ
65 ノートオフデータ
66 グリッドデータ
67 エリアデータ

Claims (20)

  1. 楽曲を構成する音の発音タイミングを修正する楽曲修正装置のコンピュータで実行される楽曲修正プログラムであって、
    楽曲中における発音タイミングを表す演奏データを前記楽曲修正装置の記憶手段から読み出す演奏データ読出ステップと、
    前記楽曲の演奏期間内における複数の基準タイミングを設定する基準タイミング設定ステップと、
    前記基準タイミングを含む基準期間を基準タイミング毎に設定する基準期間設定ステップと、
    前記基準期間内に含まれる発音タイミングのうち前記基準タイミングに最も近い発音タイミングを前記基準タイミング毎に選択する選択ステップと、
    前記選択ステップで選択された発音タイミングを、前記基準タイミングに一致するよう修正する修正ステップと、を前記コンピュータに実行させる楽曲修正プログラム。
  2. 前記基準タイミング設定ステップにおいて、前記コンピュータは、所定の種類の音符を発音するタイミングと一致するように前記複数の基準タイミングを等間隔に設定し、
    前記基準期間設定ステップにおいて、前記コンピュータは、前記基準タイミングに対応する音符の間隔と等しい長さの基準期間を設定する、請求項1に記載の楽曲修正プログラム。
  3. 前記基準期間設定ステップにおいて、前記コンピュータは、前記基準タイミングが前記基準期間の中央に位置するように前記基準期間を設定する、請求項2に記載の楽曲修正プログラム。
  4. 前記基準タイミング設定ステップにおいて、前記コンピュータは、互いに長さが異なる第1間隔と第2間隔とが交互に現れるように前記複数の基準タイミングを設定し、
    前記基準期間設定ステップにおいて、前記コンピュータは、ある基準タイミングと次の基準タイミングとの中間が、隣接する2つの基準期間の境界となるように前記基準期間を設定する、請求項1に記載の楽曲修正プログラム。
  5. 前記選択ステップにおいて、前記コンピュータは、前記基準期間内に含まれる発音タイミングのうち前記基準タイミングに最も近い発音タイミングのみを選択し、
    前記修正ステップにおいて、前記コンピュータは、前記選択ステップで選択された発音タイミングのみを修正する、請求項1に記載の楽曲修正プログラム。
  6. 前記演奏データは、楽曲を構成する音の消音タイミングを表すデータをさらに含み、
    前記修正ステップによる修正前のタイミングと修正後のタイミングとの間に存在する消音タイミングであって、前記選択された発音タイミングの音以外の音の消音タイミングを削除する第1削除ステップを前記コンピュータにさらに実行させる、請求項5に記載の楽曲修正プログラム。
  7. 前記演奏データは、楽曲を構成する音の消音タイミングを表すデータをさらに含み、
    前記選択された発音タイミングに対応する消音タイミングを当該選択された発音タイミングと同じ方向へ同じ量だけ移動させる移動ステップと、
    前記移動ステップにおいて消音タイミングが当該消音タイミングの音以外の音の発音タイミングを超えて移動する場合、当該消音タイミングを削除する第2削除ステップを前記コンピュータにさらに実行させる、請求項5に記載の楽曲修正プログラム。
  8. 前記修正ステップにおいて、前記コンピュータは、前記基準期間内に含まれる発音タイミングのうちで前記選択ステップで選択されなかった発音タイミングを、選択された発音タイミングとの時間間隔を維持するように修正する、請求項1に記載の楽曲修正プログラム。
  9. 前記修正ステップにおいて、前記コンピュータは、前記基準期間内に含まれる発音タイミングのうちで前記選択ステップで選択されなかった発音タイミングが複数存在する場合、当該基準期間内の各発音タイミングの時間間隔の比率を維持するように、当該選択されなかった発音タイミングのうち少なくとも1つを修正する、請求項1に記載の楽曲修正プログラム。
  10. 演奏データを入力して前記記憶手段に記憶させる演奏データ入力ステップと、
    前記修正ステップで発音タイミングが修正された演奏データを前記楽曲修正装置の記憶手段に記憶させる修正データ記憶ステップと、
    前記修正された楽曲データを読み出して楽曲の再生を実行する再生ステップとを前記コンピュータにさらに実行させる、請求項1に記載の楽曲修正プログラム。
  11. 楽曲を構成する音の発音タイミングを修正する楽曲修正装置であって、
    楽曲中における発音タイミングを表す演奏データを前記楽曲修正装置の記憶手段から読み出す演奏データ読出手段と、
    前記楽曲の演奏期間内における複数の基準タイミングを設定する基準タイミング設定手段と、
    前記基準タイミングを含む基準期間を基準タイミング毎に設定する基準期間設定手段と、
    前記基準期間内に含まれる発音タイミングのうち前記基準タイミングに最も近い発音タイミングを前記基準タイミング毎に選択する選択手段と、
    前記選択手段によって選択された発音タイミングを、前記基準タイミングに一致するよう修正する修正手段と、を備える楽曲修正装置。
  12. 前記基準タイミング設定手段は、所定の種類の音符を発音するタイミングと一致するように前記複数の基準タイミングを等間隔に設定し、
    前記基準期間設定手段は、前記基準タイミングに対応する音符の間隔と等しい長さの基準期間を設定する、請求項11に記載の楽曲修正装置。
  13. 前記基準期間設定手段は、前記基準タイミングが前記基準期間の中央に位置するように前記基準期間を設定する、請求項12に記載の楽曲修正装置。
  14. 前記基準タイミング設定手段は、互いに長さが異なる第1間隔と第2間隔とが交互に現れるように前記複数の基準タイミングを設定し、
    前記基準期間設定手段は、ある基準タイミングと次の基準タイミングとの中間が、隣接する2つの基準期間の境界となるように前記基準期間を設定する、請求項11に記載の楽曲修正装置。
  15. 前記選択手段は、前記基準期間内に含まれる発音タイミングのうち前記基準タイミングに最も近い発音タイミングのみを選択し、
    前記修正手段は、前記選択手段で選択された発音タイミングのみを修正する、請求項11に記載の楽曲修正装置。
  16. 前記演奏データは、楽曲を構成する音の消音タイミングを表し、
    前記修正手段による修正前のタイミングと修正後のタイミングとの間に存在する消音タイミングであって、前記選択された発音タイミングの音以外の音の消音タイミングを削除する第1削除手段をさらに備える、請求項15に記載の楽曲修正装置。
  17. 前記演奏データは、楽曲を構成する音の消音タイミングを表し、
    前記選択された発音タイミングに対応する消音タイミングを当該選択された発音タイミングと同じ方向へ同じ量だけ移動させる移動手段と、
    前記移動手段によって消音タイミングが当該消音タイミングの音以外の音の発音タイミングを超えて移動する場合、当該消音タイミングを削除する第2削除手段をさらに備える、請求項15に記載の楽曲修正装置。
  18. 前記修正手段は、前記基準期間内に含まれる発音タイミングのうちで前記選択手段で選択されなかった発音タイミングを、選択された発音タイミングとの時間間隔を維持するように修正する、請求項11に記載の楽曲修正装置。
  19. 前記修正手段は、前記基準期間内に含まれる発音タイミングのうちで前記選択手段で選択されなかった発音タイミングが複数存在する場合、当該基準期間内の各発音タイミングの時間間隔の比率を維持するように、当該選択されなかった発音タイミングのうち少なくとも1つを修正する、請求項11に記載の楽曲修正装置。
  20. 演奏データを入力して前記記憶手段に記憶させる演奏データ入力手段と、
    前記修正手段によって発音タイミングが修正された演奏データを前記楽曲修正装置の記憶手段に記憶させる修正データ記憶手段と、
    前記修正された楽曲データを読み出して楽曲の再生を実行する再生手段とをさらに備える、請求項11に記載の楽曲修正装置。
JP2008030659A 2008-02-12 2008-02-12 楽曲修正プログラムおよび楽曲修正装置 Active JP5121487B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008030659A JP5121487B2 (ja) 2008-02-12 2008-02-12 楽曲修正プログラムおよび楽曲修正装置
US12/076,806 US7781663B2 (en) 2008-02-12 2008-03-24 Storage medium storing musical piece correction program and musical piece correction apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008030659A JP5121487B2 (ja) 2008-02-12 2008-02-12 楽曲修正プログラムおよび楽曲修正装置

Publications (2)

Publication Number Publication Date
JP2009192619A JP2009192619A (ja) 2009-08-27
JP5121487B2 true JP5121487B2 (ja) 2013-01-16

Family

ID=40937763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008030659A Active JP5121487B2 (ja) 2008-02-12 2008-02-12 楽曲修正プログラムおよび楽曲修正装置

Country Status (2)

Country Link
US (1) US7781663B2 (ja)
JP (1) JP5121487B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5121487B2 (ja) * 2008-02-12 2013-01-16 任天堂株式会社 楽曲修正プログラムおよび楽曲修正装置
US20110086704A1 (en) * 2009-10-14 2011-04-14 Jack Daniel Davis Music game system and method of providing same
US9269340B2 (en) * 2011-06-07 2016-02-23 University Of Florida Research Foundation, Incorporated Modular wireless sensor network for musical instruments and user interfaces for use therewith
US9646587B1 (en) * 2016-03-09 2017-05-09 Disney Enterprises, Inc. Rhythm-based musical game for generative group composition
JP6138330B1 (ja) * 2016-11-15 2017-05-31 株式会社gloops 端末装置、端末装置のゲーム実行方法、プログラム、及びプログラム記録媒体

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4993306A (en) * 1988-05-22 1991-02-19 Kawai Musical Inst. Mfg. Co., Ltd. Device for correcting timing of music playing information for use in music auto play device
JP2556170B2 (ja) * 1990-03-30 1996-11-20 ヤマハ株式会社 自動演奏記録装置
US5241125A (en) * 1990-10-31 1993-08-31 Yamaha Corporation Editing apparatus for automatic musical player
JP2591417B2 (ja) * 1993-03-01 1997-03-19 ヤマハ株式会社 自動演奏データ修正装置
JP3336690B2 (ja) * 1993-08-10 2002-10-21 ヤマハ株式会社 演奏データ処理装置
US5629490A (en) * 1993-09-27 1997-05-13 Kabushiki Kaisha Kawai Gakki Seisakusho Piano
JP3119061B2 (ja) * 1993-12-28 2000-12-18 ヤマハ株式会社 自動演奏装置
US5990404A (en) * 1996-01-17 1999-11-23 Yamaha Corporation Performance data editing apparatus
US6307141B1 (en) * 1999-01-25 2001-10-23 Creative Technology Ltd. Method and apparatus for real-time beat modification of audio and music signals
GB9918611D0 (en) * 1999-08-07 1999-10-13 Sibelius Software Ltd Music database searching
US6945784B2 (en) * 2000-03-22 2005-09-20 Namco Holding Corporation Generating a musical part from an electronic music file
JP4165007B2 (ja) * 2000-11-27 2008-10-15 カシオ計算機株式会社 楽音データ補正装置
JP4305045B2 (ja) * 2003-05-13 2009-07-29 ヤマハ株式会社 演奏データ編集装置及びプログラム
US7273978B2 (en) * 2004-05-07 2007-09-25 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Device and method for characterizing a tone signal
US7193148B2 (en) * 2004-10-08 2007-03-20 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for generating an encoded rhythmic pattern
JP4175364B2 (ja) * 2005-12-12 2008-11-05 ヤマハ株式会社 アルペジオ発音装置およびアルペジオ発音を制御するためのプログラムを記録したコンピュータ読み取り可能な媒体
JP4320782B2 (ja) * 2006-03-23 2009-08-26 ヤマハ株式会社 演奏制御装置、およびプログラム
JP5121487B2 (ja) * 2008-02-12 2013-01-16 任天堂株式会社 楽曲修正プログラムおよび楽曲修正装置

Also Published As

Publication number Publication date
US7781663B2 (en) 2010-08-24
JP2009192619A (ja) 2009-08-27
US20090199698A1 (en) 2009-08-13

Similar Documents

Publication Publication Date Title
US20180071636A1 (en) Music game software and input device utilizing a video player
US9199169B2 (en) Computer-readable storage medium and game apparatus
US20090143140A1 (en) Game system
JP4127561B2 (ja) ゲーム装置、操作評価方法、および、プログラム
JP5121487B2 (ja) 楽曲修正プログラムおよび楽曲修正装置
JP2007293042A (ja) 音楽演奏プログラムおよび音楽演奏装置
JP5812663B2 (ja) 音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法
JP2010046471A (ja) ゲーム装置及びゲーム制御方法、ゲームを制御するプログラム、プログラムを記憶したコンピュータ読み取り可能な記録媒体
JP5902919B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、情報処理方法
JPWO2016143907A1 (ja) 楽曲再生システム、データ出力装置、及び楽曲再生方法
JP5441205B2 (ja) 楽曲演奏プログラム、楽曲演奏装置、楽曲演奏方法、および楽曲演奏システム
JP2001215963A (ja) 音楽演奏装置、音楽演奏ゲーム装置及び記録媒体
JP2012237866A (ja) 音楽演奏プログラム、音楽演奏装置、音楽演奏システム、および音楽演奏方法
US7777124B2 (en) Music reproducing program and music reproducing apparatus adjusting tempo based on number of streaming samples
JP5147351B2 (ja) 音楽演奏プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法
JP5702585B2 (ja) 入力判定プログラム、情報処理装置、システム及び情報処理方法
KR20060054678A (ko) 음향에 동기 된 캐릭터 동영상 구현 장치 및 구현 방법
JP5302516B2 (ja) 音再生プログラム、音再生装置、音再生システムおよび音再生方法
JP5667847B2 (ja) 音楽演奏プログラム、音楽演奏装置、音楽演奏方法および音楽演奏システム
JP5345809B2 (ja) 楽器型演奏装置及び楽器演奏システム
JP5784672B2 (ja) 楽曲演奏プログラムおよび楽曲演奏装置
JP6603734B2 (ja) ゲームプログラムおよびゲーム装置
JP2009233088A (ja) 運動支援装置及び運動支援システム
JP5981095B2 (ja) カラオケ装置、端末および本体装置
JP2009080372A (ja) カラオケ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110114

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120927

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121012

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121023

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5121487

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250