(57)【要約】      （修正有）【課題】自動演奏データの再生に合わせて鍵を駆動する際に、クイックスタートを行う場合にも、最初に再生される演奏イベントについても確実に鍵を駆動することができる鍵駆動装置つき電子鍵盤楽器を提供する。【解決手段】楽音の生成に関するイベントとイベントの再生タイミングを規定する第１のタイミングデータとを含む自動演奏データと、イベントに応じたイベントと第１のタイミングデータに対して所定時間先行した第２のタイミングデータとからなる鍵駆動用データとを記憶する記憶手段と、複数の鍵を有する鍵盤と、鍵駆動用データに基づき鍵を駆動する鍵駆動手段と、自動演奏データと鍵駆動用データを再生する再生手段と、再生開始時に、自動演奏データと鍵駆動用データの内の最も先に現れるイベントを検出し、検出したイベントまでを高速に再生し、該検出したイベント以降を通常速度で再生するように、再生手段を制御する再生制御手段とを有する。【選択図】図８
2008233808.tif 000002
【特許請求の範囲】
【請求項１】
楽音の生成に関するイベントと該イベントの再生タイミングを規定する第１のタイミングデータとを含む自動演奏データと、前記自動演奏データに含まれる前記イベントに応じたイベントと該イベントに対応する前記第１のタイミングデータに対して所定時間先行した第２のタイミングデータとからなる鍵駆動用データとを記憶する記憶手段と、
複数の鍵を有する鍵盤と、
前記複数の鍵のそれぞれを、前記鍵駆動用データに基づき駆動する鍵駆動手段と、
前記自動演奏データと前記鍵駆動用データを並列に再生する再生手段と、
前記再生手段による再生開始時に、前記自動演奏データと前記鍵駆動用データの内の最も先に現れるイベントを検出し、該検出したイベントまでを高速に再生し、該検出したイベント以降を通常速度で再生するように、前記再生手段を制御する再生制御手段と
を有する電子鍵盤楽器。
【請求項２】
さらに、前記鍵駆動手段による鍵駆動をオン・オフする駆動制御手段を有し、
前記再生制御手段は、鍵駆動がオフである時は、前記自動演奏データのみから最も先に現れるイベントを検出する請求項１記載の電子鍵盤楽器。
【請求項３】
楽音の生成に関するイベントと該イベントの再生タイミングを規定する第１のタイミングデータとを含む自動演奏データと、前記自動演奏データに含まれる前記イベントに応じたイベントと該イベントに対応する前記第１のタイミングデータに対して所定時間先行した第２のタイミングデータとからなる鍵駆動用データとを記憶する記憶手段と、複数の鍵を有する鍵盤と、前記複数の鍵のそれぞれを駆動する鍵駆動手段とを有する電子鍵盤楽器で実行されるプログラムであって、
前記自動演奏データと前記鍵駆動用データを並列に再生する再生手順と、
前記再生手順による再生開始時に、前記自動演奏データと前記鍵駆動用データの内の最も先に現れるイベントを検出し、該検出したイベントまでを高速に再生し、該検出したイベント以降を通常速度で再生するように、前記再生手段を制御する再生制御手順と
を有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵駆動装置付き電子鍵盤楽器に関し、より詳しくは、複数の鍵を含む鍵盤と、自動演奏用データの再生に合わせて各鍵を駆動する鍵駆動装置を備えた電子鍵盤楽器に関する。
【背景技術】
【０００２】
従来、音源回路及び複数の鍵を含む鍵盤を備え、自動演奏用のデータに基づいて音源回路を駆動して自動演奏を行うとともに、該自動演奏に合わせて各鍵を駆動する電子鍵盤楽器が知られている（例えば、特許文献１参照）。
【０００３】
鍵駆動回路に演奏（鍵駆動）イベントを供給してから鍵が駆動される（押鍵された状態となる）までには、多少の時間がかかり、鍵駆動回路と音源回路の双方へ同時に演奏イベントを供給すると、鍵の動きと楽音の発生とがずれてしまい、違和感が生じてしまう。このため、上述した電子音楽装置では、鍵駆動回路に演奏イベントを供給してから所定時間後に音源回路へと演奏イベントを供給するようにして、鍵の動きと楽音の発生とのずれを防止している。
【０００４】
【特許文献１】特開平０８−３３５０７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の鍵駆動装置付き電子鍵盤楽器では、自動演奏用データの再生中にタイミング調整処理をしており、いわゆるクイックスタートを実行することが難しい。なお、クイックスタートとは、演奏データの先頭に所定期間の空白又は発音に関する演奏イベント（ノートオン及びオフイベント）以外の初期設定等に関するイベントがある場合に、当該所定期間を高速に再生して、最初の演奏イベントから通常速度での再生を開始する自動演奏における再生手法である。例えば、複数トラックを有する演奏データがあり、そのうちの一部のトラックが鍵駆動にも使われる場合に、複数のトラックのうちで最初に表れた演奏イベントまで高速に再生を進め、該演奏イベントから通常速度での再生を行うとすると、該演奏イベントが鍵駆動にも使われるイベントであれば、その演奏イベントを鍵駆動回路へと供給し、その所定時間後に音源回路へと該演奏イベントを供給する。しかし、該演奏イベントが鍵駆動用には使われない場合は、所定時間経過後に音源回路に演奏イベントを送ると、再生開始が所定時間分遅くなってしまい、クイックスタートとは呼べなくなってしまう。
【０００６】
本発明の目的は、自動演奏データの再生に合わせて鍵を駆動する際に、クイックスタートを行う場合にも、無駄な再生開始の遅れを無くすとともに、最初に再生される演奏イベントについても確実に鍵を駆動することができる鍵駆動装置つき電子鍵盤楽器を提供することである。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、電子鍵盤楽器は、楽音の生成に関するイベントと該イベントの再生タイミングを規定する第１のタイミングデータとを含む自動演奏データと、前記自動演奏データに含まれる前記イベントに応じたイベントと該イベントに対応する前記第１のタイミングデータに対して所定時間先行した第２のタイミングデータとからなる鍵駆動用データとを記憶する記憶手段と、複数の鍵を有する鍵盤と、前記複数の鍵のそれぞれを、前記鍵駆動用データに基づき駆動する鍵駆動手段と、前記自動演奏データと前記鍵駆動用データを並列に再生する再生手段と、前記再生手段による再生開始時に、前記自動演奏データと前記鍵駆動用データの内の最も先に現れるイベントを検出し、該検出したイベントまでを高速に再生し、該検出したイベント以降を通常速度で再生するように、前記再生手段を制御する再生制御手段とを有する。
【発明の効果】
【０００８】
本発明によれば、自動演奏データの再生に合わせて鍵を駆動する際に、クイックスタートを行う場合にも、無駄な再生開始の遅れを無くすとともに、最初に再生される演奏イベントについても確実に鍵を駆動することができる鍵駆動装置つき電子鍵盤楽器を提供することができる。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明の実施例による電子鍵盤楽器１の基本構成を表すブロック図である。
【００１０】
バス６には、ＲＡＭ７、ＲＯＭ８、ＣＰＵ９、検出回路１１、表示回路１３、外部記憶装置１５、音源回路１８、効果回路１９、通信インターフェイス（Ｉ／Ｆ）２１、鍵駆動回路２３が接続される。
【００１１】
ＲＡＭ７は、再生バッファ等のバッファ領域、フラグ、レジスタ、各種パラメータ等を記憶するＣＰＵ９のワーキングエリアを有する。
【００１２】
ＲＯＭ８には、各種パラメータ及び制御プログラム、又は本実施例を実現するためのプログラム等を記憶することができる。この場合、プログラム等を重ねて、外部記憶装置１５に記憶する必要は無い。
【００１３】
ＣＰＵ９は、ＲＯＭ８又は、外部記憶装置１５に記憶されている制御プログラム又は本実施例を実現するためのプログラム等に従い、演算又は電子鍵盤楽器１の制御を行う。タイマ１０は、ＣＰＵ９に接続されており、基本クロック信号、割り込み処理タイミング等をＣＰＵ９に供給する。
【００１４】
ユーザは、検出回路１１に接続される設定操作子１２を用いて、各種入力及び設定、選択をすることができる。設定操作子１２は、例えば、文字入力用キーボード、マウス、スイッチ、パッド、フェーダ、スライダ、ロータリーエンコーダ、ジョイスティック、ジョグシャトル等、ユーザの入力に応じた信号を出力できるものならどのようなものでもよい。また、設定操作子１２は、マウス等の他の操作子を用いて操作するディスプレイ１４上に表示されるソフトスイッチ等でもよい。
【００１５】
表示回路１３は、ディスプレイ１４に接続され、各種情報をディスプレイ１４に表示することができる。ユーザは、このディスプレイ１４に表示される情報を参照して、各種入力及び設定を行う。また、ディスプレイ１４は、外部の表示装置を接続することにより構成してもよい。
【００１６】
外部記憶装置１５は、ハードディスク、ＦＤ（フレキシブルディスク又はフロッピーディスク（登録商標））、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多目的ディスク）、フラッシュメモリ等の半導体メモリ等の記憶媒体とその駆動装置の組み合わせの少なくとも１つで構成される。記憶媒体は、着脱可能であってもよいし、電子鍵盤楽器１に内蔵されていてもよい。
【００１７】
外部記憶装置１５には、本発明の各実施例で用いられる自動演奏データＰＤ（図４）、駆動用データＭＤ（図４）等を複数記憶可能であるとともに、本発明の各実施例を実現するためのプログラムや、その他の電子鍵盤装置１を制御するためのプログラムを記憶することができる。なお、本発明の各実施例を実現するためのプログラムや、その他の電子鍵盤装置１を制御するためのプログラムを外部記憶装置１５に記憶する場合は、これらをＲＯＭ８に合わせて記憶する必要はない。また、一部のプログラムのみを外部記憶装置１５に記憶し、その他のプログラムをＲＯＭ８に記憶するようにしてもよい。
【００１８】
音源回路１８は、外部記憶装置１５、ＲＯＭ８又はＲＡＭ７等に記録された演奏データＰＤ若しくは鍵盤２２又は通信インターフェイス２１に接続された外部機器等から供給される演奏信号、ＭＩＤＩ信号等に応じて楽音信号を生成し、効果回路１９を介して、サウンドシステム２０に供給する。
【００１９】
効果回路１９は、音源回路１８から供給される楽音信号に対して、各種音楽的効果を付与する。サウンドシステム２０は、Ｄ／Ａ変換器及びスピーカを含み、供給されるデジタル形式の楽音信号をアナログ形式に変換し、発音する。
【００２０】
鍵盤２２は、ユーザの演奏を入力するための複数の鍵２２０、各鍵に対応する鍵駆動機構２２５（図２）等を含む操作子であり、ユーザが操作した鍵に対応する音高で、該ユーザの鍵に対する操作開始タイミング及び終了タイミングをそれぞれキーオン及びキーオフ信号として入力する。また、鍵盤２２の各鍵２２０は、各鍵に設けられた鍵駆動機構２２５により、電子鍵盤楽器１において再生される自動演奏データＰＤ（図４）に合わせて（具体的には駆動用データＭＤ（図４）に従い）、駆動される。なお、鍵盤２２の構成については、図２を参照して後述する。
【００２１】
鍵駆動回路２３は、後述する駆動用データＭＤ（図４）に含まれるタイミングデータＴＤで指定されるタイミングに、鍵駆動イベントＭＶで指定される音高に対応する各鍵２２０の鍵駆動機構２２５の駆動を制御する。
【００２２】
通信インターフェイス２１は、ＭＩＤＩなどの音楽専用有線Ｉ／Ｆ、ＵＳＢやＩＥＥＥ１３９４等の汎用近距離有線Ｉ／Ｆ、Ｅｔｈｅｒｎｅｔ（登録商標）等の汎用ネットワークＩ／Ｆ、無線ＬＡＮやＢｌｕｅｔｏｏｔｈ（登録商標）等の汎用近距離無線Ｉ／Ｆ等の通信インターフェイスのうち少なくとも１つで構成される。
【００２３】
通信Ｉ／Ｆ２１は、ＬＡＮ（ローカルエリアネットワーク）及びインターネット等の通信ネットワーク３に接続可能であり、該通信ネットワーク３を介して、サーバ２及び他の電子楽器と相互に接続可能である。
【００２４】
図２は、本発明の実施例による鍵盤２２の構成を表す概略図である。なお、図に示すものは、複数ある鍵２２０のうちの１つの白鍵２２０及びそれに対応する周辺機構の構成であり、白鍵と黒鍵の形状の違いを除き、全ての鍵２２０について図に示すものとほぼ同様の構成を有する。。図２（Ａ）は、未操作（又は離鍵）状態の鍵２２０及びその周辺機構の状態を表し、図２（Ｂ）は、被操作（押鍵）状態の鍵２２０及びその周辺機構の状態を表す。なお、図中Ａ〜Ｃの矢印及び白抜きの矢印は、それぞれの構成部分の動きの方向を表す。
【００２５】
各鍵２２０は、それぞれ周辺機構として鍵支点２２１、ハンマー２２２、鍵・ハンマー係合部２２３、ハンマー支点２２４、鍵駆動機構２２５を含む。なお、図示しないが、各鍵のオン・オフ（押鍵・離鍵）、押鍵速度等を検出するためのスイッチを含む。
【００２６】
ユーザが、鍵２２０を操作（押鍵）すると、鍵２２０の鍵自由端（先端）２２０ｍは、鍵支点２２１を回動中心として、Ｃ方向に回動する。すると、鍵自由端２２０ｍ付近で係合部２２３により鍵２２０に係合されているハンマー２２２のハンマー系合端２２２ｆは、Ｂ方向にハンマー支点２２４を回動中心として回動するとともに、ハンマー自由端２２２ｍは、Ａ方向に回動する。この時、図２（Ｂ）に示す状態となり、図示しない押鍵速度等を検出するためのスイッチにハンマー系合端２２２ｆが接触することにより、キーオン信号を発生させる。その後、ユーザが鍵２２０から指を離す（離鍵する）ことにより、ハンマー２２２の重みにより、自然に、鍵自由端２２０ｍ、ハンマー系合端２２２ｆ及びハンマー自由端２２２ｍが先ほどとは逆方向に回動して、図２（Ａ）に示す元の状態に復帰する。
【００２７】
鍵駆動機構２２５は、例えば、プッシュ型又はプッシュプル型のソレノイドで構成され、図１の鍵駆動回路２３からの制御信号により駆動される。なお、本明細書では、図中白抜きの矢印方向への駆動（図２（Ｂ）に示す状態）を「順方向への駆動」と呼び、元の状態（図２（Ａ）に示す状態）に復帰させる方向への駆動を「逆方向への駆動」と呼ぶ。また、単に「駆動」とした場合は、順方向及び逆方向のいずれかの駆動をさす。すなわち、駆動用データＭＤの駆動イベント（キーオンイベント）ＭＶが再生されると、鍵駆動回路２３から駆動用制御信号が入力され（ソレノイドのコイルへの通電）、該制御信号に基づき図中の白抜きの矢印方向に駆動部２２５ｍを順方向へ駆動する。この駆動部２２５ｍにハンマー自由端２２２ｍ付近が押し上げられることにより、ハンマー自由端２２２ｍは、Ａ方向に回動するとともに、鍵自由端２２０ｍ付近で係合部２２３により鍵２２０に係合されているハンマー２２２のハンマー系合端２２２ｆは、Ｂ方向にハンマー支点２２４を回動中心として回動する。すると、鍵自由端２２０ｍ付近で係合部２２３によりハンマー系合端２２２ｆは、鍵２２０に係合されているので、鍵２２０の鍵自由端（先端）２２０ｍは、鍵支点２２１を回動中心として、Ｃ方向に回動する。このようにして、鍵駆動機構２２５を順方向へ駆動することにより、上述したユーザの押鍵動作によるものと同様に鍵２２０を回動させることができ、ユーザの押鍵動作なしで、あたかもユーザが押鍵したかのように鍵２２０を駆動することができる。
【００２８】
また、駆動用データＭＤの駆動イベント（キーオフイベント）ＭＶ、又はオールノートオフ、オールサウンドオフ等が再生されると、鍵駆動回路２３から駆動解除用制御信号が入力され（ソレノイドのコイルへの通電状態を変化させるか又は復帰用電流に切り替える）、該制御信号に基づき図中の白抜きの矢印とは逆方向に駆動部２２５ｍを逆方向に駆動する。
【００２９】
なお、上記の例では、鍵２２０は、ハンマー２２２を有するものとしたが、鍵２２０は、ハンマー２２２を有するものに限らない。この場合、プル型のソレノイド等で鍵駆動機構２２５を構成し、ハンマー２２２を介さないで直接鍵２２０を駆動するようにしてもよい。また、ハンマー２２２を有する場合であっても、直接鍵２２０を駆動するようにしてもよい。さらに、鍵駆動機構２２５として、ソレノイドを用いたが、鍵駆動回路２３からの制御信号に高速に反応してハンマー２２２を押し上げる又は鍵２２０を引き下げることができるものであれば、どのような駆動機構を用いてもよい。
【００３０】
また、鍵駆動機構２２５は、電流の通電及び遮断によるオン・オフに限らず、例えば、ベロシティ等のパラメータに基づき、鍵２２０の回動角度や速度を制御するようにしてもよい。
【００３１】
図３は、本発明の実施例による演奏データＰＤ及び演奏データＰＤに基づき作成される駆動用データＭＤの構成を表す概念図である。
【００３２】
演奏データＰＤは、ＭＩＤＩデータ等の自動演奏用のデータであり、テンポトラックＴＴＤ（例えば、テンポトラック０）及び複数の演奏用トラックＰＴＤ（例えば、演奏用トラック１〜１６）を含んで構成される。なお演奏データＰＤは、例えば、図１の外部記憶装置１５若しくはＲＯＭ８等に記憶されている。また、演奏データＰＤは、電子鍵盤楽器１内に記憶されているものに限らず、通信ネットワーク３を介して、取得されるものであってもよい。例えば、インターネット等のネットワークにおける演奏データ配信サービスから擬似ストリーミング（ＭＩＤＩデータ等を一度にダウンロードして再生終了後自動的に消去するダウンロード手法）等によって、ダウンロードしてもよい。また、演奏データＰＤは、図１の外部記憶装置１５に記憶されるとともに、再生時には、ＲＡＭ７等の再生バッファに記憶される。擬似ストリーミング等により一時的にダウンロードされた演奏データＰＤは、ＲＡＭ７等の再生バッファに記憶され、再生終了後に、消去される。
【００３３】
演奏用トラックＰＴＤは、タイミングデータＴＤと、該タイミングデータで示されるタイミングに再生される各種イベントＥＶを含んで構成される。
【００３４】
タイミングデータＴＤは、所定音符長を所定数（分解能）で割ったＴｉｃｋ（Ｃｌｏｃｋともいう）で表されるデータであり、一例として、四分音符を１９２０で割ったものとする。なお、この場合は、「分解能＝１９２０」といい、１９２０Ｔｉｃｋで四分音符１つ分の長さに相当する。なお、Ｔｉｃｋは、四分音符を分解能で割ったものなので、Ｔｉｃｋの時間的長さは、テンポによって変化する。タイミングデータＴＤは、曲（演奏データＰＤ）の先頭等の所定位置からの絶対タイミング（Ｔｉｃｋ数）で表してもよいし、１つ前のイベント（タイミングデータＴＤ）からの相対タイミング（Ｔｉｃｋ数）で表してもよい。なお、本実施例では、タイミングデータＴＤは、演奏データＰＤの先頭からの絶対タイミングで表すものとする。
【００３５】
イベントＥＶは、タイミングデータＴＤで示されるタイミングにおいて、再生（図１の音源回路１８又は効果回路１９などに出力）すべきデータであり、例えば、演奏用トラックＰＴＤには、ノートイベント、プログラムチェンジ、コントロールチェンジ（オールノートオフ、オールサウンドオフ等）、システムエクスクルーシブなどのイベントが含まれる。なお、ノートイベントは、ノートオン及びノートオフが別のものでもよいし、ノートオンとゲートタイムの組み合わせでもよい。本実施例では、ノートオンとゲートタイムの組み合わせでノートイベントが記録されているものとする。
【００３６】
テンポトラックＴＴＤは、タイミングデータＴＤ及び該タイミングデータで示されるタイミングに再生されるテンポチェンジイベントＴＰで構成される。テンポチェンジイベントＴＰは、演奏データＰＤの再生テンポを設定するためのイベントである。
【００３７】
駆動用データＭＤは、後述する図５の駆動用データ作成処理において、演奏データＰＤに基づき作成される鍵駆動用のデータである。駆動用データＭＤは、元となる演奏データＰＤと同数の鍵駆動用トラックＭＴＤ（例えば、鍵駆動用トラック１〜１６）を有する。なお、鍵駆動用トラック１〜１６は、それぞれ演奏用トラック１〜１６に対応する。各鍵駆動用トラックＭＴＤは、タイミングデータＴＤと該タイミングデータで示されるタイミングに再生される鍵駆動イベントＭＶ、及びタイミング差ｄＴを含んで構成される。鍵駆動イベントＭＶは、基本的には、元の演奏データＰＤに記憶されているノートイベントであり、タイミングデータＴＤで示されるタイミングにおいて、再生（図１の鍵駆動回路２３に出力）すべきデータである。なお、必要に応じて、一部のコントロールチェンジイベント（オールノートオフ、オールサウンドオフ）も鍵駆動用イベントＭＶとして記憶するようにしてもよい。なお、ノートオンイベントには、音高及びゲートタイムが含まれるが、鍵駆動の速度や、鍵２２０の回動距離（角度）を制御するために、ベロシティ等のその他のパラメータを含むようにしてもよい。
【００３８】
鍵駆動用トラックＭＴＤの鍵駆動用イベントＭＶは、対応する演奏用トラックＰＴＤのイベントに基づいて作成される。これらのイベントの内容は同一であり、そのイベントの再生タイミングが異なる。鍵駆動は、鍵駆動機構２２５（図２）を駆動し始めてから（例えば、ソレノイドに電流を流し始めてから）、実際に鍵２２０が駆動されて押下された状態となるまでに所定時間（例えば、５０ｍｓｅｃ程度）かかる。鍵駆動用トラックＭＴＤのイベントＭＶは、この所定時間に対応するタイミングだけ、演奏用トラックＰＴＤの対応するイベントＥＶに対して先行したタイミングに再生される。
【００３９】
タイミング差ｄＴは、上記所定時間に対応するタイミングに対応するデータであり、Ｔｉｃｋで表される。所定時間（例えば、５０ｍｓｅｃ）に対応するＴｉｃｋ数は、演奏のテンポによって変動する。このためタイミング差ｄＴは、テンポによって異なる値をとる。
【００４０】
例えば、演奏用トラック１のイベントＥＶ１がノートイベントである場合、対応する鍵駆動用トラック１のイベントＭＶ１は、同一内容のノートイベントであり、そのタイミングは、演奏用トラック１のタイミングＢからタイミング差ｄＴを減算したものとなる（タイミングＢ−ｄＴ）。
【００４１】
なお、本実施例では、鍵駆動用トラックＭＴＤは、元となる演奏用トラックＰＴＤの全てについて作成されるが、実際に鍵駆動に用いられるトラックは、１ないし複数のトラックである。鍵駆動に用いるトラックは、ユーザが任意に選択するようにしてもよいし、所定の規則に従って自動的に選択されるようにしてもよい。典型的には、ピアノなどの鍵盤演奏パートの右手と左手のパートに対応したトラックが選択される。しかし、それ以外のパートもユーザによる任意の選択により、駆動対象となりうる。
【００４２】
図４は、本発明の実施例による自動演奏処理を表すフローチャートである。この処理は、例えば、電子鍵盤楽器１において演奏データＰＤの自動演奏モードが選択された場合に、起動され、図１のＣＰＵ９により実行される処理である。
【００４３】
ステップＳＡ１で、自動演奏処理を開始し、ステップＳＡ２では、再生モードの設定を行う。再生モードの設定は、例えば、通常スタート又はクイックスタートの設定（スタートモード）、鍵駆動のオン又はオフ（鍵駆動モード）等であり、ここでの設定は、図１のＲＡＭ７等にフラグとして記憶される。
【００４４】
ステップＳＡ３では、この自動演奏処理において再生する演奏データＰＤの選択（選曲）及び、駆動対象（鍵駆動回路２３にデータが送出される駆動用トラックＭＴＤに対応する演奏用トラックＰＴＤ）の設定を行う。選曲は、電子鍵盤楽器１に内に記憶されている演奏データＰＤに限らず、上述したようなインターネット等による配信サービスで配信される演奏データＰＤの中から行うようにしてもよい。また、駆動対象トラックの設定は、ユーザが操作子１２（図１）の操作により１ないし複数のトラックを選択してもよいし、予め決めた所定のルールに沿って、自動的に設定するようにしてもよい。例えば、トラック１及びトラック２をピアノの右手パートと左手パートとみなして、駆動対象として設定する。
【００４５】
ステップＳＡ４では、後述する図５に示す駆動用データ作成処理を実行する。ここでは、ステップＳＡ３で選択された演奏データＰＤに基づいて、駆動用データＭＤを作成する。
【００４６】
ステップＳＡ５では、ユーザが操作子１２を操作することによる再生開始指示があったか否かを判断する。再生開始指示があった場合は、ＹＥＳの矢印で示すステップＳＡ６に進み、再生開始指示がない場合は、ＮＯの矢印で示すように、ステップＳＡ５の処理を繰り返して、再生開始指示の入力があるまで待機する。
【００４７】
ステップＳＡ６では、後述する図８の再生開始処理を実行する。再生開始処理では、ステップＳＡ２で設定した再生モードのうち、通常スタート又はクイックスタートの設定に従い、ステップＳＡ３で選択された演奏データＰＤの再生を開始する。その後、ステップＳＡ７に進む。
【００４８】
ステップＳＡ７では、ユーザが操作子１２を操作することによる再生の一時停止指示があったか否かを判断する。一時停止指示があった場合は、ＹＥＳの矢印で示すステップＳＡ８に進み、一時停止指示がない場合は、ＮＯの矢印で示すステップＳＡ１２に進む。
【００４９】
ステップＳＡ８では、演奏データＰＤ及び駆動データＭＤの再生を一時停止し、鍵駆動回路２３及び音源回路１８にオールノートオフを供給する。これにより、音源回路１８による演奏データＰＤに基づく楽音生成は停止され、鍵駆動機構２２５は、図２（Ａ）に示す元の状態（離鍵状態）に復帰する。
【００５０】
ステップＳＡ９では、ユーザが操作子１２を操作することによる再生再開指示があったか否かを判断する。再生再開指示があった場合は、ＹＥＳの矢印で示すステップＳＡ１０に進み、再開指示がない場合は、ＮＯの矢印で示すように、ステップＳＡ９の処理を繰り返して、再開指示の入力があるまで待機する。
【００５１】
ステップＳＡ１０では、後述する図１０の一時停止直前の鍵駆動イベント処理を実行する。この処理は、ステップＳＡ８で一時停止した位置よりも後ろに演奏用イベントＥＶがあり、該一時停止位置よりも前に該演奏用イベントＥＶに対応する鍵駆動用イベントＭＶがある場合等に鍵駆動用イベントＭＶが確実に再生されるようにするための処理である。その後、ステップＳＡ１１に進み、再生を再開する。ここでの再生の再開とは、ステップＳＡ８での一時停止状態を解除することである。その後、ステップＳＡ１４に進む。
【００５２】
ステップＳＡ１２では、再生処理を行う。この再生処理では、鍵駆動用トラックＭＴＤと演奏用トラックＰＴＤを並列に再生する。なお、複数の鍵駆動用トラックＭＴＤ及び複数の演奏用トラックＰＴＤが選択されている場合には、すべてのトラックを並列に再生する。なお、ここでの再生は、駆動対象となっている鍵駆動用トラックＭＴＤからノートイベントＭＶ（及び必要に応じてその他のイベント）を読み出し、鍵駆動回路２３へと供給することにより鍵駆動機構２２５を駆動して鍵２２０を駆動することである。また、演奏用トラックＰＴＤからは、ノートイベントやその他のイベントを、音源回路１８や効果回路１９に供給してサウンドシステム２０等から演奏データＰＤに対応する楽音を発音させることである。
【００５３】
なお、ステップＳＡ１２の再生処理においては、従来技術のように、鍵駆動用のノートイベントと演奏用のノートイベントとの間でタイミング調整をする必要はなく、単に、両データを並列して各データのタイミングにおいて再生するのみであり、非常にシンプルに再生処理を行うことができる。
【００５４】
ステップＳＡ１３では、その他の処理を行う。ここでは、ユーザの操作子１２の操作による自動演奏にかかわる様々な設定の変更等の指示を検出して、該検出した設定変更等の指示に基づく処理を行う。具体的には、駆動対象トラックの変更や、鍵駆動のオン・オフの切り替え等である。駆動対象トラックが変更された場合は、次回以降のステップＳＡ１２で再生される駆動対象トラックが変更される。鍵駆動のオンからオフに変更された場合は、次回以降のステップＳＡ１２での駆動用トラックの再生を中止し、鍵駆動のオフからオンに変更された場合は、次回以降のステップＳＡ１２での駆動用トラックの再生を開始する。その他には、テンポの設定変更をすることができる。テンポの設定が変更された場合は、ステップＳＡ４の駆動用データ作成処理を再度行う。なお、テンポが変更された場合にはステップＳＡ４の駆動用データ作成処理を再度実行する代わりに、テンポの変更割合で駆動用データＭＤ内のタイミング差ｄＴを変更して、該変更したタイミング差ｄＴに基づき、駆動用データＭＤ内の各駆動用イベントＭＶのタイミングを変更するようにしてもよい。その後、ステップＳＡ１４に進む。
【００５５】
ステップＳＡ１４では、ユーザが操作子１２を操作することによる再生終了指示があったか否か、若しくは、演奏データＰＤを最後まで再生することにより再生が終了したか否かを判断する。再生を終了する場合、すなわち、再生指示の検出若しくは演奏データＰＤの再生終了の場合は、ＹＥＳの矢印で示すステップＳＡ１５に進み、自動演奏処理を終了する。再生を終了しない場合は、ＮＯの矢印で示すステップＳＡ７に戻り以降の処理を繰り返す。
【００５６】
図５は、図４のステップＳＡ４で実行する駆動用データ作成処理を表すフローチャートである。この処理では、図４のステップＳＡ３で選択された演奏データＰＤの再生開始前に、該演奏データＰＤに基づいて、予め駆動用データＭＤを作成する。
【００５７】
ステップＳＢ１で、駆動用データ作成処理を開始し、ステップＳＢ２では、図４のステップＳＡ３で選択された演奏データＰＤに含まれるテンポトラックＴＴＤ及び全ての演奏用トラックＰＴＤ（この駆動用データ作成処理では、以下、全トラックを総称して処理対象トラックと呼ぶ）のポインタを各トラックの先頭にセットする。
【００５８】
ステップＳＢ３では、処理対象トラックの先頭データ（先頭タイミングデータＴＤ）を読み出し、該読み出した各タイミングデータを対応する（トラック番号ｎが同一の）トラックタイミングレジスタｎ（ｎ＝０〜１６）に設定する。
【００５９】
ステップＳＢ４では、各処理対象トラックのポインタを１つ進める。ステップＳＢ５では、現在タイミングレジスタｃＴに「０」を設定して初期化する。ステップＳＢ６では、トラック番号レジスタｎに「０」を設定する。
【００６０】
ステップＳＢ７では、現在タイミングレジスタｃＴに設定されているタイミング値（Ｔｉｃｋ）とトラックタイミングレジスタｎに設定されているタイミング値（Ｔｉｃｋ）とを比較する。現在タイミングレジスタｃＴに設定されているタイミング値（Ｔｉｃｋ）とトラックタイミングレジスタｎに設定されているタイミング値（Ｔｉｃｋ）とが等しい場合は、ＹＥＳの矢印で示すステップＳＢ１３に進み、等しくない場合は、ＮＯの矢印で示すステップＳＢ８に進む。
【００６１】
ステップＳＢ８では、トラック番号レジスタｎに設定されている値が「１６」より下か否かを判断する。なお、本実施例では、１トラックのテンポトラック０と１６トラックの演奏用トラック１〜１６を有することを前提としており、現在設定されているトラック番号レジスタｎの値が「１６」以上であれば、現在タイミングｃＴにおける全トラックについての処理が終了したと考えられるので、トラック番号レジスタｎに設定されている値が「１６」より下か否かを判断している。なお、この値は、演奏データＰＤに含まれる全トラック数と同一に設定するものであり、例えば、演奏データＰＤに含まれるトラック数が「９」であれば、ここでの値も「８」となる。「１６」より下である場合は、ＹＥＳの矢印で示すステップＳＢ９に進み、「１６」以上である場合は、ＮＯの矢印で示すステップＳＢ１０に進む。
【００６２】
ステップＳＢ９では、トラック番号レジスタｎの値に「１」を加算して、その後、ステップＳＢ７に進む。これにより、次回のステップＳＢ７以降の処理での処理対象が、次のトラック番号のトラックとなる。
【００６３】
ステップＳＢ１０では、処理対象トラックの末尾に達したか否かを判断する。末尾に達した場合は、ＹＥＳの矢印で示すステップＳＢ１１に進み、図４のステップＳＡ５に進む。末尾に達していない場合は、ＮＯの矢印で示すステップＳＢ１２に進み、現在タイミングレジスタｃＴの値に「１」を加算して（現在タイミングｃＴを１Ｔｉｃｋ進めて）、ステップＳＢ６に進む。
【００６４】
ステップＳＢ１３では、トラック番号がｎのトラック（トラックｎ）のポインタ位置のデータを読み出し、ステップＳＢ１４で、該読み出したデータがタイミングデータＴＤであるか否かを判断する。タイミングデータＴＤである場合は、ＹＥＳの矢印で示すステップＳＢ１５に進み、それ以外のデータ（イベントデータ）である場合は、ＮＯの矢印で示すステップＳＢ１６に進む。
【００６５】
ステップＳＢ１５では、トラックタイミングレジスタｎにステップＳＢ１３で読み出したタイミングデータＴＤの値（Ｔｉｃｋ）を設定する。その後、ステップＳＢ２４に進む。
【００６６】
ステップＳＢ１６では、ステップＳＢ１３で読み出したデータが、ノートイベントＥＶ又はその他の鍵駆動用トラックに必要なイベントＥＶ（オールノートオフ、オールサウンドオフ等）か否かを判断する。ノートイベント又はその他の鍵駆動用トラックに必要なイベントＥＶである場合は、ＹＥＳの矢印で示すステップＳＢ１７に進み、それ以外の場合は、ＮＯの矢印で示すステップＳＢ２０に進む。
【００６７】
ステップＳＢ１７では、後述する図６のタイミング差ｄＴ算出処理を行う。タイミング差ｄＴは、上述したように、鍵駆動用イベントＭＶを対応する演奏用イベント（ノートイベント）ＥＶの再生よりも所定時間（５０ｍｓｅｃ）程度先行して再生するためのタイミング差であり、現在設定されているテンポ及びテンポチェンジのタイミング等により異なるので、この処理で算出する。その後、ステップＳＢ１８に進む。
【００６８】
ステップＳＢ１８では、現在タイミングレジスタｃＴの値から、ステップＳＢ１７で算出したタイミング差ｄＴの値を減算することにより、ステップＳＢ１３で読み出されたノートイベントＥＶ等に対応する鍵駆動用イベントＭＶの再生タイミングである駆動タイミングｍＴを算出する。
【００６９】
ステップＳＢ１９では、ステップＳＢ１８で算出した駆動タイミングｍＴをタイミングデータＴＤとし、ステップＳＢ１３で読み込んだイベントデータＥＶを駆動用イベントＭＶとし、ステップＳＢ１７で算出したタイミング差ｄＴとともに、駆動用トラックｎに書き込む。その後、ステップＳＢ２４に進む。なお、ステップＳＢ１３で読み込んだイベントデータＥＶは、同一内容を保持したまま駆動用イベントＭＶとしてもよい、音高、ゲートタイム等の必要なパラメータだけを用いて、駆動用イベントＭＶとしてもよい。
【００７０】
ステップＳＢ２０では、ステップＳＢ１３で読み出したイベントデータが、テンポイベントＴＰであるか否かを判断する。テンポイベントＴＰである場合には、ＹＥＳの矢印で示すステップＳＢ２１に進む。それ以外のイベント（例えば、システムエクスクルーシブや、プログラムチェンジ等）である場合には、駆動用データには関係しないので、ＮＯの矢印で示すステップＳＢ２４に進む。
【００７１】
ステップＳＢ２１では、前回テンポレジスタに、現在設定されている（現在テンポレジスタに設定されている）テンポを設定する。なお、現在テンポレジスタには、この鍵駆動用データ作成処理が起動される前にユーザにより設定されたテンポまたは、電子鍵盤装置１における初期設定値が設定されているものとする。
【００７２】
ステップＳＢ２２では、現在タイミングレジスタｃＴの値を、前回テンポチェンジタイミングレジスタに設定し、ステップＳＢ２３では、ステップＳＢ１３で読み出したテンポイベントＴＰの値を現在テンポレジスタに設定する。その後、ステップＳＢ２４に進む。
【００７３】
ステップＳＢ２４では、トラックｎのポインタを１つ進める。その後、ステップＳＢ７に戻り以降の処理を繰り返す。
【００７４】
以上のように、本実施例では、図４のステップＳＡ４で、ステップＳＡ６以降に実行される演奏データＰＤの再生処理に先立ち、当該演奏データＰＤから、事前にタイミング調整された鍵駆動用データＭＤを作成する。従って、ステップＳＡ６以降の再生処理では、特に演奏用イベントと鍵駆動用イベントの間でタイミング調整をする必要がない。よって、再生処理が複雑となることを回避することが可能であり、既存の電子楽器で採用されている再生処理にあまり手を入れずに、鍵駆動装置付の電子鍵盤楽器を開発・製造することができる。
【００７５】
図６は、図５のステップＳＢ１７で実行するタイミング差ｄＴ算出処理を表すフローチャートである。図７は、図６に示すタイミング差ｄＴ算出処理を説明するための概念図である。
【００７６】
タイミング差ｄＴは、上述したように、鍵駆動機構２２５（図２）を駆動し始めてから、実際に鍵２２０が駆動されて押下された状態となるまでの所定時間（本実施例では、５０ｍｓｅｃ）をタイミング値（Ｔｉｃｋ数）に換算した値である。所定時間（５０ｍｓｅｃ）分のＴｉｃｋ数は、演奏テンポに応じて変化する。
【００７７】
ステップＳＢ１７１では、タイミング差ｄＴ算出処理を開始し、ステップＳＢ１７２では、「６０×１０００／現在設定されている分解能」の値をレジスタｔｍｐに設定する。なお、本実施例では、分解能を「１９２０」としているので、この値は、「３１．２５」となる。
【００７８】
ステップＳＢ１７３では、「所定時間（本実施例では、５０ｍｓｅｃ）×現在テンポレジスタの値／レジスタｔｐｍの値」をタイミング差ｄＴとする。これにより、単一テンポにおける所定時間分のＴｉｃｋ数を算出することができる。例えば、分解能を「１９２０」、所定時間を「５０ｍｓｅｃ」、現在テンポを「１２０」とした場合、「５０×１２０／３１．２５」となり、タイミング差ｄＴは、「１９２Ｔｉｃｋ」となる。
【００７９】
ステップＳＢ１７４では、図５のステップＳＢ２２で設定した前回テンポチェンジレジスタの値が、現在タイミングレジスタｃＴの値からステップＳＢ１７３で算出したタイミング差ｄＴを減算したもの（ｃＴ−ｄＴ）以上か否かを判断する。
【００８０】
ステップＳＢ１７４において、前回テンポチェンジレジスタの値が、「ｃＴ−ｄＴ」より下である場合は、例えば、図７に示す演奏用イベントＥＶ１に対応する鍵駆動用イベントＭＶ１が、前回のテンポチェンジイベントＴＰ１よりも後にあるということなので、演奏用イベントＥＶ１と鍵駆動用イベントＭＶ１との間にはテンポチェンジがなかったことがわかる。よって、この場合は、ＮＯの矢印で示すステップＳＢ１７７に進み、ステップＳＢ１７３で算出したタイミング差ｄＴをそのまま使用する。その後、図５のステップＳＢ１８に戻る。
【００８１】
ステップＳＢ１７４において、前回テンポチェンジレジスタの値が、「ｃＴ−ｄＴ」以上である場合は、例えば、図７に示す演奏用イベントＥＶ２とそれに対応する鍵駆動用イベントＭＶ２との間に、前回のテンポチェンジイベントＴＰ２があるということなので、イベントＭＶ２及びイベントＥＶ２間の所定時間（５０ｍｓｅｃ）に対応するタイミング（Ｔｉｃｋ数）を再計算する必要がある。よって、この場合は、ＹＥＳの矢印で示すステップＳＢ１７５に進み、タイミング差ｄＴを変更前後の二つのテンポ値に基づいて再計算する。
【００８２】
ステップＳＢ１７５では、レジスタＸｍｓｅｃに現在タイミングレジスタｃＴの値から、図５のステップＳＢ２２で設定した前回テンポチェンジレジスタの値を減算したものを設定する。これにより、図７に示すＸｍｓｅｃのタイミング（Ｔｉｃｋ数）を算出する。
【００８３】
ステップＳＢ１７６では、「Ｘｍｓｅｃ＋（５０−Ｘｍｓｅｃ・ｔｐｍ／現在テンポレジスタの値）×前回テンポレジスタの値／ｔｐｍ」の値をタイミング差ｄｔの値とする。具体的には、例えば、分解能を「１９２０」、所定時間を「５０ｍｓｅｃ」、前回テンポ（ＴＰ１）を「１２０」、現在テンポ（ＴＰ２）を「１００」とした場合に、図７のイベントＴＰ２とイベントＥＶ２のタイミング差Ｘｍｓｅｃが「１００Ｔｉｃｋ」とすると、「１００＋（５０−１００×３１．２５／１００）×１２０／３１．２５」となり、タイミング差ｄＴは、「１７２Ｔｉｃｋ」となる。その後、ステップＳＢ１７７に進み、図５のステップＳＢ１８に戻る。
【００８４】
このようにして、タイミング差ｄＴを求めることにより、つねに、設定されているテンポに即したタイミング差ｄＴを設定することができる。また、駆動用イベントＭＶ及び演奏用イベントＥＶ間の所定時間（５０ｍｓｅｃ）内にテンポチェンジがあったとしても、駆動用イベントＭＶ及び演奏用イベントＥＶ間に所定時間分のＴｉｃｋ数のタイミング差ｄＴを設定することができる。
【００８５】
図８は、図４のステップＳＡ６で実行する再生開始処理を表すフローチャートである。再生開始処理では、図４のステップＳＡ２で設定した再生モードのうち、通常スタート又はクイックスタートの設定に従い、ステップＳＡ３で選択された演奏データＰＤの再生を開始する。
【００８６】
ステップＳＣ１で、再生開始処理を開始し、ステップＳＣ２では、再生モード（スタートモード）がクイックスタートか否かを判断する。これは、図４のステップＳＡ２で設定した再生モード（スタートモード）のフラグを参照することにより判断する。再生モード（スタートモード）がクイックスタートである場合は、ＹＥＳの矢印で示すステップＳＣ３に進む。再生モードが、通常スタートである場合は、ＮＯの矢印で示すステップＳＣ７に進み、通常速度で再生を開始する。
【００８７】
ステップＳＣ３では、鍵駆動がオンであるかどうかを判断する。これは、図４のステップＳＡ２で設定した再生モード（鍵駆動モード）のフラグを参照することにより判断する。再生モード（鍵駆動モード）が鍵駆動オンである場合は、ＹＥＳの矢印で示すステップＳＣ４に進む。再生モードが、鍵駆動オフである場合は、ＮＯの矢印で示すステップＳＣ６に進む。
【００８８】
ステップＳＣ４では、図４のステップＳＡ３で選択された演奏データＰＤの全演奏用トラックＰＴＤと鍵駆動用データＭＤのうち駆動対象として選択された演奏用トラックＰＴＤに対応する駆動用トラックＭＴＤとの中でデータ先頭から最も先に現れるノートイベント（演奏用イベントＥＶ又は駆動用イベントＭＶ）を検出する。その後、ステップＳＣ５に進む。
【００８９】
ステップＳＣ５では、図４のステップＳＡ３で選択された演奏データＰＤの全演奏用トラックＰＴＤと鍵駆動用データＭＤのうち駆動対象として選択された演奏用トラックＰＴＤに対応する駆動用トラックＭＴＤをデータの先頭からステップＳＣ４で検出したノートイベントまで高速再生する。その後、ステップＳＣ８に進む。
【００９０】
なお、通常の演奏データＰＤでは、データの先頭から１又は２小節分程度に初期設定を行うためのイベント等が記録されている。本実施例における高速再生とは、その１又は２小節分程度のデータを設定テンポや、各イベントの再生タイミングに関係なく、イベントをできるだけ高速に再生することである。
【００９１】
例えば、電子鍵盤楽器１では、少なくとも、１タイミング（１Ｔｉｃｋ）間に、テンポトラックを含めて１７トラック分のイベントを読み出して再生することができ、また、１タイミングで１トラック内に複数のイベントを再生することが可能である。そこから単純計算しても、この高速再生では、分解能が１９２０の場合は、４分音符の１９２０分の１の時間に１ないし複数のイベントを高速再生することができる。いいかえると、四分音符１つ分の時間で１９２０以上のイベントを高速再生することができる。
【００９２】
ステップＳＣ６では、図４のステップＳＡ３で選択された演奏データＰＤの全演奏用トラックＰＴＤの中でデータ先頭から最も先に現れるノートイベント（演奏用イベントＥＶ）を検出する。このステップＳＣ５では、鍵駆動がオフになっているので、鍵駆動用データＭＤ内を検索する必要はない。その後、ステップＳＣ７に進む。
【００９３】
ステップＳＣ７では、図４のステップＳＡ３で選択された演奏データＰＤの全演奏用トラックＰＴＤをデータの先頭からステップＳＣ６で検出したノートイベントまで高速再生する。その後、ステップＳＣ８に進む。
【００９４】
ステップＳＣ８では、通常速度での再生を開始する。通常速度での再生とは、設定テンポに従った再生である。その後、ステップＳＣ９に進み、再生開始処理を終了する。
【００９５】
図９は、図８に示す再生開始処理を説明するための概念図である。図９を参照して、再生開始処理を具体的に説明する。
【００９６】
例えば、図９（Ａ）に示すように、ある演奏データＰＤ中の演奏用トラック１〜４が再生対象として選択されており、演奏用トラック１及び２が鍵駆動対象として選択されていて、それらの駆動対象トラックに対応する駆動用トラック１及び２が再生されるとする。その場合に、鍵駆動がオンであるときは、演奏用トラック１〜４及び駆動用トラック１〜２の中での最先ノートイベントが検出されるので、駆動用イベントＭＶ１が、ステップＳＣ４で検出されることとなる。そして、駆動用イベントＭＶ１までが、ステップＳＣ５で高速再生され、それ以降のイベントについては、ステップＳＣ８で通常速度での再生が開始される。また、鍵駆動がオフである場合は、演奏用トラック１〜４のみが、最先ノートイベントの検出対象となるので、演奏イベントＥＶ１がステップＳＣ６で検出され、当該イベントＥＶ１までが、ステップＳＣ７で高速再生される。それ以降のイベントについては、ステップＳＣ８で通常速度での再生が開始される。
【００９７】
また、例えば、図９（Ｂ）に示すように、ある演奏データＰＤ中の演奏用トラック１〜４が再生対象として選択されており、演奏用トラック１及び２が鍵駆動対象として選択されていて、それらの駆動対象トラックに対応する駆動用トラック１及び２が再生されるとする。図９（Ｂ）に示す演奏データＰＤでは、演奏用イベントＥＶ４が全演奏用トラック及び駆動用トラックを通しての最先ノートイベントであるので、鍵駆動のオン・オフにかかわりなく常に、演奏用イベントＥＶ４までが高速再生される。なお、演奏用トラック４が駆動対象トラックとして選択された場合は、演奏用イベントＥＶ４に対応する駆動用イベントが再生ノートイベントとなるので、当該駆動用イベントまでが高速再生されることとなる。
【００９８】
以上のように、本発明の実施例では、図４のステップＳＡ４で、ステップＳＡ６以降に実行される演奏データＰＤの再生処理に先立ち、当該演奏データＰＤから、事前にタイミング調整された鍵駆動用データＭＤを作成する。従って、ステップＳＡ６以降の再生処理では、特に演奏用イベントと鍵駆動用イベントの間でタイミング調整をする必要がない。よって、鍵駆動オンでクイックスタートを行う場合でも、鍵駆動用データＭＤと演奏データＰＤの双方を検索して、一番先頭にあるノートイベントを検出し、該検出したノートイベントまでを高速再生するだけなので、非常に簡単にクイックスタートの処理を行うことができる。
【００９９】
なお、従来の方式の鍵駆動では、鍵駆動用データＭＤが予め作成されていないので、演奏データの最先ノートイベントを検出した後に、タイミング調整を行って、検出した演奏用ノートイベントに対応する鍵駆動用ノートイベントの再生タイミングを算出し、該算出した再生タイミングまでを高速再生する必要があり、クイックスタート時に処理が複雑となる。
【０１００】
また、このように構成することにより、本実施例によれば、クイックスタートを行う場合でも、最初の演奏イベントから確実に鍵を駆動することができる。また、最初の演奏イベントが鍵駆動に使われない場合であっても、すばやく再生を開始することができる。
【０１０１】
図１０は、図４のステップＳＡ１０で実行する一時停止直前の鍵駆動イベント処理を表すフローチャートである。この処理は、図４のステップＳＡ８で一時停止した位置よりも後ろに演奏用イベントＥＶがあり、該一時停止位置よりも前に該演奏用イベントＥＶに対応する鍵駆動用イベントＭＶがある場合等に鍵駆動用イベントＭＶが確実に再生されるようにするための処理である。
【０１０２】
ステップＳＤ１で、一時停止直前の鍵駆動イベント処理を開始し、ステップＳＤ２では、図４のステップＳＡ３で選択された演奏データＰＤのうち駆動対象として選択された演奏用トラックＰＴＤに対応する駆動用トラックＭＴＤ（以下、単に駆動対象駆動用トラックＭＴＤと呼ぶ）のポインタ位置の１つ前の駆動用イベントＭＶを読み出す。なお、駆動対象駆動用トラックＭＴＤが複数ある場合は、ステップＳＤ２〜ＳＤ６の処理において、各駆動対象駆動用トラックについて処理を行う。
【０１０３】
ステップＳＤ３では、ステップＳＤ２又はステップＳＤ５で読み出したイベントＭＶのタイミングにタイミング差ｄＴを加算したものが現在のタイミングｃＴ以上か否かを判断する。ステップＳＤ２又はステップＳＤ５で読み出したイベントＭＶのタイミングにタイミング差ｄＴを加算したものが現在のタイミング以上である場合は、ステップＳＤ２又はステップＳＤ５で読み出したイベントＭＶに対応する演奏イベントＥＶが現在タイミングｃＴ以降に存在するので、そのまま現在タイミングｃＴから再生を再開すると、該読み出したイベントＭＶに対応する演奏イベントＥＶについては、鍵駆動イベントＭＶが再生されず、鍵駆動がされなくなってしまう。そこで、この場合は、再生を再開するタイミングを変更するために、ＹＥＳの矢印で示すステップＳＤ４に進み、戻しタイミングレジスタにステップＳＤ２又はステップＳＤ５で読み出したイベントＭＶのタイミングを設定し、その後、ステップＳＤ５に進む。なお、ステップＳＤ５で読み出したイベントＭＶを戻しタイミングレジスタに設定する場合は、以前に設定した戻しタイミングレジスタの値に上書きする。
【０１０４】
ステップＳＤ３において、ステップＳＤ２又はステップＳＤ５で読み出したイベントＭＶのタイミングにタイミング差ｄＴを加算したものが現在のタイミングｃＴ以上ではない場合は、当該読み出したイベントＭＶに対応する演奏イベントＥＶについては、そのまま再生を再開しても問題はないので、ＮＯの矢印で示すステップＳＤ６に進む。
【０１０５】
ステップＳＤ５では、ステップＳＤ２で読み出したイベントＭＶよりもさらに１つ前のイベントＭＶを読み出す。これは、現在タイミングｃＴ以降に再生される演奏イベントＥＶに対応する駆動用イベントＭＶがステップＳＤ２で読み出したイベントＭＶの１つだけとは限らないので、読み出したイベントＭＶのタイミングにタイミング差ｄＴを加算したものが現在のタイミング未満となるまで、繰り返し確認するための処理である。よって、イベントＭＶの読み出し後、ステップＳＤ３に戻り、ステップＳＤ５で読み出したイベントＭＶのタイミングにタイミング差ｄＴを加算したものが現在のタイミングｃＴ以上か否かを判断する。
【０１０６】
ステップＳＤ６では、戻し再生の必要があるか否かを判断する。ここでは、ステップＳＤ４で設定した戻しタイミングレジスタに戻しタイミング（ステップＳＤ２又はステップＳＤ５で読み出されたイベントＭＶのタイミング）が設定されているか否かで判断する。戻しタイミングが設定されている場合は、戻し再生の必要があるので、ＹＥＳの矢印で示すステップＳＤ７に進み、戻しタイミングが設定されていない場合は、戻し再生の必要がないので、ＮＯの矢印で示すステップＳＤ８に進み、図４のステップＳＡ１１に戻る。
【０１０７】
ステップＳＤ７では、戻しタイミングレジスタに設定されたタイミングから現在タイミングｃｔまでの間の駆動用トラックのみを再生する。その後、ステップＳＤ８に進み、図４のステップＳＡ１１に戻る。このように、駆動用トラックのみを再生することにより、図４のステップＳＡ１１で再生される現在タイミングｃＴ以降の演奏イベントＥＶに対応する駆動用イベントＭＶであって現在タイミングｃＴよりも前のものを、選択的に再生することができる。したがって、現在タイミングｃＴ以降に再生される演奏イベントＥＶに対応する駆動用イベントＭＶが現在タイミングｃＴよりも前にある場合でも、当該演奏イベントＥＶについて確実に鍵駆動を行うことができる。
【０１０８】
以上の、本実施例の一時停止直前の鍵駆動イベント処理によれば、再生の一時停止位置の後ろで再生される演奏用イベントＥＶに対応する鍵駆動用イベントＭＶが、該一時停止位置より前に存在するか否かを判定し、対応する鍵駆動用イベントＭＶが存在する場合には、該鍵駆動用イベントＭＶに基づいて鍵を駆動するようにしたので、一時停止後の再生再開時にも、最初の演奏イベントから鍵を確実に駆動することができる。また、対応する鍵駆動用イベントＭＶが存在しない場合には、直ちに一時停止位置から再生を再開するので、無駄な時間の遅れを防止することができる。
【０１０９】
図１１は、図１０に示す一時停止直前の鍵駆動イベント処理を説明するための概念図である。
【０１１０】
図１１（Ａ）は、戻し再生ありの場合を表す。この演奏データＰＤの再生は、現在タイミングｃＴ１で一時停止されている状態であり、駆動用トラックのポインタＰ１は、駆動用イベントＭＶ３に位置している。なお、図中駆動用イベントＭＶ１〜ＭＶ３は、それぞれ演奏用イベントＥＶ１〜ＥＶ３に対応する。
【０１１１】
この状態で、図１０に示す一時停止直前の鍵駆動イベント処理が実行されると、ステップＳＤ２において、現在ポインタＰ１のあるイベントＭＶ３の１つ前のイベントＭＶ２が読み出される。このイベントＭＶ２にタイミング差ｄＴを加算した値（Ｔｉｃｋ数）は、イベントＥＶ２の位置となるが、これは、現在タイミングｃＴ１の位置よりも後に来る（現在タイミングｃＴ１よりも該加算した値のＴｉｃｋ数のほうが大きい）、すなわち、現在タイミングｃＴ１とイベントＭＶ２のタイミングの間隔（図中の期間ＲＴ１）がタイミング差ｄＴよりも短いので、ステップＳＤ４に進み、イベントＭＶ２のタイミングが戻しタイミングレジスタに設定される。その後、ステップＳＤ５においてさらに１つ前のイベントＭＶ１が読み出されるが、現在タイミングｃＴ１とイベントＭＶ１のタイミングの間隔（図中の期間ＲＴ２）がタイミング差ｄＴよりも長いので、この後は、ステップＳＤ６に進む。その後、ステップＳＤ７で、イベントＭＶ２から駆動用トラックの再生が行われ、図４のステップＳＡ１１で現在タイミングｃＴ１以降の再生が再開される。
【０１１２】
図１１（Ｂ）は、図１１（Ａ）に示したものと同様の演奏データＰＤを用いて、戻し再生なしの場合を表す。この演奏データＰＤの再生は、現在タイミングｃＴ２で一時停止されている状態であり、駆動用トラックのポインタＰ１は、駆動用イベントＭＶ３に位置している。なお、図中駆動用イベントＭＶ１〜ＭＶ３は、それぞれ演奏用イベントＥＶ１〜ＥＶ３に対応する。
【０１１３】
この状態で、図１０に示す一時停止直前の鍵駆動イベント処理が実行されると、ステップＳＤ２において、現在ポインタＰ１のあるイベントＭＶ３の１つ前のイベントＭＶ２が読み出される。このイベントＭＶ２にタイミング差ｄＴを加算した値（Ｔｉｃｋ数）は、イベントＥＶ２の位置となるが、これは、現在タイミングｃＴ１の位置よりも前に来る（現在タイミングｃＴ１よりも該加算した値のＴｉｃｋ数のほうが小さい）、すなわち、現在タイミングｃＴ２とイベントＭＶ２のタイミングの間隔（図中の期間ＲＴ１）がタイミング差ｄＴよりも長いので、戻しタイミングレジスタの設定は行わずに、ステップＳＤ６に進む。戻しタイミングレジスタの設定が行われなかったので、ステップＳＤ８で処理を終了して、図４のステップＳＡ１１で現在タイミングｃＴ２以降の再生が再開される。なお、この場合は、駆動イベントＭＶ１は読み出されない。
【０１１４】
なお、上述の実施例では、演奏データＰＤに基づいて作成した駆動用トラックＭＴＤをまとめて駆動用データＴＤとして記録したが、作成した駆動用トラックＭＴＤを演奏データＰＤのトラックとして演奏用トラックＰＴＤと合わせて記録するようにしてもよい。
【０１１５】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施例による電子鍵盤楽器１の基本構成を表すブロック図である。
【図２】本発明の実施例による鍵盤２２の構成を表す概略図である。
【図３】本発明の実施例による演奏データＰＤ及び演奏データＰＤに基づき作成される駆動用データＭＤの構成を表す概念図である。
【図４】本発明の実施例による自動演奏処理を表すフローチャートである。
【図５】図４のステップＳＡ４で実行する駆動用データ作成処理を表すフローチャートである。
【図６】図５のステップＳＢ１７で実行するタイミング差ｄＴ算出処理を表すフローチャートである。
【図７】図６に示すタイミング差ｄＴ算出処理を説明するための概念図である。
【図８】図４のステップＳＡ６で実行する再生開始処理を表すフローチャートである。
【図９】図８に示す再生開始処理を説明するための概念図である。
【図１０】図４のステップＳＡ１０で実行する一時停止直前の鍵駆動イベント処理を表すフローチャートである。
【図１１】図１０に示す一時停止直前の鍵駆動イベント処理を説明するための概念図である。
【符号の説明】
【０１１７】
１…電子鍵盤楽器、２…サーバ、３…通信ネットワーク、６…バス、７…ＲＡＭ、８…ＲＯＭ、９…ＣＰＵ、１０…タイマ、１１…検出回路、１２…設定操作子、１３…表示回路、１４…ディスプレイ、１５…外部記憶装置、１８…音源回路、１９…効果回路、２０…サウンドシステム、２１…通信Ｉ／Ｆ、２２…鍵盤、２３…鍵駆動回路、２２０…鍵、２２１…鍵支点、２２２…ハンマー、２２３…係合部、２２４…ハンマー支点、２２５…鍵駆動機構
【図１】
2008233808.tif 000003
【図２】
2008233808.tif 000004
【図３】
2008233808.tif 000005
【図４】
2008233808.tif 000006
【図５】
2008233808.tif 000007
【図６】
2008233808.tif 000008
【図７】
2008233808.tif 000009
【図８】
2008233808.tif 000010
【図９】
2008233808.tif 000011
【図１０】
2008233808.tif 000012
【図１１】
2008233808.tif 000013