JPH05165472A - 電子楽器の操作速度検出装置 - Google Patents
電子楽器の操作速度検出装置Info
- Publication number
- JPH05165472A JPH05165472A JP3353331A JP35333191A JPH05165472A JP H05165472 A JPH05165472 A JP H05165472A JP 3353331 A JP3353331 A JP 3353331A JP 35333191 A JP35333191 A JP 35333191A JP H05165472 A JPH05165472 A JP H05165472A
- Authority
- JP
- Japan
- Prior art keywords
- key
- switch
- signal output
- register
- output line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】
【目的】 押鍵誤検出を防止しつつ、低コスト化を図
る。 【構成】 各鍵には、鍵の押下によって作動する第1ス
イッチ(XXF)および第2スイッチ(XXS)が配置
され、これらは第1スイッチ、第2スイッチの順でオン
する。また、キーコモン線はスイッチマトリクス回路1
の単一の第1走査信号出力線KOFおよび単一の第2走
査信号出力線KOSの2本のみで、これらによって第1
スイッチ(XXF)および第2スイッチ(XXS)を交
互に走査し、押鍵速度を検出する。第1走査信号出力線
KOFにはダイオードがあり、押鍵誤検出が発生しな
い。一方、第2走査信号出力線KOSにはダイオードは
ないが、構造上、第1スイッチ(XXF)は第2スイッ
チ(XXS)より必ず先にオンする。したがって、第2
走査信号出力線KOSにダイオードがなくても押鍵誤検
出が発生せず、ダイオードの数が半減する。
る。 【構成】 各鍵には、鍵の押下によって作動する第1ス
イッチ(XXF)および第2スイッチ(XXS)が配置
され、これらは第1スイッチ、第2スイッチの順でオン
する。また、キーコモン線はスイッチマトリクス回路1
の単一の第1走査信号出力線KOFおよび単一の第2走
査信号出力線KOSの2本のみで、これらによって第1
スイッチ(XXF)および第2スイッチ(XXS)を交
互に走査し、押鍵速度を検出する。第1走査信号出力線
KOFにはダイオードがあり、押鍵誤検出が発生しな
い。一方、第2走査信号出力線KOSにはダイオードは
ないが、構造上、第1スイッチ(XXF)は第2スイッ
チ(XXS)より必ず先にオンする。したがって、第2
走査信号出力線KOSにダイオードがなくても押鍵誤検
出が発生せず、ダイオードの数が半減する。
Description
【0001】
【産業上の利用分野】本発明は、コスト低減を意図した
電子楽器の押鍵速度検出装置に関する。
電子楽器の押鍵速度検出装置に関する。
【0002】
【従来の技術】電子楽器では、演奏データとしてベロシ
ティ情報等を得るためにキー等の演奏操作子の操作速度
を検出する装置が設けられている。従来の操作速度検出
装置は、各操作子毎に2つのスイッチを設け、これら2
つのスイッチのオン時間差を測定して操作速度を検出し
ている。
ティ情報等を得るためにキー等の演奏操作子の操作速度
を検出する装置が設けられている。従来の操作速度検出
装置は、各操作子毎に2つのスイッチを設け、これら2
つのスイッチのオン時間差を測定して操作速度を検出し
ている。
【0003】従来装置の具体例は図11に示され、これ
は演奏操作子として61鍵(C2〜C7)を有する場合
の例で、各鍵について押鍵時に最初にオンする第1接点
(XXF)と、第1接点がオンした後にオンする第2接
点(XXS)とがある。なお、各接点を表すXXは各鍵
の位置に対応するキーNOであり、例えばC2、C2
#、D2、D2#・・・・等に対応する。
は演奏操作子として61鍵(C2〜C7)を有する場合
の例で、各鍵について押鍵時に最初にオンする第1接点
(XXF)と、第1接点がオンした後にオンする第2接
点(XXS)とがある。なお、各接点を表すXXは各鍵
の位置に対応するキーNOであり、例えばC2、C2
#、D2、D2#・・・・等に対応する。
【0004】なお、第1接点(XXF)は複数の第1の
キーコモン線(第1走査信号出力線)KO0、KO2、
KO4・・・・に接続され、第2接点(XXS)は複数
の第2のキーコモン線(第2走査信号出力線)KO1、
KO3、KO5・・・・に接続されている。また、第1
接点(XXF)および第2接点(XXS)は共通のキー
イン線(走査信号入力線)KI0、KI1、KI2・・
・・に接続されている。
キーコモン線(第1走査信号出力線)KO0、KO2、
KO4・・・・に接続され、第2接点(XXS)は複数
の第2のキーコモン線(第2走査信号出力線)KO1、
KO3、KO5・・・・に接続されている。また、第1
接点(XXF)および第2接点(XXS)は共通のキー
イン線(走査信号入力線)KI0、KI1、KI2・・
・・に接続されている。
【0005】各接点(XXF)、(XXS)は、図12
に示すように、キーコモン線KOXとキーイン線KIX
の交点に配置され、各鍵の下に1個ずつ配置されたスイ
ッチ101と、回り込み防止用のダイオード102とに
よって構成されている。
に示すように、キーコモン線KOXとキーイン線KIX
の交点に配置され、各鍵の下に1個ずつ配置されたスイ
ッチ101と、回り込み防止用のダイオード102とに
よって構成されている。
【0006】このように押鍵速度を検出するには、各鍵
につき2接点ずつ設けなければならないので、鍵全体で
は計122接点がある。そして、操作速度検出装置にお
けるCPUは、この2接点がオンする時間差を計数し、
この計数値に基づいて押鍵速度を検出する。
につき2接点ずつ設けなければならないので、鍵全体で
は計122接点がある。そして、操作速度検出装置にお
けるCPUは、この2接点がオンする時間差を計数し、
この計数値に基づいて押鍵速度を検出する。
【0007】この場合、CPUは第1のキーコモン線を
KO0からKO22まで順にキーマトリクスを走査し、
共通のキーイン線KI0〜KI5・・・・からデータを
取り込み、対応する接点のオン/オフ状態を検知する。
第1接点(XXF)のオンを検知すると、対応する鍵に
ついて計数を開始し、第2接点(XXS)のオンを検知
すると、その鍵の計数を終了する。ただし、ここで得ら
れるデータは押鍵時間であるので、押鍵速度を得るため
に、時間を速度に変換する処理を行い、押鍵速度を検出
している。
KO0からKO22まで順にキーマトリクスを走査し、
共通のキーイン線KI0〜KI5・・・・からデータを
取り込み、対応する接点のオン/オフ状態を検知する。
第1接点(XXF)のオンを検知すると、対応する鍵に
ついて計数を開始し、第2接点(XXS)のオンを検知
すると、その鍵の計数を終了する。ただし、ここで得ら
れるデータは押鍵時間であるので、押鍵速度を得るため
に、時間を速度に変換する処理を行い、押鍵速度を検出
している。
【0008】
【発明が解決しようとする課題】ところで、従来の電子
楽器の操作速度検出装置にあっては、図12に示すよう
に、各鍵の接点毎に回り込み防止用のダイオードを配置
していたため、鍵数の2倍の数だけダイオードが必要と
なってコストが上昇するという問題点があった。
楽器の操作速度検出装置にあっては、図12に示すよう
に、各鍵の接点毎に回り込み防止用のダイオードを配置
していたため、鍵数の2倍の数だけダイオードが必要と
なってコストが上昇するという問題点があった。
【0009】すなわち、仮に各鍵の接点毎に回り込み防
止用のダイオードがなければ、複数の鍵が同時に押され
たときに、押鍵誤検出(いわゆる「キー化け」と称され
る)が起こる。例えば、ダイオードがない場合、第1の
キーコモン線KO1を“1”にして鍵C2F、F2Fを
走査したとき、鍵C2F、C2S、D2Fがオンしてい
るとすると、キーイン線KI2が“1”となり、D2S
もオンと取り違えてしまう。
止用のダイオードがなければ、複数の鍵が同時に押され
たときに、押鍵誤検出(いわゆる「キー化け」と称され
る)が起こる。例えば、ダイオードがない場合、第1の
キーコモン線KO1を“1”にして鍵C2F、F2Fを
走査したとき、鍵C2F、C2S、D2Fがオンしてい
るとすると、キーイン線KI2が“1”となり、D2S
もオンと取り違えてしまう。
【0010】一方、このような押鍵誤検出を防止するた
めには、上記従来装置のように、例えば各接点毎にダイ
オードを付ける必要があり、特に押鍵速度を2接点のオ
ン時間差で検知する場合には、鍵数の2倍の数だけのダ
イオードを要することとなり、押鍵速度を検知しない
(すなわち、オン/オフのみを検知)鍵盤装置と比較し
て倍の部品費用と、倍の製造費用とがかかる他、さらに
接点やダイオードを配置するためのPCB(プリント回
路基板)の面積も大きくなって、結局、コストの大幅な
上昇を招いていた。
めには、上記従来装置のように、例えば各接点毎にダイ
オードを付ける必要があり、特に押鍵速度を2接点のオ
ン時間差で検知する場合には、鍵数の2倍の数だけのダ
イオードを要することとなり、押鍵速度を検知しない
(すなわち、オン/オフのみを検知)鍵盤装置と比較し
て倍の部品費用と、倍の製造費用とがかかる他、さらに
接点やダイオードを配置するためのPCB(プリント回
路基板)の面積も大きくなって、結局、コストの大幅な
上昇を招いていた。
【0011】そこで本発明は、押鍵誤検出のような操作
誤検出を防止しつつ、低コスト化を図ることのできる電
子楽器の操作速度検出装置を提供することを目的として
いる。
誤検出を防止しつつ、低コスト化を図ることのできる電
子楽器の操作速度検出装置を提供することを目的として
いる。
【0012】
【課題を解決するための手段】上記目的を達成するため
に、本発明による電子楽器の操作速度検出装置は、各演
奏操作子に設けられ、この演奏操作子の操作によって順
次オン作動する複数個の第1および第2スイッチ手段
と、前記同一の演奏操作子内に設けられた前記第1およ
び第2スイッチ手段は、同一の走査信号入力線に接続さ
れるとともに、該走査信号入力線は前記演奏操作子に対
応する数だけ配置され、さらに前記第1スイッチ手段の
それぞれはダイオードを介して単一の第1走査信号出力
線に接続され、前記第2スイッチ手段のそれぞれは直接
単一の第2走査信号出力線に接続されるように構成され
たスイッチマトリクス手段と、このスイッチマトリクス
手段内の第1および第2走査信号出力線に交互に走査信
号を出力するとともに、前記走査信号入力線から前記走
査信号を受け取ることにより、前記複数個の第1および
第2スイッチ手段のいずれがオン状態にあるかを判別す
る走査手段と、この走査手段により同一演奏操作子内に
設けられた前記第1および第2スイッチ手段が共にオン
状態と判別されたときに、そのオン時間差に対応する値
を計測する計測手段と、を備えたことを特徴とする。
に、本発明による電子楽器の操作速度検出装置は、各演
奏操作子に設けられ、この演奏操作子の操作によって順
次オン作動する複数個の第1および第2スイッチ手段
と、前記同一の演奏操作子内に設けられた前記第1およ
び第2スイッチ手段は、同一の走査信号入力線に接続さ
れるとともに、該走査信号入力線は前記演奏操作子に対
応する数だけ配置され、さらに前記第1スイッチ手段の
それぞれはダイオードを介して単一の第1走査信号出力
線に接続され、前記第2スイッチ手段のそれぞれは直接
単一の第2走査信号出力線に接続されるように構成され
たスイッチマトリクス手段と、このスイッチマトリクス
手段内の第1および第2走査信号出力線に交互に走査信
号を出力するとともに、前記走査信号入力線から前記走
査信号を受け取ることにより、前記複数個の第1および
第2スイッチ手段のいずれがオン状態にあるかを判別す
る走査手段と、この走査手段により同一演奏操作子内に
設けられた前記第1および第2スイッチ手段が共にオン
状態と判別されたときに、そのオン時間差に対応する値
を計測する計測手段と、を備えたことを特徴とする。
【0013】
【作用】本発明では、キーコモン線はスイッチマトリク
ス回路の単一の第1走査信号出力線および単一の第2走
査信号出力線の2本のみで、これらによって第1スイッ
チおよび第2スイッチが交互に走査され、押鍵速度が検
出される。第1走査信号出力線にはダイオードがあるの
で、押鍵誤検出が発生しない。一方、第2走査信号出力
線にはダイオードはないが、構造上、第1スイッチは第
2スイッチより必ず先にオンするので、結局、第2走査
信号出力線にダイオードがなくても押鍵誤検出が発生し
ない。したがって、ダイオードの数が半減し、押鍵誤検
出を防止しつつ、低コスト化を達成できる。
ス回路の単一の第1走査信号出力線および単一の第2走
査信号出力線の2本のみで、これらによって第1スイッ
チおよび第2スイッチが交互に走査され、押鍵速度が検
出される。第1走査信号出力線にはダイオードがあるの
で、押鍵誤検出が発生しない。一方、第2走査信号出力
線にはダイオードはないが、構造上、第1スイッチは第
2スイッチより必ず先にオンするので、結局、第2走査
信号出力線にダイオードがなくても押鍵誤検出が発生し
ない。したがって、ダイオードの数が半減し、押鍵誤検
出を防止しつつ、低コスト化を達成できる。
【0014】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。図1は本発明に係る操作速度検出装置を適用した
電子楽器の一実施例の回路図である。図1において、こ
の電子楽器は大きく分けて、鍵の押下を検出するスイッ
チマトリクス回路1と、電子楽器全体を制御するマイク
ロコンピュータ40と、同時に複数(図1では8個)の
音を電子的に発音可能な音源システム50とを含んでい
る。
する。図1は本発明に係る操作速度検出装置を適用した
電子楽器の一実施例の回路図である。図1において、こ
の電子楽器は大きく分けて、鍵の押下を検出するスイッ
チマトリクス回路1と、電子楽器全体を制御するマイク
ロコンピュータ40と、同時に複数(図1では8個)の
音を電子的に発音可能な音源システム50とを含んでい
る。
【0015】本実施例の鍵盤は、61鍵(C2〜C7)
の例で、各鍵について押鍵時に最初にオンする第1スイ
ッチ(XXF)と、第1スイッチがオンした後にオンす
る第2スイッチ(XXS)とがある。なお、各スイッチ
を表すXXは各鍵の位置に対応するキーNO.であり、
例えばC2、C2#、D2、D2#・・・・等に対応す
る。これらの第1スイッチ(XXF)および第2スイッ
チ(XXS)は各鍵の下に1個ずつ配置されており、そ
の詳細な構成は図3に示される。
の例で、各鍵について押鍵時に最初にオンする第1スイ
ッチ(XXF)と、第1スイッチがオンした後にオンす
る第2スイッチ(XXS)とがある。なお、各スイッチ
を表すXXは各鍵の位置に対応するキーNO.であり、
例えばC2、C2#、D2、D2#・・・・等に対応す
る。これらの第1スイッチ(XXF)および第2スイッ
チ(XXS)は各鍵の下に1個ずつ配置されており、そ
の詳細な構成は図3に示される。
【0016】図3は、鍵盤の断面構造を示すもので、同
図において、11は板金製の鍵盤シャーシ、12は一端
部を鍵盤シャーシ11に上下方向へ回動自在に取り付け
られた鍵である。鍵12の下方にはオン状態検出回路、
キーコード発生回路等が設けられた回路基板13が配設
されており、回路基板13の上面には鍵12の配設方向
に沿って鍵12に対応して配置された第1ゴム接点スイ
ッチ14(第1スイッチ(XXF)に相当)と、第2ゴ
ム接点スイッチ15(第2スイッチ(XXS)に相当)
とが設けられている。
図において、11は板金製の鍵盤シャーシ、12は一端
部を鍵盤シャーシ11に上下方向へ回動自在に取り付け
られた鍵である。鍵12の下方にはオン状態検出回路、
キーコード発生回路等が設けられた回路基板13が配設
されており、回路基板13の上面には鍵12の配設方向
に沿って鍵12に対応して配置された第1ゴム接点スイ
ッチ14(第1スイッチ(XXF)に相当)と、第2ゴ
ム接点スイッチ15(第2スイッチ(XXS)に相当)
とが設けられている。
【0017】また、鍵12の下面には第1ゴム接点スイ
ッチ14、15を押圧する2個の押圧突起16、17が
それぞれ配設されており、これらの2個の押圧突起1
6、17により、第1ゴム接点スイッチ14と第2ゴム
接点スイッチ15とが時間差をもって順次押圧されてス
イッチオンとなる。これによって、回路基板13に設け
られたオン状態検出回路によって当該鍵12のオン状態
が検出されるとともに、キーコード発生回路からはオン
となった鍵12のキーコードを示す信号が出力される。
ッチ14、15を押圧する2個の押圧突起16、17が
それぞれ配設されており、これらの2個の押圧突起1
6、17により、第1ゴム接点スイッチ14と第2ゴム
接点スイッチ15とが時間差をもって順次押圧されてス
イッチオンとなる。これによって、回路基板13に設け
られたオン状態検出回路によって当該鍵12のオン状態
が検出されるとともに、キーコード発生回路からはオン
となった鍵12のキーコードを示す信号が出力される。
【0018】再び図1に戻り、各鍵の下に1個ずつ配置
された第1スイッチ(XXF)および第2スイッチ(X
XS)は、マトリクス状に接続されている。すなわち、
第1スイッチ(XXF)には、単一の第1走査信号出力
線(キーコモン線)KOFが接続され、この第1走査信
号出力線KOFによって各鍵に対応する第1スイッチ
(XXF)が走査される。
された第1スイッチ(XXF)および第2スイッチ(X
XS)は、マトリクス状に接続されている。すなわち、
第1スイッチ(XXF)には、単一の第1走査信号出力
線(キーコモン線)KOFが接続され、この第1走査信
号出力線KOFによって各鍵に対応する第1スイッチ
(XXF)が走査される。
【0019】また、第2スイッチ(XXS)には、単一
の第2走査信号出力線(キーコモン線)KOSが接続さ
れ、この第2走査信号出力線KOSによって各鍵に対応
する第2スイッチ(XXS)が走査される。
の第2走査信号出力線(キーコモン線)KOSが接続さ
れ、この第2走査信号出力線KOSによって各鍵に対応
する第2スイッチ(XXS)が走査される。
【0020】なお、これら2本の第1走査信号出力線K
OFおよび第2走査信号出力線KOSは独立して配置さ
れるとともに、かつ同一鍵の2つのスイッチ(XX
F)、(XXS)は、同一の複数(本実施例では61
本)の走査信号入力線(キーイン線)KI0、KI1、
KI2・・・・KI60(以下、適宜代表的にKIXで
示す)に接続されている。走査信号入力線KIX(すな
わち、KI0〜KI60)は61鍵(C2〜C7)の各
々に対応して61本配線されている。
OFおよび第2走査信号出力線KOSは独立して配置さ
れるとともに、かつ同一鍵の2つのスイッチ(XX
F)、(XXS)は、同一の複数(本実施例では61
本)の走査信号入力線(キーイン線)KI0、KI1、
KI2・・・・KI60(以下、適宜代表的にKIXで
示す)に接続されている。走査信号入力線KIX(すな
わち、KI0〜KI60)は61鍵(C2〜C7)の各
々に対応して61本配線されている。
【0021】また、61本の走査信号入力線KI0〜K
I60は抵抗24−1〜24−61をそれぞれ介して高
電位電源Hに接続されている。そして、上記2本の第1
走査信号出力線KOF、第2走査信号出力線KOS、6
1本の走査信号入力線KI0〜KI60およびこれらの
交点にマトリクス状に配置された第1スイッチ(XX
F)、第2スイッチ(XXS)によってスイッチマトリ
クス回路1が構成されている。
I60は抵抗24−1〜24−61をそれぞれ介して高
電位電源Hに接続されている。そして、上記2本の第1
走査信号出力線KOF、第2走査信号出力線KOS、6
1本の走査信号入力線KI0〜KI60およびこれらの
交点にマトリクス状に配置された第1スイッチ(XX
F)、第2スイッチ(XXS)によってスイッチマトリ
クス回路1が構成されている。
【0022】ここで、本実施例の特徴として図2(a)
に示すように、各鍵の下に1個ずつ配置された第1スイ
ッチ(XXF)の接点2aに対しては回り込み防止用の
ダイオード2bが直列接続されている。一方、図2
(b)に示すように、第2スイッチ(XXS)の接点3
aに対しては、回り込み防止用のダイオードを省略した
構成となっている。
に示すように、各鍵の下に1個ずつ配置された第1スイ
ッチ(XXF)の接点2aに対しては回り込み防止用の
ダイオード2bが直列接続されている。一方、図2
(b)に示すように、第2スイッチ(XXS)の接点3
aに対しては、回り込み防止用のダイオードを省略した
構成となっている。
【0023】図1では、一重丸○で表す第1スイッチ
(XXF)がダイオード有りを示し、二重丸◎で表す第
2スイッチ(XXS)がダイオード無しを示している。
また、第2走査信号出力線KOSにはダイオード25が
1つ介挿されている。ダイオード25は第2スイッチ
(XXS)がダイオード無しになっているため、各鍵の
第2スイッチ(XXS)に共通の回り込み防止機能を発
揮するように1つが配置されている。
(XXF)がダイオード有りを示し、二重丸◎で表す第
2スイッチ(XXS)がダイオード無しを示している。
また、第2走査信号出力線KOSにはダイオード25が
1つ介挿されている。ダイオード25は第2スイッチ
(XXS)がダイオード無しになっているため、各鍵の
第2スイッチ(XXS)に共通の回り込み防止機能を発
揮するように1つが配置されている。
【0024】キースキャンの動作は、次のようにして行
われる。すなわち、キーコモン走査では、第1走査信号
出力線KOFおよび第2走査信号出力線KOSの2本だ
けで交互にスキャンし、キーイン走査では61本の走査
信号入力線KI0〜KI60を一度にスキャンしてスキ
ャンデータを取り込み、対応する接点のオン/オフ状態
を検知するようになっている。
われる。すなわち、キーコモン走査では、第1走査信号
出力線KOFおよび第2走査信号出力線KOSの2本だ
けで交互にスキャンし、キーイン走査では61本の走査
信号入力線KI0〜KI60を一度にスキャンしてスキ
ャンデータを取り込み、対応する接点のオン/オフ状態
を検知するようになっている。
【0025】マイクロコンピュータ40は押鍵、離鍵の
判定、押鍵速度の検出および発音制御を行うもので、C
PU、ROM、RAMおよびインターバルタイマを含ん
で構成され、入力ポートKI0〜KI60および2つの
出力ポートKOF、KOSを有している。そして、マイ
クロコンピュータ40は第1スイッチ(XXF)のオン
を検知すると、対応する鍵について計数を開始し、第2
スイッチ(XXS)のオンを検知すると、その鍵の計数
を終了し、計数した時間を速度に変換する処理を行い、
押鍵速度を検出する。
判定、押鍵速度の検出および発音制御を行うもので、C
PU、ROM、RAMおよびインターバルタイマを含ん
で構成され、入力ポートKI0〜KI60および2つの
出力ポートKOF、KOSを有している。そして、マイ
クロコンピュータ40は第1スイッチ(XXF)のオン
を検知すると、対応する鍵について計数を開始し、第2
スイッチ(XXS)のオンを検知すると、その鍵の計数
を終了し、計数した時間を速度に変換する処理を行い、
押鍵速度を検出する。
【0026】マイクロコンピュータ40は速度検出手段
としての機能を有している。スイッチマトリクス回路1
の第1走査信号出力線KOFおよび第2走査信号出力線
KOSは、マイクロコンピュータ40の出力ポートKO
F、KOSに接続され、61本の走査信号入力線KI0
〜KI60は入力ポートKI0〜KI60に接続されて
いる。したがって、出力ポートKOF、KOSを順次
“1”レベルにすると、それに接続されているスイッチ
群KOF、KOSのオンあるいはオフのデータが入力ポ
ートKI0〜KI60に取り込まれる。
としての機能を有している。スイッチマトリクス回路1
の第1走査信号出力線KOFおよび第2走査信号出力線
KOSは、マイクロコンピュータ40の出力ポートKO
F、KOSに接続され、61本の走査信号入力線KI0
〜KI60は入力ポートKI0〜KI60に接続されて
いる。したがって、出力ポートKOF、KOSを順次
“1”レベルにすると、それに接続されているスイッチ
群KOF、KOSのオンあるいはオフのデータが入力ポ
ートKI0〜KI60に取り込まれる。
【0027】次に、マイクロコンピュータ40には図4
に示す下記のレジスタ群が予め用意されている。
に示す下記のレジスタ群が予め用意されている。
【0028】KENSCD:第2スイッチ(XXS)の
スキャンされたオン/オフデータ(以下、適宜第2スキ
ャンデータという)を記憶するレジスタである。各ビッ
トには“1”又は“0”が記憶され、これは第2スキャ
ンデータに対応している。
スキャンされたオン/オフデータ(以下、適宜第2スキ
ャンデータという)を記憶するレジスタである。各ビッ
トには“1”又は“0”が記憶され、これは第2スキャ
ンデータに対応している。
【0029】KENNEW:第1スイッチ(XXF)の
スキャンされたオン/オフデータ(以下、適宜第1スキ
ャンデータという)を記憶するレジスタである。各ビッ
トには“1”又は“0”が記憶され、これは第1スキャ
ンデータに対応している。
スキャンされたオン/オフデータ(以下、適宜第1スキ
ャンデータという)を記憶するレジスタである。各ビッ
トには“1”又は“0”が記憶され、これは第1スキャ
ンデータに対応している。
【0030】KENST:前回(すなわち、直前)のス
イッチによるスキャンされたオン/オフデータ(以下、
適宜スキャンデータという)を一時記憶するレジスタで
ある。各ビットには“1”又は“0”が記憶され、これ
はスキャンデータに対応している。
イッチによるスキャンされたオン/オフデータ(以下、
適宜スキャンデータという)を一時記憶するレジスタで
ある。各ビットには“1”又は“0”が記憶され、これ
はスキャンデータに対応している。
【0031】A:オン→オフあるいはオフ→オンの変化
があったキーを記憶するレジスタである。各ビットには
“1”又は“0”が記憶され、変化のあったビットは
“1”となる。
があったキーを記憶するレジスタである。各ビットには
“1”又は“0”が記憶され、変化のあったビットは
“1”となる。
【0032】CNTKEYNO(n):オンのあったキ
ーNO.を記憶するレジスタであり、CNTKEYNO
(0)〜CNTKEYNO(7)の8個のレジスタがあ
る。これらは8ビットのレジスタであり、オンされたキ
ーNO.が割り振られていく。
ーNO.を記憶するレジスタであり、CNTKEYNO
(0)〜CNTKEYNO(7)の8個のレジスタがあ
る。これらは8ビットのレジスタであり、オンされたキ
ーNO.が割り振られていく。
【0033】COUNTER(n):第1スイッチ(X
XF)のオンから第2スイッチ(XXS)がオンするま
での時間(すなわち、オン時間差)をカウントするレジ
スタであり、COUNTER(0)〜COUNTER
(7)の8個のレジスタがある。このCOUNTER
(n)に記憶されたデータに基づいて音源システム50
により発音処理がなされる。音源システム50は、同時
に8個の音を電子的に発音可能であるから、8個のレジ
スタが配置されている。
XF)のオンから第2スイッチ(XXS)がオンするま
での時間(すなわち、オン時間差)をカウントするレジ
スタであり、COUNTER(0)〜COUNTER
(7)の8個のレジスタがある。このCOUNTER
(n)に記憶されたデータに基づいて音源システム50
により発音処理がなされる。音源システム50は、同時
に8個の音を電子的に発音可能であるから、8個のレジ
スタが配置されている。
【0034】なお、上記において、(n)は0〜7の範
囲の値をとり、これは発音チヤンネルが8個であること
に対応する。
囲の値をとり、これは発音チヤンネルが8個であること
に対応する。
【0035】次に、マイクロコンピュータ40によるキ
ースキャンおよび発音処理のフローチャートを図5〜図
10を参照して説明する。
ースキャンおよび発音処理のフローチャートを図5〜図
10を参照して説明する。
【0036】図6は、全体処理のフローチャートであ
る。まず、ステップS1でマイクロコンピュータ40に
ついて必要なイニシャライズ(初期設定)を行う。例え
ば、各種レジスタ、カウンタの初期設定等が行われる。
次いで、ステップS2でインターバルタイマをスタート
する。これは、タイマ割込み処理を開始するためのイン
ターバルをカウントするためである。
る。まず、ステップS1でマイクロコンピュータ40に
ついて必要なイニシャライズ(初期設定)を行う。例え
ば、各種レジスタ、カウンタの初期設定等が行われる。
次いで、ステップS2でインターバルタイマをスタート
する。これは、タイマ割込み処理を開始するためのイン
ターバルをカウントするためである。
【0037】ステップS3では、リングバッファ内に発
音又は消音データ(すなわち、オン/オフコマンド)が
あるか否かを判別し、ないときは待機し、あるときはス
テップS4に進んでオンコマンドのときは発音処理を行
い、オフコマンドのときは消音処理を行う。
音又は消音データ(すなわち、オン/オフコマンド)が
あるか否かを判別し、ないときは待機し、あるときはス
テップS4に進んでオンコマンドのときは発音処理を行
い、オフコマンドのときは消音処理を行う。
【0038】このように、通常はこの全体処理フローチ
ャートに従ってリングバッファ内に発音又は消音すべき
データがあるか否かをみて、音源システム50に対して
発音又は消音の制御が行われる。そして、インターバル
タイマが一定時間をカウントする毎に、図6の割込み処
理に移行する。この割込み処理では、押鍵、離鍵の判定
と、押鍵速度の検出が行われる。
ャートに従ってリングバッファ内に発音又は消音すべき
データがあるか否かをみて、音源システム50に対して
発音又は消音の制御が行われる。そして、インターバル
タイマが一定時間をカウントする毎に、図6の割込み処
理に移行する。この割込み処理では、押鍵、離鍵の判定
と、押鍵速度の検出が行われる。
【0039】図6の割込み処理では、まずステップS1
1で第2スイッチ(XXS)をスキャンする。ステップ
S12では、第1スイッチ(XXF)および第2スイッ
チ(XXS)の間の時間を計測するカウンタをインクリ
メント(すなわち、カウントアップ)し、ステップS1
3で第1スイッチ(XXF)をスキャンする。これによ
り、各スイッチのオン時間差が計測され、押鍵速度を検
出する。
1で第2スイッチ(XXS)をスキャンする。ステップ
S12では、第1スイッチ(XXF)および第2スイッ
チ(XXS)の間の時間を計測するカウンタをインクリ
メント(すなわち、カウントアップ)し、ステップS1
3で第1スイッチ(XXF)をスキャンする。これによ
り、各スイッチのオン時間差が計測され、押鍵速度を検
出する。
【0040】さらに、ステップS14でキーオフチェッ
クを行う。すなわち、キースキャンが終了すると、キー
オフのチェックが行われ、キーオフの鍵については消音
処理が行われる。
クを行う。すなわち、キースキャンが終了すると、キー
オフのチェックが行われ、キーオフの鍵については消音
処理が行われる。
【0041】次に、図6に示す各ステップの詳細なサブ
ルーチンは、以下の図7以降に示される。図7は第2ス
イッチスキャン処理(ステップS11の処理)の詳細な
サブルーチンを示すフローチャートである。まず、ステ
ップS21で第2走査信号出力線(キーコモン線)KO
Sに接続されたマイクロコンピュータ40の出力ポート
KOSを“1”にセットする。これにより、第2走査信
号出力線KOSに接続されている出力ポートKOSが
“1”に立ち上がり、以後、そのデータが入力ポートK
I0〜KI60に取り込まれる。次いで、ステップS2
2でソフトウエイト処理(若干時間だけ待機する)を行
う。これは、処理の安定化を図るためである。
ルーチンは、以下の図7以降に示される。図7は第2ス
イッチスキャン処理(ステップS11の処理)の詳細な
サブルーチンを示すフローチャートである。まず、ステ
ップS21で第2走査信号出力線(キーコモン線)KO
Sに接続されたマイクロコンピュータ40の出力ポート
KOSを“1”にセットする。これにより、第2走査信
号出力線KOSに接続されている出力ポートKOSが
“1”に立ち上がり、以後、そのデータが入力ポートK
I0〜KI60に取り込まれる。次いで、ステップS2
2でソフトウエイト処理(若干時間だけ待機する)を行
う。これは、処理の安定化を図るためである。
【0042】ステップS23では、入力ポートKI0〜
KI60に取り込まれたデータの反転値を第2スキャン
データとしてKENSCDレジスタにストアする。次い
で、ステップS24で再び初期状態に戻すために出力ポ
ートのKOSを“0”にリセットする。
KI60に取り込まれたデータの反転値を第2スキャン
データとしてKENSCDレジスタにストアする。次い
で、ステップS24で再び初期状態に戻すために出力ポ
ートのKOSを“0”にリセットする。
【0043】ここで、キーコモン走査では、第1走査信
号出力線KOFおよび第2走査信号出力線KOSの2本
だけで交互にスキャンが行われ、キーイン走査では61
本の走査信号入力線KI0〜KI60を一度にスキャン
してスキャンデータが取り込まれ、対応する接点のオン
/オフ状態が検知される。
号出力線KOFおよび第2走査信号出力線KOSの2本
だけで交互にスキャンが行われ、キーイン走査では61
本の走査信号入力線KI0〜KI60を一度にスキャン
してスキャンデータが取り込まれ、対応する接点のオン
/オフ状態が検知される。
【0044】この場合、第1走査信号出力線KOFの行
には各鍵毎にダイオード2aがあるので、例えばキーC
2F、C2S、D2Fがオンしているときに、第2走査
信号出力線KOSを“1”にして61個のキーC2S〜
C7Sを全て走査しても走査信号入力線KI2は“0”
で押鍵誤動作(「キー化け」)は起こらない。
には各鍵毎にダイオード2aがあるので、例えばキーC
2F、C2S、D2Fがオンしているときに、第2走査
信号出力線KOSを“1”にして61個のキーC2S〜
C7Sを全て走査しても走査信号入力線KI2は“0”
で押鍵誤動作(「キー化け」)は起こらない。
【0045】一方、第2走査信号出力線KOSの行には
ダイオードがないので、例えばキーC2F、C2S、D
2Fがオンしているときに、第1走査信号出力線KOF
を“1”にして61個のキーC2F〜C7Fを全て走査
すると、走査信号入力線KI2が“1”になり、押鍵誤
動作(「キー化け」)が起こる。
ダイオードがないので、例えばキーC2F、C2S、D
2Fがオンしているときに、第1走査信号出力線KOF
を“1”にして61個のキーC2F〜C7Fを全て走査
すると、走査信号入力線KI2が“1”になり、押鍵誤
動作(「キー化け」)が起こる。
【0046】ところが、実際にはこのようなことはな
く、第1スイッチ(XXF)は構造上、必ず第2スイッ
チ(XXS)よりも先にオンするようになっているた
め、例えばキーD2Sがオンしているときには、必ずキ
ーD2Fもオンしていることになるので、上記のような
押鍵誤動作(「キー化け」)は起こらない。
く、第1スイッチ(XXF)は構造上、必ず第2スイッ
チ(XXS)よりも先にオンするようになっているた
め、例えばキーD2Sがオンしているときには、必ずキ
ーD2Fもオンしていることになるので、上記のような
押鍵誤動作(「キー化け」)は起こらない。
【0047】なお、第1走査信号出力線KOFに介挿さ
れたダイオード25は、各鍵の第1スイッチ(XXF)
および第2スイッチ(XXS)の両方の接点がオンして
いるとき(例えば、キーC2F、C2Fの2接点)に第
1走査信号出力線KOFの“1”が2接点を介して流れ
込み、第2走査信号出力線KOSの“0”とショートす
るのを防止するために必要となっている。
れたダイオード25は、各鍵の第1スイッチ(XXF)
および第2スイッチ(XXS)の両方の接点がオンして
いるとき(例えば、キーC2F、C2Fの2接点)に第
1走査信号出力線KOFの“1”が2接点を介して流れ
込み、第2走査信号出力線KOSの“0”とショートす
るのを防止するために必要となっている。
【0048】図8はカウントアップ処理(ステップS1
2の処理)の詳細なサブルーチンを示すフローチャート
である。まず、ステップS31でポインタnを[0]に
戻す。このポインタnは0〜7の範囲の値をとり、これ
は発音チヤンネルが8個(8ポリフェニックス:8音同
時発音可能)であることに対応する。したがって、8個
の各チヤンネル毎にオン時間差をカウントするCOUN
TER(n)レジスタを有する。
2の処理)の詳細なサブルーチンを示すフローチャート
である。まず、ステップS31でポインタnを[0]に
戻す。このポインタnは0〜7の範囲の値をとり、これ
は発音チヤンネルが8個(8ポリフェニックス:8音同
時発音可能)であることに対応する。したがって、8個
の各チヤンネル毎にオン時間差をカウントするCOUN
TER(n)レジスタを有する。
【0049】次いで、ステップS32でCNTKEYN
O(n)レジスタが[0]であるか否かを判別する。C
NTKEYNO(n)レジスタはオンのあったキーN
O.を記憶するレジスタであるから、最初のルーチンで
CNTKEYNO(0)レジスタを判別する場合には、
第1スイッチ(XXF)の行の各鍵の何れかがオンした
ときに、そのキーNO.が記憶される。
O(n)レジスタが[0]であるか否かを判別する。C
NTKEYNO(n)レジスタはオンのあったキーN
O.を記憶するレジスタであるから、最初のルーチンで
CNTKEYNO(0)レジスタを判別する場合には、
第1スイッチ(XXF)の行の各鍵の何れかがオンした
ときに、そのキーNO.が記憶される。
【0050】CNTKEYNO(0)=[0]のときは
0チヤンネルにキーNO.がない(無音)であると判断
してステップS39に進み、ポインタnが[7]になっ
たか否かを判別する。最初はn=[7]でないから、ス
テップS40でポインタnをインクリメントしてステッ
プS32に戻る。
0チヤンネルにキーNO.がない(無音)であると判断
してステップS39に進み、ポインタnが[7]になっ
たか否かを判別する。最初はn=[7]でないから、ス
テップS40でポインタnをインクリメントしてステッ
プS32に戻る。
【0051】一方、CNTKEYNO(0)=[0]で
ないとき(0チヤンネルにキーNO.が割り振られてい
るとき)には、続くステップS33でCNTKEYNO
(0)で示されるキー(鍵)における第2スイッチ(X
XS)の状態を第2スキャンデータをストアしているK
ENSCD(n)レジスタから読み取る。
ないとき(0チヤンネルにキーNO.が割り振られてい
るとき)には、続くステップS33でCNTKEYNO
(0)で示されるキー(鍵)における第2スイッチ(X
XS)の状態を第2スキャンデータをストアしているK
ENSCD(n)レジスタから読み取る。
【0052】読み取ったKENSCD(n)レジスタの
値が[1]であれば(ステップS34)、ステップS3
5に進んでCNTKEYNO(0)レジスタと、COU
NTER(0)レジスタの値をオンコマンドと共にリン
グバッファに書き込む。その後、ステップS36でCN
TKEYNO(0)をクリアして“0”に戻し、ステッ
プS39に進む。
値が[1]であれば(ステップS34)、ステップS3
5に進んでCNTKEYNO(0)レジスタと、COU
NTER(0)レジスタの値をオンコマンドと共にリン
グバッファに書き込む。その後、ステップS36でCN
TKEYNO(0)をクリアして“0”に戻し、ステッ
プS39に進む。
【0053】一方、読み取ったKENSCD(n)レジ
スタの値が[1]でなければ(ステップS34)、ステ
ップS37に進んでCNTKEYNO(0)レジスタの
値が8ビット全てが“1”であるか否かを判別する。
スタの値が[1]でなければ(ステップS34)、ステ
ップS37に進んでCNTKEYNO(0)レジスタの
値が8ビット全てが“1”であるか否かを判別する。
【0054】既に8ビット全てが“1”のとき(YES
のとき)は、異常である可能性が高い(例えば、第2ス
イッチ(XXS)が故障)と判断してステップS32に
戻る。また、8ビットの全てが“1”でない(NOのと
き)には、データは正常であると判断し、ステップS3
8で8個の各チヤンネル毎にオン時間差をカウントする
COUNTER(n)レジスタをインクリメントしてス
テップS39に進む。
のとき)は、異常である可能性が高い(例えば、第2ス
イッチ(XXS)が故障)と判断してステップS32に
戻る。また、8ビットの全てが“1”でない(NOのと
き)には、データは正常であると判断し、ステップS3
8で8個の各チヤンネル毎にオン時間差をカウントする
COUNTER(n)レジスタをインクリメントしてス
テップS39に進む。
【0055】ステップS39を経ると、ステップS40
でポインタnがインクリメントされ、再びステップS3
2に戻って次のチヤンネルについて同様の処理を繰り返
す。したがって、第1スイッチ(XXF)のみがオンし
ている状態では、ステップS34、ステップS37、ス
テップS38、ステップS39、ステップS40、ステ
ップS32というループで処理が行われる。そして、8
個の全てのチヤンネルについて上記処理が行われ、ポイ
ンタnの値が[7]になると(ステップS39)、サブ
ルーチンを終了する。
でポインタnがインクリメントされ、再びステップS3
2に戻って次のチヤンネルについて同様の処理を繰り返
す。したがって、第1スイッチ(XXF)のみがオンし
ている状態では、ステップS34、ステップS37、ス
テップS38、ステップS39、ステップS40、ステ
ップS32というループで処理が行われる。そして、8
個の全てのチヤンネルについて上記処理が行われ、ポイ
ンタnの値が[7]になると(ステップS39)、サブ
ルーチンを終了する。
【0056】このように、8個の各チヤンネル毎にオン
時間差をカウントするCOUNTER(n)レジスタお
よびキーNO.を記憶するCNTKEYNO(n)レジ
スタが設けられ、CNTKEYNO(n)=[0]、す
なわち該当するチヤンネルにキーNO.がないもの以外
は第1スイッチ(XXF)がオンしたものとしてCOU
NTER(n)レジスタの値がインクリメントされる。
時間差をカウントするCOUNTER(n)レジスタお
よびキーNO.を記憶するCNTKEYNO(n)レジ
スタが設けられ、CNTKEYNO(n)=[0]、す
なわち該当するチヤンネルにキーNO.がないもの以外
は第1スイッチ(XXF)がオンしたものとしてCOU
NTER(n)レジスタの値がインクリメントされる。
【0057】また、キーNO.が記憶されているもので
も、第2スイッチ(XXS)がオンしたもの(KENS
CD(n)レジスタの値が[1]として読み取る)は、
これらのCOUNTER(n)レジスタおよびCNTK
EYNO(n)レジスタの内容を音源システム50に送
るように指令し、該当するキーに対応する音が発音され
る。その後、CNTKEYNO(n)レジスタがクリア
される。
も、第2スイッチ(XXS)がオンしたもの(KENS
CD(n)レジスタの値が[1]として読み取る)は、
これらのCOUNTER(n)レジスタおよびCNTK
EYNO(n)レジスタの内容を音源システム50に送
るように指令し、該当するキーに対応する音が発音され
る。その後、CNTKEYNO(n)レジスタがクリア
される。
【0058】図9は第1スイッチスキャン処理(ステッ
プS13の処理)の詳細なサブルーチンを示すフローチ
ャートである。まず、ステップS51で第1走査信号出
力線KOFに接続されたマイクロコンピュータ40の出
力ポートKOFを“1”にセットする。
プS13の処理)の詳細なサブルーチンを示すフローチ
ャートである。まず、ステップS51で第1走査信号出
力線KOFに接続されたマイクロコンピュータ40の出
力ポートKOFを“1”にセットする。
【0059】これにより、第1走査信号出力線KOFに
接続されている出力ポートKOFが“1”に立ち上が
り、以後、そのデータが入力ポートKI0〜KI60に
取り込まれる。次いで、ステップS52でソフトウエイ
ト処理(若干時間だけ待機する)を行う。これは、処理
の安定化を図るためである。
接続されている出力ポートKOFが“1”に立ち上が
り、以後、そのデータが入力ポートKI0〜KI60に
取り込まれる。次いで、ステップS52でソフトウエイ
ト処理(若干時間だけ待機する)を行う。これは、処理
の安定化を図るためである。
【0060】ステップS53では、入力ポートKI0〜
KI60に取り込まれたデータの反転値を第1スキャン
データとしてKENNEWレジスタにストアする。KE
NNEWレジスタは第1スイッチ(XXF)のスキャン
されたオン/オフデータ(すなわち、第1スキャンデー
タ)を記憶するレジスタである。
KI60に取り込まれたデータの反転値を第1スキャン
データとしてKENNEWレジスタにストアする。KE
NNEWレジスタは第1スイッチ(XXF)のスキャン
されたオン/オフデータ(すなわち、第1スキャンデー
タ)を記憶するレジスタである。
【0061】次いで、ステップS54でKENST
(n)レジスタの反転値とKENNEWレジスタとのア
ンド論理(論理積)を取り、その結果をAレジスタに記
憶する。
(n)レジスタの反転値とKENNEWレジスタとのア
ンド論理(論理積)を取り、その結果をAレジスタに記
憶する。
【0062】この処理は、前回(すなわち、直前)のス
キャンデータの反転値と今回のスキャンデータとのアン
ド論理に対応する。したがって、Aレジスタには、オフ
→オンの変化があったキーが記憶される。すなわち、A
レジスタの各ビットには“1”又は“0”が記憶され、
オフ→オン変化のあったビットのみ“1”となり、その
他は“0”となる。
キャンデータの反転値と今回のスキャンデータとのアン
ド論理に対応する。したがって、Aレジスタには、オフ
→オンの変化があったキーが記憶される。すなわち、A
レジスタの各ビットには“1”又は“0”が記憶され、
オフ→オン変化のあったビットのみ“1”となり、その
他は“0”となる。
【0063】ここで、具体例で説明すると、例えばC2
とD2のキーが以前からオンしており、その後、新たに
E2のキーがオンした場合、出力ポートKOF=“1”
になると、KENNEW=「1010100・・・・
0」となる。前の状態はKENST=「1010000
・・・・0」であるとすると、A=「0000100・
・・・0」となり、E2のキーに対応するビットのみ
“1”になる。もし、新たな押鍵がなければ、A=「0
000000・・・・0」となる。
とD2のキーが以前からオンしており、その後、新たに
E2のキーがオンした場合、出力ポートKOF=“1”
になると、KENNEW=「1010100・・・・
0」となる。前の状態はKENST=「1010000
・・・・0」であるとすると、A=「0000100・
・・・0」となり、E2のキーに対応するビットのみ
“1”になる。もし、新たな押鍵がなければ、A=「0
000000・・・・0」となる。
【0064】次いで、ステップS55でAレジスタが
[0]であるか否を判別し、[0]であれば新たなキー
オンがないと判断して今回のルーチンを終了する。一
方、ステップS55でAレジスタが“0”でないときは
新たななキーオンがあると判断してステップS56でK
ENSTレジスタとAレジスタとのオア論理(論理和)
を取り、その結果を今回のKENSTレジスタの内容と
して記憶する。これにより、KENSTレジスタには直
前にスキャンされた新たなオン/オフデータ(スキャン
データ)が追加して一時記憶される。すなわち、現在オ
ンしているデータが記憶される。
[0]であるか否を判別し、[0]であれば新たなキー
オンがないと判断して今回のルーチンを終了する。一
方、ステップS55でAレジスタが“0”でないときは
新たななキーオンがあると判断してステップS56でK
ENSTレジスタとAレジスタとのオア論理(論理和)
を取り、その結果を今回のKENSTレジスタの内容と
して記憶する。これにより、KENSTレジスタには直
前にスキャンされた新たなオン/オフデータ(スキャン
データ)が追加して一時記憶される。すなわち、現在オ
ンしているデータが記憶される。
【0065】ステップS57では、Aレジスタの各ビッ
トの値を左にシフトさせ、キャリーがあれば(ステップ
S58)、すなわち“1”が立っているビット(新たに
押鍵されたキーに対応)があれば、そのキーNO.を計
算する(ステップS59)。“1”が立っているビット
がなければステップS57に戻って再び各ビットの値を
左にシフトさせ、同様にキャリーがあれば、そのキーN
O.を計算する。したがって、8個のビット全てについ
てキャリーの有無が判断される。
トの値を左にシフトさせ、キャリーがあれば(ステップ
S58)、すなわち“1”が立っているビット(新たに
押鍵されたキーに対応)があれば、そのキーNO.を計
算する(ステップS59)。“1”が立っているビット
がなければステップS57に戻って再び各ビットの値を
左にシフトさせ、同様にキャリーがあれば、そのキーN
O.を計算する。したがって、8個のビット全てについ
てキャリーの有無が判断される。
【0066】次いで、ステップS60でポインタmを
[0]に戻し、ステップS61でCNTKEYNO
(m)=[0]であるか否かを判別する。CNTKEY
NO(m)=[0]でなければ、これはそのレジスタC
NTKEYNO(m)が空いていないことを意味し、ス
テップS62に進んでm=[7]であるか否かを判別す
る。m=[7]でなければ、mをインクリメントしてリ
ターンする(ステップS63)。
[0]に戻し、ステップS61でCNTKEYNO
(m)=[0]であるか否かを判別する。CNTKEY
NO(m)=[0]でなければ、これはそのレジスタC
NTKEYNO(m)が空いていないことを意味し、ス
テップS62に進んでm=[7]であるか否かを判別す
る。m=[7]でなければ、mをインクリメントしてリ
ターンする(ステップS63)。
【0067】このようにして空いているCNTKEYN
O(m)レジスタを探す処理を行い、8チヤンネルの全
てが空でないときは、ステップS62でYESに分岐し
てリターンする。
O(m)レジスタを探す処理を行い、8チヤンネルの全
てが空でないときは、ステップS62でYESに分岐し
てリターンする。
【0068】また、空いているCNTKEYNO(m)
レジスタがあれば、つまりステップS64でCNTKE
YNO(m)=[0]でないと判別されると、該当する
キーNO.をCNTKEYNO(m)レジスタにストア
し(ステップS64)、対応するCOUNTER(m)
レジスタに[1]を記憶する(ステップS65)。この
ように、キーNO.を計算した後、空いているチヤンネ
ルを探す。
レジスタがあれば、つまりステップS64でCNTKE
YNO(m)=[0]でないと判別されると、該当する
キーNO.をCNTKEYNO(m)レジスタにストア
し(ステップS64)、対応するCOUNTER(m)
レジスタに[1]を記憶する(ステップS65)。この
ように、キーNO.を計算した後、空いているチヤンネ
ルを探す。
【0069】次いで、再びステップS66でAレジスタ
が[0]であるか否を判別し、[0]でなければ、新た
なキーオンがあると判断してステップS57に戻り、同
様にビットシフト処理を行ってキャリーの有無を判断す
る。これにより、次のキャリーが判別される。また、ス
テップS66でAレジスタが[0]であれば、新たなキ
ーオンがないと判断してリターンする。
が[0]であるか否を判別し、[0]でなければ、新た
なキーオンがあると判断してステップS57に戻り、同
様にビットシフト処理を行ってキャリーの有無を判断す
る。これにより、次のキャリーが判別される。また、ス
テップS66でAレジスタが[0]であれば、新たなキ
ーオンがないと判断してリターンする。
【0070】図10はオフチェック処理(ステップS1
4の処理)の詳細なサブルーチンを示すフローチャート
である。なお、キーオフチェックの処理においては、チ
ャタリング防止、すなわち完全にオフになったことを見
極めるために、割込みが適当な回数毎、例えば12回に
1回毎に行われる。
4の処理)の詳細なサブルーチンを示すフローチャート
である。なお、キーオフチェックの処理においては、チ
ャタリング防止、すなわち完全にオフになったことを見
極めるために、割込みが適当な回数毎、例えば12回に
1回毎に行われる。
【0071】まず、ステップS71でKENSTレジス
タが[0]であるか否かを判別する。KENSTレジス
タは前回(すなわち、直前)の第1スイッチ(XXF)
および第2スイッチ(XXS)によるスキャンされたオ
ン/オフデータ(スキャンデータ)を一時記憶するレジ
スタである。
タが[0]であるか否かを判別する。KENSTレジス
タは前回(すなわち、直前)の第1スイッチ(XXF)
および第2スイッチ(XXS)によるスキャンされたオ
ン/オフデータ(スキャンデータ)を一時記憶するレジ
スタである。
【0072】したがって、最初のルーチンにおいてKE
NST=[0]のときは前回のスキャンデータにオンデ
ータがないと判断して今回のルーチンを終了する。KE
NSTレジスタが[0]でないときは、前回のスキャン
データにオンデータがあると判断し、ステップS72に
進んでKENSTレジスタとKENNEWレジスタの反
転値とのアンド論理(論理積)を取り、その結果をAレ
ジスタに記憶する。
NST=[0]のときは前回のスキャンデータにオンデ
ータがないと判断して今回のルーチンを終了する。KE
NSTレジスタが[0]でないときは、前回のスキャン
データにオンデータがあると判断し、ステップS72に
進んでKENSTレジスタとKENNEWレジスタの反
転値とのアンド論理(論理積)を取り、その結果をAレ
ジスタに記憶する。
【0073】この処理は、直前のスキャンデータと今回
のスキャンデータの反転値とのアンド論理を取ることに
相当する。これは新たにオフになったキーがあるか否か
を見極めるためである。次いで、ステップS73でAレ
ジスタが[0]であるか否を判別し、[0]であれば新
たなキーオフがないと判断してリターンする。
のスキャンデータの反転値とのアンド論理を取ることに
相当する。これは新たにオフになったキーがあるか否か
を見極めるためである。次いで、ステップS73でAレ
ジスタが[0]であるか否を判別し、[0]であれば新
たなキーオフがないと判断してリターンする。
【0074】一方、Aレジスタが[0]でないときは新
たなキーオフがあると判断してステップS74でKEN
STレジスタとAレジスタの反転値とのアンド論理(論
理積)を取り、その結果を今回のKENSTレジスタの
内容として記憶する。これにより、KENSTレジスタ
には直前にスキャンされた新たなオン/オフデータ(ス
キャンデータ)が追加して一時記憶される。すなわち、
現在のキーのオン/オフの状態を示しているデータが記
憶される。
たなキーオフがあると判断してステップS74でKEN
STレジスタとAレジスタの反転値とのアンド論理(論
理積)を取り、その結果を今回のKENSTレジスタの
内容として記憶する。これにより、KENSTレジスタ
には直前にスキャンされた新たなオン/オフデータ(ス
キャンデータ)が追加して一時記憶される。すなわち、
現在のキーのオン/オフの状態を示しているデータが記
憶される。
【0075】次いで、ステップS75でAレジスタの各
ビットの値を左にシフトさせ、キャリーがあれば(ステ
ップS76)、すなわち“1”が立っているビット(新
たに離鍵されたキーに対応)があれば、そのキーNO.
を計算する(ステップS77)。“1”が立っているビ
ットがなければステップS75に戻って再び各ビットの
値を左にシフトさせ、同様にキャリーがあれば、そのキ
ーNO.を計算する。したがって、8個のビット全てに
ついてキャリーの有無が判断される。
ビットの値を左にシフトさせ、キャリーがあれば(ステ
ップS76)、すなわち“1”が立っているビット(新
たに離鍵されたキーに対応)があれば、そのキーNO.
を計算する(ステップS77)。“1”が立っているビ
ットがなければステップS75に戻って再び各ビットの
値を左にシフトさせ、同様にキャリーがあれば、そのキ
ーNO.を計算する。したがって、8個のビット全てに
ついてキャリーの有無が判断される。
【0076】次いで、ステップS78でポインタmを
[0]に戻し、ステップS79でCNTKEYNO
(m)=キーNO.であるか否かを判別する。これは、
新たにキーオフしたキーNO.を探すためである。m=
[0]のときCNTKEYNO(m)の値が新たなキー
オフのキーNO.と異なれば、ステップS80でm=
[7]であるか否かを判別し、NOのときはmをインク
リメントし(ステップS81)、ステップS79に戻
る。
[0]に戻し、ステップS79でCNTKEYNO
(m)=キーNO.であるか否かを判別する。これは、
新たにキーオフしたキーNO.を探すためである。m=
[0]のときCNTKEYNO(m)の値が新たなキー
オフのキーNO.と異なれば、ステップS80でm=
[7]であるか否かを判別し、NOのときはmをインク
リメントし(ステップS81)、ステップS79に戻
る。
【0077】このようにして新たにキーオフしたキーN
O.を探す処理を行い、8チヤンネルの全てのキーN
O.のうち新たにキーオフしたものがなければ、誤動作
としてステップS84に進む。
O.を探す処理を行い、8チヤンネルの全てのキーN
O.のうち新たにキーオフしたものがなければ、誤動作
としてステップS84に進む。
【0078】一方、新たにキーオフしたキーNO.が見
つかると(ステップS79でYESのとき)、ステップ
S82でCNTKEYNO(m)レジスタを[0]に戻
し、ステップS83でキーNO.をオフコマンドと共に
リングバッファに書き込み、ステップS84に進む。
つかると(ステップS79でYESのとき)、ステップ
S82でCNTKEYNO(m)レジスタを[0]に戻
し、ステップS83でキーNO.をオフコマンドと共に
リングバッファに書き込み、ステップS84に進む。
【0079】ステップS84では、再びAレジスタが
[0]であるか否を判別し、[0]でなければ、まだ新
たなキーオフがあると判断してステップS75に進んで
同様にビットシフト処理を行ってキャリーの有無を判断
する。これにより、次のキャリーが判別される。また、
ステップS84でAレジスタが[0]であれば、新たな
キーオフはもうないと判断してリターンする。
[0]であるか否を判別し、[0]でなければ、まだ新
たなキーオフがあると判断してステップS75に進んで
同様にビットシフト処理を行ってキャリーの有無を判断
する。これにより、次のキャリーが判別される。また、
ステップS84でAレジスタが[0]であれば、新たな
キーオフはもうないと判断してリターンする。
【0080】このようにして新たにキーオフしたキーN
O.があれば、そのキーに対応するキーNO.が消音命
令に対応するオフコマンドと共にリングバッファに書き
込まれて消音処理が行われる。これにより、音源システ
ム50による楽音信号の生成が停止され、サウンドの発
生が停止する。
O.があれば、そのキーに対応するキーNO.が消音命
令に対応するオフコマンドと共にリングバッファに書き
込まれて消音処理が行われる。これにより、音源システ
ム50による楽音信号の生成が停止され、サウンドの発
生が停止する。
【0081】このように、本実施例ではキーコモン線は
スイッチマトリクス回路1の単一の第1走査信号出力線
KOFおよび単一の第2走査信号出力線KOSの2本の
みで、これらによって第1スイッチ(XXF)および第
2スイッチ(XXS)が交互に走査され、押鍵速度が検
出される。そして、第1走査信号出力線KOFにはダイ
オード2aがあるので、押鍵誤検出が発生しない。
スイッチマトリクス回路1の単一の第1走査信号出力線
KOFおよび単一の第2走査信号出力線KOSの2本の
みで、これらによって第1スイッチ(XXF)および第
2スイッチ(XXS)が交互に走査され、押鍵速度が検
出される。そして、第1走査信号出力線KOFにはダイ
オード2aがあるので、押鍵誤検出が発生しない。
【0082】一方、第2走査信号出力線KOSにはダイ
オードはないが、構造上、第1スイッチ(XXF)は第
2スイッチ(XXS)より必ず先にオンするので、結
局、第2走査信号出力線KOSにダイオードがなくても
押鍵誤検出が発生しない。
オードはないが、構造上、第1スイッチ(XXF)は第
2スイッチ(XXS)より必ず先にオンするので、結
局、第2走査信号出力線KOSにダイオードがなくても
押鍵誤検出が発生しない。
【0083】したがって、押鍵誤検出を防止しつつ、従
来装置に比べてダイオードの数をほぼ半減させることが
できる。その結果、ダイオードについての部品費用や製
造費用を低減することができるとともに、さらにスイッ
チ用接点やダイオードを配置するためのPCB(プリン
ト回路基板)の面積も小さくすることができ、コストの
大幅な低減を図ることができる。
来装置に比べてダイオードの数をほぼ半減させることが
できる。その結果、ダイオードについての部品費用や製
造費用を低減することができるとともに、さらにスイッ
チ用接点やダイオードを配置するためのPCB(プリン
ト回路基板)の面積も小さくすることができ、コストの
大幅な低減を図ることができる。
【0084】なお、本発明の範囲内で種々の変形が可能
である。例えば、演奏操作を検出する鍵盤のタイプは限
定されず、本発明の目的に沿ったものであれは、どのよ
うなタイプでもよい。
である。例えば、演奏操作を検出する鍵盤のタイプは限
定されず、本発明の目的に沿ったものであれは、どのよ
うなタイプでもよい。
【0085】
【発明の効果】本発明によれば、キーコモン線を2本の
第1走査信号出力線および第2走査信号出力線のみと
し、これらによって第1スイッチおよび第2スイッチを
交互に走査して押鍵速度を検出しているので、押鍵誤検
出を防止しつつ、従来よりもダイオードの数をほぼ半減
させることができ、ダイオードについての部品費用や製
造費用を低減することができる。また、接点やダイオー
ドを配置するためのPCB(プリント回路基板)の面積
も小さくすることができ、コストの大幅な低減を図るこ
とができる。
第1走査信号出力線および第2走査信号出力線のみと
し、これらによって第1スイッチおよび第2スイッチを
交互に走査して押鍵速度を検出しているので、押鍵誤検
出を防止しつつ、従来よりもダイオードの数をほぼ半減
させることができ、ダイオードについての部品費用や製
造費用を低減することができる。また、接点やダイオー
ドを配置するためのPCB(プリント回路基板)の面積
も小さくすることができ、コストの大幅な低減を図るこ
とができる。
【図1】本発明に係る操作速度検出装置を適用した電子
楽器の一実施例の回路図である。
楽器の一実施例の回路図である。
【図2】同実施例における第1、第2スイッチの接点の
回路図である。
回路図である。
【図3】同実施例の鍵盤の断面構造を示す図である。
【図4】同実施例のマイクロコンピュータに設けられた
レジスタ群を示す図である。
レジスタ群を示す図である。
【図5】同実施例のマイクロコンピュータによる全体処
理のフローチャートである。
理のフローチャートである。
【図6】同実施例のタイマ割込み処理を示すフローチャ
ートである。
ートである。
【図7】同実施例の第2スイッチスキャン処理のサブル
ーチンを示すフローチャートである。
ーチンを示すフローチャートである。
【図8】同実施例のカウントアップ処理のサブルーチン
を示すフローチャートである。
を示すフローチャートである。
【図9】同実施例の第1スイッチスキャン処理のサブル
ーチンを示すフローチャートである。
ーチンを示すフローチャートである。
【図10】同実施例のオフチェック処理のサブルーチン
を示すフローチャートである。
を示すフローチャートである。
【図11】従来の電子楽器の操作速度検出装置の鍵盤の
構成を示す図である。
構成を示す図である。
【図12】従来の電子楽器の操作速度検出装置の押鍵検
出スイッチの接点の回路図である。
出スイッチの接点の回路図である。
1 スイッチマトリクス回路 2a、3a 接点 2b、25 ダイオード 11 鍵盤シャーシ 12 鍵 13 回路基板 14 第1ゴム接点スイッチ 15 第2ゴム接点スイッチ 16、17 押圧突起 23 走査信号入力線 40 マイクロコンピュータ 50 音源システム KIX(KI0〜KI60) 走査信号入力線 KOF 第1走査信号出力線 KOS 第2走査信号出力線 XXF 第1スイッチ XXS 第2スイッチ
Claims (1)
- 【請求項1】 各演奏操作子に設けられ、この演奏操作
子の操作によって順次オン作動する複数個の第1および
第2スイッチ手段と、 前記同一の演奏操作子内に設けられた前記第1および第
2スイッチ手段は、同一の走査信号入力線に接続される
とともに、該走査信号入力線は前記演奏操作子に対応す
る数だけ配置され、さらに前記第1スイッチ手段のそれ
ぞれはダイオードを介して単一の第1走査信号出力線に
接続され、前記第2スイッチ手段のそれぞれは直接単一
の第2走査信号出力線に接続されるように構成されたス
イッチマトリクス手段と、 このスイッチマトリクス手段内の第1および第2走査信
号出力線に交互に走査信号を出力するとともに、前記走
査信号入力線から前記走査信号を受け取ることにより、
前記複数個の第1および第2スイッチ手段のいずれがオ
ン状態にあるかを判別する走査手段と、 この走査手段により同一演奏操作子内に設けられた前記
第1および第2スイッチ手段が共にオン状態と判別され
たときに、そのオン時間差に対応する値を計測する計測
手段と、 を備えたことを特徴とする電子楽器の操作速度検出装
置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3353331A JPH05165472A (ja) | 1991-12-17 | 1991-12-17 | 電子楽器の操作速度検出装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3353331A JPH05165472A (ja) | 1991-12-17 | 1991-12-17 | 電子楽器の操作速度検出装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05165472A true JPH05165472A (ja) | 1993-07-02 |
Family
ID=18430123
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3353331A Pending JPH05165472A (ja) | 1991-12-17 | 1991-12-17 | 電子楽器の操作速度検出装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05165472A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007316397A (ja) * | 2006-05-26 | 2007-12-06 | Yamaha Corp | 操作検出装置 |
| JP2015075528A (ja) * | 2013-10-07 | 2015-04-20 | ヤマハ株式会社 | 電子楽器のスイッチスキャン装置 |
-
1991
- 1991-12-17 JP JP3353331A patent/JPH05165472A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007316397A (ja) * | 2006-05-26 | 2007-12-06 | Yamaha Corp | 操作検出装置 |
| JP2015075528A (ja) * | 2013-10-07 | 2015-04-20 | ヤマハ株式会社 | 電子楽器のスイッチスキャン装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4881440A (en) | Electronic musical instrument with editor | |
| US4922248A (en) | Key output method for keyboards | |
| EP0437289A2 (en) | Electronic musical instrument | |
| US4148017A (en) | Device for detecting a key switch operation | |
| GB1430297A (en) | Keyboard entry system with n-key rollover and n-key lockout protection | |
| US4138916A (en) | Key assignor | |
| US4176573A (en) | Intrakeyboard coupling and transposition control for a keyboard musical instrument | |
| KR930006616B1 (ko) | 전자 키보드 시스템 | |
| GB2089551A (en) | A chord generating apparatus of an electronic musical instrument | |
| JP3142016B2 (ja) | 電子楽器用鍵盤装置 | |
| JPH05165472A (ja) | 電子楽器の操作速度検出装置 | |
| US5239124A (en) | Iteration control system for an automatic playing apparatus | |
| JPS5922238B2 (ja) | キ−アサイナ | |
| JPS6242516B2 (ja) | ||
| US4193038A (en) | Key input apparatus | |
| US4958140A (en) | Comparator unit for data discrimination | |
| US4620469A (en) | Key assignor for a touch responsive electronic musical instrument | |
| JPS6262358B2 (ja) | ||
| US4341141A (en) | Polyphonic sliding portamento in a musical instrument | |
| US4957031A (en) | Automatic music playing apparatus having plural tone generating channels separately assignable to the parts of a musical piece | |
| US5710775A (en) | Error allowing pattern matching circuit | |
| JP3321955B2 (ja) | キーボード装置 | |
| JPS6242519B2 (ja) | ||
| GB1584537A (en) | Data processing | |
| US4867088A (en) | Device for selecting a diagnosing device or stitch forming device in electronic sewing machine |