(57)【要約】 【課題】  自動演奏ピアノにおいて、演奏操作の状態を判別をより正確に行う。【解決手段】  自動演奏ピアノは、演奏操作に応じて変位し、対応する弦を打弦するハンマ２と、該ハンマ２の動きを検出するセンサ２６を有する。センサ２６はハンマ２の動きに応じた出力電圧（検出信号）をＣＰＵ２０を含む信号処理モジュールに出力する。ＲＯＭ２１或いはＲＡＭ２２等適宜のメモリには、ハンマ２が打弦したときに弦に生じうるたわみ量を記憶したたわみ量出力テーブが記憶されている。制御系はセンサ２６の出力と該テーブルから出力されたたわみ量に基づき打弦判定を行うための閾値を設定し、センサ２６の出力と該閾値とを用いて演奏データを生成する。【選択図】  図２
2006084823.tif 000002
【特許請求の範囲】
【請求項１】
演奏操作に応じて変位し、該変位に応じて他の部材と当接する変位部材と、
前記変位部材が当接したときに前記他の部材に生じうるたわみ量を記憶したたわみ量記憶手段と、
前記変位部材の変位に応じた検出信号を出力する検出手段と、
前記たわみ量記憶手段に記憶されたたわみ量と前記検出手段から出力する検出信号から、前記演奏操作の状態を判別するための閾値を算出する閾値算出手段と、
前記検出手段から出力する検出信号及び前記算出した閾値を用いて、演奏操作に応じた演奏情報を出力する制御手段と
を備えた演奏情報出力装置。
【請求項２】
演奏操作に応じて変位し、該変位に応じて他の部材と当接する変位部材と、
前記変位部材が当接したときに前記他の部材に生じうるたわみ量を記憶したたわみ量記憶手段と、
前記変位部材の変位に応じた検出信号を出力する検出手段と、
前記たわみ量記憶手段に記憶されたたわみ量と前記検出手段から出力する検出信号から、前記演奏操作の状態を判別するための閾値を算出する閾値算出手段と、
前記検出手段から出力する検出信号及び前記算出した閾値を用いて、演奏操作に応じた演奏情報を出力する制御手段と
を備えた鍵盤楽器。
【請求項３】
演奏操作に応じて変位し、該変位に応じて他の部材と当接する変位部材の動作に応じた演奏情報を出力するための方法であって、
前記変位部材の変位に応じた検出信号を出力するステップと、
前記変位部材が当接したときに前記他の部材に生じうるたわみ量を記憶したたわみ量記憶手段からたわみ量を出力するステップと、
前記出力されたたわみ量と前記出力された検出信号から、前記演奏操作の状態を判別するための閾値を算出するステップと、
前記出力された検出信号及び前記算出した閾値を用いて、演奏操作に応じた演奏情報を出力するステップと
を含む方法。
【請求項４】
演奏操作に応じて変位し、該変位に応じて他の部材と当接する変位部材の動作に応じた演奏情報を出力するためにコンピュータが実行するプログラムであって、
前記変位部材の変位に応じた検出信号を出力するステップと、
前記変位部材が当接したときに前記他の部材に生じうるたわみ量を記憶したたわみ量記憶手段からたわみ量を出力するステップと、
前記出力されたたわみ量と前記出力された検出信号から、前記演奏操作の状態を判別するための閾値を算出するステップと、
前記出力された検出信号及び前記算出した閾値を用いて、演奏操作に応じた演奏情報を出力するステップと
を含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自動演奏ピアノなどの鍵盤楽器において、ハンマの動きを所定の閾値と比較して、打弦有無等の演奏操作の状態の判別を行い、該演奏操作の状態に応じた演奏情報を出力するための技術に関する。
【背景技術】
【０００２】
従来より、自動演奏ピアノ等の鍵盤楽器においては、鍵やハンマ等の動きをセンサで検出し、検出結果を演奏データとして記録したり、電子音源に供給して楽音を電子的に発生すること等が行われている。この種の鍵盤楽器において、ハンマの動作を連続量で検出するハンマセンサを設けて、より正確な打弦タイミングおよび打弦速度を取得できるようにしたものが知られている。下記特許文献１には、ハンマセンサを有する鍵盤楽器の一例として、ハンマシャンクの変位を連続量で検出するハンマセンサを設け、鍵操作時に該ハンマセンサからハンマ運動に関する物理量（位置、速度或いは加速度）を連続量で検出し、その検出結果を用いて、ピアノ演奏に関る種々の情報を取得する装置が開示されている。該情報は、例えば下記（１）〜（９）等である。すなわち：（１）ハンマの動作開始タイミング、（２）打弦タイミング、（３）打弦直前のハンマ速度、（４）押鍵タイミング、（５）バックチェックタイミング、（６）バックチェックが外れたタイミング、（７）バックチェックが外れた後のハンマ速度、（８）ダンパ復帰タイミング、（９）ハンマ動作終了タイミング、（１０）離鍵タイミングなどである。
【特許文献１】特開２００１−１７５２６２号公報
【０００３】
上記特許文献１に代表される従来の装置構成によると、前記ピアノ演奏に関わる種々の情報を生成するに際して、制御系は、ハンマ動作の開始や打弦動作の有無の判定等のハンマ動作の判定処理により、ハンマの動作状態（＝演奏操作の状態）を判断している。そのハンマ動作状態の判断は、ハンマセンサの出力と所定の閾値を比較することによって行われていた。すなわち、センサの出力と所定の閾値を比較することで、センサ出力とハンマの動作位置の対応付けを行い、ハンマの動作位置からハンマ動作状態を判断するのである。しかし、従来の装置では、上記ハンマの動作状態を判断するための閾値は、初期設定された演算値（上記特許文献１に記載された「キャリブレーション比」）等に基づき算出した値を利用しており、ハンマの実際の動きを考慮した値ではなかったので、通常動作（演奏データの記録や再生）中などの、ハンマの経時変化に対応することがでなかった。また、前記閾値は、初期設定された演算値に基づき算出した値を利用していたので、通常動作中にリアルタイムな補正を行うことが出来なかったので、打弦判定などの演奏状態の判断が正確に行えなくなってしまう恐れがあった。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この発明は上述の点に鑑みてなされたもので、演奏操作の状態を判別するための閾値とセンサの出力とに基づく演奏操作の状態の判別を、部材（ハンマなど）の経時変化の影響を受けることなく、より正確なものとし、また、ハンマ等の部材の実際の動きを反映した、より確実な演奏情報を得ることを目的とする。
【課題を解決するための手段】
【０００５】
この発明は、演奏操作に応じて変位し、該変位に応じて他の部材と当接する変位部材と、前記変位部材が当接したときに前記他の部材に生じうるたわみ量を記憶したたわみ量記憶手段と、前記変位部材の変位に応じた検出信号を出力する検出手段と、前記たわみ量記憶手段に記憶されたたわみ量と前記検出手段から出力する検出信号から、前記演奏操作の状態を判別するための閾値を算出する閾値算出手段と、前記検出手段から出力する検出信号及び前記算出した閾値を用いて、演奏操作に応じた演奏情報を出力する制御手段とを備えた演奏情報出力装置である。
【０００６】
また、この発明は、演奏操作に応じて変位し、該変位に応じて他の部材と当接する変位部材と、前記変位部材が当接したときに前記他の部材に生じうるたわみ量を記憶したたわみ量記憶手段と、前記変位部材の変位に応じた検出信号を出力する検出手段と、前記たわみ量記憶手段に記憶されたたわみ量と前記検出手段から出力する検出信号から、前記演奏操作の状態を判別するための閾値を算出する閾値算出手段と、前記検出手段から出力する検出信号及び前記算出した閾値を用いて、演奏操作に応じた演奏情報を出力する制御手段とを備えた鍵盤楽器である。
【０００７】
また、この発明は、演奏操作に応じて変位し、該変位に応じて他の部材と当接する変位部材の動作に応じた演奏情報を出力するための方法であって、前記変位部材の変位に応じた検出信号を出力するステップと、前記変位部材が当接したときに前記他の部材に生じうるたわみ量を記憶したたわみ量記憶手段からたわみ量を出力するステップと、前記出力されたたわみ量と前記出力された検出信号から、前記演奏操作の状態を判別するための閾値を算出するステップと、前記出力された検出信号及び前記算出した閾値を用いて、演奏操作に応じた演奏情報を出力するステップとを含む方法、或いは、該方法を実行するためのプログラムとして構成することも可能である。
【発明の効果】
【０００８】
これによれば、演奏操作に応じて変位し、該変位に応じて他の部材と当接する変位部材と、前記変位部材が当接したときに前記他の部材に生じうるたわみ量を記憶したたわみ量記憶手段と、前記変位部材の変位に応じた検出信号を出力する検出手段と、を有し、閾値算出手段が、前記たわみ量記憶手段に記憶されたたわみ量と前記検出手段から出力する検出信号から、前記演奏操作の状態を判別するための閾値を算出する。そして、前記検出手段から出力する検出信号及び前記算出した閾値を用いて、演奏操作の状態に応じた演奏情報を出力する。前記閾値は、検出信号とたわみ量とに基づき算出されるので、検出信号（すなわち、変位部材の実際の動作）を考慮したより正確な値となる。よって、より正確な変位部材の動作を判別を行うことができるようになる。検出信号（すなわち、変位部材の実際の動作）を基に該閾値を設定するので、変位部材の経時変化等にも対応でき、また、該閾値のリアルタイム補正も可能となる。従って、制御系は変位部材（例えば、ピアノのハンマ部材）の動作状態を正確に認識できるようになり、より正確な演奏情報を出力できるという優れた効果を奏する。
【発明を実施するための最良の形態】
【０００９】
以下添付図面を参照して、この発明の一実施例について説明する。
図１は、この発明の一実施例に係る自動演奏ピアノの構成例を説明するための図であって、機械的な発音機構の要部を抽出して示すと共に、電気的制御系の機能ブロックを示している。図１に示すように、自動演奏ピアノは、機械的な発音機構として、鍵１と、該鍵１に連動して回動ストロークするハンマ２と、該鍵１の運動をハンマ２に伝達するためのアクション機構３と、該ハンマ２によって打撃される弦４と、電気的制御に基づき鍵１を駆動する電磁ソレノイド５と、弦４の振動を止めるためのダンパ６とを含む。これらの構成は、一般的な自動演奏ピアノと同様である。なお、後述するように、この実施例においては、電磁ソレノイド５の駆動をサーボ制御する構成が適用されており、ソレノイド５にはプランジャの動作を検出するフィードバックセンサ（図示せず）が具備されるものとする。
また、この自動演奏ピアノには、通常のアコースティックピアノと同様にバックチェック７が設けられており、このバックチェック７は打弦時の反動によるハンマ２の暴れを防止するための部材である。この自動演奏ピアノは、上記のほかにも、通常のアコースティックピアノと同様な各種構成要素を具備するが、それらの説明及び図示は省略する。ハンマ２は、アクション機構３に対して、ハンマシャンク２ａを介して動作支点２ｂを中心にして回動自在に連結されており、対応する鍵１が非押鍵（外力を加えない状態）の時には、図１に示すようなレスト位置（ストローク量０ｍｍの位置）にある。そして、ハンマ２は、対応する鍵１の演奏操作（上下揺動）に連動して、基本的には該レスト位置から所定のエンド位置の間で回動ストロークする。この実施例において、ハンマ２のエンド位置は、ハンマ２が該レスト位置から４８ｍｍストローク変位した位置とする。図１において、エンド位置に位置するハンマ２を点線で示している。
【００１０】
図１において、符号２６は、ハンマ２の変位を連続量で検出するセンサである。センサ２６は、例えば、ハンマ２の連続的な位置情報を出力可能な光学式の位置センサを適用してよい。ハンマ２の連続位置を検出に好適な光学式センサの構成例について簡単に説明すると、光学式センサは、例えば、ＬＥＤと光ファイバで繋がる発光側センサヘッドとフォトダイオードと光ファイバで繋がる受光側センサヘッドとを有し、該ＬＥＤの光が発光側センサヘッドから照射されて、フォトダイオードと光ファイバで繋がる受光側センサヘッドにおいて受光され、フォトダイオードによって受光量に応じた出力電圧を取り出すことができる。該受光側センサヘッドにおいて受光する光量が、ハンマ２の変位に対応して変化するよう構成することで、該ハンマ２のストローク位置に応じた出力電圧を当該センサの検出信号として得ることができる。
【００１１】
当該センサ２６から出力される電圧値（アナログ信号）は、図示を省略したＯＰアンプ、ＡＤ変換器を介して、後述する信号処理部２７にディジタル信号として出力される。以下、この明細書中では、ディジタル信号に変換されたセンサ出力信号を「ＡＤ値（アナログ／ディジタル変換値）」と略称する。ＡＤ値は、センサ２６の出力（すなわちハンマ２の位置の測定値）を、例えば「０〜１０２３」の範囲の数値によって表現するデータである。
なお、当該自動演奏ピアノに備わる全てのハンマ（８８個）に対して、夫々独立したセンサ２６（ＬＥＤとフォトダイオード）を配設するとコストが高くなってしまう。この点について、１２個のＬＥＤと８個のフォトダイオードとを用いて、８８個のハンマの夫々の動きを個別にセンシング可能なセンサマトリクスを構成する技術が本出願人により提案されており（特開平９−５４５８４号公報を参照）、この実施例に係るセンサ２６は該センサマトリックスにより構成されるものとする。なお、センサの配設構成は、前記センサマトリックスによる構成に限らず、ＬＥＤとフォトダイオードからなるセンサ２６を当該自動演奏ピアノに備わる全てのハンマに個別に配設する構成であってもよい。
【００１２】
図２は図１に示す自動演奏ピアノの電気的ハードウェア構成を示すブロック図である。図２に示すように当該自動演奏ピアノは、ＣＰＵ２０、ＲＯＭ２１、ＲＡＭ２２及び記憶装置２３を含み、各装置間がデータ及びアドレスバス２０Ｂを介して接続される。センサ２６の出力はＡＤ変換器を含むインターフェース（Ｉ/Ｏ）２４を介して所定のサンプリング周期で制御系に取り込まれる。ＣＰＵ２０は、当該自動演奏ピアノの全体的な動作を制御するとともに、演奏データの再生処理や、演奏の録音処理等の各種信号処理を実行する。ＣＰＵ２０が実行する各種処理の制御プログラムは、例えばＲＯＭ２１内に記憶されていてよい。また、ＲＯＭ２１或いはＲＡＭ２２等の適宜のメモリには、各種信号処理の実行中に発生した各種データや各種パラメータや、該各種信号処理において参照する各種テーブル等が記憶される。また、記憶装置２３は、ハードディスク、フレキシブルディスク又はフロッピー（登録商標）ディスク、コンパクトディスク（ＣＤ‐ＲＯＭ）、光磁気ディスク（ＭＯ）、ＺＩＰディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、半導体メモリ等、適宜の記録媒体で構成されてよい。
【００１３】
ここで、図１に示す電気的制御系の機能ブロックについて説明する。信号処理部２７は、センサ２６の出力に基づき演奏データを生成する処理（演奏の録音処理）を担うモジュールである。また、再生前処理部１０、モーションコントローラ１１及びサーボコントローラ１２は演奏データの再生処理を担うモジュールに相当する。この実施例において、これら各モジュールにおいて実施される信号処理は、ＣＰＵ２０が実行するソフトウェアプログラムによって実現されるものとする。
【００１４】
信号処理部２７内に示す算出部２８及び処理部３０は、信号処理部２７にて実行する信号処理の機能を概念的に抽出して表すものである。算出部２８は、センサ２６から出力されたＡＤ値（ハンマ２の動作位置を表すデータ）に基づき、打弦タイミングや打弦速度等、演奏に関る種々の情報を算出するモジュールである。処理部３０は、前記算出部２８で生成した種々の情報に基づき、ＭＩＤＩ形式等の適宜のデータフォーマットの演奏データを生成するモジュールである。前記演奏データは、基本的には、ノートナンバーとベロシティデータを含んで構成されるノートオン／ノートオフデータである。生成された演奏データは記憶装置２３（図２参照）に記録されうる。また、生成された演奏データを、図示しない入出力インターフェースを介して図示しない外部機器に供給したり、或いは、図示しない通信ネットワークを介して該ネットワーク上の他の装置にリアルタイムで供給したりしてもよい。
【００１５】
再生前処理部１０は、図示しない適宜の記録媒体や、リアルタイム通信装置等から供給される演奏データに基づいて、鍵１の動作の軌道を指示する軌道データを生成するとともに、該軌道データを用いて鍵の原速度指示値（ｔ，Ｖｒ）を生成する。なお、原速度指示値（ｔ，Ｖｒ）において、「ｔ」は時間データであり、Ｖｒが時間データｔに対応する原速度指示値である。モーションコントローラ１１は該原速度指示値（ｔ，Ｖｒ）に基づいて、前記起動データを実現するためにソレノイド５に対して与えるべき速度目標値Ｖｒを生成してサーボコントローラ１２に出力する。サーボコントローラ１２は、前記速度指示値Ｖｒとソレノイド５から帰還入力されるフィードバック速度信号Ｖｙに基づく励磁電流によってソレノイド５を駆動させることで、該ソレノイド５の駆動をサーボ制御する。
また、上記のようにソレノイド５の駆動により鍵１の打鍵動作を制御して、機械的に楽音を発生させることのみならず、音源装置やスピーカ等から構成される電子楽音発生部１３を利用して電子的に楽音を発生させることもできる。すなわち、再生前処理部１０は、記録媒体やリアルタイム通信装置等から供給される演奏データを電子楽音発生部１３に供給し、電子楽音発生部１３では該供給された演奏データに基づき電子的に楽音を発生することで、該演奏データに応じた演奏音を電子的に発音させることができる。なお、電子楽音発生部１３によって電子的に自動演奏を行う際の演奏データのデータ形式や、音源方式等は従来から知られるどのようなものを適用してもよい。
【００１６】
上記構成からなる自動演奏ピアノにおける演奏の記録処理（演奏データの生成処理）と再生処理の動作手順の概略について簡単に説明する。操作者は、例えばコントローラに備わる録音指示スイッチの操作等によって演奏の記録処理の開始を指示できる。信号処理部２７では、センサ２６の検出出力に基づいて、打弦速度や打弦時刻等、演奏操作の状態に関する各種情報を求め、前記各種情報に基づきピアノ演奏の演奏内容を表す演奏データを生成する。生成した演奏データは記憶装置２３（図２参照）に記録したり、図示しない外部機器に出力してよい。
また、操作者は例えばコントローラに備わる再生スイッチの操作等により演奏データの再生処理の開始を指示できる。再生前処理部１０は、時々刻々供給される演奏データに基づき鍵１の動作の軌道を指示する軌道データを生成するとともに、該軌道データを用いて鍵の原速度指示値（ｔ，Ｖｒ）を生成する。モーションコントローラ１１では、該原速度指示値（ｔ，Ｖｒ）に基づき、ソレノイド５に対して与えるべき速度目標値Ｖｒが生成される。サーボコントローラ１２では、速度指示値Ｖｒとソレノイド５から帰還入力されるフィードバック速度信号Ｖｙに基づきソレノイド５を駆動するための励磁電流（例えば図２のＰＷＭ発生器２５によって発生されるＰＷＭ形式の電流信号）を発生し、該ソレノイド５は該励磁電流によって駆動される。これにより、前記演奏データに応じた軌道に従って鍵１が打鍵駆動され、該鍵１の打鍵動作に連動してハンマ２が打弦運動することで、演奏データに応じたピアノ演奏が行われる。また、再生前処理部１０は再生すべき演奏データに基づき電子楽音発生部１３を制御して、電子楽音発生部１３において演奏データに応じた楽音を電子的に発生することも可能である。
【００１７】
信号処理部２７では、センサ２６から出力されたＡＤ値（数値）をハンマの実際の動作位置に対応付けて認識する必要がある。ＡＤ値とハンマの動作位置とを対応付ける方法として、「キャリブレーション比」を利用する方法が知られている。キャリブレーション比は、エンド位置のＡＤ値をレスト位置のＡＤ値に対する比率を表現したもの（例えば特開２０００−１５５５７９号公報等を参照）である。ここで「キャリブレーション比」の設定処理について簡単に説明する。
キャリブレーション比の設定処理は、例えば工場出荷時等に実行される処理である。図示しないコントローラからの指示等に応じて、キャリブレーション比の設定処理が開始する。該設定処理においては、レスト位置のＡＤ値とエンド位置のＡＤ値を実測する。前記実測したレスト位置のＡＤ値とエンド位置のＡＤ値は、それぞれ、レスト位置とエンド位置のキャリブレーション値、すなわち「キャリブレーションレスト値Ｒｃ」、「キャリブレーションエンド値Ｅｃ」として、例えばフラッシュメモリ等の不揮発性メモリ内に記録される。また、キャリブレーションレスト値Ｒｃに対するキャリブレーションエンド値Ｅｃの比率（Ｒｃ/Ｅｃ）をキャリブレーション比αとして、該フラッシュメモリ等の不揮発性メモリ内に記録する。上記キャリブレーション値（キャリブレーションレスト値Ｒｃ及びキャリブレーションエンド値Ｅｃ）を設定することにより、該レスト値Ｒｃ及びエンド値Ｅｃを閾値とするハンマ２のストローク範囲を設定することとなる。なお、キャリブレーションレスト値Ｒｃ、キャリブレーションエンド値Ｅｃの測定、及び、キャリブレーション比αの算出は８８個の各鍵毎に行われるものとする。
【００１８】
当該自動演奏ピアノにおいて通常の動作時（例えば、演奏データの生成処理や、演奏データの再生処理）には、信号処理部２７では、レスト位置やエンド位置など、或る所定のハンマ動作位置を、ハンマ２の動作状態を把握するための参照位置として定め、各参照位置におけるＡＤ値の値を、演奏情報の生成等の信号処理に際して、演奏操作状態を判別するための閾値として利用する。信号処理部２７は、前記閾値として利用するエンド位置等の或る所定のハンマ動作位置に相当するＡＤ値を、センサ２６で測定したレスト位置のＡＤ値から、キャリブレーション比αを用いた計算で求めている。
【００１９】
この実施例においては、演奏データの記録や再生等の通常の動作中に、上記工場出荷時等に設定されたキャリブレーション値を所定の条件に従い更新する処理を行うことに、本発明の特徴がある。キャリブレーション値の更新処理の手順の詳細については後述するものとし、ここでは、その意義と概略を述べる。信号処理部２７にとってエンド位置の把握は、ハンマ２による打弦の有無の判定に直接に関係する重要な指標の一つである。演奏データの記録や再生等の通常の動作中において、信号処理部２７では、時々刻々取り込むセンサ２６の出力（ＡＤ値）を、エンド位置に対応する閾値（エンド値）との比較により、ハンマ２の動作（例えば、エンド位置に到達したかどうか等）を判別する。エンド位置に対応する閾値（エンド値）は、後述する処理によりキャリブレーション比αを用いた計算によって求めている。すなわち、実際のハンマ２の動作（エンド位置の測定値）に基づく値ではない。従って、この閾値では、ハンマ２の経時的変化等に対する対応が不十分であった。この点について、この実施例によれば、ハンマ２が打弦した際の弦４の「たわみ量」を予め記憶しておき、該たわみ量とハンマ２の実際の動作（センサ測定値）とに基づきエンド位置を設定することで、ハンマ動作の実際を反映し、より確実なレスト位置−エンド位置の認識・把握が可能となることに特徴がある。
【００２０】
ここで、予め記憶される弦４のたわみ量について述べる。図１において、ハンマ２のエンド位置として定めた位置（機械的な位置であり、図１において点線で示す）は、ハンマ２が該レスト位置から４８ｍｍストローク変位した位置であった。この位置は、概ね、ハンマ２が弦４に当接する位置に相当する。ところで、ハンマ２が弦４を実際に打弦するとき、ハンマ２は打弦の強さに応じた分だけ弦４を押し込む（つまり弦４がたわむ）。その場合、ハンマ２は、前記ハンマ２のエンド位置として定めた位置（ハンマ２が弦４に当接する位置）を、弦４のたわみ分だけ超えてストローク変位していることとなる。よって、ハンマ２の動作の測定値に基づくストローク変位のピーク位置から、ハンマ２が弦４を押し込んだ量を差し引けば、ハンマ２が弦４に当接する位置、すなわち、打弦位置、すなわち、エンド位置が特定できることになる。
この実施例に係る自動演奏ピアノは、ＲＯＭ２１或いはＲＡＭ２２（図２参照）等適宜のメモリ内に、速度データ（ＭＩＤＩ値）に対する弦４のたわみ量としてテーブル化した、「弦のたわみ量出力テーブル」を予め記憶している。「弦のたわみ量出力テーブル」の特性の一例は、図３のようである。「弦のたわみ量出力テーブル」は、速度データ（ＭＩＤＩ値）と、打弦時の弦４のたわみ量を対応付けたデータのテーブルであって、所定の実験機を用いてエンド位置が既知の状態で作成されるものである。信号処理部２７は、予め記憶している「弦のたわみ量出力テーブル（図３）」により、任意の速度でハンマ２が駆動された際に弦４に生じるたわみ量を求めることができる。よって、ハンマ２の動作の測定値と弦のたわみ量出力テーブルの出力とに基づきハンマ２のエンド位置の閾値（ＡＤ値）を設定することができる。このエンド位置の閾値（ＡＤ値）は、ハンマ２の実際の動作に基づき推定した値であるので、キャリブレーションエンド値Ｅｃに新規に設定する値として適用しうる。従って、これによれば、自動演奏ピアノの通常の動作中であっても、キャリブレーションエンド値Ｅｃを更新することが可能となる。
なお、この「弦のたわみ量出力テーブル」の使用の詳細については後述する。また、この実施例では、８８鍵の全鍵に共通に１つのテーブルが利用されるものとする。しかし、これに限らず、８８鍵の個々の鍵の個体差を反映して、個々の鍵に固有のテーブルを持たせるようにしても良いし、或いは、個々のピアノ本体の個体差等を反映したテーブルを持たせても良い。
【００２１】
次に、この実施例に係る自動演奏ピアノにおいて、センサ２６のセンサ出力に基づきハンマ２の動きを表す情報を生成して、該生成した情報が表すハンマ２の動作状態の変化から演奏情報を生成するために、信号処理部２７において  実行する各種の処理について説明する。
【００２２】
電源投入時、信号処理部２７は、センサ２６から供給されるＡＤ値とハンマ２の実際の動作位置とを対応付けるための「参照位置のパラメータ（参照値）」を設定する処理を行う。すなわち、所定の複数地点のハンマ動作位置が参照位置として予め設定されており、該参照位置を表すＡＤ値の値（数値）を参照値として記憶する。信号処理部２７では、各参照値を参照することで、センサ２６からリアルタイムで供給されるＡＤ値を各参照位置に対応付けることができる。そして、対応付けられた参照位置に応じてハンマ２の動作状態を判断することができる。この実施例において、前記参照位置としては、例えば、ハンマ２のレスト位置（ストローク量０ｍｍの位置）、エンド位置（レスト位置からのストローク量４８ｍｍ）、第１参照位置Ｍ１（前記エンド位置から８ｍｍ下がった位置）及び第２参照位置Ｍ２（前記エンド位置から０．５ｍｍ下がった位置）の４点が設定されるものとする。なお、第１参照位置Ｍ１と第２参照位置Ｍ２は、エンド位置に対する相対的な位置として規定されるものである。
【００２３】
図４は、当該自動演奏ピアノにおいて、上記４点の参照位置に対応する各参照値を設定する処理の手順の一例を示す。この処理は、８８個の各ハンマについて行うものであるが、ここでは或る１つのハンマ２についての処理により他を代表するものとする。
自動演奏ピアノにおいて電源が投入されると、センサ２６によってハンマ２の現在位置をセンシングして、該センサ２６から出力されるＡＤ値を信号処理部２７に取り込む（ステップＳ１）。電源投入直後には、鍵１は非押鍵状態にある、つまりハンマ２はレスト位置に位置しているものと想定できるので、ここで取り込んだＡＤ値は、当該ハンマ２のレスト位置に相当するデータとして参照される「レスト値Ｒｐ」としてＲＡＭ等適宜のメモリ内に記憶される。ステップＳ２では、前記ステップＳ１で取り込んだレスト値Ｒｐと前記キャリブレーション比αを用いて、ハンマ２のエンド位置の参照値「エンド値Ｅｐ」を算出し（Ｅｐ＝ｒ＊α）、該算出したエンド値Ｅｐを前記ＲＡＭ等適宜のメモリ内に記憶する。また、ステップＳ３では、キャリブレーション比を用いてハンマ２の第１参照位置Ｍ１及び第２参照位置Ｍ２に相当するデータとして参照される参照値「第１参照値ｍ１」及び「第２参照値ｍ２」を算出し、該算出した第１参照値ｍ１及び第２参照値ｍ２を該ＲＡＭ等適宜のメモリ内に書き込む。前記第１参照値ｍ１及び第２参照値ｍ２は、後述する当該ハンマの速度の算出処理や、打弦有無判定処理等に際して参照される。なお、鍵１をはじめとしてその他の可動部材についても同様に、電源投入時に、センサ出力から参照位置パラメータを設定しうる（ステップＳ４）。
すなわち、上記ステップＳ１及ぶステップＳ２により、現在のレスト位置のＡＤ値と現在のエンド位置のＡＤ値を、現在レスト値Ｒｐ及び現在エンド値Ｅｐの初期値としてＲＡＭ等適宜のメモリ内に記憶する。この処理は、自動演奏ピアノの電源投入時に起動する処理であるから、上記ステップＳ１及びステップＳ２で記録される現在のレスト値Ｒｐと現在のエンド値Ｅｐは、比較的しばしば書き換えられることになる。但し、ここで行われる現在のエンド値Ｅｐの書き換えは、センシングしたレスト値Ｒｐの出力とキャリブレーション比αの計算により求めた値で行われるものである。
【００２４】
図５は、信号処理部２７において実行されるハンマ速度を求めるルーチンの一例を示すフローチャートである。このルーチンは、例えば、演奏者による演奏操作時の演奏の記録処理（演奏データの生成処理）等において、当該自動演奏ピアノの通常の動作中の主要なルーチンの１つとして実行される。この処理は、８８個の各ハンマについて行うものであるが、ここでは或る１つのハンマ２についての処理のみ説明し、他を代表するものとする。図示の通り、このルーチンはステップＳ１０〜Ｓ１６の処理を所定の起動周期に従ってループするようになっている。
【００２５】
ステップＳ１０において、信号処理部２７では、センサ２６から時々刻々出力されるＡＤ値を当該ルーチンの１回の起動機会毎に取り込み、前記取り込んだＡＤ値をその時刻情報ＴＩＭＥと共にＲＡＭ等適宜のメモリ内に格納する。ここで、信号処理部２７は、ある時点から過去２０回分のサンプリング時点で取り込んだＡＤ値及びその時刻情報ＴＩＭＥからなるデータセットを格納しておき、これら２０個のデータセットから図６（ａ）に示すようなデータテーブルＴＡＢＬＥ１を作成する。テーブルＴＡＢＬＥ１には、図示の通り、過去２０回分のサンプリング点で取り込んだＡＤ値とその時刻情報のデータセットが順次記述されており、信号処理部２７では、テーブルＴＡＢＬＥ１により、所定時間内における時間的推移に応じたハンマの連続的な動作位置の情報を把握することができる。
【００２６】
ステップＳ１１では、取り込んだＡＤ値からハンマ動作（つまり鍵操作）の有無の判定を行う。ハンマ動作の有無判定は、例えば、前述のレスト値Ｒｐを参照して、取り込まれたＡＤ値が非押鍵状態（レスト位置）から変位しているか否かによって判定できる。ハンマ動作（鍵操作）がなければ（ステップＳ１１のｎｏ）、処理は当該ルーチンの先頭に戻る。
【００２７】
一方、ハンマ動作（鍵操作）があれば（ステップＳ１１のｙｅｓ）、ステップＳ１２において、第２参照値ｍ２を参照して、現時点で取り込まれたＡＤ値が該第２参照値ｍ２を越えたかどうか、つまり、ハンマ２のストローク位置が第２の参照位置Ｍ２よりも上方に変位したかどうかを判定する。第２参照位置Ｍ２は、前述の通りエンド位置から０．５ｍｍ下がった位置である。これは、ハンマ２が打弦する位置（エンド位置）の直前の位置であり、この参照位置Ｍ２をハンマ２が超えれば、打弦が行われる（エンド位置に達する）だろうと推断しうる推定打弦位置として規定されている。よって、信号処理部２７では、ＡＤ値が該第２参照値ｍ２を越えた時点（つまり、ハンマ２が推定打弦位置を越えた時点）で「当該ハンマ２による打弦が有った」と推定することができる。このようにセンサ２６から出力されるＡＤ値と閾値に基づき打弦有無の推定を行うことは、ハンマ動作判断の、ハンマ実動作に対するリアルタイム性、すなわち、迅速な動作判断という点で有利である。この実施例においては、詳しくは後述するような判断構成によってキャリブレーション比αの補正を行うことで、ステップ１２の打弦有無推定をより正確に行うことができるようになることが後段から明らかになる。
そして、ステップＳ１３では、前記ステップＳ１２での判断（現時点で取り込んだＡＤ値が参照値ｍ２を越えたかどうか？）に応じて、第１の打弦ステートｓｔ１の設定を行う。第１の打弦ステートｓｔ１は、ＡＤ値と参照値ｍ２による打弦有無推定の推定結果に応じて、「推定打弦」の有無の状態を識別する２状態のステートである。ＡＤ値が参照値ｍ２を越えていれば、第１の打弦ステートｓｔ１が「推定打弦有り」状態に設定される。なお、通常（すなわち、ステップＳ１２での参照値ｍ２越えが否の状態）では、第１の打弦ステートｓｔ１は非打弦（推定打弦無し）に設定されている。
【００２８】
ステップＳ１４では、図６（ａ）のテーブルＴＡＢＬＥ１を参照して、２０点のサンプリング時点のうちから、或る時点からみて過去５点前のサンプリング時点においてハンマ２の動作向きが反転したかどうかを調べる。ハンマ２の動作が反転した時点は、テーブルＴＡＢＬＥ１に基づきＡＤ値の増減変化の状態から特定できる。すなわち、当該ハンマ２がレスト値にあるときのＡＤ値の数値が最大値で表現され、エンド位置のＡＤ値を最小値で表現されるとすると、ハンマの一回のストローク変位では、基本的には、センサ２６から出力されるＡＤ値は、最大値から漸減変化して、ハンマ軌道の頂点（エンド位置相当）にて、最小値になり、そこからレスト位置に至るまで漸増変化する。すなわち、ＡＤ値の変動が減少から増加に転じた時点において、ハンマ移動のピーク（打弦点）に相当するものと考えることができ、その時点を、ハンマ２の動作が反転した時点と特定できる。
【００２９】
信号処理部２７は、当該ルーチンの起動機会毎に、テーブルＴＡＢＬＥ１を参照して、最新のサンプリング時点からみて過去５点前のサンプリング時点前後でのＡＤ値変動を調べておりハンマ２の動作が反転する時点を探している。そして、そのハンマ２の動作向きが反転した時点が特定されると、そこをハンマ移動のピーク（つまり打弦点）に相当する基準時点として、該基準時点から前後５点のサンプリング時点でのデータセットを抽出し、図６（ｂ）に示すようなデータテーブルＴＡＢＬＥ２を作成するのである。ここで、前記基準時点は、テーブルＴＡＢＬＥ１内の或るサンプリング時点（例えば最新のサンプリング時点）からみて過去５点前のサンプリング時点に相当するものであるから、テーブルＴＡＢＬＥ２は、該或るサンプリング時点から過去１１点のサンプリング時点におけるデータセットから構成される。
【００３０】
図６（ｂ）に示すように、テーブルＴＡＢＬＥ２には、前記１１点のサンプリング時点でのデータセット（「ＡＤ（−５）、ｔ（−５）」〜「ＡＤ（５）、ｔ（５）」）と、各時点での速度情報（「ｖ（−４）」〜「ｖ（５）」）及び加速度情報（「ａ（−４）」〜「ａ（４）」）が記述される。すなわち、ハンマ２の移動のピーク（打弦点）に相当する基準時点（ＡＤ（０），ｔ（０））と、この基準時点に対して時間的に前後５回分のサンプリング時点でにおける各データセットについて、夫々速度情報と加速度情報を求めている。各時点での速度情報は、例えば直線近似により、任意の２点間のデータ（例えば、あるサンプリング時点でのデータセットとその１つ前のサンプリング時点でのデータセット）の差分に基づき算出することができる。また、算出した速度情報を微分演算することで、加速度情報を求めることができる。なお、速度情報及び加速度情報の算出の具体的な方法については、上述の例に限らず、従来から知られるいかなる方法を適用しても差し支えない。なお、速度情報の算出は、任意の２点間のデータの差分に基づき比較的簡単に求まるので、テーブルＴＡＢＬＥ２の作成に先立って、例えば前述のステップＳ１０において当該テーブルＴＡＢＬＥ１を作成する際に算出しておいてもよい。テーブルＴＡＢＬＥ１を作成する際に各時点での速度情報を算出しておけば、ステップＳ１４でのハンマ２の動作反転の判別に速度情報を利用することも可能である。
【００３１】
さて、ステップＳ１４において、ハンマ２の動作向きの反転があれば（ステップＳ１４のｙｅｓ）、ステップＳ１５において、図７を参照して後述するサブルーチン「打弦判定処理」を実行する。一方、ハンマ２の動作向きの反転がなければ（ステップＳ１４のｎｏ）、先頭のステップＳ１０に戻り上述した処理を繰り返す。
そして、ステップＳ１６では、前記第１の打弦ステートｓｔ１及び後述する「打弦判定処理」において設定する第１の打弦ステートｓｔ２に基づき、ノート・オン／オフ（発音指示）信号の生成処理等、その他処理を行う。ノート・オン／オフ信号は、キーナンバ及びベロシティデータ（打弦速度）を含む演奏データであって、例えばＭＩＤＩ形式等のデータフォーマットで構成されてよい。
【００３２】
次に、図７に示すフローチャートを参照して「打弦判定処理」の手順の一例について説明する。先ず、ステップＳ２０において、前記図６（ｂ）に示すテーブルＴＡＢＬＥ２を参照して、ハンマ２によって実際に打弦が行われたかどうかの判定を行う。この打弦判定においては、該テーブルＴＡＢＬＥ２における基準時点（ＡＤ（０），ｔ（０））から、ハンマ２が弦に近接動作する際（打弦前）の速度情報及び加速度情報と、ハンマ２が弦から離間動作する際（打弦後）の速度情報及び加速度情報と、次に述べる判定条件に照合して、ハンマ２によって実際に打弦がなされたかどうかを事後的に判定する。
【００３３】
ステップＳ２０における打弦判定の条件は以下の通りである。
（１）確実に打弦したと判定する条件：基準時点（ＡＤ（０），ｔ（０））での速度情報ｖ（０）、及び、基準時点の直前の時点（ＡＤ（−１），ｔ（−１））での速度情報ｖ（−１）、及び、基準時点よりも２サンプリング時点前先行した時点（ＡＤ（−２），ｔ（−２））での速度情報ｖ（−２）を調べ、速度情報ｖ（０）、ｖ（−１）及びｖ（−２）の中に、所定速度（例えば０.３ｍ／ｓ）以上のものがあるかどうかを調べる。これにより、弦４に対して近接するハンマ２の打弦直前の運動状態の時間的推移を調べ、ハンマ２が打弦を行うのに十分な所定速度（例えば０.３ｍ／ｓ）で運動していたのであれば、確実に打弦有りと判断することができる。
（２）打弦した可能性が高いと判定する条件：基準時点（ＡＤ（０），ｔ（０））での加速度情報の絶対値ａ（０）、並びに、該基準時点の前後３回分のサンプリング時点（「ＡＤ（−３），ｔ（−３）」〜「ＡＤ（３），ｔ（３）」）での各加速度情報の絶対値ａ（−３）〜絶対値ａ（３）を調べることで、打弦直前に弦４に対して接近するハンマ２の運動状態と、打弦後に弦４に対して離間するハンマ２の運動状態とを調べる。ここで、基準時点での加速度情報の絶対値ａ（０）が各加速度情報の絶対値ａ（−３）〜絶対値ａ（３）の中で最大であれば、当該ハンマ２の運動によって打弦が行われた可能性が高いと判断できる。
（３）非打弦の可能性が高いと判定する条件：前記（２）の判定条件に適合しないこと、つまり、各加速度情報の絶対値ａ（−３）〜絶対値ａ（３）の中に基準時点での加速度情報の絶対値ａ（０）よりも大きい値があること、及び／又は、複数の速度情報から得られる２次曲線に適合させる２次曲線適合法によって求めた基準時点における速度情報ｖ（０）が「０」に近い値である場合は、当該ハンマ２の運動によっては、打弦が行われなかった可能性が高いと判断できる。
【００３４】
ステップＳ２１では、前記ステップＳ２０での判定結果に応じて、当該ハンマ２の動作状態（打弦有無）を表す第２の打弦ステートｓｔ２を設定する。第２の打弦ステートｓｔ２は、単純に打弦有り（前記条件（１）又は（２）に適う場合）か、打弦無し（前期条件（３）の場合）かを表現するものであってよい。勿論前記条件（１）〜（３）の夫々に応じて、（１）確実に打弦、（２）打弦の可能性大及び（３）非打弦の可能性大、の３状態を表現してもよい。
【００３５】
ステップＳ２２では、前記図５のステップＳ１３で設定した第１の打弦ステートｓｔ１と、前記第２の打弦ステートｓｔ２とを比較して、双方が示す状態（打弦有無）が一致するかどうかを調べる。不一致であった場合（ステップＳ２２のｙｅｓ）、処理をステップＳ２３に進めて、次に図８を参照して説明するサブルーチン「補正処理」を行う。一方、第１のステートｓｔ１と第２のステートｓｔ２が一致していれば（ステップＳ２２のｎｏ）、打弦判定ルーチンを抜けて、前記図５のハンマ速度を求めるルーチンに戻る。
【００３６】
図８を参照して補正処理の手順の一例について説明する。
ステップＳ３０において、両打弦ステートｓｔ１、ｓｔ２の不一致が、以下に述べるいずれのケースに相当するかを判別し、各ケースに応じた補正処理を行う。
（ケース１）打弦ステートｓｔ１では非打弦と推定しながらも、打弦ステートｓｔ２では打弦有りの判定がなされた場合：打弦ステートｓｔ１では非打弦と推定しながらも、実際には打弦動作が行われているので、打弦ステートｓｔ１の根拠となる参照位置パラメータとして設定されたエンド値Ｅｐが実際のエンド位置よりも高く想定されてしまっていると考えられる。この場合、発音が有ってもキーオン信号が出ない、所謂「音抜け」の問題が生じる。ケース１の場合は、ステップＳ３１において、テーブルＴＡＢＬＥ２にて基準時点として設定された時点でのＡＤ値「ＡＤ（０）」を新規エンド値Ｅｐとして設定して、この新規エンド値Ｅｐと現在のレスト値Ｒｐとの比を求めることで、当該ハンマ２のキャリブレーション比αを更新する。キャリブレーション比αを更新したら、新規キャリブレーション比αから推定打弦位置の閾値（参照値ｍ２）等の各種パラメータ（各参照値等）を再算出する。
（ケース２）打弦ステートｓｔ１では打弦と推定しながらも、打弦ステートｓｔ２では打弦無しの判定がなされた場合：打弦ステートｓｔ１では打弦と推定しているものの、実際には打弦動作は行われていないので、参照位置パラメータとして設定されたエンド値Ｅｐが実際のエンド位置よりも低く想定されてしまっていると考えられる。この場合、発音しないにも関わらずキーオン信号を出してしまうというった、所謂「音鳴り」の問題が生じる。このケース２の場合は、ステップＳ３２において、テーブルＴＡＢＬＥ２にて基準時点として設定された時点でのＡＤ値「ＡＤ（０）」に対して、所定数値加算した値を新規エンド値Ｅｐとして設定して、この新規エンド値Ｅｐと現在のレスト値Ｒｐとの比を求めることで、当該ハンマ２のキャリブレーション比αを更新する。キャリブレーション比αを更新したら、新規キャリブレーション比αから推定打弦位置の閾値（参照値ｍ２）等の各種パラメータ（各参照値等）を再算出する。そして、当該補正処理のルーチンを抜けて、前記図５のハンマ速度を求めるルーチンに戻る。
【００３７】
上述の補正処理において、自動演奏ピアノでの演奏動作中にリアルタイムでセンサ２６から出力されたＡＤ値を基にキャリブレーション比を適切な値に補正することで、新規キャリブレーション比に基づき、打弦推定位置に相当する閾値（第２の参照値Ｍ２）をより適切な値に設定しなおすことができる。従って、例えば経時変化によりアクションメカニズムの相対位置が変動し、キャリブレーション比が変わってしまった場合にも、キャリブレーション比をリアルタイムで補正することができ、連続量センサ２６からの出力値（位置情報）と推定打弦位置とに基づく打弦有無推定をより正確に行えるようになる。
【００３８】
次に、キャリブレーション比の補正処理の別の実施例について、図９を参照して説明する。ステップＳ４０において、打弦ステートｓｔ１と打弦ステートｓｔ２の不一致が３回以上続いたかどうかを判定する。これは、図７の打弦判定処理のステップＳ２２において、打弦ステートｓｔ１と打弦ステートｓｔ２の不一致が三回続くことを条件の１つとして、キャリブレーションエンド値Ｅｃの更新が行われることを意味する。打弦ステートｓｔ１と打弦ステートｓｔ２の不一致が３回以上続けば（ステップＳ４０のｙｅｓ）、ステップＳ４１において、打弦ステートｓｔ１、ｓｔ２の不一致が、図８を参照して前述したケース１又はケース２のいずれの場合に相当するかを判定する。これによって、誤動作に対して補正がなされてしまうことを防止している。
【００３９】
ケース１の場合エンド値Ｅｐが実際のエンド位置よりも低く想定されてしまっている。従って、以下のような処理を行う：ステップＳ４２において、ハンマ２の移動軌跡のピーク位置を探す。例えば、図６（ｂ）のテーブルＴＡＢＬＥ２を参照して、ハンマ２の移動のピーク（打弦点）に相当する基準時点ＡＤ（０），ｔ（０）を、当該ハンマ２の軌道ピーク（最奥）位置のＡＤ値として出力することができる。ステップＳ４３において、ハンマ２の実動作から打弦速度を推測する。打弦速度の推測は、例えば、図６（ｂ）のテーブルＴＡＢＬＥ２を参照し、ハンマ２の動作測定値から任意の複数点（例えば５点）のＡＤ値を抽出して、該抽出した複数のＡＤ値から直線近似法により速度情報を算出することができる。ステップＳ４４において、図３に示すたわみ量出力テーブルを参照し、前記３において算出した打弦速度に応じた「たわみ量」ｘを出力する。前述の通り、たわみ量出力テーブルは、打弦速度と、該打弦速度によって打弦された際にハンマ２が弦４を押し込む量の対応関係により構成されている。図３に示すたわみ量出力テーブルから、打弦速度に応じた「たわみ量」ｘを出力することで、当該打弦動作による弦４のたわみ量を取得する。弦４がたわむ（ハンマ２が弦４を押し込む）ということは、ハンマ２が弦４との当接位置（エンド位置）を該たわみ量だけ超えてストロークしていることとなる。してみれば、ステップＳ４２で求めたピーク位置のＡＤ値を、ステップＳ４４で求めた「たわみ量ｘ」で補正した値は、エンド位置に対応する値とみなすことができる。ステップＳ４５では、前記ピーク位置のＡＤ値と前記「たわみ量ｘ」から、新規のエンド値Ｅｐを出力する。
【００４０】
ケース２の場合は、エンド値Ｅｐが実際のエンド位置よりも低く想定されてしまっている：従って、ステップＳ４６において、ハンマ２の移動のピーク位置を探す。図６（ｂ）のデータテーブルＴＡＢＬＥ２を参照して、ハンマ２の移動のピーク（打弦点）に相当する基準時点ＡＤ（０），ｔ（０）を、当該ハンマ２の軌道ピーク（最奥）位置のＡＤ値として出力することができる。この場合は、エンド値Ｅｐが実際のエンド位置よりも低く想定されているのだから、ここで出力するハンマ２の移動のピーク位置のＡＤ値を直ちにた新規のエンド値Ｅｐを出力してよい。
【００４１】
ステップＳ４７では、現在のレスト値Ｒｐと上述の処理によって出力した新規のエンド値Ｅｐにより、キャリブレーションレスト値Ｒｃとキャリブレーションエンド値Ｅｃの更新を行う。そして、ステップＳ４８では、更新されたキャリブレーションレスト値Ｒｃとキャリブレーションエンド値Ｅｃからキャリブレーション比αを再計算する。
【００４２】
以上説明した通り、この発明に従えば、図９に示すキャリブレーションエンド値Ｅｃも更新処理により、ハンマ２の実際の動作に基づきキャリブレーションエンド値Ｅｃを更新するので、例えばハンマ２の経時変化等にフレキシブルに対応することができる。またキャリブレーションエンド値Ｅｃを初めとする演奏操作状態を判別するための各種閾値の補正や、キャリブレーション比の更新を、演奏の記録や再生時等、通常の動作中に、ハンマ２の実際の動作に基づきリアルタイムに行うことができるようになる。従って、より正確な打弦判定や、演奏データの生成が行えるようになる。
なお、上述の実施例では、図３に示すような弦のたわみ量を出力するためのテーブルを記憶しておくものとしたが、たわみ量の出力はテーブル参照に限らず、適宜の関数を記憶しておき、該関数の計算により求めてもよい。また、弦のたわみ量データを適宜間引いて記憶しておき、必要に応じてデータ間を補間するようにしてもよい。
【００４３】
また、上述の実施例では、キャリブレーションエンド値Ｅｃの初期設定は実測値を適用するものとしたが、初期設定として、ハンマ動作とたわみ量とに基づき求めたエンド値を適用してもよい。
また、上述の実施例ではセンサ２６の一例として光学式センサを挙げたが、センサの種対はこれに限らない。また、上記実施例では、センサ２６を、ハンマのストローク位置を検出する位置センサとして構成したが、これに限らず、センサ２６を速度センサ或るは加速度センサとしてもよい。また、位置情報、速度情報及び加速度情報の各情報を夫々独立したセンサによって別々に検出するように構成してもよい。
【００４４】
また、上記の実施例では、キャリブレーション値や各種閾値の設定、或いは、ハンマ速度を求めるルーチンなどの種々の信号処理（つまり信号処理部２７の動作）は、コンピュータが実行するソフトウェアプログラムによって構成及び実施されるものとしたが、これに限らず、信号処理部２７を構成する各モジュールが担う各種演算処理を実行する専用のハードウェア的信号処理装置を具備し、該各モジュールの各種機能をハードウェア装置として構成及び実現することも可能である。
【００４５】
なお、上述した実施例の形態では、ハンマ動作と弦のたわみの関係からエンド位置の値を更新する例を示したが、これに限らず、更新する値は、ハンマ動作と弦のたわみの関係から求めた所定の閾値であれば、エンド位置の値に限定されない。また、ハンマ動作と弦のたわみの関係のみならず、変位部材と、該変位部材が当接することでたわみが生じる部材との関係において、変位部材の実動作と該たわみから、変位部材の所定の位置の値を特定する構成であれば、その他適宜の部材にこの発明を適用しうる。
また、上記実施例では、自動演奏ピアノとして、自動演奏機能及び演奏操作記録機能を有するアコースティックピアノについて説明したが、ここでアコースティックピアノは、グランドピアノ或いはアップライトピアノの何れであっても差し支えない。また、この発明は、自動演奏ピアノに限らず、消音ピアノに適用することもできる。また、アコースティックピアノに限らず、電子ピアノ等のその他各種鍵盤楽器にも適用可能である。
【図面の簡単な説明】
【００４６】
【図１】この発明の一実施例に係る自動演奏ピアノの全体構成を示す図。
【図２】同実施例に係る自動演奏ピアノの電気的ハードウェア構成を示すブロック図。
【図３】同実施例に係る弦のたわみ量出力テーブルの一例を示す図。
【図４】同実施例に係る自動演奏ピアノにおいて電源投入時に実行される処理例を示すフロー。
【図５】同実施例に係る自動演奏ピアノにおける主な動作として実行されるハンマ速度を求めるルーチンの一例を示すフロー。
【図６】（ａ）はハンマ動作の時間的推移を表すデータテーブルＴＡＢＬＥ１の一例を示す図、（ｂ）は前記テーブルＴＡＢＬＥ１に基づき作成される打弦直前のハンマの運動状態の時間的推移を表すデータテーブルＴＡＢＬＥ２の一例を示す図。
【図７】同実施例に係る打弦判定処理の一例を示すフローチャート。
【図８】同実施例に係る補正処理の一例を示すフローチャート。
【図９】同実施例に係る補正処理の別例を示すフローチャート。
【符号の説明】
【００４７】
１  鍵、２  ハンマ、３  アクションメカニズム、４  弦、５  電磁ソレノイド、６  ダンパ、７  バックチェック、１０  再生前処理部、１１  モーションコントローラ、１２  サーボコントローラ、１３  電子楽音発生部、２０  ＣＰＵ、２１  ＲＯＭ、２２  ＲＡＭ、２３  記憶装置、２４  Ｉ／Ｏ、２５  ＰＷＭ発生器、２６  センサ、２７  信号処理部、２８  算出部、３０  処理部
【図１】
2006084823.tif 000003
【図２】
2006084823.tif 000004
【図３】
2006084823.tif 000005
【図４】
2006084823.tif 000006
【図５】
2006084823.tif 000007
【図６】
2006084823.tif 000008
【図７】
2006084823.tif 000009
【図８】
2006084823.tif 000010
【図９】
2006084823.tif 000011