(57)【要約】【課題】動作ルールに基づいて鍵を動作させて演奏をするときに、利用者の演奏操作などにより実際に動作した鍵の動作内容を反映して、続いて動作させる鍵の動作内容を決定すること。【解決手段】本発明の一実施形態に係る自動演奏ピアノは、過去の鍵の動作内容に対して次に動作すべき鍵の動作内容を規定した動作ルールにしたがって自動演奏を行うパッセージ演奏モードにおいて、動作ルールにしたがって動作すべき鍵の動作内容と、実際に動作した鍵の動作内容とを比較して、動作ルールを変更することができる。これにより、利用者の鍵の演奏操作により、自動演奏の内容をリアルタイムに変更していくことができる。また、動作ルールにしたがった自動演奏による実際に動作した鍵の動作内容が、目標とする動作内容とずれる場合においても動作ルールの変更を行って、このようなずれを少なくするように補正することもできる。【選択図】図５
2011180582.tif 000002
【特許請求の範囲】
【請求項１】
鍵を複数有する鍵盤と、
前記鍵の動作内容を検出する検出手段と、
指示に応じて前記鍵を駆動して動作させる駆動手段と、
過去の前記鍵の動作内容または過去に決定した前記鍵の動作内容に応じて次に動作させる鍵の動作内容を定めた動作ルールに基づいて、次に動作させる鍵の動作内容を決定する決定手段と、
前記決定された動作内容で前記鍵が動作するように、前記駆動手段に指示を行う指示手段と、
前記検出された動作内容と前記決定された動作内容とを比較し、比較結果に応じて前記動作ルールを変更する変更手段と
を具備することを特徴とする鍵盤楽器。
【請求項２】
前記指示手段は、前記変更手段による比較対象となった前記決定された動作内容に係る指示をしていない場合には、当該内容に係る指示を中止する
ことを特徴とする請求項１に記載の鍵盤楽器。
【請求項３】
前記変更手段は、前記検出された動作内容が前記駆動手段による鍵の駆動に対して検出された動作内容である場合には、前記動作ルールを変更しない
ことを特徴とする請求項１または請求項２に記載の鍵盤楽器。
【請求項４】
前記変更手段は、前記検出された動作内容が前記駆動手段による鍵の駆動に対して検出された動作内容である場合には、当該検出された動作内容と当該駆動を行うために前記決定手段により決定された動作内容とを比較する
ことを特徴とする請求項１または請求項２に記載の鍵盤楽器。
【請求項５】
鍵を複数有する鍵盤と、
前記鍵の動作内容を検出する検出手段と、
指示に応じて前記鍵を駆動して動作させる駆動手段と、
予め決められたルールに基づいて、次に動作させる鍵の動作内容を決定する決定手段と、
前記決定された動作内容で前記鍵が動作するように、前記駆動手段に指示を行う指示手段と、
前記検出された動作内容と前記決定された動作内容とを比較し、比較結果に応じて、追加して動作させる鍵の動作内容を決定する追加決定手段と
を具備し、
前記指示手段は、前記追加決定手段による決定があった場合には、当該決定された動作内容を前記決定手段によって決定された動作内容に追加した動作内容で前記鍵が動作するように、前記駆動手段に指示を行う
ことを特徴とする鍵盤楽器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵盤楽器における自動演奏を制御する技術に関する。
【背景技術】
【０００２】
ピアノなどの鍵盤楽器においては、演奏者が演奏する場合に限らず、楽曲データなどに基づいて自動演奏を行うものも存在する。このような自動演奏を行う場合には、電子的に音を発音させるために、楽曲データに基づいてオーディオデータを生成するものや、楽曲データに基づいてピアノの各鍵をソレノイドなどにより電気的に駆動し、発音機構を動作させて打弦することで発音させるものがある。このように、鍵を駆動することができるピアノは、様々な鍵の動きを再現することにより、本格的な自動演奏を楽しむこともできる。
このような鍵を駆動することができるピアノにおいては、演奏者の演奏と複合して用いられることにより、演奏者の演奏を支援するものとしても用いられる。例えば、特許文献１には、演奏者が簡単な演奏操作を行うだけで、高度な演奏技術を用いた演奏をしているかのように、鍵を駆動することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２０４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ピアノに自動演奏をさせている場合に、その聴取者は、自らもそのピアノを用いて演奏をしてアンサンブルを楽しむことができる。一方、このような自動演奏は予め決められた楽曲データにしたがって行われるため、自らの演奏をどのように行っても自動演奏に反映されることはない。すなわち、自らが演奏をしている途中、また演奏後においても、楽曲データにしたがって自動演奏が続くことになっていた。
本発明は、上述の事情に鑑みてなされたものであり、動作ルールに基づいて鍵を動作させて演奏をするときに、利用者の演奏操作などにより実際に動作した鍵の動作内容を反映して、続いて動作させる鍵の動作内容を決定することを目的とする。
【課題を解決するための手段】
【０００５】
上述の課題を解決するため、本発明は、鍵を複数有する鍵盤と、前記鍵の動作内容を検出する検出手段と、指示に応じて前記鍵を駆動して動作させる駆動手段と、過去の前記鍵の動作内容または過去に決定した前記鍵の動作内容に応じて次に動作させる鍵の動作内容を定めた動作ルールに基づいて、次に動作させる鍵の動作内容を決定する決定手段と、前記決定された動作内容で前記鍵が動作するように、前記駆動手段に指示を行う指示手段と、前記検出された動作内容と前記決定された動作内容とを比較し、比較結果に応じて前記動作ルールを変更する変更手段とを具備することを特徴とする鍵盤楽器を提供する。
【０００６】
また、別の好ましい態様において、前記指示手段は、前記変更手段による比較対象となった前記決定された動作内容に係る指示をしていない場合には、当該内容に係る指示を中止することを特徴とする。
【０００７】
また、別の好ましい態様において、前記変更手段は、前記検出された動作内容が前記駆動手段による鍵の駆動に対して検出された動作内容である場合には、前記動作ルールを変更しないことを特徴とする。
【０００８】
また、別の好ましい態様において、前記変更手段は、前記検出された動作内容が前記駆動手段による鍵の駆動に対して検出された動作内容である場合には、当該検出された動作内容と当該駆動を行うために前記決定手段により決定された動作内容とを比較することを特徴とする。
【０００９】
また、本発明は、鍵を複数有する鍵盤と、前記鍵の動作内容を検出する検出手段と、指示に応じて前記鍵を駆動して動作させる駆動手段と、予め決められたルールに基づいて、次に動作させる鍵の動作内容を決定する決定手段と、前記決定された動作内容で前記鍵が動作するように、前記駆動手段に指示を行う指示手段と、前記検出された動作内容と前記決定された動作内容とを比較し、比較結果に応じて、追加して動作させる鍵の動作内容を決定する追加決定手段とを具備し、前記指示手段は、前記追加決定手段による決定があった場合には、当該決定された動作内容を前記決定手段によって決定された動作内容に追加した動作内容で前記鍵が動作するように、前記駆動手段に指示を行うことを特徴とする鍵盤楽器を提供する。
【発明の効果】
【００１０】
本発明によれば、動作ルールに基づいて鍵を動作させて演奏をするときに、利用者の演奏操作などにより実際に動作した鍵の動作内容を反映して、続いて動作させる鍵の動作内容を決定することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る自動演奏ピアノの外観を示す斜視図である。
【図２】本発明の一実施形態に係る自動演奏ピアノの主要部の電気的構成を示すブロック図である。
【図３】本発明の一実施形態に係る自動演奏ピアノの機械的構成および電気的構成との関係を説明する図である。
【図４】本発明の一実施形態に係るサーボコントローラの構成を示すブロック図である。
【図５】本発明の一実施形態に係るモーションコントローラの構成を示すブロック図である。
【図６】本発明の一実施形態に係るカウント部におけるカウント処理を説明するフローチャートである。
【図７】本発明の一実施形態に係る差分算出部における差分算出処理を説明するフローチャートである。
【図８】本発明の一実施形態に係る自動演奏ピアノにおける鍵１０の動作例を説明する図である。
【図９】変形例１に係る鍵の動作例を説明する図である。
【図１０】変形例２に係る鍵の動作例を説明する図である。
【図１１】本発明の変形例３に係る自動演奏ピアノの機械的構成および電気的構成との関係を説明する図である。
【図１２】本発明の変形例３に係るモーションコントローラの構成を示すブロック図である。
【図１３】変形例３に係る鍵の動作例を説明する図である。
【図１４】変形例４に係るモーションコントローラの構成を示すブロック図である。
【図１５】鍵の離鍵動作が終了する前に、演奏者が同じ鍵を押鍵した場合の演奏検出処理を説明するフローチャートである。
【図１６】図１５に示すフローチャートに続く部分のフローチャートである。
【図１７】鍵の離鍵動作が終了する前に、演奏者が異なる鍵を押鍵した場合に用いられる別モジュール起動処理を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
＜実施形態＞
[全体構成]
図１は、本発明の一実施形態に係る自動演奏ピアノ１の外観を示す斜視図である。自動演奏ピアノ１は、その前面に演奏者によって演奏操作がなされる鍵１０が複数配列された鍵盤を有する。演奏者から見て鍵１０の手前側の前端が押し下げられる動作を「押鍵動作」といい、その状態から元に戻る、すなわち押し上げられる動作を「離鍵動作」という。また、自動演奏ピアノ１は、ディスクドライブ１２０および操作パネル１３０を有する。
【００１３】
図２は、自動演奏ピアノ１の主要部の電気的構成を示すブロック図である。また、図３は、自動演奏ピアノ１の機械的構成および電気的構成との関係を説明する図である。自動演奏ピアノ１は、バスにより互いに接続されたコントローラ１１０、ディスクドライブ１２０、操作パネル１３０、電子音発生部１４０、ＰＷＭ（Pulse Width Modulation）信号発生部１５０、Ａ／Ｄ変換部１６１、１６２、および通信Ｉ／Ｆ１７０を有するとともに、ＰＷＭ信号発生部１５０に接続されたソレノイド５０、Ａ／Ｄ変換部１６１に接続された鍵センサ６１、およびＡ／Ｄ変換部１６２に接続されたハンマセンサ６２を有する。ＰＷＭ信号発生部１５０、Ａ／Ｄ変換部１６１、１６２、ソレノイド５０、鍵センサ６１、ハンマセンサ６２は、それぞれ、各鍵１０に対応して設けられる。すなわち、鍵盤が有する鍵１０の数が８８鍵であれば、８８組存在する。
【００１４】
コントローラ１１０は、ＣＰＵ（Central Processing Unit）１１１などの演算装置、ＲＯＭ（Read Only Memory）１１２、およびＲＡＭ（Random Access Memory）１１３などの記憶装置を有する。コントローラ１１０は、記録装置に記憶されている制御プログラムや制御データに基づいて、自動演奏ピアノ１の各部を制御する。この例においては、コントローラ１１０は、制御プログラムの実行により、図３に示すように演奏検出部２００、モーションコントローラ３００およびサーボコントローラ４００の各機能を実現する。なお、これらの各機能の一部または全部をソフトウエアではなくハードウエアにより実現してもよい。
【００１５】
ディスクドライブ１２０は、ＤＶＤ（Digital Versatile Disk）やＣＤ（Compact Disk）などの記録媒体に記録された各種データを読み出し、読み出したデータをコントローラ１１０に出力する。このデータとしては、楽曲データ、制御プログラムなどがある。この例においては、制御プログラムの実行において用いられる動作ルール情報、初期設定情報を含むものとする。動作ルール情報は、後述するように、特定の演奏モード（この例においては、パッセージ演奏モードという）において、鍵１０の動作内容を決定するための動作ルールが規定されている情報である。
【００１６】
この動作ルールは、過去の鍵１０の動作に応じて次に動作させる鍵１０（鍵番号）およびその鍵１０の軌道（押鍵から離鍵までの鍵１０の動き）を定めたものである。詳細については後述する。動作内容とは、動作させる鍵１０とその鍵１０の軌道を特定するための内容である。また、初期設定情報とは、パッセージ演奏モードにおいて最初に動作させる鍵１０の動作内容を定めた情報である。
【００１７】
ここで、パッセージ演奏モードとは、以下のような処理を行う自動演奏のモードである。まず、動作ルールにしたがって鍵１０が動作するように自動演奏を行う。また、その自動演奏中に、動作ルールにしたがって決められた鍵１０の動作内容と、実際に動作した鍵１０の動作内容（利用者の演奏操作による鍵１０の動作内容および動作ルールにしたがった自動演奏による鍵１０の動作内容）との関係から動作ルールが変更される。以降の自動演奏は、変更された動作ルールにしたがって自動演奏が行われ、この処理が繰り返される。
【００１８】
操作パネル１３０は、液晶ディスプレイなどの表示画面、および表示画面の表面部分にはタッチセンサなどの操作部を有するタッチパネルである。この表示画面には、コントローラ１１０の制御により、各種動作モードの設定などを行う設定画面、楽譜などの各種情報が表示される。また、タッチセンサにより利用者の操作が受け付けられると、操作に応じた操作信号がコントローラ１１０に出力される。これらの操作には、動作モードをパッセージ演奏モードに設定し、パッセージ演奏モードによる演奏開始タイミングを指定する操作が含まれる。
【００１９】
電子音発生部１４０は、コントローラ１１０の制御により電子的な楽音を発生させる装置である。電子楽音発生部１４０は、例えば、コントローラ１１０の制御により電子的な楽音を示すオーディオ信号を生成する音源、およびそのオーディオ信号を放音するスピーカなどを有する。この電子音発生部１４０は、後述するハンマ２５が弦４０を打撃することによる発音以外に音を発生させたい場合、例えば、自動演奏におけるピアノ音以外での伴奏の発音、消音モード（ハンマ２５の打弦を阻止するモード）などにおけるピアノ音の発音などに用いられる。
【００２０】
ＰＷＭ信号発生部１５０は、コントローラ１１０の制御により、ＰＷＭ形式の駆動電流をソレノイド５０に供給する。ソレノイド５０は、ＰＷＭ信号発生部１５０から供給される駆動電流によりプランジャが動作し、鍵１０を駆動する。ソレノイド５０は、プランジャが上昇することで鍵１０が押鍵動作をするように駆動し、プランジャが下降することで離鍵動作をするように駆動する。具体的には、ソレノイド５０は、演奏者から見て各鍵１０の奥側の後端側下方に配置されている。このソレノイド５０は、プランジャを上昇させて鍵１０の後端を突き上げると、鍵１０がバランスピンＰを中心に回動して鍵１０の前端側が押し下げられ、鍵１０が押鍵動作をする。この押鍵動作に連動してアクションメカニズム２０が作動し、ダンパ３０が弦４０から離れるとともに、ハンマ２５が回動して弦４０を打撃して発音する。その後プランジャが下降すると鍵１０の前端側が押し上げられ、鍵１０が離鍵動作をする。
【００２１】
ここでは、ソレノイド５０により鍵１０が駆動された場合を説明したが、演奏者が鍵１０を演奏操作して駆動することにより、鍵１０が押鍵動作、離鍵動作を行った場合においても同様である。すなわち、押鍵動作、離鍵動作のための鍵１０の駆動を行うのが、ソレノイド５０であるか演奏者であるかの違いだけである。
【００２２】
鍵センサ６１は、鍵１０が駆動することにより移動した量（以下、押鍵量（この例においては、０から１０ｍｍ）という）を検出し、検出結果に応じた検出信号を出力する。鍵センサ６１は、例えば、発光ダイオード、発光ダイオードの光を受光し受光量に応じた検出信号を出力する光センサ、および鍵１０の押鍵量に応じて受光センサへの受光量を変化させる遮光板を有する。Ａ／Ｄ変換部１６１は、鍵センサ６１から出力されるアナログ信号である検出信号をデジタル信号に変換した鍵位置検出データをコントローラ１１０に出力し、コントローラ１１０に鍵１０の押鍵量を認識させる。
【００２３】
ハンマセンサ６２は、ハンマ２５による弦４０の打撃を検出するセンサであり、検出結果に応じた検出信号を出力する。なお、鍵センサ６１と同様に、ハンマ２５の位置を検出し、その検出結果に応じた検出信号を出力するようにしてもよい。Ａ／Ｄ変換部１６２は、ハンマセンサ６２から出力されるアナログ信号である検出信号をデジタル信号に変換したハンマ検出データをコントローラ１１０に出力し、コントローラ１１０にハンマ２５による弦４０の打撃を認識させる。
【００２４】
通信Ｉ／Ｆ（インターフェイス）１７０は、無線、有線などにより他の装置と通信を行うインターフェイスである。各種データ、制御プログラムについては、ディスクドライブ１２０を用いて取得するだけでなく通信Ｉ／Ｆ１７０を用いて、他の装置から受信することにより、コントローラ１１０に取得させてもよい。
【００２５】
[演奏検出部２００の構成]
演奏検出部２００は、Ａ／Ｄ変換部１６１、１６２から鍵検出データ、ハンマ検出データを取得して、各鍵１０の動作内容を検出し、鍵１０の動作内容を示すパラメータとして位置（鍵番号ｋ）および鍵１０の軌道を示す演奏パラメータを生成してモーションコントローラ３００に出力する。鍵番号ｋは、鍵盤の各鍵１０ごとに割り当てられ、この例においては、最低音に対応する鍵１０を「ｋ＝１」とし、半音高くなるごとに鍵番号が１ずつ増加し、最高音に対応する鍵１０を「ｋ＝８８」とする。
【００２６】
また、鍵１０の軌道を示す演奏パラメータとしては、この例においては、押鍵時刻ｔｐ、押鍵速度ｖｐ、離鍵時刻ｔｎ、離鍵速度ｖｎである。ここで、押鍵時刻ｔｐおよび離鍵時刻ｔｎとは、それぞれ、予め決められたタイミング（この例においては、パッセージ演奏モードを開始したタイミング）を基準とした時刻（単位はｍｓｅｃ．とする）で表されるパラメータである。そして、押鍵時刻ｔｐは押鍵動作を開始したタイミングを示し、離鍵時刻ｔｎは離鍵動作を開始したタイミングである。例えば、ｔｐ＝１０００であれば、パッセージ演奏モードを開始してから１０００ｍｓｅｃ．経過後のタイミングに押鍵動作を開始したことを示す。この経過した時間の測定は図示しないタイマなどにより行う。
【００２７】
押鍵速度ｖｐ、離鍵速度ｖｎは、それぞれ押鍵動作、離鍵動作における鍵１０の速度を示す演奏パラメータであり、「１」から「１２７」の範囲を取り、数値が大きいほど速い動作であることを示す。押鍵速度ｖｐは、押鍵動作において例えば鍵１０の押鍵量が、１ｍｍから９ｍｍまでに変化するまでに要した時間に応じて決められ、ＭＩＤＩ（Musical Instrument Digital Interface）データにおけるベロシティに対応する演奏パラメータである。離鍵速度ｖｎについては、離鍵動作において例えば鍵１０の押鍵量が、９ｍｍから１ｍｍまでに変化するまでに要した時間に応じて決められる。
【００２８】
演奏検出部２００は、これらの演奏パラメータをＡ／Ｄ変換部１６１、１６２から取得した各データから決定して出力するが、Ａ／Ｄ変換部１６２から取得したハンマ検出データを用いなくてもよい。すなわち、鍵１０の押鍵量（鍵検出データ）のみから演奏パラメータを生成してもよい。
【００２９】
演奏検出部２００は、鍵１０の押鍵動作、離鍵動作が行われると、演奏パラメータとしてまず、鍵番号ｋおよび押鍵時刻ｔｐを生成し、その後、押鍵量が増加することで押鍵速度ｖｐを生成する。そして、離鍵動作が開始されると離鍵時刻ｔｎを生成し、押鍵量が減少することで離鍵速度ｖｎが生成される。このように、一度の押鍵動作、離鍵動作によって、各演奏パラメータが生成されるタイミングが異なるが、演奏検出部２００は、演奏パラメータを生成するたびに順次出力していく。ただし、演奏検出部２００は、１つの鍵１０における一連の押鍵動作、離鍵動作に対して生成した演奏パラメータについては、それぞれ異なるタイミングに出力されても互いの対応関係が認識できるようにして出力する。
次に、サーボコントローラ４００の構成について、図４を用いて説明する。
【００３０】
[サーボコントローラ４００の構成]
図４は、サーボコントローラ４００の構成を示すブロック図である。サーボコントローラ４００は、正規化部４１０、位置生成部４２０、速度生成部４３０、減算部４４０、増幅部４５０および加算部４６０を有する。これらの各構成は、各鍵１０に対応して設けられている。
正規化部４１０は、Ａ／Ｄ変換部１６１から出力された鍵検出データを取得して、予め決められた正規化処理を行い出力する。位置生成部４２０は、正規化部４１０から出力されたデータから、鍵１０の位置に対応した鍵位置値ｙｘを生成して、モーションコントローラ３００に出力する。速度生成部４３０は、正規化部４１０から出力されたデータの時間変化から、鍵１０の速度に対応した鍵速度値ｙｖを生成して、モーションコントローラ３００に出力する。
【００３１】
減算部４４０は、後述するようにモーションコントローラ３００から出力される鍵位置指示値ｒｘと、位置生成部４２０から出力される鍵位置値ｙｘとを取得し、鍵位置指示値ｒｘから鍵位置値ｙｘを減算して位置差分値を出力する。増幅部４５０は、減算部４４０から出力された位置差分値を予め決められた増幅率で増幅して、位置制御信号ｕｘとして出力する。加算部４６０は、増幅部４５０から出力された位置制御信号ｕｘと、モーションコントローラ３００から出力される電流オフセットｕｆとを取得し、それぞれ加算してソレノイド制御信号ｕとして出力する。
このソレノイド制御信号ｕがＰＷＭ信号発生部１５０に入力されると、ＰＷＭ形式の駆動電流に変換してソレノイド５０に供給する。これによりソレノイド５０は、順次出力される鍵指示値ｒｘに応じて鍵１０が動作するように、鍵１０を駆動する。
次に、モーションコントローラ３００の構成について、図５を用いて説明する。
【００３２】
[モーションコントローラ３００の構成]
図５は、モーションコントローラ３００の構成を示すブロック図である。ここで説明するモーションコントローラ３００の構成については、自動演奏ピアノ１がパッセージ演奏モードで動作する場合を示す。モーションコントローラ３００は、動作ルール情報３１０、初期設定情報３２０、鍵動作決定部３３０、鍵動作指示部３４０、カウント部３５０、差分算出部３６０および動作ルール変更部３７０を有する。
【００３３】
動作ルール情報３１０は、上述したように、パッセージ演奏モードにおいて、鍵１０の動作内容を決定するための動作ルールが規定されている情報であり、この動作ルールは、過去の鍵１０の動作内容に応じて次に動作させる鍵１０の動作内容を定めたものである。この例においては、次に動作させるべき鍵１０の動作内容のパラメータについて、最後に動作させた鍵１０に対する変位量として規定した予定変位量ベクトルｇ［ｉ］が動作ルールとして規定されている。この例においては、予定変位量ベクトルｇ［ｉ］のパラメータは、鍵番号の予定変位量ｇｋ［ｉ］（−８７〜＋８７）、押鍵時刻の予定変位量ｇｔｐ［ｉ］（単位ｍｓｅｃ．）、押鍵速度の予定変位量ｇｖｐ［ｉ］（−１２６〜＋１２６）、離鍵時刻の予定変位量ｇｔｎ［ｉ］（単位ｍｓｅｃ．）、離鍵速度の予定変位量ｇｖｎ［ｉ］（−１２６〜＋１２６）である。
【００３４】
「ｉ」は、パッセージ演奏モードが開始されてから鍵１０の動作回数を示すものであり、「ｉ＝０」は初期値、「ｉ＝１」からはパッセージ演奏モードによる鍵１０の動作に応じて増加するカウント数を示す。後述するように、動作ルール情報３１０におけるｇ［ｉ］は、「ｉ」のカウントにしたがって動作ルール変更部３７０によって変更処理がなされ、最新のｇ［ｉ］が鍵動作決定部３３０に読み出される。すなわち、動作ルール情報３１０は、まず、ｇ［０］が規定され、続いてｇ［１］、ｇ［２］、・・・といったように変更処理がなされて、ｇ「１］から順次鍵動作決定部３３０に読み出されていく。
【００３５】
初期設定情報３２０は、鍵１０の駆動目標量ベクトルｒ［ｉ］の初期値ｒ［０］が規定された情報である。ここで、駆動目標量ベクトルｒ［ｉ］とは、ソレノイド５０により鍵１０を駆動するときの動作内容を定めたものである。この例においては、駆動目標量ベクトルｒ［ｉ］のパラメータは、目標鍵番号ｒｋ［ｉ］（１〜８８）、目標押鍵時刻ｒｔｐ［ｉ］（単位ｍｓｅｃ．）、目標押鍵速度ｒｖｐ［ｉ］（１〜１２７）、目標離鍵時刻ｒｔｎ［ｉ］（単位ｍｓｅｃ．）、目標離鍵速度ｒｖｎ［ｉ］（１〜１２７）である。すなわち、初期設定情報３２０には、ｒｋ［０］、ｒｔｐ［０］、ｒｖｐ［０］、ｒｔｎ［０］、ｒｖｎ［０］が規定されている。
【００３６】
鍵動作決定部３３０は、パッセージ演奏モードが指定されると初期設定情報３２０からｒ［０］を読み出し、差分算出部３６０に出力する。また、鍵動作決定部３３０は、パッセージ演奏モードの演奏開始タイミングを基準として、ｒｔｐ［０］に規定された時刻に応じてｒ［０］を鍵動作指示部３４０に出力する。例えば、ｒｔｐ［０］に規定された時刻に鍵１０の押鍵動作が開始されるように、ｒｔｐ［０］が規定する時刻に応じて出力する。
【００３７】
さらに、鍵動作決定部３３０は、後述するようにして差分算出部３６０から出力されるｙ［０］を取得する。ここで、駆動結果検出量ベクトルｙ［ｉ］とは、鍵１０が動作した結果、鍵センサ６１によって検出された結果、すなわち演奏検出部２００から出力される演奏パラメータにより得られる鍵１０の動作内容を定めたものである。この例においては、駆動結果検出量ベクトルｙ［ｉ］のパラメータは、検出鍵番号ｙｋ［ｉ］（１〜８８）、検出押鍵時刻ｙｔｐ［ｉ］（単位ｍｓｅｃ．）、検出押鍵速度ｙｖｐ［ｉ］（１〜１２７）、検出離鍵時刻ｙｔｎ［ｉ］（単位ｍｓｅｃ．）、検出離鍵速度ｙｖｎ［ｉ］（１〜１２７）である。
【００３８】
ｙ［０］を取得すると、鍵動作決定部３３０は、動作ルール情報３１０からｇ［１］を読み出す。鍵動作決定部３３０は、取得したｇ［１］、ｙ［０］に応じて、次に動作させる鍵１０についてのｒ［１］を決定する。そして、鍵動作決定部３３０は、ｒ［１］を差分算出部３６０に出力し、ｒｔｐ［１］に規定された時刻に応じてｒ［１］を鍵動作指示部３４０に出力する。このｒ［１］は、以下の式（１）で算出される。
ｒ［１］＝ｙ［０］＋ｇ［１］  ・・・（１）
ここではｉ＝０、１の場合について説明したが、一般化したｉ＝ｍである場合においては、以下のような処理となる。
【００３９】
鍵動作決定部３３０は、差分算出部３６０からｙ［ｍ］を取得すると、動作ルール情報３１０からｇ［ｍ＋１］を読み出し、以下の式（２）によりｒ［ｍ＋１］を決定する。そして、鍵動作決定部３３０は、ｒ［ｍ＋１］を差分算出部３６０に出力し、ｒｔｐ［ｍ＋１］に規定された時刻に応じてｒ［ｍ＋１］を鍵動作指示部３４０に出力する。
ｒ［ｍ＋１］＝ｙ［ｍ］＋ｇ［ｍ＋１］  ・・・（２）
各パラメータとしては、
ｒｋ［ｍ＋１］＝ｙｋ［ｍ］＋ｇｋ［ｍ＋１］
ｒｔｐ［ｍ＋１］＝ｙｔｐ［ｍ］＋ｇｔｐ［ｍ＋１］
ｒｖｐ［ｍ＋１］＝ｙｖｐ［ｍ］＋ｇｖｐ［ｍ＋１］
ｒｔｎ［ｍ＋１］＝ｙｔｎ［ｍ］＋ｇｔｎ［ｍ＋１］
ｒｖｎ［ｍ＋１］＝ｙｖｎ［ｍ］＋ｇｖｎ［ｍ＋１］
である。
【００４０】
ここで、鍵動作決定部３３０は、後述するように差分算出部３６０から中止情報Ｃｓ［ｍ＋１］が入力されたときに、鍵動作決定部３３０が鍵動作指示部３４０にｒ［ｍ＋１］を出力する前である場合には、そのｒ［ｍ＋１］の出力を中止する。この場合、ｉ＝ｍ＋１に係る鍵１０の動作は行われない。このように、中止情報Ｃｓ［ｍ］は、鍵動作決定部３３０から鍵動作指示部３４０に対してｒ［ｍ］の出力がされていない場合に、その出力の中止してｉ＝ｍに係る鍵１０の動作の中止を指示するものである。一方、ｒ［ｍ］の出力がされた後である場合には、出力の中止は不可能であるため、その指示は無視される。
【００４１】
鍵動作指示部３４０は、鍵動作決定部３３０からｒ［ｉ］を取得して、ｒ［ｉ］に示すパラメータで鍵１０が動作するように、動作させる鍵１０に対応したサーボコントローラ４００に対して予め決められたサーボ制御周期で鍵位置指示値ｒｘおよび電流オフセットｕｆを出力する。このとき、鍵動作指示部３４０は、対応するサーボコントローラ４００から鍵位置値ｙｘおよび鍵速度値ｙｖを取得し、現在の鍵位置、鍵速度を認識することにより電流オフセット出力値に反映させる。
なお、自動演奏ピアノ１がパッセージ演奏モードではなく、ＭＩＤＩデータなどの楽音データにしたがって自動演奏させる通常自動演奏モードである場合には、鍵動作指示部３４０における鍵位置指示値ｒｘ、電流オフセットｕｆについては、自動演奏に用いられる楽音データにしたがって出力される。
【００４２】
カウント部３５０は、演奏検出部２００から出力される演奏パラメータを取得し、「ｉ」のカウントを行うとともにｙ［ｉ］の出力を行う。この処理をカウント処理という。カウント処理の開始は、パッセージ演奏モードの開始に伴って行われる。カウント部３５０の具体的なカウント処理について、図６を用いて説明する。
【００４３】
図６は、カウント部３５０におけるカウント処理を説明するフローチャートである。まず、カウント部３５０は、「ｉ」のカウント数「ｍ＝０」として初期化を行う（ステップＳ１１０）。続いて、カウント部３５０は、演奏検出部２００から出力される演奏パラメータの取得を待つ（ステップＳ１２０；Ｎｏ）。演奏パラメータを取得すると（ステップＳ１２０；Ｙｅｓ）、カウント部３５０は、ｙ［ｍ］の各パラメータのうち、取得した演奏パラメータを、対応したパラメータに設定し（ステップＳ１３０）、ｙ［ｍ］のうち設定したパラメータを差分算出部３６０に出力する（ステップＳ１４０）。例えば、取得した演奏パラメータが鍵番号ｋであれば、その値をｙｋ［ｍ］に設定して、差分算出部３６０に出力する。
【００４４】
続いて、カウント部３５０は、ｙ［ｍ］について全てのパラメータを出力したかを判定する（ステップＳ１５０）。全てのパラメータを出力していないと判定した場合（ステップＳ１５０；Ｎｏ）には、ステップＳ１２０に戻る。
ここで、上述したように、一度の押鍵、離鍵操作により、カウント部３５０は、演奏パラメータとして、まず、鍵番号ｋおよび押鍵時刻ｔｐを取得する。そして、押鍵速度ｖｐ、離鍵時刻ｔｎ、離鍵速度ｖｎの順に取得する。このように、カウント部３５０は、各演奏パラメータの取得について時間差を持って行うことになり、ｙ［ｍ］の各パラメータの出力も時間差を持って行われることになる。例えば、カウント部３５０は、ｙｋ［ｍ］、ｙｔｐ［ｍ］は、ｙｖｐ［ｍ］、ｙｔｎ［ｍ］、ｙｖｎ［ｍ］に先立って出力する。
【００４５】
そして、カウント部３５０は、ｙ［ｍ］について全パラメータの出力が終了したと判定する（ステップＳ１５０；Ｙｅｓ）と、後述するように差分算出部３６０から出力される指示情報Ｐｓ［ｍ］の取得を待つ（ステップＳ１６０；Ｎｏ）。
カウント部３５０は、指示情報Ｐｓ［ｍ］を取得する（ステップＳ１６０；Ｙｅｓ）と、その値が「Ｐｓ［ｍ］＝１」であるか否（「Ｐｓ［ｍ］＝０」）かを判定する（ステップＳ１７０）。カウント部３５０は、「Ｐｓ［ｍ］＝１」であると判定した場合（ステップＳ１７０；Ｙｅｓ）は、「ｍ＝ｍ＋１」と「ｉ」のカウント数「ｍ」を増加させる（ステップＳ１８１）一方、「Ｐｓ［ｍ］＝０」であると判定した場合（ステップＳ１７０；Ｎｏ）は、「ｍ＝ｍ＋０」と「ｉ」のカウント数「ｍ」を増加させない（ステップＳ１８２）。このように、指示情報Ｐｓ［ｍ］は、「ｉ」のカウント数「ｍ」を「１」増加させるか否かを指示するものである。
そして、カウント部３５０は、このように決定した「ｉ」のカウント数「ｍ」により、再びステップＳ１２０からの処理を続ける。以上が、カウント部３５０におけるカウント処理の説明である。
【００４６】
図５に戻って説明を続ける。差分算出部３６０は、カウント部３５０からｙ［ｉ］、鍵動作決定部３３０からｒ［ｉ］を取得し、取得に伴って開始される差分算出処理を行って、カウント部３５０へ指示情報Ｐｓ［ｉ］、鍵動作決定部３３０へｙ［ｉ］および中止情報Ｃｓ［ｉ］、動作ルール変更部３７０に差分量ベクトルｅ［ｉ］を出力する。
ここで、差分量ベクトルｅ［ｉ］とは、以下の式（３）により表される。
ｅ［ｍ］＝ｙ［ｍ］−ｒ［ｍ］  ・・・（３）
この例においては、差分量ベクトルｅ［ｉ］のパラメータは、差分鍵番号ｅｋ［ｉ］、差分押鍵時刻ｅｔｐ［ｉ］、差分押鍵速度ｅｖｐ［ｉ］、差分離鍵時刻ｅｔｎ［ｉ］、差分離鍵速度ｅｖｎ［ｉ］である。したがって、各パラメータとしては、
ｅｋ［ｍ］＝ｙｋ［ｍ］−ｒｋ［ｍ］
ｅｔｐ［ｍ］＝ｙｔｐ［ｍ］−ｒｔｐ［ｍ］
ｅｖｐ［ｍ］＝ｙｖｐ［ｍ］−ｒｖｐ［ｍ］
ｅｔｎ［ｍ］＝ｙｔｎ［ｍ］−ｒｔｎ［ｍ］
ｅｖｎ［ｍ］＝ｙｖｎ［ｍ］−ｒｖｎ［ｍ］
である。
差分算出部３６０における差分算出処理について図７を用いて説明する。
【００４７】
図７は、差分算出部３６０における差分算出処理を説明するフローチャートである。まず、差分算出部３６０は、取得したｙ［ｍ］のうちｙｔｐ［ｍ］と、取得したｒ［ｍ−１］のうちｒｔｐ［ｍ−１］とを比較して、ｙ［ｍ］に係る実際に動作した鍵１０の動作内容が、ｒ［ｍ−１］に係る目標として動作させた鍵１０の動作内容を比較対象とするものかｒ［ｍ］に係る目標として動作させる鍵１０の動作内容を比較対象とするものかについて判定する。この例においては、どちらの押鍵時刻に近いかを判定するものとし、具体的には、差分算出部３６０は、ｙｔｐ［ｍ］＞ｒｔｐ［ｍ−１］＋αを満たすか否かの判定を行う（ステップＳ２１０）。この例においては、α＝（ｒｔｐ［ｍ］−ｒｔｐ［ｍ−１］）／２とするが、α＝２００（ｍｓｅｃ．）など固定値としてもよい。
【００４８】
差分算出部３６０は、この条件を満たす場合、すなわち、ｙｔｐ［ｍ］がｒｔｐ［ｍ−１］よりｒｔｐ［ｍ］に近い場合（ステップＳ２１０；Ｙｅｓ）には、指示情報Ｐｓ［ｍ］＝１としてカウント部３５０へ出力する（ステップＳ２２０）。一方、差分算出部３６０は、この条件を満たさない場合、すなわち、ｙｔｐ［ｍ］がｒｔｐ［ｍ］よりｒｔｐ［ｍ−１］に近い場合（ステップＳ２１０；Ｎｏ）には、指示情報Ｐｓ［ｍ］＝０としてカウント部３５０へ出力する（ステップＳ３１０）。このように出力される指示情報Ｐｓ［ｍ］は、上述したようにカウント部３５０において「ｉ」のカウント数「ｍ」を増加させるか否かの指示となる。
【００４９】
次に、ステップＳ２２０における処理が行われた場合に、続いて行われる処理を説明する。差分算出部３６０は、中止情報Ｃｓ［ｍ］を鍵動作決定部３３０に出力する（ステップＳ２３０）。このように出力される中止情報Ｃｓ［ｍ］は、上述したように鍵動作決定部３３０において、鍵動作指示部３４０へのｒ［ｍ］の出力を中止する指示となる。
例えば、ｒ［ｍ］に基づいて次に動作させる鍵１０の押鍵動作が開始する直前に利用者が鍵１０の押鍵動作を行うと、その結果として差分算出部３６０がｙ［ｍ］を取得してＣｓ［ｍ］が出力され、鍵動作決定部３３０によるｒ［ｍ］の鍵動作指示部３４０への出力が中止されるから、次に動作させる鍵１０の押鍵動作が中止されることになる。一方、ｒ［ｍ］に基づいて次に動作させる鍵１０の押鍵動作が開始され、その結果として差分算出部３６０がｙ［ｍ］を取得した場合においても中止情報Ｃｓ［ｍ］を出力するが、鍵動作決定部３３０は、ｒ［ｍ］を既に出力した後であるため、上述したように、この中止情報Ｃｓ［ｍ］は無視される。
【００５０】
続いて、差分算出部３６０は、カウント部３５０からｙ［ｍ］の全てのパラメータが取得されるのを待つ（ステップＳ２４０；Ｎｏ）。差分算出部３６０は、ｙ［ｍ］の全てのパラメータを取得する（ステップＳ２４０；Ｙｅｓ）と、上述したように、比較対象であるｙ［ｍ］およびｒ［ｍ］の差分を示すｅ［ｍ］（＝ｙ［ｍ］−ｒ［ｍ］）を算出する（ステップＳ２５０）。そして、差分算出部３６０は、算出したｅ［ｍ］を動作ルール変更部３７０に出力し（ステップＳ２６０）、取得したｙ［ｍ］を鍵動作決定部３３０に出力し（ステップＳ２７０）、差分算出処理を終了する。
【００５１】
次に、ステップＳ３１０における処理が行われた場合に、続いて行われる処理を説明する。差分算出部３６０は、カウント部３５０からｙ［ｍ］の全てのパラメータが取得されるのを待つ（ステップＳ３２０；Ｎｏ）。差分算出部３６０は、ｙ［ｍ］の全てのパラメータを取得する（ステップＳ３２０；Ｙｅｓ）と、ｙ［ｍ］をｙ［ｍ−１］に代入（ｙ［ｍ−１］＝ｙ［ｍ］）する（ステップＳ３３０）。これは、ステップＳ２１０で判定されたように、取得したｙ［ｍ］に係る実際に動作した鍵１０の動作内容が、ｒ［ｍ−１］に係る目標として動作させた鍵１０の動作内容を比較対象とするものであるから、ｙ［ｍ］の「ｍ」を「ｍ−１」に置き換えるものである。
【００５２】
続いて、差分算出部３６０は、ｙ［ｍ−１］およびｒ［ｍ−１］とを比較して、これらの差分を示すｅ［ｍ−１］（＝ｙ［ｍ−１］−ｒ［ｍ−１］）を算出する（ステップＳ３４０）。そして、差分算出部３６０は、算出したｅ［ｍ−１］を動作ルール変更部３７０に出力し（ステップＳ３５０）、取得したｙ［ｍ−１］を鍵動作決定部３３０に出力し（ステップＳ３６０）、差分算出処理を終了する。以上が差分算出部３６０における差分算出処理の説明である。
【００５３】
図５に戻って説明を続ける。動作ルール変更部３７０は、差分算出部３６０から出力されるｅ［ｉ］を取得し、動作ルール情報３１０におけるｇ［ｉ］を変更する。
ここで、ｇ［ｍ＋１］＝ｇ［ｍ］＋ｅ［ｍ］であり、各パラメータとしては、
ｇｋ［ｍ＋１］＝ｇｋ［ｍ］＋ｅｋ［ｍ］
ｇｔｐ［ｍ＋１］＝ｇｔｐ［ｍ］＋ｅｔｐ［ｍ］
ｇｖｐ［ｍ＋１］＝ｇｖｐ［ｍ］＋ｅｖｐ［ｍ］
ｇｔｎ［ｍ＋１］＝ｇｔｎ［ｍ］＋ｅｔｎ［ｍ］
ｇｖｎ［ｍ＋１］＝ｇｖｎ［ｍ］＋ｅｖｎ［ｍ］
である。
ここで、動作ルール変更部３７０は、差分算出部３６０から出力されたｅ［ｍ−１］を取得した場合には、ｇ［ｍ＋１］に変更するのではなく、すでに存在するｇ［ｍ］の内容を変更することになる。そして、鍵動作決定部３３０は、再びｇ「ｍ」を読み出して、ｒ［ｍ］の内容を変更することになる。以上がモーションコントローラ３００の構成の説明である。
【００５４】
［動作例］
次に、パッセージ演奏モードにおける自動演奏ピアノ１の具体的な動作例を説明する。利用者は、操作パネル１３０を操作して動作モードをパッセージ演奏モードとし、演奏開始タイミングを指定する。これにより、鍵動作決定部３３０は、初期設定情報３２０からｒ［０］を読み出して、演奏開始タイミングになったら上述した処理を開始する。ここで、ｒ［０］の各パラメータは、ｒｋ［０］＝４０、ｒｔｐ［０］＝１０００、ｒｖｐ［０］＝６４、ｒｔｎ［０］＝１５００、ｒｖｎ［０］＝６４であるものとする。また、動作ルール情報３１０におけるｇ［０］の各パラメータは、ｇｋ［０］＝０、ｇｔｐ［０］＝１０００、ｇｖｐ［０］＝０、ｇｔｎ［０］＝１０００、ｇｖｎ［０］＝０であるものとする。この場合、ｇ［ｉ］の各パラメータの値が変更されない場合には、鍵番号４０（鍵盤中央のＣ）の鍵１０の押鍵動作を１０００（ｍｓｅｃ．）間隔で行い、押鍵動作開始から離鍵動作開始まで５００（ｍｓｅｃ．）となる。また、押鍵動作、離鍵動作ともに鍵速度は６４となる。そのため、Ｃの発音が１秒ごとに行われることになる。
【００５５】
図８は、自動演奏ピアノ１における鍵１０の動作例を説明する図である。図８に示す表は、「ｉ」のカウント数の増加にしたがって、変化する各パラメータの値を示している。この例においては、演奏開始タイミングから１０００（ｍｓｅｃ．）後、２０００（ｍｓｅｃ．）後とＣの発音が行われ、ｒ［２］に係る３０００（ｍｓｅｃ．）後に鍵番号４０の鍵１０が押鍵動作を開始する直前に、利用者が鍵番号４２の鍵１０の押鍵動作を開始したものとする。ここで、説明を簡易にするために、利用者による押鍵動作は、ｒ［２］に係る押鍵動作直前ではあるものの、ｙｔｐ［２］＝３０００として検出されたものとし、他の動作内容は、図８に示すようにｙｋ［２］＝４２、ｙｔｐ［２］＝６４、ｙｔｎ［２］＝３５００、ｙｖｎ［２］＝６４である。
【００５６】
このように利用者が鍵番号４２の鍵１０の押鍵動作を開始したことにより、ｒ［２］に係る鍵番号４０の鍵１０の動作は中止される。なお、既にｒ［２］に係る動作が行われ、その直後に利用者が鍵番号４２の鍵１０の押鍵動作を開始した場合には、利用者の鍵１０の演奏操作によっては、カウント部３５０からｙ「３」の各パラメータとして出力されるが、差分算出部３６０においてｙ［２］の各パラメータであるものとして修正される（図７ステップＳ３３０）。また、カウント部３５０から次に出力されるパラメータについては、「ｉ」のカウント数が増加せず、再びｙ［３］となる。
【００５７】
利用者の鍵１０の演奏操作により、ｅｋ［２］＝２となり、動作ルール変更部３７０によりｇｋ［２］＝０であったものがｇｋ［３］＝２に変更される。そのため、演奏開始タイミングから４０００（ｍｓｅｃ．）後、５０００（ｍｓｅｃ．）後においては、Ｅ（鍵番号４４）の発音、Ｆ＃（鍵番号４６）の発音と続くことになる。
同様に、演奏開始タイミングから７０００（ｍｓｅｃ．）後において、利用者が鍵番号４７の鍵１０の押鍵動作を開始したものとすると、ｅｋ［６］＝−３となり、動作ルール変更部３７０によりｇｋ［６］＝２であったものがｇｋ［７］＝−１に変更される。そのため、演奏開始タイミングから８０００（ｍｓｅｃ．）後、９０００（ｍｓｅｃ．）後においては、Ｆ＃（鍵番号４６）の発音、Ｆ（鍵番号４５）の発音と続くことになる。なお、図８における太枠で囲った部分は、利用者の演奏操作によりｙ［ｉ］がｒ［ｉ］と異なるものとなった部分を示している。
以上が、自動演奏ピアノ１における動作例の説明である。
【００５８】
以上、本発明の一実施形態に係る自動演奏ピアノ１は、過去の鍵１０の動作内容に対して次に動作すべき鍵１０の動作内容を規定した動作ルールにしたがって自動演奏を行うパッセージ演奏モードにおいて、動作ルールにしたがって動作すべき鍵１０の動作内容と、実際に動作した鍵１０の動作内容とを比較して、動作ルールを変更することができる。これにより、利用者の鍵１０の演奏操作により、自動演奏の内容をリアルタイムに変更していくことができる。また、鍵１０の駆動機構の影響により、動作ルールにしたがった自動演奏による実際に動作した鍵１０の動作内容（ｙ［ｉ］）が、目標とする動作内容（ｒ［ｉ］）と異なる場合もあるが、その場合にも動作ルールの変更を行うことができるから、動作ルールの変更条件によっては、このようなずれを少なくするように補正することもできる。
【００５９】
＜変形例＞
以上、本発明の実施形態について説明したが、本発明は以下のように、さまざまな態様で実施可能である。
[変形例１]
上述した実施形態において、ｒ［ｉ］の各パラメータがｇ［ｉ］の各パラメータにしたがって決定される場合に、計算式上、ｒ［ｉ］の各パラメータの上限、下限を超えるような場合には、上限値、下限値を維持するようにしてもよい。このような処理を行った場合の自動演奏ピアノ１における鍵１０の動作例について、図９を用いて説明する。
【００６０】
図９は、変形例１に係る鍵１０の動作例を説明する図である。図８における場合と同様に、太枠で囲った部分は、利用者の演奏操作によりｙ［ｉ］がｒ［ｉ］と異なるものとなった部分を示している。この例においては、実施形態における場合のｒ［０］が異なり、また、利用者の演奏操作により、鍵番号だけでなく、鍵１０の軌道の一部（押鍵速度、離鍵速度）にも変更が加えられたものとする。
ここで、図９に示すように、ｒｖｐ［８］＝１２７に続くｒｖｐ［９］は計算上「１４４」となるが上限値が「１２７」であるため、ｒｖｐ［９］＝１２７として決定される。ｒｋ［１０］についても、ｒｖｎ［１０］についても同様である。なおｒｖｎ［９］については、計算上「−１２」となるが下限値が「１」であるため、ｒｖｎ［９］＝１として決定される。
【００６１】
[変形例２]
上述した実施形態においては、鍵動作決定部３３０は、ｒ［ｍ＋１］＝ｙ［ｍ］＋ｇ［ｍ＋１］として、次に動作させる鍵１０の動作内容を決定していたが、ｒ［ｍ＋１］＝ｒ［ｍ］＋ｇ［ｍ＋１］としてもよい。すなわち、実施形態の場合においては、実際に動作した鍵１０の動作内容に動作ルールを適用して次に動作させる鍵１０の動作内容を決定していたが、本変形例の場合においては、動作させようとしていた鍵１０が実際には動作しなくても、その動作をさせようとしていた鍵１０の動作内容に動作ルールを適用して次に動作させる鍵１０の動作内容を決定するものである。このような処理を行った場合の自動演奏ピアノ１における鍵１０の動作例について、図１０を用いて説明する。
【００６２】
図１０は、変形例２に係る鍵１０の動作例を説明する図である。図８における場合と同様に、太枠で囲った部分は、利用者の演奏操作によりｙ［ｉ］がｒ［ｉ］と異なるものとなった部分を示している。図１０におけるｒ［ｉ］の変化は、ｒ［ｍ＋１］＝ｒ［ｍ］＋ｇ［ｍ＋１］により決められていること以外は実施形態における場合と同様であるため、詳細の説明を省略する。
このように、動作ルールを適用する基準となる鍵１０は、様々な場合に適用可能である。変形例２における場合に限らず、例えば、過去に動作した鍵１０のいずれかの動作内容を基準として動作ルールを適用してもよいし、過去に動作した複数の鍵１０の動作内容に予め決められた演算処理を施して、その演算結果を基準として動作ルールを適用してもよい。
【００６３】
[変形例３]
上述した実施形態においては、鍵１０の軌道は、押鍵時刻、押鍵速度、離鍵時刻、離鍵速度により決められていたため、例えば、押鍵動作においては、鍵１０のレスト位置（押鍵量が０）からエンド位置（押鍵量が最大）に至るまでは一定の押鍵速度で動作するものとしたが、押鍵速度が変化する場合、すなわち、押鍵量の連続値をパラメータにもつようにしてもよい。その場合には、実施形態におけるコントローラ１１０を、図１１に示すコントローラ１１０Ｂとし、コントローラ１１０Ｂにおけるモーションコントローラ３００Ｂを図１２に示す構成とすればよい。そして、コントローラ１００Ｂにおいて用いる各パラメータを以下のようにすればよい。なお、コントローラ１１０Ｂのうち、サーボコントローラ４００Ｂについては、実施形態におけるサーボコントローラ４００と同様な構成であるため、説明を省略する。また、モーションコントローラ３００Ｂにおける各構成についても、演奏検出部２００Ｂからカウント部３５０Ｂに入力されるパラメータが異なるだけであり、同様な構成であるため説明を省略する。
【００６４】
まず、演奏検出部２００Ｂから出力され、カウント部３５０Ｂに入力される鍵１０の動作内容を示す演奏パラメータとして、鍵番号ｋのほか、鍵１０の軌道を示す演奏パラメータとして、レスト位置から鍵１０が移動開始した時刻（レスト位置出発時刻）ｔｐｒ、エンド位置へ鍵１０が到達した時刻（エンド位置到着時刻）ｔｐｅ、レスト位置からエンド位置への移動（押鍵動作）における鍵１０の押鍵量の時間変化（押鍵時軌道）ｘｐ［ｔ］、エンド位置から鍵１０が移動開始した時刻（エンド位置出発時刻）ｔｎｅ、レスト位置へ鍵１０が到達した時刻（レスト位置到着時刻）ｔｎｒ、エンド位置からレスト位置への移動（離鍵動作）における鍵１０の押鍵量の時間変化（離鍵時軌道）ｘｎ［ｔ］とする。この例においては、押鍵時軌道ｘｐ［ｔ］、離鍵時軌道ｘｎ［ｔ］は、それぞれ１ｍｓｅｃ．単位で、０ｍｍ（レスト位置）から１０ｍｍ（エンド位置）の押鍵量が定められたものである。ここで、ｘｐ［ｔ］における「ｔ」はｔｐｒを基準とした時刻であり、ｘｎ［ｔ］における「ｔ」はｔｎｅを基準とした時刻である。
なお、レスト位置出発時刻ｔｐｒは押鍵時刻ｔｐに対応し、エンド位置出発時刻ｔｎｅは離鍵時刻ｔｎに対応し、定義は異なるものの意味は互いに相当している。
【００６５】
ｇ［ｉ］、ｒ［ｉ］、ｙ［ｉ］、ｅ［ｉ］などについても、演奏パラメータと同様に規定される。例えば、ｙ［ｉ］の各パラメータは、各演奏パラメータに対応して、ｙｋ［ｉ］、ｙｔｐｒ［ｉ］、ｙｔｐｅ［ｉ］、ｙｘｐ［ｔ］［ｉ］、ｙｔｎｅ［ｉ］、ｙｔｎｒ［ｉ］、ｙｘｎ［ｔ］［ｉ］として規定される。
このようにして規定した場合の具体例について、図１３を用いて説明する。
【００６６】
図１３は、変形例３における鍵１０の動作例を説明する図である。図１３は、押鍵動作時における鍵１０の軌道を示す図である。図１３（ａ）は、ｒｘｐ［ｔ］［ｍ］を示す図である。このときのｇｘｐ［ｔ］［ｍ］は全ての「ｔ」に対して「０」であるものとする。図１３（ｂ）は、鍵１０の動作内容としてｙｘｐ［ｔ］［ｍ］を示す。この図１３（ｂ）におけるｒｘｐ［ｔ］［ｍ］は、ｙｘｐ［ｔ］［ｍ］と差分を算出する対象となるものであり、鍵１０の押鍵動作の時間に合わせるように伸縮している。具体的には、以下の式（４）により時間軸が変換される。
ｒｘｐ［ｙｔｐｒ［ｍ］＋（ｙｔｐｅ［ｍ］−ｙｔｐｒ［ｍ］）／（ｒｔｐｅ［ｍ］−ｒｔｐｒ［ｍ］）×ｔ］［ｉ］  ・・・（４）
差分の算出を行うときのｒｘｐ［ｔ］［ｉ］については、このように時間軸方向に伸縮して鍵１０の押鍵動作の時間および基準とした時刻を対応させてから、実施形態における差分算出処理を行う。
【００６７】
図１３（ｃ）は、図１３（ｂ）に示す関係において差分算出処理を行って動作ルールを変更した結果、次に動作すべき鍵１０の動作内容としてｒｘｐ［ｔ］［ｍ＋１］を示す。実施形態における各処理に対応して決定されるｒｘｐ［ｔ］［ｍ＋１］は、ｙｔｐｒ［ｍ］からｙｔｐｅ［ｍ］までの時間長となるため、図１３（ｃ）に示すｒｘｐ［ｔ］［ｍ＋１］は、ｒｔｐｒ［ｍ＋１］からｒｔｐｅ［ｍ＋１］までの時間長になるように伸縮するとともに、基準となる時刻をｒｔｐｒ［ｍ＋１］としている。具体的には、以下の式（５）により時間軸を変換している。
ｒｘｐ［ｒｔｐｒ［ｍ＋１］＋（ｒｔｐｅ［ｍ＋１］−ｒｔｐｒ［ｍ＋１］）／（ｙｔｐｅ［ｍ］−ｙｔｐｒ［ｍ］）×ｔ］［ｍ＋１］  ・・・（５）
【００６８】
このように、本変形例において押鍵時軌道については、差分算出などの各計算処理においては、双方の時間軸を一致させる伸縮を適宜行ってから処理するものとする。以上、押鍵時について動作例を示したが、離鍵時についても同様である。
なお、ｒｔｐｅ［ｉ］−ｒｔｐｒ［ｉ］については、時間が長くなりすぎると発音がされない状態となるため、上限（例えば５００ｍｓｅｃ．）を設けてもよい。また、軌道を表すためのパラメータはこれらに限らず、別のパラメータにより特定されるようにしてもよい。
【００６９】
[変形例４]
上述した実施形態においては、差分算出処理における結果に応じて、動作ルールの変更が行われるようにしていたが、動作ルールの変更ではなく、動作ルールにしたがった鍵１０の駆動による発音とは別に、差分算出処理の結果に応じた発音がなされるようにしてもよい。
【００７０】
この場合には、実施形態における場合のように、過去の鍵１０の動作内容に応じて次に動作させる鍵１０の動作内容を定めた動作ルールにしたがった鍵１０の動作でなくてもよい。すなわち、過去の鍵１０の動作にかかわらず、予め決められた動作ルールにしたがった鍵１０の動作内容が決定されるものであってもよく、例えば、ＭＩＤＩデータのように演奏パターンが決められているものとすればよい。そして、利用者の演奏操作による鍵１０の動作内容と、動作ルールにしたがった鍵１０の動作内容との比較結果に応じて鍵１０の動作内容を決定し、動作ルールにしたがった鍵１０の動作内容に加えて、発音されるようにすればよい。
このような場合におけるモーションコントローラ３００Ａの構成について、図１４を用いて説明する。
【００７１】
図１４は、変形例４に係るモーションコントローラ３００Ａの構成を示すブロック図である。モーションコントローラ３００Ａは、動作ルール情報３１０Ａ、鍵動作決定部３３０Ａ、鍵動作指示部３４０Ａ、カウント部３５０、差分算出部３６０Ａおよび追加決定部３８０を有する。カウント部３５０については、実施形態と同様な構成であるため説明を省略する。
【００７２】
動作ルール情報３１０Ａは、上述したＭＩＤＩデータなどの演奏パターンが決められた動作ルールを示している。鍵動作決定部３３０Ａは、動作ルール情報３１０Ａにおける動作ルールにしたがって次に動作させる鍵１０の動作内容（ｒ［ｉ］）を決定して、鍵動作指示部３４０Ａに出力する。
差分算出部３６０Ａは、ｒ［ｉ］およびｙ［ｉ］に基づいてｅ［ｉ］を算出し、追加決定部３８０に出力する。具体的な差分算出処理の方法は実施形態の方法に準じたものである。追加決定部３８０は、ｅ［ｉ］に基づいて追加して動作させる鍵１０の動作内容を規定するアルゴリズムを記憶している。追加決定部３８０は、ｅ［ｉ］を取得すると、ｅ［ｉ］に基づいて追加して動作させる鍵１０の動作内容を決定し、決定した内容を示す情報を鍵動作指示部３４０Ａに出力する。鍵動作指示部３４０Ａは、実施形態における処理に加えて、追加決定部３８０から出力された情報にしたがって鍵１０が動作するように、動作させる鍵１０に対応したサーボコントローラ４００に対して予め決められたサーボ制御周期で鍵位置指示値ｒｘおよび電流オフセットｕｆを出力する。以上がモーションコントローラ３００Ａの構成についての説明である。
なお、追加決定部３８０から出力される情報に基づいて、鍵１０を駆動して発音するのではなく、電子音発生部１４０から発音させるようにしてもよい。
【００７３】
[変形例５]
上述した実施形態において、鍵動作決定部３３０において決定された鍵１０の動作内容に応じて鍵１０が実際に動作した結果得られるｙ［ｉ］については、差分算出部３６０における差分算出処理において、ｅ［ｉ］の全てのパラメータを「０」としてもよい。すなわち、鍵動作決定部３３０において決定された鍵１０の動作内容により駆動した鍵１０の動作内容については、動作ルールを変更する対象として扱わないようにしてもよい。
【００７４】
この処理は、例えば、差分算出処理により得られるｅ［ｉ］について、ｅｋ［ｉ］＝０であり、かつ他のパラメータ（ｅｔｐ［ｉ］、ｅｖｐ［ｉ］、ｅｔｎ［ｉ］、ｅｖｎ［ｉ］）の値が予め決められた値より小さい場合には、ｅ［ｉ］の各パラメータが全て「０」であるものとすればよい。
このようにすれば、利用者による演奏操作に対してのみ動作ルールが変更されるようにすることができる。
【００７５】
[変形例６]
上述した実施形態においては、ｒ［ｉ］とｙ［ｉ］との比較は差分算出処理によって行っていたが、差分に限らず予め決められた演算処理にしたがって比較するものであれば、どのような処理により比較してもよい。
【００７６】
[変形例７]
上述した実施形態においては、動作ルールの内容を変更する処理について、ｇ［ｍ＋１］＝ｇ［ｍ］＋ｅ［ｍ］として行っていたが、このような計算式による処理に限られず、予め決められた演算処理にしたがったものであればよい。例えば、ｇ［ｍ＋１］＝ｇ［０］＋ｅ［ｍ］、ｇ［ｍ＋１］＝ｇ［ｍ］−ｅ［ｍ］としてもよいし、軌道に関するパラメ
ータについては変更を行わないようにしてもよい。
このようにすれば、様々な態様での自動演奏を楽しむことができる。
【００７７】
[変形例８]
上述した実施形態において、ｒ［ｉ］に基づいて動作した鍵１０と同一の鍵１０を、その動作中に利用者が演奏操作した場合、ｒ［ｉ］に基づいて決まる鍵１０の軌道と、実際の動作における軌道とが、予め決められた時間（例えば１０ｍｓｅｃ．）にわたって異なる場合には、ｒ［ｉ］に基づく鍵１０の駆動を停止して、利用者の演奏操作で鍵１０が動作するようにしてもよい。
【００７８】
[変形例９]
上述した実施形態において、鍵１０の動作内容をＲＡＭ１１３、ディスクドライブ１２０の記録媒体などに記録するようにしてもよい。
【００７９】
[変形例１０]
上述した実施形態においては、動作ルールはｒ［ｍ＋１］＝ｙ［ｍ］＋ｇ［ｍ＋１］として決められていたが、他の態様で動作ルールを定めてもよい。例えば、白鍵のみ、黒鍵のみを動作させるルール、長調、短調など調性にしたがって動作させるルール、５度圏サイクルで動作させるルール、民族音階（都節音階、律音階、琉球音階、民謡音階など）で動作させるルールなどである。
【００８０】
[変形例１１]
上述した実施形態において、パッセージ演奏モードを終了させる条件を定めてもよい。これは、操作パネル１３０で終了操作をした場合、ｒ［ｉ］のパラメータが上限下限のいずれかに達した場合、利用者による演奏操作が予め決められた態様で行われた場合などにおいて終了するようにすればよい。
利用者の演奏操作により終了させる場合としては、例えば、ｒ［ｍ］に係る押鍵動作が開始する前に、その鍵１０を演奏操作してｒ［ｍ］に係る離鍵動作が終了するまで利用者が押鍵を続けた場合、また、ｒ［ｍ］における押鍵動作が開始された後、離鍵動作が開始される前に、利用者がその鍵１０を演奏操作して押鍵して、ｒ［ｍ＋１］の押鍵動作か開始される時刻まで押鍵を続けた場合などである。
【００８１】
[変形例１２]
上述した実施形態においては、説明の簡略化のためパッセージ演奏モードにおける自動演奏は単音で行われるものとしたが、複数の音が同時に発音されるように構成されていてもよい。その場合であっても、利用者の演奏操作による鍵１０の動作内容と、自動演奏による鍵１０の動作内容とを比較して、予め決められた演算処理により得られた結果に基づいて、動作ルールを変更するようにすればよい。
【００８２】
[変形例１３]
上述した実施形態において、演奏検出部２００は、鍵１０の押鍵動作、離鍵動作が行われると、演奏パラメータを生成して出力する演奏検出処理をしていた。このとき、鍵１０の離鍵動作が終了する前に、演奏者によって鍵１０の押鍵動作が開始された場合については、以下に説明するようにして、演奏パラメータを生成して出力するようにしてもよい。離鍵動作が終了する前の鍵１０と、離鍵動作が終了する前に演奏者に押鍵される鍵１０とが、同一の鍵である場合（ハーフストローク打鍵）と異なる鍵である場合とに分けて、演奏検出処理を説明する。まず、同一の鍵である場合についての演奏検出処理について、図１５、図１６を用いて説明する。
【００８３】
図１５、図１６は、鍵１０の離鍵動作が終了する前に、演奏者が同じ鍵１０を押鍵した場合の演奏検出処理を説明するフローチャートである。まず、演奏検出部２００は、鍵１０の押鍵動作が開始されるのを待つ（ステップＳ４１０；Ｎｏ）。演奏検出部２００は、押鍵動作が開始されたことを検出する（ステップＳ４１０；Ｙｅｓ）と、押鍵された鍵１０に対応する鍵番号ｋ、および押鍵時刻ｔｐを出力する（ステップＳ４１１）。
演奏検出部２００は、鍵１０が押鍵速度検出開始位置（押鍵量１ｍｍ）まで押下されるのを待つ（ステップＳ４１２；Ｎｏ）。演奏検出部２００は、鍵１０が押鍵速度検出開始位置まで押下されたことを検出した場合、すなわち、押鍵量が１ｍｍを上回った場合（ステップＳ４１２；Ｙｅｓ）、その時点の押鍵量ｘｐ０および時刻ｔｐ０を記憶する（ステップＳ４１３）。
【００８４】
演奏検出部２００は、鍵１０が離鍵速度検出確定位置（押鍵量１ｍｍ）に戻されるか、押鍵速度検出確定位置（押鍵量９ｍｍ）まで押下されるのを待つ（ステップＳ４２０；Ｎｏ、ステップＳ４３０；Ｎｏ）。演奏検出部２００は、鍵１０が離鍵速度検出確定位置に戻されたことを検出した場合、すなわち、押鍵量が１ｍｍを下回った場合（ステップＳ４２０；Ｙｅｓ）、押鍵速度ｖｐを出力する（ステップＳ４２１）。押鍵速度ｖｐは、検出時点における押鍵量をｘｐ１、時刻ｔｐ１とした場合、（ｘｐ１−ｘｐ０）／（ｔｐ１−ｔｐ０）として算出される。演奏検出部２００は、時刻ｔｐ１を離鍵時刻ｔｎとして出力し（ステップＳ４２２）、その時点での押鍵量ｘｎ０および時刻ｔｎ０を記憶し（ステップＳ４２３）、後述するステップＳ４４０（図１６）へ進む。
【００８５】
演奏検出部２００は、ステップＳ４３０において、鍵１０が押鍵速度検出確定位置まで押下されたことを検出した場合、すなわち、押鍵量が９ｍｍを上回った場合（ステップＳ４３０；Ｙｅｓ）、押鍵速度ｖｐを出力する（ステップＳ４３１）。この押鍵速度ｖｐは、検出時点における押鍵量をｘｐ２、時刻ｔｐ２とした場合、（ｘｐ２−ｘｐ０）／（ｔｐ２−ｔｐ０）として算出される。続いて、演奏検出部２００は、押鍵動作が終了するのを待ち（ステップＳ４３２；Ｎｏ）、押鍵量が１０ｍｍに至って押鍵動作が終了すると（ステップＳ４３２；Ｙｅｓ）、続いて、離鍵動作が開始されるのを待つ（ステップＳ４３３；Ｎｏ）。
【００８６】
演奏検出部２００は、押鍵量が１０ｍｍを下回って離鍵動作が開始されると（ステップＳ４３３；Ｙｅｓ）、その時刻を離鍵時刻ｔｎとして出力し（ステップＳ４３４（図１６））、鍵１０が離鍵速度検出開始位置（押鍵量９ｍｍ）に戻されるのを待つ（ステップＳ４３５；Ｎｏ）。演奏検出部２００は、鍵１０が離鍵速度検出開始位置に戻されたことを検出した場合、すなわち、押鍵量が９ｍｍを下回った場合（ステップＳ４３５；Ｙｅｓ）、その時点での押鍵量ｘｎ０および時刻ｔｎ０を記憶する（ステップＳ４３６）。
【００８７】
演奏検出部２００は、ステップＳ４２３またはステップＳ４３６における処理が終了すると、鍵１０が押鍵速度検出確定位置（押鍵量９ｍｍ）に押下されるか、離鍵速度検出確定位置（押鍵量１ｍｍ）まで戻されるのを待つ（ステップＳ４４０；Ｎｏ、ステップＳ４５０；Ｎｏ）。演奏検出部２００は、鍵１０が押鍵速度検出確定位置に押下されたことを検出した場合、すなわち、押鍵量が９ｍｍを上回った場合（ステップＳ４４０；Ｙｅｓ）、離鍵速度ｖｎを出力する（ステップＳ４４１）。離鍵速度ｖｎは、検出時点における押鍵量をｘｎ１、時刻ｔｎ１とした場合、（ｘｎ１−ｘｎ０）／（ｔｎ１−ｔｎ０）として算出される。演奏検出部２００は、時刻ｔｎ１を押鍵時刻ｔｐとして出力し（ステップＳ４４２）、その時点での押鍵量ｘｐ０および時刻ｔｐ０を記憶し（ステップＳ４４３）、ステップＳ４２０に戻って処理を続ける。なお、演奏検出部２００は、ステップＳ４４２において押鍵時刻ｔｐを出力するときに、鍵番号ｋをあわせて出力してもよい。
【００８８】
演奏検出部２００は、ステップＳ４５０において、鍵１０が離鍵速度検出確定位置まで戻されたことを検出した場合、すなわち、押鍵量が１ｍｍを下回った場合（ステップＳ４５０；Ｙｅｓ）、離鍵速度ｖｎを出力する（ステップＳ４５１）。この離鍵速度ｖｎは、検出時点における押鍵量をｘｎ２、時刻ｔｎ２とした場合、（ｘｎ２−ｘｎ０）／（ｔｎ２−ｔｎ０）として算出される。続いて、演奏検出部２００は、離鍵動作が終了するのを待ち（ステップＳ４５２；Ｎｏ）、押鍵量が０ｍｍに至って離鍵動作が終了する（ステップＳ４５２；Ｙｅｓ）と、ステップＳ４１０に戻って処理を続ける。
以上が、鍵１０の離鍵動作が終了する前に、演奏者が同じ鍵１０を押鍵した場合の演奏検出処理についての説明である。
【００８９】
続いて、鍵１０の離鍵動作が終了する前に、演奏者が異なる鍵１０を押鍵した場合について説明する。この場合には、演奏検出部２００は、演奏検出処理を実行する処理モジュールを複数（この例においては２つ）有する。複数の処理モジュールは並列して演奏検出処理を実行可能である。そのため、カウント部３５０は、図６に示すステップＳ１２０において、双方の処理モジュールから同種の演奏パラメータが取得することになるが、同種の演奏パラメータについては、後着を優先させて処理する。
鍵１０の離鍵動作が終了する前に、演奏者が異なる鍵１０を押鍵した場合においても、一つの処理モジュールが行う演奏検出処理は、同じ鍵１０を押鍵した場合と同様であるが、ステップＳ４１２、Ｓ４２０、Ｓ４３０、Ｓ４３２、Ｓ４３３、Ｓ４３５、Ｓ４４０、Ｓ４５０のように、押鍵量に基づく判定を行っている場合においては、図１７に示す別モジュール起動処理についても並行して処理が開始される。
【００９０】
図１７は、鍵１０の離鍵動作が終了する前に、演奏者が異なる鍵１０を押鍵した場合に用いられる別モジュール起動処理を説明するフローチャートである。別モジュール起動処理が開始されると、演奏検出部２００は、動作中の処理モジュールの他に別の処理モジュールが動作中であるかを判定し（ステップＳ５１０）、動作中（２つの処理モジュールが動作中）である場合（ステップＳ５１０；Ｙｅｓ）には、別モジュール起動処理を終了する。一方、別の処理モジュールが動作していない場合（ステップＳ５１０；Ｎｏ）には、他の鍵１０の押鍵動作が開始されるのを待つ（ステップＳ５２０；Ｎｏ）。演奏検出部２００は、他の鍵１０の押鍵動作が開始されたことを検出する（ステップＳ５２０；Ｙｅｓ）と、別の処理モジュールを起動し（ステップＳ５３０）、別モジュール起動処理を終了する。
【００９１】
このように別の処理モジュールが起動されると、その処理モジュールにおいては、起動する要因となった他の鍵１０の鍵番号ｋ’、および押鍵時刻ｔｐ’を、鍵番号ｋおよび押鍵時刻ｔｐとして設定して出力（ステップＳ４１１に相当）し、ステップＳ４１２の処理から開始する。これにより、複数の処理モジュールが並行して動作し、鍵１０ごとに演奏検出処理が実行されることになる。
そして、演奏検出部２００は、先に演奏検出処理を実行していた処理モジュールにおいてステップＳ４５１の処理が行われると、別の処理モジュールによって演奏検出処理が並行して実行されている場合には、並行して演奏検出処理を実行している別の処理モジュールの動作を継続したまま、先に演奏検出処理を実行していた処理モジュール（ステップＳ４５１の処理を行った処理モジュール）の動作を停止させる。
以上が、鍵１０の離鍵動作が終了する前に、演奏者が異なる鍵１０を押鍵した場合の演奏検出処理についての説明である。
【００９２】
[変形例１４]
上述した実施形態においては、自動演奏ピアノ１として説明したが、利用者の演奏操作によらずに駆動可能な鍵１０が複数設けられた鍵盤を有する鍵盤楽器であれば、電子ピアノ、キーボードであってもよい。キーボードなどにおいては、ＭＩＤＩコントローラなどの発音する音源を有さないものであってもよい。また、消音可能なアコースティックピアノなどであってもよい。
【符号の説明】
【００９３】
１…自動演奏ピアノ、１０…鍵、２０…アクションメカニズム、２５…ハンマ、３０…ダンパ、４０…弦、５０…ソレノイド、６１…鍵センサ、６２…ハンマセンサ、１１０，１１０Ｂ…コントローラ、１１１…ＣＰＵ、１１２…ＲＯＭ、１１３…ＲＡＭ、１４０…電子音発生部、１５０…ＰＷＭ信号発生部、１６１，１６２…Ａ／Ｄ変換部、１２０…ディスクドライブ、１３０…操作パネル、２００，２００Ｂ…演奏検出部、３００，３００Ａ，３００Ｂ…モーションコントローラ、３１０，３１０Ａ，３１０Ｂ…動作ルール情報、３２０，３２０Ｂ…初期設定情報、３３０，３３０Ａ，３３０Ｂ…鍵動作決定部、３４０，３４０Ａ，３４０Ｂ…鍵動作指示部、３５０，３５０Ｂ…カウント部、３６０，３６０Ａ，３６０Ｂ…差分算出部、３７０，３７０Ｂ…動作ルール変更部、３８０…追加決定部、４００，４００Ｂ…サーボコントローラ、４１０…正規化部、４２０…位置生成部、４３０…速度生成部、４４０…減算部、４５０…増幅部、４６０…加算部
【図１】
2011180582.tif 000003
【図２】
2011180582.tif 000004
【図３】
2011180582.tif 000005
【図４】
2011180582.tif 000006
【図５】
2011180582.tif 000007
【図６】
2011180582.tif 000008
【図７】
2011180582.tif 000009
【図８】
2011180582.tif 000010
【図９】
2011180582.tif 000011
【図１０】
2011180582.tif 000012
【図１１】
2011180582.tif 000013
【図１２】
2011180582.tif 000014
【図１３】
2011180582.tif 000015
【図１４】
2011180582.tif 000016
【図１５】
2011180582.tif 000017
【図１６】
2011180582.tif 000018
【図１７】
2011180582.tif 000019