(57)【特許請求の範囲】
【請求項１】
通信ネットワークを介してデータ通信可能に接続された少なくとも２台以上の鍵盤楽器からなる演奏システムであって、前記鍵盤楽器は、
演奏操作子と、
前記演奏操作子の動きを発音体に対する打撃運動に変換して、演奏音を発音させるアクション機構と、
前記演奏操作子を駆動する駆動手段と、
演奏者による前記演奏操作子の演奏操作を検出する検出手段と、
前記検出手段で検出した当該鍵盤楽器で行われた演奏操作を表す情報を前記通信ネットワーク上の別の鍵盤楽器へ送信する送信手段と、
別の鍵盤楽器で行われた演奏操作を表す情報を前記通信ネットワークから受信する受信手段と、
前記受信手段で受信した、前記別の鍵盤楽器で行われた演奏操作を表す情報に基づき前記駆動手段を制御する駆動制御手段とを備える鍵盤楽器である演奏システムにおいて、
前記検出手段で検出した演奏操作を表す情報、又は、前記受信手段で受信した演奏操作を表す情報のいずれか一方に基づき、前記演奏操作子の操作位置の時間的変化を表す推定軌道を算出する推定軌道算出手段と、
前記通信ネットワークのデータ通信にかかる遅延時間を取得する取得手段と、
前記演奏操作が行われた鍵盤楽器とは別の鍵盤楽器で該演奏操作を再現するための予測軌道として、前記算出された推定軌道と前記取得された遅延時間とに基づき、現時点よりも所定時間先の演奏操作子の位置又は速度の少なくとも何れか一方により演奏操作を表す情報を算出する予測軌道算出手段とを備え、前記駆動制御手段は、前記別の鍵盤楽器で行われた演奏操作に対応する前記予測軌道に基づき前記駆動手段を制御することを特徴とする演奏システム。
【請求項２】
演奏操作子と、
前記演奏操作子の動きを発音体に対する打撃運動に変換して、演奏音を発音させるアクション機構と、
前記演奏操作子を駆動する駆動手段と、
演奏者による前記演奏操作子の演奏操作を検出する検出手段と、
前記検出手段で検出した当該鍵盤楽器で行われた演奏操作を表す情報を前記通信ネットワーク上の別の鍵盤楽器へ送信する送信手段と、
前記別の鍵盤楽器で行われた演奏操作を表す情報を前記通信ネットワークから受信する受信手段と、
前記受信手段で受信した、前記別の鍵盤楽器で行われた演奏操作を表す情報に基づき前記駆動手段を制御する駆動制御手段と、
前記検出手段で検出した演奏操作を表す情報、又は、前記受信手段で受信した演奏操作を表す情報のいずれか一方に基づき、前記演奏操作子の操作位置の時間的変化を表す推定軌道を算出する推定軌道算出手段と、
前記通信ネットワークのデータ通信にかかる遅延時間を取得する取得手段と、
前記演奏操作が行われた鍵盤楽器とは別の鍵盤楽器で再生するための予測軌道として、前記算出された推定軌道と前記取得した遅延時間とに基づき、現時点よりも所定時間先の演奏操作子の位置又は速度の少なくとも何れか一方により演奏操作を表す情報を算出する軌道予測手段と
を備え、前記駆動制御手段は、前記別の鍵盤楽器で行われた演奏操作に基づいて算出された前記予測軌道に基づき前記駆動手段を制御することを特徴とする鍵盤楽器。
【請求項３】
前記鍵盤楽器は、更に、タイミング情報を発生するタイミング情報発生手段と、
前記タイミング情報発生手段によるタイミング情報の発生タイミングを、別の鍵盤楽器におけるタイミング情報の発生タイミングと合わせるタイミング合わせ手段と
を具備することを特徴とする請求項１に記載の演奏システム又は請求項２に記載の鍵盤楽器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワークを介して接続された２台以上の鍵盤楽器からなる演奏システムであって、該演奏システムにおいてセッション演奏を行うための技術に関する。
【背景技術】
【０００２】
従来から、アコースティックピアノの各鍵を、各鍵に対応して設けられたソレノイドで駆動する自動演奏ピアノが知られている。自動演奏ピアノでは、再生すべき演奏情報に基づきソレノイドが選択的に駆動され、該駆動されたソレノイドに対応する鍵が上下動することで、当該ピアノに該演奏情報に基づく演奏を自動的に行わせることができた。
【０００３】
また、本出願人は、２台以上の自動演奏ピアノを利用して、１つの自動演奏ピアノにおいて演奏者が行った鍵操作による鍵の動きを、別の自動演奏ピアノにおいて再生する演奏駆動システムを考案した。前記演奏駆動システムは、２台以上の自動演奏ピアノをデータ通信可能に接続し、該接続されたピアノのうちの１台（マスター側）において、演奏者によって行われた鍵の操作に基づく操作情報が生成され、該生成された操作情報を別のピアノ（スレーブ側）に送信し、スレーブ側の自動演奏ピアノにおいて、マスター側の自動演奏ピアノから送信された操作情報に基づきソレノイドが選択的に駆動され、該駆動されたソレノイドに対応する鍵が上下動することで、マスター側の自動演奏ピアノにおいて演奏者が行った鍵の操作が、スレーブ側の自動演奏ピアノにおいて再現されるものだった（下記特許文献１を参照）。
【特許文献１】特開２００６−１７８１９７号公報
【０００４】
上記特許文献１に記載されたシステムでは、マスターとスレーブの間でデータ通信する際に遅延が生じる。また、スレーブ側の自動演奏ピアノにおいて鍵の動きを再生するための駆動制御系では、数百ミリ秒程度の遅延が発生する。つまり、マスター側の自動演奏ピアノにおいて演奏者が行ったピアノ演奏操作に対して、スレーブ側の自動演奏ピアノにおいて再現されるピアノ演奏（鍵の動きと発音）は、通信遅延と駆動制御系で生じる鍵の再生動作の遅延との２つの遅延要素の分だけ遅延する。しかし、特許文献１に記載のシステムでは、前述の通信遅延と駆動制御系で生じる遅延とに対する遅延補償のための対策は講じられていなかった。
【０００５】
また、特許文献１に記載されたシステムでは、相互に接続された２台の自動演奏ピアノは、マスターとスレーブの関係にあり、マスター側からスレーブ側への一方向的な情報の流れが想定されていたので、これら２台の自動演奏ピアノを用いてセッション演奏を行うという発想がなかった。ここで、セッション演奏とは、相手のピアノで行われたピアノ演奏を、自分側の自動演奏ピアノの自動演奏機能を使って再生すること（鍵盤を自動的に動かして、それによりピアノ演奏音を発生すること）を、相互に行うことである。無論、単純にピアノ演奏に応じた操作情報を互いに送受信し合うだけならば、マスターとスレーブの関係を動的に切り替えれば実現できるかもしれぬ。しかし、特許文献１に記載されたシステムでは、前述した通信遅延と駆動制御系で生じる遅延との２つの遅延が発生する問題があるため、２台の自動演奏ピアノを利用して円滑なセッション演奏を実現することができなかった。
【０００６】
特に、２台以上の自動演奏ピアノをインターネット等の広域通信ネットワークを介して接続する場合、前述の通信遅延の問題が顕著になる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
この発明は、上述の点に鑑みてなされたもので、通信ネットワークを介して接続された２台以上の鍵盤楽器を用いて、円滑なセッション演奏が行えるようにした演奏システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明は、通信ネットワークを介してデータ通信可能に接続された少なくとも２台以上の鍵盤楽器からなる演奏システムであって、前記鍵盤楽器は、演奏操作子と、前記演奏操作子の動きを発音体に対する打撃運動に変換して、演奏音を発音させるアクション機構と、前記演奏操作子を駆動する駆動手段と、演奏者による前記演奏操作子の演奏操作を検出する検出手段と、前記検出手段で検出した当該鍵盤楽器で行われた演奏操作を表す情報を前記通信ネットワーク上の別の鍵盤楽器へ送信する送信手段と、別の鍵盤楽器で行われた演奏操作を表す情報を前記通信ネットワークから受信する受信手段と、前記受信手段で受信した、前記別の鍵盤楽器で行われた演奏操作を表す情報に基づき前記駆動手段を制御する駆動制御手段とを備える鍵盤楽器である演奏システムにおいて、前記検出手段で検出した演奏操作を表す情報、又は、前記受信手段で受信した演奏操作を表す情報のいずれか一方に基づき、前記演奏操作子の操作位置の時間的変化を表す推定軌道を算出する推定軌道算出手段と、前記通信ネットワークのデータ通信にかかる遅延時間を取得する取得手段と、前記演奏操作が行われた鍵盤楽器とは別の鍵盤楽器で該演奏操作を再現するための予測軌道として、前記算出された推定軌道と前記取得された遅延時間とに基づき、現時点よりも所定時間先の演奏操作子の位置又は速度の少なくとも何れか一方により演奏操作を表す情報を算出する予測軌道算出手段とを備え、前記駆動制御手段は、前記別の鍵盤楽器で行われた演奏操作に対応する前記予測軌道に基づき前記駆動手段を制御することを特徴とする演奏システムである。
【０００９】
これによれば、検出手段で検出した演奏操作を表す情報に基づき、推定軌道を算出する場合、当該鍵盤楽器で行われた演奏操作を表す情報と遅延時間とに基づく予測軌道が算出される。したがって、鍵盤楽器は、その予測軌道を、当該鍵盤楽器で行われた演奏操作を表す情報として、送信手段から別の鍵盤楽器に送信できる。別の鍵盤楽器では、受信した予測軌道に基づき、当該鍵盤楽器で行われた演奏操作に対応する演奏操作子の軌道を再現できる。また、受信手段で受信した、別の鍵盤楽器で行われた演奏操作を表す情報に基づき、推定軌道を算出する場合、別の鍵盤楽器で行われた演奏操作を表す情報と遅延時間とに基づく予測軌道が算出される。したがって、鍵盤楽器は、その予測軌道に基づき、別の鍵盤楽器で行われた演奏操作に対応する演奏操作子の軌道を再現できる。いずれの場合も予測軌道は、遅延時間を考慮して生成されている。したがって、２台以上の鍵盤楽器を使って通信ネットワーク経由で「セッション演奏」を行うことができ、その際の遅延を効果的に補償することができる。また、演奏操作子を駆動が、演奏操作子の操作位置の時間的変化を表す軌道に基づき行われるので、セッション演奏相手の演奏内容を、発音タイミング、発音ベロシティ、止音タイミング及び止音ベロシティの４つの要素について正確に再現することができる。
【００１０】
また、この発明は、演奏操作子と、前記演奏操作子の動きを発音体に対する打撃運動に変換して、演奏音を発音させるアクション機構と、前記演奏操作子を駆動する駆動手段と、演奏者による前記演奏操作子の演奏操作を検出する検出手段と、前記検出手段で検出した当該鍵盤楽器で行われた演奏操作を表す情報を前記通信ネットワーク上の別の鍵盤楽器へ送信する送信手段と、前記別の鍵盤楽器で行われた演奏操作を表す情報を前記通信ネットワークから受信する受信手段と、前記受信手段で受信した、前記別の鍵盤楽器で行われた演奏操作を表す情報に基づき前記駆動手段を制御する駆動制御手段と、前記検出手段で検出した演奏操作を表す情報、又は、前記受信手段で受信した演奏操作を表す情報のいずれか一方に基づき、前記演奏操作子の操作位置の時間的変化を表す推定軌道を算出する推定軌道算出手段と、前記通信ネットワークのデータ通信にかかる遅延時間を取得する取得手段と、前記演奏操作が行われた鍵盤楽器とは別の鍵盤楽器で再生するための予測軌道として、前記算出された推定軌道と前記取得した遅延時間とに基づき、現時点よりも所定時間先の演奏操作子の位置又は速度の少なくとも何れか一方により演奏操作を表す情報を算出する軌道予測手段とを備え、前記駆動制御手段は、前記別の鍵盤楽器で行われた演奏操作に基づいて算出された前記予測軌道に基づき前記駆動手段を制御することを特徴とする鍵盤楽器である。
【００１１】
上記構成からなる２台以上の鍵盤楽器を、通信ネットワークを介して接続することで、該接続された２台以上の鍵盤楽器は、それぞれ、当該鍵盤楽器とは別の鍵盤楽器で行われた演奏操作を表す情報を、通信ネットワークの遅延時間を考慮した予測軌道として取得して、該別の鍵盤楽器で行われた演奏操作に対応する予測軌道に基づき当該鍵盤楽器の演奏操作子を駆動できる。したがって、２台以上の鍵盤楽器を使って通信ネットワーク経由で「セッション演奏」を行うことができ、その際の遅延を効果的に補償できる。
【００１２】
この発明の鍵盤楽器は、更に、タイミング情報を発生するタイミング情報発生手段と、前記タイミング情報発生手段によるタイミング情報の発生タイミングを、別の鍵盤楽器におけるタイミング情報の発生タイミングと合わせるタイミング合わせ手段とを具備するように構成されてもよい。
【発明の効果】
【００１８】
この発明によれば、通信ネットワークを介してデータ通信可能に接続された少なくとも２台以上の鍵盤楽器からなる演奏システムにおいて「セッション演奏」を行う際に、情報の送信側の演奏操作に対応する推定軌道と遅延時間を考慮して予測した演奏操作を表す情報（予測軌道）に基づいて、該情報の受信側の鍵盤楽器で演奏操作子の駆動制御を行うことができるという優れた効果を奏する。よって、「セッション演奏」を行う際の遅延を効果的に補償して、略リアルタイムで相手の演奏操作を自機で再生することができ、円滑なセッション演奏を行うことができるようになるという優れた効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下、この発明の実施例について図面を参照して詳細に説明する。
【００２０】
〈第１の実施例〉
図１は、この発明にかかる演奏システムの第１の実施例の全体構成を概念的に示すブロック図である。この演奏システムは、広域通信ネットワークを介して相互にデータ通信可能に接続された２つ以上の自動演奏ピアノにより構成されるものである。広域通信ネットワークは、例えばインターネットを想定している。図１において、演奏者Ａが操作する自動演奏ピアノＰＡと、演奏者Ｂが操作する自動演奏ピアノＰＢは、インターネットＮを介してデータ通信可能に接続されている。
【００２１】
自動演奏ピアノＰＡ、ＰＢは、それぞれ同様に構成されるもので、図１においては、動作を機能的に説明するブロックにより、その構成が表現されている。自動演奏ピアノＰＡ、ＰＢは、演奏入力用の複数の鍵１からなる鍵盤を有し、発音体として弦４を備えるアコースティックピアノにおいて、鍵盤を駆動するための制御系１８、鍵盤の動きを検出するためのセンサ１９、電子的に楽音を発生するための音源１６及びインターネットＮに接続するための通信インターフェース１５を備えるものである。なお、図１においては、自動演奏ピアノＰＡ側の各構成要素を表す符号の末尾にアルファベット文字「Ａ」を付与し、また、自動演奏ピアノＰＢ側の各構成要素を表す符号の末尾にアルファベット文字「Ｂ」を付与することで、自動演奏ピアノＰＡ側の各構成要素と自動演奏ピアノＰＢ側との区別をつけている。なお、明細書本文中では、自動演奏ピアノＰＡ，ＰＢに共通する構成要素について、何れの装置側の構成要素であるかを明確に区別する必要がない場合には、符号末尾の付加的なアルファベット文字は省略する。
【００２２】
図１に示す第１の実施例によれば、演奏システムは、インターネットＮを介して接続された２台の自動演奏ピアノＰＡ、ＰＢを用いて、次に述べる２点の特徴を有するセッション演奏を行うことができるよう構成されている。すなわち、自動演奏ピアノＰＡ又はＰＢの一方（これを仮に自分側と呼ぶ）は、自動演奏ピアノＰＡ又はＰＢの他方（これをセッション演奏相手と呼ぶ）で行われたピアノ演奏を表す操作情報をインターネット経由で受信することで、（１）該受信した操作情報に基づく楽音が音源１６において電子的に生成され、セッション演奏相手のピアノ演奏に対応する電子音が自分側の自動演奏ピアノにおいて発音されると共に、（２）該受信した操作情報に基づき鍵盤を自動駆動することで、セッション演奏相手のピアノ演奏による鍵の動きが、自分側の自動演奏ピアノにおいて再生される。勿論、自分側の自動演奏ピアノにおいて自身が行ったピアノ演奏は、弦４から発音されるアコースティック音で発音させることができる。これにより、自動演奏ピアノＰＡの演奏者Ａと、自動演奏ピアノＰＢの演奏者Ｂは、お互いのピアノ演奏を電子音で聞き、且つ、互いのピアノ演奏による鍵盤の動きを見ながら、相手の演奏に応答したピアノ演奏を行うセッション演奏を行うことができる。
【００２３】
図２は、自動演奏ピアノＰＡ又はＰＢにおけるアコースティック発音機構（図１における鍵盤に相当する）と、制御系１８及びセンサ１９を含む自動演奏機能の構成を示す図である。なお、図２において、鍵盤を構成する複数の鍵（一般的なピアノでは８８鍵）のうちの１つの鍵と、それに対応する発音機構が描かれており、その他の黒鍵及び白鍵も概ね同様に構成される。また、図２において、発音機構は、ピアノの演奏者が座る側（図面上では右側）を前面とすると、ピアノ側面から見た一部断面図で描かれている。
【００２４】
図２において、自動演奏ピアノは、通常のアコースティックのピアノと同様に、鍵１と、鍵１の上下動をハンマ３の打弦運動に変換するためのアクション機構２と、打弦運動するハンマ３と、該ハンマ３によって打撃される弦４等を含んで構成される。鍵１の後端には、鍵１を駆動するためのソレノイド５が備わる。また、鍵１に対応して、該鍵１の動きを検出するためのキーセンサ６が設けられている。
【００２５】
鍵１は、バランスピンに貫通された位置を凡その支点として、打鍵操作に応じて上下動する。鍵１は、非押鍵時（外力を加えない状態）には、図１において実線で示すレスト位置（ストローク量０ｍｍの位置）にあり、押鍵操作によって図１において二点差線で示すエンド位置（例えばレスト位置から１０ｍｍ押し下げられた位置）まで押し下げられる。また、エンド位置に押し込まれた鍵１の押し下げを解き、レスト位置に復帰させる操作を離鍵操作という。この明細書では、鍵１の押鍵と離鍵をあわせた一連の鍵の上下動を打鍵という。従って、１つの打鍵において鍵が辿る打鍵軌道は、レスト位置に停止している状態である「レスト」、鍵がレスト位置からエンド位置に至るまでの操作状態である「押鍵」、エンド位置に停止している状態である「エンド」、及び、鍵がエンド位置からレスト位置に至るまでの操作状態である「離鍵」の４つの軌道フェーズにより定義される。なお、本明細書において、鍵の「軌道」とは、鍵の位置の時間的変化を指す。
【００２６】
図２に示す自動演奏ピアノにおいて、演奏者の手弾き演奏により鍵１が打鍵操作されると、鍵１の打鍵運動がアクション機構２を介してハンマ３の打弦運動に変換され、ハンマ３が弦４を打撃する。これにより、打鍵操作された鍵１に割り当てられた音高のピアノ音が発音される。このように、自動演奏ピアノでは、ピアノ演奏に応じてアコースティックの楽音を発生することができる。
【００２７】
キーセンサ６は、演奏者のピアノ演奏に応じた操作情報を生成するために、鍵１の動きを検出するセンサであって、例えば、鍵１の打鍵動作の全工程について連続的な位置情報を表すアナログ信号を出力できる光学式の位置センサで構成することができる。なお、キーセンサ６のみならず、ハンマ３の動きに応じた適宜の物理量（位置、速度等）を検出するためのハンマセンサ７を設けて、後述する操作情報の作成にハンマセンサ７の出力信号を利用できるようにしてもよい。なお、キーセンサ６及びハンマセンサ７は、図１のセンサ１９に含まれるものである。
【００２８】
この実施例に適用する自動演奏ピアノにおいては、自動演奏機能を利用して、セッション演奏を行う。自動演奏機能は、大別して、自分側で行ったピアノ演奏を表す操作情報を生成するためのモジュール（演奏検出部１３及び検出後処理部１４）と、相手側の自動演奏ピアノからインターネット経由で送信された操作情報の再生（鍵の駆動と楽音の発音）を行うモジュール（再生前処理部１０、モーションコントローラ１１及びサーボ制御部１２、並びに、音源１６）とからなる。
【００２９】
演奏検出部１３は、キーセンサ６から出力される鍵１の位置情報から、押鍵タイミング、押鍵速度、離鍵タイミング、離鍵速度など打鍵操作情報を計算する。検出後処理部１４は、前記演奏検出部１３で計算した操作情報に対して所定の正規化処理を行うと共に、該正規化した操作情報を、例えばＭＩＤＩ形式など、従来から知られる適宜のデータフォーマットに変換する。この操作情報は、ノートオン／ノートオフと、ノートナンバと、ベロシティ値を含んで構成されるものである。なお、ノートナンバ（鍵番号）は、８８鍵の１つずつに付与された通し番号である。検出後処理部１４から出力される操作情報は、通信Ｉ／Ｆを介して外部（インターネットを介して接続された他の自動演奏ピアノ）へ送信される。なお、前記正規化処理とは、ピアノの個体差を吸収するための処理である。センサ１９（キーセンサ６及びハンマセンサ７）により検出した種々の物理情報は、各ピアノにおけるセンサの位置や、構造上の違い、あるいは、機械的誤差によってピアノ個体毎に固有の傾向を持つものとなる。このため、前記正規化処理により、標準となるピアノを想定して、該基準となるピアノに対応する情報に変換する。
【００３０】
再生前処理部１０は、通信Ｉ／Ｆ１５を介して外部（他の自動演奏ピアノ）から供給された操作情報を適宜個別化する処理を行い、モーションコントローラ１１は、通信Ｉ／Ｆ１５から供給される操作情報に基づき、鍵の打鍵軌道を表す軌道情報を生成する。サーボコントローラ１２には、前記モーションコントローラ１１で生成された軌道情報が入力されると共に、キーセンサ６の検出信号がフィードバック信号として供給される。サーボコントローラ１２は、前記軌道情報とキーセンサ６の検出信号に基づき、ソレノイド５を駆動するための駆動信号（後述のＰＷＭ信号）を生成し、該生成した駆動信号に基づきソレノイド５をサーボ制御する。ソレノイド５は、該生成された駆動信号（後述のＰＷＭ信号）に基づき通電オンオフが制御される。通電オンのときにソレノイド５のプランジャが突出することで、対応する鍵１の後端部を裏面から突き上げて、鍵１の押鍵動作が行われる。そして、通電オフに応じて該プランジャによる鍵１の突き上げが解かれ、鍵１の離鍵動作が行われる。これにより、あたかも演奏者が鍵１を打鍵操作したかのように、鍵１を自動的に打鍵駆動することができる。なお、ソレノイド５にプランジャ速度を検出する速度センサを設けて、該速度センサの出力信号をサーボコントローラ１２に対するフィードバック信号として用いるよう構成してもよい。
【００３１】
後述する通り、この第１の実施例においては、自動演奏機能により鍵１を自動的に打鍵駆動するときには、相手側のピアノで実際に行われた押鍵操作の強さに関わらず、弦４により楽音が発音しないよう、遅い押鍵速度で鍵１を駆動する。本明細書では、このような鍵の駆動制御の方法を「非打弦駆動」と呼ぶことにする。
【００３２】
また、音源１６は、通信Ｉ／Ｆ１５を介して外部（他の自動演奏ピアノ）から供給された操作情報に基づき電子的に楽音を生成する。音源１６で生成した楽音は、スピーカ１７から放音される。これにより、通信Ｉ／Ｆ１５を介して外部（他の自動演奏ピアノ）から供給された操作情報に基づく楽音を電子音で発音することができる。なお、音源１６に適用する音源方式は、従来から知られる適宜の方式を採用してよい。
【００３３】
図３は、図２に示す自動演奏ピアノの電気的ハードウェア構成を示すブロック図である。自動演奏ピアノＰＡ，ＰＢは、ＣＰＵ２０、ＲＯＭ２１、ＲＡＭ２２からなるマイクロコンピュータと、通信インターフェース（通信Ｉ／Ｆ）１５と、センサ１９の検出信号を取り込むセンサ・インターフェース（センサＩ／Ｏ）２３と、ソレノイド５を駆動するための駆動信号を発生するＰＷＭ発生器２４と、音源１６を含んで構成され、各部がデータ及び通信バス２０Ｂを介して接続される。音源１６には該音源１６で生成した電子的楽音を発音するためのスピーカ１７が接続される。センサ１９は、図１で符号１９Ａ，１９Ｂで示すセンサに対応しており、図２におけるキーセンサ６及びハンマセンサ７を含むものである。
【００３４】
ＣＰＵ２０は、ＲＯＭ２１或いはＲＡＭ２２に保存された各種制御プログラムを実行して全体的な動作を制御する。具体的には、再生前処理部１０、モーションコントローラ１１、サーボコントローラ１２の動作に相当する鍵の駆動制御系に対する動作命令や、演奏検出部１３及び検出後処理部１４の動作に相当する操作情報の生成処理や、インターネット通信処理などの処理がＣＰＵ２０によって実行される。
【００３５】
センサ１９の検出信号（アナログ信号）は、センサＩ／Ｏ２３を介してディジタル信号に変換され、ディジタル信号に変換されたセンサ１９の検出信号がＣＰＵ２０に供給される。ＣＰＵ２０に供給されたセンサ１９の検出信号は、演奏検出部１３及び検出後処理部１４の動作に相当する操作情報の生成処理や、サーボコントローラ１２によるサーボ制御に利用される。ＰＷＭ発生器２４は、前記サーボコントローラ１２の出力段に相当し、ＣＰＵ２０が操作情報に基づき生成したソレノイド駆動用のディジタル信号を電流信号（ＰＷＭ形式の電流信号）を発生する。ＰＷＭ発生器２４が発生するＰＷＭ信号は、操作情報として与えられる押鍵速度に応じてパルス幅を変調された信号である。なお、ソレノイドを駆動する方式は、ＰＷＭ電流信号による方式に限らず、従来から知られるどのような方式を適用してもよい。
【００３６】
通信インターフェース１５は、例えばイーサネット（登録商標）など従来から知られる適宜の汎用インターフェースで構成され、該通信Ｉ／Ｆ１５を介して、ＬＡＮ（ローカルエリア）やインターネット等の通信ネットワークに接続し、該通信ネットワーク上の他の自動演奏ピアノとデータ通信可能に接続される。
【００３７】
図４は、図１に示す第１の実施例の演奏システムによるセッション演奏の手順の一例を説明するためのフローチャートである。図１と図４を参照して、この発明の第１の実施例に従うセッション演奏の流れを説明する。なお、自動演奏ピアノＰＡ，ＰＢにおいて、略同じタイミングで同一鍵が操作された場合には、先に打鍵が開始した自動演奏ピアノＰＡ，ＰＢでの操作を優先して受け付ける。つまり、その打鍵操作が終わるまでは、操作情報に基づく当該鍵の駆動は行わない。
【００３８】
まず、セッション演奏を行う自動演奏ピアノＰＡ，ＰＢの演奏者Ａ，Ｂは、それぞれ、自動演奏ピアノＰＡ，ＰＢをインターネットＮに接続し、例えばセッション演奏機能開始スイッチ等の操作により、各々のマイクロコンピュータにセッション演奏機能の開始指示を与える。これにより、演奏システムが起動（セッション演奏機能が起動）する。自動演奏ピアノＰＡ，ＰＢにおいて、セッション演奏機能が開始すると、自動演奏ピアノＰＡ，ＰＢは各々において打鍵（押鍵）操作の検出を待つ。以下の説明では、一例として、自動演奏ピアノＰＡ側からセッション演奏をスタートする（つまり演奏者Ａが先に打鍵操作を行う）ものとする。
【００３９】
自動演奏ピアノＰＡにおいて演奏者Ａが鍵１Ａを打鍵操作すると（ステップＳ１）、該打鍵された鍵の動きがセンサ１９Ａによって検出され、前記図２の演奏検出部１３及び検出後処理部１４により前記検出信号に基づく操作情報が生成される（ステップＳ２）。操作情報は、一例として、ノートオン、ノートナンバ、ベロシティ値等からなるＭＩＤＩ形式の演奏イベントデータである。このとき、自動演奏ピアノＰＡでは、前記演奏者Ａによる打鍵操作に応じて弦４Ａがハンマに打撃され、弦４Ａの振動によるアコースティックの楽音が発音される。
【００４０】
前記ステップＳ２で生成された操作情報が通信Ｉ／Ｆ１５を介してインターネット上に送信される（ステップＳ３）。この操作情報は、インターネットＮを介して、自動演奏ピアノＰＢへ伝送される。
【００４１】
自動演奏ピアノＰＢは、前記自動演奏ピアノＰＡから出力された操作情報を、インターネットＮを介して受信する（ステップＳ４）。ステップＳ５において、自動演奏ピアノＰＢは、再生前処理部１０、モーションコントローラ１１及びサーボコントローラ１２により、前記ステップＳ４において自動演奏ピアノＰＡから受信した操作情報に基づき、操作情報が指示するノートナンバに対応する鍵１Ｂを駆動する処理を行う。
【００４２】
ここで、第１の実施例において、前記ステップＳ５で行われる鍵駆動制御では、打弦による楽音の発音が行われないように鍵１Ｂを駆動する制御（非打弦駆動制御）を行うことに留意されたい。周知の通り、アコースティックピアノの発音機構の構成によれば、ハンマ３は、押鍵操作により付勢されたことにより生じる慣性力により、弦４を打撃するものである。従って、鍵１を遅い速度で押鍵すると、鍵１をエンド位置まで押し切っても、ハンマ３による打弦は行われない。そこで、前記ステップＳ５では、ハンマ３による打弦が行われない程度の遅い押鍵速度で鍵１Ｂが駆動されるような駆動信号を、ソレノイド５に与えることで、非打弦駆動制御を実現する。
【００４３】
例えば、「打弦が行われない程度の遅い押鍵速度」として、実測結果などに基づいて予め決めた値をＲＯＭ２１乃至ＲＡＭ２２等のメモリに記憶させておき、モーションコントローラ１１において該メモリ記憶された押鍵速度を利用して非打弦駆動制御用の軌道情報を作成することで、非打弦駆動制御を実現できる。また、別の例としては、サーボコントローラ１２がソレノイド駆動信号を生成するときに、前記メモリに記憶された非打弦制御用の押鍵速度によりソレノイド駆動信号を補正することで非打弦駆動制御を実現してもよい。要するに、打弦が行われない程度の遅い押鍵速度で鍵を駆動できるのであれば、どのような方法で非打弦駆動制御を実現してもよい。
【００４４】
また、前記ステップＳ５の鍵駆動制御（非打弦制御）の別の実現方法として、ハンマ３による打弦運動が生じないところまでしか鍵を押し込まない、つまり、押鍵を任意の深さで静止させる制御（打鍵静止制御）を適用してもよい。この打鍵静止制御の詳細は、例えば「特開２００６−２３５２１６号公報」の記載等を参照されたい。
【００４５】
ステップＳ６において、自動演奏ピアノＰＢのＣＰＵ２０は、音源１６Ｂを使用して、前記ステップＳ４において自動演奏ピアノＰＡから受信した操作情報に基づく電子的楽音を発生し、該発生した電子的楽音をスピーカ１７から発音する。
【００４６】
自動演奏ピアノＰＢの演奏者Ｂは、自動演奏ピアノＰＡにおいて行われたピアノ演奏による鍵１Ｂの動きを見て（前記ステップＳ５の処理）、且つ、自動演奏ピアノＰＡにおいて行われたピアノ演奏（電子音）を聴きながら（前記ステップＳ６）、これに合わせて、自動演奏ピアノＰＢにて自らの手弾き演奏によるアコースティックな演奏を行うことができる（ステップＳ７）。自動演奏ピアノＰＢにおいては、前記ステップＳ７の打鍵操作に応じて、前記Ｓ２、Ｓ３において自動演奏ピアノＰＡについて説明したのと同様に、操作情報を作成し（ステップＳ８）、該作成した操作情報をインターネットＮ上に送信する（ステップＳ８）。また、このとき、自動演奏ピアノＰＢでは、ステップＳ７の打鍵操作に応じて、弦４の振動によるアコースティックの楽音が発音される。
【００４７】
ステップＳ１０〜ステップＳ１５は、前記ステップＳ９で自動演奏ピアノＰＢから送信された操作情報を受信した自動演奏ピアノＰＡ側での動作の流れを示している。すなわち、前記ステップＳ４〜Ｓ９で説明した動作とはデータの送り手と受け手とが逆になり、自動演奏ピアノＰＡは、ステップＳ１０において自動演奏ピアノＰＢから受信し、該受信した操作情報に基づき、鍵１Ａが非打弦駆動されると共に（ステップＳ１１）、該操作情報に対応する楽音が電子音で発生される（ステップＳ１２）。自動演奏ピアノＰＡの演奏者Ａは、鍵１Ａの動きを見て、且つ、発生された電子音を聞いてから、新たにピアノ演奏の入力を行うことができる（ステップＳ１３）。ステップＳ１３〜Ｓ１５は前記ステップＳ１〜Ｓ３と同様な動作であって、これ以降は、セッション演奏が継続する間は、述べた動作が繰り返し実行される。
【００４８】
つまり、セッション演奏は、自動演奏ピアノＰＡでピアノ演奏を行い、それに応じた操作情報を自動演奏ピアノＰＢに送信して、該自動演奏ピアノＰＢで自動演奏ピアノＰＡから受信した操作情報を再生する第１の局面（ステップＳ１〜ステップＳ６の処理）と、自動演奏ピアノＰＢでピアノ演奏を行い、それに応じた操作情報を自動演奏ピアノＰＡに送信して、該自動演奏ピアノＰＡで自動演奏ピアノＰＢから受信した操作情報を再生する第２の局面（ステップＳ７〜ステップＳ１２の処理）からなる。セッション演奏は、基本的には、第１の局面と第２の局面とが交互に行われることで、成立するものである。なお、図１において実線で示す矢印は、第１の局面での操作情報の流れ（ステップＳ１〜Ｓ６までの流れ）を表しており、また、図１において点線で示す矢印は、第２の局面（ステップＳ７〜ステップＳ１２の処理）での操作情報の流れを表している。また、一点鎖線で示す矢印は、各自動演奏ピアノＰＡ，ＰＢにおける手弾き演奏でアコースティックの楽音が発音されることを表現している。
【００４９】
なお、セッション演奏の１つの局面（データ送信側の自動演奏ピアノから操作情報が送信され、データ受信側の自動演奏ピアノで該操作情報を再生するまでであって、例えば、前記ステップＳ１〜Ｓ６までの流れに該当する局面）は、１回の打鍵を区切りとすることを、この実施例では想定している。すなわち、図４には、２台の自動演奏ピアノＰＡ，ＰＢで１打鍵ずつ交互に演奏するセッション演奏の流れが描かれていることになる。セッション演奏の流れは、図４に描かれたように、上記２つの局面を順次繰り返すこと、つまり、２台の自動演奏ピアノＰＡ，ＰＢで１打鍵ずつ交互に演奏することに限らず、自動演奏ピアノＰＡ又はＰＢの何れか一方から、連続して打鍵操作が行われてもよい。その場合、図４に示す演奏の流れは、２台の自動演奏ピアノＰＡ，ＰＢによるセッション演奏のやり取りの中で、第１の局面又は第２の局面のいずれかが連続して実行される形になる。また、自動演奏ピアノの或る鍵を自動駆動しているとき（当該自動演奏ピアノがデータ受け手として動作している局面であって、ステップＳ５，Ｓ１１の処理実行時）には、該自動駆動による鍵の動きを検出したセンサ１９の出力信号は、サーボコントローラ１２による当該鍵のサーボ制御に利用されるもので、インターネットＮ上には送信されない。
【００５０】
また、セッション演奏の終了は、自動演奏ピアノＰＡ，ＰＢの各々において、例えばセッション演奏機能終了スイッチ等の操作により、演奏者が指示する。これにより、各々のマイクロコンピュータにセッション演奏機能の終了指示が与えられ、図４に例示するセッション演奏の動作が終了する。
【００５１】
このように、本発明の第１の実施例によれば、自動演奏ピアノＰＡの演奏者Ａと、自動演奏ピアノＰＢの演奏者Ｂは、お互いのピアノ演奏を電子音で聞き、且つ、お互いのピアノ演奏による鍵盤の動きを見ながら、相手が行った演奏に応答するセッション演奏を行うことができる。相手が行った演奏は電子的楽音によって発音されるので、相手側での演奏タイミングに対する電子的楽音の発音タイミングの遅延は、インターネットＮの通信遅延時間のみである。一方、相手が行った演奏による鍵の非打弦駆動には、制御系１８で遅延が生じる。しかし、非打弦駆動は、鍵の動きを見せるだけに過ぎず、楽音の発音を伴わない。従って、駆動制御系１８に生じる遅延は、円滑なセッション演奏の妨げにならないものとして、許容することができる。よって、本発明の第１の実施例によれば、通信ネットワークを介して接続された２台以上の自動演奏ピアノを用いて、遅延の影響を気にすることなく、円滑なセッション演奏が行えるようになる。
【００５２】
〈第２の実施例〉
図５は、この発明にかかる第２の実施例の演奏システムの概要を説明するための図である。自動演奏ピアノＰＡ，ＰＢの構成は、前記第１の実施例と概ね同様である。前記第１の実施例と第２の実施例の違いを、図５を参照して説明する。上記第１の実施例では、セッション演奏相手側のピアノ演奏により鍵を非打弦駆動すると共に、該相手側の演奏に応じた楽音を電子的に発生する構成を示した。これに対して、第２の実施例においては、相手側の演奏により鍵の自動駆動を行い、該鍵の自動駆動により打弦発音が行われる。これを実現するために、第２の実施例に示す演奏システムおいては、図５に示す通り、各自動演奏ピアノＰＡ、ＰＢの各々には、演奏者によって押鍵操作が行われたときに、センサ１９から出力される検出信号に基づき、当該押鍵操作による鍵の軌道を予測する軌道予測モジュール２５が具備され、該軌道予測モジュール２５において生成された「予測軌道情報」を、操作情報としてセッション演奏の相手側に送信することに主要な特徴がある。ここで、操作情報として軌道予測モジュール２５から出力される軌道情報（予測軌道）とは、時刻情報と、当該時刻における鍵の位置値ｒｘ、速度値ｒｖ及び操作された鍵の鍵番号（ノートナンバ）を１つのセットとし、時刻ごとの軌道情報（予測軌道）により鍵の位置、及び速度の時間変化を連続的に表現することで、１つの打鍵軌道（予測軌道）を表すデータである。この種の軌道情報を記述するデータフォーマットの詳細は、例えば「特開２００６−１７８１９７号公報」等の記載を参照されたい。
【００５３】
図６は、図５に示す第２の実施例の演奏システムによるセッション演奏の手順の一例を説明するためのフローチャートである。セッション演奏の流れは、前記図４に示すフローチャートと概ね同様である。第２の実施例では、１つの打鍵操作（図６のステップＳ１６，Ｓ２１，Ｓ２６）に応じて生成される情報が「予測軌道」である点（図６のステップＳ１７，Ｓ２２，Ｓ２７）、及び、２台の自動演奏ピアノＰＡ，ＰＢの間で送受信される操作情報が、「予測軌道」である点（図６のステップＳ１８，Ｓ１９及びステップＳ２３，Ｓ２４）並びに、セッション相手から受信した予測軌道に基づく鍵駆動（ステップＳ２０，Ｓ２５）により、アコースティックの楽音が発音される点が、図４に示す第１の実施例とは異なる。なお、図６に例示するセッション演奏の手順では、ステップＳ１６〜Ｓ２０が自動演奏ピアノＰＡがデータ送り手となる「第１の局面」に相当し、ステップＳ２１〜Ｓ２５が自動演奏ピアノＰＢがデータ送り手となる「第２の局面」に相当する。
【００５４】
以下に、第２の実施例によるセッション演奏において、１つの自動演奏ピアノにおいてＣＰＵ２０が実行する制御を詳細に説明する。図７は、自動演奏ピアノのＣＰＵ２０が実行する制御処理の全体的な流れを示すフローチャートである。ここでは、説明の便宜上、自動演奏ピアノＰＡで実行される処理について述べるが、セッション演奏相手の自動演奏ピアノＰＢでも同様な処理が行われるものと理解されたい。まず、自動演奏ピアノＰＡの演奏者Ａは、セッション演奏機能開始スイッチ等の操作により、セッション演奏機能の開始指示をＣＰＵ２０に与えられる。このとき、セッション相手の自動演奏ピアノＰＢでも同様にセッション演奏機能の開始が指示される（若しくは既にセッション演奏機能を開始している）ものとする。セッション演奏機能開始が指示されると、先ず、自動演奏ピアノＰＡでは、当該演奏システムでセッション演奏を開始するための初期処理を実行することで、演奏システムにおいてインターネット通信にかかる通信遅延時間を予め測定しておく（ステップＳ２９）。ここで、通信遅延時間を測定しておくことで、後述する通り、軌道予測モジュール２５で予測軌道を作成するときに、インターネット通信にかかる通信遅延を補償することができる。図８は初期処理の詳細な手順の一例である。
【００５５】
前記ステップＳ２９の初期処理が終了した後、ＣＰＵ２０は、所定の１クロックＴ毎に、鍵番号「１」の鍵から順に８８鍵の全ての鍵について１鍵ずつ図９に示す鍵制御処理を行う（図７のステップＳ３０〜Ｓ３４Ｂ）。クロックＴは、８８鍵の全ての鍵について鍵制御処理を実行する時間を規定するクロック信号であって、クロックＴが１クロック経過する時間内で、８８鍵の全ての鍵について鍵制御処理が実行される。また、クロックＴは、後述する遅延時間Ｄを計時する時間単位となる。クロックＴの１クロックの時間は、例えば１ｍｓ（１ミリ秒）とする。以下に、１クロックＴ毎に、ＣＰＵ２０が実行する図７のステップＳ３０以下の処理について説明する。ステップＳ３０において、ＣＰＵ２０は、鍵制御処理対象の鍵番号レジスタに鍵番号「１」をセットして、ステップＳ３１において、該鍵番号「１」の鍵について鍵制御処理を行う。鍵制御処理の詳細は、図９を参照して、後に述べる。１つの鍵について鍵制御処理が終わったら、ステップＳ３２において、ＣＰＵ２０は、鍵制御処理対象の鍵番号レジスタの値を１つ進めて（ステップＳ３３）、鍵番号レジスタの値が８８よりも大きいかどうか調べる（ステップＳ３４）。鍵番号レジスタの値が８８以下であれば（ステップＳ３４のＮＯ）、ステップＳ３１以下を繰り返す。すなわち、ＣＰＵ２０は、鍵番号「１」の鍵について鍵制御処理を行った後に、ステップＳ３１〜Ｓ３３の処理を繰り返すことで、鍵番号「１」の鍵から順に８８鍵の全ての鍵について１鍵ずつ鍵制御処理を行う。ＣＰＵ２０は、８８鍵の全ての鍵について鍵制御処理を行った後（ステップＳ３５のＹＥＳ）、ステップＳ３４Ｂにおいて、ユーザによってセッション演奏の終了が指示されたかどうかを調べる。ユーザがセッション演奏の終了を指示していなければ（ステップＳ３４ＢのＮＯ）、ステップＳ３４Ａにおいて、当該１クロックＴの終了を待つ。そして、当該１クロックＴが終了したら、ＣＰＵ２０は、処理をステップＳ３０に戻す。これにより、ＣＰＵ２０は、次回のクロックＴの時間内に、再び、鍵番号「１」の鍵から順に８８鍵の全ての鍵について１鍵ずつ鍵制御処理を行うことができる。従って、ＣＰＵ２０は、所定の１クロックＴ毎に、ステップＳ３０〜Ｓ３４Ｂのループを繰り返し実行して、鍵番号「１」の鍵から順に８８鍵の全ての鍵について１鍵ずつ鍵制御処理を行う処理を繰り返すことができる。
【００５６】
図８は、前記ステップＳ２９における初期処理の詳細な手順の一例である。前記ステップＳ２９の初期処理が開始すると、図８に示す通り、自動演奏ピアノＰＡからセッション相手の自動演奏ピアノＰＢに対して所定のイベントコードを送信し、自動演奏ピアノＰＡでは該イベントコード送信時刻ｔＡを記録しておく（ステップＳ３５）。なお、前記イベントコード送信時刻は、所定のクロックＴ単位で計時されるものとする。自動演奏ピアノＰＢでは、自動演奏ピアノＰＡから所定のイベントコードを受信すると、直ちに前記所定のイベントコードを返信する（ステップＳ３６）。自動演奏ピアノＰＡでは、前記ステップＳ３６にて返信された所定のイベントコードの受信時刻ｔＢを記録する（ステップＳ３７）。上記記録した時刻ｔＡ、ｔＢよりインターネット通信にかかる遅延時間Ｄ＝（ｔＢ‐ｔＡ）／２を求めることができる（ステップＳ３８）。このように、時刻ｔＡ、ｔＢの時間間隔の１／２の値により、自動演奏ピアノＰＡと自動演奏ピアノＰＢ間で情報を送るのにかかる遅延時間Ｄを得る。すなわち、通信遅延時間Ｄを学習することができる。なお、図８の処理を複数回実行して、その平均を取ることでより信頼性の高い遅延時間Ｄを求めても良い。
【００５７】
図９は、前記ステップＳ３１における鍵制御処理の手順の一例を示すフローチャートである。前記図７のステップＳ３０〜Ｓ３４Ｂに示す通り、１クロックＴの間にＣＰＵ２が実行する８８鍵分の鍵制御処理は１鍵ずつ行なわれるもので、各鍵の鍵制御処理は同様な手順で行われる。よって、ここでは、自動演奏ピアノＰＡの或る１つの鍵１Ａを対象にした鍵制御処理について説明する。１つの鍵についての鍵制御処理は、大別して、図９（ａ）に示す「操作検出処理」と、図９（ｂ）に示す「鍵駆動処理」との２つの部分からなる。この鍵制御処理により制御すべき１つの鍵１Ａの状態は、（１）演奏者Ａによる打鍵操作中、（２）自動演奏ピアノＰＢからの操作情報（予測軌道）に基づく自動駆動中、及び、（３）なんら動作しない状態の３状態に分けることができる。
【００５８】
また、図１０は、自動演奏ピアノＰＡ及びＰＢにおいて実行される操作情報（予測軌道）生成処理及び鍵駆動処理の構成を機能的に示すブロック図であって、操作情報生成処理の構成要素と、鍵駆動処理の構成要素とをそれぞれ点線で囲む。自動演奏ピアノＰＡ及びＰＢは、共通の構成要素で構成されており、図面上では、自動演奏ピアノＰＡ側の各構成要素及び信号を表す符号の末尾にアルファベット文字「Ａ」を付与し、また、自動演奏ピアノＰＢ側の各構成要素及び信号を表す符号の末尾にアルファベット文字「Ｂ」を付与することで、自動演奏ピアノＰＡ側の各構成要素と自動演奏ピアノＰＢ側との区別をつけている。なお、明細書本文中では、必要に応じて符号末尾のアルファベット文字により装置の区別を明示するが、その必要のない場合は該アルファベット文字の表示は省略する。ここでは、一例として、自動演奏ピアノＰＡの構成について説明する。
【００５９】
操作情報（予測軌道）生成のための構成要素は、キーセンサ（位置センサ）６から出力される位置データｙｘＡａをディジタル信号ｙｘＡｄに変換するＡＤ変換部２７と、ＡＤ変換部２７の出力ｙｘＡｄを正規化する正規化部２８と、正規化部２８から出力される正規化位置値ｙｘＡに基づき正規化速度値ｙｖＡを計算する速度値生成部２９と、正規化位置値ｙｘＡと正規化速度値ｙｖＡに基づき、セッション演奏相手の自動演奏ピアノＰＢに与える操作情報（予測軌道）ｒＢを生成する操作情報生成部３０とからなる。操作情報生成部３０で生成される操作情報ｒＢは、時刻情報と、当該時刻における鍵の位置値ｒｘＢ、速度値ｒｖＢ及び操作された鍵の鍵番号（ノートナンバ）からなる。これら操作情報生成のための構成要素は、前記図２における演奏検出部１３と検出後処理部１４に相当するもので、操作情報生成部３０には前記図５に示す「軌道予測モジュール２５」が含まれる。操作情報生成部３０で生成された操作情報ｒＢは操作情報送信部３１からインターネットを介してセッション演奏相手の自動演奏ピアノＰＢへ送信される。操作情報送信部３１は通信Ｉ／Ｆ１５の機能である。
【００６０】
一方、鍵駆動のための構成要素は、セッション演奏相手の自動演奏ピアノＰＢから操作情報受信部３８を介して受信した操作情報（予測軌道）ｒＡに基づき目標位置値ｒｘＡと目標速度値ｒｖＡを生成する目標値生成部３２と、目標位置値ｒｘＡと正規化位置値ｙｘＡの差ｅｘＡを求める減算器３３と、目標速度値ｒｖＡと正規化速度値ｙｖＡの差ｅｖＡを求める減算器３５と、減算器３３から出力されるｅｘＡを増幅する位置増幅部３４と、減算器３５から出力されるｅｖＡを増幅する速度増幅部３６と、位置増幅部３４から出力されるｕｘＡと速度増幅部３６から出力されるｕｖＡを加算する加算器３７と、加算器３７から出力されるディジタル信号ｕＡをＰＷＭ形式の電流信号に変換するＰＷＭ発生器２４とからなる。これら鍵駆動のための構成要素は主に前記図２におけるサーボコントローラ１２に相当する。
【００６１】
図９に示す鍵制御処理の手順の一例について、図１０を参照しつつ、説明する。図９（ａ）のステップＳ４０〜Ｓ４２において、自動演奏ピアノＰＡのＣＰＵ２０は、現在鍵制御処理の対象である或る１つの鍵１Ａに対応するキーセンサ６（位置センサ）から当該鍵１の現在位置データｙｘＡａを取得し、ＡＤ変換部２７が位置データｙｘＡａをディジタル信号ｙｘＡｄに変換し、正規化部２８が該ＡＤ変換部２７から出力された位置データｙｘＡｄを正規化する処理を行う。ステップＳ４３において、正規化部２８から出力される正規化位置値ｙｘＡの値を調べる。正規化位置値ｙｘＡ＞０ならば当該鍵１Ａが演奏者Ａによる打鍵操作中と判断し、処理をステップＳ４４の「軌道予測処理」に進める。
【００６２】
ステップＳ４４では、軌道予測モジュール２５による軌道予測処理（後述の図１１を参照）を実行し、予測軌道を算出する。そして、ステップＳ４５において、前記算出した予測軌道を操作情報に設定し、ステップＳ４６において、前記操作情報をセッション演奏相手の自動演奏ピアノＰＢへ送信する。なお、当該自動演奏ピアノＰＡの当該鍵１Ａが既に自動駆動されているとき（自動演奏ピアノＰＢがデータ送り手となっている局面のとき）には、ステップＳ４４の「軌道予測処理」及びＳ４５，Ｓ４６による操作情報の送信は行わない。また、この実施例では、同一鍵について、演奏者による打鍵操作とセッション演奏相手の自動演奏ピアノから受信した操作情報に基づく鍵の自動駆動が、略同タイミングで行われる場合には、演奏者による打鍵操作（手弾き演奏）を優先する。従って、演奏者Ａによる打鍵操作中の場合は、次に述べる図９（ｂ）の処理は行わずに、当該鍵１についての鍵制御処理を終了する。なお、図９（ａ）に示すステップＳ４０〜Ｓ４６の処理は、図１０に示す操作情報（予測軌道）生成のための構成要素が担う処理である。
【００６３】
一方、前記ステップＳ４３において、正規化位置値ｙｘＡ≦０ならば（ステップＳ４３のＮＯ）、当該鍵１Ａは演奏者Ａによる打鍵操作中ではなく、レスト位置にあるものと判断する。この場合、処理を図９（ｂ）の鍵駆動処理に進める（ステップＳ４４０）。
【００６４】
図９（ｂ）のステップＳ４７において、セッション演奏相手の自動演奏ピアノＰＢから出力された操作情報ｒＡを受信する処理を行う。当該鍵１Ａについて操作情報ｒＡが自動演奏ピアノＰＢから送信されていなければ、当該鍵１Ａについては何も処理を行わずに、当該鍵制御処理を終了する（ステップＳ４７のＮＯ）。当該鍵１Ａについて操作情報ｒＡが受信されたら（ステップＳ４７のＹＥＳ）、自動演奏ピアノＰＡは、当該鍵１Ａについて、データ受信側の自動演奏ピアノとして動作する局面にある。従って、以下の処理により、前記受信した操作情報ｒＡに基づく鍵の駆動制御を行う。ステップＳ４８において前記受信した操作情報ｒＡに含まれる正規化位置値ｒｘＡに基づき、該操作情報ｒＡが指示する打鍵軌道の軌道フェーズを調べる。ｒｘＡ＞０ならば、軌道フェーズは「レスト」以外の状態であると判断できる（ステップＳ４８のＹＥＳ）。この場合、ステップＳ４９以下の処理により鍵の駆動制御を行う。
【００６５】
ステップＳ４９において、目標値生成部３２は、前記受信した操作情報ｒＡに基づき目標位置値ｒｘＡと目標速度値ｒｖＡを生成する。ステップＳ５０では、キーセンサ６から当該鍵１の現在位置データｙｘＡａを取得し、ＡＤ変換部２７により位置データｙｘＡａをディジタル信号ｙｘＡｄに変換する処理を行い、ステップＳ５１にて正規化部２８により該ＡＤ変換部２７から出力された位置データｙｘＡｄを正規化する処理を行う。正規化部２８から出力される正規化位置値ｙｘＡは、位置成分のフィードバック信号として利用される。ステップＳ５２において、減算器３３は目標位置値ｒｘＡと正規化位置値ｙｘＡの差を計算し、ステップＳ５３において増幅部３４は減算器３３の出力信号ｅｘＡを所定の係数Ｋｘで増幅して、位置成分の駆動信号ｕｘＡを出力する。
【００６６】
また、ステップＳ５４において速度生成部２９は、前記ステップＳ５１の処理により正規化部２８から出力された正規化位置値ｙｘＡと、当該鍵１について前回以前の鍵駆動処理起動時に取得した正規化位置値ｙｘＡ（過去の１又は複数時点での正規化位置値）に基づき、正規化速度値ｙｖＡを生成する。この正規化速度値ｙｖＡは、速度成分のフィードバック信号として利用される。ステップＳ５５において、減算器３５は目標速度値ｒｖＡと正規化速度値ｙｖＡの差を計算し、ステップＳ５６において増幅部３６は減算器３５の出力信号ｅｖＡを所定の係数Ｋｖで増幅して、速度成分の駆動信号ｕｖＡを出力する。
【００６７】
そして、ステップＳ５７において、加算器３７は、位置成分の駆動信号ｕｘＡと速度成分の駆動信号ｕｖＡを加算して駆動信号ｕＡを生成し、ステップＳ５８においてＰＷＭ発生器２４は前記駆動信号ｕＡをＰＷＭ信号に変換して、ステップＳ５９においてＰＷＭ発生器２４から出力されるＰＷＭ信号に基づきソレノイド５を駆動する。これにより、現在鍵制御処理の対象の鍵１が自動的に駆動される。
【００６８】
一方、前記ステップＳ４８において、操作情報ｒＡに含まれる位置値ｒｘＡ≦０ならば、軌道フェーズは「レスト」である、すなわち、当該鍵１Ａの打鍵動作が終了したものと判断することができる。つまり、１打鍵分の操作情報ｒＡが終了したものとみなし、当該鍵１Ａの鍵駆動処理を終了する（ステップＳ４８のＮＯ）。これをもって、セッション演奏の１つの局面が終了する。
【００６９】
前記ステップＳ４４で実行される軌道予測処理の手順の一例について、図１１を参照して説明する。軌道予測処理は、軌道予測モジュール２５の動作に対応する。この明細書において、打鍵軌道は、前述の通り、「レスト」、「押鍵」、「エンド」、及び、「離鍵」の４つの軌道フェーズにより定義されるもので、打鍵操作に応じて「レスト」、「押鍵」、「エンド」、「離鍵」、「レスト」の順で軌道フェーズは遷移する。図１２に鍵の軌道フェーズのモデルを示す。「レスト」、「押鍵」、「エンド」、「離鍵」、「レスト」からなる一連の軌道が通常の打鍵であり、また、鍵をエンド位置まで押し込まない、又は、レスト位置まで戻しきらないハーフストローク奏法の場合、「押鍵」と「離鍵」を短絡する。１つのフェーズの軌道は１つの二次関数式で表すことができる。フェーズ切り替え時点からクロックＴをｎ個カウントした時点（ｎクロック経過後）軌道は、下記式（１）に示す２次関数式で表現することができる。
X[n]=A[n]/2*t[n]^2+V[n]*t[n]・・・式（１）
なお、式（１）中の「*」は乗算、「^2」は二乗をそれぞれ表す。
式（１）において、変数X[n]は軌道の位置、変数t[n]はｎクロック経過時刻「ｎ*Ｔ」、変数A[n]はｎクロック経過時刻における推定加速度、また、変数V[n]はｎクロック経過時刻における推定初速度である。
【００７０】
ステップＳ６０において、キーセンサ６の出力信号から当該鍵１の現在の位置データを取得し、ｎクロック経過時点における位置データをＲＡＭ２２にバッファする。なお、位置データは、ＡＤ変換部２７でディジタル信号に変換され、正規化部２８で正規化されたデータである。ステップＳ６１において速度生成部２９は位置データｙｘ[ｎ]と、現時点（フェーズ境界からｎクロック経過時点）よりも１クロックＴ前の時点での位置データｙｘ［ｎ-１］に基づき、ｎクロック経過時点における速度データｙｖ[ｎ]を生成し、これをＲＡＭ２２にバッファする。
速度データｙｖ[ｎ]は、下記式（２）で求める。
yv[n]=(yx[n]-yx[n-1])/T・・・式（２）
つまり、速度データｙｖ[ｎ]は１クロック分の時間Ｔにおける鍵の位置変化を表す。
【００７１】
ステップＳ６２において、前記位置データｙｘ[ｎ]と前記速度データｙｖ[ｎ]とに基づき、現時点で軌道フェーズの切り替えがあるかどうかを判定する。すなわち、今回のクロックＴのカウントタイミングで位置データｙｘ[ｎ]≦０ｍｍになったならば離鍵フェーズからレストフェーズへ切り替わるフェーズ境界であり、また、今回のクロックＴのカウントタイミングで位置データｙｘ[ｎ]≧１０ｍｍになったならば押鍵フェーズからエンドフェーズへ切り替わるフェーズ境界である。また、位置データｙｘ[ｎ]＝０ｍｍ又は離鍵フェーズ中に速度データｙｖ[ｎ]＞０になったならば、レストフェーズ若しくは離鍵フェーズから押鍵フェーズへ切り替わるフェーズ境界であり、また、位置データｙｘ[ｎ]＝１０ｍｍ又は押鍵フェーズ中に速度データｙｖ[ｎ]＜０になったならば、エンドフェーズ若しくは押鍵フェーズから離鍵フェーズへ切り替わるフェーズ境界である。
【００７２】
前記ステップＳ６２において軌道フェーズの切り替えがあると判断された場合（フェーズ境界の場合）には、ステップＳ６３において、クロックＴの経過数ｎ、位置データｙｘ[ｎ]、速度データｙｖ[ｎ]及び加速度データｙａ[ｎ]のそれぞれに、次のような初期値を設定する。すなわち、
ｙｘ０＝ｙｘ[ｎ−１]、ｙｘ１＝ｙｘ[ｎ]
ｎ＝１
ｙｖ０＝０、ｙｖ１＝（ｙｘ１−ｙｘ０）/Ｔ
ｙａ０＝０、ｙａ１＝０
を初期値として設定する。これにより、フェーズの切り替えがあったときには、各クロック時点におけるクロックＴの経過数ｎ、位置データｙｘ[ｎ]、速度データｙｖ[ｎ]及び加速度データｙａ[ｎ]のデータのバッファ内容が初期化されることになる。
【００７３】
また、前記ステップＳ６２において軌道フェーズの切り替えがないと判断された場合は、前記ステップＳ６３の初期値設定を行わずにステップＳ６４に進む。ステップＳ６４においては、ｎクロック経過時点の速度データｙｖ[ｎ]と１クロックＴ前の速度データｙｖ[ｎ-１]とに基づき、下記式（３）により加速度データｙａ[ｎ]を生成する。
ya[n]=(yv[n]-yv[n-1])/T・・・式（３）
【００７４】
ステップＳ６５において、下記式（４）により、現時点（フェーズ境界からｎクロック経過時点）での推定初速度Ｖｖ[ｎ]を算出する。
Vv[n]={(2*n-1)*yv[n-1]-(2*n-3)*yv[n])}/2・・・式（４）
ここで、現時点（ｎクロック経過時点）から２クロック前の時点までの３時点の鍵の位置を１つの軌道で表す式を想定し、該想定した軌道から推定初速度Ｖｖ[ｎ]を求めている。また、現時点（つまりｎクロック経過時点）での推定加速度は、前記ステップＳ６４において式（３）により求めた加速度データya[n]と同じである。ｎクロック経過時点での推定初速度Ｖｖ[ｎ]と推定加速度ya[n]はＲＡＭ２２にバッファされる。
【００７５】
ステップＳ６６において、クロック値ｎ＝１から現時点（ｎクロック経過時点）までの各時点における推定初速度をＲＡＭ２２から読み出し、該読み出したＶｖ[１]〜Ｖｖ[ｎ]の平均により、推定初速度Ｖ[ｎ]＝（Ｖｖ１+・・・+Ｖｖ［ｎ］）／ｎを求め、また、クロック値ｎ＝１から現時点（ｎクロック経過時点）までの各時点における推定加速度ｙａ[２]〜ｙａ[ｎ]をＲＡＭ２２から読み出し、該読み出したｙａ[２]〜ｙａ[ｎ]の平均により、推定加速度Ａ［ｎ］＝（ｙａ２+・・・＋ｙａ[ｎ]）／（ｎ−１）を求める。
これを前記式（１）に代入することで、
推定軌道X[n]=A[n]/2*t[n]^2+V[n]*t[n]・・・式（１）
を求めることができるので、１つのフェーズごとの推定軌道X[n]を得ることになる。
【００７６】
ステップＳ６７において、前記図８に示す初期処理により設定した遅延時間Ｄ（なお、遅延時間ＤはクロックＴ単位で記述された時間情報）をＲＡＭ２２から読み出し、該読み出した遅延時間Ｄと前記ステップＳ６６で求めた推定軌道Ｘ［ｎ］に基づき、遅延時間Ｄ後の軌道を予測する処理を行う。つまり、推定軌道Ｘ［ｎ］の位置成分について、遅延時間Ｄ後の予測位置ｒｘ［ｎ］を下記式（５）により求めると共に、推定軌道Ｘ［ｎ］の速度成分について、遅延時間Ｄ後の予測速度ｒｖ［ｎ］を下記式（６）により求める。
予測位置rx[n]=A[n]/2*t[n+D]^2+V[n]*t[n+D]・・・式（５）
予測速度rv[n]=A[n]*t[n+D]+V[n]・・・式（６）
【００７７】
上記図９〜図１１を参照して説明した鍵制御処理は、１つの鍵について処理である。よって、自動演奏ピアノＰＡでは、既に述べたとおり、１クロックＴ毎に８８鍵の全ての鍵について１鍵ずつ上記図９〜図１１を参照して説明した鍵制御処理を実行する。また、セッション演奏相手の自動演奏ピアノＰＢのＣＰＵ２０も、上記図７〜図１１に示す制御処理と同様な手順により、１クロックＴ毎に８８鍵の全ての鍵について１鍵ずつ鍵制御処理を行う。
【００７８】
このように、第２の実施例によれば、予測位置ｒｘ［ｎ］及び予測速度ｒｖ［ｎ］からなる予測軌道を求めて、操作情報としてセッション演奏相手の自動演奏ピアノＰＢへ送信することができる。軌道予測モジュール２５は、フェーズごとの予測軌道を二次関数で表現し、現時点の鍵の位置によりフェーズごとの予測軌道を算出するので、例えば押鍵フェーズについて考えれば、実際の押鍵操作による軌道が確定すること（鍵がエンド位置に至る）を待たずに、当該フェーズを表す予測軌道をセッション演奏相手に送信することができる。また、予測軌道は、推定軌道に対して更に通信遅延時間Ｄを補償するものである。よって、第２の実施例によれば、インターネットＮ越しに２台の自動演奏ピアノＰＡ，ＰＢを用いてセッション演奏を行う際に生じる通信遅延及び駆動遅延を効果的に補償することができる。図１３及び図１４に、実際の打鍵軌道と、それに対応する推定軌道及び予測軌道をそれぞれ示す。図１３は位置成分についての時間的変化を示し、図１４は速度成分についての時間的変化を示している。実際の打鍵軌道を先取りした予測軌道を求めることで、遅延補償できることが、図１３及び図１４から読み取れる。また、軌道予測モジュール２５による予測軌道の計算はクロックＴごとに行われるので、予測軌道を表す二次関数の係数は、クロックＴ毎に随時更新される。よって、実際に行われた打鍵操作に可及的近似した予測軌道を生成できる。
【００７９】
更に、上記第２の実施例によれば、軌道予測モジュール２５で生成した打鍵軌道（予測軌道）に基づき鍵の自動駆動を行うので、セッション演奏相手の演奏内容を、発音タイミング、発音ベロシティ、止音タイミング及び止音ベロシティの４つの要素について正確に、データ再生側の自動演奏ピアノで再現することが可能となる。このことから、例えば、いわゆる「ハーフストローク奏法」や、ハンマによる打弦が行われないように低速で押鍵する奏法など特殊な奏法の再現、それら特殊な奏法による微妙な音色の違い、打鍵加速度に応じた音色の違いなど、各種な繊細なピアノ演奏も、データ再生側の自動演奏ピアノで再生することが可能となる。また、上記第２の実施例によれば、遅延時間Ｄの値を、軌道予測モジュール２５で生成した予測軌道に基づく打鍵の強さ（軌道の傾き）に応じた値に設定するよう構成し、これにより、再生すべき打鍵の強さに応じて最適な遅延時間を使って遅延補償することも可能である。例えば、図１１のステップＳ６７で推定軌道Ｘ［ｎ］に基づく予測位置及び予測速度の計算を行う前に、読み出した遅延時間Ｄを該推定軌道Ｘ［ｎ］の傾きに基づき補正することで、これは実現しうる。
【００８０】
通信遅延時間の測定方法の変更例を図１５に示す。この例では、自動演奏ピアノＰＡ、ＰＢの双方は装置内に時計データを持つ。時計データは、西暦年数、月、日、時、分、秒からなり、１秒ごとに更新されるデータである。更に、自動演奏ピアノＰＡ、ＰＢの双方は、時計データの下位に、１秒よりも細かい分解能の相対クロック値ｔｔを持つ。相対クロック値ｔｔは、１秒の更新機会ごとに値が「０」に戻り、値のカウントを再開するものである。
【００８１】
まず、自動演奏ピアノＰＡ，ＰＢの双方は、演奏システムの起動時（セッション演奏機能の起動時）に、電波時計など時刻あわせの基準となる外部の基準時間に、各自の時計データを合わせる処理を行う（ステップＳ６８）。自動演奏ピアノＰＡは、自動演奏ピアノＰＢに所定のイベントコードと現時点のクロック値ｔｔＡとを送信する（ステップＳ６９）。自動演奏ピアノＰＢは、前記自動演奏ピアノＰＡから所定のイベントコードと現時点のクロック値ｔｔＡを受信すると、受信時点の自機のクロック値ｔｔＢをＲＡＭ２２に記録すると共に、クロック値ｔｔＢとクロック値ｔｔＡの差により、自動演奏ピアノＰＡから自動演奏ピアノＰＢへデータ送信するときの遅延時間ＤＡＢを算出する（ステップＳ７０）。また、自動演奏ピアノＰＢは、自動演奏ピアノＰＡに所定のイベントコードと現時点のクロック値ｔｔＢ´とを送信する（ステップＳ７１）。自動演奏ピアノＰＡは、前記自動演奏ピアノＰＢから所定のイベントコードと現時点のクロック値ｔｔＢ´を受信すると、受信時点の自機のクロック値ｔｔＡ´をＲＡＭ２２に記録すると共に、クロック値ｔｔＡ´とクロック値ｔｔＢ´の差により、自動演奏ピアノＰＢから自動演奏ピアノＰＡへデータ送信するときの遅延時間ＤＢＡを算出する（ステップＳ７２）。自動演奏ピアノＰＡは自動演奏ピアノＰＢに遅延時間ＤＢＡを送信し、自動演奏ピアノＰＢは自動演奏ピアノＰＡに遅延時間ＤＡＢを送信することで、お互いに相手へデータ通信する際の遅延時間を得ることができる（ステップＳ７３）。なお、自動演奏ピアノＰＢで遅延時間ＤＡＢを算出した後で、自動演奏ピアノＰＢから自動演奏ピアノＰＡに所定のイベントコードと現時点のクロック値ｔｔＢ´を送るときに遅延時間ＤＡＢも一緒に送信すれば、通信回数を１回分減らすことができる。なお、電波時計などによって各自の時計データ合わせ処理は、初期処理時だけでなく、随時行われても良い。また、これを複数回行うことでより信頼性の高い遅延時間を測定してもよい。
【００８２】
また、上記図８に示す初期処理により遅延時間Ｄを測定する場合には、遅延時間Ｄの測定機会は、演奏システムの起動時（セッション演奏機能の起動時）のみである。図１６は、図８に示す測定方法による遅延時間Ｄの測定を随時行う方法の手順の一例を示す。ここでは一例として、自動演奏ピアノＰＡのいずれかの鍵がエンド位置に至るたびに遅延時間Ｄを測定するものとする。図１６のステップＳ７４〜Ｓ７７の処理と、前記図８のステップＳ３５〜Ｓ３８の処理の違いは、前記図８のステップＳ３５においては演奏システムの起動時に自動演奏ピアノＰＡから自動演奏ピアノＰＢに所定のイベントコードを送信し、クロック値ｔＡを記録していたところが、図１６のステップＳ７４においては自動演奏ピアノＰＡのいずれかの鍵の押鍵操作がエンド位置に到ったときに自動演奏ピアノＰＡから自動演奏ピアノＰＢに所定のイベントコードを送信し、クロック値ｔＡを記録するよう変更するのみであり、後は同様である。これにより、自動演奏ピアノＰＡのいずれかの鍵がエンド位置に至るたびに遅延時間Ｄを測定できる。この場合、軌道予測モジュール２５により予測軌道の計算に用いる遅延時間Ｄは、常に最新の遅延時間Ｄを利用できるので、通信状況の変動による遅延時間のゆらぎにも柔軟に対応できる。また、直近過去複数回の測定値の平均値を遅延時間Ｄの最新の値として採用してもよい。
【００８３】
また、図８、図１５又は図１６では、自動演奏ピアノＰＡ，ＰＢ間のインターネット通信における通信遅延時間Ｄの測定（通信遅延の学習）について述べた。既に述べたとおり当該演奏システムで発生する遅延には、通信遅延と制御系１８での駆動遅延との２つの遅延がある。図１７の打鍵軌道図は、自動演奏ピアノＰＡで行った打鍵操作軌道ｔＥＡと、該打鍵操作軌道ｔＥＡに対応して自動演奏ピアノＰＢが受信する操作情報ｔｒＥＢと、該操作情報ｔｒＥＢに基づき駆動された鍵の軌道ｔＥＢの各軌道を示す。図１７から明らかな通り、打鍵操作ｔＥＡと操作情報ｔｒＥＢの間には通信遅延が入り、操作情報ｔｒＥＢと軌道ｔＥＢの間には駆動遅延が入っている。
【００８４】
第２の実施例において、駆動遅延を含めた遅延時間を測定する（駆動遅延時間学習を行う）ことで、図１１の軌道予測処理による軌道予測精度を向上させて、より的確な遅延補償を行うことができるようになる。図１８は、駆動遅延の測定方法の手順の一例を示すフローチャートである。なお、この処理は、前記図８の初期処理による通信遅延時間Ｄの測定と連携して実行することを前提としている。
【００８５】
ステップＳ７８において、自動演奏ピアノＰＡで行われた押鍵操作により鍵がエンド位置まで押し込まれたことをキーセンサ６が検出したら、自動演奏ピアノＰＡから自動演奏ピアノＰＢに所定のイベントコードが送信され、また、自動演奏ピアノＰＡはこの時点のクロック値ｔＥＡをＲＡＭ２２に記録する。ここで、エンド位置を基準にしてクロック値ｔＥＡの記録を行うことで、実際の押鍵操作による押鍵フェーズが終了した時点のクロック値を得ることができる。ステップＳ７９において自動演奏ピアノＰＢは、自動演奏ピアノＰＡから所定のイベントコードを受信した時点の自機のクロック値ｔｒＥＢをＲＡＭ２２に記録する。このクロック値ｔｒＥＢは、自動演奏ピアノＰＡでの押鍵操作による押鍵フェーズが実際に終了した時刻に通信遅延時間が付加された時刻を表す。ステップＳ８０において、前記ステップＳ７８の自動演奏ピアノＰＡにおける押鍵操作に対応して、自動演奏ピアノＰＢの鍵がエンド位置まで駆動されたことをキーセンサ６が検出すると、自動演奏ピアノＰＢは、その時点のクロック値ｔＥＢをＲＡＭ２２に記録して、クロック値ｔＥＢとクロック値ｔｒＥＢの差を求めることで、自動演奏ピアノＰＢの制御系１８における駆動遅延時間ＤｒＢを得る。そして、ステップＳ８１において、自動演奏ピアノＰＢは算出した駆動遅延時間ＤｒＢを自動演奏ピアノＰＡに送信する。ステップＳ８２において初期処理で求めた通信遅延時間Ｄに、前記自動演奏ピアノＰＢで算出した駆動遅延時間ＤｒＢを合算した遅延時間ＤＤ（つまり、通信遅延と駆動遅延の両方を合わせた遅延時間）を、前記図１１の軌道予測処理に使用することができる。
【００８６】
上記図１８の駆動遅延測定処理は、図６に示すセッション演奏の動作中に挿入されてよい。また、駆動遅延時間ＤｒＢの測定は１度だけ行い、セッション演奏の継続中は１つの動遅延時間ＤｒＢを使い続けてよい。また、駆動遅延時間ＤｒＢを随時測定して、最新の値を測定値として採用したり、或いは、直近過去複数回の平均値を測定値として用いてもよい。また、図１８の例では鍵がエンド位置に到ったことを基準にクロック値の記録を行う構成を示したが、クロック値記録のための基準位置は、エンド位置に限らず、例えば鍵ストローク範囲の中間位置など適宜の位置でもよい。また、クロック値記録のための基準位置が複数箇所設定されていてもよい。自動演奏ピアノＰＡ側でも同様の手順で駆動遅延時間ＤｒＡを算出し、駆動遅延時間ＤｒＡを自動演奏ピアノＰＢで利用してよい。
【００８７】
なお、第２の実施例においては軌道予測モジュール２５により生成した予測軌道により遅延補償することが本質である。すなわち、この第２の実施例においても、第１の実施例と同様に、セッション演奏相手のピアノ演奏に対応して、音源１６を用いて電子的に楽音を発生するよう構成しても差し支えない。
【００８８】
〈第２実施例の変更例〉
上記図５に示す演奏システムは、データ送信側の自動演奏ピアノにおいて、センサ１９によって検出された演奏操作を表す情報に基づき軌道予測モジュール２５が「予測軌道情報」を生成し、該生成した予測軌道情報のデータを、データ受信側の自動演奏ピアノにインターネットＮ経由で送信する構成であった。図１９は、前記図５の変更例であって、データ受信側の自動演奏ピアノに備わる軌道予測モジュール２５により「予測軌道情報」を生成する演奏システム構成例を示している。この場合の演奏システムの動作の概要を、自動演奏ピアノＰＡがデータ送信側として説明すると、自動演奏ピアノＰＡは、センサ１９Ａによって検出された演奏操作を表す情報を、データ受信側の自動演奏ピアノＰＢにインターネットＮ経由で送信する。自動演奏ピアノＰＢは、前記センサ１９Ａによって検出された演奏操作を表す情報をインターネットＮ経由で受信し、該受信した演奏操作を表す情報に基づく「予測軌道情報」を軌道予測モジュール２５Ｂで生成する。そして、軌道予測モジュール２５Ｂで生成した予測軌道情報に基づき制御系１８Ｂが鍵１Ｂを駆動する。
【００８９】
図１９に示す演奏システムにおけるセッション演奏の流れは、図２０のフローチャートに示す通り、データ送信側の自動演奏ピアノからインターネットＮ経由で伝送される情報がセンサ１９の出力信号である点（ステップＳ１１３，Ｓ１１４，Ｓ１１９，Ｓ１２０，Ｓ１２５及びＳ１２６）、データ受信側の自動演奏ピアノではセンサ１９の出力信号を受信する点（ステップＳ１１５及びＳ１２１）、及び、前記受信したセンサ１９の出力信号に基づき、データ受信側の自動演奏ピアノで、予測軌道の情報を生成する点（ステップＳ１１６及びＳ１２２）が、前記図６を参照して説明したセッション演奏の流れと異なる。
【００９０】
この場合、各自動演奏ピアノＰＡ，ＰＢのＣＰＵ２０が実行する鍵制御処理は、センサ１９の出力信号の扱いが以下に述べる点において、上記図７〜図１１に示した処理と異なっている。すなわち、図１９の演奏システム構成においては、データ送信側の自動演奏ピアノにおいて演奏者による打鍵操作を検出した場合（前記図９（ａ）のステップＳ４３のＹＥＳ）、センサ１９により検出した演奏内容を表す情報を、インターネットＮ経由で他の自動演奏ピアノへ伝送する。インターネットＮ経由で他の自動演奏ピアノへ伝送される「演奏内容を表す情報」は、この実施例では、当該鍵に対応するキーセンサ６（位置センサ）の出力信号を正規化部（図１０参照）で正規化した「正規化位置値」である。
【００９１】
一方、データ受信側の自動演奏ピアノのＣＰＵ２０は、図２１に示す軌道予測処理を実行する。すなわち、インターネットＮ経由で他の自動演奏ピアノからセンサ１９により検出した演奏内容を表す情報を受信し（ステップＳ１２７）、前記受信した演奏内容を表す情報に基づく予測軌道の情報を算出する処理が行われる（ステップＳ１２８〜Ｓ１３４）。
そして、データ受信側の自動演奏ピアノでは、前記算出した予測軌道に基づき鍵を駆動する。鍵の駆動処理の手順は、前記図９（ｂ）のステップＳ４８〜Ｓ５９の処理と同様である。
【００９２】
このように、上記第２の実施例によれば、データ送信側のデータ受信側の自動演奏ピアノに備わる軌道予測モジュール２５により「予測軌道情報」を生成する演奏システムの構成、又は、データ受信側の自動演奏ピアノに備わる軌道予測モジュール２５により「予測軌道情報」を生成する演奏システムの構成、いずれの場合にも、セッション演奏相手の自動演奏ピアノで行われた演奏操作を表す情報に基づき算出された予測軌道に基づき自分側の自動演奏ピアノの鍵を駆動することができる。よって、２台以上の鍵盤楽器を使って通信ネットワーク経由で「セッション演奏」を行うことができ、その際の遅延を効果的に補償することができる。
【００９３】
〈第３の実施例〉
図２２は、この発明にかかる第３の実施例の演奏システムの概要を説明するための図である。自動演奏ピアノＰＡ，ＰＢの構成は前記第１の実施例と概ね同様である。前記第１の実施例と第３の実施例の違いを、図２２を参照して説明する。第３の実施例においては、相手側の演奏により鍵を非打弦駆動すると共に、相手側の演奏に応じた操作情報（演奏イベント）に対応する楽音を電子的に発生する点は、上記第１の実施例と共通しているが、図２２に示す通り、各自動演奏ピアノＰＡ、ＰＢには、演奏者によって押鍵操作が行われたときに、センサ１９から出力される検出信号に基づき、演奏イベントを予測するイベント予測モジュール２６が具備され、該イベント予測モジュール２６において生成された予測演奏イベントを、操作情報としてセッション演奏の相手側に送信することに主要な特徴がある。
【００９４】
図２３は、図２２に示す第３の実施例の演奏システムによるセッション演奏の手順の一例を説明するためのフローチャートである。図２３に示す通り、第３の実施例の演奏システムの構成では、演奏者によって行われた打鍵操作による押鍵深さをセンサ１９で検出し（図２３のステップＳ８４，Ｓ９１，Ｓ９８）、該検出結果に基づきイベント予測モジュール２６により予測打弦情報（予測演奏イベント）を生成し（図２３のステップＳ８５，Ｓ９２，Ｓ９９）する点、及び、２台の自動演奏ピアノＰＡ，ＰＢの間で送受信される操作情報が、「予測打弦情報」である点（図２３のステップＳ８６，Ｓ８７及びステップＳ９３，Ｓ９４）である点が、図４に示す第１の実施例とは異なる。そのほかは、前記図４に示すフローチャートと概ね同様である。図２３に例示するセッション演奏の手順では、ステップＳ８３〜Ｓ８９が自動演奏ピアノＰＡがデータ送り手となる「第１の局面」に相当し、ステップＳ９０〜Ｓ９６が自動演奏ピアノＰＢがデータ送り手となる「第２の局面」に相当する。なお、図２３では、センサ１９が検出された押鍵深さの情報に基づく予測打弦情報の生成及びその伝送、つまり、打鍵操作の押鍵フェーズについてのみ記述しているが、離鍵フェーズにおける止音イベントの生成及び伝送も同一局面の動作に含まれるものである。すなわち、１打鍵分の演奏イベントには押鍵フェーズと離鍵フェーズとが含まれるものと理解されたい。
【００９５】
図２４は、イベント予測モジュール２６の制御処理の手順の一例を示すフローチャートである。第３の実施例にかかるセッション演奏を行う２台の自動演奏ピアノＰＡ，ＰＢの各々における制御処理の全体的な流れは、前記第２の実施例において図７〜図１１を参照して説明した処理と概ね同様であって、所定の初期処理により通信遅延時間Ｄを測定してから、１クロックＴ毎に、鍵番号「１」の鍵から順に８８鍵の全ての鍵について１鍵ずつ鍵制御処理を実行する。第３の実施例においては、前記図９（ａ）のステップＳ４４の「軌道予測」処理に代えて、図２４に示すイベント予測制御を行う。
【００９６】
イベント予測処理においては、レスト位置から開始した押鍵フェーズに関する演奏イベントであって、押鍵開始からｎクロック経過後（クロック値ｎの時点）のイベント予測処理について記述する。また、この例では、ハンマ３による弦４の打弦時刻は、対応する打鍵操作において鍵１がエンド位置に到達する時刻と同じ時刻とし、また、打弦速度（ベロシティ値）は、鍵の速度Ｖ［ｎ］から一意に定めることができるものとする。すなわち、打弦速度ｖｖと鍵の速度Ｖ［ｎ］は、ｖｖ＝ｍ＊Ｖ［ｎ］の関係にある（なお、「ｍ」は所定の係数）。
【００９７】
ステップＳ１０１において、キーセンサ６の出力信号から当該鍵の現在の位置データを取得し、現時点（クロック値ｎの時点）の位置データｙｘ[ｎ]をＲＡＭ２２にバッファする。なお、位置データは、ＡＤ変換部２７でディジタル信号に変換され、正規化部２８で正規化されたデータである。ステップＳ１０２において、速度生成部２９は、位置データｙｘ[ｎ]と、現時点（クロック値ｎ）よりも１クロックＴ前の時点［ｎ−１］の位置データｙｘ［ｎ-１］に基づき、現時点での速度データｙｖ[ｎ]を生成し、これをＲＡＭ２２にバッファする。速度データｙｖ[ｎ]は、前記図１１のステップＳ６１と同様な式（２）で求める。
yv[n]=(yx[n]-yx[n-1])/T・・・式（２）
【００９８】
ステップＳ１０３において、クロック値ｎ＝１から現時点（ｎクロック経過時点）までの各時点における速度データをＲＡＭ２２から読み出し、該読み出したｙｖ[１]〜ｙｖ[ｎ]の平均により、推定速度Ｖ[ｎ]＝（ｙｖ１+・・・+ｙｖ［ｎ］）／ｎを求める。ステップＳ１０４において、遅延時間Ｄ（なお、遅延時間ＤはクロックＴ単位で記述された時間情報）をＲＡＭ２２から読み出し、該読み出した遅延時間Ｄと、前記ステップ１０１でバッファした現時点の位置データｙｘ[ｎ]と前記ステップＳ１０３で算出した推定速度Ｖ[ｎ]に基づき、下記式（７）現時点からクロック値Ｄの時間経過後の鍵の予測位置ｒｘ［ｎ+Ｄ］を求める。
rx[n+D]=yx[n]+V[n]*(D*T)・・・式（７）
式（７）において「Ｄ*Ｔ」により、クロック値で記述された遅延時間Ｄを絶対時間で表現する。図２５は、鍵の予測位置ｒｘ［ｎ+Ｄ］を求める処理（前記ステップＳ１０１〜Ｓ１０４の処理）を説明するための軌道モデルを示している。図２５に示す通り、位置データｙｘ[ｎ]を測定し、推定速度Ｖ[ｎ]（軌道の傾き）を決めれば、現時点からクロック値Ｄ（時刻Ｄ*Ｔ）経過後の位置ｒｘ［ｎ+Ｄ］を予測できる。
【００９９】
ステップＳ１０５において、前記ステップＳ１０４で算出したｒｘ［ｎ+Ｄ］の値がエンド位置（鍵の押し下げ深さ１０ｍｍの位置）を越えたかどうか判断する。予測位置ｒｘ［ｎ＋Ｄ］の値がエンド位置を越えた時点で（ステップＳ１０５のＹＥＳ）、当該鍵について演奏イベントデータ（打弦情報）を発生することで、実際の打弦タイミング（演奏タイミング）よりも先行して演奏イベントを生成する。そして、実際の打弦タイミングよりも先行して生成した演奏イベントを操作情報としてセッション演奏相手の自動演奏ピアノＰＢへ送信する（ステップＳ１０６）。ノートオンイベントデータは、ノートオン（打弦情報）、ノートナンバ（鍵番号）及びベロシティ値（打弦速度ｖｖ）を含むデータで、たとえばＭＩＤＩ形式のデータで構成される。ここで、ベロシティ値（打弦速度ｖｖ）は、前述の通り、推定速度Ｖ[ｎ]に所定の係数ｍを乗算することで求めることができる（ｖｖ＝ｍ＊Ｖ［ｎ］）。このように、実際の打弦タイミングに先行して生成した演奏イベントをセッション演奏相手の自動演奏ピアノＰＢへ送信することで、セッション演奏相手の自動演奏ピアノＰＢが操作情報（演奏イベント）に基づいて実行する再生動作の遅延を補償することができる。
【０１００】
なお、上記の処理では、図２５からも分かるとおり、打鍵軌道を、直線軌道（１次関数）とみなしているが、これに限らず、第２の実施例と同様に２次関数とみなして、推定速度Ｖ［ｎ］を計算してもよい。
【０１０１】
また、第３の実施例に適用する通信遅延時間の測定処理は、第２の実施例において図８、図１５又は図１６を参照して説明したものと同様であってよい。また、第３の実施例に、第２の実施例において図１８を参照して説明した駆動遅延時間の測定処理を適用してもよい。なお、第１の実施例においても、図８、図１５又は図１６を参照して説明した通信遅延時間の測定処理や、図１８を参照して説明した駆動遅延時間の測定処理を適用し、操作情報の遅延補償を行うよう構成しうる。
【０１０２】
また、第３の実施例に適用する駆動遅延時間の測定は、該図１８に示す処理と同様な考えに基づき、図２６に示すように変形することができる。すなわち、図２６のステップＳ１０７において、自動演奏ピアノＰＡにおいて実際に打弦が行われたときに、自動演奏ピアノＰＡから自動演奏ピアノＰＢに所定のイベントコードが送信され、また、自動演奏ピアノＰＡはこの時点のクロック値ｔＥＡをＲＡＭ２２に記録する。ステップＳ１０８において自動演奏ピアノＰＢは、自動演奏ピアノＰＡから所定のイベントコードを受信した時点の自機のクロック値ｔｒＥＢをＲＡＭ２２に記録する。ステップＳ１０９において、自動演奏ピアノＰＢは、ソレノイド５による押鍵駆動により実際に発音が行われることを監視して、発音が検出されたら、その時点のクロック値ｔＥＢをＲＡＭ２２に記録して、クロック値ｔＥＢとクロック値ｔｒＥＢの差を求めることで、自動演奏ピアノＰＢの制御系１８における駆動遅延時間ＤｒＢを得る。そして、自動演奏ピアノＰＢから、前記駆動遅延時間ＤｒＢを自動演奏ピアノＰＡに送信することで（ステップＳ１１０）、自動演奏ピアノＰＡは、通信遅延時間Ｄのかわりに、通信遅延時間Ｄと駆動遅延時間ＤｒＢを合算した遅延時間ＤＤを、演奏イベント予測処理に使用することができる（ステップＳ１１１）。なお、上記ステップＳ１０７及びＳ１０９における打弦判定ないし発音判定は、ハンマセンサ７により検出してもよいし、キーセンサ６の検出結果に基づき推定してもよい。あるいは、更に別の検出手段（例えば、弦の振動検出手段など）により判定を行うよう構成してもよい。すなわち、打弦判定ないし発音判定は従来から知られるどのような方法を適用しても良い。
【０１０３】
なお、第３の実施例においては、データ受信側の自動演奏ピアノにおいて、受信した予測演奏イベントに基づき鍵を非打弦駆動し、且つ、音源で生成した電子音を発音する構成を例示したが、データ受信側の自動演奏ピアノにおいて、受信した予測演奏イベントに基づき鍵を自動駆動することでアコースティック楽音を発音させるよう構成してもよい。
【０１０４】
〈第３実施例の変更例〉
前記図２２に示す第３実施例の演奏システムは、データ送信側の自動演奏ピアノにおいて、センサ１９によって検出された演奏操作を表す情報に基づきイベント予測モジュール２６が予測演奏イベントを生成し、該生成した予測演奏イベントのデータを、データ受信側の自動演奏ピアノにインターネットＮ経由で送信する構成であった。図２７は、前記図２２の変更例であって、データ受信側の自動演奏ピアノに備わるイベント予測モジュール２６により予測演奏イベントを生成する演奏システム構成例を示している。この場合の演奏システムの動作の概要を、自動演奏ピアノＰＡがデータ送信側として説明すると、自動演奏ピアノＰＡは、センサ１９Ａによって検出された演奏操作を表す情報を、データ受信側の自動演奏ピアノＰＢにインターネットＮ経由で送信する。自動演奏ピアノＰＢは、前記センサ１９Ａによって検出された演奏操作を表す情報をインターネットＮ経由で受信し、該受信した演奏操作を表す情報に基づく予測演奏イベントをイベント予測モジュール２６Ｂで生成する。そして、イベント予測モジュール２６Ｂで生成した予測演奏イベントに基づき制御系１８Ｂが鍵１Ｂを非打弦駆動し、且つ、音源１６Ｂが電子音を発音する。
【０１０５】
図２７に示す演奏システムにおけるセッション演奏の流れは、図２８のフローチャートに示す通り、データ送信側の自動演奏ピアノからインターネットＮ経由で伝送される情報がセンサ１９で検出した押鍵検出情報である点（ステップＳ１３６，Ｓ１３７，Ｓ１４２，Ｓ１４３，Ｓ１４８及びＳ１４９）、データ受信側の自動演奏ピアノでは前記押鍵検出情報を受信する点（ステップＳ１３８及びＳ１４４）、及び、前記受信した押鍵検出情報に基づき、データ受信側の自動演奏ピアノで、予測打弦情報（予測演奏イベント）を生成する点（ステップＳ１３９及びＳ１４５）が、前記図２３を参照して説明したセッション演奏の流れと異なる。この場合、データ送信側の自動演奏ピアノでは、演奏者により押鍵操作をセンサ１９が検出し、センサ１９は出力信号（押鍵検出情報）として該押鍵操作の深さを表す位置データをデータ受信側の自動演奏ピアノにインターネットＮ経由で送信する。データ受信側の自動演奏ピアノのＣＰＵ２０は、図２９に示すイベント予測処理を実行する。すなわち、インターネットＮ経由で他の自動演奏ピアノから、鍵の位置データを含む押鍵検出情報を受信し（ステップＳ１５０）、前記受信した押鍵検出情報に基づき予測打弦情報（予測演奏イベント）を算出する処理が行われる（ステップＳ１５１〜Ｓ１５５）。そして、データ受信側の自動演奏ピアノでは、前記算出した予測打弦情報に基づき鍵を非打弦駆動し、且つ、音源により生成した電子音を発音する。
【０１０６】
このように、上記第３の実施例によれば、データ送信側のデータ受信側の自動演奏ピアノに備わるイベント予測モジュール２６により「予測演奏イベント」を生成する演奏システムの構成、又は、データ受信側の自動演奏ピアノに備わる軌道予測モジュール２６により「予測演奏イベント」を生成する演奏システムの構成、いずれの場合にも、セッション演奏相手の自動演奏ピアノで行われた演奏操作を表す情報に基づき算出された予測演奏イベントに基づき自分側の自動演奏ピアノの鍵を非打鍵駆動し、且つ、音源１６で生成した電子音を発音することができる。よって、２台以上の鍵盤楽器を使って通信ネットワーク経由で「セッション演奏」を行うことができ、その際の遅延を効果的に補償することができる。
【０１０７】
なお、上記第３の実施例の変更例においては、データ受信側の自動演奏ピアノにおいて、生成した予測演奏イベントに基づき鍵を非打弦駆動し、且つ、音源で生成した電子音を発音する構成を例示したが、データ受信側の自動演奏ピアノにおいて、生成した予測演奏イベントに基づき鍵を自動駆動することでアコースティック楽音を発音させるよう構成してもよい。
【０１０８】
なお、上記第１〜第３の実施例において、演奏システムを２台の自動演奏ピアノＰＡ，ＰＢで構成する例を示したが、演奏システムは２台以上の自動演奏ピアノＰＡ，ＰＢで構成されてよい。また、演奏システムは２台以上の自動演奏ピアノで構成される例に限らず、鍵の自動駆動機構を備えた電子音源を持つ電子鍵盤楽器で構成されていてもよい。また、本発明を、通信ネットワークを介して接続された２台以上の鍵盤楽器において、一方で行われた演奏操作子の操作を他方において自動制御により再現するときの遅延補償機能と捉えれば、この発明は鍵の駆動に適用することのみならず、ペダルなど、鍵盤楽器に備わるその他の操作子の自動駆動に適用することも可能である。
また、上記第１〜第３の実施例において、演奏操作子の演奏操作を検出する検出手段を構成するキーセンサ６（センサ１９）の一例として、鍵１の打鍵動作の全工程について連続的な位置情報を表すアナログ信号を出力できる光学式の位置センサを挙げたが、キーセンサに適用する位置センサの構成は、鍵１の打鍵動作の全工程について連続的な位置情報を表すアナログ信号を出力するものに限らず、楽器鍵盤の位置検出に用いるセンサとして従来から知られるどのような構成であってもよい。また、位置センサに限らず、速度センサによりキーセンサ６を構成して、検出された打鍵動作に関する速度情報に基づき操作情報を生成するよう構成してもよい。また、ハンマセンサ７（センサ１９）の構成は、対応する鍵の打鍵動作に応じたハンマ３の動きを、適宜の物理量（好ましくは位置情報、又は速度情報）について検出することができるものであれば、従来から知られるどのような構成であってもよく、ハンマセンサ７が検出したハンマ３の動き（鍵の打鍵動作に応じたハンマ３の演奏操作）を表す物理量（好ましくは位置情報、又は速度情報）に基づき操作情報を生成するよう構成してもよい。
【０１０９】
また、上記の第２実施例について、図１１に示す軌道予測処理おいては、センサ１９（キーセンサ６）の出力する位置データに基づき、速度情報と加速度情報を生成して（ステップＳ６１とステップＳ６４）、位置、速度、及び加速度の各情報に基づく推定軌道を算出して（ステップＳ６６）、該算出した推定軌道に基づく予測軌道（予測位置及び予測速度）を算出する（ステップＳ６７）処理構成例を説明したが、センサ１９（キーセンサ６）を速度センサにより構成した場合には、センサ１９（キーセンサ６）の出力する速度データに基づき、位置情報と加速度情報を生成して（ステップＳ６１とステップＳ６４）、位置、速度、及び加速度の各情報に基づく推定軌道を算出して（ステップＳ６６）、該算出した推定軌道に基づく予測軌道（予測位置及び予測速度）を算出するよう処理を構成する。また、上記図１１の例では、推定軌道に基づく予測位置及び予測速度を予測軌道として算出する例について説明したが、推定軌道に基づく予測位置又は予測速度のいずれか一方を予測軌道として算出して、該算出された予測位置又は予測速度のいずれか一方に基づき鍵を駆動する構成としてもよい。
また、第３実施例について、図２４に示すイベント予測処理においては、センサ１９（キーセンサ６）の出力する位置データに基づき速度情報を生成して（ステップＳ１０２）、生成した速度情報に基づく推定速度を算出して（ステップＳ１０３）、センサ１９から出力された位置データと算出された推定速度に基づき予測イベントを発生する（ステップＳ１０４〜Ｓ１０６）処理構成例を説明したが、センサ１９（キーセンサ６）を速度センサにより構成した場合には、センサ１９（キーセンサ６）の出力する速度データに基づき、位置情報を生成すると共にセンサ出力たる速度データから推定速度を求めて、位置情報と推定速度に基づく予測イベントを発生するよう構成してもよい。また、ハンマセンサ７の出力信号を用いて図１１の軌道予測処理及び図２４のイベント予測処理を行うよう構成してもよい。その場合には、図１１及び図２４の説明について、「キーセンサ６」を「ハンマセンサ７」と読み替えればよい。
【０１１０】
また、上記第１〜第３の実施例の形態では、セッション演奏実現のために自動演奏ピアノＰＡ、ＰＢの間で双方向通信を行うことを前提として説明を行ったが、データ受信側だけでセッション演奏感覚を楽しむことのみを目的とするのであれば、自動演奏ピアノＰＡ、ＰＢの間の通信は一方向であってもよい。その場合、データ送信側の自動演奏ピアノは、行われた演奏操作を検出し、検出した演奏操作を表す情報を送信する（イベント予測や軌道予測を行うのであれば、その情報を送信する）。データ受信側では、データ送信側の自動演奏ピアノから受信した演奏操作を表す情報に基づき、鍵の駆動や、電子音源の制御を行えばよい。
【０１１１】
また、上記第１〜第３の実施例の形態では、自動演奏ピアノＰＡ、ＰＢの間で送受信する情報として、鍵の演奏操作を表す情報を適用する例を示したが、これに限らず、ペダルとその操作に関連する情報を送受信するなど、その他の演奏操作子の操作を表す情報を、自動演奏ピアノＰＡ、ＰＢの間で送受信する情報に適用してもよい。また、データ送信側に備わるセンサとして、例えば演奏操作子の位置変化を連続量で検出する連続量センサのように、演奏操作子の動き出し時点（あるいは、それに近い状態）から検出信号を出力できるセンサを適用することで、データ送信側の自動演奏ピアノは、演奏操作開始の早い段階から演奏操作を表す情報を外部に送信することができ、データ受信側の自動演奏ピアノは該演奏操作開始の早い段階から、演奏操作を表す情報に基づく軌道予測又はイベント予測を行うことができるよう構成するとよい。
【０１１２】
以上、第１〜第３の実施例に沿って本発明を説明したが、本発明の実施形態は、上記に限定されるものではなく、第１〜第３の実施例に対して、従来から知られる技術による種々の変更、改良、組み合わせを施すことが可能である。
【図面の簡単な説明】
【０１１３】
【図１】この発明の第１の実施例にかかる演奏システムの全体構成の概要を説明する図。
【図２】図１の演奏システムに適用可能な自動演奏ピアノの発音機構と自動演奏機能の構成を説明する図。
【図３】図２の自動演奏ピアノの電気的ハードウェア構成を示すブロック図。
【図４】第１の実施例によるセッション演奏の流れを説明するフローチャート。
【図５】この発明の第２の実施例にかかる演奏システムの全体構成の概要を説明する図。
【図６】第２の実施例によるセッション演奏の流れを説明するフローチャート。
【図７】第２の実施例によるセッション演奏における１つの自動演奏ピアノの制御処理の全体的な流れを示すフローチャート。
【図８】図７における初期処理の手順の一例を示すフローチャート。
【図９】図７における鍵制御処理の手順の一例を示すフローチャートであって、（ａ）は操作情報の生成処理、（ｂ）は鍵駆動処理。
【図１０】第２の実施例にかかる自動演奏ピアノＰＡ及びＰＢが実行する操作情報生成処理及び鍵駆動処理の構成を機能的に示すブロック図。
【図１１】図５の軌道予測モジュールの動作（軌道予測処理）の手順の一例を示すフローチャート。
【図１２】軌道フェーズを説明する図。
【図１３】予測軌道、推定軌道及び実際の打鍵軌道の各々の位置成分の比較。
【図１４】予測軌道、推定軌道及び実際の打鍵軌道の各々の速度成分の比較。
【図１５】通信遅延時間測定処理の変形例を示すフローチャート。
【図１６】通信遅延時間測定処理の別の変形例を示すフローチャート。
【図１７】通信遅延と駆動遅延を説明する図。
【図１８】駆動遅延時間測定処理の手順の一例を示すフローチャート。
【図１９】図５に示す第２の実施例にかかる演奏システムの別の構成例を説明する図。
【図２０】図１９の演奏システムにおけるセッション演奏の流れを説明するフローチャート。
【図２１】図１９の演奏システムにおいて自動演奏ピアノが実行する軌道予測処理の手順の一例を示すフローチャート。
【図２２】この発明の第３の実施例にかかる演奏システムの全体構成の概要を説明する図。
【図２３】第３の実施例によるセッション演奏の流れを説明するフローチャート。
【図２４】図１９のイベント予測モジュールの動作（イベント予測処理）の手順の一例を示すフローチャート。
【図２５】図２１のイベント予測処理を説明する軌道図。
【図２６】第３の実施例に適用可能な駆動遅延時間測定処理の手順の一例を示すフローチャート。
【図２７】図２２に示す第３の実施例にかかる演奏システムの別の構成例を説明する図。
【図２８】図２７の演奏システムにおけるセッション演奏の流れを説明するフローチャート。
【図２９】図２７の演奏システムにおいて自動演奏ピアノが実行するイベント予測処理の手順の一例を示すフローチャート。
【符号の説明】
【０１１４】
１  鍵、４  弦、１５  通信インターフェース、１６  音源、１８  制御系、１９  センサ、２５  軌道予測モジュール、２６  イベント予測モジュール
【図１】
0005338247.tif 000002
【図２】
0005338247.tif 000003
【図３】
0005338247.tif 000004
【図４】
0005338247.tif 000005
【図５】
0005338247.tif 000006
【図６】
0005338247.tif 000007
【図７】
0005338247.tif 000008
【図８】
0005338247.tif 000009
【図９】
0005338247.tif 000010
【図１０】
0005338247.tif 000011
【図１１】
0005338247.tif 000012
【図１２】
0005338247.tif 000013
【図１３】
0005338247.tif 000014
【図１４】
0005338247.tif 000015
【図１５】
0005338247.tif 000016
【図１６】
0005338247.tif 000017
【図１７】
0005338247.tif 000018
【図１８】
0005338247.tif 000019
【図１９】
0005338247.tif 000020
【図２０】
0005338247.tif 000021
【図２１】
0005338247.tif 000022
【図２２】
0005338247.tif 000023
【図２３】
0005338247.tif 000024
【図２４】
0005338247.tif 000025
【図２５】
0005338247.tif 000026
【図２６】
0005338247.tif 000027
【図２７】
0005338247.tif 000028
【図２８】
0005338247.tif 000029
【図２９】
0005338247.tif 000030