まず、この実施例に係る鍵盤楽器の機械的構成例について図1を参照して説明する。図1に示すように、鍵盤楽器(ピアノ)100には、棚板110が具備されており、棚板110の上面には、図1の紙面垂直方向に延在するよう筬中120が配置される。筬中120上面には複数のバランスピン125が立設されており、88個の鍵130の各々は、各バランスピン125に対して貫通された状態で、筬中120上面に並設される。これらの各鍵130には、各々が担当する音高を示す「21」〜「108」までのノート番号が割り当てられている。また、各鍵130は、バランスピン125に貫通された位置を、凡その支点として揺動可能に保持されており、演奏者(操作者)によって鍵130の一端(前方近傍)が押下されることで、揺動する。演奏者は鍵130を押下げることによって演奏操作(押鍵)を行う。各鍵130の後方近傍には、対応する鍵130の揺動に応じて駆動されるアクション機構140が夫々設けられている。各アクション機構140は、対応する鍵の運動をハンマによる打弦運動に変換する装置であって、対応する鍵130に応じて「21」〜「108」までのノート番号が割り当てられた88個のハンマ142を含む。各ハンマ142は、演奏者による対応する鍵の押鍵操作に連動して、対応する弦170を打撃する。ハンマ142によって弦170が打撃されると、弦振動が生じ、その振動が、駒(図示しない)を介して響板(図示しない)に伝達することで、楽音が発生する。
図2は、鍵130及びその周辺機構を抽出して示す側面図であり、図3は、ハンマ142及びその周辺機構を抽出して示す側面図である。図2に示すように、鍵130は、非押鍵時(外力を加えない状態)では、図において実線で示すようなレスト位置に位置される。鍵130は、演奏者による押鍵操作によって一端(前方近傍)を押下げられることで、バランスピン125を凡その動作支点として揺動し、該レスト位置から鍵の揺動ストロークのエンド位置まで変位しうる。図2中の2点鎖線位置は、前記エンド位置まで押下げられた鍵130が占めるストローク位置を示す。当該実施例において、鍵130はレスト位置を基準にして約10mmのストローク幅で変位されるものとする。押鍵操作が解除されると、鍵130はレスト位置へ復帰する。なお、鍵130の前記ストロークの長さ(約10mm)は、鍵の先端位置を基準に規定されたものとする。
図3において、ハンマ142は、ハンマウッド141を介してハンマシャンク143に保持されている。ハンマシャンク143は、ハンマフレンジ146においてピン144を支点として回動可能に取り付けされる。ハンマ142を保持するハンマシャンク143は、鍵130が非押鍵(外力を加えない状態)のときには、図において実線で示すようなレスト位置に位置される。演奏者による押鍵操作が行われると、これに連動して、ピン144を中心に反時計方向に回転し、ハンマ142は対応する弦170を打撃する。図3において2点鎖線位置は、ハンマ142が打撃すべき弦170に当接する位置を示し、この位置をハンマ142のストロークのエンド位置とする。当該実施例において、ハンマ142はレスト位置を基準にして約48mmのストローク幅で変位されるものとする。なおハンマ142のストロークの長さ(約48mm)も、その先端位置を基準に規定されたものとする。
周知の通り、鍵130の運動(揺動)は、アクション機構140に含まれるジャック等、複数の移動部材を介して、ハンマ142に伝達される。すなわち、まず、演奏者の演奏操作によって鍵130が運動し、その運動がジャック等のアクション機構140に含まれる複数の移動部材を変位せしめ、それに連動してハンマ142が対応する弦170を打撃すべく変位する。後述するように、この発明によれば、上記のように変位する鍵130並びにハンマ142のストローク位置が、所定のデータ記述分解能を有する基本情報と、該基本情報の下位に従属して前記所定の記述分解能に満たない前記移動状態の検出値をより細かい分解能で表現する拡張情報とからなる位置情報によって表現される。なお、本実施例において、鍵130及びハンマ142の或る時点(サンプル時刻)におけるストローク位置は、位置情報として定義された1つのメッセージ形式で夫々表現されることが後述される。また、鍵130及びハンマ142は、実際には、機械的なズレや撓み、部材のへたり等が要因となって、レスト位置及びエンド位置として規定した位置を超えて若干余分にストローク変位しうる。本実施例では、そのようなレスト位置及びエンド位置を超えたストローク位置も、鍵130及びハンマ142の位置情報として表現しうることが後述されるだろう。
当該鍵盤楽器100において、複数の鍵130に夫々対応して、当該鍵のストローク位置を検出するためのキーセンサ310が具備されており、また、複数のハンマ142に夫々対応して、当該ハンマのストローク位置を検出するためのハンマセンサ410が具備されている。キーセンサ310及びハンマセンサ410は、一例として、受光素子と発光素子を含む光学式のセンサで構成される。光学式のセンサは、周知のように、発光素子が被検出部材に向けて光を照射し、受光素子にて該被検出部材からの反射光を受光し、その受光量に応じてセンサから該被検出部材までの距離を検出出力として得るものである。
図2に示すように、鍵130の上方にはキーセンサ310を支持するための支持部材300が設けられている。各鍵130の上面には被検出部材135が配置されており、キーセンサ310は支持部材300上において該被検出部材135に対向する位置に配置される。押鍵に伴う鍵130の揺動ストロークに応じて、キーセンサ310と被検出部材135の相互距離が変化するので、キーセンサ310は、前記距離を検出することによって、鍵130のストローク位置を連続的に検出することができる。なお、キーセンサ310は、受光素子の受光量に応じて被検出部材135までの距離を、例えば0.001mm単位で検出できるものとする。
図3に示すように、ハンマシャンク143の上方には、ハンマセンサ410を支持するための支持部材400が設けられている。各ハンマシャンク143の上面には被検出部材145が配置されており、ハンマセンサ410は支持部材400上において該被検出部材145に対向する位置に配置される。ハンマ142のストローク変位(ハンマシャンク143の回転変位)に応じて、ハンマセンサ410と被検出部材145の相互距離が変化するので、ハンマセンサ410は、前記距離を検出することによって、ハンマ142のストローク位置を連続的に検出することができる。なお、ハンマセンサ410も、キーセンサと同様に受光素子の受光量に応じて被検出部材135までの距離を、例えば0.001mm単位で検出できるものとする。
なお、上記では鍵130とハンマ142に夫々センサを具備するものとしたが、これらに限らず、例えばダンパ等、その他の発音動作に連動する何れの移動部材においてもセンサを具備し、位置検出できるよう構成しうる。
図4は、当該鍵盤楽器100の電気的ハードウェア構成を示すブロック図である。当該図において、鍵盤楽器100は、CPU200、RAM210、ROM220、操作部230、タイマ240、記憶装置260及びA/D変換器250a、250bを含み、各装置間がバスBを介して接続される。A/D変換器250aには、複数(88鍵)の鍵に夫々対応して設けられたキーセンサ310が接続され、A/D変換器250bには、複数のハンマに夫々対応して設けられたハンマセンサ410が接続される。
CPU200は、ROM220或いはRAM210等メモリ内の各種プログラムを実行して全体的な動作を制御する。この各種プログラムとして、この発明に係る演奏情報生成処理及び演奏情報記録処理を実行するためのプログラムが含まれる。操作部230は、各種入力操作を行うためのスイッチ群等で構成され、操作者は演奏情報生成処理及び演奏情報記録処理の開始や終了の指示を行うことができる。タイマ240は各種時間を計時する。
各キーセンサ310は、対応する各鍵130の位置を検出し、該検出した各鍵130の位置を示すアナログ信号をA/D変換器250aに出力する。A/D変換器250aは、各キーセンサ310から入力されるアナログ信号をディジタル信号に変換して、各鍵130の位置を示すディジタル信号をCPU200に対して供給する。ここでは、センサ310から出力されアナログ信号が十分な分解能を持つビット長(例えば12ビット)のバイナリ信号に変換されるものとする。また、各ハンマセンサ410は、対応する各ハンマ142の位置を検出し、該検出した各ハンマ142の位置を示すアナログ信号をA/D変換器250bに入力する。A/D変換器250bは、各ハンマセンサ410から供給されたアナログ信号をディジタル信号に変換して、CPU200に対して各ハンマ142の位置を示すディジタル信号を供給する。ここでは、センサ410から出力されアナログ信号が十分な分解能を持つビット長(例えば12ビット)のバイナリ信号に変換されるものとする。
CPU200は、A/D変換器250aあるいは250bから供給されるディジタル信号に基づく鍵あるいはハンマの位置情報を生成し、これとタイマ240が計時する時間情報とを用いて、各鍵130及び各ハンマ142の位置が時系列的に規定された演奏情報を生成する。位置情報は、演奏者の発音動作に連動して発生された各鍵130あるいは各ハンマ142の連続的な運動の軌道(ストローク変位)を、MIDI規格に従うメッセージとして表現するものである。
記憶装置260は、上記生成した演奏情報を格納・記憶するものであり、例えばハードディスク装置等の書き換え可能な適宜の記憶手段で構成して差し支えない。また、記憶装置260として、フロッピーディスク(登録商標)又はフレキシブルディスク(登録商標)、コンパクトディスク(CD‐ROM、CD‐RAM)、光磁気ディスク(MO)、ZIPディスク、DVD(Digital Versatile Disk)、半導体メモリ等、適宜の形態の着脱可能な外部記憶媒体を利用してもよい。
記憶装置260において生成した演奏情報を記録するためのサンプリング周期は、記憶装置260側で任意に選択できるものとしてよい。なお、本実施例においては、前記演奏情報の生成・記録のためのサンプリング周期は任意の値で固定されるものとする。また、記憶装置260において、全ての鍵130及び/又はハンマ142についての該演奏情報を記録するのみならず、ユーザが該演奏情報のうち記録すべきノート番号を任意に選択できるようにし、該選択されたノート番号に対応する鍵及び/又はハンマについてのみ記録できるようにしてもよい。
記憶装置260において記録される演奏情報は、例えばSMF(スタンダードMIDIファイル)形式のフォーマットに従って記録されたシーケンシャルなデータである。この発明に係る、鍵やハンマ等の移動部材の位置情報を、MIDIメッセージとして生成、記録することは、例えば、データの通信や編集等において有利である。演奏情報は、例えば楽曲別の曲データファイルとして、該記憶装置260に記憶されるもので、当該楽曲の演奏データ群(ノートオン・ノートオフ情報、ピッチ情報やベロシティ情報などのイベントメッセージ群)として、この実施例に係る位置情報を表すイベントメッセージが含まれる。図5において、この実施例に係る位置情報を表すイベントメッセージのフォーマット例を示す。
図5(a)に示すように、当該位置情報を表すMIDIメッセージは、位置情報の基本となる「位置データ」(基本情報)と、前記基本となる位置データに対して更に詳細な情報を付加する「拡張データ」(拡張情報)との2種のバイトメッセージから構成されるもので、両者を組み合わせて、或る時点(サンプリング時刻)における1つの位置情報の表現となる。すなわち、基本となる「位置データ」は、相対的に粗い精度の所定記述分解能によって、或るサンプリング時刻におけるレスト位置からエンド位置の範囲での鍵若しくはハンマのストローク位置を大まかな値を、つまり上位の値を特定する。そして、この「位置データ」の下位に従属する「拡張データ」は、ストローク位置の検出値を前記所定記述分解能よりも細かい分解能で記述することで、同サンプリング時刻における鍵若しくはハンマの該「位置データ」で特定された位置について、より細かい精度の値を、つまり下位の値を表現する。
「位置データ」は、8ビットデータを1バイト単位とするデータ要素から構成され、3バイトの組み合わせが1つのバイトメッセージを構成している。第1バイトにおいて、上位4ビットは、当該データが表現するメッセージ種類を特定する識別子となるコード「1010」からなる。図示の便宜上「nnnn」で示した下位4ビットは、MIDIチャンネル番号を特定するコード情報からなる。なお、当該第1バイトの先頭ビットが「1」であることは、当該バイトがステータスバイトであることを示す。
位置データの第2バイトは、ノート番号を特定するためのノート番号指定部となる「0kkkkkkk」からなる。具体的には、当該第2バイトの先頭ビットが「0」であることは、当該バイトがデータバイトであることを表現し、図示の便宜上「kkkkkkk」で示した下位7ビットは、各鍵130あるいは各ハンマ142に割り当てられた「21」〜「108」までのノート番号を示すコード「0010101(10進表記における「21」)」〜「1101100(10進表記における「108」)」の何れかの値からなる。ここで示されるノート番号によって、当該位置データがノート番号「21」〜「108」のうちの何れの鍵若しくはハンマに対応しているのかを特定する。また、ここで示すノート番号は、前記記憶装置260においてユーザが任意に選択したノート番号に対応するデータのみを記録する場合等に、参照される。
位置データの第3バイトには、キーセンサ310若しくはハンマセンサ410からの検出出力に基づき生成される鍵130若しくはハンマ142のストローク位置の値を表す情報が割り当てられている。この情報は「0xxxxxxx」によって表現される。先頭ビットの「0」は、前記と同様に当該第3バイトがデータバイトであることを示し、図示の便宜上「xxxxxxx」で示した下位7ビットは具体的なストローク位置の値を表すデータ部分である。この情報が、鍵130或はハンマ142のストローク位置を示す位置情報の値を、相対的に粗い所定の分解能で大まかに記述した「上位の値」である。なお、下位7ビット「xxxxxxx」がとる値は、鍵130の位置表現用に割り当てられた数値範囲と、ハンマ142の位置表現用に割り当てられた数値範囲とに区分される。このようなデータフォーマットによれば、鍵の位置データ表現用の割り当てフォーマットやハンマの位置データ表現用の割り当てフォーマットを別々に設定することなく、共通のメッセージ形式で鍵130の位置情報並びにハンマ142の位置情報を表現できるようになる。このことはMIDIメッセージの割り当てフォーマットの有効活用という点で好ましく、また、複数の部材(この場合は鍵とハンマ)の位置情報を纏めて処理できるので、データ編集に際して有利である。なお、上記数値範囲の区分の具体例については後述する。
「拡張データ」は、前述の位置データの下位に従属するもので、対応する(すなわち基本とすべき)位置データの記述分解能に満たないストローク位置の検出値を、より細かい記述分解能で表現したデータであり、8ビットデータを1バイト単位とするデータ要素が3バイト組み合わされることで1つのバイトメッセージを構成している。「拡張データ」が表現するデータ内容は、対応する基本情報によって規定される。この実施例では、拡張データはストローク位置を記述するものであるが、例えば、対応する基本情報が速度を表す情報であれば、それに従属する拡張情報はデータを表す。
この拡張データの第1バイトにおいて、上位4ビットはコード「1010」からなり、図示の便宜上「nnnn」で示した下位4ビットは、MIDIチャンネル番号を特定するコード情報からなる。ここで「nnnn」で表現されたMIDIチャンネル番号は、対応する位置データが有するチャンネル番号のコード情報と同一なものである。また、第2バイトはコード「00010000」からなる。第1バイト及び第2バイトは、当該バイトメッセージが拡張情報(汎用拡張バイト)であることを定義する識別子として機能するもので、この識別子は、図示の便宜上「1010nnnn(第1バイト)」及び「00010000(第2バイト)」で示したコード情報からなる。
拡張データの第3バイトには、対応する位置データが表す鍵若しくはハンマの位置データの値の下位の値として、ストローク位置の検出値をより細かい記述分解能で表現した情報が割り当てられている。この情報は「0yyyyyyy」によって表現される。先頭ビットの「0」は、前記と同様に当該第3バイトがデータバイトであることを示し、図示の便宜上「yyyyyyy」で示した下位7ビットは、具体的なストローク位置の値を表すデータ部分である。この発明に従えば、位置情報の実質的なデータ記述精度は、拡張データが表現する下位の値に従った高精度なものとされる。なお、拡張データの第3バイトの値は、鍵130並びにハンマ142の正味のストローク範囲(レスト位置からエンド位置までの範囲)を外側に越えたストローク位置を表現しうるよう、データ記述上の「マージン」を有する。この明細書において、用語「マージン」はレスト位置からエンド位置までの範囲を外側に越えた移動部材のストローク位置を表現する情報の意味で使用される。このデータ記述上の「マージン」の確保は、対応する位置データによって特定されるストローク位置が、レスト位置−エンド位置範囲内である場合に、相対的に細かい精度(分解能)の「第1の分解能」が適用され、一方、レスト位置若しくはエンド位置である場合、該「第1の分解能」よりも相対的に粗い精度(分解能)の「第2の分解能」が適用されることによって実現される。
なお、拡張データは、基本となる位置データの下位に位置付けされるものであり、記憶装置260における記録にあたって、記録媒体上では、対応する位置データの直後のアドレスに書き込み、また、伝送上では、対応する位置データと拡張データとの間に他のメッセージを挟まず、且つ最小時間間隔で送られるものとする。これにより、対応する位置データとの対応付け不備や、記録ミス、伝送ミス、および読み込みミス等の影響を可及的回避している。
図5(a)において、位置データの右側に付記した[An kk xx]は、上記位置データを16進数的に簡略表記したものである。「An」は第1バイト「1010nnnn」であって、“n”の値によってMIDIチャンネルを示す。「kk」は第2バイト「0kkkkkkk」であって、“kk”の値によってノート番号を示す。「xx」は第3バイト「0xxxxxxx」であって、“xx”の値によって具体的なデータの数値を示す。また、[Bn 10 yy]は、上記拡張データの16進数的な簡略表記であって、「Bn」が第1バイト「1011nnnn」、「10」が第2バイト「00010000」を夫々示し、「yy」は第3バイト「0yyyyyyy」であって、“yy”の値によって具体的なデータの数値を示す。以下の説明において、特に断りの無い場合は、この簡略表記を用いる。なお、この例では、前記位置データ及び拡張データの両第3バイト「xx」及び「yy」は、一般的なMIDIデータと同様に、128段階の分解能を持つもので、値としては値「00h」〜「7Fh」(10進表記で0〜127)をとりうるものとする(なお末尾の“h”は16進数表記であることを示す)。
例えば、位置データ[An kk xx]が、或るサンプル時刻におけるハンマのストローク位置を記述する分解能を1mm単位とし、ハンマストローク位置の上位の値として整数部を表現したとすると、拡張データ[Bn 10 yy]は、同サンプル時刻における、前記1mm単位の分解能に満たない小数点以下のハンマストローク位置の値(下位の値)を、より細かい分解能(例えば1/64mm単位)で記述する。位置データが表現する上位の値と拡張データが表現する下位の値を組み合わせることで、位置情報は、或るサンプル時刻におけるハンマのストローク位置を、前記拡張データの細かい分解能に従う値で表現する。このように、位置情報が位置データとその下位に従属する拡張データから構成されることにより、当該位置情報のデータ編集が非常に簡便に行えるようになる。例えば、位置情報のデータ値を微小に調整するには、編集対象となる位置情報の拡張データについて編集処理すれば、細かい数値単位でのデータ調整が行える。また、そのような位置情報の編集処理は、汎用の編集ツール(例えばパーソナルコンピュータ)によって、従来のMIDIイベントデータの編集と同様な操作で行いうる。従って、この発明によれば、演奏情報としての位置情報等、移動状態に関するデータの編集処理が簡便化される。
図6(a)は、鍵130の動作状況(軌道)の一例を示すグラフであり、(b)ハンマ142の動作状況(軌道)の一例を示すグラフである。図6を参照して、この実施例に係る位置情報による鍵130とハンマ142のストローク位置の表現例について具体的説明する。図6(a)、(b)において、縦軸にストローク位置をとり、横軸は時間軸を示す。当該グラフの右側には、位置データの第3バイト「xx」の値及び拡張データの第3バイト「yy」の値と、鍵130、ハンマ142のストローク位置との対応関係を夫々示す。また、図7は、ハンマ及び鍵のストローク位置と、位置データの値「xx」と拡張データの値「yy」との対応関係の一例を示す表である。以下、図6及び図7を参照してこの実施例に係る位置情報によるデータの記述について詳細に説明する。なお、以下に述べる各部材の位置を記述するための数値範囲の割り当ては、記述すべき部材のストローク変位量や、データを記述する分解能等に鑑みて適宜に規定されるもので、当該実施例に限定されるものではない。
図6(a)において、ハンマ142は、レスト位置を基準(0mm)として約48mmのストローク幅で変位する。位置データは、ハンマ142のストローク位置(0〜48mm)を表現するための数値範囲として、第3バイト「xx(2進表記で0xxxxxxx)」における値「40h」から「70h」が割り当てられている。なお、この例では、ハンマ142のレスト位置からエンド位置の間のストローク位置記述分解能は「xx」の値1ディジットあたり1mm単位とされる。
ハンマ142の位置を示す位置データの値「xx」の最小値「40h」(10進表記で「64」)は、レスト位置(ストローク量0mmの位置)を表現する。また、最大値「70h」(10進表記で「112」)は、エンド位置(レスト位置からストローク量48mmの位置)を表現する。そして、レスト位置‐エンド位置間のストローク位置を値「41h」〜値「6Fh」によって1ミリ単位でリニアに表現する。ここで「リニアに表現」とは、データの値1ディジットが1ミリに比例していることである。例えば、或るハンマ142が長さ40mmストロークした状態を表現するには、[An kk 68]と表現する。
これに対して、ハンマ142の位置を示す拡張データの第3バイト「yy」の値は、位置データが1ディジット(1mm単位)で表現した値を更に細かい分解能で表現する。この例では、対応する位置データの値を更に正方向又は負方向の夫々について64段階の分解能で細分化して表現している。正方向又は負方向の夫々について64段階に分割することは、当該データの値が「00h」〜「7Fh」の128段階をとりうることから任意に設定されたものである。
この例では、値「yy」は、対応する位置データによって記述されたハンマ142の位置が、レスト位置‐エンド位置の範囲内(位置データの値「41h」〜値「6Fh」の範囲)にある場合と、レスト位置若しくはエンド位置(位置データの値「40h」若しくは値「70h」)にある場合とで異なる記述分解能でデータを記述するものとする。これは、前述のデータ記述上の「マージン」を確保するためである。一例として、位置データの値が「41h」〜「6Fh」の範囲以内ならば、値「yy」は、1ディジットを1/64mm単位とする記述分解能(これを説明の便宜上「第1の分解能」とする)でハンマのストローク位置を記述する。一方、位置データの値が「40h」若しくは「70h」の場合、値「yy」は、1ディジットを1/4mm単位とする記述分解能(これを説明の便宜上「第2の分解能」とする)でハンマのストローク位置を記述する。
拡張データによるハンマ位置の具体的な記述態様の一例について説明する。先ず「第1の分解能」で記述される値「yy」は、対応する位置データの値から±0mmの位置を中心の基準位置として「00h」で表現する。この値「yy」によって記述可能な最小位置は、基準位置から負方向の64段階目すなわち±0mmから−64/64mm(−1mm)の位置であって、これは値「40h」(10進表記で64)に相当する。また、この値「yy」によって記述可能な最大位置は、基準位置から正方向の63段階目すなわち±0mmから+63/64mm(+0.984375mm)の位置であって、これは値「3Fh」(10進表記で63)に相当する。従って、或る拡張データが「第1の分解能」で記述可能なストローク幅は、約±1mmとされる。位置データの値と拡張データの値とを組み合わせて表現されるハンマのストローク位置は、「xx+yy/64mm」(但し、ここでxx及びyyは、データ値が表現する物理量)である。
一方、「第2の分解能」で記述される値「yy」(すなわち対応する値xxが「40h」又は「70h」の場合)は、対応する位置データの値から0mmの位置を中心の基準位置として「00h」で表現する。この値「yy」によって記述可能な最小位置は、基準位置から負方向の64段階目すなわち±0mmから−16mm(―64/4mm)の位置であって、これは値「40h」(10進表記で64)に相当する。また、この値「yy」によって記述される最大位置は、基準位置から正方向の63段階目すなわち±0mmから+15.75mm(+63/4mm)の位置であって、値「3Fh」(10進表記で63)に相当する。従って、或る拡張データが「第2の分解能」で記述可能なストローク幅は、約±16mmとされる。位置データの値と拡張データの値とを組み合わせて表現されるハンマのストローク位置は、「xx+yy/4mm」(但し、ここで値xx及び値yyは、値が表現する物理量)である。これによれば、当該拡張データは、ハンマ142のストローク位置として、レスト位置若しくはエンド位置を外側に越えた「マージン」を夫々約16mmの範囲で記述できる。従って、ハンマ142のレスト位置若しくはエンド位置を越えたストローク変位(マージン)を当該拡張データによって十全に表現される。この発明に従い、位置情報を基本情報とそれに従属する拡張情報とによって構成することは、上記のようなデータ記述上の「マージン」を確保できるという利点もある。
例えば、或るハンマ142のストローク位置の長さ40.5mmの記述は、位置データ[An kk 68]によってストローク長さ40mmを表現し、これに+0.5mm(+32/64mm)の表現たる拡張データ[Bn 10 20]を付加することでなされる。なお、同じストローク位置(40.5mm)は、例えば[An kk 69](位置データによる41mmの表現)と、−0.5mmの表現たる[Bn 10 60]とによっても記述できる。
また、エンド位置を外側に越えたストローク位置の表現の一例として、或るハンマ142のストローク位置の長さ56mmは、ストローク位置48mmを表現する位置データ[An kk 70]と、+8mm(+32/4mm)の表現たる拡張データ[Bn 10 20]とによって記述される。レスト位置を外側に越えた位置表現例としては、或るハンマ142のストローク長さ−0.25mmは、ストローク位置0mmを表現する位置データ[An kk 40]と、−0.25mm(−1/4mm)の表現たる拡張データ[Bn 10 7F]とによって記述される。
次に、この実施例に係る位置情報による鍵130のストローク位置の表現の一例について具体的説明する。前述したように、鍵130は、レスト位置からエンド位置まで約10mmのストローク幅で変位する。位置データの第3バイト「xx」は、1ディジットあたり0.225mm単位で、値「01h」から値「30h」を用いて鍵130のレスト位置からエンド位置の間でのストローク位置を表現する。
鍵130のストローク位置を表現する位置データの値「xx」の最小値「01h」は、基準となるレスト位置(ストローク量0mmの位置)より内側の0.225mmのストローク位置を表現する。また、最大値「30h」は、前記値「01h」から起算して0.225mm*48の位置、すなわちエンド位置(レスト位置からストローク量10mmの位置)より外側の10.8mmのストローク位置を表現する(なお、本明細書において、“*”は乗算を示す)。そして、レスト位置‐エンド位置間での鍵のストローク位置を値「02h」〜値「2Fh」によって0.225ミリ単位でリニアに表現する。
鍵130のストローク位置を表現する拡張データの第3バイト「yy」の値は、前述したハンマ142のストローク位置を記述する場合と同様に、対応する位置データの値がレスト側の最小位置(xxの最小値「01h」)若しくはエンド側の最大位置(xxの最大値「30h」)を表現している場合に、データ値1ディジットあたりの位置記述単位が比較的粗い「第2の分解能」で鍵130のストローク位置を記述することで、表現可能なストローク範囲を拡張し、データ記述上の「マージン」を確保する。「第2の分解能」の一例として、値「yy」は1ディジットを0.225/4mm単位で鍵のストローク位置を記述する。すなわち、この場合、拡張データは、対応する位置データxxの値「01h」若しくは値「30h」によって表現されたストローク位置に対して、更に、正方向或は負方向について、0.225/4mm単位で表現したストローク位置の値を付加する。
また、対応する位置データが値「02h」〜値「2Fh」の範囲のストローク位置を表現している場合、鍵130の拡張データの値「yy」は、例えば、1ディジットを0.225/64mm単位とする「第1の分解能」でストローク位置を記述する。この場合、拡張データは、対応する位置データが0.225mm単位で特定されたストローク位置の値に対して、そこから更に、正方向或は負方向について0.225/64mm単位で表現されたストローク位置の値を付加する。
鍵130のストローク位置を表現する拡張データによる具体的な記述態様は、前述したハンマ142におけるデータ記述態様と概ね同様である。すなわち、「第1の分解能」で記述される値「yy」(すなわち対応する値xxが「02h」〜「2Fh」の場合)は、1ディジットを0.225/64mm単位で鍵のストローク位置を記述するので、対応する位置データの値から±0mmの位置を基準位置(yy=00h)とし、該基準位置(±0mm)から−0.225mm(―64*0.225/64mm)の位置(yy=40h)を最小位置として、また、該基準位置(±0mm)から+0.221484375mm(+63*0.225/64mm)の位置(yy=3Fh)を最大位置として表現できる。よって、或る拡張データが「第1の分解能」で記述可能なストローク幅は、約±0.225mmとされる。位置データの値と拡張データの値とを組み合わせて表現される鍵のストローク位置は、「0.225*(xx+yy/64)mm」(但し、ここでxx及びyyは、データ値が表現する物理量)である。
一方、「第2の分解能」で記述される値「yy」(すなわち対応する値xxが「01h」又は「30h」の場合)は、1ディジットを0.225/4mm単位で鍵のストローク位置を記述するので、対応する位置データの値から±0mmの基準位置(yy=00h)から、−3.6mm(―64*0.225/4mm)の位置を最小位置(yy=40h)とし、また、該基準位置から+3.54375mm(+63*0.225/4mm)の位置を最大位置(yy=3Fh)として表現する。従って、或る拡張データが「第2の分解能」で記述可能なストローク幅は、約±3.6mmである。位置データの値と拡張データの値とを組み合わせて表現される鍵のストローク位置は、「0.225*(xx+yy/4)mm」(但し、ここで値xx及び値yyは、データ値が表現する物理量)である。これによれば、当該拡張データは、鍵130のストローク位置として、レスト位置若しくはエンド位置を外側に越えた「マージン」を夫々約3.6mmの範囲で記述できることになる。従って、この場合も、鍵130のレスト位置若しくはエンド位置を越えたストローク変位(マージン)を当該拡張データによって十全に表現できる。
例えば、或る鍵130のストローク位置の長さ0mmの記述は、位置データ[An kk 01]によってストローク長さ0.225mmを表現し、これに−0.225mm(−4*0.225/4mm)の表現たる第2分解能の拡張データ[Bn 10 7C]を付加することでなされる。また、エンド位置を外側に越えたストローク位置の表現の一例として、或る鍵130のストローク位置の長さ10.125mmは、ストローク位置10.125mmを表現する位置データ[An kk 2D]と、±0mmの表現たる拡張データ[Bn 10 00]によって記述される。レスト位置を外側に越えた位置表現例としては、或る鍵130のストローク長さ−0.025mmは、ストローク位置0.225mmを表現する位置データ[An kk 01]と、−0.25mm(−1/4mm)の表現たる拡張データ[Bn 10 7F]とによって記述される。
なお、上述の実施例において、図7に示した鍵及びハンマのストローク位置と具体的な値の対応関係や、1ディジットあたりの記述単位等は、一例であって、これに限定されない。
上記図6及び図7を参照して説明した「実施例1」においては、拡張データ[Bn 10 yy]の第3バイト「yy」の値(yy=00h〜7Fh)による位置表現は、図9(a)に示す通りであった:すなわち、第3バイトの値「yy=00h」を、対応する位置データ[An kk xx]から±0mmの位置(基準値)の表現として、該基準値(00h)から+「3Fh」の数値範囲によって、移動部材(ハンマや鍵)の該基準値(±0mm)からの相対的な位置を正方向の変化分で表現し、また、該基準値(00h)から−「40h」の数値範囲によって、移動部材(ハンマや鍵)の該基準値(±0mm)からの相対的な位置を負方向の変化分で表現した。
以下に述べる第3実施例は拡張データによる位置表現の更に別の実施例であって、これによれば、対応する位置データ[An kk xx]が表すストローク位置からの相対的な位置を正方向で表現する場合と、負方向で表現する場合とで、夫々異なる種類の拡張データを使用する。図9(b)は当該第3実施例に係る位置表現の概略を示す概念図である。
図9(b)に示すように、当該第3実施例によれば、拡張データ[Bn 10 yy]を、対応する位置データ[An kk xx]が表すストローク位置からの相対的な位置を正方向で表現するバイトメッセージ(第1種の拡張情報)として定義し、拡張データ[Bn 11 yy]を、対応する位置データ[An kk xx]が表すストローク位置からの相対的な位置を負方向で表現するバイトメッセージ(第2種の拡張情報)として定義する。拡張データ[Bn 10 yy]は、第1バイト「Bn」及び第2バイト「10」により当該バイトメッセージが正方向の位置表現を行うための拡張バイトメッセージであることが識別される。また、拡張データ[Bn 11 yy]の第2バイトは、コード「00010001」(16進表記では「11h」)からなり、第1バイト「Bn」及び第2バイト「11」により当該バイトメッセージが負方向の位置表現を行うための拡張バイトメッセージであることが識別される。
拡張データ[Bn 10 yy]及び拡張データ[Bn 11 yy]の第3バイトの値「yy」は、「00h」〜「7Fh」(10進表記で0〜127)をとる。従って、拡張データ[Bn 10 yy]による正方向の位置表現並びに拡張データ[Bn 11 yy]による負方向の位置表現を、夫々、128段階の分解能で行うことができる。よって、図9(b)に示す当該第3実施例によれば、図9(a)に示す位置表現の方法よりも、より細かい分解能で位置を記述できるようになり、データの精度を向上させることができる。以下、図10及び図11を参照して、この第3実施例に係る拡張データによる具体的な位置記述の一例について説明する。図10(a)は、ハンマ142の軌道の一例、また、(b)は鍵130の軌道の一例を夫々示すグラフである。図10(a)、(b)において、縦軸はハンマ及び鍵のストローク位置、横軸は時間軸を夫々示しており、両グラフの右側には、位置データ[An kk xx]の第3バイト「xx」の値及び拡張データ[Bn 10 yy]乃至拡張データ[Bn 11 yy]の第3バイト「yy」の値と、ハンマ及び鍵のストローク位置の対応関係を示す。また、図11は、図10に示すハンマ及び鍵のストローク位置と、位置データの値「xx」と拡張データの値「yy」との対応関係を示す表である。
ハンマ142は、前述の通り、レスト位置(ストローク量0mmの位置)からエンド位置(レスト位置からストローク量48mmの位置)の間を約48mmのストローク幅で変位するものと想定されている。位置データ[An kk xx]には、第3バイト「xx」の値「40h」〜値「70h」がハンマ142のレスト位置からエンド位置の間のストローク位置を表現する数値範囲として割り当てられており、これは、1ディジットを1mm単位として、ハンマ142のストローク位置を表現する(図10(a)及び図11参照)。すなわち、値「xx」=「40h」がハンマ142のレスト位置を表現し、また、値「xx」=「70h」が、ハンマ142のエンド位置を表現する。そして、レスト位置‐エンド位置間のストローク位置を値「41h」〜値「6Fh」によって1ミリ単位でリニアに表現する。これは、前記図6及び図7を参照して説明した位置表現方法と同様である。
ハンマ142の位置データ[An kk xx]に対応する拡張データ[Bn 10 yy]乃至拡張データ[Bn 11 yy]の値「yy=00h〜7Fh」は、対応する位置データの値「xx」がレスト位置‐エンド位置の範囲内(値「41h」〜値「6Fh」の範囲)である場合、1ディジットを1/128mm単位とする「第1の分解能」でハンマのストローク位置を詳細に表現する。一方、対応する位置データの値がレスト位置若しくはエンド位置(位置データの値「40h」若しくは値「70h」)を表現している場合、拡張データ[Bn 10 yy]乃至拡張データ[Bn 11 yy]の値「yy=00h〜7Fh」は、1ディジットを1/8mm単位とする「第2の分解能」でハンマのストローク位置を表現することで、データ記述上のマージン(ハンマ142の正味のストローク範囲外の位置表現)を確保する。このように、正方向での位置表現及び負方向での位置表現に夫々別のアサイン[Bn 10 yy]及び[Bn 11 yy]を使用することで、第1の分解能及び第2の分解能の双方とも、より細かい精度でのデータ記述が可能となる。
拡張データ[Bn 10 yy]及び拡張データ[Bn 11 yy]によるハンマ位置の記述能力の具体的な一例について、図11を参照して述べる。
先ず、第1の分解能(1ディジット=1/128mm)の場合、正方向での相対位置を表す拡張データ[Bn 10 yy]では、対応する位置データが表す位置から+0mmの位置を「yy」=「00h」で表現でき、また、対応する位置データが表す位置から+127/128mm=+0.9921875mmの位置を「yy」=「7Fh」により表現できる。従って、拡張データ[Bn 10 yy]は、第1の分解能(1ディジット=1/128mm)の場合、対応する位置データ[An kk xx]が表す位置から正方向に最大0.9921875mmの範囲のハンマ位置を、1/128mm単位の精度で表現することができる。一方、負方向での相対位置を表す拡張データ[Bn 11 yy]では、対応する位置データが表す位置から―0mmの位置を「yy」=「00h」で表現でき、また、対応する位置データが表す位置から−127/128mm=−0.9921875mmの位置を「yy」=「7Fh」により表現できる。従って、拡張データ[Bn 11 yy]は、第1の分解能(1ディジット=1/128mm)の場合、対応する位置データ[An kk xx]が表す位置から負方向に最小−0.9921875mmの範囲のハンマ位置を、1/128mm単位の精度で表現することができる。
第2の分解能(1ディジット=1/8mm)の場合、正方向での相対位置を表す拡張データ[Bn 10 yy]では、対応する位置データが表す位置(xx=40h又は70h)から+0mmの位置を「yy」=「00h」で表現でき、また、対応する位置データが表す位置(xx=40h又は70h)から+127/8mm=+15.875mmの位置を「yy」=「7Fh」により表現できる。従って、拡張データ[Bn 10 yy]は、第2の分解能(1ディジット=1/8mm)により、ハンマ142のレスト位置又はエンド位置(xx=40h又は70h)から正方向に最大+15.875mmの範囲のハンマ位置を、データ記述マージンとして、1/8mm単位の精度で表現することができる。一方、負方向での相対位置を表す拡張データ[Bn 11 yy]では、対応する位置データが表す位置(xx=40h又は70h)から―0mmの位置を「yy」=「00h」で表現でき、また、対応する位置データが表す位置(xx=40h又は70h)から−127/8mm=−15.875mmの位置を「yy」=「7Fh」により表現できる。従って、拡張データ[Bn 11 yy]は、第2の分解能(1ディジット=1/8mm)により、ハンマ142のレスト位置又はエンド位置(xx=40h又は70h)から負方向に最小−15.875mmの範囲のハンマ位置を、データ記述マージンとして、1/8mm単位の精度で表現することができる。
また、図10(b)に示すように、鍵130は、レスト位置(ストローク量0mmの位置)からエンド位置(レスト位置からストローク量10mmの位置)の間を約10mmのストローク幅で変位するものと想定されている。位置データ[An kk xx]には、第3バイト「xx」の値「00h」〜値「30h」が鍵130のレスト位置からエンド位置の間のストローク位置を表現する数値範囲として割り当てられており、これは、1ディジットを0.225mm単位として、鍵130のストローク位置を表現する(図10(b)及び図11参照)。すなわち、値「xx」=「00h」が鍵130のレスト位置(ストローク量0mm)を表現し、また、値「xx」=「30h」が、鍵130のエンド位置より外側の10.8mmのストローク位置を表現する。そして、レスト位置‐エンド位置間のストローク位置を値「00h」〜値「30h」によって0.225ミリ単位でリニアに表現する。
鍵130の位置データ[An kk xx]に対応する拡張データ[Bn 10 yy]乃至拡張データ[Bn 11 yy]の値「yy=00h〜7Fh」は、対応する位置データの値「xx」がレスト位置‐エンド位置の範囲内(値「01h」〜値「2Fh」の範囲)である場合、1ディジットを0.225/128mm単位とする「第1の分解能」で鍵のストローク位置を詳細に表現する。一方、対応する位置データの値がレスト位置若しくはエンド側の最大位置(位置データの値「00h」若しくは値「30h」)を表現している場合、拡張データ[Bn 10 yy]乃至拡張データ[Bn 11 yy]の値「yy=00h〜7Fh」は、1ディジットを0.225/8mm単位とする「第2の分解能」で鍵のストローク位置を表現することで、データ記述上のマージン(鍵130の正味のストローク範囲外の位置表現)を確保する。かくして、ハンマの場合と同様に、正方向での位置表現及び負方向での位置表現に夫々別のアサイン[Bn 10 yy]及び[Bn 11 yy]を使用することで、第1の分解能及び第2の分解能の双方とも、より細かい精度でのデータ記述が可能となる。
拡張データ[Bn 10 yy]及び拡張データ[Bn 11 yy]による鍵位置の記述能力の具体的な一例について、図11を参照して述べる。
先ず、第1の分解能(1ディジット=0.225/128mm)の場合、正方向での相対位置を表す拡張データ[Bn 10 yy]では、対応する位置データが表す位置から+0mmの位置を「yy」=「00h」で表現でき、また、対応する位置データが表す位置から+127*0.225/128mm=+0.2232421875mmの位置を「yy」=「7Fh」により表現できる。従って、拡張データ[Bn 10 yy]は、第1の分解能(1ディジット=0.225/128mm)の場合、対応する位置データ[An kk xx]が表す位置から正方向に最大0.2232421875mmの範囲の鍵位置を、0.225/128mm単位の精度で表現することができる。一方、負方向での相対位置を表す拡張データ[Bn 11 yy]では、対応する位置データが表す位置から―0mmの位置を「yy」=「00h」で表現でき、また、対応する位置データが表す位置から−127*0.225/128mm=−0.2232421875mmの位置を「yy」=「7Fh」により表現できる。従って、拡張データ[Bn 11 yy]は、第1の分解能(1ディジット=0.225/128mm)の場合、対応する位置データ[An kk xx]が表す位置から負方向に最小−0.2232421875mmの範囲の鍵位置を、1/128mm単位の精度で表現することができる。
第2の分解能(1ディジット=0・225/8mm)の場合、正方向での相対位置を表す拡張データ[Bn 10 yy]では、対応する位置データが表す位置(xx=00h又は30h)から+0mmの位置を「yy」=「00h」で表現でき、また、対応する位置データが表す位置(xx=00h又は30h)から+127*0.225/8mm=+3.571875mmの位置を「yy」=「7Fh」により表現できる。従って、拡張データ[Bn 10 yy]は、第2の分解能(1ディジット=0.225/8mm)により、鍵130のレスト位置又はエンド側の最大位置(xx=00h又は30h)から正方向に最大+3.571875mmの範囲の鍵位置を、データ記述マージンとして、0.225/8mm単位の精度で表現することができる。一方、負方向での相対位置を表す拡張データ[Bn 11 yy]では、対応する位置データが表す位置(xx=00h又は30h)から―0mmの位置を「yy」=「00h」で表現でき、また、対応する位置データが表す位置(xx=00h又は30h)から−127*0.225/8mm=−3.571875mmの位置を「yy」=「7Fh」により表現できる。従って、拡張データ[Bn 11 yy]は、第2の分解能(1ディジット=0.225/8mm)により、鍵130のレスト位置又はエンド側の最大位置(xx=00h又は30h)から負方向に最小−3.571875mmの範囲の鍵位置を、データ記述マージンとして、1/8mm単位の精度で表現することができる。
図12は、当該第3実施例に係る拡張データ[Bn 10 yy]及び拡張データ[Bn 11 yy]の運用例を説明するための概念図である。この運用例では、負方向の拡張データ[Bn 11 yy]は、基本的には、レスト位置(ストローク量0mmの位置)よりも小さい位置の表現にのみ使用し、レスト位置以上の位置表現には正方向の拡張データ[Bn 10 yy]を使用するものとする。すなわち、位置データ[An kk 00]又は[An kk 40]で大まかにレスト位置(ストローク量0mm)と表現されたデータに、負方向の拡張データ[Bn 11 yy]で細かい分解能の負の値を付加することで、レスト位置を下側に越えた鍵又はハンマの位置を表現する。また、位置データ[An kk 30]又は[An kk 70]で大まかにエンド位置(レスト位置からのストローク量10.8mm又は48mm)と表現されたデータに、正方向の拡張データ[Bn 10 yy]で細かい分解能の正の値を付加することで、エンド位置を上側に越えた鍵又はハンマの位置を表現する。
一方、それ以外の部分(つまり、鍵又はハンマの正味のストローク範囲内)は、位置データ[An kk xx]により大まかなストローク位置を表現し、これに正方向の拡張データ[Bn 10 yy]による細かい分解能の正の値を付加することで、鍵又はハンマのストローク位置を詳細に表現する。例えば、ハンマのストローク位置の位置データ[An kk 50]と位置データ[An kk 51]の間の微小なストローク位置は、[An kk 50]に正方向の拡張データ[Bn 10 yy]を付加することで表現できる。
なお、拡張データ[Bn 10 yy]及び拡張データ[Bn 11 yy]の運用方法は、上述のようにレスト位置以下の部分を負方向の拡張データ[Bn 11 yy]で表現し、それ以外を正方向の拡張データ[Bn 10 yy]で表現するというように、両者を使い分ける方法に限らず、正方向又は負方向の拡張データのどちらで位置表現できるかを選択できてもよい。例えば、ハンマのストローク位置の位置データ[An kk 50]と或る正方向の拡張データ[Bn 10 yy]で表現された位置は、位置データ[An kk 51]と或る負方向の拡張データ[Bn 11 yy]でも表現しうる。
また、上記図12の運用例では、鍵又はハンマの正味のストローク範囲内(レスト―エンド間)の位置表現にも拡張データを使用する例を示したが、拡張データの使用は、レスト位置を下側に越えた位置及びエンド位置を上側に越えた位置の表現、即ち、マージンの表現にのみ限られていてもよい。具体的には、鍵のレスト側マージンの表現[An kk 00][Bn 11 yy]と、鍵のエンド側マージンの表現[An kk 30][Bn 10 yy]、並びに、ハンマのレスト側マージンの表現[An kk 40][Bn 11 yy]と、ハンマのエンド側マージンの表現[An kk 70][Bn 10 yy]にのみ適用されてもよい。
また、図10、図11に示した例においては、正方向の拡張データ[Bn 10 yy]と負方向の拡張データ[Bn 11 yy]の位置記述分解能(1ディジットあたりの記述単位)や、位置記述範囲は同じものとしたが、これに限らず、記述分解能や位置記述範囲を正方向の拡張データと負方向の拡張データとで違えるように設定してもよい。
なお、上述の例では図5(a)に示すように、位置情報は、基本となる位置データ(基本情報)と、前記基本となる位置データに対して更に詳細な情報を付加する拡張データ(拡張情報)との2種のバイトメッセージから構成され、両者を組み合わせて、或る時点(サンプリング時刻)における1つの位置情報の表現となるものとして説明したが、これに限らず、一部の位置情報が基本情報たる位置データのみを有するものであったり、或いは、一部の位置情報は拡張情報たる拡張データのみを有するものであってもよい。図5(b)は、位置データのみからなる位置情報のデータフォーマット例であり、(b)においてデルタタイムΔTは、対応する位置データを発生すべきタイミングを直前のイベントからの相対時間で表す。また図5(c)は、拡張データのみからなる位置情報のデータフォーマット例であり、(c)においてデルタタイムΔTは、対応する拡張データを発生すべきタイミングを直前のイベントからの相対時間で表す。これによれば、例えば、移動部材の動作概要を示す波形表示や、該移動部材の大まかな動きを再生する場合などは、位置データのみを扱うようにし、また、比較的精密な情報のいが必要な場合には、拡張データのみを持たせるようにすることで、データ量を減らすことができる。
なお、上述の例では、位置データ[An kk xx]を基本情報として、これに拡張データ[Bn 10 yy]を組み合わせた位置情報の例について述べたが、本発明は位置情報のみならず、速度情報あるいは加速度情報等、その他の移動状態を表すデータの記述においても適用可能である。例えば、或る鍵のあるサンプル時刻に於ける移動状態は、典型的には、位置、速度及び加速度の3つのパラメータで表現されるもので、各情報につき、基本情報と拡張情報とからなるデータを作成できる。
また、上述の例では、位置データ[An kk xx]の第3バイトの値によって位置が表現されるのは、鍵130とハンマ142との2つの部材であったが、これに限らず、これにジャック或はダンパなどを加えて2つ以上の複数部材の位置を表現することも勿論可能である。また、ペダル類などその他の移動部材についても適用しうる。また、図示の例ではアコースティックピアノの構成として、グランドピアノを示したが、この発明はアップライトピアノに適用することも可能である。また、上述の例では、本発明をアコースティックピアノに適用した例について説明したが、1つのアクションとしての発音動作に従動する複数の移動部材について、移動状態に関する情報(位置、速度若しくは加速度など)を、1つのフォーマットで生成、記録するという技術思想は、その他適宜の鍵盤楽器に適用して差し支えない。
また、この発明は、上述したように、鍵盤楽器にこの発明に係る演奏情報を生成、記録する装置を具備する構成のみならず、鍵盤楽器とは別体の外部装置として構成し、実施してもよいい。また、この発明は装置の発明として構成し、実施することができるのみならず、上記演奏情報を生成、記録するためにコンピュータまたはDSP等のプロセッサが実行するプログラムの形態で実施することができるし、そのようなプログラムを記憶した記録媒体の形態で実施することもできる。すなわち、前記プログラムを実行するコンピュータを鍵盤楽器に外部接続して、この発明を実施することもできる。
100 鍵盤楽器、110 棚板、120 筬中、130 鍵、135,145 被検出部材、140 アクション機構、142 ハンマ、170 弦、200 CPU、210 RAM、220 ROM、230 操作部、240 タイマ、250a,250b A/D変換器、260 記憶装置、310 キーセンサ、410 ハンマセンサ