(57)【特許請求の範囲】
【請求項１】
楽器の演奏動作に同期して他装置を制御する同期制御方法であって、
前記楽器の演奏内容を記述する主演奏データ系列と前記他装置を制御する制御内容を時系列で記述した制御データ系列とを対応付けた演奏データから、前記主演奏データ系列に含まれる個々の主演奏データと前記制御データ系列に含まれる個々の制御データとを共通の時間進行に従って読み出す読出段階と、
読み出した前記制御データに基づいて前記他装置を制御する制御段階とを備え、
予め前記演奏データに記述された所定の区切りにおいては、読み出した前記主演奏データに対応した演奏動作を検出するまで前記時間進行を停止し、かつ、該時間進行を停止してから所定時間が経過しても該演奏動作が検出されない場合には、該時間進行の停止を解除することを特徴とする同期制御方法。
【請求項２】
請求項１に記載の同期制御方法において、
前記制御データは、複数のイベントデータで構成され、
読み出した前記制御データに含まれる個々のイベントデータに基づいて前記楽器の自動演奏を行う自動演奏段階を備えることを特徴とする同期制御方法。
【請求項３】
請求項１に記載の同期制御方法において、
前記所定の区切りは、前記主演奏データに含まれる音高データと対応付けて記述されており、
前記演奏動作として検出された音高と、前記音高データが示す音高とが一致した場合は前記時間進行の停止を解除することを特徴とする同期制御方法。
【請求項４】
請求項１に記載の同期制御方法において、
前記制御段階は、予め記憶された対応データに基づいて、前記制御データに含まれるパラメータに基づいて前記他装置の制御内容を認識することを特徴とする同期制御方法。
【請求項５】
請求項１に記載の同期制御方法において、
前記他装置は複数種類の装置であり、前記制御データは前記他装置の種類を区別するパラメータを含むことを特徴とする同期制御方法。
【請求項６】
請求項１ないし５のいずれかに記載の同期制御方法であって、
前記演奏データは、前記演奏に付加する伴奏内容を記述する伴奏データ系列と前記主演奏データ系列とを対応付けており、
前記読出段階は、前記主演奏データ、前記制御データ、および前記伴奏データ系列に含まれる個々の伴奏データを読み出し、
読み出した前記伴奏データに基づいて電子楽音を発生させる段階を備えることを特徴とする同期制御方法。
【請求項７】
楽器の演奏動作に同期して他装置を制御する同期制御装置であって、
前記楽器の演奏内容を記述する主演奏データ系列と前記他装置を制御する制御内容を時系列で記述した制御データ系列とを対応付けた演奏データを記憶する演奏データ記憶手段と、前記主演奏データ系列に含まれる個々の主演奏データと前記制御データ系列に含まれる個々の制御データとを共通の時間進行に従って読み出す読出手段と、
読み出した前記制御データに基づいて前記他装置を制御する制御手段とを備え、
予め前記演奏データに記述された所定の区切りにおいては、読み出した前記主演奏データに対応した演奏動作を検出するまで前記時間進行を停止し、かつ、該時間進行を停止してから所定時間が経過しても該演奏動作が検出されない場合には、該時間進行の停止を解除することを特徴とする同期制御装置。
【請求項８】
請求項７に記載の同期制御装置において、
前記制御データは、複数のイベントデータで構成され、
読み出した前記制御データに含まれる個々のイベントデータに基づいて前記楽器の自動演奏を行う自動演奏手段を備えることを特徴とする同期制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽器の演奏に同期して楽器以外の装置を制御する同期制御装置および方法に関する。
【０００２】
【従来の技術】
従来より、楽器の演奏にあわせて楽器以外の装置を制御することによって、様々な効果を付与することが行われている。例えばコンサートなどであれば様々な色の照明によって効果を付与したり、コーラスとして予めサンプリングしてあった音声を再生するような効果を付与することがある。このような演奏に効果を付与するタイミングは、演奏曲の進行と同期がとれていることが望ましい。
演奏の進行にあわせて効果付与を指示する操作として、上述した例であれば予め決められたタイミングで照明を制御する装置のスイッチのオン・オフを行ったり、音声再生装置のスタート・ストップ操作を行う必要がある。
【０００３】
【発明が解決しようとする課題】
このような指示操作を演奏者が楽器の演奏動作とあわせて逐一行うことは困難である。しかしながら演奏者が演奏を進行させるタイミングが必ずしも楽譜通りではない場合、第三者が制御指示操作を行うと、演奏タイミングと効果付与タイミングが同期しない恐れもある。
あらかじめ制御内容を楽譜の進行に応じて時系列に記述したデータを作成しておくことも可能であるが、この場合も演奏者が楽譜通りに演奏を進行させなかった場合には、演奏の進行と効果付与が同期しないという問題がある。
このように、従来は演奏動作と楽器以外の装置を同期させる制御は大変困難であるという問題があった。
【０００４】
本発明は、上記の事情を考慮してなされたものであり、楽器の演奏と楽器以外の装置の動作を同期させることが可能な、同期制御装置および同期制御方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記課題を解決するため、本発明の請求項１に記載の発明は、楽器の演奏動作に同期して他装置を制御する同期制御方法であって、前記楽器の演奏内容を記述する主演奏データ系列と前記他装置を制御する制御内容を時系列で記述した制御データ系列とを対応付けた演奏データから、前記主演奏データ系列に含まれる個々の主演奏データと前記制御データ系列に含まれる個々の制御データとを共通の時間進行に従って読み出す読出段階と、読み出した前記制御データに基づいて前記他装置を制御する制御段階とを備え、予め前記演奏データに記述された所定の区切りにおいては、読み出した前記主演奏データに対応した演奏動作を検出するまで前記時間進行を停止し、かつ、該時間進行を停止してから所定時間が経過しても該演奏動作が検出されない場合には、該時間進行の停止を解除することを特徴とする。
請求項２に記載の発明は、請求項１に記載の同期制御方法において、前記制御データは、複数のイベントデータで構成され、読み出した前記制御データに含まれる個々のイベントデータに基づいて前記楽器の自動演奏を行う自動演奏段階を備えることを特徴とする。
請求項３に記載の発明は、請求項１に記載の同期制御方法において、前記所定の区切りは、前記主演奏データに含まれる音高データと対応付けて記述されており、前記演奏動作として検出された音高と、前記音高データが示す音高とが一致した場合は前記時間進行の停止を解除することを特徴とする。
請求項４に記載の発明は、請求項１に記載の同期制御方法において、前記制御段階は、予め記憶された対応データに基づいて、前記制御データに含まれるパラメータに基づいて前記他装置の制御内容を認識することを特徴とする。
請求項５に記載の発明は、請求項１に記載の同期制御方法において、前記他装置は複数種類の装置であり、前記制御データは前記他装置の種類を区別するパラメータを含むことを特徴とする。
請求項６に記載の発明は、請求項１ないし５のいずれかに記載の同期制御方法であって、前記演奏データは、前記主演奏データ系列と前記演奏に付加する伴奏内容を記述する伴奏データ系列とを対応付けており、前記読出段階は、前記主演奏データ、前記制御データ、および前記伴奏データ系列に含まれる個々の伴奏データを読み出し、読み出した前記伴奏データに基づいて電子楽音を発生させる段階を備えることを特徴とする。
【０００６】
請求項７に記載の発明は、楽器の演奏動作に同期して他装置を制御する同期制御装置であって、前記楽器の演奏内容を記述する主演奏データ系列と前記他装置を制御する制御内容を時系列で記述した制御データ系列とを対応付けた演奏データを記憶する演奏データ記憶手段と、前記主演奏データ系列に含まれる個々の主演奏データと前記制御データ系列に含まれる個々の制御データとを共通の時間進行に従って読み出す読出手段と、読み出した前記制御データに基づいて前記他装置を制御する制御手段とを備え、予め前記演奏データに記述された所定の区切りにおいては、読み出した前記主演奏データに対応した演奏動作を検出するまで前記時間進行を停止し、かつ、該時間進行を停止してから所定時間が経過しても該演奏動作が検出されない場合には、該時間進行の停止を解除することを特徴とする。
請求項８に記載の発明は、請求項７に記載の同期制御装置において、前記制御データは、複数のイベントデータで構成され、読み出した前記制御データに含まれる個々のイベントデータに基づいて前記楽器の自動演奏を行う自動演奏手段を具備することを特徴とする。なお、本件における「他装置」とは、楽器本体と離間された位置に配置されるもののみならず、楽器に内蔵あるいは設置され、楽器本体と一体的に配置されたものを含む。
【０００７】
【発明の実施の形態】
[１．実施形態の構成]
[１−１．全体構成]
図１に実施形態の全体構成を示す。本実施形態では、演奏を行うためのピアノ１００、ピアノ１００とＭＩＤＩ（Musical Instrument Digital Interface）ケーブル１１１で接続された制御装置２００、および制御装置２００の制御に基づいて演奏に各種効果を付与する効果装置３００を備えて構成されている。
ピアノ１００は、後に詳しく説明するようにＭＩＤＩ信号を出力することができるように構成されており、制御装置２００は、ピアノ１００における演奏に同期して送信されるＭＩＤＩ信号に基づいて制御装置３００を制御できるように構成されている。
本実施形態では、効果装置３００としては、照明装置３０１、ディスプレイ３０２、およびサウンドシステム３０３が制御装置２００に接続されており、制御装置２００は、照明装置３０１のオン／オフや移動、ディスプレイ３０２への静止画や動画の表示、サウンドシステム３０３への効果音（例えば、ＣＤに記録されたオーディオ音）の出力などを制御する。
【０００８】
[１−２．ピアノの構成]
図２は、ピアノ１００の外観構成を示す図であり、図３は、ピアノ１００の主要部内部の構成を示す図である。
ピアノ１００は、鍵１の運動をハンマ２に伝達するアクションメカニズム３と、ハンマ２によって打撃される弦４と、鍵１を駆動するソレノイド５と、弦４の振動を止めるためのダンパ６とを備えており、これらの構成は一般的な自動ピアノと同様である。また、このピアノ１００には、通常のアコースティックピアノと同様にバックチェック７が設けられており、打弦後のハンマ２がハンマーアクション機構に戻ったときのハンマ２の暴れを防止する。他にも、このピアノ１００は、通常のアコースティックピアノに搭載される機構と同様のものを備えている。さらに、このピアノ１００には、ハンマ２の打弦を阻止する不図示のストッパが設けられており、このストッパは、演奏者の指示あるいは操作に応じて、打弦を阻止する位置と打弦を許容する位置との間で電気的あるいは機械的に移動可能にされている。
【０００９】
また、このピアノ１００は、コントローラ１１、サーボコントローラ１２、電子楽音発生部２５、キーセンサ２６、ＭＩＤＩインターフェイス１１０、ディスクドライブ１２０、およびディスプレイ１３０を備えている。
コントローラ１１は、ＣＰＵ（中央処理装置）、ＲＯＭ（リードオンリーメモリ）およびＲＡＭ（ランダムアクセスメモリ）などを有しており、ピアノ１００の各部を制御するものである。
サーボコントローラ１２は、速度指示値Ｖrに応じた励磁電流をソレノイド５に供給するとともに、ソレノイド５から供給されるフィードバック信号としての出力速度Ｖｙと速度指示値Ｖrを比較し、両者が一致するようにサーボ制御を行うものであり、速度指示値Ｖrは、各時刻における鍵１の位置に対応した速度を示す値としてコントローラ１１から適宜出力される。
電子楽音発生部２５は、コントローラ１１の制御に基づいて電子的な楽音を発生するものであり、音源やスピーカ等から構成されされている。
キーセンサ２６は、各鍵１の下面側に設けられ、対応する鍵１の動作を検出するセンサであり、各鍵１の状態を示す信号を検出してコントローラ１１に出力する。コントローラ１１は、これらのキーセンサ２６から供給される信号に基づいて、後に詳しく説明するように制御装置２００に対して各種効果制御を指示するＭＩＤＩ信号を送信する。
【００１０】
ディスクドライブ１２０は、例えばＤＶＤ−ＲＯＭやＣＤ−ＲＯＭなどの外部記録媒体に記録されたデータを読み出す装置であり、本実施形態では、演奏データをコントローラ１１に供給するために用いられる。
ディスプレイ１３０は、タッチパネル付きの液晶ディスプレイであって、譜面立ての横に上下左右に回動可能に支持されており、コントローラ１１は、表示内容の制御やパネル状態の検出を行うことができるように構成されている。本実施形態では、ディスプレイ１３０は、ピアノ１００の演奏状態などを表示したり、各種設定を行うためのパネルとして用いられる。
【００１１】
[１−３．制御装置の構成]
図４は制御装置２００の構成を示す図である。この図に示すように制御装置２００は、各部を制御する制御部２０１、ＭＩＤＩインターフェイス２０２、設定テーブル２０３、照明データベース２１１、画像データベース２１２、音響データベース２１３、照明装置制御部２２１、ディスプレイ制御部２２２、サウンドシステム制御部２２３を備えている。
設定テーブル２０３には、後に例を図示するように、ＭＩＤＩ信号の内容と効果装置３００の制御内容との対応が記憶されている。本実施形態では、制御内容は制御装置３００の種類毎に詳細な制御内容を記述したファイルをデータベースとして記憶しており、照明データベース２１１は照明装置３０１の制御内容を記憶したものであり、画像データベース２１２はディスプレイ３０２に表示する静止画や動画の制御内容を記憶したものであり、音響データベース２１３はサウンドシステム３０３におけるオーディオ出力の制御内容を記憶したものである。
また、照明装置制御部２２１、ディスプレイ制御部２２２、およびサウンドシステム制御部２２３は、受信したＭＩＤＩ信号の内容に基づいて特定されたファイルの記述内容に従って、各々接続された効果装置を制御するものである。
【００１２】
[１−４．データの構成]
次に、同期制御を行うためのデータ構成について説明する。本実施形態では、演奏の進行を記述した演奏データに基づいて同期制御を行うものとし、演奏データはＭＩＤＩフォーマットで記述されている。
図５は演奏データの一部を示した図である。ＭＩＤＩデータは、イベントデータと、これらの時間間隔を示すタイミングデータと、エンドデータとからなるシーケンスデータで構成され、ディスクドライブ１２０から供給される。
【００１３】
イベントデータは、ノートオンイベントやノートオフイベント、ノートナンバ、およびベロシティを示すデータを有している。なお、ノートオンおよびノートオフ以外のイベントについては、本実施形態では説明を省略する。
また、ＭＩＤＩデータでは最大１６系統の楽器をコントロールすることができるようになっており、このためノートイベントデータとして最大１６系統のデータを記述することができる。本実施形態では、各系統毎にシーケンスデータが作成されており、各シーケンスはＴｒ０〜Ｔｒ１５までのトラック名で特定されるようになっている。
【００１４】
所定の１系統のイベントデータのノートオンイベントのベロシティを示す部分には、キューフラグという識別子が記述されるようになっている（図５に示した「Ｃｆ」参照）。つまり、コントローラ１１は、ＭＩＤＩデータの所定の系統のノートオンイベントのベロシティを示す部分を参照することにより、このノート（音高）がキューフラグに特定されるものであるか否かを判別することができるようになっている。なお、キューフラグであることを記述するための情報は、上記のようにベロシティの部分に書き込む以外にも、他の部分に書き込むようにしてもよい。
【００１５】
本実施形態では、このキューフラグを用いて、ピアノ１００における演奏と制御装置２００において行う効果装置３００の制御を同期させる。より具体的には、上述した各系統に、演奏のメロディラインを示す主演奏トラックと、ピアノ１００の外部に接続されている機器の制御内容を示す外部制御トラックとを割り当て、主演奏トラックに含まれるノートオンイベントに一定の区切り毎にキューフラグを付しておく。
そして、キューフラグが付された主演奏トラックのノートオンイベントの実行タイミングを、センサ２６が検出する鍵１の押鍵操作に基づいて制御することによって、あわせて外部制御トラックのイベントデータの実行タイミングも制御する。
これにより、予め演奏の進行にあわせて制御内容を記述しておくことができるので、演奏しながら制御スイッチを操作する手間が省け、押鍵操作に基づいて進行を制御できるので、演奏者がタイミングをコントロールできるようになる。
【００１６】
ところで、本実施形態では、図６に例示するように、コントローラ１１が行う制御内容を各トラック毎に割り当てたテーブルが、コントローラ１１内のＲＡＭに記憶させる。この内容は、例えば演奏データに含まれている。
コントローラ１１は、所定のタイミングにおいて実行すべきイベントデータが含まれるトラック番号に基づいて異なる制御を行えるようになっており、図６に示す例では、トラックＴｒ０のイベントデータに基づいてソレノイド５を制御し、トラックＴｒ１のイベントデータに基づいて電子楽音発生部２５を制御し、トラックＴｒ２のイベントデータに基づいて外部の装置を制御するように設定されている。ここでのソレノイド５の駆動は、ハンマ２が弦４を打撃しない程度に鍵１を駆動する、いわゆる鍵１を半押し状態とすることにより、演奏者に対して押下すべき鍵を報知するものとする。なお、鍵１を半押し状態とする演奏ガイドは行わないようにしてもよいし、各鍵毎に設けたＬＥＤによる点灯表示などによって演奏ガイドを行うようにしてもよい。
これにより、トラックＴｒ０のデータに基づいて演奏指示を行い、トラックＴｒ１のデータに基づいて伴奏の自動演奏を行い、トラックＴｒ１のデータに基づいて外部に接続した効果装置３００を用いた効果付与を行うことができるようになる。
【００１７】
図７は、ピアノ１００から送信されるＭＩＤＩ信号の内容と、制御装置２００における制御内容との対応を例示した図であり、この内容は、先に説明したように、制御装置２００の設定テーブルに記憶されている。
本実施形態では、外部装置に対する制御内容を示すＭＩＤＩデータにはノートオンイベントを用いるものとしている。制御装置２００は、ノートオンデータに含まれるノートナンバに基づいて制御内容を選択すればよい。
また、先にも説明したように、各制御装置３００の詳細な制御内容を記述したファイルはデータベースとして記憶されており、各ファイルには、図７に例示するようにそれぞれファイル名が付されて特定できるようになっている。
設定テーブルは、ノートナンバとファイル名とを１対１に対応させたデータ構成となっている。
なお、図７においては、ノートナンバ０〜１２７を照明、画像、音響の３種類の制御内容に対応させているが、照明、画像、音響のイベントデータを各種類毎に異なるトラックに割り当てるようにすれば、各種類のイベントデータを分別できるため、１２８個のノートナンバを各種類の制御に各々用いることができ、制御を多様化できる。
【００１８】
[２．実施形態の動作]
次に、上述した構成を備える本実施形態の動作について、同期制御動作の概要説明した後、ピアノ１００および制御装置２００の詳細な動作についてそれぞれ説明する。
【００１９】
[２−１．概要動作]
図８は、上述した主演奏トラックおよび外部制御トラックのデータの内容例を楽譜として表示した図である。
以下の説明においては、タイミングの特定について、「イベント時刻」および「ポインタ時刻」２種類の時刻を用いる。「イベント時刻」とは、上述したタイミングデータの累積によって特定される時刻であり、演奏データに含まれる各イベントデータを実行すべき時刻を示す。例えば、図８に示す具体例では、コントローラ１１の分解能＝２（１／８分音符を基本単位）とした場合の各音符の演奏時刻を「イベント時刻」の時系列に示している。この例によれば、キューフラグの付されたノートオンイベントは、イベント時刻ｔ８およびｔ１６において演奏されることになる。このイベント時刻によって示されるタイミングは、演奏データに含まれる１６のトラックＴｒ０〜Ｔｒ１５共通の時刻であり、これにより、各トラックに含まれるイベントデータの同期をとることができるようになっている。
【００２０】
一方、「ポインタ時刻」とは、イベントデータを実行している時刻、すなわち現在演奏中の時刻を示しているものである。キューフラグを用いない通常のＭＩＤＩデータに基づく演奏であれば、ポインタ時刻はテンポによって規定される一定の時間間隔で進行していくが、本実施形態のようにキューフラグを用いて演奏進行の待ち受けを行う場合には、必ずしも一定の時間間隔で進行するとは限らない。
なお、以下の説明においては、イベント時刻およびポインタ時刻の他に、「キューフラグ時刻」を用いる場合があるが、これはイベント時刻のうちの、特にキューフラグが付されたノートオンイベントを実行すべき時刻を示すものである。また、図８中の「経過時間」は、キューフラグに対応する押鍵イベントの待ち受け状態になってからの経過時間を示してる。なお、本実施形態における「キューフラグに対応する押鍵イベント」とは、キューフラグが付されたノートイオンイベントに含まれるノートナンバに対応した鍵１の押鍵をキーセンサ２６が検出した場合をいう。
【００２１】
本実施形態では、押鍵イベントの待ち受け状態は、キューフラグ時刻を前後する所定時間継続するものとしている。これは、演奏者が演奏データが示すキューフラグ時刻よりも、早くあるいは遅く押鍵しても、効果付与タイミングを演奏に同期させるためである。
より具体的には、キューフラグに対応する押鍵の待ち受け時間（図８中の「経過時間」）においては、ポインタ時刻の進行をいったん停止し、キューフラグに対応した押鍵イベントがあったときにキューフラグ時刻からポインタ時刻の進行を開始する。なお、押鍵イベントの待ち受け状態が開始してから所定時間が経過しても押鍵イベントがなかった場合には、ミスタッチや誤検出により押鍵イベントが検出されなかった場合や、演奏者が効果付与を行わないことを意図した場合であって、演奏者の演奏動作自体は進行している場合があるので、待ち受け状態は解除して、未実行のイベントデータに対応するイベント時刻からポインタ時刻の進行を開始する。
【００２２】
本実施形態では、上述したような処理を行うために、コントローラ１１において実行する処理において必要なデータを一時的に記憶しておくバッファ（押鍵バッファ、イベントバッファ、キューフラグバッファ）がピアノ１００のコントローラ１１のＲＡＭに設けられる。
図９は、各種バッファの内容例を示す図であり、（１）は押鍵バッファの内容例を示し、（２）はイベントバッファの内容例を示し、（３）はキューフラグバッファの内容例を示している。
【００２３】
押鍵バッファは、キーセンサ２６によって検出された鍵１の押鍵操作内容を記憶するバッファである。コントローラ１１には、鍵１とノートナンバとの対応が予め設定されており、鍵１毎に押鍵イベントを検出すると、当該鍵１に対応したノートナンバを認識できるようになっている。
イベントバッファは、次に実行すべきイベントデータを予めディスクドライブにセットされたディスクから読み出して記憶するバッファであり、図９（２）に示すように、当該イベントデータのトラック番号、イベント、ノートナンバ、およびイベント時刻を対応付けて記憶するようになっている。
キューフラグバッファは、キューフラグの内容を記憶するバッファであり、図９（３）に示すように、キューフラグが付されたノートオンイベントのノートナンバ、キュー実行待ち状態になってからの経過時間、およびキューフラグ時刻を対応付けて記憶するようになっている。
これらのバッファを用いた詳細な処理について、次にフローチャートを参照しながら説明する。
【００２４】
[２−２．ピアノ１００の詳細動作]
[２−２−１．メインルーチン]
図１０に示したフローチャートは、ピアノ１００のコントローラ１１が、内部のメモリに記憶されたプログラムに従って実行する処理のメインルーチンである。この図に示す処理は、例えば上述したディスプレイ１３０のタッチパネルの操作などによって演奏開始が指示された時に開始する。
コントローラ１１は、この図に示す処理を開始すると、まず各種設定などの初期化処理を行う（Ｓ１００）。ここでは、例えば上述した各種バッファの初期化や、ポインタ時刻の初期化などを行う。
初期化が終了すると、コントローラ１１は、後にそれぞれ詳しく説明する押鍵処理（Ｓ２００）、演奏データ読出処理（Ｓ３００）、およびイベント実行処理（Ｓ４００）を演奏終了まで循環させる。なお、循環は、イベント時刻系列における基本単位の時間毎に１循環するものとする。
【００２５】
[２−２−２．押鍵処理]
図１１に示すフローチャートは、押鍵処理（図１０：Ｓ２００）のサブルーチンを示したものである。押鍵処理は、演奏者が行った鍵１の操作状態を検出するルーチンであり、コントローラ１１は、まずキーセンサ２６の検出値を取り込む（Ｓ２０１）。
そして、検出値に基づいて押鍵イベントの有無を判定し（Ｓ２０２）、押鍵イベント有りと判定した場合には（Ｓ２０２；ＹＥＳ）、図９（１）に示すように押鍵イベントを検出された鍵１に対応するノートナンバを押鍵バッファに書き込んで（Ｓ２０３）、処理をメインルーチンに戻す。
【００２６】
一方、ステップＳ２０２の判定において、押鍵イベント無しと判定した場合には（Ｓ２０２；ＮＯ）、次に離鍵イベントの有無を判定し（Ｓ２０４）、離鍵イベント有りと判定した場合には（Ｓ２０４；ＹＥＳ）、離鍵イベントを検出された鍵１に対応するノートナンバを押鍵バッファから消去して（Ｓ２０５）、処理をメインルーチンに戻す。
ステップＳ２０４の判定において、離鍵イベント無しと判定した場合には（Ｓ２０４；ＮＯ）、鍵１の状態に変化がなかったと判定できるので、そのまま処理をメインルーチンに戻す。
この処理を繰り返し行うことによって、コントローラ１１は、演奏者が鍵１を操作した状態を押鍵バッファに記憶されたデータによって認識することができる。
【００２７】
[２−２−３．演奏データ読出処理]
図１２に示すフローチャートは、演奏データ読出処理（図１０：Ｓ３００）のサブルーチンを示したものである。演奏データ読出処理は、演奏データ中のＭＩＤＩシーケンスから次に実行すべきイベントデータを予め読み出して、図９（２）に示したイベントバッファに記憶しておく処理である。なお、イベントデータを読み出すための読出タイマは、各トラック毎に設けられている。
【００２８】
コントローラ１１は、まず最初のトラックＴｒ０から読み出しを開始する（Ｓ３０１）。読み出しを開始すると、読出タイマが示す値が０であるか否か、すなわち、このトラックのイベントデータの読み出しタイミングであるか否かを判定する（Ｓ３０２）。なお、読出タイマにセットされる値は、後に説明するように、次のイベントデータを読み出すまでの時間を示しており、ルーチンが１循環する毎に１づつデクリメントされることによって、時間の経過を示すものである。ステップＳ３０２の判定において、イベントデータの読み出しタイミングであると判定した場合は（Ｓ３０２；ＹＥＳ）、次に実行すべきイベントデータを読み出して（Ｓ３０３）、そのイベントデータを実行すべきイベント時刻をタイミングデータに基づいて算出する（Ｓ３０４）。そして、図９（２）に示すように、トラック番号、イベントの種類、ノートナンバ、およびイベント時刻をイベントバッファに書き込んで（Ｓ３０５）、次にイベントデータを読み出すまでの時間を読出タイマにセットする（Ｓ３０６）。ここでセットする時間は、イベント時刻よりも所定時間前になるような時間にしておく。これによって、予めイベントデータを読み出しておくことができるようになり、キューフラグに対応する押鍵イベントの待ち受けもキューフラグ時刻よりも前から開始することが可能となる。
【００２９】
コントローラ１１は、今回読み出したイベントデータにキューフラグが付されているか否かを判定し（Ｓ３０７）、キューフラグがふされていると判定した場合には（Ｓ３０７；ＹＥＳ）、図９（３）に示すように、キューフラグの付されたノートオンイベントのノートナンバをキューフラグバッファに書き込む（Ｓ３０８）。このとき、あわあせてステップＳ３０４で算出したイベント時刻をキューフラグ時刻としてセットする。なお、この時点ではキューフラグを書き込んでから時間の経過がないので、経過時間は０とする。
【００３０】
キューフラグへの書込（Ｓ３０８）が終了した後、あるいはステップＳ３０７の判定において、キューフラグが付されていないと判定した場合は（Ｓ３０７；ＮＯ）、全トラックのＭＩＤＩデータについて読出処理を実行したか否かを判定し（Ｓ３０９；ＮＯ）、まだ読出処理を行っていないトラックが残っていると判定した場合は（Ｓ３０９；ＮＯ）、処理対象を次のトラックに変更して（Ｓ３１０）、ステップＳ３０２の読出タイマ値の判定に移行させる。
ところで、このステップＳ３０２の判定において、読出タイマ値が０ではない、すなわちイベントデータを読み出すタイミングではないと判定した場合は（Ｓ３０２；ＮＯ）、読出タイマ値を１デクリメントした後（Ｓ３１１）、全トラックについて処理を終了したか否かの判定を行う（Ｓ３０９）。
そして、ステップＳ３０９の判定において全トラックについて処理を終了したと判定すると（Ｓ３０９；ＹＥＳ）、演奏データ読出処理を終了してメインルーチンに戻る。
【００３１】
[２−２−４．イベント実行処理]
図１３に示すフローチャートは、イベント実行処理（図１０：Ｓ４００）のサブルーチンを示したものである。イベント実行処理は、イベントバッファに記憶されたイベントデータを実行するための処理であり、キューフラグに対応した押鍵イベントの待ち受けも、このルーチンで行うものである。
コントローラ１１は、キューフラグバッファにデータが記憶されているか否かをまず判定し（Ｓ４０１）、キューフラグバッファにデータが記憶されている、すなわち、キューフラグに対応した押鍵イベントの待ち受け状態であると判定した場合は（Ｓ４０１；ＹＥＳ）、キューフラグバッファに記憶されているノートナンバと押鍵バッファに記憶されているノートナンバが一致するか否かを判定する（Ｓ４０２）。ここで、両者が一致すると判定した場合は（Ｓ４０２；ＹＥＳ）、キューフラグの付されたノートオンイベントが指示した鍵１を演奏者が操作したものと判定できるので、先に説明したように、待ち受け状態を解除すべく、ポインタ時刻をキューフラグ時刻にセットする（Ｓ４０３）。
【００３２】
一方、ステップＳ４０２の判定において、キューフラグバッファに記憶されているノートナンバと押鍵バッファに記憶されているノートナンバが一致しないと判定した場合は（Ｓ４０２；ＮＯ）、キューフラグの付されたノートオンイベントが指示した鍵１を演奏者が操作していない、あるいは、ことなる鍵１を操作したと判定できるので、キューフラグバッファ中の経過時間（図９（３）参照）を１インクリメントする（Ｓ４０４）。
そして、経過時間値が、待ち受け許容時間としての所定値以上になったか否かを判定し（Ｓ４０５）、所定値未満、すなわち、経過時間がいまだ許容時間内であると判定した場合には（Ｓ４０５；ＮＯ）、キューフラグに対応した押鍵イベントの待ち受け状態を継続すべく、イベント実行処理を終了してメインルーチンに戻る。
一方、経過時間値が所定値以上になったと判定した場合には（Ｓ４０５；ＹＥＳ）、待ち受け状態を解除すべく、次に実行すべきイベントデータのイベント時刻をポインタ時刻にセットする（Ｓ４０６）。
ステップＳ４０３あるいはステップＳ４０６において、待ち受け状態を解除するポイント時刻のセットを行った後、キューフラグバッファのデータを削除する（Ｓ４０７）。
【００３３】
ところで、ステップＳ４０１の判定において、キューフラグバッファにはデータが記憶されていないと判定した場合は（Ｓ４０１；ＮＯ）、押鍵イベントの待ち受け状態ではないので、通常の演奏としてポインタ時刻を進行させるべく、ポインタ時刻を１インクリメントする（Ｓ４１０）。
【００３４】
ステップＳ４０３、Ｓ４０６、あるいはＳ４１０において今回処理すべきポインタ時刻をセットすると、コントローラ１１は、イベントバッファを参照してこのポインタ時刻に対応したイベントを実行する（Ｓ４０８）。先に図６を参照しながら説明したように、実行すべきイベントデータが含まれていたトラック番号毎にコントローラ１１が行う制御内容が対応付けられている。図６に示す例では、実行すべきイベントデータがトラックＴｒ０のデータであればこのノートナンバに対応した鍵１のソレノイド５を制御し、トラックＴｒ１のデータであればこのノートナンバに対応した音高の楽音を電子楽音発生装置２５に発生させ、トラックＴｒ３のデータであればこのノートナンバを含むノートオンメッセージをＭＩＤＩ信号として制御装置２００に送信する。
このような、各トラックに対応したイベントデータに基づく制御を実行した後（Ｓ４０８）、コントローラ１１は、実行したイベントデータをイベントバッファから削除して（Ｓ４０９）、イベント実行処理を終了する。
【００３５】
[２−３．制御装置２００の詳細動作]
次に、制御装置２００の詳細動作について、図１４に示すフローチャートを参照しながら説明する。
制御装置２００の制御部２０１は、例えば、パネル操作やピアノ１００から送信されるデータなどに基づいて図１４に示す処理を開始すると、初期化処理を行った後（Ｓｂ１）、ピアノ１００からのＭＩＤＩ信号受信待ち状態とする（Ｓｂ２）。
ステップＳｂ２においてＭＩＤＩ信号を受信したと判定した場合は（Ｓｂ２；ＹＥＳ）、図７に例示したような設定テーブル２０３を参照して、受信したノートナンバに対応する制御データをデータベースから検索する（ＳＳｂ３）。そして、検索された制御データに基づいて効果装置３００を制御して（Ｓｂ４）、ピアノ２００における演奏が終了したか否かを判定する（Ｓｂ５）。
ステップＳｂ５の判定において、演奏が終了していないと判定した場合は（Ｓｂ５；ＮＯ）、処理をステップＳｂ２のＭＩＤＩ信号受信待ちに戻し、演奏が終了したと判定した場合は（Ｓｂ５；ＹＥＳ）、処理を終了する。
【００３６】
[３．まとめ]
このように、本実施形態では、演奏者に対する演奏支援や伴奏の自動演奏などの音楽データの時間進行にあわせて、演奏に付与する各種効果の内容を予め演奏データに記述しておくことができるので、演奏者は複数の効果付与制御操作を演奏動作とは別に行う必要がなくなる。
また、演奏データにはキューフラグが付されており、キューフラグに対応する押鍵イベントの待ち受けができるようになっているので、演奏タイミングが演奏データに記述されたタイミングよりも前後した場合であっても、あわせて付与すべき効果の制御も待ち受け状態になっているので、演奏動作と効果制御が同期するようになる。
【００３７】
[４．変形例]
本発明は、上述した実施形態に限らず、以下に示すような各種の変形が可能である。
【００３８】
上記実施形態では、楽器以外の他装置として、効果装置である照明装置、ディスプレイ、サウンドシステムなどを例としてあげたが、これらに限らず、例えば、空調装置、送風装置や、香り発生装置など、ピアノ１００が楽器として備える通常の機能以外のもので制御可能なものであればどのような装置でもかまわない。
また、各効果装置で付与する効果についても、予め記憶したデータによる制御が行えればどのようなものでもよく、記憶しておくデータの形式もどのようなものでもかまわない。例えば、動画であればＭＰＥＧ（Moving Picture Experts Group）などをもちいればよいし、オーディオであればＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）形式のデータでもよいし、ＭＩＤＩデータに基づいて音源で楽音を生成するようにしてもかまわない。
なお、演奏者が演奏する楽器についても、上記実施形態のようなピアノにかぎらず、キーボードやオルガンのような他の鍵楽器であってもよいし、演奏者が音高を特定して演奏動作を行う楽器であって、演奏動作を検出できるものであれば管楽器や弦楽器のような他の楽器であってもかまわない。
【００３９】
演奏動作を検出する手段についても、上記のようなキーセンサに限らず、演奏者の動作に対応して指示された音高を検出できればどのようなものでもかまわない。あるいは、演奏動作であれば音高に限らず、検出可能なものであれば例えばダンパペダルの押下など他の動作であってもかまわない。
【００４０】
また、上記実施形態では、複数の効果装置を一つの制御装置で制御しているが、各効果装置毎に制御装置を設けて、楽器側でＭＩＤＩ信号の送信先を制御するようにしてもかまわない。あるいは、制御装置を楽器側に設ける構成にしてもよい。
上記実施形態では、キューフラグをノートオンイベントに含めたデータ構成としているが、これに限らず、演奏者の演奏動作と対応付けることができればどのような記述のしたかでもよく、例えばキューフラグのみを記述したトラックを設けてもよい。
なお、演奏データに記述された所定の区切りを示すデータとして、上記実施形態ではキューフラグを用いているが、これに限らず他の識別子を用いるようにしてもかまわない。例えば小節線を示すデータを含めた場合は小節線データを用いてもよいし、カラオケデータのようにさび区間の開始を示すマークなどを記述しているような場合には、このようなマークを用いてもかまわない。あるいは、識別子を用いずに、所定の時間条件や何音符毎などといった他の情報を演奏データのヘッダなどに記述しておいてもかまわない。
【００４１】
上記実施形態では、キューフラグがバッファに記憶されている場合には、該キューフラグのノートナンバに対応する押鍵イベントを検出するまでポインタ時刻の進行を停止することによって、楽器の演奏動作と主演奏データとを比較し、該比較結果に応じて主演奏データおよび制御データの進行を制御しているが、進行の停止に限らず、例えば、進行速度を徐々に遅くするようにしてもよい。
また、上記実施形態では、楽器の演奏動作と主演奏データとを比較する際には、主演奏データの進行と制御データの進行とを同一のポインタ時刻を用いて一致させているが、主演奏データの進行のみを停止し、制御データの進行は少し先まで進ませてから停止するようにしてもよいし、制御データの進行速度を徐々に遅くするようにしてもよい。
なお、上記実施形態では、キューフラグに対応する押鍵イベントの待ち受け状態になってから所定時間が経過した場合は、待ち受け状態を解除するものとして説明しているが、押鍵イベントを検出するまで待ち続けるようにしてもかまわない。
また、上記実施形態では、キューフラグ時刻よりも早いタイミングから押鍵イベントの待ち受けを行うものとし、キューフラグ時刻よりも前に押鍵イベントを検出した場合には効果付与タイミングも前倒しとなる例を用いて説明しているが、これに限らず、効果付与タイミングを前倒ししないようにしてもよい。このような場合は、ポイント時刻がキューフラグ時刻と一致した時点で、所定時間前以内に押鍵イベントを検出していた場合には、そのままポインタ時刻を進行させ、押鍵イベントを検出していなかった場合は、押鍵イベントを検出するまで待ち続けるようにすればよい。
【００４２】
効果付与を制御するイベントデータについて、上記実施形態ではノートオンイベントを用いて、そのイベントに含まれるノートナンバと制御内容とを対応付けているが、例えばエクスクルーシブなどの他のメッセージを用いてもよいし、ベロシティなど他のパラメータと制御内容を対応付けるようにしてもかまわない。
なお、演奏データを記述するデータ形式および、楽器から制御装置への制御信号の送信形式についても、上記実施形態のようなＭＩＤＩに限らず、他の形式のものをもちいてもかまわないのはもちろんである。
また、上記実施形態では、各種制御を行うためのプログラムは予めコントローラ１１および制御部２０１に記憶されているものとして説明したが、例えば、ディスクドライブ１２０にセットされたディスクから読み出したり、インストールできるようにしてもよい。
プログラムや演奏データをコントローラ１１や制御部２０１に供給する手段についても、ディスクからの読み込みに限らず、通信インターフェイスを設けて、通信回線によって供給できるようにしてもかまわない。
【００４３】
【発明の効果】
以上説明したように、本発明によれば、楽器の演奏と楽器以外の装置の動作を同期させて制御することが可能になる。
【図面の簡単な説明】
【図１】  実施形態の全体構成を示す図である。
【図２】  ピアノの外観構成を示す図である。
【図３】  ピアノの主要部の構成を示す図である。
【図４】  制御装置の構成を示すブロック図である。
【図５】  ＭＩＤＩデータの構成を示す図である。
【図６】  ＭＩＤＩデータと制御内容の対応を示す図である。
【図７】  ＭＩＤＩデータに含まれるパラメータと制御内容の対応を示す図である。
【図８】  ＭＩＤＩデータの内容を音符で示した図である。
【図９】  各種バッファの内容を例示した図である。
【図１０】  ピアノの動作を説明するフローチャートである（メインルーチン）。
【図１１】  ピアノの動作を説明するフローチャートである（押鍵処理）。
【図１２】  ピアノの動作を説明するフローチャートである（演奏データ読出処理）。
【図１３】  ピアノの動作を説明するフローチャートである（イベント実行処理）。
【図１４】  制御装置の動作を説明するフローチャートである。
【符号の説明】
１００……ピアノ、１……鍵、２……ハンマ、３……アクションメカニズム、４……弦、５……ソレノイド、６……ダンパ６、１１……コントローラ、１２……サーボコントローラ、２５……電子楽音発生装置、２６……キーセンサ、１１０……ＭＩＤＩインターフェイス、１１１……ＭＩＤＩケーブル、１２０……ディスクドライブ、１３０……ディスプレイ、２００……制御装置、３００……効果装置。
【図１】
0004200621.tif 000002
【図２】
0004200621.tif 000003
【図３】
0004200621.tif 000004
【図４】
0004200621.tif 000005
【図５】
0004200621.tif 000006
【図６】
0004200621.tif 000007
【図７】
0004200621.tif 000008
【図８】
0004200621.tif 000009
【図９】
0004200621.tif 000010
【図１０】
0004200621.tif 000011
【図１１】
0004200621.tif 000012
【図１２】
0004200621.tif 000013
【図１３】
0004200621.tif 000014
【図１４】
0004200621.tif 000015