以下、図面を参照して本発明の一実施の形態について説明する。図6は本発明を適用した電子鍵盤楽器のハード構成を示すブロック図であり、CPU1はROM2に格納されている制御プログラムに基づいてRAM3のワーキングエリアを使用して楽器全体の制御を行う。例えばROM2には鍵盤装置4の後述する鍵スイッチ部に応じた発音制御に関する各種処理プログラムが記憶されている。そして、CPU1は通常の電子鍵盤楽器の基本的な機能として、鍵盤装置4の鍵の操作イベントを検出してマニュアル演奏の制御を行う。さらに、パネル操作子5のスイッチ等の操作イベントを検出し各種スイッチの操作に応じた処理を行う。
また、CPU1は液晶パネル等の表示装置6の表示の制御を行い、鍵盤装置4の鍵スイッチ部の状態等に応じた報知内容の表示等を行う。なお、RAM3は、CPU1の処理に際して必要な、各種レジスタやフラグ、処理中の各種データ等を一時記憶するためのワーク領域として用いられる。例えば、RAM3内には、鍵盤装置4の鍵スイッチ部による接点時間差をカウントするためのソフトウエアカウンタ領域が設定されている。
タイマ7は自動演奏処理の割込み信号等を発生する回路である。音源8は、自動演奏時の演奏データや鍵盤装置4の操作によりCPU1が出力するキーオン信号/キーオフ信号、キーコード、音色データ、ベロシティデータなどの楽音パラメータに基づいて演奏信号(楽音信号)を発生し、効果装置9は、CPU1から設定される設定内容に応じた効果を演奏信号に付加し、それをサウンドシステム10に出力する。サウンドシステム10はD/A変換や増幅等を行ってスピーカーで発音する。なお、音源8はCPU1によって決定された発音の処理内容に応じた演奏信号を生成する「演奏信号生成手段」に対応する。
記憶装置11はハードディスク装置(HDD)、フロッピィ(商標)ディスク装置(FDD)、CD−ROM装置、光磁気ディスク(MO)装置、デジタル多目的ディスク(DVD)装置、スマートメディア(商標)、メモリースティック(商標)、コンパクトフラッシュ(登録商標)等であり、各種データを保存するために用いられる。例えば、この記憶装置11に鍵盤装置4における各鍵の鍵スイッチの状態を示す状態データや押鍵回数等の履歴データを蓄積(記憶)する。また、記憶装置11のハードディスク装置に通信制御プログラム等が記憶されており、外部インターフェース12を介して通信ネットワーク13に接続し、サーバ14と各種の通信を行う。そして、当該電子鍵盤楽器の状態(及び製品番号等)をサーバ14に報知するなどの処理を行う。
図1は、鍵盤装置4における鍵41と鍵スイッチ部42の要部構成を示す構成図である。この実施形態における鍵スイッチ部42は3メイク式の鍵スイッチ部である。なお、鍵盤装置4は複数の白鍵と複数の黒鍵とを備えているものであるが、この図1では図の手前に現れている鍵41(白鍵)を例に説明する。その他の鍵(白鍵及び黒鍵)についても同様の構成となっている。鍵41は、上方からの押鍵(押し下げる操作)により下方に揺動可能である。なお、鍵41は図示しない弾性部材により押鍵方向と反対方向に付勢されている。
鍵スイッチ部42は鍵41の下方に配設された基板43上に配設されている。鍵スイッチ部42は、鍵41の回動支点側から演奏者側に向けて鍵の長手方向に順に併設された第1、第2及び第3メイクスイッチ42a,42b,42cで構成されている。鍵41の下面には図示しないアクチュエータ部が形成されており、鍵41が押し下げ(揺動)されると、第1、第2及び第3メイクスイッチ42a,42b,42cが駆動する。
各メイクスイッチ42a,42b,42cは、それぞれ対向する接点A,Bで構成されており、各メイクスイッチ42a,42b,42cは鍵41により駆動される(押される)と両接点A,Bが接触(オン)し、鍵41が離されると両接点A,Bが離間(オフ)する。また、両接点A,Bの間隔は、第2メイクスイッチ42bは第1メイクスイッチ42aより広く、第3メイクスイッチ42cは第2メイクスイッチ42bより広くなっている。
これにより、鍵41を押し下げるとき(押鍵すると)、第1メイクスイッチ42a、第2メイクスイッチ42b、第3メイクスイッチ42cの順に「オン」となり、鍵41の操作をやめると(離鍵すると)、第3メイクスイッチ42c、第2メイクスイッチ42b、第1メイクスイッチ42aの順に「オフ」となる。すなわち、第1、第2及び第3メイクスイッチ42a,42b,42cは、連続した演奏操作(押鍵動作/離鍵動作)の操作程度に応じて反応(オン/オフ)する「複数段階のスイッチ」となっている。また、鍵盤装置4は「演奏操作手段」に相当する。
図2は鍵41の押し込み動作による鍵41の押し込み位置の時間的な推移とメイクスイッチのオン/オフの関係を概念的に示した図である。なお、以下の説明で、第1メイクスイッチ42aを「SW−a」、第2メイクスイッチ42bを「SW−b」、第3メイクスイッチ42cを「SW−c」として適宜表現し、「SW−aの位置(図2中のa1等)」、「SW−bの位置(図2中のb1等)」、「SW−cの位置(図2中のc1等)」は、それぞれ対応する接点A,Bがオン(丸印)する位置またはオフ(四角印)する位置を示す。なお、SW−aの位置等を単に「鍵の位置」ともいう。
この実施形態では、鍵の押し込み速度(接点時間差)を検出するために複数のソフトウエアタイマを用いており、SW−aのオンからSW−bのオンまでの時間差を計測するタイマを「abタイマ」、SW−aのオンからSW−cのオンまでの時間差を計測するタイマを「acタイマ」、SW−bのオンからSW−cのオンまでの時間差を計測するタイマを「bcタイマ」とする。このうち、acタイマまたはbcタイマの計測時間からベロシティを求めるが、後述のようにどちらのタイマの計測時間を用いるかは鍵スイッチ部42の反応状態に応じて変更する。またabタイマの計測時間は、acタイマ及びbcタイマの計測時間と共に鍵スイッチ42の状態のデータとして用いる。なお、ベロシティを求める計測時間は、周知のように押鍵の強さを算出するためのものであり、短ければ強く押鍵され長ければ弱く押鍵されたものと判断される。
図2に示すように、当該電子鍵盤楽器において、演奏者による鍵の押し込み動作に応じて鍵の位置がSW−aの位置(a1)を上方から下方へと通過した場合にはダンパーオン(ダンパー開放状態)となるとともに、abタイマとacタイマのカウントが開始される。そのままSW−bの位置(b1)を通過した場合にはabタイマは停止されbcタイマのカウントが開始される。さらに押し込み動作が続けられてSW−cの位置(c1)まで達すると、acタイマとbcタイマは停止されキーオン信号を発生する。このとき、後述のように、通常はbcタイマの計測時間(接点時間差)からベロシティを求める。一方、SW−bが「オン」されない場合には、acタイマの計測時間からベロシティを求める。
3メイク式構成である当該電子鍵盤楽器において、演奏者による鍵の押し込みが一旦緩められることに応じて、鍵がSW−aの位置まで戻ることなくSW−cからSW−aまでの途中の位置まで離され、その後再度、SW−cの位置まで押し込まれる場合として、2通りの場合がある。1つは鍵がSW−aとSW−bとの間まで離されてから再度SW−cの位置まで押し込まれる場合であり、もう1つは鍵がSW−bとSW−cとの間まで離され、再度、SW−cの位置まで押し込まれる場合である。
鍵がSW−aの位置まで戻ることなくSW−aとSW−bとの間まで離された場合には、その都度、SW−bの位置(b3)でbcタイマのカウントがし直される。これにより、個々の操作時における押し込みの強さや速度に応じたベロシティ値を確定することができる。その後再度、SW−cの位置(c3)まで押し込まれた場合には、その都度キーオン信号が発生される。一方、鍵がSW−aの位置まで戻ることなくSW−bとSW−cとの間まで離され、その後再度、SW−cの位置(c5)まで押し込まれた場合には、bcタイマのカウントがし直されることがない。また、ここではキーオン信号を発生しない。すなわち、c1,c3でキーオンされ、c5ではキーオンされない。
そして、演奏者による鍵の押し込みが緩められ、鍵がSW−aの位置(a2)まで戻りSW−aを下方から上方へ通過した場合には、キーオフ信号を発生する。なお、SW−cがオンとなる位置(c1)でキーオンし、SW−aがオフとなる位置(a2)でキーオフする動作は通常の動作である。
以上のように、第1、第2及び第3メイクスイッチ42a,42b,42cからなる鍵スイッチ部42は、複数段階で反応(オン/オフ)するが、この反応状態に応じてベロシティの計算に用いるカウンタ(発音の処理内容)及びキーオフ信号の出力タイミング(発音の処理内容)を変更する。なお、第1、第2及び第3メイクスイッチ42a,42b,42cにおいて、オンまたはオフとなった事象が「オンイベント」または「、オフイベント」であり、オンとなっている状態またはオフとなっている状態が「オン状態」または「オフ状態」である。このオン状態またはオフ状態が「スイッチの反応状態」に相当する。
次表1は鍵スイッチ部42における反応状態とそれに対応する処理内容の場合分けの一例を示している。この例で、反応状態はcase1〜case5の5つのパターンとし、処理内容はベロシティ(vel値)、キーオン信号のタイミング(Keyon)及びキーオフ信号のタイミング(Keyoff)とする。なお、見易くするために適宜アルファベットでで表記している。また、同表において、左端の「SW−a,SW−b,SW−c」に対応する右側の欄における「on/off」は「オン状態/オフ状態」を示し、左端の「Keyon,Keyoff」に対応する右側の欄における「on/off」は「オンイベント/オフイベント」を示している。
case1はSW−a,SW−b,SW−cの全てで「オン状態」が検出できる場合であり、ベロシティはbcタイマの計測時間(接点時間差)(c−b)から求める。また、キーオン信号の出力はSW−cの「オンイベント」のタイミング、キーオフ信号の出力はSW−aの「オフイベント」のタイミングとする。このcase1は鍵スイッチ部42に異常がない正常時動作の場合であり、以下のcase2〜case5は鍵スイッチ部42に異常が生じている異常時動作の場合である。
case2はSW−a,SW−cで「オン状態」が検出できるがSW−bで「オン状態」が検出できない場合であり、ベロシティはacタイマの計測時間(接点時間差)(c−a)から求める。また、キーオン信号の出力はSW−cの「オンイベント」のタイミング、キーオフ信号の出力はSW−aの「オフイベント」のタイミングとする。
case3はSW−b,SW−cで「オン状態」が検出できるがSW−aで「オン状態」が検出できない場合であり、ベロシティはbcタイマの計測時間(接点時間差)(c−b)から求める。また、キーオン信号の出力はSW−cの「オンイベント」のタイミング、キーオフ信号の出力はSW−bの「オフイベント」のタイミングとする。
case4はSW−cで「オン状態」が検出できるがSW−a,SW−bで「オン状態」が検出できない場合であり、ベロシティは所定値“60”(MIDIデータ)とする。また、キーオン信号の出力はSW−cの「オンイベント」のタイミング、キーオフ信号の出力はSW−cの「オフイベント」のタイミングとする。なお、この場合、ベロシティを所定値“60”としているが、予め決められた任意の値でもよいし、ユーザが所定値を設定できるものとしてもよい。
case5は、SW−a,SW−bの状態に関わらずSW−cで「オン状態」が検出できない場合であり、ベロシティは所定値“0”(MIDIデータ)とする。また、キーオン信号(キーオフ信号)の出力は行わず、発音をさせないものとする。
このように、case1の正常時動作及びcase2〜case5の各異常時動作の場合に応じて、ベロシティ、キーオフ信号という発音の処理内容を変更する。なお、case2〜case4のように異常時動作を行うモードを「フェイルプルーフモード」ともいう。
なお、この実施形態ではベロシティ及びキーオフ信号の出力が「発音の処理内容」であり、case1〜case4においてそれぞれ処理内容の「決定条件」が以下のように異なる。case1ではbcタイマの計測時間を用いることとSW−aの「オフイベント」が「決定条件」である。case2ではacタイマの計測時間を用いることとSW−aの「オフイベント」が「決定条件」である。case3ではbcタイマの計測時間を用いることとSW−bの「オフイベント」が「決定条件」である。case4では所定値“60”を用いることとSW−cの「オフイベント」が「決定条件」である。そして、この決定条件が変更される。
次に、フローチャートに基づいて実施形態の動作について説明する。図3はキースキャン処理のフローチャート、図4は演奏信号生成処理のフローチャート、図5は報知処理のフローチャートである。なお、以下の説明及びフローチャートにおいて、制御に用いる各レジスタ、フラグ、タイマ等の名称及びその内容の意味は以下のとおりであり、それらの記憶内容(値)は特に断らない限り同一のラベルで表す。
「n」は各鍵を識別(選択)するための鍵番号を格納するレジスタであり、鍵盤装置4が88鍵の場合ならn=1〜88である。「Kn」はn番目の鍵に割り当てられている音高(キーコード)を格納するレジスタである。「ASW」は同時に発音している音高の数すなわち発音数を格納するレジスタであり、新たに押鍵があると1増加し、離鍵されると1減少する。この「ASW」の初期設定値は“0”である。「KJ」は鍵の位置と動作状態を示すレジスタであり、SW−cがオフになった状態はKJ=B、このSW−cのオフからSW−bがオフになった状態はJK=A、このSW−bのオフからSW−aがオフになった状態はJK=0である。
「FR」は演奏信号生成に関するレジスタであり、FR=Aによって擬似的な共鳴音(ダンパーオンの効果)を発音させる処理を行う。また、FR=Bによってキーオンに対応する発音の処理を行い、FR=Cによってキーオフに対応する演奏信号の急速減衰処理を行う。「Kn−case」はcase1〜case4の反応状態の番号を記憶するレジスタであり、Kn−case=1はcase1、Kn−case=2はcase2、Kn−case=3はcase3、Kn−case=4はcase4の状態を示す。なお、「ASW」以外は「Kn」に対応する各音高(各鍵)にそれぞれ固有に設けられたものである。
なお、以下の説明及びフローチャートからわかるように、各フローチャートで示すプログラムとこのプログラムをCPU1に実行させて得られる機能が、請求項における「動作パターン検出手段」、「楽音制御手段」及び「報知手段」に対応している。
図3のキースキャン処理では、ステップS1でn(鍵)を選択して、ステップS2でnの鍵スイッチ部42のSW−a、SW−b、SW−cをスキャンする準備をし、ステップS3〜ステップS8で各SW−a、SW−b、SW−cのオンイベントとオフイベントの有無を判定する。そして、この処理を鍵毎に行い、このフローを通る度にステップS1でnの番号を変更する。なお、フローチャートでは、現在選択されているnのスイッチであることを、「Kn(SW−a)、Kn(SW−b)、Kn(SW−c)」のように表記する。
ステップS3でSW−aのオンイベントがあれば、ステップS11〜S13でabタイマとacタイマでカウント(計測)を開始するとともに発音数「ASW」を増加させる。ステップS14はダンパーオンの共鳴音を発音するべきか否かを判定するもので、「ASW=2、かつ、KJ≠0」なら同時に2鍵が押鍵されている状態(ASW=2)で発音中の鍵が存在するので、ステップS15でFR=Aに設定してステップS100の演奏信号生成処理(図4)を行う。なおKJ≠0は、発音中の鍵盤が存在するというもので1度発音処理されノートオフされていないものがあることを示す。そして、図4においてFR=Aであるので、ステップS71からステップS73に移行して疑似共鳴音を付加する。なお、ASW=1のときは共鳴音は発生することはありえず、またASW≧3のときには既にASW=2となったときに共鳴音を発生させているため改めて発音させない。
次に、図3のステップS4でSW−bのオンイベントがあれば、ステップS21,S22で、bcタイマのカウントを開始するとともに既に稼動しているabタイマのカウントを停止する。これにより、SW−aのオンからSW−bのオンまでの接点時間差の計測が終了する。
次に、ステップS5でSW−cのオンイベントがあれば、ステップS31,S32でacタイマとbcタイマのカウントを停止するとともに、ステップS33でFR=Bに設定して、ステップS100の演奏信号生成処理(図4)を行う。これにより、SW−aのオンからSW−cのオンまでの接点時間差と、SW−bのオンからSW−cのオンまでの接点時間差の計測が終了する。また、FR=Bとなることにより、後述のように演奏信号生成処理で発音の処理が行われる。
以上がSW−a、SW−b、SW−cのオンイベントの場合の処理であり、通常の押鍵操作に対応して、ほとんどの場合はこのオンイベントを契機に演奏信号生成処理で所定の発音が行われる。そして、離鍵操作に対応してステップS6〜S8でSW−a、SW−b、SW−cのオフイベントの場合の処理を行う。なお、通常の離鍵操作時のオフイベントの順番に対応してステップS8の処理から説明する。
ステップS8でSW−cのオフイベントがあれば、発音が開始されて鍵が少し戻されたということが検知されたことであり、ステップS41の後のステップS42でその状態(図2のc2,c4等)をKJ=Bと設定することにより記憶する。なお、このときの鍵の戻し動作は少しなので、通常はキーオフ処理はまだこの段階では行なわないが、ステップS41のcase判断でスイッチが故障している状況が認知されていれば(この場合はcase4)、キーオフ処理を行うものと判断してステップS43でKJ=AとしてステップS61の処理(後述のSW−aがオフのときのキーオフと同様な処理)に移行する。
次に、ステップS7でSW−bのオフイベントがあれば、上記SW−cのオフイベントを経由してきたかをステップS51でKJ=Bであるかで判断し、そうでなければKJを更新せずにステップS52でbcタイマ(SW−bのオンイベントで計測を開始したもの)をクリアする。すなわち、SW−bで一旦オンされてSW−cの位置まで押さずに戻されたと判断される場合である。一方、SW−cのオフイベントを経由してきた場合(KJ=B)は、ステップS53でKJ=Aに設定して更新し、ステップS54でcaseを判断して対応した故障のもの(この場合はcase3)であればステップS61の処理(後述のSW−aがオフのときのキーオフと同様な処理)に移行する。
次に、ステップS6でSW−aのオフイベントがあれば、ステップS61で「ASW」の押鍵数のカウントを減らし、ステップS62でKJ=Aであるかを判定する。KJ=Aの場合は、ステップS63でKJをクリアーし、ステップS64でFR=Cに設定して、ステップS100の演奏信号生成処理(図4)を行う。これにより、FR=Cとなるので演奏信号の急速減衰処理(キーオフの処理)が行われる。KJ=Aでない場合は、ステップS65〜S67で、KJ、abタイマ、acタイマ(それぞれSW−aがオンされて開始されたもの)をクリアする。
ここで、ステップS62でKJ=Aとなるのは前掲の表1の「Key off」のcase1〜case4に対応して3通りある。すなわち、S8→S41→S42→S7→S51→S53→S54→S6→S61の第1ループ、S8→S41→S42→S7→S51→S53→S54→S61の第2ループ、S8→S41→S43→S61の第3ループがある。
第1ループは、Kn−caseは4でも3でもなくSW−c,SW−b,SW−aが順にオフイベント(S8,S7,S6)となった場合であり、case1またはcase2の場合に第1メイクスイッチ(SW−a)42aのオフイベントがキーオフ信号出力のタイミングとなる。第2ループは、Kn−case=3でSW−c,SW−bが順にオフイベント(S8,S7)となった場合であり、case3の場合に第2メイクスイッチ(SW−b)42bのオフイベントがキーオフ信号出力のタイミングとなる。第3ループは、Kn−case=4でSW−cがオフイベント(S8)となった場合であり、case4の場合に第3メイクスイッチ(SW−c)42cのオフイベントがキーオフ信号出力のタイミングとなる。なお、キーオン信号出力のタイミングは第3メイクスイッチ(SW−c)42cのオンイベントのタイミングである。
図4の演奏信号生成処理では、ステップS71,S72でFRを判定し、FR=AならステップS73で疑似共鳴音を付加し、FR=BならステップS75以降で演奏信号を生成する処理を行う。FRがAでもBでもなければ、すなわちステップS64(図3)でFR=Cと設定された場合、ステップS74で音源8にキーオフ信号を出力して演奏信号を減衰させる急速減衰処理を行う。
ここで、FR=BとなってステップS75以降の処理を行うのは、図3のステップS5でSW−cのオンイベントがあってステップS31,S32,S33と進んだ場合である。すなわち、鍵が最大深く操作されて発音開始という状態になったときである。現在、既にその鍵での発音が発音中であれば(ステップS75でYES)、ステップS76でその発音中の楽音を停止させる。この場合は再発音となるが、これは、キーオンの後に完全に鍵が戻されずに途中からまた鍵を押し下げた場合におきるものである。そして、ステップS77,S78,S79でSW−aとSW−bの状態を判定する。
前述のように図3のステップS3〜S8は各スイッチのオンイベントまたはオフイベントの有無を判定しているが、このステップS77,S78,S79はオン状態であるかオフ状態であるか(スイッチの反応状態)を判定する。そして、このステップS77,S78,S79のフローは鍵が最大深く操作された場合(FR=B)のフローであるので、鍵スイッチ部42に異常がなければSW−aとSW−bは共にオン状態となっているはずであり、これ以外は鍵スイッチ部42が正常でないことになる。
SW−aとSW−bが共にオン状態のときは、ステップS81でKn−case=1に設定し、現在の音高(Kn)を音高データKCとし、ベロシティvelをTimeKn(bc)の値から算出し、それぞれKC、vel及びキーオン信号を音源8に出力する。SW−aがオン状態でSW−bがオフ状態のときは、ステップS82でKn−case=2に設定し、現在の音高(Kn)を音高データKCとし、ベロシティvelをTimeKn(ac)/2の値から算出し、それぞれKC、vel及びキーオン信号を音源8に出力する。SW−aがオフ状態でSW−bがオン状態のときは、ステップS83でKn−case=3に設定し、現在の音高(Kn)を音高データKCとし、ベロシティvelをTimeKn(bc)の値から算出し、それぞれKC、vel及びキーオン信号を音源8に出力する。SW−aとSW−bが共にオフ状態のときは、ステップS84でKn−case=4に設定し、現在の音高(Kn)を音高データKCとし、ベロシティvelを所定値“60”に設定し、それぞれKC、vel及びキーオン信号を音源8に出力する。
次にステップS85でKn−case=1であるか否かを判定し、Kn−case=1でなければ鍵スイッチ部42の反応状態が正常でないと判断し、ステップS86で報知処理(図5)を行ってステップS87に進む。ステップS87では、TimeKn(ac)、TimeKn(ab)、TimeKn(bc)を全てクリアする。このタイマはベロシティを決めるため鍵の速度を検出していたものであるが、この段階で信号生成や故障診断報知での使用が完了したので、ここでクリアーを行なう。同じ鍵が操作されたときには、またこのタイマで時間がカウントされる。
なお、ステップS81,S83でベロシティvelの算出にTimeKn(bc)を用いる場合は、例えばTimeKn(bc)の値に変換係数Pを乗算してvelとする。これに対応して、ステップS82でベロシティvelの算出にTimeKn(ac)を用いる場合は、TimeKn(ac)/2の値に変換係数Pを乗算してvelとする。これは、TimeKn(ac)の値はTimeKn(bc)の略2倍の値となると見なせるからである。
図5の報知処理では、ステップS91で、鍵Knごとに鍵スイッチ部42の状態のデータを蓄積する。この状態のデータは、鍵スイッチ部42の反応状態を示す番号Kn−case、タイマの値TimeKn(ac)、TimeKn(ab)、TimeKn(bc)である。なお、タイマの値は再度その鍵が操作されたときは新しいデータで上書きしてしまってもよい。また、鍵Knごとに最大深く操作されてオンとなるSW−c(接点)のオン回数(またはオフ回数)である押鍵回数をカウントし、履歴データとして蓄積する。
次に、ステップS92で、鍵Knごとの状況を解析する。この場合、モニターして記録してある各スイッチ間の接点時間差(タイマの値)を計算や比較をすることで解析し、状況を推察する。なお、この処理はKn−case=1でない鍵のみが基準であるが、その周辺の鍵についても同様な状況に陥る可能性が認められる場合は、その旨の解析結果を出す。
次に、ステップS93で、ステップS91、ステップS92における解析結果に応じて、ユーザやサーバ14へ報知するメッセージを作成する。
そして、ステップS94で、作成したメッセージを適宜ユーザやサーバ14に報知する。この報知手段は、当該電子鍵盤楽器の表示装置6の表示画面に表示させたり、音声で読み上げたりするもので、サーバ14へはインターネット経由などの通信ネットワーク13を介して情報送信する。
以上説明したフローチャートの動作により、鍵スイッチ部42の第1メイクスイッチ42a(SW−a)や第2メイクスイッチ42b(SW−b)に異常が検出されると、キーオフ信号を出力するタイミングすなわちキーオフのトリガーとなるメイクスイッチを変更し、またベロシティを決定する時間計測のトリガーをかけるメイクスイッチを変更する。したがって、鍵スイッチ部に接触不良などが生じても、キーオフ信号を出力することができ、またベロシティを付与する処理を行うことができる。また、後述説明するように電子鍵盤楽器の状態をユーザやサーバ14に報知することができる。
前掲の表1にも示したように、実施形態では、キーオン信号を正常時動作でも異常時動作(フェイルプルーフモード)でも第3メイクスイッチ42cのオンイベントのタイミングで出力するようにしているが、このキーオン信号を出力するタイミング、及びキーオフ信号を出力するタイミングは、実施形態のものに限定されるものではない。例えば、第1〜第3メイクスイッチ42a,42b,42cのうち、少なくとも一つのメイクスイッチにおいてオンイベント/オフイベント(あるいはオン状態)が検出できるものがあれば、そのメイクスイッチのオンイベントでキーオン信号を出力し、オフイベントでキーオフ信号を出力するようにしてもよい。この場合、複数のスイッチが正常な場合、深い方のスイッチでキーオン信号を出力し、浅い方のスイッチでキーオフ信号を出力するのがよい。
また、実施形態では、接点に異常のある鍵スイッチ部についてのみ、キーオフ信号、ベロシティの元となるメイクスイッチを変更するようにしているが、一つの鍵スイッチ部で異常のある場合でも、その異常の鍵スイッチ部を含む例えば1オクターブの範囲内の鍵に対応する鍵スイッチ部についても、同様の条件でキーオフ信号、ベロシティの元となるメイクスイッチを変更するようにしてもよい。このようにすると、異常のある鍵だけ消音タイミングやベロシティが隣接鍵と異なる状態が目立たず、演奏者に違和感を与えるのを防止できる。また、このように所定の範囲内の鍵にも適用するか異常の鍵スイッチ部のみに適用するかをユーザが選択できるようにしてもよい。また、このようなフェイルプルーフモードを有効にするか無効にするかをユーザが選択できるようにしてもよい。この場合、最初は有効に自動設定されていて、一度フェイルプルーフモードになった後は、ユーザはその状況を把握できるので、その後は所望により有効/無効を選択できるようにしてもよい。
次に、ステップS92における状況の解析や、ステップS93,S94の報知手段による表示等の処理の例を説明する。
先ず、Kn−caseの値だけで鍵スイッチ部42の反応状態を解析することができ、case2〜4のときフェイルプルーフモードであることを報知する。すなわち、case2〜4の場合、従来の電子楽器だとすると消音されないが、実施形態のようにcase2〜4の場合もとりあえず消音される。そこで、このcase2〜4のフェイルプルーフモードの状態であることを示すために「鍵盤のスイッチが寿命です。至急部品交換して下さい。」あるいは「○○○サービス、TEL:○○○−○○○−○○○○」などの表示を行う。また、さらに詳細な表示として「○○の鍵が異常です」のように、フェイルプルーフモードで動作している鍵(鍵スイッチ部)の情報を表示するようにしてもよい。当然にcase1の場合には表示しない。またcase5の場合には判定不能であり表示しない。
このように、case2〜4のときに演奏者(ユーザ)に対して、異常の状態であることが表示(報知)されるので、演奏者は現在のキーオンやキーオフのタイミング、ベロシティが通常のものと異なることを容易に認識できる。例えば、この表示がなければ、フェイルプルーフモードであることを認識できないことがある。例えば実施形態のように3つのスイッチで3通りのvel値を検出し、このvelとして最善の応急処理が為された場合には耳では故障を感知できない可能性もでてくる。しかし、上記の表示によりフェイルプルーフモードであることを容易に認識できる。
また、鍵スイッチ部に異常がない場合には、押鍵の仕方によらずSW−a,SW−b,SW−cにおけるオンイベント/オフイベントの順番には一定の規則がある。例えば「SW−bがオン→SW−bがオフ→SW−cがオン」となることはなく、「SW−bがオフ」と「SW−cがオン」との間で「SW−bがオン」となるはずである。そこで、このオンイベント/オフイベントの順番から、鍵スイッチ部の異常を検出するようにしてもよい。
ここで、鍵スイッチ部42は耐久性高く設計されているので、通常はcase2〜case5となることはなくcase1であり、このようなcase2〜case5となる前に、鍵スイッチ部42の反応状態を解析して各種の報知を行うことができる。例えば、実施形態におけるSW−a、SW−b、SW−cの3つのスイッチ(接点)により接点時間差であるタイマTimeKn(ac)、TimeKn(ab)、TimeKn(bc)のカウント値を求め、これらをそれぞれベロシティvel(c−a)、vel(b−a)、vel(c−b)とし、予め設定した定数α,β,γ,δ,ε,ζに対して次式の条件でスイッチの状況(経年変化等)を判定する。そして、次式の条件を満足する場合には正常とする。また、満足しない場合には「やや老朽化が進んでいる」と判断し、この場合、「スイッチのメンテナンスの時期です。早めに交換しましょう。」などの表示を行ってもよい。
このように、各鍵の鍵スイッチ部42が複数のスイッチ42a,42b,42cを備えているので、一つの鍵に対して複数の接点時間差を求めることができ、これらの接点時間差の比(上記の例ではvel(b−a)/vel(c−b)等)により、スイッチ(接点)の疲労進行具合が検出あるいは把握でき、動作不良となることを未然に防止することができる。この接点時間差の比を用いると、鍵盤に備えられている鍵スイッチ部の接点という既存のハードウエアを利用できるので、特別な構成を不要としながら鍵盤装置の疲労状態を検出できるというメリットがある。
また、ステップS91で押鍵回数がカウントされる。この押鍵回数は工場出荷時からカウントし、電源オフのときでもこのカウント値をバッテリーバックアップして蓄積する。この蓄積されたカウント値(蓄積データ)が予め決められた特定の回数となる場合に応じて、部品交換を推奨する意の表示を行うようにしてもよい。
例えば、次表2のように、各鍵の音名「A−1,A♯−1,B−1,C0,…,C7」に対応させたカウンタ「CA-1 ,CA♯-1,CB-1 ,CC0,…,CC7」の各カウント値を記憶する。そして各カウント値が、各カウンタと回数の程度「K1,K2,…KN」に応じた特定の設定値「K1A-1 ,K1A♯-1,…,K1C7」、「K2A-1 ,K2A♯-1,…,K2C7」、…「KNA-1 ,KNA♯-1,…,KNC7」に達した場合、各回数の程度「K1,K2,…KN」に応じた表示を行う。例えば、各鍵のうちのどれか一つがK1の設定値に達したときは「やや消耗しています。」、K2の設定値に達したときは「そろそれ交換時期です。」などの表示を行う。
鍵スイッチ部の接点を老朽化させる支配的な要素は押鍵回数であり、こ上記のようにスイッチの押鍵回数をカウントすることで、鍵スイッチ部の疲労進行具合が検出あるいは把握でき、動作不良となることを未然に防止することができる。この場合、上記のように部品交換の推奨に利用せずに、単にカウント値を表示するようにしてもよい。
ここで、前記のようにフェイルプルーフモードとなった場合や押鍵回数により鍵スイッチ部の疲労が検出された場合、部品交換の推奨、あるいはカウント値の表示に利用せずに、フェイルプルーフモードとなった特定の鍵やカウントの状況をユーザに敢えて公開しなで、例えばメンテナンス時などに確認できるような利用の仕方でもよい。このように、ユーザに公開しないことにより、次のようなメリットがある。
例えば、一つの鍵でも接点の異常や老朽化が確認できれば、他の鍵の接点も老朽化が進んでいると考えられる。しかし、一つの鍵の鍵スイッチ部について異常が有ることをユーザに提示すると、特定の鍵だけが疲労しているかのように映り、実際には他にも疲労しているものがある(すなわち疲労予備軍がたくさんある)ことを見逃すことがある。これにより、その部品(鍵スイッチ部)だけを交換しても、その交換直後に類似の理由で部品交換をしなければならないことが生じる可能性が高い。このような類似理由の部品交換という事態は避けるべきである。そこで、ユーザに公開しないほうが良い場合もある。
また、前記タイマTimeKn(ac)、TimeKn(ab)、TimeKn(bc)のカウント値あるいはベロシティvel(c−a)、vel(b−a)、vel(c−b)、あるいは前記押鍵回数のカウント値などの履歴データを、通信ネットワーク13を介してサーバ14に送信するようにしてもよい。
この場合、当該電子楽器の製造メーカ等がサーバ14を介して得られる上記情報から市場の利用状況を把握し、故障の未然防止を図ることができる。特に、部品の異常をユーザに公開しない場合に有効である。なお、従来は実際に不具合が生じてサービスセンターなどに連絡があるまで、不具合に対応することが不可能であった。このように、実施形態によれば、特にネットワークに接続できる電子楽器(ネット楽器)の新たな付加価値として故障の未然防止を実現できる。
また、押鍵回数をカウントする場合、例えばカウント値(総計)の最も多いユーザ(その電子楽器)に対して、「あなたは、この電子楽器を使って頂いているお客様のなかで最も頻度高く使って頂いたお客様です」などとして、表彰のデータとして利用してもよいし、カウント値をを「100万回の打鍵おめでとうございます」等の表示を行う契機としてもよい。この種の表示を行う場合、ネットワークで配信してもよいし、電子楽器単独で表示できるようにしてもよい。
以上の実施形態では、鍵スイッチ部が3段階のメイクスイッチである場合について説明したが、2段階、4段階以上でもよい。また、実施形態では各スイッチがメイクスイッチである場合について説明したが、ブレイクスイッチでもよい。また、反応状態がオン/オフではなく、所定の2値の反応状態をとるようなスイッチでもよい。
また、実施形態ではプログラムとCPU1で得られる機能が、「スイッチ状況検出手段」、「発音処理決定手段」、「決定条件変更手段」及び「報知手段」を構成し、スイッチ状況検出手段、発音処理決定手段及び決定条件変更手段が混在する形態となっているが、これらの各手段はそれぞれ別のサブルーチンで個別に構成してもよい。また、決定条件変更手段はスイッチの異常を毎回検出するものではなく、定期的に検出するようなものでもよい。なお、プログラムとCPUとで構成しなくてもよいことはいうまでもない。
また、実施形態では、電子鍵盤楽器を例に説明したが、本発明は、操作子の鍵スイッチ部として複数段階で反応するスイッチを有するものであれば、他の形態の電子楽器にも適用できる。
1…CPU、2…ROM、3…RAM、4…鍵盤装置、6…表示装置、8…音源、12…外部インターフェース、13…通信ネットワーク、14…サーバ、41…鍵(演奏操作子)、42…鍵スイッチ部、42a…第1メイクスイッチ(スイッチ)、42b…第2メイクスイッチ(スイッチ)、42c…第3メイクスイッチ(スイッチ)