以下、添付図面を参照して、本発明のコンテンツデータ再生方法、装置及びプログラムの一実施形態を説明する。
図1は、本発明の一実施形態に係るコンテンツ再生方法を適用可能なコンテンツ再生画面の一例を説明する図である。コンテンツ再生画面10は、オーディオデータとビデオデータとからなる複数のコンテンツデータ15を表示するためのコンテンツデータ表示部11を備える。コンテンツデータ表示部11において、前記複数のコンテンツデータ15は、マトリクス状に配列された複数のブロック14に表示される。各ブロック14は、それぞれ1つのコンテンツデータ15を表示しており、表示されたコンテンツデータ15のビデオデータに基づく動画を再生可能である。すなわち、各ブロック14に表示されるコンテンツデータ15は、それぞれ、動画再生機として機能する表示要素である。
コンテンツ再生画面10は再生コントロール部30を備えている。再生コントロール部30は、再生ボタン画像31、一時停止ボタン画像32及び停止ボタン画像33を備える。ユーザは、再生コントロール部30の各ボタン31〜33を用いて、複数のブロック14に配置された複数のコンテンツデータの再生動作を制御できる。再生ボタン画像31の操作に応じて、複数のコンテンツデータ15のオーディオデータに基づく複数のオーディオ信号が略同時再生されるとともに、該複数のコンテンツデータ15のビデオデータに基づく複数の動画がそれぞれ配置されたブロック14内で略同時再生される。各ブロック14内の動画上にはミュートボタン16が設けられており、ミュートボタン16を用いてコンテンツデータ毎にオーディオ信号のミュートを切り替えることができる。
ユーザは、コンテンツ再生画面10上で、所望のブロック14を選択し、選択したブロック14に配置するコンテンツデータ15を任意に変更できる。コンテンツデータ15の変更指示は一例として、コンテンツデータ選択部20から行う。コンテンツデータ選択部20は、ユーザにより選択されたブロック14に配置可能な1又は複数のコンテンツデータ15を示す選択候補情報を、一覧表示する。選択候補情報は、例えばコンテンツデータ15の動画のサムネイル画像21と、名称、評価、コメントなどを含む各種情報22とを含む各種属性情報である。ユーザが所望のブロック14を選択してコンテンツデータ選択部20にて1つコンテンツデータを選択した場合、選択されたブロック14に、選択されたコンテンツデータ15が表示される。
この実施例は、コンテンツ再生画面10において、複数のコンテンツデータ15の再生中(複数の動画の再生中)に、コンテンツデータ15の変更指示があった場合(新規にコンテンツデータが指定された場合)に、現在のオーディオ信号の再生位置を取得して、取得した現在のオーディオ信号の再生位置に基づいて、新たに指定されたコンテンツデータの動画の再生位置を決定し、そして、該決定した動画の再生位置から、新たに指定されたコンテンツデータの動画の再生を開始する点に特徴がある。
図2は、図1のコンテンツ再生画面を表示可能なコンテンツデータ再生装置100の電気的ハードウェア構成を示すブロック図である。コンテンツデータ再生装置100は、中央処理装置(CPU)110、リードオンリーメモリ(ROM)111、ランダムアクセスメモリ(RAM)112、表示制御回路113、操作検出回路114、通信インタフェース115(通信I/F)、オーディオインタフェース116(オーディオI/F)及び記憶装置117を備え、各部が通信バス118を介して接続される。
CPU110は、ROM111又はRAM112に記憶された各種ソフトウェアプログラムを実行して、装置100の全体動作を制御する。ROM111は、CPU110が実行する各種のプログラムや各種のデータなどを格納した不揮発性メモリである。RAM112は、CPU110が実行するプログラムのロード領域やワーク領域に使用される。
表示制御回路113には、例えば液晶ディスプレイからなる表示部120が接続される。表示制御回路113は、CPU110からの指示に基づいて、表示部120にコンテンツ再生画面10(図1)を含む各種情報を表示する。操作検出回路114には、例えばキーボード、マウスなどを含む操作部125が接続される。ユーザは、操作部125を用いて、表示部120の画面上に表示したGUI(graphical user interface)に対する各種操作を行う。CPU110は、操作検出回路114の検出した操作イベント取得して、該取得した操作イベントに対応する処理を行う。
装置100は、通信I/F115を介して通信ネットワーク300に接続される。通信I/F115は、例えばイーサネット(登録商標)など任意のネットワークインタフェースである。装置100は、更に、例えばUSB(Universal Serial Bus)端子など、周辺機器を接続する周辺機器インタフェース119を具備する。周辺機器は、例えばデジタル楽器、ビデオカメラ、或いは、オーディオレコーダなどである。
オーディオI/F116は、オーディオ信号の入力ポート及び出力ポートと、AD変換部と、DA変換部とを含み、図示外の入力機器(例えばマイク)及び/又は出力機器(例えばスピーカ)に接続される。装置100は、オーディオI/F116からアナログオーディオ信号を出力及び/又は入力できる。
記憶装置117は、例えばハードディスク、FD(フレキシブルディスク又はフロッピー(登録商標)ディスク)、CD(コンパクトディスク)、DVD(デジタル多目的ディスク)、あるいは、フラッシュメモリ等の半導体メモリからなり、装置100で使用する各種データを記憶し得る。
図3は、本発明の一実施形態に係るコンテンツデータ再生装置の処理構成を説明するブロック図である。ハードウェア140は、例えばパーソナルコンピュータ(PC)、タブレット型コンピュータ、スマートフォンなど任意の汎用コンピュータ装置であり、ディスプレイ(表示部)120及びスピーカ130を含む各種ハードウェア要素を具備する。
オペレーティングシステム(OS)150は、例えばWindows(登録商標)、iOS(登録商標)、Linux(登録商標)などの基本ソフトウェアであり、ディスプレイ(表示部)120を制御するディスプレイドライバ151とスピーカ130を制御するスピーカドライバ152とを含む、ハードウェア要素を制御する機能を提供する。
ブラウザ160は、例えばGoogleChrome(登録商標)、FireFox(登録商標)、Safari(登録商標)など周知のWebブラウザである。CPU110は、ブラウザ160に、図1に示すコンテンツ再生画面10を表示する。ブラウザ160には、ソフトウェア処理によりビデオ再生(動画再生)処理を実現するビデオ再生処理部161と、ソフトウェア処理によりオーディオ再生処理を実現するオーディオ再生処理部162とが具備される。ビデオ再生処理部161は、前記コンテンツ再生画面10の各ブロック14に表示されたコンテンツデータ15のビデオデータに基づく動画の再生処理を行う。オーディオ再生処理部162は、各ブロック14に表示されたコンテンツデータ15のオーディオ再生処理を行う。すなわち、複数のビデオファイル170に基づく動画の再生と、複数のオーディオファイル180に基づくオーディオ信号の再生は、それぞれ、ビデオ再生処理部161とオーディオ再生処理部162という独立したモジュールにより、別々に管理される。
複数のビデオファイル170及び複数のオーディオファイル180は、再生対象となる複数のコンテンツデータ15に含まれるビデオデータ及びオーディオデータのデータファイルである。具体的には、コンテンツ再生画面10の各ブロック14に現在配置されているコンテンツデータ15のビデオデータ及びオーディオデータのデータファイルである。複数のビデオファイル170及び複数のオーディオファイル180は、適宜のメモリ(RAM112又は記憶装置117)に記憶される。
ビデオ再生処理部161は、再生すべき1又は複数のビデオファイル170に基づく1又は複数の動画を略同時に再生して、ディスプレイドライバ151に出力する。オーディオ再生処理部162は、再生すべき1又は複数のオーディオファイル180を、1系統のオーディオ信号(例えば2チャンネルのステレオ信号)に混合して再生し、スピーカドライバ152へ出力する。オーディオ再生処理部182は、各種エフェクト付与、音量制御などの音特性制御や、複数のオーディオ信号のミックスダウンなども行う。
一例として、ブラウザ160は、“HTML5”仕様に準拠するWebブラウザであり、この仕様のWebブラウザに実装されたマルチメディア要素を用いたソフトウェア処理により、ビデオ再生処理部161とオーディオ再生処理部162とを実現できる。この場合、ビデオ再生処理部161は、ビデオファイル170毎にビデオ再生モジュールを用意して、描画処理によりビデオ再生モジュール毎の動画を生成する。ビデオ再生モジュール毎に生成された動画は、Canvas要素を用いて、それぞれ、ブラウザ160上の描画領域(各ブロック14に対応する領域)に描画される。つまり、ビデオ再生処理部161は、ビデオファイル170毎に独立した複数のビデオ再生処理を行い、各ビデオ再生処理により生成した複数の動画をブラウザ160上に並列的に出力する。
オーディオ再生処理部162は、複数のAudioNode要素と、それらの接続状態を管理するAudioContextからなり、複数のAudioNode要素とそれらの接続状態により1つのオーディオ再生処理を実現する。複数のAudioNode要素は、オーディオファイル180毎のオーディオ再生機や、各種エフェクト付与要素や、音量制御要素や、ミキサ要素などといった各種オーディオ処理要素である。オーディオファイル180毎の複数のオーディオ信号は、フィルタ処理や音量制御等された後、例えば2チャンネルステレオ信号にミックスダウンして出力される。
再生制御モジュール163は、ユーザによる再生指示(再生コントロール部30の各ボタン31〜33の操作)に基づいて、ビデオ再生処理部181のビデオファイル170毎のビデオ再生処理と、オーディオ再生処理部162のオーディオファイル180毎のオーディオ再生処理とのそれぞれの動作を制御する。制御される動作は、再生開始、再生一時停止、および、再生停止を含む。
再生位置制御モジュール164は、オーディオ再生処理部162から現在のオーディオ信号の再生位置を取得して、取得した現在のオーディオ信号の再生位置に基づいて、ビデオファイル170毎の動画の再生位置を決定する。再生位置制御モジュール164は、決定した動画の再生位置からビデオファイル170毎の動画の再生を開始するように、ビデオ再生処理部161を制御する。この再生位置制御モジュール164が、オーディオ信号と動画を同期させる同期機構として機能する。ここでオーディオ信号と動画の同期とは、オーディオ信号の再生位置に動画の再生位置を合わせることである。この同期機構が定期駆動されることにより、オーディオ信号の再生位置と動画の再生位置とにズレが生じる毎に、オーディオ信号の再生位置に合わせて動画の再生位置が補正される。なお、再生位置は先頭位置からの再生経過時間に対応する。
図4は、コンテンツデータ250のデータ構成を説明する図である。複数のコンテンツデータ250が適宜のメモリ(RAM112又は記憶装置117)に記憶される。1つのコンテンツデータ250は、ビデオファイル170へのリンクデータ251、及び、当オーディオファイル180へのリンクデータ252を持ち、ビデオファイル170及びオーディオファイル180に対応付けられている。ビデオファイル170及びオーディオファイル180は、コンテンツデータ250とは別の領域(ビデオ/オーディオデータベース)に記憶される。ビデオファイル170及びオーディオファイル180は、それぞれ独立したファイルとして、分離して記憶される。なお、ビデオファイル及びオーディオファイルが、対応するコンテンツデータ250の中に含まれてもよい。
また、コンテンツデータ250は、一例として、開始時間データ253と、音量データ254とを持っていてもよい。開始時間データ253は、コンテンツデータの先頭位置を規定するデータ(先頭位置データ)である。コンテンツデータ250を先頭から再生するとき、開始時間データ253の示す時間位置から、当該コンテンツデータ250の再生が開始する。開始時間データ253は、同時に再生すべき複数のコンテンツデータ250相互の再生開始タイミングを揃えるように設定される。音量データ254は、コンテンツデータ250の音量を表しており、典同時に再生すべき複数のコンテンツデータ250相互の音量を揃えるように設定される。なお、コンテンツデータの再生時に、同時に再生すべき複数のコンテンツデータの再生開始タイミングと音量とを揃えることができれば、開始時間データ253と音量データ254とを持たない構成であってもよい。一例として、ビデオファイル及びオーディオファイルをノーマライズ(自動調整)した後にコンテンツデータ250を記憶する場合、開始時間データ253と音量データ254とは不要である。別の例として、ユーザが指定した開始時間と音量とによりビデオファイル及びオーディオファイルを修正(手動調整)した後に演奏コンテンツデータ250を記憶する場合、開始時間データ253と音量データ254とは不要である。
1つのコンテンツデータ250は、更に、サムネイル画像、エフェクタデータ、評価、ユーザコメント、タグ等を含む各種属性情報255を持ってよい。
次に、コンテンツ再生画面10において、コンテンツデータの変更が指示されたときの動作について説明する。図5は、コンテンツデータ再生装置100のCPU110が実行するコンテンツデータ変更処理を示すフローチャートである。CPU110は、ディスプレイ(表示部)120に、複数のコンテンツを表示したコンテンツ再生画面10を表示し(ステップS1)、コンテンツ再生画面10上で1つのブロック14が選択された場合(ステップS2)、コンテンツデータ選択部20に、選択されたブロック14に配置可能な1又は複数のコンテンツデータの選択候補情報を表示する(ステップS3)。ユーザはコンテンツデータ選択部20から1つのコンテンツデータを選択する(ステップS4)。
ステップS5において、CPU110は、前記ステップS2で選択されたブロック14に現在配置されているコンテンツデータがあるかどうか調べる。選択されたブロック14にコンテンツデータが配置されていない場合(ステップS5のNO)、ステップS6において、CPU110は、前記選択されたブロック14に、前記ステップS4にて選択されたコンテンツデータを配置する。CPU110は、該配置されたコンテンツデータのビデオファイル170とオーディオファイル180とを取得して、取得したビデオファイル170をビデオ再生処理部161にセットし、取得したオーディオファイル180をオーディオ再生処理部162にセットする。
ステップS7において、CPU110は、オーディオ再生処理部162から現在のオーディオ信号の再生位置を取得し、該取得した現在のオーディオ再生位置に基づいて、再生対象として新たに指定されたコンテンツデータの動画の再生位置を決定し、該決定した動画の再生位置に基づいて、オーディオ再生処理部162による動画の再生位置を移動する。再生対象として新たに指定されたコンテンツデータが開始時間データ253を持つ場合、CPU110は、当該ステップS7において、前記取得した現在のオーディオ再生位置と、そのコンテンツデータが持つ前記開始時間データ253に基づいて、動画の再生位置を決定する。このステップS7の処理により、オーディオ再生処理部162から取得した現在のオーディオ再生位置に、新たに指定されたコンテンツデータの動画の再生位置を合わせることができる。このステップS7が、前記複数のコンテンツデータの再生中に、新たなコンテンツデータが再生対象に指定された場合、前記オーディオ信号の現在の再生位置を取得するステップと、前記取得したオーディオ信号の現在の再生位置に基づいて、前記新たに指定されたコンテンツデータの動画の再生位置を決定するステップとして機能する。また、CPU110は、当該ステップS7において、オーディオ再生処理部162から取得した現在再生中のオーディオ再生位置に基づいて、再生対象として新たに指定されたコンテンツデータのオーディオ信号の再生位置も決定する。
そして、コンテンツ再生画面10において複数のコンテンツが再生中である場合(ステップS8のYES)、CPU110は、ステップS9において、前記ステップS7で決定した動画の再生位置から、今回再生対象として新たに指定されたコンテンツデータのビデオファイル170に基づく動画の再生を開始する。また、CPU110は、前記ステップS7で決定したオーディオ信号の再生位置から、今回再生対象として新たに指定されたコンテンツデータのオーディオファイル180に基づくオーディオ信号の再生を開始する。これにより、今回再生対象として新たに指定されたコンテンツデータは、現在再生中のオーディオ再生位置に合わせた再生位置から再生される。例えば、既に再生中の複数のコンテンツデータの現在の再生位置が先頭から10秒経過の位置であった場合、新たに追加されたコンテンツデータは、先頭から10秒経過後の位置から再生される。従って、ユーザは、複数のコンテンツデータをリアルタイムで視聴しながら、再生中の音声及び映像を途切れさせることなく自然に、コンテンツデータを変更できる。コンテンツデータのビデオ再生位置を、現在再生中のオーディオ再生位置に合わせるようにしているので、複数の動画同士の再生位置を合わせる処理に比べて、処理負担が少ない。したがって、複数のコンテンツデータの再生を継続したまま行うコンテンツデータの変更を円滑に行うことができる。
一方、コンテンツ再生画面10において複数のコンテンツデータが再生中でない場合(ステップS8のNO)、CPU110は、処理を終了する。この場合、CPU110は、リアルタイム再生を行わず、選択されたブロック14に、新たに指定されたコンテンツデータを表示するのみである。なお、コンテンツ再生画面10上の複数のコンテンツが現在再生停止中の場合、前記ステップS27で設定する新たに指定されたコンテンツデータの再生位置は、そのデータの先頭又は開始時間データ253の示す時間位置である。また、コンテンツ再生画面10上の複数のコンテンツが一時停止中の場合、今回新たに追加されたコンテンツデータの再生は、その一時停止位置から開始する。
前記ステップS2で選択されたブロック14にコンテンツデータが配置されている場合(ステップS5のYES)、CPU110は、ステップS10において、選択されたブロック14のコンテンツデータが再生中かどうか調べる。現在配置されているコンテンツデータが再生中でない場合(ステップS10のNO)、CPU110は、ステップS11において、選択されたブロック14におけるコンテンツデータの配置を解除してから、前記ステップS6〜S9を行う。
一方、前記ステップS2で選択されたブロック14のコンテンツデータが再生中の場合(ステップS5のYES、ステップS10のYES)、CPU110は、ステップS12において、選択されたブロック14のコンテンツデータの再生を停止して、前述したステップS11にて、コンテンツデータの配置を解除して、前記S6〜S9を行う。この場合、選択されたブロック14のコンテンツデータが、別のコンテンツデータに変更される。この場合も、複数のコンテンツデータをリアルタイム再生しながら、コンテンツデータを変更ができる。
上記の実施例では、ステップS7の処理構成として、オーディオ再生処理部162のオーディオ再生位置を基準にして、コンテンツデータの動画の再生位置を決定する構成を説明した。図6は、その変形例であり、ブラウザ160が提供する時計機能165の時間情報を基準にして、コンテンツデータの動画の再生位置を決定するようになっている。この場合、コンテンツデータの再生中に、新たにコンテンツデータが選択されると、再生時間管理部166は、時計165から時間情報を取得し、再生位置補正部167は、取得した時間情報に基づいて、新たに指定されたコンテンツデータの動画の再生位置を決定し、この決定した動画の再生位置に基づいて、ビデオ再生処理部161における動画の再生位置を制御する(前記ステップS7)。従って、この場合も、ユーザは、複数のコンテンツデータをリアルタイムで視聴しながら、再生中の音声及び映像を途切れさせることなく自然に、コンテンツデータを変更できる。時計165は、ブラウザ160が提供する時計機能に限らず、コンテンツデータ再生の基準となる時間を供給できさえすれば、どのような時計手段により構成されてもよい。
本発明の第2実施例は、コンテンツデータとして演奏コンテンツデータを適用するものである。この場合、演奏コンテンツデータ15は、音楽演奏を表す動画(ビデオデータ)と演奏音(オーディオデータ)とからなる。演奏音は、例えば楽器の演奏音や、歌唱音声など、音楽演奏を表す何らかのオーディオデータである。ユーザは、コンテンツ再生画面10に配置した複数の演奏コンテンツデータ15の組み合わせにより1つの「ソング」を作成し得る。1つの「ソング」は、例えば1曲分の音楽作品(楽曲)である。
コンテンツデータとして演奏コンテンツデータを適用する場合、前記図1において、マトリックス状に配列された複数のブロック14は、一方の軸(図1の例では横軸)に音楽作品を構成する時間軸13をとり、他方の軸(図1の例では縦軸)に前記音楽作品を構成する複数の演奏音の種類(パート)12をとる。時間軸13は、一例として、1つのソングを構成する複数の曲構成要素毎の時間区間(セクション)を単位とする。なお、縦軸にセクションをとり、横軸にパートをとるように構成してもよい。また、マトリックス状に配列された複数のブロック14の縦軸及び横軸に対応付ける要素は、例示したパート12とセクション13に限定されず、音楽作品を分類及び管理するための2種類の要素でさえあれば、どのようなものでもよい。
各セクション13は、それぞれ、例えば「イントロ」、「Aメロ」、「Bメロ」・・・「エンディング」といった曲構成要素に対応付けられている。1つのセクション13に属するブロック14には、そのセクション13に対応付けられた曲構成要素を内容として持つ演奏コンテンツデータ15が配置される。各セクション13は、一例として図上左から右へ向かって、1つのソングの時間進行を表すように、時系列順に配列される。各セクション13は、それぞれ所定の再生時間長を持ち、1つのソング全体の再生時間は、複数のセクション13の再生時間長全体で規定される。
また、各パート12は、それぞれ、例えばボーカル(「Vo」)、キーボード(「KB」)、ベース(「Ba」)、ドラムス(「Dr」)・・・など、演奏音の種類(すなわち楽器種類)に対応付けられている。1つのパート12には、そのパートに対応する演奏音を持つ演奏コンテンツデータが配置される。画面上におけるパート12の配列順は、任意に設定されてよい。
各ブロック14に配置される演奏コンテンツデータ15は、具体的には、或る曲の或るメロディー部分(例えばAメロ)のボーカルパートであるとか、或いは、該メロディー部分のドラムスの演奏などであり得る。
演奏コンテンツデータの再生は、例えばセクション13単位で行う。ユーザは、1つのセクション13に属する複数のパート12(1列のブロック14)の複数の演奏コンテンツデータを再生している最中に、そのセクションに属するいずれか1つのパート12(いずれか1つのブロック14)を選択して、選択したブロック14の演奏コンテンツデータを、別の演奏コンテンツデータに変更指示できる。ユーザにより演奏コンテンツデータの変更が指示されたとき、CPU110は、該当するブロック14の演奏コンテンツデータの再生を停止して(前記ステップS12)、その演奏コンテンツデータの配置を解除して(前記ステップS11)、選択されたブロック14に、新たに指定した演奏コンテンツデータを配置する(前記ステップS6)。そして、CPU110は、オーディオ再生処理部162から現在のオーディオ信号の再生位置を取得し、該取得した現在のオーディオ信号の再生位置に基づいて、新たに指定されたコンテンツデータの動画の再生位置を決定し(前記ステップS7)、該決定した動画の再生位置から、新たに指定されたコンテンツデータの動画の再生を開始する(ステップS8、S9)。なお、1つのソングを再生対象としている場合、CPU110は、前記ステップS7において、ソングの開始時間を加味して、新たに指定されたコンテンツデータの動画の再生位置を決定する。
前記の変更処理により、ユーザは、或るセクション(例えばイントロなど)に関する複数パートの演奏コンテンツデータ(演奏動画及び演奏音)をリアルタイムで視聴しながら、再生中の演奏動画及び演奏音を途切れさせることなく自然に、その一部のパートを別の演奏コンテンツデータに変更できる。ブロック14内で再生中の演奏コンテンツデータを別の演奏コンテンツデータに置換する場合、再生中の複数パートのうち1つのパートの演奏コンテンツデータ(変更前)が、その演奏の途中から、別の演奏コンテンツデータ(変更後)の演奏に切り替わる。このとき、変更先の演奏コンテンツデータの動画の再生位置を、現在再生中のオーディオ信号の再生位置に合わせるようにしているので、音楽の演奏を聴覚上破綻させることなく、スムーズな演奏の切り替えを実現できる。
この実施例のようにコンテンツデータとして演奏コンテンツデータを適用した場合、ユーザは、複数の演奏コンテンツデータの動画再生により、どんな演奏が行なわれているかを視覚的に理解しながら、一部のパートを別の演奏コンテンツデータに変更できる。動画により視覚的に演奏を理解しながら、演奏コンテンツデータを変更できるので、複数の演奏コンテンツデータを任意に組み合わせて1つのソング(楽曲、音楽作品)を作成する音楽作成を、簡単に楽しむことができるようになる。かかる簡便な音楽作成ツールを提供することにより、演奏の技術の程度に関わらず、音楽作りに興味を持つたくさんの人たちが、音楽制作というクリエイティブな楽しみを味わうことができる。
第3の実施例は、本発明のコンテンツデータ再生装置を、音楽作成システムに適用する。この第3の実施形態において、コンテンツデータは、前述した演奏コンテンツデータであり、音楽作成システムは、複数の演奏コンテンツデータを任意に組み合わせて1つのソング(楽曲、音楽作品)を作成するためのシステムである。図7は音楽作成システムの全体構成図である。音楽作成システムは、複数のクライアント端末100とコンテンツ提供サーバ200とを通信ネットワーク300によりデータ通信可能に接続して成る。クライアント端末100は、図1のコンテンツ再生画面10を表示部に表示し、本発明のコンテンツデータ再生装置として機能するコンピュータであり、汎用のパーソナルコンピュータ(PC)、タブレット型コンピュータ、スマートフォンなど、任意のコンピュータ装置を適用できる。
コンテンツ提供サーバ200は、通信ネットワーク300に接続されたサーバコンピュピュータであり、後述するソングコンテンツデータベースを備え、クライアント端末100に演奏コンテンツデータを含む各種データを提供できる。また、サーバ200は、クライアント端末100を本発明のコンテンツデータ再生装置として機能させるためのアプリケーションプログラムの提供や、コンテンツ提供サーバ200の提供する各種サービスを利用するユーザの管理などを行う。
通信ネットワーク300は、例えばインターネットであるが、それに限らず、コンテンツ提供サーバ200と複数のクライアント端末100との間で後述する各種データの通信を行う能力を有してさえいれば、周知のどのようなデータ通信ネットワークでもよい。
図8は、コンテンツ提供サーバ200に備わるソングコンテンツデータベース210のデータ構成例を説明する図である。図8に示す通り、ソングコンテンツデータベース210は、複数のソングコンテンツ220を記憶する。各ソングコンテンツ220はそれぞれ名称(ソング名)221が付けられている。1つのソングコンテンツ220は、1曲分の音楽作品に対応する。
1つのソングコンテンツ220は、複数のセクションデータ230により構成される。1ソング内の複数のセクションデータ230は、イントロ、Aメロ、Bメロ・・・エンディング等のセクション13毎に1つずつ用意される。1つのセクションデータ230は名称(セクション名)231と、再生時間データ232を有する。再生時間データ232は、対応するセクション13の再生時間長を表すデータである。例えば、或る「イントロ」セクションの時間長が15秒とすると、その再生時間データ232は「15秒」を表すデータである。
1つのセクションデータ230は、複数のパートデータ240により構成される。1つセクション230内の複数のパートデータ240は、ボーカル、キーボード、ベース、ドラムス・・・など楽器種類(パート12)毎に1つずつ用意される。各パートデータ240は名称(「ボーカル」など、対応するパートのパート名)241を持つ。1つのパートデータ240には、1又は複数の演奏コンテンツデータ250が登録される。1つのパートデータ240に登録される1又は複数の演奏コンテンツデータ250は、対応するブロック14(1つのセクション13の1つのパート12)に配置可能な演奏コンテンツデータ250の選択候補である。パートデータ240に登録された1又は複数の演奏コンテンツデータ250のうち1つの演奏コンテンツデータ250が、対応するブロック14(1つのセクション13の1つのパート12)に配置される。
1つの演奏コンテンツデータ250の構成は、図4を参照して説明したコンテンツデータ250と同様であり、上記を援用して説明を省略する。
なお、各種属性情報255は、演奏コンテンツデータ250毎に記憶する構成に限らず、パートデータ240毎、セクションデータ230毎、或いは、ソングコンテンツ220毎に記憶されてもよいし、これらのデータ220〜250の全て又は一部に記憶されてもよい。
1つのソングを表すデータ構造の別の例として、コンテンツ提供サーバ200は、1又は複数のソングシナリオ260を記憶してもよい。前述したソングコンテンツ220が、各ブロック14に配置可能な演奏コンテンツデータ250の集合であるのに対して、ソングシナリオ260は、ソングコンテンツ220の可変要素、すなわち、各ブロック14に配置する1つの演奏コンテンツデータ250を特定したデータである。ソングシナリオ260は、ユーザが任意に選択した或る複数の演奏コンテンツデータ250の組み合わせからなる1つの音楽作品を表す。
図9は、ソングシナリオ260のデータ構成例である。1つのソングシナリオ260は、その名称(ソングシナリオ名)261と、1つのソングコンテンツ220へのリンク262とを持っており、ソングコンテンツデータベース210内の1つのソングコンテンツ220に対応付けられている。
1つのソングシナリオ260は、複数のセクションデータ263からなり、各セクションデータ263は複数のパートデータ264からなる。セクション及びパートの構成は、対応付けられた1つのソングコンテンツ220と同様である。そして、各パートデータ264は、1つの演奏コンテンツデータ250へのリンクデータ265を内容とする。リンクデータ265は、当該パートデータ264に対応するパートデータ240に選択候補として登録された複数の演奏コンテンツデータ250のうち1つを、当該リンクデータ265が属する1つのパート(つまり1つのブロック14)に配置する1つの演奏コンテンツデータ250として指定する。
ソングシナリオ260の各パートデータ264には、演奏コンテンツデータに対する開始時間オフセットデータ266と音量オフセット267とが設定される。開始時間オフセットデータ266は、演奏コンテンツデータの規定の開始時間(例えばデータ先頭又は開始時間データ253)からの調整値(オフセット)であり、音量オフセット267は演奏コンテンツデータの規定の音量値(例えば音量データ254)からの調整値(オフセット)である。更に演奏コンテンツデータに対するエフェクト設定や、コメント、評価等の各種属性情報を、前述したソングコンテンツ220とは独立に、ソングシナリオ260に記憶するようにしてもよい。
次に、クライアント端末100のコンテンツ再生画面10において、ユーザがソングコンテンツ220又はソングシナリオ260(以下、両者を区別しない場合は「ソング」と総称する)を任意に作成及び編集する手順について説明する。図10は、ソングを作成及び編集する処理全体を示すシーケンス図であり、クライアント端末100とサーバ200との通信により処理が進行する。
ステップS13において、クライアント端末100は、通信ネットワーク300経由でコンテンツ提供サーバ200をアクセスし、サーバ200が提供するソング編集・作成サービスにログインする。例えば、クライアント端末100のCPU110は、Webブラウザ160を用いて表示部120にサーバ200から取得したログインインページを表示し、ログインページにおいて例えばユーザ名と認証パスワードを入力することで、サーバ20000のサービスにログインする。
ステップS14において、サーバ200は、ログインしたクライアント端末100にフロントページの情報を送信する。クライアント端末100は、Webブラウザ160を用いて表示部120にフロントページを表示して、ユーザによるソングコンテツ又はソングシナリオの選択を受け付ける。
一例として、フロントページは、入力された検索語に基づきソングコンテンツ220の選択候補を表示する検索画面である。検索語は、例えばソング名221や、演奏コンテンツデータのタグ等の属性情報255を用いる。検索結果は、例えばユーザによる評価順、検索語との一致度の高い順、名前順、作成日付順、作成者に基づく順番など、任意の順序で表示してよい。フロントページの別の例として、入力された検索語に基づき1つのソングシナリオ260を選択できるようにしてもよい。検索語としては、例えばソングシナリオ名261や、演奏コンテンツデータのタグ等の属性情報255を利用できる。
更に、別の例として、先ず、1つのソングコンテンツ220を検索及び選択した後に、そのソングコンテンツ220にリンクする全てのソングシナリオ260を一覧表示して、その一覧表示中から1つのソングシナリオ260を選択できるようにしてもよい。更に別の例として、フロントページから演奏コンテンツデータ250を検索できてもよい。
フロントページの表示構成例として、ユーザたちの間での情報共有、メッセージ交換、ユーザの検索などを行うソーシャルネットワーク機能を備えてもよい。ソーシャルネットワーク機能を用いて、例えば、自作のソングの提示、推薦、他のユーザによる活動の提示などを行い得る。
クライアント端末100は、前述したフロントページにおいて選択されたソングをサーバ200に通知する(ステップS15)。サーバ200は、クライアント端末100に対して、該選択されたソングに関するコンテンツ再生画面10を送信する(ステップS16)とともに、コンテンツ再生画面10に必要な1又は複数の演奏コンテンツデータのビデオファイル及びオーディオファイルをクライアント端末100に送信する(ステップS17)。クライアント端末100は、サーバ200から送信された1又は複数の演奏コンテンツデータのビデオファイル170及びオーディオファイル180(図8参照)を、RAM112又は記憶装置117に保存する。そして、クライアント端末100のCPU110は、前記ステップS16、S17で送信された情報に基づいて、表示部120にコンテンツ再生画面10を表示し、且つ、各ブロック14内に演奏コンテンツデータ15を表示する。
ソングコンテンツ220が選択された場合は、一例として、前記ステップS15において、サーバ200は、コンテンツ再生画面10の各ブロック14に初期設定として配置されている演奏コンテンツデータに該当するビデオファイル170及びオーディオファイル180を送信する。別の例では、各ブロック14に演奏コンテンツデータが初期設定されておらず、サーバ200は前記ステップS17において演奏コンテンツデータ250を送信しない。その場合。各ブロック14は演奏コンテンツデータが未配置(すなわち空の状態)である。
ソングシナリオ260が選択された場合は、前記ステップS17において、サーバ200は、そのソングシナリオ260を構成する複数の演奏コンテンツデータ250(すなわち各ブロック14に配置されている演奏コンテンツデータ250)のビデオファイル170及びオーディオファイル180を送信する。
別の例として、前記ステップS17において、サーバ200は、演奏コンテンツデータのビデオファイル170及びオーディオファイル180をクライアント端末100に送信せずに、例えば各ブロック14内に表示する情報(例えば動画の一場面の静止画像データ)のみをサーバ200からクライアント端末100に送信しておく。その後、必要に応じて(例えば再生指示に応じて)、サーバ200が、ビデオファイル170及びオーディオファイル180をクライアント端末100に送信してもよい。
ステップS18において、ユーザは、コンテンツ再生画面10の所望のブロック14に、ユーザが新規に作成した演奏コンテンツデータを新規登録(すなわちアップロード)できる。演奏コンテンツデータ250の新規登録手順の一例について説明する。なお、クライアント端末100は、前記ステップS18の新規登録処理を、前記ステップS17において演奏コンテンツデータを受け取ってからサービスからログアウトするまで(後述のステップS26)の間、任意のタイミングで行われてよい。
図11は、クライアント端末100側で実行される演奏コンテンツデータ250の新規登録手順を説明するフローチャートである。ユーザは、まず、新規登録すべき演奏コンテンツデータを作成する。ユーザは、コンテンツ再生画面10上で、登録先となるブロック14を1つ選択し、ソング又はセクションの再生を指示し(ステップS27)、再生音に合わせて、演奏を録画及び録音する(ステップS28)。CPU110は、録画及び録音された演奏を内容とする演奏コンテンツデータを作成し、作成した演奏コンテンツデータを適宜のメモリ(例えばRAM112又は記憶装置117)に一時記憶する。前記ステップS27で1つのソング全体の再生を指示する場合は、再生対象として1つのソングシナリオ260を指定する。1つのセクションを再生する場合は、再生対象として1つのソングコンテンツデータ又はソングシナリオ中のセクションを指定する。なお、ソング又はセクションを再生するためのテンポは、ソング毎に予め決められているものとする。
前記ステップS27において、ソング又はセクションの再生処理は、一例として、全パート12のオーディオ再生と動画再生とを行う。なお、演奏コンテンツデータの再生処理の細部は後述する。別の例として、この再生処理は、動画再生せずにオーディオ再生処理のみを行う。また、別の例において、この再生処理は、登録先となるブロック14に対応するパートを除いた複数パート12を再生(すなわちマイナスワン演奏)することであってよい。更に別の例として、この再生処理は、クリック音のみを再生することであってもよい。
また、前記ステップS28の録画及び録音処理において、撮影機器は、例えばビデオカメラ、PCあるいはスマートフォンなどのクライアント端末100とは別体の撮影機器、若しくは、クライアント端末100に内蔵の撮影機器(例えばPCのWebカメラ)など任意の撮影機器である。また、録音機器は、例えばオーディオレコーダや録音機能を有するデジタル楽器等などクライアント端末100とは別体の録音機器、もしくは、クライアント端末100に内蔵の録音機器(例えば端末本体に内蔵のマイク)など任意の録音機器である。ユーザは、録画と録音とを、同時に行っても良いし、それぞれ独立して行っても良い。なお、ビデオファイルの代わりに1又は複数の静止画ファイルを作成し、演奏コンテンツデータ15の動画の代わりに、1又は複数の静止画ファイルをブロック14内で再生するように構成してもよい。また、オーディオファイルの代わりに、演奏内容を表すMIDIファイルを作成してもよい。
前記ステップS28の録画及び録音処理は、一例として、コンテンツ再生画面10上で行い得る。この場合、ユーザは、今回の新規登録先に指定されたブロック14に、撮影中の映像をリアルタイムで表示しながら、録画及び録音を行う。この構成によれば、自分で演奏するパート以外の複数のパートを表す動画をコンテンツ再生画面10上で再生しつつ、同じ画面10上で自身の演奏を録画・録音できるので、あたかも自分以外のパートの演奏ととも自分の演奏を行っているかのような、臨場感及び/又は一体感を持って、演奏を録画・録音することができる。更に、コンテンツ再生画面10は、前記自分以外のパートの演奏として、通信ネットワーク300を介して他のクライアント端末100からリアルタイム配信された他人のリアルタイム演奏を表示できるように構成してもよい。なお、リアルタイム入力された演奏コンテンツデータ250(動画及び音声)を、通信ネットワーク300越しに複数のクライアント端末100間でリアルタイムデータ通信すること自体は、周知技術を利用して実現できる。この構成によれば、通信ネットワーク300を介して接族された複数のクライアント端末100のユーザは、コンテンツ再生画面10上でお互いのリアルタイム演奏を視覚的に確認しながら、該通信ネットワーク300越しに略リアルタイムで合奏を行い、その合奏を録画及び録音できる。
コンテンツ再生画面10上で録画及び録音を行う場合の変形例として、撮影中の演奏映像を、例えばポップアップウィンドウなど、コンテンツ再生画面10とは別のウィンドウに表示するようにしてもよい。この場合、当該ユーザ自身の演奏以外のパート12は、ブロック14内での動画再生を行わず、オーディオ再生のみを行うとよい。こうすることで、クライアント端末100にとって処理負担の軽い録画・録音環境を提供できる。
ステップS29において、クライアント端末100は、前記ステップS28で作成した演奏コンテンツデータのビデオファイル及びオーディオファイルを、コンテンツ提供サーバ200にアップロードする。コンテンツ提供サーバ200は、アップロードされたビデオファイル170及びオーディオファイル180を所定の保存場所(ビデオ/オーディオデータベース)に記憶するとともに、ソングコンテンツデータベース210内の登録先ブロック(或るソングの或るセクション内の或るパート)に、アップロードされた演奏コンテンツデータ250を登録する。これにより、今回新規に作成した演奏コンテンツデータが当該ブロックに配置可能な選択候補の1つとして新規登録される。
前記ステップS29のアップロードに際して、ユーザは、登録先のセクション及びパートと、名称と、ビデオファイル及びオーディオファイルの再生開始位置及び音量とを手動で指定できる。別の例として、サーバ200が適当な再生開始位置及び音量を自動的に算出してもよい。サーバ200は、ユーザに指定された又は自動的に算出した再生開始位置及び音量をソングコンテンツ220内の当該演奏コンテンツデータ250に含まれる開始時間253及び音量データ254として設定する。このように、登録時に演奏コンテンツデータ250に含まれる開始時間253及び音量データ254を設定しておくことで、演奏コンテンツ再生時の処理負荷を減らす。
また、一例として、コンテンツ提供サーバ200は、必要に応じて、アップロードされたビデオファイルの画面サイズを縮小することにより、データサイズを削減してもよい。別の例として、アップロードする演奏コンテンツデータは、ビデオファイル又はオーディオファイルのいずれか一方だけであってもよい。オーディオファイルがアップロードされなかった場合、コンテンツ提供サーバ200は、ビデオファイルに含まれるオーディオデータから、演奏コンテンツデータ用のオーディオファイルを作成してもよい。周知の通り、一般的なビデオファイルは撮影時の音を録音したオーディオファイルを含んでいる。従って、ビデオファイルの録画とは独立してオーディオファイルの録音を行っていない場合であっても、録画したビデオファイルから、オーディオファイルを分離することにより、分離したオーディオファイルを、演奏コンテンツデータを構成するオーディオファイルに利用できる。
ステップS30において、クライアント端末100は、ユーザ自身によって行われた演奏コンテンツデータの一覧に、今回アップロードされた演奏コンテンツデータを追加表示して、ユーザによる調整を受け付ける。ユーザは、コンテンツ再生画面10において、アップロードした演奏コンテンツデータの再生開始位置と音量とを手動調整し得る。ソングシナリオ260の作成時には、この調整にて再生開始時間と音量のオフセット266,267を設定し得る。調整結果はサーバ200に反映される。
ステップS31において、クライアント端末100は、今回アップロードされた演奏コンテンツデータを通信ネットワーク300上のユーザに向けて公開する。これにより、コンテンツ再生画面10の演奏コンテンツデータ選択部20には、選択肢の1つとして今回アップロードされた演奏コンテンツデータのサムネイルを含む各種情報が表示される。ユーザは、自身でアップロードした演奏コンテンツデータの公開範囲を制限せずに不特定多数のユーザに公開し得る。また、ユーザは、自身でアップロードした演奏コンテンツデータの公開範囲を制限してもよい。以上で、演奏コンテンツデータの新規登録のための処理が終了する。
図10に戻ると、ユーザは、コンテンツ再生画面10上で、選択したブロック14内の演奏コンテンツデータ15を、別の演奏コンテツデータ15に変更できる(ステップS19〜S22)。コンテンツ再生画面10上でブロック14が選択される度に、選択されたブロック14を対象にステップS19〜S22が繰り返される(ステップS23)。
前記ステップS19〜S22による演奏コンテツデータの変更処理に関する動作を説明する。まず、ユーザによるブロック選択に応じて、クライアント端末100は、ユーザに選択されたブロックの情報をサーバ200に送信する(ステップS19)。そして、サーバ200は、選択されたブロックに配置可能な1又は複数の演奏コンテンツデータ250の情報を、選択候補情報として、クライアント端末100に送信する(ステップS20)。
選択候補情報は、当該選択されたブロックに対応するパートデータ240に登録されている1又は複数の演奏コンテンツデータ250それぞれの、サムネイル画像、名称、作者名、評価など属性情報255を含む。クライアント端末100のCPU10は、コンテンツ再生画面10上の演奏コンテンツデータ選択部20に、受信した選択候補情報に基づく、1又は複数の演奏コンテンツデータの情報を提示する。
ユーザは、演奏コンテンツデータ選択部20から所望の1つの演奏コンテンツデータを選択して、ブロック14の演奏コンテンツデータ15の変更を指示する。クライアント端末100が、選択された演奏コンテンツデータの情報をサーバ200に通知すると(ステップS21)、サーバ200は、ユーザにより選択された演奏コンテンツデータ250(ビデオファイル170及びオーディオファイル180)をソングコンテンツデータベース210から取得して、クライアント端末100に送信する(ステップS22)。クライアント端末100は、選択されたブロック14に、送信された演奏コンテンツデータ15を配置する。これにより、任意のブロック14の演奏コンテンツデータ15を、別の演奏コンテンツデータ15に変更できる。選択されたブロック14に演奏コンテンツデータ15が配置されていない場合には、今回選択された演奏コンテンツデータ15が新規追加されることになる。
また、ユーザは、コンテンツ再生画面10上のブロック14又は演奏コンテンツデータ選択部20にて選択した演奏コンテンツデータの内容を、編集できる。編集の内容は、例えば再生開始位置、音量或いはエフェクトの調整などである。この場合、クライアント端末100は、演奏コンテンツデータの編集内容をサーバ200に通知する(ステップS21)。サーバ200は、通知された編集内容に基づいて、データベース210に保存している演奏コンテンツデータ250の内容を上書き更新したり、或いは、新たな演奏コンテンツデータ250を保存したりする。編集結果は、クライアント端末100でソング作成画面の表示に反映される。
ステップS24において、ユーザがソング作成画面10上で再生指示をした場合、クライアント端末100は、ユーザにより選択された1つのセクション13に属する複数のパート(一列のブロック14)の複数の演奏コンテンツデータ15を略同時に再生できる。1つのセクション13の再生時間長は再生時間データ232により決められているので、複数の演奏コンテンツデータ15の再生開始位置を揃えておけば、それら複数の演奏コンテンツデータ15の再生開始位置と再生終了位置とを略一致させ得る。前述の通り、サーバ200のデータベース210に演奏コンテンツデータ250を新規登録する時(前記ステップS18)、再生開始位置を設定しているので、再生処理の負荷が軽減され、再生指示操作に対するレスポンスが良い。
前記ステップS24で、セクション13に属する全パート又は一部のパートの演奏コンテンツデータを再生(視聴)しつつ、前記ステップS19〜S22により再生中のブロック14の演奏コンテンツデータを別の演奏コンテンツデータに変更したり、前記ステップS18により任意のブロック14に演奏コンテンツデータを新規登録(新規録音)したりできる。
前記ステップS24によるセクション13単位の演奏コンテンツデータの再生処理は、当該セクションの先頭から末尾まで1回再生を終えた後に自動的に停止してもよいし、ユーザにより手動停止されるまで、当該セクションの再生をループしてもよい。また、前記ステップS24の再生処理は、1セクションのみを再生対象とするのに限らず、複数のセクションを再生対象にしてもよいし、或いは、1つのソング(1つのソングシナリオ260)全体を再生対象にしてもよい。
クライアント端末100のユーザは、前記ステップS18〜S24によって行なわれた編集の結果物を、ソングコンテンツ220又はソングシナリオ260として、サーバ200に上書き保存又は新規保存ように指示する(ステップS25)。サーバ200は、前記ステップS6〜S12によって行なわれた編集の結果物を、ソングコンテンツ220又はソングシナリオ260として、データベース210に上書き保存又は新規保存する。クライアント端末100は、ステップS26において、サーバ200が提供するソング編集・作成サービスからログアウトして、処理を終える。
次に、コンテンツデータの同期再生機構の一例について説明する。図1のコンテンツデータ再生画面10において複数のコンテンツデータ250を略同時再生(前記ステップS24等)する場合、複数の動画同士の同期、複数のオーディオ信号同士の同期、並びに、オーディオ信号と動画との同期について考慮する必要がある。本実施例では、複数のオーディオ信号同士の同期に関しては、オーディオ再生処理部162が、複数のオーディオ信号を、1系統のオーディオ信号(2チャンネルのステレオ信号)にミックスダウンして、再生するので、特別な同期機構は不要である。一方、ビデオ再生処理に関しては、ビデオ再生処理部161において、ビデオファイル毎に独立した複数のビデオ再生処理を起動して、複数の再生機の動画を、1つのコンテンツ再生画面10上の各ブロック14に並列的に描画するので、複数のビデオ再生処理の同期を取る機構が必要となる。前述した各実施例では、図3及び6に示した通り、再生位置制御モジュール164により、オーディオ信号の再生位置に動画の再生位置を合わせることで、オーディオ信号と各動画との同期をとり、ひいては複数の動画同士の同期をとるようになっている。
図12は、クライアント端末100のCPU10が実行する同期処理(図3及び6の再生位置制御モジュール164の動作)を示すフローチャートである。この同期処理(再生位置補正処理)は、コンテンツデータの再生中に起動する。一例として、この同期処理は、例えば1秒毎など定期的に起動する。ステップS32において、CPU110は、ビデオ再生処理部161から現在の動画の再生位置を取得し、且つ、オーディオ再生処理部162から現在のオーディオ信号の再生位置を取得して、現在の動画の再生位置と現在のオーディオ信号の再生位置との差を算出する。変形例として、前記ステップS32は、ブラウザ160が提供する時計機能165(図6参照、)から時間情報を取得して、該時間情報に基づいてオーディオ再生位置を決定し、そのオーディオ再生位置と現在のビデオ再生位置との差を算出するように構成されてもよい。
ステップS33において、CPU110は、前記ステップS32で算出した差と、同期処理の要否を判断するための閾値とを比較する。閾値は、例えば300ミリ秒など、適宜の値に設定できる。一例である、「300ミリ秒」という閾値は、動画の再生位置とオーディオ信号の再生位置との差が比較的広く開くことを許容した値である。閾値大きめに設定しているので、後述する、オーディオ信号の再生位置に合わせて動画の再生位置を補正する処理を実行する頻度を減らすことができる。よって処理負担が少ない。
差が閾値以上の場合(ステップS33のYES)、CPU110は、現在の動画の再生位置と現在のオーディオ信号の再生位置とにズレが生じたものと判断する。そして、ステップS34において、CPU110は、移動回数パラメータの値を1つ歩進する。この移動回数は、現在のオーディオ信号の再生位置に合わせて動画の再生位置を移動した回数、すなわち、動画の再生位置の補正する処理を実行した回数(つまり補正回数)を示すパラメータである。ステップS35において、CPU110は、前記ステップS34で設定した移動回数に基づき、動画の再生位置を現在のオーディオ信号の再生位置に合わせるための移動量を算出する。移動量は、動画の再生位置を移動させる量、つまり動画の再生位置の補正量である。移動量は、例えば「移動回数×100ミリ秒」(「×」は乗算を表す記号である)という計算式により算出し得る。
ステップS36において、オーディオ再生処理部162から取得した現在のオーディオ信号の再生位置と前記ステップS35にて算出した移動量とに基づいて、補正後の動画の再生位置を算出して、前記算出した補正後の動画の再生位置へ、ビデオ再生処理部161による動画の再生位置を移動する。これにより、現在のオーディオ信号の再生位置に合わせるように、動画の再生位置を補正することができる。オーディオ信号の再生位置を基準として同期の要否を判断することにより、動画の厳密な同期処理をあきらめる一方で、同期の頻度を減らして処理負荷を軽減できる。動画とオーディオ信号との同期をとることよりも、オーディオ信号の再生を優先することにより、オーディオ信号再生の破綻を防ぐ。したがって、音楽用途に好適である。簡単な処理でビデオデータとオーディオデータとの同期をとることができるので、汎用のネットワークシステムや、汎用のWebブラウザなど、処理負荷変動が予測しにくい一般的な環境下においても、オーディオデータとビデオデータとからなるコンテンツデータを安定して再生できる。
一方、前記ステップS32で算出した現在の動画の再生位置と現在のオーディオ信号の再生位置との差が閾値以下の場合(ステップS33のNO)、CPU110は、現在の動画の再生位置と現在のオーディオ信号の再生位置とにズレが生じていないものと判断し、前記ステップS34〜S36の処理を行わない。
ソングの再生中は(ステップS37のNO)、CPU10は、前記ステップS32以下を繰り返す。そして、現在の動画の再生位置と現在のオーディオ信号の再生位置とにズレが生じる度に、前記ステップS34〜S36の処理が行われる。CPU110は、前記ズレの発生を検出する度(つまり補正を行う度)に、前記ステップS34において、移動回数パラメータを1ずつ累積する。前述したステップS35の移動量の計算式によれば、移動回数(同期処理の頻度)が大きくなるほど、算出される移動量(補正量)が大きくなる。クライアント端末100の再生機構として、汎用環境(ブラウザ160、OS150、ハードウェア140)を想定する場合、前記ステップS35で移動量を決めてから、移動後の位置から動画を再生するまでに要する時間は実行環境及び状況によって変化し得る。このような実行環境を想定した場合、同期処理の頻度に応じて補正量を広げる構成は、事前に特定できない最適な移動量(補正量)を探りながら補正できるという点で有利である。また、同期処理頻度に応じて移動量を広げてゆく構成は、同期処理の負荷が急激に上昇してシステム全体の動作に悪影響を与えることを防止できる点で有利である。
ソング再生が停止された場合(ステップS37のYES)、CPU110は、ステップS38において、移動回数パラメータの値を消去して処理を終了する。
変形例として、前記ステップS38による移動回数パラメータの値の消去を行わず、その再生処理中に累積した移動回数を保持しておき、次回以降の再生処理において、過去の累積した移動回数を継続して使用するように構成してもよい。その場合、前記ズレの発生を検出する度(つまり補正を行う度)に、前記ステップS34において、移動回数パラメータの値を歩進させるだけでなく、例えばビデオ再生位置とオーディオ再生位置との差が狭まった場合には移動回数を減らすというルールも必要になる。また、移動量を算出する式は、例えば、「移動回数の二乗」×「100ミリ秒」という2次式を採用してもよい。また、移動量を算出するのに「100ミリ秒」等の規定の固定値を用いる構成に替えて、実行環境の統計情報を収集して、その統計情報から推測した値を使用する構成を採用してもよい。また、移動量を求めるための計算式のパラメータとしてとして、更に、再生するビデオファイルの数(起動すべき動画再生機の数)を用いることも考えられる。また、同期処理の頻度が多すぎる場合や、システム動作状況が不安定な場合は、閾値を更に大きくとり、同期処理を起動し難くしてもよい。
なお、前記第2実施形態においてコンテンツデータ250の一例として、音楽演奏を表す演奏コンテンツデータを挙げたが、コンテンツデータは、ビデオデータとオーディオデータとからなるものであれば、どのような内容を持つものでもよい。
なお、上記実施例では、コンテンツ再生画面10を表示するコンテンツデータ再生装置として、本発明を構成及び実施することを説明したが、本発明は、コンテンツデータ再生方法、コンテンツデータ再生処理をコンピュータに実行させるためのプログラムの発明として構成及び実施することもできる。