JP2005157289A - 演奏情報生成装置、演奏情報記録装置及び鍵盤楽器 - Google Patents

演奏情報生成装置、演奏情報記録装置及び鍵盤楽器 Download PDF

Info

Publication number
JP2005157289A
JP2005157289A JP2004231015A JP2004231015A JP2005157289A JP 2005157289 A JP2005157289 A JP 2005157289A JP 2004231015 A JP2004231015 A JP 2004231015A JP 2004231015 A JP2004231015 A JP 2004231015A JP 2005157289 A JP2005157289 A JP 2005157289A
Authority
JP
Japan
Prior art keywords
data
information
performance information
resolution
key
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.)
Pending
Application number
JP2004231015A
Other languages
English (en)
Other versions
JP2005157289A5 (ja
Inventor
Yuji Fujiwara
祐二 藤原
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 JP2004231015A priority Critical patent/JP2005157289A/ja
Priority to US10/971,975 priority patent/US7381880B2/en
Priority to EP04025608A priority patent/EP1528537B1/en
Priority to DE602004005552T priority patent/DE602004005552T2/de
Priority to EP06015401A priority patent/EP1713058B1/en
Priority to KR1020040087181A priority patent/KR100690466B1/ko
Priority to CN200410090097A priority patent/CN100593191C/zh
Priority to CN2009101710064A priority patent/CN101656065B/zh
Publication of JP2005157289A publication Critical patent/JP2005157289A/ja
Publication of JP2005157289A5 publication Critical patent/JP2005157289A5/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】 鍵やハンマ等のように発音動作に連動する移動部材の移動状態に関する情報を高精度且つ効率的に生成及び記録する。
【解決手段】 鍵130及びハンマ142の連続的な位置情報を検出し、その検出出力に基づき演奏情報を生成する演奏情報生成手段において、所定のデータ記述分解能で鍵130及びハンマ142の位置を表現した基本情報と、該基本情報の下位に従属し、前記所定の記述分解能に満たない前記移動状態の検出値をより細かい分解能で表現する拡張情報との2つの情報の組からなる位置情報を含む演奏情報が生成される。移動部材の移動状態を示すデータが、基本情報と拡張情報とから構成されることで、実質的にデータ記述の分解能を高精度にすることができるのみならず、データ編集作業が行い易くなる。
【選択図】 図5

Description

この発明は、例えばアコースティックピアノ等の鍵盤楽器における鍵やハンマ等の発音動作に連動する複数の移動部材の、例えば位置情報のような移動状態に関する情報を演奏情報として生成する装置、及び、該演奏情報を記録する装置に関する。
演奏者によって行われた鍵盤楽器の演奏操作を表す演奏情報を生成或は記録する装置として、従来から、例えば下記特許文献1、特許文献2あるいは特許文献3に開示された装置等、種々の装置が知られている。従来から知られるこの種の装置において、演奏情報は、例えば、ノートオン・ノートオフ情報、ピッチ情報やベロシティ情報などのパラメータを規定してなるMIDI規格のフォーマットで生成、記録することが可能であった。
特開昭53‐112716号公報 特開昭58‐159279号公報 特開昭59‐82682号公報
また、例えば、アコースティックピアノのような鍵盤楽器等において、演奏者による演奏操作を表す情報として、鍵等の演奏操作子やあるいは、その他発音操作に連動するハンマ、ダンパ等の1乃至複数の部材の位置情報(軌道情報)を生成、記録する装置が知られており、これは、鍵等の各移動部材のレスト位置(鍵、ハンマ、あるいはダンパ等の移動部材がピアノに外力を加えない状態にある位置)からエンド位置(鍵、ハンマ、あるいはダンパ等の移動部材がストロークエンド状態にある位置)までの情報を生成、記録するものであった。
上記のような鍵、ハンマ等の複数の移動部材についての位置情報(軌道情報)は、ピアノ調整時の内部測定情報としての用途やキーボード無人演奏等における再生用データとしての用途がある。従来、位置情報等の移動状態を示す情報は、MIDI演奏データ(演奏情報)とは別のデータフォーマットで生成、記録されていた。そのため、鍵、ハンマ等の複数の移動部材についての位置情報を生成しても、それを編集する際には、MIDIデータの編集とは別の編集操作を行う必要があり、また、その編集を行うには別途に専用の編集ツールが要求されるため、不便だった。
この発明は、上記の点に鑑みてなされたもので、鍵盤楽器の鍵やハンマ等のように、発音動作に連動して変位する移動部材の、例えば位置情報のような、移動状態に関する情報を高精度且つ効率的に生成及び記録することを目的とするもので、詳しくは、前記移動部材の移動状態に関する情報の記録形式の改良に関するものである。
この発明に係る演奏情報生成装置、演奏情報記録装置、及び鍵盤楽器は、演奏操作に応じて変位する演奏操作に応じて動かされる移動部材について、その移動状態を検出し、前記検出手段からの検出出力に基づき演奏情報を生成する手段であって、少なくとも一部の該演奏情報は、所定のデータ記述分解能で表現した基本情報と、該基本情報の下位に従属し、前記所定の記述分解能に満たない前記移動状態の端数部分を細かい分解能で表現する拡張情報とを有する前記移動部材の移動状態を示すデータを含む演奏情報を生成することを特徴とする。
これによれば、前記移動部材の移動状態を示すデータは、検出手段からの検出出力に基づき、所定のデータ記述分解能で表現した基本情報と、該基本情報の下位に従属し、前記所定の記述分解能に満たない前記移動状態の端数部分を細かい分解能で表現する拡張情報とから構成される。前記移動部材の移動状態を示すデータとは、例えば、鍵盤楽器の鍵や、鍵に従動するハンマ等のような、演奏操作に連動して変位する移動部材の、或るサンプル時刻における位置情報を表現するものである。例えば位置情報について、基本情報は、或る移動部材のストローク位置を相対的に粗い精度の分解能で大まかに(例えば1mm単位で)記述し、その下位に従属する拡張情報は、該基本情報が記述する値をより細かい精度の分解能(例えば1/64mm単位等)で記述する。移動部材の移動状態を示すデータが、前記基本情報と前記拡張情報とから構成されることで、実質的にデータ記述の分解能を高精度にすることができるのみならず、データ編集作業が行い易くなる。すなわち、本発明に従えば、データ編集処理において、データ値の微小な調整を行うには、編集対象となるデータにおいて、拡張情報が記述する下位の値について、編集処理すればよく、きめ細かなデータ編集処理が簡便に行えるようになるという優れた効果を奏する。また、この発明に従えば、例えば、移動部材の動作概要を示す波形表示や、該移動部材の大まかな動きを再生する場合などに用いる演奏情報の分解能は比較的粗い精度で十分に実用しうるので、その場合は、演奏情報のうち基本情報のみを扱えばよく、半分のデータ量で済む。また、演奏情報のうちで、拡張情報によって表現されたより細かい分解能の情報のみ必要な部分には、下位成分(拡張情報)のみを持たせるようにしてもよい。また、本発明に従えば、そのようなデータ編集処理が、汎用の編集ツール(例えばパーソナルコンピュータ)によって、従来のMIDIイベントデータの編集と同様な操作で行えるようになる。
以下添付図面を参照して、この発明の実施例について説明する。この実施例においては、位置情報を生成、記録すべき複数の移動部材の一例として、ピアノの鍵(演奏操作子)及びハンマについて説明するが、位置情報の生成及び記録対象となる部材はこれに限定されない。
まず、この実施例に係る鍵盤楽器の機械的構成例について図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ディジットあたりの記述単位等は、一例であって、これに限定されない。
上述の実施例では、位置情報の構成例として、1つの基本情報(位置データ)に対して、1つの拡張情報(拡張データ)が下位に従属するという、2つのバイトメッセージで構成する例を示しているが、この発明はこれに限らず、1つの基本情報に対して複数の拡張情報を従属させて、データ記述分解能を多重に細分化することもできる。そのような複数の拡張情報が従属される例について、図8(a)、(b)を参照して簡単に説明する。ここで、この実施例に係るデータフォーマットにおいては、1つの基本情報に対して幾つの拡張情報を従属させるかは、図6に示すシステムメッセージの類によって規定されるもので、予め拡張情報の識別子として機能するコード情報を定義すれば、任意の数の拡張情報を多段に従属させることができるようになる。図8(a)において、第2拡張データ[Bn 30 yy´]は、上述した「実施例1」における拡張データ[Bn 10 yy](第1拡張データ)の分解能に満たない検出値を、更に細かい分解能で表現するデータである。第2拡張データ[Bn 30 yy´]の第1バイト及び第2バイトは、当該データが第1拡張データの下位に従属する拡張情報であることを定義する識別子として機能するもので、この識別子は図示の便宜上「Bn」及び「30」で示すコード情報からなる。同図において、以下同様に、第3拡張データ[Bn 11 zz]及び第4拡張データ[Bn 31 zz´]・・・は、それぞれ上位に位置する拡張データに従属するもので、各々上位の拡張データの分解能に満たない検出値を更に細かい分解能で表現する。このように拡張データを多段に設定することで、位置データ(基本情報)と拡張データ(拡張情報)群の組み合わせからなる位置情報は、更に細かい分解能で表現できるようになる。また、(b)は、多段に構成された拡張データの別フォーマットの例を示す。この例では、各拡張情報(拡張データ)の第1バイト及び第2バイトは、夫々同じ識別子「Bn 10」からなる。これは、第3バイトの値(00h〜7Fh)を、適宜の複数区分の数値範囲「yy」、「yy´」及び「yy´´」・・・に割り当てて、その数値範囲に応じて、各拡張データの従属関係を定義する例である。
上記図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等のプロセッサが実行するプログラムの形態で実施することができるし、そのようなプログラムを記憶した記録媒体の形態で実施することもできる。すなわち、前記プログラムを実行するコンピュータを鍵盤楽器に外部接続して、この発明を実施することもできる。
この発明の一実施例に係る鍵盤楽器の機械的構成を示す側面断面図。 図1に示す鍵130及びその周辺構成を抽出して示す側面断面図。 図1に示すハンマ142及びその周辺構成を抽出して示す側面断面図。 同実施例に係る鍵盤楽器の電気的ハードウェア構成例を示すブロック図。 (a)は同実施例に係る位置情報を表すイベントメッセージのフォーマット例を示す図、(b)は位置情報のうち上位の位置データのみからなる部分の構成例を示し、(c)は位置情報のうち下位の拡張データのみからなる部分の構成例を示す。 (a)はハンマの動作軌道を、また、(b)は鍵の動作軌道を夫々示すグラフであって、ハンマ及び鍵のストローク位置と、位置データの第3バイトの値「xx」及び拡張データの第3バイト「yy」の値との対応関係を示す図。 ハンマ及び鍵のストローク位置と、位置データの値「xx」並びに拡張データの値「yy」の対応関係の一例を示す表。 (a)、(b)は、夫々、位置情報のデータ構成例の変更例を示す図であって、複数の拡張情報を多段に設定するフォーマット例を示す。 この発明の第3実施例の概略を説明するための図であって、(a)は上記図6〜図7に示す拡張データによる位置表現の概念図、(b)は該第3実施例に係る拡拡張データによる位置表現の概念図。 前記第3実施例におけるハンマ及び鍵のストローク位置と位置データの第3バイトの値「xx」及び拡張データの第3バイト「yy」の値の対応関係を示す図であって、(a)はハンマの動作軌道を、また、(b)は鍵の動作軌道を示す。 前記第3実施例におけるハンマ及び鍵のストローク位置と位置データの値「xx」と拡張データの値「yy」との対応関係の一例を示す表。 前記第2実施例に係る拡張データの運用例を説明するための概念図。
符号の説明
100 鍵盤楽器、110 棚板、120 筬中、130 鍵、135,145 被検出部材、140 アクション機構、142 ハンマ、170 弦、200 CPU、210 RAM、220 ROM、230 操作部、240 タイマ、250a,250b A/D変換器、260 記憶装置、310 キーセンサ、410 ハンマセンサ







Claims (6)

  1. 演奏操作に応じて動かされる移動部材の移動状態を連続的に検出する検出手段と、
    前記検出手段からの検出出力に基づき演奏情報を生成する手段であって、少なくとも一部の該演奏情報として、前記移動部材の移動状態を所定の記述分解能で表現した基本情報と、該基本情報の下位に従属し、前記所定の記述分解能に満たない前記移動状態の端数部分を細かい分解能で表現する拡張情報とを有する前記移動部材の移動状態を示すデータを含む演奏情報を生成する演奏情報生成手段と、
    を備えることを特徴とする演奏情報生成装置。
  2. 演奏操作に応じて動かされる移動部材の移動状態を連続的に検出する検出手段と、
    前記検出手段からの検出出力に基づき演奏情報を生成する手段であって、少なくとも一部の該演奏情報として、前記移動部材の移動状態を所定の記述分解能で表現した基本情報と、該基本情報の下位に従属し、前記所定の記述分解能に満たない前記移動状態の端数部分を細かい分解能で表現する拡張情報とを有する前記移動部材の移動状態を示すデータを含む演奏情報を生成する演奏情報生成手段と、
    前記演奏情報生成手段により生成された演奏情報を記憶する記憶手段と
    を備えることを特徴とする演奏情報記憶装置。
  3. 操作者による演奏操作に連動して動く移動部材と、
    前記移動部材の移動状態を検出する検出手段と、
    前記検出手段からの検出出力に基づき演奏情報を生成する手段であって、少なくとも一部の該演奏情報として、前記移動部材の移動状態を所定の記述分解能で表現した基本情報と、該基本情報の下位に従属し、前記所定の記述分解能に満たない前記移動状態の端数部分を細かい分解能で表現する拡張情報とを有する前記移動部材の移動状態を示すデータを含む演奏情報を生成する演奏情報生成手段と、
    を含むことを特徴とする鍵盤楽器。
  4. 前記移動部材の移動状態を示すデータは、前記拡張情報として、対応する前記基本情報から見て正方向の状態を表現した第1種の拡張情報、若しくは、該対応する基本情報から見て負方向の状態を表現した第2種の拡張情報の何れか一方を有することを特徴とする請求項1乃至3の何れかに記載の演奏情報生成装置又は演奏情報記録装置又は鍵盤楽器。
  5. 演奏情報を生成するためにコンピュータによって実行されるプログラムであって、
    演奏操作に応じて動かされる移動部材の移動状態を連続的に検出する検出手順と、
    前記検出手順における検出出力に基づき演奏情報を生成する手順であって、少なくとも一部の該演奏情報として、前記移動部材の移動状態を所定の記述分解能で表現した基本情報と、該基本情報の下位に従属し、前記所定の記述分解能に満たない前記移動状態の端数部分を細かい分解能で表現する拡張情報とを有する前記移動部材の移動状態を示すデータを含む演奏情報を生成する演奏情報生成手順と
    を含むことを特徴とするプログラム。
  6. 演奏情報を記録するためにコンピュータによって実行されるプログラムであって、
    演奏操作に応じて動かされる移動部材の移動状態を連続的に検出する検出手順と、
    前記検出手手順における検出出力に基づき演奏情報を生成する手順であって、少なくとも一部の該演奏情報として、前記移動部材の移動状態を所定の記述分解能で表現した基本情報と、該基本情報の下位に従属し、前記所定の記述分解能に満たない前記移動状態の端数部分を細かい分解能で表現する拡張情報とを有する前記移動部材の移動状態を示すデータを含む演奏情報を生成する演奏情報生成手順と、
    前記演奏情報生成手段により生成された演奏情報を記憶する記憶手順と
    を含むことを特徴とするプログラム。
JP2004231015A 2003-10-31 2004-08-06 演奏情報生成装置、演奏情報記録装置及び鍵盤楽器 Pending JP2005157289A (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2004231015A JP2005157289A (ja) 2003-10-31 2004-08-06 演奏情報生成装置、演奏情報記録装置及び鍵盤楽器
US10/971,975 US7381880B2 (en) 2003-10-31 2004-10-21 Musical instrument recording advanced music data codes for playback, music data generator and music data source for the musical instrument
EP04025608A EP1528537B1 (en) 2003-10-31 2004-10-28 Musical instrument recording advanced music data codes for playback, music data generator and music data source for the musical instrument
DE602004005552T DE602004005552T2 (de) 2003-10-31 2004-10-28 Musikalisches Instrument, das erweiterte Musikdatencodes für Wiedergabe aufnimmt, Musikdatengenerator und Musikdatenquelle für das musikalische Instrument.
EP06015401A EP1713058B1 (en) 2003-10-31 2004-10-28 Music Data Generator and Musical Instrument Recording Advanced Music Data Codes for Playback
KR1020040087181A KR100690466B1 (ko) 2003-10-31 2004-10-29 재생을 위해 선행된 음악 데이터 코드를 기록하는 악기,음악 데이터 발생기 그리고 악기를 위한 음악 데이터 소스
CN200410090097A CN100593191C (zh) 2003-10-31 2004-11-01 乐器,音乐数据产生器和用于乐器的音乐数据源
CN2009101710064A CN101656065B (zh) 2003-10-31 2004-11-01 乐器,音乐数据产生器和用于乐器的音乐数据源

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003372658 2003-10-31
JP2004231015A JP2005157289A (ja) 2003-10-31 2004-08-06 演奏情報生成装置、演奏情報記録装置及び鍵盤楽器

Publications (2)

Publication Number Publication Date
JP2005157289A true JP2005157289A (ja) 2005-06-16
JP2005157289A5 JP2005157289A5 (ja) 2008-08-14

Family

ID=34741283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004231015A Pending JP2005157289A (ja) 2003-10-31 2004-08-06 演奏情報生成装置、演奏情報記録装置及び鍵盤楽器

Country Status (1)

Country Link
JP (1) JP2005157289A (ja)

Similar Documents

Publication Publication Date Title
JP4617921B2 (ja) 楽器演奏の再生駆動装置、鍵盤楽器及び自動演奏ピアノ
US7429699B2 (en) Electronic musical instrument and recording medium that stores processing program for the electronic musical instrument
US11138961B2 (en) Sound output device and non-transitory computer-readable storage medium
JP5754421B2 (ja) 鍵盤楽器
JP2006267447A (ja) 鍵盤楽器
JP4193752B2 (ja) 自動演奏ピアノ
WO2020054070A1 (ja) 音信号生成装置、鍵盤楽器およびプログラム
JP2006146259A (ja) 力覚制御装置
JP6822582B2 (ja) 音源、鍵盤楽器およびプログラム
KR20050041954A (ko) 재생을 위해 선행된 음악 데이터 코드를 기록하는 악기,음악 데이터 발생기 그리고 악기를 위한 음악 데이터 소스
JP3758277B2 (ja) 自動ピアノ
CN111108548B (zh) 电子乐器
JP4305319B2 (ja) 演奏情報生成装置、演奏情報記録装置及び鍵盤楽器
JP5315883B2 (ja) 電子楽器及び楽音生成のプログラム
JP4305320B2 (ja) 演奏情報生成装置、演奏情報記録装置及び鍵盤楽器
JP6736930B2 (ja) 電子楽器および音信号生成方法
JP2005157289A (ja) 演奏情報生成装置、演奏情報記録装置及び鍵盤楽器
WO2019092791A1 (ja) データ生成装置およびプログラム
JPH10333672A (ja) 電子鍵盤打楽器
JP4144288B2 (ja) 演奏情報記録装置および鍵盤楽器
JP2015225332A (ja) 楽音発生装置、電子楽器、楽音発生方法およびプログラム
US9280962B1 (en) Sound preview device and program
JP4033206B2 (ja) 自動ピアノ
JP4648177B2 (ja) 電子楽器及びコンピュータプログラム
JP4218731B2 (ja) 演奏情報出力装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090317