JP3671926B2 - Electronic musical instruments - Google Patents

Electronic musical instruments Download PDF

Info

Publication number
JP3671926B2
JP3671926B2 JP2002096314A JP2002096314A JP3671926B2 JP 3671926 B2 JP3671926 B2 JP 3671926B2 JP 2002096314 A JP2002096314 A JP 2002096314A JP 2002096314 A JP2002096314 A JP 2002096314A JP 3671926 B2 JP3671926 B2 JP 3671926B2
Authority
JP
Japan
Prior art keywords
key
musical
support member
register
mass body
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
Application number
JP2002096314A
Other languages
Japanese (ja)
Other versions
JP2002333884A (en
Inventor
竹夫 渋川
順一 三島
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 JP2002096314A priority Critical patent/JP3671926B2/en
Publication of JP2002333884A publication Critical patent/JP2002333884A/en
Application granted granted Critical
Publication of JP3671926B2 publication Critical patent/JP3671926B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は電子楽器に関し、特に電子楽器の鍵盤上の鍵操作に応じて楽音を制御することができる電子楽器に関する。
【0002】
【従来の技術】
自然楽器のピアノは、押鍵速度に応じて発生する楽音が変化する。電子楽器においては、押鍵速度を検出するため各鍵にトランスファスイッチまたはおわん状2メイクスイッチが設けられている。
【0003】
従来のトランスファスイッチや2メイクスイッチを有するキーボードでは2点を通過する間の平均速度のみを検出しているので、演奏手法を変えても押鍵速度が同じとして検出されてしまう。したがって、従来技術では演奏手法の違いを楽音に反映させることができない。また、イニシャルタッチとアフタタッチの情報を用いて、演奏手法を検出する方法も考えられるが、アフタタッチを待っていたのでは、楽音の発音に遅れが生じてしまうため、鍵盤楽器には好ましくない。
【0004】
よりきめ細かな制御を実現するため、鍵のストローク位置を検出する全行程センシングキーボードが特開平2−214897号公報、特開平3−67299号公報等で提案されている。これらは、押鍵操作における全行程の鍵位置の検出を行う。
【0005】
また、1つ前の押鍵データや1つ前のアフタタッチの情報を用いて、楽音の制御を行う電子鍵盤楽器が特開平2−146596号公報で提案されている。
【0006】
【発明が解決しようとする課題】
従来の電子鍵盤楽器では、スタッカートやテヌート等の演奏手法により楽音を変化させることが困難である。また、押鍵操作を検出し、その押鍵操作を反映させた楽音信号をリアルタイムで生成することは難しい。
【0007】
本発明の目的は、鍵盤楽器の演奏手法に応じて楽音の制御を行うことができる電子鍵盤楽器を提供することである。
【0008】
【課題を解決するための手段】
本発明の一観点によれば、電子楽器は、支持部材と、前記支持部材に対して揺動可能に設けられた複数の鍵と、前記複数の鍵の各鍵に対応して設けられ、前記各鍵の運動に応じて前記支持部材に対する相対位置が変位する質量体と、前記複数の鍵の各鍵に対応して設けられ、前記各鍵の鍵操作を検出する鍵操作検出手段と、前記検出した鍵操作に基づいて楽音信号を発生する楽音信号発生手段と、操作される鍵の運動に応じて駆動される前記質量体の前記支持部材に対する相対位置を表す位置情報を多数回検出し、該多数回検出した位置情報に基づいて前記操作された鍵の押鍵操作に係る奏法を検出する奏法検出手段と、前記奏法検出手段が検出した奏法に応じた楽音制御を前記楽音発生手段に対して行う楽音制御手段とを有する。
また、本発明の他の観点によれば、電子楽器は、鍵接合部と質量体支持部とを有する支持部材と、前記鍵接合部を回転軸として支持部材に対して揺動可能に設けられ、質量体接合部を有する複数の鍵と、前記複数の鍵の各鍵に対応して前記鍵に設けられた質量体接合部を回転軸として鍵に対して遥動可能に設けられ、前記各鍵の運動に応じて前記質量体支持部を支点として前記支持部材に対する相対位置が変位する質量体と、前記複数の鍵の各鍵に対応して設けられ、前記各鍵の鍵操作を検出する鍵操作検出手段と、前記検出した鍵操作に基づいて楽音信号を発生する楽音信号発生手段と、操作される鍵の運動に応じて変位する前記質量体の前記支持部材に対する相対位置を表す位置情報を多数回検出し、該多数回検出した位置情報に基づいて前記操作された鍵の押鍵操作に係る奏法を検出する奏法検出手段と、前記奏法検出手段が検出した奏法に応じた楽音制御を前記楽音発生手段に対して行う楽音制御手段とを有する。
【0009】
【作用】
鍵操作に応じて時間的に変化する鍵の相対的位置を検出して、その非線形度を演算することにより、奏法を検出することができる。これにより、検出された奏法の相違に応じた楽音を生成することができる。
【0010】
また、質量対は演奏者の演奏に対して、鍵盤を介して間接的に動作するものであるため、質量体の位置情報(位置情報の非線形度)は、奏法に応じて大きく異なる。よって、質量体の位置情報を検出し、この位置情報に基づき奏法を判別して楽音制御を行う。よって、えんそうしゃによるびみょうなそうほうのちがいに応じたきめ細かな楽音制御を行うことが出来る。
【0011】
ここで、上記非線形度はどこで生まれるのか、そのメカニズムを以下に説明する。実施例および実験データで明らかになるが押鍵速度(キーストロークの中間の所定の2点を通過する平均速度)が同じであっても、鍵を押し下げ始めた瞬間に指から鍵に伝わる力が大きい(強押鍵)ほど、非線形出力が得られることから、(1)鍵は剛体ではあるが、強押鍵時にわずかに鍵がしなうことによる、(2)鍵と支持部材との間の回転支持部は微視的に見れば凹凸があり、かつその凹凸を埋めるように潤滑剤(グリス)が塗られている。この部分が極くわずかにずれ、支点移動が起こることによる、(3)実施例では鍵に連動して質量体が移動するが、鍵の質量体駆動部が質量体の被駆動部へ力の伝達がなされる時特に強押鍵時に伝達エネルギが蓄えられることによる、(4)キーストローク検出センサに用いるグレースケールは厚さが約0.3mmのフィルム状になっているので、鍵または質量体の移動に伴いグレースケールに空気抵抗等が加わることによる、以上の4要素のうち1または複数の要素が複雑に絡み合って非線形出力が得られるものと考えられる。
【0012】
【発明の実施の形態】
図1は、電子鍵盤楽器のシステム構成例を示す。鍵盤は88の鍵を有し、それぞれの鍵にはストロークセンサS1〜S88が備えられている。演奏者がそれぞれの鍵に対し押鍵や離鍵等の操作を行うと、ストロークセンサS1〜S88は、鍵のストローク位置を検出する。検出されたストローク位置は、A/D変換器AD1〜AD88においてディジタル信号SD1〜SD88に変換され、マルチプレクサ2に供給される。また、キースイッチ1は、音高情報や押鍵速度、押鍵圧力等の鍵操作に関する情報をマルチプレクサ2に供給する。マルチプレクサ2は、入力された情報を必要に応じてバス3に供給する。
【0013】
電子楽器のパネル上には、音量調整、音色選択又は種々の効果付与、変調等を行う指示を与えるためのパネルスイッチも設けられている。演奏者がパネルスイッチを操作すると、その情報もマルチプレクサ2に供給される。
【0014】
マイクロコンピュータ4は、CPU5とROM6とRAM7を有する。ROM6は演算プログラムを記憶している。CPU5はこの演算プログラムに従って、RAM7に備えられたレジスタやバッファメモリ等のワーキングメモリを用いて各種演算処理を行う。マイクロコンピュータ4は、マルチプレクサ2からバス3を介して鍵操作の情報を受け、音源8に楽音パラメータを出力する。
【0015】
鍵盤の鍵が押下されると、キースイッチ1内でまず第1接点がオンとなり、その後に第2接点がオンとなる。その後に鍵が離されると、第2接点、第1接点の順にオフとなる。マイクロコンピュータ4は、第1接点オンから第2接点オンまでの時間の逆数をベロシティ信号として検出し、基本的楽音信号パラメータを定める。
【0016】
音源8は、マイクロコンピュータ4から供給された楽音パラメータに基づき、発音するために必要な楽音信号を形成し出力する。出力された楽音信号は、増幅器11で増幅され、スピーカ12から発音される。
【0017】
マイクロコンピュータ4は、ストロークセンサからの信号に基づき、鍵の動きを検出し、スタッカートやテヌート等の奏法を判断する。ここで、テヌートは、音符の表す長さを十分に保って演奏する奏法であり、スタッカートは、音を明瞭に分離して弾く奏法である。なお、テヌート奏法は、指を鍵に当接させた状態で鍵を押し下げるものであり、鍵を押し下げ始めた瞬間に指から伝わる力は比較的小さい。一方、スタッカート奏法は、指を鍵から離した状態から鍵を押し下げるものであり、鍵を押し下げ始めた瞬間に指から鍵に伝わる力は比較的大きい。
【0018】
テーブルROM9には、音量、音色や効果等の楽音の制御量が奏法の種類に応じて予め設定されている。マイクロコンピュータ4は、鍵の動きに応じて奏法を検出し、テーブルROM9から楽音の制御量を読み出して音源8および増幅器11に出力する。音源8では、キースイッチ1からの信号に基づく楽音信号形成が、テーブルROM9から供給される奏法を反映した信号によって修飾される。
【0019】
テーブルROM9は、楽音制御量を音源8に供給することにより音色や効果の制御を行う。また、テーブルROM9はD/A変換器10に音量制御量を供給し、増幅器11の増幅率を制御してスピーカ12から発音される音量を変化させる。
【0020】
図2は、テーブルROMに設定する楽音制御量の例を示す。楽音制御の例として音量を制御するテーブルを示す。この音量制御パラメータはD/A変換器10を介して増幅器11に供給される。テーブルの横軸は速度データVELを示す。テーブルの縦軸は奏法を示し、値が大きいほどスタッカート的な奏法を表し、値が小さいほどテヌート的な奏法を表す。
【0021】
速度データVELは、押鍵により、第1接点がオンになってから第2接点がオンになるまでの時間差の逆数として検出される。テーブルの速度データは、音の強弱に対応し、速度データが小さいメゾピアノ(mp)から速度データが大きいフォルテシシモ(fff)までの範囲を有する。
【0022】
押鍵による速度データが同じであっても、奏法が異なれば発音される音量は微妙に制御される。例えば、奏法がスタッカート的であれば音量が大きくなり、テヌート的であれば音量が小さくなるような制御量をテーブルに設定しておく。この音量制御パラメータはテーブルROM9から読み出されて増幅器11に与えられ、音量制御が行われる。
【0023】
テーブルROM9には、音量制御のパラメータテーブルの他に音色制御等の種々のテーブルが記憶されている。これらのテーブルは、例えば横軸の速度データVELと縦軸の奏法に対するエンベロープ波形の係数テーブルや音色パラメータの係数テーブルである。これらの係数は音源回路8のパラメータを制御するためのものである。
【0024】
図3は、奏法の相違により音量制御されるエンベロープ波形を示す。奏法により、増幅器11において制御される楽音のエンベロープ波形を変化させる。奏法が、スタッカート的であればエンベロープ波形全体を大きくし、テヌート的であればエンベロープ波形全体を小さくするような制御が行われる。これにより、スタッカート奏法では大きな音量が出力され、テヌート奏法では小さな音量が出力される。
【0025】
図4は、奏法の相違による立上がりの形状を制御させるエンベロープ波形を示す。奏法により、音源回路8において生成されるエンベロープ波形の立上がり形状を制御する。奏法が、スタッカート的であればエンベロープ波形の立上がり形状を急峻にし、テヌート的であればエンベロープ波形の立上がり形状を緩やかにするような制御が行われる。これにより、スタッカート奏法では立上がりが鋭い楽音が出力され、テヌート奏法では立上がりが緩やかな楽音が出力される。
【0026】
図5は、奏法の相違により音色制御されるフィルタの特性例を示す。音源回路8中に備えられたディジタルフィルタのカットオフ周波数の係数を変化させることにより、発音させる音色を変えることができる。
【0027】
図5(A)は、ローパスフィルタ(LPF)の特性の例を示す。横軸は周波数を示し、縦軸は信号を通過させる率(透過率)を示す。カットオフ周波数を境として、低周波数領域のみの信号を通過させ、高周波数領域の信号は遮断する特性を有する。
【0028】
図5(B)は、バンドパスフィルタ(BPF)の特性の例を示す。横軸は周波数を示し、縦軸は信号を通過させる率(透過率)を示す。カットオフ周波数を2つ有し、2つのカットオフ周波数の間の周波数帯域の信号を通過させる。
【0029】
図5(C)は、ハイパスフィルタ(HPF)の特性の例を示す。横軸は周波数を示し、縦軸は信号を通過させる率(透過率)を示す。カットオフ周波数を境として、高周波数領域のみの信号を通過させ、低周波数領域の信号は通過させない特性を有する。
【0030】
図5(A)、(B)、(C)の3種類のフィルタは、それぞれカットオフ周波数を低く設定すれば丸っこい音色となり、カットオフ周波数を高く設定すれば明るい音色となる。そこで、テヌート奏法では丸っこい音色として、スタッカート奏法では明るい音色とするような制御を行う。
【0031】
図6は、速度データVELの小さいテヌート奏法によるストローク位置の変化を示す。速度データVEL=38(16進数)のテヌート奏法は、速度データが小さいので弱い鍵タッチによる奏法である。図のグラフは、時間経過に対する鍵のストローク位置を示す。時間経過に対して、ストローク位置は下方向に凸であり、なめらかな変化を示す。ニュートンの法則によれば、質点に一定の力を作用させると、時間と共に速度はリニアに増大し、位置は2次関数的に変化する。鍵の動きには抵抗等があるが、下方向に凸の変位は比較的安定な力が鍵に作用し続けることを推察させる。
【0032】
図7は、速度データVELの小さいスタッカート奏法によるストローク位置の変化を示す。図6(A)と同様に速度データVEL=38(16進数)のスタッカート奏法による時間経過に対する鍵のストローク位置を示す。時間経過に対して、ストローク位置は最初は下方向に凸でなめらかな変化を示すが、所定時間経過後は直線的にストローク位置が変化する。このような変化は鍵に作用する力が何らかの理由により途中で減少することを推察させる。
【0033】
図6と図7に示すそれぞれの奏法は、共に弱い鍵タッチによる奏法のグラフである。テヌート奏法とスタッカート奏法を比べると、鍵タッチが弱すぎるためにわずかな違いは見られるもののそれほど大きな違いはない。しかし、以下に示すようにある程度の強さを持った鍵タッチにより各奏法を行えば、顕著な違いが現れる。
【0034】
図8は、速度データVELの大きいテヌート奏法によるストローク位置の変化を示す。速度データVEL=50(16進数)のテヌート奏法は、速度データが大きいので図6のテヌート奏法よりも強い鍵タッチによる奏法である。図のグラフは、時間経過に対する鍵のストローク位置を示す。ストローク位置の変化は、やはり、時間経過に対して、下方向に凸であり、なめらかな変化を示すが、図6の弱い鍵タッチのときに比べてストローク位置が速く変化する。作用する力が増大し、速度の増加率が大きくなるのであろう。
【0035】
図9は、速度データVELの大きいスタッカート奏法によるストローク位置の変化を示す。図8と同様に速度データVEL=50(16進数)のスタッカート奏法による時間経過に対する鍵のストローク位置を示す。スタッカート奏法では、ストローク位置が押鍵の途中において傾きが大きく変化し、複雑な変化を示す。図示の曲線では0〜5msの領域で上方向に凸の変化を示し、その後下方向に凸の変化を示している。上方向に凸の変化を示す領域では安定した力が鍵に作用していないものと考えられる。運動開始と共に何らかの反力が作用している可能性もある。
【0036】
スタッカート奏法のストローク位置が、テヌート奏法に比べて非線形な複雑な変化を示す理由として以下のものが影響していると考えられる。まず、押鍵する際に演奏者の指頭と鍵が接触するが、その指頭の接触部のへこみと回復による機構により作用する成分が考えられる。その他、押鍵の際に生じる鍵のわずかなたわみ、鍵の支点部のフェルト、ゴム等のエネルギ蓄積部、鍵とハンマとの駆動点の緩衝部等によるものが考えられる。
【0037】
グラフに示すストローク位置の変化において、スタッカート奏法は、テヌート奏法に比べてカーブの曲がり具合が大きい、または、カーブの曲がり具合の変化が大きいという特徴を有する。この特徴を抽出することにより、スタッカート奏法とテヌート奏法の違いを検出する手順を以下のフローチャートで説明する。
【0038】
図10は、タイマインタラプトの処理を示すフローチャートである。一連の処理を行うCPUは、1〜10μs程度の一定時間間隔で発生する割り込み信号TINTに応じて、以下のタイマインタラプトの処理を行う。
【0039】
まず、ステップFT1において時間カウンタtがインクリメントされる。時間カウンタtは、割り込み信号TINTが発生する度にインクリメントされる時間カウンタのレジスタである。
【0040】
ステップFT2では、時間カウンタtが所定値tmax に達したか否かを調べる。所定値tmax は、時間カウンタtがカウントされる最大値を示し、この値を越えてカウントされることはない。例えば、tmax =100万程度に設定しておく。
【0041】
時間カウンタtが所定値tmax に達していれば、ステップFT3へ進み時間カウンタtを0にリセットして、次回からは0からカウントし直す。その後、割り込み前の処理を再開する。一方、時間カウンタtが所定値tmax に達していなければ、ステップFT3をバイパスして割り込み前の処理を再開する。
【0042】
図11は、CPUが処理するメインルーチンを示すフローチャートである。CPUは、例えば命令のワンステップを実行するのに約0.1μs要する。まず、ステップFM1においてレジスタ類の初期化等を行う。カウンタ値が格納されるレジスタKに0をセットする。
【0043】
ステップFM2では、レジスタKが所定値Dであるか否かをチェックする。所定値Dとは、例えば3程度である。レジスタKが所定値Dでなければ以下の処理をバイパスして、ステップFM5へ進みレジスタiに1を格納してステップFM6へ進む。一方、レジスタKが所定値Dであれば、ステップFM3に進む。すなわちステップFM3はカウントD毎に1回実行される。
【0044】
ステップFM3では、レジスタiに1を格納する。レジスタiには、鍵盤上の88鍵中の処理対象となる鍵の番号が格納される。その後ステップFM4へ進む。
【0045】
ステップFM4では、鍵盤上の鍵のストローク位置の検出を行う。つまり、ステップFM2において、レジスタKの比較を行い、所定値Dに応じた頻度でストローク位置を検出することになる。この検出処理の間隔は、1ms程度が望ましい。
【0046】
まず、i番目の鍵に対応するストロークセンサSiの検出を行い、ディジタル信号に変換されたストローク位置SDiをレジスタAMP(i)に格納する。そして、レジスタT(i)に時間カウンタtの値を格納し、レジスタTMSUM(i)の値をレジスタTM(i)だけ増加する。レジスタTM(i)には、初期設定において0がセットされいる。
【0047】
その後、レジスタTM(i)には、レジスタT(i)からレジスタT’(i)を引いた値が格納される。レジスタT’(i)は、前回のストローク位置検出を行った際の時間を示す。つまり、レジスタTM(i)には、ストローク位置検出を行う間隔の時間が格納される。
【0048】
次に、後に説明する計算フローの処理を行うことにより、奏法の種類を表す奏法データDMAX(i)が求められる。そして、ストローク位置のレジスタAMP(i)を0にクリアして、レジスタT’(i)に現時間を表すレジスタT(i)の値を格納する。そして、ステップFM6へ進む。
【0049】
ステップFM6では、キーオン信号またはキーオフ信号を楽音発生回路(音源)に送出する処理や算出された奏法データDMAX(i)に応じた楽音パラメータを設定して、楽音発生回路(音源)に送出する処理を行う。。詳細は後述する。その後、レジスタiをインクリメントして、ステップFM7へ進む。
【0050】
ステップFM7では、レジスタiの値が88より大きいか否かを調べる。レジスタiが88より大きくなければ、鍵盤上の88鍵全ての鍵についての処理が終了していないので、ステップFM8へ進みレジスタKが所定値Dであるか否かを調べる。レジスタKが所定値Dであれば、ステップFM4へ戻り次の鍵についてストローク位置の検出処理を繰り返す。一方、ステップFM8においてレジスタKが所定値Dでなければ、ステップFM6へ戻り次の鍵についてキーオン信号またはキーオフ信号の送出等の処理を繰り返す。
【0051】
ステップFM7において、レジスタiが88より大きければ、鍵盤上の88鍵全ての鍵についての処理が終了したことを示すので、ステップFM9へ進みレジスタKをインクリメントする。
【0052】
ステップFM10では、レジスタKが所定値D+1であるか否かを調べる。レジスタKが所定値D+1であれば、ステップFM11へ進みレジスタKを0にクリアしてステップFM12へ進む。一方、レジスタKが所定値D+1でなければ、そのままステップFM12へ進む。すなわちレジスタKはD毎にカウントを繰り返す。
【0053】
ステップFM12では、キースイッチの操作に応じたパラメータの設定処理を行い、音色や効果等の楽音制御を行う。また、メインルーチンの終了処理等の演奏に必要なその他の処理を行い、ステップFM2へ戻り処理を繰り返す。
【0054】
図12は、図11のメインルーチンのステップFM4中の計算フローの処理を示すフローチャートである。ステップFK1において、レジスタAMP1(i)〜AMP8(i)は、ストローク位置を格納するレジスタであり、AMP1(i)からAMP8(i)に向けて数字が大きくなる程昔のストローク位置を示す。
【0055】
レジスタVel1(i)〜Vel8(i)はストローク位置の変化速度を格納するためのレジスタであり、Vel1(i)からVel8(i)に向けて数字が大きくなる程昔のストローク位置の変化速度を示す。
【0056】
それぞれ8つのレジスタVel1(i)〜Vel8(i)とレジスタAMP1(i)〜AMP8(i)はシフトレジスタの機能を果たし、初期設定ではそれぞれのレジスタが0にクリアされている。レジスタVel7(i)の値はレジスタVel8(i)に退避され、レジスタAMP7(i)の値はレジスタAMP8(i)に退避される。このようなシフトレジスタ処理を7組について行うことにより、各レジスタに格納されている値がVel1(i)からVel8(i)に向けてまたはAMP1(i)からAMP8(i)に向けてシフトする。各レジスタには、以下の値が格納される。
【0057】
【数1】
Vel8(i)←Vel7(i)
AMP8(i)←AMP7(i)
Vel7(i)←Vel6(i)
AMP7(i)←AMP6(i)
Vel6(i)←Vel5(i)
AMP6(i)←AMP5(i)
Vel5(i)←Vel4(i)
AMP5(i)←AMP4(i)
Vel4(i)←Vel3(i)
AMP4(i)←AMP3(i)
Vel3(i)←Vel2(i)
AMP3(i)←AMP2(i)
Vel2(i)←Vel1(i)
AMP2(i)←AMP1(i)
そして、レジスタVel1(i)には、最新に得られたストローク位置と1つ前のストローク位置の変化を示す次式の速度データが格納される。
【0058】
【数2】
Vel1(i)←{AMP(i)−AMP1(i)}/TM(i)
・・・(2)
ここで、レジスタAMP(i)は最新のストローク位置であり、レジスタAMP1(i)は1つ前のストローク位置である。レジスタTM(i)は、ストローク位置検出が行われる間隔の時間を示す。
【0059】
その後、レジスタAMP1(i)に現在のストローク位置を示すレジスタAMP(i)の値を格納する。ステップFK2では、レジスタAMP8(i)の値が所定値より大きいか否かを調べる。所定値とはノイズレベルを示し、レジスタAMP8(i)にノイズレベルより大きな値が格納されていれば、レジスタAMP1(i)から順番にレジスタ間をシフトされてきたことを示す。
【0060】
レジスタAMP8(i)が所定値より大きくなければ、レジスタAMP1(i)〜AMP8(i)にストローク位置のデータがまだ7つ以下しか入力されていないことを示すので、処理端子Aへ進み図11のメインルーチンの処理へ戻る。一方、レジスタAMP8(i)が所定値より大きければ、レジスタAMP1(i)〜AMP8(i)にデータが8つ入力されたことを示すので、ステップFK3へ進む。
【0061】
ステップFK3において、レジスタVelAve1(i)〜VelAven(i)は、ストロークの速度を示すレジスタVel1(i)〜Vel8(i)の平均速度を格納するためのレジスタである。
【0062】
所定値n個のレジスタVelAve1(i)〜VelAven(i)がシフトレジスタの機能を果たし、初期設定ではそれぞれのレジスタが0にクリアされている。シフトレジスタ処理をn組について行うために、以下の処理を行う。
【0063】
【数3】
VelAven(i)←VelAven−1(i)
VelAven−1(i)←VelAven−2(i)
:VelAve1(i)←VelAve(i)
そして、以下の演算により8つの速度Vel1(i)〜Vel8(i)の平均速度を求めて、レジスタVelAve(i)に格納する。
【0064】
【数4】
VelAve(i)←{Vel1(i)+Vel2(i)+Vel3(i)+Vel4(i)+Vel5(i)+Vel6(i)+Vel7(i)+Vel8(i)}/8 ・・・(4)
ステップFK4では、8つのレジスタAMP1(i)〜AMP8(i)を0にリセットし、レジスタFSET(i)をインクリメントする。レジスタFSET(i)は、ストローク位置の検出中であることを示すレジスタであり、レジスタFSET(i)のカウントが所定値nに達したら検出は終了する。
【0065】
ステップFK5では、レジスタFSET(i)が所定値nか否かを調べる。レジスタFSET(i)が所定値nでなければ、レジスタVelAve1(i)〜VelAven(i)の全てに平均速度の値が入力されていないので、処理端子Aへ進み図11のメインルーチンの処理へ戻る。一方、レジスタFSET(i)が所定値nであれば、レジスタVelAve1(i)〜VelAven(i)の全てに平均速度の値が入力されたことを示すので、処理端子Bへ進む。
【0066】
図13は、計算フロー処理の処理端子Aと処理端子Bに続く処理を示すフローチャートである。処理端子Aからは、図11のメインルーチンの処理へ戻る。処理端子Bからは、ステップFK7へ進み、次式によりマクロ平均速度Vel(i)を求める。
【0067】
【数5】
Vel(i)←{VelAve1(i)+・・・+VelAven(i)}/n上式のマクロ平均速度Vel(i)はn個のミクロ平均速度VelAve1(i)〜VelAven(i)の平均をとったものであるが、次式により最初のミクロ平均速度VelAve1(i)と最後のミクロ平均速度VelAven(i)の平均をとってもよい。
【0068】
【数6】
Vel(i)←{VelAve1(i)+VelAven(i)}/2ステップFK8では、カウンタmに1をセットして、ステップFK9へ進む。カウンタmは、1からnまで変化する補間用のカウンタである。
【0069】
ステップFK9では、次式により補間平均速度VelIP(i,m)を求める。補間平均速度VelIP(i,m)は、1からnまでの間の補間位置mにおける平均速度を示す。つまり、直線補間を行った平均速度を示す。
【0070】
【数7】
VelIP(i,m)←VelAve1(i)+m{VelAven(i)−VelAve1(i)}/nステップFK10では、補間位置mにおける差分速度DMAX(i,m)と補間位置m+1における差分速度DMAX(i,m+1)を次式によりそれぞれ求める。つまり、ミクロ平均速度が直線的に変化しているほど差分速度DMAX(i,m)は小さな値となる。
【0071】
【数8】
DMAX(i,m)←VelIP(i,m)−VelAve(i,m)DMAX(i,m+1)←VelIP(i,m+1)−VelAve(i,m+1)
ステップFK13では、差分速度DMAX(i,m+1)が差分速度DMAX(i,m)より大きいか否かを調べる。大きければステップFK15へ進み差分最大値DMAX(i)に差分速度DMAX(i,m+1)を格納し、大きくなければステップFK14へ進み差分最大値DMAX(i)に差分速度DMAX(i,m)を格納する。これにより、最大の差分速度が差分最大値DMAX(i)に格納される。
【0072】
ステップFK16では、カウンタmをインクリメントしてステップFK17へ進む。ステップ17では、カウンタmがnであるか否かを調べる。nでなければステップFK9へ進み、再びカウンタmについての処理を繰返し、nであれば処理の終了を示すのでステップFK18へ進む。
【0073】
ステップFK18では、レジスタFSET(i),m,VelIP(i,m),VelIP(i,m+1),DMAX(i,m),DMAX(i,m+1)等の各種レジスタをリセットする。その後、図11のメインルーチンの処理へ戻る。
【0074】
以上の計算フローの処理により求められた差分最大値DMAX(i)の値が演奏手法の種類を示す。差分最大値DMAX(i)が大きいほど、ストローク位置の変化を示すグラフにおけるカーブが大きな曲がりを示すことになるので、スタッカート的な奏法を示す。逆に、差分最大値DMAX(i)が小さいほど、ストローク位置の変化を示すグラフのカーブが小さな曲がりを示すことになるので、テヌート的な奏法であることを示す。
【0075】
この差分最大値DMAX(i)を図2に示した楽音制御量変換テーブルの縦軸の奏法として、楽音制御量のテーブルから楽音制御量の係数を引き出すことにより、楽音が制御される。
【0076】
なお、奏法は差分最大値DMAX(i)の値を用いる場合に限られず、ステップFK10の後に差分積分値DMAXSUM(i)を次式により求めて、差分積分値によって奏法を判断することも可能である。
【0077】
【数9】
DMAXSUM(i)←DMAXSUM(i)+DMAX(i,m)
差分積分値DMAXSUM(i)は、それぞれ補間位置mにおける差分速度の積分値である。したがって、差分最大値DMAX(i)と同様に、差分積分値DMAXSUM(i)が大きいほどスタッカート的な奏法となり、小さいほどテヌート的な奏法であることを示す。また、差分積分値DMAXSUM(i)をnで割って差分速度の平均値から奏法を判断することもできる。
【0078】
また、その他に差分最大値DMAX(i)の時間的変位を表すACC(i)を用いて奏法を判断することもできる。図13の計算フローの処理のステップFK10の後に次式によりACC(i,m)を求める。
【0079】
【数10】
ACC(i,m)←|DMAX(i,m)−DMAX(i,m+1)|求められたACC(i,m)の最大値を算出することにより、演奏データACC(i)が求められる。最大値の代わりに積分値を算出したり、その積分値の平均値を算出することにより奏法を判断することもできる。ACC(i)は、差分速度DMAX(i,m)の時間的変位を表すので、ACC(i)が大きいほど、ストローク位置の変化を示すグラフのカーブが大きな曲がりを示し、スタッカート的な奏法を示す。逆にACC(i)が小さいほどテヌート的な奏法であることを示す。
【0080】
図6〜9の時間経過に対するストローク位置の変化を表すグラフについて、以上の計算フローの処理を行った結果について説明する。図6において、n=15(10進数)回の処理を行ったときの差分積分値DMAXSUM(i)は1400hとなり、その差分積分値DMAXSUM(i)の平均値は155hとなる。図7において、n=12(10進数)回の処理を行ったときの差分積分値DMAXSUM(i)は1218hとなり、その差分積分値DMAXSUM(i)の平均値は182hとなる。したがって、速度データVEL=38hにおいて、差分積分値DMAXSUM(i)の平均値はテヌート奏法よりもスタッカート奏法の方が差分速度の平均値が大きいことを確かめることができる。
【0081】
また、図8において、n=7(10進数)回の処理を行ったときの差分積分値DMAXSUM(i)は600hとなり、その差分積分値DMAXSUM(i)の平均値はdbhとなる。図9において、n=5(10進数)回の処理を行ったときの差分積分値DMAXSUM(i)は1280hとなり、その差分積分値DMAXSUM(i)の平均値は3b3hとなる。したがって、速度データVEL=50hにおいて、差分速度の平均値はテヌート奏法よりもスタッカート奏法の方が差分速度の平均値が大きいことを確かめることができる。
【0082】
以上のように速度データVELが同じであっても差分積分値DMAXSUM(i)の平均値を求めることにより、奏法の相違を判断することができる。つまり、差分積分値DMAXSUM(i)の平均値が大きいほどスタッカート的であり、小さいほどテヌート的な奏法である。
【0083】
図14は、図13の計算フローの処理において用いた処理回数nの設定処理を示すサブルーチン2のフローチャートである。前述の計算フローの処理では処理回数nの値は所定値として説明したが、図13のステップFK4の後に以下の処理を行うことにより処理回数nを適正な値に設定することができる。
【0084】
まず、ステップFC1においてレジスタFSET(i)が1であるか否かを調べる。レジスタFSET(i)が1であれば最初の処理であるので、ステップFC2へ進み処理回数nの設定を行う。一方、レジスタFSET(i)が1より大きければ処理回数nの設定を行う必要はないので、そのまま図13の計算フローの処理へ戻る。
【0085】
ステップFC2では、レジスタIVEL(i)に速度データを示すレジスタVel1(i)の値を格納する。そして、レジスタIVEL(i)の値を基にしてテーブルからテーブル値TBL(IVEL(i))を引き出して、レジスタnに格納し、処理回数を設定する。その後、図13の計算フローの処理へ戻る。
【0086】
以上のように、速度データVel1(i)に応じて処理回数nを決める。一般的に押鍵速度が速ければ、押鍵を始めてから発音されるまでの時間が短くなる。逆に、押鍵速度が遅くなるほど、押鍵を始めてから発音されるまでの時間が長くなる。したがって、押鍵速度が速い場合においては、処理回数nを少なくしなければ発音のタイミングに間に合わなくなってしまう。逆に、押鍵速度が遅い場合においては、処理回数nを多くしても発音のタイミングに間に合わせることができる。
【0087】
なお、レジスタIVEL(i)には初期の速度Vel1(i)のみを用いたが、それに代えて、例えば初期の3つの速度Vel1(i)〜Vel3(i)の平均値を格納するなど、複数の速度データの値を用いてもよい。また、レジスタIVEL(i)の値を決めるのに上述のミクロ平均速度VelAve(i)を用いてもよい。
【0088】
図15は、奏法と速度データの算出例(1)を示すサブルーチン3のフローチャートである。速度データVEL’(i)と奏法TSUM(i)の算出手順を示す以下の処理を図12のステップFK1の後に行い、ステップFK5〜FK18の処理は行わないこととする。また、図14の処理回数nの設定の処理は行わない。
【0089】
ステップFD1において、ストローク位置AMP2(i)が所定値Cより小さくて、かつストローク位置AMP(i)が所定値C以上の条件を満たせば、鍵が一定のストローク位置以上押し込まれたことを示すので、ステップFD2へ進み、変換テーブルの入力値TSUM(i)とVEL’(i)を求める。一方、条件を満たさなければ、そのまま図12の計算フローの処理へ戻る。
【0090】
ステップFD2では、TSUM(i)に押鍵操作を開始してからの時間TMSUM(i)を格納する。そして、最新のストローク位置AMP(i)の速度データVEL’(i)を次式により求める。その後、図12の計算フローの処理へ戻る。
【0091】
【数11】
VEL’={AMP(i)−オフセット値}/TMSUM(i)
TSUM(i)は、押鍵を開始してから所定のストローク位置に達するまでの時間を表し、この時間に応じて奏法を判断する。図2の楽音制御量変換テーブルにおいて、横軸に速度データVEL’(i)とし、縦軸を奏法TSUM(i)として表引きを行うことにより、楽音制御量が決定される。
【0092】
図16は、奏法と速度データの算出例(2)を示す奏法抽出フローのフローチャートである。図15のサブルーチン3とは別の方法で奏法TSUM(i)と速度データVEL’(i)を求める手順を示す。図12の計算フローの処理の代わりに以下の奏法抽出フローの処理を行う。
【0093】
ステップFK1では、計算フローと同様に、8つの速度のレジスタVel1(i)〜Vel8(i)とストローク位置のレジスタAMP1(i)〜AMP8(i)のそれぞれについてシフトレジスタ処理を行い、数式2の速度データVel1(i)とストローク位置AMP1(i)を求める。
【0094】
ステップFK2では、AMP8(i)が所定値よりも大きいか否かを調べて、ノイズレベルを越えているかを判断する。所定値よりも大きければステップFK3へ進み、所定値よりも大きくなければ図11のメインルーチンの処理へ戻る。
【0095】
ステップFK3では、計算フローの処理のときと同様に平均速度を表すn個のレジスタVelAve1(i)〜VelAven(i)についてシフトレジスタ処理を行い、数式4のミクロ平均速度VelAve(i)を求める。そして、ステップFK4’では、8つのレジスタAMP1(i)〜AMP8(i)をリセットする。
【0096】
ステップFK20では、今回得られたミクロ平均速度VelAve(i)と前回得られたミクロ平均速度VelAve1(i)の差分の絶対値が所定値よりも大きいか否かを調べる。大きければ所定の変位が検出されたことを示すのでステップFK21へ進む。一方、大きくなければ図11のメインルーチンの処理へ戻る。
【0097】
ステップFK21では、TSUM(i)に押鍵操作を開始してからの時間TMSUM(i)を格納する。そして、最新のストローク位置AMP(i)の速度データVEL’(i)を次式により求める。
【0098】
【数12】
VEL’={AMP(i)−オフセット値}/TMSUM(i)
ステップFK18’では、各種レジスタのリセットを行い、その後図11のメインルーチンの処理へ戻る。
【0099】
なお、ステップFK20では、2つのミクロ平均速度VelAve1(i)、VelAve(i)を用いて判断を行ったが、3つ以上のミクロ平均速度を用いて判断すれば、より細かな奏法の態様を判断することができる。
【0100】
図17は、図15のサブルーチン3で用いたしきい値Cの設定処理を行うサブルーチン4のフローチャートである。このサブルーチン4の処理を行う際には、図14のサブルーチン2と図15のサブルーチン3の処理を併用する。そして、図14のサブルーチン2のステップFC2の後に以下の処理を行う。
【0101】
サブルーチン2のステップFC2において求められたIVEL(i)を用いてテーブルからテーブル値TBL1(IVEL(i))を引き出し、しきい値を示すCの設定を行う。その後、図14のサブルーチン2の処理へ戻り、図15のサブルーチン3において、しきい値Cとの比較を行う。
【0102】
図18は、図2の変換テーブルに用いる他の速度データVEL”(i)の算出例を示すサブルーチン5のフローチャートである。図12の計算フローの処理のステップFK1の後に以下の処理を行う。この際に図14のサブルーチン2の処理は行っても行わなくてもよい。
【0103】
ステップFE1において、レジスタFSET(i)が1以上でかつTMSUM(i)が所定値よりも大きいことの条件を満たせば、押鍵を開始してから所定時間が経過したことを示すのでステップFE2へ進み、条件を満たさなければそのまま図12の計算フローの処理へ戻る。
【0104】
ステップFE2では、所定時間経過後の速度データVEL”(i)を次式により求める。その後、図12の計算フローの処理へ戻る。
【0105】
【数13】
VEL”={AMP(i)−オフセット値}/TMSUM(i)
速度データVEL”(i)は、押鍵されてから所定時間経過後のストローク位置AMP(i)を用いることにより、押鍵操作における初期の速度を求めたものである。速度データVEL”(i)を図2の変換テーブルの横軸として、初期速度VEL”(i)に応じて楽音の制御を行う。
【0106】
なお、以上の奏法または速度データは、押鍵操作から一定時間を経過するまで、または一定のストローク位置を越えるまでのデータのみを用いるだけでもよい。図6、図7、図8、図9に示すように奏法による相違の特徴は押鍵後の最初の部分に現れるので、その特徴部分を抽出するだけでもよい。
【0107】
また、速度データVELは、鍵の第1接点がオンになってから第2接点がオンになるまでの速度であるのに対して、速度データVEL’やVEL”は押鍵操作のうちの初期速度を表す。
【0108】
そこで、楽音制御量の変換テーブルは、速度データVELと初期速度VEL’と奏法DMAXSUM等の3次元以上の値を入力として制御量を求めてもよい。図19は、図11のメインルーチンのステップFM6におけるキーオン信号やキーオフ信号を楽音発生回路(音源)に送出する処理等を示すフローチャートである。
【0109】
ステップFB1では、カウンタiを0から88まで変化させて全ての鍵についての第1接点と第2接点の変化をウォッチする。ステップFB2では、今回ウォッチ中の接点データにおいて第1接点がオン中か否かを調べる。オン中であればステップFB3へ進み、オン中でなければステップFB9へ進む。
【0110】
ステップFB3では、今回ウォッチ中の接点データにおいて第1接点にオンイベントが発生していれば、第1接点がオフからオンに変化したことを示すので、ステップFB4へ進み、フラグPREP(i)を1にセットし、図10のタイマインタラプト処理でカウントされる現時間t(i)をレジスタT(i)に格納する。その他、発音準備に必要な処理を行い、ステップFB5へ進む。一方、ステップFB3において、第1接点にオンイベントが発生していなければ、バイパスしてステップFB5へ進む。
【0111】
ステップFB5では、今回ウォッチ中の接点データにおいて、第2接点がオン中か否かを調べる。第2接点がオン中でなければ、以下の処理をバイパスしてステップFB13へ進み、第2接点がオン中であればステップFB6へ進む。
【0112】
ステップFB6では、フラグPREP(i)が1であるか否かを調べる。フラグPREP(i)が1でなければ、既にキーオンデータまたはキーオフデータを楽音発生回路に送出したことを示すので、以下の処理をバイパスしてステップFB13へ進む。一方、フラグPREP(i)が1であればステップFB7へ進む。
【0113】
ステップFB7では、キーオンデータ、キーデータ(キーコード)、速度データVEL(i)を楽音発生回路(音源)のiチャンネルへ送出する。速度データVELは、鍵の第1接点がオンになってから第2接点がオンになるまでの速度を示す。
【0114】
速度データVEL(i)は次式により求められる。ここで、時間T(i)は、第1接点がオンになった時間を示し、時間t(i)は第2接点がオンになった現時間を示す。
【0115】
【数14】
VEL(i)=1/{t(i)−T(i)}
ステップFB8では、前述で求められた奏法データDMAXやDMAXSUM等から図2に示すような楽音制御量変換テーブルを参照して、音量や音色等を制御する楽音パラメータを決定する。そして、その楽音パラメータを楽音発生回路のiチャンネルへ送出する。その後、ステップFB12においてフラグPREP(i)を0にリセットして、ステップFB13へ進む。
【0116】
ステップFB13では、他のキーデータがあるか否かを調べる。他のキーデータがあれば、ステップFB1へ戻り同様の処理を繰り返す。一方、他のキーデータがなければ図11のメインルーチンへ戻る。
【0117】
ステップFB9は、今回ウォッチ中の接点データにおいて第1接点がオン中でないときの処理であり、さらに第1接点にオフイベントが発生しているか否かを調べる。第1接点にオフイベントが発生していなければ、以下の処理をバイパスしてステップFB13へ進む。一方、第1接点にオフイベントが発生していれば、ステップFB10へ進む。
【0118】
ステップFB10では、キーオフ信号を楽音発生回路(音源)のiチャンネルに送出する。その後、ステップFB11において、奏法データDMAXやDMAXSUM等から図2に示すような楽音制御量変換テーブルを参照して、楽音パラメータを決定する。そして、その楽音パラメータを楽音発生回路のiチャンネルへ送出する。その後、ステップFB12においてフラグPREP(i)を0にリセットして、ステップFB13へ進む。ここで、フラグPREP(i)を0にリセットしているのは、第1接点がオンした後に第2接点がオンしないまま第1接点がオフする場合もあり得るからである。
【0119】
ステップFB13では、他のキーデータがあるか否かを調べる。他のキーデータがあれば、ステップFB1へ戻り同様の処理を繰り返す。一方、他のキーデータがなければ図11のメインルーチンへ戻る。
【0120】
時間に対して鍵のストロークがリニアに変化する場合を基準として鍵の運動の非線形度を判断する場合を説明したが、他の基準を用いて非線形度を判断することもできる。例えば、下に凸か上に凸か、時間経過に対するストローク変化の曲率等を利用してもよい。複数の基準を併せて用いてもよい。また、奏法の変化が、従来以上に、ストローク変化に明確に現れる鍵盤を用いてもよい。
【0121】
図20は、押鍵操作により鍵のストローク位置を検出するキーストローク検出センサを示す。鍵盤は、白鍵21Wと黒鍵21Bを有する。白鍵21Wと黒鍵21Bは、それぞれ軸20を支点として支持部材29に対して回転運動をする。白鍵用ストロークセンサ22Wと黒鍵用ストロークセンサ22Bは、支持部材29に固定されている。
【0122】
白鍵21Wを押鍵すると、白鍵用ストロークセンサ22Wがそのストローク位置を検出する。白鍵21Wの押鍵に従い、シャッター板23Wが白鍵用ストロークセンサ22W内を移動する。白鍵用ストロークセンサ22Wは、シャッター板23Wの移動位置に応じた出力を行う。
【0123】
白鍵用ストロークセンサ22Wはセンサ内の光源からの光がシャッター板23Wを通過する光量に応じて白鍵21Wのストローク位置を検出する。シャッター板23Wはグレースケールとなっており、シャッター板23Wの位置により通過する光量は変化する。
【0124】
同様に黒鍵21Bの押鍵に従い、シャッター板23Bが黒鍵用ストロークセンサ22B内を移動する。黒鍵用ストロークセンサ22Bは、シャッター板23Bの移動位置に応じた出力を行い、黒鍵21Bのストローク位置を検出する。
【0125】
質量体24は、支持部材29に対して移動自在に支持され、自然楽器のピアノのハンマの機構を擬似したものである。白鍵21Wが押鍵されると、白鍵21Wは被駆動部38Wに当たりウレタンゴムへの衝撃を介して、白鍵の質量体に力を伝える。黒鍵21Bが押鍵されると、黒鍵21Bは被駆動部38Bに当たりウレタンゴムへの衝撃を介して、黒鍵の質量体に力を伝える。質量体24に力が加わると、質量体は移動し支持部材29に対して相対位置が変化する。
【0126】
黒鍵の被駆動部38Bは、白鍵の被駆動部38Wより上に位置している。これは、白鍵と黒鍵の鍵操作のタッチ感触を同一にするためである。質量体24が自然楽器のハンマの機構を擬似しているので、白鍵21Wまたは黒鍵21Bが押鍵されると、最初は押鍵の手応えが軽く暫くして手応えが重くなる。演奏者は、自然楽器のピアノと同じ様な押鍵操作時のタッチ感覚を得ることができる。また、弱い押鍵操作では、タッチ感触の変化が少なく線形的である。
【0127】
第1接点37Aと第2接点37Bは、支持部材29に固定されている。押鍵操作に応じてまず第1接点37Aがオンとなり、さらに鍵を深く押し込むと第2接点37Bがオンとなる。
【0128】
図21(A)は、キーストローク検出センサの構成を示す。キーストローク検出センサ26は、LED27とフォトトランジスタ28を有する。図21(B)に示すようにLED27が発する光をフォトトランジスタ28が感知し、その光量に応じて電流がフォトトランジスタ28のコレクタ−エミッタ間を流れる。
【0129】
LED27とフォトトランジスタ28の間は、シャッター板により遮られる。シャッター板はグレースケールとなっているので、鍵のストローク位置によりLED27からシャッター板を介してフォトトランジスタ28が受ける光量は変化する。
【0130】
図22は、他のキーストローク検出センサの構成例を示す。図20では、白鍵21Wまたは黒鍵21Bと支持部材29との相対位置を検出するために、白鍵21Wまたは黒鍵21Bにそれぞれストロークセンサ用のシャッター板23W,23Bを設けた。
【0131】
図22は、図20に示す質量体24と支持部材29の相対位置を検出するストロークセンサを示す。質量体24は、鍵に連動して支持部材に対して移動自在となっている。シャッター板42は質量体24に固定され、共通光源41およびフォトダイオード43は支持部材に固定されている。
【0132】
キーストローク検出センサは、共通光源41、および各鍵のストロークに応じて移動するシャッター板42と、各鍵に対応するフォトダイオード43を有する。共通光源41から発せられる光は、シャッター板42を通過してフォトダイオード43に照射される。シャッター板42はグレースケールとなっており、鍵のストローク位置に応じてフォトダイオード43に照射される光量が変化する。フォトダイオード43には受ける光の量に応じて電流が流れるので、鍵のストローク位置を検出することができる。
【0133】
図23は、他のキーストローク検出センサの構成例を示す。図22と同様に、質量体と支持部材の相対位置を検出する。キーストローク検出センサは、シャッター板46とフォトインタラプター45を有する。シャッター板46は質量体24に固定され、フォトインタラプター45は支持部材に固定されている。シャッター板46は、鍵のストロークに応じてフォトインタラプター45内の光源と受光素子の間を移動する。シャッター板46はグレースケールとなっており、鍵のストローク位置に応じてフォトインタラプター46に流れる電流が変化する。この電流値より鍵のストローク位置を検出することができる。
【0134】
図24は、他のキーストローク検出センサの構成例を示す。白鍵54Wまたは黒鍵54Bを押鍵するとバネ53がたわみ、押鍵された鍵を元の位置に戻そうとする方向に力が働く。このバネのたわみに応じてシャッタ板52は支持部材29に固定されたフォトインタラプター51内の光源と受光素子の間を移動する。シャッター板52はグレースケールとなっており、鍵のストローク位置に応じてフォトインタラプター51に流れる電流が変化する。そして、この電流値より鍵のストローク位置を検出することができる。また、フォトリフレクタを用いて、バネ53の偏位を検出して、鍵のストローク位置を検出してもよい。
【0135】
質量体24は、支持部材29に対して移動自在に支持され、自然楽器のピアノのハンマの機構を擬似したものである。白鍵54Wが押鍵されると、白鍵54Wは被駆動部38Wに当たりウレタンゴムへの衝撃を介して、白鍵の質量体に力を伝える。黒鍵54Bが押鍵されると、黒鍵54Bは被駆動部38Bに当たりウレタンゴムへの衝撃を介して、黒鍵の質量体に力を伝える。質量体24に力が加わると、質量体は移動し支持部材29に対して相対位置が変化する。
【0136】
第1接点37Aと第2接点37Bは、支持部材29に固定されている。押鍵操作に応じてまず第1接点37Aがオンとなり、さらに鍵を深く押し込むと第2接点37Bがオンとなる。
【0137】
図25は、他のキーストローク検出センサの構成例を示す。鍵34を押鍵すると支持部材33に支持されてバネ25がたわみ、押鍵された鍵を元の位置に戻そうとする方向に力が働く。このバネのたわみに応じて、鍵のストローク位置を検出することができる。この際に、白鍵のストローク位置を検出するセンサ台32は黒鍵のストローク位置を検出するセンサ台31よりも高い位置にある。
【0138】
図26は、白鍵が押鍵された際のバネ圧力と黒鍵が押鍵された際のバネ圧力の違いを示す。図26(A)は、黒鍵が押鍵されたときのバネ35Bと黒鍵のストローク位置を検出するセンサのセンサ台36Bを示す。図26(B)は、白鍵が押鍵されたときのバネ35Wと白鍵のストローク位置を検出するセンサのセンサ台36Wを示す。ここで、黒鍵のセンサ台36Bと白鍵のセンサ台36Wが同じ高さにあるとする。すると、黒鍵の押鍵に比べて白鍵の押鍵の方が、バネのたわみが大きくバネの圧力が高くなる。したがって、図25に示すように黒鍵のセンサ台31よりも白鍵のセンサ台32の方が高い位置にする必要がある。
【0139】
図27は、他のキーストローク検出センサの構成例を示す。白鍵61のストローク位置は、白鍵用センサ63により検出され、黒鍵62のストローク位置は、黒鍵用センサ64により検出される。白鍵用センサ63は反射式センサであり、白鍵61の位置に応じて反射光等が変化するので、白鍵のストローク位置を検出することができる。また、黒鍵用センサ64も反射式センサであり、同様にして黒鍵62のストローク位置を検出することができる。
【0140】
白鍵61が押鍵されると、白鍵61は被駆動部38Wに当たりウレタンゴムへの衝撃を介して、白鍵の質量体に力を伝える。黒鍵62が押鍵されると、黒鍵62は被駆動部38Bに当たりウレタンゴムへの衝撃を介して、黒鍵の質量体に力を伝える。質量体24に力が加わると、質量体は移動し支持部材29に対して相対位置が変化する。
【0141】
第1接点37Aと第2接点37Bは、支持部材29に固定されている。押鍵操作に応じてまず第1接点37Aがオンとなり、さらに鍵を深く押し込むと第2接点37Bがオンとなる。
【0142】
【発明の効果】
鍵操作に応じて時間的に変化する鍵の相対的位置を検出することにより、奏法を検出することができる。これにより、演奏態様に応じた楽音が生成できるので、演奏表現力を高めることができる。
【図面の簡単な説明】
【図1】 電子鍵盤楽器のシステム構成例を示すブロック図である。
【図2】 テーブルROMに設定する楽音制御量の例を示す図表である。
【図3】 奏法の相違により音量制御されるエンベロープ波形を示す波形図である。
【図4】 奏法の相違による立上がりの形状を制御させるエンベロープ波形を示す波形図である。
【図5】 音色制御に用いるフィルタの例を示す。図5(A)はローパスフィルタ(LPF)の周波数特性、図5(B)はバンドパスフィルタ(BPF)の周波数特性、図5(C)はハイパスフィルタ(HPF)の周波数特性を示すグラフである。
【図6】 速度データVEL=38(16進数)のテヌート奏法におけるストローク位置の変化を示すグラフである。
【図7】 速度データVEL=38(16進数)のスタッカート奏法におけるストローク位置の変化を示すグラフである。
【図8】 速度データVEL=50(16進数)のテヌート奏法におけるストローク位置の変化を示すグラフである。
【図9】 速度データVEL=50(16進数)のスタッカート奏法におけるストローク位置の変化を示すグラフである。
【図10】 タイマインタラプトの処理を示すフローチャートである。
【図11】 CPUが処理するメインルーチンを示すフローチャートである。
【図12】 図11のメインルーチンのステップFM4中の計算フローの処理を示すフローチャートである。
【図13】 図12の計算フローの処理に続くフローチャートである。
【図14】 図13の計算フローの処理において用いた処理回数nの設定処理を示すフローチャートである。
【図15】 奏法と速度データの算出例(1)を示すフローチャートである。
【図16】 奏法と速度データの算出例(2)を示す奏法抽出フローのフローチャートである。
【図17】 図15のフローチャートで用いたしきい値Cの設定処理を行うフローチャートである。
【図18】 速度データVEL"(i)の算出例を示すフローチャートである。
【図19】 図11のメインルーチンのステップFM6におけるキーオン信号やキーオフ信号を楽音発生回路(音源)に送出する処理等を示すフローチャートである。
【図20】 押鍵操作により鍵のストローク位置を検出するキーストローク検出センサを示す概略図である。
【図21】 図21(A)、(B)は、キーストローク検出センサの構成を示す概念図である。
【図22】 他のキーストローク検出センサの構成例を示す概略図である。
【図23】 他のキーストローク検出センサの構成例を示す概略図である。
【図24】 他のキーストローク検出センサの構成例を示す概略図である。
【図25】 他のキーストローク検出センサの構成例を示す概略図である。
【図26】 図26(A)は黒鍵が押鍵されたときのバネを示す概念図であり、図26(B)は白鍵が押鍵されたときのバネを示す概念図である。
【図27】 他のキーストローク検出センサの構成例を示す概略図である。
【符号の説明】
1 キースイッチ、 2 マルチプレクサ、 3 バス、 4 マイクロコンピュータ、 5 CPU、 6 ROM、 7 RAM、 8音源、 9 テーブルROM、 10D/A変換器、 11 増幅器、12 スピーカ、 S1〜S88 ストロークセンサ、 AD1〜AD88 A/D変換器
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an electronic musical instrument, and more particularly to an electronic musical instrument that can control musical sounds according to key operations on a keyboard of the electronic musical instrument.
[0002]
[Prior art]
The natural musical instrument piano changes the musical tone generated according to the key press speed. In an electronic musical instrument, each key is provided with a transfer switch or a bowl-shaped two-make switch in order to detect a key pressing speed.
[0003]
Since a conventional keyboard having a transfer switch and a two-make switch detects only the average speed while passing two points, the key pressing speed is detected as the same even if the performance technique is changed. Therefore, in the prior art, the difference in performance technique cannot be reflected in the musical tone. In addition, a method of detecting a performance technique using the information of initial touch and aftertouch is also conceivable. However, waiting for the aftertouch causes a delay in the sound generation, which is not preferable for a keyboard instrument. .
[0004]
In order to realize finer control, a full-stroke sensing keyboard for detecting a key stroke position is proposed in Japanese Patent Laid-Open Nos. Hei 2-214897 and Hei 3-67299. These detect the key position of the whole process in the key pressing operation.
[0005]
Japanese Patent Laid-Open No. 2-146596 has proposed an electronic keyboard instrument that controls musical sounds using the previous key press data and the previous aftertouch information.
[0006]
[Problems to be solved by the invention]
In conventional electronic keyboard instruments, it is difficult to change the musical tone by a performance technique such as staccato or tenuto. Moreover, it is difficult to detect a key pressing operation and generate a musical sound signal reflecting the key pressing operation in real time.
[0007]
An object of the present invention is to provide an electronic keyboard instrument that can control musical sounds in accordance with the playing method of the keyboard instrument.
[0008]
[Means for Solving the Problems]
According to one aspect of the present invention, an electronic musical instrument is provided corresponding to each key of a support member, a plurality of keys provided to be swingable with respect to the support member, and the plurality of keys, A mass body whose relative position with respect to the support member is displaced according to the movement of each key; and a key operation detection unit that is provided corresponding to each key of the plurality of keys and detects a key operation of each key; A musical tone signal generating means for generating a musical tone signal based on the detected key operation, and position information representing a relative position of the mass body driven according to the movement of the operated key with respect to the support member are detected many times, Based on the position information detected a number of times, a rendition style detecting means for detecting a rendition style related to the key pressing operation of the operated key, and a musical tone control according to the rendition style detected by the rendition style detection means for the musical tone generation means Musical tone control means.
According to another aspect of the present invention, an electronic musical instrument is provided so as to be swingable with respect to a support member having a key joint portion and a mass body support portion, and the key joint portion as a rotation axis. A plurality of keys each having a mass body joint, and a mass body joint provided on the key corresponding to each key of the plurality of keys. A mass body whose relative position with respect to the support member is displaced with the mass body support portion as a fulcrum according to the movement of the key, and corresponding to each key of the plurality of keys, and detects a key operation of each key. Position information representing a relative position of the mass body, which is displaced according to the movement of the operated key, with respect to the support member, a key operation detecting unit, a tone signal generating unit that generates a tone signal based on the detected key operation Is detected many times and based on the position information detected many times. The has a rendition style detection means for detecting the rendition style according to the operated key keystroke, and a musical tone control means for performing tone control of the rendition style detection means corresponding to the rendition style that is detected for the musical tone generating means.
[0009]
[Action]
A rendition style can be detected by detecting the relative position of a key that changes over time according to the key operation and calculating the degree of nonlinearity. Thereby, the musical sound according to the difference of the detected performance style can be produced | generated.
[0010]
Further, since the mass pair is indirectly operated with respect to the performance of the performer via the keyboard, the position information of the mass body (nonlinearity of the position information) varies greatly depending on the playing style. Therefore, the position information of the mass body is detected, and the musical performance is controlled by discriminating the performance method based on the position information. Therefore, it is possible to perform fine musical tone control according to the difference in the way of being angry.
[0011]
Here, the mechanism of where the nonlinearity is born will be described below. As will be apparent from the examples and experimental data, even when the key pressing speed (the average speed passing through two predetermined points in the middle of the keystroke) is the same, the force transmitted from the finger to the key at the moment when the key is started to be depressed. Larger (strongly pressed key) results in a non-linear output. (1) The key is a rigid body, but the key is slightly depressed when pressed (2) Rotation between the key and the support member The support portion is uneven when viewed microscopically, and a lubricant (grease) is applied so as to fill the unevenness. (3) In the embodiment, the mass body moves in conjunction with the key, but the mass drive unit of the key does not apply force to the driven part of the mass. (4) The gray scale used for the keystroke detection sensor is in the form of a film having a thickness of about 0.3 mm when the transmission is performed, especially when the key is pressed hard. It is considered that a non-linear output can be obtained by complicatedly intertwining one or a plurality of elements among the above four elements due to the addition of air resistance or the like to the gray scale with the movement of.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 shows a system configuration example of an electronic keyboard instrument. The keyboard has 88 keys, and each key is provided with stroke sensors S1 to S88. When the performer performs operations such as pressing and releasing keys on the respective keys, the stroke sensors S1 to S88 detect the stroke positions of the keys. The detected stroke position is converted into digital signals SD1 to SD88 by the A / D converters AD1 to AD88 and supplied to the multiplexer 2. The key switch 1 also supplies the multiplexer 2 with information related to key operations such as pitch information, key pressing speed, and key pressing pressure. The multiplexer 2 supplies the input information to the bus 3 as necessary.
[0013]
On the panel of the electronic musical instrument, there is also provided a panel switch for giving instructions for volume adjustment, tone color selection, various effects, modulation, and the like. When the performer operates the panel switch, the information is also supplied to the multiplexer 2.
[0014]
The microcomputer 4 has a CPU 5, a ROM 6 and a RAM 7. The ROM 6 stores a calculation program. The CPU 5 performs various arithmetic processes using a working memory such as a register or a buffer memory provided in the RAM 7 in accordance with the arithmetic program. The microcomputer 4 receives key operation information from the multiplexer 2 via the bus 3 and outputs a musical tone parameter to the sound source 8.
[0015]
When a key on the keyboard is pressed, the first contact is first turned on in the key switch 1 and then the second contact is turned on. Thereafter, when the key is released, the second contact and the first contact are turned off in this order. The microcomputer 4 detects a reciprocal of the time from the first contact ON to the second contact ON as a velocity signal, and determines basic musical tone signal parameters.
[0016]
The sound source 8 forms and outputs a tone signal necessary for sound generation based on the tone parameter supplied from the microcomputer 4. The output musical sound signal is amplified by the amplifier 11 and produced from the speaker 12.
[0017]
The microcomputer 4 detects the movement of the key based on the signal from the stroke sensor, and determines a performance method such as staccato or tenuto. Here, tenuto is a performance technique in which the length represented by a note is kept sufficiently, and staccato is a performance technique in which sounds are clearly separated and played. The tenuto playing method is a method in which the key is pushed down with the finger in contact with the key, and the force transmitted from the finger at the moment when the key is pushed down is relatively small. On the other hand, in the staccato playing method, the key is pushed down from the state where the finger is released from the key, and the force transmitted from the finger to the key at a moment when the key is started to be pushed down is relatively large.
[0018]
In the table ROM 9, control amounts of musical sounds such as volume, tone color, and effects are preset according to the type of performance. The microcomputer 4 detects the playing style according to the movement of the key, reads the control amount of the musical sound from the table ROM 9 and outputs it to the sound source 8 and the amplifier 11. In the sound source 8, the tone signal formation based on the signal from the key switch 1 is modified by a signal reflecting the performance style supplied from the table ROM 9.
[0019]
The table ROM 9 controls the tone color and the effect by supplying the tone control amount to the sound source 8. The table ROM 9 supplies a volume control amount to the D / A converter 10 and controls the amplification factor of the amplifier 11 to change the volume of sound produced from the speaker 12.
[0020]
FIG. 2 shows an example of the tone control amount set in the table ROM. A table for controlling the volume is shown as an example of musical tone control. This volume control parameter is supplied to the amplifier 11 via the D / A converter 10. The horizontal axis of the table shows the speed data VEL. The vertical axis of the table indicates the playing style, and a larger value represents a staccato playing style, and a smaller value represents a tenuto playing style.
[0021]
The speed data VEL is detected as a reciprocal of a time difference from when the first contact is turned on to when the second contact is turned on by pressing the key. The speed data in the table corresponds to the strength of the sound and has a range from meso-piano (mp) where the speed data is small to fortissimo (fff) where the speed data is large.
[0022]
Even if the speed data obtained by pressing the key is the same, if the performance style is different, the volume of sound produced is finely controlled. For example, a control amount is set in the table such that the volume increases when the playing style is staccato and the volume decreases when the playing style is tenuto. This volume control parameter is read from the table ROM 9 and given to the amplifier 11 for volume control.
[0023]
The table ROM 9 stores various tables such as tone color control in addition to the volume control parameter table. These tables are, for example, an envelope waveform coefficient table and a tone color parameter coefficient table for the velocity data VEL on the horizontal axis and the performance method on the vertical axis. These coefficients are for controlling the parameters of the tone generator circuit 8.
[0024]
FIG. 3 shows an envelope waveform whose volume is controlled by the difference in performance style. The envelope waveform of the musical sound controlled by the amplifier 11 is changed by the performance method. If the performance method is staccato, the entire envelope waveform is enlarged, and if it is tenuto, the entire envelope waveform is reduced. As a result, a large volume is output in the staccato playing method, and a small volume is output in the tenuto playing method.
[0025]
FIG. 4 shows an envelope waveform for controlling the rising shape due to the difference in performance style. The rising shape of the envelope waveform generated in the tone generator circuit 8 is controlled by the performance method. If the rendition style is staccato, control is performed such that the rising shape of the envelope waveform is steep, and if it is tenuto, the rising shape of the envelope waveform is made gentle. As a result, a musical sound with a sharp rise is output in the staccato playing method, and a musical sound with a slow rising is output in the tenuto playing method.
[0026]
FIG. 5 shows a characteristic example of a filter whose tone color is controlled by a difference in performance style. By changing the coefficient of the cutoff frequency of the digital filter provided in the tone generator circuit 8, the tone color to be generated can be changed.
[0027]
FIG. 5A shows an example of characteristics of a low-pass filter (LPF). The horizontal axis indicates the frequency, and the vertical axis indicates the rate at which the signal passes (transmittance). With the cut-off frequency as a boundary, only the signal in the low frequency region is allowed to pass, and the signal in the high frequency region is cut off.
[0028]
FIG. 5B shows an example of the characteristics of the bandpass filter (BPF). The horizontal axis indicates the frequency, and the vertical axis indicates the rate at which the signal passes (transmittance). It has two cut-off frequencies and passes a signal in a frequency band between the two cut-off frequencies.
[0029]
FIG. 5C shows an example of the characteristics of a high pass filter (HPF). The horizontal axis indicates the frequency, and the vertical axis indicates the rate at which the signal passes (transmittance). With the cut-off frequency as a boundary, only the signal in the high frequency region is allowed to pass, and the signal in the low frequency region is not allowed to pass.
[0030]
Each of the three types of filters shown in FIGS. 5A, 5B, and 5C has a round tone when the cut-off frequency is set low, and a bright tone when the cut-off frequency is set high. Therefore, control is performed such that a round tone is used in the tenuto playing method and a bright tone is used in the staccato playing method.
[0031]
FIG. 6 shows the change of the stroke position by the tenuto playing method with small velocity data VEL. The tenuto performance method with velocity data VEL = 38 (hexadecimal number) is a performance method by weak key touch because the velocity data is small. The graph in the figure shows the key stroke position over time. As time elapses, the stroke position is convex downward and shows a smooth change. According to Newton's law, when a constant force is applied to a mass point, the velocity increases linearly with time and the position changes in a quadratic function. There is resistance in the movement of the key, but the downward convex displacement makes it possible to guess that a relatively stable force continues to act on the key.
[0032]
FIG. 7 shows a change in stroke position by a staccato playing method with a small velocity data VEL. Similarly to FIG. 6A, the stroke position of the key with respect to the passage of time by the staccato playing method of the speed data VEL = 38 (hexadecimal number) is shown. The stroke position initially projects downward and smoothly changes with time, but the stroke position changes linearly after a predetermined time. Such a change infers that the force acting on the key decreases for some reason.
[0033]
Each of the performance methods shown in FIGS. 6 and 7 is a graph of performance methods by weak key touch. Comparing tenuto and staccato playing techniques, although the key touch is too weak, a slight difference is seen, but not so much. However, as shown below, if each performance method is performed by a key touch having a certain strength, a remarkable difference appears.
[0034]
FIG. 8 shows a change in stroke position due to a tenuto playing method with a large velocity data VEL. The tenuto performance method with velocity data VEL = 50 (hexadecimal number) is a performance method by key touch stronger than the tenuto performance method of FIG. 6 because the velocity data is large. The graph in the figure shows the key stroke position over time. The change in the stroke position is also convex downward with respect to the passage of time and shows a smooth change, but the stroke position changes faster than in the case of the weak key touch in FIG. The acting force will increase and the rate of increase in speed will increase.
[0035]
FIG. 9 shows the change of the stroke position by the staccato playing method with the large velocity data VEL. Similarly to FIG. 8, the stroke position of the key with respect to the passage of time by the staccato playing method of the speed data VEL = 50 (hexadecimal number) is shown. In the staccato playing method, the inclination of the stroke position changes greatly in the middle of the key depression, indicating a complicated change. In the illustrated curve, a convex change is shown in the upward direction in the region of 0 to 5 ms, and thereafter the convex change is shown in the downward direction. It is considered that a stable force does not act on the key in the region showing the upward convex change. Some reaction force may be acting with the start of exercise.
[0036]
The reason why the stroke position of the staccato performance shows a non-linear and complicated change compared to the tenuto performance is considered to be influenced by the following. First, when a key is pressed, the fingertip of the performer and the key come into contact with each other, and a component acting by a mechanism by the dent and recovery of the contact portion of the fingertip can be considered. In addition, a slight key deflection that occurs when the key is pressed, felt at the fulcrum part of the key, an energy storage part such as rubber, a buffer part at the driving point of the key and the hammer, and the like can be considered.
[0037]
In the change of the stroke position shown in the graph, the staccato playing method has a characteristic that the curve bending degree is large or the curve bending change is large compared to the tenuto playing method. The procedure for detecting the difference between the staccato playing method and the tenuto playing method by extracting this feature will be described with reference to the following flowchart.
[0038]
FIG. 10 is a flowchart showing a timer interrupt process. The CPU that performs a series of processing performs the following timer interrupt processing in response to an interrupt signal TINT generated at a constant time interval of about 1 to 10 μs.
[0039]
First, in step FT1, the time counter t is incremented. The time counter t is a time counter register that is incremented each time the interrupt signal TINT is generated.
[0040]
In step FT2, it is checked whether or not the time counter t has reached a predetermined value tmax. The predetermined value tmax indicates the maximum value counted by the time counter t and is not counted beyond this value. For example, tmax is set to about 1 million.
[0041]
If the time counter t has reached the predetermined value tmax, the process proceeds to step FT3, the time counter t is reset to 0, and counting is restarted from 0 next time. Thereafter, the processing before interruption is resumed. On the other hand, if the time counter t has not reached the predetermined value tmax, step FT3 is bypassed and the process before the interruption is resumed.
[0042]
FIG. 11 is a flowchart showing a main routine processed by the CPU. For example, the CPU takes about 0.1 μs to execute one step of an instruction. First, in step FM1, the registers are initialized. 0 is set in the register K in which the counter value is stored.
[0043]
In step FM2, it is checked whether or not the register K is a predetermined value D. The predetermined value D is, for example, about 3. If the register K is not the predetermined value D, the following processing is bypassed, the process proceeds to step FM5, 1 is stored in the register i, and the process proceeds to step FM6. On the other hand, if the register K is the predetermined value D, the process proceeds to step FM3. That is, step FM3 is executed once for every count D.
[0044]
In step FM3, 1 is stored in the register i. The register i stores the number of the key to be processed among the 88 keys on the keyboard. Thereafter, the process proceeds to Step FM4.
[0045]
In step FM4, the key stroke position on the keyboard is detected. That is, in step FM2, the register K is compared, and the stroke position is detected at a frequency corresponding to the predetermined value D. The detection processing interval is preferably about 1 ms.
[0046]
First, the stroke sensor Si corresponding to the i-th key is detected, and the stroke position SDi converted into a digital signal is stored in the register AMP (i). Then, the value of the time counter t is stored in the register T (i), and the value of the register TMSUM (i) is increased by the register TM (i). The register TM (i) is set to 0 in the initial setting.
[0047]
Thereafter, a value obtained by subtracting the register T ′ (i) from the register T (i) is stored in the register TM (i). The register T ′ (i) indicates the time when the previous stroke position is detected. In other words, the register TM (i) stores the interval time for detecting the stroke position.
[0048]
Next, rendition style data DMAX (i) representing the type of rendition style is obtained by performing processing of a calculation flow described later. Then, the stroke position register AMP (i) is cleared to 0, and the value of the register T (i) indicating the current time is stored in the register T ′ (i). Then, the process proceeds to Step FM6.
[0049]
In step FM6, a process for sending a key-on signal or a key-off signal to the tone generation circuit (sound source) and a process for setting a tone parameter according to the calculated performance data DMAX (i) and sending it to the tone generation circuit (sound source) I do. . Details will be described later. Thereafter, the register i is incremented, and the process proceeds to Step FM7.
[0050]
In step FM7, it is checked whether or not the value of the register i is larger than 88. If the register i is not larger than 88, the process for all the 88 keys on the keyboard has not been completed, and the process proceeds to step FM8 to check whether or not the register K is the predetermined value D. If the register K is the predetermined value D, the process returns to step FM4 and the stroke position detection process is repeated for the next key. On the other hand, if the register K is not the predetermined value D in step FM8, the process returns to step FM6 and repeats processing such as sending a key-on signal or key-off signal for the next key.
[0051]
In step FM7, if the register i is larger than 88, this means that the processing for all the 88 keys on the keyboard has been completed, so the process proceeds to step FM9 and the register K is incremented.
[0052]
In step FM10, it is checked whether or not the register K is a predetermined value D + 1. If the register K is the predetermined value D + 1, the process proceeds to step FM11, the register K is cleared to 0, and the process proceeds to step FM12. On the other hand, if the register K is not the predetermined value D + 1, the process proceeds to step FM12. That is, the register K repeats the count every D.
[0053]
In step FM12, a parameter setting process is performed according to the operation of the key switch, and musical tone control such as tone color and effect is performed. Further, other processes necessary for performance such as the end process of the main routine are performed, and the process returns to step FM2 to repeat the process.
[0054]
FIG. 12 is a flowchart showing a calculation flow process in step FM4 of the main routine of FIG. In step FK1, registers AMP1 (i) to AMP8 (i) are registers for storing stroke positions, and indicate older stroke positions as the number increases from AMP1 (i) to AMP8 (i).
[0055]
Registers Vel1 (i) to Vel8 (i) are registers for storing the change speed of the stroke position. The larger the number from Vel1 (i) to Vel8 (i), the earlier the change speed of the stroke position is. Show.
[0056]
The eight registers Vel1 (i) to Vel8 (i) and the registers AMP1 (i) to AMP8 (i) each function as a shift register. In the initial setting, each register is cleared to zero. The value of the register Vel7 (i) is saved in the register Vel8 (i), and the value of the register AMP7 (i) is saved in the register AMP8 (i). By performing such shift register processing for seven sets, the value stored in each register is shifted from Vel1 (i) to Vel8 (i) or from AMP1 (i) to AMP8 (i). . The following values are stored in each register.
[0057]
[Expression 1]
Vel8 (i) ← Vel7 (i)
AMP8 (i) <-AMP7 (i)
Vel7 (i) ← Vel6 (i)
AMP7 (i) <-AMP6 (i)
Vel6 (i) ← Vel5 (i)
AMP6 (i) <-AMP5 (i)
Vel5 (i) ← Vel4 (i)
AMP5 (i) <-AMP4 (i)
Vel4 (i) ← Vel3 (i)
AMP4 (i) <-AMP3 (i)
Vel3 (i) ← Vel2 (i)
AMP3 (i) <-AMP2 (i)
Vel2 (i) ← Vel1 (i)
AMP2 (i) <-AMP1 (i)
The register Vel1 (i) stores speed data of the following equation indicating the most recently obtained stroke position and the change in the previous stroke position.
[0058]
[Expression 2]
Vel1 (i) ← {AMP (i) −AMP1 (i)} / TM (i)
... (2)
Here, the register AMP (i) is the latest stroke position, and the register AMP1 (i) is the previous stroke position. The register TM (i) indicates the interval time for detecting the stroke position.
[0059]
Thereafter, the value of the register AMP (i) indicating the current stroke position is stored in the register AMP1 (i). In step FK2, it is checked whether or not the value of the register AMP8 (i) is larger than a predetermined value. The predetermined value indicates a noise level. If a value larger than the noise level is stored in the register AMP8 (i), it indicates that the register has been sequentially shifted from the register AMP1 (i).
[0060]
If the register AMP8 (i) is not larger than the predetermined value, it indicates that no more than seven stroke position data are still input to the registers AMP1 (i) to AMP8 (i), so the process proceeds to the processing terminal A. FIG. Return to the main routine processing. On the other hand, if the register AMP8 (i) is larger than the predetermined value, it indicates that eight pieces of data have been input to the registers AMP1 (i) to AMP8 (i), so the process proceeds to step FK3.
[0061]
In step FK3, registers VelAve1 (i) to VelAven (i) are registers for storing the average speed of registers Vel1 (i) to Vel8 (i) indicating the speed of the stroke.
[0062]
Registers VelAve1 (i) to VelAven (i) having a predetermined value n serve as shift registers, and each register is cleared to 0 in the initial setting. In order to perform shift register processing for n sets, the following processing is performed.
[0063]
[Equation 3]
VelAven (i) ← VelAven-1 (i)
VelAven-1 (i) <-VelAven-2 (i)
: VelAve1 (i) <-VelAve (i)
Then, the average speed of the eight speeds Vel1 (i) to Vel8 (i) is obtained by the following calculation and stored in the register VelAve (i).
[0064]
[Expression 4]
VelAve (i) ← {Vel1 (i) + Vel2 (i) + Vel3 (i) + Vel4 (i) + Vel5 (i) + Vel6 (i) + Vel7 (i) + Vel8 (i)} / 8 (4)
In step FK4, the eight registers AMP1 (i) to AMP8 (i) are reset to 0, and the register FSET (i) is incremented. The register FSET (i) is a register indicating that the stroke position is being detected, and the detection ends when the count of the register FSET (i) reaches a predetermined value n.
[0065]
In step FK5, it is checked whether or not the register FSET (i) is a predetermined value n. If the register FSET (i) is not the predetermined value n, no value of the average speed is input to all of the registers VelAve1 (i) to VelAven (i), so the process proceeds to the processing terminal A and proceeds to the processing of the main routine of FIG. Return. On the other hand, if the register FSET (i) is the predetermined value n, it indicates that the average speed value has been input to all of the registers VelAve1 (i) to VelAven (i), and therefore the process proceeds to the processing terminal B.
[0066]
FIG. 13 is a flowchart showing processing subsequent to processing terminal A and processing terminal B in the calculation flow processing. From the processing terminal A, the process returns to the main routine of FIG. From the processing terminal B, the process proceeds to Step FK7, and the macro average speed Vel (i) is obtained by the following equation.
[0067]
[Equation 5]
Vel (i) ← {VelAve1 (i) +... + VelAven (i)} / n The macro average speed Vel (i) in the above equation is the average of n micro average speeds VelAve1 (i) to VelAven (i). However, the average of the first micro average speed VelAve1 (i) and the last micro average speed VelAven (i) may be obtained by the following formula.
[0068]
[Formula 6]
Vel (i) ← {VelAve1 (i) + VelAven (i)} / 2 In step FK8, 1 is set in the counter m, and the process proceeds to step FK9. The counter m is an interpolation counter that changes from 1 to n.
[0069]
In step FK9, an interpolation average speed VelIP (i, m) is obtained by the following equation. The interpolation average speed VelIP (i, m) indicates an average speed at the interpolation position m between 1 and n. That is, the average speed obtained by linear interpolation is shown.
[0070]
[Expression 7]
VelIP (i, m) ← VelAve1 (i) + m {VelAven (i) −VelAve1 (i)} / n In step FK10, the differential speed DMAX (i, m) at the interpolation position m and the differential speed DMAX (at the interpolation position m + 1) i, m + 1) are obtained by the following equations. That is, the differential speed DMAX (i, m) becomes smaller as the micro average speed changes linearly.
[0071]
[Equation 8]
DMAX (i, m) ← VelIP (i, m) −VelAve (i, m) DMAX (i, m + 1) ← VelIP (i, m + 1) −VelAve (i, m + 1)
In step FK13, it is checked whether or not the differential speed DMAX (i, m + 1) is greater than the differential speed DMAX (i, m). If it is larger, the process proceeds to step FK15, and the differential speed DMAX (i, m + 1) is stored in the maximum difference value DMAX (i). Store. As a result, the maximum differential speed is stored in the differential maximum value DMAX (i).
[0072]
In step FK16, the counter m is incremented and the process proceeds to step FK17. In step 17, it is checked whether the counter m is n. If not n, the process proceeds to step FK9, and the process for the counter m is repeated again. If n, the process is terminated, and therefore the process proceeds to step FK18.
[0073]
In step FK18, various registers such as registers FSET (i), m, VelIP (i, m), VelIP (i, m + 1), DMAX (i, m), DMAX (i, m + 1) are reset. Thereafter, the process returns to the main routine of FIG.
[0074]
The value of the maximum difference value DMAX (i) obtained by the above processing of the calculation flow indicates the type of performance technique. As the difference maximum value DMAX (i) is larger, the curve in the graph showing the change in the stroke position shows a larger bend, and thus a staccato performance method is shown. On the contrary, the smaller the maximum difference value DMAX (i), the smaller the curve of the graph showing the change in the stroke position, indicating a tenuto performance.
[0075]
The musical tone is controlled by extracting the coefficient of the musical tone control amount from the musical tone control amount table using the maximum difference value DMAX (i) as the performance method on the vertical axis of the musical tone control amount conversion table shown in FIG.
[0076]
The rendition style is not limited to the case where the value of the maximum difference value DMAX (i) is used, and after step FK10, the differential integration value DMAXSUM (i) can be obtained by the following equation, and the rendition style can be determined by the differential integration value. is there.
[0077]
[Equation 9]
DMAXSUM (i) ← DMAXSUM (i) + DMAX (i, m)
The differential integral value DMAXSUM (i) is an integral value of the differential velocity at the interpolation position m. Therefore, similarly to the maximum difference value DMAX (i), the larger the difference integral value DMAXSUM (i), the staccato performance style, and the smaller the difference integral value DMAXSUM (i), the more the tenuto style performance style. The rendition style can also be determined from the average value of the differential speeds by dividing the differential integral value DMAXSUM (i) by n.
[0078]
In addition, the rendition style can also be determined using ACC (i) representing the temporal displacement of the maximum difference value DMAX (i). After step FK10 of the processing of the calculation flow in FIG. 13, ACC (i, m) is obtained by the following equation.
[0079]
[Expression 10]
ACC (i, m) ← | DMAX (i, m) −DMAX (i, m + 1) | By calculating the maximum value of the obtained ACC (i, m), the performance data ACC (i) is obtained. The rendition style can also be determined by calculating an integral value instead of the maximum value or by calculating an average value of the integral values. Since ACC (i) represents the temporal displacement of the differential velocity DMAX (i, m), the larger the ACC (i), the larger the curve of the graph indicating the change in stroke position, and the staccato performance method. Show. Conversely, a smaller ACC (i) indicates a tenuto playing style.
[0080]
The results of performing the above calculation flow processing will be described with respect to graphs showing changes in stroke position with respect to the passage of time in FIGS. In FIG. 6, the difference integrated value DMAXSUM (i) when n = 15 (decimal number) processing is performed is 1400h, and the average value of the difference integrated value DMAXSUM (i) is 155h. In FIG. 7, the difference integrated value DMAXSUM (i) when n = 12 (decimal number) processing is performed is 1218h, and the average value of the difference integrated value DMAXSUM (i) is 182h. Therefore, it can be confirmed that the average value of the difference integral value DMAXSUM (i) is larger in the staccato playing method than in the tenuto playing method at the velocity data VEL = 38h.
[0081]
In FIG. 8, the difference integral value DMAXSUM (i) when n = 7 (decimal number) processing is performed is 600h, and the average value of the difference integral value DMAXSUM (i) is dbh. In FIG. 9, the difference integral value DMAXSUM (i) when n = 5 (decimal number) processing is performed is 1280h, and the average value of the difference integral value DMAXSUM (i) is 3b3h. Therefore, in the speed data VEL = 50h, it can be confirmed that the average value of the differential speed is larger in the staccato playing method than in the tenuto playing method.
[0082]
As described above, even if the speed data VEL is the same, it is possible to determine the difference in rendition style by obtaining the average value of the difference integral value DMAXSUM (i). That is, the larger the average value of the differential integral value DMAXSUM (i), the staccato effect, and the smaller the value, the tenuto performance.
[0083]
FIG. 14 is a flowchart of subroutine 2 showing a process for setting the number of processes n used in the process of the calculation flow of FIG. In the processing of the calculation flow described above, the value of the processing number n is described as a predetermined value, but the processing number n can be set to an appropriate value by performing the following processing after step FK4 in FIG.
[0084]
First, in step FC1, it is checked whether or not the register FSET (i) is 1. If the register FSET (i) is 1, this is the first process, so the process proceeds to step FC2 where the number of processes n is set. On the other hand, if the register FSET (i) is larger than 1, it is not necessary to set the processing count n, so that the process returns to the calculation flow of FIG.
[0085]
In step FC2, the value of the register Vel1 (i) indicating the speed data is stored in the register IVEL (i). Then, based on the value of the register IVEL (i), the table value TBL (IVEL (i)) is extracted from the table, stored in the register n, and the number of processes is set. Thereafter, the processing returns to the processing of the calculation flow of FIG.
[0086]
As described above, the processing number n is determined according to the speed data Vel1 (i). Generally, if the key pressing speed is high, the time from when the key is pressed to when the key is played is shortened. Conversely, the slower the key pressing speed, the longer the time from when the key is pressed until it is sounded. Therefore, in the case where the key pressing speed is high, unless the number of times of processing n is reduced, the timing of sound generation cannot be met. On the other hand, when the key pressing speed is slow, even if the number of times of processing n is increased, it can be made in time for the sound generation.
[0087]
Note that only the initial speed Vel1 (i) is used for the register IVEL (i). Instead, for example, an average value of the initial three speeds Vel1 (i) to Vel3 (i) is stored. The value of the speed data may be used. Further, the above-described micro average speed VelAve (i) may be used to determine the value of the register IVEL (i).
[0088]
FIG. 15 is a flowchart of subroutine 3 showing an example (1) of rendition style and speed data calculation. The following processing showing the calculation procedure of the speed data VEL ′ (i) and the rendition style TSUM (i) is performed after step FK1 in FIG. 12, and the processing of steps FK5 to FK18 is not performed. Further, the processing for setting the processing number n in FIG. 14 is not performed.
[0089]
In step FD1, if the stroke position AMP2 (i) is smaller than the predetermined value C and the stroke position AMP (i) satisfies the condition equal to or greater than the predetermined value C, it indicates that the key has been pushed more than a certain stroke position. In step FD2, input values TSUM (i) and VEL ′ (i) of the conversion table are obtained. On the other hand, if the condition is not satisfied, the process returns to the calculation flow of FIG.
[0090]
In step FD2, the time TSUM (i) from the start of the key pressing operation is stored in TSUM (i). Then, speed data VEL ′ (i) of the latest stroke position AMP (i) is obtained by the following equation. Thereafter, the process returns to the calculation flow of FIG.
[0091]
[Expression 11]
VEL ′ = {AMP (i) −offset value} / TMSUM (i)
TSUM (i) represents the time from the start of key pressing until reaching a predetermined stroke position, and the playing style is determined according to this time. In the musical sound control amount conversion table of FIG. 2, the musical sound control amount is determined by performing table lookup with velocity data VEL ′ (i) on the horizontal axis and rendition style TSUM (i) on the vertical axis.
[0092]
FIG. 16 is a flowchart of a rendition style extraction flow showing a rendition style and speed data calculation example (2). The procedure for obtaining the rendition style TSUM (i) and the speed data VEL ′ (i) by a method different from the subroutine 3 of FIG. 15 is shown. The following rendition style extraction flow processing is performed instead of the processing flow processing of FIG.
[0093]
In step FK1, similarly to the calculation flow, shift register processing is performed for each of the eight velocity registers Vel1 (i) to Vel8 (i) and the stroke position registers AMP1 (i) to AMP8 (i). Speed data Vel1 (i) and stroke position AMP1 (i) are obtained.
[0094]
In step FK2, it is checked whether AMP8 (i) is larger than a predetermined value, and it is determined whether the noise level is exceeded. If larger than the predetermined value, the process proceeds to step FK3, and if not larger than the predetermined value, the process returns to the main routine of FIG.
[0095]
In step FK3, shift register processing is performed on n registers VelAve1 (i) to VelAven (i) representing the average speed in the same manner as in the processing of the calculation flow, and the micro average speed VelAve (i) of Expression 4 is obtained. In step FK4 ′, the eight registers AMP1 (i) to AMP8 (i) are reset.
[0096]
In Step FK20, it is checked whether or not the absolute value of the difference between the micro average speed VelAve (i) obtained this time and the micro average speed VelAve1 (i) obtained last time is larger than a predetermined value. If it is larger, it indicates that a predetermined displacement has been detected, so the routine proceeds to step FK21. On the other hand, if not, the process returns to the main routine of FIG.
[0097]
In step FK21, the time TSUM (i) from the start of the key pressing operation is stored in TSUM (i). Then, speed data VEL ′ (i) of the latest stroke position AMP (i) is obtained by the following equation.
[0098]
[Expression 12]
VEL ′ = {AMP (i) −offset value} / TMSUM (i)
In step FK18 ', various registers are reset, and then the process returns to the main routine of FIG.
[0099]
In step FK20, the two micro average velocities VelAve1 (i) and VelAve (i) are used for the determination. However, if three or more micro average velocities are used for determination, a more detailed performance mode can be obtained. Judgment can be made.
[0100]
FIG. 17 is a flowchart of subroutine 4 for performing threshold value C setting processing used in subroutine 3 of FIG. When the process of subroutine 4 is performed, the processes of subroutine 2 in FIG. 14 and subroutine 3 in FIG. 15 are used together. Then, the following processing is performed after step FC2 of subroutine 2 in FIG.
[0101]
The table value TBL1 (IVEL (i)) is extracted from the table using IVEL (i) obtained in step FC2 of subroutine 2, and C indicating the threshold value is set. After that, the process returns to the subroutine 2 in FIG. 14, and is compared with the threshold value C in the subroutine 3 in FIG.
[0102]
18 is a flowchart of subroutine 5 showing an example of calculating other velocity data VEL ″ (i) used in the conversion table of FIG. 2. The following processing is performed after step FK1 of the processing of the calculation flow of FIG. At this time, the subroutine 2 of FIG. 14 may or may not be performed.
[0103]
In step FE1, if the condition that the register FSET (i) is 1 or more and TMSUM (i) is larger than a predetermined value is satisfied, it indicates that a predetermined time has elapsed since the start of the key pressing, and therefore the flow returns to step FE2. If the condition is not satisfied, the process returns to the calculation flow of FIG.
[0104]
In step FE2, the speed data VEL ″ (i) after the elapse of a predetermined time is obtained by the following equation. Thereafter, the process returns to the calculation flow process of FIG.
[0105]
[Formula 13]
VEL "= {AMP (i) -offset value} / TMSUM (i)
The speed data VEL ″ (i) is obtained by using the stroke position AMP (i) after a predetermined time has elapsed since the key was pressed to obtain the initial speed in the key pressing operation. Speed data VEL ″ (i ) Is used as the horizontal axis of the conversion table of FIG. 2 to control the musical tone according to the initial speed VEL ″ (i).
[0106]
It should be noted that only the data until a certain time elapses after the key pressing operation or until a certain stroke position is exceeded may be used as the above performance method or speed data. As shown in FIGS. 6, 7, 8, and 9, the feature of the difference due to the playing style appears in the first part after the key depression, and it is only necessary to extract the feature part.
[0107]
The speed data VEL is the speed from when the first contact of the key is turned on until the second contact is turned on, whereas the speed data VEL 'and VEL "are initial values of the key pressing operation. Represents speed.
[0108]
Therefore, the musical sound control amount conversion table may obtain the control amount by inputting three-dimensional or more values such as the speed data VEL, the initial speed VEL ′, and the rendition style DMAXSUM. FIG. 19 is a flowchart showing a process of sending a key-on signal and a key-off signal to the tone generation circuit (sound source) in step FM6 of the main routine of FIG.
[0109]
In step FB1, the counter i is changed from 0 to 88 to watch the change of the first contact and the second contact for all keys. In step FB2, it is checked whether or not the first contact is on in the contact data in the current watch. If it is on, the process proceeds to step FB3. If it is not on, the process proceeds to step FB9.
[0110]
In step FB3, if an ON event has occurred in the first contact in the contact data currently being watched, this indicates that the first contact has changed from OFF to ON, so the process proceeds to step FB4 and flag PREP (i) is set. The current time t (i) counted in the timer interrupt process of FIG. 10 is stored in the register T (i). In addition, processing necessary for sound generation preparation is performed, and the process proceeds to Step FB5. On the other hand, if an on event has not occurred at the first contact in step FB3, the process bypasses to step FB5.
[0111]
In step FB5, it is checked whether or not the second contact is turned on in the contact data currently being watched. If the second contact is not on, the following processing is bypassed and the process proceeds to step FB13. If the second contact is on, the process proceeds to step FB6.
[0112]
In step FB6, it is checked whether or not the flag PREP (i) is 1. If the flag PREP (i) is not 1, it indicates that key-on data or key-off data has already been sent to the musical tone generation circuit, so that the following processing is bypassed and the process proceeds to step FB13. On the other hand, if the flag PREP (i) is 1, the process proceeds to step FB7.
[0113]
In step FB7, key-on data, key data (key code), and speed data VEL (i) are sent to the i channel of the tone generation circuit (sound source). The speed data VEL indicates a speed from when the first contact of the key is turned on to when the second contact is turned on.
[0114]
The speed data VEL (i) is obtained by the following equation. Here, time T (i) indicates the time when the first contact is turned on, and time t (i) indicates the current time when the second contact is turned on.
[0115]
[Expression 14]
VEL (i) = 1 / {t (i) -T (i)}
In step FB8, a musical tone parameter for controlling the volume, tone color, etc. is determined with reference to the musical tone control amount conversion table as shown in FIG. 2 from the performance style data DMAX, DMAXSUM, etc. obtained above. The musical tone parameter is sent to the i channel of the musical tone generating circuit. Thereafter, the flag PREP (i) is reset to 0 in step FB12, and the process proceeds to step FB13.
[0116]
In step FB13, it is checked whether there is other key data. If there is other key data, the process returns to step FB1 and the same processing is repeated. On the other hand, if there is no other key data, the process returns to the main routine of FIG.
[0117]
Step FB9 is processing when the first contact is not on in the contact data currently being watched, and further checks whether an off event has occurred at the first contact. If an off event has not occurred at the first contact, the following process is bypassed and the process proceeds to step FB13. On the other hand, if an off event has occurred in the first contact, the process proceeds to step FB10.
[0118]
In step FB10, a key-off signal is sent to the i channel of the tone generation circuit (sound source). Thereafter, in step FB11, a musical tone parameter is determined by referring to a musical tone control amount conversion table as shown in FIG. 2 from performance style data DMAX, DMAXSUM, or the like. The musical tone parameter is sent to the i channel of the musical tone generating circuit. Thereafter, the flag PREP (i) is reset to 0 in step FB12, and the process proceeds to step FB13. Here, the reason why the flag PREP (i) is reset to 0 is that the first contact may turn off without turning on the second contact after the first contact is turned on.
[0119]
In step FB13, it is checked whether there is other key data. If there is other key data, the process returns to step FB1 and the same processing is repeated. On the other hand, if there is no other key data, the process returns to the main routine of FIG.
[0120]
Although the case where the nonlinearity of the key motion is determined based on the case where the key stroke changes linearly with respect to time has been described, the nonlinearity can also be determined using other criteria. For example, the curvature of the stroke change with the passage of time or the like may be used. A plurality of criteria may be used together. Also, a keyboard may be used in which a change in playing style clearly appears in a stroke change more than before.
[0121]
FIG. 20 shows a key stroke detection sensor that detects a key stroke position by a key pressing operation. The keyboard has a white key 21W and a black key 21B. The white key 21W and the black key 21B rotate with respect to the support member 29 about the shaft 20 as a fulcrum. The white key stroke sensor 22 </ b> W and the black key stroke sensor 22 </ b> B are fixed to the support member 29.
[0122]
When the white key 21W is depressed, the white key stroke sensor 22W detects the stroke position. The shutter plate 23W moves in the white key stroke sensor 22W in accordance with the depression of the white key 21W. The white key stroke sensor 22W outputs in accordance with the movement position of the shutter plate 23W.
[0123]
The white key stroke sensor 22W detects the stroke position of the white key 21W according to the amount of light that passes through the shutter plate 23W from the light source in the sensor. The shutter plate 23W has a gray scale, and the amount of light passing therethrough changes depending on the position of the shutter plate 23W.
[0124]
Similarly, according to the depression of the black key 21B, the shutter plate 23B moves in the black key stroke sensor 22B. The black key stroke sensor 22B outputs in accordance with the moving position of the shutter plate 23B, and detects the stroke position of the black key 21B.
[0125]
The mass body 24 is supported movably with respect to the support member 29, and simulates the mechanism of a natural musical instrument piano hammer. When the white key 21W is pressed, the white key 21W hits the driven portion 38W and transmits a force to the mass body of the white key through an impact on the urethane rubber. When the black key 21B is pressed, the black key 21B hits the driven portion 38B and transmits a force to the mass body of the black key through an impact on the urethane rubber. When a force is applied to the mass body 24, the mass body moves and the relative position with respect to the support member 29 changes.
[0126]
The black key driven portion 38B is located above the white key driven portion 38W. This is to make the touch feeling of the key operation of the white key and the black key the same. Since the mass body 24 simulates a hammer mechanism of a natural musical instrument, when the white key 21W or the black key 21B is pressed, the response of the key press is initially light and the response becomes heavy after a while. The performer can obtain a touch sensation at the time of key pressing operation similar to a natural musical instrument piano. In addition, a weak key pressing operation is linear with little change in touch feeling.
[0127]
The first contact point 37 </ b> A and the second contact point 37 </ b> B are fixed to the support member 29. First contact 37A is turned on in response to the key pressing operation, and second contact 37B is turned on when the key is further pressed deeply.
[0128]
FIG. 21A shows the configuration of the keystroke detection sensor. The key stroke detection sensor 26 includes an LED 27 and a phototransistor 28. As shown in FIG. 21B, the phototransistor 28 senses the light emitted from the LED 27, and a current flows between the collector and the emitter of the phototransistor 28 according to the amount of light.
[0129]
The LED 27 and the phototransistor 28 are blocked by a shutter plate. Since the shutter plate is in gray scale, the amount of light received by the phototransistor 28 from the LED 27 via the shutter plate varies depending on the key stroke position.
[0130]
FIG. 22 shows a configuration example of another keystroke detection sensor. In FIG. 20, in order to detect the relative position between the white key 21W or the black key 21B and the support member 29, the white key 21W or the black key 21B is provided with shutter plates 23W and 23B for stroke sensors, respectively.
[0131]
FIG. 22 shows a stroke sensor that detects the relative position of the mass body 24 and the support member 29 shown in FIG. The mass body 24 is movable relative to the support member in conjunction with the key. The shutter plate 42 is fixed to the mass body 24, and the common light source 41 and the photodiode 43 are fixed to the support member.
[0132]
The key stroke detection sensor includes a common light source 41, a shutter plate 42 that moves according to the stroke of each key, and a photodiode 43 that corresponds to each key. Light emitted from the common light source 41 passes through the shutter plate 42 and is irradiated to the photodiode 43. The shutter plate 42 has a gray scale, and the amount of light applied to the photodiode 43 changes according to the key stroke position. Since a current flows in the photodiode 43 in accordance with the amount of light received, the key stroke position can be detected.
[0133]
FIG. 23 shows a configuration example of another keystroke detection sensor. Similar to FIG. 22, the relative position of the mass body and the support member is detected. The keystroke detection sensor has a shutter plate 46 and a photo interrupter 45. The shutter plate 46 is fixed to the mass body 24, and the photo interrupter 45 is fixed to the support member. The shutter plate 46 moves between the light source and the light receiving element in the photo interrupter 45 according to the key stroke. The shutter plate 46 is gray scale, and the current flowing through the photo interrupter 46 changes according to the key stroke position. The stroke position of the key can be detected from this current value.
[0134]
FIG. 24 shows a configuration example of another keystroke detection sensor. When the white key 54W or the black key 54B is pressed, the spring 53 is deflected, and a force acts in a direction to return the pressed key to the original position. The shutter plate 52 moves between the light source and the light receiving element in the photo interrupter 51 fixed to the support member 29 in accordance with the deflection of the spring. The shutter plate 52 has a gray scale, and the current flowing through the photo interrupter 51 changes according to the key stroke position. The key stroke position can be detected from the current value. Alternatively, the key stroke position may be detected by detecting the displacement of the spring 53 using a photo reflector.
[0135]
The mass body 24 is supported movably with respect to the support member 29, and simulates the mechanism of a natural musical instrument piano hammer. When the white key 54W is pressed, the white key 54W hits the driven portion 38W and transmits a force to the mass body of the white key through an impact on the urethane rubber. When the black key 54B is pressed, the black key 54B hits the driven portion 38B and transmits a force to the mass body of the black key through an impact on the urethane rubber. When a force is applied to the mass body 24, the mass body moves and the relative position with respect to the support member 29 changes.
[0136]
The first contact point 37 </ b> A and the second contact point 37 </ b> B are fixed to the support member 29. First contact 37A is turned on in response to the key pressing operation, and second contact 37B is turned on when the key is further pressed deeply.
[0137]
FIG. 25 shows a configuration example of another keystroke detection sensor. When the key 34 is depressed, the spring 25 is deflected by being supported by the support member 33, and a force acts in a direction to return the depressed key to the original position. The stroke position of the key can be detected according to the deflection of the spring. At this time, the sensor base 32 for detecting the stroke position of the white key is higher than the sensor base 31 for detecting the stroke position of the black key.
[0138]
FIG. 26 shows the difference between the spring pressure when the white key is pressed and the spring pressure when the black key is pressed. FIG. 26A shows a spring 35B and a sensor base 36B for detecting the stroke position of the black key when the black key is pressed. FIG. 26B shows a sensor base 36W of a sensor for detecting the spring 35W and the stroke position of the white key when the white key is pressed. Assume that the black key sensor base 36B and the white key sensor base 36W are at the same height. As a result, the white key press has a larger spring deflection and the spring pressure becomes higher than the black key press. Therefore, as shown in FIG. 25, the white key sensor base 32 needs to be higher than the black key sensor base 31.
[0139]
FIG. 27 shows a configuration example of another keystroke detection sensor. The stroke position of the white key 61 is detected by the white key sensor 63, and the stroke position of the black key 62 is detected by the black key sensor 64. The white key sensor 63 is a reflective sensor, and the reflected light or the like changes according to the position of the white key 61, so that the stroke position of the white key can be detected. The black key sensor 64 is also a reflective sensor, and can detect the stroke position of the black key 62 in the same manner.
[0140]
When the white key 61 is pressed, the white key 61 hits the driven portion 38W and transmits a force to the mass body of the white key through an impact on the urethane rubber. When the black key 62 is depressed, the black key 62 hits the driven portion 38B and transmits a force to the mass body of the black key through an impact on the urethane rubber. When a force is applied to the mass body 24, the mass body moves and the relative position with respect to the support member 29 changes.
[0141]
The first contact point 37 </ b> A and the second contact point 37 </ b> B are fixed to the support member 29. First contact 37A is turned on in response to the key pressing operation, and second contact 37B is turned on when the key is further pressed deeply.
[0142]
【The invention's effect】
A rendition style can be detected by detecting the relative position of the key that changes over time according to the key operation. Thereby, since the musical sound according to a performance aspect can be produced | generated, performance expressive power can be improved.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a system configuration example of an electronic keyboard instrument.
FIG. 2 is a chart showing an example of a tone control amount set in a table ROM.
FIG. 3 is a waveform diagram showing an envelope waveform whose volume is controlled by a difference in performance style.
FIG. 4 is a waveform diagram showing an envelope waveform for controlling a rising shape due to a difference in performance style.
FIG. 5 shows an example of a filter used for tone color control. 5A is a graph showing the frequency characteristics of the low-pass filter (LPF), FIG. 5B is a graph showing the frequency characteristics of the band-pass filter (BPF), and FIG. 5C is a graph showing the frequency characteristics of the high-pass filter (HPF). .
FIG. 6 is a graph showing a change in stroke position in the tenuto performance method with velocity data VEL = 38 (hexadecimal number).
FIG. 7 is a graph showing a change in stroke position in the staccato playing method with velocity data VEL = 38 (hexadecimal number).
FIG. 8 is a graph showing a change in stroke position in a tenuto performance method with velocity data VEL = 50 (hexadecimal number).
FIG. 9 is a graph showing a change in stroke position in the staccato playing method with velocity data VEL = 50 (hexadecimal number).
FIG. 10 is a flowchart showing a timer interrupt process.
FIG. 11 is a flowchart showing a main routine processed by a CPU.
FIG. 12 is a flowchart showing a calculation flow process in step FM4 of the main routine of FIG.
FIG. 13 is a flowchart following the processing of the calculation flow of FIG.
14 is a flowchart showing processing for setting the number of processing times n used in the processing of the calculation flow of FIG.
FIG. 15 is a flowchart showing a calculation example (1) of rendition style and speed data.
FIG. 16 is a flowchart of a rendition style extraction flow showing a rendition style and speed data calculation example (2).
FIG. 17 is a flowchart for performing threshold value C setting processing used in the flowchart of FIG. 15;
FIG. 18 is a flowchart illustrating a calculation example of velocity data VEL ″ (i).
FIG. 19 is a flowchart showing processing for sending a key-on signal and a key-off signal to a tone generation circuit (sound source) in step FM6 of the main routine of FIG.
FIG. 20 is a schematic diagram showing a key stroke detection sensor that detects a key stroke position by a key pressing operation.
FIGS. 21A and 21B are conceptual diagrams showing the configuration of a keystroke detection sensor.
FIG. 22 is a schematic diagram showing a configuration example of another keystroke detection sensor.
FIG. 23 is a schematic diagram showing a configuration example of another keystroke detection sensor.
FIG. 24 is a schematic diagram showing a configuration example of another keystroke detection sensor.
FIG. 25 is a schematic diagram illustrating a configuration example of another keystroke detection sensor.
FIG. 26A is a conceptual diagram showing a spring when a black key is pressed, and FIG. 26B is a conceptual diagram showing a spring when a white key is pressed.
FIG. 27 is a schematic diagram showing a configuration example of another keystroke detection sensor.
[Explanation of symbols]
1 key switch, 2 multiplexer, 3 bus, 4 microcomputer, 5 CPU, 6 ROM, 7 RAM, 8 sound source, 9 table ROM, 10 D / A converter, 11 amplifier, 12 speaker, S1-S88 stroke sensor, AD1- AD88 A / D converter

Claims (3)

支持部材と、
前記支持部材に対して揺動可能に設けられた複数の鍵と、
前記複数の鍵の各鍵に対応して設けられ、前記各鍵の運動に応じて前記支持部材に対する相対位置が変位する質量体と、
前記複数の鍵の各鍵に対応して設けられ、前記各鍵の鍵操作を検出する鍵操作検出手段と、
前記検出した鍵操作に基づいて楽音信号を発生する楽音信号発生手段と、
操作される鍵の運動に応じて駆動される前記質量体の前記支持部材に対する相対位置を表す位置情報を多数回検出し、該多数回検出した位置情報に基づいて前記操作された鍵の押鍵操作に係る奏法を検出する奏法検出手段と、
前記奏法検出手段が検出した奏法に応じた楽音制御を前記楽音発生手段に対して行う楽音制御手段と
を有する電子楽器。
A support member;
A plurality of keys provided to be swingable with respect to the support member;
A mass body that is provided corresponding to each key of the plurality of keys, and whose relative position with respect to the support member is displaced according to the movement of each key;
A key operation detecting means provided corresponding to each key of the plurality of keys and detecting a key operation of each key;
A musical sound signal generating means for generating a musical sound signal based on the detected key operation;
Position information representing the relative position of the mass body driven according to the movement of the operated key with respect to the support member is detected many times, and the key pressing of the operated key is performed based on the position information detected many times. Rendition style detecting means for detecting a rendition style related to the operation;
An electronic musical instrument comprising: a musical tone control unit that performs musical tone control on the musical tone generation unit according to the musical performance method detected by the musical performance detection unit.
鍵接合部と質量体支持部とを有する支持部材と、
前記鍵接合部を回転軸として支持部材に対して揺動可能に設けられ、質量体接合部を有する複数の鍵と、
前記複数の鍵の各鍵に対応して前記鍵に設けられた質量体接合部を回転軸として鍵に対して遥動可能に設けられ、前記各鍵の運動に応じて前記質量体支持部を支点として前記支持部材に対する相対位置が変位する質量体と、
前記複数の鍵の各鍵に対応して設けられ、前記各鍵の鍵操作を検出する鍵操作検出手段と、
前記検出した鍵操作に基づいて楽音信号を発生する楽音信号発生手段と、
操作される鍵の運動に応じて変位する前記質量体の前記支持部材に対する相対位置を表す位置情報を多数回検出し、該多数回検出した位置情報に基づいて前記操作された鍵の押鍵操作に係る奏法を検出する奏法検出手段と、
前記奏法検出手段が検出した奏法に応じた楽音制御を前記楽音発生手段に対して行う楽音制御手段と
を有する電子楽器。
A support member having a key joint and a mass support,
A plurality of keys provided so as to be swingable with respect to the support member about the key joint as a rotation axis, and having a mass body joint;
A mass body joint provided on the key corresponding to each key of the plurality of keys is provided so as to be swingable with respect to the key as a rotation axis, and the mass body support portion is provided according to the movement of each key. A mass body whose relative position with respect to the support member is displaced as a fulcrum;
A key operation detecting means provided corresponding to each key of the plurality of keys and detecting a key operation of each key;
A musical sound signal generating means for generating a musical sound signal based on the detected key operation;
Position information representing the relative position of the mass body that is displaced according to the movement of the operated key with respect to the support member is detected many times, and the key pressing operation of the operated key is performed based on the position information detected many times. Rendition style detection means for detecting a rendition style according to
An electronic musical instrument comprising: a musical tone control unit that performs musical tone control on the musical tone generation unit according to the musical performance method detected by the musical performance detection unit.
さらに、前記複数の鍵の各鍵と、前記各鍵に対応する前記複数の質量体のそれぞれとの間に介在し、前記複数の質量体のそれぞれと支持部材との相対位置を非線形に変化させる部材を有する請求項1又は2記載の電子楽器。  Furthermore, it is interposed between each key of the plurality of keys and each of the plurality of mass bodies corresponding to each key, and changes the relative position between each of the plurality of mass bodies and the support member in a non-linear manner. The electronic musical instrument of Claim 1 or 2 which has a member.
JP2002096314A 2002-03-29 2002-03-29 Electronic musical instruments Expired - Fee Related JP3671926B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002096314A JP3671926B2 (en) 2002-03-29 2002-03-29 Electronic musical instruments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002096314A JP3671926B2 (en) 2002-03-29 2002-03-29 Electronic musical instruments

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP33731193A Division JP3355743B2 (en) 1993-12-28 1993-12-28 Electronic keyboard instrument

Publications (2)

Publication Number Publication Date
JP2002333884A JP2002333884A (en) 2002-11-22
JP3671926B2 true JP3671926B2 (en) 2005-07-13

Family

ID=19193599

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002096314A Expired - Fee Related JP3671926B2 (en) 2002-03-29 2002-03-29 Electronic musical instruments

Country Status (1)

Country Link
JP (1) JP3671926B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114730552A (en) * 2019-11-20 2022-07-08 雅马哈株式会社 Sound generation control device, keyboard musical instrument, sound generation control method, and program

Also Published As

Publication number Publication date
JP2002333884A (en) 2002-11-22

Similar Documents

Publication Publication Date Title
JP3355743B2 (en) Electronic keyboard instrument
US7361825B2 (en) Electronic keyboard instrument
US6407326B1 (en) Electronic musical instrument using trailing tone different from leading tone
JP5162938B2 (en) Musical sound generator and keyboard instrument
US6765142B2 (en) Electronic keyboard musical instrument
US8324488B2 (en) Pedal apparatus of an electronic musical instrument
JP2010008515A (en) Force sense control apparatus for pedal of electronic keyboard instrument
JPWO2020054070A1 (en) Sound signal generators, keyboard instruments and programs
JP2010091853A (en) Pedal device and electronic keyboard musical instrument
JP3671926B2 (en) Electronic musical instruments
JP5315883B2 (en) Electronic musical instrument and musical sound generation program
JP3525477B2 (en) Electronic musical instrument
JPH04362694A (en) Keyboard musical instrument
JP2932132B2 (en) How to control the pronunciation of electronic keyboard instruments
JP2003295863A (en) Key depression information detecting device for keyboard musical instrument
JPH0695676A (en) Electronic musical instrument
JP4442531B2 (en) Electronic keyboard instrument
JPH1097254A (en) Electronic keyboard instrument
JP3664086B2 (en) Electronic instrument touch response device
JP3731638B2 (en) Keyboard device
JPH0580749A (en) Keyboard musical instrument
JPH07253783A (en) Keyboard device for electronic musical instrument
JPH05333859A (en) Keyboard device for electronic musical instrument
JP2930160B2 (en) Keyboard device and control method
JP3602365B2 (en) Electronic musical instrument

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050303

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: 20050329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050411

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: 20090428

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090428

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110428

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120428

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees