(57)【要約】      （修正有）【課題】他のセッション装置とリアルタイムにセッションができるセッション装置を提供する。【解決手段】セッション装置２が有する送信側の端末２０が備えるＣＰＵは、他のセッション装置２が有する受信側の端末２０に対して通信を行った場合の遅延時間を判定し、演奏操作子４０による発音指示タイミングを予測し、当該判定された遅延時間と、当該予測された発音指示タイミングと、に基づいて、他のセッション装置２に予測音の出音指示情報を送信する。したがって、セッション装置２は、他のセッション装置２に対する送信遅延時間を考慮して、出音指示情報を先出しすることができるので、リアルタイムでセッションを行うことができる。【選択図】図１
2014048504.tif 000002
【特許請求の範囲】
【請求項１】
発音の指示を行う演奏操作子と、
他のセッション装置に対して通信を行った場合の遅延時間を判定する遅延時間判定手段と、
前記演奏操作子による発音指示タイミングを予測する発音指示タイミング予測手段と、
前記遅延時間判定手段により判定された前記遅延時間と、前記発音指示タイミング予測手段により予測された前記発音指示タイミングと、に基づいて、前記他のセッション装置に発音指示情報を送信する発音指示情報送信手段と、
を備えたことを特徴とするセッション装置。
【請求項２】
前記発音指示情報送信手段は、前記発音指示タイミング予測手段により予測された前記発音指示タイミングまでの時間が、前記遅延時間判定手段により判定された前記遅延時間以下となったときに、前記他のセッション装置に発音指示情報を送信することを特徴とする請求項１に記載のセッション装置。
【請求項３】
前記演奏操作子により発音が指示された場合に楽音を発音させるとともに、前記他のセッション装置からの発音指示情報を受信すると、当該受信した発音指示情報に基づいて楽音を発音させる楽音発音手段を更に備えることを特徴とする請求項１または２に記載のセッション装置。
【請求項４】
前記演奏操作子の位置及び時刻に関する情報を取得する位置情報取得手段を更に備え、
前記発音指示タイミング予測手段は、前記位置情報取得手段により取得された前記演奏操作子の位置及び時刻に関する情報に基づいて、発音指示タイミングを予測することを特徴とする請求項１から３のいずれかに記載のセッション装置。
【請求項５】
前記演奏操作子を演奏する演奏者の体の所定の部分の加速度を計測する加速度計測手段と、
前記加速度計測手段により計測された前記加速度に基づいて、発音形態を決定する発音形態決定手段と、を更に備え、
前記発音指示情報送信手段は、前記発音形態決定手段により決定された前記発音形態に基づいて前記他のセッション装置に発音指示情報を送信することを特徴とする請求項１から４のいずれかに記載のセッション装置。
【請求項６】
前記演奏操作子による発音の指示がなされた場合に、当該発音情報を前記他のセッション装置に送信する発音情報送信手段を更に備え、
前記楽音発音手段は、前記他のセッション装置から受信した発音指示情報に基づいて楽音を発音させた後、前記他のセッション装置からの前記発音情報を受信すると、前記発音指示情報に基づいて発音させた楽音から前記発音情報に基づく楽音に切り替えて発音させることを特徴とする請求項２から５のいずれかに記載のセッション装置。
【請求項７】
前記楽音発音手段は、前記他のセッション装置から受信した発音指示情報に基づいて楽音を発音させた後、所定の時間が経過しても前記他のセッション装置からの前記発音情報を受信しない場合に、前記発音指示情報に基づいて発音させた楽音の発音を中止することを特徴とする請求項６に記載のセッション装置。
【請求項８】
発音の指示を行う演奏操作子を備えたセッション装置が実行する方法であって、
他のセッション装置に対して通信を行った場合の遅延時間を判定する遅延時間判定ステップと、
前記演奏操作子による発音指示タイミングを予測する発音指示タイミング予測ステップと、
前記遅延時間判定ステップにより判定された前記遅延時間と、前記発音指示タイミング予測ステップにより予測された前記発音指示タイミングと、に基づいて、前記他のセッション装置に発音指示情報を送信する発音指示情報送信ステップと、
を含む方法。
【請求項９】
発音の指示を行う演奏操作子を備えたセッション装置として用いられるコンピュータに、
他のセッション装置に対して通信を行った場合の遅延時間を判定する遅延時間判定ステップと、
前記演奏操作子による発音指示タイミングを予測する発音指示タイミング予測ステップと、
前記遅延時間判定ステップにより判定された前記遅延時間と、前記発音指示タイミング予測ステップにより予測された前記発音指示タイミングと、に基づいて、前記他のセッション装置に発音指示情報を送信する発音指示情報送信ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セッション装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、通信ネットワークを介して接続された他のセッション装置と、擬似的に、あたかもリアルタイムにセッションしているかのように演奏させることのできるセッション装置が知られている。例えば、特許文献１には、他のセッション装置と同時にセッションを開始しなくても他のセッション装置が演奏を開始してから所定時間（多くとも４小節の時間）経過後に、他のセッション装置と同期してセッションを行うことができるセッション装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２８０６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載されたセッション装置では、他のセッション装置とリアルタイムにセッションをすることができなかった。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、他のセッション装置とリアルタイムにセッションを行うことができるセッション装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一態様のセッション装置は、
発音の指示を行う演奏操作子と、
他のセッション装置に対して通信を行った場合の遅延時間を判定する遅延時間判定手段と、
前記演奏操作子による発音指示タイミングを予測する発音指示タイミング予測手段と、
前記遅延時間判定手段により判定された前記遅延時間と、前記発音指示タイミング予測手段により予測された前記発音指示タイミングと、に基づいて、前記他のセッション装置に発音指示情報を送信する発音指示情報送信手段と、
を備えたことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、他のセッション装置に対する送信遅延時間を考慮して、発音指示情報を先出しして送信することができるので、リアルタイムでセッションを行うことができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態としてのセッションシステム１の概要を示す図である。
【図２】前記実施形態に係る電子楽器のハードウェア構成を示すブロック図である。
【図３】前記実施形態に係る端末のハードウェア構成を示すブロック図である。
【図４】前記実施形態に係る送信側の端末の処理を示すフローチャートである。
【図５】前記実施形態に係る静電センサの出力電圧値と、演奏操作子の弦からの距離との関係を示す図である。
【図６】前記実施形態に係る演奏操作子の速度及び位置に応じた実際の出音までの予測時間を示した図である。
【図７】前記実施形態に係る受信側の端末の処理を示すフローチャートである。
【図８】前記実施形態に係るクロスフェード処理を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を用いて説明する。
【００１０】
［セッションシステム１の概要］
初めに、図１を参照して、本発明の一実施形態としてのセッションシステム１の概要について説明する。
図１に示すように、本実施形態のセッションシステム１は、複数のセッション装置２、を含んで構成される。複数のセッション装置２は、互いに通信ネットワーク３０を介して接続されて、互いにデータの送受信を行う。即ち、複数のセッション装置２は、いずれも、送信側及び受信側の両方の処理を実行することができる。
【００１１】
セッション装置２は、電子楽器１０、端末２０、演奏操作子４０及び加速度センサ５０を含んで構成される。電子楽器１０は、電子ギターなどの弦１７を有する楽器である。演奏操作子４０は、演奏者に保持されるピックであり、静電容量の高い素材により構成される。また、加速度センサ５０は、演奏者の体の一部、例えば腕や手首、足、腰など、演奏に際して動作が生じる部分に取り付けられ、演奏者の演奏動作による加速度を検出する。例えば、電子楽器１０がギターの場合、演奏者の腕に取り付けられた加速度センサ５０によって、演奏に際しての腕の振りの加速度を検出する。電子楽器１０には、図２で後述する静電センサ１５が取り付けられており、静電センサ１５と演奏操作子４０とに基づいて、演奏操作子４０の位置（弦１７からの距離）が検出され、当該位置に基づいて演奏操作子４０の速度、発音タイミング（発音されるまでの時間）が算出される。さらに、電子楽器１０と、端末２０とは、無線通信により通信可能に構成されている。
【００１２】
なお、演奏操作子４０の位置の検出については、静電センサ１５に限られず、赤外線センサや磁気センサを用いてもよい。また、画像を撮像するカメラを設けて、当該カメラの撮像画像に基づいて、演奏操作子４０の位置を検出し、検出した位置に基づいて演奏操作子４０の速度、発音タイミングが算出されてもよい。
【００１３】
［電子楽器１０の構成］
図２は、電子楽器１０のハードウェア構成を示すブロック図である。
図２に示すように、電子楽器１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、押弦検出センサ１４と、静電センサ１５と、データ通信部１６と、を含んで構成される。
【００１４】
ＣＰＵ１１は、電子楽器１０全体の制御を実行し、例えば、押弦検出センサ１４から出力されるセンサ値に基づいて、電子楽器１０が発音する音の発音情報を作成し、後述するデータ通信部１６を介して、端末２０に送信する制御などを実行する。
ＲＯＭ１２は、ＣＰＵ１１により各種処理が実行されるための処理プログラムを格納する。ＲＡＭ１３は、押弦検出センサ１４が出力した各種センサ値など、処理において取得され又は生成された値を格納する。
【００１５】
押弦検出センサ１４は、演奏者により電子楽器１０が有する複数の弦１７のうち、どの弦のどの位置が押弦されているかを検出する。
静電センサ１５は、演奏操作子４０と電子楽器１０との距離に応じた電圧値を出力する。
データ通信部１６は、少なくとも端末２０との間で所定の無線通信を行う。所定の無線通信は、赤外線通信、ブルートゥース、ＩＥＥＥ８０２等任意の方法で行うこととしてよい。なお、データ通信部１６は、端末２０との間で有線による通信を行ってもよい。
【００１６】
［端末２０の構成］
図３を参照して、端末２０の構成について説明する。
図３は、端末２０のハードウェア構成を示すブロック図である。
端末２０は、ＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、音源装置２４と、データ通信部２５と、を含んで構成される。
【００１７】
ＣＰＵ２１は、端末２０全体の制御を実行し、例えば、電子楽器１０から受信した静電センサ１５のセンサ出力値に基づいて、演奏操作子４０の位置、速度及び発音タイミングを算出する制御などを実行する。また、ＣＰＵ２１は、データ通信部２５を介して、電子楽器１０との間の通信制御を実行する。
【００１８】
ＲＯＭ２２は、ＣＰＵ２１の実行する各種処理の処理プログラムを格納する。また、ＲＯＭ２２は、種々の音高の波形データ、例えば、電子楽器１０の複数の弦１７の夫々の押弦位置に対応する音高の波形データ等を格納する。
【００１９】
ＲＡＭ２３は、電子楽器１０から受信した静電センサ１５のセンサ出力値など、処理において取得され又は生成された値を格納する。
【００２０】
音源装置２４は、ＣＰＵ２１からの指示にしたがって、ＲＯＭ２２から波形データを読み出して、楽音データを生成すると共に、楽音データをアナログ信号に変換し、図示しないスピーカから楽音を発音する。
また、データ通信部２５は、電子楽器１０との間で所定の無線通信（例えば、赤外線通信、ブルートゥース、ＩＥＥＥ８０２等）を行う。なお、データ通信部２５は、電子楽器１０との間で有線による通信を行っても良い。
【００２１】
次に、端末２０の処理について説明する。
図４は、送信側の端末２０の処理（以下、「送信側端末処理」と呼ぶ）を示すフローチャートである。
図７は、受信側の端末２０の処理（以下、「受信側端末処理」と呼ぶ）を示すフローチャートである。
以下、初めに図４を参照して送信側端末処理について、次に図７を参照して受信側端末処理について、その順番に個別に説明する。
［送信側の端末２０の処理（送信側端末処理）］
送信端末処理の動作主体は、送信側の端末２０のＣＰＵ２１となる。ただし、説明の簡略上、本処理の説明においては、特に断りのない限り、送信側の端末２０のＣＰＵ２１を、単に「ＣＰＵ２１」と呼ぶ。
【００２２】
ステップＳ１１において、ＣＰＵ２１は、受信側の端末２０との遅延時間を算出する。具体的には、ＣＰＵ２１は、Ｐｉｎｇ（Ｐａｃｋｅｔ  Ｉｎｔｅｒｎｅｔ  Ｇｒｏｐｅｒ）コマンドを、受信側の端末２０に送信することにより、当該遅延時間を算出する。
【００２３】
ステップＳ１２において、ＣＰＵ２１は、ステップＳ１１で算出した受信側の端末２０との遅延時間をＲＡＭ２３に記憶する。受信側の端末２０が複数ある場合には、ＣＰＵ２１は、夫々の端末２０に対応させて各遅延時間を夫々記憶する。
【００２４】
ステップＳ１３において、ＣＰＵ２１は、リアルタイムセッション処理を開始する。リアルタイムセッション処理を開始するトリガーとしては、例えば、送信側の端末２０が備える演奏開始スイッチ（図示せず）が押下されたことを、ＣＰＵ２１が検出した場合などである。なお、当該トリガーとしては、受信側の端末２０が備える演奏開始スイッチ（図示せず）が押下されたことに応じて、ＣＰＵ２１が、受信側の端末２０からセッション開始信号を受信した場合などであってもよい。
【００２５】
ステップＳ１４において、ＣＰＵ２１は、演奏操作子４０の１時点における位置と時間を検出して、ＲＡＭ２３に記憶する。ここで、演奏操作子４０の位置とは、ステップＳ１４での検出タイミングにおける演奏操作子４０の弦１７からの距離である。また、演奏操作子４０の時間とは、ステップＳ１４での検出タイミングに相当する時間であって、当該検出タイミングの時刻、又は、ステップＳ１３においてリアルタイムセッション処理が開始されてから当該検出タイミングに至るまでの経過時間等である。
よって、演奏操作子４０の位置及び時間は一対一対応で検出される。さらに、当該位置である演奏操作子４０の弦１７からの距離は、静電センサ１５の出力値に基づいて検出される。
なお、このステップＳ１４では、ＣＰＵ２１は、演奏操作子４０の位置と時間を一時点において検出するので、後述のステップＳ１４〜Ｓ２１のループ処理（以下、単に「ループ処理」と呼ぶ）が繰り返されてステップＳ１４の処理が複数回実行された場合には、当該位置及び時間は、実行された処理の回数分検出されて、ＲＡＭ２３に記憶される。
【００２６】
静電センサの出力電圧値と演奏操作子４０の弦１７からの距離との関係の一例を図５に示す。この例では、当該距離と当該出力電圧値とは反比例の関係にあり、当該距離が大きいほど当該出力電圧値は低くなる。
【００２７】
ステップＳ１５において、ＣＰＵ２１は、例えば直近２時点の演奏操作子４０の位置及び時間に基づいて、演奏操作子４０の速度を算出する。
具体的には例えば、ＣＰＵ２１は、直近のステップＳ１４においてＲＡＭ２３に記憶された演奏操作子４０の位置及び時間を、直近の演奏操作子４０の位置及び時間として取得すると共に、前回のループ処理のステップＳ１４においてＲＡＭ２３に記憶された演奏操作子４０の位置及び時間を、直近の１つ前の演奏操作子４０の位置及び時間として取得する。そして、ＣＰＵ２１は、直近とその１つ前の夫々の演奏操作子４０の位置の差分を、直近とその１つ前の夫々の演奏操作子４０の時間の差分で除算することで、演奏操作子４０の速度を算出する。
本実施形態では、演奏操作子４０が弦１７に近づいている場合のみを想定しているので、直近とその１つ前の夫々の演奏操作子４０の位置の差分は、負の値となる。従って本実施形態では、演奏操作子４０の速度は負の値となる。
なお、このステップＳ１５では、直近２時点の演奏操作子４０の位置及び時間が必要である。よって、初回のステップＳ１５の実行時点では、直近１点のみしかＲＡＭ２３に演奏操作子４０の位置及び時間は記憶されていないため、速度の算出は実行されず、ステップＳ１５の２回目以降の処理にて速度の算出は実行される。
また、このステップＳ１５では、ＣＰＵ２１は、直近２時点の演奏操作子４０の位置及び時間に基づいて演奏操作子４０の速度を算出しているが、これに限られず、ＣＰＵ２１は、直近及びその２つ以上前（即ち、２つ前のみならず、３つ前、４つ前等でもよい）の演奏操作子４０の位置及び時間に基づいて演奏操作子４０の速度を算出してしてもよい。
さらに、ＣＰＵ２１は、直近及びその１つ前の演奏操作子４０の位置及び時間と、直近の１つ前及びその１つ前の演奏操作子４０の位置及び時間と、直近の２つ前及びその１つ前の演奏操作子４０の位置及び時間と、に基づいて、演奏操作子４０の速度を３つ算出し、これらの平均値を算出してもよい。さらにまた、平均値が算出される演奏操作子４０の速度の個数は３つに限定されず、ＣＰＵ２１は、直近の（ｎ−１）個前及び直近のｎ個前（ただし、ｎ＝１，２，…，ｎ）の演奏操作子４０の位置及び時間に基づいて、ｎ個の演奏操作子４０の速度を算出し、これらの平均値を算出してもよい。ただし、ｎ＝１の場合での直近の０個前とは、単に直近のことを指す。
なお、ｎ個の演奏操作子４０の速度が算出される場合、演奏操作子４０の位置及び時間のデータは、ＲＡＭ２３に少なくとも（ｎ＋１）個記憶されていなければならないので、ステップＳ１５の実行回数（ループ処理の繰り返し回数）が（ｎ＋１）回以上の場合に、ｎ個の演奏操作子４０の速度の算出が行われる。
ここで、直近２時点のデータのみから速度が算出されると、算出に要する時間が短くて済む（即時性が高まる）一方で、誤りが引き起こされ易い（突発的なノイズのような一瞬の動きが検出されて、演奏操作子４０の速度が誤って計算されてしまうおそれがある）。これに対して、直近３時点以上のデータを用いて速度が算出されると、比較的安定して演奏操作子４０の速度が算出されるので、速度の算出における誤りが引き起こされにくくできる。
【００２８】
ステップＳ１６において、ＣＰＵ２１は、演奏操作子４０の現在の位置と、速度とから、実際の出音までの予測時間を算出する。具体的には、ステップＳ１５において算出された速度と、その速度が算出された時点での演奏操作子４０の位置（演奏操作子４０の弦１７からの距離）とに基づいて、実際の出音までの予測時間を算出する。例えば、図６に示すように、演奏操作子４０の位置を、演奏操作子４０の速度の大きさで除算することで実際の出音までの予測時間が算出される。
なお、ステップＳ１５で算出された速度は、負の値であるため、当該速度の大きさ（絶対値）に基づいて当該予測時間は算出される。
【００２９】
ステップＳ１７において、ＣＰＵ２１は、出音が予測されるか否かを判断する。具体的には、ＣＰＵ２１は、ステップＳ１６において算出した、実際の出音までの予測時間が、ステップＳ１２においてＲＡＭ２３に記憶された受信側の端末２０との遅延時間以下になった最初のタイミングで、出音が予測されると判断する。したがって、１回の演奏動作において、当該予測時間が当該遅延時間以下になる最初のタイミングは、１度しかない。よって、当該１回の演奏動作において、ステップＳ１７の判断がＹＥＳとなる回数は１回である。
【００３０】
したがって、当該１回以外の場合、即ち、ステップＳ１７での判断がＮＯの場合、処理はステップＳ２０に移行する。この場合、後述のステップＳ１９の予測音の出音指示情報が送信されないので、受信側の端末２０は実際の発音はしない（後述の図７のステップＳ３２ＮＯ）。
【００３１】
そして、ステップＳ１７での判断がＹＥＳになると、ＣＰＵ２１は、処理をステップＳ１８に移行させる。
ステップＳ１８において、ＣＰＵ２１は、弦１７の押弦状況、演奏操作子４０の速度及び加速度等から、実際に演奏者が演奏しようとしている音の音高及び音量を予測する。具体的には、ＣＰＵ２１は、演奏操作子４０の速度に基づいて、演奏者がどの位の強さで弦を弾こうとしているかを検出して、出音する音量を予測する。更に、ＣＰＵ２１は、押弦検出センサ１４が検出した弦１７の押弦状況に基づいて、各弦を弾いた場合の出音する音高を決定する。
【００３２】
また、ＣＰＵ２１は、演奏者に取り付けられた加速度センサ５０が検出した加速度をデータ通信部２５を介して受信し、受信した加速度に基づいて、演奏者がこれから演奏しようとする音の奏法等を判別する。例えば、電子楽器１０がギターの場合、ＣＰＵ２１は、演奏者の腕に取り付けられた加速度センサ５０の出力に応じて演奏者の腕の振り方の情報を取得し、これにより全ての弦１７を鳴らすコードストロークか、一つの弦１７を鳴らす単弦弾きかを判断する。この場合には、例えば、所定の閾値を設定しておき、ＣＰＵ２１は、当該加速度がその閾値を上回ったと判断した場合、コードストロークと判断する。
また、単に閾値のみで判断をするのではなく、電子楽器１０における直近の奏法（コードストローク又は単弦弾き）をＲＡＭ２３に記憶しておき、加速度センサ５０が検出した加速度が、当該所定の閾値の近傍の値である場合には、直近の奏法が優先されるようにしてもよい。例えば、加速度センサ５０が検出した加速度が当該所定の閾値を上回った場合であっても、当該所定の閾値の近傍の値である場合で、且つ、直近の演奏パターンが単弦弾きである場合には、奏法は、コードストロークではなく単弦弾きと判断されるようにしてもよい。
この場合、演奏者は、奏法を単弦弾きからコードストロークに変更したい場合、加速度センサ５０により検出される加速度が当該所定の閾値を大きく上回るように、演奏者自身の腕を振る必要がある。奏法をコードストロークから単弦弾きに変更したい場合も同様に、加速度センサ５０により検出される加速度が当該所定の閾値を大きく下回るように、演奏者自身の腕を振る必要がある。
さらにまた、ＣＰＵ２１は、押弦検出センサ１４が検出した弦１７の押弦状況に基づいて、コードストロークか単弦弾きかを決定してもよい。例えば、ＣＰＵ２１は、複数の押弦パターンが予め格納されたテーブルを参照して、当該押弦状況に基づく押弦パターンが、当該テーブルに格納された複数の押弦パターンのいずれかに一致した場合に、コードストロークと判断して、一致しない場合に、単弦弾きと判断する。
【００３３】
ステップＳ１９において、ＣＰＵ２１は、受信側の端末２０（相手側端末）へ、予測音の出音指示情報を送信する。予測音の出音指示情報には、出音する音の音高、音量、音色などの情報が含まれる。
この場合、ＣＰＵ２１は、出音指示情報として、ＭＩＤＩ信号を受信側の端末２０へ送信してもよいし、出音指示情報に基づいて、出音が予測された音の波形のデータを受信側の端末２０へ送信してもよい。
【００３４】
以上説明したステップＳ１８及びＳ１９の処理の実行回数は、上述したように１回の演奏動作あたりステップＳ１７で１回だけＹＥＳと判断されるので、同様に１回である。これにより、当該１回の演奏動作における、後述するステップＳ１９における予測音の出音指示情報の送信が複数回実行されてしまうことを防止できる。
【００３５】
ステップＳ２０において、ＣＰＵ２１は、送信側の端末２０（自端末）で、実際の発音があったか否か、即ち、実際に演奏者が弦１７を弾くことにより、弦１７が振動して発音したか否かを判断する。
ここで、受信側の端末２０は、ステップＳ１９で送信側の端末２０から送信された予測音の出音指示情報を受信すると、予測音の出音をし、実際の演奏音の出音指示情報を一定時間待っている（後述の図７のステップＳ３２ＹＥＳ〜Ｓ３５）。
演奏者が弦１７を弾かずに実際の発音がないと、ステップＳ２０でＮＯであると判断されて、処理はステップＳ１４に戻される。即ち、演奏者が弦１７を弾くことで実際の発音がなされるまでは、ステップＳ２０でＮＯであると判断され続けるので、後述のステップＳ２１の処理は実行されない状態で、ループ処理が繰り返される。
従って、この間、受信側の端末２０は、後述のステップＳ２１の実際の演奏音の出音指示情報を受信することができないので、一定時間が経過した場合には（後述の図７のステップＳ３５：ＹＥＳ）出音予測が誤りであったとして、出音した予測音をフェードアウト等させて停止させ（後述の図７のステップＳ３６）、再度、予測音の出音指示情報を待つことになる（後述の図７のステップＳ３２）。
【００３６】
これに対して、演奏者が弦１７を弾くことで実際の発音がなされた場合には、ステップＳ２０でＹＥＳであると判断されて、処理はステップＳ２１に進む。
ステップＳ２１において、ＣＰＵ２１は、受信側の端末２０へ、実際の演奏音の出音指示情報を送信する。
この場合、ＣＰＵ２１は、出音指示情報として、演奏者が実際に演奏した音のＭＩＤＩ信号を受信側の端末２０へ送信してもよいし、実際に発音された音の波形のデータを受信側の端末２０へ送信してもよい。
受信側の端末２０は、実際の演奏音の出音指示情報を受信すると、クロスフェードで、予測音から原音に徐々に切り替える（後述の図７のステップＳ３４ＹＥＳ、Ｓ３７）。
【００３７】
ステップＳ２１の処理が終了すると、ＣＰＵ２１は、処理をステップＳ１４に戻し、次回以降のループ処理（演奏動作についての処理）を実行する。
【００３８】
［受信側の端末２０の処理（受信側端末処理）］
次に、このような送信側端末処理に対する受信側処理について、図７を参照して説明する。
受信側端末処理の動作主体は、受信側の端末２０のＣＰＵ２１となる。ただし、説明の簡略上、本処理の説明においては、特に断りのない限り、受信側の端末２０のＣＰＵ２１を、単に「ＣＰＵ２１」と呼ぶ。
【００３９】
ステップＳ３１において、ＣＰＵ２１は、リアルタイムセッション処理を開始する。リアルタイムセッション処理を開始するトリガーとしては、例えば、受信側の端末２０が備える演奏開始スイッチ（図示せず）が押下されたことを、ＣＰＵ２１が検出した場合などである。なお、当該トリガーとしては、送信側の端末２０が備える演奏開始スイッチ（図示せず）が押下されたことに応じて、ＣＰＵ２１が、送信側の端末２０からセッション開始信号を受信した場合などであってもよい。
【００４０】
ステップＳ３２において、ＣＰＵ２１は、送信側の端末２０から予測音の出音指示情報を受信したか否かを判断する。即ち、送信側の端末２０において、図４のステップＳ１９が実行されたことによって送信された予測音の出音指示情報を受信したか否かを判断する。この判断がＹＥＳの場合、ＣＰＵ２１は、処理をステップＳ３３に移行させ、ＮＯの場合、ＣＰＵ２１は、処理をステップＳ３２に移行させる。
したがって、ＣＰＵ２１が当該予測音の出音指示情報を受信したと判断するまでは、ステップＳ３２においてＮＯと判断されるので、ステップＳ３２の判定処理が繰り返し実行されて、受信側の端末２０の処理は待機状態となる。その後、受信側の端末２０が当該予測音の出音指示情報を受信することにより、ＣＰＵ２１は、ステップＳ３２においてＹＥＳと判断して処理をステップＳ３３に移行させる。
【００４１】
ステップＳ３３において、ＣＰＵ２１は、予測音を発音する。具体的には、ＣＰＵ２１は、出音指示情報に基づいて、送信側の端末２０で出音が予測された音を発音する。
この場合、ＣＰＵ２１は、出音指示情報としてＭＩＤＩ信号だけを受信して、受信側の端末２０のＲＯＭ２２に記憶された波形のサンプリングデータに基づいて発音してもよいし、また、送信側の端末２０から受信した音の波形を用いて発音してもよい。
【００４２】
ステップＳ３４において、ＣＰＵ２１は、送信側の端末２０から実際の演奏音の出音指示情報を受信したか否かを判断する。即ち、送信側の端末２０において、図４のステップＳ２１が実行されたことによって送信された実際の演奏音の出音指示情報を受信したか否かを判断する。ステップＳ３４における判断がＹＥＳの場合、ＣＰＵ２１は、処理をステップＳ３７に移行させ、ＮＯの場合、ＣＰＵ２１は、処理をステップＳ３５に移行させて、ＣＰＵ２１は、一定時間経過したか否かを判断する。ステップＳ３５における判断がＹＥＳの場合、ＣＰＵ２１は、処理をステップＳ３６に移行させ、ＮＯの場合、ＣＰＵ２１は、処理をステップＳ３４に移行させる。
したがって、一定時間経過するまでの間に、ＣＰＵ２１が実際の演奏音の出音指示情報を受信しない場合には、ステップＳ３４及びＳ３５の処理が繰り返し実行され、一定時間経過後にステップＳ３６に処理が移行される。また、一定時間経過するまでの間に、ＣＰＵ２１が実際の演奏音の出音指示情報を受信した場合には、ステップＳ３４及びＳ３５の処理が繰り返し実行されている最中にステップＳ３４でＹＥＳと判断されて、ステップＳ３７に処理が移行される。
【００４３】
ステップＳ３６において、ＣＰＵ２１は、出音した予測音をフェードアウトさせて出音を停止する。実際には、セッション装置２において、電子楽器１０の発音が予測されて送信側の端末２０において出音指示情報が送信された場合であっても、弦１７が弾かれずに実際の音が出音されない場合がある。この場合には、ステップＳ３６の処理が行われ、出音された予測音がフェードアウトされて出音が停止される。ステップＳ３６の処理が終了すると、ＣＰＵ２１は、ステップＳ３２に処理を移行させる。
【００４４】
ステップＳ３７において、ＣＰＵ２１は、クロスフェード処理を行い、予測音から原音に徐々に切り替える。具体的には、ＣＰＵ２１は、ステップＳ３３で発音された予測音として先出しされたサンプリング音と、遅延時間分遅れて受信した実際の演奏音の出音指示情報に基づく音と、に対してクロスフェード処理により違和感無く音を繋げることにより発音を実行する（図８参照）。
この場合、ＣＰＵ２１は、出音指示情報としてＭＩＤＩ信号だけを受信して、受信側の端末２０のＲＯＭ２２に記憶された波形のサンプリングデータに基づいて発音してもよいし、また、送信側の端末２０から波形のデータを受信して発音してもよい。
本実施形態では、図８に示すように、クロスフェード処理が実行されることによって、予測音として先出しされた音の波形データがフェードアウトされ、さらに、遅延してきた実音の波形データがフェードインされて合成され、合成後の波形の振幅が滑らかになる。したがって、音量や音色が極端に変化することを防止できるので、自然に原音へと変化させることができる。また、最初に予測して出した音が誤っていた場合でも、自然に正しい音に変化させることができる。
ステップＳ３７の処理が終了すると、ＣＰＵ２１は、ステップＳ３２に処理を移行させる。
【００４５】
以上、本実施形態のセッション装置２の構成及び処理について説明した。
本実施形態においては、セッション装置２が有する送信側の端末２０が備えるＣＰＵ２１は、他のセッション装置２が有する受信側の端末２０に対して通信を行った場合の遅延時間を判定し、演奏操作子４０による発音タイミングを予測し、当該判定された遅延時間と、当該予測された発音タイミングと、に基づいて、他のセッション装置２に予測音の出音指示情報を送信する。
したがって、セッション装置２は、他のセッション装置２に対する送信遅延時間を考慮して、出音指示情報を先出しすることができるので、リアルタイムでセッションを行うことができる。
【００４６】
また、本実施形態においては、セッション装置２が有する送信側の端末２０が備えるＣＰＵ２１は、演奏操作子４０により発音が指示された場合に楽音を発音させるとともに、他のセッション装置２からの予測音の出音指示情報を受信すると、当該受信した出音指示情報に基づいて楽音を発音させる。
したがって、セッション装置２は、送信側と受信側の両方の機能を備えた上で、リアルタイムでセッションを行うことができる。
【００４７】
また、本実施形態においては、ＣＰＵ２１は、演奏操作子４０の位置及び時刻に関する情報を取得し、当該取得された演奏操作子４０の位置及び時刻に関する情報に基づいて、発音タイミングを予測する。
したがって、セッション装置２は、発音タイミングの予測を容易に行うことができる。
【００４８】
また、本実施形態においては、ＣＰＵ２１は、予測された発音タイミングまでの時間が、判定された遅延時間以下である場合に、他のセッション装置２に予測音の出音指示情報を送信する。
したがって、セッション装置２は、適切なタイミングで他のセッション装置２に対して予測音の出音指示情報を送信できる。
【００４９】
また、本実施形態においては、ＣＰＵ２１は、演奏操作子４０を演奏する演奏者の体の所定の部分の加速度を計測し、計測された加速度に基づいて、出音がコードストロークであるか単弦弾きであるか等の発音形態を決定し、決定された発音形態に基づいて他のセッション装置２に出音指示情報を送信する。
したがって、発音形態を考慮して予測音の出音指示情報を先出しすることができるので、リアルタイムのセッションにリアリティを与えることができる。
【００５０】
また、本実施形態においては、送信側の端末２０が備えるＣＰＵ２１は、演奏操作子４０による発音の指示がなされた場合に、実際の演奏音の出音指示情報を受信側のセッション装置２に送信する。受信側の端末２０が備えるＣＰＵ２１は、送信側のセッション装置２から受信した予測音の出音指示情報に基づいて楽音を発音させた後、送信側のセッション装置２からの実際の演奏音の出音指示情報を受信すると、予測音の出音指示情報に基づいて発音させた楽音から実際の演奏音の出音指示情報に基づく楽音に切り替えて発音させる。
したがって、セッション装置２は、音量が極端に変化することを防止できるので、自然に原音へと変化させることができる。また、セッション装置２は、最初に予測して出した音が誤っていた場合でも、自然に正しい音に変化させることができる。
【００５１】
また、本実施形態においては、ＣＰＵ２１は、他のセッション装置２から受信した予測音の出音指示情報に基づいて楽音を発音させた後、所定の時間が経過しても他のセッション装置２からの実際の演奏音の出音指示情報を受信しない場合に、予測音の出音指示情報に基づいて発音させた楽音の発音を中止する。
したがって、セッション装置２は、リアルタイムのセッションにリアリティを与えることができる。
【００５２】
以上、本発明の実施形態について説明したが、実施形態は例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、更に、本発明の要旨を逸脱しない範囲で、省略や置換など種々の変更を行うことができる。これら実施形態やその変形は、本明細書などに記載された発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００５３】
上記実施形態では、電子楽器１０として電子ギターを例にとって説明したが、これに限られるものではなく、本発明は、電子楽器１０として、ベースや、バイオリン等の弦楽器や、電子ドラム等のスティックの振り下ろし動作で楽音を発音する楽器などに適用することができる。
【００５４】
また、上記実施形態では、電子楽器１０と端末２０とを別個の構成としたが、これに限られるものではなく、端末２０の機能を電子楽器１０が有するように構成し、電子楽器１０が直接、通信ネットワーク３０に接続されるようにしてもよい。
また、上記実施形態においては、発音のタイミングと発音指示タイミングの間の時間誤差（遅延）については、特に区別せずに説明を行っており、発音タイミングを用いて発明を実施しても、発音指示タイミングを用いて発明を実施しても、いずれでも、発音指示から発音までの時間的な遅延が無視できる程度であれば、特に問題なく良好な結果が得られる。しかし、さらに正確なタイミングで演奏できるように、発音タイミングと発音指示タイミングの間の遅延時間を考慮に入れた処理を行う事も可能である。
【００５５】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［付記１］
発音の指示を行う演奏操作子と、
他のセッション装置に対して通信を行った場合の遅延時間を判定する遅延時間判定手段と、
前記演奏操作子による発音指示タイミングを予測する発音指示タイミング予測手段と、
前記遅延時間判定手段により判定された前記遅延時間と、前記発音指示タイミング予測手段により予測された前記発音指示タイミングと、に基づいて、前記他のセッション装置に発音指示情報を送信する発音指示情報送信手段と、
を備えたことを特徴とするセッション装置。
［付記２］
前記発音指示情報送信手段は、前記発音指示タイミング予測手段により予測された前記発音指示タイミングまでの時間が、前記遅延時間判定手段により判定された前記遅延時間以下となったときに、前記他のセッション装置に発音指示情報を送信することを特徴とする付記１に記載のセッション装置。
［付記３］
前記演奏操作子により発音が指示された場合に楽音を発音させるとともに、前記他のセッション装置からの発音指示情報を受信すると、当該受信した発音指示情報に基づいて楽音を発音させる楽音発音手段を更に備えることを特徴とする付記１または２に記載のセッション装置。
［付記４］
前記演奏操作子の位置及び時刻に関する情報を取得する位置情報取得手段を更に備え、
前記発音指示タイミング予測手段は、前記位置情報取得手段により取得された前記演奏操作子の位置及び時刻に関する情報に基づいて、発音指示タイミングを予測することを特徴とする付記１から３のいずれかに記載のセッション装置。
［付記５］
前記演奏操作子を演奏する演奏者の体の所定の部分の加速度を計測する加速度計測手段と、
前記加速度計測手段により計測された前記加速度に基づいて、発音形態を決定する発音形態決定手段と、を更に備え、
前記発音指示情報送信手段は、前記発音形態決定手段により決定された前記発音形態に基づいて前記他のセッション装置に発音指示情報を送信することを特徴とする付記１から４のいずれかに記載のセッション装置。
［付記６］
前記演奏操作子による発音の指示がなされた場合に、当該発音情報を前記他のセッション装置に送信する発音情報送信手段を更に備え、
前記楽音発音手段は、前記他のセッション装置から受信した発音指示情報に基づいて楽音を発音させた後、前記他のセッション装置からの前記発音情報を受信すると、前記発音指示情報に基づいて発音させた楽音から前記発音情報に基づく楽音に切り替えて発音させることを特徴とする付記２から５のいずれかに記載のセッション装置。
［付記７］
前記楽音発音手段は、前記他のセッション装置から受信した発音指示情報に基づいて楽音を発音させた後、所定の時間が経過しても前記他のセッション装置からの前記発音情報を受信しない場合に、前記発音指示情報に基づいて発音させた楽音の発音を中止することを特徴とする付記６に記載のセッション装置。
［付記８］
発音の指示を行う演奏操作子を備えたセッション装置が実行する方法であって、
他のセッション装置に対して通信を行った場合の遅延時間を判定する遅延時間判定ステップと、
前記演奏操作子による発音指示タイミングを予測する発音指示タイミング予測ステップと、
前記遅延時間判定ステップにより判定された前記遅延時間と、前記発音指示タイミング予測ステップにより予測された前記発音指示タイミングと、に基づいて、前記他のセッション装置に発音指示情報を送信する発音指示情報送信ステップと、
を含む方法。
［付記９］
発音の指示を行う演奏操作子を備えたセッション装置として用いられるコンピュータに、
他のセッション装置に対して通信を行った場合の遅延時間を判定する遅延時間判定ステップと、
前記演奏操作子による発音指示タイミングを予測する発音指示タイミング予測ステップと、
前記遅延時間判定ステップにより判定された前記遅延時間と、前記発音指示タイミング予測ステップにより予測された前記発音指示タイミングと、に基づいて、前記他のセッション装置に発音指示情報を送信する発音指示情報送信ステップと、
を実行させるプログラム。
【符号の説明】
【００５６】
１・・・セッションシステム、２・・・セッション装置、１０・・・電子楽器、１１・・・ＣＰＵ、１２・・・ＲＯＭ、１３・・・ＲＡＭ、１４・・・押弦検出センサ、１５・・・静電センサ、１６・・・データ通信部、２０・・・端末、２１・・・ＣＰＵ、２２・・・ＲＯＭ、２３・・・ＲＡＭ、２４・・・音源装置、２５・・・データ通信部、３０・・・通信ネットワーク、４０・・・演奏操作子、５０・・・加速度センサ
【図１】
2014048504.tif 000003
【図２】
2014048504.tif 000004
【図３】
2014048504.tif 000005
【図４】
2014048504.tif 000006
【図５】
2014048504.tif 000007
【図６】
2014048504.tif 000008
【図７】
2014048504.tif 000009
【図８】
2014048504.tif 000010