以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の一実施の形態に係る鍵盤楽器の構成を、ある1つの鍵に着目して示した部分断面図である。
本鍵盤楽器30は、自動演奏ピアノとして構成される。鍵盤楽器30は、通常のアコーステックグランドピアノと同様、鍵31の運動をハンマHMに伝達するアクションメカニズム33と、ハンマHMにより打撃される弦34と、弦34の振動を止めるためのダンパ36とを備えている。
鍵31は、複数が左右方向に並列に配列され、ハンマHM、アクションメカニズム33は、鍵31に対応して設けられる。以降、鍵31の奏者側を「前方」と称する。
ハンマHMは、ハンマシャンク58及びハンマヘッド57を備え、押鍵動作により回動動作し、ハンマヘッド57が対応する弦34を打撃することで発音がなされる。
鍵盤楽器30において、キードライブユニット20が、鍵31ごとに設けられ、鍵31の後端部側の下方に配置されている。また、キーセンサユニット37が各鍵31に対応して設けられる。キーセンサユニット37は、各鍵31の前部下方に配置され、鍵31の位置を連続的に検出し、検出結果に応じた検出信号を出力する。
キーセンサユニット37に適用されるセンサは、例えば、発光ダイオード、発光ダイオードの光を受光し受光量に応じた検出信号を出力する光センサ、および鍵31の押鍵量に応じて受光センサへの受光量を変化させる遮光板を有する。キーセンサユニット37から出力されるアナログ信号である検出信号は、不図示のA/D変換器によりデジタル信号に変換されてサーボコントローラ42に供給される。
また、各ハンマHMに対応してハンマセンサ59が設けられる。ハンマセンサ59は、ハンマHMが往方向の回動終了位置近傍に到達したときのハンマシャンク58の位置に配置される。ハンマセンサ59の構成は、キーセンサユニット37に適用されるセンサと同様である。ハンマセンサ59は、ハンマシャンク58の通過を検出することでハンマHMの位置を連続的に検出し、検出結果に応じた検出信号を出力する。
ただし、キーセンサユニット37、ハンマセンサ59は、鍵31、ハンマHMの位置を連続的に検出できるか、あるいは速度を検出できる構成であればよく、センサ種類は限定されない。
自動演奏データ(自動演奏情報)中の発音イベントデータで規定される音高に対応するキードライブユニット20に駆動信号が供給されると、そのプランジャが上昇して対応する鍵31の後端部を突き上げる。これにより鍵31が押下され、弦34がハンマHMのハンマヘッド57により叩かれることによりピアノ音が発音されるようになっている。
鍵盤楽器30にはまた、ダンパ36を駆動するためのラウドペダル(ダンパペダル)であるペダルPDが設けられる。また、ペダルPDを駆動するためのペダルアクチュエータ26と、ペダルPDの位置を検出するペダル位置センサ27とが設けられている。ペダル位置センサ27の構成は、キーセンサユニット37に適用されるセンサと同様である。ペダルアクチュエータ26は、ソレノイドと、ペダルPDに連結されたプランジャ(図示せず)とを有し、駆動信号が供給されると、上記プランジャが移動してペダルPDが駆動されるようになっている。
ダンパ36は、高音域を除いて設けられ、各鍵31に対応して設けられている。ダンパレバー51の前部にダンパワイヤ52が連結され、ダンパワイヤ52の上端部にダンパ36が取り付けられている。ダンパ36の下部には、弦34に対して離接するダンパフェルトFeDが設けられている。ペダルPDが踏み込まれた場合は、全てのダンパ36が一斉に上昇動作する。しかし、ペダルPDが踏み込まれていない状態では、押鍵された鍵31に対応するダンパ36だけが上昇動作する。
鍵31の後方において、本鍵盤楽器30に固定されたダンパレバーフレンジ53に、ダンパレバー51の後端部が回動自在に支持される。ダンパレバー51の下方にリフティングレール54が配置される。リフティングレール54は全鍵幅に亘ってほぼ水平に延設され、ペダルPDに対して不図示の突き上げ棒を介して連結支持されている。そして、ペダルPDの上下動作に突き上げ棒が連動し、それに応じてリフティングレール54も上下動作する。
リフティングレール54の上部にはダンパレバーフェルトFePが配置される。リフティングレール54が上昇すると、ダンパレバーフェルトFePがダンパレバー51を駆動し、ダンパレバー51は図1の反時計方向に回動する。それにより、ダンパワイヤ52を介してすべてのダンパ36が上昇し、理想的には各ダンパフェルトFeDが弦34から一斉に離間する。
鍵31の後端部上部には、ダンパレバークッションフェルト(以下、鍵フェルトFeKと記す)が設けられる。非押鍵状態では、ダンパ36の自重によりダンパフェルトFeDが弦34に当接している。押鍵されると、対応する鍵フェルトFeKがダンパレバー51を駆動してダンパレバー51が図1の反時計方向に回動する。それによりダンパワイヤ52を介して対応するダンパ36が上昇し、そのダンパ36のダンパフェルトFeDが弦34から離間する。
鍵盤楽器30はまた、ピアノコントローラ40、モーションコントローラ41及びサーボコントローラ42を備える。ピアノコントローラ40は、モーションコントローラ41に自動演奏データを供給する。この演奏データは、図11にも例示するが、例えば、MIDI(Musical Instrument Digital Interface)コードで構成され、鍵31及びペダルPDの動作を規定する。モーションコントローラ41は、供給された演奏データに基づいて、各時刻tにおけるペダルPD及び鍵31の各目標位置に対応した位置制御データrp、rkをそれぞれ生成し、サーボコントローラ42に供給する。一方、ペダル位置センサ27の検出信号が、フィードバック信号ypとしてサーボコントローラ42に供給され、また、これと同様にキーセンサユニット37の検出信号がフィードバック信号ykとしてサーボコントローラ42に供給される。なお、フィードバック信号ykとして、キードライブユニット20から出力される信号を用いてもよい。
サーボコントローラ42は、位置制御データrp、rkに応じた励磁電流として電流指示値up(t)、uk(t)を生成し、それぞれペダルアクチュエータ26、キードライブユニット20に供給する。これら電流指示値up(t)、uk(t)は、実際には、ペダルアクチュエータ26、キードライブユニット20のそれぞれのソレノイドコイルに流すべき平均電流の目標値に応じたデューティ比となるようにパルス幅変調を施したPWM信号である。
自動演奏データに基づく自動演奏においては、サーボコントローラ42は、位置制御データrp、rkとフィードバック信号yp、ykとをそれぞれ比較し、両者がそれぞれ一致するように電流指示値up(t)、uk(t)を随時更新して出力することでサーボ制御を行う。これにより、自動演奏データに従って、ペダルPD及び鍵31が駆動されて、自動演奏がなされる。
図2は、鍵盤楽器30の制御機構の構成を示すブロック図である。
鍵盤楽器30の制御機構は、CPU11に、バス15を通じて、上記キードライブユニット20、ペダルアクチュエータ26、ペダル位置センサ27、キーセンサユニット37、ハンマセンサ59、ROM12、RAM13、インターフェイスユニットI/F14、タイマ16、表示部17、外部記憶装置18、操作部19、音源回路21、効果回路22及び記憶部25が接続されて構成される。音源回路21には効果回路22を介してサウンドシステム23が接続されている。
CPU11は、本鍵盤楽器30全体の制御を司る。ROM12は、CPU11が実行する制御プログラムやテーブルデータ等の各種データを記憶する。RAM13は、演奏データ、テキストデータ等の各種入力情報、各種フラグやバッファデータ及び演算結果等を一時的に記憶する。インターフェイスユニットI/F14はMIDIインターフェイスであり、不図示のMIDI機器等に対して自動演奏データをMIDI信号として授受し、あるいはネットワークインターフェイスを介して自動演奏データを授受する。タイマ16は、タイマ割り込み処理における割り込み時間や各種時間を計時する。表示部17は、例えばLCDを含んで構成され、楽譜等の各種情報を表示する。外部記憶装置18は、フレキシブルディスク等の不図示の可搬記憶媒体に対してアクセス可能に構成され、これら可搬記憶媒体に対して演奏データ等のデータを読み書きすることができる。操作部19は、不図示の各種操作子を有し、自動演奏のスタート/ストップの指示、曲選択等の指示、各種設定等を行う。記憶部25は、フラッシュメモリ等の不揮発メモリで構成され、自動演奏データ等の各種データを記憶することができる。
音源回路21は、演奏データを楽音信号に変換する。効果回路22は、音源回路21から入力される楽音信号に各種効果を付与し、DAC(Digital-to-Analog Converter)やアンプ、スピーカ等のサウンドシステム23が、効果回路22から入力される楽音信号等を音響に変換する。
なお、上記モーションコントローラ41及びサーボコントローラ42の機能は、実際には、CPU11、タイマ16、ROM12、RAM13等の協働作用によって実現される。各種センサ類の信号は不図示のA/D変換器を介してCPU11に供給される。
押鍵の往行程において、押鍵の影響がダンパ36に伝達されない遊び領域(乃至レスト領域)と、弦34に対するダンパ36の押接力の減少が開始される状態からダンパ36が弦34に対して非接触状態となるまでの「ハーフ領域」と、その後、ダンパ36が弦34から完全に離間状態となる「弦開放領域」という3つの領域が存在する。一方、ペダルPDの踏み込み行程においても同様に、遊び領域、ハーフ領域、弦開放領域という3つの領域が存在する。
鍵31と該鍵31に対応するダンパ36との関係におけるハーフ領域を、「鍵ダンパハーフ領域」と称する。一方、ペダルPDとダンパ36との関係におけるハーフ領域を、「ハーフペダル領域」と称する。
ただし、ペダルPDが動作したときに各ダンパ36が弦に対して離接するタイミングはダンパ36ごとに異なり得る。ペダルPDの操作による、ペダルPDとダンパ36との関係における「ハーフペダル領域」は、全てのダンパ36を一体に動作するものと見なした場合の概念であり、奏者は、ダンパ36を有する音高の全体として1つのハーフ特性を認識してペダルPDの操作を行う。
ハーフペダル領域を厳密に考えて、ダンパ36ごとに異なり得るものと想定すると、ペダルPDの踏み込み行程でいえば、ハーフペダル領域の始点は、リフティングレール54により全ダンパ36のうち最初のダンパ36が駆動開始状態となってから最後のダンパが駆動開始状態となるまでの間にあると考えられる。ハーフペダル領域の終点は、全ダンパ36のうち最初のダンパ36が離弦してから最後のダンパが離弦するまでの間にあると考えられる。
実際、横方向に長尺なリフティングレール54は、ペダルPDとの連結部において支持され、支持部を支点とした片持ち梁の体裁となっており、撓みが生じ得るし、必ずしも正確に水平になっているとも限らない。そのため、左右方向の部位によってリフティングレール54の上下方向の位置が厳密には異なり、それによりハーフペダル領域の始点、終点がダンパ36ごとに異なり得るのである。また、各々のダンパ36の配置や寸法のばらつき、さらには、ダンパフェルトFeD及びダンパレバーフェルトFePの弾性や寸法のばらつきも、ハーフペダル領域に関与してくる。
一方、鍵ダンパハーフ領域は鍵31ごとに微妙に異なる。が、本実施の形態においては、ハーフペダル領域がダンパ36ごとに把握されたハーフ情報71(図3、図7)、鍵ダンパハーフ領域がダンパ36ごとに把握されたハーフ情報76(図4、図7)のいずれもが、予め計測等によって既知であり、ROM12等に記憶されているとする。
図3は、ペダルPDとダンパ36との関係におけるダンパ36ごとのハーフペダル領域XL0Sの分布を示すハーフ情報71の概念図である。図3の横軸がキーナンバ、縦軸がペダルストローク(mm)である。鍵31ごと、すなわちダンパ36ごとに、ハーフ域開始点XL0Cからハーフ域終了点XL0Fまでの領域がハーフペダル領域XL0Sである。
ハーフペダル領域XL0Sを把握する上で、ペダルPDまたはそれに連動する部位のどこかを、ペダルストロークを表現する際の特定部位として決めておく必要がある。本実施の形態では、一例として、リフティングレール54の上端位置を特定部位と定める。ハーフペダル領域XL0Sは、この特定部位の、レスト位置(非踏み込み位置)からの踏み込み方向(往方向)への変位量(mm)で表現されるとする。ただし、ペダルPDの先端部等、他の部位を、ペダルストロークの表現の際の特定部位としてもよい。変位する特定部位の上下方向の位置のことを、便宜上「ペダル位置」とも呼称することがある。
後述するように、図3に示すペダルPDのハーフ情報71に基づいて、ハーフ領域決定部73(図7)が、ペダルストロークにおける単一のハーフ領域を決定する。このハーフ領域は、ダンパ36ごとではなく、ペダル操作の際に全体として1つのハーフ特性として認識される領域に相当する。ハーフ領域の決定手法は1つに限定されないが、一例として、各ダンパ36に対応するハーフペダル領域のエンド側の端位置のうち最もエンド側にある端位置と、各ダンパ36に対応するハーフペダル領域のレスト側の端位置のうち最もレスト側にある端位置とに基づいて決定される。例えば、全ダンパの情報あるいは低音の一部の領域のダンパの情報の平均値、または、全ダンパの情報あるいは低音の一部の領域のダンパの情報の一番浅い深さのもの等で決定される。この場合、ハーフ領域は、図3に示すHFR−1となる。また、ハーフポイントは、HFR−1を所定の内分比(例えば、1:1)で内分するHP−1となる。
なお、既知となっているペダルPDのハーフ情報71は、ハーフペダル領域XL0Sで規定されるものに限られず、図3に併せて示したように、ダンパ36ごとにハーフペダルポイントXL0HPが特定された情報であってもよい。この場合、ペダルストロークにおける全体としての単一のハーフ領域は、例えば、全てのハーフペダルポイントXL0HPの最大値と最小値とに基づいて決定され、HFR−2となる。ハーフポイントは、HFR−2を所定の内分比(例えば、1:1)で内分するHP−2となる。
図4は、各鍵31と対応するダンパ36との関係における鍵ダンパハーフ領域の分布の一部を示すハーフ情報76の概念図である。図4の横軸がキーナンバ、縦軸が鍵ストローク(mm)である。鍵ダンパハーフ領域は、鍵31ごと、すなわちダンパ36ごとに異なっている。
ここで、鍵31の通常押鍵される部位を、鍵ストロークを把握する際の特定部位として定める。そして、鍵ダンパハーフ領域は、特定部位の、レスト位置(非押鍵位置)からの押鍵方向(往方向)への変位量(mm)で表現されるとする。ただし、鍵31の後端部等、他の部位を、鍵ストロークの把握の際の特定部位としてもよい。
また、鍵ダンパハーフ領域内の鍵ダンパハーフポイントHPkが鍵31ごとに把握される。この鍵ダンパハーフポイントHPkは、例えば、各鍵31の鍵ダンパハーフ領域所定の内分比(例えば、1:1)で内分する点として定める。
なお、既知となっている鍵31のハーフ情報76は、鍵ダンパハーフ領域で規定されるものに限られず、鍵31ごとに鍵ダンパハーフポイントHPkが特定された情報であってもよい。
図5(a)、(b)は、ペダルPDのハーフ情報71(図3)のフォーマット例を示す図である。
ペダルPDのハーフ情報71(図3)において、図5(a)に例示するように、全分布について、フロア点(ハーフ域開始点XL0C)、セイル点(ハーフ域終了点XL0F)及びハーフ点(ハーフペダルポイントXL0HP)がダンパ36ごとに記録される。フロア点及びセイル点によりハーフペダル領域XL0Sが規定される。あるいは、図5(b)に例示するように、2次関数近似で表現する場合は、係数を記録しておくことでもよい。
鍵31のハーフ情報76(図4)の記録においても、フォーマット形式は問わず、ペダルPDのハーフ情報71と同様の形式を採用することができる。
図6は、ペダルPDのペダルストロークと所定のストロークとの対応関係を規定するペダルPD用の変換情報を示す図である。図7は、本鍵盤楽器30において自動演奏・記録の処理を行うための機能構成を示すブロック図である。
一部を上述したが、本実施の形態では、自動演奏情報である自動演奏データ77に基づき、ペダルPD及び鍵31を自動動作させて自動演奏を行う。この自動演奏データ77は、例えば、図11に例示するようなフォーマットで記録されたデータである。ただし、用いる自動演奏データは一般に流通する公知のものでもよい。自動演奏データ77は、当該鍵盤楽器30で記録されたものであってもよいし、他の鍵盤楽器で記録されたものであってもよいし、演奏記録を経ずに作成されたものであってもよい。
自動演奏データ77は、ペダルPD、鍵31のそれぞれに関し、所定のストローク(一般のダンパペダル、鍵の各ストローク)における所定の領域がハーフペダル領域、鍵ダンパハーフ領域として設定されている情報である。
ペダルPDに関して例示すると、ペダルPDに関する所定の領域を、MIDI値で規定されるハーフ開始点MFからハーフ終了点MCまでの領域とする。一方、ハーフ情報71に基づいてハーフ領域決定部73(図7)により決定される当該鍵盤楽器30のペダルPDのペダルストロークにおける単一のハーフ領域を、ストローク位置(mm)として規定されるハーフ開始点mFからハーフ終了点mCまでの領域とする。
図6に示すペダルPD用の変換情報は、ペダルPDに関する自動演奏(再生)及び演奏記録に用いられ、自動演奏データにおけるハーフ領域を当該鍵盤楽器30におけるペダルPDのハーフ領域に対して相互に正規化するための情報である。すなわち、ハーフ領域決定部73により決定されたハーフ領域とペダルPDに関する所定の領域とが対応するように、ペダルPDのペダルストロークと所定のストロークとの対応関係を規定する情報である。
具体的には、図6に示すように、ハーフ開始点MFに対してハーフ開始点mFが対応し、ハーフ終了点MCに対してハーフ終了点mCが対応し、ハーフポイントMHPに対してハーフポイントmHPが対応する。そしてこれらに応じて、ハーフ領域同士、及びペダルストローク同士が対応するように規定されている。
従って、例えば、自動演奏データ77によりハーフ開始点MFが出力されているとき、ペダルPDはハーフ開始点mFに位置するよう制御される。このハーフ開始点MFに対応するハーフ開始点mFの値は、当該鍵盤楽器30について固有に決められる値であり、ハーフ情報71に基づき設定される。ハーフ終了点mCやハーフポイントmHPについても同様である。また、鍵31に関する鍵31用の変換情報は図示しないが、鍵31ごと、すなわちダンパ36ごとに、図6に示すのと同様の構成の変換情報が、鍵31に関する自動演奏(再生)及び演奏記録に用いられる。
ところで、変換情報は、変換情報生成部74によって実行される図12(b)に示すリフティングレールノートオフ受信処理において補正処理を施すようにしてもよい。例えば、リフティングレールノートオフ測定値データを受信し(ステップS501)、変換情報における曲線のカーブ(再生ペダル位置変換カーブ)を補正する(ステップS502)。その際、自身のピアノのデータとの差に着目し、ハーフポイント位置を微調整する。例として、特定の音域を重点的に合致させるようにする等の方法が考えられる。ただしこの補正処理は必須ではない。
図7に沿って、自動演奏(再生)及び自動演奏データの記録の処理を説明する。
ハーフ情報参照部72、ハーフ領域決定部73、変換情報生成部74、演奏データ記録処理部75、再生処理部78の機能は、CPU11、タイマ16、ROM12、RAM13、センサ類の協働作用によって実現される。また、駆動部79には、キードライブユニット20及びペダルアクチュエータ26(図2)が該当する。
まず、ペダルPDに関しては、ハーフ情報参照部72がペダルPDのハーフ情報71(図3)を参照し、このハーフ情報71に基づいて、ハーフ領域決定部73が、ハーフ領域を決定する。例えば、ハーフ領域としてHFR−1が決定され、ハーフポイントとしてHP−1も決定される(図3)。
次に、決定されたハーフ領域HFR−1と、これから生成する自動演奏データにおける、ペダルの所定のストロークにおける所定の領域とが対応するように、変換情報生成部74がペダルPD用の変換情報(図6)を生成する。この変換情報は、演奏データ記録処理部75と再生処理部78とに送られる。
鍵31に関しては、ハーフ情報参照部72が鍵31のハーフ情報76を参照する。そして、参照されたハーフ情報76から把握される鍵ダンパハーフ領域と、これから生成する自動演奏データにおける、鍵31の所定のストロークにおける所定の領域とが対応するように、変換情報生成部74が鍵31用の変換情報を生成する。この変換情報も、演奏データ記録処理部75と再生処理部78とに送られる。
演奏データ記録処理部75は、検出部、変換部、イベント生成部、記録部を有する。演奏データ記録処理部75は、決定されたハーフ領域HFR−1またはハーフポイントHP−1と、演奏操作されるペダルPDの位置の検出結果とに基づいて、後述する図8の処理により、ペダルPDを自動動作させるためのペダルイベント(ペダル自動演奏情報)を生成する。それと並行して、演奏データ記録処理部75は、ハーフ情報76と、演奏操作される鍵31の位置の検出結果とに基づいて、後述する図9の処理により、鍵31を自動動作させるためのキーイベント(鍵自動演奏情報)を生成する。そして、ペダルイベントとキーイベントとを併合して自動演奏データ(図11)を生成し、記録する。
次に、自動演奏データの生成処理を、図7に図8〜図10を加えて説明する。
図8は、ペダルイベント生成処理のフローチャートである。図9は、キーオンイベント生成処理のフローチャートである。図10は、離鍵検出処理のフローチャートである。これらの処理は、演奏データ記録処理部75により実行される。図8の処理は、一定のサンプリングタイム間隔で実行され、図9の処理は一定のサンプリングタイム間隔で鍵31ごとに実行される。図10の処理は一定のサンプリングタイム間隔で実行される。
まず、図8のステップS101では、ペダルイベント生成が開始される。ペダル位置センサ27の出力からペダルPDの位置を検出し(ステップS102)、検出したペダルPDの位置の値を、変換情報生成部74により生成されたペダルPD用の変換情報(図6)にて変換する(ステップS103)。そして、変換後の値から、ペダルイベントを生成する(ステップS104)。例えば、図6を参照すると、ペダルPDがハーフ開始点mFからハーフ終了点mCまでを変位したことに対応して、ハーフ開始点MFからハーフ終了点MCまで変位するようなMIDI値が生成される。その後、本処理が終了する。
図9のステップS201では、キーオンイベント生成が開始される。キーセンサユニット37の出力から鍵31の位置を検出する(ステップS202)。なお、鍵31の位置に代えて、ハンマセンサ59の出力からハンマHMの位置を検出してもよい。次に、ステップS202での検出結果から把握される鍵31の位置を、変換情報生成部74により生成された鍵31用の変換情報にて変換する(ステップS203)。そして、変換後の値から判断して、打弦位置に相当するストローク位置を鍵31(またはハンマHM)が往方向に通過したと判断されたことに応じて、キーオンイベントを生成する(ステップS204)。その際、鍵31の速度も検出され、速度情報がキーオンイベントに反映される。
次に、ノートオンフラグnoteOn[k]を「1」に設定する(noteOn[k]←1)。ここで、[k]はキー番号を示す値である。その後、本処理が終了する。なお、ノートオン、ノートオフのことを、キーオン、キーオフと呼称することもある。
図10では、ノートオフイベント及びキーリリースコントロールイベントが生成される。まず概説すると、キーセンサユニット37の出力から鍵31の位置を検出し、検出した鍵31の位置の値を、変換情報生成部74により生成された鍵31用の変換情報にて変換する。そして、変換後の値で判断して、ハーフ情報(図4)から把握される鍵ダンパハーフ領域内において鍵31が所定の時間以上静止したと判断されたことに応じて、リリースコントロールイベントが生成される。鍵31の静止状態は、鍵ダンパハーフ領域内における任意の位置(鍵ダンパハーフ領域内を複数に分けたいずれかの領域)に鍵31が所定の時間(例えば100ms)以上留まったか否かで判断される。また、変換後の値で判断して、ハーフ情報(図4)から把握される鍵ダンパハーフ領域内における所定の位置を離鍵行程において鍵31が通過したと判断されたことに応じて、キーオフイベントが生成される。これらの具体例は図10で説明する。
まず、図10のステップS401では、最初の鍵31(k=1)を今回ループの処理対象とし、ステップS402では、noteOn[k]==1であるか否かを判別する。ここで、二重等号「==」は、C言語等の記法に従い「左辺と右辺の値が等しい」ことを意味する。その判別の結果、noteOn[k]==1でない場合は、処理対象の鍵31の番号を1つ進めて次のループに進む(ステップS415)。noteOn[k]==1である場合は、ノートオン状態であるので、今回ループにおける鍵位置である今回鍵位置posK[k]を取得する(ステップS403)。
そして、posK[k]≧XKH[k]でかつposK[k]≦XKC[k]が成立するか否かを判別する(ステップS404)。ここで、ハーフ点XKH[k]、セイル点XKC[k]はそれぞれ、キー番号kの鍵31に対応するハーフポイントmHP、ハーフ終了点mCである(図6参照)。
その判別の結果、posK[k]≧XKH[k]でかつposK[k]≦XKC[k]が成立しない場合は、posK[k]<XKH[k]が成立するか否かを判別する(ステップS411)。ここでposK[k]<XKH[k]が成立しない場合は、鍵31がセイル点XKC[k]よりも押鍵方向(深い領域)に位置するので、ステップS410に進み、前回ループにおける鍵位置である前回鍵位置posKey[k]に今回鍵位置posK[k]の値を代入してからステップS415に進む。
一方、ステップS404の判別の結果、posK[k]≧XKH[k]でかつposK[k]≦XKC[k]が成立する場合は、鍵31が、離鍵行程においてセイル点XKC[k]からハーフ点XKH[k]までの領域に入ったので、ステップS405に進み、posKey[k]==posK[k]であるか否かを判別する(ステップS405)。この判別では、所定内の差異については同一値と判断する。
その判別の結果、posKey[k]==posK[k]が成立しない場合は、鍵31が静止していないので、カウンタkeyRelCnt[k]を0にリセットすると共に、リリースイベントフラグkeyRel[k]を0に設定して(ステップS414)、ステップS410に進む。
一方、posKey[k]==posK[k]が成立した場合は、鍵31が静止状態にあるので、カウンタkeyRelCnt[k]をインクリメントし(ステップS406)、keyRel[k]==0でかつkeyRelCnt[k]>KR−TIMEが成立するか否かを判別する(ステップS407)。ここで、KR−TIMEは、鍵31が留まったか否かを判定するための、上記した所定の時間(100ms)に相当する値である。
その判別の結果、keyRel[k]==0でかつkeyRelCnt[k]>KR−TIMEの条件が成立しない場合は、ステップS410に進む。一方、この条件が成立した場合は、鍵31が離鍵行程においてセイル点XKC[k]からハーフ点XKH[k]までの領域内で所定の時間、静止したことになる。そこで、キーリリースコントロールイベントを生成し(ステップS408)、keyRel[k]に1を設定して(ステップS409)、ステップS410に進む。
一方、前記ステップS411で、posK[k]<XKH[k]が成立する場合は、鍵31がハーフ点XKH[k]を離鍵方向に通過したと判断できるので、ノートオフイベントを生成する(ステップS412)。そして、noteOn[k]に0を設定して(ステップS413)、ステップS410に進む。なお、ノートオフイベントは、ハーフ点XKH[k]を離鍵方向に通過したときに生成されるとしたが、フロア点を通過したときに生成されるとしてもよい。
図8〜図10の処理で生成された各イベントデータは、ユーザからの記録終了指示により、1つの自動演奏データとして記録される。図11に、生成された自動演奏データのフォーマットを例示する。図11は、MIDI信号を記録したファイルフォーマットの1つであるSMFの内容をイベントごとに整形しつつダンプしたものである。
まず、“Header data”は、SMFのヘッダ部分であり、このデータの5行目の“01 E0”の部分におけるコメント“#Division=480”により、この箇所から時間情報は、四分音符の1/480が最小単位であることが定義される。
“Track data”は、SMFデータの本体を格納する部分の冒頭であり、“#Length=18861”により、データ長が18861バイトであることが宣言される。
“time |event”から、演奏に直接影響するイベント列が定義される。“time|event”のtimeは、自動演奏データ(曲)の先頭からの絶対時間を示す。図11では、長大なイベントを除き、基本的には1行に1イベントが表現されている。
“0 FF 51 03 07 53 00 #テンポ”により、四分音符の長さが480msとなり、時間情報の最小単位=1msecとなる。“1 F0 7E 7F 09 01 F7 GM ON”により、曲先頭から1ms時点でGM規格であることが定義される。
続く“480 F0 43 71 7E 40”から“F7”まで複数行に分割されているデータ列が、リフティングレールノートオフ測定値を定義するイベント列である。曲先頭から480ms時点でこのイベントは定義されている。例えば、“15 28 33 2D #キー番号1の値”において、“15”はキー番号1の鍵31を示し、“28 33 2D”は、左から順に、フロア点、セイル点、ハーフ点の値を示す。
次に、“1065 90 3C 4B #ノートオン”、“1066 90 40 44 #ノートオン”、“1070 90 44 47 #ノートオン”は、それぞれ、曲先頭から1065ms後に3C(真ん中のド)、1066ms後に40(真ん中のミ)、1070ms後に44(真ん中のソ)を発音していることを示す。この時点で離鍵はされていない。
次に、“1155 B0 40 00 #ダンパーペダル”から“1762 B0 40 71 #ダンパーペダル”までは、ペダルPDを踏み込んでいることを示している。曲先頭から1155ms経過の時点から1762ms時点にかけて、“00”、“0F”・・・“60”、“71”というように踏み込み深さが徐々に深くなっている。
次に、“1950 A0 3C 16”はリリースコントロールのイベントを示し、このうち“3C”がキー番号、“16”が音量減衰の傾斜を表す。曲先頭から1950ms時点で、3C(真ん中のド)の鍵31がハーフ領域に一定時間留まったことを示している。
次に、“1990 80 3C 2C #ノートオフ”、“2005 80 44 36 #ノートオフ”、“2026 80 40 32 #ノートオフ”は、押鍵されていた3つの鍵31が離鍵されたことを示している。
この図11に示す自動演奏データは、鍵及びペダルの自動駆動をさせるための情報となる。従って、この自動演奏データは、自動演奏データ77として当該鍵盤楽器30で自動演奏に用いることができるが、他の鍵盤楽器においても自動演奏に用いることができる汎用的な情報にもなる。
次に、図1、図7、図12、図13で、自動演奏データ77の再生による自動演奏処理について説明する。
図7に示すように、再生処理部78において、読み出し部が自動演奏データ77を読み出す。変換部は、自動演奏データ77で規定されるペダルPD、鍵31の位置を、変換情報生成部74により生成されたペダルPD用、鍵用の各変換情報により変換する。そしてこれら変換した値に基づいて、軌道生成部が、時間進行に応じたペダルPD、各鍵31の目標軌道を生成し、生成された目標軌道を、軌道出力部が駆動部79に出力する。駆動部79は、目標軌道に従ってペダルPD、鍵31を駆動する。
これらの処理を、図1を参照して説明すると次のようになる。モーションコントローラ41が、自動演奏データに基づき生成され且つ変換情報による変換が反映された軌道リファレンスを獲得し、一定サンプリング時間の経過を待ってから、現在時刻tに対応したペダルPDの目標位置(位置制御データrp)及び鍵31の目標位置(位置制御データrk)をそれぞれ生成し、サーボコントローラ42に出力する。
そして、サーボコントローラ42は、ペダル位置センサ27、キーセンサユニット37からのフィードバック信号yp、ykを得て、これらと位置制御データrp、rkとの差を増幅して電流指示値up(t)、uk(t)を得る。そして電流指示値up(t)、uk(t)をPWM化してペダルアクチュエータ26、キードライブユニット20に出力する。これらのことを軌道区間が終了するまで繰り返す。これにより、自動演奏データに従って、ペダルPD及び鍵31が自動駆動される。例えば、図6を参照すると、ハーフ開始点MFからハーフ終了点MCまで変位するようなMIDI値の出力に対して、ペダルPDがハーフ開始点mFからハーフ終了点mCまで変位するように駆動される。
図12、図13で再生処理の流れを説明する。図12(a)は、ペダル軌道生成処理のフローチャートである。図12(a)の処理は再生処理部78により実行される。図12(b)は、上述したリフティングレールノートオフ受信処理のフローチャートである。図12(a)の処理はペダル再生イベント受信時に開始され、図12(b)の処理はリフティングレールノートオフ測定値受信時に開始される。
図12(a)において、ペダル再生イベントを取得し(ステップS601)、ペダルPD用の変換情報を用いて、MIDI値(MIDI value)をペダル位置posDに変換する(ステップS602)。次に、DELAY_TIME後のペダル軌道データ列にペダル位置posDを設定する(ステップS603)。次に、軌道データ列をローパスフィルタ処理して目標軌道を生成し(ステップS604)、それを駆動部79に出力する(ステップS605)。
図13は、鍵軌道生成処理のフローチャートである。図13の処理は再生処理部78により実行される。この処理は、鍵再生イベント受信時に開始される。
まず、鍵再生イベントを取得し(ステップS701)、取得したイベントによって処理を分ける。すなわち、取得したイベントがノートオンイベントであれば(ステップS702)、DELAY_TIME後に発音するような鍵軌道目標値(目標軌道)を生成する(ステップS705)。取得したイベントがノートオフイベントであれば(ステップS703)、DELAY_TIME後にハーフ点XKH[k]を離鍵方向に通過するような鍵軌道目標値を生成する(ステップS706)。取得したイベントがキーリリースコントロールイベントであれば(ステップS704)、DELAY_TIME後にキーリリースコントロール位置に静止するような鍵軌道目標値を生成する(ステップS707)。そして、ステップS708では、生成した鍵軌道目標値(目標軌道)を駆動部79に出力する。
本実施の形態によれば、自動演奏データ77による自動演奏の際に、ハーフ情報(図3)に基づき決定したハーフ領域に基づいてペダルPDの目標軌道を生成すると共に、ハーフ情報(図4)に基づいて鍵31の目標軌道を生成する。従って、ペダルPDとダンパ36との関係におけるダンパ36ごとのハーフ特性、及び、鍵31とダンパ36との関係における鍵31ごとのハーフ特性が考慮され、ハーフ領域に関し、自動演奏に用いる自動演奏データ77におけるものと当該鍵盤楽器30におけるものとの対応関係が適切にとられる。よって、自動演奏データ77の意図に即したダンパ36の離接動作を適切に再現することができる。
本実施の形態によればまた、演奏による自動演奏データの記録の際に、ハーフ情報(図3)に基づき決定したハーフ領域に基づいてペダルイベントを生成すると共に、ハーフ情報(図4)に基づいてキーイベントを生成する。従って、ペダルPDとダンパ36との関係におけるダンパ36ごとのハーフ特性、及び、鍵31とダンパ36との関係における鍵31ごとのハーフ特性が考慮され、ハーフ領域に関し、生成する自動演奏データにおけるものと当該鍵盤楽器30におけるものとの対応関係が適切にとられる。よって、演奏時のダンパの離接動作を他の鍵盤楽器にて適切に再現できるような自動演奏情報を記録することができる。
なお、本実施の形態では、自動演奏データは、ペダルPDを駆動するための情報と鍵31を駆動するための情報とが一体となったものを例示した。しかし、再生、記録のいずれの場合にも、ペダルPD用と鍵31用とで別々となった自動演奏データを扱うようにしてもよい。
なお、動作が検出される対象あるいは自動演奏データに基づいて駆動される対象である発音機構の部材の例として、鍵31を例示したが、これに限られない。例えば、アクションメカニズム33における、鍵31の運動をハンマHMに伝達するウィッペン等の介在部材であってもよい。発音を制御する部品を駆動制御するようにして、且つ、目標軌道の対象部品と駆動する対象部品とが連動する場合には、これらの対象部品は異なる部品であってもよい。
なお、自動演奏データは、記憶部に記憶されたものを読み出すことで入力されるとしたが、入力の態様はこれに限られず、ネットワークやMIDIのインターフェイスを介して受信されることで入力されるようにしてもよい。
本発明は、グランドピアノ型の自動演奏ピアノに限られず、アップライト型の鍵盤楽器にも適用可能である。あるいは、ピアノ型に限られず、チェレスタ等のダンパ機能を有する鍵盤楽器にも適用可能である。すなわち、鍵の操作に応じて発音及び発音停止を制御し、発音中の音の消音形態をダンパによって制御する鍵盤楽器に好適である。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。