(57)【要約】【課題】  複数種の移動部材の位置情報を高精度且つ効率的に生成及び記録する。【解決手段】  鍵１３０及びハンマ１４２の連続的な位置情報を検出し、その検出出力に基づき、その移動状態に関するデータを生成する。前記データには、鍵１３０の位置を記述するための数値範囲と、ハンマ１４２の位置を記述するための数値範囲とが、夫々、割り当てられる。これにより、複数種の異なる移動部材についての移動状態（例えばストローク位置）に関する情報を、１つの共通のフォーマットで生成、記録できるようになる。【選択図】  図５
2005157288.tif 000002
【特許請求の範囲】
【請求項１】
演奏操作に応じて動かされる移動部材の移動状態を連続的に検出する検出手段と、
前記検出手段からの検出出力に基づき生成された前記各移動部材の移動状態に関するデータを含む演奏情報であって、前記データが前記移動部材の種類に応じて夫々異なる数値範囲が割り当てて成るものを生成する演奏情報生成手段と
を備えることを特徴とする演奏情報生成装置。
【請求項２】
演奏操作に応じて動かされる移動部材の移動状態を連続的に検出する検出手段と、
前記検出手段からの検出出力に基づき生成された前記各移動部材の移動状態に関するデータを含む演奏情報であって、前記データが前記移動部材の種類に応じて夫々異なる数値範囲が割り当てて成るものを生成する演奏情報生成手段と、
前記演奏情報生成手段により生成された演奏情報を記憶する記憶手段と
を備えることを特徴とする演奏情報記憶装置。
【請求項３】
操作者による演奏操作に応じて変位するものであって、その移動範囲が夫々異なる複数種の移動部材と、
前記移動部材の移動状態を検出する検出手段と、
前記検出手段からの検出出力に基づき生成された前記各移動部材の移動状態に関するデータを含む演奏情報であって、前記データが前記移動部材の種類に応じて夫々異なる数値範囲が割り当てて成るものを生成する演奏情報生成手段と
を備えることを特徴とする鍵盤楽器。
【請求項４】
前記移動状態に関するデータは、複数の移動部材で共通のフォーマットとし、且つ、その１ディジットあたりの分解能を各移動部材毎に異ならせて、該各移動部材の移動範囲中における移動を表現することを特徴とする請求項１乃至３の何れかに記載の演奏情報生成装置又は演奏情報記録装置又は鍵盤楽器。
【請求項５】
前記移動状態に関するデータは、前記移動部材の移動状態を所定の記述分解能で表現した基本情報と、該基本情報の下位に従属し、前記所定の記述分解能に満たない前記移動状態の端数部分を細かい分解能で表現する拡張情報とから構成され、該拡張情報として、対応する前記基本情報から見て正方向の状態を表現した第１種の拡張情報、若しくは、該対応する基本情報から見て負方向の状態を表現した第２種の拡張情報の何れか一方を有することを特徴とする請求項１乃至４の何れかに記載の演奏情報生成装置又は演奏情報記録装置又は鍵盤楽器。
【請求項６】
演奏情報を生成するためにコンピュータによって実行されるプログラムであって、
演奏操作に応じて動かされる移動部材の移動状態を連続的に検出する検出手順と、
前記検出手段からの検出出力に基づき生成された前記各移動部材の移動状態に関するデータを含む演奏情報であって、前記データが前記移動部材の種類に応じて夫々異なる数値範囲が割り当てて成るものを生成する演奏情報生成手順と
を含むことを特徴とするプログラム。
【請求項７】
演奏情報を記録するためにコンピュータによって実行されるプログラムであって、
演奏操作に応じて動かされる移動部材の移動状態を連続的に検出する検出手順と、
前記検出手段からの検出出力に基づき生成された前記各移動部材の移動状態に関するデータを含む演奏情報であって、前記データが前記移動部材の種類に応じて夫々異なる数値範囲が割り当てて成るものを生成する演奏情報生成手順と、
前記演奏情報生成手段により生成された演奏情報を記憶する記憶手順と
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばアコースティックピアノ等の鍵盤楽器における鍵やハンマ等の発音動作に連動する複数の移動部材の、例えば位置情報等の移動状態に関する情報を、演奏情報として生成する装置、及び、該演奏情報を記録する装置に関する。
【背景技術】
【０００２】
演奏者によって行われた鍵盤楽器の演奏操作を表す演奏情報を生成或は記録する装置として、従来から、例えば下記特許文献１、特許文献２あるいは特許文献３に開示された装置等、種々の装置が知られている。従来から知られるこの種の装置において、演奏情報は、例えば、ノートオン・ノートオフ情報、ピッチ情報やベロシティ情報などのパラメータを規定してなるＭＩＤＩ規格のフォーマットで生成、記録することが可能であった。
【特許文献１】特開昭５３‐１１２７１６号公報
【特許文献２】特開昭５８‐１５９２７９号公報
【特許文献３】特開昭５９‐８２６８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
また、例えば、アコースティックピアノのような鍵盤楽器等において、演奏者による演奏操作を表す情報として、鍵等の演奏操作子やあるいは、その他発音操作に連動するハンマ、ダンパ等の１乃至複数の部材の位置情報（軌道情報）を生成、記録する装置が知られており、これは、鍵等の各移動部材のレスト位置（鍵、ハンマ、あるいはダンパ等の移動部材がピアノに外力を加えない状態にある位置）からエンド位置（鍵、ハンマ、あるいはダンパ等の移動部材がストロークエンド状態にある位置）までの情報を生成、記録するものであった。
上記のような鍵、ハンマ等の複数の移動部材についての位置情報は、従来は、ＭＩＤＩ演奏データ（演奏情報）とは別のデータフォーマットで生成、記録されていた。また、鍵、ハンマ等の複数の移動部材の位置情報の記録は、各部材毎に、鍵の位置表現用の割り当てフォーマット、ハンマの位置用の割り当てフォーマット・・・という具合に、別々の割り当てフォーマットが設定されていた。また、移動部材の位置情報等の移動状態を示すデータもまた、ＭＩＤＩ形式のデータとして生成、記録することが考えられるが、ＭＩＤＩ形式のデータにおいては、限られた数のメッセージの割り当てフォーマットを効率的に使用できるのが望ましい。
【０００４】
この発明は、上記の点に鑑みてなされたもので、鍵盤楽器の鍵やハンマ等のように、発音動作に連動して変位する複数種の移動部材の、例えば位置情報のような、移動状態に関する情報を高精度且つ効率的に生成及び記録することを目的とするもので、詳しくは、前記複数種の移動部材の移動状態に関する情報の記録形式の改良に関する。
【課題を解決するための手段】
【０００５】
この発明は、演奏情報生成装置、演奏情報記録装置及び鍵盤楽器であって、演奏操作に応じて動かされ、その移動範囲が夫々異なる複数種の移動部材について、その移動状態を検出し、検出出力に基づき生成された各移動部材の移動状態に関するデータは、前記移動部材を指示する情報として、該移動部材の種類に対応して、夫々異なる数値範囲が割り当てられることを特徴とする。
【発明の効果】
【０００６】
これによれば、検出手段は操作者による演奏操作に連動して変位する複数種の移動部材（例えば、鍵やハンマ）の移動状態を示すデータにおいて、前記の移動部材の各種類に対応して、夫々異なる数値範囲が割り当てられることで、複数種の移動部材についての移動状態（例えばストローク位置）に関する情報を、１つの共通のフォーマットで生成、記録できるようになる。
【発明を実施するための最良の形態】
【０００７】
以下添付図面を参照して、この発明の一実施例について説明する。この実施例においては、位置情報を生成、記録すべき複数の移動部材の一例として、ピアノの鍵（演奏操作子）及びハンマについて説明するが、位置情報の生成及び記録対象となる部材はこれに限定されない。
【実施例１】
【０００８】
まず、この実施例に係る鍵盤楽器の機械的構成例について図１を参照して説明する。図１に示すように、鍵盤楽器（ピアノ）１００には、棚板１１０が具備されており、棚板１１０の上面には、図１の紙面垂直方向に延在するよう筬中１２０が配置される。筬中１２０上面には複数のバランスピン１２５が立設されており、８８個の鍵１３０の各々は、各バランスピン１２５に対して貫通された状態で、筬中１２０上面に並設される。これらの各鍵１３０には、各々が担当する音高を示す「２１」〜「１０８」までのノート番号が割り当てられている。また、各鍵１３０は、バランスピン１２５に貫通された位置を、凡その支点として揺動可能に保持されており、演奏者（操作者）によって鍵１３０の一端（前方近傍）が押下されることで、揺動する。演奏者は鍵１３０を押下げることによって演奏操作（押鍵）を行う。各鍵１３０の後方近傍には、対応する鍵１３０の揺動に応じて駆動されるアクション機構１４０が夫々設けられている。各アクション機構１４０は、対応する鍵の運動をハンマによる打弦運動に変換する装置であって、対応する鍵１３０に応じて「２１」〜「１０８」までのノート番号が割り当てられた８８個のハンマ１４２を含む。各ハンマ１４２は、演奏者による対応する鍵の押鍵操作に連動して、対応する弦１７０を打撃する。ハンマ１４２によって弦１７０が打撃されると、弦振動が生じ、その振動が、駒（図示しない）を介して響板（図示しない）に伝達することで、楽音が発生する。
【０００９】
図２は、鍵１３０及びその周辺機構を抽出して示す側面図であり、図３は、ハンマ１４２及びその周辺機構を抽出して示す側面図である。図２に示すように、鍵１３０は、非押鍵時（外力を加えない状態）では、図において実線で示すようなレスト位置に位置される。鍵１３０は、演奏者による押鍵操作によって一端（前方近傍）を押下げられることで、バランスピン１２５を凡その動作支点として揺動し、該レスト位置から鍵の揺動ストロークのエンド位置まで変位しうる。図２中の２点鎖線位置は、前記エンド位置まで押下げられた鍵１３０が占めるストローク位置を示す。当該実施例において、鍵１３０はレスト位置を基準にして約１０ｍｍのストローク幅で変位されるものとする。押鍵操作が解除されると、鍵１３０はレスト位置へ復帰する。なお、鍵１３０の前記ストロークの長さ（約１０ｍｍ）は、鍵の先端位置を基準に規定されたものとする。
【００１０】
図３において、ハンマ１４２は、ハンマウッド１４１を介してハンマシャンク１４３に保持されている。ハンマシャンク１４３は、ハンマフレンジ１４６においてピン１４４を支点として回動可能に取り付けされる。ハンマ１４２を保持するハンマシャンク１４３は、鍵１３０が非押鍵（外力を加えない状態）のときには、図において実線で示すようなレスト位置に位置される。演奏者による押鍵操作が行われると、これに連動して、ピン１４４を中心に反時計方向に回転し、ハンマ１４２は対応する弦１７０を打撃する。図３において２点鎖線位置は、ハンマ１４２が打撃すべき弦１７０に当接する位置を示し、この位置をハンマ１４２のストロークのエンド位置とする。当該実施例において、ハンマ１４２はレスト位置を基準にして約４８ｍｍのストローク幅で変位されるものとする。なおハンマ１４２のストロークの長さ（約４８ｍｍ）も、その先端位置を基準に規定されたものとする。
【００１１】
周知の通り、鍵１３０の運動（揺動）は、アクション機構１４０に含まれるジャック等、複数の移動部材を介して、ハンマ１４２に伝達される。すなわち、まず、演奏者の演奏操作によって鍵１３０が運動し、その運動がジャック等のアクション機構１４０に含まれる複数の移動部材を変位せしめ、それに連動してハンマ１４２が対応する弦１７０を打撃すべく変位する。本発明によれば、上記のように発音動作に連動する複数種の移動部材（鍵１３０、ハンマ１４２、あるいは、ダンパ、ジャック等その他の部材）について、各々のストローク位置を、位置情報として定義された共通のメッセージ形式で表現できることが後述の説明から明らかになるだろう。また、鍵１３０及びハンマ１４２は、実際には、機械的なズレや撓み、部材のへたばり等が要因となって、レスト位置及びエンド位置として規定した位置を超えて若干余分にストローク変位しうる。当該実施例では、そのようなレスト位置及びエンド位置を超えたストローク位置も位置情報として表現できることが後述される。
【００１２】
当該鍵盤楽器１００において、複数の鍵１３０に夫々対応して、当該鍵のストローク位置を検出するためのキーセンサ３１０が具備されており、また、複数のハンマ１４２に夫々対応して、当該ハンマのストローク位置を検出するためのハンマセンサ４１０が具備されている。キーセンサ３１０及びハンマセンサ４１０は、一例として、受光素子と発光素子を含む光学式のセンサで構成される。光学式のセンサは、周知のように、発光素子が被検出部材に向けて光を照射し、受光素子にて該被検出部材からの反射光を受光し、その受光量に応じてセンサから該被検出部材までの距離を検出出力として得るものである。
【００１３】
図２に示すように、鍵１３０の上方にはキーセンサ３１０を支持するための支持部材３００が設けられている。各鍵１３０の上面には被検出部材１３５が配置されており、キーセンサ３１０は支持部材３００上において該被検出部材１３５に対向する位置に配置される。押鍵に伴う鍵１３０の揺動ストロークに応じて、キーセンサ３１０と被検出部材１３５の相互距離が変化するので、キーセンサ３１０は、前記距離を検出することによって、鍵１３０のストローク位置を連続的に検出することができる。なお、キーセンサ３１０は、受光素子の受光量に応じて被検出部材１３５までの距離を、例えば０．００１ｍｍ単位で検出できるものとする。
【００１４】
図３に示すように、ハンマシャンク１４３の上方には、ハンマセンサ４１０を支持するための支持部材４００が設けられている。各ハンマシャンク１４３の上面には被検出部材１４５が配置されており、ハンマセンサ４１０は支持部材４００上において該被検出部材１４５に対向する位置に配置される。ハンマ１４２のストローク変位（ハンマシャンク１４３の回転変位）に応じて、ハンマセンサ４１０と被検出部材１４５の相互距離が変化するので、ハンマセンサ４１０は、前記距離を検出することによって、ハンマ１４２のストローク位置を連続的に検出することができる。なお、ハンマセンサ４１０も、キーセンサと同様に受光素子の受光量に応じて被検出部材１３５までの距離を、例えば０．００１ｍｍ単位で検出できるものとする。
【００１５】
なお、上記では鍵１３０とハンマ１４２に夫々センサを具備するものとしたが、これらに限らず、例えばダンパ等、その他の発音動作に連動する何れの移動部材においてもセンサを具備し、位置検出できるよう構成しうる。
【００１６】
図４は、当該鍵盤楽器１００の電気的ハードウェア構成を示すブロック図である。当該図において、鍵盤楽器１００は、ＣＰＵ２００、ＲＡＭ２１０、ＲＯＭ２２０、操作部２３０、タイマ２４０、記憶装置２６０及びＡ／Ｄ変換器２５０ａ、２５０ｂを含み、各装置間がバスＢを介して接続される。Ａ／Ｄ変換器２５０ａには、複数（８８鍵）の鍵に夫々対応して設けられたキーセンサ３１０が接続され、Ａ／Ｄ変換器２５０ｂには、複数のハンマに夫々対応して設けられたハンマセンサ４１０が接続される。
【００１７】
ＣＰＵ２００は、ＲＯＭ２２０或いはＲＡＭ２１０等メモリ内の各種プログラムを実行して全体的な動作を制御する。この各種プログラムとして、この発明に係る演奏情報生成処理及び演奏情報記録処理を実行するためのプログラムが含まれる。操作部２３０は、各種入力操作を行うためのスイッチ群等で構成され、操作者は演奏情報生成処理及び演奏情報記録処理の開始や終了の指示を行うことができる。タイマ２４０は各種時間を計時する。
【００１８】
各キーセンサ３１０は、対応する各鍵１３０の位置を検出し、該検出した各鍵１３０の位置を示すアナログ信号をＡ／Ｄ変換器２５０ａに出力する。Ａ／Ｄ変換器２５０ａは、各キーセンサ３１０から入力されるアナログ信号をディジタル信号に変換して、各鍵１３０の位置を示すディジタル信号をＣＰＵ２００に対して供給する。ここでは、センサ３１０から出力されアナログ信号が十分な分解能を持つビット長（例えば１２ビット）のバイナリ信号に変換されるものとする。また、各ハンマセンサ４１０は、対応する各ハンマ１４２の位置を検出し、該検出した各ハンマ１４２の位置を示すアナログ信号をＡ／Ｄ変換器２５０ｂに入力する。Ａ／Ｄ変換器２５０ｂは、各ハンマセンサ４１０から供給されたアナログ信号をディジタル信号に変換して、ＣＰＵ２００に対して各ハンマ１４２の位置を示すディジタル信号を供給する。ここでは、センサ４１０から出力されアナログ信号が十分な分解能を持つビット長（例えば１２ビット）のバイナリ信号に変換されるものとする。
【００１９】
ＣＰＵ２００は、Ａ／Ｄ変換器２５０ａあるいは２５０ｂから供給されるディジタル信号に基づく鍵あるいはハンマの位置情報を生成し、これとタイマ２４０が計時する時間情報とを用いて、各鍵１３０及び各ハンマ１４２の位置が時系列的に規定された演奏情報を生成する。位置情報は、演奏者の発音動作に連動して発生された各鍵１３０あるいは各ハンマ１４２の連続的な運動の軌道（ストローク変位）を、ＭＩＤＩ規格に従うメッセージとして表現するものである。
【００２０】
記憶装置２６０は、上記生成した演奏情報を記憶するものであり、例えばハードディスク装置等の書き換え可能な適宜の記憶手段で構成して差し支えない。また、記憶装置２６０として、フロッピーディスク（登録商標）又はフレキシブルディスク（登録商標）、コンパクトディスク（ＣＤ‐ＲＯＭ、ＣＤ‐ＲＡＭ）、光磁気ディスク（ＭＯ）、ＺＩＰディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、半導体メモリ等、適宜の形態の着脱可能な外部記憶媒体を利用してもよい。
記憶装置２６０において生成した演奏情報を記録するためのサンプリング周期は、記憶装置２６０側で任意に選択できるものとしてよい。なお、本実施例においては、前記演奏情報の生成・記録のためのサンプリング周期は任意の値で固定されるものとする。また、記憶装置２６０において、全ての鍵１３０及び／又はハンマ１４２についての該演奏情報を記録するのみならず、ユーザが該演奏情報のうち記録すべきノート番号を任意に選択できるようにし、該選択されたノート番号に対応する鍵及び／又はハンマについてのみ記録できるようにしてもよい。
【００２１】
記憶装置２６０において記録される演奏情報は、例えばＳＭＦ（スタンダードＭＩＤＩファイル）形式のフォーマットに従って記録されたシーケンシャルなデータである。この発明に係る鍵やハンマ等の移動部材の位置情報を、ＭＩＤＩメッセージとして生成、記録することは、例えば、データの通信や編集等において有利である。演奏情報は、例えば楽曲別の曲データファイルとして、該記憶装置２６０に記憶されるもので、当該楽曲の演奏データ群（ノートオン・ノートオフ情報、ピッチ情報やベロシティ情報などのイベントメッセージ群）として、この実施例に係る位置情報を表すイベントメッセージが含まれる。図５において、この実施例に係る位置情報を表すイベントメッセージのフォーマット例を示す。
【００２２】
図５（ａ）に示すように、当該位置情報を表すＭＩＤＩメッセージは、位置情報の基本となる「位置データ」と、前記基本となる位置データに対して更に詳細な情報を付加する「拡張データ」との２種のバイトメッセージから構成されるものであり、両者を組み合わせて１つの位置情報の表現となる。すなわち、「位置データ」は、或るサンプル時刻におけるレスト位置からエンド位置の範囲での鍵若しくはハンマのストローク位置を相対的に粗い精度で大まかに特定し、これに対応する「拡張データ」は、同サンプル時刻における鍵若しくはハンマのストローク位置を、前記「位置データ」によって大まかに特定されたストローク位置をより細分化した値、つまり、より細かい精度（分解能）で表現する。
この実施例に係る位置情報によれば、「位置データ」には、複数種の移動部材（この例では鍵並びにハンマ）の種類に対して夫々異なる数値範囲が割り当てられている。すなわち、該数値範囲に応じて、当該位置データが鍵の位置を表現しているのか、ハンマの位置を表現しているのかが区別できる。これにより、鍵の位置情報とハンマの位置情報を共通のメッセージ形式で表現することが実現される。この点については後段において詳細に述べる。
【００２３】
「位置データ」は、８ビットデータを１バイト単位とするデータ要素から構成され、３バイトの組み合わせが１つのバイトメッセージを構成している。第１バイトにおいて、上位４ビットは、当該データが表現するメッセージ種類を特定する識別子となるコード「１０１０」からなる。図示の便宜上「ｎｎｎｎ」で示された下位４ビットは、ＭＩＤＩチャンネル番号を特定するコード情報からなる。なお、当該第１バイトの先頭ビットが「１」であることは、当該バイトがステータスバイトであることを示す。
【００２４】
位置データの第２バイトは、ノート番号を特定するためのノート番号指定部となる「０ｋｋｋｋｋｋｋ」が格納されている。具体的には、当該第２バイトの先頭ビットが「０」であることは、当該バイトがデータバイトであることを表現し、図示の便宜上「ｋｋｋｋｋｋｋ」で示した下位７ビットは、各鍵１３０あるいは各ハンマ１４２に割り当てられた「２１」〜「１０８」までのノート番号を示すコード「００１０１０１（１０進表記における「２１」）」から「１１０１１００（１０進表記における「１０８」）」までの何れかの値からなる。ここで示されるノート番号によって、当該位置データがノート番号「２１」〜「１０８」のうちのいずれの鍵若しくはハンマに対応しているのかを特定する。また、ここで示すノート番号は、前記記憶装置２６０においてユーザが任意に選択したノート番号に対応するデータのみ記録する場合等に、参照される。
【００２５】
位置データの第３バイトには、キーセンサ３１０若しくはハンマセンサ４１０からの検出出力に基づく前記ディジタル信号に応じた、鍵１３０若しくはハンマ１４２のストローク位置を表す情報が割り当てられている。この情報は「０ｘｘｘｘｘｘｘ」によって表現される。先頭ビットの「０」は、前記と同様に当該第３バイトがデータバイトであることを示し、図示の便宜上「ｘｘｘｘｘｘｘ」で示した下位７ビットは、具体的なストローク位置の値を表すデータ部分である。この実施例によれば、この下位７ビット「ｘｘｘｘｘｘｘ」がとるデータ値は、鍵の位置表現用として割り当てられた数値範囲と、ハンマの位置表現用として割り当てられた数値範囲とに区分される。なお、この数値範囲の具体的な割り当て例等については、図５（ｂ）を参照して後述する。
【００２６】
「拡張データ」は、前述の位置データを基本として、対応する（すなわち基本とすべき）位置データによって表現された値を、より詳細な記述分解能で表現した情報を付加するもの（汎用拡張バイト）であって、８ビットデータを１バイト単位とするデータ要素が３バイト組み合わされることで１つのバイトメッセージを構成している。拡張データが表現するデータ内容は、対応する基本情報によって規定される。従って、この実施例では、拡張データは、対応する位置データが表現する値に対してより細かいストローク位置のデータを付加するものであるが、例えば、対応する基本情報が速度を表す情報であれば、それに従属する拡張情報は速度データを表す。
【００２７】
この拡張データの第１バイトにおいて、上位４ビットはコード「１０１０」からなり、図示の便宜上「ｎｎｎｎ」で示した下位４ビットは、ＭＩＤＩチャンネル番号を特定するコード情報からなる。ここで「ｎｎｎｎ」で表現されたＭＩＤＩチャンネル番号は、対応する位置データが有するチャンネル番号のコード情報と同一である。また、第２バイトはコード「０００１００００」からなる。この第１バイト及び第２バイトにより当該バイトメッセージが汎用拡張バイトであることが定義される。
【００２８】
拡張データの第３バイトには、対応する位置データが表す鍵若しくはハンマの位置データの値をより高分解能で表現した情報が割り当てられている。この情報は「０ｙｙｙｙｙｙｙ」によって表現される。先頭ビットの「０」は、前記と同様に当該第３バイトがデータバイトであることを示し、図示の便宜上「ｙｙｙｙｙｙｙ」で示した下位７ビットは、具体的なストローク位置の値を表すデータ部分である。なお、拡張データの第３バイトの値は、鍵１３０並びにハンマ１４２の正味のストローク範囲（レスト位置からエンド位置までの範囲）を外側に越えたストローク位置を表現しうるよう、データ記述上の「マージン」を有する。この明細書において、用語「マージン」は、レスト位置からエンド位置までの範囲を外側に越えた移動部材のストローク位置を表現する情報の意味で使用される。このデータ記述上の「マージン」の確保は、対応する位置データによって特定されるストローク位置が、レスト位置−エンド位置範囲内である場合に、相対的に細かい精度（分解能）の「第１の分解能」が適用され、一方、レスト位置若しくはエンド位置である場合、該「第１の分解能」よりも相対的に粗い精度（分解能）の「第２の分解能」が適用されることによって実現される。
【００２９】
なお、拡張データは、基本となる位置データの下位に位置付けされるものであり、記憶装置２６０における記録にあたって、記録媒体上では、対応する位置データの直後のアドレスに書き込み、また、伝送上では、対応する位置データと拡張データとの間に他のメッセージを挟まず、且つ最小時間間隔で送られるものとする。これにより、対応する位置データとの対応付け不備や、記録ミス、伝送ミス、及び読み込みミス等の影響を可及的回避している。
【００３０】
図５（ａ）において、位置データの右側に付記した［Ａｎ  ｋｋ  ｘｘ］は、上記位置データを１６進数的に簡略表記したものである。「Ａｎ」は第１バイト「１０１０ｎｎｎｎ」であって、“ｎ”の値によってＭＩＤＩチャンネルを示す。「ｋｋ」は第２バイト「０ｋｋｋｋｋｋｋ」であって、“ｋｋ”の値によってノート番号を示す。「ｘｘ」は第３バイト「０ｘｘｘｘｘｘｘ」であって、“ｘｘ”の値によって具体的なデータの数値を示す。また、［Ｂｎ  １０  ｙｙ］は、上記拡張データの１６進数的な簡略表記であって、「Ｂｎ」が第１バイト「１０１１ｎｎｎｎ」、「１０」が第２バイト「０００１００００」を夫々示し、「ｙｙ」は第３バイト「０ｙｙｙｙｙｙｙ」であって、“ｙｙ”の値によって具体的なデータの数値を示す。以下の説明において、特に断りの無い場合は、この簡略表記を用いる。
【００３１】
この例では、位置データ及び拡張データの両第３バイト「ｘｘ」及び「ｙｙ」は、一般的なＭＩＤＩデータと同様に、１２８段階の分解能を持つもので、データ値としては値「００ｈ」〜「７Ｆｈ」（１０進表記で０〜１２７）をとりうるものとする（末尾の“ｈ”は１６進数表記であることを示す）。
図５（ｂ）に示すように、位置データ［Ａｎ  ｋｋ  ｘｘ］の第３バイト「ｘｘ」の値は、鍵１３０の位置表現用の数値範囲として、数値範囲「０１ｈ」（１０進表記では「１」）〜「３０ｈ」（１０進表記では「４８」）が割り当てされる。また、ハンマ１４２の位置表現用の数値範囲として、数値範囲「４０ｈ」（１０進表記では「６４」）〜「７０ｈ」（１０進表記では「１１２」）とが割り当てられる。なお、各移動部材毎の数値範囲の割り当ては、記述すべき部材のストローク移動量や、データを記述するための分解能等に鑑みて任意に設定しうる。
【００３２】
上記のようなデータフォーマットによれば、位置データ［Ａｎ  ｋｋ  ｘｘ］の第３バイト「ｘｘ」の値が複数種の移動部材（この例では鍵とハンマ）の種類に対応して、夫々異なる数値範囲が割り当てられていることで、鍵の位置表現用の割り当てフォーマットや、ハンマの位置表現用の割り当てフォーマットを別々に設定することなく、複数種の移動部材の位置情報を共通のフォーマット（位置データ［Ａｎ  ｋｋ  ｘｘ］）によって記録できるようになる。このことは、ＭＩＤＩメッセージにおける割り当てフォーマットの効率的な利用という点で好ましい。また、複数種の部材（この例では鍵とハンマ）に関する位置情報を共通のフォーマットで表現することで、データ編集が簡便化されるという利点がある。例えば、或る楽曲の演奏情報として、そこに含まれる位置情報を全く使用（例えば再生等）しない場合は、当該位置データ［Ａｎ  ｋｋ  ｘｘ］の不使用を指示する編集操作を行うだけで、当該位置データ［Ａｎ  ｋｋ  ｘｘ］が適用されている全ての部材について一括して位置データの使用を無効にするよう処理でき、その編集作業が簡便となる。また、例えば、編集対象となるべき位置データ［Ａｎ  ｋｋ  ｘｘ］をノート番号毎に選択する場合、該当する鍵１３０とハンマ１４２の選択・編集操作が一括してできるので、このような場合等にも、複数の部材について共通フォーマットの位置データ［Ａｎ  ｋｋ  ｘｘ］で記録していることが有利である。特に、この実施例に示すように、鍵とハンマのような互いに連動する複数の移動部材の位置情報等の移動状態は、編集等に際して一括して処理されることが多いので、これら互いに連動する移動部材の移動状態を共通のフォーマットで記述することは有意義である。また、周知のように、ピアノの発音動作においては、まず、演奏者の押鍵操作に応じて、まず、鍵１３０が変位し、それから、鍵１３０の運動に連動してハンマ１４２の変位が開始する。よって、この実施例のように、鍵１３０の位置表現用の数値範囲として数値の若い「０１ｈ」〜「３０ｈ」を割り当て、また、ハンマ１４２の位置表現用の数値範囲として数値の大きい「４０ｈ」〜「７０ｈ」を割り当てることは、上記の各移動部材の運動順序に適っており、各部材毎の位置表現を感覚的に把握しやすいという点で好ましい。
【００３３】
図６（ａ）は、ハンマ１４２の動作状況（軌道）の一例を示すグラフであり、（ｂ）鍵１３０の動作状況（軌道）の一例を示すグラフである。図６を参照して、この実施例に係る位置情報による鍵１３０とハンマ１４２のストローク位置の表現例について具体的説明する。図６（ａ）、（ｂ）において、縦軸にストローク位置をとり、横軸は時間軸を示す。当該グラフの右側には、位置データの第３バイト「ｘｘ」の値及び拡張データの第３バイト「ｙｙ」の値と、鍵１３０、ハンマ１４２のストローク位置との対応関係を夫々示す。また、図７は、ハンマ及び鍵のストローク位置と、位置データの値「ｘｘ」と拡張データの値「ｙｙ」との対応関係の一例を示す表である。以下、図６及び図７を参照してこの実施例に係る位置情報によるデータの記述について詳細に説明する。
【００３４】
図６（ａ）において、ハンマ１４２は、レスト位置を基準（０ｍｍ）として約４８ｍｍのストローク幅で変位する。位置データの値「ｘｘ」は、このハンマ１４２の或る時点（サンプル時刻）におけるストローク位置（０〜４８ｍｍ）を表現すべく、値「４０ｈ」〜「７０ｈ」の数値範囲が割り当てられる。
ハンマ１４２の位置を示す位置データの値「ｘｘ」の最小値「４０ｈ」（１０進表記で「６４」）は、レスト位置（ストローク量０ｍｍ）を表現する。また、最大値「７０ｈ」（１０進表記で「１１２」）は、エンド位置（レスト位置からストローク量４８ｍｍの位置）を表現する。そして、レスト位置‐エンド位置間のストローク位置が値「４１ｈ」〜値「６Ｆｈ」によって１ミリ単位でリニアで表現される。ここで「リニアで表現」とは、データの値１ディジットが１ミリに相当する割合で線形的に比例していることである。例えば、或るハンマ１４２が長さ４０ｍｍストロークした状態を表現するには、［Ａｎ  ｋｋ  ６８］と表現する。
【００３５】
これに対して、ハンマ１４２の位置を示す拡張データの第３バイト「ｙｙ」の値は、対応する位置データの値（１ｍｍ単位）で表現しきれない微小なストローク位置を記述する。これは、対応する位置データの値を更に正方向又は負方向の夫々について６４段階に細分化して表現する。正方向又は負方向の夫々について６４段階に分割することは、当該データの値が「００ｈ」〜「７Ｆｈ」の１２８段階をとりうることから任意に設定されたものである。
【００３６】
値「ｙｙ」は、対応する位置データの値によってレスト位置‐エンド位置の範囲内（位置データの値「４１ｈ」〜値「６Ｆｈ」の範囲）のストローク位置が表現される場合に、１ディジットを１／６４ｍｍ単位とする「第１の分解能」でハンマのストローク位置をリニアに表現する。すなわち、この場合、拡張データは対応する位置データによって特定されたストローク位置の値に対して、そこから更に１／６４ｍｍ単位で表現されたストローク位置の値を付加する。一方、対応する位置データの値がレスト位置若しくはエンド位置（位置データの値「４０ｈ」若しくは値「７０ｈ」）を表現している場合、値「ｙｙ」は、１ディジットを１／４ｍｍ単位とする「第２の分解能」でハンマのストローク位置をリニアに表現する。すなわち、この場合、拡張データは、対応する位置データによって、レスト位置（ストローク量０ｍｍの位置）若しくはエンド位置（レスト位置からストローク量４８ｍｍの位置）として表現された値に対して、そこから更に１／４ｍｍ単位で表現されたストローク位置の値を付加する。
【００３７】
拡張データによるハンマ位置の具体的な記述態様の一例について説明する。先ず「第１の分解能」で記述される値「ｙｙ」は、対応する位置データの値から±０ｍｍの位置を中心の基準位置として「００ｈ」で表現する。この値「ｙｙ」によって記述可能な最小位置は、基準位置から負方向の６４段階目すなわち±０ｍｍから−６４／６４ｍｍ（−１ｍｍ）の位置であって、これは値「４０ｈ」（１０進表記で６４）に相当する。また、この値「ｙｙ」によって記述可能な最大位置は、基準位置から正方向の６３段階目すなわち±０ｍｍから＋６３／６４ｍｍ（＋０．９８４３７５ｍｍ）の位置であって、これは値「３Ｆｈ」（１０進表記で６３）に相当する。従って、或る拡張データが「第１の分解能」で記述可能なストローク幅は、約±１ｍｍとされる。位置データの値と拡張データの値とを組み合わせて表現されるハンマのストローク位置は、「ｘｘ＋ｙｙ／６４ｍｍ」（但し、ここでｘｘ及びｙｙは、データ値が表現する物理量）である。
【００３８】
一方、「第２の分解能」で記述される値「ｙｙ」（すなわち対応する値ｘｘが「４０ｈ」又は「７０ｈ」の場合）は、対応する位置データの値から０ｍｍの位置を中心の基準位置として「００ｈ」で表現する。この値「ｙｙ」によって記述可能な最小位置は、基準位置から負方向の６４段階目すなわち±０ｍｍから−１６ｍｍ（―６４／４ｍｍ）の位置であって、これは値「４０ｈ」（１０進表記で６４）に相当する。また、この値「ｙｙ」によって記述される最大位置は、基準位置から正方向の６３段階目すなわち±０ｍｍから＋１５．７５ｍｍ（＋６３／４ｍｍ）の位置であって、値「３Ｆｈ」（１０進表記で６３）に相当する。従って、或る拡張データが「第２の分解能」で記述可能なストローク幅は、約±１６ｍｍとされる。位置データの値と拡張データの値とを組み合わせて表現されるハンマのストローク位置は、「ｘｘ＋ｙｙ／４ｍｍ」（但し、ここで値ｘｘ及び値ｙｙは、データ値が表現する物理量）である。これによれば、当該拡張データは、ハンマ１４２のストローク位置として、レスト位置若しくはエンド位置を外側に越えた「マージン」を夫々約１６ｍｍの範囲で記述できる。従って、ハンマ１４２のレスト位置若しくはエンド位置を越えたストローク変位（マージン）を当該拡張データによって十全に表現できることになる。
【００３９】
例えば、或るハンマ１４２のストローク位置の長さ４０．５ｍｍの記述は、位置データ［Ａｎ  ｋｋ  ６８］によってストローク長さ４０ｍｍを表現し、これに＋０．５ｍｍ（＋３２／６４ｍｍ）の表現たる拡張データ［Ｂｎ  １０  ２０］を付加することでなされる。なお、同じストローク位置（４０．５ｍｍ）は、例えば［Ａｎ  ｋｋ  ６９］（位置データによる４１ｍｍの表現）と、−０．５ｍｍの表現たる［Ｂｎ  １０  ６０］とによっても記述できる。
また、エンド位置を外側に越えたストローク位置の表現の一例として、或るハンマ１４２のストローク位置の長さ５６ｍｍは、ストローク位置４８ｍｍを表現する位置データ［Ａｎ  ｋｋ  ７０］と、＋８ｍｍ（＋３２／４ｍｍ）の表現たる拡張データ［Ｂｎ  １０  ２０］とによって記述される。レスト位置を外側に越えた位置表現例としては、或るハンマ１４２のストローク長さ−０．２５ｍｍは、ストローク位置０ｍｍを表現する位置データ［Ａｎ  ｋｋ  ４０］と、−０．２５ｍｍ（−１／４ｍｍ）の表現たる拡張データ［Ｂｎ  １０  ７Ｆ］とによって記述される。
【００４０】
次に、この実施例に係る位置情報による鍵１３０のストローク位置の表現の一例について具体的説明する。前述したように、鍵１３０は、レスト位置から約１０ｍｍのストローク幅で変位する。位置データは、鍵１３０のレスト位置からエンド位置の間のストローク位置を表現する数値範囲として、値「０１ｈ（１０進表記で１）」から値「３０ｈ（１０進表記で４８）」が割り当てられている。なお、この例では、鍵１３０の位置データ記述分解能は１ディジットあたり０．２２５ｍｍ単位とされる。
【００４１】
鍵１３０のストローク位置を表現する位置データの値「ｘｘ」の最小値「０１ｈ」は、基準となるレスト位置（ストローク量０ｍｍの位置）より内側の０．２２５ｍｍのストローク位置を表現する。また、最大値「３０ｈ」は、前記値「０１ｈ」から起算して０．２２５ｍｍ＊４８の位置、すなわちエンド位置（レスト位置からストローク量１０ｍｍの位置）より外側の１０．８ｍｍのストローク位置を表現する。そして、レスト位置‐エンド位置間での鍵のストローク位置を値「０２ｈ」〜値「２Ｆｈ」によって０．２２５ミリ単位でリニアに表現する（なお本明細書において、“＊”は乗算を表す）。
【００４２】
鍵１３０のストローク位置を表現する拡張データの第３バイト「ｙｙ」の値は、前述したハンマ１４２のストローク位置を記述する場合と同様に、対応する位置データの値がレスト側の最小位置（ｘｘの最小値「０１ｈ」）若しくはエンド側の最大位置（ｘｘの最大値「３０ｈ」）を表現している場合に、データ値１ディジットあたりの位置記述単位が比較的粗い「第２の分解能」で鍵１３０のストローク位置を記述することで、表現可能なストローク範囲を拡張し、データ記述上の「マージン」を確保する。「第２の分解能」の一例として、値「ｙｙ」は１ディジットを０．２２５／４ｍｍ単位で鍵のストローク位置を記述する。すなわち、この場合、拡張データは、対応する位置データｘｘの値「０１ｈ」若しくは値「３０ｈ」によって表現されたストローク位置に対して、更に、正方向或は負方向について、０．２２５／４ｍｍ単位で表現したストローク位置の値を付加する。
【００４３】
対応する位置データが値「０２ｈ」〜値「２Ｆｈ」の範囲のストローク位置を表現している場合、鍵１３０の拡張データの値「ｙｙ」は、例えば、１ディジットを０．２２５／６４ｍｍ単位とする「第１の分解能」でストローク位置を記述する。この場合、拡張データは、対応する位置データが０．２２５ｍｍ単位で特定されたストローク位置の値に対して、そこから更に、正方向或は負方向について０．２２５／６４ｍｍ単位で表現されたストローク位置の値を付加する。
【００４４】
鍵１３０のストローク位置を表現する拡張データの具体的な記述態様は、前述したハンマ１４２におけるデータ記述態様と概ね同様である。すなわち、「第１の分解能」で記述される値「ｙｙ」（すなわち対応する値ｘｘが「０２ｈ」〜「２Ｆｈ」の場合）は、１ディジットを０．２２５／６４ｍｍ単位で鍵のストローク位置を記述するので、対応する位置データの値から±０ｍｍの位置を基準位置（ｙｙ＝００ｈ）とし、該基準位置（±０ｍｍ）から−０．２２５ｍｍ（―６４＊０．２２５／６４ｍｍ）の位置（ｙｙ＝４０ｈ）を最小位置として、また、該基準位置（±０ｍｍ）から＋０．２２１４８４３７５ｍｍ（＋６３＊０．２２５／６４ｍｍ）の位置（ｙｙ＝３Ｆｈ）を最大位置として表現できる。よって、或る拡張データが「第１の分解能」で記述可能なストローク幅は、約±０．２２５ｍｍとされる。位置データの値と拡張データの値とを組み合わせて表現される鍵のストローク位置は、「０．２２５＊（ｘｘ＋ｙｙ／６４）ｍｍ」（但し、ここでｘｘ及びｙｙは、データ値が表現する物理量）である。
【００４５】
一方、「第２の分解能」で記述される値「ｙｙ」（すなわち対応する値ｘｘが「０１ｈ」又は「３０ｈ」の場合）は、１ディジットを０．２２５／４ｍｍ単位で鍵のストローク位置を記述するので、対応する位置データの値から±０ｍｍの基準位置（ｙｙ＝００ｈ）から、−３．６ｍｍ（―６４＊０．２２５／４ｍｍ）の位置を最小位置（ｙｙ＝４０ｈ）とし、また、該基準位置から＋３．５４３７５ｍｍ（＋６３＊０．２２５／４ｍｍ）の位置を最大位置（ｙｙ＝３Ｆｈ）として表現する。従って、或る拡張データが「第２の分解能」で記述可能なストローク幅は、約±３．６ｍｍである。位置データの値と拡張データの値とを組み合わせて表現される鍵のストローク位置は、「０．２２５＊（ｘｘ＋ｙｙ／４）ｍｍ」（但し、ここで値ｘｘ及び値ｙｙは、データ値が表現する物理量）である。これによれば、当該拡張データは、鍵１３０のストローク位置として、レスト位置若しくはエンド位置を外側に越えた「マージン」を夫々約３．６ｍｍの範囲で記述できることになる。従って、鍵１３０のレスト位置若しくはエンド位置を越えたストローク変位（マージン）を当該拡張データによって十全に表現できる。
【００４６】
例えば、或る鍵１３０のストローク位置の長さ０ｍｍの記述は、位置データ［Ａｎ  ｋｋ  ０１］によってストローク長さ０．２２５ｍｍを表現し、これに−０．２２５ｍｍ（−４＊０．２２５／４ｍｍ）の表現たる第２分解能の拡張データ［Ｂｎ  １０  ７Ｃ］を付加することでなされる。また、エンド位置を外側に越えたストローク位置の表現の一例として、或る鍵１３０のストローク位置の長さ１０．１２５ｍｍは、ストローク位置１０．１２５ｍｍを表現する位置データ［Ａｎ  ｋｋ  ２Ｄ］と、±０ｍｍの表現たる拡張データ［Ｂｎ  １０  ００］によって記述される。レスト位置を外側に越えた位置表現例としては、或る鍵１３０のストローク長さ−０．０２５ｍｍは、ストローク位置０．２２５ｍｍを表現する位置データ［Ａｎ  ｋｋ  ０１］と、−０．２５ｍｍ（−１／４ｍｍ）の表現たる拡張データ［Ｂｎ  １０  ７Ｆ］とによって記述される。
【００４７】
なお、上述の実施例において、図７に示した鍵及びハンマのストローク位置と具体的なデータ値の対応関係や、１ディジットあたりの記述単位等は、一例であって、これに限定されない。
【実施例２】
【００４８】
上記図６及び図７を参照して説明した実施例においては、拡張データ［Ｂｎ  １０  ｙｙ］の第３バイト「ｙｙ」の値（ｙｙ＝００ｈ〜７Ｆｈ）による位置表現は、図８（ａ）に示す通りであった：すなわち、第３バイトの値「ｙｙ＝００ｈ」を、対応する位置データ［Ａｎ  ｋｋ  ｘｘ］から±０ｍｍの位置（基準値）の表現として、該基準値（００ｈ）から＋「３Ｆｈ」の数値範囲によって、移動部材（ハンマや鍵）の該基準値（±０ｍｍ）からの相対的な位置を正方向の変化分で表現し、また、該基準値（００ｈ）から−「４０ｈ」の数値範囲によって、移動部材（ハンマや鍵）の該基準値（±０ｍｍ）からの相対的な位置を負方向の変化分で表現した。
【００４９】
以下に述べる第２実施例は拡張データによる位置表現の別の実施例であって、これによれば、対応する位置データ［Ａｎ  ｋｋ  ｘｘ］が表すストローク位置からの相対的な位置を正方向で表現する場合と、負方向で表現する場合とで、夫々異なる種類の拡張データを使用する。図８（ｂ）は当該第２実施例に係る位置表現の概略を示す概念図である。
【００５０】
図８（ｂ）に示すように、当該第２実施例によれば、拡張データ［Ｂｎ  １０  ｙｙ］を、対応する位置データ［Ａｎ  ｋｋ  ｘｘ］が表すストローク位置からの相対的な位置を正方向で表現するバイトメッセージ（第１種の拡張情報）として定義し、拡張データ［Ｂｎ  １１  ｙｙ］を、対応する位置データ［Ａｎ  ｋｋ  ｘｘ］が表すストローク位置からの相対的な位置を負方向で表現するバイトメッセージ（第２種の拡張情報）として定義する。拡張データ［Ｂｎ  １０  ｙｙ］は、第１バイト「Ｂｎ」及び第２バイト「１０」により当該バイトメッセージが正方向の位置表現を行うための拡張バイトメッセージであることが識別される。また、拡張データ［Ｂｎ  １１  ｙｙ］の第２バイトは、コード「０００１０００１」（１６進表記では「１１ｈ」）からなり、第１バイト「Ｂｎ」及び第２バイト「１１」により当該バイトメッセージが負方向の位置表現を行うための拡張バイトメッセージであることが識別される。
【００５１】
拡張データ［Ｂｎ  １０  ｙｙ］及び拡張データ［Ｂｎ  １１  ｙｙ］の第３バイトの値「ｙｙ」は、「００ｈ」〜「７Ｆｈ」（１０進表記で０〜１２７）をとる。従って、拡張データ［Ｂｎ  １０  ｙｙ］による正方向の位置表現並びに拡張データ［Ｂｎ  １１  ｙｙ］による負方向の位置表現を、夫々、１２８段階の分解能で行うことができる。よって、図８（ｂ）に示す当該第２実施例によれば、図８（ａ）に示す位置表現の方法よりも、より細かい分解能で位置を記述できるようになり、データの精度を向上させることができる。以下、図９及び図１０を参照して、この第２実施例に係る拡張データによる具体的な位置記述の一例について説明する。図９（ａ）は、ハンマ１４２の軌道の一例、また、（ｂ）は鍵１３０の軌道の一例を夫々示すグラフである。図９（ａ）、（ｂ）において、縦軸はハンマ及び鍵のストローク位置、横軸は時間軸を夫々示しており、両グラフの右側には、位置データ［Ａｎ  ｋｋ  ｘｘ］の第３バイト「ｘｘ」の値及び拡張データ［Ｂｎ  １０  ｙｙ］乃至拡張データ［Ｂｎ  １１  ｙｙ］の第３バイト「ｙｙ」の値と、ハンマ及び鍵のストローク位置の対応関係を示す。また、図１０は、図９に示すハンマ及び鍵のストローク位置と、位置データの値「ｘｘ」と拡張データの値「ｙｙ」との対応関係を示す表である。
【００５２】
ハンマ１４２は、前述の通り、レスト位置（ストローク量０ｍｍの位置）からエンド位置（レスト位置からストローク量４８ｍｍの位置）の間を約４８ｍｍのストローク幅で変位するものと想定されている。位置データ［Ａｎ  ｋｋ  ｘｘ］には、第３バイト「ｘｘ」の値「４０ｈ」〜値「７０ｈ」がハンマ１４２のレスト位置からエンド位置の間のストローク位置を表現する数値範囲として割り当てられており、これは、１ディジットを１ｍｍ単位として、ハンマ１４２のストローク位置を表現する（図９（ａ）及び図１０参照）。すなわち、値「ｘｘ」＝「４０ｈ」がハンマ１４２のレスト位置を表現し、また、値「ｘｘ」＝「７０ｈ」が、ハンマ１４２のエンド位置を表現する。そして、レスト位置‐エンド位置間のストローク位置を値「４１ｈ」〜値「６Ｆｈ」によって１ミリ単位でリニアに表現する。これは、前記図６及び図７を参照して説明した位置表現方法と同様である。
【００５３】
ハンマ１４２の位置データ［Ａｎ  ｋｋ  ｘｘ］に対応する拡張データ［Ｂｎ  １０  ｙｙ］乃至拡張データ［Ｂｎ  １１  ｙｙ］の値「ｙｙ＝００ｈ〜７Ｆｈ」は、対応する位置データの値「ｘｘ」がレスト位置‐エンド位置の範囲内（値「４１ｈ」〜値「６Ｆｈ」の範囲）である場合、１ディジットを１／１２８ｍｍ単位とする「第１の分解能」でハンマのストローク位置を詳細に表現する。一方、対応する位置データの値がレスト位置若しくはエンド位置（位置データの値「４０ｈ」若しくは値「７０ｈ」）を表現している場合、拡張データ［Ｂｎ  １０  ｙｙ］乃至拡張データ［Ｂｎ  １１  ｙｙ］の値「ｙｙ＝００ｈ〜７Ｆｈ」は、１ディジットを１／８ｍｍ単位とする「第２の分解能」でハンマのストローク位置を表現することで、データ記述上のマージン（ハンマ１４２の正味のストローク範囲外の位置表現）を確保する。このように、正方向での位置表現及び負方向での位置表現に夫々別のアサイン［Ｂｎ  １０  ｙｙ］及び［Ｂｎ  １１  ｙｙ］を使用することで、第１の分解能及び第２の分解能の双方とも、より細かい精度でのデータ記述が可能となる。
【００５４】
拡張データ［Ｂｎ  １０  ｙｙ］及び拡張データ［Ｂｎ  １１  ｙｙ］によるハンマ位置の記述能力の具体的な一例について、図１０を参照して述べる。
先ず、第１の分解能（１ディジット＝１／１２８ｍｍ）の場合、正方向での相対位置を表す拡張データ［Ｂｎ  １０  ｙｙ］では、対応する位置データが表す位置から＋０ｍｍの位置を「ｙｙ」＝「００ｈ」で表現でき、また、対応する位置データが表す位置から＋１２７／１２８ｍｍ＝＋０．９９２１８７５ｍｍの位置を「ｙｙ」＝「７Ｆｈ」により表現できる。従って、拡張データ［Ｂｎ  １０  ｙｙ］は、第１の分解能（１ディジット＝１／１２８ｍｍ）の場合、対応する位置データ［Ａｎ  ｋｋ  ｘｘ］が表す位置から正方向に最大０．９９２１８７５ｍｍの範囲のハンマ位置を、１／１２８ｍｍ単位の精度で表現することができる。一方、負方向での相対位置を表す拡張データ［Ｂｎ  １１  ｙｙ］では、対応する位置データが表す位置から―０ｍｍの位置を「ｙｙ」＝「００ｈ」で表現でき、また、対応する位置データが表す位置から−１２７／１２８ｍｍ＝−０．９９２１８７５ｍｍの位置を「ｙｙ」＝「７Ｆｈ」により表現できる。従って、拡張データ［Ｂｎ  １１  ｙｙ］は、第１の分解能（１ディジット＝１／１２８ｍｍ）の場合、対応する位置データ［Ａｎ  ｋｋ  ｘｘ］が表す位置から負方向に最小−０．９９２１８７５ｍｍの範囲のハンマ位置を、１／１２８ｍｍ単位の精度で表現することができる。
【００５５】
第２の分解能（１ディジット＝１／８ｍｍ）の場合、正方向での相対位置を表す拡張データ［Ｂｎ  １０  ｙｙ］では、対応する位置データが表す位置（ｘｘ＝４０ｈ又は７０ｈ）から＋０ｍｍの位置を「ｙｙ」＝「００ｈ」で表現でき、また、対応する位置データが表す位置（ｘｘ＝４０ｈ又は７０ｈ）から＋１２７／８ｍｍ＝＋１５．８７５ｍｍの位置を「ｙｙ」＝「７Ｆｈ」により表現できる。従って、拡張データ［Ｂｎ  １０  ｙｙ］は、第２の分解能（１ディジット＝１／８ｍｍ）により、ハンマ１４２のレスト位置又はエンド位置（ｘｘ＝４０ｈ又は７０ｈ）から正方向に最大＋１５．８７５ｍｍの範囲のハンマ位置を、データ記述マージンとして、１／８ｍｍ単位の精度で表現することができる。一方、負方向での相対位置を表す拡張データ［Ｂｎ  １１  ｙｙ］では、対応する位置データが表す位置（ｘｘ＝４０ｈ又は７０ｈ）から―０ｍｍの位置を「ｙｙ」＝「００ｈ」で表現でき、また、対応する位置データが表す位置（ｘｘ＝４０ｈ又は７０ｈ）から−１２７／８ｍｍ＝−１５．８７５ｍｍの位置を「ｙｙ」＝「７Ｆｈ」により表現できる。従って、拡張データ［Ｂｎ  １１  ｙｙ］は、第２の分解能（１ディジット＝１／８ｍｍ）により、ハンマ１４２のレスト位置又はエンド位置（ｘｘ＝４０ｈ又は７０ｈ）から負方向に最小−１５．８７５ｍｍの範囲のハンマ位置を、データ記述マージンとして、１／８ｍｍ単位の精度で表現することができる。
【００５６】
また、図９（ｂ）に示すように、鍵１３０は、レスト位置（ストローク量０ｍｍの位置）からエンド位置（レスト位置からストローク量１０ｍｍの位置）の間を約１０ｍｍのストローク幅で変位するものと想定されている。位置データ［Ａｎ  ｋｋ  ｘｘ］には、第３バイト「ｘｘ」の値「００ｈ」〜値「３０ｈ」が鍵１３０のレスト位置からエンド位置の間のストローク位置を表現する数値範囲として割り当てられており、これは、１ディジットを０．２２５ｍｍ単位として、鍵１３０のストローク位置を表現する（図９（ｂ）及び図１０参照）。すなわち、値「ｘｘ」＝「００ｈ」が鍵１３０のレスト位置（ストローク量０ｍｍ）を表現し、また、値「ｘｘ」＝「３０ｈ」が、鍵１３０のエンド位置より外側の１０．８ｍｍのストローク位置を表現する。そして、レスト位置‐エンド位置間のストローク位置を値「００ｈ」〜値「３０ｈ」によって０．２２５ミリ単位でリニアに表現する。
【００５７】
鍵１３０の位置データ［Ａｎ  ｋｋ  ｘｘ］に対応する拡張データ［Ｂｎ  １０  ｙｙ］乃至拡張データ［Ｂｎ  １１  ｙｙ］の値「ｙｙ＝００ｈ〜７Ｆｈ」は、対応する位置データの値「ｘｘ」がレスト位置‐エンド位置の範囲内（値「０１ｈ」〜値「２Ｆｈ」の範囲）である場合、１ディジットを０．２２５／１２８ｍｍ単位とする「第１の分解能」で鍵のストローク位置を詳細に表現する。一方、対応する位置データの値がレスト位置若しくはエンド側の最大位置（位置データの値「００ｈ」若しくは値「３０ｈ」）を表現している場合、拡張データ［Ｂｎ  １０  ｙｙ］乃至拡張データ［Ｂｎ  １１  ｙｙ］の値「ｙｙ＝００ｈ〜７Ｆｈ」は、１ディジットを０．２２５／８ｍｍ単位とする「第２の分解能」で鍵のストローク位置を表現することで、データ記述上のマージン（鍵１３０の正味のストローク範囲外の位置表現）を確保する。かくして、ハンマの場合と同様に、正方向での位置表現及び負方向での位置表現に夫々別のアサイン［Ｂｎ  １０  ｙｙ］及び［Ｂｎ  １１  ｙｙ］を使用することで、第１の分解能及び第２の分解能の双方とも、より細かい精度でのデータ記述が可能となる。
【００５８】
拡張データ［Ｂｎ  １０  ｙｙ］及び拡張データ［Ｂｎ  １１  ｙｙ］による鍵位置の記述能力の具体的な一例について、図１０を参照して述べる。
先ず、第１の分解能（１ディジット＝０．２２５／１２８ｍｍ）の場合、正方向での相対位置を表す拡張データ［Ｂｎ  １０  ｙｙ］では、対応する位置データが表す位置から＋０ｍｍの位置を「ｙｙ」＝「００ｈ」で表現でき、また、対応する位置データが表す位置から＋１２７＊０．２２５／１２８ｍｍ＝＋０．２２３２４２１８７５ｍｍの位置を「ｙｙ」＝「７Ｆｈ」により表現できる。従って、拡張データ［Ｂｎ  １０  ｙｙ］は、第１の分解能（１ディジット＝０．２２５／１２８ｍｍ）の場合、対応する位置データ［Ａｎ  ｋｋ  ｘｘ］が表す位置から正方向に最大０．２２３２４２１８７５ｍｍの範囲の鍵位置を、０．２２５／１２８ｍｍ単位の精度で表現することができる。一方、負方向での相対位置を表す拡張データ［Ｂｎ  １１  ｙｙ］では、対応する位置データが表す位置から―０ｍｍの位置を「ｙｙ」＝「００ｈ」で表現でき、また、対応する位置データが表す位置から−１２７＊０．２２５／１２８ｍｍ＝−０．２２３２４２１８７５ｍｍの位置を「ｙｙ」＝「７Ｆｈ」により表現できる。従って、拡張データ［Ｂｎ  １１  ｙｙ］は、第１の分解能（１ディジット＝０．２２５／１２８ｍｍ）の場合、対応する位置データ［Ａｎ  ｋｋ  ｘｘ］が表す位置から負方向に最小−０．２２３２４２１８７５ｍｍの範囲の鍵位置を、１／１２８ｍｍ単位の精度で表現することができる。
【００５９】
第２の分解能（１ディジット＝０・２２５／８ｍｍ）の場合、正方向での相対位置を表す拡張データ［Ｂｎ  １０  ｙｙ］では、対応する位置データが表す位置（ｘｘ＝００ｈ又は３０ｈ）から＋０ｍｍの位置を「ｙｙ」＝「００ｈ」で表現でき、また、対応する位置データが表す位置（ｘｘ＝００ｈ又は３０ｈ）から＋１２７＊０．２２５／８ｍｍ＝＋３．５７１８７５ｍｍの位置を「ｙｙ」＝「７Ｆｈ」により表現できる。従って、拡張データ［Ｂｎ  １０  ｙｙ］は、第２の分解能（１ディジット＝０．２２５／８ｍｍ）により、鍵１３０のレスト位置又はエンド側の最大位置（ｘｘ＝００ｈ又は３０ｈ）から正方向に最大＋３．５７１８７５ｍｍの範囲の鍵位置を、データ記述マージンとして、０．２２５／８ｍｍ単位の精度で表現することができる。一方、負方向での相対位置を表す拡張データ［Ｂｎ  １１  ｙｙ］では、対応する位置データが表す位置（ｘｘ＝００ｈ又は３０ｈ）から―０ｍｍの位置を「ｙｙ」＝「００ｈ」で表現でき、また、対応する位置データが表す位置（ｘｘ＝００ｈ又は３０ｈ）から−１２７＊０．２２５／８ｍｍ＝−３．５７１８７５ｍｍの位置を「ｙｙ」＝「７Ｆｈ」により表現できる。従って、拡張データ［Ｂｎ  １１  ｙｙ］は、第２の分解能（１ディジット＝０．２２５／８ｍｍ）により、鍵１３０のレスト位置又はエンド側の最大位置（ｘｘ＝００ｈ又は３０ｈ）から負方向に最小−３．５７１８７５ｍｍの範囲の鍵位置を、データ記述マージンとして、１／８ｍｍ単位の精度で表現することができる。
【００６０】
図１１は、当該第２実施例に係る拡張データ［Ｂｎ  １０  ｙｙ］及び拡張データ［Ｂｎ  １１  ｙｙ］の運用例を説明するための概念図である。この運用例では、負方向の拡張データ［Ｂｎ  １１  ｙｙ］は、基本的には、レスト位置（ストローク量０ｍｍの位置）よりも小さい位置の表現にのみ使用し、レスト位置以上の位置表現には正方向の拡張データ［Ｂｎ  １０  ｙｙ］を使用するものとする。すなわち、位置データ［Ａｎ  ｋｋ  ００］又は［Ａｎ  ｋｋ  ４０］で大まかにレスト位置（ストローク量０ｍｍ）と表現されたデータに、負方向の拡張データ［Ｂｎ  １１  ｙｙ］で細かい分解能の負の値を付加することで、レスト位置を下側に越えた鍵又はハンマの位置を表現する。また、位置データ［Ａｎ  ｋｋ  ３０］又は［Ａｎ  ｋｋ  ７０］で大まかにエンド位置（レスト位置からのストローク量１０．８ｍｍ又は４８ｍｍ）と表現されたデータに、正方向の拡張データ［Ｂｎ  １０  ｙｙ］で細かい分解能の正の値を付加することで、エンド位置を上側に越えた鍵又はハンマの位置を表現する。
一方、それ以外の部分（つまり、鍵又はハンマの正味のストローク範囲内）は、位置データ［Ａｎ  ｋｋ  ｘｘ］により大まかなストローク位置を表現し、これに正方向の拡張データ［Ｂｎ  １０  ｙｙ］による細かい分解能の正の値を付加することで、鍵又はハンマのストローク位置を詳細に表現する。例えば、ハンマのストローク位置の位置データ［Ａｎ  ｋｋ  ５０］と位置データ［Ａｎ  ｋｋ  ５１］の間の微小なストローク位置は、［Ａｎ  ｋｋ  ５０］に正方向の拡張データ［Ｂｎ  １０  ｙｙ］を付加することで表現できる。
【００６１】
なお、拡張データ［Ｂｎ  １０  ｙｙ］及び拡張データ［Ｂｎ  １１  ｙｙ］の運用方法は、上述のようにレスト位置以下の部分を負方向の拡張データ［Ｂｎ  １１  ｙｙ］で表現し、それ以外を正方向の拡張データ［Ｂｎ  １０  ｙｙ］で表現するというように、両者を使い分ける方法に限らず、正方向又は負方向の拡張データのどちらで位置表現できるかを選択できてもよい。例えば、ハンマのストローク位置の位置データ［Ａｎ  ｋｋ  ５０］と或る正方向の拡張データ［Ｂｎ  １０  ｙｙ］で表現された位置は、位置データ［Ａｎ  ｋｋ  ５１］と或る負方向の拡張データ［Ｂｎ  １１  ｙｙ］でも表現しうる。
また、上記図１１の運用例では、鍵又はハンマの正味のストローク範囲内（レスト―エンド間）の位置表現にも拡張データを使用する例を示したが、拡張データの使用は、レスト位置を下側に越えた位置及びエンド位置を上側に越えた位置の表現、即ち、マージンの表現にのみ限られていてもよい。具体的には、鍵のレスト側マージンの表現［Ａｎ  ｋｋ  ００］［Ｂｎ  １１  ｙｙ］と、鍵のエンド側マージンの表現［Ａｎ  ｋｋ  ３０］［Ｂｎ  １０  ｙｙ］、並びに、ハンマのレスト側マージンの表現［Ａｎ  ｋｋ  ４０］［Ｂｎ  １１  ｙｙ］と、ハンマのエンド側マージンの表現［Ａｎ  ｋｋ  ７０］［Ｂｎ  １０  ｙｙ］にのみ適用されてもよい。
【００６２】
また、図９、図１０に示した例においては、正方向の拡張データ［Ｂｎ  １０  ｙｙ］と負方向の拡張データ［Ｂｎ  １１  ｙｙ］の位置記述分解能（１ディジットあたりの記述単位）や、位置記述範囲は同じものとしたが、これに限らず、記述分解能や位置記述範囲を正方向の拡張データと負方向の拡張データとで違えるように設定してもよい。
【００６３】
なお、上述の実施例では、位置データ［Ａｎ  ｋｋ  ｘｘ］の第３バイトの値によって位置が表現されるのは、鍵１３０とハンマ１４２との２つの部材であった。この発明によれば、位置データ［Ａｎ  ｋｋ  ｘｘ］の第３バイトの値によって２つ以上の複数部材の位置を表現することも勿論可能である。ここで、当該位置データ［Ａｎ  ｋｋ  ｘｘ］が位置を表現する部材としては、典型的には、発音動作（鍵操作）に従動して変位する部材であって、上記ハンマ１４２の他にダンパやジャック等を含む。例えば、上述の例では、位置データ［Ａｎ  ｋｋ  ｘｘ］の第３バイト「ｘｘ」の値は、鍵１３０の位置表現用の数値範囲として「０１ｈ」〜「３０ｈ」、ハンマ１４２の位置表現用の数値範囲として「４０ｈ」〜「７０ｈ」を割り当てていた。この場合、ダンパやジャック等の他の部材の位置表現用の値「ｘｘ」の数値範囲としては、７１ｈ以上を適宜に割り当ててよい。すなわち、値「ｘｘ」が取りうる値「０〜１２７（１０進表記）」の１２８段階を、位置情報を記述すべき部材の数や、記述分解能に応じて適宜の数値範囲で複数に区分すればよい。
【００６４】
また、上述の例では、鍵、ハンマ、あるいはダンパ等、発音動作（鍵操作）に従動する複数の移動部材について、位置データ［Ａｎ  ｋｋ  ｘｘ］という１つのメッセージフォーマットで記録する例について説明したが、ペダル類などその他の移動部材についても適用しうる。また、１つのフォーマットで複数の移動部材の物理的状態に関する情報を記録するという技術思想は、位置情報のみならず、速度情報あるいは加速度情報の記述においても適用可能である。また、図示の例では、アコースティックピアノとしてグランドピアノの構成例を示したが、この発明は、これに限らずアップライトピアノにおける演奏情報の記述にも適用可能である。また、上述の例では、本発明をアコースティックピアノに適用した例について説明したが、１つのアクションとしての発音動作に従動する複数の移動部材について、物理的状態に関する情報（位置、速度若しくは加速度など）を、１つのフォーマットで生成、記録するという技術思想は、その他適宜の鍵盤楽器に適用して差し支えない。
また、この発明は、上述したように、鍵盤楽器にこの発明に係る演奏情報を生成、記録する装置を具備する構成のみならず、鍵盤楽器とは別体の外部装置として構成し、実施してもよいい。また、この発明は装置の発明として構成し、実施することができるのみならず、上記演奏情報を生成、記録するためにコンピュータまたはＤＳＰ等のプロセッサが実行するプログラムの形態で実施することができるし、そのようなプログラムを記憶した記録媒体の形態で実施することもできる。すなわち、前記プログラムを実行するコンピュータを鍵盤楽器に外部接続して、この発明を実施することもできる。
【図面の簡単な説明】
【００６５】
【図１】この発明の一実施例に係る鍵盤楽器の機械的構成を示す側面断面図。
【図２】図１に示す鍵１３０及びその周辺構成を抽出して示す側面断面図。
【図３】図１に示すハンマ１４２及びその周辺構成を抽出して示す側面断面図。
【図４】同実施例に係る鍵盤楽器の電気的ハードウェア構成例を示すブロック図。
【図５】（ａ）は同実施例に係る位置情報を表すイベントメッセージのフォーマット例を示す図、（ｂ）は同実施例に係る位置データによって位置を表現すべき複数の部材の各々に関する数値範囲の割り当て例を示す図。
【図６】（ａ）はハンマの動作軌道を、また、（ｂ）は鍵の動作軌道を夫々示すグラフであって、ハンマ及び鍵のストローク位置と、位置データの第３バイトの値「ｘｘ」及び拡張データの第３バイト「ｙｙ」の値との対応関係を示す図。
【図７】ハンマ及び鍵のストローク位置と、位置データの値「ｘｘ」並びに拡張データの値「ｙｙ」の対応関係の一例を示す表。
【図８】この発明の第２実施例の概略を説明するための図であって、（ａ）は上記図６〜図７に示す拡張データによる位置表現の概念図、（ｂ）は該第２実施例に係る拡張データによる位置表現の概念図。
【図９】前記第２実施例におけるハンマ及び鍵のストローク位置と位置データの第３バイトの値「ｘｘ」及び拡張データの第３バイト「ｙｙ」の値の対応関係を示す図であって、（ａ）はハンマの動作軌道を、また、（ｂ）は鍵の動作軌道を示す。
【図１０】前記第２実施例におけるハンマ及び鍵のストローク位置と位置データの値「ｘｘ」と拡張データの値「ｙｙ」との対応関係の一例を示す表。
【図１１】前記第２実施例に係る拡張データの運用例を説明するための概念図。
【符号の説明】
【００６６】
１００  鍵盤楽器、１１０  棚板、１２０  筬中、１３０  鍵、１３５，１４５  被検出部材、１４０  アクション機構、１４２  ハンマ、１７０  弦、２００  ＣＰＵ、２１０  ＲＡＭ、２２０  ＲＯＭ、２３０  操作部、２４０  タイマ、２５０ａ，２５０ｂ  Ａ／Ｄ変換器、２６０  記憶装置、３１０  キーセンサ、４１０  ハンマセンサ
【図１】
2005157288.tif 000003
【図２】
2005157288.tif 000004
【図３】
2005157288.tif 000005
【図４】
2005157288.tif 000006
【図５】
2005157288.tif 000007
【図６】
2005157288.tif 000008
【図７】
2005157288.tif 000009
【図８】
2005157288.tif 000010
【図９】
2005157288.tif 000011
【図１０】
2005157288.tif 000012
【図１１】
2005157288.tif 000013