(57)【要約】【課題】  操作の態様に合った適切な方法で操作子の動きを示す信号波形から演奏制御のタイミングを決定する処理を高速実行する。【解決手段】  トリガ信号発生部１１２は、加速度取得部１１１が加速度を取得する毎に第１〜第３のいずれかの状態となる。第１の状態では、加速度の大きさが閾値ｔｈ１以上の場合、遷移先を第３の状態とする。第２の状態では、操作子２００が停止状態の場合に遷移先を第１の状態とし、停止中でなく、加速度の大きさが所定値以上の場合に遷移先を第３の状態とする。第３の状態では、遷移前が第２の状態の場合は、加速度にピークが発生した旨の条件、遷移前が第１の状態の場合は、これに加え、第３の状態への遷移後の経過時間が閾値ｔｈ２を越えた旨の条件を含むものをトリガ信号発生条件とし、トリガ信号発生条件が満たされたときに、演奏制御用のトリガ信号を発生し、遷移先を第２の状態とする。【選択図】図１
2010015073.tif 000002
【特許請求の範囲】
【請求項１】
操作子の動きを示す動作検出信号を繰り返し取得する動作検出信号取得手段と、
前記動作検出信号取得手段が動作検出信号を取得する毎に、第１乃至第３のいずれかの状態となり、前記動作検出信号取得手段が取得した動作検出信号に基づいて、演奏制御用のトリガ信号を発生するための制御を行う手段であり、
（ａ）前記第１の状態では、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさが第１の閾値以上であるか否かを判断し、この判断結果が肯定的である場合に、次回の遷移先の状態を前記第３の状態とし、
（ｂ）前記第２の状態では、前記動作検出信号取得手段が取得した動作検出信号に基づいて、前記操作子の動きに関する判定を行い、前記操作子が停止状態にあると判定した場合には次回の遷移先の状態を前記第１の状態とし、前記操作子が停止状態になく、かつ、前記操作子の動きの大きさが所定値以上であると判定した場合には次回の遷移先を第３の状態とし、
（ｃ）前記第３の状態では、遷移前の状態が前記第２の状態である場合には、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさにピークが発生した旨の第１の条件を含むものをトリガ信号発生条件とし、遷移前の状態が前記第１の状態である場合には、前記第１の条件に加えて、前記第３の状態への遷移後の経過時間が第２の閾値を越えた旨の第２の条件を含むものをトリガ信号発生条件とし、前記トリガ信号発生条件が満たされたときに、トリガ信号を発生して、次回の遷移先の状態を前記第２の状態とするトリガ信号発生手段と
を具備することを特徴とする演奏制御装置。
【請求項２】
前記トリガ信号発生手段は、前記第２の状態では、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさが所定時間以上に亙って第３の閾値以下であるか否かを判断し、この判断結果が肯定的である場合には次回の遷移先の状態を前記第１の状態とし、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさの前回値との差分が第４の閾値以上であるか否かを判断し、この判断結果が肯定的である場合には次回の遷移先の状態を前記第３の状態とすることを特徴とする請求項１に記載の演奏制御装置。
【請求項３】
前記第３の状態において、トリガ信号発生条件は、最後にトリガ信号が発生してからの経過時間が第５の閾値を越えている旨の第３の条件を含み、前記トリガ信号発生手段は、前記第２の状態から前記第３の状態に遷移する場合には、前記第１の状態から前記第３の状態に遷移する場合に比べて、前記第５の閾値を低くすることを特徴とする請求項１に記載の演奏制御装置。
【請求項４】
コンピュータを、
操作子の動きを示す動作検出信号を繰り返し取得する動作検出信号取得手段と、
前記動作検出信号取得手段が動作検出信号を取得する毎に、第１乃至第３のいずれかの状態となり、前記動作検出信号取得手段が取得した動作検出信号に基づいて、演奏制御用のトリガ信号を発生するための制御を行う手段であり、
（ａ）前記第１の状態では、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさが第１の閾値以上であるか否かを判断し、この判断結果が肯定的である場合に、次回の遷移先の状態を前記第３の状態とし、
（ｂ）前記第２の状態では、前記動作検出信号取得手段が取得した動作検出信号に基づいて、前記操作子の動きに関する判定を行い、前記操作子が停止状態にあると判定した場合には次回の遷移先の状態を前記第１の状態とし、前記操作子が停止状態になく、かつ、前記操作子の動きの大きさが所定値以上であると判定した場合には次回の遷移先を第３の状態とし、
（ｃ）前記第３の状態では、遷移前の状態が前記第２の状態である場合には、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさにピークが発生した旨の第１の条件を含むものをトリガ信号発生条件とし、遷移前の状態が前記第１の状態である場合には、前記第１の条件に加えて、前記第３の状態への遷移後の経過時間が第２の閾値を越えた旨の第２の条件を含むものをトリガ信号発生条件とし、前記トリガ信号発生条件が満たされたときに、トリガ信号を発生して、次回の遷移先の状態を前記第２の状態とするトリガ信号発生手段と
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、操作子の操作に応じて、演奏制御のためのトリガ信号を発生する演奏制御装置およびプログラムに関する。
【背景技術】
【０００２】
加速度センサが固定された操作子を有し、加速度センサによって検出される操作子の加速度の波形に基づいて、音源に対するノートオンイベントの供給タイミングの制御や自動演奏のテンポの制御等の演奏のタイミング制御を行う演奏システムが各種提案されている。この種の演奏システムによれば、ユーザは、特別な訓練を受けなくても、例えば操作子を振る、といった簡単な操作により、好みのタイミングにおいて楽音を鳴らして演奏を行うことができる。なお、この種の演奏システムは例えば特許文献１、２に開示されている。
【０００３】
この種の演奏システムにおいて、円滑な演奏を実現するためには、楽音の発音タイミング等を、ユーザが操作子の操作により意のままに制御することができるようにする必要がある。例えば、ユーザに、操作子を振らせて楽音の発音タイミングを指示させるような演奏システムの場合、ユーザは、楽音の発音タイミングとしたいタイミングを意識して操作子を振るが、この意識したタイミングにおいて楽音が発音されないと、演奏はぎこちないものになる。そこで、特許文献１、２に開示の技術を含む多くの従来技術では、加速度センサによって検出される操作子の加速度の波形にピークが生じるのを検出し、このピークの検出タイミングにおいて楽音の発音等の演奏制御を行うようにしている。
【０００４】
ここで、ユーザが手で操作子を振るとき、操作子にはユーザの手からの力が与えられ、これが操作子に加速度を生じさせる。ユーザが、ある意識したタイミングにおいて操作子の振りを強めると、このタイミングにおいて、操作子に与えられる加速度も大きくなる。この意味において、操作子の加速度の波形がピークとなるタイミングをユーザの意識したタイミングと解釈することは理に適っている。
【０００５】
しかし、ユーザが手で操作子を振るとき、ユーザの手と操作子とからなる力学系では、手から操作子に一方的に力が与えられるのではなく、操作子からの手への反動も発生する。このため、操作子に発生する加速度に反動成分が生じ、ユーザが意識したタイミングの他、それよりも前のタイミングにおいて、操作子の加速度の波形にピークが発生する。従って、何ら策を講じないとすると、指示タイミングの誤認識の問題、すなわち、ユーザが意識したタイミングよりも前に発生する加速度のピークが検出され、このピークの発生タイミングがユーザによって指示された楽音の発音タイミングと誤認識される事態が生じる。
【特許文献１】特開２００１−１９５０５９号公報
【特許文献２】特開平８−３０５３５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のような指示タイミングの誤認識を減らすために、特許文献２に開示されているように、加速度センサから得られる操作子の加速度（特許文献２では角加速度）の移動平均を求め、さらにこの移動平均の移動平均を求めてダイナミック閾値とし、ダイナミック閾値を越えるピークであることを条件として、加速度のピークの発生タイミングを演奏制御のタイミング（特許文献２では拍のタイミング）として採用することが考えられる。
【０００７】
特許文献２に開示の技術によれば、加速度波形に生じるピークのうち瞬時的であり、かつ、小さなピークはダイナミック閾値に埋もれ、そのようなピークの発生タイミングは、演奏制御のタイミングとして採用されない。従って、指示タイミングの誤認識をある程度は改善することが可能である。
【０００８】
しかし、反動成分として発生するピークが大きく、ダイナミック閾値を越えるような場合には、依然として指示タイミングの誤認識が発生する。また、特許文献２に開示の技術では、ダイナミック閾値を得るために、加速度の移動平均を演算し、さらにこの移動平均の移動平均を演算する必要がある。このため、加速度センサから加速度のサンプルを取り込む時間間隔である１サンプリング周期内に実行すべき演算の量が多く、演算処理能力の高いプロセッサを利用できないような状況では、リアルタイムな演奏制御に支障が生じるという問題があった。
【０００９】
また、操作子の加速度波形から演奏制御のタイミングを決定する場合には、操作子の操作の態様に合わせて、適切な処理により演奏制御のタイミングを決定することが望まれる。例えば、操作子を振る時間間隔が長い場合には、ユーザが意図していないタイミングにおいて演奏制御が行われないように、操作子の加速度波形に現れる反動成分によるピークをマスキングすることが好ましい。しかし、ユーザが短い時間間隔で操作子をリズミカルに振るような場合には、このようなマスキングを行うよりは、むしろ加速度波形に現れる小刻みなピークに即応して演奏制御を行うことが望まれる。従来、このような要求を満たす技術は提供されていなかった。
【００１０】
この発明は、以上説明した事情に鑑みてなされたものであり、ユーザに操作子を操作させ、この操作子の動きを示す信号波形に基づいて演奏制御のタイミングを決定する演奏システムにおいて、演算制御のタイミングを実行する処理を高速に実行することが可能であり、かつ、操作子の操作の態様に合った適切な方法で演奏制御のタイミングを決定することができる技術的手段を提供することを目的とする。
【課題を解決するための手段】
【００１１】
この発明は、操作子の動きを示す動作検出信号を繰り返し取得する動作検出信号取得手段と、前記動作検出信号取得手段が動作検出信号を取得する毎に、第１乃至第３のいずれかの状態となり、前記動作検出信号取得手段が取得した動作検出信号に基づいて、演奏制御用のトリガ信号を発生するための制御を行う手段であり、
（ａ）前記第１の状態では、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさが第１の閾値以上であるか否かを判断し、この判断結果が肯定的である場合に、次回の遷移先の状態を前記第３の状態とし、
（ｂ）前記第２の状態では、前記動作検出信号取得手段が取得した動作検出信号に基づいて、前記操作子の動きに関する判定を行い、前記操作子が停止状態にあると判定した場合には次回の遷移先の状態を前記第１の状態とし、前記操作子が停止状態になく、かつ、前記操作子の動きの大きさが所定値以上であると判定した場合には次回の遷移先を第３の状態とし、
（ｃ）前記第３の状態では、遷移前の状態が前記第２の状態である場合には、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさにピークが発生した旨の第１の条件を含むものをトリガ信号発生条件とし、遷移前の状態が前記第１の状態である場合には、前記第１の条件に加えて、前記第３の状態への遷移後の経過時間が第２の閾値を越えた旨の第２の条件を含むものをトリガ信号発生条件とし、前記トリガ信号発生条件が満たされたときに、トリガ信号を発生して、次回の遷移先の状態を前記第２の状態とするトリガ信号発生手段とを具備することを特徴とする演奏制御装置およびコンピュータを前記各手段として機能させるプログラムを提供する。
【００１２】
この発明において、トリガ信号発生手段は、第１〜第３の状態を有しており、状態遷移しつつ、加速度を取得したときには、いずれか１種類の状態での処理のみを実行する。従って、周期的に繰り返し取得される動作検出信号を高速で処理することができ、操作子の動きの大きさの変化に即応して、トリガ信号を発生することができる。また、この発明において、トリガ信号発生手段は、第１の状態において操作子の動きの大きさが第１の閾値以上になったときは、第３の状態となり、この第３の状態においてトリガ信号発生条件が満たされると、トリガ信号を発生する。また、トリガ信号発生手段は、第３の状態においてトリガ信号が発生したときは第２の状態となり、第２の状態において操作子が停止状態になったときには第１の状態となり、操作子が停止中になく、かつ、操作子の動きの大きさが所定値以上であるときは第３の状態になる。ここで、操作子の操作の時間間隔が長い場合には、操作子は停止状態から移動を開始することとなるので、操作子が操作されるとき、トリガ信号発生手段は第１の状態から第３の状態に遷移することとなる。一方、ユーザが短い時間間隔で操作子をリズミカルに繰り返し振るような場合、トリガ信号の発生後も操作子の動きは活発である。従って、このような態様で操作子が操作される場合、トリガ信号発生手段は、第２の状態と第３の状態との間の遷移を繰り返す。そして、前者の場合、第３の状態では、遷移前の状態が第１の状態であることから、第２の条件に関する判定を行うことにより、操作子の動きの大きさに反動成分によるピークが発生し得る期間（すなわち、第２の閾値以内の期間）内に発生する操作子の動きの大きさのピークが無視され、ユーザが意図したタイミングでのピークを捉えてトリガ信号が発生される。また、後者の場合、第３の状態では、遷移前の状態が第２の状態であることから、第２の条件に関する判定が行われず、操作子の動きの大きさのピークの発生に即応してトリガ信号が発生される。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照し、この発明の実施の形態を説明する。
図１は、この発明の一実施形態である演奏制御装置１００を含む演奏システムの構成を示すブロック図である。この演奏システムは、演奏制御装置１００と、複数のバトン型の操作子２００と、音源、電子楽器等、演奏のためのハードウェア資源（図示略）とにより構成されている。
【００１４】
操作子２００は、ユーザが手に持って振る操作子であり、例えば何らかの楽音を発音させるタイミングや、拍としたいタイミング等、演奏制御のタイミングを指示するのに用いられる。操作子２００は、加速度センサ２０１と無線通信部２０２を内蔵している。ここで、加速度センサ２０１は、操作子２００の動きを示す動作検出信号として、操作子２００に働く加速度ベクトルを互いに直交した３軸方向の各成分ａｘ、ａｙ、ａｚに分解して検出し、これらの各成分を示す各アナログ信号を各々出力する。無線通信部２０２は、一定時間長（例えば５ｍｓ）のサンプリング周期毎に、加速度センサ２０１から出力される３種類のアナログ信号をサンプリングしてデジタル化することにより、加速度の３軸方向成分ａｘ、ａｙ、ａｚを示すデータを生成し、このデータと操作子２００を特定するＩＤとを含むパケットを、無線区間を介して演奏制御装置１００に送信する。
【００１５】
演奏制御装置１００は、演奏システム全体の制御中枢として働くＣＰＵ１１０と、ＣＰＵ１１０により実行される各種のプログラムを記憶したＲＯＭ１２０と、ＣＰＵ１１０によってワークエリアとして使用されるＲＡＭ１３０と、ユーザから各種の指示を受け取るとともにユーザに各種の情報を提供する操作表示部１４０と、操作子２００から無線区間を介してパケットを受信する無線通信部１５０と、上述した演奏のためのハードウェア資源とＣＰＵ１１０との間の情報交換を中継するＩ／Ｆ（インタフェース）群１６０とを有する。
【００１６】
ＲＡＭ１３０には、複数の操作子２００に各々対応付けて加速度記憶エリアが設けられている。無線通信部１５０は、一定時間長のサンプリング周期（例えば５ｍｓ）毎に、全ての操作子２００から１個ずつパケットを受信し、各パケットから操作子２００のＩＤと加速度の３軸方向成分ａｘ、ａｙ、ａｚを示すデータを取り出す。そして、各操作子２００の加速度の３軸方向成分ａｘ、ａｙ、ａｚを示すデータを各操作子２００に対応付けられた各加速度記憶エリアに各々書き込む。すなわち、本実施形態では、１サンプリング周期毎に、全ての操作子２００から加速度の３軸方向成分ａｘ、ａｙ、ａｚを示すデータが取得され、これらのデータによりＲＡＭ１３０内の各操作子２００に対応した加速度記憶エリアが書き換えられる。
【００１７】
本実施形態において、ＲＯＭ１２０には各種の演奏制御プログラムが記憶されている。ＣＰＵ１１０は、これらの演奏制御プログラムのうち操作表示部１４０の操作により指示されたものをＲＯＭ１２０からＲＡＭ１３０にロードして実行する。また、本実施形態において、ＣＰＵ１１０は、操作表示部１４０の操作に従い、複数種類の演奏制御プログラムをＲＯＭ１２０からＲＡＭ１３０にロードし、これらを並列に実行し、複数チャネルの演奏制御を行うことが可能である。図１には、ＣＰＵ１１０がｎチャネル分の演奏制御プログラムを実行している様子が示されている。ＣＰＵ１１０が実行する演奏制御プログラムと、それらの演奏制御プログラムに従って行われる演奏制御のチャネルとの対応付けは、操作表示部１４０の操作により指定される。
【００１８】
各チャネルの演奏制御では、ＲＡＭ１３０の各加速度記憶エリアのうち予め指定された１つの操作子２００に対応した加速度記憶エリア内の加速度の３軸方向成分ａｘ、ａｙ、ａｚのデータが用いられる。さらに詳述すると、本実施形態では、操作表示部１４０の操作により、演奏制御のチャネルと操作子２００のＩＤとの対応付けが指定され、各チャネルの演奏制御では、この対応付けに従って、該当するＩＤの操作子２００の加速度成分のデータが処理されるようになっている。
【００１９】
本実施形態において、演奏制御プログラムは、加速度取得部１１１、トリガ信号発生部１１２および演奏制御部１１３の各ルーチンにより構成されており、サンプリング周期毎に１回起動される。加速度取得部１１１は、操作子２００の動きを示す動作検出信号を繰り返し取得する動作検出信号取得手段としての役割を担っており、演奏制御のチャネルに対応した操作子２００の加速度の３軸方向成分ａｘ、ａｙ、ａｚをＲＡＭ１３０内の該当する加速度記憶エリアから読み出すルーチンである。また、トリガ信号発生部１１２は、動作検出信号、すなわち、加速度取得部１１１により読み出される加速度の３軸方向成分ａｘ、ａｙ、ａｚを処理し、演奏制御のタイミングを指示するトリガ信号を発生し、演奏制御部１１３に引き渡すルーチンである。そして、演奏制御部１１３は、トリガ信号発生部１１２からトリガ信号が引き渡されたとき、予め定められた演奏制御を行うルーチンである。例えば、ある演奏制御プログラムにおける演奏制御部１１３は、トリガ信号が与えられることにより、所定の音色のリズム音の楽音信号を形成し、Ｉ／Ｆ群１６０の中の適切なＩ／Ｆを介してサウンドシステム（図示略）にその楽音信号を送り、リズム音を放音させる。また、他の演奏制御プログラムにおける演奏制御部１１３は、例えばＭＩＤＩシーケンサであり、トリガ信号が与えられる毎に、序列化されたＭＩＤＩメッセージを例えばＲＡＭ１３０から順次読み出し、Ｉ／Ｆ群１６０の中の適切なＩ／Ｆを介してＭＩＤＩ音源（図示略）に送り、楽音を放音させる。
【００２０】
本実施形態の特徴は、演奏制御プログラムにおけるトリガ信号発生部１１２の処理内容にある。このトリガ信号発生部１１２は、動作検出信号、すなわち、加速度取得部１１１により加速度の３軸方向成分ａｘ、ａｙ、ａｚのデータが取得される毎に、取得された加速度の処理を行う。具体的には、トリガ信号発生部１１２は、第１〜第３の状態を有し、状態遷移しつつ、加速度取得部１１１が加速度を取得する毎にその処理を行う。各状態でのトリガ信号発生部１１２の処理内容を要約すると次の通りである。
【００２１】
（ａ）第１の状態では、動作検出信号が示す操作子２００の動きの大きさ、すなわち、加速度取得部１１１が取得した加速度の大きさが閾値ｔｈ１以上であるか否かを判断し、この判断結果が肯定的である場合に、次回の遷移先を第３の状態とする。
【００２２】
（ｂ）第２の状態では、加速度取得部１１１が取得した加速度に基づいて、操作子２００の動きに関する判定を行い、判定結果に従って遷移先の状態を決定する。まず、加速度取得部１１１が取得した加速度の大きさが所定時間以上に亙って閾値ｔｈ３以下であるか否かを判断し、この判断結果が肯定的である場合には、操作子２００が停止状態になったとみなし、次回の遷移先を第１の状態とする。また、加速度取得部１１１が取得した加速度の大きさの前回値との差分が第４の閾値ｔｈ４以上であるか否かを判断し、この判断結果が肯定的である場合、すなわち、停止状態にない操作子２００の動きの変化量が所定値以上の場合には、操作子２００の動きが活発であるとみなし、次回の遷移先を第３の状態とする。
【００２３】
（ｃ）第３の状態では、第２の状態から第３の状態に遷移した場合には、加速度取得部１１１が取得する加速度にピークが発生した旨の第１の条件を含むものをトリガ信号発生条件とし、第１の状態から第３の状態に遷移した場合には、第１の条件に加えて、第３の状態への遷移後の経過時間が閾値ｔｈ２を越えた旨の第２の条件を含むものをトリガ信号発生条件とし、トリガ信号発生条件が満たされたときに、演奏制御のためのトリガ信号を発生して、次回の遷移先を第２の状態とする。また、第３の状態において、トリガ信号発生条件は、最後にトリガ信号が発生してからの経過時間が閾値ｔｈ５を越えている旨の第３の条件を含む。トリガ信号発生部１１２は、第２の状態から第３の状態に遷移する場合には、第１の状態から第３の状態に遷移する場合に比べて、閾値ｔｈ５を低くする。
【００２４】
本実施形態において、トリガ信号発生部１１２は、操作子２００が停止中であるときには第１の状態となり易く、操作子２００が停止中でないとき、すなわち、移動中であるときには第３の状態となり易い。従って、以下では、便宜上、第１の状態を停止中状態、第３の状態を移動中状態と呼ぶ。また、トリガ信号発生部１１２は、移動中状態においてトリガ信号を発生した後は、第２の状態となり、この第２の状態から停止中状態または移動中状態に遷移する。このように第２の状態は、停止中状態または移動中状態への遷移を待っている状態であるので、第２の状態を待機中状態という。
以上が本実施形態による演奏制御装置１００の構成の詳細である。
【００２５】
次に、本実施形態の動作を説明する。上述した通り、本実施形態では、１サンプリング周期毎に、全ての操作子２００から加速度の３軸方向成分ａｘ、ａｙ、ａｚを示すデータが取得され、これらのデータによりＲＡＭ１３０内の各操作子２００に対応した加速度記憶エリアが書き換えられる。そして、１サンプリング周期毎に、各チャネルの演奏制御プログラムが実行される。各チャネルの演奏制御プログラムの加速度取得部１１１は、演奏制御のチャネルに対応した操作子２００の加速度の３軸方向成分ａｘ、ａｙ、ａｚをＲＡＭ１３０内の該当する加速度記憶エリアから読み出し、トリガ信号発生部１１２に引き渡す。図２は、このトリガ信号発生部１１２の１サンプリング周期分の処理内容を示すフローチャートである。
【００２６】
このトリガ信号発生部１１２では、次のデータを取り扱う。
加速度データＡＳ：現在のサンプリング周期において取得された加速度の大きさを示すデータである。
前加速度データＡＳｏｌｄ：現在のサンプリング周期の直前のサンプリング周期において算出された加速度データＡＳである。
状態フラグＦＳ：トリガ信号発生部１１２の状態が停止中状態であるとき“１”、待機中状態であるときは“２”、移動中状態であるときは“３”とされるフラグである。
移動時間データＴ０：状態が移動中状態になってからの経過時間を示すデータである。
経過時間データＴ１：トリガ信号を発生してからの経過時間（サンプリング周期数）を示すデータである。
停止時間データＴ２：加速度データＡＳが閾値ｔｈ３以下の状態を継続している時間（サンプリング周期数）を示すデータである。
反動フラグＦＲ：移動中状態において、上記第２の条件をトリガ信号発生条件に加えるか否かの判断において参照されるフラグであり、停止中状態から移動中状態に遷移するときに“１”とされ、待機中状態から移動中状態に遷移するときに“０”とされる。
以上を踏まえて、トリガ信号発生部１１２の処理内容を説明する。
【００２７】
トリガ信号発生部１１２では、まず、ステップＳ１に進み、加速度取得部１１１から引き渡された加速度の３軸方向成分ａｘ、ａｙ、ａｚを用いて、加速度データＡＳを算出する。本実施形態では、次式に示す加速度の絶対値ＡＳを加速度データとして算出する。
ＡＳ＝√（ａｘ２＋ａｙ２＋ａｚ２）                ……（１）
【００２８】
次にステップＳ２に進むと、状態フラグＦＳの内容を判断する。そして、状態フラグＦＳが“１”である場合にはステップＳ１１以降の停止中状態に対応した処理に進み、“２”である場合にはステップＳ２１以降の待機中状態に対応した処理に進み、“３”である場合にはステップＳ３１以降の移動中状態に対応した処理に進む。
【００２９】
停止中状態の処理の最初の処理であるステップＳ１１に進むと、加速度データＡＳが閾値ｔｈ１以上であるか否かを判断する。この判断結果が「ＮＯ」の場合、停止中状態の処理を終え、ステップＳ３に進む。
【００３０】
次にステップＳ３に進むと、次回のサンプリング周期において演奏制御プログラムが起動されたときのために加速度データＡＳを前加速度データＡＳｏｌｄに退避させ、経過時間データＴ１を「１」だけ増加させる。このステップＳ３が終了することにより、トリガ信号発生部１１２の全処理が終了する。
【００３１】
以後、状態フラグＦＳが“１”である間は、サンプリング周期に同期してトリガ信号発生部１１２が起動されたときには、ステップＳ２からステップＳ１１へ進むこととなる。そして、加速度データＡＳが閾値ｔｈ１未満である場合には、状態フラグＦＳは“１”を維持する。
【００３２】
ユーザが操作子２００を停止状態から動かすと、加速度取得部１１により取得される加速度の大きさが増してゆく。そして、加速度データＡＳが閾値ｔｈ１以上になると、ステップＳ２を介してステップＳ１１に進んだとき、その判断結果が「ＹＥＳ」となる。この場合、処理はステップＳ１２に進み、状態フラグＦＳに移動中状態を示す“３”をセットし、移動時間データＴ０を「０」に初期化し、反動フラグＦＲを“１”とし、閾値ｔｈ５に所定の時間長を示す時間データＴａをセットする。そして、停止中状態の処理を終え、ステップＳ３に進む。
【００３３】
このようにして状態フラグＦＳが“３”になると、以後、サンプリング周期に同期してトリガ信号発生部１１２が起動されたときには、ステップＳ２から移動中状態における最初の処理であるステップＳ３１へ進むこととなる。このステップＳ３１では、移動時間データＴ０が閾値ｔｈ２より大きい旨の条件（上記第２の条件）または反動フラグＦＲが“０”である旨の条件の少なくとも一方が満たされているか否かを判断する。この判断結果が「ＮＯ」である場合には、ステップＳ３４に進み、移動時間データＴ０を「１」だけ増加させる。次にステップＳ３５に進み、移動時間データＴ０が上限値Ｔ０ＭＡＸ以上になったか否かを判断する。そして、この判断結果が「ＮＯ」である場合には、移動中状態の処理を終えて、ステップＳ３に進む。一方、ステップＳ３５の判断結果が「ＹＥＳ」の場合は、状態フラグＦＳに待機中状態に対応した“２”をセットし（ステップＳ３６）、移動中状態の処理を終えて、ステップＳ３に進む。このステップＳ３５およびＳ３６の処理を設けているのは、次の理由による。まず、移動中状態のときに、操作子２００の動きが止まると、操作子２００が停止しているにも拘わらず、トリガ信号発生部１１２の状態は移動中状態に止まり続けることになる。そこで、これを防止するために、移動中状態となってからの経過時間を示す移動時間データＴ０が上限値Ｔ０ＭＡＸ以上になったら、状態フラグＦＳを“２”とし、強制的に待機中状態に遷移させるようにしているのである。
【００３４】
さて、状態フラグＦＳが“３”である間は、サンプリング周期に同期してトリガ信号発生部１１２が起動されたときに、ステップＳ２からステップＳ３１へ進むこととなる。そして、反動フラグＦＲが“１”である場合、すなわち、移動中状態への遷移前の状態が停止中状態である場合には、移動時間データＴ０が閾値ｔｈ２以下であると、ステップＳ３１の判断結果が「ＮＯ」となり、上述と同様な処理が繰り返される。しかし、移動中状態になってから時間が経過し、移動時間データＴ０が閾値ｔｈ２を越えると、ステップＳ３１の判断結果が「ＹＥＳ」となり、ステップＳ３２へ進む。このステップＳ３２では、次の条件を全て満たすか否かを判断する。
ａ．加速度データＡＳが上昇傾向から下降傾向に転じたこと。すなわち、加速度データＡＳにピークが発生したこと。
ｂ．下降傾向に転じる直前の加速度データＡＳ（すなわち、前加速度データＡＳｏｌｄ）が所定の閾値ｔｈ７以上であること。すなわち、ピーク時の加速度の大きさが、トリガ信号を発生するに足る範囲（ピーク判定範囲）内の値であること。
ｃ．前回、トリガ信号を発生してからの経過時間を示す経過時間データＴ１が閾値ｔｈ５より大きいこと。この条件ｃは、チャタリングを防止するために設けた条件である。ここで、チャタリングとは、加速度データＡＳがピークとなり、トリガ信号発生条件が満たされてトリガ信号が発生した後、短時間のうちに加速度データＡＳの波形に再びピークが発生した場合に、このピークのタイミングにおいてトリガ信号が発生される現象である。移動中状態への遷移前の状態が停止中状態である場合には、この条件ｃの判断に用いる閾値ｔｈ５は時間データＴａとなっている。
【００３５】
このステップＳ３２の判断結果が「ＮＯ」である場合には、ステップＳ３４に進み、上述と同様な処理を繰り返す。これに対し、ステップＳ３２の判断結果が「ＹＥＳ」である場合には、ステップＳ３３に進む。このステップＳ３３では、トリガ信号を発生して演奏制御部１１３に引き渡し、状態フラグＦＳに待機中状態に対応した“２”をセットし、経過時間データＴ１を「０」に初期化する。そして、ステップＳ３３の処理を終えると、ステップＳ３４に進む。
【００３６】
トリガ信号が発生して状態フラグＦＳが“２”になると、以後、サンプリング周期に同期してトリガ信号発生部１１２が起動されたとき、ステップＳ２から待機中状態における最初の処理であるステップＳ２１へ進むこととなる。このステップＳ２１では、加速度データＡＳが閾値ｔｈ３以下か否か、すなわち、操作子２００が停止しているとみなせる停止判定領域内にあるか否かを判断する。この判断結果が「ＹＥＳ」の場合はステップＳ２２に進み、停止時間データＴ２を「１」だけ増加させ、ステップＳ２４に進む。これに対し、ステップＳ２１の判断結果が「ＮＯ」の場合はステップＳ２３に進み、停止時間データＴ２を「０」に初期化し、ステップＳ２４に進む。
【００３７】
次にステップＳ２４に進むと、停止時間データＴ２が閾値ｔｈ６より大きいか否かを判断する。この判断結果が「ＮＯ」の場合はステップＳ２６へ進む。一方、ステップＳ２４の判断結果が「ＹＥＳ」の場合は、ステップＳ２５へ進んで、状態フラグＦＳを“１”とし、停止時間データＴ２を「０」に初期化し、ステップＳ２６に進む。
【００３８】
次にステップＳ２６に進むと、ΔＡＳ＝ＡＳ−ＡＳｏｌｄなる演算により、加速度データＡＳの前回値との差分ΔＡＳを算出し、この差分ΔＡＳが閾値ｔｈ４以上であるか否かを判断する。この判断結果が「ＮＯ」である場合は、待機中状態の処理を終えて、ステップＳ３に進む。一方、ステップＳ２６の判断結果が「ＹＥＳ」の場合は、ステップＳ２７に進んで、状態フラグＦＳを“３”とし、反動フラグＦＲを“０”とし、閾値ｔｈ５に時間データＴｂをセットする。この時間データＴｂは、時間データＴａよりも短い時間長を示すデータである。そして、待機中状態の処理を終えて、ステップＳ３に進む。
【００３９】
以上のように、待機中状態において、加速度データＡＳが閾値ｔｈ３以下である時間が閾値ｔｈ６より大きくなると、状態フラグＦＳは、停止中状態に対応した“１”とされる。また、待機中状態において、加速度データＡＳの前回値との差分ΔＡＳが閾値ｔｈ４以上になると、操作子２００の動きが活発になったとみなされ、状態フラグＦＳが移動中状態に対応した“３”とされる。また、待機中状態において、状態フラグＦＳが移動中状態に対応した“３”とされる場合には、反動フラグＦＲが“０”とされ、閾値ｔｈ５は、時間データＴａよりも短い時間長を示す時間データＴｂとされる。
【００４０】
待機中状態から停止中状態に遷移した場合における停止中状態の処理内容を既に説明した内容と同じである。しかし、待機中状態から移動中状態に遷移した場合における移動中状態の処理内容は、上述した停止中状態から移動中状態に遷移した場合における移動中状態の処理内容と一部異なったものになる。
【００４１】
まず、待機中状態から移動中状態に遷移する場合には、反動フラグＦＲが“０”とされる。このため、待機中状態から遷移した移動中状態の処理では、移動時間データＴ０がどのような値であってもステップＳ３１の判断結果が常に「ＹＥＳ」となり、ステップＳ３２に進むこととなる。
【００４２】
また、待機中状態から移動中状態に遷移する場合には、閾値ｔｈ５は、時間データＴａよりも短い時間長を示す時間データＴｂとされる。そして、ステップＳ３２では、この閾値ｔｈ５＝Ｔｂを用いて、前回、トリガ信号を発生してからの経過時間を示す経過時間データＴ１が閾値ｔｈ５より大きいという条件を満たすか否かが判断される。
以上が本実施形態の動作である。
【００４３】
次に具体例を挙げ、本実施形態の動作をさらに詳細に説明する。
図３は、本実施形態において加速度データＡＳに現れるピークのうち反動成分によるピークをマスキングする動作を説明する図である。この図において、横軸は時間軸であり、縦軸は加速度データＡＳであり、プロットは、トリガ信号発生部１１２において周期的に発生される加速度データＡＳを示している。図示の例では、加速度データＡＳが閾値ｔｈ１以上になることにより、停止中状態から移動中状態に遷移しており、移動中状態において加速度データＡＳのピークが２つ発生している。１つ目のピークは、加速度データＡＳａの発生時に検出されている。このピークは、ユーザが例えば音を鳴らすタイミングとすることを意図して発生させたピークではなく、反動成分によるピークである。しかし、この時点では、移動中状態への遷移後の経過時間を示す移動時間データＴ０が閾値ｔｈ２以下であるため、この反動成分によるピークのマスキングが行われ、トリガ信号は発生しない（ステップＳ３１＝「ＮＯ」）。２つ目のピークは、ユーザが意図して発生させたピークであり、加速度データＡＳｂの発生時に検出されている。この２つ目のピークの時点では、移動中状態への遷移後の経過時間を示す移動時間データＴ０が閾値ｔｈ２を越えている。このため、トリガ信号発生条件における他の条件を満たすことによりトリガ信号が発生することとなる。
【００４４】
本実施形態において、反動成分によるピークをマスキングする動作は、停止中状態から移動中状態に遷移した場合のみ行われる。待機中状態から移動中状態に遷移した場合には、反動成分による加速度データＡＳのピークのマスキング動作は行われない。待機中状態から移動中状態への遷移は、ユーザが操作子２００を短い時間間隔で繰り返し振っているような状況（連打の状況）において発生する。このような状況では、反動成分による加速度データＡＳのピークは現れ難く、リズミカルに発生するピークに即応してトリガ信号を発生することが望まれるからである。
【００４５】
図４は、本実施形態におけるチャタリング防止の動作を説明する図である。この例では、加速度データＡＳｈの発生時にトリガ信号発生条件を満たすピークが検出され、トリガ信号が発生している。その後、加速度データＡＳが閾値ｔｈ３以下の期間が閾値ｔｈ６を越え、待機中状態から停止中状態に遷移している。そして、加速度データＡＳが閾値ｔｈ１を越えて、停止中状態から移動中状態に遷移し、加速度データＡＳｉの発生時にピークが検出される。しかし、移動中状態への遷移前の状態が停止中状態であるため、長い時間長を示す時間データＴａが閾値ｔｈ５とされる。そして、この例では、最後のトリガ信号の発生時点からの経過時間が閾値ｔｈ５＝Ｔａ以下であることから、加速度データＡＳｉの発生時にはトリガ信号が発生されない。その後、加速度データＡＳｊの発生時に再びピークが検出される。この時点では、最後のトリガ信号の発生時点（加速度データＡＳｈの発生時）からの経過時間が閾値ｔｈ５＝Ｔａを越えていることから、トリガ信号が発生される。その後、加速度データＡＳは、短い時間間隔でリズミカルに下降と上昇を繰り返すが、閾値ｔｈ３より大きい状態が続く。そして、この間の加速度データＡＳｋ、ＡＳｌ、ＡＳｍ、ＡＳｎの各発生時点においてピークが各々検出される。これらの各ピークの検出時点では、トリガ信号が発生されると、移動中状態から待機状態への遷移が行われる。しかし、加速度データＡＳが閾値ｔｈ３以下にならないことから、トリガ信号発生部１１２は停止中状態とならず、移動中状態から待機中状態へ遷移し、待機中状態から移動中状態へ遷移する、という動作を繰り返す。このため、各ピークの発生時点では、時間データＴａより短い時間長を示す時間データＴｂが閾値ｔｈ５とされ、最後のトリガ信号発生時点からの経過時間が閾値ｔｈ５＝Ｔｂより大きいことを条件にトリガ信号が発生される。従って、本実施形態によれば、操作子２００が短い時間間隔でリズミカルに振られる場合でも、そのリズミカルな振りに即応して、トリガ信号を発生させることができる。
【００４６】
以上説明したように、本実施形態によれば、トリガ信号発生部１１２は、加速度を取得したときには、停止中状態、待機中状態、移動中状態のうちいずれか１種類の状態での処理のみを実行する。従って、周期的に繰り返し取得される加速度を高速で処理することができ、加速度の大きさの変化に即応して、トリガ信号を発生することができる。また、本実施形態において、トリガ信号発生部１１２では、停止中状態から移動中状態に遷移したときに限り、移動中状態の状態への遷移後の経過時間が閾値ｔｈ２を越えた旨の第２の条件がトリガ信号発生条件に含まれ、待機中状態から移動中状態に遷移した場合には、この第２の条件がトリガ信号発生条件に含まれない。従って操作子２００の操作の時間間隔が長いような場合には、第２の条件に関する判定を行うことにより、操作子２００の加速度波形に現れる反動成分によるピークをマスキングして、ユーザが意図したタイミングでのピークのみを捉えてトリガ信号を発生することができる。また、ユーザが短い時間間隔で操作子２００をリズミカルに振っているような状況では、第２の条件に関する判定を行わず、加速度のピークの発生に即応してトリガ信号を発生させることができる。また、本実施形態において、トリガ信号発生部１１２は、チャタリング防止のための判断に用いる閾値ｔｈ５を、停止中状態から移動中状態に遷移した場合には大きくしているが、待機中状態から移動中状態に遷移した場合は小さくしている。従って、ユーザが短い時間間隔で操作子２００をリズミカルに振っているような状況では、それらの全ての振りに対して、取りこぼすことなく応答し、トリガ信号を発生することができる。このように本実施形態によれば、操作子２００の操作の態様に合った適切な方法により加速度波形から演奏制御のタイミングを決定することができる。
【００４７】
以上、この発明の一実施形態を説明したが、この発明には、他にも各種の実施形態が考えられる。例えば次の通りである。
【００４８】
（１）例えば閾値ｔｈ１〜ｔｈ６は、最適な値に固定しても良いが、ユーザが操作表示部１４０の操作により調整できるようにしてもよい。あるいは演奏する音楽のジャンル等に対応付けて、各ジャンルでの演奏に適した閾値ｔｈ１〜ｔｈ６のセットをＲＯＭ１２０に複数記憶させておき、ユーザが操作表示部１４０の操作により選択したセットを採用するようにしてもよい。
【００４９】
（２）上記実施形態では、操作子２００の加速度の絶対値を加速度データＡＳとして用いたが、演算量の制約が厳しい場合には、加速度の３軸方向成分の２乗の和を加速度データＡＳとして用いてもよい。
【００５０】
（３）上記実施形態では、操作子２００の加速度の大きさのみを利用したが、加速度の３軸方向の成分のバランスに基づいて、操作子２００の運動方向を推定し、この推定結果に基づいて、例えば発音する音色の変更等の多彩な演奏制御を行うようにしてもよい。
【００５１】
（４）ユーザの操作に基づく操作子２００の運きを検出するセンサとして、加速度センサ以外のセンサ、例えば操作子２００の角速度、変位、速度、圧力、傾き等を検出するセンサを操作子２００に設け、このセンサから操作子２００の運きを示す動作検出信号を取得してトリガ信号を発生するように演奏制御装置１００を構成してもよい。
【図面の簡単な説明】
【００５２】
【図１】この発明の一実施形態である演奏制御装置１００を含む演奏システムの構成を示すブロック図である。
【図２】同実施形態におけるトリガ信号発生部１１２の処理内容を示すフローチャートである。
【図３】同実施形態において加速度データＡＳに現れるピークのうち反動成分によるピークをマスキングする動作を説明する図である。
【図４】同実施形態におけるチャタリング防止の動作を説明する図である。
【符号の説明】
【００５３】
２００……操作子、２０１……加速度センサ、２０２……無線通信部、１００……演奏制御装置、１１０……ＣＰＵ、１２０……ＲＯＭ、１３０……ＲＡＭ、１４０……操作表示部、１５０……無線通信装置、１６０……Ｉ／Ｆ群、１１１……加速度取得部、１１２……トリガ信号発生部、１１３……演奏制御部。
【図１】
2010015073.tif 000003
【図２】
2010015073.tif 000004
【図３】
2010015073.tif 000005
【図４】
2010015073.tif 000006