以下、本発明の実施形態を図面を参照しつつ説明する。
<第1実施形態>
本発明の第1実施形態を、図1〜図10により説明する。本実施形態では、後述のように、カラオケ装置がカラオケ楽曲データの再生を行うとき、ユーザ(利用者)が、電子楽器演奏を併せて行うことができる。
<カラオケシステムの概要>
図1は、本実施形態のカラオケ装置を備えた通信カラオケシステムの全体構成を表す機能ブロック図である。図1において、通信カラオケシステム1は、少なくとも1つの第1カラオケ装置10Aと、少なくとも1つの第2カラオケ装置10Bと、センターサーバ20とを有している。なお、以下適宜、第1カラオケ装置10A及び第2カラオケ装置10Bを区別せず総称する場合、単に「カラオケ装置10」という。
カラオケ装置10は、例えばカラオケ店舗等のカラオケルームKRに設置されている。カラオケ装置10は、カラオケ楽曲データとしてのMusical Instrument Digital Interface(MIDI;登録商標)データ等と背景映像データとを用いて、カラオケ楽曲の再生サービスを提供する装置である。カラオケ装置10とセンターサーバ20とは、例えば通信ネットワーク等のネットワークNWとを介し、互いに情報送受信可能に接続されている。
また、カラオケ装置10は、装置本体100と、リモコン25と、マイク30と、カメラ40と、表示部109とを有している。装置本体100とリモコン25とは、例えば無線又は有線のLAN等のネットワークを介し、互いに情報送受信可能に接続されている。装置本体100とマイク30とは、無線回線又は有線回線により接続されている。装置本体100とカメラ40とは、無線回線又は有線回線により接続されている。装置本体100と表示部109とは、無線回線又は有線回線により接続されている。
装置本体100は、制御部101と、記憶装置103と、操作部104と、受信部105と、再生手段としての音源106と、音声制御部107と、スピーカ108と、通信制御部110と、内部エフェクタ111と、楽器接続制御部112とを有している。記録装置103、操作部104、音声制御部107、通信制御部110、内部エフェクタ111、及び、楽器接続制御部112は、制御部101に接続されている。
楽器接続制御部112には、図示しない楽器入力端子を介し、ユーザが持ち込んだ各種の電子楽器を接続することができる。この例では、第1カラオケ装置10Aにおいて、ユーザが持ち込んだ第1エレキギター15Aが楽器接続制御部112に接続された例を示している。また同様に、第2カラオケ装置10Bにおいて、ユーザが持ち込んだ第2エレキギター15Bが楽器接続制御部112に接続された例を示している。なお、以下適宜、エレキギター15A及びエレキギター15Bを区別せず総称する場合、単に「エレキギター15」という。
ここで、一般に、エレキギター15のように、演奏音を電気信号の形で出力する電子楽器においては、単独で出力できるサウンドは表現力に限界がある。そこで、通常、これを補うためにエフェクタが使用される場合が多い。これに対応し、本実施形態のカラオケ装置10においては、上記内部エフェクタ111が設けられている。内部エフェクタ111は、ユーザが演奏する電子楽器、上記の例ではギター15、から出力される演奏音に、所望のエフェクトを施すことができる。これにより、ユーザが意図するような多種多様な表現の電子楽器のサウンドを、実現することが可能である。
カメラ40は、カラオケ楽曲の再生時にカラオケルームKR内の所定範囲の視野を動画撮影し、当該所定範囲のカメラ映像信号を生成する。
制御部101は、図示しないCPUと、RAM及びROM等のメモリとを備えている。この制御部101は、RAMの一時記憶機能を利用しつつ、ROMや上記記憶装置103に予め記憶された各種プログラムを実行する。これにより、制御部101は、装置本体100全体の制御を行う。特に、制御部101は、カメラ40により動画撮影されたカラオケルームKR内の上記カメラ映像信号に対し画像処理を行い、そのカメラ映像信号を記憶装置103に記憶するとともに表示部109に表示させる処理を行う。なお、上記カラオケルームKR内のカメラ映像信号には、上記第1エレキギター15A又は第2エレキギター15Bを演奏しているユーザの姿が含まれる。
記憶装置103は、例えばHard Disk Drive(HDD)などから構成される。この記憶装置103には、上記カラオケ楽曲データ(MIDIデータ)、背景映像データ、及び歌詞データ等の各種情報が記憶されており、記憶手段として機能する。また、この記憶装置103には、上記のようにしてカメラ40により撮影された、ユーザがエレキギター15を演奏した時のカメラ映像信号と、ユーザがエレキギター15を演奏した時の演奏結果であるエレキギター演奏信号(後述)とが順次記憶される。
操作部104は、例えば複数のキーやスイッチなどから構成される。ユーザは、この操作部104又はリモコン25を用いて、カラオケ楽曲の選曲操作等の各種操作を行うことができる。またそれ以外に、ユーザは、エレキギター15の演奏音に対し内部エフェクタ111で施すエフェクトの選択、エフェクトのパラメータの入力等の操作を、操作部104又はリモコン25を用いて行うことができる。
受信部105は、上記のマイク30から出力された歌唱者のマイク音声信号を受信する。受信部105は、マイク30から受信した上記マイク音声信号を、音声制御部107へ出力する。音源106は、上記制御部101によって記憶装置103から読み出されたカラオケ楽曲データを再生して楽曲再生信号として音声制御部107へ出力する。なお、エレキギター15の演奏による上記演奏音は、エレキギター15から楽器接続制御部112へ入力され、さらに内部エフェクタ111によりエフェクトを施された後、制御部101を介して、エレキギター演奏信号として音声制御部107へ入力される。また、エレキギター15からの上記演奏音の一部は、楽器接続制御部112から内部エフェクタ111を介さず直接制御部101へ入力された後、エレキギター演奏信号として音声制御部107へ入力される。なお、このエレキギター15の演奏音と上記演奏音にエフェクトが施された音とを含む上記エレキギター演奏信号が、各請求項記載の音信号を構成している。
音声制御部107は、入力された上記マイク音声信号と上記楽曲再生信号と上記エレキギター演奏信号とを増幅するとともにミキシングし、スピーカ108へ出力する。スピーカ108は、音声制御部107から出力された上記マイク音声信号と上記楽曲再生信号と上記エレキギター演奏信号とを音に変換し、出力する。
表示部109は、例えば液晶ディスプレイなどから構成され、各種映像を表示する。表示部109は、上記音源106によりカラオケ楽曲データの再生が行われるのにしたがい、その再生に同期して、所定の表示を行う。この表示には、記憶装置103から読み出された上記歌詞データ及び背景映像データにそれぞれ基づく歌詞テロップ及び背景映像が含まれる。さらに、上記表示には、前述のカメラ40からのカメラ映像信号に基づく映像が含まれており、前述のようにユーザがエレキギター15を演奏しているときにはその演奏しているユーザの姿が含まれる。
通信制御部110は、リモコン25やセンターサーバ20との間の情報通信の制御を行う。
リモコン25は、例えばタッチパネル式の操作端末である。ユーザがリモコン25に表示される案内画面にしたがって適宜の操作を行うことで、リモコン25の表示が所定の画面に移行する。ユーザは、移行した上記所定の画面において、カラオケ楽曲の選曲操作やその他の選択または入力等の操作を、タッチパネル上で行うことができる。
センターサーバ20は、例えば記憶装置からなるデータベースを備えている。本実施形態では、前述のようなユーザのエレキギター15の演奏時の上記カメラ映像信号と、そのときのエレキギター15から出力された上記エレキギター演奏信号と、そのエレキギター演奏信号にエフェクトを施した内部エフェクタ111の識別情報と、そのときに再生されたカラオケ楽曲の曲名とが、互いに対応付けられて投稿情報となる。第1の実施形態では、内部エフェクタ111の識別情報として、エフェクタ名称が用いられているが、内部エフェクタ111を識別可能な識別情報であれば良い。また、カラオケ楽曲の曲名が、楽曲情報の一例である。そしてこの投稿情報がセンターサーバ20に投稿されることで、上記データベースに記憶される。この結果、上記データベースには、各ユーザから投稿されたすべての上記投稿情報が記憶されている。
<コラボレーション演奏>
以上において、本実施形態の特徴の1つは、上記投稿情報を用いたエレキギター15の競演(コラボレーション演奏)が可能なことである。すなわち例えば、上記のようにして第1カラオケ装置10Aのユーザから投稿された第1エレキギター15Aのエレキギター演奏信号を含む投稿情報を、第2カラオケ装置10Bの別のユーザが検索する。そして、第2カラオケ装置10Bにおいて、上記投稿情報の第1エレキギター15Aのエレキギター演奏信号を再生しながら、当該別のユーザ自らもエレキギター15を演奏することができる。
そして、本実施形態のもう1つの特徴は、上記競演のための検索を、エフェクタを手がかりに行えることである。すなわち、上述したように、利用者がエレキギター15を演奏後にサーバに投稿する投稿情報に、エレキギター15から出力される演奏音にエフェクトを施した内部エフェクタ111の識別情報が含まれている。これにより、別の利用者が上記のようにコラボレーション演奏をする際に、上記投稿情報に含まれる内部エフェクタ111の識別情報を手がかりに、自らが作り出そうとするサウンドに対し、サウンドが類似している、または、サウンドの組み合わせの相性がいい等、競演に好適な関係のあるサウンドを効率よく検索することができる。なお、本実施形態ではさらに、予め指定された特定の和音を構成する指定コードを演奏するようにユーザに表示を行い、ユーザによるその指定コードの演奏結果も上記投稿情報に含めることで、上記検索をさらに効率よく行うことができる(詳細は後述)。以下、上記を実現するための具体的な手法を図2〜図10を用いて順を追って説明する。
<投稿情報の新規投稿>
一例として、まず、第1カラオケ装置10Aのユーザが、楽器(この例では第1エレキギター15A)を演奏して新規投稿をする場合を、図2により説明する。図2は、第1カラオケ装置10Aの制御部101によって実行される処理手順を示すフローチャートである。例えば図示しないシステム管理者によりカラオケ装置10Aの電源がオンにされることによって、このフローが開始される。
図2において、まず、ステップS10において、第1カラオケ装置10Aの制御部101は、公知の適宜の手法により、電子楽器(この例ではエレキギター15A)がカラオケ装置10Aに接続されたか否かを判定する。エレキギター15Aの接続が行われるまでは判定が満たされず(ステップS10:NO)、ループ待機する。ユーザが、エレキギター15Aのケーブル16をカラオケ装置本体100の図示しない楽器入力端子に接続して判定が満たされた場合(ステップS10:YES)、制御部101は、ステップS15に移る。
ステップS15では、制御部101は、ユーザによるカラオケ楽曲の選択を受け付ける。すなわち、ユーザが、操作部104の直接操作又はリモコン25を介した操作によりカラオケ楽曲の選曲操作を行うことで、カラオケ楽曲の選択が受け付けられる。この受け付けにより、そのカラオケ楽曲を特定する曲名や曲ID等の上記楽曲情報が制御部101で取得される。ステップS15が終了すると、制御部101は、ステップS20に移る。
ステップS20では、制御部101は、ユーザによる内部エフェクタ111のエフェクト選択を受け付ける。エフェクトの種類は、公知のもので足りるが、例えばエレキギターの場合には、ディストーション、オーバードライブ、コーラス、フェイザー、ディレイ、エコー等が含まれる。ユーザは、操作部104の直接操作又はリモコン25を介した操作により、内部エフェクタ111に備わるエフェクトの種類(例えばディストーション)が選択される。すると、制御部101により当該エフェクト選択結果が受け付けられ、選択されたエフェクト機能が施されるように内部エフェクタ111において設定が制御部101により行われる。その後、制御部101は、ステップS25に移る。
ステップS25では、制御部101は、ユーザによるエフェクトのパラメータの入力を受け付ける。パラメータの種類は、上記エフェクタの種類に応じた公知のものであり、例えば上記ディストーションの場合は、レート、デプス、レベル等が含まれる。ユーザは、操作部104の直接操作又はリモコン25を介した操作により、上記選択したエフェクトについてのパラメータの種類(例えばレート)及びそのパラメータの設定値すなわち強度(例えばレート=3)の入力を行う。すると、制御部101により当該エフェクトのパラメータ入力が受け付けられ、入力されたパラメータの種類について、当該強度となるように制御部101が設定する。その後、制御部101は、ステップS30に移る。
ステップS30では、制御部101は、上記音声制御部107を介し、楽曲演奏処理を行う。すなわち、制御部101は、上記ステップS15で取得された楽曲情報で特定されるカラオケ楽曲データを再生し、対応する楽曲再生信号を音声制御部107へ入力する。その際、制御部101は、適宜の手法により、電子楽器(この例ではエレキギター)の演奏パートを除いたマイナスワン状態又は当該演奏パートを減音した状態で楽曲データを再生してもよい。そして、その再生に合わせユーザがエレキギター15Aを演奏すると、上記ステップS20及びステップS25での選択または設定に基づく内部エフェクタ111によるエフェクトが施された演奏音を含む、上記エレキギター演奏信号が、音声制御部107に入力される。これら楽曲再生信号及びエレキギター演奏信号は音声制御部107によってミキシングされ、対応する音がスピーカ108から出力される。さらに、制御部101は、上記カラオケ楽曲データの再生時に、カメラ40を駆動して、カラオケルームKR内のエレキギター15Aを演奏しているユーザ(演奏者)を含む所定範囲の視野を動画撮影させ、生成された所定範囲の上記カメラ映像信号を取得する。ステップS30が終了すると、ステップS35に移る。
ステップS35では、制御部101は、上記ステップS30で取得された上記エレキギター演奏信号及びカメラ映像信号を含む動画を楽曲演奏データとして記憶装置103に記憶する。なお、ステップS30とステップS35とは同時進行的に行うようにしてもよい。その後、制御部101は、ステップS40に移る。
ステップS40では、制御部101は、ユーザによる楽曲演奏の投稿の選択があるか否かを判定する。ユーザが、上記のようにしてエレキギター15Aを演奏した演奏結果の投稿を意図して、操作部104の直接操作又はリモコン25を介した操作により演奏結果の投稿を選択すると、楽曲演奏の投稿の選択があると判定され(ステップS40:YES)、制御部101は、ステップS45に移る。なお、ユーザによる楽曲演奏の投稿の選択は、楽曲演奏後以外のとき、例えば楽曲予約時に設定されていても良い。
ステップS45では、制御部101は、表示部109に制御信号を出力して、表示部109に、上記指定コードの演奏を促す指示表示を行う。本実施形態では、指定コードとして例えば「Cメジャー」のコードが定められており、例えば、表示部109において、「Cメジャーコードを演奏してください」等の指示が表示される。ステップS45が終了すると、制御部101は、ステップS50に移る。なお、ステップS45の手順が各請求項記載の指示手段を構成する。
ユーザが上記表示部109の表示を見てエレキギター15AでCメジャーコードを弾くと、制御部101は、エフェクトが施された当該Cメジャーコードの演奏音を含む上記エレキギター演奏信号が、音声制御部107に入力される。施されたエフェクトは、上記ステップS20及びステップS25での選択または設定に基づく内部エフェクタ111によるエフェクトである。ステップS50で、制御部101は、ユーザの指定コードの演奏結果である当該エレキギター演奏信号(以下適宜、「指定コード演奏データ」という)を取得して、記憶装置103に記憶する。なお、この記憶の際には、上記エレキギター演奏信号に含まれるCメジャーコードの演奏音の波形が、波形情報として記憶装置103に記憶される。その後、制御部101は、ステップS55に移る。
ステップS55では、制御部101は、上記楽曲情報と、この楽曲情報に対応する、内部エフェクタ111の識別情報と、内部エフェクタ111のパラメータの種類及び強度と、楽曲演奏データと、指定コード演奏データとを、互いに関連づけて上記投稿情報とする。なお、このときの上記楽曲情報は、上記ステップS15で取得されたものである。また、内部エフェクタ111の識別情報、この例ではエフェクタ名称は、上記ステップS20での選択結果に対応したものである。また、内部エフェクタ111のパラメータの種類及び強度(以下適宜、「パラメータ情報」という)は、上記ステップS25でのパラメータ入力結果に対応したものである。また、上記楽曲演奏データ(エレキギター演奏信号及びカメラ映像信号を含む)は、上記ステップS35で記憶装置103に記憶されたものである。また、上記指定コード演奏データは、指定コードのエレキギター演奏信号を含んでおり、上記ステップS50で記憶装置103に記憶されたものである。そして、この生成された投稿情報を、通信制御部110及びネットワークNW介してセンターサーバ20に送信し、アップロードする。これにより、センターサーバ20は、上記アップロードされた投稿情報を上記データベースに保存する。なお、このステップS55の手順が各請求項記載の投稿手段を構成する。その後、制御部101は、このフローを終了する。
一方、上記ステップS40において、ユーザが上記投稿を意図せず投稿の選択を行わない場合は、制御部101は、判定を満たさないと判定(ステップS40:NO)し、制御部101は、ステップS60に移る。ステップS60では、制御部101は、上記ステップS35で取得され記憶装置103に記憶された上記楽曲演奏データを消去し、このフローを終了する。
<データベース>
上記のようにして各ユーザから投稿された投稿情報に基づく、センターサーバ20のデータベースについて、図3を用いて説明する。
図3(a)に示すように、データベースには、上記のようにして各ユーザから投稿された投稿情報に基づき、曲名リストが生成され、記憶されている。この曲名リストは、上記各ユーザから投稿されたすべての投稿情報に含まれる上記楽曲情報をカラオケ楽曲ごとに整理し、羅列したものである。図示のように、この曲名リストでは、曲番号1,2,3,・・のそれぞれに対し当該カラオケ楽曲の曲名1,曲名2,・・が対応付けられる。
図3(b)は、上記曲名リストに掲げられた1曲ごとに整理してデータベースに格納される、各ユーザからの投稿情報のデータ構造を表している。図示のように、各投稿情報は、登録番号と、投稿者情報(投稿者氏名)と、上記楽曲演奏データと、内部エフェクタ111の上記識別情報と、内部エフェクタ111の上記パラメータ情報と、上記指定コード演奏データと、を含んでいる。なお、投稿情報が、曲名リストに掲げられた1曲ごとに整理してデータベースに格納されていることにより、図3(a)に示す曲名リストと、図3(b)に示すデータベースとが、対応付けられている。登録番号はセンターサーバ20のデータベースに格納された順番に付与される。投稿者氏名は、上記投稿情報がセンターサーバ20で受信されたときに、送信元情報として取得される。また、既に述べたように、楽曲演奏データは、当該カラオケ楽曲の上記エレキギター演奏信号を含んでおり、指定コード演奏データは上記指定コードを演奏したエレキギター演奏信号を含んでいる。
なお、「指定コード音色情報」「コラボレーション相手登録番号」「外部エフェクトフラグ」については、後述する。
<コラボレーション演奏>
次に、第2カラオケ装置10Bのユーザが、楽器(この例では第2エレキギター15B)を演奏しようとする際、上記のようにデータベースに格納された各ユーザの投稿情報を検索し、コラボレーション演奏をする場合を、図4により説明する。図4は、第2カラオケ装置10Bの制御部101によって実行される処理手順を示すフローチャートである。
図4のフローチャートは、図2に示したフローチャートのステップS25とステップS30との間に、ステップS100A及びステップS27を新たに付加した点が異なるのみで、それ以外の手順は基本的に図2と同様である。
すなわち、ステップS10において、上記図2と同様、第2カラオケ装置10Bの制御部101は、エレキギター15Bが接続されたか否かを判定する。エレキギター15Bが接続されたら判定が満たされ(ステップS10:YES)、ステップS15に移る。ステップS15では、上記図2と同様、制御部101は、ユーザによるカラオケ楽曲の選択を受け付ける。そして、ステップS20で、上記図2と同様、制御部101は、ユーザによる内部エフェクタ111のエフェクト選択を受け付けた後、ステップS25でエフェクトのパラメータの入力を受け付ける。
上記ステップS25が終了すると、新たに設けられたステップS100Aに移る。ステップS100Aでは、第2カラオケ装置10Bのユーザのコラボレーション相手の楽曲演奏を探すためのコラボ相手検索処理が実施される。なお、このコラボ相手検索処理は、コラボレーション相手として、ユーザの電子楽器(この例ではエレキギター15)の演奏音と類似した演奏音を含む投稿情報を探す場合(後述の図5参照)と、ユーザの電子楽器の演奏音と相性が良い演奏音を含む投稿情報を探す場合(後述の図9参照)と、がある。なお、このステップS100Aが、各請求項記載の検索手段を構成している。
ステップS100Aが終了すると、制御部101は、新たに設けられたステップS27に移る。ステップS27では、制御部101は、投稿キャンセルフラグFcがFc=1であるか否かを検索する。この投稿キャンセルフラグFcは、上記コラボ相手検索処理において第2カラオケ装置10Bのユーザが投稿実行を意図する場合にFc=0、投稿中止を意図する場合にFc=1となっている(後述の図5及び図9のステップS165等参照)。ステップS27において、第2カラオケ装置10Bの制御部101は、上記ステップS100AでFc=1となっている場合は判定が満たされる(ステップS27:YES)と判定し、このフローを終了する。ステップS27において、上記ステップS100AでFc=0となっている場合は、第2カラオケ装置10Bの制御部101は、判定が満たされない(ステップS27:NO)と判定し、ステップS30に移る。
ステップS30では、上記図2と同様、制御部101は、上記音声制御部107を介し、楽曲演奏処理を行う。すなわち、上記ステップS15で取得された楽曲情報で特定されるカラオケ楽曲データが再生され、対応する楽曲再生信号が音声制御部107へ入力される。また、上記ステップS100A中のステップS225(後述の図5及び図9参照)で取得された上記楽曲演奏データを用い、それに含まれる別のユーザ(この例では第1カラオケ装置10Aのユーザ)の上記エレキギター演奏信号が音声制御部107に入力される。そして、上記カラオケ楽曲データの再生に合わせてユーザがエレキギター15Bを演奏(すなわち上記別のユーザとのコラボレーション演奏)する。上記ステップS20及びステップS25での選択または設定に基づく内部エフェクタ111によるエフェクトが施されたエレキギター15Bの演奏音を含む上記エレキギター演奏信号が、音声制御部107に入力される。これら楽曲再生信号、上記別のユーザのエレキギター演奏信号、及びエレキギター15Bの演奏音を含むエレキギター演奏信号は、音声制御部107によってミキシングされ、対応する音がスピーカ108から出力される。さらに、制御部101は、上記図2と同様、上記カラオケ楽曲データの再生時に、カメラ40を駆動する。そして、制御部101は、カラオケルームKR内のエレキギター15Bを演奏しているユーザを含む所定範囲の視野をカメラ40に動画撮影させる。生成された所定範囲の上記カメラ映像信号を、制御部101は取得する。ステップS30が終了すると、制御部101は、ステップS35に移る。
ステップS35では、制御部101は、上記図2と同様、上記ステップS30で取得された上記エレキギター演奏信号及びカメラ映像信号を含む動画を新たな楽曲演奏データとして記憶装置103に記憶する。その後、制御部101は、ステップS40に移る。
ステップS40では、制御部101は、上記図2と同様、ユーザによる楽曲演奏の投稿の選択があるか否かを判定する。ユーザが、上記のようにしてコラボレーション演奏したエレキギター15Bの演奏結果の投稿を選択すると、判定が満たされ(ステップS40:YES)、制御部101は、ステップS45に移る。
ステップS45では、上記図2と同様、制御部101は、表示部109に指定コードの演奏を促す指示表示を行う。ユーザがエレキギター15Bで当該指定コードを弾くと、エフェクトが施された当該指定コードの演奏音を含む上記エレキギター演奏信号が音声制御部107に入力される。施されたエフェクトは、上記ステップS20及びステップS25での選択または設定に基づく内部エフェクタ111によるエフェクトである。ステップS50では、上記図2と同様、制御部101は、上記エレキギター15Bの指定コードの演奏結果である上記指定コード演奏データを取得して、記憶装置103に記憶する。その後、制御部101は、ステップS55に移る。
ステップS55では、制御部101は、上記図2と同様、楽曲情報と、内部エフェクタ111の識別情報と、内部エフェクタ111のパラメータ情報と、楽曲演奏データと、指定コード演奏データを互いに関連付けて上記投稿情報とする。なお、楽曲情報は、上記ステップS15で取得された楽曲情報である。また、内部エフェクタ111の識別情報は、上記ステップS20での選択結果に対応した内部エフェクタ111の識別情報である。また、内部エフェクタ111のパラメータ情報は、上記ステップS25でのパラメータ入力結果に対応したパラメータ情報である。また、楽曲演奏データは、上記ステップS35で保存された楽曲演奏データである。また、指定コード演奏データは、上記ステップS50で取得された指定コード演奏データである。そして、制御部101は、この生成された投稿情報をセンターサーバ20にアップロードし、上記データベースに保存する。なお、この場合、データベースに保存された投稿情報は、上記ステップS100A中のステップS225(後述)で取得された投稿情報中の上記楽曲演奏データを用いてコラボレーション演奏して生成されたものである。したがって、データベースに保存された当該投稿情報の上記「コラボレーション相手登録番号」の欄(図3(b)参照)には、当該ステップS225(後述)で取得された投稿情報の登録番号が記載される。すなわち、図3(b)の例では、登録番号Zの投稿情報は、上述のようにして、登録番号「2」の投稿情報中の上記楽曲演奏データを用いたコラボレーション演奏により生成されたことを表している。なお、図示を省略するが、このようにして他の投稿情報の生成時にコラボレーション演奏のためのコラボレーション相手となった回数(=競演回数。以下適宜、「コラボレーション回数」という)を、後述する人気の高さを表す指標である競演回数情報として各投稿情報に含ませるようにしてもよい。その場合、上記のように登録番号「Z」の投稿情報が登録番号「2」の投稿情報中の上記楽曲演奏データを用いたコラボレーション演奏で生成されていることから、登録番号「2」の登録情報にコラボレーション回数「1回」が記録されることとなる。あるいは、各登録番号の投稿情報ごとに上記コラボレーション回数を整理したコラボ回数テーブルが、別途データベースに生成し保存されておいてもよい。
<コラボ相手検索処理 その1>
次に、上記ステップS100Aのコラボ相手検索処理を説明する。まず、図5を用いて、コラボレーション相手として、ユーザの電子楽器(この例ではエレキギター15)の演奏音と類似した演奏音を含む投稿情報を探す場合に、第2カラオケ装置10Bの制御部101により実行される処理を説明する。
図5において、まず、ステップS105において、第2カラオケ装置10Bの制御部101は、通信制御部110及びネットワークNW介してセンターサーバ20にアクセスする。そして、制御部101は、センターサーバ20のデータベースに保存された全投稿情報のうち、上記図4のステップS15で取得された楽曲情報と同じ楽曲情報を含むすべての投稿情報にアクセスする。そして、それら対象とする投稿情報の中に、上記図4のステップS20でのエフェクト選択及びステップS25でのエフェクトパラメータの入力に基づき、エフェクト選択及びエフェクトのパラメータが類似した投稿情報があるかどうかを、制御部101は検索する。
<エフェクトのパラメータの類似>
ここで、パラメータの類似は、例えば2つのエフェクトのパラメータのユークリッド距離として表して考えることができる。この手法を、図6を用いて説明する。
図6は、2つの楽器A,Bに施したある同一のエフェクトのパラメータの強度(設定値)を例示した表である。パラメータa、b、cは、前述の例に沿うと例えばディストーションのパラメータであり、例えばaがレート、bがデプス、cがレベルである。なお、楽器Aは、例えば前述の第1エレキギター15Aであり、楽器Bは第2エレキギター15Bである。
楽器Aのパラメータa,b,cの強度をaA,bA,cAとし、楽器Bのエフェクトのパラメータa,b,cの強度をaB,bB,cBとする。この場合、楽器A、Bのパラメータの類似度は、これらパラメータ強度aA,bA,cAとパラメータ強度aB,bB,cBとのユークリッド距離で表すことができる。すなわち、
ユークリッド距離=√((aA−aB)2+(bA−bB)2+(cA−cB)2)
となる。
図6の例では、楽器Aのパラメータaの強度aA=3、パラメータbの強度bA=6、パラメータcの強度cA=5であり、また楽器Bのパラメータaの強度aB=4、パラメータbの強度bB=5、パラメータcの強度cB=7であることから、
ユークリッド距離=√((3−4)2+(6−5)2+(5−7)2)
=√((−1)2+(1)2+(−2)2)
=2.44949・・・
となる。このユークリッド距離の値が0に近いほど、楽器Aに施したエフェクトのパラメータと楽器Bに施したエフェクトのパラメータとの類似度が高いことになる。なお、類似度の決定として、ユークリッド距離以外の、距離が用いられても良い。類似度として、距離を表すものであれば特に限定されない。
すなわち、図5の上記ステップS105の検索では、制御部101は、図4のステップS20でのエフェクタ名称が一致する各投稿情報を抽出した後、上記の手法により、ステップS25でのエフェクトパラメータの値と、抽出された各投稿情報のエフェクトパラメータの値とのユークリッド距離を算出し、ユークリッド距離がなるべく小さい(類似度がなるべく高い)投稿情報を検索することとなる。
図5に戻り、上記ステップS105が終了すると、制御部101は、ステップS110に移る。ステップS110では、制御部101は、上記ステップS105での検索結果に基づき、楽曲情報が同じ投稿情報の中にエフェクトのパラメータが類似した投稿情報、言い換えれば上記ユークリッド距離が所定値以下の投稿情報、があったか否かを判定する。パラメータが類似した投稿情報があって判定が満たされた(ステップS110:YES)場合、制御部101は、ステップS115に移る。パラメータが類似した投稿情報がなかった場合は判定が満たされず(ステップS110:NO)、制御部101は、後述のステップS125に移る。
ステップS115では、制御部101は、上記ステップS105で検索された、パラメータが類似している投稿情報の識別情報(例えば投稿情報の上記登録番号)を類似度が高い順(ユークリッド距離が小さい順)に並び替える。その後、制御部101は、ステップS120に移る。
ステップS120では、制御部101は、表示部109に制御信号を出力する。そして、制御部101は、上記ステップS115で類似度順に並び替えられた投稿情報の識別情報のうち、パラメータの類似度が所定の閾値以上(言い換えればユークリッド距離が所定のしきい値以下)である投稿情報を、ユークリッド距離が小さい順に昇順で表示部109に表示させる。また、制御部101は、それらの投稿情報自体をセンターサーバ20のデータベースから取得する。その後、制御部101は、後述のステップS140に移る。
一方、ステップS125では、制御部101は、エフェクトのパラメータが類似した投稿情報がなかったことに対応して、図4のステップS15で取得された楽曲情報と同じ楽曲情報の投稿情報がそもそも存在していたか否かを判定する。同じ楽曲情報の投稿情報があって判定が満たされた(ステップS125:YES)場合、制御部101は、ステップS130に移る。同じ楽曲情報の投稿情報がなかった場合は判定が満たされず(ステップS125:NO)、制御部101は、後述のステップS155に移る。
ステップS130では、制御部101は、同じ楽曲情報の投稿情報の識別情報(例えば投稿情報の上記登録番号)を、投稿年が近い等の上記ユークリッド距離とは異なる別の基準に沿った類似度順に並び替える。そして、制御部101は、ステップS135に移る。
ステップS135では、制御部101は、表示部109に制御信号を出力する。そして、制御部101は、上記ステップS130で別の基準の類似度順に並び替えられた投稿情報を、当該別の基準の類似度が高い順に表示部109に表示させる。また、制御部101は、それらの投稿情報自体をセンターサーバ20のデータベースから取得する。その後、制御部101は、ステップS140に移る。
ステップS140では、制御部101は、ユーザにより、操作部104の直接操作又はリモコン25を介した操作により、指定コードの演奏音により詳細検索を行う旨の指示入力があったか否かを判定する。すなわち、ユーザが、上記ステップS120で表示対象となった投稿情報、又は、上記ステップS135で表示対象となった投稿情報について、上記詳細検索を行う旨の指示入力を行ったら上記判定が満たされ(ステップS140:YES)、制御部101は、ステップS145に移る。ユーザが上記詳細検索を行う旨の指示入力を行わなければ判定が満たされず(ステップS140:NO)、制御部101は、後述のステップS220に移る。
ステップS145では、制御部101は、ユーザがエレキギター15Bで指定コードを弾いた演奏音を含む指定コード演奏データを取得する。すなわち、ユーザは、前述の図2及び図4のステップS50と同様、エレキギター15Bで上記指定コードを弾くと、エフェクトが施された当該指定コードの演奏音を含む上記エレキギター演奏信号が音声制御部107に入力される。施されたエフェクトは、上記ステップS20及びステップS25での選択または設定に基づく内部エフェクタ111によるエフェクトである。制御部101は、これに対応して、上記エレキギター15Bによる指定コードの演奏結果である上記指定コード演奏データを取得する。その後、制御部101は、ステップS150に移る。
ステップS150では、制御部101は、上記ステップS120で表示対象となった投稿情報、又は、上記ステップS135で表示対象となった投稿情報、について、ステップS145で取得された指定コード演奏データに基づき、指定コードの演奏音同士の類似度を決定する。
<指定コードの演奏音のパラメータの類似>
ここで、上記指定コードの演奏音の類似を判定する手法を、図7及び図8を用いて説明する。図7に示すように、一般に、音は多数の周波数成分を含んでいる。したがって、音は、その信号波形をフーリエ変換することで、個々の周波数成分の集まりとして表することができる。これを利用して、2つの指定コードの演奏音の類似度は、各演奏音の周波数成分のユークリッド距離として表して考えることができる。この手法を、図8を用いて説明する。
図8は、同一指定コードを演奏した2つの演奏音A,Bの周波数成分を例示した表である。一方の指定コードの演奏音Aの周波数成分p,q,r,s,tの強度をpA,qA,rA,sA,tAとし、他方の指定コードの演奏音Bの周波数成分p,q,r,s,tの強度をpB,qB,rB,sB,tBとする。この場合、これら2つの演奏音A,Bの類似度は、周波数成分強度pA,qA,rA,sA,tAと周波数成分強度pB,qB,rB,sB,tBとのユークリッド距離で表すことができる。すなわち、
ユークリッド距離=√((pA−pB)+(qA−qB)2+(rA−rB)2
+(sA−sB)2+(sA−sB)2)
となる。
図8の例では、指定コードの演奏音Aの周波数成分pの強度pA=3、周波数成分qの強度qA=4、周波数成分rの強度rA=7、周波数成分sの強度sA=5、周波数成分tの強度tA=1であり、指定コードの演奏音Bの周波数成分pの強度pB=4、周波数成分qの強度qB=8、周波数成分rの強度rB=3、周波数成分sの強度sB=4、周波数成分tの強度tB=2であることから、
ユークリッド距離=√((3−4)2+(4−8)2+(7−3)2
+(5−4)2+(1−2)2))
=√((−1)2+(−4)2+(4)2+(−1)2
+(−1)2)
=5.91607・・・
となる。このユークリッド距離の値が0に近いほど、2つの指定コードの演奏音A,Bの類似度が高いことになる。なお、類似度の決定として、ユークリッド距離以外の、距離が用いられても良い。類似度として、距離を表すものであれば特に限定されない。
すなわち、図5の上記ステップS150では、制御部101は、上記の手法により、ユークリッド距離を決定する。決定されるユークリッド距離は、以下の2つの周波数成分の強度により決定される。1つ目の周波数成分の強度は、ステップS145で取得された指定コード演奏データに含まれる指定コードの演奏音の強度である。2つ目の周波数成分の強度は、上記ステップS120で表示対象となった投稿情報、又は、上記ステップS135で表示対象となった投稿情報、に含まれる上記指定コード演奏データの指定コード演奏音の周波数成分の強度である。これら2つの周波数成分の強度から、制御部101は、ユークリッド距離を決定する。
図5に戻り、上記ステップS150が終了すると、制御部101は、後述のステップS170に移る。
一方、上記ステップS125での判定が満たされずに移行するステップS155では、制御部101は、ユーザによる楽曲演奏データの新規投稿の入力があるか否かを判定する。すなわち、上記のようにパラメータが類似する投稿データがなく、また同一曲に関する投稿データもないことから、ユーザが自ら新規投稿するかどうかを判定するのである。ユーザが、操作部104の直接操作又はリモコン25を介した操作により、コラボレーション演奏を行わず自らの楽曲演奏結果を新規投稿する旨の指示入力をして判定が満たされた(ステップS155:YES)場合、制御部101は、ステップS160に移る。ユーザが、楽曲演奏結果の新規投稿をしない旨の指示入力をすると判定が満たされず(ステップS155:NO)、制御部101は、ステップS165に移る。なお、ユーザによる楽曲演奏データの新規投稿の入力は、ステップS155で入力される以外に、予約時に設定されていても良い。
ステップS160では、制御部101は、新規投稿フラグFnをFn=1とした後、後述のステップS220に移る。すなわち、この新規投稿フラグFnは、第2カラオケ装置10Bのユーザが、楽曲演奏結果の新規投稿をする場合にFn=1となり、楽曲演奏結果の新規投稿をしない場合にFn=0となる。
ステップS165では、制御部101は、投稿キャンセルフラグFcをFc=1とした後、後述のステップS220に移る。前述したように、投稿キャンセルフラグFcは、第2カラオケ装置10Bのユーザが何らかの楽曲演奏を投稿する場合にFc=0となり、投稿を全く行わない場合にFc=1となる。
その後、ステップS170で、制御部101は、上記ステップS150での算出結果に基づき、上記ステップS120又は上記ステップS135で表示対象となった投稿情報の中に指定コードの演奏音が類似した投稿情報があるか否かを判定する。言い換えれば、制御部101は、上記ユークリッド距離が所定値以下の投稿情報、があったか否かを判定する。指定コードの演奏音が類似した投稿情報があって判定が満たされた(ステップS170:YES)場合、制御部101は、ステップS175に移る。指定コードの演奏音が類似した投稿情報がなかった場合は判定が満たされず(ステップS170:NO)、制御部101は、後述のステップS205に移る。
ステップS175では、制御部101は、上記ステップS170で判定が満たされた投稿情報について、上記ステップS105でのパラメータの類似度算出の結果と、上記ステップS150での指定コードの演奏音の類似度算出の結果と、の両方を用いて再検索する。
<エフェクトパラメータ及び指定コード演奏音の類似の利用>
パラメータの類似度算出の結果と、上記ステップS150での指定コードの演奏音の類似度算出の結果と、の両方を用いる上記再検索においては、それらの単純平均を用いることができる。すなわち、
前述のようにしてユークリッド距離を用いて算出した2つの楽器のエフェクトパラメータどうしの類似度をP、ユークリッド距離を用いて算出した2つの指定コード演奏音どうしの類似度をMとすると、
再検索での類似度=0.5P+0.5M
となる。
なお、場合によっては、パラメータの類似度と指定コードの演奏音の類似度の加重平均を検索の類似度として用いることもできる。すなわち、Xをパラメータの類似度に対する重みとして、
重み付けした再検索の類似度=XP+(1−X)M
となる。
いずれの式を用いた場合にも、再検索の類似度の数値が0に近いほど、2つの投稿情報は、パラメータ及び指定コードの演奏音の両面で類似していることになる。すなわち、図5のステップS175の再検索では、制御部101は、まず、上記ステップS120又は上記ステップS135で表示対象となった投稿情報におけるエフェクトパラメータと、上記ステップS25で入力したエフェクトパラメータの値とに基づき、前述のユークリッド距離を算出して上記パラメータどうしの類似度Pを算出する。そして、制御部101は、上記ステップS105において算出済みの指定コード演奏音どうしの類似度Mと、上記パラメータどうしの類似度Pと、に対して、上記いずれかの式を適用して、再検索用の類似度を算出する。そして、制御部101は、この算出された再検索用の類似度がなるべく高い投稿情報を再検索することになる。上記ステップS175が終了すると、制御部101は、ステップS180に移行する。
ステップS180では、制御部101は、上記ステップS175での再検索結果に基づき、上記ステップS170での判定が満たされた投稿情報の中に、パラメータ及び指定コードの演奏音の双方が類似した投稿情報があったか否かを判定する。言い換えれば、制御部101は、上記再検索した類似度が所定値以上の投稿情報、があったか否かを判定する。パラメータ及び指定コードの演奏音の双方が類似した投稿情報があって判定が満たされた(ステップS180:YES)場合、制御部101は、ステップS185に移る。パラメータ及び指定コードの演奏音の双方が類似した投稿情報がなかった場合は判定が満たされず(ステップS180:NO)、制御部101は、後述のステップS190に移る。
ステップS185では、制御部101は、表示部109に制御信号を出力して、上記ステップS180で判定が満たされた投稿情報のうち人気の高い投稿情報の識別情報を人気の高い順に昇順で表示する。このときの人気の高さの指標としては、前述のようにして投稿情報に含まれている(又はコラボ回数テーブルに記載されている)、他の投稿情報が生成されるときにコラボレーション相手となった回数(コラボレーション回数)を用いることができる。すなわち、このステップS185での制御部101の制御により、表示部109は、コラボレーション回数が所定の閾値以上である投稿情報の識別情報を、コラボレーション回数が多い順に昇順で表示する。これにより、制御部101は、ユーザに対し、コラボレーション相手として、コラボレーション回数が多い投稿情報を優先して推奨することができる。その後、制御部101は、後述のステップS220に移る。
一方、ステップS190では、上記ステップS155と同様、制御部101は、ユーザによる楽曲演奏データの新規投稿の入力があるか否かを判定する。すなわち、上記のように再検索を行ってみたところ、パラメータ及び指定コードの演奏音の双方が類似した投稿情報はなかったことが判明したことから、ユーザが自ら新規投稿するかどうかを判定するのである。ユーザが、操作部104の直接操作又はリモコン25を介した操作により、コラボレーション演奏を行わず自らの楽曲演奏結果を新規投稿する旨の指示入力をすると判定が制御部101により満たされ(ステップS190:YES)、制御部101はステップS195に移る。ユーザが、楽曲演奏結果の新規投稿をしない旨の指示入力をすると判定が制御部101により満たされず(ステップS190:NO)、制御部101は、ステップS200に移る。なお、ユーザによる楽曲演奏データの新規投稿の入力は、ステップS190で入力される以外に、予約時に設定されていても良い。
ステップS195では、制御部101は、上記新規投稿フラグFnをFn=1とした後、後述のステップS220に移る。またステップS200では、制御部101は、上記投稿キャンセルフラグFcをFc=1とした後、後述のステップS220に移る。
一方、上記ステップS170の判定が満たされずに移行するステップS205では、制御部101は、上記ステップS190と同様、ユーザによる楽曲演奏データの新規投稿の入力があるか否かを判定する。すなわち、上記ステップS120又は上記ステップS135で表示対象となった投稿情報の中に指定コードの演奏音が類似した投稿情報がなかったことから、ユーザが自ら新規投稿するかどうかを判定するのである。ユーザが、操作部104の直接操作又はリモコン25を介した操作により、コラボレーション演奏を行わず自らの楽曲演奏結果を新規投稿する旨の指示入力をすると判定が満たされ(ステップS205:YES)、ステップS210に移る。ユーザが、楽曲演奏結果の新規投稿をしない旨の指示入力をすると判定が満たされず(ステップS205:NO)、制御部101は、ステップS215に移る。なお、ユーザによる楽曲演奏データの新規投稿の入力は、ステップS190で入力される以外に、予約時に設定されていても良い。
ステップS210では、制御部101は、上記新規投稿フラグFnをFn=1とした後、後述のステップS220に移る。またステップS215では、制御部101は、上記投稿キャンセルフラグFcをFc=1とした後、ステップS220に移る。
上記ステップS140、ステップS160、ステップS165、ステップS185、ステップS195、ステップS200、ステップS210、ステップS215から移行した、ステップS220では、制御部101は、投稿キャンセルフラグFcがFc=1であるか、または、新規投稿フラグFnがFn=1であるかを判定する。Fc=1でもなくFn=1でもない、すなわちFc=0かつFn=0である場合は判定が満たされず(ステップS220:NO)、ステップS225に移る。この場合は、投稿を行い(Fc=0)かつ新規投稿ではない(Fn=0)ことを表しており、すなわち、ユーザが、コラボレーション相手の投稿情報を見つけてコラボレーション演奏しその演奏結果を投稿する意図である場合に対応している。一方、Fc=0であり、且つ、Fn=0である以外の場合は、Fc=1かつFn=0であるか、Fc=0かつFn=1であるか、あるいは、Fc=1かつFn=1である。いずれの場合も投稿を断念する(Fc=1又はFn=1)ことを表している。
すなわち、ステップS225では、制御部101は、ユーザによるコラボレーション相手となる投稿情報の選択結果を取得する。上記ステップS120又は上記ステップS185において表示部109に表示された投稿情報の識別情報の中から、ユーザが、操作部104の直接操作又はリモコン25を介した操作によりコラボレーション演奏に使用する投稿情報の識別情報を選択する。そして、制御部101は、識別情報が選択された投稿情報自体をセンターサーバ20のデータベースからダウンロードし、取得する。その結果、カラオケ装置10Bにおいて、コラボレーション相手として、内部エフェクタ111での入力パラメータが類似した(又は内部エフェクタ111での入力パラメータと指定コードの楽器演奏音とが類似した)楽曲演奏データを得ることができる。ステップS225が終了すると、制御部101は、このフローを終了する。
一方、ステップS220において、Fc=1またはFn=1の場合は判定が満たされ(ステップS220:YES)、制御部101は、このフローを終了する。この場合は、投稿を行わない(Fc=1)か、新規投稿をする(Fn=1)かのいずれかの意図である場合に対応している。すなわち、ユーザが、コラボレーション演奏する相手となる投稿情報を見つけるのを断念した場合に対応している。
以上のように、図5に示したコラボ相手検索処理により、第2カラオケ装置10Bのユーザが、エレキギター15Bを用いてコラボレーション演奏するコラボレーション相手として、当該ユーザが出そうとしているエレキギター15Bの演奏音と類似した演奏音を含む投稿情報が検索される。
<コラボ相手検索処理 その2>
次に、図9を用いて、上記ステップS100Aのコラボ相手検索処理の他の例について説明する。コラボ相手検索処理は、コラボレーション相手として、ユーザの電子楽器(この例ではエレキギター15)の演奏音と相性の良い、すなわち聴覚的に調和して聞こえやすい、演奏音を含む投稿情報を探す処理である。
図9に示すフローチャートでは、図5に示したフローチャートのステップS175、ステップS180、ステップS185に代えて、新たにステップS176、ステップS177、ステップS178が設けられている。
図9において、ステップS105〜ステップS170の処理内容は図5と同じであるので説明を省略する。上記ステップS170において、上記ステップS120又は上記ステップS135で表示対象となった投稿情報の中に指定コードの演奏音が類似した投稿情報があり、判定が満たされた場合、制御部101は、新たに設けたステップS176に移る。
ステップS176では、制御部101は、上記ステップS145で取得された指定コードの演奏音を特定する。すなわち、一般に、人間は、聴いた音を「歪んだ音色」「澄んだ音色」「こもった音色」等のように感覚的に大ざっぱに分類することができる。そしてそのような聴覚的な分類は、ある程度、図7に示したような信号の波形との相関関係が存在する。そして、センターサーバ20内には、上記のように分類される複数の音色の種類と各種類の音色に対応する波形態様とが、図10(a)に示すように予め関連付けられ、音色分類テーブルとして登録されている。
このとき、前述したように、指定コード演奏データに含まれる指定コードのエレキギター演奏信号は波形情報となっている。センターサーバ20は、格納したすべての投稿情報に含まれる上記指定コード演奏データのエフェクトが施された上記波形情報について、適宜のタイミングで波形分析を行い、上記の音色の種類のいずれに属するかを判定する。図3(b)に示した各投稿情報の「指定コード音色情報」の欄は、この音色の種類を表しており、図示の例では、登録番号「1」の投稿情報の指定コード演奏データ中の上記波形情報は音色α、登録番号「2」の投稿情報の指定コード演奏データ中の上記波形情報は音色β、登録番号「3」の投稿情報の指定コード演奏データ中の上記波形情報は音色γ、にそれぞれ分類されている。
そして、上記ステップS176では、制御部101は、上記ステップS145で取得された指定コードの演奏音を、センターサーバ20のデータベースに登録された音色の種類(音色α、音色β、音色γ、・・)とそれぞれ比較し、そのいずれに該当するかを特定する。ステップS176が終了すると、制御部101は、ステップS177に移る。
ステップS177では、制御部101は、上記ステップS170で判定が満たされた投稿情報について、上記ステップS176で特定された指定コードの演奏音の音色と相性の良い音色の、指定コードの演奏音を含む投稿情報があるか否かを判定する。
すなわち、通常、カラオケ楽曲を含む楽曲のサウンドは、上述の分類に基づく1種類の音色だけでなく複数種類の音色が同時に混在して発音され、全体としてアンサンブルとして調和している。これは同一の楽器から演奏されるサウンドにおいても同様であり、例えばある楽曲において、1台のエレキギターが「歪んだ音色」によりオブリガードやソロパートやミュートバッキングを行っている一方で、別のエレキギターが「澄んだ音色」でアルペジオバッキングやストロークバッキングを行い、これらが全体として、ギターサウンドして聴覚的に心地よい調和を形成している場合が多い。したがって、上記の例では、上記「歪んだ音色」と「澄んだ音色」とは、同時に演奏するエレキギターの音色としては、比較的相性がいいものとなる。
前述のようにコラボレーション演奏を行う場合、例えば、先に投稿された投稿情報に含まれる上手な演奏を見本としてそれを真似てコラボレーション演奏をする場合は、上記投稿情報に含まれるエレキギターの音色となるべく近い(又は類似する)音色を形作るほうが望ましい。しかしながら、例えば、先に投稿された投稿情報に含まれる演奏とともにバーチャルなバンドのメンバーとして自らも参加し、全体で調和あるバンドアンサンブルを実現するためのコラボレーション演奏をする場合は、上記投稿情報に含まれるエレキギターの音色に近い音色ではなく、当該音色になるべく相性がよい音色を形作るほうが望ましい。
このような観点から、センターサーバ20のデータベースには、図10(b)に示す、音色組合せテーブルが生成され格納されている。この音色組合せテーブルは、上記各ユーザから投稿されたすべての投稿情報のうち、コラボレーション演奏によって生成された投稿情報(言い換えればコラボ相手登録番号に番号記載がある投稿情報)に関するテーブルである。すなわち、このテーブルは、当該投稿情報に含まれる上記指定コード音色情報と、当該投稿情報のコラボレーション相手の投稿情報に含まれる上記指定コード音色情報との組合せを、各組合せの発生数とその組合せが生じたカラオケ楽曲名称ごとに整理したものである。図示のように、この例では、指定コード音色情報が音色αである投稿情報と指定コード音色情報が音色βである投稿情報との組合せ発生回数が最も多く、102回となっている。これは言い換えれば、音色αとなるような内部エフェクタ111のエフェクト選択及びパラメータ設定をしたエレキギターと、音色βとなるような内部エフェクタ111のエフェクト選択及びパラメータ設定をしたエレキギターと、により、カラオケ楽曲Aが102回コラボレーション演奏されたことを表している。
図示のように、この例では、組合せ発生数が多い順に上位から下位へと並べられている。したがって、ある音色に対しては、その音色を含む組合せのうち最も上位にある組合せ相手が、当該音色に対して最もよい相性の音色であることとなる。図10(c)は、図10(b)の音色組合せテーブルを各カラオケ楽曲ごとに抽出して生成される楽曲別音色組合せテーブルの一例を表しており、この例では、図10(b)の音色組合せテーブルのうちカラオケ楽曲Aに係わるものを抽出して生成されたテーブルの例を示している。上記ステップS177では、制御部101は、この時点で処理対象となっているカラオケ楽曲(上記ステップS15で取得された楽曲情報で特定されるカラオケ楽曲)についての、図10(c)に示すような楽曲別音色組合せテーブルを参照する。そして、当該テーブルにおいて、上記ステップS176で特定された指定コードの演奏音の音色を含む、最も上位のデータがどれであるかを特定し、そのデータに記載の音色組合せにより、上記相性のよい音色を決定する。例えば上記ステップS176で特定された指定コードの演奏音が音色αであった場合には、当該楽曲で演奏する場合には、この音色αと最も相性のよい音色は、順位「1」のデータに組合せ相手として記載されている音色βとなる。また例えば上記ステップS176で特定された指定コードの演奏音が音色γであった場合には、当該楽曲で演奏する場合には、この音色γと最も相性のよい音色は、順位「10」のデータに組合せ相手として記載されている音色αとなる。
以上のようにして、例えば上記ステップS176で特定された指定コードの演奏音に対する相性のよい音色が1つでも見つかってステップS177の判定が満たされた(ステップS177:YES)場合、制御部101は、ステップS178に移る。相性のよい音色が1つも見つからなかった場合は、制御部101は、図5と同様のステップS190に移る。
ステップS178では、制御部101は、表示部109に制御信号を出力して、上記ステップS177で見つかった相性の良い音色を使用している投稿情報のうち人気の高い投稿情報の識別情報を人気の高い順に昇順で表示する。このとき、上記ステップS185と同様、コラボレーション回数を用いることができる。すなわち、表示部109は、相性のよい音色を使用している投稿情報の識別情報を、コラボレーション回数が多い順に昇順で表示する。これにより、制御部101は、ユーザに対し、コラボレーション相手として、相性のよい音色を使用しかつコラボレーション回数が多い投稿情報を優先して推奨することができる。その後は、上記同様のステップS220に移る。
以降、ステップS190〜ステップS225の手順は、図5と同じであるので詳細な説明を省略する。ステップS225では、上記ステップS120又は上記ステップS178において表示部109に表示された投稿情報の識別情報の中から、ユーザがコラボレーション演奏に使用する投稿情報の識別情報を選択すると、選択された投稿情報自体がセンターサーバ20のデータベースからダウンロードされて制御部101により取得される。その結果、カラオケ装置10Bにおいて、コラボレーション相手として、内部エフェクタ111での入力パラメータが類似した(又は指定コードの楽器演奏音と相性のよい演奏音を含む)楽曲演奏データを得ることができる。
以上のように、図9のコラボ相手検索処理により、第2カラオケ装置10Bのユーザが、エレキギター15Bを用いてコラボレーション演奏するコラボレーション相手として、当該ユーザが出そうとしているエレキギター15Bの演奏音と相性のよい演奏音を含む投稿情報を検索することができる。
以上説明したように、上記第1実施形態のカラオケ装置10では、ユーザが演奏した電子楽器(上述の例ではエレキギター15)の演奏結果を投稿しセンターサーバ20にアップロードする。そして、別のユーザが当該アップロードされた演奏をカラオケ装置10から検索し、当該演奏を再生しながら自らも演奏して競演する、いわゆるコラボレーションサービスが行われる。
このとき、カラオケ装置10においては、内部エフェクタ111を設けている。内部エフェクタ111は、ユーザが演奏する電子楽器から出力される演奏音に、所望のエフェクトを施すことができ、これによってユーザが意図するような多種多様な表現の電子楽器のサウンドを実現することができる。これに対応して、本実施形態では、アップロード時に、カラオケ楽曲データの楽曲情報及びエレキギター演奏信号に加え、カラオケ楽曲の再生に合わせたユーザの演奏が行われたときの上記内部エフェクタ111の識別情報を含んだ投稿情報を、センターサーバ20にアップロードする(図2のステップS55参照)。そして、カラオケ装置10では、アップロードされた複数の投稿情報の中から、各投稿情報に含まれる内部エフェクタ111の識別情報(図5、図9のステップS105参照)を用いて、コラボレーション対象となる投稿情報を検索する。
これにより、検索者であるユーザは、投稿情報の検索時において、自らが演奏時に作りだそうとしているサウンドに対し好適な関係にある内部エフェクタ111の識別情報を指定して検索することができる。そして、これにより、当該サウンドに類似する音(図5の各手順参照)又は組み合わせの相性がいい音(図9の各手順参照)を含む、アップロード済みの投稿情報を迅速かつ確実に見つけ出すことができる。この結果、利便性を向上することができる。
また、本実施形態では特に、内部エフェクタ111の識別情報に加え、実際に所定の指定コードを演奏した波形情報を備えた指定コード演奏データを、投稿情報に含める形で、センターサーバ20に蓄積しておく。これに対して、検索者であるユーザが検索時において同一の指定コードを弾く(図5、図9のステップS145参照)。そして、その演奏結果と、センターサーバ20に蓄積された過去の当該指定コードの演奏結果とを照合し、さらに精度よくかつ迅速に所望のサウンドの投稿情報を見つけ出すことができる。
また、本実施形態では特に、上記のようにしてセンターサーバ20に蓄積された投稿情報それぞれに対し、図3(b)の「コラボレーション相手登録番号」の欄、又は前述のコラボ回数テーブルによって、他のユーザによりコラボレーション演奏されたときのコラボレーション回数が対応づけられている。そして、投稿情報の検索が行われたとき、検索者であるユーザに対し、コラボレーション回数が多い投稿情報がより優先的に推奨される(図5のステップS185、図9のステップS178参照)。これにより、ユーザは、他とのコラボレーション回数の多い人気の高いサウンドを含む投稿情報を、より迅速に見つけ出すことができる。
<第2実施形態>
本発明の第2の実施形態を、図11〜図13により説明する。上記第1実施形態では、演奏する曲名がユーザにより決められた状態でコラボレーション相手の投稿情報を検索したが、この第2実施形態は、曲名が決まっていない状態でコラボレーション相手の投稿情報を検索する場合の実施形態である。
<コラボレーション演奏>
本実施形態において、第2カラオケ装置10Bのユーザが、楽器(この例では第2エレキギター15B)を演奏しようとする際、上記のようにデータベースに格納された各ユーザの投稿情報を検索し、コラボレーション演奏をする場合を、図11により説明する。図11は、本実施形態において第2カラオケ装置10Bの制御部101により実行される制御手順を表すフローチャートである。図11のフローチャートは、図4に示したフローチャートのステップS15を削除した点と、ステップS100Aの代わりにステップS100Bを用いた点とが異なるのみで、それ以外の手順は基本的に図4と同様である。
図11において、ステップS10では、上記図4と同様、第2カラオケ装置10Bの制御部101は、エレキギター15Bが接続されたか否かを判定する。エレキギター15Bが接続されて判定が満たされた(ステップS10:YES)場合、制御部101は、ステップS20に移る。
ステップS20及びステップS25は上記図4と同様であり、制御部101は、ユーザによる内部エフェクタ111のエフェクト選択を受け付けた後、ステップS25でエフェクトのパラメータの入力を受け付ける。その後、制御部101は、新たに設けたステップS100Bに移る。ステップS100Bでは、第2カラオケ装置10Bのユーザが未選曲の状態で、コラボレーション相手の楽曲演奏を探すためのコラボレーション相手検索または選曲処理が実施される。なお、このコラボレーション相手検索または選曲処理は、コラボレーション相手として、ユーザの電子楽器(この例ではエレキギター15)の演奏音と類似した演奏音を含む投稿情報を探す場合(後述の図12参照)と、ユーザの電子楽器の演奏音と相性が良い演奏音を含む投稿情報を探す場合(後述の図13参照)と、がある。なお、このステップS100Bが、各請求項記載の検索手段を構成している。
ステップS100Bが終了すると、制御部101は、上記ステップS27に移る。ステップS27〜ステップS55、及びステップS60の手順での処理内容は、図4のフローチャートのステップS27〜ステップS55、及びステップS60と同様であるので、説明を省略する。
<コラボ相手検索・選曲処理 その1>
次に、上記ステップS100Bのコラボ相手検索・選曲処理を説明する。まず、図12を用いて、コラボレーション相手として、ユーザの電子楽器(この例ではエレキギター15)の演奏音と類似した演奏音を含む投稿情報を探す場合に、第2カラオケ装置10Bの制御部101により実行される処理を説明する。
図12のフローチャートは、図5に示したフローチャートのステップS105に代えてステップS107を設けた点と、ステップS125に代えてステップS125Aを設けた点と、ステップS220の判断が満たされたときに移行する、ステップS230及びステップS235を新たに設けた点とが異なるのみで、それ以外の手順は基本的に図5と同様である。
図12において、まず、新たなステップS107において、第2カラオケ装置10Bの制御部101は、通信制御部110及びネットワークNW介してセンターサーバ20にアクセスする。そして、制御部101は、センターサーバ20のデータベースに保存された全投稿情報にアクセスする。そして、それらの投稿情報の中に、エフェクト選択及びエフェクトのパラメータが類似した投稿情報があるかどうかを検索する。この投稿情報の検索は、上記図5のステップS105と同様に、上記図11のステップS20でのエフェクト選択及びステップS25でのエフェクトパラメータの入力に基づいて行う。このときの検索手法自体は上記ステップS105と同様であり、前述のユークリッド距離がなるべく小さい(類似度がなるべく高い)投稿情報を検索すればよい。ステップS107が終了すると、制御部101は、ステップS110に移る。
ステップS110では、制御部101は、上記ステップS107での検索結果に基づき、全投稿情報の中に、エフェクトのパラメータが類似した投稿情報、があったか否かを、上記図5と同様に判定する。言い換えれば上記ユークリッド距離が所定値以下の投稿情報があったが否かを、制御部101は判定する。パラメータが類似した投稿情報があって判定が満たされた(ステップS110:YES)場合、制御部101は、ステップS115に移る。パラメータが類似した投稿情報がなかった場合は判定が満たされず(ステップS110:NO)、制御部101は、新たに設けた後述のステップS125Aに移る。
ステップS115では、上記図5と同様、制御部101は、上記ステップS107で検索された、パラメータが類似している投稿情報の識別情報(例えば投稿情報の上記登録番号)を類似度が高い順(ユークリッド距離が小さい順)に並び替える。その後、制御部101は、ステップS120に移る。ステップS120では、上記図5と同様、上記ステップS115で類似度順に並び替えられた投稿情報の識別情報のうち、パラメータの類似度が所定の閾値以上である投稿情報が、ユークリッド距離が小さい順に昇順で表示部109に表示される。また、制御部101は、それらの投稿情報自体をセンターサーバ20のデータベースから取得する。その後、後述のステップS140に移る。
一方、ステップS125Aでは、制御部101は、エフェクトのパラメータが類似した投稿情報がなかったことに対応して、投稿情報が1つでも存在するか否か(言い換えれば、まだ誰も投稿していない状態かどうか)を判定する。1つでも投稿情報があった場合は判定が満たされ(ステップS125A:YES)、制御部101は、ステップS130に移る。同じ楽曲情報の投稿情報がなかった場合は判定が満たされず(ステップS125A:NO)、制御部101は、後述のステップS155に移る。
ステップS130では、制御部101は、すべての投稿情報の識別情報(例えば投稿情報の上記登録番号)を、上記図5と同様、投稿年が近い等の上記ユークリッド距離とは異なる別の基準に沿った類似度順に並び替える。その後、ステップS135では、上記図5と同様、制御部101は、上記ステップS130で別の基準の類似度順に並び替えられた投稿情報を、当該別の基準の類似度が高い順に表示させる。また、制御部101は、それらの投稿情報自体をセンターサーバ20のデータベースから取得する。その後、制御部101は、ステップS140に移る。
その後、ステップS140、ステップS145、ステップS150、ステップS155、ステップS160、ステップS165、さらにステップS170〜ステップS215は、上記図5と同様であり、説明を省略する。
上記ステップS140、ステップS160、ステップS165、ステップS185、ステップS195、ステップS200、ステップS210、ステップS215から移行した、ステップS220では、制御部101は、上記図5と同様、投稿キャンセルフラグFcがFc=1であるか、または、新規投稿フラグFnがFn=1であるかを判定する。Fc=1でもなくFn=1でもない、すなわちFc=0かつFn=0である場合は判定が満たされず(ステップS220:NO)、制御部101は、ステップS225に移る。
ステップS225では、上記図5と同様、制御部101は、ユーザによるコラボレーション相手となる投稿情報の選択結果を取得する。ユーザの操作によりコラボレーション演奏に使用する投稿情報の識別情報が選択される。これにより自動的に演奏される楽曲が選曲されることとなる。そして、識別情報が選択された投稿情報自体がセンターサーバ20のデータベースからダウンロードされ、制御部101で取得される。その結果、カラオケ装置10Bにおいて、コラボレーション相手として、内部エフェクタ111での入力パラメータが類似した(又は内部エフェクタ111での入力パラメータと指定コードの楽器演奏音とが類似した)楽曲演奏データを得ることができる。
一方、上記ステップS220において、判定が満たされた場合(ステップS220:YES)、制御部101は、新たに設けたステップS230に移る。ステップS230では、制御部101は、Fn=1であるか否かを判定する。ユーザが新規投稿をしないFn=0の場合は判定が満たされず(ステップS230:NO)、制御部101は、このフローを終了する。ユーザが新規投稿をするFn=1の場合は判定が満たされ(ステップS230:YES)、制御部101は、新たに設けたステップS235に移る。
ステップS235では、制御部101は、上記第1実施形態の図4のステップS15と同様、ユーザによるカラオケ楽曲の選曲を受け付ける。すなわち、ユーザが、操作部104の直接操作又はリモコン25を介した操作により、新規投稿するカラオケ楽曲の選曲操作を行うことで、カラオケ楽曲の選曲が受け付けられる。この受け付けにより、そのカラオケ楽曲を特定する曲名や曲ID等の上記楽曲情報が制御部101で取得される。その後、制御部101は、このフローを終了する。
以上のように、未選曲の状態で、行われる図12のコラボ相手検索・選曲処理が行われる。これにより、第2カラオケ装置10Bのユーザが、当該ユーザが出そうとしているエレキギター15Bの演奏音と類似した演奏音を含む投稿情報を検索することができる。つまり、第2カラオケ装置10Bのユーザが、エレキギター15Bを用いてコラボレーション演奏するコラボレーション相手を検索することができる。
<コラボ相手検索・選曲処理 その2>
次に、図13を用いて、上記ステップS100Bのコラボ相手検索・選曲処理の他の例について説明する。コラボ相手検索・選曲処理は、コラボレーション相手として、ユーザの電子楽器(この例ではエレキギター15)の演奏音と相性の良い演奏音を含む投稿情報を探す処理である。
図13のフローチャートでは、図12に示したフローチャートのステップS175、ステップS180、ステップS185に代えて、新たにステップS176、ステップS177、ステップS178が設けられている。そして、新たに設けられた、ステップS176、ステップS177、ステップS178の処理内容は上記実施形態の図9とほぼ同様である。
すなわち、ステップS176では、制御部101は、上記ステップS145で取得された指定コードの演奏音を、上記データベースに登録された音色の種類のいずれに該当するかを特定する。その後、ステップS177で、制御部101は、上記ステップS170で判定が満たされた投稿情報について、指定コードの演奏音を含む投稿情報があるか否かを判定する。具体的には、制御部101は、上記ステップS176で特定された指定コードの演奏音の音色と相性の良い音色の指定コードを決定する。そして、決定された指定コードの演奏音を含む投稿情報があるか否かが判定される。なお、このとき、本実施形態では選曲がなされていないことから、上記図9と異なり、ステップS177では上記図10(b)のような音色組み合わせテーブルを用い、図10(c)のような楽曲別音色組み合わせテーブルは使用しない。すなわち、ステップS177では、制御部101は、この時点で処理対象となっているカラオケ楽曲(すべてのカラオケ楽曲)が記載された、図10(b)に示す音色組合せテーブルを参照する。そして、制御部101は、当該テーブルにおいて、上記ステップS176で特定された指定コードの演奏音の音色を含む最も上位のデータがどれであるかを特定する。そして、制御部101は、そのデータに記載の音色組合せにより、上記相性のよい音色を決定する。相性のよい音色が1つでも見つかったらステップS177の判定が満たされ(ステップS177:YES)、制御部101は、ステップS178に移る。
ステップS178では、上記図9と同様、表示部109は、上記ステップS177で見つかった相性の良い音色を使用している全投稿情報の識別情報を、コラボレーション回数が多い順に昇順で表示する。その後は、制御部101は、上記同様のステップS220に移る。
以降、ステップS190〜ステップS235の手順は、図12と同じであるので詳細な説明を省略する。ステップS225では、上記ステップS120又は上記ステップS178において表示部109に表示された投稿情報の識別情報の中から、ユーザがコラボレーション演奏に使用する投稿情報の識別情報を選択することで自動的に選曲が実行されたことになる。そして選択された投稿情報自体がセンターサーバ20のデータベースからダウンロードされて制御部101で取得される。その結果、カラオケ装置10Bにおいて、コラボレーション相手として、内部エフェクタ111での入力パラメータが類似した(又は指定コードの楽器演奏音と相性のよい演奏音を含む)楽曲演奏データを得ることができる。
以上のように、未選曲の状態で行われる図13のコラボ相手検索・選曲処理により、第2カラオケ装置10Bのユーザは、エレキギター15Bを用いてコラボレーション演奏するコラボレーション相手として、所望の投稿情報を検索することができる。この所望の投稿情報とは、当該ユーザが出そうとしているエレキギター15Bの演奏音と相性の良い演奏音を含むものである。
以上説明したように、本実施形態によっても、上記第1実施形態と同様の効果を得る。また特に、カラオケ楽曲の選曲を行わなくても、上記第1実施形態と同様の検索を行うことができる。
なお、以上においては、電子楽器(上記の例ではエレキギター15)からの演奏音に対し、内部エフェクタ111のみによって所望のエフェクトを施したが、これに限られない。すなわち、エレキギター15と楽器接続制御部112の上記楽器入力端子との間に、ユーザが適宜に用意した外部エフェクタを配置して接続してもよい。この場合、エレキギター15からの演奏音に対し当該外部エフェクタで所望のエフェクトを施し、さらに内部エフェクタ111でも所望のエフェクトを施したエレキギター演奏信号を、音声制御部107に入力することができる。
またこの場合、図3(b)に示した投稿情報に含まれる楽曲演奏データ及び指定コード演奏データには、外部エフェクタのエフェクトと内部エフェクタ111のエフェクトの両方が重畳して施されたエレキギター演奏信号が含まれる。この場合、内部エフェクタ111の識別情報やそのパラメータ情報だけでは、上記エレキギターの演奏音の内容を十分に表現できない。このため、特に、上記指定コード演奏データの波形情報や、その音色情報の役割が、確実な検索のためには重要となる。また、上記図3(b)に示された投稿情報の「外部エフェクトフラグ」はこの外部エフェクタの存在を表している。例えばこの外部エフェクトフラグが1である投稿情報の楽曲演奏データ及び指定コード演奏データには、外部エフェクタのエフェクトと内部エフェクタ111のエフェクトの両方が重畳して施されたエレキギター演奏信号が含まれている。なお、その場合、外部エフェクタを使用したことは、ユーザが、操作部104の直接操作又はリモコン25を介した操作によって、カラオケ装置10側に入力するようにすればよい。当該入力があったときには、上記投稿情報における外部エフェクトフラグが0から1に変更され、記録される。
なお、図2、図4、図5、図9、図11、図12、図13の各図に示すフローチャートは本発明を上記フローに示す手順に限定するものではなく、発明の趣旨及び技術的思想を逸脱しない範囲内で手順の追加、削除又は順番の変更等をしてもよい。
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。
その他、一々例示はしないが、本発明は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。