(57)【要約】【課題】  従来の自動ピアノと互換性を維持しつつ、高度な演奏を可能とする演奏情報を生成する。【解決手段】  押鍵イベント、ノートオンイベントおよびノートオフイベントで演奏情報とする。押鍵イベントの内容は、押鍵であることを示す識別子、および、押鍵速度を示す情報をまとめたデータと、押下された鍵のノート番号を指定するデータとで構成される。ノートオンイベントの内容は、ＭＩＤＩ規格においてノートオンを指示する識別子と、当該ハンマの打弦速度を示す情報とをまとめた１つのデータで構成される。ノートオフイベントの内容は、ＭＩＤＩ規格においてノートオフを指示する識別子と、止音機構の速度を示す情報とをまとめた１つのデータで構成される。ここで、各速度を示す情報について、互いに同一ビット数とする。【選択図】    図３
2006053580.tif 000002
【特許請求の範囲】
【請求項１】
鍵の押下が検出されたとき、押鍵であることを示す識別子、および、その押鍵速度を示す情報を１つのデータとするとともに、さらに、ノート番号の指定であることを示す識別子、および、該押下された鍵のノート番号を指定する情報からなるデータを付与して、これら２つのデータを、当該押鍵イベントの内容を示す情報として生成する押鍵イベント情報生成手段と、
前記鍵の押下に伴うハンマの打弦が検出されたとき、ＭＩＤＩ規格においてノートオンを指示する識別子と、当該ノートオンに係るノート番号と、当該ハンマの打弦速度を示す情報とを１つのデータで構成して、当該データをノートオンの内容を示す情報として生成するノートオン情報生成手段と、
前記鍵の開放が検出されたとき、前記ＭＩＤＩ規格においてノートオフを指示する識別子と、当該ノートオフに係るノート番号と、当該開放に伴う止音機構の速度を示す情報とを１つのデータで構成して、当該データをノートオフの内容を示す情報として生成するノートオフ生成手段と、
を具備し、
前記押鍵イベント情報生成手段における押鍵速度を示す情報、前記ノートオン情報生成手段における打弦速度を示す情報、および、前記ノートオフ情報生成手段における止音機構の速度を示す情報について、互いに同一ビット数とした
ことを特徴とする自動ピアノ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、演奏情報を拡張してより自然な演奏を行うのに好適な自動ピアノに関する。
【背景技術】
【０００２】
自動ピアノにあっては、演奏者が鍵を押下すると、これに連動してダンパが弦から離れるとともにハンマが回転し、打弦が行われる。また、離鍵が行われるとダンパが弦に接して消音が行われる。このように楽音は、押鍵→打弦→離鍵→消音という一連の動作によって発生されるのが通常である。このため、記録時には上記各動作に基づいて演奏情報を生成して記録し、再生時には読み出された演奏情報に基づいて鍵の動作を制御することが行われる。この場合の鍵の制御においては、演奏情報に基づいて、ソレノイドを励磁して鍵を駆動し、これに応じてハンマが回転して打弦を行なう。
【０００３】
ところで、電子楽器の分野においては、演奏情報をデジタル信号として伝達するためのインターフェースとしてＭＩＤＩ（Musical Instrument Digital Interface）が知られている。ＭＩＤＩメッセージは、８ビットを１バイト単位とするシリアルデータで表され、メッセージの種類を指示するステータスとデータから構成される。このステータスには、鍵盤を押すことを示すノートオンと鍵盤を離すことを示すノートオフがある。
【０００４】
上述した自動ピアノの演奏情報は、このＭＩＤＩ規格に準拠するものが多い。この場合、ピアノのある動作はイベントと称される１つのＭＩＤＩメッセージで表され、複数のイベントによって演奏情報が構成される。そして、押鍵→打弦→離鍵→消音という一連の動作は、ハンマーが弦を打つことを指示する打弦イベント（ノートオンに対応）と、ダンパーが弦に接することを指示する離鍵イベント（ノートオフに対応）とによって表されることが多かった。
また、一つのイベントは、図１３に示すように、１バイトのステータスと、これに続く２バイトのデータから構成される。データの各先頭ビットはステータスとの区別するため「０」が書き込まれる。そして、ステータスに続く１バイトには、音階を指示するノート番号が書き込まれ、最後の１バイトには鍵の速度を指示する情報が書き込まれる。このため、鍵の速度は７ビットで表される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ピアノの演奏においては、いわゆるハーフストロークと言われる奏法がなされることがあり、この場合には、完全に押鍵される（鍵をエンド位置間で押し切る）前に離鍵が開始されたり、あるいは、離鍵の途中から次の押鍵操作に入る。
しかしながら、従来の自動ピアノにおいては、押鍵や離鍵が途中までしか行われないハーフストロークの再現については、何等考慮されていなかったため、上述した打弦イベントと離鍵イベントのみでハーフストロークを十分に再現することは困難である。また押鍵操作に特開平７−１７５４７２号に記載されているような多岐にわたる変化をもたらすことも困難である。そこで、新たに付加情報を加えてハーフストロークに代表される変化系奏法に対応することが考えられる。
【０００６】
ここで、付加情報を識別するためのステータスを単にノートオン／オフ以外のステータスに設定すると、ＭＩＤＩメッセージとしての互換性が失われる。例えば、付加情報のステータスを「Ａ０」で表すと、一般の電子楽器ではポリフォニック・キー・プレッシャーであると解釈されてしまう。
【０００７】
また、従来の自動ピアノでは、ＭＩＤＩ規格に準拠したノートオン／オフに対応する打弦情報と離鍵情報は各々７ビットで表されていたが、実際のピアノ演奏では、ピアニシモからフォルテシモといったように鍵の速度が大きく変化する。このため鍵の速度を１バイトでは表現しきれないことがある。この場合、鍵の速度情報を拡張するため、拡張された情報を単にノートオン／オフ以外のステータスに設定すると、付加情報と同様の問題が生じる。
【０００８】
本発明は、上述した事情に鑑みてなされたものであり、互換性を維持しつつ、高度な演奏を行うことができる演奏情報を生成する自動ピアノを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、請求項１に記載の発明にあっては、鍵の押下が検出されたとき、押鍵であることを示す識別子、および、その押鍵速度を示す情報を１つのデータとするとともに、さらに、ノート番号の指定であることを示す識別子、および、該押下された鍵のノート番号を指定する情報からなるデータを付与して、これら２つのデータを当該押鍵イベントの内容を示す情報として生成する押鍵イベント情報生成手段と、前記鍵の押下に伴うハンマの打弦が検出されたとき、ＭＩＤＩ規格においてノートオンを指示する識別子と、当該ノートオンに係るノート番号と、当該ハンマの打弦速度を示す情報とを１つのデータで構成して、当該データをノートオンの内容を示す情報として生成するノートオン情報生成手段と、前記鍵の開放が検出されたとき、前記ＭＩＤＩ規格においてノートオフを指示する識別子と、当該ノートオフに係るノート番号と、当該開放に伴う止音機構の速度を示す情報とを１つのデータで構成して、当該データをノートオフの内容を示す情報として生成するノートオフ生成手段と、を具備し、前記押鍵イベント情報生成手段における押鍵速度を示す情報、前記ノートオン情報生成手段における打弦速度を示す情報、および、前記ノートオフ情報生成手段における止音機構の速度を示す情報について、互いに同一ビット数としたことを特徴とする。
【発明の効果】
【００１０】
本発明に係わる自動ピアノで記録された演奏情報をＭＩＤＩ規格に準拠した電子楽器で演奏してもノートオンイベントとノートオフイベントとの時間間隔は変化しない。この意味において、本発明に係る自動ピアノに、ＭＩＤＩ規格に準拠した電子楽器と互換性を持たせることが可能となる。
【発明を実施するための最良の形態】
【００１１】
＜１．実施形態の構成＞
＜１−１．全体構成＞
以下、図面を参照してこの発明の実施形態の構成について説明する。図１はこの発明の一実施形態のブロック図である。
図１において、１は鍵であり、３は鍵１の運動をハンマ２に伝達するアクションである。４は、ハンマ２によって打弦される弦であり、５は鍵１を駆動するソレノイドである。この場合、ソレノイド５のプランジャが突出すると、鍵１がバランスピンＰを中心に回動し、演奏者側に下がり（以下、この状態を押鍵状態という）、また、これに連動してアクション機構３が作動し、ダンパー６が弦４から離れるとともに、ハンマ２が回動して打弦する。一方、演奏者が弾く場合は、指で鍵１を押下することにより、上述と同様の作用が生じて打弦が行われる。
【００１２】
また、図において、ＳＥ１，ＳＥ２は、打弦速度を計測するためのセンサであり、演奏記録部３０は、ハンマ２がこれらのセンサＳＥ１，ＳＥ２の間を通過する時間を計測することにより、ハンマ２の速度、すなわち打弦速度（発音速度）を計測し、また、ハンマ２がセンサＳＥ１を通過する時刻を打弦時刻（発音時刻）として検出する。
【００１３】
次に、２６は鍵１の下面に取り付けられた板状のシャッタである。２５は、上下方向に所定距離隔て設けられている２組のフォトセンサＳＦ２，ＳＦ３によって構成されるキーセンサであり、鍵１が押下され始めると、まず上方のフォトセンサＳＦ２が遮光され、次いで、下方のフォトセンサＳＦ３が遮光される。離鍵の際には、下方のフォトセンサＳＦ３が受光状態となり、次いで、上方のフォトセンサＳＦ２が受光状態になる。
【００１４】
キーセンサ２５の出力信号は、演奏記録部３０に供給される。押鍵時にあっては、演奏記録部３０は、上方のフォトセンサＳＦ２が遮光状態になってから下方のフォトセンサＳＦ３が遮光状態となるまでの時間を測定し、ここから押鍵速度Ｖｋを検出する。また、演奏記録部３０は下方のフォトセンサＳＦ２が遮光状態となった時刻を押鍵時刻ｔｋとして検出する。
【００１５】
一方、離鍵時にあっては、演奏記録部３０は、下方のフォトセンサＳＦ３が受光状態になってから上方のフォトセンサＳＦ２が受光状態となるまでの時間を測定し、ここから離鍵速度ＶｋＮを検出する。また、演奏記録部３０は上方のフォトセンサＳＦ１が受光状態となった時刻を離鍵時刻ｔｋＮとして検出する。
【００１６】
記録後処理部３１においては、演奏記録部３０から供給される各種情報に対して、正規化処理を施し、所定のデータ形式に変換した後に、外部の記録媒体に演奏情報として供給する。ここで正規化処理とは、ピアノの個体差を吸収するための処理である。すなわち、打弦時刻・打弦速度、押鍵時刻・押鍵速度、離鍵時刻・離鍵速度等は、各ピアノにおけるセンサの位置や、構造上の違い、あるいは機械的誤差によって固有の傾向を持つため、標準となるピアノを想定し、そのピアノにおける打弦時刻・打弦速度等に変換するための処理である。
【００１７】
１０は再生前処理部であり、記録メディアあるいはリアルタイム通信装置から供給される演奏データに基づいて、鍵の軌道データを作成するとともに軌道データを用いて鍵の位置データ（ｔ，Ｘ）を作成する回路である。再生前処理部１０で作成された位置データ（ｔ，Ｘ）は、モーションコントローラ１１に供給される。モーションコントローラ１１は、供給された位置データ（ｔ，Ｘ）に基づいて、各時刻における鍵１の位置に対応した位置制御データ（Ｘ）を作成し、サーボコントローラ１２に供給する。
サーボコントローラ１２は、位置制御データ（Ｘ）に応じた励磁電流をソレノイド５に供給するとともに、ソレノイド５から供給されるフィードバック信号と制御データ（Ｘ）を比較し、両者が一致するようにサーボ制御を行う。
【００１８】
＜１−２．演奏情報＞
次に、記録後処理部３１において生成される演奏情報について説明する。演奏情報のデータ形式を図２に示す。演奏データは、押鍵、打弦または離鍵等の各動作を単位として生成され、この１単位をイベントと称する。
【００１９】
楽曲の演奏データは、イベントを組合せることによって表されるが、再生時に鍵軌道を再現するためにはイベントの発生時刻（以下、イベント時刻と称する）を特定する必要がある。このため、楽曲の演奏データは、イベント間にそれらの時間差を示すインターバルと呼ばれるデータを介挿して構成される。
【００２０】
（１）打弦イベントフレーム
打弦イベントは、ハンマ２がセンサＳＥ１を通過した際に生成される。また、打弦イベントのイベント時刻は、ハンマ２がセンサＳＥ１を通過する打弦時刻とする。
【００２１】
打弦イベントフレームのデータ形式を、図２に示す。図示するように打弦イベントフレームは、打弦イベントとこれに付随する拡張バイトからなる。打弦イベントにおいて、第１バイトはステータスを示しており、そのデータ値「９０」が、当該イベントが打弦イベントであることを示している。また、第２バイトと第３バイトの上位１ビットには、「０」を書き込む。これにより、ステータスとデータが区別される。第２バイトの「kkkkkkk」はノート番号を７ビットで示しており、これによって音階が指定される。また、第３バイトの「vvvvvvv」は打弦速度の上位７ビットを示している。なお、従来の自動ピアノにおいても打弦イベントは、同様に生成される。
【００２２】
次に、拡張バイトにおいて、第１バイトと第２バイトはステータスであって、そのデータ値「Ｂ０ １０」が、拡張バイトであることを示している。そして、第３バイトの「www」または「wwwwwww」は、打弦速度の下位３ビットまたは下位７ビットを示している。ここで、拡張バイトのステータス「Ｂ０ １０」はＭＩＤＩ規格において汎用操作子として定義されている。汎用操作子は、ＭＩＤＩ規格においてＭＩＤＩメッセージの形式を有するが、情報の指示する内容が定義されていないものをいう。このため、一般の電子楽器では汎用操作子を無視するようになっている。
【００２３】
ところで、従来の自動ピアノにおいては、ノートオン、ノートオフに対応するイベントを用いて演奏情報を構成していたので、汎用操作子で定義されるステータスのイベントが入力されても無視するようになっている。したがって、拡張バイトが付加された打弦イベントフレームを従来の自動ピアノで再生すると、拡張バイトは無視され、上記した打弦イベントに基づいて鍵が駆動される。この場合、打弦イベントのデータは、打弦速度の上位７ビットを表しているので、従来の自動ピアノで記録された演奏情報と同様の精度で鍵を駆動することができる。一方、拡張バイトが付加された打弦イベントフレームを本実施形態の自動ピアノで再生すると、拡張バイトのステータスが検知され、これに続くデータが拡張されたデータとして取り込まれる。これにより、打弦時の鍵の速度を精度良く再現することが可能となる。
【００２４】
（２）押鍵イベントフレーム
押鍵イベントは、鍵１が押し下げられ、上方のフォトセンサＳＦ２が遮光され、次いで、下方のフォトセンサＳＦ３が遮光された際に生成される。また、押鍵イベントのイベント時刻は、鍵１が下方のフォトセンサＳＦ３を通過した押鍵時刻ｔｋとする。
【００２５】
押鍵イベントのデータ形式を、図３に示す。押鍵インベントフレームの先頭には、ノート番号指定子を書き込む。ノート番号指定子において、第１バイトと第２バイトはステータスであって、そのデータ値「Ｂ０ ５０」が、ノート番号指定子であることを示している。そして、第３バイトの下位７ビットに書き込む「kkkkkkk」によってノート番号が指定される。ここで、ノート番号指定子のステータス「Ｂ０ ５０」はＭＩＤＩ規格において汎用操作子として定義されている。なお、ノート番号指定子は省略することができる。この場合、再生系はその時点で定まっているノート番号を適用する。例えば、上述した打弦イベントが、「９０ ｋｋ ｖｖ」であって、押鍵イベントがこれに続く場合にその押鍵イベントフレームでノート番号指定子が省略されると、ノート番号は打弦イベントのノート番号「ｋｋ」で定まり、押鍵イベントフレームにおいてもその状態が継続する。
【００２６】
次に、ノート番号指定子に続いて押鍵イベントを書き込む。押鍵イベントにおいて、第１バイトと第２バイトはステータスであって、そのデータ値「Ｂ０ ５１」が、押鍵イベントであることを示している。そして、第３バイトの下位７ビットに書き込む「vvvvvvv」によって押鍵速度の上位７ビットが指定される。なお、押鍵イベントのステータス「Ｂ０ ５０」はＭＩＤＩ規格において汎用操作子として定義されている。
【００２７】
次に、押鍵イベントに続いて拡張バイトを書き込む。この拡張バイトは、打弦イベントフレームの場合と同様に、第１バイトと第２バイトはステータスであって、そのデータ値「Ｂ０ １０」が、拡張バイトであることを示している。そして、第３バイトの「www」は、押鍵速度の下位３ビットを示している。
【００２８】
この押鍵イベントフレームによって、押鍵速度を再生することができるので、後述するように鍵の軌道を正確に再現してハーフストローク等の演奏を可能にすることができる。
【００２９】
（３）離鍵イベントフレーム
離鍵イベントは、鍵１が戻され、下方のフォトセンサＳＦ３が受光状態となり、次いで、上方のフォトセンサＳＦ２が受光状態となった際に生成される。また、離鍵イベントのイベント時刻は、鍵１が上方のフォトセンサＳＦ２を通過する離鍵時刻ｔｋＮとする。
【００３０】
離鍵イベントフレームのデータ形式を、図４に示す。図示するように離鍵イベントフレームは、離鍵イベントとこれに付随する拡張バイトからなる。離鍵イベントにおいて、第１バイトはステータスを示しており、そのデータ値「８，０」が、当該イベントが離鍵イベントであることを示している。また、第２バイトと第３バイトの上位１ビットには、「０」を書き込む。これにより、ステータスとデータが区別される。第２バイトの「kkkkkkk」はノート番号を７ビットで示しており、これによって音階が指定される。また、第３バイトの「vvvvvvv」は離鍵速度の上位７ビットを示している。なお、従来の自動ピアノにおいても離鍵イベントは、同様に生成される。
【００３１】
次に、拡張バイトにおいて、第１バイトと第２バイトはステータスであって、そのデータ値「Ｂ０ １０」が、拡張バイトであることを示している。そして、第３バイトの「www」は、打弦速度の下位３ビットまたは下位７ビットを示している。なお、拡張バイトのステータス「Ｂ０ １０」はＭＩＤＩ規格において汎用操作子として定義されている。
【００３２】
（４）イベントフレームの順序
１つの鍵に対応する押離鍵動作において、上述したイベントフレームは、押鍵イベントフレーム→打弦イベントフレーム→離鍵イベントフレームの順で生成されることが大半であるが、実際の演奏では、打弦イベントフレーム→押鍵イベントフレーム→離鍵イベントフレーム、押鍵イベントフレーム→離鍵イベントフレーム→打弦イベントフレームの順で生成されることもある。また、各イベントフレーム間には、タイムインターバルが介挿される。すなわち、記録媒体上ではタイムインターバルを含めて、連続したアドレスに書き込み、伝送上では各フレーム間をインターバルを表す時間間隔で送信するものである。
【００３３】
これにより、従来の自動ピアノにない押鍵イベントフレームを、打弦イベントの手前もしくは、打弦イベントフレームの後等に書き込むようにしても、従来の自動ピアノとの互換性を確保できる。
【００３４】
押鍵イベントフレームは、そのステータスがＭＩＤＩ規格の汎用操作子で定義されているため、従来の自動ピアノでは無視される。ここで、押鍵イベントフレーム→打弦イベントフレーム→離鍵イベントフレームの順でフレームを生成したとすると、従来の自動ピアノでは打弦イベントフレーム→離鍵イベントフレームが連続する。また、打弦イベントフレーム→押鍵イベントフレーム→離鍵イベントフレームの順でフレームを生成した場合も同様である。このようにいずれの場合も従来のイベントと同様に再生するので、従来の自動ピアノとの互換性を確実に行うことが可能となる。
【００３５】
（５）拡張バイトの順序
上述したように各イベントフレームにおいて拡張バイトを使用する場合には、拡張が必要とされるイベントの直後に拡張バイトを付加するが、これは以下の理由による。
再生系においては、拡張バイトで指定される下位ビットと通常イベントで指定される上位ビットを併せて速度データを検出し、これに基づいて鍵軌道の再生処理を行う。しかし、両者が時間的に離れていると、速度データを得るまでの所要時間が長くなるので、鍵軌道の再生処理を短時間で行う必要がある。そこで、イベントの直後に拡張バイトを付加することにより、速度データを短時間で得て鍵軌道の再生処理に時間的な余裕を持たせている。さらには両者間に他のイベントが介挿すると、拡張バイトが拡張対象とするイベントの特定を誤ることになるので、通常イベントの直後に拡張バイトを付加することでこれを防止する。
【００３６】
＜１−３．軌道作成の原理＞
次に、再生前処理部１０における軌道作成の原理について説明する。
（１）リファレンスポイント
鍵１を押し下げる速度に応じてハンマ２の打弦速度が決まるが、鍵１の速度は初め遅くて次第に早くなる場合や、その逆の場合もあり、さらには、ほとんど一定の速さで押される場合もある。この場合、鍵１のレスト位置からエンド位置に至るまでの速度と、ハンマ２の打弦速度とがどのような関係になっているのかが重要である。なぜならば、その関係を考察せず、打弦強度データに応じて鍵速度（初期速度など）を制御しても、記録時の打弦速度を再生することはできないからである。
【００３７】
実験によれば、鍵１のある位置における速度とハンマ２の打弦速度とが極めて良い対応を示すことが判った。この位置は、ピアノの個体差にもよるが、概ねレスト位置から９．０ｍｍ〜９．５ｍｍ程度押し下げた位置であった。したがって、鍵１がこの位置に達するときの速度を、打弦強度データに応じて制御すれば、記録時の打弦速度を忠実に再現することができる。なお、以下においては、上述の所定位置をリファレンスポイントＸｒという。
【００３８】
（２）リファレンス速度
次に、上述のようにして求めたリファレンスポイントＸｒにおいて、どのような鍵速度にすれば、打弦速度を忠実に再現することができるかを設定する必要がある。なお、以下においては、リファレンスポイントＸｒにおける鍵速度をリファレンス速度Ｖｒという。
【００３９】
ここで、図５はリファレンスポイントＸｒを９．５ｍｍに設定したときの鍵速度と打弦速度の関係を示す図である。図中、白点は鍵をエンド位置まで押し切る単打奏法を行った場合の結果を示し、黒点は鍵をエンド位置まで押し切らずに連打する連打奏法を行った場合の結果を示している。また、Ｃ１は１次最小自乗法近似による直線、Ｃ２は６次最小自乗法による曲線を示している。
【００４０】
図５から明らかなように、リファレンス速度Ｖｒは、直線Ｃ１あるいは曲線Ｃ２のいずれによっても近似できる。したがって、近似性のよい関数を適宜選択すれば、この関数を用いて任意の打弦強度データ（記録時の打弦速度情報）からリファレンス速度Ｖｒを決定することができる。
この実施例においては、計算が簡単で誤差の少ない１次関数近似を採用している。したがって、リファレンス速度Ｖｒは、次式によって求められる。
【００４１】
【数１】
2006053580.tif 000003
数１において、ＶHは打弦速度（打弦強度データ）であり、αおよびβは定数である。定数αおよびβは、ピアノの機種等に応じ実験等によって決定する。なお、αおよびβは、同一ピアノであっても、リファレンスポイントＸｒをどこにするかによって変動する。
【００４２】
（３）リファレンス時間差
さて、この例にあっては、演奏情報に含まれる打弦時刻データは、タイムインターバルとして、相対時刻で記録されているが、再生側自動ピアノにおいてタイムインターバルを読みとって積算処理することにより、再生時の各音の打弦絶対時刻が求められる。そこで、このようにして求めた打弦絶対時刻において正確に打弦を行わせるには、鍵が何時リファレンスポイントＸｒを通過すればよいかを求める必要がある。
【００４３】
ここで、鍵１がリファレンスポイントＸｒを通過する時刻（以下、リファレンス時刻ｔｒという）と打弦時刻（正確には、ハンマが打弦位置直前にあるセンサＳＥ１を通過した時刻）との時間差をリファレンス時間差Ｔｒと定義し、これと打弦速度との関係を実験により求めたものが図６である。図６において、白点は単打奏法による結果、黒点は連打奏法による結果を示している。そして、図６を縮尺２倍にしたものが図７であり、縮尺４倍にしたものが図８である。これらの図から判るように、リファレンス時間差Ｔｒと打弦速度との関係は、双曲線により極めて良好に近似される。すなわち、このリファレンス時間差Ｔｒは、打弦速度ＶHを分母にする１変数式で近似することができ、次式によって算出される。
【００４４】
【数２】
2006053580.tif 000004
なお、数２における定数γおよびδは、ピアノの機種等に応じ実験等によって決定する。また、γおよびδは、同一ピアノであっても、リファレンスポイントＸｒをどこにするかによって変動する。これは、数１におけるα、βの場合と同様である。
【００４５】
さて、数２によって、リファレンス時間差Ｔｒが求まれば、再生側の打弦絶対時刻からリファレンス時間差Ｔｒを減算することによって、リファレンス時刻ｔｒが求められ、結局、上述した（１）、（２）、（３）の処理により、リファレンスポイントＸｒ、リファレンス速度Ｖｒ、およびリファレンス時刻ｔｒが求められる。したがって、リファレンス時刻ｔｒにリファレンスポイントＸｒに達し、かつ、その時の速度がリファレンス速度Ｖｒとなるように鍵１を駆動すれば、記録時の打弦状態を忠実に再現することができる。
なお、鍵１がリファレンスポイントＸｒに達したときに打弦が行われるのであれば、リファレンス時間差Ｔｒを求める処理は不要になる。
【００４６】
（４）押鍵時の軌道データ作成
図９は、鍵の押鍵軌道を示す図であり、レスト位置Ｘ0から等速運動をしてエンド位置Ｘeに至っている。ここで、鍵の初速度をＶ0、鍵の位置をＸ、鍵の駆動開始時点からの時間をｔとすれば、鍵の軌道は、
【００４７】
【数３】
2006053580.tif 000005
と表される。また、鍵がリファレンスポイントＸｒに達する時刻をｔｒ’とすると、
【００４８】
【数４】
2006053580.tif 000006
なる式が成り立つから、この数４から時刻ｔｒ’を求めることができる。したがって、押鍵を開始する絶対時刻（以下、押鍵開始時刻という）ｔ0は、次式によって求めることができる。
【００４９】
【数５】
2006053580.tif 000007
なお、リファレンス時刻ｔｒは、前述のように、打弦時刻からリファレンス時間差Ｔｒを減算することによって求める。
上記数５によって押鍵開始時刻ｔ0を求め、この時刻から、数３で示される軌道に従って鍵１を駆動すれば、鍵１は、リファレンス時刻ｔｒにおいて正確にリファレンスポイントＸｒに達し、しかも、その時の速度は、打弦強度データに対応したレファレンス速度Ｖｒとなる。
【００５０】
なお、鍵の挙動については、直線軌道（等速運動）を想定しているから、リファレンス速度Ｖｒと初速度Ｖ0は等しい。そして、リファレンス速度Ｖｒは、前述の数１によって求められるから、結局、数５で求めた押鍵開始時刻ｔ0から一定速度ｖｒで鍵を駆動するように制御（速度制御）することができる。
【００５１】
（５）離鍵時の軌道データ作成
次に、離鍵時の軌道データ作成について説明する。まず、鍵の位置をＸＮ、離鍵初速度をＶ0Ｎ（＜０）、離鍵開始時点からの時間をｔＮ、エンド位置をＸeとすれば、離鍵時の鍵軌道は、次式で表される。
【００５２】
【数６】
2006053580.tif 000008
ここで、図１０は数６で示される軌道を示す図である。
【００５３】
さて、前述のように、演奏記録部３０（図１参照）は、キーセンサ２５内の下方のフォトセンサＳＦ３が受光状態になってから上方のフォトセンサＳＦ２が受光状態になるまでの時間を測定して離鍵速度ＶｋＮを検出し、また、上方のフォトセンサが受光状態になった時刻を離鍵時刻ｔｋＮとして検出する。この場合、離鍵時刻ｔｋＮにおけるダンパー６は、弦４に接して音の減衰を開始する状態なっている（そのような状態になるようフォトセンサの位置が調整されている）。そして、このようにして検出された離鍵速度ＶｋＮおよび離鍵時刻ｔｋＮは、それぞれ演奏情報を構成するデータとして記録され、再生時に読み出される。
【００５４】
ここで、ダンパー６が弦４に接するときの鍵の位置を離鍵リファレンスポイントＸｒＮと定義すれば、鍵１が離鍵リファレンスポイントＸｒＮに達したときに、離鍵状態になったということができる。したがって、鍵１が離鍵リファレンスポイントＸｒＮに達する時刻（以下、離鍵リファレンス時刻ｔｒＮという）と、演奏情報中の離鍵時刻ｔｋＮとが一致するように鍵位置を制御すれば、正確な離鍵タイミング制御を行うことができる。
【００５５】
また、ダンパー６が弦４に接する速さは、音の減衰状態に影響を与えるから、これを忠実に再現することが望ましい。この速さは、離鍵速度ＶｋＮに対応するから、結局、離鍵リファレンスポイントＸｒＮにおける鍵速度（以下、離鍵リファレンス速度ＶｒＮという）を正確に離鍵速度ＶｋＮに一致させれば、音の減衰状態が正確に再現される。
ここで、鍵の駆動が開始される時刻を基準（＝０）にして、鍵が離鍵リファレンスポイントＸｒＮに達する時刻をｔｒＮ’とすると、
【００５６】
【数７】
2006053580.tif 000009
（ただし、直線軌道だからＶ0Ｎ＝ＶｒＮ＝ＶｋＮ）
なる関係が成り立ち、この数７より時刻ｔｒＮ’を求めることができる。したがって、次式によって離鍵開始時刻ｔ0Ｎを求めることができる。
【００５７】
【数８】
2006053580.tif 000010
この数８によって離鍵開始時刻ｔ0Ｎを求め、この時刻から、数６で示される軌道に従って鍵を駆動すれば、鍵は離鍵時刻ｔｋＮにおいて離鍵リファレンスポイントＸｒＮに達し、記録時の離鍵状態を忠実に再現することができる。
なお、時刻ｔ0から速度Ｖ0Ｎ（＝ＶｋＮ：離鍵速度）で鍵駆動するように制御（速度制御）しても上記と同様の結果を得ることができる。
【００５８】
（６）押鍵スローダウン・離鍵スローアップ軌道データ作成
（ａ）トランジット位置
上述のようにして作成される押鍵軌道および離鍵軌道は直線状をなす等速軌道であり、以下、これらをそれぞれ押鍵等速軌道、離鍵等速軌道と称する。ここで、押鍵から離鍵へ移る演奏がハーフストロークで行われた場合には、押鍵等速軌道と離鍵等速軌道は、図１１（Ａ）に示すように、エンド位置Ｘeに至る手前で交差する。この自動ピアノでは、押鍵の際には、レスト位置Ｘ0から所定位置ＸＴまでは押鍵等速軌道に基づいて鍵１を制御し、所定位置ＸＴとエンド位置Ｘeの間の範囲では、２次曲線の軌道（以下、押鍵スローダウン軌道と称する）に基づいて鍵１を制御する。また、離鍵の際には、所定位置ＸＴからレスト位置Ｘ0までは離鍵等速軌道に基づいて鍵１を制御し、所定位置ＸＴとエンド位置Ｘeの範囲では、２次曲線の軌道（以下、離鍵スローアップ軌道と称する）に基づいて鍵１を制御する。なお、以下の説明においては、「所定位置」をトランジット位置と称する。また、押鍵等速軌道がトランジット位置ＸＴに達する時刻を押鍵中間時刻（ｔＰＴ）、離鍵等速軌道がトランジット位置ＸＴから開始する時刻を離鍵中間時刻（ｔＮＴ）と称する。
ここで、トランジット位置ＸＴは、鍵１に自然な動作を与えるべく適宜設定されるが、押鍵等速軌道が短すぎると、打鍵速度の再現性を不安定にする。よって、押鍵から離鍵へ移る演奏の場合には、トランジット位置ＸＴは、レスト位置Ｘ0とエンド位置Ｘeの中間よりもエンド位置Ｘe寄りにする。
【００５９】
（ｂ）等速時交差時刻ｔcの計算
図１１（Ａ）に示すように、押鍵等速軌道および離鍵等速軌道どうしが交差する位置（以下、等速時交差位置と称する）をＸcとし、等速時交差位置Ｘcに達する時刻（以下、等速時交差時刻と称する）をｔcとすると、この交差時刻ｔcは、押鍵等速軌道および離鍵等速軌道の軌道データから計算により求めることができる。そこで、等速時交差時刻ｔcに鍵の速度が０となるように、押鍵スローダウン軌道および離鍵スローアップ軌道を設定すれば、図１１（Ｂ）に示すように、押鍵スローダウン軌道においては、押鍵中間時刻ｔＰＴから等速時交差時刻ｔcまでの間に、鍵の速度ＶがＶ0から０まで変化するような軌道を設定すればよい。また、離鍵スローアップ軌道においては、等速時交差時刻ｔcから離鍵中間時刻ｔＮＴまでの間に、鍵の速度Ｖが０からＶ0Ｎ（＜０）まで変化するような軌道を設定すればよい。そこで、まず、等速時交差時刻ｔcを以下のようにして求める。
【００６０】
押鍵開始時刻ｔ0から等速時交差時刻ｔcまでの時間をａ、等速時交差時刻ｔcから離鍵等速軌道が終了する時刻ｔ4までの時間をｂとすると、下記式が成立する。
【数９】
2006053580.tif 000011
【００６１】
【数１０】
2006053580.tif 000012
また、数９および数１０により、下記式が成立する。
【００６２】
【数１１】
2006053580.tif 000013
【００６３】
次に、等速時交差時刻ｔcは、押鍵開始時刻ｔ0に時間ａを加算すれば良いから下記式によって算出される。
【数１２】
2006053580.tif 000014
【００６４】
ここで、数１２におけるｔ4は、離鍵等速軌道がレスト位置Ｘ0に達する時刻であって、数８によって算出したｔ0Ｎを用いて次式により算出される。
【数１３】
2006053580.tif 000015
【００６５】
（ｃ）押鍵スローダウン軌道データの作成
次に、押鍵スローダウン軌道における押鍵加速度ａＰを下記式によって求める。
【数１４】
2006053580.tif 000016
ただし、数１４におけるｔＰＴは次式により算出される。
【００６６】
【数１５】
2006053580.tif 000017
【００６７】
また、押鍵スローダウン軌道における押鍵速度Ｖは数１４で求められるａＰ（＜０）を用いて下記数１６によって求めることができ、押鍵スローダウン軌道は、下記数１７によって表すことができる。ただし、式中ｔは、押鍵スローダウン軌道および離鍵スローアップ軌道における絶対時刻である。
【数１６】
2006053580.tif 000018
【００６８】
【数１７】
2006053580.tif 000019
ただし、Ｐ1，Ｑ1，Ｒ1は定数であり、これらは、数１７と数１７をｔで微分した式に図１１（Ａ）に示すｔの特定値を代入することにより求めることができる。すなわち、数１７は、時刻ｔＰＴで傾きがＶ0、等速時交差時刻ｔcで傾きが０となる２次関数であり、時刻ｔＰＴにおける値がＸＴであるから、これらの値を上記式に代入すればよい。
【００６９】
（ｄ）離鍵スローアップ軌道データの作成
次に、離鍵スローアップ軌道における離鍵加速度ａＮ（＜０）を以下のようにして求める。
【数１８】
2006053580.tif 000020
【００７０】
ここで、数１８におけるｔＮＴは次式により算出される。
【数１９】
2006053580.tif 000021
【００７１】
また、離鍵スローアップ軌道における離鍵速度Ｖは下記数２０によって求めることができ、離鍵スローアップ軌道は下記数２１によって表すことができる。ただし、ａＮ＜０である。
【数２０】
2006053580.tif 000022
【００７２】
【数２１】
2006053580.tif 000023
【００７３】
ただし、Ｐ2，Ｑ2，Ｒ2は定数であり、これらは、数２１と数２１をｔで微分した式に図１１（Ａ）に示すｔの特定値を代入することにより求めることができる。すなわち、数２１は、時刻ｔＮＴで傾きがＶ0Ｎ、速度等速時交差時刻ｔcで傾きが０となる２次関数であり、時刻ｔＮＴにおける値がＸＴであるから、これらの値を上記式に代入すればよい。この場合において、数２１の最大値は数１７の最大値と等しくなり、よって、これら２つの式で表される２次曲線は等速時交差時刻ｔcに交差する。
【００７４】
このように、上述した押鍵・離鍵時の軌道データ作成と押鍵スローダウン・離鍵スローダウン軌道データ作成によって、鍵１の軌道を再生することができる。
【００７５】
＜２．実施形態の動作＞
＜２−１．記録動作＞
始めに、記録動作について説明する。まず、演奏者によって演奏が行われると、演奏記録部３０がセンサＳＥ１，ＳＥ２の出力信号に基づいて打弦速度ＶHおよび打弦時刻を検出するとともに、キーセンサ２５を構成するフォトセンサＳＦ２，ＳＦ３の出力信号に基づいて押鍵時刻Ｖｋおよび押鍵時刻ｔｋ、打弦速度ＶHおよび打弦時刻を検出する。これらの情報は、記録後処理部３１において正規化処理された後に、演奏情報としてフロッピー（登録商標）ディスク等の記録媒体に記録される。
【００７６】
＜２−２．再生動作＞
次に、再生動作について図面を参照しつつ説明する。図１２は、本実施形態に係わる自動ピアノの再生動作を示すフローチャートである。
＜２−２−１．本実施形態に係わる自動ピアノで記録された演奏情報を本実施形態に係わる自動ピアノで再生する場合＞
まず、本実施形態に係わる自動ピアノで記録された演奏情報を本実施形態に係わる自動ピアノで再生する場合を想定する。図１２において、再生前処理部１０は、記録媒体から演奏情報を読み出すか、あるいは、外部から供給される演奏情報を受信する（ステップＳ１）。次に、演奏情報のステータスを検知する（ステップＳ２）。具体的には、予めステータスのデータ値をテーブルに格納しておき、演奏情報が供給されると、テーブルからデータ値を読み出して演奏情報のデータ値と比較を行い、一致するものを検索する。例えば、演奏情報が、図３に示すように「Ｂ０ ５１ ｖｖ」であれば、ステータスは押鍵イベントを指示すると検知される。
【００７７】
この後、再生前処理部１０は、ステータスに続くデータを解釈する（ステップＳ３）。上記した例では、ステータス「Ｂ０ ５０」に続く第３バイトの「ｖｖ」が押鍵速度であると解釈される。なお、押鍵イベントフレームにあっては、上述したように押鍵イベントの直前にノート番号指定子が設けられるので、これにより押鍵イベントのノート番号が検知される。
【００７８】
次に、再生前処理部１０は、拡張バイトが付加されているいるか否かを判定する（ステップＳ４）。拡張バイトのステータスは、上述したように「Ｂ０ １０」であり、各イベントは３バイト単位で構成されるので、ステップＳ２において検知されたステータスを含めて４バイト目が「Ｂ０」で５バイト目が「１０」であるか否かを判定する。
【００７９】
例えば、演奏情報が図３に示す「Ｂ０ ５１ ｖｖ」「Ｂ０ １０ ｗｒ」であるとすれば、ステップＳ４の判定結果はＹＥＳとなり、ステップＳ５に進んで、拡張バイトを考慮して鍵の速度が検知される。この例では、押鍵イベントに対して拡張バイトが付加されているので、押鍵速度は押鍵イベントの第３バイトに書き込まれたｖｖ（７ビット）と拡張バイトの第３バイトに書き込まれたｗ（３ビット）を併せた１０ビットであると検知される。
【００８０】
一方、ステップＳ２において検知されたステータスを含めて４バイト目が「Ｂ０」でかつ５バイト目が「１０」でない場合には、ステップＳ４の判定結果はＮＯとなり、ステップＳ６に直接進む。この場合には、拡張の対象となるデータが存在しないが、拡張バイトが付加されている場合を通常と考えて７ビットの速度データを１０ビットのデータとして取り扱う。具体的には、下位３ビットに「０」を付加して１０ビットの速度データを生成する。これにより、拡張バイトが付加されない場合であっても、後段の処理を１０ビットに統一することができる。
【００８１】
次に、ステップＳ６では、数３に示す押鍵軌道の軌道データを作成する。押鍵軌道は、レスト位置Ｘ0からエンド位置Ｘeに至る軌道であり、この軌道データは、押鍵イベント中の押鍵時刻データおよび押鍵速度データ、打弦イベント中の打弦時刻データおよび打弦速度データに基づいて作成される。この後、ステップＳ７に進んで、数６に示す離鍵等速軌道の軌道データを作成する。この軌道データは、離鍵イベント中の離鍵時刻データおよび離鍵速度データに基づいて作成される。
【００８２】
次に、ステップＳ８へ進んで押鍵スローダウン軌道と離鍵スローアップ軌道を作成するための交差処理を行う。まず、２つの軌道の等速時交差時刻ｔcを数１２を用いて計算する。押鍵スローダウン軌道および離鍵スローアップ軌道における加速度ａＰ，ａＮを数１４および数１８を用いて計算する。そして、求めた加速度ａＰ，ａＮを用いて、数１５および数１９に示す押鍵スローダウン軌道と離鍵スローアップ軌道の軌道データを作成する。なお、押鍵等速軌道と離鍵等速軌道とが交差しないのであれば、ステップＳ８の処理は省略できる。
【００８３】
次に、ステップＳ９へ進み、モーションコントローラ１１に供給する位置データ（ｔ，Ｘ）を作成する。この位置データ（ｔ，Ｘ）は、時刻ｔと、時刻ｔに対応する鍵の位置Ｘからなる。ここで、時刻ｔは、押鍵開始時刻ｔ0から離鍵が終了する時刻ｔ4までを一定のピッチで刻んだ時刻である。あるいは、押鍵スローダウン軌道と離鍵スローアップ軌道における時刻ｔのピッチを短くし、押鍵等速軌道および離鍵等速軌道における時刻ｔのピッチを長くすることもできる。このようにして時刻ｔのピッチを設定することにより、押鍵等速軌道および離鍵等速軌道における位置データ（ｔ，Ｘ）の計算を簡略化し、かつ、押鍵スローダウン軌道と離鍵スローアップ軌道における鍵１の動作を正確かつ滑らかにすることができる。
【００８４】
また、鍵の位置Ｘは、前述の方法によって求めた各軌道データに各時刻ｔを代入して求める。すなわち、押鍵開始時刻ｔ0から押鍵中間時刻ｔＰＴまでは、時刻ｔを数３に代入して押鍵等速軌道における鍵１の位置Ｘを求め、押鍵中間時刻ｔＰＴから等速時交差時刻ｔcまでは、時刻ｔを数１７に代入して押鍵スローダウン軌道における鍵の位置Ｘを求める。また、等速時交差時刻ｔcから離鍵中間時刻ｔＮＴまでは、時刻ｔを数２１に代入して離鍵スローアップ軌道における鍵の位置Ｘを求め、離鍵中間時刻ｔＮＴから時刻ｔ4までは、時刻ｔを数６に代入して離鍵等速軌道における鍵の位置Ｘを求める。そして、こうして作成した位置データ（ｔ，Ｘ）を、再生前処理部１０に設けたメモリの所定のアドレスから時刻ｔの順番に格納する。こうしてメモリの所定のアドレスから時刻ｔの順番に位置データ（ｔ，Ｘ）を格納することにより、押鍵開始から離鍵終了までの鍵の位置Ｘを時刻ｔ毎に求めたシーケンシャルデータ列を作成する。
【００８５】
ところで、楽曲の演奏データは、上述したように打弦，押鍵，離鍵の各イベントフレーム間に、各イベントフレーム間の発生時間差を示すインターバルデータが介挿されて記録媒体に記憶される。そして、楽曲を再生する場合には、イベントフレームと次のインターバルデータをセットで読み出し、読み出したインターバルデータが示す時間が経過すると、次のイベントフレームとインターバルデータをセットで読み出し、以下この処理を繰り返す。
【００８６】
ここで、自動ピアノでは、ソレノイドに給電を開始してから実際にハンマが打弦して発音されるまでに時間がかかる。そのため、打弦イベントフレームが記録媒体から読み出されたタイミングに対して実際の発音が遅れることになる。また、ソレノイドに給電を開始してから実際にハンマが打弦して発音されるまでの時間は指示される打弦速度によって異なるため、打弦イベントフレームが記録媒体から読み出された時点にソレノイドの給電を開始すると、打弦イベントの発生時間の間隔が各打弦イベントの指示する打弦速度に応じて変化してしまう。また、離鍵に関しても同様の問題がある。
【００８７】
そこで、自動ピアノの再生時には、各イベントフレームが読み出されたタイミングから所定時間（例えば、５００ｍｓｅｃ）後に各イベントフレームで指示された動作（打弦，離鍵）が行われるように、各イベントを一律に遅延させる。具体的には、打弦，離鍵イベントフレームが読み出された時点で、前述した軌道計算を行い、打弦タイミング，離鍵タイミング（打弦，離鍵イベントフレームが読み出された時点から５００ｍｓｅｃ後のタイミング）のどれだけ前から鍵を動かし始めればいかを求め、このタイミングで鍵を動かし始めるようにする。
【００８８】
この点について、図１４を参照して説明する。ここで、図１４（ａ）に示すタイミングで打弦イベントフレームと離鍵イベントフレームが読み出されたとする。まず、打弦イベントにあっては、図１４（ｂ）に示すように打弦タイミングに対して、リファレンス時間Ｔｒと時間ｔｒ’との和だけ先行して鍵の駆動を開始すればよい。そこで、打弦イベントフレームが読み出された時点から「５００ｍｓｅｃ−（Ｔｒ’＋ｔｒ’）」だけ経過したタイミングにおいて鍵を動かし始め、打弦イベントフレームが読み出された時点から５００ｍｓｅｃ経過後に実際の打弦を行うようにしている。
【００８９】
一方、離鍵イベントは、消音の開始を指示するものであって、自動ピアノではダンパ６を弦４に接触させることを意味する。離鍵イベントの場合には、図１４（ｃ）に示すように離鍵タイミングに対して、時間ｔｒＮ’だけ先行して鍵の駆動を開始すればよい。そこで、離鍵イベントフレームが読み出された時点から「５００ｍｓｅｃ−ｔｒＮ’」だけ経過したタイミングにおいて鍵を動かし始める。これにより、離鍵イベントフレームが読み出された時点から５００ｍｓｅｃだけ後方のタイミングにおいてダンパ６が弦４に接触して実際の消音が行われる。なお、電子楽器で演奏を再生する場合には、自動ピアノのような遅延の必要はないので、打弦イベントフレームが記録媒体から読み出された時点において楽音信号の合成を開始するとともに、離鍵イベントフレームが記録媒体から読み出された時点において楽音信号の消音を開始する。
【００９０】
以上説明したように、この実施形態にあっては、押鍵イベントを用いて演奏情報を表したので、押鍵スローダウン軌道と離鍵スローアップ軌道を正確かつ滑らかに再現することが可能となる。また、拡張バイトを用いたので記録する速度のダイナミックレンジを拡大することができる。これにより、例えば、ピアニシモからフォルテといったように鍵の速度が大幅に変化する場合であっても、正確に再現することが可能になり、自動演奏において微妙なニュアンスを再現することが可能となる。
【００９１】
＜２−２−２．従来の自動ピアノで記録された演奏情報を本実施形態に係わる自動ピアノで再生する場合＞
従来の自動ピアノでは、演奏情報として上述した打弦イベントと離鍵イベントが使用されており、押鍵イベントは使用されていない。したがって、従来の自動ピアノで記録された演奏情報が本実施形態に係わる自動ピアノに供給されると、再生前処理部１０は、演奏情報を取得して（ステップＳ１，図１２参照）、演奏情報のステータスを検知する（ステップＳ２）。
【００９２】
この場合、打鍵動作に関するステータスは打弦イベントを指示する「９０」、または離鍵イベントを指示する「８０」に限られる。このため、ステータスの解釈結果は打弦イベントまたは離鍵イベントのいずれかになる。また、拡張バイトは従来の自動ピアノでは用いられていないので、ステップＳ４の判定結果はＮＯとなり、ステップＳ６に進んで、一打鍵中に打弦イベント、押鍵イベントおよび離鍵イベントが一組として含まれるか否かを判定する。押鍵イベントは使用されないから、押鍵等速軌道の軌道データを打弦イベント中の打弦時刻データおよび打弦速度データに基づいて作成する。この後、ステップＳ７に進んで、数６に示す離鍵等速軌道の軌道データを作成する。この軌道データは、離鍵イベント中の離鍵時刻データおよび離鍵速度データに基づいて作成される。
【００９３】
次に、ステップＳ８へ進んで押鍵イベントに基づいて交差処理を行う。この後、ステップＳ７で生成された軌道データに基づいて、再生前処理部１０は、モーションコントローラ１１に供給する位置データ（ｔ，Ｘ）を作成し、その内部に設けられたメモリの所定のアドレスから時刻ｔの順番に格納する。こうして、押鍵開始から離鍵終了までの鍵の位置Ｘを時刻ｔ毎に求めたシーケンシャルデータ列を作成する。
【００９４】
このように本実施形態においては、打弦イベントと離鍵イベントのステータスを従来の自動ピアノで用いられているものと同じものを使用したので、従来の自動ピアノで記録された演奏情報を再生することができる。この場合、従来の自動ピアノで生成された打弦イベントまたは離鍵イベント中の速度データは、１バイト（７ビット）で表されるが、本実施形態の自動ピアノでは、これを速度データの上位７ビットとして扱えるように、拡張バイトに下位ビットを書き込むこととしたので、従来の自動ピアノと同様の精度で鍵の速度を再現することができる。すなわち、本実施形態の自動ピアノは、従来の自動ピアノで記録された演奏情報を何ら損なうことなく再生できるという互換性を備えている。
【００９５】
＜２−２−３．本実施形態に係わる自動ピアノで記録された演奏情報を従来の自動ピアノで再生する場合＞
本実施形態の自動ピアノでは、打弦イベントや離鍵イベントの他、押鍵インベントや拡張バイトを付加して演奏情報を生成する。ここで、押鍵イベントや拡張バイトを識別するためのステータスは、従来の自動ピアノで使用されていないものが用いられる。一方、従来の自動ピアノでは、未定義のステータスが入力された場合、これを無視するようにエラー処理が行われる。したがって、本実施形態の自動ピアノで記録された演奏情報を従来の自動ピアノで再生すると、押鍵イベントや拡張バイトが無視される。また、打弦イベントや離鍵イベントのステータスは従来の自動ピアノで使用されるステータスと同じものを用いたので、これらのイベントについては再生される。
【００９６】
例えば、演奏情報が、打弦イベントフレーム「９０ ｋｋ ｖｖ，Ｂ０ １０ ｗｒ」、押鍵イベントフレーム「Ｂ０ ５０ ｋｋ，Ｂ０ ５１ ｖｖ」、離鍵イベントフレーム「８０ ｋｋ ｖｖ」で構成されており、この演奏情報を従来の自動ピアノで再生したとする。この場合、従来の自動ピアノではステータス「９０」，「８０」は認識することができるが、ステータス「Ｂ０ ５０」と「Ｂ０ ５１」は認識することができない。このため、打弦イベントフレームの拡張バイト「Ｂ０ １０ ｗｒ」と押鍵イベントフレームは無視され、打弦イベント「９０ ｋｋｖｖ」と離鍵イベント「８０ ｋｋ ｖｖ」に基づいて軌道データが生成される。ここで、打弦イベントフレームのｖｖは打弦速度の上位７ビットを表しており、また、「ｗｒ」は下位３ビットを表している。したがって、打弦速度の下位３ビットは無視されることとなるが、従来の自動ピアノは元々７ビットに対応するようになっているので、下位３ビットを無視したとしても鍵速度の精度が劣化するわけではなく、予定されている最大限の精度で鍵の動作を再現することができる。すなわち、本実施形態の自動ピアノで記録された演奏情報を従来の自動ピアノで再生すると、従来の自動ピアノで予定されている性能を最大限発揮させることができる。この意味において、本実施形態の自動ピアノは、従来の自動ピアノと互換性を有する。
【００９７】
また、本実施形態に係わる自動ピアノで記録された演奏情報を従来の自動ピアノで再生する場合には、前述したように、押鍵イベントが無視されるが、その前後のインターバルデータは無視されない。
【００９８】
例えば、演奏データが、「打弦イベントフレーム」、「インターバルデータ１」、「押鍵イベントフレーム」、「インターバルデータ２」、「離鍵イベントフレーム」、「インターバルデータ３」…の順で記憶されているとする。この演奏データを再生する場合、「打弦イベントフレーム」，「インターバルデータ１」がセットで読み出された後に、インターバルデータ１で指示される時間が経過すると、「押鍵イベントフレーム」，「インターバルデータ２」がセットで読み出される。このとき、押鍵イベントは無視されるが、「インターバルデータ２」は無視されない。したがって、「押鍵イベントフレーム」，「インターバルデータ２」が読み出された後にインターバルデータ２で指示される時間が経過すると、「離鍵イベントフレーム」，「インターバルデータ３」がセットで読み出されることになる。
【００９９】
これにより、本実施形態に係わる自動ピアノで記録された演奏情報を従来の自動ピアノで再生する場合には、押鍵イベントが無視されるが、打弦イベントと離鍵イベントとの時間間隔は変化しない。
【０１００】
＜２−２−４．本実施形態に係わる自動ピアノで記録された演奏情報をＭＩＤＩ規格に準拠した電子楽器で再生した場合＞
本実施形態の自動ピアノにおいては、打弦イベントのステータスとして「９０」を用いるが、これはＭＩＤＩ規格におけるノートオンのステータスに対応する。また、離鍵イベントのステータス「８０」はＭＩＤＩ規格におけるノートオフのステータスに対応する。一方、押鍵イベントのステータス「Ｂ０ ５０」や拡張バイトのステータス「Ｂ０ ５１」はＭＩＤＩ規格において汎用操作子として定義されているものが選択されている。このため、当該演奏情報が入力される他の電子楽器が、汎用操作子を用いて特殊な動作を行わないものであれば、押鍵イベントや拡張バイトが無視され、当該演奏情報を再生することができる。
【０１０１】
ところで、ＭＩＤＩ規格に準拠した電子楽器では、汎用操作子としてのステータスを用いないのが一般である。また、本実施形態の自動ピアノで使用する汎用操作子は、ＭＩＤＩ規格で定義されている汎用操作子の一部に過ぎない。したがって、本実施形態で記録された演奏情報をＭＩＤＩ規格に準拠した殆どの電子楽器で再生することができる。この意味において、本実施形態の自動ピアノは、ＭＩＤＩ規格に準拠した電子楽器と互換性を有する。
【０１０２】
また、本実施形態に係わる自動ピアノで記録された演奏情報を従来の自動ピアノで再生する場合と同様に、押鍵イベントが無視されるが、インターバルデータは無視されない。したがって、本実施形態に係わる自動ピアノで記録された演奏情報をＭＩＤＩ規格に準拠した電子楽器で演奏しても打弦イベントと離鍵イベントとの時間間隔は変化しない。この意味において、本実施形態の自動ピアノは、ＭＩＤＩ規格に準拠した電子楽器と互換性を有する。
【０１０３】
＜３．変形例＞
本発明は上述した実施形態に限定されるものでなく、例えば以下のように種々の変形が可能である。
【０１０４】
（１）上記実施形態において、打弦イベントは、ハンマが弦を打弦したことを示すイベントであるから、発音がなされたことを示す情報でもある。したがって、発音がなされたことを示す発音情報は、ハンマが弦を打弦したことによっても検出される。また、離鍵イベントは、鍵がエンド側からレスト側に戻る際に生成されるイベントであるから、ダンパーが弦に接触することによって止音がなされたことを示す情報でもある。したがって、止音がなされたことを示す止音情報は、鍵がエンド側からレスト側に戻ることによっても検出される。なお、止音がなされたか否かは、鍵の動作を検出する他、ダンパーの位置を検出することによって判定しても良い。
【０１０５】
（２）上記実施形態において、鍵の動作に係わるイベントとして、打弦イベント、押鍵イベント、離鍵イベントを一例として説明したが、本発明はこれに限定されるものではなく、各種の変化系奏法を再現するための変則イベントを付加してもよい。例えば、押鍵がなされ、上方のフォトセンサＳＦ２が遮光状態となったことが検出された後、下方のフォトセンサＳＦ３が受光状態のまま離鍵が開始され、上方のフォトセンサＳＦ２が受光状態となる場合がある。この場合には、鍵が２つのフォトセンサを通過しないので押鍵イベントが生成されない。そこで、押鍵イベントが欠落したことを明確するため、押鍵欠落イベントを生成してもよい。この場合には、鍵が下方のフォトセンサＳＦ３を通過しなかったことが分かるので、レスト位置付近で連打を行う上連打奏法を再現することができる。
【０１０６】
このような、変化系奏法に対応するために新たなイベントを付加する場合には、上述した押鍵イベントの場合と同様に、新たにイベントを示すステータスをＭＩＤＩ規格において汎用操作子として定義されているものを用いればよい。これにより、従来の自動ピアノやＭＩＤＩ規格に準拠した電子楽器と互換性を保つことができ、しかも高度な演奏を再現することができる。
【０１０７】
（３）上記実施形態においては、説明の簡略化のため詳述されていないが、インターバルを除くイベントの演奏データには、当該イベントが発生した鍵を示すキーコードＫＣが付加されるものである。したがって、記録動作においては、キーコードＫＣが付加された各イベントがインターバルとともに記録される。また、再生動作においては、このキーコードＫＣが示す鍵が推定された軌道で駆動されることになる。
【図面の簡単な説明】
【０１０８】
【図１】この発明の実施形態の構成を示すブロック図である。
【図２】同実施形態に係わる打弦イベントフレームのデータ列を示す図である。
【図３】同実施形態に係わる押鍵イベントフレームのデータ列を示す図である。
【図４】同実施形態に係わる離鍵イベントフレームのデータ列を示す図である。
【図５】同実施形態に係わるリファレンスポイントを９．５ｍｍに設定したときの鍵速度と打弦速度の関係を示す図である。
【図６】同実施形態に係わるリファレンス時間差Ｔｒと打弦速度との関係を示す図である。
【図７】図６を縮尺２倍にした図である。
【図８】図６を縮尺４倍にした図である。
【図９】同実施形態に係わる鍵の押鍵軌道を示す図である。
【図１０】同実施形態に係わる数６で示される軌道を示す図である。
【図１１】（Ａ）は押鍵の後に発生した離鍵の軌道が交差する場合を示す図であり、（Ｂ）は鍵の速度の変化を示す図である。
【図１２】本実施形態に係わる自動ピアノの再生動作を示すフローチャートである。
【図１３】ＭＩＤＩメッセージを示す図である。
【図１４】同実施形態に係わる打弦，離鍵イベントフレームの読み出し時点と打弦，離鍵タイミングとの関係を示すタイミングチャートである。
【符号の説明】
【０１０９】
１…鍵、２…ハンマ、３…アクション機構（ハンマアクション）、４…弦、６…ダンパー（止音機構）、１０…再生前処理部、１１…モーションコントローラ、２５…キーセンサ、３０…演奏記録部（発音情報生成手段、打弦情報生成手段、押鍵情報生成手段、止音情報生成手段、離鍵情報生成手段、演奏情報生成手段、データ分割手段）。
【図１】
2006053580.tif 000024
【図２】
2006053580.tif 000025
【図３】
2006053580.tif 000026
【図４】
2006053580.tif 000027
【図５】
2006053580.tif 000028
【図６】
2006053580.tif 000029
【図７】
2006053580.tif 000030
【図８】
2006053580.tif 000031
【図９】
2006053580.tif 000032
【図１０】
2006053580.tif 000033
【図１１】
2006053580.tif 000034
【図１２】
2006053580.tif 000035
【図１３】
2006053580.tif 000036
【図１４】
2006053580.tif 000037