(57)【要約】【課題】  演奏データを楽譜の形式で表示または印刷できるように、楽典上の小節の区切りである「小節線データ」を含める場合がある。これは、「前ノリ」や「後ノリ」などの奏法に係るイベントを回避するように、テンポ等から求めた計算上小節線位置とはタイミングが若干ずれる。この演奏データ上の一または複数の小節を指定してゲーム等の背景音楽としてループ再生すると、ゲームと音楽とのタイミングが徐々にずれるという問題が生じる。【解決手段】  小節線データ（小節線データ４２−１，４２−６，４２−１５等）に、実効小節線位置（各小節線データのイベント時刻部４２−ｋａ）と計算上小節線位置との差分Δｔｓを記録した。小節を単位として演奏データをループ再生する場合には、計算上小節線位置の間隔を基準として、ループ区間が決定される。【選択図】  図４
2008250016.tif 000002
【特許請求の範囲】
【請求項１】
楽音の発音および消音を指示するノートイベントデータを記録し、(a)不均等な小節線位置である実効小節線位置と、(b)楽曲のテンポおよび拍子に基づいて計算上で求まる均等な計算上小節線位置とを特定可能な演奏データに基づいて、該演奏データのうち繰り返し再生される区間であるループ区間を決定し該演奏データをループ再生する演奏データ再生装置であって、
ループ開始小節とループ終了小節との指定を受信すると、前記ループ開始小節の開始タイミングに係る第１の実効小節線位置に対応する第１の計算上小節線位置と前記ループ終了小節の終了タイミングに係る第２の実効小節線位置に対応する第２の計算上小節線位置とを認識する計算上小節線位置認識手段と、
前記第１の計算上小節線位置から前記第２の計算上小節線位置までの間隔に等しい間隔を有するループ区間であって、前記第１の実効小節線位置以降に最初に生じるノートオンイベントと同時または該ノートオンイベント以前に再生開始タイミングを有し、前記第２の実効小節線位置以前に最後に終了するノートオフイベントと同時または該ノートオフイベント以降に再生終了タイミングを有するループ区間を決定するループ区間決定手段と
を有することを特徴とする演奏データ再生装置。
【請求項２】
前記演奏データは、前記実効小節線位置を指定するイベントデータである小節線データを含むものであり、
前記各小節線データは、当該小節線データのイベントタイミングと、該イベントタイミングと対応する計算上小節線位置との差分とを有することを特徴とする請求項１記載の演奏データ再生装置。
【請求項３】
前記再生開始タイミングから前記再生終了タイミングまでの範囲で時刻データを繰り返しループさせる時刻データ発生手段と、
前記ノートイベントデータのうちイベントタイミングが前記時刻データに一致するノートイベントデータを、該ノートイベントデータが前記ループ区間に属することを条件として再生する再生手段と
をさらに有することを特徴とする請求項１または２記載の演奏データ再生装置。
【請求項４】
不均等な小節線位置である実効小節線位置を指定する小節線データと楽音の発音または消音を指定するノートイベントデータとを含む演奏データと、該演奏データに適用される時間軸上に定められたループ区間の再生開始タイミングと、前記時間軸上に定められた前記ループ区間の再生終了タイミングと、前記ループ区間の再生対象となる一または複数のループ対象小節であって前記実効小節線位置によって区切られるループ対象小節とに基づいて前記演奏データをループ再生するループ再生方法であって、
前記再生開始タイミングと前記再生終了タイミングとの間の区間で時刻データを繰り返しループさせる時刻データ発生手段と、
前記ノートイベントデータのうちイベントタイミングが前記時刻データに一致するノートイベントデータを、該ノートイベントデータが前記ループ対象小節に属することを条件として再生する再生手段と
を有することを特徴とする演奏データ再生装置。
【請求項５】
音楽データを再生し、前記音楽データに対応する演奏データに従って該演奏データに含まれるイベントデータの内容を表示装置に表示する演奏データ再生装置であって、
前記演奏データは、不均等な小節線位置である実効小節線位置を指定する小節線データを含み、
該実効小節線位置によって区切られる区間を更新単位として、前記表示装置の表示内容を更新する更新手段
を有することを特徴とする演奏データ再生装置。
【請求項６】
不均等な小節線位置である実効小節線位置を指定する小節線データを含む演奏データのデータ構造であって、
前記演奏データに係る楽曲のテンポおよび拍子に基づいて計算上で求まる計算上小節線位置、または前記小節線データにおいて指定される実効小節線位置と該計算上小節線位置との差分を記録したことを特徴とする演奏データのデータ構造。
【請求項７】
(a)不均等な小節線位置である実効小節線位置と、(b)楽曲のテンポおよび拍子に基づいて計算上で求まる計算上小節線位置とを特定可能な演奏データに基づいて、処理装置を用いて該演奏データのうち繰り返し再生される区間であるループ区間を決定するプログラムであって、
ループ開始小節とループ終了小節との指定を受信すると、前記ループ開始小節の開始タイミングに係る第１の実効小節線位置に対応する第１の計算上小節線位置と前記ループ終了小節の終了タイミングに係る第２の実効小節線位置に対応する第２の計算上小節線位置とを認識する計算上小節線位置認識過程と、
前記第１の計算上小節線位置から前記第２の計算上小節線位置までの間隔に等しい間隔を有するループ区間であって、前記第１の実効小節線位置以降に最初に生じるノートオンイベントと同時または該ノートオンイベント以前に再生開始タイミングを有し、前記第２の実効小節線位置以前に最後に終了するノートオフイベントと同時または該ノートオフイベント以降に再生終了タイミングを有するループ区間を決定するループ区間決定過程と
を前記処理装置に実行させることを特徴とするプログラム。
【請求項８】
不均等な小節線位置である実効小節線位置を指定する小節線データと楽音の発音または消音を指定するノートイベントデータとを含む演奏データと、該演奏データに適用される時間軸上に定められたループ区間の再生開始タイミングと、前記時間軸上に定められた前記ループ区間の再生終了タイミングと、前記ループ区間の再生対象となる一または複数のループ対象小節であって前記実効小節線位置によって区切られるループ対象小節とに基づいて、処理装置を用いて前記演奏データをループ再生するプログラムであって、
前記再生開始タイミングと前記再生終了タイミングとの間の区間で時刻データを繰り返しループさせる時刻データ発生過程と、
前記ノートイベントデータのうちイベントタイミングが前記時刻データに一致するノートイベントデータを、該ノートイベントデータが前記ループ対象小節に属することを条件として再生する再生過程と
を前記処理装置に実行させることを特徴とするプログラム。
【請求項９】
音楽データを再生し、前記音楽データに対応する演奏データであって不均等な小節線位置である実効小節線位置を指定する小節線データを含む演奏データに含まれるイベントデータの内容を処理装置を用いて表示装置に表示するプログラムであって、
該実効小節線位置によって区切られる区間を更新単位として、前記表示装置の表示内容を更新する更新過程
を前記処理装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像等と同期して演奏データをループ再生する場合に用いて好適な演奏データ再生装置、演奏データのデータ構造およびプログラムに関する。
【背景技術】
【０００２】
演奏データを楽譜の形式で表示または印刷できるように、小節の区切りである「小節線データ」を演奏データ内に含めておく技術が特許文献１に開示されている。ここで、演奏データの時間軸内における小節線データの位置を決定する方法として、テンポや拍子に基づいて単純に決定する方法が考えられる。例えば、テンポが「１２０」であって「４／４拍子」の楽曲においては、「１」小節の長さが「２秒」になるため、演奏開始タイミングから「２秒」毎に小節線位置を定めることも考えられる。
【０００３】
しかし、実際の演奏は必ずしも正確なタイミングで行われるわけではなく、例えば、楽譜上のタイミングよりも早いタイミングで演奏する「前ノリ」や、楽譜上のタイミングよりも遅いタイミングで演奏する「後ノリ」などの奏法が適宜採られるため、単純に所定時間ごとに小節線位置を定めると、楽譜上では不適切な位置に小節線が表示されることになる。そこで、特許文献２においては、演奏データを解析しながら適切な小節線位置を自動的に決定してゆく技術が開示されている。また、自動的に決定された小節線位置が不適切である場合には、演奏データの作成者のマニュアル操作によって小節線位置を適宜修正することも可能である。何れにしても、このようにして決定された小節線位置は、テンポや拍子に基づいて計算上で求まるタイミングよりも若干ずれたものになり、上述した例（テンポ「１２０」、「４／４拍子」）においては、各小節の長さは正確に「２秒」にはならない場合が生じる。
【０００４】
また、特許文献３には、演奏データを再生しつつ、該演奏データに同期した画面をディスプレイに表示し、再生される演奏データおよび画面に応じた正しいタイミングでユーザがボタンを押下すると、ユーザに得点が加算されてゆくゲームに関する技術が開示されている。
【０００５】
【特許文献１】特開平９−１６１６９号公報
【特許文献２】特開平７−１２９１５８号公報
【特許文献３】特開２００２−２２９５７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、演奏データは単独で再生されるのみならず、演奏データのうち一部の小節のみがアニメーションやゲーム等の背景音楽としてループ再生される場合がある。ここで、演奏データがテンポ「１２０」、「４／４拍子」であるとし、アニメーション等がこれに同期して表示されるようにしておき、演奏データのうち任意の一または複数の小節をループ再生すると、演奏データの各小節の長さが正確に「２秒」にならないことから、誤差が徐々に累積し、アニメーションやゲーム等の表示のタイミングと演奏データの再生タイミングとの間に「ずれ」が生じるようになる。
この発明は上述した事情に鑑みてなされたものであり、ループ区間の先頭に前ノリの音符がある場合でもそれを欠く事なく、テンポに対応した正確な周期で演奏データを確実にループ再生することができる演奏データ再生装置、演奏データのデータ構造およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項１記載の演奏データ再生装置にあっては、楽音の発音および消音を指示するノートイベントデータを記録し、(a)不均等な小節線位置である実効小節線位置と、(b)楽曲のテンポおよび拍子に基づいて計算上で求まる均等な計算上小節線位置とを特定可能な演奏データに基づいて、該演奏データのうち繰り返し再生される区間であるループ区間を決定し該演奏データをループ再生する演奏データ再生装置であって、ループ開始小節（Ａ）とループ終了小節（Ｂ）との指定を受信すると、前記ループ開始小節（Ａ）の開始タイミングに係る第１の実効小節線位置に対応する第１の計算上小節線位置（ｔsa）と前記ループ終了小節（Ｂ）の終了タイミングに係る第２の実効小節線位置に対応する第２の計算上小節線位置（ｔeb）とを認識する計算上小節線位置認識手段（ＳＰ４，ＳＰ１０）と、前記第１の計算上小節線位置（ｔsa）から前記第２の計算上小節線位置（ｔeb）までの間隔に等しい間隔を有するループ区間であって、前記第１の実効小節線位置以降に最初に生じるノートオンイベントと同時または該ノートオンイベント以前に再生開始タイミング（ｔ0）を有し、前記第２の実効小節線位置以前に最後に終了するノートオフイベントと同時または該ノートオフイベント以降に再生終了タイミング（ｔend）を有するループ区間を決定するループ区間決定手段（ＳＰ８，ＳＰ１４）とを有することを特徴とする。
さらに、請求項２記載の構成にあっては、請求項１記載の演奏データ再生装置において、前記演奏データは、前記実効小節線位置を指定するイベントデータである小節線データを含むものであり、前記各小節線データは、当該小節線データのイベントタイミング（イベント時刻部４２−ｋａ）と、該イベントタイミングと対応する計算上小節線位置との差分（Δｔｓ）とを有することを特徴とする。
さらに、請求項３記載の構成にあっては、請求項１または２記載の演奏データ再生装置において、前記再生開始タイミング（ｔ0）から前記再生終了タイミング（ｔend）までの範囲で時刻データ（ｔ）を繰り返しループさせる時刻データ発生手段（ＳＰ１６，ＳＰ３０，クロック回路５）と、前記ノートイベントデータのうちイベントタイミングが前記時刻データ（ｔ）に一致するノートイベントデータを、該ノートイベントデータが前記ループ区間に属することを条件として再生する再生手段（ＳＰ１９，ＳＰ２８）とをさらに有することを特徴とする。
また、請求項４記載の演奏データ再生装置にあっては、不均等な小節線位置である実効小節線位置を指定する小節線データと楽音の発音または消音を指定するノートイベントデータとを含む演奏データと、該演奏データに適用される時間軸上に定められたループ区間の再生開始タイミング（ｔ0）と、前記時間軸上に定められた前記ループ区間の再生終了タイミング（ｔend）と、前記ループ区間の再生対象となる一または複数のループ対象小節であって前記実効小節線位置によって区切られるループ対象小節とに基づいて前記演奏データをループ再生するループ再生方法であって、前記再生開始タイミング（ｔ0）と前記再生終了タイミング（ｔend）との間の区間で時刻データ（ｔ）を繰り返しループさせる時刻データ発生手段（ＳＰ１６，ＳＰ３０，クロック回路５）と、前記ノートイベントデータのうちイベントタイミングが前記時刻データ（ｔ）に一致するノートイベントデータを、該ノートイベントデータが前記ループ対象小節に属することを条件として再生する再生手段（ＳＰ１９，ＳＰ２８）とを有することを特徴とする。
また、請求項５記載の演奏データ再生装置にあっては、音楽データを再生し、前記音楽データに対応する演奏データに従って該演奏データに含まれるイベントデータの内容を表示装置に表示する演奏データ再生装置であって、前記演奏データは、不均等な小節線位置である実効小節線位置を指定する小節線データを含み、該実効小節線位置によって区切られる区間を更新単位として、前記表示装置の表示内容を更新する更新手段（ＳＰ５８）を有することを特徴とする。
また、請求項６記載の演奏データのデータ構造にあっては、不均等な小節線位置である実効小節線位置を指定する小節線データを含む演奏データのデータ構造であって、前記演奏データに係る楽曲のテンポおよび拍子に基づいて計算上で求まる計算上小節線位置、または前記小節線データにおいて指定される実効小節線位置と該計算上小節線位置との差分（Δｔｓ）を記録したことを特徴とする。
また、請求項７記載のプログラムにあっては、(a)不均等な小節線位置である実効小節線位置と、(b)楽曲のテンポおよび拍子に基づいて計算上で求まる計算上小節線位置とを特定可能な演奏データに基づいて、処理装置（６）を用いて該演奏データのうち繰り返し再生される区間であるループ区間を決定するプログラムであって、ループ開始小節（Ａ）とループ終了小節（Ｂ）との指定を受信すると、前記ループ開始小節（Ａ）の開始タイミングに係る第１の実効小節線位置に対応する第１の計算上小節線位置（ｔsa）と前記ループ終了小節（Ｂ）の終了タイミングに係る第２の実効小節線位置に対応する第２の計算上小節線位置（ｔeb）とを認識する計算上小節線位置認識過程（ＳＰ４，ＳＰ１０）と、前記第１の計算上小節線位置（ｔsa）から前記第２の計算上小節線位置（ｔeb）までの間隔に等しい間隔を有するループ区間であって、前記第１の実効小節線位置以降に最初に生じるノートオンイベントと同時または該ノートオンイベント以前に再生開始タイミング（ｔ0）を有し、前記第２の実効小節線位置以前に最後に終了するノートオフイベントと同時または該ノートオフイベント以降に再生終了タイミング（ｔend）を有するループ区間を決定するループ区間決定過程（ＳＰ８，ＳＰ１４）とを前記処理装置（６）に実行させることを特徴とする。
また、請求項８記載のプログラムにあっては、不均等な小節線位置である実効小節線位置を指定する小節線データと楽音の発音または消音を指定するノートイベントデータとを含む演奏データと、該演奏データに適用される時間軸上に定められたループ区間の再生開始タイミング（ｔ0）と、前記時間軸上に定められた前記ループ区間の再生終了タイミング（ｔend）と、前記ループ区間の再生対象となる一または複数のループ対象小節であって前記実効小節線位置によって区切られるループ対象小節とに基づいて、処理装置（６）を用いて前記演奏データをループ再生するプログラムであって、前記再生開始タイミング（ｔ0）と前記再生終了タイミング（ｔend）との間の区間で時刻データ（ｔ）を繰り返しループさせる時刻データ発生過程（ＳＰ１６，ＳＰ３０）と、前記ノートイベントデータのうちイベントタイミングが前記時刻データ（ｔ）に一致するノートイベントデータを、該ノートイベントデータが前記ループ対象小節に属することを条件として再生する再生過程（ＳＰ１９，ＳＰ２８）とを前記処理装置（６）に実行させることを特徴とする。
また、請求項９記載のプログラムにあっては、音楽データを再生し、前記音楽データに対応する演奏データであって不均等な小節線位置である実効小節線位置を指定する小節線データを含む演奏データに含まれるイベントデータの内容を処理装置（６）を用いて表示装置（２）に表示するプログラムであって、該実効小節線位置によって区切られる区間を更新単位として、前記表示装置の表示内容を更新する更新過程（ＳＰ５８）を前記処理装置（６）に実行させることを特徴とする。
【発明の効果】
【０００８】
このように、本発明によれば、実効小節線位置にかかわらず、第１および第２の計算上小節線位置の間隔に等しい間隔を有するループ区間を決定できるから、ループ区間の先頭に前ノリの音符がある場合でもそれを欠く事なく、テンポに対応した正確な周期で演奏データを確実にループ再生することができる。
【発明を実施するための最良の形態】
【０００９】
1．実施例の構成
次に、本発明の一実施例の音楽プレーヤの構成を図１を参照し説明する。音楽プレーヤ１において２はＬＣＤ（液晶表示装置）、４は該ＬＣＤ２を制御するＬＣＤインタフェースである。６はＣＰＵであり、ＲＯＭ１４に記憶されたプログラムに基づいて、システムバス１０を介して各部を制御する。５はクロック回路であり、音楽データの再生の基準タイミングとなる時刻データｔを出力するとともに、ＣＰＵ６に対してタイマ割込みを発生させる。２０は楽音再生部であり、演奏データに基づいてデジタル音声信号（楽音信号）を生成する音源部２２と、ＡＡＣ形式またはＭＰ３形式等の圧縮音声データを非圧縮のデジタル音声信号に変換するデコーダ２４と、音源部２２またはデコーダ２４から出力されたデジタル音声信号にエフェクトを付与するＤＳＰ（Digital Signal Processor）２６等とから構成されている。８はＤＡコンバータであり、楽音再生部２０から出力されたデジタル音声信号をアナログ音声信号に変換する。変換されたアナログ音声信号はサウンドシステム９を介して発音される。１２はＲＡＭであり、ＣＰＵ６のワークメモリとして使用される。また、ＲＡＭ１２は不揮発性のＲＡＭであり、後述する音楽データ等もＲＡＭ１２に記憶される。１６は通信モジュールであり、外部機器との間で、音楽データのダウンロード等の処理を行う。１８は操作部であり、ユーザによって操作される各種ボタン等から構成される。
【００１０】
次に、本実施例の音楽プレーヤの操作パネルの構成を図３を参照し説明する。図３において８１，８２はゲーム用のボタンである。８３はメニューボタンであり、ＬＣＤ２に各種のメニューを表示させるために設けられている。８４，８５は選曲ボタンであり、音楽プレーヤにおいて再生する音楽データを選択する。８６は再生・停止ボタンであり、音楽データの再生および停止を指示するものである。この音楽プレーヤにおいては、メニューボタン８３等を操作することにより、単に音楽データを再生する「再生モード」、または音楽データを用いてゲームを行う「ゲームモード」のうち何れかの動作モードを選択することができる。そして、図３に示すＬＣＤ２の表示画面はゲームモードで動作している場合の表示例を示すものである。この表示画面において１１２，１１４は小節線であり、再生中の音楽データの小節の区切りを示す。９１〜９４は上側操作指示マークであり、ユーザが上側のボタン８１を押下すべきタイミングを表すものである。同様に、１０１〜１０６は下側操作指示マークであり、ユーザが下側のボタン８２を押下すべきタイミングを表すものである。１１０は再生位置カーソルであり、音楽データの現在の再生位置を表す。そして、図示のように、「２」小節分の操作指示マーク９１〜９４，１０１〜１０６が、小節線１１２から画面右端部１１６までの範囲内でＬＣＤ２に表示されることになる。
【００１１】
詳細は後述するが、これら操作指示マーク９１〜９４，１０１〜１０６の表示位置を特定するデータをゲーム制御データという。図３においては、ゲーム制御データの連続する「２」小節、例えば第１小節と第２小節とが表示される。再生位置カーソル１１０は、左端の小節線１１２の位置から右方向に移動することで現在の再生位置を表示する。そして、再生位置カーソル１１０が小節線１１４の位置に到達すると、小節線１１２から小節線１１４の間の第１小節の表示が消去され、代わりに第３小節がその位置に表示される。そして、再生位置カーソル１１０が右端に到達すると、小節線１１４から右端までの第２小節が消去され、代わりに第４小節がその位置に表示され、さらに再生位置カーソル１１０は左端（第３小節の始まり）に移動して、右方向への移動を継続する。このような動作を繰り返すことにより、ＬＣＤ２の表示画面はゲーム制御データの表示を切り替えながら、ユーザに現在の再生位置を示す。ここで、再生位置カーソル１１０が操作指示マーク９１〜９４，１０１〜１０６の位置に達したタイミングにボタン８１，８２のうち対応する側を正確に押下することが、ゲームの目的になる。１２０は得点欄であり、ユーザが現在獲得している得点を表示する。
【００１２】
2．実施例のデータ構成
2．1．音楽データ
次に、本実施例において用いられる各種データについて説明する。本実施例の音楽プレーヤは、音楽データを再生することによって音声信号を出力するものであるが、ここに音楽データには「圧縮音声データ」および「演奏データ」の二種類がある。「圧縮音声データ」とは、例えばＡＡＣ形式またはＭＰ３形式等のデータであり、アナログ信号をサンプリングして得られた非圧縮のＰＣＭデータを所定の方式で圧縮することにより得られるデータである。また、「演奏データ」は、ノートオン、ノートオフ等のイベントと、これらイベントのタイミングを規定するデータとから構成される。ここで、楽音再生部２０における音楽データの再生アルゴリズムを図２を参照し説明する。図２において圧縮音声データ３０および演奏データ３２は、ＲＡＭ１２内に記憶されているものである。圧縮音声データ３０および演奏データ３２は、各々デコーダ２４および音源部２２に供給されることにより、これらに対応する非圧縮のＰＣＭデータがデコーダ２４および音源部２２から出力される。
【００１３】
２６ａ，２６ｂは効果付与部であり、これらＰＣＭデータに対してエフェクト処理を施す。これらエフェクト処理の施された音声信号は、加算部２６ｃにおいて加算され、ＤＡコンバータ８に出力される。なお、効果付与部２６ａ，２６ｂおよび加算部２６ｃは、ＤＳＰ２６において実行されるマイクロプログラムによって実現される。また、音楽データが演奏データである場合には、該演奏データには、小節線イベントが含まれている。これは、楽音を発生させる際には特に用いられるものではないが、演奏データをループ再生する際に、ループ区間を指定するために用いられる。この小節線イベントのイベント時刻は、楽典上の小節線位置に対応するものになる。
【００１４】
ここで、音楽データである演奏データの構造を図４を参照し説明する。図４において４０はヘッダ部であり、曲名、アーティスト名等のテキストデータが記憶される。４２はイベントデータ部であり、複数のイベントデータ４２−１〜４２−ｎによって構成されている。ここで、各イベントデータ４２−ｋ（ｋ＝１〜ｎ）は、イベント時刻部４２−ｋａとイベント部４２−ｋｂとから成る。なお、図４においてはイベントデータ４２−１についてのみ、イベント時刻部４２−１ａとイベント部４２−１ｂとの符号を付している。イベント時刻部４２−ｋａとは、イベント部４２−ｋｂを実行すべきタイミングであるイベント時刻を、当該演奏データの再生開始タイミングを基準とする時間軸において、ミリセカンド単位で表したものである。また、イベント部４２−ｋｂは、楽音の発音を指定するノートオンイベント、楽音の消音を指定するノートオフイベント、および上述した小節線イベント等を指定するものである。
【００１５】
ここで、音楽データに含まれる小節線イベントで表された小節線位置、すなわち楽典上で正しい位置に設定された小節線位置を「実効小節線位置」と呼ぶ。また、対象となるテンポおよび拍子に応じて、計算上で求まる小節線位置というものも考えられる。例えば、テンポ「１２０」、「４／４拍子」を対象として作成されたゲーム制御データにおいては、計算上では「２０００ｍｓｅｃ」間隔で小節線位置が存在すると考えることができる。このように、テンポおよび拍子等に基づいて計算上で求まる小節線位置を「計算上小節線位置」と呼ぶ。
【００１６】
実効小節線位置は、前ノリや後ノリのイベントタイミングを回避しつつ、楽典上で正しい位置に設定されるため、小節線イベントのイベント時刻部４２−ｋａは、計算上小節線位置から前後にずれる場合がある。小節線データのイベント部４２−ｋｂは、該小節線データの識別ＩＤを表す識別ＩＤ部４２−ｋｃと、該小節線データに対応する小節の小節番号を示す小節番号部４２−ｋｄと、該小節線データのイベントタイミング（実効小節線位置）と対応する計算上小節線位置との差分Δｔｓを示す差分表示部４２−ｋｅとから成る。ここで、小節番号部４２−ｋｄと、楽曲上の小節との関係を図７に示す。図示のように、各小節には「１」から始まる昇順の小節番号が付与されることとし、各小節線データの小節番号部４２−ｋｄに記録される「小節番号」は、当該小節線データの直後から始まる小節の小節番号である。
【００１７】
2．2．ゲーム制御データ
ゲーム制御データは、ＬＣＤ２に操作指示マーク９１〜９４，１０１〜１０６および小節線１１２，１１４を表示するとともに、ボタン８１，８２が適切に操作されたか否かを判定するために用いられる。ゲーム制御データは、直接的には「発音」や「エフェクト」等を指示するデータではないが、音楽データである演奏データと同様の形式によってＲＡＭ１２に記憶される。すなわち、ゲーム制御データにおいては、ボタン８１，８２の何れを押下べきかが「ノートオンイベント」の種類によって表される。これらノートオンイベントのタイミングによって押下すべきタイミングが表される。
【００１８】
但し、上述したＬＣＤ２に表示される小節線１１２，１１４は、「計算上小節線位置」に基づいて表示される。従って、例えばある小節において前ノリのノートオンイベントがあった場合は、そのノートオンイベントに対応する操作指示マークは、当該小節に係る小節線１１２，１１４よりも手前の位置に表示されることになる。これにより、ＬＣＤ２上での再生位置カーソル１１０の移動速度を一定にしつつ、前ノリおよび後ノリのイベントデータを確実に表示させることができる。なお、ゲーム制御データのヘッダ部４０には、許容誤差ΔＴが記憶される。ここで、許容誤差ΔＴとは、ボタン８１，８２の実際の押下タイミングがゲーム制御データによって指定された押下タイミング（ノートオンイベントタイミング）に対して取りうる誤差の範囲であり、この誤差の範囲であれば、該押下タイミングは「適切である」と判断されることになる。
【００１９】
3．実施例の動作
次に、本実施例の動作を説明する。なお、この動作はＣＰＵ６の制御の下に実行される。まず、ユーザによって、ゲーム制御データと、ゲームの背景音楽となる音楽データとが選択され、さらにゲーム制御データおよび音楽データにおいてループ再生する最初の小節番号であるループ開始小節番号Ａと、最後の小節番号であるループ終了小節番号Ｂと、ループ回数ＬＣmaxとが指定されたとする。なお、ループ再生する小節が一小節のみであれば、小節番号Ａ，Ｂとして同一の値が指定されることになる。かかる指定が終了した後に、ユーザが所定の再生開始操作を行うと、図５，図６に示すメインルーチンが開始される。
【００２０】
図５において処理がステップＳＰ２に進むと、指定された音楽データの中から、ループ開始小節番号Ａを有する小節線データが検索される。次に、処理がステップＳＰ４に進むと、該小節線データのイベント時刻部４２−ｋａと、差分表示部４２−ｋｅに含まれる差分Δｔｓとに基づいて、該小節線データに対応する計算上小節線位置ｔsaが計算される。次に、処理がステップＳＰ６に進むと、小節番号Ａから小節番号Ｂまでの全ての小節における最終ノートオフイベントタイミングが検索され、ＲＡＭ１２に記憶される。次に、処理がステップＳＰ８に進むと、小節番号Ｂの小節内に存在するノートオフイベントタイミングのうち、最終のノートオフイベントタイミングが検索される。そして、この検索されたタイミングが、ループ区間の再生終了タイミングｔendに設定される。
【００２１】
次に、処理がステップＳＰ１０に進むと、小節番号（Ｂ＋１）の小節線データが検索され、該小節線データのイベント時刻部４２−ｋａと、差分表示部４２−ｋｅとに基づいて、対応する計算上小節線位置ｔebが計算される。次に、処理がステップＳＰ１２に進むと、計算上小節線位置ｔebから再生終了タイミングｔendを減算した値が終端差分Δｔとして計算される。次に、処理がステップＳＰ１４に進むと、計算上小節線位置ｔsaから該終端差分Δｔが減算され、その値が再生開始タイミングｔ0として求められる。
【００２２】
ここで、図４に示した演奏データを用いて、上記ステップＳＰ２〜ＳＰ１４の処理の具体例を説明する。まず、音楽データ内の小節番号Ａに係る小節線データとして、図示の小節線データ４２−６が検索されたとする。このイベント時刻部４２−６ａは「１９８０ｍｓｅｃ」であり、差分Δｔｓは「２０ｍｓｅｃ」であるから、小節番号Ａの計算上小節線位置ｔsaは「２０００ｍｓｅｃ」になる。また、ループ終了小節番号Ｂとしてループ開始小節番号Ａと同一の値が指定されたとすると、小節番号Ｂに係る小節線データとして、小節線データ４２−６が再び検索される。ここで、小節線データ４２−６以降、次の小節線データ４２−１５が現れるまでの区間のうち最終のノートオフイベントは、イベントデータ４２−１４において指定されている。このイベントタイミングが再生終了タイミングｔendに設定されるため、再生終了タイミングｔendは「３６９０ｍｓｅｃ」である。
【００２３】
次に、小節番号（Ｂ＋１）に係る小節線データは、小節線データ４２−１５である。そのイベント時刻部４２−１５ａは「３９７５ｍｓｅｃ」であり、差分Δｔｓは「２５ｍｓｅｃ」であるから、小節番号（Ｂ＋１）の計算上小節線位置ｔebは「４０００ｍｓｅｃ」である。従って、終端差分Δｔ（＝ｔeb−ｔend）は「３１０ｍｓｅｃ」になり、再生開始タイミングｔ0（＝ｔsa−Δｔ）は、「１６９０ｍｓｅｃ」になる。以上の演算により、再生開始タイミングｔ0および再生終了タイミングｔendの差は正確に「２０００ｍｓｅｃ」になる。上述した例では、小節番号Ａ，Ｂを同一小節としたが、ループ区間として複数の小節が指定された場合には、再生開始タイミングｔ0および再生終了タイミングｔendの差は正確に「２０００ｍｓｅｃ×小節数」になる。
【００２４】
図４の例においては、再生対象として指定された小節内の全てのイベントデータ４２−７〜４２−１４のイベントタイミングは、再生開始タイミングｔ0および再生終了タイミングｔendの間に含まれている。しかし、前ノリや後ノリのイベントデータが存在していた場合には、再生対象として指定された小節内の先頭部分のイベントデータが、再生開始タイミングｔ0よりも前になる場合がある。例えば、イベントデータ４２−１４および小節線データ４２−１５のイベント時刻部において仮に「３９９０ｍｓｅｃ」が指定されていたとすると、再生開始タイミングｔ0は「１９９０ｍｓｅｃ」になり、再生開始タイミングｔ0がイベントデータ４２−７のイベントタイミング（１９８０ｍｓｅｃ）よりも遅くなる。かかる場合には、例えば再生開始タイミングｔ0をイベントデータ４２−７のイベントタイミングすなわち「１９８０ｍｓｅｃ」に修正し、イベントデータ４２−１４のイベント処理を「３９８０ｍｓｅｃ」で切り上げるようにしてもよい。当該イベントデータ４２−７のイベント時刻は、再生開始タイミングｔ0すなわち「１９９０ｍｓｅｃ」に等しくなるように修正される。
【００２５】
ここで、本実施例において、差分Δｔｓを小節線データに記録しておく意義について説明しておく。図４に示した例は単純な例であるため、計算上小節線位置は常に「２０００ｍｓｅｃ」の倍数になるから、小節番号部４２−ｋｄの値を用いれば、特に差分Δｔｓを記録せずとも計算上小節線位置を求めることができる。しかし、実際の楽曲においては、曲の途中でテンポが変動し、あるいは不完全小節が存在する等の事情が生じるため、単純な計算では計算上小節線位置を求めることが困難になる。そのために、各小節線データに差分Δｔｓを記録しておくことが望ましいのである。
【００２６】
次に、処理が図６のステップＳＰ１６に進むと、クロック回路５において、ゲーム制御データおよび音楽データの再生の基準タイミングとなる時刻データｔに再生開始タイミングｔ0がセットされ、ループカウント（変数）ＬＣに「０」がセットされ、時刻データｔのカウントが開始される。次に、処理がステップＳＰ１７に進むと、小節番号Ａと小節番号Ａ＋１について、各小節の最終ノートオフイベントまでの操作指示マークと、小節線１１２，１１４とがＬＣＤ２に表示される。
【００２７】
次に、処理がステップＳＰ１８に進むと、図８に示すゲーム関係処理サブルーチンが呼び出される。図８において処理がステップＳＰ５２に進むと、現在の得点等が計算され、得点欄１２０、ミス評価値欄１２２およびミス総数欄１２４の表示が更新される。次に、処理がステップＳＰ５４に進むと、再生位置カーソル１１０の位置が時刻データｔに対応する位置に移動される。次に、処理がステップＳＰ５６に進むと、時刻データｔは小節内の最終ノートオフタイミングに達したか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ５８に進み、当該小節の表示内容が更新される。例えば、ＬＣＤ２にゲーム制御データの第１小節と第２小節とが表示されており、再生位置カーソル１１０が第１小節内の最終ノートオフタイミングに達すると、第１小節内のノートオンイベントに対応する操作指示マークが消去され、代わりに第３小節に対応した操作指示マークが表示されることになる。
【００２８】
ここで、上記第１小節〜第３小節等、ステップＳＰ５８において更新される単位となる「小節」とは、実効小節線位置で区切られた小節である。一方、ＬＣＤ２内の小節線１１２，１１４は、計算上小節線位置に対応している。このため、第３小節に対応した操作指示マークは、必ずしも小節線１１２と小節線１１４との間に表示されるとは限らない。例えば、第３小節内に前ノリのノートオンイベントが存在し、そのイベントタイミングが計算上の第３小節線位置よりも若干前に位置していた場合には、画面右端部１１６より若干左の位置に、対応する操作指示マークが表示されることになる。以上のステップが終了すると、処理はメインルーチン（図６）に戻る。
【００２９】
次に、処理がステップＳＰ１９に進むと、現在の時刻データｔは、イベント有効タイミングｔxa以上であるか否かが判定される。ここで、イベント有効タイミングｔxaとは、ループ開始小節番号Ａの小節線データのイベント時刻部４２−ｋａの値（図４の例では１９８０ｍｓｅｃ）であり、このタイミングよりも早いタイミングのイベントは無視する必要がある。ここで「ＹＥＳ」と判定されると処理はステップＳＰ２０に進み、現在の時刻データｔは、音楽データの何れかのノートイベント（ノートオンまたはノートオフ）のタイミングに一致しているか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ２８に進み、該ノートイベントが音源部２２に送信され、対応する楽音信号が発生または消音される。
【００３０】
次に、処理がステップＳＰ２２に進むと、時刻データｔは再生終了タイミングｔend以上であるか否かが判定される。ここで「ＮＯ」と判定されると、処理はステップＳＰ１８に戻り、ステップＳＰ１８〜ＳＰ２２の処理が繰り返される。その後、時刻データｔが再生終了タイミングｔend以上になると、処理はステップＳＰ２４に進み、ループカウントＬＣが「１」だけインクリメントされる。次に、処理がステップＳＰ２６に進むと、ループカウントＬＣがループ回数ＬＣmax以上であるか否かが判定される。ここで「ＮＯ」と判定されると処理はステップＳＰ３０に進み、クロック回路５においてカウントされている時刻データｔが再生開始タイミングｔ0に戻され、処理はステップＳＰ１８に戻る。このように、再生開始タイミングｔ0から再生終了タイミングｔendに至るまでのノートイベントが繰り返し再生され、ループカウントＬＣがループ回数ＬＣmaxになると、ステップＳＰ２６において「ＹＥＳ」と判定され本ルーチンの処理が終了する。
【００３１】
4．変形例
本発明は上述した実施例に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施例においては、小節番号（Ｂ＋１）の実効小節線位置の直前に位置するノートオフイベントのイベントタイミングをループ区間の再生終了タイミングｔendに設定し、この再生終了タイミングｔendを基準としてループ区間の再生開始タイミングｔ0を求めたが、再生開始タイミングｔ0および再生終了タイミングｔendの決定方法は上述したものに限られない。すなわち、再生開始タイミングｔ0は、ループ開始小節番号Ａ内の最初のノートオンイベントと同一かそれより早いタイミングでよければよく、再生終了タイミングｔendは、ループ終了小節番号Ｂ内の最後のノートオフイベントと同一かそれより遅いタイミングであればよい。かかる条件を満たす限り、再生終了タイミングｔendと再生開始タイミングｔ0との差が計算上の小節長の倍数になるように、これらタイミングｔ0，ｔendを自由に設定してもよい。
【００３２】
(2)また、上記実施例のステップＳＰ１９においては、時刻データｔがイベント有効タイミングｔxaより早い区間に存在するイベントデータの再生を防止したが、上述したようにタイミングｔ0，ｔendを上記実施例以外の方法で設定した場合には、ループ開始小節番号Ａ内の最初のノートオンイベント以前のイベントデータと、ループ終了小節番号Ｂ内の最後のノートオフイベント以降のイベントデータとが共に再生されないように、ステップＳＰ１９の条件を設定するとよい。
【００３３】
(3)上記実施例においては、小節線データ内に該小節線データのイベントタイミング（実効小節線位置）と計算上小節線位置との差分Δｔｓを記録したが、計算上小節線位置との差は必ずしも小節線データ内に記録しておく必要はなく、演奏データ内の他のデータとして記録してもよい。要するに、ＣＰＵ６においてタイミングｔ0，ｔendを決定する際に参照できる態様で記録するのであれば、どのような態様で記録してもよい。また、差分Δｔｓに代えて、対応する「計算上小節線位置そのもの」を演奏データ内に記録しておいてもよい。すなわち、ＣＰＵ６によって計算上小節線位置が認識できる態様で、対応するデータを記録しておけばよい。
【００３４】
(4)上記実施例においては、音楽プレーヤ上で動作するプログラムによってループ区間の決定処理やループ再生処理等を実行したが、このプログラムのみをＣＤ−ＲＯＭ、メモリカード等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施例の音楽プレーヤのハードウエアブロック図である。
【図２】楽音再生部２０におけるアルゴリズムのブロック図である。
【図３】音楽プレーヤの操作パネルの平面図である。
【図４】演奏データのデータ構造図である。
【図５】演奏データ再生ルーチンのフローチャート（１／２）である。
【図６】演奏データ再生ルーチンのフローチャート（２／２）である。
【図７】小節と小節番号との関係を示す図である。
【図８】ゲーム関係処理サブルーチンのフローチャートである。
【符号の説明】
【００３６】
１：音楽プレーヤ、２：ＬＣＤ、４：ＬＣＤインタフェース、５：クロック回路、６：ＣＰＵ（処理装置）、８：ＤＡコンバータ、９：サウンドシステム、１０：システムバス、１２：ＲＡＭ、１４：ＲＯＭ、１６：通信モジュール、１８：操作部、２０：楽音再生部、２２：音源部、２４：デコーダ、２６：ＤＳＰ、２６ａ，２６ｂ：効果付与部、２６ｃ：加算部、３０：圧縮音声データ、３２：演奏データ、４０：ヘッダ部、４２：イベントデータ部、４２−１〜４２−ｎ：イベントデータ、４２−１ａ：イベント時刻部、４２−１ｂ：イベント部、４２−１ｃ：識別ＩＤ部、４２−１ｄ：小節番号部、４２−１ｅ：差分表示部、８１，８２：ゲーム用ボタン、８３：メニューボタン、８４，８５：選曲ボタン、８６：再生・停止ボタン、９１〜９４：上側操作指示マーク、１０１〜１０６：下側操作指示マーク、１１０：再生位置カーソル、１１２，１１４：小節線、１１６：画面右端部、１２０：得点欄、１２２：ミス評価値欄、１２４：ミス総数欄。
【図１】
2008250016.tif 000003
【図２】
2008250016.tif 000004
【図３】
2008250016.tif 000005
【図４】
2008250016.tif 000006
【図５】
2008250016.tif 000007
【図６】
2008250016.tif 000008
【図７】
2008250016.tif 000009
【図８】
2008250016.tif 000010