以下、図面を参照し、この発明の実施形態について説明する。
<実施形態>
図1は、この発明の一実施形態による協調演奏制御装置10を含む協調演奏システム1の構成を示すブロック図である。協調演奏システム1は、協調演奏制御装置10と音源20と端末装置30とから構成される。協調演奏制御装置10は、例えば、パーソナルコンピュータである。協調演奏制御装置10は、協調演奏システム1を動作させる主装置である。協調演奏制御装置10には、音源20が接続されている。また、協調演奏制御装置10には、複数の端末装置30(図1では3個)が無線チャネルを介して接続されるようになっている。なお、各端末装置30を区別して説明する場合、端末装置30−n(n=1、2、3〜)と表記する。また、端末装置30の各構成要素の表記についても同様とする。
図2は、音源20の構成を示すブロック図である。音源20は、例えば、歌唱合成ソフトウェア240aを搭載した音源ボックスである。音源20は、制御部210、サーバ・音源インターフェース(以下、I/Fという)220、記憶部240、発音部250およびこれら構成要素間のデータ授受を媒介するバス260を有している。記憶部240は、RAM(Random Access Memory)などの揮発性記憶部と、EEPROM(Electrically Erasable Programmable Read Only Memory:電気的に書き換え可能な読み出し専用メモリ)などの不揮発性記憶部を有している。記憶部240(より正確には記憶部240の不揮発性記憶部)には、歌唱合成ソフトウェア240aが格納されている。サーバ・音源I/F220は、例えばMIDI(Musical Instrument Digital Interface)インターフェースであり、協調演奏制御装置10と制御部210との間のデータの授受を行う装置である。音源20には、サーバ・音源I/F220を介して音源20を制御するための各種の制御パラメータが協調演奏制御装置10から入力される。制御パラメータは、例えば、音程や歌詞情報などのスコア情報や、開口パラメータ(口の開きに対応するパラメータ)やビブラートなどの合成歌唱音の音楽的表情に関係する情報などである。例に挙げた開口パラメータは、合成歌唱音の声質を制御するための制御パラメータのひとつであり、ビブラートは、合成歌唱音の音程を時間軸上において細かく変化させるための制御パラメータである。制御部210は、例えば、CPU(Central Processing Unit:中央処理装置)である。制御部210は、歌唱合成ソフトウェア240aを実行し、入力された制御パラメータを用いて音信号である合成歌唱音を生成する。発音部250は、例えば、スピーカである。発音部260は、歌唱合成ソフトウェア240aにより生成された合成歌唱音を放音する。すなわち、音源20では、各種の制御パラメータの内容が反映された合成歌唱音が放音される。また、歌唱合成ソフトウェア240aによって生成される合成歌唱音は、基本的に単一の旋律である。従って、協調演奏システム1では、音源20を単一の旋律を放音する楽器として機能させている。
図3は、端末装置30の構成を示すブロック図である。端末装置30は、例えば、スマートフォンやタブレットである。端末装置30は、基本的に、当該協調演奏システム1を利用するユーザの数だけ協調演奏制御装置10に接続される。端末装置30は、演奏に関する操作をユーザが行うための操作子としての役割を担う。また、協調演奏制御装置10は、クライアントサーバシステムにおけるサーバとして機能し、端末装置30は、クライアントサーバシステムにおけるクライアントとして機能する。
端末装置30は、制御部310、クライアント・サーバI/F330、記憶部340、ユーザI/F350、およびこれら構成要素間のデータ授受を媒介するバス360を有している。ユーザI/F350は、例えば、マルチタッチ機能を備えたタッチパネルである。ユーザは、タッチパネルをタッチ等することにより演奏に関する操作を行う。端末装置30の記憶部340は、RAMなどの揮発性記憶部と、EEPROMなどの不揮発性記憶部を有している。記憶部340(より正確には記憶部340の不揮発性記憶部)には、演奏パラメータを生成する処理を含むクライアントプログラム340aが格納されている。演奏パラメータは、ユーザI/F350に対してユーザが行ったタッチなどの動作の内容を示す情報(例えば、タッチのタイミングやタッチの位置などを示す情報)である。演奏パラメータは、通常の楽器操作よりも簡単な操作により生成されるようにすると良い。また、記憶部340には、例えば、MIDI演奏シーケンスなどの曲データや演奏に関する情報が格納されていても良い。制御部310は、例えば、CPUである。制御部310は、クライアントプログラム340aを実行する。これにより、制御部310は、ユーザI/F350が検出したユーザのタッチなどの動作に基づいて、逐次演奏パラメータを生成する。クライアント・サーバI/F330は、例えば無線LAN装置であり、協調演奏制御装置10と制御部310との間のデータの授受を無線通信により行う装置である。生成された演奏パラメータは、クライアント・サーバI/F330を介して協調演奏制御装置10に送られる。
図4は、協調演奏制御装置10の構成を示すブロック図である。協調演奏制御装置10は、制御部110、サーバ・音源I/F120、クライアント・サーバI/F130、記憶部140、ユーザI/F150およびこれら構成要素間のデータ授受を媒介するバス160を有している。クライアント・サーバI/F130は、例えば無線LAN装置であり、端末装置30と制御部110との間のデータの授受を無線通信により行う装置である。協調演奏制御装置10は、クライアント・サーバI/F130を介して各端末装置30が各々出力する演奏パラメータを受け取る。サーバ・音源I/F120は、例えばMIDIインターフェースであり、音源20と制御部110との間のデータの授受を行う装置である。協調演奏制御装置10は、サーバ・音源I/F120を介して制御パラメータを音源20に送る。ユーザI/F150は、例えばマウスやディスプレイである。制御部110は、例えばCPUである。制御部110は、記憶部140(より正確には不揮発性記憶部144)に格納されているプログラムを実行することにより協調演奏制御装置10の各部を制御する制御中枢である。記憶部140は、揮発性記憶部142と不揮発性記憶部144とを有している。揮発性記憶部142は、例えばRAMである。揮発性記憶部142は、制御部110によりワークエリアとして利用される。不揮発性記憶部144は、例えば、ハードディスクドライブなどである。不揮発性記憶部144には、本実施形態に特有なものとして、システム制御プログラム144aおよび制御パラメータマッピング情報144bが格納されている。
システム制御プログラム144aは、協調演奏制御装置10を協調演奏システム1の主装置として動作させるための主プログラムである。システム制御プログラム144aは、割り当て処理144a1、演奏パラメータ取得処理144a2、制御パラメータ生成処理144a3を含んでいる。そして、制御部110は、システム制御プログラム144aを実行することにより、割り当て手段、演奏パラメータ取得手段、制御パラメータ生成手段として機能する。
割り当て処理144a1は、演奏に先立ち実行される処理である。割り当て処理144a1は、各種の制御パラメータのうちいずれの制御パラメータについての演奏パラメータをいずれの端末装置30が提供するかを決定する処理である。そして、割り当て処理144a1では、その決定した内容を各端末装置30に通知する。従って、割り当て処理144a1により、各端末装置30における演奏操作の対象となる制御パラメータの種類が決定される。なお、各種の制御パラメータのうち1の制御パラメータについての演奏パラメータを1の端末装置30に提供させるようにしても良いし、各種の制御パラメータのうち複数種の制御パラメータについての演奏パラメータを1の端末装置30に提供させるようにしても良い。また、各種の制御パラメータのうち1の制御パラメータについての演奏パラメータを複数の端末装置30に提供させるようにしても良い。また、各種の制御パラメータのうち予め定められている種類の制御パラメータについての演奏パラメータを予め定められている端末装置30に提供させるようにしても良いし、各種の制御パラメータのうち端末装置30からの要求によって指定された種類の制御パラメータについての演奏パラメータを当該要求のあった端末装置30に提供させるようにしても良い。
制御パラメータマッピング情報144bは、音源20を制御するための制御パラメータの種類と協調演奏制御装置10に接続されている端末装置30とを関連付けたテーブルである。すなわち、制御パラメータマッピング情報144bは、割り当て処理144a1において決定した内容を管理するものである。
演奏パラメータ取得処理144a2および制御パラメータ生成処理144a3は、演奏中においてリアルタイムに実行される処理である。演奏パラメータ取得処理144a2は、各端末装置30において生成された演奏パラメータを各端末装置30から逐次取得する処理である。
制御パラメータ生成処理144a3は、演奏パラメータ取得処理144a2により取得した各演奏パラメータに基づいて音源20を制御する新たな内容の制御パラメータを生成する処理である。この制御パラメータ生成処理144a3は、例えば、複数の端末装置30から取得した複数の演奏パラメータに対して、マトリクスを乗算することにより制御パラメータを生成するものである。より詳細に説明すると、制御パラメータ生成処理144a3は、下記式(1)に示す線形マトリクス演算により行う。
ここで、行ベクトルxi(i=0、1、・・・k)は、協調演奏制御装置10に接続されているi個目の端末装置30から取得した演奏パラメータである。また、列ベクトル(x0、x1、・・・xi)Tは、協調演奏制御装置10に接続されている全ての端末装置30(k個の端末装置30)から取得した全ての演奏パラメータを示すものである。また、列ベクトル(x0、x1、・・・xi)Tは、m次元列ベクトルであり、接続されている全ての端末装置30の演奏パラメータの合計の次元がmである。また、yは、音源20のn個の制御パラメータを表わすn次元列ベクトルである。また、Aは、n×m次のマトリクスである。マトリクスAは、例えば、制御パラメータマッピング情報144bを参照して生成される。マトリクスAは、端末装置30から取得する演奏パラメータを音源20の制御パラメータに対応付けるためのものである。従って、上記式(1)の線形マトリクス演算により各演奏パラメータが反映された各種の制御パラメータが生成される。
なお、制御パラメータ生成処理144a3は、演奏パラメータに対してマトリクスを乗算することにより制御パラメータを生成するものに限られず、例えば、演奏パラメータに対して他のマトリクス演算を行うことにより制御パラメータを生成するものであっても良い。より具体的には、演奏パラメータのオフセット処理のように演奏パラメータに対してマトリクスを加減算することにより制御パラメータを生成するものであっても良いし、演奏パラメータの対数変換を行うことにより制御パラメータを生成するものであっても良いし、演奏パラメータを所定の閾値に制限する閾値処理などの非線形演算を行うことにより制御パラメータを生成するものであっても良い。
各演奏パラメータが反映された各種の制御パラメータは、音源20に引き渡され、音源20は、受け取った各種の制御パラメータに基づいて合成歌唱音を生成する。このため、各ユーザが行った各々の演奏操作は、合成歌唱音に各々反映される。各ユーザの各々の演奏操作が合成歌唱音に各々反映されるため、各ユーザが行う演奏操作の内容が簡単なものであったとしても、合成歌唱音は多様な内容となり得る。
システム制御プログラム144aは、マトリクスAの生成および編集を行う手段も提供する。例えば、協調演奏制御装置10に学習機能を付与し、システム制御プログラム144aの実行による制御の下、最適なマトリクスAを自動生成するようにしても良い。マトリクスAを自動生成する例として、まず、制御部110は、何れの種類の制御パラメータについての演奏パラメータを何れの端末装置30に提供させる確率が高いかを計算する。次に、制御パラメータの種類と端末装置30との組み合わせにおいて最も確率が高かった組み合わせを取得する。そして、端末装置30から取得する演奏パラメータが当該端末装置30との組み合わせにおいて最も確率が高かった制御パラメータにマッピングされるようにマトリクスAを自動生成する。また、マトリクスAを自動生成する他の例として、制御部110は、何れの端末装置30が何れの種類の制御パラメータについての演奏パラメータを提供するように設定されるかのパターンを解析する。次に、解析したパターンから次回に設定されるべき制御パラメータの種類と端末装置30との組み合わせを推定する。そして、端末装置30から取得する演奏パラメータが、当該端末装置30との組み合わせにおいて設定されるべき制御パラメータにマッピングされるようにマトリクスAを自動生成する。
また、マトリクスAを編集する手段をユーザI/F150を介して提供しても良い。また、システム制御プログラム144aの実行による制御の下、マトリクスAを編集する手段を端末装置30に提供しても良い。すなわち、ユーザが手動でマトリクスAを編集することができるようにしても良い。このようにすると、ユーザはマトリクスAを詳細に編集することができる。
また、マトリクスAは、各演奏パラメータを均等の割合で各制御パラメータにマッピングするものであっても良いし、各演奏パラメータに重みをつけて各制御パラメータにマッピングするものであっても良い。演奏パラメータに重みをつけるようにした場合、特定のユーザの演奏操作の影響が大きい音信号を音源20から出力することができる。従って、各ユーザに多様な演奏をさせることができ、より興趣性の高い演奏を各ユーザに体験させることができる。
また、マトリクスAの作り方や内容を工夫することにより、各ユーザの演奏操作における負担(責任)を重くしたり軽くしたりすることができる。例えば、各ユーザが操作すべき操作量や操作項目を加減するなどである。
また、各種の制御パラメータのうち1の制御パラメータについての演奏パラメータを複数の端末装置30に提供させるようにした場合、当該複数の端末装置30が生成する演奏パラメータの内容が競合することがある。このような場合、マトリクスAを制御することにより、演奏パラメータの内容が競合したとしても演奏を成立させることができる。例えば、演奏パラメータの内容が競合する恐れのある各端末装置30から取得する各演奏パラメータに重み付けするような内容を含むマトリクスAを用いる、あるいは、同各演奏パラメータに優先順位が付加されるような内容を含むマトリクスAを用いる、というような具合である。このようにして、演奏パラメータの内容が競合する恐れのある状態をつくることにより、より興趣性の高い演奏を各ユーザに体験させることができる。
また、演奏中において、マトリクスAを一定にしても良いし、マトリクスAを時間変化させても良い。マトリクスAを時間変化させる例として、演奏中における所定の小節に達した時にマトリクスAを自動的に変化させる、というような態様が挙げられる。また、他の例として、ユーザが演奏中にマトリクスAを変化させる指示を端末装置30または協調演奏制御装置10に入力したときにマトリクスAを変化させる、というような態様が挙げられる。
さらに、マトリクスAを各演奏パラメータに重みをつけるようなマトリクスAに演奏中に時間変化させる、というような態様が挙げられる。この態様では、例えば、マトリクスAを変化させるユーザの指示を受け取る毎に各演奏パラメータに重みをつける順番を順次変える、というようにしても良い。この態様によれば、マトリクスAを変化させるユーザは、指揮者のような役割を果たすことができる。このため、指揮者の指示の下に他のユーザが演奏を行うような関係を実現することができる。
また、先生と生徒とが各々の端末装置30を操作する態様が考えられる。この場合、例えば、曲の始めの方では、先生が操作する端末操作30の演奏パラメータの重みを重くするマトリクスAを用い、曲が進むに従って、生徒が操作する端末装置30の演奏パラメータの重みを重くするマトリクスAに徐々に変化させる、というような態様が挙げられる。これらのように、マトリクスAを時間変化させる態様は種々考えられる。そして、マトリクスAを時間変化させることにより、各ユーザに多様な演奏をさせることができ、より興趣性の高い演奏を各ユーザに体験させることができる。
また、特定の端末装置30に多くの種類の制御パラメータを関連付けてその端末装置30を操作するユーザの演奏操作量を増やし、他の端末装置30に少しの種類の制御パラメータを関連付けてその端末装置30を操作するユーザの演奏操作量を減らし、さらに、特定の端末装置30の演奏パラメータの重みを重くするマトリクスAを用いる態様が挙げられる。この態様では、生成される音信号のほとんどは特定の端末装置30の演奏操作に基づくことになる。すなわち、特定の端末装置30を操作するユーザはステージ上の演奏者のような役割を果たし、他の端末装置30を操作するユーザは観客のような役割を果たす。このように、端末装置30と制御パラメータの種類の組み合わせを工夫し、マトリクスAの内容を工夫することにより各ユーザに様々な役割を提供することができる。
また、マトリクスAを編集する手段が与えられる端末装置30の数は、1つに限られず、複数であっても良い。例えば、マトリクスAを編集する手段が2つの端末装置30に各々与えられた場合、一方の端末装置30のユーザがマトリクスAを編集することにより他方の端末装置30における演奏パラメータの重みを変え、他方の端末装置30のユーザがマトリクスAを編集することにより一方の端末装置30における演奏パラメータの重みを変える、という具合に、相互に演奏パラメータの重み付けを変えることができるようにしても良い。
以上が、協調演奏制御装置10を含む協調演奏システム1の構成である。
次に、協調演奏制御装置10を含む協調演奏システム1の動作について説明する。まず、協調演奏制御装置10は、サーバ・音源I/F120を介して音源20とのみ接続されている。この状態で、協調演奏制御装置10の制御部110は、不揮発性記憶部144に格納されているシステム制御プログラム144aを揮発性記憶部142の所定の領域に読み込んでシステム制御プログラム144aを実行する。これにより、割り当て処理144a1、演奏パラメータ取得処理144a2、制御パラメータ生成処理144a3が行われる。
まず、制御部110が演奏に先立って行う処理の内容について説明する。図5は、このときの処理内容を示すフローチャートである。システム制御プログラム144aの実行が開始されると(SA110)、まず、協調演奏制御装置10の制御部110は、音源20とサーバ・音源I/F120の初期化を行う(SA120)。次に、制御部110は、不揮発性記憶部144に格納されている制御パラメータマッピング情報144bを揮発性記憶部142の所定の領域に読み込む(SA130)。そして、協調演奏制御装置10は、端末装置30から接続要求があるのを待つ接続待機状態に入る(SA140)。
制御部110は、接続待機状態において、協調演奏制御装置10にすでに接続済みの端末装置30が有り、かつ、演奏開始の指示を受け取った時に(SA150:有)、接続待機状態を終了する(SA210)。一方、制御部110は、協調演奏制御装置10に端末装置30が1個も接続されていない場合、または、協調演奏制御装置10にすでに接続済みの端末装置30は有るが演奏開始の指示が無い場合、端末装置30からの接続要求を検知するまで接続待機状態を維持する。
次に、協調演奏システム1が提供する協調演奏に参加する各ユーザ(演奏者)は、当該ユーザが操作する端末装置30を協調演奏制御装置10に各々接続していく。より詳細に説明すると、端末装置30−1を操作するユーザは、協調演奏制御装置10に端末装置30−1を接続する指示を端末装置30−1のユーザI/F350−1に入力する。端末装置30−1の制御部310−1は、ユーザI/F350−1から接続指示を受け取ると、接続先として予めセットされている協調演奏制御装置10からのビーコンの有無を確認する。協調演奏制御装置10からのビーコンを受信した場合、端末装置30−1の制御部310−1は、クライアント・サーバI/F330−1を介して、協調演奏制御装置10に接続要求を送る。協調演奏制御装置10の制御部110は、端末装置30−1からの接続要求を検知すると(SA160)、その接続要求の送信元である端末装置30−1を特定する。次に、制御部110は、音源20を制御する各種の制御パラメータのうち何れの制御パラメータについての演奏パラメータをその特定した端末装置30−1に提供させるかを決定する(SA170)。すなわち、ステップSA170は、割り当て処理144a1である。例えば、端末装置30−1に、「音程」と「歌詞情報」についての演奏パラメータを提供させるように決定する、という具合である。このとき、制御部110は、「音程」と「歌詞情報」についての演奏パラメータを端末装置30−1が提供することとなった旨を端末装置30−1に通知する。次に、制御部110は、「音程」と「歌詞情報」という制御パラメータの種別と端末装置30−1のMACアドレスとを関連付けて、それらを制御パラメータマッピング情報144bに追加して制御パラメータマッピング情報144bを更新する(SA180)。そして、協調演奏制御装置10は、端末装置30−1との接続を完了する(SA190)。
次に、制御部110は、当該協調演奏制御装置10に接続している端末装置30の数が所定数に達したか否かを判定する(SA200)。接続している端末装置30の数が所定数に達した場合、制御部110は接続待機状態を終了する(SA210)。一方、接続している端末装置30の数が所定数に達していない場合、制御部110は接続待機状態を維持し(SA140)、SA140からSA200のステップを繰り返す。このようにして、複数の端末装置30が協調演奏制御装置10に接続される。
以上が、制御部110が演奏に先立って行う処理の内容である。
次に、演奏時における各端末装置30の動作を説明する。ここで、協調演奏制御装置10には、3個の端末装置30−1〜30−3が接続されており、端末装置30−1には、「音程」と「歌詞情報」についての演奏パラメータを提供させるように、端末装置30−2には、「開口パラメータ」についての演奏パラメータを提供させるように、端末装置30−3には、「ビブラート」についての演奏パラメータを提供させるように決定しているものとする。また、端末装置30−1〜30−3を操作する各々のユーザは、同一の部屋内に居るものとする。また、演奏する曲のデータは、予め作成済みであり、例えば、端末装置30−1の記憶部340−1にMIDI演奏シーケンスとして格納されているものとする。
端末装置30−1を操作するユーザは、端末装置30−1のユーザI/F350−1のタッチパネルをタッチ等することにより「音程」と「歌詞情報」に関する演奏操作を行う。例えば、タッチするタイミングにより歌詞の発音タイミングを操作するという具合である。より詳細に説明すると、端末装置30−1の制御部310−1は、タッチの有無を検出し、タッチを検出する毎に端末装置30−1の記憶部340−1が保持するMIDI演奏シーケンスから音程と歌詞情報を1音ずつ取り出す。次に、制御部310−1は、タッチの検出タイミングを演奏パラメータとし、取り出した音程と歌詞情報とを演奏パラメータに関連付ける。そして、演奏パラメータと1音毎の音程および歌詞情報とをクライアント・サーバI/F330−1から協調演奏制御装置10に逐次送信する。演奏パラメータの送信は、例えば、タッチを検出する毎に行われる。なお、端末装置30−1の記憶部340−1が保持するMIDI演奏シーケンスから音程と歌詞情報を1音ずつ取り出して協調演奏制御装置10に送信する態様を例に説明したが、この態様に限られない。例えば、協調演奏制御装置10の記憶部140に音程と歌詞情報とが格納され、端末装置30−1の記憶部340−1にシーケンスのみが格納されており、端末装置30−1は、演奏パラメータとシーケンスとを協調演奏制御装置10に送信し、協調演奏制御装置10は、シーケンスに音程と歌詞情報とを関連付ける、というようにしても良い。また、音程や歌詞情報は、一連のシーケンスでリアルタイムに連続してMIDI演奏シーケンスから取り出されるようにしても良い。すなわち、音程や歌詞情報は、ユーザの演奏操作レベルに合わせて、MIDI演奏シーケンスから1フレーズ毎、1メロディー毎または1曲毎などに取り出されるようにしても良い。
また、端末装置30−2を操作するユーザは、端末装置30−2のユーザI/F350−2のタッチパネルをタッチ等することにより「開口パラメータ」に関する演奏操作を行う。例えば、複数の手指を同時にタッチし、タッチした各手指の各々を近づけたり離したりすることにより開口パラメータを操作するという具合である。より詳細に説明すると、端末装置30−2の制御部310−2は、複数の位置に同時にタッチされていることを検出し、その複数のタッチの位置を結ぶことにより形成される領域の面積を算出し、その算出した面積を演奏パラメータとしてクライアント・サーバI/F330−2から協調演奏制御装置10に逐次送信する。演奏パラメータの送信は、例えば、面積の大きさの変化がリアルタイムに反映されるように行われる。
また、端末装置30−3を操作するユーザは、端末装置30−3のユーザI/F350−3のタッチパネルをタッチ等することにより「ビブラート」に関する演奏操作を行う。例えば、タッチした手指をタッチパネルにおける上下方向に移動することによりビブラートの深さや周期を操作するという具合である。より詳細に説明すると、端末装置30−3の制御部310−3は、タッチの位置を検出し、その位置情報を演奏パラメータとしてクライアント・サーバI/F330−3から協調演奏制御装置10に逐次送信する。演奏パラメータの送信は、例えば、タッチの位置の変化がリアルタイムに反映されるように行われる。
各ユーザは、同一の部屋内に居るため、音源20の合成歌唱音を同時に聴くことになる。このため、各ユーザが各々行う演奏操作は、同期して行われる。なお、協調演奏制御装置10に接続される端末装置30の数は3個に限られない。また、端末装置30におけるユーザI/F350の操作は上記の例に限られない。
以上が、演奏時における各端末装置30の動作である。
次に、各ユーザが協調して演奏するときの協調演奏制御装置10の制御部110が行う処理の内容を説明する。図6は、このときの処理内容を示すフローチャートである。なお、協調演奏制御装置10には、端末装置30の動作説明において説明した各端末装置30−1〜30−3が接続されているものとする。
協調演奏制御装置10の制御部110は、演奏開始の指示を受け取ると(SB110)、ステップSB120以降の処理を行う。なお、演奏開始の指示は、協調演奏制御装置10に接続された何れかの端末装置30から受け取っても良いし、協調演奏制御装置10のユーザI/F150から受け取っても良い。
まず、制御部110は、クライアント・サーバI/F130を介して各端末装置30−1〜30−3から演奏パラメータを各々取得する(SB120)。すなわち、ステップSB120は演奏パラメータ取得処理144a2である。より具体的には、端末装置30−1から「音程」と「歌詞情報」についての演奏パラメータ(すなわちタッチのタイミングを示す情報)を取得し、端末装置30−2から「開口パラメータ」についての演奏パラメータ(すなわちタッチの面積を示す情報)を取得し、端末装置30−3から「ビブラート」についての演奏パラメータ(すなわちタッチの位置を示す情報)を取得する。なお、端末装置30−1からは演奏パラメータに関連付けられた1音毎の音程および歌詞情報も取得する。
次に、制御部110は、取得した各演奏パラメータを用いて新たな内容の制御パラメータを生成する(SB130)。すなわち、ステップSB130は制御パラメータ生成処理144a3である。具体的には、取得した全ての演奏パラメータ(例えば、タッチのタイミングを示す情報、タッチの面積を示す情報およびタッチの位置を示す情報)とマトリクスAとの線形マトリクス演算を行う。これにより、各端末装置30から取得した演奏パラメータの内容を反映した新たな内容の制御パラメータが生成される。さらに具体的には、端末装置30−1のユーザが演奏操作したタッチのタイミングが反映された新たな内容の「音程」および「歌詞情報」が生成され、端末装置30−2のユーザが演奏操作したタッチの面積の大きさが反映された新たな内容の「開口パラメータ」が生成され、端末装置30−3のユーザが演奏操作したタッチの位置が反映された新たな内容の「ビブラート」が生成される。なお、「音程」と「歌詞情報」の生成においては、演奏パラメータに関連付けられて取得した1音毎の音程および歌詞情報が利用される。
次に、制御部110は、生成した新たな内容の各制御パラメータをサーバ・音源I/F120を介して音源20に送る(SB140)。
制御部110は、曲の終了を検知した場合、または、演奏終了の指示を受け取った場合(SB150)、演奏を終了する(SB160)。なお、演奏終了の指示は、各端末装置30から受け取っても良いし、協調演奏制御装置10のユーザI/F150から受け取っても良い。一方、制御部110は、曲の終了を検知するまで、または、演奏終了の指示を受け取るまで、演奏パラメータの取得(SB120)、制御パラメータの生成(SB130)および制御パラメータの送信(SB140)を逐次繰り返す。
以上が、演奏時において制御部110が行う処理の内容である。
次に、演奏時における音源20の動作を説明する。演奏時、音源20は、サーバ・音源I/F220を介して協調演奏制御装置10が生成した音源20を制御する各種の制御パラメータを協調演奏制御装置10から逐次受け取る。制御パラメータを受け取った音源20の制御部210は、受け取った制御パラメータを用いて歌唱合成ソフトフェア240aを実行し、合成歌唱音を生成する。そして、制御部210は、生成した合成歌唱音を発音部250から放音させる。音源20は、演奏が終了するまで、制御パラメータの取得、合成歌唱音の生成および合成歌唱音の放音を逐次繰り返す。
以上が、演奏時における音源20の動作である。
このように、本実施形態による協調演奏システム1は、協調演奏制御装置10と、音信号(本実施形態では合成歌唱音)を生成する音源20と、ユーザが演奏に関する操作を行う端末装置30とから構成されている。協調演奏システム1において協調演奏制御装置10は、演奏に先立ち、音源20を制御する各種の制御パラメータのうちいずれの制御パラメータについての演奏パラメータをいずれの端末装置30に提供させるかを決定する。そして、演奏時、各ユーザは、各々の端末装置30に対して演奏操作を行う。この演奏時、協調演奏制御装置10は、各ユーザが端末装置30を操作することにより生成される演奏パラメータを各端末装置30から取得し、取得した各演奏パラメータに基づいて音源20を制御するための新たな内容の各種の制御パラメータを生成する。そして、音源20は、協調演奏制御装置10が生成した制御パラメータに基づいて合成歌唱音を生成し放音する。従って、協調演奏システム1における各ユーザは、端末装置30に対する演奏操作を行うことにより間接的に音源20の制御をリアルタイムに行うことになる。
本実施形態による協調演奏システム1では、各ユーザの端末装置30への演奏操作に基づいて合成歌唱音が放音されるため、各ユーザが協調して演奏を行うことになる。また、協調演奏システム1では、楽器として機能する音源20とその音源20を間接的に操作する端末装置30とを有している。このため、ユーザは、個別に楽器を持つ必要がない。また、協調演奏システム1では、端末装置30のユーザI/F350にタッチなどの簡単な操作を行うことにより演奏を行うことができる。このため、ユーザは、楽器演奏に関する優れたスキルを持っていることを要求されない。これらより、本実施形態による協調演奏制御装置10を含む協調演奏システム1は、楽器演奏のスキル等に関わらずいろいろな人に協調演奏をする機会を提供することができる。また、同協調演奏システム1は、楽器演奏のスキル等に関わらず、当該協調演奏システム1を利用する各ユーザに、演奏時に一体感を与えることができる。また、同協調演奏システム1では、音信号の生成に複数のユーザが関わるため、音源20が生成する音信号は多様なものとなる。このため、同協調演奏システム1は、各ユーザの操作に従う多様な音楽表現を容易に具現化することができる。
そして、同協調演奏システム1は、楽器演奏のスキル等に関わらずいろいろな人に協調演奏の面白さや楽しさを体験させることができる。
また、従来のアンサンブル演奏では、複数人が協調して複数の旋律を演奏している。これに対し、本実施形態による協調演奏システム1では、複数人が協調して単一の旋律を演奏している。換言すると、本実施形態による協調演奏システム1では、複数人が協調して単一の旋律を発音する単音楽器を操作しているといえる。このように、複数人が協調して単一の旋律を演奏する演奏形態は、新規な演奏形態である。このため、協調演奏システム1は、協調演奏における新たな楽しみ方を各ユーザに提供することができる。
また、本実施形態による協調演奏システム1は、複数人による各端末装置30の操作により1つの楽器(あるいは単一の旋律)を演奏するための制御パラメータが生成されるため、楽器の演奏のための各人の操作負担を減らすことができる。
また、本実施形態による協調演奏システム1では、複数人が協調して単一の旋律を演奏するため、各ユーザは、複数の旋律を同時に聴くスキルを持っていることを要求されない。このような点からも、協調演奏システム1は、各ユーザに、演奏時に一体感を与えることができるといえる。
また、本実施形態による協調演奏制御装置10は、各端末装置30から取得した演奏パラメータとマトリクスAとのマトリクス演算を行い新たな内容の制御パラメータを生成している。協調演奏制御装置10では、このマトリクスAを、演奏時に時間変化させるなど、様々に制御可能である。このため、協調演奏制御装置10を含む協調演奏システム1は、マトリクスAを制御することで、各ユーザに多様な演奏をさせることができ、より興趣性の高い演奏を各ユーザに体験させることができる。
また、本実施形態による協調演奏制御装置10では、各種の制御パラメータのうち1の制御パラメータについての演奏パラメータを複数の端末装置30に提供させるようにすることも可能である。このようにすると、各ユーザの演奏のバリエーションが広がり、より興趣性の高い演奏を各ユーザに体験させることができる。
また、本実施形態による協調演奏制御装置10では、各種の制御パラメータのうち一部の制御パラメータについての演奏パラメータを協調演奏制御装置10が生成しても良い。このとき、協調演奏制御装置10は、予めプリセットされた内容の演奏パラメータを生成すれば良い。このようにすると、協調演奏制御装置10に接続される端末装置30の数が所定数に達する前に演奏を開始することが可能となる。従って、所定数のユーザが集まらない状況においても協調演奏システム1を利用することができる。
また、本実施形態による協調演奏システム1の音源20は、歌唱合成ソフトウェア240aを搭載している。歌唱合成ソフトウェア240aには、バーチャルキャラクターが設定されている場合がある。このため、本実施形態による協調演奏システム1では、歌唱合成ソフトウェア240aに設定されているバーチャルキャラクターを複数のユーザが協調して操作するという感覚を各ユーザに与えることもできる。
<他の実施形態>
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
(1)上記実施形態における音源20は、歌唱合成ソフトウェア240aを搭載したものであった。しかし、音源は、音信号を生成するものであれば良く、この態様に限られない。例えば、物理的な発音機構を持つ従来のアコースティック楽器(例えばヴァイオリンなど)を音源としても良い。この場合、演奏用のロボットによりそのアコースティック楽器を操作させるという態様が挙げられる。この態様では、アコースティック楽器を操作するロボットの各種の制御パラメータのうちいずれかの制御パラメータについての演奏パラメータを端末装置30に提供させるようにすれば良い。このようにすると、各ユーザは、各々の端末装置30に対して演奏操作を行うことにより協調してロボットを動かすことになる。従って、各ユーザは、ロボットを介してアコースティック楽器を協調して演奏することができる。
(2)上記実施形態における協調演奏制御装置10では、音源20を制御する制御パラメータを演奏パラメータに基づいて生成していた。しかし、協調演奏制御装置は、音源以外の装置を制御する制御パラメータを演奏パラメータに基づいて生成しても良い。例えば、画像制御装置の制御パラメータを演奏パラメータに基づいて生成しても良い。より具体的には、画像制御装置の制御により表示されるバーチャルキャラクター画像の手の動きや顔の表情などを制御する制御パラメータを演奏パラメータに基づいて生成する、という具合である。この態様では、各ユーザの端末装置30の操作により、バーチャルキャラクター画像がリアルタイムに変化する。このため、バーチャルキャラクターを複数のユーザが協調して操作するという感覚を、より強く各ユーザに与えることができる。
また、協調演奏制御装置は、演奏パラメータに基づいて、音源を制御する制御パラメータと音源以外の装置を制御する制御パラメータの両方を生成しても良い。この例として、開口パラメータについての演奏パラメータに基づいて、音源における新たな開口パラメータを生成するとともに、画像制御装置におけるバーチャルキャラクター画像の口の動きを制御する制御パラメータを生成する、という態様が挙げられる。また、他の例として、演奏パラメータに基づいて音源を制御する制御パラメータを生成するとともに、それとは別個の演奏パラメータに基づいて画像制御装置の制御により表示されるバーチャルキャラクター画像の手の動きや顔の表情などを制御する制御パラメータを生成する、という態様が挙げられる。これらの態様では、各ユーザの端末装置30の操作により、音信号が生成されるとともにバーチャルキャラクター画像がリアルタイムに変化する。このため、前述の態様と同様に、バーチャルキャラクターを複数のユーザが協調して操作するという感覚を、より強く各ユーザに与えることができる。
また、変形例(1)において述べたように、演奏用ロボットを制御する制御パラメータを演奏パラメータに基づいて生成しても良い。これらのように、音源以外の装置を制御する制御パラメータを演奏パラメータに基づいて生成することにより、より興趣性の高い演奏を各ユーザに体験させることができる。
(3)上記実施形態における端末装置30のユーザI/F350は、タッチパネルであった。しかし、ユーザI/F350は、タッチパネルに限られない。例えば、カメラなどであっても良い。この態様では、各ユーザは、カメラに向かってジェスチャーなどを行うことにより演奏操作を行う。例えば、「開口パラメータ」に関する演奏操作を行う場合、ユーザは、手や指で表現した形、手や指の動作、口の輪郭または口の動きなどを端末装置30のカメラに撮像させる、という具合である。端末装置30は、カメラが撮像するユーザのジェスチャーを画像認識し、その認識した画像を示す情報を演奏パラメータとして協調演奏制御装置10に送る。このような態様においても、協調演奏制御装置10におけるマトリクスAの内容を工夫することにより、音源20を制御する制御パラメータを生成することができる。このように、端末装置30のユーザI/F350を様々な態様のものにすることにより、各ユーザが行う演奏操作をより容易なものにすることができる。演奏操作がより容易なものになるため、ユーザは、協調演奏システム1が提供する協調演奏に参加し易くなる。そして、この態様においても、協調演奏システム1は、各ユーザに多様な演奏をさせることができ、より興趣性の高い演奏を各ユーザに体験させることができる。
(4)上記実施形態において音源20を制御する制御パラメータは、音程、歌詞情報、開口パラメータおよびビブラートであった。しかし、音源20を制御する制御パラメータは、これらに限られない。例えば、音源20を制御する制御パラメータとして、歌唱合成ソフトウェア240aにおけるピッチカーブ、ブレスネス、ブライトネスなど、種々のものを用いることができる。
(5)上記実施形態における協調演奏システム1では、協調演奏制御装置10に所定数の端末装置30が接続されている状態で演奏が行われていた。しかし、協調演奏制御装置10に接続される端末装置30の数を演奏中に変化させても良い。すなわち、協調演奏制御装置10に新たな端末装置30が演奏中に接続されても良いし、協調演奏制御装置10に接続されているいずれかの端末装置30と協調演奏制御装置10との間の接続が演奏中に解除されても良い。この態様では、次のようにするとなお良い。制御部110は、割り当て処理144a1において、端末装置30の現在の接続数以外の接続数の場合についても、予め、制御パラメータの種類と端末装置30との関連付けを行う。また、制御部110は、端末装置30の現在の接続数以外の接続数の場合におけるマトリクスAを予め決定しておく。この態様においても、各ユーザに多様な演奏をさせることができる。
(6)上記実施形態において、協調演奏制御装置10は、クライアント・サーバI/F150を介して端末装置30と無線通信により接続されていた。しかし、協調演奏制御装置10と端末装置30との間の接続は無線通信に限られない。例えば、クライアント・サーバI/F150および350を通信ケーブルを接続するポートを有する装置とし、協調演奏制御装置10と端末装置30との間を有線通信により接続しても良い。また、クライアント・サーバI/F150および350を赤外線通信を行うことができる機能を有する装置とし、協調演奏制御装置10と端末装置30との間を赤外線通信により接続しても良い。
(7)上記実施形態では、制御部110がシステム制御プログラム144aを実行することによりパーソナルコンピュータを協調演奏制御装置10として機能させていた。このシステム制御プログラム144aは、協調演奏制御装置10にインストールされた状態で取引されても良いし、コンピュータ読み取り可能な記憶媒体に記憶された状態で別個に取引されても良い。また、システム制御プログラム144aは、ネットワークを介したダウンロードにより取引されても良い。また、システム制御プログラム144aにおける各処理を電子回路により実現しても良い。