JP3095921B2 - 電子楽器のアフター・タッチ・コントロール装置 - Google Patents

電子楽器のアフター・タッチ・コントロール装置

Info

Publication number
JP3095921B2
JP3095921B2 JP04356980A JP35698092A JP3095921B2 JP 3095921 B2 JP3095921 B2 JP 3095921B2 JP 04356980 A JP04356980 A JP 04356980A JP 35698092 A JP35698092 A JP 35698092A JP 3095921 B2 JP3095921 B2 JP 3095921B2
Authority
JP
Japan
Prior art keywords
touch
key
value
aft
register
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
JP04356980A
Other languages
English (en)
Other versions
JPH06195078A (ja
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.)
Roland Corp
Original Assignee
Roland 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 Roland Corp filed Critical Roland Corp
Priority to JP04356980A priority Critical patent/JP3095921B2/ja
Publication of JPH06195078A publication Critical patent/JPH06195078A/ja
Application granted granted Critical
Publication of JP3095921B2 publication Critical patent/JP3095921B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、電子楽器のアフター・
タッチ・コントロール装置に関し、特に、鍵盤の押鍵操
作にともなうアフター・タッチを検出し、このアフター
・タッチの検出結果に基づいて楽音の制御を行うことの
できる電子楽器のアフター・タッチ・コントロール装置
に関する。
【0002】
【従来の技術】一般に、鍵盤を備えた電子楽器の分野に
おいては、各鍵が離鍵されている状態から押下される強
さ(または速度)(以下、イニシャル・タッチとい
う。)と、押下後の押圧力(以下、アフター・タッチと
いう。)とを検出して、イニシャル・タッチの値(イニ
シャル・タッチ・データ)およびアフター・タッチの値
(アフター・タッチ・データ)に応じて、楽音を制御す
ることが行われている。
【0003】例えば、アフター・タッチの値に応じて、
楽音の音量、音色あるいはピッチなどを変化させたり、
ビブラートの振幅やスピードを変化させたりなどして、
発音される楽音に種々の変化を与え、演奏に表情を持た
せることが行われているものである。
【0004】ところで、こうしたアフター・タッチを検
出するには、鍵盤に感圧素子などよりなるセンサを配設
し、このセンサにより鍵盤の押鍵操作にともなう押圧力
を感知し、アフター・タッチを検出するようにしてい
る。
【0005】従って、演奏者がアフター・タッチによる
楽音の制御を望まない場合においても、演奏者が鍵盤を
強く押鍵操作すると(イニシャル・タッチが大であ
る。)、当該押鍵操作と連動してアフター・タッチが検
出されてしまい、アフター・タッチによる楽音の制御が
行われてしまうという問題点があった。
【0006】従来においては、こうした問題点を解決す
るために、以下に示すような二通りの方法を行ってい
た。
【0007】〔第一の方法〕鍵盤を押鍵操作した直後か
ら所定の時間間隔だけアフター・タッチを検出しないよ
うにして、鍵盤を強く押鍵操作した場合におけるアフタ
ー・タッチ検出の誤動作を防止する。
【0008】〔第二の方法〕アフター・タッチの検出感
度を任意に設定できるようにしておき、アフター・タッ
チによる楽音制御を行いたくない場合には、検出感度を
鈍く設定しておき、鍵盤を強く押鍵操作した場合におけ
るアフター・タッチ検出の誤動作を防止する。
【0009】
【発明が解決しようとする課題】しかしながら、上記し
た第一の方法においては、鍵盤を押鍵操作した直後から
アフター・タッチによる楽音制御を行いたい場合におい
ても、こうしたアフター・タッチによる楽音制御を行う
ことができないとともに、アフター・タッチを検出しな
いように設定した所定の時間間隔の経過後に、突然にア
フター・タッチによる楽音制御が行われるようになるた
め、演奏者および聴衆に対して極めて不自然な聴感を与
えるという問題点があった。
【0010】また、上記した第二の方法においては、演
奏者が鍵盤を押鍵操作する強さとアフター・タッチの検
出感度の設定とのバランスをとることが難しく、操作性
に劣るという問題点があった。
【0011】本発明は、従来の技術の有するこのような
種々の問題点に鑑みてなされたものであり、その目的と
するところは、鍵盤を強く押鍵操作した場合におけるア
フター・タッチによる楽音制御の誤動作を防止するに際
し、演奏者や聴衆に不自然な聴感を与えることがないよ
うにするとともに、演奏者が容易にアフター・タッチに
よる楽音の制御の有無を指示することができるようにし
て、アフター・タッチによる楽音の制御の操作性を向上
した電子楽器のアフター・タッチ・コントロール装置を
提供しようとするものである。
【0012】
【課題を解決するための手段】上記目的を達成するため
に、本発明による電子楽器のアフター・タッチ・コント
ロール装置は、楽音の生成/停止を指示する押鍵操作/
離鍵操作を行うための鍵盤と、鍵盤の押鍵操作のイニシ
ャル・タッチの値を検出するイニシャル・タッチ検出手
段と、楽音に影響を与える鍵盤の押鍵操作のアフター・
タッチの値を検出するアフター・タッチ検出手段と、イ
ニシャル・タッチ検出手段によって検出されたイニシャ
ル・タッチの値が大きいほど、アフター・タッチ検出手
段によって検出されたアフター・タッチの値が楽音に影
響しないように制御するアフター・タッチ制御手段とを
有するように構成したものである。
【0013】
【作用】鍵盤の押鍵操作のイニシャル・タッチの値が、
イニシャル・タッチ検出手段により検出される。また、
鍵盤の押鍵操作のアフター・タッチの値が、アフター・
タッチ検出手段により検出される。
【0014】アフター・タッチ制御手段は、イニシャル
・タッチ検出手段およびアフター・タッチ検出手段の検
出結果に基づいて、イニシャル・タッチの値が大きいほ
ど、アフター・タッチの値が楽音に影響しないように制
御する。
【0015】従って、イニシャル・タッチの値が大きく
なっても、アフター・タッチによる楽音の影響を抑止す
ることができる。
【0016】
【実施例】以下、図面に基づいて、本発明による電子楽
器のアフター・タッチ・コントロール装置を詳細に説明
するものとする。
【0017】図1には、本発明の第一の実施例による電
子楽器のアフター・タッチ・コントロール装置を備えた
電子楽器のブロック構成図が示されている。
【0018】この電子楽器は、その全体の動作の制御を
中央処理装置(CPU)10を用いて制御するように構
成されている。このCPU10には、バスを介して、全
体の動作の制御のための所定のプログラムや楽音の音色
データなどが格納されたリード・オンリ・メモリ(RO
M)12と、後述するようなCPU10によるプログラ
ムの実行に必要な後述する各種レジスタ群などが設定さ
れたワーキング・エリアとしてのランダム・アクセス・
メモリ(RAM)14とが接続されている。
【0019】さらに、CPU10には、鍵盤16と接続
されたイニシャル・タッチ検出回路18およびアフター
・タッチ検出回路20がそれぞれ接続されており、イニ
シャル・タッチ検出回路18によって鍵盤16の押鍵操
作によるイニシャル・タッチが検出され、アフター・タ
ッチ検出回路20によって鍵盤16の押鍵操作にともな
うアフター・タッチが検出されるようになされている。
【0020】即ち、鍵盤16は複数のキー(図示せず)
を備えていて、各キーにはイニシャル・タッチを検出す
るための二つのスイッチ(図示せず)が設けられてお
り、このスイッチがイニシャル・タッチ検出回路18に
接続されている。そして、第一のスイッチがオンしてか
ら、第二のスイッチがオンするまでの時間をカウント
し、そのカウント値に基づいてイニシャル・タッチ・デ
ータを生成する。こうして生成されたイニシャル・タッ
チ・データがCPU10へ入力され、CPU10におい
て処理されることになる。
【0021】また、鍵盤16には、アフター・タッチを
検出するための単一のセンサ(図示せず)が設けられて
おり、このセンサがアフター・タッチ検出回路20に接
続されている。そして、鍵盤16の押鍵操作にともなう
押圧力がセンサに加わると、アフター・タッチ検出回路
20はセンサに加わる押圧力を検出することによりアフ
ター・タッチ・データを生成し、こうして生成されたア
フター・タッチ・データがCPU10へ入力され、CP
U10において処理されることになる。
【0022】さらに、CPU10にはタイマー回路22
が接続されていて、このタイマー回路22により所定の
時間間隔(例えば、「10msec」間隔などであ
る。)で、CPU10に割り込み(インタラプト)がか
けられることになる。
【0023】さらにまた、CPU10には、CPU10
の制御に基づいて、鍵盤16の押鍵操作/離鍵操作に対
応する楽音信号を生成/停止する複数の発音チャンネル
を有した音源回路24が接続されている。そして、この
音源回路24には、アンプ26が接続されており、さら
にアンプ26にはスピーカ28が接続されていて、音源
回路24から出力された楽音信号を、アンプ26を介し
て増幅し、スピーカ28から楽音として空間に放音させ
ている。
【0024】なお、上記したようにRAM14には、C
PU10がROM12に記憶されたプログラムを実行す
る際に必要とされるレジスタが設定されている。本発明
の実施に関連するレジスタには、以下に示すものがあ
る。なお、以下の説明においては、各レジスタの内容
(データなど)は、特に断らない限り、同一のラベル名
で表すものとする。
【0025】(1)レジスタTHRESHOLD このレジスタは、現在のスレッショルドの値を記憶して
おくレジスタである。
【0026】(2)レジスタAFT_OLD このレジスタは、前回検出したアフター・タッチの値を
記憶しておくレジスタである。
【0027】(3)レジスタAFT_DAT このレジスタは、前回求めた楽音制御手段に供給した値
を記憶するレジスタである。
【0028】(4)レジスタVELO このレジスタは、イニシャル・タッチ検出回路18で検
出されたイニシャル・タッチの値を記憶しておくレジス
タである。
【0029】(5)レジスタT_NOW このレジスタは、イニシャル・タッチ検出回路18にお
いて検出されたイニシャル・タッチの値をアフター・タ
ッチのスレッショルドとして変換し、こうして求められ
たスレッショルドの値を一次的に記憶しておくレジスタ
である。
【0030】(6)レジスタAFT_NOW このレジスタは、アフター・タッチ検出回路20で検出
されたアフター・タッチの値を記憶しておくレジスタで
ある。
【0031】(7)レジスタAFT_MAX このレジスタは、アフター・タッチ検出回路20で検出
されるアフター・タッチの値の最大値を記憶しておくレ
ジスタである。
【0032】(8)レジスタAFT_TMP このレジスタは、今回求めた楽音制御手段に供給する値
を記憶するレジスタである。
【0033】以上の構成において、この電子楽器の作用
および動作を、図2乃至図4に示すフローチャートを参
照しながら説明するものとする。
【0034】なお、この電子楽器は、電源が投入される
と図2に示すメイン・ルーチンを実行することになる
が、メイン・ルーチン内において鍵盤16の押鍵操作/
離鍵操作により発生されるキー・イベントを、イニシャ
ル・タッチ検出回路18が検出すると、キー・イベント
処理ルーチン(図3)が実行されることになる。また、
このメイン・ルーチン内において、タイマー回路22に
より発生されるタイマー・イベントによって所定時間間
隔でCPU10に対してインタラプトがかけられ、この
タイマー回路22によるインタラプトに対応して、アフ
ター・タッチ処理ルーチン(図4)、あるいはその他の
タイマー処理が実行されることになる。
【0035】そして、これらキー・イベント処理ルーチ
ンやアフター・タッチ処理ルーチンなどの実行を終了す
ると、メイン・ルーチンにリターンして処理を続行する
ものである。
【0036】即ち、通常はメイン・ルーチンを高速で繰
り返しているが、鍵盤16の押鍵操作/離鍵操作がある
とキー・イベント処理ルーチンが実行され、また所定時
間経過するごとにアフター・タッチ処理ルーチンなどが
起動され、キー・イベント処理ルーチンやアフター・タ
ッチ処理ルーチンなどの実行の後には、再びメイン・ル
ーチンを繰り返し続けるものである。
【0037】以下に、図2に示すフローチャートに基づ
いて、メイン・ルーチンを説明することとする。
【0038】まず、電源を投入することにより図2に示
すメイン・ルーチンが起動されると、ステップS202
においてイニシャライズを実行して、レジスタのリセッ
トを行う。即ち、レジスタTHRESHOLD、レジス
タAFT_OLDおよびレジスタAFT_DATを
「0」にリセットし、またその他の楽音信号を生成する
ためのレジスタも、このステップS202においてイニ
シャライズされる。このステップS202の処理を終了
すると、ステップS204へ進む。
【0039】ステップS204では、イニシャル・タッ
チ検出回路18により検出されるキー・イベントが有る
か、否かが判断される。この判断結果が肯定(Y)、即
ち、イニシャル・タッチ検出回路18により検出される
キー・イベントが有った場合には、ステップS206へ
進み、キー・イベント処理ルーチン(図3)を実行し、
キー・イベント処理を行うことになる。このステップS
206のキー・イベント処理を終了すると、メイン・ル
ーチンへリターンし、メイン・ルーチンの処理を続行す
ることになる。
【0040】なお、キー・イベント処理ルーチンに関し
ては、図3を参照しながら後に詳述する。
【0041】一方、ステップS204の判断結果が否定
(N)、即ち、イニシャル・タッチ検出回路18により
検出されるキー・イベントがなかった場合には、ステッ
プS208へ進む。
【0042】ステップS208では、タイマー回路22
からのタイマー・イベントが有るか、否かが判断され
る。この判断結果が肯定、即ち、タイマー回路22から
のタイマー・イベントが有った場合には、ステップS2
10へ進み、アフター・タッチ処理ルーチン(図4)を
実行し、アフター・タッチ処理を行うことになる。
【0043】なお、アフター・タッチ処理ルーチンに関
しては、図4を参照しながら後に詳述する。
【0044】ステップS210のアフター・タッチ処理
を終了すると、ステップS212へ進み、その他のタイ
マー処理を実行する。このステップS212におけるそ
の他のタイマー処理としては、ステップS210のアフ
ター・タッチ処理において処理されるアフター・タッチ
に関する以外の処理、例えば、楽音の音量の時間的変化
などの処理を行う。この際に、ステップS210のアフ
ター・タッチ処理において求められたレジスタAFT_
DATのアフター・タッチの値が、ステップS212の
処理に用いられることになる。
【0045】ステップS212の処理を終了すると、ス
テップS214へ進み、その他の楽音信号を制御するた
めの処理を行う。
【0046】また、ステップS208の判断結果が否
定、即ち、タイマー回路22からのタイマー・イベント
がなかった場合にも、ステップS214へ進み、その他
の楽音信号を制御するための処理を行うことになる。
【0047】このステップS214のその他の楽音信号
を制御するための処理においては、キー・イベント処理
およびアフター・タッチ処理以外の全ての処理が行われ
る。この処理の際においても、ステップS210のアフ
ター・タッチ処理において求められたレジスタAFT_
DATのアフター・タッチの値が用いられることにな
る。
【0048】ステップS214の処理を終了するとステ
ップS204へ戻り、ステップS204乃至ステップS
214のループを繰り返すことになる。
【0049】次に、図3に示すキー・イベント処理ルー
チンのフローチャートを参照しながら、キー・イベント
処理に関して説明する。
【0050】このキー・イベント処理ルーチンにおいて
は、まずステップS302において、このキー・イベン
ト処理ルーチンを起動させたキー・イベントが、押鍵操
作によるキー・オンであるか、否かが判断される。この
判断結果が否定、即ち、キー・イベントがキー・オンで
ない場合(キー・イベントが離鍵操作によるキー・オフ
である場合)には、ステップS304へ進む。
【0051】ステップS304では、公知の技術に基づ
いて、キー・オフされたキー番号に対応する音源回路2
4の発音チャンネルに対して、ノート・オフ処理を行
い、楽音信号の生成を停止する。
【0052】このステップS304のノート・オフ処理
を終了すると、メイン・ルーチンへリターンする。
【0053】一方、ステップS302の判断結果が肯
定、即ち、キー・イベントがキー・オンであった場合に
は、ステップS306へ進む。
【0054】ステップS306では、イニシャル・タッ
チ検出回路18において検出したイニシャル・タッチの
値をレジスタVELOへ記憶し、このイニシャル・タッ
チの値VELOと定数αとを乗算した値を、レジスタT
_NOWに記憶する。このレジスタT_NOWに記憶さ
れた値T_NOWが、スレッショルドになる。
【0055】ステップS306の処理を終了すると、ス
テップS308へ進み、ステップS306で求められた
スレッショルドの値T_NOWが、現在のスレッショル
ドの値THRESHOLDより大きいか、否かを判断す
る。この判断結果が肯定、即ち、現在のスレッショルド
の値THRESHOLDより、ステップS306で求め
られたスレッショルドの値T_NOWが大きい場合に
は、ステップS310へ進む。
【0056】ステップS310においては、現在のスレ
ッショルドの値を示すレジスタTHRESHOLDに記
憶された値を、ステップS306で求められたスレッシ
ョルドの値T_NOWに更新し、新しいスレッショルド
の値THRESHOLDとして、ステップS312へ進
む。
【0057】一方、ステップS308の判断結果が否
定、即ち、現在のスレッショルドの値THRESHOL
Dが、ステップS306で求められたスレッショルドの
値T_NOWより大きい場合には、何らの処理も行うこ
となくステップS312へ進む。
【0058】ステップS312では、公知の技術によ
り、キー・オンされたキー番号とイニシャル・タッチの
値VELOに基づき、音源回路24の発音チャンネルを
割り当て、ノート・オン処理をして楽音信号の生成を行
う。このステップS312の処理を終了すると、メイン
・ルーチンへリターンすることになる。
【0059】従って、上記で説明したキー・イベント処
理により、イニシャル・タッチ検出回路18により検出
されたイニシャル・タッチの値に基づいて、ステップS
308およびステップS310の処理により現在のスレ
ッショルドの値THRESHOLDが決定されることに
なる。そして、こうして決定されたスレッショルドの値
THRESHOLDを用いて、図4に示すアフター・タ
ッチ処理ルーチンが実行されることになる。
【0060】アフター・タッチ処理ルーチンにおいて
は、まずステップS402において、アフター・タッチ
検出回路20で検出されたアフター・タッチの値を、レ
ジスタAFT_NOWに書き込む。
【0061】ステップS402の処理を終了するとステ
ップS404へ進み、現在のスレッショルドの値THR
ESHOLDが「0」であるか、否かを判断する。この
判断結果が否定、即ち、現在のスレッショルドの値TH
RESHOLDが「0」でない場合には、ステップS4
06へ進み、現在のスレッショルドの値THRESHO
LDを「1」デクリメントして、次の処理であるステッ
プS410へ進む。
【0062】つまり、現在のスレッショルドの値THR
ESHOLDが「0」でない場合には、スレッショルド
が時間とともに減少していくことになる。
【0063】一方、ステップS404の判断結果が肯
定、即ち、現在のスレッショルドの値THRESHOL
Dが「0」である場合には、ステップS408へ進み、
ステップS402で求められたアフター・タッチの値A
FT_NOWと現在のアフター・タッチの値AFT_O
LDとが等しいか、否かを判断する。この判断結果が肯
定、即ち、アフター・タッチの値AFT_NOWと現在
のアフター・タッチの値AFT_OLDとが等しい場合
には、このアフター・タッチ処理ルーチンを終了して、
メイン・ルーチンへリターンすることになる。
【0064】一方、ステップS408判断結果のが否
定、即ち、アフター・タッチの値AFT_NOWと現在
のアフター・タッチの値AFT_OLDとが等しくない
場合には、ステップS410へ進む。
【0065】ステップS410では、ステップS402
で求められたアフター・タッチの値AFT_NOWを、
現在のアフター・タッチの値AFT_OLDへ書き込
み、ステップS412へ進む。
【0066】ステップS412では、ステップS410
で求められた現在のアフター・タッチの値AFT_OL
Dが、現在のスレッショルドの値THRESHOLDよ
り大きいか、否かを判断する。このステップS412の
判断結果が肯定、即ち、現在のアフター・タッチの値A
FT_OLDが現在のスレッショルドの値THRESH
OLDより大きい場合には、ステップS414へ進むこ
とになる。
【0067】ステップS414では、 AFT_TMP=AFT_MAX×(AFT_OLD−
THRESHOLD)÷(AFT_MAX−THRES
HOLD) の演算式を実行し、レジスタAFT_TMPに上記演算
式の演算結果の値を記憶する。このステップS414の
処理を終了すると、ステップS418へ進む。
【0068】一方、ステップS412の判断結果が否
定、即ち、現在のアフター・タッチの値AFT_OLD
が現在のスレッショルドの値THRESHOLD以下で
ある場合には、ステップS416へ進み、レジスタAF
T_TMPに「0」を記憶させ、ステップS418へ進
むことになる。
【0069】ステップS418では、ステップS414
あるいはステップS416で求められたアフター・タッ
チの値AFT_TMPと、楽音信号を制御するために用
いられるアフター・タッチの値AFT_DATとが等し
いか、否かを判断する。
【0070】ステップS418の判断結果が肯定、即
ち、ステップS414あるいはステップS416で求め
られたアフター・タッチの値AFT_TMPと、楽音信
号を制御するために用いられるアフター・タッチの値A
FT_DATとが等しい場合には、メイン・ルーチンへ
リターンする。
【0071】一方、ステップS418の判断結果が否
定、即ち、ステップS414あるいはステップS416
で求められたアフター・タッチの値AFT_TMPと、
楽音信号を制御するために用いられるアフター・タッチ
の値AFT_DATとが等しくない場合には、ステップ
S420へ進む。
【0072】ステップS420では、レジスタAFT_
DATの記憶内容をレジスタAFT_TMPの値に更新
し、メイン・ルーチンへリターンする。
【0073】上記したアフター・タッチ処理ルーチンに
おいて、ステップS412の判断結果が否定、即ち、現
在のアフター・タッチの値AFT_OLDが現在のスレ
ッショルドの値THRESHOLD以下である場合に
は、レジスタAFT_TMPの値が「0」となり、楽音
信号を制御するために用いられるアフター・タッチの値
AFT_DATも「0」にセットされることになる(ス
テップS418およびステップS420)。従って、こ
の場合には、ステップS312およびステップS314
において、アフター・タッチに基づく楽音信号の制御が
行われることがない。
【0074】一方、上記したアフター・タッチ処理にお
いて、ステップS412の判断結果が肯定、即ち、現在
のアフター・タッチの値AFT_OLDが現在のスレッ
ショルドの値THRESHOLDより大きい場合には、
レジスタAFT_TMPの値はステップS414におけ
る演算結果となり、楽音信号を制御するために用いられ
るアフター・タッチの値AFT_DATもステップS4
14における演算結果の値にセットされることになる
(ステップS418およびステップS420)。従っ
て、この場合には、ステップS312およびステップS
314において、アフター・タッチの値AFT_DAT
に基づき、アフター・タッチによる楽音信号の制御が行
われることになる。
【0075】次に、本発明の第二の実施例による電子楽
器のアフター・タッチ・コントロール装置を備えた電子
楽器に関して説明するものとする。
【0076】この第二の実施例は、鍵盤16の各キーの
それぞれに、アフター・タッチを検出するセンサが設け
られている点に関してのみ第一の実施例と相違するもの
であるため、図1に相当する図面の添付および詳細な説
明は重複するため省略するものとする。
【0077】また、この第二の実施例のRAM14に
も、CPU10がROM12に記憶されたプログラムを
実行する際に必要とされるレジスタが設定されている
が、第一の実施例と同様なレジスタに関しては、同一の
ラベル名で表すことにより重複する説明を省略すること
とし、以下に第二の実施例にのみ設定されたレジスタに
関して説明する。
【0078】(1)レジスタKEY このレジスタは、キー番号を指定するレジスタである。
【0079】(2)レジスタKEY_MAX このレジスタは、鍵盤16のキー数を記憶するレジスタ
である。
【0080】次に、この第二の実施例として示した電子
楽器の作用を、図5乃至図7に示すフローチャートを参
照しながら説明するものとする。
【0081】なお、この第二の実施例として示した電子
楽器は、第一の実施例として示した電子楽器と同様に、
電源が投入されると図5に示すメイン・ルーチンを実行
することになるが、メイン・ルーチン内において鍵盤1
6の押鍵操作/離鍵操作により発生されるキー・イベン
トを、イニシャル・タッチ検出回路18が検出すると、
キー・イベント処理ルーチン(図6)が実行されること
になる。また、このメイン・ルーチン内において、タイ
マー回路22により発生されるタイマー・イベントによ
って所定時間間隔でCPU10に対してインタラプトが
かけられ、このタイマー回路22によるインタラプトに
対応して、アフター・タッチ処理ルーチン(図7)、あ
るいはその他のタイマー処理が実行されることになる。
【0082】そして、これらキー・イベント処理ルーチ
ンやアフター・タッチ処理ルーチンなどの実行を終了す
ると、メイン・ルーチンにリターンして処理を続行する
ものである。
【0083】即ち、通常はメイン・ルーチンを高速で繰
り返してるが、鍵盤16の押鍵操作/離鍵操作があると
キー・イベント処理ルーチンが実行され、また所定時間
経過するごとにアフター・タッチ処理ルーチンなどが起
動され、キー・イベント処理ルーチンやアフター・タッ
チ処理ルーチンなどの実行の後には、再びメイン・ルー
チンを繰り返し続けるものである。
【0084】以下に、図5に示すフローチャートに基づ
いて、メイン・ルーチンを説明することとする。
【0085】まず、電源を投入することにより図5に示
すメイン・ルーチンが起動されると、イニシャライズを
実行して、レジスタのリセットを行うことになる。
【0086】即ち、ステップS502において、レジス
タKEYに「1」をセットした後にステップS504へ
進み、各キー毎に設定されたレジスタTHRESHOL
D[KEY]、レジスタAFT_OLD[KEY]およ
びレジスタAFT_DAT[KEY]を「0」にリセッ
トする。そして、レジスタKEYを「1」インクリメン
トして、ステップS506へ進む。
【0087】ステップS506では、キー番号KEYが
レジスタKEY_MAXに設定された値以下であるか、
否かが判断される。この判断結果が肯定、即ち、キー番
号KEYがKEY_MAXに設定された値以下である場
合には、ステップS504およびステップS506の処
理を繰り返して、鍵盤16の全キーに関して、各キー毎
に設定されたレジスタTHRESHOLD[KEY]、
レジスタAFT_OLD[KEY]およびレジスタAF
T_DAT[KEY]を「0」にリセットする。
【0088】一方、ステップS506の判断結果が否
定、即ち、キー番号KEYがKEY_MAXに設定され
た値より大きくなった場合(鍵盤16の全キーに関して
ステップS504のイニシャライズが終了した場合)に
は、ステップS508へ進み、その他の楽音信号を生成
するためのレジスタのイニシャライズを行う。このステ
ップS508の処理を終了すると、ステップS510へ
進む。
【0089】ステップS510では、イニシャル・タッ
チ検出回路18により検出されるキー・イベントが有る
か、否かが判断される。この判断結果が肯定、即ち、イ
ニシャル・タッチ検出回路18により検出されるキー・
イベントが有った場合には、ステップS512へ進み、
キー・イベント処理ルーチン(図6)を実行し、キー・
イベント処理を行うことになる。このステップS512
のキー・イベント処理を終了すると、メイン・ルーチン
へリターンし、メイン・ルーチンの処理を続行すること
になる。
【0090】なお、キー・イベント処理ルーチンに関し
ては、図6を参照しながら後に詳述する。
【0091】一方、ステップS510の判断結果が否
定、即ち、イニシャル・タッチ検出回路18により検出
されるキー・イベントがなかった場合には、ステップS
514へ進む。
【0092】ステップS514では、タイマー回路22
からのタイマー・イベントが有るか、否かが判断され
る。この判断結果が肯定、即ち、タイマー回路22から
のタイマー・イベントが有った場合には、ステップS5
16へ進み、アフター・タッチ処理ルーチン(図7)を
実行し、アフター・タッチ処理を行うことになる。
【0093】なお、アフター・タッチ処理ルーチンに関
しては、図7を参照しながら後に詳述する。
【0094】ステップS516のアフター・タッチ処理
を終了すると、ステップS518へ進み、その他のタイ
マー処理を実行する。このステップS518におけるそ
の他のタイマー処理としては、ステップS516のアフ
ター・タッチ処理において処理されるアフター・タッチ
に関する以外の処理、例えば、楽音の音量の時間的変化
などの処理を行う。この際に、ステップS516のアフ
ター・タッチ処理において求められたレジスタAFT_
DAT[KEY]のアフター・タッチの値が、ステップ
S518の処理に用いられることになる。
【0095】ステップS518の処理を終了すると、ス
テップS520へ進み、その他の楽音信号を制御するた
めの処理を行う。
【0096】また、ステップS514の判断結果が否
定、即ち、タイマー回路22からのタイマー・イベント
がなかった場合にも、ステップS520へ進み、その他
の楽音信号を制御するための処理を行うことになる。
【0097】このステップS520のその他の楽音信号
を制御するための処理においては、キー・イベント処理
およびアフター・タッチ処理以外の全ての処理が行われ
る。この処理の際においても、ステップS516のアフ
ター・タッチ処理において求められたレジスタAFT_
DAT[KEY]のアフター・タッチの値が用いられる
ことになる。
【0098】ステップS520の処理を終了するとステ
ップS510へ戻り、ステップS510乃至ステップS
520のループを繰り返すことになる。
【0099】次に、図6に示すキー・イベント処理ルー
チンのフローチャートを参照しながら、キー・イベント
処理に関して説明する。
【0100】このキー・イベント処理ルーチンにおいて
は、まずステップS602において、このキー・イベン
ト処理ルーチンを起動させたキー・イベントのキー番号
をレジスタKEYに記憶する。このステップS602の
処理を終了すると、ステップS604へ進む。
【0101】ステップS604では、キー・イベント処
理ルーチンを起動させたキー・イベントが、押鍵操作に
よるキー・オンであるか、否かが判断される。この判断
結果が否定、即ち、キー・イベントがキー・オンでない
場合(キー・イベントが離鍵操作によるキー・オフであ
る場合)には、ステップS606へ進む。
【0102】ステップS606では、レジスタKEYに
記憶されたキー番号KEYに対応する現在のスレッショ
ルドの値THRESHOLD[KEY]に「0」を記憶
させる。このステップS606の処理を終了した後にス
テップS608へ進み、公知の技術に基づいて、検出さ
れたキー番号KEYに対応する音源回路24の発音チャ
ンネルに対してノート・オフ処理を行い、楽音信号の生
成を停止する。
【0103】このステップS608のノート・オフ処理
を終了すると、メイン・ルーチンへリターンする。
【0104】一方、ステップS604の判断結果が肯
定、即ち、キー・イベントがキー・オンであった場合に
は、ステップS610へ進む。
【0105】ステップS610では、イニシャル・タッ
チ検出回路18において検出したイニシャル・タッチの
値をレジスタVELOへ記憶し、このイニシャル・タッ
チの値VELOと定数αとを乗算した値を、検出された
キー番号KEYに対応する現在のスレッショルドの値T
HRESHOLD[KEY]へ記憶する。このレジスタ
THRESHOLD[KEY]に記憶された値が、スレ
ッショルドになる。
【0106】ステップS610の処理を終了すると、ス
テップS612へ進み、公知の技術により、検出された
キー番号KEYとイニシャル・タッチの値VELOに基
づき、音源回路24の発音チャンネルを割り当て、ノー
ト・オン処理をして楽音信号の生成を行う。このステッ
プS610の処理を終了すると、メイン・ルーチンへリ
ターンすることになる。
【0107】従って、上記で説明したキー・イベント処
理により、イニシャル・タッチ検出回路18により検出
されたイニシャル・タッチの値に基づいて、ステップS
610の処理により現在のスレッショルドの値THRE
SHOLD[KEY]が決定されることになる。そし
て、こうして決定されたスレッショルドの値THRES
HOLD[KEY]を用いて、図7に示すアフター・タ
ッチ処理ルーチンが実行されることになる。
【0108】アフター・タッチ処理ルーチンにおいて
は、まずステップS702において、レジスタKEYに
「1」をセットし、ステップS704へ進む。
【0109】ステップS704では、アフター・タッチ
検出回路20で検出されたキー番号KEYに対応したア
フター・タッチの値を、レジスタAFT_NOWに書き
込む。ステップS704の処理を終了すると、ステップ
S706へ進む。
【0110】ステップS706では、ステップS704
で求められたアフター・タッチの値AFT_NOWとキ
ー番号KEYに対応した現在のアフター・タッチの値A
FT_OLD[KEY]とが等しいか、否かを判断す
る。この判断結果が肯定、即ち、アフター・タッチの値
AFT_NOWとキー番号KEYに対応した現在のアフ
ター・タッチの値AFT_OLD[KEY]とが等しい
場合には、ステップS720へジャンプする。
【0111】一方、ステップS706判断結果のが否
定、即ち、アフター・タッチの値AFT_NOWとキー
番号KEYに対応した現在のアフター・タッチの値AF
T_OLD[KEY]とが等しくない場合には、ステッ
プS708へ進む。
【0112】ステップS708では、ステップS704
で求められたアフター・タッチの値AFT_NOWを、
キー番号KEYに対応した現在のアフター・タッチの値
AFT_OLD[KEY]へ書き込み、ステップS71
0へ進む。
【0113】ステップS710では、ステップS708
で求められたキー番号KEYに対応した現在のアフター
・タッチの値AFT_OLD[KEY]が、キー番号K
EYに対応した現在のスレッショルドの値THRESH
OLD[KEY]より大きいか、否かを判断する。この
ステップS710の判断結果が肯定、即ち、キー番号K
EYに対応した現在のアフター・タッチの値AFT_O
LD[KEY]が、キー番号KEYに対応した現在のス
レッショルドの値THRESHOLD[KEY]より大
きい場合には、ステップS712へ進むことになる。
【0114】ステップS712では、 AFT_TMP=AFT_MAX×(AFT_OLD
[KEY]−THRESHOLD[KEY])÷(AF
T_MAX−THRESHOLD[KEY]) の演算式を実行し、レジスタAFT_TMPに上記演算
式の演算結果の値を記憶する。このステップS712の
処理を終了すると、ステップS716へ進む。
【0115】一方、ステップS710の判断結果が否
定、即ち、キー番号KEYに対応した現在のアフター・
タッチの値AFT_OLD[KEY]が、キー番号KE
Yに対応した現在のスレッショルドの値THRESHO
LD[KEY]以下である場合には、ステップS714
へ進み、レジスタAFT_TMPに「0」を記憶させ、
ステップS716へ進むことになる。
【0116】ステップS716では、ステップS712
あるいはステップS714で求められたアフター・タッ
チの値AFT_TMPと、キー番号KEYに対応した楽
音信号を制御するために用いられるアフター・タッチの
値AFT_DAT[KEY]とが等しいか、否かを判断
する。
【0117】ステップS716の判断結果が肯定、即
ち、ステップS712あるいはステップS714で求め
られたアフター・タッチの値AFT_TMPと、キー番
号KEYに対応した楽音信号を制御するために用いられ
るアフター・タッチの値AFT_DAT[KEY]とが
等しい場合には、ステップS720へ進むことになる。
【0118】一方、ステップS716の判断結果が否
定、即ち、ステップS712あるいはステップS714
で求められたアフター・タッチの値AFT_TMPと、
キー番号KEYに対応した楽音信号を制御するために用
いられるアフター・タッチの値AFT_DAT[KE
Y]とが等しくない場合には、ステップS718へ進
む。
【0119】ステップS718では、レジスタAFT_
DAT[KEY]の記憶内容をAFT_TMPの値に更
新し、ステップS720へ進むことになる。
【0120】ステップS720では、レジスタKEYを
「1」インクリメントして、ステップS722へ進む。
【0121】ステップS722では、キー番号KEYが
KEY_MAXに設定された値以下であるか、否かが判
断される。この判断結果が肯定、即ち、キー番号KEY
がKEY_MAXに設定された値以下である場合には、
ステップS704乃至ステップS722の処理を繰り返
して、鍵盤16の全キーに関して、レジスタAFT_D
AT[KEY]の値を求めることになる。
【0122】一方、ステップS722の判断結果が否
定、即ち、キー番号KEYがKEY_MAXに設定され
た値より大きくなった場合(鍵盤16の全キーに関して
レジスタAFT_DAT[KEY]の値を求め終えた場
合)には、アフター・タッチ処理ルーチンを終了し、メ
イン・ルーチンへリターンする。
【0123】上記したアフター・タッチ処理ルーチンに
おいて、ステップS710の判断結果が否定、即ち、キ
ー番号KEYに対応した現在のアフター・タッチの値A
FT_OLD[KEY]が、キー番号KEYに対応した
現在のスレッショルドの値THRESHOLD[KE
Y]以下である場合には、レジスタAFT_TMPの値
が「0」となり、キー番号KEYに対応した楽音信号を
制御するために用いられるアフター・タッチの値AFT
_DAT[KEY]も「0」にセットされることになる
(ステップS716およびステップS718)。従っ
て、この場合には、ステップS518およびステップS
520において、アフター・タッチに基づく楽音信号の
制御が行われることがない。
【0124】一方、上記したアフター・タッチ処理にお
いて、ステップS710の判断結果が肯定、即ち、キー
番号KEYに対応した現在のアフター・タッチの値AF
T_OLD[KEY]が、キー番号KEYに対応した現
在のスレッショルドの値THRESHOLD[KEY]
より大きい場合には、レジスタAFT_TMPの値はス
テップS712における演算結果となり、キー番号KE
Yに対応した楽音信号を制御するために用いられるアフ
ター・タッチの値AFT_DATもステップS712に
おける演算結果の値にセットされることになる(ステッ
プS716およびステップS718)。従って、この場
合には、ステップS518およびステップS520にお
いて、キー番号KEYに対応したアフター・タッチの値
AFT_DAT[KEY]に基づき、アフター・タッチ
による楽音信号の制御が行われることになる。
【0125】なお、上記した各実施例においては、イニ
シャル・タッチ検出回路18において検出されたイニシ
ャル・タッチ・データから、スレッショルドの値を求め
るために、定数αをイニシャル・タッチの値に乗算して
いるが、この定数αは、予めプログラム上に書き込まれ
ている一定の値でもよいし、別途操作子などを設けて、
演奏者が任意に設定することができるようにしてもよ
い。
【0126】また、定数をイニシャル・タッチの値に乗
算してスレッショルドの値を求めるのではなくて、予め
定められた他の関数を用いて、イニシャル・タッチの値
からスレッショルドの値を求めるようにしてもよいし、
予めROM12やRAM14などにイニシャル・タッチ
の値からスレッショルドの値を求める変換テーブルを記
憶しておき、この変換テーブルを読み出してスレッショ
ルドの値を求めるようにしてもよい。
【0127】さらに、上記した第一の実施例において
は、スレッショルドの値が「0」でない場合に、スレッ
ショルドの値を「1」づつ減算しているが、当該スレッ
ショルドの値に「1」未満の定数を乗算して、スレッシ
ョルドの値を小さくするようにしてもよい。
【0128】即ち THRESHOLD=β×THRESHOLD (0<β<1) の演算式を実行すればよい。
【0129】さらにまた、上記各実施例において、イニ
シャル・タッチの値から求められるスレッショルドの値
の大小に関わらず、一定時間後にスレッショルドの値が
「0」になるように設定してもよい。この場合には、常
時一定の時間でスレッショルドの値を「0」にすること
ができるようになる。
【0130】上記したように、時間とともにスレッショ
ルドを減少させる場合においては、一定の値をスレッシ
ョルドが「0」になるまで減算していく方法や、一定時
間後にスレッショルドが「0」になるような値を減算し
ていく方法、指数関数的に減少していく方法などを任意
に選択することができる。
【0131】なお、上記した第二の実施例においても、
第一の実施例と同様に、スレッショルドの値をタイマー
・イベント毎に減算するようにしてもよい。その場合に
は、キー・オフされたときに、スレッショルドの値を
「0」にセットする処理(ステップS606)を行う必
要がなくなるものである。
【0132】また、上記各実施例においては、アフター
・タッチの値が一定の場合には、スレッショルドが変化
することによって実際に用いられるアフター・タッチの
値は徐々に大きくなって行くが、アフター・タッチの値
が同じ場合には無視することによって、アフター・タッ
チの作用を抑制するようにしてもよい。
【0133】さらに、上記各実施例においては、新たに
鍵盤が弾かれた場合には、新しいイニシャル・タッチか
ら求められるスレッショルドの値が、現在のスレッショ
ルドの値より大きい場合にのみ、新しいスレッショルド
の値に変更され、小さい場合には現在のスレッショルド
の値のままにしている。しかしながら、新しいイニシャ
ル・タッチから求められるスレッショルドの値が、現在
のスレッショルドの値より小さい場合にも、スレッショ
ルドの値を新しいスレッショルドの値に変更するように
してもよい。
【0134】また、上記した二つの実施例においては、
イニシャル・タッチに応じてアフター・タッチのスレッ
ショルドを求め、アフター・タッチによる楽音制御の誤
動作の防止を図っているが、スレッショルドを「0」と
し、アフター・タッチの検出感度をイニシャル・タッチ
に応じて設定するようにしてもよい。
【0135】即ち、上記第一の実施例においては、イニ
シャル・タッチに応じてアフター・タッチのスレッショ
ルドを求め、スレッショルドが時間とともに減少すると
したが、スレッショルドを「0」として、アフター・タ
ッチの感度がイニシャル・タッチに応じて設定され、そ
の感度が時間とともに高くなるようにしてもよい。
【0136】例えば、イニシャル・タッチが大きいと感
度を小さく(例えば、「0.1」とする。)設定し、押
鍵からの時間経過に従って感度が「1」になるが、イニ
シャル・タッチが小さいと感度を大きく(例えば、
「0.6」とする。)設定し、同じく押鍵からの時間経
過に従って感度が「1」になるようにし、検出されたア
フター・タッチの値にこの感度を乗じて音源に供給する
ようにしてもよい。
【0137】
【発明の効果】本発明は、以上説明したように構成され
ているので、以下に記載されるような効果を奏する。
【0138】楽音の生成/停止を指示する押鍵操作/離
鍵操作を行うための鍵盤と、鍵盤の押鍵操作のイニシャ
ル・タッチの値を検出するイニシャル・タッチ検出手段
と、楽音に影響を与える鍵盤の押鍵操作のアフター・タ
ッチの値を検出するアフター・タッチ検出手段と、イニ
シャル・タッチ検出手段によって検出されたイニシャル
・タッチの値が大きいほど、アフター・タッチ検出手段
によって検出されたアフター・タッチの値が楽音に影響
しないように制御するアフター・タッチ制御手段とを有
するように構成したため、鍵盤の押鍵操作のイニシャル
・タッチの値が、イニシャル・タッチ検出手段により検
出され、また、鍵盤の押鍵操作のアフター・タッチの値
が、アフター・タッチ検出手段により検出される。
【0139】そして、アフター・タッチ制御手段が、イ
ニシャル・タッチ検出手段およびアフター・タッチ検出
手段の検出結果に基づいて、イニシャル・タッチの値が
大きいほど、アフター・タッチの値が楽音に影響しない
ように制御するので、イニシャル・タッチの値が大きく
なっても、アフター・タッチによる楽音の影響を抑止す
ることができる。
【0140】従って、本発明によれば、鍵盤を強く押鍵
操作した場合におけるアフター・タッチによる楽音制御
の誤動作を防止するに際し、演奏者や聴衆に不自然な聴
感を与えることがないとともに、演奏者が容易にアフタ
ー・タッチによる楽音の制御の有無を指示することがで
きるので、アフター・タッチによる楽音の制御の操作性
を著しく向上することができるようになる。
【図面の簡単な説明】
【図1】本発明による電子楽器のアフター・タッチ・コ
ントロール装置を備えた電子楽器を示すブロック構成図
である。
【図2】本発明の第一の実施例によるメイン・ルーチン
を示すフローチャートである。
【図3】本発明の第一の実施例によるキー・イベント処
理ルーチンを示すフローチャートである。
【図4】本発明の第一の実施例によるアフター・タッチ
処理ルーチンを示すフローチャートである。
【図5】本発明の第二の実施例によるメイン・ルーチン
を示すフローチャートである。
【図6】本発明の第二の実施例によるキー・イベント処
理ルーチンを示すフローチャートである。
【図7】本発明の第二の実施例によるアフター・タッチ
処理ルーチンを示すフローチャートである。
【符号の説明】
10 CPU 12 ROM 14 RAM 16 鍵盤 18 イニシャル・タッチ検出回路 20 アフター・タッチ検出回路 22 タイマー回路 24 音源回路 26 アンプ 28 スピーカ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G10H 1/053 - 1/057

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 楽音の生成/停止を指示する押鍵操作/
    離鍵操作を行うための鍵盤と、 前記鍵盤の押鍵操作のイニシャル・タッチの値を検出す
    るイニシャル・タッチ検出手段と、 前記楽音に影響を与える前記鍵盤の押鍵操作のアフター
    ・タッチの値を検出するアフター・タッチ検出手段と、 前記イニシャル・タッチ検出手段によって検出されたイ
    ニシャル・タッチの値が大きいほど、前記アフター・タ
    ッチ検出手段によって検出されたアフター・タッチの値
    が前記楽音に影響しないように制御するアフター・タッ
    チ制御手段とを有することを特徴とする電子楽器のアフ
    ター・タッチ・コントロール装置。
JP04356980A 1992-12-22 1992-12-22 電子楽器のアフター・タッチ・コントロール装置 Expired - Fee Related JP3095921B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04356980A JP3095921B2 (ja) 1992-12-22 1992-12-22 電子楽器のアフター・タッチ・コントロール装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04356980A JP3095921B2 (ja) 1992-12-22 1992-12-22 電子楽器のアフター・タッチ・コントロール装置

Publications (2)

Publication Number Publication Date
JPH06195078A JPH06195078A (ja) 1994-07-15
JP3095921B2 true JP3095921B2 (ja) 2000-10-10

Family

ID=18451752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04356980A Expired - Fee Related JP3095921B2 (ja) 1992-12-22 1992-12-22 電子楽器のアフター・タッチ・コントロール装置

Country Status (1)

Country Link
JP (1) JP3095921B2 (ja)

Also Published As

Publication number Publication date
JPH06195078A (ja) 1994-07-15

Similar Documents

Publication Publication Date Title
US11417303B2 (en) Musical sound data reproduction device and musical sound data reproduction method
JP3095921B2 (ja) 電子楽器のアフター・タッチ・コントロール装置
JPH04277797A (ja) 電子楽器
JPH10124050A (ja) 電子楽器
US6362410B1 (en) Electronic musical instrument
JPH03242697A (ja) 電子楽器
US20230386441A1 (en) Electronic musical instrument, key scanning method and non-transitory computer readable medium
JP3347753B2 (ja) 電子楽器
JP2001209382A (ja) 電子楽器の連打処理装置
JP4175566B2 (ja) 電子楽器の発音制御装置
JP4121080B2 (ja) 電子鍵盤楽器
JP2601039B2 (ja) 電子楽器
JP2001125572A (ja) 電子楽器、楽音発生制御方法及び記憶媒体
JPH0566773A (ja) 電子楽器
JP2786056B2 (ja) 電子楽器
JP2007279490A (ja) 電子楽器
JP2000020063A (ja) 電子楽器
JP2953217B2 (ja) 電子楽器
JP3581763B2 (ja) 電子楽器
JP3343956B2 (ja) 楽音制御装置
JP2737405B2 (ja) 電子楽器
JP2001125570A (ja) 電子楽器、楽音発生制御方法及び記憶媒体
JPH0727514Y2 (ja) 電子鍵盤楽器
JP2858314B2 (ja) 楽音特性制御装置
JP3602365B2 (ja) 電子楽器

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees