(57)【要約】【課題】  より広い範囲で故障の原因や状態を検出してユーザに通知することが可能となる電子鍵盤楽器およびその制御方法を実現するためのプログラムを提供する。【解決手段】  駆動制御処理部４ａは、タイマ７を用いて、駆動制御部３ｃに駆動オン要求を出力してから、この駆動オン要求に応じたダンパリリースをスキャン部３ｄから受信するまでの時間を計時し、この計時時間が第１のタイムアウト時間を超えたときには、所定のデバイスに何らかの故障が発生したと判断し、「ダンパリリース・ノーリアクション」の通知をアプリケーション４ｂに行う。同様にして、駆動制御処理部４ａは、タイマ７を用いて、駆動制御部３ｃに駆動オフ要求を出力してから、この駆動オフ要求に応じた鍵盤キーオフをスキャン部３ｄから受信するまでの時間を計時し、この計時時間が第２のタイムアウト時間を超えたときには、所定のデバイスに何らかの故障が発生したと判断し、「キーオフ・ノーリアクション」の通知をアプリケーション４ｂに行う。【選択図】図３
2008233365.tif 000002
【特許請求の範囲】
【請求項１】
複数の鍵を備えた鍵盤と、
供給された発音指示データに基づいて楽音を生成する電子音源と、
前記複数の鍵のそれぞれに対して、非押鍵状態から最深押鍵状態までの間で、少なくとも２箇所の押下位置に達したことを検出する検出手段と、
前記複数の鍵のそれぞれを押鍵方向または離鍵方向に駆動する駆動手段であって、供給された駆動指示データによって指示される鍵を、当該駆動指示データによって指示される方向に駆動させるものと、
演奏データに基づいて前記発音指示データおよび前記駆動指示データを生成する生成手段と、
該生成手段によって生成された発音指示データを前記音源に供給するとともに、該生成手段によって生成された駆動指示データを前記駆動手段に供給する供給手段と、
該供給手段によって供給された駆動指示データと、該駆動指示データの供給に応じて前記検出手段によって検出された押下位置とに基づいて、異常動作内容を検出し、該検出した異常動作内容に応じた通知を行う通知手段と
を有することを特徴とする電子鍵盤楽器。
【請求項２】
前記通知手段は、想定される異常動作内容として、予め用意した複数種類の異常動作内容の中から、前記供給された駆動指示データおよび前記検出された押下位置に基づいて、１つの異常動作内容を選択し、該選択した異常動作内容に応じた通知を行うことを特徴とする請求項１に記載の電子鍵盤楽器。
【請求項３】
前記生成手段によって所定の鍵を押鍵方向に駆動指示する駆動指示データが生成され、前記供給手段によって該生成された駆動指示データが前記駆動手段に供給されたときに計時を開始し、前記検出手段によって前記少なくとも２箇所の押下位置のうちの浅い方の押下位置が検出されたときに計時を停止する計時手段をさらに有し、
前記計時手段による計時時間が所定のタイムアウト時間を超えたときには、前記通知手段は、「ダンパリリース・ノーリアクション」を通知することを特徴とする請求項１に記載の電子鍵盤楽器。
【請求項４】
前記生成手段によって所定の鍵を離鍵方向に駆動指示する駆動指示データが生成され、前記供給手段によって該生成された駆動指示データが前記駆動手段に供給されたときに計時を開始し、前記検出手段によって前記少なくとも２箇所の押下位置のうちの深い方の押下位置が検出されなくなったときに計時を停止する計時手段をさらに有し、
前記計時手段による計時時間が所定のタイムアウト時間を超えたときには、前記通知手段は、「キーオフ・ノーリアクション」を通知することを特徴とする請求項１に記載の電子鍵盤楽器。
【請求項５】
複数の鍵を備えた鍵盤と、供給された発音指示データに基づいて楽音を生成する電子音源と、前記複数の鍵のそれぞれに対して、非押鍵状態から最深押鍵状態までの間で、少なくとも２箇所の押下位置に達したことを検出する検出手段と、前記複数の鍵のそれぞれを押鍵方向または離鍵方向に駆動する駆動手段であって、供給された駆動指示データによって指示される鍵を、当該駆動指示データによって指示される方向に駆動させるものとを備えた電子鍵盤楽器を制御する制御方法をコンピュータに実行させるプログラムであって、
前記制御方法は、
演奏データに基づいて前記発音指示データおよび前記駆動指示データを生成する生成ステップと、
該生成ステップによって生成された発音指示データを前記音源に供給するとともに、該生成ステップによって生成された駆動指示データを前記駆動手段に供給する供給ステップと、
該供給ステップによって供給された駆動指示データと、該駆動指示データの供給に応じて前記検出手段によって検出された押下位置とに基づいて、異常動作内容を検出し、該検出した異常動作内容に応じた通知を行う通知ステップと
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵盤を備え、該鍵盤の各鍵を自動演奏に合わせて駆動制御する電子鍵盤楽器およびその制御方法を実現するためのプログラムに関する。
【背景技術】
【０００２】
鍵盤を備え、該鍵盤の各鍵を自動的に駆動制御する鍵盤楽器は、従来から知られている。
【０００３】
このような鍵盤楽器として、アコースティックピアノに自動演奏を行わせるようにした、いわゆる自動ピアノと呼ばれるものがある。自動ピアノは、各鍵をソレノイド等のアクチュエータで駆動可能に構成し、予め記録された演奏情報（ピアノロールまたはＭＩＤＩ（Musical Instrument Digital Interface）データ）に基づいて、対応するアクチュエータを制御することで、対応する鍵を駆動する。その結果、当該鍵に連動するハンマが駆動されて打弦され、自動演奏が実現される。
【０００４】
一方、電子ピアノは、電子音源を備え、予め記憶された演奏データ（ＭＩＤＩデータ）を再生して生成した楽音パラメータを電子音源に供給し、電子音源から楽音を発音させることで、自動演奏を行うようにしている。つまり、電子ピアノは、自動ピアノに対して、鍵を駆動しなくても自動演奏できる点が異なっている。しかし昨今、電子ピアノでも、楽器らしさをより表現したいという観点から、電子音源から楽音を発音させると同時に、鍵を自動的に駆動させるようにしたものが商品化されている。
【０００５】
ところで、自動鍵駆動タイプの電子ピアノは通常、アクチュエータである、ソレノイドを駆動するために、ソレノイドコイルに電力を供給する電力供給回路を備えている。この電力供給回路が故障して、過剰電圧が電力供給回路から出力された場合でも、装置の破損や出火などの事故が発生しないように、何らかの予防対策が採られている。この予防対策として、電力供給回路とソレノイドコイルとの間にリレーを設け、ソレノイドコイルへ、所定電圧を超える過剰電圧が印加されたときに、リレーを遮断するという予防対策を採るようにしたものがある（たとえば、特許文献１参照）。
【特許文献１】特開２００４−２９５４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記従来の自動鍵駆動タイプの電子ピアノでは、鍵駆動に関する故障として、ソレノイドコイルへの過剰電圧通電は検出されるものの、それ以外の故障の原因や状態は検出されなかった。つまり、鍵駆動に関する故障に限っても、たとえば、ソレノイドの推力低下や、押離鍵時の鍵のスティック、鍵スイッチの接点不良など、数多くの故障の原因や状態が考えられる。そして、これらの故障の原因や状態を検出してユーザに通知したいという要求も、少なからずあるが、上記従来の電子ピアノでは、この要求に応えることができなかった。
【０００７】
本発明は、この点に着目してなされたものであり、より広い範囲で故障の原因や状態を検出してユーザに通知することが可能となる電子鍵盤楽器およびその制御方法を実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１に記載の電子鍵盤楽器は、複数の鍵を備えた鍵盤と、供給された発音指示データに基づいて楽音を生成する電子音源と、前記複数の鍵のそれぞれに対して、非押鍵状態から最深押鍵状態までの間で、少なくとも２箇所の押下位置に達したことを検出する検出手段と、前記複数の鍵のそれぞれを押鍵方向または離鍵方向に駆動する駆動手段であって、供給された駆動指示データによって指示される鍵を、当該駆動指示データによって指示される方向に駆動させるものと、演奏データに基づいて前記発音指示データおよび前記駆動指示データを生成する生成手段と、該生成手段によって生成された発音指示データを前記音源に供給するとともに、該生成手段によって生成された駆動指示データを前記駆動手段に供給する供給手段と、該供給手段によって供給された駆動指示データと、該駆動指示データの供給に応じて前記検出手段によって検出された押下位置とに基づいて、異常動作内容を検出し、該検出した異常動作内容に応じた通知を行う通知手段とを有することを特徴とする。
【０００９】
請求項２に記載の電子鍵盤楽器は、請求項１の電子鍵盤楽器において、前記通知手段は、想定される異常動作内容として、予め用意した複数種類の異常動作内容の中から、前記供給された駆動指示データおよび前記検出された押下位置に基づいて、１つの異常動作内容を選択し、該選択した異常動作内容に応じた通知を行うことを特徴とする。
【００１０】
請求項３に記載の電子鍵盤楽器は、請求項１の電子鍵盤楽器において、前記生成手段によって所定の鍵を押鍵方向に駆動指示する駆動指示データが生成され、前記供給手段によって該生成された駆動指示データが前記駆動手段に供給されたときに計時を開始し、前記検出手段によって前記少なくとも２箇所の押下位置のうちの浅い方の押下位置が検出されたときに計時を停止する計時手段をさらに有し、前記計時手段による計時時間が所定のタイムアウト時間を超えたときには、前記通知手段は、「ダンパリリース・ノーリアクション」を通知することを特徴とする。
【００１１】
請求項４に記載の電子鍵盤楽器は、請求項１の電子鍵盤楽器において、前記生成手段によって所定の鍵を離鍵方向に駆動指示する駆動指示データが生成され、前記供給手段によって該生成された駆動指示データが前記駆動手段に供給されたときに計時を開始し、前記検出手段によって前記少なくとも２箇所の押下位置のうちの深い方の押下位置が検出されなくなったときに計時を停止する計時手段をさらに有し、前記計時手段による計時時間が所定のタイムアウト時間を超えたときには、前記通知手段は、「キーオフ・ノーリアクション」を通知することを特徴とする。
【００１２】
上記目的を達成するため、請求項５に記載のプログラムは、請求項１と同様の技術的思想によって実現できる。
【発明の効果】
【００１３】
請求項１または５に記載の発明によれば、駆動手段に供給した駆動指示データと、該駆動指示データの供給に応じて検出手段から検出された押下位置とに基づいて、異常動作内容が検出され、該検出された異常動作内容に応じた通知がなされるので、より広い範囲で故障の原因や状態を検出してユーザに通知することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１５】
図１は、本発明の一実施の形態に係る電子鍵盤楽器の概略構成を示すブロック図である。
【００１６】
同図に示すように、本実施の形態の電子鍵盤楽器は、各種情報を入力するための複数のスイッチやホイール、ジョイスティックを含む設定操作子１と、設定操作子１の操作状態を検出する検出回路２と、演奏情報を入力するための鍵盤装置３と、装置全体の制御を司るＣＰＵ４と、該ＣＰＵ４が実行する制御プログラムや、各種テーブルデータ等を記憶するＲＯＭ５と、楽曲データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ６と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ７と、各種情報等を表示する、たとえば液晶ディスプレイ（ＬＣＤ）および発光ダイオード（ＬＥＤ）等を備えた表示器８と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する外部記憶装置９と、楽曲データを自動再生するシーケンサ１０と、外部ＭＩＤＩ機器等の外部機器１００を接続し、この外部機器１００とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１１と、鍵盤装置３から入力された演奏情報や、シーケンサ１０によって自動再生された楽曲データ等をオーディオ信号に変換し、これに適宜効果を付与する音源１２と、該音源１２からのオーディオ信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１３とにより構成されている。
【００１７】
上記構成要素２〜１２は、バス１４を介して相互に接続され、ＣＰＵ４にはタイマ７が接続され、通信Ｉ／Ｆ１１には外部機器１００が接続され、音源１２にはサウンドシステム１３が接続されている。ここで、通信Ｉ／Ｆ１１は、有線方式のものに限らず、無線方式のものであってもよい。また、両方式のものを備えていてもよい。
【００１８】
外部記憶装置９としては、たとえば、フレキシブルディスクドライブ（ＦＤＤ）、ハードディスクドライブ（ＨＤＤ）、ＣＤ−ＲＯＭドライブおよび光磁気ディスク（ＭＯ）ドライブ等を挙げることができる。そして、外部記憶装置９には、前述のように、ＣＰＵ４が実行する制御プログラムも記憶でき、ＲＯＭ５に制御プログラムが記憶されていない場合には、この外部記憶装置９に制御プログラムを記憶させておき、それをＲＡＭ６に読み込むことにより、ＲＯＭ５に制御プログラムを記憶している場合と同様の動作をＣＰＵ４にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００１９】
通信Ｉ／Ｆ１１には、図示例では、外部機器１００が接続されているが、これに限られず、たとえばＬＡＮ（Local Area Network）やインターネット、電話回線等の通信ネットワークを介して、サーバコンピュータが接続されるようにしてもよい。この場合、外部記憶装置９に上記各プログラムや各種パラメータが記憶されていなければ、通信Ｉ／Ｆ１１は、サーバコンピュータからプログラムやパラメータをダウンロードするために用いられる。クライアントとなる電子鍵盤楽器は、通信Ｉ／Ｆ１１および通信ネットワークを介してサーバコンピュータへとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワークを介して電子鍵盤楽器へと配信し、電子鍵盤楽器が通信Ｉ／Ｆ１１を介して、これらプログラムやパラメータを受信して外部記憶装置９に蓄積することにより、ダウンロードが完了する。
【００２０】
図２は、鍵盤装置３の各鍵の駆動を制御する制御構成を示すブロック図である。ただし、図２には、説明の都合上、ＣＰＵ４も記載されている。
【００２１】
同図に示すように、鍵盤装置３は、複数の鍵（たとえば、８８鍵）を備えた鍵盤３ａと、鍵毎に設けられたソレノイド３ｂ１に電力を供給する電力供給部３ｂと、各ソレノイド３ｂ１の駆動を制御する駆動制御部３ｃと、各鍵にそれぞれ設けられた鍵スイッチ（図示せず）のオン／オフ状態を検出するスキャン部３ｄと、駆動制御部３ｃ、スキャン部３ｄおよびＣＰＵ４間を接続するバス３ｅとによって、主として構成されている。
【００２２】
鍵盤３ａは、「低域」、「中低域」、「中高域」および「高域」の４つの鍵域（各鍵域にはそれぞれ、２２鍵が属している）に分割され、各鍵域に属する２２個のソレノイド３ｂ１のそれぞれへの電力供給は、鍵域毎に１つの電力供給部３ｂによって制御されている。さらに１つの電力供給部３ｂは、１つの駆動制御部３ｃによって制御されている。なお、鍵域の分割態様や分割数は、これに限らないことは言うまでもない。
【００２３】
駆動制御部３ｃは、駆動制御処理部４ａとして機能するＣＰＵ４によって制御される。具体的には、ある１つの鍵を押鍵方向に駆動させたい場合、駆動制御処理部４ａは、その鍵（のソレノイド３ｂ１）の駆動制御を担当する１つの駆動制御部３ｃ（４つの駆動制御部３ｃのうちの１つ）をサーチし、サーチした駆動制御部３ｃを指定し、その鍵のキーナンバ（各鍵に付与された番号）および駆動オンをバス３ｅ上に送信する（以下、「駆動オン要求」という）と、その駆動オン要求は、指定された駆動制御部３ｃによって受信される。駆動オン要求を受信した駆動制御部３ｃは、その駆動オン要求内に記載された鍵のソレノイド３ｂ１に電力が供給されるように、電力供給部３ｂに対して、所定のタイミングで所定のＰＷＭ（pulse width modulation）波形信号を供給する。これに応じて、ソレノイド３ｂ１には、電力供給部３ｂから所定量の電力が供給され、ソレノイド３ｂ１は、対応する鍵を押下方向に引き下げる。これとは逆に、ある１つの鍵を離鍵方向に駆動させたい場合、駆動制御処理部４ａは、その鍵（のソレノイド３ｂ１）の駆動制御を担当する１つの駆動制御部３ｃをサーチし、サーチした駆動制御部３ｃを指定し、その鍵のキーナンバおよび駆動オフをバス３ｅ上に送信する（以下、「駆動オフ要求」という）と、その駆動オフ要求は、指定された駆動制御部３ｃによって受信される。駆動オフ要求を受信した駆動制御部３ｃは、その駆動オン要求内に記載された鍵のソレノイド３ｂ１に電力が供給されなくなるように、電力供給部３ｂに対して、ＰＷＭ（pulse width modulation）波形信号の供給を停止する。これに応じて、ソレノイド３ｂ１には、電力供給部３ｂから電力が供給されなくなるので、ソレノイド３ｂ１に対する引き下げ動作も停止して、鍵は離鍵方向に引き上げられる。
【００２４】
なお、電力供給部３ｂは、ソレノイド３ｂ１の故障（異常発熱など）をハードウェア的に検出し、それを駆動制御部３ｃに通知するエラー通知機能も備えている。駆動制御部３ｃは、電力供給部３ｂからエラー通知が送信されてくると、そのエラー通知を駆動制御処理部４ａに転送する。ただし、上記ハードウェア的に検出された故障は、本実施の形態では、故障として検出していない。
【００２５】
各鍵には、前述のように、１つの鍵スイッチが設けられている。本実施の形態では、鍵スイッチとして、接点時間差タイプの３メイク式タッチレスポンススイッチを採用している。スキャン部３ｄは、この各鍵スイッチにそれぞれ設けられた３つの接点を所定の時間毎にスキャンし、鍵毎に各接点のオン／オフ状態を検出する。検出した鍵毎の各接点のオン／オフ状態は、バス３ｅを介して、駆動制御処理部４ａに送信される。なお、鍵スイッチのメイク数は、上記３つに限らず、２つでもよいし、４つ以上でもよい。ただし、１つでは、キーオン時のベロシティを検出することができないので、現実的でない。また、本実施の形態では、各鍵の押離鍵状態の検出は、３メイク式タッチレスポンススイッチを用いて離散的に行うようにしたが、これに限らず、たとえば光学的なセンサを用いて、各鍵の非押鍵状態から最深押鍵状態までの全工程を略連続的に行うようにしてもよい。
【００２６】
なお、ソレノイド３ｂ１が鍵を直接的あるいは間接的に駆動する構造には、様々なものが考えられるが、本発明の特徴はその鍵駆動の構造にある訳ではないので、どのような構造のものを採用してもよい。したがって、鍵駆動の構造についての説明は省略する。
【００２７】
以上のように構成された電子鍵盤楽器が実行する制御処理を、まずその概要を図３を参照して説明し、次に図４〜図９を参照して詳細に説明する。
【００２８】
図３は、本実施の形態の電子鍵盤楽器が実行する制御処理を説明するための図である。
【００２９】
本実施の形態の電子鍵盤楽器は、演奏モードとして、自動演奏＆自動押鍵モード、自動演奏＆非自動押鍵モードおよび手動演奏モードの３種類のモードを備えている。自動演奏＆自動押鍵モードは、前記シーケンサ１０で楽曲データを自動再生し、この自動再生に合わせて鍵盤３ａを自動押鍵するモードであり、自動演奏＆非自動押鍵モードは、シーケンサ１０で楽曲データを自動再生するが、自動押鍵しないモードであり、手動演奏モードは、楽曲データの自動再生も自動押鍵もしないで、ユーザの押鍵操作のみに応じて楽音を発音するモードである。なお、本実施の形態の電子鍵盤楽器は、自動演奏＆非自動押鍵モードが選択されたときは言うに及ばず、自動演奏＆自動押鍵モードが選択されたときでも、ユーザの押鍵操作に応じて楽音を発音することができるように構成されている。
【００３０】
また、本実施の形態の電子鍵盤楽器は、故障検出機能を常時起動し、常に故障を検出している。故障検出機能で検出可能な故障は、実際には多岐に亘るが、本発明の特徴は自動押鍵時の故障検出にあるので、以下、故障検出機能での故障検出として、自動押鍵時の故障検出を中心に説明する。
【００３１】
故障検出機能が起動されると、故障検出処理を行うためのアプリケーションソフトウェア（以下、「アプリケーション」と略して言う）４ｂが起動される。アプリケーション４ｂは、まず、演奏モードとして、前記自動演奏＆自動押鍵モードを選択し、次に、シーケンサ１０に対して、所定の楽曲データの再生を指示する。これに応じてシーケンサ１０は、指示された楽曲データの再生を開始し、楽曲データの再生に従って、キーオン（このキーオンは、シーケンサ（ＳＥＱ）１０から出力されたキーオンであるので、以下、「ＳＥＱキーオン」という）またはキーオフ（このキーオフは、シーケンサ（ＳＥＱ）１０から出力されたキーオフであるので、以下、「ＳＥＱキーオフ」という）を駆動制御処理部４ａに供給する。なお、ＳＥＱキーオンおよびＳＥＱキーオフには、少なくとも、音高情報が含まれている。
【００３２】
ＳＥＱキーオンが供給されると、駆動制御処理部４ａは、そのＳＥＱキーオンによって駆動が指示される鍵の駆動オン要求を駆動制御部３ｃに供給するとともに、そのＳＥＱキーオンによって発音が指示される楽音の発音要求を音源１２に供給する。なお、１つのＳＥＱキーオンによって複数のキーオンが同時に指示されることは、通常の自動演奏ではあり得るが、本制御処理は、故障検出機能が起動されたときの自動演奏を問題にしているので、１つのＳＥＱキーオンによって１つのキーオンのみが指示されるものとする。
【００３３】
駆動制御部３ｃは、前述のように４つ存在するので、駆動制御処理部４ａから出力された駆動オン要求を受信するのは、そのうちの１つである。駆動制御処理部４ａからは、当該鍵の駆動制御を担当する駆動制御部３ｃのアドレスを付けた駆動オン要求がバス３ｅ上に供給されるので、駆動制御部３ｃは、バス３ｅ上のデータを常時チェックし、自分宛のデータがバス３ｅ上に供給されているときには、そのデータを取り込む。これにより、駆動オン要求は、供給対象となる１つ駆動制御部３ｃに供給される。なお、このようなバス３ｅ上のデータの送受信方法は、駆動制御処理部４ａと駆動制御部３ｃとの間だけでなく、バス３ｅに接続されているすべてのデバイスに共通するものである。
【００３４】
駆動オン要求を受信した駆動制御部３ｃは、その駆動制御部３ｃに接続された電力供給部３ｂの当該鍵に対応する回路にＰＷＭ波形信号を供給する。これに応じて、電力供給部３ｂからは、当該鍵に対応するソレノイドに電力が供給され、当該鍵は押下される。当該鍵が押下されると、当該鍵に設けられた鍵スイッチの３つの接点が、時間差を持って順にオンされて行く。この３つの接点を、オンされる順に、第１接点、第２接点および第３接点という。スキャン部３ｄは、鍵スイッチの３つの接点をスキャンし、各接点のオン／オフ状態を検出して、接点毎にそのオン／オフ状態を駆動制御処理部４ａに供給する。駆動制御処理部４ａは、スキャン部３ｄから供給された接点毎のオン／オフ状態を受信し、接点毎のオン／オフ状態を格納するために前記ＲＡＭ６の所定位置に確保された接点状態格納領域（図示せず）に格納する。以下、説明の都合上、第１接点がオン状態であることを「ダンパリリース」と言い、第２接点または第３接点がオン状態であることを「鍵盤キーオン」と言う。
【００３５】
音源１２は、発音要求を受信すると、その発音要求に応じた楽音信号（オーディオ信号）を生成して、サウンドシステム１３に出力する。その結果、サウンドシステム１３からは、ＳＥＱキーオンによって要求された楽音が発音される。
【００３６】
一方、ＳＥＱキーオフが供給されると、駆動制御処理部４ａは、そのＳＥＱキーオフによって駆動停止が指示される鍵の駆動オフ要求を駆動制御部３ｃに供給するとともに、そのＳＥＱキーオフによって消音が指示される楽音の消音要求を音源１２に供給する。
【００３７】
駆動オフ要求を受信した駆動制御部３ｃは、その駆動制御部３ｃに接続された電力供給部３ｂの当該鍵に対応する回路に供給されているＰＷＭ波形信号の供給を徐々に停止する。これに応じて、電力供給部３ｂからは、当該鍵に対応するソレノイドへの電力の供給は徐々に停止され、当該鍵は離鍵方向に引き戻される。当該鍵が離鍵方向に引き戻されると、当該鍵に設けられたスイッチの３つの接点が、時間差を持って、オンされた順序と逆の順序で、つまり、第３接点、第２接点および第１接点の順序でオフされて行く。スキャン部３ｄは、鍵スイッチの３つの接点をスキャンし、各接点のオン／オフ状態を検出して、接点毎にそのオン／オフ状態を駆動制御処理部４ａに供給する。駆動制御処理部４ａは、スキャン部３ｄから供給された接点毎のオン／オフ状態を受信し、前記接点状態格納領域に格納する。以下、説明の都合上、第１接点がオフ状態であることを「ダンパホールド」と言い、第２接点または第３接点がオフ状態であることを「鍵盤キーオフ」と言う。
【００３８】
音源１２は、消音要求を受信すると、その消音要求に応じた楽音信号を生成して、サウンドシステム１３に出力する。その結果、サウンドシステム１３からは、ＳＥＱキーオンによって要求されて発音中の楽音が消音される。
【００３９】
駆動制御処理部４ａは、タイマ７を用いて、駆動オン要求を出力してから、この駆動オン要求に応じたダンパリリースを受信するまでの時間を計時し、この計時時間が所定のタイムアウト時間（以下、「第１のタイムアウト時間」という）を超えたときには、何らかの故障が発生したと判断し、エラー通知を前記アプリケーション４ｂに行う。同様にして、駆動制御処理部４ａは、タイマ７を用いて、駆動オフ要求を出力してから、この駆動オフ要求に応じた鍵盤キーオフを受信するまでの時間を計時し、この計時時間が所定のタイムアウト時間（以下、「第２のタイムアウト時間」という）を超えたときには、何らかの故障が発生したと判断し、エラー通知をアプリケーション４ｂに行う。
【００４０】
駆動制御処理部４ａはさらに、駆動オン要求を出力した後、スキャン部３ｄから得られた、当該駆動オン要求に対応する鍵スイッチの各接点のオン／オフ状態に応じて、あるいは、駆動オフ要求を出力した後、スキャン部３ｄから得られた、当該駆動オフ要求に対応する鍵スイッチの各接点のオン／オフ状態に応じて、何らかの故障が発生したかどうかを判別し、何らかの故障が発生したと判別されたときには、エラー通知をアプリケーション４ｂに行う。
【００４１】
なお、演奏モードとして、前記自動演奏＆非自動押鍵モードが選択されたときには、シーケンサ１０は、楽曲データを再生して、ＳＥＱキーオン／ＳＥＱキーオフを生成する代わりに、発音要求／消音要求を生成し、これを直接音源１２に出力するようにしている。もちろん、これに限らず、自動演奏＆非自動押鍵モードが選択されたときでも、シーケンサ１０は、ＳＥＱキーオン／ＳＥＱキーオフを生成して、駆動制御処理部４ａに出力し、駆動制御処理部４ａを介して、発音要求／消音要求が音源１２に供給されるようにしてもよい。
【００４２】
次に、この制御処理を詳細に説明する。
【００４３】
図４は、本実施の形態の電子鍵盤楽器、特にＣＰＵ４が実行する鍵状態監視処理の手順を示すフローチャートであり、本鍵状態監視処理は、本実施の形態では、前記アプリケーション４ｂには含まれないものとする。また、本鍵状態監視処理は、故障検出機能が起動されたときに実行される故障検出処理のうちの一部処理である。
【００４４】
本鍵状態監視処理は、主として、
（１）初期化処理（ステップＳ１）
（２）状態スキャン処理（ステップＳ２）
（３）移行すべき制御処理の決定処理（ステップＳ３）
（４）駆動オン中制御処理（ステップＳ４）
（５）保持中制御処理（ステップＳ５）
（６）駆動オフ中制御処理（ステップＳ６）
（７）デフォルト制御処理（ステップＳ７）
を行う。なお、上記（２）〜（７）の処理（ただし、（４）〜（７）の処理については、いずれか１つのみ）は、鍵毎にすべての鍵に亘って行われる。
【００４５】
以下、本鍵状態監視処理を上記（１）〜（７）の処理毎に詳細に説明するが、その前に、該各処理（２）〜（７）で使用するレジスタおよびフラグについて説明する。
【００４６】
ｉ：鍵盤３ａのいずれかの鍵を示すインデックスである。鍵盤３ａの全鍵数は、前述のように８８鍵としており、各鍵には、鍵盤３ａに向かって左端の鍵から順に１から８８までの整数値が付与されているので、インデックスｉも、１から８８までのいずれかの整数値を採り得る。
【００４７】
ＷＫＯＮ(ｉ)：ｉ番目の鍵が駆動オン中であるときにセット（“１”）され、駆動オン中でないときにリセット（“０”）されるフラグである。ここで、「駆動オン中」とは、駆動オン要求が出力されてから、当該鍵スイッチの第３接点のオンイベントが発生するまでを言う。なお、オンイベントとは、当該接点がオフ状態からオン状態に切り替わったときに、スキャン部３ｄが発生するイベントである。
【００４８】
ＫＥＥＰ(ｉ)：ｉ番目の鍵に対応するソレノイドが駆動力を保持中であるときにセットされ、駆動力を保持中でないときにリセットされるフラグである。ここで、「駆動力を保持中」とは、当該鍵スイッチの第３接点のオンイベントが発生してから、駆動オフ要求が出力されるまでを言う。
【００４９】
ＷＫＯＦ(ｉ)：ｉ番目の鍵が駆動オフ中であるときにセットされ、駆動オフ中でないときにリセットされるフラグである。ここで、「駆動オフ中」とは、駆動オフ要求が出力されてから、当該鍵スイッチの第１接点のオフイベントが発生するまでを言う。なお、オフイベントとは、当該接点がオン状態からオフ状態に切り替わったときに、スキャン部３ｄが発生するイベントである。
【００５０】
ＤＦＴ(ｉ)：デフォルト状態のときにセットされ、デフォルト状態でないときにリセットされるフラグである。ここで、「デフォルト状態」とは、駆動オン要求も駆動オフ要求も出力されておらず、当該鍵スイッチのいずれの接点のオンイベントもオフイベントも発生しない状態を言う。
【００５１】
ＭＶＫ(ｉ)：駆動すべきｉ番目の鍵に付与されたキーナンバ（ＫＮ）を格納するレジスタである。なお、本実施の形態では、インデックスｉとキーナンバは同一であるので、このレジスタを設けなくても、本鍵状態監視処理を行うことはできるが、この処理を簡単化するために、このレジスタを設けている。
【００５２】
ＦＯＮ(ｉ)：ｉ番目の鍵の鍵スイッチの第１接点のオン状態を示すフラグであり、駆動オン要求が出力されてから、当該鍵スイッチの第１接点のオンイベントが発生したときにセットされ、当該鍵スイッチの第３接点のオンイベントが発生したときにリセットされる。
【００５３】
ＳＯＦ(ｉ)：ｉ番目の鍵の鍵スイッチの第２接点のオフ状態を示すフラグであり、駆動オフ要求が出力されてから、当該鍵スイッチの第２接点のオフイベントが発生したときにセットされ、当該鍵スイッチの第１接点のオフイベントが発生したときにリセットされる。
【００５４】
ＴＯＯＮ(ｉ)：ｉ番目の鍵に対する駆動オン要求が出力されたときに、前記第１のタイムアウト時間Ｔ０に対応するカウント値がセットされるレジスタであり、セットされたカウント値は、その後、当該鍵スイッチの第３接点のオンイベントが発生するまで、所定時間毎に減算される。
【００５５】
ＴＯＯＦ(ｉ)：ｉ番目の鍵に対する駆動オフ要求が出力されたときに、前記第２のタイムアウト時間Ｔ１に対応するカウント値がセットされるレジスタであり、セットされたカウント値は、その後、当該鍵スイッチの第１接点のオフイベントが発生するまで、所定時間毎に減算される。
【００５６】
ＥＲ(ｉ)：ｉ番目の鍵に対応する何らかのデバイスに何らかの故障が検出されたときにセットされ、それ以外のときにリセットされるフラグである。
【００５７】
ＵＳ(ｉ)：ｉ番目の鍵に想定外動作が検出されたときにセットされ、それ以外のときにリセットされるフラグである。
【００５８】
図４に戻り、処理が本鍵状態監視処理に移行すると、駆動制御処理部４ａは、前記（１）の初期化処理を行う。この（１）初期化処理では、駆動制御処理部４ａは、ＲＡＭ６をクリアしたり、各種パラメータの値をデフォルト値に設定したりする等の初期設定を行う。
【００５９】
次に駆動制御処理部４ａは、処理を前記（２）の状態スキャン処理に進める。この（２）状態スキャン処理では、スキャン部３ｄに対して、現在のインデックスｉによって示される鍵スイッチの前記各接点のオン／オフ状態のスキャンを依頼し、これに応じてスキャン部３ｄから出力されてきた各接点のオン／オフ状態を前記接点状態格納領域に格納する。
【００６０】
次に駆動制御処理部４ａは、処理を前記（３）の移行すべき制御処理の決定処理に進める。この（３）移行すべき制御処理の決定処理では、まず駆動制御処理部４ａは、現在のインデックスｉによって示される、４つのフラグＷＫＯＮ(ｉ)，ＫＥＥＰ(ｉ)，ＷＫＯＦ(ｉ)およびＤＦＴ(ｉ)のうち、セット状態（“１”）のフラグを検出する。この４つのフラグＷＫＯＮ(ｉ)，ＫＥＥＰ(ｉ)，ＷＫＯＦ(ｉ)およびＤＦＴ(ｉ)は、いずれか１つのみセット状態であり、残りの３つはリセット状態になっている。つまり、複数のフラグが同時にセット状態になることのないように、各フラグのセット／リセット状態が制御されている。なお、この４つのフラグＷＫＯＮ(ｉ)，ＫＥＥＰ(ｉ)，ＷＫＯＦ(ｉ)およびＤＦＴ(ｉ)のセット／リセットは、前記（４）〜（７）の処理中で行われる。次に駆動制御処理部４ａは、検出されたセット状態のフラグが示す制御処理へ処理を進める。具体的には、フラグＷＫＯＮ(ｉ)がセット状態であれば、処理を前記（４）の駆動オン中制御処理へ進め、フラグＫＥＥＰ(ｉ)がセット状態であれば、処理を前記（５）の保持中制御処理へ進め、フラグＷＫＯＦ(ｉ)がセット状態であれば、処理を前記（６）の駆動オフ中制御処理へ進め、フラグＤＦＴ(ｉ)がセット状態であれば、処理を前記（７）のデフォルト制御処理へ進める。
【００６１】
そして、前記（２）〜（７）の処理が終了すると、インデックスｉを“１”進め、インデックスｉが鍵盤３ａの全鍵数を超えるまで、このインデックスｉに対して前記（２）〜（７）の処理を行い、インデックスｉが鍵盤３ａの全鍵数を超えると、インデックスｉを初期値（“１”）に戻した後、このインデックスｉに対して前記（２）〜（７）の処理を行う。
【００６２】
なお、鍵毎、つまりインデックスｉ毎に、前記（２）の処理から前記（３）の処理を通って前記（４）〜（７）のいずれかの処理を終了するまでの時間を一定（たとえば、０.１ｍｓｅｃ）にするために、前記（２）状態スキャン処理で時間調整を行うようにしている。つまり、前記ステップＳ２を開始する前に前記タイマ７の値を取得し、次にステップＳ１０からステップＳ２に戻ってきたときに、再度タイマ７の値を取得する。この取得したタイマ７の値の差分は通常、０.１ｍｓｅｃより短いので、この差分が０.１ｍｓｅｃになるまで待ってから、駆動制御処理部４ａは、ステップＳ２，つまり（２）状態スキャン処理を開始する。このように、鍵状態監視処理の１回のループに費やす時間を鍵毎に一定にするようにしたのは、後述するように、前記レジスタＴＯＯＮ(ｉ)およびＴＯＯＦ(ｉ)のデクリメントをそれぞれ前記（４）駆動オン中制御処理内および（６）駆動オフ中制御処理内で行っているからである。もちろん、レジスタＴＯＯＮ(ｉ)およびＴＯＯＦ(ｉ)のデクリメントを、タイマ７が０.１ｍｓｅｃ毎に発生するタイマ割り込みに応じて起動されるタイマ割り込み処理内で行うようにすれば、（２）状態スキャン処理での時間調整は必要ない。また、時間調整は、（２）状態スキャン処理で行う必然性はなく、前記（３）移行すべき制御処理の決定処理中で行いようにしても、前記ステップＳ８の直前または直後の適当な位置で行うようにすればよい。
【００６３】
図５は、前記（４）の駆動オン中制御処理の詳細な手順を示すフローチャートである。
【００６４】
この（４）駆動オン中制御処理は、主として、
（１１）通常処理
（１２）ダンパリリース・ノーリアクションの検出および通知処理（図９（ａ）参照）
（１３）キーオン・ノーリアクションの検出および通知処理（図９（ｂ）参照）
（１４）ソレノイド駆動停止の検出および通知処理（図９（ｃ）参照）
を行う。
【００６５】
上記（１１）の通常処理は、図９（ａ）の駆動ＯＮ（＝駆動オン要求）からＫｅｙＯＮ（＝鍵盤キーオン）までの破線で示されるように、駆動オン要求が出力されてから前記第１のタイムアウト時間Ｔ０が経過するまでに、第１接点から第３接点まで順次オン状態に切り替わって行くときの処理である。この（１１）通常処理では、駆動制御処理部４ａは、第１接点のオンイベントが検出されるまでは、レジスタＴＯＯＮ(ｉ)のデクリメントのみを行い（ステップＳ１１→Ｓ１２→Ｓ２４→Ｓ１７→リターン）、第１接点のオンイベントが検出されると、フラグＦＯＮ(ｉ)をセットした（ステップＳ１１→Ｓ２３）後、レジスタＴＯＯＮ(ｉ)のデクリメントを行う（ステップＳ２４→Ｓ１７→リターン）。次に駆動制御処理部４ａは、第３接点のオンイベントがあるまで、レジスタＴＯＯＮ(ｉ)のデクリメントのみを行い（ステップＳ１１→Ｓ１２→Ｓ１３→Ｓ１５→Ｓ１６→Ｓ１７→リターン）、第３接点のオンイベントが検出されると、フラグＫＥＥＰ(ｉ)をセットし、ＷＫＯＮ(ｉ)およびフラグＦＯＮ(ｉ)をリセットし、レジスタＴＯＯＮ(ｉ)をリセットする（ステップＳ１１→Ｓ１２→Ｓ１３→Ｓ１４）。
【００６６】
前記（１２）のダンパリリース・ノーリアクションの検出および通知処理は、図９（ａ）に示すように、駆動オン要求が出力されてから、第１接点のオンイベント（＝ダンパリリース）が検出されずに、第１のタイムアウト時間Ｔ０が経過したときの処理である。この（１２）ダンパリリース・ノーリアクションの検出および通知処理では、駆動制御処理部４ａは、第１接点のオンイベントが検出されるまで、レジスタＴＯＯＮ(ｉ)のデクリメントのみを行う（ステップＳ１１→Ｓ１２→Ｓ２４→Ｓ１７→リターン）が、レジスタＴＯＯＮ(ｉ)の値が負値になっても、第１接点のオンイベントは検出されないので、つまり第１のタイムアウト時間Ｔ０が経過しても、第１接点のオンイベントは検出されないので、レジスタＭＶＫ(ｉ)に格納されているキーナンバ（ＫＮ）に対応するソレノイドの駆動を停止させるように、駆動制御部３ｃに駆動オフ要求を出力し（ステップＳ２５）、アプリケーション４ｂに「ダンパリリース・ノーリアクション」を通知する（ステップＳ２６）。さらに、フラグＥＲ(ｉ)およびＤＦＴ(ｉ)をセットし、フラグＷＫＯＮ(ｉ)をリセットする（ステップＳ２０）。このとき考えられる故障の原因としては、「ソレノイド３ｂ１が全く作動しない」あるいは「第１接点の接点不良」を挙げることができる。
【００６７】
前記（１３）のキーオン・ノーリアクションの検出および通知処理は、図９（ｂ）に示すように、駆動オン要求が出力されてから、第１接点のオンイベントは検出されるものの、第３接点のオンイベント（＝鍵盤キーオン）が検出されずに、第１のタイムアウト時間Ｔ０が経過したときの処理である。この（１３）キーオン・ノーリアクションの検出および通知処理では、ソレノイド３ｂ１は、第１接点のオンイベントが検出されるまで、レジスタＴＯＯＮ(ｉ)のデクリメントのみを行い（ステップＳ１１→Ｓ１２→Ｓ２４→Ｓ１７→リターン）、第１接点のオンイベントが検出されると、フラグＦＯＮ(ｉ)をセットした（ステップＳ１１→Ｓ２３）後、レジスタＴＯＯＮ(ｉ)のデクリメントを行う（ステップＳ２４→Ｓ１７→リターン）。そして、レジスタＴＯＯＮ(ｉ)の値が負値になっても、第３接点のオンイベントは検出されないので、つまり第１のタイムアウト時間Ｔ０が経過しても、第３接点のオンイベントは検出されないので、駆動制御処理部４ａは、レジスタＭＶＫ(ｉ)に格納されているキーナンバ（ＫＮ）に対応するソレノイドの駆動を停止させるように、駆動制御部３ｃに駆動オフ要求を出力し（ステップＳ１８）、アプリケーション４ｂに「キーオン・ノーリアクション」を通知する（ステップＳ１９）。さらに、前記ステップＳ２０の処理を行う。このとき考えられる故障の原因としては、「ソレノイド３ｂ１の推力が低下し、鍵盤キーオンに至るまでの押鍵ができない」あるいは「第２接点または第３接点の接点不良」を挙げることができる。
【００６８】
前記（１４）のソレノイド駆動停止の検出および通知処理は、図９（ｃ）に示すように、駆動オン要求が出力されてから、第１接点のオンイベントは検出されるものの、第３接点のオンイベントが検出されずに、第１接点のオフイベント（＝ダンパホールド）が検出されたときの処理である。この（１４）ソレノイド駆動停止の検出および通知処理では、駆動制御処理部４ａは、第１接点のオンイベントが検出されるまで、レジスタＴＯＯＮ(ｉ)のデクリメントのみを行い（ステップＳ１１→Ｓ１２→Ｓ２４→Ｓ１７→リターン）、第１接点のオンイベントが検出されると、フラグＦＯＮ(ｉ)をセットした（ステップＳ１１→Ｓ２３）後、レジスタＴＯＯＮ(ｉ)のデクリメントを行う（ステップＳ２４→Ｓ１７→リターン）。そして、第１接点のオフイベントが検出されるので、駆動制御処理部４ａは、レジスタＭＶＫ(ｉ)に格納されているキーナンバ（ＫＮ）に対応するソレノイドの駆動を停止させるように、駆動制御部３ｃに駆動オフ要求を出力し（ステップＳ２１）、アプリケーション４ｂに「ソレノイド駆動停止」を通知する（ステップＳ２２）。さらに、前記ステップＳ２０の処理を行う。このとき考えられる故障の原因としては、「ソレノイド３ｂ１の駆動が突然中断した」あるいは「ユーザが強制的に当該鍵を離鍵方向に戻した」を挙げることができる。
【００６９】
図６は、前記（５）の保持中制御処理の詳細な手順を示すフローチャートである。
【００７０】
この（５）保持中制御処理は、主として、
（２１）通常処理
（２２）ソレノイド駆動停止の検出および通知処理（図９（ｄ）参照）
を行う。
【００７１】
上記（２１）の通常処理は、図９（ａ）のＫｅｙＯＮ（＝鍵盤キーオン）から駆動ＯＦＦ（＝駆動オフ要求）までの破線で示されるように、その間、第３接点のオン状態が継続するときの処理である。この（２１）通常処理では、駆動制御処理部４ａは、ＳＥＱキーオフが出力されるまで、第２接点のオフイベントの発生を監視する（ステップＳ３１→Ｓ３４→リターン）。しかし第２接点のオフイベントは検出されずに、ＳＥＱキーオフが出力されるので、駆動制御処理部４ａは、レジスタＭＶＫ(ｉ)に格納されているキーナンバ（ＫＮ）に対応するソレノイドの駆動を停止させるように、駆動制御部３ｃに駆動オフ要求を出力し（ステップＳ３１→Ｓ３２）、フラグＷＫＯＦ(ｉ)をセットし、フラグＫＥＥＰ(ｉ)をリセットし、レジスタＴＯＯＦ(ｉ)に第２のタイムアウト時間Ｔ１に対応するカウント値をセットする（ステップＳ３３）。
【００７２】
前記（２２）のソレノイド駆動停止の検出および通知処理は、図９（ｄ）に示すように、ＫｅｙＯＮ（＝鍵盤キーオン）から駆動ＯＦＦ（＝駆動オフ要求）までは、第３接点のオン状態が継続していなければならないのに、その間に、第２接点のオフイベントが検出されたときの処理である。この（２２）ソレノイド駆動停止の検出および通知処理では、駆動制御処理部４ａは、ＳＥＱキーオフが出力されるまで、第２接点のオフイベントの発生を監視する（ステップＳ３１→Ｓ３４→リターン）。しかしＳＥＱキーオフが出力される前に、第２接点のオフイベントが検出されるので、駆動制御処理部４ａは、レジスタＭＶＫ(ｉ)に格納されているキーナンバ（ＫＮ）に対応するソレノイドの駆動を停止させるように、駆動制御部３ｃに駆動オフ要求を出力し（ステップＳ３５）、アプリケーション４ｂに「ソレノイド駆動停止」を通知し（ステップＳ３６）、フラグＥＲ(ｉ)およびＤＦＴ(ｉ)をセットし、フラグＫＥＥＰ(ｉ)をリセットする（ステップＳ３７）。このとき考えられる故障の原因としては、「ソレノイド３ｂ１の駆動が突然中断した」あるいは「ユーザが強制的に当該鍵を離鍵方向に戻した」を挙げることができる。
【００７３】
図７は、前記（６）の駆動オフ中制御処理の詳細な手順を示すフローチャートである。      
【００７４】
この（６）駆動オフ中制御処理は、主として、
（３１）通常処理
（３２）キーオフ・ノーリアクションの検出および通知処理（図９（ｅ）参照）
（３３）想定外の検出および通知処理（図９（ｆ）参照）
を行う。
【００７５】
上記（３１）の通常処理は、図９（ａ）の駆動ＯＦＦ（＝駆動オフ要求）からダンパホールド（＝鍵盤キーオフ）までの破線で示されるように、駆動オフ要求が出力されてから前記第２のタイムアウト時間Ｔ１が経過するまでに、第３接点から第１接点まで順次オフ状態に切り替わって行くときの処理である。この（３１）通常処理では、駆動制御処理部４ａは、第２接点のオフイベントが検出されるまでは、レジスタＴＯＯＦ(ｉ)のデクリメントのみを行い（ステップＳ４１→Ｓ４２→Ｓ４６→Ｓ４７→リターン）、第２接点のオフイベントが検出されると、フラグＳＯＦ(ｉ)をセットした（ステップＳ４１→Ｓ５２）後、レジスタＴＯＯＮ(ｉ)のデクリメントを行う（ステップＳ４６→Ｓ４７→リターン）。次に駆動制御処理部４ａは、第１接点のオフイベントが検出されるまで、レジスタＴＯＯＦ(ｉ)のデクリメントのみを行い（ステップＳ４１→Ｓ４２→Ｓ４３→Ｓ４５→Ｓ４６→Ｓ４７→リターン）、第１接点のオフイベントが検出されると、フラグＤＦＴ(ｉ)をセットし、フラグＷＫＯＦ(ｉ)をリセットし、レジスタＴＯＯＦ(ｉ)をリセットする（ステップＳ４１→Ｓ４２→Ｓ４３→Ｓ４４）。
【００７６】
前記（３２）のキーオフ・ノーリアクションの検出および通知処理は、図９（ｅ）に示すように、駆動オフ要求が出力されてから、第２接点のオフイベントが検出されずに、第２のタイムアウト時間Ｔ１が経過したときの処理である。この（３２）キーオフ・ノーリアクションの検出および通知処理では、駆動制御処理部４ａは、第２接点のオフイベントが検出されるまで、レジスタＴＯＯＦ(ｉ)のデクリメントのみを行う（ステップＳ４１→Ｓ４２→Ｓ４６→Ｓ４７→リターン）。しかしレジスタＴＯＯＦ(ｉ)の値が負値になっても、第２接点のオフイベントは検出されないので、つまり第２のタイムアウト時間Ｔ１が経過しても、第２接点のオフイベントは検出されないので、駆動制御処理部４ａは、アプリケーション４ｂに「キーオフ・ノーリアクション」を通知する（ステップＳ４１→Ｓ４２→Ｓ４３→Ｓ４５→Ｓ４６→Ｓ４８）。さらに、フラグＥＲ(ｉ)およびＤＦＴ(ｉ)をセットし、フラグＷＫＯＦ(ｉ)をリセットする（ステップＳ４９）。このとき考えられる故障の原因としては、「当該鍵が離鍵の途中でスティック」、「離鍵の途中で、ユーザが当該鍵を押さえている」あるいは「第１接点の接点不良」を挙げることができる。
【００７７】
前記（３３）の想定外の検出および通知処理は、図９（ｆ）に示すように、駆動オフ要求が出力されてから、第２接点のオフイベントは検出されるものの、第１接点のオフイベントが検出されずに、第３接点のオンイベントが検出されたときの処理である。この（３３）想定外の検出および通知処理では、駆動制御処理部４ａは、第２接点のオフイベントが検出されるまで、レジスタＴＯＯＦ(ｉ)のデクリメントのみを行い（ステップＳ４１→Ｓ４２→Ｓ４６→Ｓ４７→リターン）、第２接点のオフイベントが検出されると、フラグＳＯＦ(ｉ)をセットした（ステップＳ４１→Ｓ５２）後、レジスタＴＯＯＦ(ｉ)のデクリメントを行う（ステップＳ４６→Ｓ４７→リターン）。そして、第３接点のキーオンイベントが検出されるので、駆動制御処理部４ａは、アプリケーション４ｂに「想定外」を通知し（ステップＳ４１→Ｓ４２→Ｓ４３→Ｓ４５→Ｓ５０）、フラグＵＳ(ｉ)をセットする（ステップＳ５１）。さらに、前記ステップＳ４９の処理を行う。このとき考えられる故障の原因としては、「離鍵の途中で、ユーザが当該鍵を押鍵した」を挙げることができる。
【００７８】
図８は、前記（７）のデフォルト制御処理の詳細な手順を示すフローチャートである。
【００７９】
この（７）デフォルト制御処理は、主として、
（４１）駆動オン要求処理（ステップＳ６４〜Ｓ６６）
（４２）発音要求処理（ステップＳ６８，Ｓ６９）
を行う。
【００８０】
上記（４１）の駆動オン要求処理では、ＳＥＱキーオンが出力されたときに、駆動制御処理部４ａは、そのＳＥＱキーオンによって駆動オン要求された鍵の駆動制御部３ｃをサーチし（ステップＳ６４）、サーチされた駆動制御部３ｃに、レジスタＭＶＫ(ｉ)に格納されているキーナンバ（ＫＮ）と駆動オン要求を送信し（ステップＳ６５）、フラグＷＫＯＮ(ｉ)をセットし、フラグＤＦＴ(ｉ)をリセットし、レジスタＴＯＯＮ(ｉ)に第１のタイムアウト時間Ｔ０に対応するカウント値をセットする（ステップＳ６６）。なお、フラグＥＲ(ｉ)がセットされているときには、駆動制御処理部４ａは、この（４１）駆動オン要求処理を行わない（ステップＳ６２→リターン）。
【００８１】
上記（４２）の発音要求処理では、いずれかの鍵がマニュアルでキーオンされたときに、駆動制御処理部４ａは、音源の空きチャンネルにタッチデータとキーナンバ（ＫＮ）を送信して発音要求し（ステップＳ６８）、ＫＮに関する鍵駆動関連データとフラグをクリアする（ステップＳ６９）。なお、フラグＵＳ(ｉ)がセットされているときにも、駆動制御処理部４ａは、この（４２）発音要求処理を行う（ステップＳ６１→Ｓ６８）。
【００８２】
前記アプリケーション４ｂは、駆動制御処理部４ａから「ダンパリリース・ノーリアクション」、「キーオン・ノーリアクション」、「ソレノイド駆動停止」、「キーオフ・ノーリアクション」または「想定外」のいずれかのエラー通知を受信すると、前記表示器８のＬＣＤ上に、受信した故障通知の内容を故障の検出された鍵のキーナンバとともに表示する。このとき、考えられる故障原因も併せて表示した方が好ましいが、たとえば、ＬＣＤの表示画面に余裕がないときなどには、表示を省略したり、画面を別画面に切り替えて表示したりするようにしてもよい。また、エラー通知は、ＬＣＤ上への表示に限らず、ＬＥＤが複数設けられている場合に、故障内容に応じた位置や色のＬＥＤを点灯させるようにしたり、あるいは、音源１２が音声合成できるようなものである場合には、故障内容、故障の検出された鍵および故障原因などを適宜組み合わせて、音声で通知するようにしたりしてもよい。要するに、ユーザに故障内容を通知可能な通知態様であれば、どのようなものを採用してもよい。
【００８３】
このように、本実施の形態では、より広い範囲で故障の原因や状態を検出してユーザに通知することができる。
【００８４】
なお、本実施の形態では、エラー通知は、所定の現象が１回発生したときに直ちに行うようにしたが、これに限らず、所定回数発生したときに行うようにしてもよい。図１０は、保持中制御処理の前記（２２）ソレノイド駆動停止の検出および通知処理において、図９（ｄ）で示した現象がＮ回発生したときに、エラー通知を行うようにした手順を示すフローチャートである。もちろん、他の制御処理でのエラー通知についても、所定の現象が所定回数発生したときに行うようにしてもよい。
【００８５】
また、本実施の形態では、電力供給部３ｂからハードウェア的なエラー通知があったとしても、このハードウェア的なエラー通知に対して何の考慮もしなかったが、これに限らず、本実施の形態のエラー通知に、このハードウェア的なエラー通知を併用するようにしてもよい。このように構成することで、エラー通知の質をさらに向上させることができる。
【００８６】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００８７】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８８】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００８９】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００９０】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００９１】
【図１】本発明の一実施の形態に係る電子鍵盤楽器の概略構成を示すブロック図である。
【図２】図１中の鍵盤装置の各鍵の駆動を制御する制御構成を示すブロック図である。
【図３】図１の電子鍵盤楽器が実行する制御処理を説明するための図である。
【図４】図１の電子鍵盤楽器、特にＣＰＵが実行する鍵状態監視処理の手順を示すフローチャートである。
【図５】図４中の駆動オン中制御処理の詳細な手順を示すフローチャートである。
【図６】図４中の保持中制御処理の詳細な手順を示すフローチャートである。
【図７】図４中の駆動オフ中制御処理の詳細な手順を示すフローチャートである。
【図８】図４中のデフォルト制御処理の詳細な手順を示すフローチャートである。
【図９】故障として検出される現象の一例を示す図である。
【図１０】他の保持中制御処理の詳細な手順を示すフローチャートである。
【符号の説明】
【００９２】
３ａ…鍵盤，３ｂ…電力供給部（駆動手段），３ｃ…駆動制御部（駆動手段），３ｄ…スキャン部（検出手段），４…ＣＰＵ（駆動手段、生成手段、供給手段、通知手段），８…表示器（通知手段），１２…音源（電子音源）
【図１】
2008233365.tif 000003
【図２】
2008233365.tif 000004
【図３】
2008233365.tif 000005
【図４】
2008233365.tif 000006
【図５】
2008233365.tif 000007
【図６】
2008233365.tif 000008
【図７】
2008233365.tif 000009
【図８】
2008233365.tif 000010
【図９】
2008233365.tif 000011
【図１０】
2008233365.tif 000012