JP3887968B2 - 鍵盤楽器および鍵速度判定装置 - Google Patents
鍵盤楽器および鍵速度判定装置 Download PDFInfo
- Publication number
- JP3887968B2 JP3887968B2 JP26553398A JP26553398A JP3887968B2 JP 3887968 B2 JP3887968 B2 JP 3887968B2 JP 26553398 A JP26553398 A JP 26553398A JP 26553398 A JP26553398 A JP 26553398A JP 3887968 B2 JP3887968 B2 JP 3887968B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- speed
- pressed
- state
- velocity
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/02—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
- G10H1/04—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation
- G10H1/053—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only
- G10H1/055—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only by switches with variable impedance elements
- G10H1/0553—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only by switches with variable impedance elements using optical or light-responsive means
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/32—Constructional details
- G10H1/34—Switch arrangements, e.g. keyboards or mechanical switches specially adapted for electrophonic musical instruments
- G10H1/344—Structural association with individual keys
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S84/00—Music
- Y10S84/07—Electric key switch structure
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、自動演奏ピアノ等の鍵盤楽器や、その鍵センサに用いて好適な鍵速度判定装置に関する。
【0002】
【従来の技術】
周知のように、近年にあっては、記録した演奏情報(あるいは外部から供給される演奏情報)に応じて自動演奏する自動演奏ピアノが各種実用化されている。この自動演奏ピアノにおいては、キーの動きを検出するためのキーセンサが設けられ、演奏記録時においてキーの挙動を検出するようにしている。また、所定の機構を作動させることにより、ハンマーの打弦を抑制して消音させる消音ピアノも開発されているが、この消音ピアノでは、消音時にはキーの動きをキーセンサによって検出し、これにより電子的に楽音を発生するようにしている(特開平9−54584号公報等)。
【0003】
ここで、上記公報における鍵速度(ベロシティ)の検出方法の概要を図29を参照し説明する。図においてレスト位置とは、押下されていない状態の鍵位置であり、エンド位置とは鍵を押下しきった状態の鍵位置である。レスト位置にある鍵に軽く指を乗せて力を加え続けると、鍵は徐々に加速され図示のような軌跡を描くなお、このような奏法を「指付け打鍵」という。
【0004】
自動演奏ピアノにおいて演奏記録を行う場合は、この鍵軌跡がサンプリングされ、鍵軌跡が所定の鍵位置K1〜K4に達した時刻が順次記憶される。そして、最終的なベロシティは、原則として、鍵軌跡が鍵位置K2からK4に達するまでの時間、すなわち鍵位置K2からK4の区間における平均速度に基づいて決定される。なお、ベロシティの算出において鍵位置K1からK2迄の時間を原則として算入しない理由は、この区間における鍵の挙動はハンマーの挙動に影響しない場合が多く、この区間の鍵速度を加味するとベロシティの算出が不正確になる場合が多いことに鑑みてである。
【0005】
【発明が解決しようとする課題】
ところで、鍵の奏法には「指離し打鍵」と称するものがある。これは、高い位置から指を振り下ろすようにして打鍵を行う奏法である。強いタッチの指離し打鍵においては、指が鍵に当接した時点で鍵が自由回転を開始し、指と鍵とは非接触あるいは非接触に近い状態になる。ここで、指離し打鍵における鍵軌跡の例を図30に示す。
【0006】
図において鍵軌跡はレスト位置からエンド位置に向かってほぼ直線状に変化しているが、図示の「A」に示す部分に段が形成されている。これは、メカニカルな伝達系におけるフェルトやクロスの粘弾性に起因するものであり、タッチの強さやキーに応じて現れる位置や大きさが異なる。かかる場合に鍵位置がK2からK4に達する迄の時間に基づいてベロシティを算出すると、ベロシティが不正確になるという問題が生じる。
この発明は上述した事情に鑑みてなされたものであり、正確なベロシティが得られる鍵盤楽器および鍵速度判定装置を提供することを目的としている。
【0007】
【課題を解決するための手段】
上記課題を解決するため本発明に係る鍵盤楽器は、押下されていない状態の鍵位置であるレスト位置と、押下しきった状態の鍵位置であるエンド位置の間に、前記レスト位置から前記エンド位置に向かって順に、第1の鍵位置、第2の鍵位置、第3の鍵位置、第4の鍵位置が定められており、鍵が押下されると、前記第1の鍵位置における鍵速度である第1の鍵速度と、前記第1の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第2の鍵速度と、前記第2の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第3の鍵速度とを算出する算出手段と、前記算出手段により算出された第1の鍵速度と第2の鍵速度を比較する比較手段と、前記比較手段による比較の結果、前記第1の鍵速度が前記第2の鍵速度より小さかった場合は、前記第3の鍵速度を前記押下された鍵の鍵速度とする一方、前記第1の鍵速度が前記第2の鍵速度以上であった場合は、前記第2の鍵速度を前記押下された鍵の鍵速度とする鍵速度決定手段とを具備することを特徴とする。
また、本発明に係る鍵盤楽器は、押下されていない状態の鍵位置であるレスト位置と、押下しきった状態の鍵位置であるエンド位置の間に、前記レスト位置から前記エンド位置に向かって順に、第1の鍵位置、第2の鍵位置、第3の鍵位置、第4の鍵位置が定められており、鍵が押下されると、前記第1の鍵位置における鍵速度である第1の鍵速度と、前記第1の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第2の鍵速度と、前記第2の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第3の鍵速度とを算出する算出手段と、前記算出手段により算出された第1の鍵速度と第2の鍵速度を比較する比較手段と、前記比較手段による比較の結果、前記第1の鍵速度が前記第2の鍵速度より小さかった場合は、指付け打鍵であると判定する一方、前記第1の鍵速度が前記第2の鍵速度以上であった場合は、指離し打鍵であると判定する奏法判定手段と、前記奏法判定手段により指付け打鍵であると判定された場合は、前記第3の鍵速度を前記押下された鍵の鍵速度とする一方、前記判定手段により指離し打鍵であると判定された場合は、前記第2の鍵速度を前記押下された鍵の鍵速度とする鍵速度決定手段とを具備することを特徴とする。
さらに、本発明に係る鍵速度判定装置は、押下されていない状態の鍵位置であるレスト位置と、押下しきった状態の鍵位置であるエンド位置の間に、前記レスト位置から前記エンド位置に向かって順に、第1の鍵位置、第2の鍵位置、第3の鍵位置、第4の鍵位置が定められており、鍵が押下されると、前記第1の鍵位置における鍵速度である第1の鍵速度と、前記第1の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第2の鍵速度と、前記第2の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第3の鍵速度とを算出する算出手段と、前記算出手段により算出された第1の鍵速度と第2の鍵速度を比較する比較手段と、前記比較手段による比較の結果、前記第1の鍵速度が前記第2の鍵速度より小さかった場合は、前記第3の鍵速度を前記押下された鍵の鍵速度とする一方、前記第1の鍵速度が前記第2の鍵速度以上であった場合は、前記第2の鍵速度を前記押下された鍵の鍵速度とする鍵速度決定手段とを具備することを特徴とする。
また、本発明に係る鍵速度判定装置は、押下されていない状態の鍵位置であるレスト位置と、押下しきった状態の鍵位置であるエンド位置の間に、前記レスト位置から前記エンド位置に向かって順に、第1の鍵位置、第2の鍵位置、第3の鍵位置、第4の鍵位置が定められており、鍵が押下されると、前記第1の鍵位置における鍵速度である第1の鍵速度と、前記第1の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第2の鍵速度と、前記第2の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第3の鍵速度とを算出する算出手段と、前記算出手段により算出された第1の鍵速度と第2の鍵速度を比較する比較手段と、前記比較手段による比較の結果、前記第1の鍵速度が前記第2の鍵速度より小さかった場合は、指付け打鍵であると判定する一方、前記第1の鍵速度が前記第2の鍵速度以上であった場合は、指離し打鍵であると判定する奏法判定手段と、前記奏法判定手段により指付け打鍵であると判定された場合は、前記第3の鍵速度 を前記押下された鍵の鍵速度とする一方、前記判定手段により指離し打鍵であると判定された場合は、前記第2の鍵速度を前記押下された鍵の鍵速度とする鍵速度決定手段とを具備することを特徴とする。
【0008】
【発明の実施の形態】
1.実施形態の構成
以下、図面を参照してこの発明の実施形態について説明する。なお、この実施形態は、本発明を消音機構付きの自動演奏ピアノに適用した例である。図2は、本実施形態におけるキーの構造を示す側面図である。図において、10はキーであり、バランスピンBPを中心に揺動する。このキー10の下部には、板状のシャッタKSが設けられており、シャッタKSの下方にはセンサボックスSBが設けられている。センサボックスSBは、棚板11の上面に取り付けられており、キー10の位置に応じた量だけシャッタKSが進入するようになっている。
【0009】
ここで、図3はセンサボックスSBの内部を示す概略図であり、図において221は発光側センサヘッドである。この発光側センサヘッド221は、光ファイバを介してLED224から光を供給されて、直径約5mm程度の光ビームを出力する。222は、受光側センサヘッドであり、発光側センサヘッド221が照射する光ビームを受光する。その受けられた光は、光ファイバを介してフォトダイオード225へ送られ、そのフォトダイオード225は光量に応じた信号Saを出力する。
【0010】
この場合、発光側センサヘッド221から照射される光ビームは、シャッタKSの位置に応じた分だけ遮蔽されるようになっており、この結果、受光側センサヘッド222の受光量はシャッタKSの位置、すなわち、キー10の位置に応じて変化する。したがって、フォトダイオード225の出力信号Saは、キー10の位置を反映するアナログ値となり、例えば、図4に示すような特性となる。なお、この図においてレスト位置とは、キー10の初期位置であり、また、エンド位置とはキー10を押し切った位置である。ところで、図1、図2および図5に示すSOLは、ソレノイドであり、励磁されるとプランジャP・SOLが突出してキー10の右端側(演奏者に対して奥側)を押し上げ、演奏者による押鍵と同様の鍵動作を行わせる。
【0011】
次に、図5は、この実施形態におけるピアノアクションの構成を示す側面図である。本実施形態においては、押鍵に応じた打弦を行う通常演奏モードと、押鍵があっても打弦を抑止して弦から発音させない消音演奏モードとがあり、以下、図5を参照して、各モードにおけるピアノアクションの動作について説明する。
【0012】
(1)通常演奏時の動作 押鍵が行われると、ウイペン23はキャプスタン12によって突き上げられ、ピン22aを中心として時計回りに回動する。これにより、ジャック大26aがバット41を突き上げてハンマーアッセンブリ40(バット41、ハンマー44、キャッチャー46等からなる)を時計回りの方向へ回転させ、ハンマー44が弦Sを打撃する。この打弦操作時において、ジャック26は、その回動途中にジャック小26bがレギュレーティングボタン34に当接することにより、時計方向への回動が阻まれる。一方、ウイペン23は回動を継続しているため、ジャック26は、レギュレーティングボタン34を支点としてウイペン23に対して反時計方向へ相対的に回動し、これにより、ジャック大26aの上端面がバット41の下面から図中左方向へ逃げ、バット41との非当接位置に移動する。そして、ハンマー44による打弦後のハンマーアッセンブリ40の回動復帰の動作は、キャッチャー46がバックチェック38に当接することにより一時的に停止され、その間にジャック26は、キー10の復帰動作に伴うウイペン23の回動復帰に連動し、ジャック大26aの上端部は再びバット41の下部に入り込み、次の打弦動作を可能にする。
【0013】
(2)消音演奏時の動作 次に、消音演奏状態にするには、所定の操作を行ってストッパー66を実線で示す水平状態から回転させて下方へ向けて鎖線で示す状態にする。本実施形態においては、ストッパー66はアクチュエータ77(図1参照)によって駆動されるが、これに代えて、ストッパー66に連動するレバーやペダルを設けておき、これらを操作することによってストッパー66を回転させてもよい。また、本実施形態においては、ストッパー66は、キャッチャー46の回動を阻止することで、ハンマーアッセンブリ40全体の回動を阻止するようにしているが、ハンマーアッセンブリ40の他の部分を阻止することでハンマーアッセンブリ40全体の回動を阻止するようにしてもよい。
【0014】
さて、ストッパー66が回転した状態で押鍵が行われると、ウイペン23はキャプスタン12によって突き上げられ、ピン22aを中心として時計回りに回動する。これにより、ジャック大26aがバット41を突き上げてハンマーアッセンブリ40を時計回りの方向へ回転させる。次に、ジャック小26bがレギュレーティングボタン34に当接することにより、ジャック大26aの上端面がバット41の下面から図中左方向に逃げる。その間、ハンマーアッセンブリ40は慣性力で回動を続けるが、弦Sに当たる手前でキャッチャー46がストッパー66に当接し、反時計回りの方向へ跳ね返される。その後のハンマーアッセンブリ40等の復帰動作は通常演奏の場合と同様である。なお、消音演奏時においては、電子的に楽音が形成されるが、これについては後述する。上述した通常演奏時および消音演奏時における押鍵は、演奏者による押鍵であっても、また、ソレノイドSOLによる押鍵であっても、全く同様の動作となる。
【0015】
次に、図1は、本実施形態の制御回路の構成を示すブロック図である。図において、201は装置各部を制御するCPUであり、202はプログラムや各種テーブルが記憶されているROMである。203は各種データが一時記憶されるワーキングエリアや、各種処理に用いられるテーブルが設定されているRAMである。204は種々のスイッチが設けられているパネルスイッチ部であり、この中には前述した通常演奏と消音演奏を切り換えるための通常/消音切替スイッチSWが設けられている。ここで、通常/消音切替スイッチSWが押されると、そのスイッチ信号がCPU201に検出され、この結果、CPU201はアクチュエータ駆動回路208を制御してアクチュエータ77を回動させる。これにより、ストッパー66が図5に示す鎖線の位置に移動し、消音演奏モードになる。そして、通常/消音切替スイッチSWを再び押すと、CPU201はアクチュエータ駆動回路208を制御して、アクチュエータ77を反対方向に駆動させる。この結果、ストッパー66は図5に示す実線位置に戻り、通常演奏モードになる。このように、通常/消音切替スイッチSWを押す毎に、通常演奏モードと消音演奏モードとが交互に切り替わる。
【0016】
次に、210は音源回路であり、CPU201から供給されるキー番号(キーコードともいう)、ベロシティ(押鍵の強さに対応したデータ)、キーオン信号KON、キーオフ信号KOFおよびリリースレートRL等に基づいてピアノ音の楽音信号を生成し、スピーカSPまたはヘッドホンHHに供給する。この場合、キーオン信号KONが供給されると、アタック、ディケイ、サステインの各部分のエンベロープ制御を行い、さらに、リリース期間のエンベロープ制御としてリリースレートRLに基づく減衰制御を行う。なお、楽音信号の振幅(音量)は、ベロシティKVに基づいて制御される。また、音源回路210は、16個の発音チャンネルを有しており、これにより、16音の同時発音が可能になっている。
【0017】
次に、223は、前述したフォトダイオード225(図3参照)の出力信号をデジタル信号に変換するA/D変換器であり、その出力信号はCPU201に読み取られるようになっている。本構成では、センサマトリックス方式が採用されており、12個のLED224と8個のフォトダイオード225を使って88鍵分のデータ(88<12×8)を読み取るようになっている。すなわち、12個のLED224は、各々8個の発光側センサヘッド221に接続されており、また、各発光側センサヘッド221に対応する受光側センサヘッド222は、各々フォトダイオード225に接続される。この時、1つのフォトダイオードが12個の受光側センサヘッドを受け持つように接続される。そして、ある1つのLEDだけを点灯させ、その時の8個のフォトダイオードの出力を読み、次に、また別のLEDを1つだけ点灯させて8個のフォトダイオードの出力を読むというように順次データを獲得する。また、本構成ではハードウエアの制約から、一度に4個のフォトダイオードの出力をA/D変換するようになっている。これら受発光センサヘッド221、222、LED224、およびフォトダイオード225等でフォトセンサを構成している。
【0018】
CPU201は、A/D変換器223によってデジタル値に変換された各キーの位置情報に基づいて各キーの状態を認識し、これに基づいて、ベロシティ、キーオン信号KON、キーオフ信号KOFおよびリリースレートRLを生成する。また、CPU201は、スキャン操作に応じて、いずれのキーについての位置情報かを認識し、これに基づいてキー番号KNを出力する。
【0019】
次に、250はFDドライバであり、フロッピーディスク251に対して、演奏情報の書込/読出を行う。この場合の演奏情報は、前述したベロシティ、キー番号KN、キーオン信号KON、キーオフ信号KOFおよびリリースレートRLであり、MIDI情報に変換されて書き込まれる。また、フロッピーディスク251から読み出された演奏情報は、RAM203に一旦格納された後、楽曲の進行に応じて読み出され、ソレノイド駆動回路260に供給される。ソレノイド駆動回路260は、演奏情報に応じたソレノイド駆動信号を作成し、ソレノイドSOLに供給する。これによって、各キー毎に設けられているソレノイドSOLが駆動され、演奏情報に基づいた自動演奏が行われる。
【0020】
2.実施形態の動作
(1)しきい値設定動作
次に、上述した構成によるこの実施形態の動作について説明するが、始めに、キーストロークの所定位置に設定されるしきい値について説明する。この実施形態においては、しきい値を超えたことが検出された時刻や位置に基づいて、後述するキー・ステートの決定やベロシティの決定などが行われる。また、この実施形態においては、キー・ステートに基づいて、楽音制御が行われるようになっており、このため、しきい値の設定は極めて重要な事項となる。
【0021】
ここで、しきい値には、図6に示すように、レスト位置からエンド位置へ向けて順次設定されるK1〜K4と、しきい値K2とK3との間に設定されるK2Aとがある。上述したしきい値K1〜K4およびK2Aは、キー・ステートの決定に用いられ、特に、しきい値K2Aは、リリース時におけるエンベロープ制御にも用いられる。なお、図6に示す曲線C1は、一般的なキー軌跡の一例である。
【0022】
始めに、装置に電源が投入されると、CPU201は、各レジスタやRAM203を初期化し、また、割込処理を許可した後に、以下のようなしきい値設定動作を行う(図17のステップSP1,2参照)。まず、CPU201は、A/D変換器223によってデジタルデータに変換されたフォトダイオード225の出力信号を、4キー分ずつ受け取る。ここで、CPU201は、4キー分ずつのA/D変換情報を、第0〜第23の検出チャンネルのデータとして受け取る。なお、この実施形態のキー数は88鍵であるから、実際には第0〜第21の検出チャンネルを設定すれば足りるが(22×4=88)、ハードウエアの関係から0〜95を1周期とするため、第0〜第23の検出チャンネルが設定されている。
【0023】
さて、電源投入直後においては、全てのキーは押されていない状態にあるから、CPU201が受け取るデータは、全て各キーのレスト位置のデータとなる。次に、CPU201は、各キーのレスト位置に対して所定の演算を行い、しきい値K1〜K4およびK2Aを算出する。
【0024】
この実施形態の場合は、レスト位置データをXrとした場合に、所定の係数ri(i=1〜4および2A)を乗算することによって各しきい値を得る。すなわち、 K1=Xr×r1 K2=Xr×r2 K3=Xr×r3 K4=Xr×r4K2A=Xr×r2A という演算によって各しきい値が求められる。各係数r1〜r4およびr2Aは、キーの状態を識別するのに適した値が実験等によって求められ、例えば、白鍵と黒鍵のそれぞれについて、実験値の平均が設定される。
【0025】
以上の演算によって求められた各しきい値は、RAM203の所定エリアに記憶される。ここで、図7に、RAM203内に設定されているキー情報用のテーブルを示す。この図においてはマトリックス状に表示してあり、横方向にはキー番号が示されている。ただし、実際のキーは第0番から第87番までであるが、各キーの現在位置を示すKEY−POSの行(詳細は後述)には、ハードウエアの関係上、第95番までのキー番号が付されている。
【0026】
また、図に示すKEY−RSTの行は、キーのレスト位置情報が記憶される行であり、上述した処理によってCPU201が読み取った各キーのレスト位置情報は、対応するキー番号のエリアに記憶される。同様に、THR−K1、THR−K2、THR−K3、THR−K4およびTHR−K2Aの行は、各々しきい値K1,K2,K3,K4およびK2Aを記憶する行であり、上述の演算によって求められた各しきい値が、対応するキー番号のエリアに記憶される。また、KEY−STATEの行は、キー・ステート(キーの状態)が記憶される行であり、また、TBL−NUMはテーブルナンバーが記憶される行である。テーブルナンバーとは、押下されたキーについての発音を制御するための発音制御テーブルのナンバーである。この実施形態においては、音源回路210の16個の発音チャンネル(同時発音可能チャンネル)に合わせて、第0〜第15の発音制御テーブルが用意されている。すなわち、発音制御テーブルによって指示された発音情報が、16個の発音チャンネルに適宜割り当てられて発音される。 KEY−TIM行は、キーの位置情報がAD変換された時刻を示す。K0およびK0−TIMには、各々上記KEY−POSおよびKEY−TIMの内容が必要に応じてコピーされる。
【0027】
ここで、図8に発音制御テーブルの内容を示す。この発音制御テーブルは、RAM203内の所定エリアに設けられ、後述する処理によってその内容が適宜書き込まれるようになっている。また、図8においてはマトリックス状に表示してあり、横方向にはテーブル番号が示されている。そして、KEY−NUMの行には、テーブルが割り当てられたキーの番号が書き込まれ、OVR−K1〜OVR−K3には、しきい値K1〜K3を越えたときのキーの位置が各々書き込まれるようになっている。同様にして、OVK1−TIM〜OVK3−TIMの行には、しきい値K1〜K3を越えたときの時刻(検出時刻)が書き込まれるようになっている。この実施形態においては、各キーの位置情報は、所定のタイミングで検出するようにしており(図13参照)、このため、各キーがしきい値に達するタイミングと検出タイミングとが一致するとは限らない。そこで、上述のように、各キーがしきい値を越えたときの位置と時刻とを対にして記憶するようにしている。また、上述の時刻データは、2バイトのデータ長になっている。
【0028】
(2)ベロシティの基本演算
次に、図8に示すVELOCITYの行には、ベロシティ(押鍵速度に対応)が書き込まれる。この場合のベロシティの基本的な算出は、以下のようにして行われる。
【0029】
まず、あるしきい値Ki(i=1〜3)を超えたときのキー位置をd1とし、それより大きいしきい値Kj(j=2〜4,j>i)を超えたときのキー位置をd2とする。また、これらのしきい値を超えたときの時刻を各々t1、t2とすると、CPU201においては、まず、以下の計算を行う。 (d1−d2)×28÷(レスト位置データ)×28=(正規化された変位) ここで、d1−d2はキーの移動距離(変位)である。d1からd2を減算しているのは、キー位置データがレスト位置からエンド位置に向かって小さくなるように出力されるからである。また、レスト位置データで除しているのは、各キーのレスト位置のばらつきを正規化するためであり、28を乗じているのは時刻データのバイト数(2バイト)と合わせるためである。以上のようにして、正規化された変位が演算されると、これを時刻データの差(移動時間)で除して速度を求める。すなわち、次の演算を行う。 (正規化された変位)÷(t2−t1)÷28=(速度データ) なお、この演算において28で除しているのは、データ長を再び1バイトに戻すためである。
【0030】
次に、CPU201は、以上のようにして求められた鍵の速度を表す速度データを、図11に示すテーブルTB2を参照してハンマーの打弦速度を表すハンマーベロシティに変換する。テーブルTB2は、速度データxに対し、所定の演算に従う変換曲線によって、キーについての速度データをMIDI規格によるハンマーベロシティに変換するとともに、フォトセンサの非線形特性を補正する。実際には、これら2つの変換を同時に行うような変換曲線が設定されている。この場合、このテーブルTB2は、ROM202内に設定されている。
【0031】
次に、図11に示すテーブルTB3−2〜TB3−4は、各々ダウンカウント値出力テーブルであり、テーブルTB2が出力するベロシティに基づき、当該ベロシティでハンマーが運動を続けた場合の打弦までの時間データ(ダウンカウント値)を出力する。打弦までの時間は、キー速度を算出したときの位置、すなわち、どのしきい値を通過していたかによって異なる。このため、上述のd2がどのしきい値を超えたときのデータであるかによって、ダウンカウント値出力テーブルTB3−2〜TB3−4のいずれかが選択される。すなわち、しきい値K2、K3、K4に対応して、ダウンカウント値出力テーブルTB3−2、TB3−3、TB3−4が適宜選択される。
【0032】
さて、テーブルTB2から出力されるベロシティおよびダウンカウント値出力テーブルTB3−2〜TB3−4から出力されるダウンカウント値は、各々図8に示すVELOCITYおよびDWN−CNTRの行に書き込まれる。この場合、ベロシティは、キーが新たなしきい値を通過すると再計算されるが(詳細は後述)、再計算によるベロシティの方が大きい場合にのみ、該当するエリアの値が更新される。また、ダウンカウント値は、所定の周期でダウンカウントされ、その値が「0」になると、そのキーについてのキー番号とベロシティが音源回路210に供給されて発音されるようになっている。
【0033】
(3)各種処理ルーチンの関係
次に、各種処理ルーチンについて説明するが、始めに、各ルーチンの時間的な関係について説明する。この実施形態においては、メインルーチン(分岐するルーチンを含む)、A/D割込みルーチンおよびタイマ割込みルーチンがあり、それぞれのタイミング的関係は、図12に示すようになっている。ここで、同図に示す(ロ)がメインルーチンの処理タイミングである。メインルーチンは、発音制御における主な処理を行うルーチンであり、大半の処理はここにおいて行われる。
【0034】
次に、同図(イ)は、タイマ割込みルーチンであり、100μs毎に割込で起動される。このルーチンは、時間計測に用いられるタイマ値を更新する処理や、上述したダウンカウント値を減算する処理を行う。また、同図(ハ)は、A/D割込みルーチンであり、約1msec毎に割込で起動される。このA/D割込みルーチンは、フォトダイオード225の出力信号を4キー分ずつ読み込む処理を行う。前述のタイマ割込み処理ルーチンとA/D割込み処理ルーチンとが競合する場合は、タイマ割込み処理ルーチンが優先される。これはタイマ割込み処理ルーチンが所定周期で起動されないと、タイマの値に誤差が生じるからである。なお、図12は、各処理ルーチンの動作タイミングを模式的に示すもので、それらの処理時間の割合を示すものではない。以下、各処理について、順次詳細に説明する。
【0035】
(4)タイマ割込み処理
図14はタイマ割込み処理を示すフローチャートである。まず、図に示すステップSPa1においては、タイマの値を1増加させる。この場合、タイマはCPU201内のレジスタによって構成されている。すなわち、図10に示すCPU201内のレジスタセットのうち、レジスタE6がタイマとして機能する。
【0036】
ここで、図10に示す各レジスタについて説明すると、図示のように、En(n=0〜6)、RnH(n=0〜6)、およびRnL(n=0〜6)の合計21個が設定されている。これらのうち本実施形態で特に機能を決めて使用しているのは、上述のレジスタE6(タイマ)の他、以下の6つである。
【0037】
まず、メインルーチン(詳細は後述)に関連して、レジスタE5にはA/D変換の時刻が書き込まれ、レジスタR3Hにはキー・ステート(キーの状態)が書き込まれ、レジスタR3Lにはキーの現在位置が書き込まれ、レジスタR4Lにはテーブル番号が書き込まれ、レジスタR5Lにはキー番号が書き込まれる。そして、レジスタR6LにはA/D変換を行うチャンネルが書き込まれる。なお、その他のレジスタは、汎用レジスタとして使用される。
【0038】
さて、ステップSPa1の処理は、タイマ割込みが起動される毎に行われるから、タイマ値は100μ毎に1つずつ増加する。したがって、タイマ値は、現在時刻を示す値となる。次に、ステップSPa2に進み、タイマ値が8の倍数であるか否かが判定される。この判定が「NO」の場合はそのままメインルーチンへ復帰し、「YES」の場合はステップSPa3へ進む。この場合、ステップSPa2の判定は、800μs毎に「YES」となる。
【0039】
次に、ステップSPa3においては、図8に示す各発音制御テーブルのダウンカウント値(DWN−CNTRの行の各値)を各々1減算し、減算後の値が0の発音制御テーブルがあれば、音源回路210に対応するMIDI信号を出力する。すなわち、ダウンカウント値が0となったキーに対応するベロシティ、キー番号KNおよびキー音信号KONを音源回路210の空きチャンネルに出力する。この結果、音源回路210はキー番号KNに応じた音高で、かつ、ベロシティに応じたエンベロープを有する楽音を発生する。
【0040】
また、ステップSPa3においては、ダウンカウント値が0になったキーについては、そのキー・ステートをSOUNDにし、図7に示すKEY−STATE行の該当エリアを書き換える。さらに、そのキーについてのテーブル番号(図7に示すTBL−NUM行に書かれる番号)をクリアし、発音制御テーブルを解放する。すなわち、今まで当該キーが使用していた発音制御テーブルを解放し、他のキーの使用を許可する。ここで、キー・ステートがSOUNDであるということは、そのキーについては発音がなされていることを意味する。
【0041】
次に、ステップSPa4に進み、タイマ値が8192の倍数か否かが判定される。この判定が「NO」の場合は、メインルーチンに復帰し、「YES」の場合はステップSPa5に進む。この場合、ステップSPa4は、819.2ms毎に「YES」となる。そして、ステップSPa5においては、第0〜第15の各発音制御テーブル毎に設けられたタイムオーバー検知用カウンタを各々1増加させる。タイムオーバー用カウンタは、RAM203内に設定されており、そのカウント内容に基づいてキー・ステートがtime overか否かが判断される。この場合、time overとは、キー・ステートが所定時間以上継続したことを示す。なお、タイムオーバーカウンタについては、図示を省略する。
【0042】
(5)A/D割込み処理
次に、A/D割込み処理について図13を参照して説明する。A/D変換器223は、CPUの動きと並行して動作しており、4キー分のA/D変換が終わると割込み要求を発生し、これによりCPUは、A/D割込み処理を開始する。まず、ステップSPb1においては、A/D変換処理を停止させ、また、次のチャンネルのLED224を点灯させる。
【0043】
次に、ステップSPb2へ進み、4キー分の位置データおよびタイマ値(レジスタE6の値)を、図7に示すKEY−POS行およびKEY−TIM行の対応するエリアに書き込む。さらに、該タイマ値は、図9に示すテーブル(KEY−TIM行のみ)にも書き込まれる。この場合の書き込みは、現在読み込んだ検出チャンネル番号に対応するエリアに行われる。図9に示すテーブルは、各検出チャンネルについての検出時刻(A/D変換時刻)を記憶するテーブルであり、RAM203内に設けられている。
【0044】
次に、ステップSPb3に進み、検出チャンネルの番号を1インクリメントし(ただし、「23」の次は「0」)、A/D変換をスタートさせて、メインルーチンに復帰する。ここで、上記処理におけるA/D変換のスタート/ストップのタイミングについては、図12の(ハ)、(ニ)に示す。
【0045】
(6)メインルーチン
次に、メインルーチン(分岐されるルーチンを含む)について説明する。このメインルーチンにおいては、キー・ステートを適宜設定する処理が行われるので、理解のために、まず、キー・ステート設定の概略について説明する。
【0046】
図15は、キーの軌跡の一例を示す図であり、図においては、時刻t1においてレスト位置にあったキーが時刻t2,t3,t4,t5において、それぞれしきい値K1,K2,K3,K4を通過し、時刻t6においてエンド位置に達している。このような軌跡は、一般的な押鍵の軌跡である。そして、この実施形態における原則的なキー・ステートは、キーがレスト位置からしきい値K1の間にあるときにUPPER、しきい値K1を超えるた場合にTOUCH−A、しきい値K2を超えた場合にCOUNT−DOWN−0、しきい値K3を超えた場合にCOUNT−DOWN−1、しきい値K4を超えた場合にCOUNT−DOWN−2としている。また、発音がなされた場合のキー・ステートは、前述のようにSOUNDとする。
【0047】
また、時刻t6からt7においてエンド位置にあったキーが離鍵され、時刻t8,t9,t10においてしきい値K4,K3,K2を通過した場合は、しきい値K2を通過するまではキー・ステートはSOUNDを維持し、しきい値K2を通過した後にキーオフされてキー・ステートがHOLDになる。すなわち、離鍵過程にあるキーが、しきい値K2を通過したときは、キー・ステートはHOLDとなる。
【0048】
また、時刻t10でHOLDとなったキーが、その後、レスト位置に戻ることなく再び押下されてしきい値K2を超えると、キー・ステートはTOUCH−Bとなる。一方、TOUCH−Bとなったキーが、その状態を所定時間以上維持すると、キー・ステートはTIME−OVERとなる。また、押鍵速度が早い場合には、キー位置のサンプリング間隔において、2以上のしきい値を通過することがあり、この場合のキー・ステートはCOUNT−DOWN−3としている。図16は、このような押鍵があった場合の軌跡を示しており、この軌跡において、前回のサンプリングにおけるキー位置が点P1であり、今回のサンプリングにおけるキー位置が点P2であることが検出されると、COUNT−DOWN−3となる。同様に、前回サンプリング位置がP3で、今回サンプリング位置がP4の場合も、キー・ステートはCOUNT−DOWN−3となる。
【0049】
以上がこの実施形態におけるキー・ステート設定の概略であるが、実際には前のキー・ステートやその継続時間などによって適宜決定される。上述の説明はあくまで原則的なものである。次に、各処理ルーチンについて説明する。
【0050】
a:メインルーチン
図17は、メインルーチンの処理内容を示すフローチャートであり、電源が投入されると、ステップSP1の初期化およびステップSP2におけるしきい値計算処理が行われる。なお、これらの処理内容については、前述した「しきい値設定動作」の項において説明したので省略する。
【0051】
次に、ステップSP3に進むと、図10に示すレジスタR5Lに1を加える。ただし、レジスタR5Lの内容が「87」であれば0にする。すなわち、レジスタR5Lは、これから処理を行おうとするキーのキー番号が書き込まれるレジスタであり、0〜87までを循環する必要があるため、ステップSP3において歩進するようにしている。
【0052】
次に、ステップSP5に進み、レジスタR5Lが示すキーについてのA/D変換された位置データおよびA/D変換時刻をRAM203のテーブルのKEY−POS行(図7参照)およびKEY−TIM行(図9参照)から読み込み、レジスタR3LおよびE5に各々書き込む。この場合、前述したA/D割込み処理によって各テーブルには所定のデータが書き込まれている。そして、ステップSP6に進み、図7に示すKEY−STATE行から当該キーのキー・ステートを読み出し、図10に示すレジスタR3Hに書き込む。
【0053】
次いで、ステップSP7〜SP12においては、レジスタR3Hに書き込まれたキー・ステートがUPPERか、COUNT−DOWNか(COUNT−DOWN1〜3のいずれかか)、TOUCH−Aか、SOUNDか、HOLDか、あるいはTIME−OVERかが判断され、「YES」であれば、それぞれに対応したステップ(分岐ルーチン)SP13,14,15,16,17あるいはSP18に進む。また、ステップSP7〜12の全てにおいて「NO」と判断された場合は、そのキー・ステートはTOUCH−Bであるので、ステップSP19に進んでTOUCH−Bルーチンに入る。そして、各分岐ルーチンであるステップSP13〜SP19のいずれかに進んだ後、それらの処理が終了すると、再び、ステップSP3に戻り、レジスタR5L内のキー番号を更新し、次のキーについて上述の処理を行う。このように、各キーについて、順次そのキー・ステートに対応した処理が行われる。次に、各分岐処理について説明する。
【0054】
b:UPPERルーチン
図18はUPPERルーチンの処理内容を示すフローチャートであり、ステップSPc1においては、レジスタR3Lのキー位置データがそのキーのしきい値K1を超えたか否かが判定される。この判定が「NO」の場合は、処理はステップSPc6に進む。ここでは、K0に位置データであるKEY−POS行(図7参照)がコピーされ、K0−TIMにA/D変換時刻であるKEY−TIMがコピーされ、処理が終了する。このように、キー位置データがしきい値K1を超えるまで、K0およびK0−TIMは逐次更新される。
【0055】
一方、ステップSPc1の判定が「YES」の場合は、ステップSPc2に進んで、発音制御テーブルの確保を行う。すなわち、キーが押されたと認識し、発音制御のための準備を開始する。ここで、テーブルの空きがあれば、当該テーブル番号をレジスタR4Lに書き込んでステップSPc3に進むが、空きテーブルがない場合は、メインルーチンに戻る。これは、本実施形態においては、16音まで同時発音可能にしているが、16の発音制御テーブルが全て使用中であれば、それ以上の発音制御は不可能だからである。
【0056】
次に、ステップSPc3においては、レジスタR3L内のキー位置データが、しきい値K2を超えたか否かが判断される。この判定が「NO」の場合は、キーがしきい値K1だけを超えた場合であり、キー・ステートがUPPERからTOUCH−Aに変化した場合である。そこで、ステップSPc4に進み、図7に示すKEY−STATE行の該当するエリアをUPPERからTOUCH−Aに書き換える。また、ステップSPc4においては、そのキーが割当てられた発音制御テーブルに対応するタイムオーバー検知用のカウンタをクリアするとともに、レジスタR3L内のキー位置データおよびレジスタE5にある時刻データを、図8に示す発音制御テーブルのOVR−K1行およびOVK1−TIM行の当該キー番号のエリアに書き込む。これにより、当該キーについて、しきい値K1を超えたときの位置と時刻が記憶される。
【0057】
一方、ステップSPc3の判定が「YES」の場合は、サンプリング間隔内において、しきい値K1とK2を一度に超えた場合である(図16のP1,P2参照)。そこで、ステップSPc5に進み、図7に示すKEY−STATE行の該当するエリアをUPPERからCOUNT−DOWN−3に書き換える。また、キー・ステートがCOUNT−DOWN−3の場合は、キーが最高速度で押されたと判断して、ベロシティとしての最高値「7F」をVELOCITY行(図8参照)の該当するエリアに書き込み、さらに、このベロシティを基にダウンカウント値を求め、DWN−CNTR行の該当するエリアに書き込む。この場合、ダウンカウント値は、前述したTB3−2(図11参照)を用いて求められるが、ベロシティはテーブルTB2を用いずに予め設定された最高値を設定する。上述したステップSPc4またはSPc5の処理の後はメインルーチンにリターンし、次のキーについての処理を開始する。
【0058】
c:TOUCH−Aルーチン
図19は、TOUCH−Aルーチンの処理内容を示すフローチャートである。先ず、ステップSPd1においては、time overか否かが判断される。この判断は、タイムオーバー検知用カウンタの値が予め定められた所定値を超えたか否かによって判断される。タイムオーバー検知用カウンタは、図14に示すステップSPa5においてタイマ割込み処理毎に歩進されるので、所定値に達する前にリセットされないとタイムオーバーとなる。そして、ステップSPd1の判定が「YES」の場合には、ステップSPd2に進み、獲得していた発音制御テーブルを解放するとともに、図7に示すKEY−STATE行の該当するエリアをTOUCH−AからHOLDに書き換えてメインルーチンにリターンする。
【0059】
このように、ステップSPd1→SPd2と移行するときは、TOUCH−Aの状態が所定時間以上継続する場合であり、キーが浅く押された位置で長時間止まっている状態と認識される。このような押鍵操作は、そのキーに指を乗せているだけで、しばらく押鍵されない可能性が高いので、この実施形態においては、上述のように、発音制御テーブルを解放して当該キーの発音準備を解除し、他のキーの発音処理を優先させるようにしている。なお、キー・ステートがHOLDとなった場合でも、その状態からキーを押下すれば、後述する処理によって発音される。
【0060】
一方、ステップSPd1において「NO」と判定された場合は、ステップSPd3に進み、しきい値K3を超えたか否かが判定され、「NO」であれば、ステップSPd4に進んでしきい値K2を超えたか否かが判定される。この判定が「YES」であれば、キーがしきい値K2を超えた場合であり、キー・ステートがTOUCH−AからCOUNT−DOWN−0に変化した場合である。そこで、ステップSPd5に進み、図7に示すKEY−STATE行の該当するエリアをTOUCH−AからCOUNT−DOWN−0に書き換える。また、ステップSPd5においては、レジスタR3L内のキー位置データおよびレジスタE5にあるA/D変換の時刻データを、図8に示す発音制御テーブルのOVR−K2行およびOVK2−TIM行の当該キー番号のエリアに書き込む。これにより、当該キーについて、しきい値K2を超えたときの位置と時間が記憶される。また、ステップSPd5に至る場合は、図18に示すステップSPc4を経過しているから、しきい値K1を超えたときの位置と時刻がRAM203のテーブルに記憶されている。そこで、ステップSPd5においては、前述した数式に基づいて速度データを算出し、かつ、図11に示すテーブルTB2を用いてベロシティを求める。また、テーブルTB3−2を用いてダウンカウント値を求め、ベロシティとともに発音制御テーブル(図8参照)の所定エリアに書き込む。
【0061】
一方、ステップSPd3において、「YES」と判定された場合は、サンプリング間隔内において、しきい値K2とK3を一度に超えた場合である(図16のP3,P4参照)。そこで、ステップSPd6に進み、図7に示すKEY−STATE行の該当するエリアをTOUCH−AからCOUNT−DOWN−3に書き換える。また、ベロシティとしての最高値「7F」をVELOCITY行(図8参照)の該当するエリアに書き込み、さらに、このベロシティを基にダウンカウント値を求め、DWN−CNTR行の該当するエリアに書き込む。この処理は、前述したステップSPc5と同様である。
【0062】
一方、ステップSPd4において「NO」と判断された場合は、ステップSPd7に進み、キーがしきい値K1を超えているか否かが判定される。この判定が「YES」の場合は、キーはいぜんとしてTOUCH−Aの状態を維持している場合であるから、何もせずにメインルーチンに戻る。また、ステップSPd7において「NO」と判定された場合は、ステップSPd8に進み、獲得していた発音制御テーブルを解放するとともに、図7に示すKEY−STATE行の該当するエリアをTOUCH−AからUPPERに書き換えてメインルーチンにリターンする。
【0063】
このように、ステップSPd8に至るときは、TOUCH−AからUPPERに戻る場合であり、言い換えれば、キーが浅く押された直後に離された場合である。このような押鍵操作では、通常のピアノでは発音されないので、この実施形態においては、上述のように、発音制御テーブルを解放して当該キーの発音準備を解除し、他のキーの発音処理を優先させるようにしている。
【0064】
d:COUNT−DOWNルーチン
次に、COUNT−DOWNルーチンについて図20を参照して説明する。まず、ステップSPe1においては、キー位置(レジスタR3L内のキー位置データ)がしきい値K2を超えているか否かが判定される。この判定が「NO」の場合には、しきい値K2を一旦超えたキーが戻された場合であるので、発音準備を停止すべく、ステップSPe2に移って発音制御テーブルを解放する。そして、ステップSPe3において、キーがしきい値K1を超えているか否かが判定され、「NO」であれば、レスト位置かそれに近い位置まで戻された場合であるから、ステップSPe4に進んでキー・ステートをUPPERとする。すなわち、図7に示すKEY−STATE行の該当するエリアをCOUNT−DOWN(0〜3)からUPPERに書き換える。
【0065】
また、ステップSPe3において「YES」と判定された場合は、ステップSPe5に進んで、KEY−STATE行の該当するエリアをCOUNT−DOWN(0〜3)からHOLDに書き換える。一方、ステップSPe1において「YES」と判定された場合には、ステップSPe6に進み、COUNT−DOWN−2,3か否かが判定される。この判定が「YES」の場合には、以下の処理を行わず、そのままリターンする。ステップSPe6の判定が「NO」の場合には、ステップSPe7に進み、レジスタR3L内のキー位置データがしきい値K3を超えたか否かが判断される。この判断が「NO」の場合は、キーはしきい値K2〜K3の間にある場合なので、いぜんとして図19のステップSPd5で設定したキー・ステートCOUNT−DOWN−0のままであると認識されるので、何の処理も行わずリターンする。
【0066】
一方、ステップSPe7において「YES」と判定された場合は、ステップSPe8に進んでしきい値K4を超えたか否かが判定される。このステップSPe8において「NO」と判定された場合は、ステップSPe12に進み、キー・ステートがCOUNT−DOWN−0か否かが判定される。この判定が「YES」の場合は、キーがしきい値を一つ超えてCOUNT−DOWN−1に移行したと考えられるので、ステップSPe13に移って、キー・ステートをCOUNT−DOWN−1に変更するとともに、しきい値K1、K3を超えたときの位置および時刻に基づいてベロシティおよびダウンカウント値を求める。そして、新たに求めたベロシティが、発音制御テーブルに記憶されているベロシティより大きければ、新たに求めたベロシティおよびダウンカウント値に書き換える。これは、キーの押下が加速されたと認識されるので、それに対応させるためである。
【0067】
なお、ステップSPe13における演算において、しきい値K1を超えた場合の位置および時刻は、発音制御テーブルから得るが、しきい値K3を超えたときの位置および時刻は、現在位置および時刻であるから、レジスタR3L、E5(図10参照)から読み出す。また、ステップSPe12において「NO」と判定された場合は、既に設定されたCOUNT−DOWN−1がそのまま維持されていると考えられるので、直ちにリターンする。
【0068】
一方、ステップSPe8において「YES」と判定された場合は、キー・ステートがCOUNT−DOWN−0か否かが判定される。この判定が「YES」のときは、サンプリング期間の間に、2つのしきい値K3,K4を超えた場合であるから、ステップSPe10に進んでキー・ステートをCOUNT−DOWN−3に更新し、最大ベロシティおよびこれに対応するカウントダウン値を発音制御テーブルに書き込む。
【0069】
また、ステップSPe9において「NO」と判定された場合には、処理はステップSPe14に進む。ここでは、速度S01、S24およびS14が計算される。速度S01は、しきい値K1おける速度であり、速度S24はしきい値K2〜K4の区間の平均速度、速度S14はしきい値K1〜K4の区間の平均速度である。ここで、K0およびK0−TIM(図7参照)にはしきい値K1を超える直前の鍵位置および時刻が記憶されており、超えた直後の鍵位置および時刻はOVR−K1行およびOVK1−TIM行に記憶されているから、これらによって速度S01が求められる。同様に、しきい値K2を超えた場合の位置および時刻は、発音制御テーブルから得るが、しきい値K4を超えたときの位置および時刻は、現在位置および時刻であるから、レジスタR3L、E5(図10参照)から読み出す。
【0070】
次に、処理がステップSPe15に進むと、速度S01が速度S14よりも小さいか否かが判定される。ここで、「YES」と判定されると、本実施形態においては、図29に示すような指付け打鍵が行われたものと看做され、処理はステップSPe16に進む。ここでは、まず、キー・ステートがCOUNT−DOWN−2に更新される。そして、速度S24が発音制御テーブルに記憶されているベロシティより大きければ、ベロシティがこの速度S24に更新され、この新たなベロシティに基づいてダウンカウント値も更新される。これは、キーの押下が加速されたと認識されるので、それに対応させるためである。ところで、スタッカートのように押鍵後直ちに離鍵されるような演奏の場合に、ステップSPe2に至る可能性があり、発音されないこともある。しかしこのようなケースは希であると考えられるため、本実施形態では他のキーの発音処理を優先させている。しかしながら、このようなケースにおいても発音を有効とさせた方がよい場合には、ダウンカウント値が書き込まれている発音制御テーブルについては解放しないように制御してもよい。
【0071】
一方、ステップSPe15において「NO」と判定されると、本実施形態においては、図30に示すような指離し打鍵が行われたものと看做され、処理はステップSPe17に進む。ここでは、まず、キー・ステートがCOUNT−DOWN−2に更新される。そして、ベロシティが速度S14に更新されるとともに、この新たなベロシティに基づいてダウンカウント値も更新される。
【0072】
e:SOUNDルーチン
次に、図21を参照してSOUNDルーチンについて説明する。このサウンドルーチンが実行されるのは、前述した各処理において設定されたダウンカウント値が、図14に示すタイマ割込みのステップSPa3の処理で減算され、その値が0となって発音処理が開始されてキー・ステートがSOUNDとなった後である。
【0073】
さて、図21に示すステップSPf1においては、キーがしきい値K2を超えているか否かが判定される。この判定が「NO」の場合は、ステップSPf2に進み、音源回路210に対してキーオフ信号KOF(MIDI OFF)を出力する。この結果、音源回路210は、当該キーについての発音を急速ダンプさせて消音する。そして、ステップSPf3に進み、キー位置がしきい値K1を越えているか否かを判定する。この判定が「NO」の場合は、ステップSPf4に進んで、キー・ステートをUPPERにしてリターンし、また、「YES」の場合はキー・ステートをHOLDにしてリターンする。
【0074】
一方、ステップSPf1の判定が「YES」の場合には、ステップSPf6に進んで、リリース・ルーチンの処理を行う。ここで、図22はリリース・ルーチンの処理を示すフローチャートである。始めに、ステップSPg1において、キー・ステートがSOUND 0か否かが判定される。ところで、キー・ステートSOUNDは、SOUND 0とSOUND 1の2つのステートがある。前述した図14のステップSPa3で設定されるキー・ステートは、実際にはSOUND 0である。したがって、発音が開始されたときのキー・ステートはSOUND 0になっている。このため、リリースルーチンに移行した際のステップSPg1の判定は、当初は「YES」になり、ステップSPg4に進む。ステップSPg4においては、キーがしきい値2Aを超えているか否かが判定され、「YES」であれば未だ深い押鍵位置にあるので、なにもせずにリターンする。一方、ステップSPg4の判定が「NO」の場合には、押鍵位置がしきい値K2Aより浅くなっているので、SPg5に進み、キー・ステートをSOUND 1に変更するとともに、リリースレートRLをダンピングが大きい値(A×××01(MIDI信号の一例))に書き換える。この結果、音源回路210においては、当該キーの発音のリリースエンベロープにおける減衰レートが大きくなり、その音は自然減衰より若干早く減衰する。
【0075】
一方、ステップSPg1の判定が「NO」の場合(キー・ステートとしてSOUND 1が設定されている場合)には、ステップSPg2に進み、キー位置がしきい値K2Aを超えているか否かが判定される。この判定が「NO」の場合には、押鍵位置が浅くSOUND 1のままであると認識されるので、そのままリターンする。また、ステップSPg2の判定が「YES」の場合は、押鍵位置が深くなっている場合であり、ステップSPg3に進み、キー・ステートをSOUND 0に変更し、リリースレートをダンピングが小さい値(A×××00(MIDI信号の一例))にする。この結果、当該キーの発音のリリースエンベロープにおける減衰レートが小さくなり、その音は自然減衰と同様の速度で減衰する。
【0076】
したがって、押鍵の深さが変化すると、リリースルーチンによってリリースレートが切り替わり、微妙なリリース制御が行われる。アコースティックピアノにおいては、ダンパが弦を押さえることによって消音が行われるが、演奏の仕方によってはダンパと弦とが触れたり離れたりし、また、その触れ方も一様ではない。従って、上述のようにキーの位置によってリリースレートを制御すると、実際のピアノのダンパ動作による音の消え入り方を模倣することができる。
【0077】
f:HOLDルーチン
次に、HOLDルーチンについて図24を参照して説明する。始めに、ステップSPi1において、キー位置がしきい値K2を超えているか否かが判定され、「NO」であれば、ステップSPi2に移ってキー位置がしきい値K1を超えているか否を判定する。このステップSPi2の判定が「YES」の場合は何もせずにリターンする。これは、キー・ステートHOLDは、一旦しきい値K2より深く押鍵されたキーが、再びK2より浅い位置(ただし、しきい値K1よりは深い位置)まで戻されたとき、あるいはしきい値K2以下でK1を超える領域に所定時間以上止まっていた場合に設定されるステートであるから、SPi2で「YES」となるときは状態の変化は生じていないと判断されるからである。また、ステップSPi2で「NO」と判定された場合は、キー位置がレスト位置に近く、極めて浅くなった場合であるから、キー・ステートをUPPERに変更してリターンする(ステップSPi3)。
【0078】
一方、ステップSPi1において「YES」と判定された場合、すなわち、キーが再びしきい値K2より深く押下された場合は、ステップSPi4に進み、発音制御テーブルを確保して発音の準備に入る。ただし、空きテーブルがない場合はリターンする。
【0079】
次に、ステップSPi5に進むと、キー位置がしきい値K3を超えたか否かが判定され、「YES」であれば、サンプリング期間に2つのしきい値K2,K3を超えた場合であるので、キー・ステートをCOUNT−DOWN−3にするとともに、最大値のベロシティおよびこれに応じたダウンカウント値を設定してリターンする(ステップSPi6)。また、ステップSPi5の判定が「NO」の場合は、ステップSPi7に進み、キー・ステートをTOUCH−Bとするとともに、タイムオーバー検知用カウンタをクリアする。また、ステップSPi7においては、レジスタR3L内のキー位置データおよびレジスタE5にある時刻データを、図8に示す発音制御テーブルのOVR−K2行およびOVK2−TIM行の当該キー番号のエリアに書き込む。これにより、当該キーについて、しきい値K2を超えたときの位置と時刻が記憶される。
【0080】
g:TOUCH−Bルーチン
次に、TOUCH−Bルーチンについて図25を参照して説明する。まず、ステップSPj1においては、time overか否か、すなわち、タイムオーバー検知用カウンタが所定値を超えたか否かが判定される。この判定が「YES」の場合には、発音テーブルを解放して他のキーの発音を優先させ、また、キーステートをTIME−OVERに書き換える(ステップSPj2)。
【0081】
一方、ステップSPj1の判定が「NO」の場合は、ステップSPj3に進んで、キー位置がしきい値K4を超えているか否かが判定される。この判定が「YES」の場合は、サンプリング期間に2つのしきい値K3,K4を超えた場合だから、キー・ステートをCOUNT−DOWN−3にするとともに、最大値のベロシティおよびこれに応じたダウンカウント値を設定してリターンする(ステップSPj4)。
【0082】
また、ステップSPj3で「NO」と判定された場合は、ステップSPj5に進み、キー位置がしきい値K3を超えているか否かが判定される。この判定が「YES」の場合は、ステップSPj6に進み、キー・ステートをCOUNT−DOWN−1に更新するとともに、しきい値K2、K3を超えたときの位置および時刻に基づいてベロシティおよびダウンカウント値を求める。そして、発音制御テーブルに、新たに求めたベロシティおよびダウンカウント値を書き込む。なお、ステップSPe13の場合と同様に、しきい値K2を超えた場合の位置および時刻は、発音制御テーブルから得るが、しきい値K3を超えたときの位置および時刻は、現在位置および時刻であるから、レジスタR3L、E5(図10参照)から読み出す。
【0083】
一方、ステップSPj7において「NO」と判定された場合は、ステップSPj8に進み、発音制御テーブルを解放して他のキーの発音を優先させ、次いで、ステップSPj9においてキー位置がしきい値K1を超えているか否かを判定する。この判定は「YES」の場合はキー・ステートをHOLDに、「NO」の場合はキー・ステートをUPPERにする。
【0084】
h:TIME−OVERルーチン
次に、TIME−OVERルーチンについて図23を参照して説明する。まず、ステップSPh1において、キー位置がしきい値K2を超えたか否かが判定され、「YES」であればそのままリターンする。すなわち、キー・ステートがTIME−OVERになった後は、その状態からキーを押し下げてもキー・ステートは変わらない。したがって、仮に、キーをエンド位置まで押下しても発音はされない。これは、実際のピアノでもしきい値K2とK3の間でキーがある時間以上停止した場合、その後キーを押し下げても発音がされないので、これに対応させるためである。
【0085】
一方、しきい値K2よりもキー位置を浅くすると、ステップSPh1の判定が「NO」となり、ステップSPh2の判定を介して、キー・ステートHOLDかキー・ステートUPPERのいずれかが設定されるので(ステップSPh3,SPh4)、それ以後の押鍵操作によって再発音が可能になる。以上のように、各ルーチンにおいてキー・ステートが適宜設定され、また、書き換えられる。そして、各キー・ステートに応じた発音制御が行われる。ここで、参考のために、図26にキー・ステートの遷移状態を示す。
【0086】
(7)動作例
次に、上述した各処理ルーチンの動作の関連をより明確にするために、図15、図16に示すキー軌道が発生した場合を例にとって説明する。始めに、図15の時刻t1において押鍵が開始される。初期状態におけるキー・ステートはUPPERが設定されるので、押鍵開始直後は図18に示すUPPERルーチンにより処理が行われる。そして、キーがしきい値K1を超えるまでは、ステップSPc1からすぐにリターンするので、キー・ステートは変化しない。次に、キーがしきい値K1を超えると、ステップSPc2,3,4の処理が行われ、発音制御テーブルが獲得されて、発音の準備が開始される。また、キー・ステートはTOUCH−Aとなる。
【0087】
したがって、以後は図19に示すTOUCH−Aルーチンに処理が移行される。そして、図15の時刻t3においてしきい値K2を通過した後は、図19のステップSPd1,3,4,5の処理が行われ、カウントダウン値の計算などが行われる。また、キー・ステートはCOUNT−DOWNとなり、以後の処理は図20に示すCOUNT−DOWNルーチンに移行する。そして、時刻t4においてしきい値K3を通過した後は、ステップSPe7,8,12,13の処理が行われ、カウントダウン値の計算等が行われるとともに、キー・ステートがCOUNT−DOWN−1となる。さらに、時刻t5においてしきい値K4を通過した後は、図20のステップSPe8,9,11の処理が行われ、カウントダウン値の計算等が行われるとともに、キー・ステートがCOUNT−DOWN−2に設定される。この場合、ベロシティはキーが新たなしきい値を通過するたびに再計算されるが、再計算によるベロシティが大きい場合のみ更新されるから、最終的には一番大きいベロシティが選択されることになる。そして、そのベロシティに対応するダウンカウント値がダウンカウント値出力テーブルTB3−1〜TB3−4のいずれかから求められる。このようにして求められたカウントダウン値は、タイマ割込みのステップSPa3(図14参照)において減算され、その減算値が0となった時点(時刻t6)において発音が開始されてキー・ステートがSOUNDモードになる。
【0088】
次に、時刻t7から離鍵が開始され、キー位置がしきい値K2より浅くなると(時刻t10)、キーオフ信号KOFが出力されて発音が停止され、キー・ステートはHOLDになる(図21のステップSPf1,2,3,5)。そして、再びキーが押下され始め、時刻t11においてしきい値K2を超えた後は、図24に示すステップSPi1,4,5,7の処理によって発音制御テーブルが獲得され、かつ、キー・ステートがTOUCH−Bになる。次に、キー位置が更に深くなると、前述の場合と同様にキー・ステートがCOUNT−DOWNとなり、カウントダウン値が0になった時点(時刻t14)において発音が行われる。そして、離鍵が行われ、時刻t17以後にHOLD、時刻t18以後にTOUCH−Bのキー・ステートが設定される。次に、TOUCH−Bの状態が所定時間以上経過すると、図25に示すステップSPj1,2の処理によってキー・ステートがTIME−OVERとなる。この後、図15に示すように、キー位置が深くなってもキーステートはTIME−OVERのまま変化せず、カウントダウン値が設定されることはないため、発音は行われない。そして、図15の時刻t21、t22において、キー位置が各々しきい値K2およびK1より浅くなると、キー・ステートは各々HOLD、UPPERとなる。
【0089】
ところで、図15の点P10において、キー位置が維持され、そのまま所定時間が経過すると点P11においてtime overとなり、キー・ステートはHOLDとなる(ステップSPd1,2)。また、点P10からキー位置が浅くなり、例えば、点P12の位置に達すると、キー・ステートはUPPERになる(ステップSPd7,8)。
【0090】
一方、TOUCH−Bにある点P20から離鍵が行われ、例えば、点21の位置に達すると、キー・ステートはHOLDになる(ステップSPj9,10)。次に、図16に示す点P1,P2の場合は、サンプリング期間に2つのしきい値を通過した場合であるから、図18に示すUPPERルーチンのステップSPc1,2,3,5が行われ、COOUNT−DOWN−3となり、最高ベロシティの発音が行われる。また、点P3,P4の場合も同様である(ステップSPi1,4,5,6)。
【0091】
ところで、図6に示すように、発音が開始されてキー・ステートがSOUNDとなった後の離鍵操作において、しきい値K2Aを上下するようにキー位置が変化すると、図22のリリースルーチンにより、リリースレートが切り替わり、音の消え入り方を微妙に制御することができる。
【0092】
C:実施形態効果
(1)しきい値の設定をソフトウエア処理によって自由に行うことができる。
【0093】
(2)しきい値K1までに至らない浅いキー位置、しきい値の間のキー位置、あるいはしきい値K4を超えた深いキー位置についても、正確な位置情報が得られるので、種々の奏法に対応できる楽音制御を行うことができる。例えば、しきい値K1まで達しない浅い打弦の発音制御や、音の消え入り方を微妙に制御することが可能である。
【0094】
(3)しきい値をソフトウエア処理によって自由に設定できるので、フォトセンサの取付精度が要求されない。
【0095】
(4)上記実施形態においては、例えば、TOUCH−A、COUNT−DOWN−0、TOUCH−B、HOLDなどのキー・ステートを決定する際に、前のキー・ステートとキーの位置(どのしきい値の間にいるか)によって決定しているので、適切な状態把握を行うことができる。さらに、TIME−OVERやHOLDを決定する際においては、前のキー・ステート、キーの位置、および前のキー・ステートの継続時間も考慮して決定しているので、実際のピアノに即した状態把握を行うことができる。
【0096】
しかも、以上のようにして設定したキー・ステート(状態)に基づいて楽音が制御されるから、ピアノ等の自然楽器の発音を正確に模倣することができるとともに、きめ細かな楽音制御を行うことができる。また、しきい値をキーオフ近傍の領域に複数設定し、離鍵時にキーがどのしきい値の間にいるかによってリリースレートを制御するようにしているので、例えば、ピアノのダンパー操作を模倣した発音制御を行うことができる。
【0097】
(5)上記実施形態においては、速度S01および速度S14の比較結果に基づいて指離し打鍵または指付け打鍵の何れが行われたのか判断され、判断された奏法に応じて異なる方法でベロシティが算出できるから、演奏態様に応じて適切なベロシティを算出できる。すなわち、前述したように、「指離し打鍵」の場合にはタッチの強さ等によって位置や大きさが異なる段Aが形成され、極端な場合には、段Aが区間K1〜K2から始まり、区間K3〜K4で終わるようなこともあり得る。その場合、短い区間(例えば区間K1〜K2、区間K2〜K3、区間K3〜K4の何れか)の速度を採用するようにしていると、鍵タッチを正確に検出することはできない。そこで、本実施形態においては、「指離し打鍵」の場合には、広い区間(区間K1〜K4)の速度を採用するようにして、段Aが形成されることによって生じる速度検出誤差を低減することができる。
【0098】
D:変形例
(1)上述した実施形態では、キー位置がしきい値K2,K3,K4を超える毎にベロシティを検出し、以前に検出された(今回ベロシティが検出された区間よりも前の区間の)ベロシティよりも大きい場合にベロシティおよびダウンカウント値を更新するようにしたが、このような処理を行わないようにしてもよい。
すなわち、速度S01、速度S14および速度S24のみを検出可能とし、キー位置がしきい値K4を超えた時点で速度S01と速度S14とを比較して、速度S01が速度S14よりも小さい場合に速度S24を採用するとともに速度S24に基づいてダウンカウント値を設定し、速度S01が速度S14よりも大きい場合には速度S14を採用するとともに速度S24に基づいてダウンカウント値を設定するようにしてもよい。
【0099】
(2)また、上記実施形態においては、「指付け打鍵」のとき速度S24を採用し、「指離し打鍵」のとき速度S14を採用するようにして、前者の速度検出区間が後者の速度検出区間に完全に包含されるようになっているが、前者の速度検出区間の一部が後者の速度検出区間に包含されるようにしてもよく、あるいは、前者の速度検出区間が後者の速度検出区間に包含されないようにしてもよい。
【0100】
(3)上述した実施形態は、ピアノ音を電子的に発生する例であったが、ピアノ音以外の楽音を合成するようにしてもよい。この場合には、エンベロープ制御は、楽音に応じたエンベロープを予め設定して置けばよく、リリース時のエンベロープ制御は実施形態と同様に行えばよい。また、実施形態におけるリリースルーチンのエンベロープ制御は、リリース時の制御に限らず、その他の部分(例えば、サステイン部)のエンベロープ制御に用いることもできる。
【0101】
(4)上述した実施形態は、消音機構付きの自動演奏ピアノにおける例であったが、本発明は打弦機構を持たない、電子楽器にも適用することができる。 また、本発明は、鍵以外の種々の演奏操作子に適用できる。
【0102】
(5)フォトセンサの出力信号を自動演奏時のキー位置フィードバック信号として用いることもできる。
【0103】
(6)また、TOUCH−Aではしきい値K1〜K2間、COUNT−DOWN−0ではしきい値K1〜K3間、COUNT−DOWN−1ではしきい値K2〜K4間で速度を算出するようにしたが、どのような間隔を選んでも良く、例えば、COUNT−DOWN−0においてしきい値K2〜K3間で速度を算出してもよい。
【0104】
(7)リリース時のエンベロープ制御をより繊細に行うために、図27に示すように、しきい値K2とK3の間をより細かく区切っても良い。そして、同図に示すように、上方の区間に行くほどダンピングが大きくなるようにリリースレートを設定する。このようにすると、例えば、同図に示すような鍵の軌跡の場合は、点P50〜P51、P52〜P53の間は自然消音するが、鍵が上方に行くに従いダンピング係数が強くなって次第に早く減衰するようになり、より自然な楽音とすることができる。図28は、この時のエンベロープの様子を示している。また、しきい値K2とK3の間をより細かく区切る場合であっても、キーセンサ等を追加することなく、しきい値K2A〜K2Cをソフトウエア処理で設定すればよい。したがって、ハードウエアの変更が不要であり、コストアップにならない。さらに、使用状況や演奏者の技量に応じて、しきい値K2とK3の間の区間数を切り換えるようにしてもよい。
【0105】
(8)また、上述した実施形態においては、キーが新たなしきい値を通過する毎にベロシティを再計算し、再計算によるベロシティと既に得られているベロシティとを比較することにより、ベロシティおよびダウンカウント値を更新するようにしているが、既に得られているダウンカウント値の現在値と再計算によるベロシティに対応したダウンカウント値とを比較するようにすれば、より精度が向上する。ただし、本出願人の実験によれば、両者の比較結果は、ほぼ完全に一致するので、上述した実施形態においては、処理の簡単化のために、前者を採用している。
【0106】
【発明の効果】
以上説明したように本発明によれば、正確なベロシティを得ることができる。
【図面の簡単な説明】
【図1】 この発明による一実施形態の構成を示すブロック図である。
【図2】 同実施形態のキーの構成を示す側面図である。
【図3】 同実施形態におけるキーのシャッタ付近の構成を示す斜視図である。
【図4】 図3に示すフォトダイオード225の出力特性を示す特性図である。
【図5】 同実施形態におけるハンマーアクションを示す側面図である。
【図6】 同実施形態におけるしきい値を示す図である。
【図7】 同実施形態においてRAM203内に設けられているテーブルを示す概念図である。
【図8】 同実施形態における発音制御テーブルを示す概念図である。
【図9】 同実施形態におけるサンプリング時刻を記憶するためのテーブルを示す概念図である。
【図10】 同実施形態におけるレジスタを示す概念図である。
【図11】 同実施形態におけるベロシティおよびダウンカウント値を求めるためのテーブルを示す図である。
【図12】 同実施形態における各処理のタイミング関係を示す図である。
【図13】 同実施形態におけるA/D割込み処理を示すフローチャートである。
【図14】 同実施形態におけるタイマ割込み処理を示すフローチャートである。
【図15】 同実施形態におけるキー軌道の一例と、これに対するキー・ステートの関係を示す図である。
【図16】 同実施形態におけるキー軌道の一例と、これに対するキー・ステートの関係を示す図である。
【図17】 同実施形態のメインルーチンを示すフローチャートである。
【図18】 同実施形態のUPPERルーチンを示すフローチャートである。
【図19】 同実施形態のTOUCH−Aルーチンを示すフローチャートである。
【図20】 同実施形態のCOUNT−DOWNルーチンを示すフローチャートである。
【図21】 同実施形態のSOUNDルーチンを示すフローチャートである。
【図22】 同実施形態のリリースルーチンを示すフローチャートである。
【図23】 同実施形態のTIME−OVERルーチンを示すフローチャートである。
【図24】 同実施形態のHOLDルーチンを示すフローチャートである。
【図25】 同実施形態のTOUCH−Bルーチンを示すフローチャートである。
【図26】 同実施形態におけるキー・ステートの遷移状態を示す図である。
【図27】 しきい値K2,K3間をより細かく区切る際のしきい値の例を示す図である。
【図28】 図27に示すしきい値を用いた際の楽音制御の一例を示す図である。
【図29】 従来のキーセンサの動作説明図である。
【図30】 従来のキーセンサの動作説明図である。
【符号の説明】
201……CPU(判定手段、操作態様判定手段、演奏速度決定手段)、202……ROM、203……RAM(記憶手段)、210……音源回路、220……LEDドライバ、221……発光側センサヘッド、222……受光側センサヘッド、223……A/D変換器、224……LED、225……フォトダイオード。
Claims (4)
- 押下されていない状態の鍵位置であるレスト位置と、押下しきった状態の鍵位置であるエンド位置の間に、前記レスト位置から前記エンド位置に向かって順に、第1の鍵位置、第2の鍵位置、第3の鍵位置、第4の鍵位置が定められており、鍵が押下されると、前記第1の鍵位置における鍵速度である第1の鍵速度と、前記第1の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第2の鍵速度と、前記第2の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第3の鍵速度とを算出する算出手段と、
前記算出手段により算出された第1の鍵速度と第2の鍵速度を比較する比較手段と、
前記比較手段による比較の結果、前記第1の鍵速度が前記第2の鍵速度より小さかった場合は、前記第3の鍵速度を前記押下された鍵の鍵速度とする一方、前記第1の鍵速度が前記第2の鍵速度以上であった場合は、前記第2の鍵速度を前記押下された鍵の鍵速度とする鍵速度決定手段と
を具備することを特徴とする鍵盤楽器。 - 押下されていない状態の鍵位置であるレスト位置と、押下しきった状態の鍵位置であるエンド位置の間に、前記レスト位置から前記エンド位置に向かって順に、第1の鍵位置、第2の鍵位置、第3の鍵位置、第4の鍵位置が定められており、鍵が押下されると、前記第1の鍵位置における鍵速度である第1の鍵速度と、前記第1の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第2の鍵速度と、前記第2の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第3の鍵速度とを算出する算出手段と、
前記算出手段により算出された第1の鍵速度と第2の鍵速度を比較する比較手段と、
前記比較手段による比較の結果、前記第1の鍵速度が前記第2の鍵速度より小さかった場合は、指付け打鍵であると判定する一方、前記第1の鍵速度が前記第2の鍵速度以上であった場合は、指離し打鍵であると判定する奏法判定手段と、
前記奏法判定手段により指付け打鍵であると判定された場合は、前記第3の鍵速度を前記押下された鍵の鍵速度とする一方、前記判定手段により指離し打鍵であると判定された場合は、前記第2の鍵速度を前記押下された鍵の鍵速度とする鍵速度決定手段と
を具備することを特徴とする鍵盤楽器。 - 押下されていない状態の鍵位置であるレスト位置と、押下しきった状態の鍵位置であるエンド位置の間に、前記レスト位置から前記エンド位置に向かって順に、第1の鍵位置、第2の鍵位置、第3の鍵位置、第4の鍵位置が定められており、鍵が押下されると、前記第1の鍵位置における鍵速度である第1の鍵速度と、前記第1の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第2の鍵速度と、前記第2の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第3の鍵速度とを算出する算出手段と、
前記算出手段により算出された第1の鍵速度と第2の鍵速度を比較する比較手段と、
前記比較手段による比較の結果、前記第1の鍵速度が前記第2の鍵速度より小さかった場合は、前記第3の鍵速度を前記押下された鍵の鍵速度とする一方、前記第1の鍵速度が前記第2の鍵速度以上であった場合は、前記第2の鍵速度を前記押下された鍵の鍵速度とする鍵速度決定手段と
を具備することを特徴とする鍵速度判定装置。 - 押下されていない状態の鍵位置であるレスト位置と、押下しきった状態の鍵位置であるエンド位置の間に、前記レスト位置から前記エンド位置に向かって順に、第1の鍵位置、第2の鍵位置、第3の鍵位置、第4の鍵位置が定められており、鍵が押下されると、前記第1の鍵位置における鍵速度である第1の鍵速度と、前記第1の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第2の鍵速度と、前記第2の鍵位置から前記第4の鍵位置までの区間における平均鍵速度である第3の鍵速度とを算出する算出手段と、
前記算出手段により算出された第1の鍵速度と第2の鍵速度を比較する比較手段と、
前記比較手段による比較の結果、前記第1の鍵速度が前記第2の鍵速度より小さかった場合は、指付け打鍵であると判定する一方、前記第1の鍵速度が前記第2の鍵速度以上であった場合は、指離し打鍵であると判定する奏法判定手段と、
前記奏法判定手段により指付け打鍵であると判定された場合は、前記第3の鍵速度を前記押下された鍵の鍵速度とする一方、前記判定手段により指離し打鍵であると判定された場合は、前記第2の鍵速度を前記押下された鍵の鍵速度とする鍵速度決定手段と
を具備することを特徴とする鍵速度判定装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26553398A JP3887968B2 (ja) | 1998-09-18 | 1998-09-18 | 鍵盤楽器および鍵速度判定装置 |
DE19944718A DE19944718B4 (de) | 1998-09-18 | 1999-09-17 | Tastenmusikinstrument und darin umfaßtes Informationsverarbeitungssystem zur Unterscheidung verschiedener Arten von Tastenbewegungen |
US09/394,805 US6297437B1 (en) | 1998-09-18 | 1999-09-20 | Keyboard musical instrument and information processing system incorporated therein for discriminating different kinds of key motion |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26553398A JP3887968B2 (ja) | 1998-09-18 | 1998-09-18 | 鍵盤楽器および鍵速度判定装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000099029A JP2000099029A (ja) | 2000-04-07 |
JP3887968B2 true JP3887968B2 (ja) | 2007-02-28 |
Family
ID=17418456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26553398A Expired - Fee Related JP3887968B2 (ja) | 1998-09-18 | 1998-09-18 | 鍵盤楽器および鍵速度判定装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6297437B1 (ja) |
JP (1) | JP3887968B2 (ja) |
DE (1) | DE19944718B4 (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4232325B2 (ja) * | 2000-06-21 | 2009-03-04 | ヤマハ株式会社 | 鍵駆動装置 |
JP4595193B2 (ja) * | 2000-11-17 | 2010-12-08 | ヤマハ株式会社 | ハンマ検出装置 |
JP4691780B2 (ja) * | 2000-12-25 | 2011-06-01 | ヤマハ株式会社 | 鍵盤楽器の鍵盤装置 |
JP4374803B2 (ja) * | 2001-06-26 | 2009-12-02 | ヤマハ株式会社 | 光センサ |
JP4129798B2 (ja) * | 2004-01-06 | 2008-08-06 | ヤマハ株式会社 | 光学検出装置 |
JP4531415B2 (ja) * | 2004-02-19 | 2010-08-25 | 株式会社河合楽器製作所 | 自動演奏装置 |
JP4218552B2 (ja) * | 2004-03-04 | 2009-02-04 | ヤマハ株式会社 | 鍵盤楽器 |
EP1575026A2 (en) * | 2004-03-12 | 2005-09-14 | Yamaha Corporation | Automatic player musical instrument, for exactly controlling the keys |
JP4193752B2 (ja) * | 2004-05-07 | 2008-12-10 | ヤマハ株式会社 | 自動演奏ピアノ |
JP4548053B2 (ja) * | 2004-09-07 | 2010-09-22 | ヤマハ株式会社 | 楽器の演奏駆動装置及び楽器の演奏操作子をフィードバック制御によって駆動するための方法及び該方法をコンピュータにより実行する制御プログラム。 |
JP4375200B2 (ja) * | 2004-11-01 | 2009-12-02 | ヤマハ株式会社 | 力覚制御用基礎情報出力装置 |
US20060130641A1 (en) * | 2004-12-09 | 2006-06-22 | Roland Corporation | Apparatus and method for providing a twin piano function |
JP4711179B2 (ja) * | 2005-08-19 | 2011-06-29 | ヤマハ株式会社 | 電子鍵盤楽器およびプログラム |
JP4822782B2 (ja) * | 2005-09-15 | 2011-11-24 | 株式会社河合楽器製作所 | 鍵盤楽器のタッチ検出装置 |
US7843575B1 (en) | 2007-01-15 | 2010-11-30 | Midi9 LLC | Reflective piano keyboard scanner |
JP2008268362A (ja) * | 2007-04-17 | 2008-11-06 | Kawai Musical Instr Mfg Co Ltd | 電子鍵盤楽器及びその処理方法 |
JP5209287B2 (ja) * | 2007-12-13 | 2013-06-12 | ローランド株式会社 | 電子楽器の操作位置検出装置 |
US7825312B2 (en) | 2008-02-27 | 2010-11-02 | Steinway Musical Instruments, Inc. | Pianos playable in acoustic and silent modes |
JP2010113024A (ja) * | 2008-11-04 | 2010-05-20 | Yamaha Corp | 楽音制御装置 |
JP2010160263A (ja) * | 2009-01-07 | 2010-07-22 | Casio Computer Co Ltd | 電子鍵盤楽器 |
US8541673B2 (en) | 2009-04-24 | 2013-09-24 | Steinway Musical Instruments, Inc. | Hammer stoppers for pianos having acoustic and silent modes |
US8148620B2 (en) * | 2009-04-24 | 2012-04-03 | Steinway Musical Instruments, Inc. | Hammer stoppers and use thereof in pianos playable in acoustic and silent modes |
US8785758B2 (en) * | 2010-09-01 | 2014-07-22 | Inmusic Brands, Inc. | Electronic hi-hat cymbal controller |
US8519252B2 (en) | 2011-03-16 | 2013-08-27 | Waleed Sami Haddad | Optoelectronic pickup for musical instruments |
US9047851B2 (en) | 2012-09-19 | 2015-06-02 | Light4Sound | Optoelectronic pickup for musical instruments |
FI20135575L (fi) * | 2013-05-28 | 2014-11-29 | Aalto Korkeakoulusäätiö | Tekniikoita musiikkiesityksen parametrien analysoimiseksi |
US20150013525A1 (en) * | 2013-07-09 | 2015-01-15 | Miselu Inc. | Music User Interface Sensor |
US8901405B1 (en) * | 2013-08-22 | 2014-12-02 | McCarthy Music Corp. | Electronic piano training device |
US20150122112A1 (en) * | 2013-11-03 | 2015-05-07 | Miselu Inc. | Sensing key press activation |
JP6485082B2 (ja) | 2015-02-04 | 2019-03-20 | ヤマハ株式会社 | 鍵盤楽器 |
JP6070735B2 (ja) * | 2015-02-04 | 2017-02-01 | ヤマハ株式会社 | 鍵盤楽器 |
JP6299621B2 (ja) | 2015-02-04 | 2018-03-28 | ヤマハ株式会社 | 鍵盤楽器 |
JP6645128B2 (ja) * | 2015-11-04 | 2020-02-12 | ヤマハ株式会社 | 鍵盤楽器及び該鍵盤楽器における補正情報取得方法 |
WO2017121049A1 (en) * | 2016-01-15 | 2017-07-20 | Findpiano Information Technology (Shanghai) Co., Ltd. | Piano system and operating method thereof |
JP6915679B2 (ja) | 2017-03-15 | 2021-08-04 | ヤマハ株式会社 | 信号供給装置、鍵盤装置およびプログラム |
JP7160793B2 (ja) * | 2017-03-15 | 2022-10-25 | ヤマハ株式会社 | 信号供給装置、鍵盤装置およびプログラム |
US10482859B1 (en) * | 2018-09-13 | 2019-11-19 | Jammy Instruments Ltd. | Optical sensor and electric stringed musical instrument with digital interface (MIDI) equipped with optical sensor |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4416178A (en) * | 1980-12-22 | 1983-11-22 | Casio Computer Co., Ltd. | Touch response providing apparatus |
JP3364908B2 (ja) * | 1992-05-08 | 2003-01-08 | ヤマハ株式会社 | 鍵盤楽器の演奏記録装置およびその演奏再生装置 |
JP3555117B2 (ja) * | 1993-08-20 | 2004-08-18 | ヤマハ株式会社 | 鍵センサ |
JP3336742B2 (ja) * | 1994-05-18 | 2002-10-21 | ヤマハ株式会社 | 鍵盤楽器 |
JP3552366B2 (ja) | 1995-06-09 | 2004-08-11 | ヤマハ株式会社 | 楽音制御装置 |
JP3610648B2 (ja) * | 1995-11-30 | 2005-01-19 | ヤマハ株式会社 | 光センサ |
JP3890649B2 (ja) * | 1997-02-21 | 2007-03-07 | ヤマハ株式会社 | 自動ピアノの演奏データ変換装置 |
-
1998
- 1998-09-18 JP JP26553398A patent/JP3887968B2/ja not_active Expired - Fee Related
-
1999
- 1999-09-17 DE DE19944718A patent/DE19944718B4/de not_active Expired - Fee Related
- 1999-09-20 US US09/394,805 patent/US6297437B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE19944718B4 (de) | 2006-10-12 |
DE19944718A1 (de) | 2000-06-29 |
JP2000099029A (ja) | 2000-04-07 |
US6297437B1 (en) | 2001-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3887968B2 (ja) | 鍵盤楽器および鍵速度判定装置 | |
JP3552366B2 (ja) | 楽音制御装置 | |
JP3900712B2 (ja) | 鍵盤楽器のセンサ較正装置及びセンサ較正方法 | |
US7361825B2 (en) | Electronic keyboard instrument | |
JP3587167B2 (ja) | 電子楽器 | |
JPH0659667A (ja) | 鍵盤楽器 | |
WO2018168953A1 (ja) | 信号供給装置、鍵盤装置およびプログラム | |
JP3567527B2 (ja) | 鍵盤楽器 | |
US8106287B2 (en) | Tone control apparatus and method using virtual damper position | |
US7339105B2 (en) | Automatic musical performance device | |
JP2014112221A (ja) | 発音機構における打撃部材のための駆動制御装置 | |
JP4042753B2 (ja) | 電子楽器 | |
JP3569660B2 (ja) | 鍵盤楽器用音源 | |
JP3586882B2 (ja) | 鍵盤楽器の自動演奏システム | |
JP3832500B2 (ja) | 鍵盤楽器 | |
JP3279307B2 (ja) | 鍵盤楽器 | |
JP3767608B2 (ja) | 楽音制御装置 | |
JP3821137B2 (ja) | 楽音制御装置、消音機能付ピアノ、および、自動演奏ピアノ | |
JP3767609B2 (ja) | 楽音制御装置 | |
JP4381703B2 (ja) | 電子楽器 | |
JP4110691B2 (ja) | 鍵盤楽器のセンサデータ変換装置及びセンサデータ変換方法 | |
JP4135275B2 (ja) | 速度検出装置及び速度検出方法 | |
JP2004094277A (ja) | 鍵盤楽器 | |
JP5657868B2 (ja) | 楽音制御方法及び楽音制御装置 | |
JP3719144B2 (ja) | 電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041124 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060811 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060822 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061017 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061120 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121208 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131208 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |