以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、通信システムに本発明を適用した場合の実施形態である。
[1.通信システムの構成等]
始めに、本実施形態に係る通信システムSの概要構成等について、図1を用いて説明する。
図1は、本実施形態に係る通信システムSの概要構成の一例を示すブロック図である。
図1に示すように、通信システムSは、運動用楽曲作成装置の一例としての楽曲配信サーバ1と、端末装置の一例としての複数のユーザPC(Personal Computer)2と、各ユーザPC2にそれぞれ接続可能な複数の携帯音楽プレーヤー3と、を含んで構成されている。
楽曲配信サーバ1とユーザPC2とは、通信手段の一例としてのネットワークNWを介して、例えば、通信プロトコルにTCP/IP(Transmission Control Protocol/Internet Protocol)等を用いて相互にデータの送受信が可能である。なお、ネットワークNWは、例えば、インターネット、専用通信回線(例えば、CATV(Community Antenna Television)回線)、移動体通信網(基地局等を含む)、及びゲートウェイ等により構築されている。
また、ユーザPC2と携帯音楽プレーヤー3とは、例えば、USB(Universal Serial Bus)やIEEE(The Institute of Electrical and Electronics Engineers, Inc.)1394等のバス規格に対応したケーブル等を介して、または、Bluetooth(IEEE 802.15.1)等の無線通信により、相互にデータの送受信が可能である。なお、ユーザPC2と携帯音楽プレーヤー3との間におけるデータの授受は、メモリカード等の記録媒体を介して行われるようにしても良い。
このような構成の通信システムSにおいて、楽曲配信サーバ1は、ユーザPC2からの要求等に応じ、運動用楽曲の一例として、ユーザがジョギングしている最中等に聴く楽曲のデータであるジョギング用楽曲データを作成し、このジョギング用楽曲データをユーザPC2に送信する。
ユーザPC2にダウンロードされたジョギング用楽曲データは、ユーザ操作等により、有線、無線または記録媒体を介して携帯音楽プレーヤー3に転送される。そして、ユーザは、携帯音楽プレーヤー3にジョギング用楽曲データを再生させることにより、ジョギング用の楽曲を聴きながらジョギング等を行う。
詳細は後述するが、このジョギング用楽曲データは、複数の楽曲のデータにより構成されており、ユーザの目標等に合うトレーニングコースに対応した演奏時間及びテンポで各楽曲が再生されるように作成されている。また、本実施形態において、このジョギング用楽曲データは、各楽曲の主要部(前奏、後奏等を除いた部分)が連続するメドレーとして再生されるように構成されている。
また、ジョギング用楽曲データがダウンロードされると、そのジョギング用楽曲データの購入代金(ジョギング用楽曲データを構成する楽曲やその曲数等に応じた著作権料を含む)がシステム側からユーザに対して請求される。
なお、ユーザPC2は、例えば、一般的な構成のパーソナルコンピュータを用いることが可能であり、また、携帯音楽プレーヤー3も、例えば、一般的な構成の携帯用のデジタルオーディオプレーヤーを用いることができる。
[2.楽曲配信サーバの構成及び機能等]
[2.1 楽曲配信サーバの構成]
次に、楽曲配信サーバ1の構成及び機能等について説明するが、始めに、楽曲配信サーバ1の構成について、図2を用いて説明する。
図2は、本実施形態に係る楽曲配信サーバ1の概要構成の一例を示すブロック図である。
図2に示すように、楽曲配信サーバ1は、CPU(Central Processing Unit)17、ROM(Read Only Memory)18、RAM(Random Access Memory)19等を備える制御部11と、各種データ及びプログラムを記憶する運動用楽曲記憶手段の一例としての記憶部12(例えば、ハードディスクドライブ等)と、ネットワークNWに接続して、ユーザPC2等との通信状態を制御する通信部13と、WAVフォーマット(RIFF(Resource Interchange File Format) waveform Audio Format)の楽曲データをMP3(MPEG Audio Layer-3)フォーマットの楽曲データにエンコードするエンコーダ部14と、を含んで構成されており、制御部11と各部とはシステムバス15を介して接続されている。
制御部11は、本実施形態において、設定手段、運動用楽曲作成手段、楽曲指定情報受信手段、アルバム指定情報受信手段、運動用楽曲送信手段及び記憶制御手段の一例を構成する。そして、制御部11は、CPUが、ROMや記憶部12に記憶された各種プログラムを読み出し実行することにより楽曲配信サーバ1の各部を統括制御するとともに、後述するパーツWAVデータデータベースプログラム201、サーバシステムプログラム202、WEBサイトプログラム203等を読み出し実行することにより、設定手段、運動用楽曲作成手段、楽曲指定情報受信手段、アルバム指定情報受信手段、運動用楽曲送信手段、記憶制御手段等として機能する。
[2.2 データ及びプログラム等]
次に、記憶部12に記憶されるデータ及びプログラムのソフトウエア構成等について、図3乃至図7を用いて説明する。
図3は、パーツWAVデータデータベースに登録されるデータ、及び、楽曲配信サーバ1におけるソフトウエアの概要構成の一例を示す図である。また、図4は、トレーニングコースを選択するためのメニュー構成の一例を示す図である。また、図5は、あるトレーニングコースにおける、各ステップのジョギング用楽曲データの仕様の一例を示す図である。また、図6は、各ステップにおけるジョギング用楽曲データの概要構成の一例を示す図である。また、図7は、ジョギング用楽曲データのデータ構造の概要例を示す図である。
記憶部12には、ユーザの個人情報(例えば、氏名、年齢、メールアドレス、ユーザID、パスワード等)、ユーザのトレーニング情報(例えば、選択されたトレーニングコース、当該トレーニングコースのジョギング用楽曲データを最初にダウンロードした日時、現在のステップ、ジョギング用楽曲データを構成する楽曲の内容及び演奏順等を示す演奏リスト)、作成されたジョギング用楽曲データ、ユーザの選曲の履歴を示す履歴情報(例えば、選択された楽曲、アルバム、アーティスト、ジャンル等を時系列で示す情報)等が、ユーザ毎に対応付けて記憶されている。
また、記憶部12には、ジョギング用楽曲データを構成するパーツとなるパーツデータが登録されるパーツWAVデータデータベースが構築されている。更にまた、記憶部12には、図3に示すパーツWAVデータデータベースプログラム201、サーバシステムプログラム202、WEBサイトプログラム203等が記憶されている。
上記パーツWAVデータデータベースには、図3に示す楽曲本体WAVパーツデータ101、ジョギングアレンジ曲間つなぎWAVパーツデータ102、ジョギングアレンジ音声ガイダンスWAVパーツデータ103、DJ音声WAVパーツデータ104等が、WAVフォーマットで登録されている。
楽曲本体WAVパーツデータ101は、ジョギング用の楽曲を構成する主要的な位置を占める楽曲本体のWAVデータであり、全てのデータが同一のテンポ(本実施形態においては、120BPM(Beats Per Minute))で記録されている。そして、楽曲本体WAVパーツデータ101は、図3に示す楽曲本体MIDIデータ105とジョギングアレンジドラムベースWAVデータ106とに基づき、楽曲本体WAVパーツデータ書き出しプログラム204を用いて作成される。
楽曲本体MIDIデータ105は、楽曲本体WAVパーツデータ101の原曲が記録されたMIDI(Musical Instrument Digital Interface)フォーマットのデータである。また、ジョギングアレンジドラムベースWAVデータ106は、ドラムやシンバル等によるリズム音等が記録されたWAVデータであり、楽曲本体MIDIデータ105の原曲をジョギング用にアレンジするために用いられるデータである。
楽曲本体WAVパーツデータ書き出しプログラム204においては、楽曲本体MIDIデータ105から、前奏部分、後奏部分、間奏部分等が小節単位で削除され、残った主要部分に対して120BPMでテンポが調整される。このとき、調整前と調整後とでは、音程が変わらないように調整が行われる。そして、主要部分の楽曲本体MIDIデータ105のフォーマットがWAVフォーマットに変換され、ジョギングアレンジドラムベースWAVデータ106と合成されて、ジョギング用のアレンジ(例えば、ハウスミュージック調)が施される。こうして作成された楽曲データが楽曲本体WAVパーツデータ101である。
なお、楽曲本体WAVパーツデータ書き出しプログラム204は、楽曲配信サーバ1にインストールされて、制御部11により上で実行されるようにしても良いし、他の情報処理装置にインストールされて、当該装置上で実行されるようにしても良い。
ジョギングアレンジ曲間つなぎWAVパーツデータ102は、ジョギング用の楽曲を構成する複数の楽曲本体の曲間に演奏される楽曲(以下、「曲間部」と称する)のWAVデータ(繋ぎ曲の一例)、最初の楽曲本体の前に演奏される前奏のWAVデータ、及び、最後の楽曲本体の演奏の後に演奏される後奏のWAVデータの総称である。
ジョギングアレンジ音声ガイダンスWAVパーツデータ103は、専門のアドバイザーによる運動指導やアドバイス等の音声が記録されたWAVデータである。
DJ音声WAVパーツデータ104は、曲間に流されるDJ(Disc Jockey)の音声が記録されたWAVデータである。
なお、以下の説明においては、楽曲本体WAVパーツデータ101を、単に「楽曲本体データ」と称し、ジョギングアレンジ曲間つなぎWAVパーツデータ102を、単に「曲間つなぎデータ」と称する。また、ジョギングアレンジ音声ガイダンスWAVパーツデータ103及びDJ音声WAVパーツデータ104を、まとめて、単に「音声データ」と称する。
パーツWAVデータデータベースプログラム201は、楽曲配信サーバ1の制御部11が、パーツWAVデータデータベースを管理するためのプログラムであり、各パーツデータの登録要求に応じて、パーツデータを当該データベースに登録したり、サーバシステムプログラム202から要求されたパーツデータを当該データベースから取得して、サーバシステムプログラム202に渡すためのプログラムである。
サーバシステムプログラム202は、楽曲配信サーバ1の制御部11が、パーツWAVデータデータベースから取得されたパーツデータを用いて、ジョギング用楽曲データを作成するためのプログラムである。
WEBサイトプログラム203は、曲配信サーバ1の制御部11が、作成されたジョギング用楽曲データを配信するWEBサイトとして、楽ユーザPC2からの要求に応じて、WEBページやジョギング用楽曲データ等を送信するためのプログラムである。
なお、パーツWAVデータデータベースプログラム201、サーバシステムプログラム202、WEBサイトプログラム203等は、例えば、図示せぬネットワークを介して他のサーバ装置等から取得されるようにしても良いし、CD(Compact Disc)−ROM等の記録媒体に記録されてドライブ装置等から読み込まれるようにしても良い。
次に、ジョギング用楽曲データの内容を説明する前に、このジョギング用楽曲データの仕様を決定付けるトレーニングコースを選択するためのメニューの構成について説明する。
このトレーニングコースの選択は、楽曲配信サーバ1からユーザPC2に送信されたコース選択用WEBページに基づいて、ユーザがユーザPC2を操作することにより行われる。
図4に示すように、トレーニングコースを選択するためのメニューの構成は、例えば、最上位の第1階層から最下位の第4階層までの階層構造をなしている。そして、各階層においては、ユーザの目標別等に応じたメニュー項目が定義されており、上位の階層では、大まかな目標に応じたメニュー項目が定義され、下位の階層になっていくに従って、具体的な目標に応じたメニュー項目が定義されている。
先ず、「コース選択」が選択されると、第1階層のメニュー項目として、例えば、「健康維持」、「ダイエット」、「マラソンレース出場」、「タイムアップ」等のユーザの目標に応じるコースメニューがユーザPC2の画面に表示される。そして、例えば、「マラソンレース出場」が選択されると、第2階層のメニュー項目として、「ホノルルマラソン」、「東京マラソン」、「ハーフマラソン」、「10Kmマラソン」等のコースメニューがユーザPC2の画面に表示される。
またここで、例えば、「ホノルルマラソン」が選択されると、第3階層のメニュー項目として、「タイムを狙う」、「完走する」等のコースメニューがユーザPC2の画面に表示される。更に、例えば、「タイムを狙う」が選択されると、第4階層のメニュー項目として、「初心者」、「中級者」、「上級者」等のコースメニューがユーザPC2の画面に表示される。
そして、第4階層のメニュー項目の中から一のメニュー項目が選択されると、これに一意に対応したトレーニングコースが、楽曲配信サーバ1の制御部1により決定される。例えば、「マラソンレース出場」〜「ホノルルマラソン」〜「タイムを狙う」〜「初心者」と選択されると、これに対して、「トレーニングコースA」が決定される。また、同様にして「中級者」が選択されると、「トレーニングコースB」が決定される。また、同様にして「上級者」が選択されると、「トレーニングコースC」が決定される。
楽曲配信サーバ1の記憶部12には、上記メニュー構成を定義するメニューデータが記憶されている。また、記憶部12には、最終的なトレーニングコース毎に、そのコース情報が記憶されている。このコース情報には、そのトレーニングコースの全ステップが定義されているとともに、ステップ毎にそのトレーニングの仕様が定義されている。具体的には、ステップ毎に、対応するトレーニング期間、運動時間の一例としてのジョギング時間(ユーザが走る時間)、ジョギング距離(ユーザが走る距離)、楽曲本体の曲数、初期テンポ(ジョギング用楽曲データの最初の曲のテンポ)、終了テンポ(ジョギング用楽曲データの最後の曲のテンポ)等が定義されている。ここで、ジョギング時間は、ジョギング用楽曲データの、後述するウォームアップ曲及びクールダウン曲の演奏時間を除いた演奏時間を示す時間となる。
図5は、あるトレーニングコースの各ステップにおけるジョギング用楽曲データの仕様の一例を示しており、このトレーニングコースは、ステップ1から開始され、基本的には1ヶ月毎にステップが上昇していく。
ステップ1のトレーニング期間は1ヶ月目に設定されている。すなわち、ステップ1は、本トレーニングコースを開始してから1ヶ月経過するまでのジョギングを対象としている。そして、そのジョギング時間は、30分に設定され、ジョギング距離は約5Kmに設定されている。また、初期テンポと最終テンポとは、何れも160BPMに設定されている。
これらの情報は、ステップ1では、ウォームアップ曲及びクールダウン曲を除いたジョギング用楽曲データの演奏時間が30分であり、そのテンポは、160BPMで一定であることを示している。そして、このテンポに対応したペースでユーザが30分間走ることにより、約5Kmの距離を走ることが想定されている。
ここで、演奏される楽曲本体の曲数は8曲に設定されているが、これはあくまでも目安であって、選択された楽曲本体の演奏時間によって曲数は変化するものである。
また、図5において、ステップ1のメドレー楽曲内容、すなわち、演奏される楽曲本体の内容として「○○○メドレー」(「○○○」は、例えば、アルバムの名称やアーティストの名称等)が示され、他のステップにおいても示されているが、これは選択されたアルバムやアーティスト、あるいは、ジャンル等を例示的に示したものであり、例えば、ステップ1に対して必ずしも「○○○メドレー」が選択されるわけではない。
次に、ステップ2のトレーニング期間は2ヶ月目に設定されている。すなわち、ステップ1は、本トレーニングコースを開始して1ヶ月が経過してから更に1ヶ月を経過するまでのジョギングを対象としている。そして、そのジョギング時間は、30分に設定され、ジョギング距離は約5.5Kmに設定され、曲数は8曲に設定されている。また、初期テンポは、160BPMに設定され、最終テンポは、165BPMに設定されている。
これらの情報は、ステップ2では、ウォームアップ曲及びクールダウン曲を除いたジョギング用楽曲データの演奏時間が30分であり、そのテンポは、160BPMから165BPMに徐々に上昇することを示している。そして、このテンポに対応したペースでユーザが30分間走ることにより、約5.5Kmの距離を走ることが想定されている。
ステップ2は、ジョギング距離についてはステップ1と同様であるが、テンポが上昇していくことによって、ステップ1よりも約0.5Km長い距離をユーザが走ることが想定されている。
以下同様に、ステップ3のトレーニング期間は3ヶ月目に設定されており、ジョギング時間は45分に設定され、ジョギング距離は約8Kmに設定され、曲数は12曲に設定されている。そして、初期テンポと最終テンポとは、何れも165BPMに設定されている。
また、ステップ4のトレーニング期間は4ヶ月目に設定されており、ジョギング時間は、45分に設定され、ジョギング距離は約8.5Kmに設定され、曲数は12曲に設定されている。そして、初期テンポは165BPMに設定され、最終テンポは170BPMに設定されている。
また、ステップ5のトレーニング期間は5ヶ月目に設定されており、ジョギング時間は、60分に設定され、ジョギング距離は約11Kmに設定され、曲数は16曲に設定されている。そして、初期テンポと最終テンポとは、何れも170BPMに設定されている。
また、ステップ6のトレーニング期間は6ヶ月目に設定されており、ジョギング時間は、60分に設定され、ジョギング距離は約12Kmに設定され、曲数は16曲に設定されている。そして、初期テンポは170BPMに設定され、最終テンポは175BPMに設定されている。
図6に示すように、各ステップにおけるジョギング用の楽曲は、楽曲本体と前奏、後奏、曲間部、ガイド音声、DJ音声によって構成されるジョギング本編と、ジョギング本編の前に再生されるウォームアップ曲と、ジョギング本編の後に再生されるクールダウン曲と、により構成されている。
なお、図中、(a)、(b)、(c)、(d)、(e)、(f)は、ステップ1、ステップ2、ステップ3、ステップ4、ステップ5、ステップ6にそれぞれ対応している。
ウォームアップ曲は、ユーザがジョギングを開始する前に、その準備運動等のウォーミングアップを行う際に再生されることを想定した楽曲であり、例えば、テンポが徐々に上昇して、ユーザの気分を次第に盛り上げるような楽曲が選定される。
また、クールダウン曲は、ユーザがジョギングを終えた後に、心身を平静に戻すクーリングダウンを行う際に再生されることを想定した楽曲であり、例えば、テンポが徐々に下降して、次第落ち着いていくような雰囲気の楽曲が選定される。
ウォームアップ曲及びクールダウン曲の楽曲データは、MP3フォーマットで記憶部12に記憶されている。
このウォームアップ曲及びクールダウン曲としては、全ステップを通じで同一の楽曲を用いることが可能であり、例えば、ユーザPC2が楽曲配信サーバ1から最初にジョギング用楽曲データをダウンロードするときには、ジョギング本編とウォームアップ曲及びクールダウン曲の全ての楽曲データを含むジョギング用楽曲データがダウンロードされるが、2度目以降のダウンロードの際には、ジョギング本編の楽曲データのみのジョギング用楽曲データがダウンロードされる。
なお、2度目以降のダウンロードの際においても、ユーザの選択により、最初にダウンロードされたウォームアップ曲及びクールダウン曲とは異なるウォームアップ曲及びクールダウン曲がダウンロードされようにしても良い。
また、図6に示すように、ジョギング距離、すなわち、ジョギング本編の演奏時間は、2ステップ毎に上昇する。その一方で、ジョギング本編のテンポは、奇数ステップにおいては演奏開始から終了まで一定であり、偶数ステップにおいては、徐々に上昇する。また、各ステップにおける最終テンポと、その次のステップにおけるテンポとは一致している。
ステップが上がっていくに従って(トレーニング期間が時間的に未来にあるほど)、ユーザのジョギング能力は向上していくものと考えられることから、それに合わせて、ジョギング時間及びテンポが上昇していく。また、目安ではあるが、ステップが上がっていくに従って曲数も増えていく。そして、このジョギング時間及びテンポは、トレーニングコース毎に決定され、更には、トレーニングコース内のステップ毎に決定されるようになっており、具体的には、例えば、マラソン等の専門家により策定された運動理論や方針等に基づいて、予めトレーニングコース毎に設定されている。
図7は、ジョギング用楽曲データのジョギング本編部分の概要構成を示す図である。
図7に示すように、ジョギング用楽曲データのジョギング本編は、最初に前奏が再生され、次いで、1曲目の楽曲本体が再生される。そして、曲間部が再生された後、2曲目の楽曲本体が再生される。以下同様にして、全ての楽曲本体が再生された後、後奏が再生される。つまり、ジョギング本編は、前奏の曲間つなぎデータ、1曲目の楽曲本体データ、曲間部の曲間つなぎデータ、2曲目の楽曲本体データ、曲間部の曲間つなぎデータ・・・N曲目の曲本体データ、後奏の曲間つなぎデータの順に再生されるように、楽曲配信サーバ1の制御部11により構成される。
このとき、ジョギング本編は、例えば、図5に示すトレーニングコースのステップ1の場合には、160BPM一定のテンポで各楽曲データが再生されるように構成され、例えば、ステップ2の場合には、160BPMから165BPMまでテンポが徐々に上昇するように楽曲データが再生されるように構成される。
そして、前奏、曲間部及び後奏の曲間つなぎデータが再生されている間に音声データが再生されるようにジョギング本編は構成される。また、ジョギング本編の演奏が開始されてから、規定の時間が経過する都度(例えば、5分、10分、20分・・・)、その時点での経過時間とこれまでの消費カロリーをユーザに対して告知する音声データが再生されるようにジョギング本編は構成される。
なお、第3階層のメニュー項目が選択された時点で最終的なトレーニングコースを決定し、第4階層のメニュー項目が選択された時点でトレーニングを開始させるステップを決定しても良い。例えば、「初心者」が選択された場合には、トレーニングコースAのステップ1が開始ステップとして決定され、「中級者」が選択された場合には、トレーニングコースAのステップ3が開始ステップとして決定され、「上級者」が選択された場合には、トレーニングコースAのステップ5が開始ステップとして決定されるようにしても良い。
[2.3 ジョギング用楽曲データのジョギング本編部分の作成方法]
次に、楽曲配信サーバ1の制御部11によるジョギング用楽曲データのジョギング本編部分の作成方法について、図8及び図9を用いて説明する。
図8は、ジョギング用楽曲データのジョギング本編部分の作成方法の一例を示す図である。また、図9は、初期テンポと終了テンポとが異なる場合におけるジョギング用楽曲データのジョギング本編部分を構成する各楽曲等のテンポの決定方法の一例を示す図である。
[2.3.1 テンポが一定の場合]
図8に示す例では、テンポ120BPMの楽曲データを全て160BPMの楽曲データに変換して、ジョギング時間30分のジョギング本編を作成する場合の例であり、楽曲本体データとしては、曲A〜曲Jの10個の楽曲本体データが、この選曲順で選択されたものとする。また、曲間つなぎデータとしては、前奏及び後奏の曲間つなぎデータの他に、小節の数(曲の長さ)が互いに異なる曲間部a〜曲間部fの6個の曲間つなぎデータが用意されているものとする。
制御部11は、楽曲本体データ及び曲間つなぎーデータを、それぞれテンポ160BPMの楽曲本体データ及び曲間つなぎーデータに変換する。ここで、各楽曲の演奏時間は、元の3/4(120BPM/160BPM)となる。
そして、制御部11は、前奏の曲間つなぎデータをジョギング本編の先頭に挿入し、後奏の曲間つなぎデータをジョギング本編の最後に挿入する。また、制御部11は、曲A〜曲Jの楽曲本体データを、この曲順で、前奏の曲間つなぎデータと後奏の曲間つなぎデータとの間に挿入する。
この時点におけるジョギング本編の演奏時間、すなわち、前奏と曲A〜曲Jと後奏との演奏時間の合計は、ジョギング時間である30分未満となる。曲間部aは4小節、曲間部bは8小節、曲間部cは12小節・・・曲間部fは24小節となっており、制御部11が、各楽曲本体データの間に、曲間部a〜曲間部fのうち適切な長さの曲間つなぎデータをそれぞれ挿入することにより、ジョギング本編の最終的な演奏時間が30分となるように調整する。この演奏時間は、必ずしもジョギング時間丁度(この場合は、30分ジャスト)になるようにジョギング本編を作成する必要はなく、多少のズレがあっても良い。
曲間部の曲間つなぎデータは、各楽曲本体の曲間を曲間部でつなぐことにより、音楽的(聴覚的)に自然な形で各楽曲本体を接続して演奏するために用いられる楽曲データである。
ここで、楽曲本体データは、図3において説明したように、楽曲本体MIDIデータ105から変換された楽曲本体のWAVデータにジョギングアレンジドラムベースWAVデータ106が合成されて作成される。このとき、楽曲本体の曲調に合ったリズムパターンのジョギングアレンジドラムベースWAVデータ106が選択される。
ジョギング用楽曲データを構成する複数の楽曲本体それぞれのリズムパターンが全て同一であれば、曲間部の曲間つなぎデータとしては、これと同一のリズムパターンのデータのみを用意すれば、各楽曲の接続前後でリズムパターンが変化しないため、自然な形で演奏を継続することができる。しかしながら、楽曲本体のリズムパターンが曲毎に異なるような場合においては、一つのパターンでは、各楽曲の接続前後でリズムパターンが急激に変化し、音楽的に不自然となる。
そこで、本実施形態においては、ジョギング用楽曲データを構成する複数の楽曲本体のリズムパターンが2パターン以上存在する場合には、これに応じて、複数のリズムパターンの曲間部の曲間つなぎデータを用意する。
例えば、ある楽曲本体とその次の楽曲本体のリズムパターンとが異なる場合には、前の楽曲本体に接続する部分においては、その楽曲本体のリズムパターンと同じ(または近い)リズムパターンで演奏が開始され、次の楽曲本体に接続する部分においては、その楽曲本体のリズムパターンと同じ(または近い)リズムパターンで演奏が終了し、演奏が進行するに従ってリズムパターンが次第に変化していくような曲間部を用意する。
そして、例えば、ジョギング用楽曲データを構成する複数の楽曲本体のリズムパターンとして、XとYとの2つのパターンが混在している場合には、リズムパターンがX一定の曲間部、Y一定の曲間部、XからYに変化する曲間部、YからXに変化する曲間部の4つを、曲間部a〜曲間部fのそれぞれについて用意する(例えば、曲間部aの場合には、リズムパターンがX一定の曲間部a1、Y一定の曲間部a2、XからYに変化する曲間部a3、YからXに変化する曲間部a4)。
制御部11は、曲間部を挿入する曲間前後の楽曲本体データの楽曲情報等を参照して、楽曲本体のリズムパターンを認識し、これに対応したリズムパターンとなる曲間部の曲間つなぎデータを挿入する。
なお、ジョギング本編の最初の楽曲本体の前に挿入される前奏の曲間つなぎデータは、その楽曲本体のリズムパターンと同じ(または近い)リズムパターンのデータを用い、ジョギング本編の最後の楽曲本体の後に挿入される後奏の曲間つなぎデータは、その楽曲本体のリズムパターンと同じ(または近い)リズムパターンのデータを用いることが望ましい。
[2.3.2 テンポが上昇する場合]
テンポが上昇する場合、つまり、初期テンポ<最終テンポである場合には、ジョギング用楽曲データのジョギング本編先頭の再生が開始されてから終了するまでの時間軸上における再生位置(ジョギング本編先頭の再生が開始されてからの経過時間)に応じて各楽曲データのテンポを変えていく必要がある。一般的に、ジョギング本編先頭の再生開始からの経過時間tにおけるテンポf(t)は、変化率一定で上昇すると考えると、f(t)=(最終テンポ−初期テンポ)/ジョギング時間×tにより求められる。
そして、各楽曲のテンポは、その最初と最後との丁度中間部分の再生位置を上記tとした場合に求めることができる。ここで、n番目の楽曲本体の前記中間部分の再生位置をt(n)とすると、t(n)=前奏の演奏時間+(1〜n−1番目までの楽曲本体の演奏時間の合計)+(1〜n−1番目までの楽曲本体の後に挿入される曲間部の演奏時間の合計)+(n番目の楽曲本体の演奏時間/2)となる。
しかしながら、テンポが決定されなければ、その楽曲本体の演奏時間を求めることができないことから、上記式によってテンポを求めることができない。そこで、制御部11は、求めるべきテンポに近いと思われるテンポを仮に設定した上で、楽曲本体の仮演奏時間を求める。そして、この仮演奏時間によってテンポを求め、このテンポに基づいて正確な演奏時間を算出する。
また、前奏、曲間部、後奏のテンポに関しても、上記と同様の方法で求めることができる。
図9は、初期テンポ160BPM、最終テンポ165BPMで、曲A〜曲Jの10個の楽曲本体データが、この選曲順で選択された場合の例である。この例では、前奏に対しては、160.0BPMに設定され、その演奏時間は、0分08秒から0分06秒となる。また、曲Aに対しては、160.2BPMが設定され、その演奏時間は、3分48秒から2分51.7秒となる。また、曲Aの後に挿入される曲間部bに対しては、160.5BPMが設定され、その演奏時間は、0分16秒から11.9秒となる。そして、曲Jに対しては、164.8BPMが設定され、その演奏時間は、2分25秒から2分05.2秒となる。最後に、後奏に対しては、165.0BPMが設定され、その演奏時間は、0分08秒から0分05.8秒となる。ここで、図9においては、小数点以下を四捨五入した演奏時間を示している。
なお、上記説明においては、直線的にテンポが上昇するように各楽曲のテンポを求めていたが、曲線的にテンポが上昇するようにテンポを求めても良い。
また、上記説明においては、楽曲の最初と最後との丁度中間部分の再生位置に基づいてテンポを求めていたが、例えば、楽曲の最初の部分の再生位置や最後の再生位置等に基づいてテンポを求めても良い。
また、テンポの決定方法は、上述した方法に限られるものではない。例えば、楽曲単位ではなく小節単位で考えると、ジョギング本編の各小節の再生位置を算出することは容易であり、その各小節のテンポ及び長さ(演奏時間)を算出することができる。また、各小節の長さから、ジョギング本編が何小節で構成されるかが分かる。そして、この小節数に対応する演奏時間を120PBMで算出し、120BPMにおける合計演奏時間がこの算出された演奏時間となるように、楽曲本体データと曲間つなぎデータとを選定する。そして、楽曲本体データ及び曲間つなぎデータのテンポを小節毎にその再生位置に応じて設定し、楽曲本体データ及び曲間つなぎデータのテンポを小節毎に変換して、テンポを調整した楽曲本体データ及び曲間つなぎデータを作成する。ここで、本実施形態における楽曲本体データ及び曲間つなぎデータはWAVデータであるので、実際には、120BPMにおける1小節の演奏時間毎にテンポを変換する。
[3.楽曲配信サーバの動作]
[3.1 メイン処理]
次に、楽曲配信サーバ1の動作について説明するが、始めに、メイン処理について、図10を用いて説明する。
図10は、本実施形態に係る楽曲配信サーバ1の制御部11のメイン処理における処理例を示すフローチャートである。
先ず、ユーザ操作により、ユーザPC2が楽曲配信サーバ1にアクセスすると、図10に示すように、楽曲配信サーバ1の制御部11は、ログイン処理を実行する(ステップS1)。具体的に、制御部11は、ユーザPC2からユーザID、パスワード等を受信し、認証処理を行って、ユーザを特定する。
次いで、制御部11は、コース選択処理を実行する(ステップS2)。具体的に、制御部11は、所定のコース選択用WEBページをユーザPC2に送信して、図4において説明したように、ユーザにトレーニングコースを選択させ、選択されたトレーニングコースの情報をユーザPC2から受信する。
次いで、制御部11は、所定のWEBページをユーザPC2に送信して、ユーザに自分の体重及び性別を入力させ、これらの情報をユーザPC2から受信する(ステップS3)。このユーザの体重は、ジョギング中におけるユーザのカロリー消費の計算に用いられ、性別は、最終的なトレーニングコースの決定に用いられる。性別によって運動能力に差があるため、同じトレーニングコースでも性別によってその内容(具体的には、ジョギング時間及びテンポ)を若干変えるのである。
次いで、制御部11は、ユーザPC2から受信されたトレーニングコースの情報と性別の情報とに基づいて、最終的なトレーニングコースを決定する(ステップS4)。
なお、ステップS2において、特定されたユーザが前回までに選択したトレーニングコースを変更しない場合には、ステップS3の処理を省略し、ユーザのトレーニング情報から、トレーニングコースの情報を取得しても良い。
次いで、制御部11は、ステップを決定する(ステップS5)。具体的に、制御部11は、先ず、システム側で推奨するステップを提示するWEBページをユーザPC2に送信する。例えば、今回新たなトレーニングコースが選択された場合には、ステップ1が推奨され、前回までのトレーニングコースが変更されない場合には、現在のステップ、当該トレーニングコースのジョギング用楽曲データを最初にダウンロードした日からの経過日数等に応じてふさわしいステップが推奨される。ここで、ユーザPC2を操作することによって、提示されたステップをユーザが承諾した場合には、その旨のリクエストがユーザPC2から楽曲配信サーバ1に送信される一方、ユーザがステップを変更する場合には、その旨のリクエストがユーザPC2から楽曲配信サーバ1に送信される。そして、制御部11は、このリクエストに基づいて、ステップを決定する。
次いで、制御部11は、決定されたトレーニングコース及びステップに対応するジョギング時間、初期テンポ及び終了テンポを、コース情報から取得し、RAM上の所定領域に設定する(ステップS6)。
次いで、制御部11は、後述する使用楽曲決定処理を実行することにより、ジョギング用楽曲データの作成に用いられる楽曲データ、曲間つなぎデータと、その演奏順序を決定する(ステップS7)。
次いで、制御部11は、ジョギング用楽曲データを作成する(ステップS8)。具体的に、制御部11は、先ず、使用楽曲決定処理で作成された演奏リストに記述されている楽曲本体データ及び曲間つなぎデータをパーツWAVデータデータベースから取得するとともに、決定されたトレーニングコース及びステップに対応する音声データをパーツWAVデータデータベースから取得する。このとき、各曲間つなぎデータは、その前に接続される楽曲本体データのリズムパターンとその後に接続される楽曲本体データのリズムパターンとに合わせたものが取得される。次いで、制御部11は、取得した楽曲本体データ及び曲間つなぎデータを、それぞれ設定されているテンポの楽曲本体データ及び曲間つなぎデータに変換する。次いで、制御部11は、変換されたテンポの楽曲本体データ及び曲間つなぎデータを、演奏リストに記述されている順序で接続し、ジョギング本編部分のWAVデータを作成する。次いで、制御部11は、エンコーダ部14によりジョギング本編部分のフォーマットをMP3フォーマットに変換させて、ジョギング用楽曲データを作成する。そして、制御部11は、作成したジョギング用楽曲データを、特定されたユーザに対応付けて記憶部12に記憶させる。
次いで、制御部11は、特定されたユーザのトレーニング情報を参照して、このユーザに対するジョギング用楽曲データの配信が最初であるか否かを判定する(ステップS9)。つまり、制御部11は、以前にジョギング用楽曲データがユーザPC2にダウンロードされていることにより、ウォームアップ曲とクールダウン曲とがユーザPC2に格納されているか否かを判定するのである。このとき、制御部11は、特定されたユーザに対するジョギング用楽曲データの配信が最初ではない場合には(ステップS9:NO)、ステップS11に移行する。
一方、制御部11は、特定されたユーザに対するジョギング用楽曲データの配信が最初である場合には(ステップS9:YES)、ウォームアップ曲の楽曲データを、作成したジョギング用楽曲データの先頭に挿入し、クールダウン曲の楽曲データを、作成したジョギング用楽曲データの最後に挿入して(ステップS10)、ステップS11に移行する。
そして、制御部11は、作成したジョギング用楽曲データをユーザPC2に送信して(ステップS11)、メイン処理を終了させる。
なお、作成されたジョギング用楽曲データのデータサイズが大きい場合には、その送信に要する時間、すなわち、ダウンロード時間が長くなり、ダウンロードの途中でセッションが切断されたりすると、再度ダウンロードしなければならなくなり不便である。そこで、こうした場合に制御部11は、ジョギング用楽曲データを所定の演奏時間毎(例えば、30分毎)に区切って作成し、順次ユーザPC2に送信するようにしても良い。
[3.2 使用楽曲決定処理]
次に、使用楽曲決定処理について、図11を用いて説明する。
図11は、本実施形態に係る楽曲配信サーバ1の制御部11の使用楽曲決定処理における処理例を示すフローチャートである。
使用楽曲決定処理が開始されると、図11に示すように、制御部11は、演奏リストを初期化し(ステップS51)、演奏曲数Sに0を設定する(ステップ52)。
次いで、制御部11は、演奏リストの最初に前奏を設定し(ステップS53)、演奏リストの最後に後奏を設定する(ステップS54)。
次いで、制御部11は、前奏のテンポとして、初期テンポを設定し、このテンポによる前奏の演奏時間を算出する(ステップS55)。
次いで、制御部11は、後奏のテンポとして、最終テンポを設定し、このテンポによる後奏の演奏時間を算出する(ステップS55)。
なお、初期テンポと最終テンポとが異なる場合には、本来であれば、上記2.3.2において図9を用いて説明したようにテンポを決定するべきではあるが、前奏の演奏時間及び後奏の演奏時間が短い場合には、その誤差は無視することができるレベルであるので、単純に初期テンポと最終テンポを設定している。
次いで、制御部11は、合計演奏時間として、算出された前奏の演奏時間と後奏の演奏時間との合計値を設定する(ステップS57)。
次いで、制御部11は、初期テンポと終了テンポとが一致するか否かを判定する(ステップS58)。このとき、制御部11は、初期テンポと終了テンポとが一致する場合には(ステップS58:YES)、後述する楽曲決定メイン処理1を実行し、初期テンポと終了テンポとが一致しない場合には(ステップS58:NO)、後述する楽曲決定メイン処理2を実行する。
そして、制御部11は、楽曲決定メイン処理1または楽曲決定メイン処理2を終えると、使用楽曲決定処理を終了させる。
[3.3 楽曲決定メイン処理1]
次に、楽曲決定メイン処理1について、図12及び図13を用いて説明する。
図12及び図13は、本実施形態に係る楽曲配信サーバ1の制御部11の楽曲決定メイン処理1における処理例を示すフローチャートである。
楽曲決定メイン処理1が開始されると、図12に示すように、制御部11は、使用される楽曲データ全てに共通して使用される使用テンポとして、初期テンポを設定する(ステップS101)。
次いで、制御部11は、楽曲選択処理を実行する(ステップS102)。具体的に、制御部11は、先ず、特定されたユーザの履歴情報を参照して、前回までにユーザが選択したアルバム、アーティストまたはジャンル(以下、単に「アルバム等」と称する)と、そのアルバム等に含まれる楽曲のリストとを提示するWEBページをユーザPC2に送信する。ここで、ユーザPC2を操作することによって、ユーザが、提示されたアルバム等を別のアルバム等に変更せずに、リストから楽曲を選択した場合には、その楽曲の楽曲選択リクエスト(楽曲指定情報の一例)がユーザPC2から楽曲配信サーバ1に送信される。
一方、ユーザが、提示されたアルバム等を別のアルバム等に変更した場合には、選択されたアルバム等のアルバム等選択リクエスト(アルバム指定情報の一例)がユーザPC2から楽曲配信サーバ1に送信され、制御部11は、これに応じて、アルバム等のリストやアルバム等の検索メニューを提示するWEBページデータをユーザPC2に送信する。そして、ユーザがアルバム等を選択し、そのアルバム等に含まれる複数の楽曲の中から所望する楽曲を選択すると、その楽曲の楽曲選択リクエスト(楽曲指定情報の一例)がユーザPC2から楽曲配信サーバ1に送信される。
制御部11は、この選択リクエストを受信することによって、S+1曲目の楽曲データを特定し選定する。
なお、1曲目の楽曲選択の際においてアルバム等が選択された後、ユーザが、例えば「おまかせ選曲」を選択したら、制御部11側で、選択されたアルバム等に含まれる複数の楽曲の中から予め決められた楽曲を演奏順に自動的に選択しても良いし、ランダムに楽曲を選択しても良い。
次いで、制御部11は、選択された楽曲(以下、「選択楽曲」と称する)のテンポとして、使用テンポを設定し、このテンポによる選択楽曲の演奏時間を算出する(ステップS103)。
次いで、制御部11は、ジョギング時間−(合計演奏時間+選択楽曲の演奏時間)が、ジョギング時間×0.05より大きいか否かを判定する(ステップS104)。例えば、制御部11は、ジョギング時間が30分である場合には、30分−(合計演奏時間+選択楽曲の演奏時間)が、1分30秒より大きいか否かを判定するのである。このとき、制御部11は、ジョギング時間−(合計演奏時間+選択楽曲の演奏時間)が、ジョギング時間×0.05以下である場合には(ステップS104:NO)、ステップS102に移行する。
ジョギング時間−(合計演奏時間+選択楽曲の演奏時間)、すなわち、今回の選択楽曲の演奏時間を含めた合計演奏時間を除いた残り時間が余りにも短いと、各楽曲本体間に曲間つなぎデータを挿入した場合に、その合計演奏時間がジョギング時間を大きく超えてしまう場合があることから、こうした場合には、制御部11は、ステップS102に戻って、別の楽曲をユーザに選択させるのである。
一方、制御部11は、ジョギング時間−(合計演奏時間+選択楽曲の演奏時間)が、ジョギング時間×0.05より大きい場合には(ステップS104:YES)、演奏曲数Sに1を加算した値を演奏曲数Sに設定する(ステップS105)。
次いで、制御部11は、選択楽曲を演奏リストのS曲目に設定し(ステップS106)、現在の合計演奏時間に選択楽曲の演奏時間を加算することによって、合計演奏時間を改めて算出する(ステップS107)。
次いで、制御部11は、ジョギング時間−合計演奏時間が(ジョギング時間×0.05)+3分未満であるか否かを判定する(ステップS108)。例えば、制御部11は、ジョギング時間が30分である場合には、30分−合計演奏時間が、4分30秒未満であるか否かを判定するのである。このとき、制御部11は、ジョギング時間−合計演奏時間が(ジョギング時間×0.05)+3分以上である場合には(ステップS108:NO)、ステップS102に移行する。
つまり、ジョギング時間−合計演奏時間、すなわち、残り時間が、所定の時間以上ある場合には、まだ楽曲本体を追加する余地があるので、制御部11は、ステップS102に移行して、新たな楽曲をユーザに選択させるのである。
一方、制御部11は、ジョギング時間−合計演奏時間が(ジョギング時間×0.05)+3分未満である場合には(ステップS108:YES)、図13に示すように、曲間部a〜fのテンポとして、使用テンポを設定し、このテンポによる曲間部a〜fをそれぞれ算出する(ステップS109)。
次いで、制御部11は、演奏曲数Sが1であるか否かを判定する(ステップS110)。このとき、制御部11は、演奏曲数Sが1ではない場合には(ステップS110:NO)、次いで、(ジョギング時間−合計演奏時間)/(S−1)が曲間部eの演奏時間より長いか否かを判定する(ステップS111)。このとき、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)が曲間部eの演奏時間より長い場合には(ステップS111:YES)、演奏リストのS曲目の楽曲本体の直前に曲間部fを挿入して(ステップS112)、ステップS122に移行する。
一方、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)が曲間部eの演奏時間以下である場合には(ステップS111:NO)、次いで、(ジョギング時間−合計演奏時間)/(S−1)が曲間部dの演奏時間より長いか否かを判定する(ステップS113)。このとき、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)が曲間部dの演奏時間より長い場合には(ステップS113:YES)、演奏リストのS曲目の楽曲本体の直前に曲間部eを挿入して(ステップS114)、ステップS122に移行する。
一方、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)が曲間部dの演奏時間以下である場合には(ステップS113:NO)、次いで、(ジョギング時間−合計演奏時間)/(S−1)が曲間部cの演奏時間より長いか否かを判定する(ステップS115)。このとき、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)が曲間部cの演奏時間より長い場合には(ステップS115:YES)、演奏リストのS曲目の楽曲本体の直前に曲間部dを挿入して(ステップS116)、ステップS122に移行する。
一方、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)が曲間部cの演奏時間以下である場合には(ステップS115:NO)、次いで、(ジョギング時間−合計演奏時間)/(S−1)が曲間部bの演奏時間より長いか否かを判定する(ステップS117)。このとき、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)が曲間部bの演奏時間より長い場合には(ステップS117:YES)、演奏リストのS曲目の楽曲本体の直前に曲間部cを挿入して(ステップS118)、ステップS122に移行する。
一方、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)が曲間部bの演奏時間以下である場合には(ステップS117:NO)、次いで、(ジョギング時間−合計演奏時間)/(S−1)が曲間部aの演奏時間より長いか否かを判定する(ステップS119)。このとき、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)が曲間部aの演奏時間より長い場合には(ステップS119:YES)、演奏リストのS曲目の楽曲本体の直前に曲間部bを挿入して(ステップS120)、ステップS122に移行する。
一方、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)が曲間部aの演奏時間以下である場合には(ステップS117:NO)、演奏リストのS曲目の楽曲本体の直前に曲間部aを挿入して(ステップS121)、ステップS122に移行する。
制御部11は、S曲目の楽曲本体の直前に曲間部a〜fの何れかを挿入すると、演奏曲数Sから1を減算した値を演奏曲数Sに設定する(ステップS122)。
次いで、制御部11は、現在の合計演奏時間に、挿入された曲間部の演奏時間を加算することによって、合計演奏時間を改めて算出して(ステップS123)、ステップS110に移行する。
そして、制御部11は、演奏曲数S−1回分、ステップS111〜S123の処理を繰り返し、ステップS110において、演奏曲数Sが1になると(ステップS110:YES)、楽曲決定メイン処理1を終了させる。
上記ステップS111〜S123の処理において、制御部11は、(ジョギング時間−合計演奏時間)/(S−1)、すなわち、ジョギング時間から合計演奏時間を除いた残り時間を曲間部の未挿入数で除した値(換言すれば、未だ挿入されていない曲間部の平均演奏時間)と曲間部a〜fの演奏時間とを比較することによって、最適な曲間部を挿入し、最終的な合計演奏時間がジョギング時間に近い値になるよう調整するのである。
この楽曲決定メイン処理1において選択された楽曲本体及び曲間部の楽曲データと設定されたテンポとに基づいて、図10に示すステップS8の処理においてジョギング用楽曲データが作成される。そして、作成されたジョギング用楽曲データを携帯音楽プレーヤー3が再生すると、一定のテンポで楽曲音が出力される。
[3.3 楽曲決定メイン処理2]
次に、楽曲決定メイン処理2について、図14及び図15を用いて説明する。
図14及び図15は、本実施形態に係る楽曲配信サーバ1の制御部11の楽曲決定メイン処理2における処理例を示すフローチャートであり、同図において、図12または図13と同様の要素については同様の符号を付してある。
楽曲決定メイン処理2が開始されると、図14に示すように、制御部11は、各楽曲本体が選択される時点で使用される現在テンポとして、初期テンポを設定1する(ステップS151)。
次いで、制御部11は、楽曲選択処理を実行すると(ステップS102)、上記2.3.2において説明した方法に基づいて、選択楽曲のテンポを設定する。具体的に、制御部11は、先ず、選択楽曲のテンポが現在テンポであるとした場合における仮演奏時間を算出する(ステップS152)。
次いで、制御部11は、選択楽曲の最初と最後との中間部分の再生位置を、選択楽曲の演奏時間が仮演奏時間であるとして算出する(ステップS153)。このとき、各楽曲本体の曲間に挿入される曲間部とそのテンポは、後の処理で決定されることから、この時点では、S+1曲目の楽曲本体よりも前に演奏される各曲間部の演奏時間が分からない。そこで、制御部11は、例えば、曲間部a〜fのうち平均的な演奏時間である曲間部cを選択し、曲間部cのテンポが初期テンポであるとした場合における曲間部cの仮演奏時間を算出し、これをS+1曲目の楽曲本体よりも前に演奏される各曲間部の演奏時間と仮に設定する。こうして制御部11は、前奏の演奏時間、1〜S曲目の楽曲本体の演奏時間、曲間部の仮演奏時間等に基づいて、選択楽曲の最初と最後との中間部分の再生位置を算出するのである。
そして、制御部11は、選択楽曲の最初と最後との中間部分の再生位置に対応するテンポを算出し、このテンポを選択楽曲のテンポとして設定するとともに、このテンポによる選択楽曲の演奏時間を算出する(ステップS154)。
その後、制御部11は、ジョギング時間−(合計演奏時間+選択楽曲の演奏時間)が、ジョギング時間×0.05より大きいか否かを判定し(ステップS104)、大きくはない場合には(ステップS104:NO)ステップS102に移行し、大きい場合には(ステップS104:YES)、演奏曲数Sに1を加算する(ステップS105)。
次いで、制御部11は、選択楽曲を演奏リストのS曲目に設定し(ステップS106)、現在の合計演奏時間に選択楽曲の演奏時間を加算して、合計演奏時間を改めて算出する(ステップS107)。
次いで、制御部11は、現在テンポとして、選択楽曲のテンポを設定する(ステップS156)。
次いで、制御部11は、ジョギング時間−合計演奏時間が(ジョギング時間×0.05)+3分未満であるか否かを判定し(ステップS108)、(ジョギング時間×0.05)+3分以上である場合には(ステップS108:NO)、ステップS102に移行し、(ジョギング時間×0.05)+3分未満である場合には(ステップS108:YES)、ステップS110に移行する。
図15に示すように、制御部11は、ステップS110に移行すると、演奏曲数Sが1であるか否かを判定し、演奏曲数Sが1ではない場合には(ステップS110:NO)、上記2.3.2において説明した方法に基づいて、S曲目の楽曲本体の直前に挿入される曲間部のテンポを設定する。具体的に、制御部11は、先ず、曲間部a〜fのテンポがS−1曲目の楽曲本体のテンポとS曲目の楽曲本体のテンポとの平均値であるとした場合における仮演奏時間をそれぞれ算出する(ステップS157)。
次いで、制御部11は、曲間部a〜fそれぞれの最初と最後との中間部分の再生位置を、曲間部a〜fの演奏時間がそれぞれ仮演奏時間であるとしてそれぞれ算出する(ステップS158)。
そして、制御部11は、曲間部a〜fそれぞれの最初と最後との中間部分の再生位置に対応するテンポをそれぞれ算出し、このテンポを曲間部a〜fのテンポとしてそれぞれ設定するとともに、このテンポによる曲間部a〜fの演奏時間をそれぞれ算出する(ステップS159)。
その後のステップS111〜S123における処理内容は、楽曲決定メイン処理1の場合と同様である。
そして、制御部11は、演奏曲数S−1回分、ステップS157〜S159及びS111〜S123の処理を繰り返し、ステップS110において、演奏曲数Sが1になると(ステップS110:YES)、楽曲決定メイン処理2を終了させる。
この楽曲決定メイン処理2において選択された楽曲本体及び曲間部の楽曲データと設定されたテンポとに基づいて、図10に示すステップS8の処理においてジョギング用楽曲データが作成される。そして、作成されたジョギング用楽曲データを携帯音楽プレーヤー3が再生すると、初期テンポから最終テンポに向かって徐々にテンポが上昇しながら楽曲音が出力される。
以上説明したように、本実施形態によれば、楽曲配信サーバ1の制御部11は、各トレーニングコースにおいて、トレーニング期間(ステップ)に応じたジョギング時間及びテンポを設定し、このジョギング時間に応じた複数の楽曲本体データを選定し、この複数の楽曲本体データにより構成されるジョギング用楽曲データ全体のテンポが、設定されたテンポになるように調整して、トレーニング期間に応じたジョギング用楽曲データをそれぞれ作成し、このジョギング用楽曲データを、ユーザPC2によってダウンロードされるように記憶部12に記憶する。
従って、トレーニング期間に応じたジョギング時間に応じて複数の楽曲が選定され、この選定された楽曲の楽曲本体データにより構成されるジョギング用楽曲データのテンポが当該期間に応じたテンポになるように調整されるので、トレーニング期間が経過してユーザのジョギング能力が向上しても、当該ジョギング能力に見合う長さ及びテンポのジョギング用楽曲データを提供することができる。
また、楽曲配信サーバ1は、ネットワークNWを介してユーザPC2と接続され、制御部11は、このユーザPC2を用いてユーザにより選択された楽曲の楽曲選択リクエストを複数回受信し、これらの楽曲選択リクエストに示された複数の楽曲の楽曲本体データを、ジョギング用楽曲データを構成する楽曲本体データとして選定し、作成されて記憶部12に記憶されたジョギング用楽曲データをユーザPC2に送信する。
従って、ユーザにより選択された複数の楽曲の楽曲本体データによりジョギング用楽曲データが構成されるので、ユーザの嗜好に合ったジョギング用楽曲データを提供することができる。
また、制御部11は、ユーザPC2を用いてユーザにより選択されたアルバム等のアルバム等選択リクエストを受信し、このアルバム等選択リクエストに示されるアルバム等に含まれる複数の楽曲の楽曲本体データを、ジョギング用楽曲データを構成する楽曲本体データとして選定し、作成されて記憶部12に記憶されたジョギング用楽曲データをユーザPC2に送信する。
従って、ユーザにより指定されたアルバムに収録される複数の楽曲の楽曲本体データによりジョギング用楽曲データが構成されるので、ユーザの嗜好に合ったアルバムのジョギング用楽曲データを提供することができる。
また、制御部11は、各トレーニングコースにおいて、トレーニング期間が現時点からより未来にある期間ほど、トレーニング期間に応じたジョギング用楽曲データのテンポが長くなるようにテンポを設定するので、トレーニングをする期間が経過するに従って向上していくユーザのジョギング能力に見合ったテンポのジョギング用楽曲データを提供することができる。
また、制御部11は、各トレーニングコースにおいて、トレーニング期間が現時点からより未来にある期間ほど、トレーニング期間に応じたジョギング用楽曲データのジョギング時間が長くなるようにジョギング時間を設定するので、トレーニングをする期間が経過するに従って向上していくユーザのジョギング能力に見合った長さのジョギング用楽曲データを提供することができる。
また、制御部11は、特定のトレーニング期間に応じたジョギング用楽曲データの最後の楽曲本体データのテンポは、そのジョギング用楽曲データの最初の楽曲本体データのテンポより速くなるようにテンポを設定するので、ジョギングを行っている間に向上するユーザのジョギング能力に見合ったジョギング用楽曲データを提供することができる。
また、制御部11は、特定のトレーニング期間に応じたジョギング用楽曲データの最初の楽曲本体データから最後の楽曲本体データまでテンポが次第に速くなるよう、当該ジョギング用楽曲データを構成する楽曲本体データ毎にそれぞれの時間軸上における再生位置に対応してテンポを設定するので、時間の経過によるテンポの変化が自然となるジョギング用楽曲データを提供することができる。
また、制御部11は、メニュー選択によりユーザが選択したトレーニングコース(ユーザの目標)に応じて、トレーニング期間、ジョギング時間及びテンポを設定するので、ユーザの目標に見合ったジョギング用楽曲データを提供することができる。
また、制御部11は、各トレーニングコースにおいて、トレーニング期間が現時点からより未来にある期間ほど、トレーニング期間に応じたジョギング用楽曲データの楽曲本体の曲数が多くなるように曲数を設定する。
なお、上記実施形態においては、ウォームアップ曲及びクールダウン曲が未だダウンロードされていない場合には、ジョギング用楽曲データにウォームアップ曲及びクールダウン曲が挿入されるようになっていたが、何れか一方のみが挿入されるようにしても良いし、何れも挿入されないようにしても良い。
また、上記実施形態においては、ジョギング用楽曲データに前奏の曲間つなぎデータと後奏の曲間つなぎデータとが挿入されるようにしていたが、何れか一方のみが挿入されるようにしても良いし、何れも挿入されないようにしても良い。
また、上記実施形態においては、ジョギング用楽曲データの各楽曲本体データの曲間に曲間部のつなぎデータが挿入されるようにしていたが、一部の曲間のみに挿入されるようにしても良いし、全く挿入されないようにしても良い。
また、上記実施形態における楽曲配信サーバ1は、運動用楽曲として、ジョギングを行っている際に聴取されるジョギング用楽曲データを作成するようにしていたが、例えば、マラソンやウォーキング等を行っている際に聴取される運動用楽曲を作成するように構成しても良いし、エアロビクスやヨーガ、ピラティス・メソッド、マーシャルアーツ、ブートキャンプ、ダンス等を行っている際に聴取される運動用楽曲を作成するように構成しても良い。