JP2005208569A - 楽器及び発音指示情報を生成するための方法及び該方法をコンピュータで実行するためのプログラム。 - Google Patents

楽器及び発音指示情報を生成するための方法及び該方法をコンピュータで実行するためのプログラム。 Download PDF

Info

Publication number
JP2005208569A
JP2005208569A JP2004273629A JP2004273629A JP2005208569A JP 2005208569 A JP2005208569 A JP 2005208569A JP 2004273629 A JP2004273629 A JP 2004273629A JP 2004273629 A JP2004273629 A JP 2004273629A JP 2005208569 A JP2005208569 A JP 2005208569A
Authority
JP
Japan
Prior art keywords
speed
information
displacement member
hammer
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004273629A
Other languages
English (en)
Other versions
JP4626241B2 (ja
Inventor
Tsutomu Sasaki
力 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2004273629A priority Critical patent/JP4626241B2/ja
Priority to US11/019,985 priority patent/US7285718B2/en
Priority to EP04030531A priority patent/EP1555651A1/en
Publication of JP2005208569A publication Critical patent/JP2005208569A/ja
Application granted granted Critical
Publication of JP4626241B2 publication Critical patent/JP4626241B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract


【課題】 自動演奏ピアノにおいて、ハンマの動作に基づく発音指示情報の発生/非発生をより正確に行えるようにする。
【解決手段】
鍵1の動きに応じて弦4を打弦するハンマ2の動きを検出するセンサ26は、ハンマ2のストローク位置を表すAD値を信号処理部27に出力し、信号処理部27は、AD値に基づきハンマが所定位置(参照位置M1、M2)に達したかどうか判断し、また、該AD値に基づきハンマの速度情報を得る処理を行い、該速度情報が所定速度を越えたかどうかを判別し、前記の位置判断及び速度判別に基づき発音指示情報(キーオン)を生成する。速度情報が所定速度を越えている場合は少なくともハンマの往路変位時の速度情報に基づき、また、速度情報が所定速度を越えていない場合は少なくともハンマの復路変位時の速度情報に基づき、発音指示情報が生成される。
【選択図】 図1

Description

この発明は、例えばピアノ等のように、演奏操作子の動作に応じて往復変位する変位部材の動作に基づき発音が行われる楽器において、該変位部材の動作に基づき打弦タイミングの判定や、発音指示情報を生成するための技術に関する。
従来より、自動演奏ピアノ等の鍵盤楽器においては、鍵やハンマ等の動きをセンサで検知し、検出結果を演奏データとして記録したり、電子音源に供給して楽音を電子的に発生することが行われている。この種の鍵盤楽器において、ハンマの動作を連続量で検出するハンマセンサを設けて、より正確な打弦タイミングおよび打弦速度を取得できるようにしたものが知られている。下記特許文献1には、ハンマセンサを有する鍵盤楽器の一例として、ハンマシャンクの変位を連続量で検出するハンマセンサを設け、鍵操作時に該ハンマセンサからハンマ運動に関する物理量(位置、速度或いは加速度)を連続量で検出し、その検出結果を用いて、ピアノ演奏に関る種々の情報を取得する装置が開示されている。該情報は、例えば下記(1)〜(9)等である。すなわち:(1)ハンマの動作開始タイミング、(2)打弦タイミング、(3)打弦直前のハンマ速度、(4)押鍵タイミング、(5)バックチェックタイミング、(6)バックチェックが外れたタイミング、(7)バックチェックが外れた後のハンマ速度、(8)ダンパ復帰タイミング、(9)ハンマ動作終了タイミング、(10)離鍵タイミングなどである。
特開2001−175262号公報
上記特許文献1に代表される従来の装置構成によると、前記ピアノ演奏に関る種々の情報を生成するに際して、制御系は、ハンマ動作の開始や打弦動作の有無の判定等のハンマ動作の判定処理により、ハンマの動作状態を判断している。そのハンマ動作状態の判断は、ハンマセンサの出力と所定の閾値を比較することによって行われていた。すなわち、センサの出力と所定の閾値を比較することで、センサ出力とハンマの動作位置の対応付けを行い、ハンマの動作位置からハンマ動作状態を判断するのである。しかしながら、従来の技術では、打弦タイミング等を求める際の打弦判定は、専ら、ハンマが弦に接近する際の動き、すなわち、打弦前のハンマの動きのみに基づき判定していたので、打弦/非打弦の区別が不確実となる恐れがあった。従って、該打弦判定に基づく発音指示(キーオン)の発生もまた不確かになることがあった。また、連続量センサとしてよく用いられる光学式センサには、センサの使用中に光量が下がるなど、入出力特性に経時変化が生じる場合がある。しかし、従来の装置では、そのようなセンサの入出力特性の経時変化(例えば、光量の低下など)に対する対応が不十分であった。
この発明は上述の点に鑑みてなされたもので、自動演奏ピアノ等において、演奏操作子の動作に応じて往復変位する変位部材の動作に基づき発音が行われる楽器において、該変位部材の動作に基づく打弦判定や、発音指示情報の発生/非発生をより正確に行えるようにすることを目的とする。
この発明に係る鍵盤楽器は、演奏操作子と、前記演奏操作子の動作に応じて往復変位し、該変位に応じて他の部材と当接する変位部材と、前記変位部材の動作を連続量で検出する検出手段と、前記検出手段の検出出力に基づき、前記変位部材が前記他の部材に対して近接する動作と、前記変位部材が前記他の部材から離間する動作とを比較して、前記変位部材が前記他の部材との当接位置に至ったことを判定する判定手段とを備える。
また、この発明は、演奏操作子と、前記演奏操作子の動作に応じて往復変位することで、発音部による発音を制御する変位部材と、前記演奏操作子及び前記変位部材の少なくともいずれか一方の動きを検出する検出手段と、前記検出手段の出力に基づき前記変位部材が所定位置に達したかどうかを判断する位置判断手段と、前記検出手段の出力に基づき前記変位部材の速度情報を得る速度情報出力手段と、前記速度情報出力手段が出力する速度情報が所定の速度を越えているかどうかを判別する速度判別手段と、前記位置判断手段の判断結果並びに前記速度判別手段の判断結果に基づき発音指示情報を生成する発音指示情報生成手段であって、該速度判別手段により前記所定の速度を越えていると判別された場合は、少なくとも前記変位部材の往路変位時の速度情報に基づき発音指示情報を生成し、また、該速度判別手段により前記所定の速度を越えていないと判別された場合は、少なくとも前記変位部材の復路変位時の速度情報に基づき発音指示情報を生成する発音指示情報出力手段とを具えた楽器である。
また、この発明は、演奏操作子の動作に応じて往復変位する変位部材の動作に基づき発音指示情報を生成するための方法であって、前記演奏操作子及び前記変位部材の少なくともいずれか一方の動きを検出する検出ステップと、前記検出ステップでの検出結果に基づき前記変位部材が所定位置に達しかどうかを判断する位置判断ステップと、前記検出ステップでの検出結果に基づき前記変位部材の速度情報を出力する速度出力ステップと、前記速度出力ステップにおいて出力された速度情報が所定の速度を越えているかどうかを判別する速度判別ステップと、前記位置判断ステップの判断結果並びに前記速度判別ステップの判断結果に基づき発音指示情報を生成するステップであって、該速度判別ステップにより前記所定の速度を越えていると判別された場合は、少なくとも前記変位部材の往路変位時の速度情報に基づき発音指示情報を生成し、また、該速度判別ステップにより前記所定の速度を越えていないと判別された場合は、少なくとも前記変位部材の復路変位時の速度情報に基づき発音指示情報を生成する発音指示情報生成ステップとを含む方法、或いは、該方法を実行するためのプログラムとして構成することも可能である。
この発明に係る鍵盤楽器によれば、検出手段が前記変位部材の動作を連続量で検出し、判定手段は、前記検出手段の検出出力に基づき、前記変位部材が前記他の部材に対して近接する動作と、前記被駆動部材が前記他の部材から離間する動作とを比較して、前記被駆動部材が前記他の部材との当接位置に至ったことを判定する。演奏操作子と変位部材の一例として、鍵とハンマの関係において、ハンマの打弦判定を行う態様を例示することができる。前記検出手段は、例えばハンマの位置情報を連続量で検出し、判定手段では、前記検出手段の複数タイミングにおける検出出力に基づく近似式に基づきハンマ動作の速度情報及び加速度情報の少なくとも一方を算出し、該算出された速度情報及び加速度情報の少なくとも一方の時間的推移に応じた状態から、打弦前のハンマが弦に近接する動作と打弦後のハンマが弦から離間する動作を比較することで、ハンマによって実際に打弦がなされたかどうかの判定を行うことができる。このように、打弦前のみならず、打弦後のハンマの動作を考慮した打弦判定を行うことで、打弦/非打弦の区別をより正確に行えるようになるという優れた効果を奏する。
また、この発明に係る楽器によれば、検出手段が演奏操作子及び変位部材の少なくともいずれか一方の動きを検出し、位置判断手段は検出手段の出力に基づき変位部材が所定位置に達したかどうかを判断する。速度情報出力手段は該検出手段の出力に基づき前記変位部材の速度情報を出力し、速度判別手段は該速度情報出力手段が出力する速度情報が所定の速度を越えているかどうかを判別する。前記位置判断手段の判断結果並びに前記速度判別手段の判断結果に基づき発音指示情報を生成する発音指示情報生成手段は、該速度判別手段により前記所定の速度を越えていると判別された場合は、少なくとも前記変位部材の往路変位時の速度情報に基づき発音指示情報を生成し、また、該速度判別手段により前記所定の速度を越えていないと判別された場合は、少なくとも前記変位部材の復路変位時の速度情報に基づき発音指示情報を生成する。演奏操作子と変位部材の一例として、鍵と該鍵の動きに応じて打弦動作するハンマを例示することができる。これにより、ハンマのストローク位置とハンマの動作速度との両方を考慮して発音指示情報の発生/非発生を正確に行うことができ、ハンマの速度が前記所定の速度を越えていれば、少なくともハンマの往路(打弦前)の動作に基づき発音指示情報の生成を行うことができ、また、ハンマの速度が前記所定の速度に至らない場合であっても、ハンマの復路(打弦後)の動作をも考慮して、つまり打弦前と打弦後の動作を考慮して、発音指示情報が生成できる。よって、打弦前のみならず、打弦後のハンマの動作を考慮し、より正確な発音指示情報の生成が行えるようになるという優れた効果を奏する。
以下添付図面を参照して、この発明の一実施例について説明する。
図1は、この発明の一実施例に係る自動演奏ピアノの構成例を説明するための図であって、機械的な発音機構の要部を抽出して示すと共に、電気的制御系の機能ブロックを示している。図1に示すように、自動演奏ピアノは、機械的な発音機構として、鍵1と、該鍵1に連動して回動ストロークするハンマ2と、該鍵1の運動をハンマ2に伝達するためのアクション機構3と、該ハンマ2によって打撃される弦4と、電気的制御に基づき鍵1を駆動する電磁ソレノイド5と、弦4の振動を止めるためのダンパ6とを含む。これらの構成は、一般的な自動演奏ピアノと同様である。なお、後述するように、この実施例においては、電磁ソレノイド5の駆動をサーボ制御する構成が適用されており、ソレノイド5にはプランジャ動作を検出するフィードバックセンサが具備されるものとする。
また、この自動演奏ピアノには、通常のアコースティックピアノと同様にバックチェック7が設けられており、このバックチェック7は打弦時の反動によるハンマ2の暴れを防止するための部材である。この自動演奏ピアノは、上記のほかにも、通常のアコースティックピアノと同様な各種構成要素を具備するが、それらの説明及び図示は省略する。ハンマ2は、アクション機構3に対して、ハンマシャンク2aを介して動作支点2bを中心にして回動自在に連結されており、対応する鍵1が非押鍵(外力を加えない状態)の時には、図1に示すようなレスト位置(ストローク量0mmの位置)にある。そして、対応する鍵1の変位(上下揺動)に連動して、基本的には該レスト位置から所定のエンド位置の間で回動ストロークする。この実施例において、ハンマ2のエンド位置は、ハンマ2が該レスト位置から48mmストローク変位した位置とする。図1において、エンド位置に位置するハンマ2を点線で示している。
図1において、符号26は、ハンマ2の変位に応じた検出信号を連続量で検出するセンサである。センサ26は、例えば、ハンマ2の連続的な位置情報を出力可能な光学式の位置センサを適用してよい。ハンマ2の連続位置を検出するのに好適な光学式センサの構成例について簡単に説明すると、光学式センサは、例えば、LEDと光ファイバで繋がる発光側センサヘッドとフォトダイオードと光ファイバで繋がる受光側センサヘッドとを有し、該LEDの光が発光側センサヘッドから照射されて、フォトダイオードと光ファイバで繋がる受光側センサヘッドにおいて受光され、フォトダイオードによって受光量に応じた出力電圧を取り出すことができる。該受光側センサヘッドにおいて受光する光量が、ハンマ2の変位に対応して変化するよう構成することで、該ハンマ2のストローク位置に応じた出力電圧を当該センサの検出信号として得ることができる。
当該センサ26から出力される電圧値(アナログ信号)は、図示を省略したOPアンプ、AD変換器を介して、後述する信号処理部27に、ディジタル信号として出力される。以下、この明細書中では、ディジタル信号に変換されたセンサ出力信号を「AD値(アナログ/ディジタル変換値)」と略称する。AD値は、センサ26の出力(すなわちハンマ位置の測定値)を、例えば「0〜1023」の範囲の数値によって表現するデータである。なお、当該自動演奏ピアノに備わる全てのハンマ(88個)に対して、夫々独立したセンサ26(LEDとフォトダイオード)を配設するとコストが高くなってしまう。この点について、12個のLEDと8個のフォトダイオードとを用いて、88個のハンマの夫々の動きを個別にセンシング可能なセンサマトリクスを構成する技術が本出願人により提案されており(特開平9−54584号公報を参照)、この実施例に係るセンサ26は該センサマトリックスにより構成されるものとする。なお、センサの配設構成はセンサマトリックスによる構成に限らず、LEDとフォトダイオードからなるセンサ26を当該自動演奏ピアノに備わる全てのハンマに個別に配設する構成であってもよい。
図2は図1に示す自動演奏ピアノの電気的ハードウェア構成を示すブロック図である。図2に示すように当該自動演奏ピアノは、CPU20、ROM21、RAM22及び記憶装置23を含み、各装置間がデータ及びアドレスバス20Bを介して接続される。センサ26の出力はAD変換器を含むインターフェース(I/O)24を介して所定のサンプリング周期で制御系に取り込まれる。CPU20は、当該自動演奏ピアノの全体的な動作を制御するとともに、演奏データの再生処理や、演奏の録音処理等の各種信号処理を実行する。CPU20が実行する各種処理の制御プログラムは、例えばROM21内に記憶されていてよい。また、ROM21或いはRAM22等の適宜のメモリには、各種信号処理の実行中に発生した各種データや各種パラメータや、該各種信号処理において参照する各種テーブル等が記憶される。また、記憶装置23は、ハードディスク、フレキシブルディスク又はフロッピー(登録商標)ディスク、コンパクトディスク(CD‐ROM)、光磁気ディスク(MO)、ZIPディスク、DVD(Digital Versatile Disk)、半導体メモリ等、適宜の記録媒体で構成されてよい。
ここで、図1に示す電気的制御系の機能ブロックについて説明する。信号処理部27は、センサ26の出力に基づき演奏データを生成する処理(演奏の録音処理)を担うモジュールである。また、再生前処理部10、モーションコントローラ11及びサーボコントローラ12は演奏データの再生処理を担うモジュールに相当する。この実施例において、これら各モジュールにおいて実施される信号処理は、CPU20が実行するソフトウェアプログラムによって実現されるものとする。
信号処理部27内に示す算出部28及び処理部30は、信号処理部27にて実行する信号処理の機能を概念的に抽出して表すものである。算出部28は、センサ26から出力されたAD値(ハンマ2の動作位置を表すデータ)に基づき、打弦タイミングや打弦速度等、演奏に関る種々の情報を生成するモジュールである。処理部30は、前記算出部28で生成した種々の情報に基づき、MIDI形式等の適宜のデータフォーマットの演奏データを生成するモジュールである。前記演奏データは、基本的には、キーナンバーとベロシティデータ(打弦速度)を含んで構成されるキーオン/キーオフデータである。生成された演奏データは、記憶装置23に記録しうる。また、生成された演奏データを、図示しない入出力インターフェースを介して図示しない外部機器に供給したり、或いは、図示しない通信ネットワークを介して該ネットワーク上の他の装置にリアルタイムで供給したりしてもよい。
再生前処理部10は、図示しない適宜の記録媒体や、リアルタイム通信装置等から供給される演奏データに基づいて、鍵1の動作の軌道を指示する軌道データを生成するとともに、該軌道データを用いて鍵の原速度指示値(t,Vr)を生成する。なお、原速度指示値(t,Vr)において、「t」は時間データであり、Vrが時間データtに対応する原速度指示値である。モーションコントローラ11は該原速度指示値(t,Vr)に基づいて、前記起動データを実現するためにソレノイド5に対して与えるべき速度目標値Vrを生成してサーボコントローラ12に出力する。サーボコントローラ12は、前記速度指示値Vrとソレノイド5から帰還入力されるフィードバック速度信号Vyに基づく励磁電流例えば図2のPWM発生器25によって発生されるPWM形式の電流信号)によってソレノイド5を駆動させることで、該ソレノイド5の駆動をサーボ制御する。
また、上記のようにソレノイド5の駆動により鍵1の打鍵動作を制御して、機械的に楽音を発生させることのみならず、音源装置やスピーカ等から構成される電子楽音発生部13を利用して電子的に楽音を発生させることもできる。すなわち、再生前処理部10は、記録媒体やリアルタイム通信装置等から供給される演奏データを電子楽音発生部13に供給し、電子楽音発生部13では該供給された演奏データに基づき電子的に楽音を発生することで、該演奏データに応じた演奏音を電子的に発音させることができる。なお、電子楽音発生部13によって電子的に自動演奏を行う際の演奏データのデータ形式や、音源方式等は従来から知られるどのようなものを適用してもよい。
上記構成からなる自動演奏ピアノにおける演奏の記録処理(演奏データの生成処理)と再生処理の動作手順の概略について簡単に説明する。操作者は、例えばコントローラに備わる録音指示スイッチの操作等によって演奏の記録処理の開始を指示できる。信号処理部27では、センサ26の検出結果に基づいて、打弦速度や打弦時刻等、に関する各種情報を求め、前記各種情報に基づきピアノ演奏の演奏内容を表す演奏データを生成する。生成した演奏データは記憶装置23(図2参照)に記録したり、図示しない外部機器に出力してよい。
また、操作者は例えばコントローラに備わる再生スイッチの操作等により演奏データの再生処理の開始を指示できる。再生前処理部10は、時々刻々供給される演奏データに基づき鍵1の動作の軌道を指示する軌道データを生成するとともに、該軌道データを用いて鍵の原速度指示値(t,Vr)を生成する。モーションコントローラ11では、該原速度指示値(t,Vr)に基づき、ソレノイド5に対して与えるべき速度目標値Vrが生成される。サーボコントローラ12では、速度指示値Vrとソレノイド5から帰還入力されるフィードバック速度信号Vyに基づきソレノイド5を駆動するための励磁電流を発生し、該ソレノイド5は該励磁電流によって駆動される。これにより、前記演奏データに応じた軌道(ストローク動作)に従い鍵1が打鍵駆動されて、ハンマ2が打弦運動することで、演奏データに応じたピアノ演奏が行われる。また、再生前処理部10は再生すべき演奏データに基づき電子楽音発生部13を制御して、電子楽音発生部13において演奏データに応じた楽音を電子的に発生することも可能である。
信号処理部27では、センサ26から出力されたAD値(数値)をハンマの実際の動作位置に対応付けて認識する必要がある。AD値とハンマの動作位置とを対応付ける方法として、例えば特開2000−155579号公報に記載されているような「キャリブレーション比」を利用する方法が知られている。キャリブレーション比は、エンド位置のAD値をレスト位置のAD値に対する比率を表現したものである。ここで「キャリブレーション比」の設定処理について簡単に説明する。キャリブレーション比の設定処理は、例えば工場出荷時等に実行される処理である。図示しないコントローラからの指示等に応じて、キャリブレーション比の設定処理が開始する。該設定処理においては、レスト位置のAD値とエンド位置のAD値を実測する。そして、前記実測したレスト位置のAD値に対するエンド位置のAD値の比率をキャリブレーション比として、ROM21或いはRAM22等適宜のメモリ(例えばフラッシュメモリ等の不揮発性メモリ)内に記録する。なお、キャリブレーション比の算出は88個の各鍵毎に行われるものとする。
この実施例に係る自動演奏ピアノにおける通常の動作時(演奏データの録音や、再生など)の各種信号処理について説明する。
当該自動演奏ピアノにおいて通常の動作時(例えば、演奏データの生成処理や、演奏データの再生処理)には、信号処理部27では、レスト位置や、エンド位置など、或る所定のハンマ動作位置を、ハンマ2の動作状態を把握するための参照位置として定め、各参照位置におけるAD値の値を、演奏データの生成等の信号処理における各種判断に参照する閾値として利用する。すなわち、信号処理部27は、前記閾値とリアルタイムに供給されるセンサ26の出力に基づき、ハンマ2の動作状態(ストローク変位し始めたであるとか、打弦をしたであるとか等)を認識、把握するのである。この実施例において、前記参照位置としては、例えば、ハンマ2のレスト位置(ストローク量0mmの位置)、エンド位置(レスト位置からのストローク量48mm)、第1参照位置M1(前記エンド位置から8mm下がった位置)及び第2参照位置M2(前記エンド位置から0.5mm下がった位置)の4点が設定される。なお、第1参照位置M1と第2参照位置M2は、エンド位置に対する相対的な位置として規定されるものである。信号処理部27は、前記閾値として利用するエンド位置等の或る所定のハンマ動作位置に相当するAD値を、センサ26で測定したレスト位置のAD値とキャリブレーション比に基づく計算で求めている。
電源投入時、信号処理部27は、センサ26から供給されるAD値とハンマ2の実際の動作位置とを対応付けるための「参照位置のパラメータ(参照値)」を設定する処理を行う。すなわち、所定の複数地点のハンマ動作位置が参照位置として予め設定されており、該参照位置を表すAD値の値(数値)を参照値として記憶する。図3は、当該自動演奏ピアノにおいて、上記4点の参照位置に対応する各参照値を設定する処理の手順の一例を示す。なお、この処理は、88個の各ハンマについて行うものであるが、ここでは或る1つのハンマ2についての処理により他を代表するものとする。
ステップS1において、自動演奏ピアノにおいて電源が投入されると、センサ26によってハンマ2の現在位置をセンシングして、該センサ26から出力されるAD値を信号処理部27に取り込む。電源投入直後には、鍵1は非押鍵状態にある、つまりハンマ2はレスト位置に位置しているものと想定できるので、ここで取り込んだAD値は、当該ハンマ2のレスト位置に相当するデータとして参照される「レスト値R」としてRAM等適宜のメモリ内に記憶される。ステップS2では、前記ステップS1で取り込んだレスト値Rと前記キャリブレーション比を用いて、ハンマ2のエンド位置の参照値「エンド値E」を算出し、該算出したエンド値Eを前記RAM等適宜のメモリ内に記憶する。
また、ステップS3では、キャリブレーション比を用いてハンマ2の第1参照位置M1及び第2参照位置M2に相当するデータとして参照される参照値「第1参照値m1」及び「第2参照値m2」を算出し、該算出した第1参照値m1及び第2参照値m2を該RAM等適宜のメモリ内に書き込む。前記第1参照値m1及び第2参照値m2は、後述する当該ハンマの速度の算出処理や、打弦有無判定処理等に際して参照される。なお、鍵1をはじめとしてその他の可動部材についても同様に、電源投入時に、センサ出力から参照位置パラメータを設定しうる(ステップS4)。
図4は、信号処理部27において実行されるハンマ速度を求めるルーチンの一例を示すフローチャートである。このルーチンは、例えば、演奏者による演奏操作時の演奏の記録処理(演奏データの生成処理)等において、当該自動演奏ピアノの通常の動作中の主要なルーチンの1つとして実行される。この処理は、88個の各ハンマについて行うものであるが、ここでは或る1つのハンマ2についての処理のみ説明し、他を代表するものとする。図示の通り、このルーチンはステップS10〜S16の処理を所定の起動周期に従ってループするようになっている。
ステップS10において、信号処理部27では、センサ26から時々刻々出力されるAD値を当該ルーチンの1回の起動機会毎に取り込み、前記取り込んだAD値をその時刻情報TIMEと共にRAM等適宜のメモリ内に格納する。ここで、信号処理部27は、ある時点から過去20回分のサンプリング時点で取り込んだAD値及びその時刻情報TIMEからなるデータセットを格納しておき、これら20個のデータセットから図5(a)に示すようなデータテーブルTABLE1を作成する。テーブルTABLE1には、図示の通り、過去20回分のサンプリング点で取り込んだAD値とその時刻情報のデータセットが順次記述されており、信号処理部27では、テーブルTABLE1により、所定時間内における時間的推移に応じたハンマの連続的な動作位置の情報を得る。
ステップS11では、取り込んだAD値からハンマ動作(つまり鍵操作)の有無の判定を行う。ハンマ動作の有無判定は、例えば、前述のレスト値Rを参照して、取り込まれたAD値が非押鍵状態(レスト位置)から変位しているか否かによって判定できる。ハンマ動作(鍵操作)がなければ(ステップS11のno)、処理は当該ルーチンの先頭に戻る。
一方、ハンマ動作(鍵操作)があれば(ステップS11のyes)、ステップS12において、現時点で取り込まれたAD値が第2参照値m2を越えたかどうか、つまり、ハンマ2のストローク位置が第2の参照位置M2よりも上方に変位したかどうかを判定する。第2参照位置M2は、前述の通りエンド位置から0.5mm下がった位置である。これは、ハンマ2が打弦する位置(エンド位置)の直前の位置であり、この参照位置M2をハンマ2が超えれば、打弦が行われる(エンド位置に達する)だろうと推断しうる推定打弦位置として規定されている。よって、信号処理部27では、AD値が該第2参照値m2を越えた時点(つまり、ハンマ2が推定打弦位置を越えた時点)で「当該ハンマ2による打弦が有った」と推定することができる。このようにセンサ26から出力されるAD値と閾値に基づき打弦有無の推定を行うことは、ハンマ動作判断の、ハンマ実動作に対するリアルタイム性、すなわち、迅速な動作判断という点で有利である。この実施例においては、詳しくは後述するような判断構成によってキャリブレーション比の補正を行うことで、ステップ12の打弦有無推定をより正確に行うことができるようになることが後段から明らかになる。
そして、ステップS13では、前記ステップS12での判断(現時点で取り込んだAD値が参照値m2を越えたかどうか?)に応じて、第1の打弦ステートst1の設定を行う。第1の打弦ステートst1は、AD値と参照値m2による打弦有無推定の結果に応じて、「推定打弦」の有無の状態を識別する2状態のステートである。AD値が参照値m2を越えていれば、第1の打弦ステートst1が「推定打弦有り」状態に設定される。なお、通常(すなわち、ステップS12での参照値m2越えが否の状態)では、第1の打弦ステートst1は非打弦(推定打弦無し)に設定されている。
ステップS14では、図5(a)のテーブルTABLE1を参照して、20点のサンプリング時点のうちから、現時点からみて過去5点前のサンプリング時点においてハンマ2の動作向きが反転したかどうかを調べる。ハンマ2の動作が反転した時点は、テーブルTABLE1に基づきAD値の増減変化の状態から特定できる。ここで、説明の便宜上、当該ハンマ2がレスト値にあるときのAD値の数値を最大値AD(MAX)で表し、エンド位置にあるときのAD値を最小値AD(MIN)で表すものとすると、ハンマ2の一回の往復変位(つまりレスト位置からエンド位置に至り、そこから再びレスト位置に戻る変位)におけるAD値の増減特性は、基本的には次の通りである。すなわち、ハンマ2の往路行程(レストからエンドに向かう動き)では、センサ26から出力されるAD値は、最大値AD(MAX)から漸減変化し、ハンマ軌道の頂点(エンド位置相当)にて最小値AD(MIN)になり、ハンマの復路行程(エンドからレストに戻る動き)では、該最小値AD(MIN)から漸増変化してレスト位置にて最大値AD(MAX)に戻る。すなわち、AD値の変動が減少から増加に転じた時点において、ハンマ2の動作向きが反転した時点と特定できる。
信号処理部27は、当該ルーチンの起動機会毎に、テーブルTABLE1を参照して、最新のサンプリング時点からみて過去5点前のサンプリング時点前後でのAD値変動を調べておりハンマ2の動作が反転する時点を探している。そして、そのハンマ2の動作向きが反転した時点が特定されると、該特定された時点をハンマ移動のピーク(つまり打弦点)に相当する基準時点として、該基準時点から前後5点のサンプリング時点でのデータセットを抽出し、図5(b)に示すようなデータテーブルTABLE2を作成するのである。ここで、前記基準時点は、テーブルTABLE1内の或るサンプリング時点(例えば最新のサンプリング時点)からみて過去5点前のサンプリング時点に相当するものであるから、テーブルTABLE2は、該或るサンプリング時点から過去11点のサンプリング時点におけるデータセットから構成される。
図5(b)に示すように、テーブルTABLE2には、前記11点のサンプリング時点でのデータセット(「AD(−5)、t(−5)」〜「AD(5)、t(5)」)と、各時点での速度情報(「v(−4)」〜「v(5)」)及び加速度情報(「a(−4)」〜「a(4)」)が記述される。すなわち、ハンマ2の移動のピーク(打弦点)に相当する基準時点(AD(0),t(0))と、この基準時点に対して時間的に前後5回分のサンプリング時点でにおける各データセットについて、夫々速度情報と加速度情報を求めている。各時点での速度情報は、例えば直線近似により、任意の2点間のデータ(例えば、あるサンプリング時点でのデータセットとその1つ前のサンプリング時点でのデータセット)の差分に基づき算出することができる。また、算出した速度情報を微分演算することで、加速度情報を求めることができる。なお、速度情報及び加速度情報の算出の具体的な方法については、上述の例に限らず、従来から知られるいかなる方法を適用しても差し支えない。なお、速度情報の算出は、任意の2点間のデータの差分に基づき比較的簡単に求めることができるので、テーブルTABLE2の作成に先立って、例えば前述のステップS20において当該テーブルTABLE1を作成する際に算出しておいてもよい。テーブルTABLE1を作成する際に各時点での速度情報を算出しておけば、ステップS25でのハンマ2の動作反転の判別に速度情報を利用することも可能である。
さて、ステップS14において、ハンマ2の動作向きの反転があれば(ステップS14のyes)、ステップS15において、後述の図6に示すサブルーチン「打弦判定処理」を実行する。一方、ハンマ2の動作向きの反転がなければ(ステップS14のno)、先頭のステップS10に戻り上述した処理を繰り返す。
そして、ステップS16では、前記第1の打弦ステートst1及び後述する「打弦判定処理」において設定する第1の打弦ステートst2に基づき、キーオン/オフ(発音指示)信号の生成処理等、その他処理を行う。キーオン/オフ信号は、キーナンバ及びベロシティデータ(打弦速度)を含む演奏データであって、例えばMIDI形式等のデータフォーマットで構成されてよい。
次に、上記図4のステップS15における「打弦判定処理」の手順の一例を図6に示すフローチャートを参照して説明する。先ず、ステップS20において、前記図5(b)に示すテーブルTABLE2を参照して、ハンマ2によって実際に打弦が行われたかどうかの判定を行う。この打弦判定においては、該テーブルTABLE2における基準時点(AD(0),t(0))から、ハンマ2が弦に近接動作する際(打弦前)の速度情報及び加速度情報と、ハンマ2が弦から離間動作する際(打弦後)の速度情報及び加速度情報と、次に述べる判定条件に照合して、ハンマ2によって実際に打弦がなされたかどうかを事後的に判定する。
ステップS20における打弦判定の条件は以下の通りである。
(1)確実に打弦したと判定する条件:基準時点(AD(0),t(0))での速度情報v(0)、及び、基準時点の直前の時点(AD(−1),t(−1))での速度情報v(−1)、及び、基準時点よりも2サンプリング時点前先行した時点(AD(−2),t(−2))での速度情報v(−2)を調べ、速度情報v(0)、v(−1)及びv(−2)の中に、所定速度(例えばv=0.3m/s)以上のものがあるかどうかを調べる。これにより、弦4に対して近接するハンマ2の打弦直前の運動状態の時間的推移を調べ、ハンマ2が打弦を行うのに十分な所定速度(例えばv=0.3m/s以上)で運動していたのであれば、確実に打弦有りと判断することができる。
(2)打弦した可能性が高いと判定する条件:基準時点(AD(0),t(0))での加速度情報の絶対値a(0)、並びに、該基準時点の前後3回分のサンプリング時点(「AD(−3),t(−3)」〜「AD(3),t(3)」)での各加速度情報の絶対値a(−3)〜絶対値a(3)を調べることで、打弦直前に弦4に対して接近するハンマ2の運動状態と、打弦後に弦4に対して離間するハンマ2の運動状態とを調べる。ここで、基準時点での加速度情報の絶対値a(0)が各加速度情報の絶対値a(−3)〜絶対値a(3)の中で最大であれば、当該ハンマ2の運動によって打弦が行われた可能性が高いと判断できる。
(3)非打弦の可能性が高いと判定する条件:前記(2)の判定条件に適合しないこと、つまり、各加速度情報の絶対値a(−3)〜絶対値a(3)の中に基準時点での加速度情報の絶対値a(0)よりも大きい値があること、及び/又は、複数の速度情報から得られる2次曲線に適合させる2次曲線適合法によって求めた基準時点における速度情報v(0)が「0」に近い値である場合は、当該ハンマ2の運動によっては、打弦が行われなかった可能性が高いと判断できる。
ステップS21では、前記ステップS20での判定結果に応じて、当該ハンマ2の動作状態(打弦有無)を表す第2の打弦ステートst2を設定する。第2の打弦ステートst2は、単純に打弦有り(前記条件(1)又は(2)に適う場合)か、打弦無し(前期条件(3)の場合)かを表現するものであってよい。勿論前記条件(1)〜(3)の夫々に応じて、(1)確実に打弦、(2)打弦の可能性大及び(3)非打弦の可能性大、の3状態を表現してもよい。
ステップS22では、前記図4のステップS13で設定した第1の打弦ステートst1と、前記第2の打弦ステートst2とを比較して、双方が示す状態(打弦有無)が一致するかどうかを調べる。不一致であった場合(ステップS22のyes)、処理をステップS23に進めて、図7を参照して説明するサブルーチン「補正処理」を行う。一方、第1のステートst1と第2のステートst2が一致していれば(ステップS22のno)、打弦判定ルーチンを抜けて、前記図4のハンマ速度を求めるルーチンに戻る。
図7を参照して補正処理の手順の一例について説明する。
ステップS30において、両打弦ステートst1、st2の不一致が、以下に述べるいずれのケースに相当するかを判別し、各ケースに応じた補正処理を行う。
(ケース1)打弦ステートst1では非打弦と推定しながらも、打弦ステートst2では打弦有りの判定がなされた場合:打弦ステートst1では非打弦と推定しながらも、実際には打弦動作が行われているので、打弦ステートst1の根拠となる参照位置パラメータとして設定されたエンド値Eが実際のエンド位置よりも高く想定されてしまっていると考えられる。この場合、発音が有ってもキーオン信号が出ない、所謂「音抜け」の問題が生じる。ケース1の場合は、ステップS31において、テーブルTABLE2にて基準時点として設定された時点でのAD値「AD(0)」を新規エンド値Eとして設定して、この新規エンド値Eと現在のレスト値Rとの比を求めることで、当該ハンマ2のキャリブレーション比αを更新する。キャリブレーション比αを更新したら、新規キャリブレーション比から推定打弦位置の閾値(参照値m2)等の各種パラメータ各種パラメータ(各参照値など)を再算出する。
(ケース2)打弦ステートst1では打弦と推定しながらも、打弦ステートst2では打弦無しの判定がなされた場合:打弦ステートst1では打弦と推定しているものの、実際には打弦動作は行われていないので、参照位置パラメータとして設定されたエンド値Eが実際のエンド位置よりも低く想定されてしまっていると考えられる。この場合、発音しないにも関わらずキーオン信号を出してしまうというった、所謂「音鳴り」の問題が生じる。このケース2の場合は、ステップS32において、テーブルTABLE2にて基準時点として設定された時点でのAD値「AD(0)」に対して、所定数値加算した値を新規エンド値Eとして設定して、この新規エンド値Eと現在のレスト値Rとの比を求めることで、当該ハンマ2のキャリブレーション比を更新する。キャリブレーション比を更新したら、新規キャリブレーション比から推定打弦位置の閾値(参照値m2)等の各種パラメータ(各参照値等)を再算出する。そして、当該補正処理のルーチンを抜けて、前記図4に示すルーチンに戻る。
上述の補正処理において、自動演奏ピアノでの演奏動作中にリアルタイムでセンサ26から出力されたAD値を基にキャリブレーション比を適切な値に補正することで、新規キャリブレーション比に基づき、打弦推定位置に相当する閾値(第2の参照値M2)をより適切な値に設定しなおすことができる。従って、例えば経時変化によりアクションメカニズムの相対位置が変動し、キャリブレーション比が変わってしまった場合にも、キャリブレーション比をリアルタイムで補正することができ、連続量センサ26からの出力値(位置情報)と推定打弦位置とに基づく打弦有無推定をより正確に行えるようになる。
信号処理部27において実行されるハンマ速度を求めるルーチンにおける打弦判定構成や、速度算出構成等は上述の図4に示す例に限定されない。以下に、ハンマ速度を求めるルーチンの上記とは別の実施例について説明する。
図8は、信号処理部27において実行するキーオン検出処理(ハンマの速度を求めるルーチン(図4)の別の実施例)の手順の一例を示すフローチャートである。なお、この処理は、88個の各鍵(各ハンマ)について個別に行うものであるが、ここでは或る1つの鍵(ハンマ2)についての処理のみ説明し、これをもって他を代表するものとする。
このルーチンは、例えば、演奏者による演奏操作時の演奏の記録処理(演奏データの生成処理)等における主要なルーチンの1つとして実行されるもので、所定の起動周期(例えば0.36ms毎:2.78kHz)で起動する。すなわち、ステップS50において、該所定の起動周期(例えば0.36ms)毎に、センサ26の出力(AD値)を取り込む。ステップS51では、前記取り込んだAD値に「オフセット値」を加算する処理を行う。前記オフセット値は、センサ26の出力特性におけるオフセット(ここで、オフセットは、出力(AD値)=0の時にフォトダイオードによって取り出される電圧に相当する)であり、センサ26の出力に該オフセット値を加算することでセンサ26の出力特性を修正する。オフセット値は、各センサ毎に固有の値を予め求めたものを、ROM21、RAM22など適宜の記憶装置に記憶させておいてよい。オフセット値によってセンサ26の出力特性を修正することで、ハンマ2の変位に応じた物理量をより確実に検出できる。
ステップS52では、前述図4のステップS11と同様に、取り込んだAD値と参照値として記憶されたレスト値Rを比較して、ハンマ動作(つまり鍵操作)の有無の判定を行う。ハンマ動作(鍵操作)がなければ(ステップS52のno)、処理は当該ルーチンの先頭に戻る。ステップS53では、現在のタイミングで取り込んだAD値と第1の参照位置M1を表す閾値(参照値m1)を比較し、該AD値が参照値m1より大きい(すなわち、ハンマ2の動作位置が参照位置M1に達していない)場合(ステップS53のno)は、処理をリターンする。一方、現在のタイミングで取り込んだAD値が参照値m1より小さい(すなわち、ハンマ2の動作位置が参照位置M1を越えた)場合(ステップS53のyes)、ステップS54において、該現在タイミングのAD値が前回取り込んだAD値から変化したかどうかを調べて、AD値が前回の値から変化していれば(ステップS54のyes)、ステップS55において、該現在タイミングで取り込んだAD値と、その時の時刻情報を、図5(a)に示すデータテーブルTABLE1にバッファする。上述の図4に示す「ハンマ速度を求めるルーチン」では、テーブルTABLE1は、ある時点で取り込んだAD値から過去20回のサンプリング時点のAD値及びそれらの時刻情報TIMEからなる20個のデータセットを取り込んで構成されるものとしたが、当該別の実施例では、テーブルTABLE1は、AD値が参照値m1以下(ハンマの動作位置が参照位置M1に到達)であり、且つ、前回の値から変化した値についてデータのバッファを行うことで作成される。なお、現在のタイミングで取り込んだAD値が前回のサンプリングタイミングで取り込んだAD値から変化していない場合(ステップS54のno)は、ステップS55におけるテーブルTABLE1へのAD値の取り込み処理は行わない。
ステップS56、S57では、現在のタイミングで取り込んだAD値が参照値m1を超えた時点からタイマカウンタCNTのカウントを開始させる処理を行う。すなわち、AD値が参照値m1より小さく(ハンマの動作位置が参照位置M1を越え)、且つ、タイマカウンタCNTがカウント中ではない場合(ステップS56のno)、ステップS57においてタイマカウンタCNTのカウントを開始する。タイマタウンタCNTは、後述する速度算出のための判断条件として参照するパラメータの一つである。
ステップS58では、現在のタイミングで取り込んだAD値と第2の参照位置M2(エンド位置から0・5mm下の打弦直前位置)を表す閾値(参照値m2)を比較して、ハンマのストローク位置が第2の参照位置M2に達したかどうかを判断する。現在のタイミングで取り込んだAD値が参照値m2を超えていれば(ステップS58のyes)、ステップS59において、推定打弦有無を表す前記打弦ステートst1を推定打弦有りに設定する。なお、前述のように打弦ステートst1は通常は打弦無しの状態にセットされているものである。ステップS60では、キーオン信号出力有無を表示するフラグ「キーオンフラグFKON」を調べて、キーオン信号の出力が既に出ているかどうかを調べる。キーオンフラグFKONは、FKON=1でキーオン信号の出力有り、FKON=0でキーオン信号の出力指示なし、を示す2状態フラグである。キーオン信号が未だ出ていなければ(ステップS60のyes:FKON≠1)、ステップS61以下のハンマ速度を求める処理を行う。
ステップS61〜S66では、第1の参照位置M1から第2の参照位置M2の区間を移動するハンマ2の動きに基づきハンマ2の速度情報(ベロシティデータ:V値)を算出する処理を行う。
ステップS61では、タイマカウンタCNTのカウント値が10ms以上か以下を調べる。前述の通りタイマカウンタCNTは、現在AD値が参照値m1を超えた時点からカウント開始するものであるから、ステップS61でタイマカウンタCNTのカウント値が10ms以上か以下を調べることで、ハンマ2の位置が第1の参照位置M1から第2の参照位置M2の区間を移動するのにかかった時間が10ms以上か以下が分かる。カウンタCNTが10ms以下の場合はステップS62に進み、カウンタCNTが10ms以上の場合はステップS63に進む。
カウンタCNTが10ms以下の場合はステップS62において、参照位置M1から第2の参照位置M2の区間に含まれるAD値及び時刻情報を、当該区間のハンマ軌道を得るためのサンプリングポイントとして抽出する。また、カウンタCNTが10ms以上の場合はステップS63において、第2の参照位置M2を越えた時点から過去10msの時間区間に含まれるAD値及び時刻情報を、当該時間区間のハンマ軌道を得るためのサンプリングポイントとして抽出する。そして、ステップS64では、上記ステップS62又は63において抽出した複数個のサンプリングポイントを、例えば多項式適合法等により補間し、これを時間間隔Δtで等サンプリング化することで、A0〜A4の5点の等サンプリングポイントを抽出する。前記A0〜A4の5点の等サンプリングポイントが、速度計算に使用するサンプリングポイントである。このように、この実施例では、所定のハンマストローク区間(M1〜M2)のデータ或いは所定の時間区間(M2から過去10ms)のデータを利用してハンマ2の速度情報(ベロシティデータ:V値)を求めている。
図9(a)、(b)は、ステップS62〜S64において行われるハンマ2の速度の算出用の等サンプリングポイントの抽出の概念図である。図において、横軸に時間tを取り、ハンマ軌道を得るためのサンプリングポイントとして抽出されたAD値を黒丸で示し、等サンプリングポイントを星印で示す。(a)はステップS62に相当し、(b)はステップS63に相当する。(a)に示すように、ステップS62においては、参照位置M1から第2の参照位置M2の区間に含まれるAD値及び時刻情報によって表現されたハンマ2の軌道を、時間間隔Δtで4区間に区切り、A0〜A4の5点の等サンプリング点を、速度計算に使用するポイントとして抽出する。一方、(b)に示すように、ステップS63においては、第2の参照位置M2を越えた時点から過去10msの区間に含まれるAD値及び時刻情報によって表現されたハンマ2の軌道を、等時間間隔Δtで4区間に区切り、A0〜A4の5点の等サンプリング点が、速度計算に使用するポイントとして抽出される。
ステップS65では、前記抽出した5点の等サンプリング点A0〜A4と、時間間隔データΔtにより図9(c)に示すテーブルTABLE1−2を作成する。(c)に示すようにテーブルTABLE1−2は、等サンプリング化された5つのAD値AD[0]〜AD[4]とその時間間隔データΔtによって構成される。ステップS66では、前記テーブルTABLE1−2に基づきハンマ2の速度情報(ベロシティデータ:V値)を算出する。テーブルTABLE1−2に基づきハンマ2の速度を算出する方法は、例えば、下記関数式(1)を用いる方法がある。
式(1)(2*AD[0]+AD[1]−AD[3]−2*AD[4])/10*1/Δt*α
なお、上記式においてαはAD値を物理量に換算するため(単位合わせ)の重み付け係数である。
ステップS67では、前記ステップS66において算出したV値を所定の速度閾値Vthと比較することで、速度条件に基づく打弦判定(キーオン判定)を行う。前記速度閾値Vthは、例えばVth=0.4m/s等である。所定の速度閾値Vthとの比較で非打弦の判定がされれば(ステップS67のno)、ここではキーオンの出力を行わずに、ステップS70以下の処理に進む。
該所定の速度閾値Vthとの比較により打弦有りと判定されれば(ステップS67のyes)、ステップS68において、キーオン信号KON及び前記算出したV値を出力し、ステップS69において、キーオンフラグFKONをFKON=1にセットする。
ステップS70では、前述した図4のステップS14と同様に、図5(a)のテーブルTABLE1を参照して現時点からみて過去5点前のサンプリング時点においてハンマ2の動作向きが往路(打弦)行程から復路(離弦)行程に反転したかどうかを調べる。ハンマ2の動作向きの反転があれば(ステップS69のyes)、ステップS71において、サブルーチン「打弦判定処理」を実行する。打弦判定処理の手順の一例を図10に示す。
図10において、ステップS80では、図5(b)に示すテーブルTABLE2に基づき打弦判定を行う。テーブルTABLE2の作成及び該テーブルTABLE2に基づく打弦判定の詳細は前述図6に説明したものと同様であってよく、ここではその説明を省略する。ステップS81において、前記ステップS80での打弦判定結果に基づき打弦ステートst2を1又は0に設定する。なお、打弦ステートst2は前述と同様にst2=1で打弦。st2=0で非打弦を表すものとする。
ステップS82において、打弦ステートst2、V値(図8のステップS66で算出したもの)及びキーオンフラグFKONを調べ、夫々st2=1(打弦有り)でありながら、V<Vth(V値が速度閾値Vthを越えていない)及びキーオンフラグFKON=0(キーオン出力せず)であるかどうかを調べる。これにより、上記ステップS67の速度閾値の条件では非打弦と判定された場合であっても、テーブルTABLE2に基づく打弦有りの判定が出た場合(ステップS82のyes)は、以下の処理によりキーオンKONを出力するのである。すなわち、ステップS83において、前記のテーブルTABLE1−2を作成して5点の等サンプリング点A0〜A4のAD値(AD[0]〜AD[4])を抽出し、ステップS84において、前記ステップS66と同様に、該抽出したAD[0]〜AD[4]に基づきハンマ速度(V値)を算出する。そして、ステップS85において、キーオン信号KON及び前記算出したV値を出力し、キーオンフラグFKONをFKON=1にセットする。
ステップS86では、前記図8のステップS59で設定した第1の打弦ステートst1と、前記ステップS81において設定した第2の打弦ステートst2とを比較して、双方が示す状態(打弦有無)が一致するかどうかを調べる。不一致であった場合(ステップS86のyes)、ステップS87において「補正処理」を行う。補正処理は前述の図7を参照して説明した処理と同様である。第1のステートst1と第2のステートst2が一致していれば(ステップS86のno)、打弦判定ルーチンを抜けて、前記図8のキーオン検出処理に戻る。
さて、図8に戻ると、ステップS72において、前記ステップS59で設定した第1の打弦ステートst1と、前記ステップS81において設定した第2の打弦ステートst2とを調べて、第1の打弦ステートst1が非打弦(st1=0)且つ第2の打弦ステートst2が打弦(st1=0)であれば(ステップS72のyes)、キーオンKONの出力処理を行う。すなわち、ステップS73において、上記ステップS61〜S66と同様な処理によりハンマ速度(V値)を求め、ステップS74においてキーオン信号KON及び前記算出したV値を出力し、ステップS75においてキーオンフラグFKONをFKON=1にセットする。
なお、当該キーオン検出処理は、上記の処理の後、その他処理(ステップS76)を適宜実行し、リターンする。
以上の手順により、当該キーオン検出処理(ハンマ速度を求めるルーチン)では、打弦前のハンマの近接動作と、打弦後のハンマの離間動作とを考慮して、より正確なキーオンの検出(=MIDIデータの出力)が可能となる。
以上説明した通り、図8〜図10に示す実施例によれば、打弦前の往路行程でのハンマの速度(V値)を利用したキーオンの出力と、打弦後の復路行程でのハンマ速度(V値)を利用したキーオンの出力とを行うことで、可及的リアルタイム性を確保した判断で、且つ、より信頼性の高い発音指示(キーオン)信号の出力が行えるようになるという優れた効果を奏する。
なお、上述の実施例では、所定の動作位置(第1の参照位置M1、第2の参照位置M2)に基づく演奏状態の判別は、ハンマ2の動作位置について行う例を示したが、これに限らず、鍵1その他演奏操作にリンクする部材に、動作検出用のセンサを設け、それらの部材において、適宜の動作位置を閾値として定め、それにより演奏状態の判別を行ってもよい。鍵1その他演奏操作にリンクする部材の動作位置に基づく演奏状態の判別の場合であっても、演奏状態の判別は、結果としてハンマが所定の位置に達したかどうかに関わる。 また、上記実施例では、センサ26を、ハンマのストローク位置を検出する位置センサとして構成したが、これに限らず、センサ26を速度センサ或るは加速度センサとしてもよい。また、位置情報、速度情報及び加速度情報の各情報を夫々独立したセンサによって別々に検出するように構成してもよい。
また、上記の実施例では、ハンマ速度を求めるルーチンなどの種々の信号処理(つまり信号処理部27の動作)は、コンピュータが実行するソフトウェアプログラムによって構成及び実施されるものとしたが、これに限らず、信号処理部27を構成する各モジュールが担う各種演算処理を実行する専用のハードウェア的信号処理装置を具備し、該各モジュールの各種機能をハードウェア装置として構成及び実現することも可能である。また、上記実施例では、自動演奏ピアノとして、自動演奏機能及び演奏操作記録機能を有するアコースティックピアノについて説明したが、ここでアコースティックピアノは、グランドピアノ或いはアップライトピアノの何れであっても差し支えない。また、この発明は、自動演奏ピアノに限らず、消音ピアノに適用することもできる。また、アコースティックピアノに限らず、電子ピアノ等のその他各種鍵盤楽器にも適用可能である。
この発明の一実施例に係る自動演奏ピアノの全体構成を示す図。 同実施例に係る自動演奏ピアノの電気的ハードウェア構成を示すブロック図。 同実施例に係る自動演奏ピアノにおいて電源投入時に実行される処理例を示すフロー。 同実施例に係る自動演奏ピアノにおける主な動作として実行されるハンマ速度を求めるルーチンの一例を示すフロー。 (a)はハンマ動作の時間的推移を表すデータテーブルTABLE1の一例を示す図であり、(b)は前記テーブルTABLE1に基づき作成される打弦直前のハンマの運動状態の時間的推移を表すデータテーブルTABLE2の一例を示す図。 同実施例に係る打弦判定処理の一例を示すフローチャート。 同実施例に係る打弦判定のための補正処理例を示すフローチャート。 この発明の上記とは別の実施例に係るハンマ速度を求めるルーチンであって、キーオンの出力判定の別構成例を示すフローチャート。 (a)、(b)は、同別の実施例に係るハンマ速度の算出用の等サンプリングポイントの抽出の概念図であり、(c)は別の実施例に係るテーブルTABLE1−2の構成例を示す図。 同別の実施例に係る打弦判定処理の一例を示すフローチャート。
符号の説明
1 鍵、2 ハンマ、3 アクションメカニズム、4 弦、5 電磁ソレノイド、6 ダンパ、7 バックチェック、10 再生前処理部、11 モーションコントローラ、12 サーボコントローラ、13 電子楽音発生部、20 CPU、21 ROM、22 RAM、23 記憶装置、24 I/O、25 PWM発生器、26 センサ、27 信号処理部、28 算出部、30 処理部

Claims (8)

  1. 演奏操作子と、
    前記演奏操作子の動作に応じて往復変位し、該変位に応じて他の部材と当接する変位部材と、
    前記変位部材の動作を連続量で検出する検出手段と、
    前記検出手段の検出出力に基づき、前記変位部材が前記他の部材に対して近接する動作と、前記変位部材が前記他の部材から離間する動作とを比較して、前記変位部材が前記他の部材との当接位置に至ったことを判定する判定手段と
    を備える鍵盤楽器。
  2. 更に、前記変位部材の前記他の部材に対する当接を推定する推定手段を有し、
    該推定手段は、前記変位部材と前記他の部材との当接を推定するための基準値と前記検出手段の検出値とに基づき推定を行うことを特徴とする請求項1に記載の鍵盤楽器。
  3. 前記検出手段の検出出力は、前記変位部材の動きを示す第1種の物理量を示す第1物理情報であり、
    前記判定手段は、前記当接位置を含む前記変位部材の移動範囲における該変位部材の動きを示す第2種の物理量を示す第2物理情報に基づき、該変位部材の当接を判定するものである請求項1に記載の鍵盤楽器。
  4. 前記検出手段は前記変位部材の位置情報を連続的に検出する連続量センサであって、
    前記第1物理情報は該センサから出力される位置情報であり、
    前記第2物理情報は、該センサから出力される位置情報に基づき算出された前記変位部材の動作の速度情報及び加速度情報の少なくとも一方であり、
    前記判定手段は、前記算出された速度情報及び加速度情報の少なくとも一方の時間的推移に応じた状態から、前記変位部材が他の部材に当接したか否かを判定するものであることを特徴とする請求項1に記載の鍵盤楽器。
  5. 更に、前記判定手段は、前記検出手段の複数タイミングにおける検出出力に基づく近似式に基づき第2種の物理量を示す第2物理情報を算出し、該算出した第2物理情報に基づき、該変位部材の当接を判定するものである請求項3に記載の鍵盤楽器。
  6. 演奏操作子と、
    前記演奏操作子の動作に応じて往復変位することで、発音部による発音を制御する変位部材と、
    前記演奏操作子及び前記変位部材の少なくともいずれか一方の動きを検出する検出手段と、
    前記検出手段の出力に基づき前記変位部材が所定位置に達したかどうかを判断する位置判断手段と、
    前記検出手段の出力に基づき前記変位部材の速度情報を得る速度情報出力手段と、
    前記速度情報出力手段が出力する速度情報が所定の速度を越えているかどうかを判別する速度判別手段と、
    前記位置判断手段の判断結果並びに前記速度判別手段の判別結果に基づき発音指示情報を生成する発音指示情報生成手段であって、該速度判別手段により前記所定の速度を越えていると判別された場合は、少なくとも前記変位部材の往路変位時の速度情報に基づき発音指示情報を生成し、また、該速度判別手段により前記所定の速度を越えていないと判別された場合は、少なくとも前記変位部材の復路変位時の速度情報に基づき発音指示情報を生成する発音指示情報出力手段と
    を具えた楽器。
  7. 演奏操作子の動作に応じて往復変位する変位部材の動作に基づき発音指示情報を生成するための方法であって、
    前記演奏操作子及び前記変位部材の少なくともいずれか一方の動きを検出する検出ステップと、
    前記検出ステップでの検出結果に基づき前記変位部材が所定位置に達しかどうかを判断する位置判断ステップと、
    前記検出ステップでの検出結果に基づき前記変位部材の速度情報を出力する速度出力ステップと、
    前記速度出力ステップにおいて出力された速度情報が所定の速度を越えているかどうかを判別する速度判別ステップと、
    前記位置判断ステップの判断結果並びに前記速度判別ステップの判別結果に基づき発音指示情報を生成するステップであって、該速度判別ステップにより前記所定の速度を越えていると判別された場合は、少なくとも前記変位部材の往路変位時の速度情報に基づき発音指示情報を生成し、また、該速度判別ステップにより前記所定の速度を越えていないと判別された場合は、少なくとも前記変位部材の復路変位時の速度情報に基づき発音指示情報を生成する発音指示情報出力ステップと
    を含む方法。
  8. 演奏操作子の動作に応じて往復変位する変位部材の動作に基づき発音指示情報を生成するためにコンピュータが実行するプログラムであって、
    前記演奏操作子及び前記変位部材の少なくともいずれか一方の動きを検出する検出ステップと、
    前記検出ステップでの検出結果に基づき前記変位部材が所定位置に達しかどうかを判断する位置判断ステップと、
    前記検出ステップでの検出結果に基づき前記変位部材の速度情報を出力する速度出力ステップと、
    前記速度出力ステップにおいて出力された速度情報が所定の速度を越えているかどうかを判別する速度判別ステップと、
    前記位置判断ステップの判断結果並びに前記速度判別ステップの判別結果に基づき発音指示情報を生成するステップであって、該速度判別ステップにより前記所定の速度を越えていると判別された場合は、少なくとも前記変位部材の往路変位時の速度情報に基づき発音指示情報を生成し、また、該速度判別ステップにより前記所定の速度を越えていないと判別された場合は、少なくとも前記変位部材の復路変位時の速度情報に基づき発音指示情報を生成する発音指示情報出力ステップと
    を含むプログラム。





JP2004273629A 2003-12-22 2004-09-21 楽器及び発音指示情報を生成するための方法及び該方法をコンピュータで実行するためのプログラム。 Expired - Fee Related JP4626241B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004273629A JP4626241B2 (ja) 2003-12-24 2004-09-21 楽器及び発音指示情報を生成するための方法及び該方法をコンピュータで実行するためのプログラム。
US11/019,985 US7285718B2 (en) 2003-12-22 2004-12-21 Keyboard musical instrument and other-type musical instrument, and method for generating tone-generation instructing information
EP04030531A EP1555651A1 (en) 2003-12-22 2004-12-22 Musical instrument and method for generating tone-generation instructing information

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003428461 2003-12-24
JP2004273629A JP4626241B2 (ja) 2003-12-24 2004-09-21 楽器及び発音指示情報を生成するための方法及び該方法をコンピュータで実行するためのプログラム。

Publications (2)

Publication Number Publication Date
JP2005208569A true JP2005208569A (ja) 2005-08-04
JP4626241B2 JP4626241B2 (ja) 2011-02-02

Family

ID=34914048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004273629A Expired - Fee Related JP4626241B2 (ja) 2003-12-22 2004-09-21 楽器及び発音指示情報を生成するための方法及び該方法をコンピュータで実行するためのプログラム。

Country Status (1)

Country Link
JP (1) JP4626241B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007052357A (ja) * 2005-08-19 2007-03-01 Yamaha Corp 電子鍵盤楽器およびプログラム
JP2008256877A (ja) * 2007-04-04 2008-10-23 Roland Corp 鍵盤装置
CN111295706A (zh) * 2017-11-07 2020-06-16 雅马哈株式会社 音源、键盘乐器以及程序

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695676A (ja) * 1992-07-17 1994-04-08 Yamaha Corp 電子楽器
JPH07175471A (ja) * 1993-12-17 1995-07-14 Yamaha Corp 自動ピアノ
JPH08160942A (ja) * 1994-12-01 1996-06-21 Yamaha Corp 自動演奏ピアノ
JPH0944148A (ja) * 1996-05-24 1997-02-14 Yamaha Corp 押鍵情報出力装置
JPH10232672A (ja) * 1997-02-21 1998-09-02 Yamaha Corp 自動ピアノの演奏データ変換装置
JP2002156967A (ja) * 2000-11-17 2002-05-31 Yamaha Corp ハンマ検出装置
JP2002351469A (ja) * 2001-05-24 2002-12-06 Kawai Musical Instr Mfg Co Ltd 鍵動作検出装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695676A (ja) * 1992-07-17 1994-04-08 Yamaha Corp 電子楽器
JPH07175471A (ja) * 1993-12-17 1995-07-14 Yamaha Corp 自動ピアノ
JPH08160942A (ja) * 1994-12-01 1996-06-21 Yamaha Corp 自動演奏ピアノ
JPH0944148A (ja) * 1996-05-24 1997-02-14 Yamaha Corp 押鍵情報出力装置
JPH10232672A (ja) * 1997-02-21 1998-09-02 Yamaha Corp 自動ピアノの演奏データ変換装置
JP2002156967A (ja) * 2000-11-17 2002-05-31 Yamaha Corp ハンマ検出装置
JP2002351469A (ja) * 2001-05-24 2002-12-06 Kawai Musical Instr Mfg Co Ltd 鍵動作検出装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007052357A (ja) * 2005-08-19 2007-03-01 Yamaha Corp 電子鍵盤楽器およびプログラム
JP4711179B2 (ja) * 2005-08-19 2011-06-29 ヤマハ株式会社 電子鍵盤楽器およびプログラム
JP2008256877A (ja) * 2007-04-04 2008-10-23 Roland Corp 鍵盤装置
CN111295706A (zh) * 2017-11-07 2020-06-16 雅马哈株式会社 音源、键盘乐器以及程序
CN111295706B (zh) * 2017-11-07 2024-05-17 雅马哈株式会社 音源、键盘乐器以及记录介质

Also Published As

Publication number Publication date
JP4626241B2 (ja) 2011-02-02

Similar Documents

Publication Publication Date Title
JP4222280B2 (ja) 演奏情報出力装置及び楽器及び演奏情報を出力するための方法及び該方法をコンピュータで実行するためのプログラム。
JP4483636B2 (ja) 鍵盤楽器
JP4479554B2 (ja) 鍵盤楽器
JP3900712B2 (ja) 鍵盤楽器のセンサ較正装置及びセンサ較正方法
JP4967406B2 (ja) 鍵盤楽器
KR100716099B1 (ko) 경년 열화가 없는 트랜스듀서, 그를 사용하는 악기 및 사용방법
JP5028849B2 (ja) 鍵盤楽器のペダルのハーフポイント特定方法及び装置
JP3890649B2 (ja) 自動ピアノの演奏データ変換装置
JP5162938B2 (ja) 楽音発生装置及び鍵盤楽器
US6407326B1 (en) Electronic musical instrument using trailing tone different from leading tone
EP1555651A1 (en) Musical instrument and method for generating tone-generation instructing information
JP4687474B2 (ja) 鍵盤楽器
US5652399A (en) Automatic player piano and estimator for acceleration of depressed key incorporated in the automatic player piano
JP4193752B2 (ja) 自動演奏ピアノ
JPH05313655A (ja) 鍵盤楽器の演奏記録装置およびその演奏再生装置
JP2014112221A (ja) 発音機構における打撃部材のための駆動制御装置
US6075196A (en) Player piano reproducing special performance techniques using information based on musical instrumental digital interface standards
JP4626241B2 (ja) 楽器及び発音指示情報を生成するための方法及び該方法をコンピュータで実行するためのプログラム。
EP2750128A1 (en) Method and device for identifying half point of pedal on keyboard musical instrument
JP3596015B2 (ja) 自動ピアノ
JP2006003444A (ja) 自動演奏ピアノ
JP4218620B2 (ja) 鍵盤楽器
JP4228913B2 (ja) 楽器
JP2006350384A (ja) 自動演奏ピアノ
JP4033206B2 (ja) 自動ピアノ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101012

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101025

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4626241

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees