(57)【特許請求の範囲】
【請求項１】
楽器の操作子のうち演奏者が次に操作すべき操作子を指示する演奏支援装置であって、前記楽器の演奏態様を示す演奏情報を記憶する記憶手段と、前記演奏情報に基づいて操作すべき操作子および操作すべきタイミングを特定する支援情報生成手段と、前記支援情報に基づいて、次に操作すべき前記操作子を、前記操作すべきタイミングの所定時間前に非発音状態のまま所定量押し下げてから非駆動状態に戻し、前記操作すべきタイミングにおいて再度非発音状態のまま所定量押し下げるように駆動する操作子駆動手段とを備えることを特徴とする演奏支援装置。
【請求項２】
請求項１に記載の演奏支援装置において、前記楽器は、前記操作子の駆動量が所定量に達した場合に発音状態となり、前記操作子駆動手段は、前記操作子の駆動量が前記所定量に達しない範囲で前記操作子を駆動することを特徴とする演奏支援装置。
【請求項３】
請求項１に記載の演奏支援装置において、前記非駆動状態は、前記操作子がレスト位置にあることを特徴とする演奏支援装置。
【請求項４】
請求項１に記載の演奏支援装置において、前記非駆動状態は、グランドピアノアクション機構のジャックが初期位置にあることを特徴とする演奏支援装置。
【請求項５】
請求項１ないし４いずれかに記載の演奏支援装置において、前記支援情報生成手段は、さらに、直前に駆動した操作子である第１操作子、次に押鍵指示すべき操作子である第２操作子、および、直前に駆動したタイミングから次に駆動すべきタイミングまでの時間である中間時間を特定し、前記操作子駆動手段は、前記中間時間中において前記第１操作子と前記第２操作子との中間に位置する操作子である中間操作子を、前記第１操作子から前記第２操作子に向かって非発音状態のまま順次駆動することを特徴とする演奏支援装置。
【請求項６】
請求項１または２に記載の演奏支援装置において、前記操作子の各々に対応した表示体と、前記表示体の表示様態を制御する表示様態制御手段を備え、前記操作子駆動手段は前記操作すべきタイミングに先だって駆動し、前記表示様態制御手段は前記支援情報に基づいて、前記操作子を操作すべきタイミングの所定時間前に前記操作子に対応する前記表示体を点灯し一旦非点灯状態に戻し、前記操作子を操作すべきタイミングに当該表示体を再度点灯することを特徴とする演奏支援装置。
【請求項７】
請求項６に記載の演奏支援装置において、前記操作子の各々に対応した表示体と、前記表示体の表示態様を制御する表示態様制御手段を備え、前記表示態様制御手段は、前記中間時間において前記中間操作子に対応した前記表示体である中間表示体の表示態様を、直前に駆動した操作子から次に駆動すべき操作子に向かって順次変更することを特徴とする演奏支援装置。
【請求項８】
楽器の操作子のうち演奏者が次に操作すべき操作子を指示する演奏支援方法であって、予め記憶された前記楽器の演奏態様を示す演奏情報に基づいて操作すべき操作子および操作すべきタイミングを特定する支援情報生成段階と、前記支援情報に基づいて、次に操作すべき前記操作子を、前記操作すべきタイミングの所定時間前に非発音状態のまま所定量押し下げてから非駆動状態に戻し、前記操作すべきタイミングにおいて再度非発音状態のまま所定量押し下げるように駆動する操作子駆動段階とを備えることを特徴とする演奏支援方法。
【請求項９】
楽器に、前記楽器の操作子のうち演奏者が次に操作すべき操作子を指示する動作を実行させる演奏支援プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、予め記憶された前記楽器の演奏態様を示す演奏情報に基づいて操作すべき操作子および操作すべきタイミングを特定する支援情報生成段階と、前記支援情報に基づいて、次に操作すべき前記操作子を、前記操作すべきタイミングの所定時間前に非発音状態のまま所定量押し下げてから非駆動状態に戻し、前記操作すべきタイミングにおいて再度非発音状態のまま所定量押し下げるように駆動する操作子駆動段階とを実行させる演奏支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、楽器の操作子のうち次に操作すべき操作子を使用者に示す演奏支援装置、演奏支援方法、および演奏支援プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
従来より、楽器の演奏を支援するための技術として、操作すべき操作子を指示するものが提案されている。
この種の演奏支援にかかる技術には、例えば、ピアノなどの鍵盤楽器の各鍵の近傍にＬＥＤ（Light Emitting Diode）などのガイドランプを設けて、ガイドランプの発光によって押下すべき鍵を指示するものが知られている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述したようなガイドランプによって鍵を指示する技術においては、演奏者はガイドランプを参照しながら鍵を押下しなければならず、必ずしも演奏し易いとは言えない。また、押鍵タイミングにおいてガイドランプが点灯すると、どうしても押鍵動作が遅れてしまい、スムーズに演奏できないという不具合もある。
このように、従来の演奏支援技術は、直接操作する鍵ではなく、ガイドランプなどによって演奏者の動作を間接的に示すため、あまり使いやすいものとは言えなかった。
本発明は、上述した課題を解決するためになされたものであり、演奏者の動作を直接的に示すことができる演奏支援装置、演奏支援方法、および演奏支援プログラムを記録した記録媒体を提供することを目的としている。
【０００４】
【課題を解決するための手段】
上述した課題を解決するために、請求項１に記載の発明は、楽器の操作子のうち演奏者が次に操作すべき操作子を指示する演奏支援装置であって、前記楽器の演奏態様を示す演奏情報を記憶する記憶手段と、前記演奏情報に基づいて操作すべき操作子および操作すべきタイミングを特定する支援情報生成手段と、前記支援情報に基づいて、次に操作すべき前記操作子を、前記操作すべきタイミングの所定時間前に非発音状態のまま所定量押し下げてから非駆動状態に戻し、前記操作すべきタイミングにおいて再度非発音状態のまま所定量押し下げるように駆動する操作子駆動手段とを備えることを特徴とする。請求項２に記載の発明は、請求項１に記載の演奏支援装置において、前記楽器は、前記操作子の駆動量が所定量に達した場合に発音状態となり、前記操作子駆動手段は、前記操作子の駆動量が前記所定量に達しない範囲で前記操作子を駆動することを特徴とする。請求項３に記載の発明は、請求項１に記載の演奏支援装置において、前記非駆動状態は、前記操作子がレスト位置にあることを特徴とする。請求項４に記載の発明は、請求項１に記載の演奏支援装置において、前記非駆動状態は、グランドピアノアクション機構のジャックが初期位置にあることを特徴とする。請求項５に記載の発明は、請求項１ないし４いずれかに記載の演奏支援装置において、前記支援情報生成手段は、さらに、直前に駆動した操作子である第１操作子、次に押鍵指示すべき操作子である第２操作子、および、直前に駆動したタイミングから次に駆動すべきタイミングまでの時間である中間時間を特定し、前記操作子駆動手段は、前記中間時間中において前記第１操作子と前記第２操作子との中間に位置する操作子である中間操作子を、前記第１操作子から前記第２操作子に向かって非発音状態のまま順次駆動することを特徴とする。請求項６に記載の発明は、請求項１または２に記載の演奏支援装置において、前記操作子の各々に対応した表示体と、前記表示体の表示様態を制御する表示様態制御手段を備え、前記操作子駆動手段は前記操作すべきタイミングに先だって駆動し、前記表示様態制御手段は前記支援情報に基づいて、前記操作子を操作すべきタイミングの所定時間前に前記操作子に対応する前記表示体を点灯し一旦非点灯状態に戻し、前記操作子を操作すべきタイミングに当該表示体を再度点灯することを特徴とする。請求項７に記載の発明は、請求項６に記載の演奏支援装置において、前記操作子の各々に対応した表示体と、前記表示体の表示態様を制御する表示態様制御手段を備え、前記表示態様制御手段は、前記中間時間において前記中間操作子に対応した前記表示体である中間表示体の表示態様を、直前に駆動した操作子から次に駆動すべき操作子に向かって順次変更することを特徴とする。請求項８に記載の発明は、楽器の操作子のうち演奏者が次に操作すべき操作子を指示する演奏支援方法であって、予め記憶された前記楽器の演奏態様を示す演奏情報に基づいて操作すべき操作子および操作すべきタイミングを特定する支援情報生成段階と、前記支援情報に基づいて、次に操作すべき前記操作子を、前記操作すべきタイミングの所定時間前に非発音状態のまま所定量押し下げてから非駆動状態に戻し、前記操作すべきタイミングにおいて再度非発音状態のまま所定量押し下げるように駆動する操作子駆動段階とを備えることを特徴とする。請求項９に記載の発明は、楽器に、前記楽器の操作子のうち演奏者が次に操作すべき操作子を指示する動作を実行させる演奏支援プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、予め記憶された前記楽器の演奏態様を示す演奏情報に基づいて操作すべき操作子および操作すべきタイミングを特定する支援情報生成段階と、前記支援情報に基づいて、次に操作すべき前記操作子を、前記操作すべきタイミングの所定時間前に非発音状態のまま所定量押し下げてから非駆動状態に戻し、前記操作すべきタイミングにおいて再度非発音状態のまま所定量押し下げるように駆動する操作子駆動段階とを実行させる演奏支援プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【０００５】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。
【０００６】
１．第１実施形態
第１実施形態は、アップライトピアノ型の電子ピアノにおいて演奏支援を行うものであり、操作子をわずかに駆動させることによって、次に操作すべき操作子の予告（予告表示）および操作タイミングを指示（押鍵指示）を行うものである。
【０００７】
１−１．第１実施形態の構成
１−１−１．概略構成
まず、図１を参照して、実施形態の概略構成について説明する。第１実施形態にかかる電子ピアノは、コントロールユニット１００および、鍵２０１とダンパーペダル２０２とを演奏操作子とするピアノ本体２００から構成されている。
コントロールユニット１００は、ピアノ本体２００における演奏支援動作を制御する他、ピアノ本体２００の各鍵２０１およびダンパーペダル２０２の動作を検知して発音制御を行うものである。
また、ピアノ本体２００は、電源ユニット２１０、Ｉ／Ｏユニット２２０、キードライブユニット２３０、キーセンサユニット２４０、ハンマセンサユニット２５０、ペダルドライブユニット２６０、およびペダルセンサユニット２７０を備えて構成されている。
キードライブユニット２３０は鍵２０１を駆動するものであり、ペダルドライブユニット２６０はダンパーペダル２０２を駆動するものである。これらは、コントロールユニット１００の制御に基づいて動作する。
また、キーセンサユニット２４０、ハンマセンサユニット２５０は鍵の動作を検出するためのセンサであり、ペダルセンサユニット２７０はダンパーペダルの動作を検出するためのセンサである。これらのセンサにおける検出は、コントロールユニット１００によって認識され、電子的に楽音が発音される。
なお、本実施形態において、ピアノ本体２００は、それぞれ操作されることにより発音される音高の異なる８８個の鍵２０１および、各鍵２０１に対応したキードライブユニット２３０、キーセンサユニット２４０、およびハンマユニット２５３を備えており、以下の説明においては、特定する必要が生じた場合に音名によって区別するものとする。
【０００８】
１−１−２．詳細構成
次に、実施形態にかかる電子ピアノの詳細構成について説明する。
【０００９】
（１）コントロールユニット１００
まず、図２および図３を参照しながら、コントロールユニット１００の詳細構成について説明する。
図２は、コントロールユニット１００の外観構成を示す図である。図２に示すように、コントロールユニット１００は、フロッピーディスクドライブ（ＦＤＤ）１１０、出力ポート１２０、ディスプレイ１３０、およびスイッチ群１４０を備えて構成されている。
ＦＤＤ１１０は、フロッピーディスクに記憶されたデータを読み取るための装置であり、本実施形態では、演奏データが記憶されたフロッピーディスクを挿入して使用する。
出力ポート１２０は、コントロールユニット１００において生成された楽音を出力するためのものであり、例えばスピーカＳＰや、ヘッドフォンＨＨが接続できるようになっている。
ディスプレイ１３０は、電子ピアノの状態や各種設定を表示するためのものであり、例えば７セグメントＬＥＤ（Light Emitting Diode）やＬＣＤ（Liquid Crystal Display）などから構成されている。
スイッチ群１４０は、各種設定情報などを入力するためのものであり、例えば演奏支援の開始を指示するスタートスイッチ１４１や、演奏支援の停止を指示するストップスイッチ１４２などを備えている。
【００１０】
次に、図３を参照しながら、コントロールユニット１００の電気的構成について説明する。
図３に示すように、コントロールユニット１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、１／Ｏユニットインターフェイス１０４、電子音源１０５、ＦＤＤ１１０、出力ポート１２０、ディスプレイ１３０、およびスイッチ群１４０を備えて構成されている。
【００１１】
ＣＰＵ１０１は、ＲＯＭ１０２に記憶されたプログラムに基づいて、バスを介して接続された各部の制御を行う。ＲＡＭ１０３は、一時的にデータを記憶するために用いられ、本実施形態では、ＦＤＤ１００によってフロッピーディスクから読み出された演奏データを記憶する他、後に説明するフラグ、レジスタなどが設定される。１／Ｏユニットインターフェイス１０４は、ピアノ本体２００におけるＩ／Ｏユニット２２０とのインターフェイス動作を行うものである。
電子音源１０５は、ＣＰＵ１０１の制御の下で楽音を生成して出力するものであり、電子音源１０５において生成された楽音は、出力ポート１２０を介してスピーカＳＰあるいはヘッドフォンＨＨから出力されるようになっている。
【００１２】
（２）ピアノ本体２００
次に、図４を参照しながら、ピアノ本体２００の詳細構成について説明する。電源ユニット２１０は、電子ピアノ全体を動かすための安定した電力を供給するものであり、コントロールユニット１００に対してはコンピュータ用直流電源を供給し、Ｉ／Ｏユニット２２０に対しては高圧・大電力を供給する。
Ｉ／Ｏユニット２２０は、Ｉ・Ｃ２２１およびパワートランジスタ２２２、２２３を備え、コントロールユニット１００から入力される演奏支援内容を示す支援用信号Ｓｓを強弱の電流に変換して、鍵盤用電磁石２３１およびペダル用電磁石２６１に送るものである。
【００１３】
鍵盤用電磁石２３１は、キードライブユニット２３０に設けられた電磁石であり、パワートランジスタ２２２から供給された電流によって励磁されるとプランジャが突出して鍵２０１の左端側（演奏者に対して奥側）を押し上げ、演奏者による押鍵と同様の鍵動作を行わせる。
ペダル用電磁石２６１は、ペダルドライブユニット２６０に設けられた電磁石であり、パワートランジスタ２２３から供給された電流によって励磁されるとプランジャを持ち上げてダンパーペダルの左端側（演奏者に対して奥側）を引き上げ、演奏者によるダンパーペダル２０２の押下と同様の動作を行わせる。
【００１４】
キーセンサユニット２４０は鍵２０１の下方に設けられており、鍵２０１の下部に突設されたシャッタ２４１および、鍵２０１の下方に設けられた鍵盤用光センサ２４２を備えて構成されている。
ハンマセンサユニット２５０は鍵２０１の操作に伴って打弦するハンマ２５３に設置されており、ハンマ２５３に突設されたシャッタ２５１およびハンマ２５３の移動方向に設置されたハンマ用光センサ２５２を備えて構成されている。
受光基板２８１は、鍵盤用光センサ２４２およびハンマ用光センサ２５２から入力された光信号を、光量に応じた電気信号に変換するものである。
【００１５】
鍵盤用光センサ２４２およびハンマ用光センサ２５２には、例えば、特開平９−５４５８４号公報に記載されたようなセンサを用いる。具体的には、シャッタ２４１の下方に設けられたセンサボックスには、鍵の位置に応じた量だけシャッタ２４１が進入するようになっている。
センサボックスの内部に設けられた発光側センサヘッドは、光ファイバを介してＬＥＤから光が供給されて、直径約５ｍｍ程度の光ビームを出力する。受光側センサヘッドは、発光側センサヘッド２２１が照射する光ビームを受光する。その受けられた光は、光ファイバを介して受光基板２８１へ送られ、受光基板２８１は、光量に応じた信号を出力する。
この場合、発光側センサヘッドから照射される光ビームは、シャッタ２４１の位置に応じた分だけ遮蔽されるようになっており、この結果、受光側センサヘッドの受光量はシャッタ２４１の位置、すなわち、鍵の位置に応じて変化する。したがって、受光基板の出力信号は、鍵２０１の位置を反映するアナログ値となる。
また、ペダルセンサユニット２７０は、ダンパーペダル２０２が押下されたときにオン状態になるペダルセンサスイッチ２７１を備えている。
センサボード２８２は、受光基板２８１から供給される信号および、ペダルセンサスイッチ２７１から供給される信号に基づいて、鍵２０１が押下された速度情報を処理するものである。
なお、鍵２０１、ハンマ２５３、鍵２０１の挙動をハンマ２５３に伝達するアクション機構、弦、ダンパ、ペダル機構などは、従来のアップライト型のアコースティックピアノと同様の構成である。また、本実施形態では、鍵２０１が押下された場合には、電子音源１０５の電子音とハンマ２５３が弦を打撃することによって発せられるアコースティック音とが発生可能であるが、ハンマ２５３の打撃を阻止する位置と阻止しない位置とで移動可能なストッパ（図示略）が設けられており、電子音とアコースティック音を選択的に発生することができる。
【００１６】
１−２．第１実施形態の動作
次に、上記構成を有する第１実施形態の動作について説明する。
【００１７】
１−２−１．概要動作
図５は、本実施形態の概要動作を示す図である。以下の説明において、鍵２０１あるいはダンパーペダル２０２を駆動することによって演奏支援を行うための信号の系列を「支援系」という。これに対して、鍵２０１あるいはダンパーペダル２０２の操作を検出して楽音を生成するための信号の系列を「発音系」という。
【００１８】
まず、支援系に着目して、本実施形態の概要動作を説明する。コントローラユニット１００から出力された支援用信号Ｓｓは、Ｉ／Ｏユニット２２０によって励磁電流に変換されてキードライブユニット２３０あるいはペダルドライブユニット２６０に供給され、これにより鍵２０１あるいはダンパーペダル２０２が駆動する。
この場合における励磁電流は、鍵２０１あるいはダンパーペダル２０２を所定量のみ駆動する程度の強さに設定されている。この所定量は、発音処理においては、鍵２０１あるいはダンパーペダル２０２が操作されたことを認識しない程度の駆動量を予め設定しておいたものである。
本実施形態では、操作タイミングよりも所定時間前にて鍵２０１あるいはダンパーペダル２０２を駆動（予告表示を開始）して、操作タイミングの前に一旦解除する（鍵２０１をレスト位置に戻す）。そして、操作タイミングにおいて再度鍵２０１あるいはダンパーペダル２０２を駆動して操作指示表示を行う。従って、演奏者は、操作タイミングよりも若干早めに”ピクッ”と動いた鍵２０１あるいはダンパーペダル２０２が再度下がった時に、操作タイミングであると判断して、その鍵２０１あるいはダンパーペダル２０２をそのまま押下すればよい。
【００１９】
次に、発音系に着目して、本実施形態の概要動作について説明する。キーセンサユニット２４０、ハンマユニット２５０によって検出された光信号が受光基板２８１に供給され、受光基板は２８１は、入力された光信号を光量に応じた電気信号に変換して、センサボード２８２に供給する。また、ペダルセンサユニット２７０において検出された信号もセンサボード２８２に供給される。
センサボード２８２は、受光基板２８１から供給される信号および、ペダルセンサユニット２７０から供給される信号に基づいて、鍵が押下された速度情報を処理し、操作された操作子および操作における速度情報を示す発音用信号ＳｈをＩ／Ｏユニット２２０を介してコントロールユニット１００に供給する。
コントロールユニット１００は、入力された発音用信号Ｓｈに基づいて、操作された鍵２０１あるいはダンパーペダル２０２および操作における速度を認識して発音処理を行う。
【００２０】
ここで、図６は、演奏者による打鍵に基づく鍵２０１の駆動量Ｌｈと、演奏指示のための駆動に基づく鍵２０１の駆動量Ｌｓとを比較して示す図である。なお、本実施形態では、鍵２０１の駆動量は、鍵２０１の非駆動状態における位置（レスト位置）と駆動後の位置との垂直方向における変位量を示すものとする。
センサボード２８２は、鍵２０１の駆動量０〜Ｌｓに対応する信号が受光基板２８１から供給された場合には押鍵操作があったことを示す発音用デジタル信号Ｓｈを出力しない。
一方、鍵２０１の駆動量がＬｓを超えた場合は、センサボード２８２は、受光基板２８１から供給された鍵２０１の駆動量に対応する信号に基づいて押鍵速度を示す発音用信号Ｓｈを出力する。
ところで、演奏指示（鍵２０１の駆動）を行うタイミングについては、ＭＩＤＩ（Musical Instrument Digital Interface）規格に基づいて作成された演奏データに基づいて行われる。演奏データは、フロッピーディスクから読み出されてＲＡＭ１０３に記憶されている。
【００２１】
ここで、図７は、ＲＡＭ１０３に記憶された演奏データの内容例を示している。
ＭＩＤＩ規格における演奏情報には、各鍵２０１を押下するタイミングに関するＭＩＤＩデータ（デュレーションデータ）と、演奏動作である押鍵または離鍵を指示するＭＩＤＩデータ（イベントデータ）とがある。
イベントデータは、演奏動作が押鍵（ノートオン）であるか離鍵（ノートオフ）であるかを示すデータと、押下する鍵を特定するデータ（ノートナンバー）および押下する強さを示すデータ（ベロシティ）とを含んでいる。
【００２２】
演奏データメモリ１０５には、図７に例示するように、所定のアドレスを先頭として、上述の各ＭＩＤＩデータが格納されている。そして図７に示しように、ＭＩＤＩデータのデータ種別がデュレーションである場合は、イベント間の相対時間であるデュレーションタイムがデータ種別に続いて格納される。本実施形態では、割り込み処理を行うクロック数によってデュレーションタイムを表すものとする。通常、ＭＩＤＩ規格においては、４分音符あたりのクロック数を２４クロックとしたＭＩＤＩタイミングクロックを用いている。４分音符１拍分の時間は、テンポによって決定されるので、各イベント間の絶対的な時間は、設定されるテンポに応じて変化する。
【００２３】
例えば、ＣＰＵ１０１が、割り込みクロック数をＭＩＤＩタイミングクロック（４分音符あたり２４クロック）とし、テンポ＝６０（４分音符を１分間に６０回＝１秒間に１回）と設定した場合は、１クロック毎の時間間隔が１／２４秒となる。
デュレーションタイムが１００であれば、イベント間の時間間隔が１００クロックであることを示しており、この場合は、１００×（１／２４）＝１００／２４秒間であることになる。
なお、テンポは演奏データの冒頭に格納されていてもよいし、スイッチによって設定できるようにしてもよい。
【００２４】
一方、ＭＩＤＩデータのデータ種別がイベントである場合は、ノートオンあるいはノートオフ、ノートナンバー、およびベロシティがデータ種別に続いて格納される。
ノートナンバーは、音高を数値で表すものであり、ピアノであれば中央の音階である”ド”（音名：Ｃ）を６０として半音段階で０〜１２７までの数値が割り当てられている。ピアノの演奏において押下する鍵は、音高から一義的に決定されるので、コントローラ１００は、ノートナンバーを参照することによって押鍵指示すべき鍵を特定することができる。
電子ピアノの動作は、ＲＯＭ１０２に記憶されたプログラムおよびＲＡＭ１０３に記憶された演奏データに基づいて、具体的には以下のように実行される。
【００２５】
１−２−２．具体的な処理
次に、図８〜図１３に示したフローチャートを参照しながら、具体的な処理内容について説明する。
以下、図７に例示した演奏データに基づいて演奏指示を行う場合を具体例として、図１４に示すタイムチャートを適宜参照しながら説明を行う。なお、図１４においては、各鍵２０１は音名（Ｃ、Ｃ＃、Ｄ、Ｅ、Ｆ、Ｆ＃、Ｇ、Ｇ＃、Ａ、Ａ＃、Ｂ）で特定する。
【００２６】
（１）メインルーチン
まず、図８を参照しながら、ＲＯＭ１０２に記憶されたプログラムに基づいてＣＰＵ１０１が行う処理のメインルーチンについて説明する。
電子ピアノに電源が投入されると、ＣＰＵ１０１は、まず初期設定処理を行う（Ｓ１０）。初期設定処理においては、ＲＡＭ１０３に設定される各種レジスタやフラグなどの初期化を行う。
【００２７】
ここで、ＲＡＭ１０３に設定されるレジスタおよびフラグについて説明する。
ＲＡＭ１０３には、演奏指示動作を行うか否かを判定するためのフラグＢＦが設定される。フラグＢＦは、上述したスイッチ群１４０中のスタートスイッチ１４１がオンとなった場合に”１”となる。そして、ストップスイッチ１４２がオンとなった場合、あるいは、データ種別がエンドであるＭＩＤＩデータを読み出した時に”０”となる。
【００２８】
次に各種レジスタについて説明する。
レジスタには、経過時間をカウントするためのレジスタＤ１、Ｄ２と、アドレスを記憶するためのレジスタＡＤ１、ＡＤ２がある。
レジスタＤ１には、次に予告表示の開始を行うまでの時間がセットされ、レジスタＤ２には、次に押鍵指示の開始あるいは解除を行うまでの時間がセットされる。
また、レジスタＡＤ１には、予告表示の開始を行う際に読み出す演奏データのアドレスがセットされ、レジスタＡＤ２には、押鍵指示の開始あるいは解除を行う際に読み出す演奏データのアドレスがセットされる。
【００２９】
初期化処理においてこれらの値がすべて所定値にリセットされると、次にＣＰＵ１０１は鍵盤処理を行う（Ｓ２０）。鍵盤処理は、キーセンサユニット２４０、ハンマセンサユニット２５０、ペダルセンサユニット２７０において鍵２０１およびダンパーペダル２０２の動作を認識して楽音を生成する処理であり、電子音源１０５が選択されている場合にのみ起動されるものであるが、より詳しくは後述する。
【００３０】
鍵盤処理が終了すると、ＣＰＵ１０１は、次に演奏支援処理を行う（Ｓ３０）。演奏支援処理は、後に詳しく説明するように、ＲＡＭ１０３に記憶された演奏データに基づいて鍵２０１あるいはダンパーペダル２０２を駆動するために、レジスタのセットを行う処理である。鍵２０１あるいはダンパーペダル２０２の駆動制御は、後に説明する割り込み処理によって行われる。
演奏支援処理が終了すると、ＣＰＵ１０１は、パネル処理を行う（Ｓ４０）。パネル処理においては、スイッチ群１４０における各種スイッチの状態を検出して、スイッチによって指定された状態に対応して各種レジスタおよびフラグのセットを行う。
そして、パネル処理が終了すると、ＣＰＵ１０１は、その他の処理を行った後（Ｓ５０）、処理をステップＳ２０に移行させ、再度鍵盤処理を行う（Ｓ２０）。
このようなステップＳ２０〜ステップＳ５０の循環処理は、電子ピアノの電源が遮断されるまで繰り返される。
【００３１】
（２）鍵盤処理
次に、図９に示したフローチャートを参照しながら、鍵盤処理（図８：Ｓ２０）について説明する。
鍵盤処理を開始すると、ＣＰＵ１０１は、いずれかの鍵２０１が操作されたか否かの判別を行う（Ｓ２１）。
ステップＳ２１の判別において、いずれかの鍵２０１が操作されたと判別した場合は（Ｓ２１；ＹＥＳ）、ＣＰＵ１０１は、押鍵された場合には押下された鍵２０１に対応する音高および押鍵速度に基づいて電子音源１０５を制御して演奏音を生成する発音処理を行い（Ｓ２２）、離鍵された場合には離された鍵２０１に対応する音高に基づいて電子音源１０５を制御して演奏音の消音処理を行う。ここでは、ＣＰＵ１０１はセンサボード２８２から出力される発音用信号Ｓｈによって押下されたあるいは離された鍵２０１および押鍵速度を特定することができる。
【００３２】
一方、ステップＳ２１の判別において、いずれの鍵２０１も操作されなかったと判別した場合は（Ｓ２１；ＮＯ）、発音処理を行わずに、そのままメインルーチンに戻す。
【００３３】
（３）演奏支援処理
次に、図１０に示したフローチャートを参照しながら、演奏支援処理（図８：Ｓ３０）について説明する。
演奏支援処理を開始すると、ＣＰＵ１０１は、スタートスイッチ１４１がオンされたか否かの判別を行い（Ｓ３１）、オンされたと判別した場合は（Ｓ３１；ＹＥＳ）、演奏支援を行うことを示すフラグＢＦに１をセットし（Ｓ３２）、データセット処理（Ｓ３３）を行う。
データセット処理では、アドレスＡＤ１およびＡＤ２に、最初に予告表示を行うための演奏データを読み出すアドレスセットする。また、最初のデュレーションデータを読み出して、これに基づいて最初に予告表示を行うためのデュレーションデータをレジスタＤ１にセットする。そして、最初に押鍵指示を行うためのデュレーションデータをレジスタＤ２にセットする。
【００３４】
より具体的には、スタートスイッチ１４１がオフ状態からオン状態になったことを検出した場合には、フロッピーディスクからＲＡＭ１０３に演奏データをロードし、前述の各種レジスタを演奏データに応じてセットする。図７に例示した演奏データであれば、最初のノートオンイベント（アドレス２）までのデュレーションタイム＝１００であり、押鍵指示を行う５０クロック前に予告表示を開始するので、予告表示を開始するまでの時間を示すレジスタＤ１には１００−５０が、押鍵指示を開始するまでのレジスタＤ２には”１００”がセットされる。また、予告表示を行うための演奏データが格納されたアドレスを示すレジスタＡＤ１には”２”が、押鍵指示を行うための演奏データが格納されたアドレスを示すレジスタＡＤ２には”２”が、それぞれセットされる。
【００３５】
データセット処理を終了すると、ＣＰＵ１０１は、ストップスイッチ１４２がオンされたか否かの判別を行い（Ｓ３４）、オンされたと判別した場合は（Ｓ３４；ＹＥＳ）、演奏支援を行うことを示すフラグＢＦに０をセットして（Ｓ３５）、処理をメインルーチンに戻す。
ステップＳ３１の判別において、スタートスイッチ１４１がされなかったと判別した場合は（Ｓ３１；ＮＯ）、フラグＢＦの値を変更する必要がないので、処理をステップ３４に移行させて、ストップスイッチ１４２がオンされたか否かを判別する。
【００３６】
ステップＳ３４の判別において、ストップスイッチ１４２がオンされなかったと判別した場合は（Ｓ３４；ＮＯ）、フラグＢＦの値を変更する必要がないので、処理をメインルーチンに戻す。
この処理に基づいてセットされたアドレスＡＤ１およびＡＤ２および、レジスタＤ１、Ｄ２の値に基づいて、次に説明する割り込み処理において演奏支援制御が行われる。
【００３７】
（４）割り込み処理
次に、図１１に示したフローチャートを参照しながら、割り込み処理について説明する。ＣＰＵ１０１は、割り込み周期（１ＭＩＤＩタイミングクロック）毎に割り込み処理ルーチンを起動する。
割り込み処理ルーチンを起動すると、ＣＰＵ１０１は、まずフラグＢＦ＝１であるか否かを判別する（Ｓ１０１）。フラグＢＦは、前述のようにメインルーチンの演奏支援処理（図８：Ｓ３０）においてスタートスイッチ１４１がオンである場合に”１”にセットされるフラグである。従って、ステップＳ１０１の判別において、ＢＦ≠１と判別した場合には（Ｓ１０１；ＮＯ）、以降の処理（Ｓ１０２〜Ｓ１２０）を行わず、そのまま処理をメインルーチンに戻す。
【００３８】
一方、ステップＳ１０１の判別において、ＢＦ＝１であると判別した場合は（Ｓ１０２；ＹＥＳ）、演奏支援のための処理に移行する（Ｓ１０２〜Ｓ１２０）。  演奏支援のための処理に移行すると、ＣＰＵ１０１は、まずレジスタＤ１、Ｄ２の値を１デクリメントする（Ｓ１０２）。
上述のように、レジスタＤ１には、次に予告表示を開始するまでの時間がセットされ、レジスタＤ２には、次に押鍵指示を開始するまでの時間がセットされている。割り込み処理ルーチンを１回実行する毎に各レジスタの値を１デクリメントすることによって、１クロック分の時間が経過する毎に各レジスタの値が１ずつ減少するので、各レジスタの値が”０”であれば、レジスタにセットされていた時間が経過した、すなわち、各レジスタにセットされた時間に対応する処理（Ｄ１：予告表示処理、Ｄ２：押鍵指示処理）を行うタイミングであると判別できるようになっている。
【００３９】
各種レジスタの値を１デクリメントすると、ＣＰＵ１０１は、次にレジスタＤ１＝０であるか否かの判別を行い（Ｓ１０３）、Ｄ１＝０、すなわち予告表示を開始するタイミングであると判別した場合は（Ｓ１０３；ＹＥＳ）、予告表示のための処理を行う（Ｓ１０４）。
【００４０】
ここで、図１２は、予告表示処理のサブルーチンを示すフローチャートである。
ＣＰＵ１０１は、まず、レジスタＡＤ１にセットされたアドレスに対応したＭＩＤＩデータをＲＡＭ１０３から読み出す（Ｓ１１１）。そして、読み出したＭＩＤＩデータ中のノートナンバーによって特定される鍵２０１に対応したキードライブ２３０を、鍵２０１の駆動量がＬｓとなるように駆動するための制御信号ＳｓをＩ／Ｏユニット２２０に出力する（Ｓ１１２）。Ｉ／Ｏユニット２２０は、制御信号Ｓｓを鍵盤用電磁石２３１を励磁する電流に変換し、これにより鍵２０１がＬｓだけ駆動される。
そして、次に予告表示を行うべき演奏データ（＝次のノートオンイベント）が格納されたアドレスをレジスタＡＤ１にセットして（Ｓ１１３）、処理を割り込み処理に戻す。
【００４１】
例えば、図１４のｔ１においては、ステップＳ１０３（図１１の判別においてＤ１＝０であるので、予告表示処理（図１２）に移行する。ここで、ＡＤ１＝２であるので、ＲＡＭ１０３（図７）のアドレス２のＭＩＤＩデータ（ノートオンイベント、ノートナンバー＝６２）を読み出す。
読み出したＭＩＤＩデータ中のノートナンバーは６２であるから、ノートナンバーに対応する鍵２０１Ｄであると特定される。
そして、Ｉ／Ｏユニット２２０に支援用デジタル信号Ｓｓを出力した後、次に予告表示を行うべきイベントデータの格納されたアドレス６をレジスタＡＤ１にセットする。
【００４２】
説明を割り込み処理（図１１）に戻す。ステップＳ２０３の判定においてＤ１≠０と判定された場合（Ｓ１０３；ＮＯ）、あるいは、予告表示処理（Ｓ１１０）を終了した後、ＣＰＵ１０１は、次にＤ２＝０であるか否かを判別する（Ｓ１０４）。
Ｄ２＝０であると判別した場合（Ｓ１０４；ＹＥＳ）は、押鍵指示を行うタイミングであると判別できるので、押鍵指示処理（Ｓ１２０）に移行する。ここで、図１３は、押鍵指示処理のサブルーチンを示すフローチャートである。
押鍵指示処理においては、まず、すでに表示されている予告表示を解除し（Ｓ１２１）、次の予告表示を開始するまでの時間をレジスタＤ１にセットする（Ｓ１２２）。ここでは、次のノートオンイベントまでのデュレーションタイムに基づいて次に予告表示を開始するまでの時間を算出する。
【００４３】
より具体的には、最初のノートオンイベント（アドレス２）に基づく押鍵指示処理を行っている場合であれば、次のノートオンイベントはアドレス６に格納されていることがわかる。
アドレス２のノートオンイベントからアドレス６のノートオンイベントまでのデュレーションタイムは、２００＋３００＝５００クロック（アドレス３および５）であり、予告表示は押鍵指示の５０クロック前に開始するから、次に予告表示を開始するまでの時間は５００−５０＝４５０クロックとなる。従って、図１４のｔ２に示すように、レジスタＤ１には４５０がセットされる。
【００４４】
次に予告表示を開始するまでの時間をセットした後、ＣＰＵ１０１は、レジスタＡＤ２の示すアドレスに対応するＭＩＤＩデータを演奏データメモリから読み出し（Ｓ１２３）、読み出したＭＩＤＩデータがノートオンイベントであるか否かを判別する（Ｓ１２４）。
読み出したＭＩＤＩデータがノートオンイベントであると判別した場合（Ｓ１２４；ＹＥＳ）は、ＭＩＤＩデータ中のノートナンバーに基づいて駆動する鍵２０１を特定して支援用信号ＳｓをＩ／Ｏユニット２２０に出力する（Ｓ１２５）。これにより、鍵２０１はＬｓだけ駆動される。
【００４５】
一方、ステップＳ１２４の判別において、読み出したＭＩＤＩデータが、ノートオンイベントではない（例えばノートオフイベント）と判別した場合は（Ｓ１２４；ＮＯ）、ＭＩＤＩデータ中のノートナンバーに基づいて鍵２０１を特定して予告表示の解除を指示する支援用信号ＳｓをＩ／Ｏユニット２２０に出力する（Ｓ１２６）。
そして、ステップＳ１２５あるいはＳ１２６を終了した後、次のイベントデータを読み出すアドレスをＡＤ２にセットするとともに、次に押鍵指示を開始するまでの時間をレジスタＤ２にセットして（Ｓ１２７）、処理を割り込み処理（図１１）に戻す。
【００４６】
ここで、次に押鍵指示を開始するまでの時間は、ステップＳ１２３において読み出したＭＩＤＩデータの次にくるデュレーションデータによって特定される。
例えば、図１４のｔ２における押鍵指示処理であれば、ステップＳ１２３で読み出したＭＩＤＩデータのアドレスはＡＤ２＝２であるので、次にくるアドレス３のデュレーションデータはデュレーションタイム＝２００である。従って、次の押鍵指示処理を開始するまでの時間として”２００”がレジスタＤ２にセットされる。
【００４７】
１−２−３．第１実施形態の効果
図８〜図１３に示した処理を循環することによって、図１４に示すように、押鍵タイミングの５０クロック前に予告表示を開始し（ｔ１、ｔ４）、予告表示が一旦解除された後に押鍵指示が開始する（ｔ２、ｔ５）。このときの鍵２０１Ｄおよび鍵２０１Ｇの駆動量は、上述したＬｓであり、キーセンサユニット２４０およびハンマセンサユニット２５０における検出によっては発音処理が行われない。予告表示の開始から押鍵指示開始までの短い時間（５０クロック：テンポ＝６０の場合に、５０／２４秒）において予告表示が開始した後に解除されるので、演奏者には、鍵２０１Ｄが”ピクッ”と動いたように見える。
そして、演奏者が押鍵指示に基づいて鍵２０１Ｄを押下すると、鍵２０１Ｄの駆動量がＬｈとなって、キーセンサユニット２４０およびハンマセンサユニット２５０における検出に基づいて発音が行われる。
【００４８】
次に、鍵２０１Ｄの次に押下すべき鍵２０１Ｇが押鍵タイミング（ｔ５）の直前（ｔ４）に、”ピクッ”と動くことによって演奏者に対して次に押下すべき鍵２０１を予告する。そして、押鍵タイミング（ｔ５）において押鍵指示が行われて鍵２０１Ｇが駆動しても、演奏者が鍵２０１Ｇを押下しない場合は、鍵２０１Ｇの駆動量はＬｓのままであるので発音処理は行われない。しかしながら、演奏データによって指定された発音時間（図７に示す例では、２５０クロック）が経過すると（ｔ６）、押鍵指示表示は解除される。すなわち押鍵指示は、押下する鍵とともに押下している時間も指示している。
【００４９】
このように、演奏の進行に伴って、次に押下すべき鍵２０１が順次予告された後に押鍵指示が行われ、駆動した鍵２０１をそのまま演奏者が押下すれば発音されるので、演奏者は容易に演奏できるようになる。しかも、予告表示および押鍵指示は、鍵２０１を駆動することによって行われるので、演奏者は押下すべき鍵２０１を直接認識することができる。
これにより演奏者は、押鍵順序を記憶することも容易になり、譜面がなくても演奏できるようになる。
【００５０】
２．第２実施形態
次に、第２実施形態について説明する。第１実施形態においては、予告表示および押鍵指示を行うものとしたが、第２実施形態では、更に、次に押鍵すべき方向を指示するために、直前に押鍵指示した鍵と次に押鍵指示する鍵の中間に位置する鍵を順次駆動する。
なお、第２実施形態の構成は、第１実施形態と同様であるので、説明を省略する。
【００５１】
２−１．第２実施形態の動作
第２実施形態では、第１実施形態と異なる以下の割り込み処理が行われる。その他の処理（図８〜図１０、図１２、図１３）は第１実施形態と同様であるので、まず、第１実施形態において用いられていないレジスタについて説明し、その後、図７に例示した演奏データに基づいて演奏指示を行う場合を具体例として、図１７に示すタイムチャートを適宜参照しながら、第２実施形態における割り込み処理について説明する。
【００５２】
第２実施形態において用いられるレジスタＤ３は、次押鍵の方向指示を行う際に、次の表示を開始するまでの時間をセットするレジスタである。レジスタＨは、次押鍵方向を特定するためのレジスタであり、次押鍵方向指示表示のために駆動した鍵に対応するノートナンバーがセットされる。
【００５３】
ここで、図１５は、第２実施形態における割り込み処理を示すフローチャートである。
割り込み処理ルーチンを起動すると、ＣＰＵ１０１は、まずフラグＢＦ＝１であるか否かを判別する（Ｓ２０１）。フラグＢＦは、前述のようにメインルーチンの演奏支援処理（図８：Ｓ３０）においてスタートスイッチ１４１がオンである場合に”１”にセットされるフラグである。従って、ステップＳ２０１の判別において、ＢＦ≠１と判別した場合には（Ｓ２０１；ＮＯ）、以降の処理（Ｓ２０２〜Ｓ２０９）を行わず、そのまま処理をメインルーチンに戻す。
【００５４】
一方、ステップＳ２０１の判別において、ＢＦ＝１であると判別した場合は（Ｓ２０２；ＹＥＳ）、演奏支援のための処理に移行する（Ｓ２０２〜Ｓ２１０）。  演奏支援のための処理に移行すると、ＣＰＵ１０１は、まずレジスタＤ１、Ｄ２、およびＤ３の値を１デクリメントする（Ｓ２０２）。
上述のように、レジスタＤ１には次に予告表示を行うまでの時間がセットされ、レジスタＤ２には次に押鍵指示の開始あるいは解除を行うまでの時間がセットされ、レジスタＤ３には次の押鍵方向指示表示を行うまでの時間がセットされている。本ステップにおいて各レジスタの値を１デクリメントすることによって、１クロック分の時間が経過する毎に各レジスタの値が１ずつ減少するので、各レジスタの値が”０”であれば、レジスタにセットされていた時間が経過した、すなわち、各レジスタにセットされた時間に対応する処理（Ｄ１：予告表示処理、Ｄ２：押鍵指示処理、Ｄ３：次鍵方向指示表示処理）を行うタイミングであると判別できるようになっている。
【００５５】
各種レジスタの値を１デクリメントすると、ＣＰＵ１０１は、次にレジスタＤ１＝０であるか否かの判別を行い（Ｓ２０３）、Ｄ１＝０、すなわち予告表示を開始するタイミングであると判別した場合は（Ｓ２０３；ＹＥＳ）、予告表示のための処理を行う（Ｓ２０４）。予告表示処理では、例えば、図１７のｔ１においては、ステップＳ２０３（図１５）の判別においてＤ１＝０であるので、予告表示処理（図１２）に移行する。ここで、ＡＤ１＝２であるので、ＲＡＭ１０３（図７）のアドレス２のＭＩＤＩデータ（ノートオンイベント、ノートナンバー＝６２）を読み出す。読み出したＭＩＤＩデータ中のノートナンバーは６２であるから、ノートナンバーに対応する鍵Ｄと特定される。そして、発光装置２００に指示信号を出力した後、次に予告表示を行うべきＭＩＤＩデータの格納されたアドレス６をレジスタＡＤ１にセットする。
【００５６】
ステップＳ２０３の判定においてＤ１≠０と判定された場合（Ｓ２０３；ＮＯ）、あるいは、予告表示処理（Ｓ２０４）を終了した後、ＣＰＵ１０１は、次にＤ２＝０であるか否かを判別する（Ｓ２０５）。
Ｄ２＝０であると判別した場合（Ｓ２０５；ＹＥＳ）は、押鍵指示を開始するタイミングであると判別できるので、押鍵指示処理（Ｓ２０６）に移行する。具体的には、最初のノートオンイベント（アドレス２）に基づく押鍵指示処理を行っている場合であれば、次のノートオンイベントはアドレス６に格納されていることがわかる。
【００５７】
アドレス２のノートオンイベントからアドレス６のノートオンイベントまでのデュレーションタイムは、２００＋３００＝５００クロック（アドレス３および５）であり、予告表示の開始は押鍵指示の開始の５０クロックであるから、次に予告表示を開示するまでの時間は５００−５０＝４５０クロックとなる。従って、図１７のｔ２に示すように、レジスタＤ１には４５０がセットされる。
また、次に押鍵指示を開始するまでの時間は、図１７のｔ２における押鍵指示処理であれば、ステップＳ４０３で読み出したＭＩＤＩデータのアドレスはＡＤ２＝２であるので、次にくるアドレス３のデュレーションデータはデュレーションタイム＝２００である。従って、次の押鍵指示処理を開始するまでの時間として”２００”がレジスタＤ２にセットされる。
【００５８】
押鍵指示処理を終了すると、ＣＰＵ１０１は、次押鍵方向を指示する表示を行うための準備処理を行う（Ｓ２０７）。ここでは、次押鍵方向を指示するために鍵の駆動を開始するまでの時間をレジスタＤ３にセットする。なお、次押鍵方向を指示するために鍵の駆動を開始するまでの時間の算出については、後に具体例を示して説明する。
本実施形態では、直前に押鍵指示を行った鍵２０１と次に押鍵指示を行うべき鍵２０１との中間に位置する鍵２０１を順次駆動していくことによって次押鍵の方向指示を行うからである。
また、レジスタＤ３への時間のセットとあわせて、ステップＳ２０６において押鍵指示を行った鍵２０１に対応するノートナンバーをレジスタＨにセットする処理を行う。次押鍵方向を指示するためには、直前に押鍵指示した鍵２０１から次に押鍵指示すべき鍵２０１に向かって、中間に位置する鍵２０１を順次駆動していくからである。
【００５９】
ここで、次押鍵方向指示表示として、次に鍵２０１の駆動を開始するまでの時間について説明する。上述したように、予告表示は、次に押鍵指示を開始するタイミングの５０クロック前に当該鍵を駆動することによって行う。図１７の例では、次の押鍵指示を行うタイミングはｔ９であり、ｔ９よりも５０クロック前のタイミングはｔ８である。従って、ｔ８において次の予告表示を行わなくてはならない。ここで、次に押鍵指示を行うべき鍵２０１はノートナンバー６７（Ｇ）であるから、鍵２０１Ｇを駆動しなくてはならない。
そこで、次押鍵方向指示表示としては、直前に押鍵指示した鍵２０１（ノートナンバー６２（Ｄ））と、次に押鍵指示する鍵２０１（ノートナンバー６７（Ｇ））との中間に位置する鍵２０１（ノートナンバー６３〜６６（Ｄ＃〜Ｆ＃））を、直前に押鍵指示したタイミング（ｔ２）から次に予告表示を開始するタイミング（ｔ８）の間（ｔ８−ｔ２）において順次駆動する。
【００６０】
ここで、ｔ８−ｔ２の間において、中間に位置する鍵２０１が均等な時間で順次駆動すれば、演奏者は次に押鍵すべき鍵２０１の方向および、音程の隔たりを把握することができる。すなわち、鍵２０１が短い時間で順次駆動すれば、直前に押下した鍵２０１と次に押下する鍵２０１との中間に位置する鍵２０１の数が多いので、音程に隔たりがあることがわかる。具体的な処理としては、次に予告表示を開始するまでの時間（Ｔａ）を、直前の押鍵指示のタイミングから次の押鍵指示のタイミングまでの時間および、押鍵指示に先だって予告表示を行う時間から算出する。また、直前に押鍵指示した鍵２０１と次に押鍵指示すべき鍵２０１と隔たりを示す数（Ｎ）を、直前に参照したＭＩＤＩデータのノートナンバーと、次に押鍵指示するＭＩＤＩデータのノートナンバーから算出する。そして、次押鍵指示表示のために予告表示を開始するまでの時間Ｔｂを次式によって算出する。
Ｔｂ＝Ｔａ／Ｎ
【００６１】
図７および図１７に示した演奏データの例では、ｔ２における押鍵指示の次に押鍵指示を開始するまでの時間は、デュレーションタイム２００＋３００＝５００（アドレス３、５）である。押鍵指示を開始する５０クロック前に予告表示を開始するので、次に予告表示を開始するまでの時間は、
Ｔｂ＝５００−５０
＝４５０
クロックとなる。
また、時刻ｔ２において押鍵指示したノートナンバー＝６２であり、次に押鍵指示すべきノートナンバー＝６７であるから、Ｎ＝６７−６２＝５となる。従って、直前に押鍵指示した鍵２０１と次に押鍵指示すべき鍵２０１とは５鍵分の音高の隔たりがあることになる。
従って、
0003887978.tif 000002
となり、次押鍵方向指示のために鍵２０１を駆動させていく時間間隔は９０クロックであると算出され、レジスタＤ３には”９０”がセットされる。
【００６２】
さて、図１５に示したステップＳ２０５の判別において、Ｄ２≠０、すなわち、押鍵指示処理を行うべきタイミングではないと判別した場合（Ｓ２０５；ＮＯ）、あるいは、次押鍵情報指示準備処理（Ｓ２０７）を終了した場合は、次にＣＰＵ１０１は、Ｄ３＝０、すなわち、次押鍵方向指示表示処理を行うタイミングであるか否かを判別する（Ｓ２０８）。
ここで、Ｄ３≠０であると判別した場合は（Ｓ２０８；ＮＯ）、次押鍵方向指示表示処理を行うタイミングではないので、処理をそのままメインルーチン（図６）に戻す。
一方、ステップＳ２０８の判別において、Ｄ３＝０であると判別した場合は（Ｓ２０８；ＹＥＳ）、次押鍵方向指示表示処理（Ｓ２１０）に移行する。
【００６３】
ここで、図１６は、次押鍵方向指示表示処理のサブルーチンを示すフローチャートである。
まず、ＣＰＵ１０１は、レジスタＨによって特定される鍵２０１を駆動することを指示する支援用信号Ｓｓを出力する（Ｓ２１１）。  そして、次に押鍵指示する際に参照するＭＩＤＩデータ中のノートナンバーが、直前に押鍵指示した際に参照したＭＩＤＩデータ中のノートナンバーよりも大きいか否かを判別する（Ｓ２１２）。
ここで、次に押鍵指示するノートナンバー＞直前に押鍵指示したノートナンバーであると判別した場合は（Ｓ２１２；ＹＥＳ）、ノートナンバーの大きい方向に鍵を順次駆動するので、鍵２０１を特定するノートナンバーをセットするレジスタＨの値を１インクリメントする（Ｓ２１３）。
【００６４】
一方、ステップＳ２１２の判別において、次に押鍵指示するノートナンバー≦直前に押鍵指示したノートナンバーであると判別した場合は（Ｓ２１２；ＮＯ）、ノートナンバーの小さい方向に鍵２０１を順次駆動するので、鍵２０１を特定するノートナンバーをセットするレジスタＨの値を１デクリメントする（Ｓ２１４）。
そして、ステップＳ２１３あるいはＳ２１４の処理を終了すると、ＣＰＵ１０１は、レジスタＨによって特定される鍵２０１の駆動を指示する信号ＳｓをＩ／Ｏユニット２２０に出力し（Ｓ２１５）、ステップＳ２０７（図１５）において算出した値を、隣の鍵２０１の駆動を開始するまでの時間としてレジスタＤ３に再度セットして、処理を割り込み処理（図１５）に戻す。
【００６５】
２−２．第２実施形態の具体的動作
ここで、図１７を参照しながら、次押鍵方向指示表示処理の具体例について説明する。
図１７のｔ３においては、ステップＳ２０８（図１５）においてＤ３＝０と判別されるので、次押鍵方向指示表示処理（図１６：Ｓ２１０、図１６）に移行する。ここで、直前の押鍵指示を行った鍵２０１に対応したノートナンバーがセットされたレジスタＨ＝６２であるので、鍵２０１Ｄの駆動を解除する制御信号Ｓｓを出力する。  そして、次に押鍵指示するノートナンバー＝６７は、直前に押鍵指示したノートナンバー＝６２よりも大きいので、レジスタＨの値を１インクリメントした値をレジスタＨにセットし、図１７のｔ３に示すようにレジスタＨの値は”６３”となる。ここで、レジスタＨにセットされたノートナンバーによって特定される鍵２０１Ｄ＃の駆動を指示する制御信号ＳｓをＩ／Ｏユニット２２０にＩ／Ｏユニット２２０に出力し、Ｄ３に”９０”を再度セットする。
【００６６】
次に、ｔ３から９０クロック後のｔ４においても、レジスタＤ３＝０となるので、同様の次押鍵方向指示処理が行われる。ここでは、レジスタＨによって特定される鍵２０１Ｄ＃は、ｔ３において駆動されたままになっているので、鍵２０１Ｄの駆動の解除を指示する制御用信号ＳｓをＩ／Ｏユニット２２０に出力する。そして、先と同様に
Ｈ＝Ｈ＋１
を実行し、Ｈ＝６４によって特定される鍵２０１Ｅの駆動を指示する支援用信号ＳｓをＩ／Ｏユニット２２０に出力する。
従って、ｔ４においては、鍵Ｄ＃の駆動が解除され、次に鍵Ｅが駆動するようになる。
【００６７】
このような処理を９０クロック毎に行うことによって、図１７に示すように、ｔ３において鍵２０１Ｄ＃、ｔ４において鍵２０１Ｅ、ｔ６において鍵２０１Ｆ、ｔ７において鍵２０１Ｆ＃が、先に駆動された鍵２０１の駆動が解除された直後に駆動されるので、駆動している鍵２０１の位置が演奏者から見て右（音高の高い鍵の方向）に動く。
そして、ｔ８においては、次に押鍵指示すべき鍵２０１Ｇが駆動し、その５０クロック後に一旦駆動が解除され、再度鍵２０１Ｇが駆動する。
このように、直前に押下した鍵２０１と次に押下する鍵２０１との中間に位置する鍵２０１が順次駆動するので、次に押下すべき鍵２０１の方向およびその鍵２０１が容易に把握できるようになる。
【００６８】
また、直前に押鍵指示したタイミングから次に押鍵指示すべきタイミングまでの時間を、鍵２０１の隔たりによって割った時間に応じて鍵２０１が順次駆動するので、演奏者は直前に押下した鍵２０１と次に押下すべき鍵２０１との音程の隔たりも把握することができるようになる。
また、直前に押下した鍵２０１と次に押下すべき鍵２０１とおなじである場合、すなわち直前に押鍵指示したノートナンバーと次に押鍵指示すべきノートナンバーが等しいので（例えば、いずれもノートナンバー６０）、図１５のステップＳ２０７において算出される値は、
0003887978.tif 000003
となるので、Ｄ３−１＝０となることはありえない。従って、ステップＳ２０８においては必ずＤ３≠０と判定されるので、次押鍵指示表示処理は行われず、演奏者は次に押下する鍵２０１は同じ鍵２０１であることを把握することができる。
【００６９】
３．変形例
なお、本発明は既述した実施形態に限定されるものではなく、以下のような各種の変形が可能である。
【００７０】
上記実施形態においては、演奏支援を行う楽器の例としてアップライトピアノ型の電子楽器を用いて説明したが、発音を伴う操作子の操作態様と発音を伴わない態様とが区別されており、各操作子の操作態様を制御できればよく、グランドピアノ型の電子楽器でもよいし、アコースティックのアップライトピアノあるいはグランドピアノであってもかまわない。あるいはピアノ以外の楽器でも構わない。
また、特にアコースティック楽器においては、操作子と被駆動部との間の機構に遊びがあり、操作子を操作してもあるストロークまでは被駆動部が移動しないものが多い。そこで、演奏指示における操作子の駆動量Ｌｓをこの遊びストローク以下にするとよい。
【００７１】
また、操作態様を制御する演奏操作子について、上記実施形態では鍵２０１を例として説明しているが、ダンパーペダル２０２について同様の制御を行っても構わない。この場合においては、演奏データ中にダンパーペダル２０２の操作に対応したイベントが含まれている場合に、当該イベントの内容に応じた処理を行えばよい。なお、上記実施形態では、ペダルはダンパーペダル２０２についてのみ説明しているが、ソフトペダルやマフラーペダルなど他のペダルであても構わない。
あるいは、ピアノ以外の楽器であっても同様に、演奏データに基づいてイベントに対応した操作子および操作タイミングを特定して処理を行うことができる。
【００７２】
このような演奏データは、上記実施形態においては、予めＭＩＤＩ規格に基づいて作成されフロッピーディスクに記憶されたものを、ＲＡＭ１０３に展開しているが、これに限らず、演奏データはＣＤ−ＲＯＭや光磁気ディスクなど他の記録媒体に記録されていてもよいし、予めコントローラユニット１００内の例えばハードディスクのような大容量記記憶媒体に記録されていてもよいし、通信回線を介して入力されても構わない。
あるいは、ピアノ本体２００における演奏を記録したものでも構わない。この場合においては、キーセンサ２４１、ハンマセンサ２５２、ペダルセンサ２７０によって検出された演奏操作子の操作態様に基づいて演奏データを生成してフロッピーディスクに記憶できるようにする必要がある。
【００７３】
また、演奏データの形式についても、上記実施形態のようにＭＩＤＩ規格に限定されるものではなく、音楽情報をデジタル信号によって扱うことができる規格であればどのようなものでもよく、独自の規格のデータであってもよい。また、イベントの発生タイミングを示すデータとしては、上記実施形態のようなデュレーションではなく、音符長や絶対時間を示すデータを用いてもよい。
上記実施形態においては、演奏者による操作子の操作に基づいて音源によって発音するものとしているが、これに限らず、ハンマ２５３の打弦による発音が行われるようにしても構わない。
【００７４】
上記実施形態においては、非発音状態となる操作態様としては、鍵をＬｓだけ押し下げるものとしているが、例えば押し上げるような態様でもよいし、駆動量を変化させるような態様であってもよい。
あるいは、発音状態となる駆動量と非発音状態となる駆動量が同じ場合があっても構わない。この場合においては、演奏支援として操作子を駆動するときには操作子の駆動量を検出したセンサの値を無視することによって非発音状態としてもよいし、例えば打弦によって発音する自然楽器であれば打弦自体を妨げるようにして非発音状態としても構わない。
また、上記実施形態においては、非駆動状態は鍵２０１がレスト位置にある状態を指すものとして説明しているが、必ずしも完全にレスト位置である必要はない。例えば、グランドピアノであれば、アクション機構のジャックが初期位置に戻れば非駆動状態としても構わない。すなわち、グランドピアノアクション機構においては、ハンマを突き上げ回動させるジャックを初期位置に保持させるジャックボタンおよびジャックストップスプーンが当接した状態あれば次の打鍵を行うことができる。従って、アコースティック音による発音が選択されていた場合に、鍵２０１を駆動した後で鍵２０１がレスト位置に戻っていなくても、ジャックが初期位置に戻っていれば、演奏者の打鍵に従ってハンマが打弦することによりアコースティック音が発生する。
【００７５】
上記実施形態においては、次押鍵方向指示表示を行う場合には、直前に押下した鍵２０１と次に押下すべき鍵２０１との中間に位置する鍵２０１を順次駆動させる際に、一つの鍵２０１の予告表示を解除してから次の予告表示を開始したが、鍵２０１の駆動態様はこれに限定さるものではない。例えば、駆動した鍵を、次に押下する鍵２０１の駆動を開始するまで駆動させたままにしてもよい。また、鍵２０１を順次駆動させていくタイミングも、上記実施形態に限定されるものではなく、演奏者が次に押下すべき鍵２０１の方向および鍵２０１の隔たりを把握できれば、時間の設定は任意である。例えば、次に押下すべき鍵２０１に近づくほど時間間隔を短くするようにすれば、その旨を演奏者に理解させることができる。
【００７６】
上記実施形態では、予告表示を押鍵表示の５０クロック前に行うようにしたが、何クロック前でもよい。また、クロック数のような相対時間ではなく、絶対時間として設定してもよい。
クロック数を用いて時間を処理する場合においても、上記実施形態のようにＭＩＤＩタイミングクロックに限定されるものではなく、他のクロック数であっても構わない。
【００７７】
また、鍵２０１の近傍にＬＥＤ（Light Emitting Diode）などの表示装置を設けて、ＬＥＤによって予告表示あるいは、押鍵指示のいずれかを行うようにしてもよい。この場合においては、上記実施形態においてコントロールユニット１００が鍵２０１を駆動する信号Ｓｓを出力するのにかえて、ＬＥＤの発光態様を制御する出力すればよい。
このような表示装置は、鍵２０１に適宜設置できる構成としてもよいし、予め鍵盤上あるいは鍵２０１の近傍に予め組み込まれている構成であっても構わない。
押鍵指示および予告表示を行うための表示体としては、表示態様を変化させることができればどのようなものでもよく、例えば電球などの他の発光体であってもよいし、ＬＣＤ（Liquid Crystal Display）などの表示装置であっても構わない。
また、上記実施形態においては、ＬＥＤの点灯および消灯において表示態様を変更してもよいし、例えばＬＥＤの点灯色を赤から緑に変更するような態様でもよいし、点灯から点滅に変更するような態様であってもよい。
【００７８】
また、上記実施形態では、ＣＰＵ１０１によって実行される制御プログラムはＲＯＭ１０２に記憶されているが、これに限らず、不揮発性メモリカード、ＣＤ−ＲＯＭ、フロッピーディスク、光磁気ディスク、および磁気ディスク等の可搬型の記録媒体に記録されたデータをハードディスク等の記憶装置に転送できるように構成してもよい。このようにすれば、制御情報や制御プログラム等の追加（インストール）や更新（バージョンアップ）の際に便利である。
【００７９】
【発明の効果】
以上説明したように、本発明によれば、演奏者の動作を直接的に示すことができるようになる。
【図面の簡単な説明】
【図１】  実施形態の概要構成を示す図である。
【図２】  コントロールユニットの外観構成を示す図である。
【図３】  コントロールユニットの電気的構成を示す図である。
【図４】  ピアノ本体の詳細構成を示す図である。
【図５】  実施形態の概要動作を示す図である。
【図６】  鍵の動作を示す図である。
【図７】  演奏データの例を示す図である。
【図８】  メインルーチンを示すフローチャートである。
【図９】  鍵盤処理を示すフローチャートである。
【図１０】  演奏支援処理を示すフローチャートである。
【図１１】  第１実施形態における割り込み処理を示すフローチャートである。
【図１２】  予告表示処理を示すフローチャートである。
【図１３】  押鍵指示処理を示すフローチャートである。
【図１４】  第１実施形態の具体的動作を示す図である。
【図１５】  第２実施形態における割り込み処理を示すフローチャートである。
【図１６】  次押鍵方向指示表示処理を示すフローチャートである。
【図１７】  第２実施形態の具体的動作を示す図である。
【符号の説明】
１００……コントロールユニット、１０１……ＣＰＵ、１０２……ＲＯＭ、１０３……ＲＡＭ、１０４……１／Ｏユニットインターフェイス、１０５……電子音源、１１０……ＦＤＤ、１２０……出力ポート、１３０……ディスプレイ、１４０……スイッチ群、２００……ピアノ本体、２０１……鍵、２０２……ダンパーペダル、２１０……電源ユニット、２２０……Ｉ／Ｏユニット、２２１……１・Ｃ、２２２……パワートランジスタ、２３０……キードライブユニット、２３１……鍵盤用電磁石、２４０……キーセンサユニット、２４１……シャッタ、２４２……鍵盤用光センサ、２５０……ハンマセンサユニット、２５１……シャッタ、２５２……ハンマ用光センサ、２５３……ハンマ、２６０……ペダルドライブユニット、２７０……ペダルセンサユニット、２７１……ペダルセンサスイッチ、２８１……受光基板、２８２……センサボード。
【図１】
0003887978.tif 000004
【図２】
0003887978.tif 000005
【図３】
0003887978.tif 000006
【図４】
0003887978.tif 000007
【図５】
0003887978.tif 000008
【図６】
0003887978.tif 000009
【図７】
0003887978.tif 000010
【図８】
0003887978.tif 000011
【図９】
0003887978.tif 000012
【図１０】
0003887978.tif 000013
【図１１】
0003887978.tif 000014
【図１２】
0003887978.tif 000015
【図１３】
0003887978.tif 000016
【図１４】
0003887978.tif 000017
【図１５】
0003887978.tif 000018
【図１６】
0003887978.tif 000019
【図１７】
0003887978.tif 000020