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