(57)【特許請求の範囲】
【請求項１】
コンピュータを、
サウンドデータと、前記サウンドデータをループ再生するためのループ位置を示す標準ループエンド位置情報およびループバックする量を示す固定値であるループバック値と、を記憶部から読み出す読出手段、
前記サウンドデータを再生処理して前記標準ループエンド位置に達したか否かを判定する判定手段、
前記コンピュータにおいてループバックできない状態である処理落ちが発生しているか否かを判定し、前記判定手段が前記標準ループエンド位置に達したと判定したときに、前記処理落ちが発生していると判定した場合は、前記ループバック値に応じた量のループバックを実行せず、前記処理落ちが発生していないと判定した場合は前記ループバック値に応じた量のループバックを実行するサウンド再生処理手段として機能させ、
前記サウンドデータは、前記標準ループエンド位置以降に、前記標準ループエンド位置から前記ループバック値の量だけループバックをした位置から始まるサウンドデータの一部と同一のサウンドデータを含み、
前記サウンド再生処理手段は、前記標準ループエンド位置に達したと判定されたが前記処理落ちが発生したと判定されたことによりループバックが実行されていない場合に、ループバックが実行可能なタイミングまで前記サウンドデータの再生処理を継続し、前記処理落ちが発生していない場合に、ループバックが実行可能なタイミングが到来したときに前記ループバック値に応じた量のループバックを実行するサウンド再生プログラム。
【請求項２】
前記サウンド再生処理手段は、前記ループバック値に応じた量のループバックを実行した位置をループエンド位置と設定するとともに、当該ループエンド位置から前記ループバック値に応じた量のループバックを実行したあとの位置をループバック位置として設定し、
前記標準ループエンド位置に達したと判定された場合に、前記標準ループエンド位置から前記ループエンド位置までの前記サウンドデータの再生処理を実行し、前記ループエンド位置から前記ループバック位置のループバックを実行する請求項１記載のサウンド再生プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ノイズを発生させずにサウンドデータのループバック（ループ再生）を行うサウンド再生プログラム、およびこのサウンド再生プログラムを実行するサウンド再生システムに関する。
【背景技術】
【０００２】
従来から、ループスタートアドレスを経由してループエンドアドレスまで順次増加する位相情報を発生する再生装置がある。この再生装置は、ループエンドアドレスに達したと検出された際に、位相情報をループスタートアドレスにループバックして再び位相情報を発生することが知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１６３０７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１のゲームにおいては、ループスタートアドレスとループエンドアドレスは、スタートアドレスからの相対値アドレスとされている。また、再生装置の処理負荷が高くなったことなどによりループエンドアドレスにてループバック処理が行えなかった場合に、ループバックが遅延することがある。このとき、ループスタートアドレスからのループ再生が開始されることで無音状態または音の重複（ノイズ）が生じるなど、滑らかなループ再生が行えないことがあった。
【０００５】
そこで、本発明では、ノイズが発生せずにサウンドデータの滑らかなループ再生を行うことができるサウンド再生プログラムおよびサウンド再生システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の発明によって提供されるサウンド再生プログラムは、コンピュータを、サウンドデータと、前記サウンドデータをループ再生するためのループ位置を示す標準ループエンド位置情報およびループバックする量を示す固定値であるループバック値と、を記憶部から読み出す読出手段、前記サウンドデータを再生処理して前記標準ループエンド位置に達したか否かを判定する判定手段、前記コンピュータにおいてループバックできない状態である処理落ちが発生しているか否かを判定し、前記判定手段が前記標準ループエンド位置に達したと判定したときに、前記処理落ちが発生していると判定した場合は、前記ループバック値に応じた量のループバックを実行せず、前記処理落ちが発生していないと判定した場合は前記ループバック値に応じた量のループバックを実行するサウンド再生処理手段として機能させ、前記サウンドデータは、前記標準ループエンド位置以降に、前記標準ループエンド位置から前記ループバック値の量だけループバックをした位置から始まるサウンドデータの一部と同一のサウンドデータを含み、前記サウンド再生処理手段は、前記標準ループエンド位置に達したと判定されたが前記処理落ちが発生したと判定されたことによりループバックが実行されていない場合に、ループバックが実行可能なタイミングまで前記サウンドデータの再生処理を継続し、前記処理落ちが発生していない場合に、ループバックが実行可能なタイミングが到来したときに前記ループバック値に応じた量のループバックを実行することを特徴とする。
【０００７】
上記第1の発明によって提供されるサウンド再生プログラムにおいて、前記サウンド再生処理手段は、前記ループバック値に応じた量のループバックを実行した位置をループエンド位置と設定するとともに、当該ループエンド位置から前記ループバック値に応じた量のループバックを実行したあとの位置をループバック位置として設定し、前記標準ループエンド位置に達したと判定された場合に、前記標準ループエンド位置から前記ループエンド位置までの前記サウンドデータの再生処理を実行し、前記ループエンド位置から前記ループバック位置のループバックを実行することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ノイズを発生させずにサウンドデータの滑らかなループ再生を行うことができるサウンド再生プログラムおよびサウンド再生システムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係るサウンド再生システム（ゲームシステム）の構成を説明する図である。
【図２】サウンド再生システム（ゲームシステム）に含まれる携帯端末の機能ブロック図である。
【図３】ループ再生を行うサウンドデータの一例を示す図である。
【図４】処理負荷が発生した場合のループ再生を行うサウンドデータの一例を示す図である。
【図５】（Ａ）サウンド再生の実行処理を示すフローチャート、（Ｂ）ループバック判定の実行処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
（実施形態）
図面を参照して、本発明の実施形態であるサウンド再生システムおよびこれを起動させるサウンド再生プログラムについて説明する。なお、本実施形態におけるサウンド再生システムおよびサウンド再生プログラムは、例えばゲームシステムおよびゲームプログラムである。
【００１１】
以下では、サウンド再生システムおよびサウンド再生プログラムを、ゲームシステムおよびゲームプログラムを例として説明する。なお、本発明の構成および各フローチャートの処理手順については、本実施形態に限定されるものではない。
【００１２】
＜サウンド再生システム（ゲームシステム）の説明＞
図１はゲームシステム１の構成を説明する図である。本実施形態のゲームシステム１は、ネットワーク４を介して相互に通信可能なサーバ装置２および携帯端末３で構成される。
【００１３】
携帯端末３は、ゲーム画面が表示されるタッチパネルを備えたスマートフォンであり、ユーザ情報などに基づいてゲームを実行するゲーム装置に相当する。また、携帯端末３は、携帯通信網である３Ｇ／４Ｇ通信回路３１を備えるとともに、無線ＬＡＮ（Ｗｉ−Ｆｉ）通信回路３２を備える。これにより、携帯端末３は、アクセスポイント（不図示）を介してネットワーク４に接続することができる。また、この携帯端末３は、図２に示す各機能を備える。
【００１４】
＜ゲームの説明＞
本実施形態は、携帯端末３で実行されるゲームのＢＧＭなどのサウンドデータ３３０の再生処理に関するが、実施されるゲームの内容は、例えばアクションゲーム、ロールプレイングゲーム、スポーツゲーム、アドベンチャーゲームであり、特に限定されない。
【００１５】
＜携帯端末のハードウェア構成＞
携帯端末３は、上述のゲームを実行するため、図１に示すようにバス３００上に制御部３０、３Ｇ／４Ｇ通信回路３１、Ｗｉ−Ｆｉ通信回路３２、および記憶部３３を備える。
【００１６】
制御部３０は、ＣＰＵ３０Ａ、ＲＯＭ（フラッシュメモリ）３０Ｂ、画像プロセッサ３０Ｃ、ＲＡＭ３０Ｄ、操作部３０Ｅ、および音声プロセッサ３０Ｆを備える。
【００１７】
ＣＰＵ３０Ａは、携帯端末３で実行されるゲームを制御する。
【００１８】
ＲＯＭ３０Ｂには、ゲームプログラムを実行するための基本プログラムが記憶されている。
【００１９】
画像プロセッサ３０Ｃは、ゲーム画面を生成可能なＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：グラフィックス・プロセッシング・ユニット）を備えている。画像プロセッサ３０Ｃには、ビデオＲＡＭ（ＶＲＡＭ）３４が接続されている。ＶＲＡＭ３４には表示部３５が接続されている。
【００２０】
表示部３５は、ディスプレイ（タッチパネル）を備える。画像プロセッサ３０Ｃは、ＣＰＵ３０Ａの指示に従ってゲーム空間を生成する。このゲーム空間を仮想のカメラで撮影した画像および所定のエフェクト画像がゲーム画面としてＶＲＡＭ３４上に描画される。
【００２１】
ＲＡＭ３０Ｄには、ＣＰＵ３０Ａがゲームプログラムを実行する際に使用されるワークエリアが設定される。ワークエリアには、ゲームの進行に伴って再生されるＢＧＭなどのサウンドデータ３３０やゲームの進行に伴って発生する各種パラメータなどが含まれる。
【００２２】
操作部３０Ｅは、タッチパネルを含む。操作部３０Ｅは、ユーザによるタッチパネルへの操作内容（タッチ、フリック等）および操作位置を検出する。操作部３０Ｅは、その操作信号（操作情報）をＣＰＵ３０Ａに送信する。
【００２３】
音声プロセッサ３０Ｆは、ゲーム音声を生成するＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ：デジタル・シグナル・プロセッサ）を備える。音声プロセッサ３０Ｆは、生成したゲームサウンドをＤ／Ａコンバータを含むアンプ３６に送信する。アンプ３６は、このサウンド信号を増幅してスピーカ３７およびイヤホン端子３８に送信する。
【００２４】
３Ｇ／４Ｇ通信回路３１は、携帯電話通信網を介して、音声通話およびデータ通信を行う。データ通信によってゲームプログラムのダウンロードが行われる。また、データ通信によって携帯端末３とサーバ装置２との間で通信が行われることにより、ユーザのゲームスコアなどを携帯端末３からサーバ装置２に送信したり、他のユーザのゲームスコアなどをサーバ装置２から携帯端末３にて受信したりする。
【００２５】
なお、ゲームプログラムは、３Ｇ／４Ｇ通信でダウンロードするのみならず、Ｗｉ−Ｆｉ通信やＵＳＢなどのインタフェース経由で取得することもできる。
【００２６】
Ｗｉ−Ｆｉ通信回路３２は、無線アクセスポイントとの間でＩＥＥＥ８０２．１１ｇ規格の無線通信を行い、サーバ装置２などのネットワーク４上の機器とデータなどの送受信を行う。
【００２７】
記憶部３３は、ハードディスクであり、例えば、サーバ装置２からダウンロードしたゲームプログラムなどが記憶される。このゲームプログラムには、プログラム本体のほか、ゲームの進行に必要なキャラクタ画像およびユーザの識別情報であるユーザＩＤなどのゲームデータ、ＢＧＭおよび効果音などの所定のサンプリング周波数でサンプリングされたサウンドデータ３３０が含まれうる。
【００２８】
図２は、ゲームシステム１に含まれる携帯端末３の機能ブロック図である。
携帯端末３は、記憶部３３に記憶されたゲームプログラムと制御部３０との協働によって同図に示す機能を実現する。すなわち、携帯端末３は、ゲーム画面生成部３００Ａ、描画部３００Ｂ、読出部３００Ｃ、サウンド再生処理部３００Ｄおよび判定部３００Ｅの機能を備える。
【００２９】
＜制御部の説明＞
ゲーム画面生成部３００Ａは、制御部３０、記憶部３３、表示部３５およびゲームプログラムの協働によって実現される。
ゲーム画面生成部３００Ａは、ゲーム空間を仮想のカメラで撮影したゲーム進行画像、ゲーム進行に伴って表示する所定のエフェクト画像およびゲーム進行などのユーザインターフェース（ＵＩ）を、進行するゲームの所定タイミングごと（例えば、１／６０フレームごと）に演算・生成する。この演算結果（描画情報）は、後述する描画部３００Ｂ等に出力される。
【００３０】
描画部３００Ｂは、制御部３０、ＶＲＡＭ３４、表示部３５およびゲームプログラムの協働によって実現される。
描画部３００Ｂは、ゲーム画面生成部３００Ａから入力されるさまざまな描画情報に基づいて、タッチパネル上に表示するためのゲーム画面を描画する。
【００３１】
読出部３００Ｃは、制御部３０、記憶部３３、ＲＡＭ３０Ｄおよびゲームプログラムの協働によって実現される。
読出部３００Ｃは、記憶部３３にあらかじめ記憶されたサウンドデータ３３０および標準ループエンド位置ＬＥ１およびループバック値αを読み出し、ＲＡＭ３０Ｄなどに書き込む。
【００３２】
記憶部３３には、サウンドデータ３３０と、このサウンドデータ３３０をループ再生するための標準ループエンド位置ＬＥ１およびループバック値αが記憶される。
【００３３】
標準ループエンド位置ＬＥ１は、サウンド再生に関する処理がその位置まで達したことを契機にループバック値α分のループバックを実行する位置を示す。
ループバック値αとは、標準ループエンド位置ＬＥ１からどれだけの量のループバックを実行するかを示す固定値であり、例えば時間（サンプリング数）で定義される。
【００３４】
サウンド再生処理部３００Ｄは、制御部３０、記憶部３３、ＲＡＭ３０Ｄおよびゲームプログラムの協働によって実現される。
サウンド再生処理部３００Ｄは、読出部３００Ｃが記憶部３３から読み出したサウンドデータ３３０の再生処理を行う。サウンドデータ３３０は、例えば、ゲーム実行中のＢＧＭ、ゲームのオープニング画面表示中のＢＧＭおよびゲーム進行に伴う効果音などのサウンドデータ３３０である。サウンドデータ３３０の詳細については説明を省略する。
【００３５】
判定部３００Ｅは、制御部３０、記憶部３３、ＲＡＭ３０Ｄおよびゲームプログラムの協働によって実現される。
判定部３００Ｅは、サウンド再生処理部３００Ｄの再生処理が、標準ループエンド位置ＬＥ１に達したか（通過したか）否かを判定する。そして、標準ループエンド位置ＬＥ１に達したと判定した場合は、その情報をサウンド再生処理部３００Ｄなどに送信する。
【００３６】
以下の説明では、標準ループエンド位置ＬＥ１から、ループバック値α分のループバックを行った位置（［標準ループエンド位置ＬＥ１−ループバック値α］）を標準ループバック位置ＬＢ１と言う。なお、この標準ループバック位置ＬＢ１は、記憶部３３に予め記憶されている必要はない。
【００３７】
図３および図４は、サウンドデータ３３０の一例を示す図である。
図３は、ＣＰＵ３０Ａによる各処理が正常に行われている状態におけるループ再生を説明する図である。図４は、ＣＰＵ３０Ａの処理負荷が高くなり（いわゆる処理落ち）、ＣＰＵ３０Ａによるループ再生が正常に行われない状態におけるループ再生を説明する図である。
【００３８】
処理落ちは、例えば、一般的にＣＰＵ３０Ａの処理負荷が高いとされるポリゴン数が多いオブジェクトまたはエフェクトなどをゲーム進行に伴ってゲーム画面に表示させる際に、ＣＰＵ３０Ａ（ゲーム画面生成部３００Ａおよび描画部３００Ｂなど）に負荷がかかり、そのタイミング（フレーム）にて一部の処理が実行できないときに発生する。
【００３９】
なお、本実施形態で説明する正常とは、全ての処理が処理落ちせずに実行できている状態をいう。
【００４０】
図３、図４に示す波形データは、ゲーム進行中に再生されるＢＧＭなどの音声を所定のサンプリングレートでサンプリングされたサウンドデータ３３０である。縦軸は音量（音の大きさ）を示し、横軸は時間（サンプリング数）を示す。
【００４１】
はじめに、図３について説明する。このサウンドデータ３３０は大きく［１］〜［３］の３つの領域に分けられる。
【００４２】
領域［１］のサウンドデータ３３０は、例えばＢＧＭのイントロ部である。
【００４３】
サウンド再生処理部３００Ｄは、サウンドデータ３３０のはじめから再生処理を順次実行し、一度領域［１］のサウンドデータ３３０を再生処理した後は、ループバックを実行してもこの領域［１］を再度再生しない。
【００４４】
領域［２］のサウンドデータ３３０は、例えばＢＧＭのイントロ部以外のＡメロ、Ｂメロ、サビなどのメロディー部である。
【００４５】
サウンド再生処理部３００Ｄは、サウンドデータ３３０のはじめから再生処理を順次実行し、一度領域［１］のサウンドデータ３３０を再生処理した後に続いて領域［２］のサウンドデータ３３０を再生処理する。
【００４６】
そして、標準ループエンド位置ＬＥ１からループバックを実行した後に、この領域［２］をはじめから再度再生する。この領域［２］のサウンドデータ３３０はループバックが実行される度に再生され、例えばゲーム進行中などにおけるＢＧＭを継続して出力することができる。
【００４７】
領域［３］のサウンドデータ３３０は、領域［２］のサウンドデータ３３０の前半部（一部）と同一のデータを有する。ＣＰＵ３０Ａによる各処理が正常に実行されている状態においてループ再生を実行する場合、この領域［３］は、再生処理されない領域のサウンドデータ３３０である。
【００４８】
標準ループエンド位置ＬＥ１およびループバック値αは、サウンドデータ３３０と関連付けて記憶部３３に記憶される。
【００４９】
標準ループエンド位置ＬＥ１は、領域［２］と領域［３］の境界を示し、ループバックを実行する位置である。
本実施形態では、例えば２００００サンプル目に標準ループエンド位置ＬＥ１を設定している。
【００５０】
ループバック値αは、標準ループエンド位置ＬＥ１からループバックをする際に、どれだけの時間（サンプル数）だけループバックするかを示す固定値である。
本実施形態では、ループバック値αに１７０００を設定している。
【００５１】
判定部３００Ｅは、サウンド再生処理部３００Ｄのサウンドデータ３３０の再生処理に並行して、この再生処理が２００００サンプル目の標準ループエンド位置ＬＥ１に達したか（通過したか）否かを判定する。そして、判定部３００Ｅが、２００００サンプル目に達した（通過した）と判定した場合、サウンド再生処理部３００Ｄは、その位置からループバック値αである１７０００サンプル分バックさせた３０００サンプル目（標準ループバック位置ＬＢ１）にループバックする。
【００５２】
すなわち、図３に示すサウンドデータ３３０を用いて、本実施形態においてループ再生を行う場合、領域［１］を再生処理したあとは、領域［２］を繰り返し再生処理する。このとき、標準ループエンド位置ＬＥ１以降の領域［３］は再生処理されない。
【００５３】
なお、一度ループバックを実行したあとに再度ループバックを行う場合は、上記再生処理を繰り返し行う。
【００５４】
つぎに、図４について説明する。
図４は、図３に示すサウンドデータ３３０のループ再生を実行する際に、処理落ちが発生し標準ループエンド位置ＬＥ１におけるループバックができず、標準ループエンド位置ＬＥ１から９９３サンプル遅延した２０９９３サンプル目でループバックが実行されたことを示す図である。
【００５５】
ループエンド位置ＬＥ２は、ＣＰＵ３０Ａの処理落ちなどにより、ループバックが実行できず遅延した位置（２０９９３サンプル）を示す。
【００５６】
サウンド再生処理部３００Ｄは、サウンドデータ３３０の再生処理を行う際に、判定部３００Ｅが標準ループバック位置ＬＢ１（２００００サンプル目）を通過したか否かの判定ができない場合、または標準ループバック位置ＬＢ１（２００００サンプル目）を通過したと判定するがその情報をサウンド再生処理部３００Ｄに伝達することができない場合にループバックが遅延する。
【００５７】
領域［３Ａ］は、領域［３］の一部であって、標準ループエンド位置ＬＥ１からループエンド位置ＬＥ２の間の領域である。
すなわち、この領域［３Ａ］は、ループ再生が遅延してサウンド再生処理３００Ｄがループバックを実行できない場合、サウンド再生処理部３００Ｄはループバックを実行するまでこの領域のサウンドデータ３３０を継続して再生処理する領域である。
【００５８】
なお、領域［３Ａ］のサウンドデータ３３０は、領域［２］のサウンドデータ３３０の前半部と同一の波形を有するサウンドデータ３３０である。
【００５９】
サウンドデータ３３０はこのような構成をしていることにより、標準ループエンド位置ＬＥ１でループバックできず、遅延したループエンド位置ＬＥ２でループバックした場合であっても、標準ループバック位置ＬＢ１でループバックした場合と同じサウンドを出力することが出来る。
【００６０】
また、図４に示すように、ループエンド位置ＬＥ２（２００００サンプル目）からループバック値αである１７０００サンプルだけループバックした位置は３９９３サンプル目となる。本実施形態では、遅延が生じた後ループバックしたこの位置を、ループバック位置ＬＢ２という。
【００６１】
領域［２Ａ］は、領域［２］の一部であって、標準ループバック位置ＬＢ１からループバック位置ＬＢ２の間の領域である。
すなわち、この領域［２Ａ］は、ループバックが遅延したことによってループバック位置がずれた領域（３０００〜３９９３サンプル）である。２０３９９３サンプル目でループバックした場合、サウンド再生処理部３００Ｄはこの領域［２Ａ］のサウンドデータ３３０を再生処理しない。
【００６２】
なお、領域［２Ｂ］は、領域［２］から領域［２Ａ］を除いた領域（３９９３〜２００００サンプル）である。２０３９９３サンプル目でループバックした場合、サウンド再生処理部３００Ｄはこの領域［２Ｂ］のサウンドデータ３３０を再生処理する。
【００６３】
また、領域［３Ｂ］は、領域［３］から［３Ａ］を除いた領域（２０３９９３サンプル以降）である。２０３９９３サンプル目でループバックした場合、サウンド再生処理部３００Ｄはこの領域［３Ｂ］のサウンドデータ３３０を再生処理しない。
【００６４】
すなわち、ＣＰＵ３０Ａの処理落ちが発生しない場合は、サウンド再生処理部３００Ｄは、図３において領域［１→２→２］を順次再生処理する。また、ＣＰＵ３０Ａに処理落ちが発生した場合であっても、サウンド再生処理部３００Ｄは、図４において領域［１→２（２Ａ→２Ｂ）→３Ａ→２Ｂ］を順次再生処理する。
【００６５】
また、領域［３］には、領域［２］の前半部分と同一のサウンドデータ３３０を有しているため、領域［１→２→２］と［１→２（２Ａ→２Ｂ）→３Ａ→２Ｂ］とは、同じ波形のサウンドデータ３３０を処理する。
【００６６】
これにより、ＣＰＵ３０Ａに処理落ちが発生した場合であっても、処理落ちが発生しない場合と同様に滑らかなループ再生を実行することができる。さらには、標準ループエンド位置ＬＥ１以降には、繰り返し再生するサウンドデータの前半部分と同一のサウンドデータのみを有していることにより、滑らかなループ再生を実現しつつサウンドデータの容量を抑えることができる。
【００６７】
なお、一度ループバックを実行したあとに再度ループバックを行う場合は、上記再生処理を繰り返し行う。例えば、一度目のループバックにおいて処理落ちが発生し、ループエンド位置ＬＥ２でループバックを実行したあと、二度目のループバックにおいて処理落ちが発生しなかった場合は、標準ループバックエンド位置ＬＥ１でループバックし、標準ループバック位置ＬＢ１にループバックする。
＜課題生成処理のフロー説明＞
【００６８】
つぎに、図５を参照して、サウンドデータ３３０の再生処理およびループバックの判定処理について説明する。この処理は、進行するゲームの所定タイミングごと（例えば、１／６０フレームごと）に並行して実行される。
【００６９】
まず、図５Ａのサウンドデータ３３０の再生処理について説明する。
サウンド再生処理部３００Ｄは、判定部３００Ｅから、標準ループエンド位置ＬＥ１に達したか（標準ループエンド位置ＬＥ１を通過したか）に関する信号を取得する。すなわち、サウンド再生処理部３００Ｄは、判定部３００Ｅからループバック要求に関する信号（フラグ情報）を取得する（ステップＳ１０１）。
【００７０】
サウンド再生処理部３００Ｄは、ループバック要求信号がない場合は順次サウンドデータ３３０の再生処理を実行し、ループバック要求信号がある場合はループバックを伴う再生処理を実行する（ステップＳ１０２）。
【００７１】
次に、図５Ｂのループバックの判定処理を説明する。
判定部３００Ｅは、標準ループエンド位置ＬＥ１に達したか（標準ループエンド位置ＬＥ１を通過したか）否かを判定する（ステップＳ２０１）。
【００７２】
ステップＳ２０１により、標準ループエンド位置ＬＥ１に達した（標準ループエンド位置ＬＥ１を通過した）と判定した場合（ステップＳ２０１：ＹＥＳ）、現在の位置（サンプル数）からループバック値α分のループバックを実行する信号を送信する（ステップＳ２０２）。
【００７３】
ステップＳ２０１により、標準ループエンド位置ＬＥ１に達していない（標準ループエンド位置ＬＥ１を通過していない）と判定した場合（ステップＳ２０１：ＮＯ）、ループバック処理の要求信号を送信せずにループバック判定処理を終了する。
【００７４】
このように、サウンド再生処理部３００Ｄは、判定部３００Ｅからループバック処理の要求がない限り、サウンドデータ３３０を順次再生処理する。一方、ループバック処理の要求があった場合は、あらかじめ設定されたループバック値α分のループバックを実行し、ループバック位置から順次再生処理を実行する。
【００７５】
すなわち、ＣＰＵ３０Ａに処理落ちが発生してサウンド再生処理部３００Ｄがループバック判定要求処理を実行できない場合は、たとえ標準ループバック位置ＬＢ１に達している場合であってループバックせずに順次サウンドデータ３３０の再生処理を実行する。
【００７６】
その後、ＣＰＵ３０Ａの処理落ちが解消し正常にループバック要求処理を実行できるようになった場合、サウンド再生処理部３００Ｄはあらかじめ設定されたループバック値α分のループバックを実行し、ループバック位置から順次再生処理を実行する。
【００７７】
これにより、サウンド再生処理部３００Ｄは、ノイズが発生せずにサウンドデータの滑らかなループ再生を行うことができる。
【００７８】
（変形例）
なお、本実施形態では、サウンド再生処理部３００Ｄは、処理落ちによりループバック判定処理ができない場合にループバックを実行しないとした。
【００７９】
しかし、これに代わって、サウンド再生処理部３００Ｄは、現時点または直近のＣＰＵ３０Ａの処理負荷を判定または予測し、処理負荷が高いと判定した場合にループバックを実行しないよう制御してもよい。この場合、ループバック判定処理の優先度を他の処理より低くしておくことで、ループバック判定処理を実行しないようにすることができる。
【００８０】
また、サウンドデータ３３０の種類および長さなどは図３および図４に示す波形データに限られない。
【００８１】
また、本実施形態では、一度目のループバックにおいて処理落ちが発生し、ループエンド位置ＬＥ２でループバックを実行したあと、二度目のループバックにおいて処理落ちが発生しなかった場合は、標準ループバックエンド位置ＬＥ１でループバックし、ループバック位置ＬＢ１にループバックするとした。
【００８２】
しかし、これに代わって、一度目のループバックにおいて処理落ちが発生し、ループエンド位置ＬＥ２でループバックを実行したあとは、それ以降の標準となるループバックの位置を、標準ループバック位置ＬＢ１の位置からループバック位置ＬＢ２の位置に書き換え（更新し）ても良い。
【００８３】
この場合、一度目のループバックにおいて処理落ちが発生し、ループエンド位置ＬＥ２でループバックを実行したあと、二度目のループバックにおいて処理落ちが発生しなかった場合であっても、ループバックエンド位置ＬＥ２の位置でループバックし、ループバック位置ＬＢ２にループバックする。
【００８４】
すなわち、サウンド再生プログラムは、コンピュータを、サウンドデータと、サウンドデータをループ再生するためのループ位置を示す標準ループエンド位置情報およびループバックする量を示す固定値であるループバック値と、を記憶部から読み出す読出手段、サウンドデータを再生処理して標準ループエンド位置に達したか否かを判定する判定手段、判定手段が標準ループエンド位置に達したと判定したときに、ループバック値に応じた量のループバックを実行するサウンド再生処理手段として機能させ、サウンドデータは、標準ループエンド位置以降に、標準ループエンド位置からループバック値の量だけループバックをした位置（標準ループバック位置ＬＢ１）から始まるサウンドデータの一部と同一のサウンドデータを含み、サウンド再生処理手段は、標準ループエンド位置においてループバックが実行できない場合にループバックが実行可能なタイミングまで前記サウンドデータの再生処理を継続し、ループバックが実行可能なタイミングが到来したときにループバック値に応じた量のループバックを実行し、標準ループエンド位置を補正する（ループバックを実行した位置を標準ループエンド位置として書換える）ことを特徴とする。
【符号の説明】
【００８５】
１  ゲームシステム
３  携帯端末
３００Ａ  ゲーム画面生成部
３００Ｂ  描画部
３００Ｃ  読出部
３００Ｄ  サウンド再生処理部
３００Ｅ  判定部
３３０  サウンドデータ
ＬＥ１  標準ループエンド位置
ＬＥ２  ループエンド位置
ＬＢ１  標準ループバック位置
ＬＢ２  ループバック位置
α  ループバック値
【要約】      （修正有）【課題】ノイズが発生せずに滑らかなサウンドデータのループ再生を行うことができるサウンド再生プログラムおよびサウンド再生システムを提供する。【解決手段】サウンドデータは、標準ループエンド位置ＬＥ１以降に、標準ループエンド位置ＬＥ１からループバック値αの量だけループバックをした位置（標準ループバック位置ＬＢ１）から始まるサウンドデータの一部と同一のサウンドデータを含む。サウンドデータを再生処理して標準ループエンド位置ＬＥ１に達した際に、ループバック値αに応じた量のループバック再生処理を実行する。処理落ちなどにより、標準ループエンド位置ＬＥ１においてループバック実行できない場合にループバックが実行可能なタイミングまでサウンドデータの再生処理を継続し、ループバックが実行可能なタイミングが到来した際にループバック値αに応じた量のループバックを実行させる。【選択図】図４【図１】
0005898355.tif 000002
【図２】
0005898355.tif 000003
【図３】
0005898355.tif 000004
【図４】
0005898355.tif 000005
【図５】
0005898355.tif 000006