JP2010015073A - 演奏制御装置およびプログラム - Google Patents
演奏制御装置およびプログラム Download PDFInfo
- Publication number
- JP2010015073A JP2010015073A JP2008176523A JP2008176523A JP2010015073A JP 2010015073 A JP2010015073 A JP 2010015073A JP 2008176523 A JP2008176523 A JP 2008176523A JP 2008176523 A JP2008176523 A JP 2008176523A JP 2010015073 A JP2010015073 A JP 2010015073A
- Authority
- JP
- Japan
- Prior art keywords
- state
- detection signal
- trigger signal
- acceleration
- motion detection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】 操作の態様に合った適切な方法で操作子の動きを示す信号波形から演奏制御のタイミングを決定する処理を高速実行する。
【解決手段】 トリガ信号発生部112は、加速度取得部111が加速度を取得する毎に第1〜第3のいずれかの状態となる。第1の状態では、加速度の大きさが閾値th1以上の場合、遷移先を第3の状態とする。第2の状態では、操作子200が停止状態の場合に遷移先を第1の状態とし、停止中でなく、加速度の大きさが所定値以上の場合に遷移先を第3の状態とする。第3の状態では、遷移前が第2の状態の場合は、加速度にピークが発生した旨の条件、遷移前が第1の状態の場合は、これに加え、第3の状態への遷移後の経過時間が閾値th2を越えた旨の条件を含むものをトリガ信号発生条件とし、トリガ信号発生条件が満たされたときに、演奏制御用のトリガ信号を発生し、遷移先を第2の状態とする。
【選択図】図1
【解決手段】 トリガ信号発生部112は、加速度取得部111が加速度を取得する毎に第1〜第3のいずれかの状態となる。第1の状態では、加速度の大きさが閾値th1以上の場合、遷移先を第3の状態とする。第2の状態では、操作子200が停止状態の場合に遷移先を第1の状態とし、停止中でなく、加速度の大きさが所定値以上の場合に遷移先を第3の状態とする。第3の状態では、遷移前が第2の状態の場合は、加速度にピークが発生した旨の条件、遷移前が第1の状態の場合は、これに加え、第3の状態への遷移後の経過時間が閾値th2を越えた旨の条件を含むものをトリガ信号発生条件とし、トリガ信号発生条件が満たされたときに、演奏制御用のトリガ信号を発生し、遷移先を第2の状態とする。
【選択図】図1
Description
この発明は、操作子の操作に応じて、演奏制御のためのトリガ信号を発生する演奏制御装置およびプログラムに関する。
加速度センサが固定された操作子を有し、加速度センサによって検出される操作子の加速度の波形に基づいて、音源に対するノートオンイベントの供給タイミングの制御や自動演奏のテンポの制御等の演奏のタイミング制御を行う演奏システムが各種提案されている。この種の演奏システムによれば、ユーザは、特別な訓練を受けなくても、例えば操作子を振る、といった簡単な操作により、好みのタイミングにおいて楽音を鳴らして演奏を行うことができる。なお、この種の演奏システムは例えば特許文献1、2に開示されている。
この種の演奏システムにおいて、円滑な演奏を実現するためには、楽音の発音タイミング等を、ユーザが操作子の操作により意のままに制御することができるようにする必要がある。例えば、ユーザに、操作子を振らせて楽音の発音タイミングを指示させるような演奏システムの場合、ユーザは、楽音の発音タイミングとしたいタイミングを意識して操作子を振るが、この意識したタイミングにおいて楽音が発音されないと、演奏はぎこちないものになる。そこで、特許文献1、2に開示の技術を含む多くの従来技術では、加速度センサによって検出される操作子の加速度の波形にピークが生じるのを検出し、このピークの検出タイミングにおいて楽音の発音等の演奏制御を行うようにしている。
ここで、ユーザが手で操作子を振るとき、操作子にはユーザの手からの力が与えられ、これが操作子に加速度を生じさせる。ユーザが、ある意識したタイミングにおいて操作子の振りを強めると、このタイミングにおいて、操作子に与えられる加速度も大きくなる。この意味において、操作子の加速度の波形がピークとなるタイミングをユーザの意識したタイミングと解釈することは理に適っている。
しかし、ユーザが手で操作子を振るとき、ユーザの手と操作子とからなる力学系では、手から操作子に一方的に力が与えられるのではなく、操作子からの手への反動も発生する。このため、操作子に発生する加速度に反動成分が生じ、ユーザが意識したタイミングの他、それよりも前のタイミングにおいて、操作子の加速度の波形にピークが発生する。従って、何ら策を講じないとすると、指示タイミングの誤認識の問題、すなわち、ユーザが意識したタイミングよりも前に発生する加速度のピークが検出され、このピークの発生タイミングがユーザによって指示された楽音の発音タイミングと誤認識される事態が生じる。
特開2001−195059号公報
特開平8−305355号公報
上記のような指示タイミングの誤認識を減らすために、特許文献2に開示されているように、加速度センサから得られる操作子の加速度(特許文献2では角加速度)の移動平均を求め、さらにこの移動平均の移動平均を求めてダイナミック閾値とし、ダイナミック閾値を越えるピークであることを条件として、加速度のピークの発生タイミングを演奏制御のタイミング(特許文献2では拍のタイミング)として採用することが考えられる。
特許文献2に開示の技術によれば、加速度波形に生じるピークのうち瞬時的であり、かつ、小さなピークはダイナミック閾値に埋もれ、そのようなピークの発生タイミングは、演奏制御のタイミングとして採用されない。従って、指示タイミングの誤認識をある程度は改善することが可能である。
しかし、反動成分として発生するピークが大きく、ダイナミック閾値を越えるような場合には、依然として指示タイミングの誤認識が発生する。また、特許文献2に開示の技術では、ダイナミック閾値を得るために、加速度の移動平均を演算し、さらにこの移動平均の移動平均を演算する必要がある。このため、加速度センサから加速度のサンプルを取り込む時間間隔である1サンプリング周期内に実行すべき演算の量が多く、演算処理能力の高いプロセッサを利用できないような状況では、リアルタイムな演奏制御に支障が生じるという問題があった。
また、操作子の加速度波形から演奏制御のタイミングを決定する場合には、操作子の操作の態様に合わせて、適切な処理により演奏制御のタイミングを決定することが望まれる。例えば、操作子を振る時間間隔が長い場合には、ユーザが意図していないタイミングにおいて演奏制御が行われないように、操作子の加速度波形に現れる反動成分によるピークをマスキングすることが好ましい。しかし、ユーザが短い時間間隔で操作子をリズミカルに振るような場合には、このようなマスキングを行うよりは、むしろ加速度波形に現れる小刻みなピークに即応して演奏制御を行うことが望まれる。従来、このような要求を満たす技術は提供されていなかった。
この発明は、以上説明した事情に鑑みてなされたものであり、ユーザに操作子を操作させ、この操作子の動きを示す信号波形に基づいて演奏制御のタイミングを決定する演奏システムにおいて、演算制御のタイミングを実行する処理を高速に実行することが可能であり、かつ、操作子の操作の態様に合った適切な方法で演奏制御のタイミングを決定することができる技術的手段を提供することを目的とする。
この発明は、操作子の動きを示す動作検出信号を繰り返し取得する動作検出信号取得手段と、前記動作検出信号取得手段が動作検出信号を取得する毎に、第1乃至第3のいずれかの状態となり、前記動作検出信号取得手段が取得した動作検出信号に基づいて、演奏制御用のトリガ信号を発生するための制御を行う手段であり、
(a)前記第1の状態では、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさが第1の閾値以上であるか否かを判断し、この判断結果が肯定的である場合に、次回の遷移先の状態を前記第3の状態とし、
(b)前記第2の状態では、前記動作検出信号取得手段が取得した動作検出信号に基づいて、前記操作子の動きに関する判定を行い、前記操作子が停止状態にあると判定した場合には次回の遷移先の状態を前記第1の状態とし、前記操作子が停止状態になく、かつ、前記操作子の動きの大きさが所定値以上であると判定した場合には次回の遷移先を第3の状態とし、
(c)前記第3の状態では、遷移前の状態が前記第2の状態である場合には、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさにピークが発生した旨の第1の条件を含むものをトリガ信号発生条件とし、遷移前の状態が前記第1の状態である場合には、前記第1の条件に加えて、前記第3の状態への遷移後の経過時間が第2の閾値を越えた旨の第2の条件を含むものをトリガ信号発生条件とし、前記トリガ信号発生条件が満たされたときに、トリガ信号を発生して、次回の遷移先の状態を前記第2の状態とするトリガ信号発生手段とを具備することを特徴とする演奏制御装置およびコンピュータを前記各手段として機能させるプログラムを提供する。
(a)前記第1の状態では、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさが第1の閾値以上であるか否かを判断し、この判断結果が肯定的である場合に、次回の遷移先の状態を前記第3の状態とし、
(b)前記第2の状態では、前記動作検出信号取得手段が取得した動作検出信号に基づいて、前記操作子の動きに関する判定を行い、前記操作子が停止状態にあると判定した場合には次回の遷移先の状態を前記第1の状態とし、前記操作子が停止状態になく、かつ、前記操作子の動きの大きさが所定値以上であると判定した場合には次回の遷移先を第3の状態とし、
(c)前記第3の状態では、遷移前の状態が前記第2の状態である場合には、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさにピークが発生した旨の第1の条件を含むものをトリガ信号発生条件とし、遷移前の状態が前記第1の状態である場合には、前記第1の条件に加えて、前記第3の状態への遷移後の経過時間が第2の閾値を越えた旨の第2の条件を含むものをトリガ信号発生条件とし、前記トリガ信号発生条件が満たされたときに、トリガ信号を発生して、次回の遷移先の状態を前記第2の状態とするトリガ信号発生手段とを具備することを特徴とする演奏制御装置およびコンピュータを前記各手段として機能させるプログラムを提供する。
この発明において、トリガ信号発生手段は、第1〜第3の状態を有しており、状態遷移しつつ、加速度を取得したときには、いずれか1種類の状態での処理のみを実行する。従って、周期的に繰り返し取得される動作検出信号を高速で処理することができ、操作子の動きの大きさの変化に即応して、トリガ信号を発生することができる。また、この発明において、トリガ信号発生手段は、第1の状態において操作子の動きの大きさが第1の閾値以上になったときは、第3の状態となり、この第3の状態においてトリガ信号発生条件が満たされると、トリガ信号を発生する。また、トリガ信号発生手段は、第3の状態においてトリガ信号が発生したときは第2の状態となり、第2の状態において操作子が停止状態になったときには第1の状態となり、操作子が停止中になく、かつ、操作子の動きの大きさが所定値以上であるときは第3の状態になる。ここで、操作子の操作の時間間隔が長い場合には、操作子は停止状態から移動を開始することとなるので、操作子が操作されるとき、トリガ信号発生手段は第1の状態から第3の状態に遷移することとなる。一方、ユーザが短い時間間隔で操作子をリズミカルに繰り返し振るような場合、トリガ信号の発生後も操作子の動きは活発である。従って、このような態様で操作子が操作される場合、トリガ信号発生手段は、第2の状態と第3の状態との間の遷移を繰り返す。そして、前者の場合、第3の状態では、遷移前の状態が第1の状態であることから、第2の条件に関する判定を行うことにより、操作子の動きの大きさに反動成分によるピークが発生し得る期間(すなわち、第2の閾値以内の期間)内に発生する操作子の動きの大きさのピークが無視され、ユーザが意図したタイミングでのピークを捉えてトリガ信号が発生される。また、後者の場合、第3の状態では、遷移前の状態が第2の状態であることから、第2の条件に関する判定が行われず、操作子の動きの大きさのピークの発生に即応してトリガ信号が発生される。
以下、図面を参照し、この発明の実施の形態を説明する。
図1は、この発明の一実施形態である演奏制御装置100を含む演奏システムの構成を示すブロック図である。この演奏システムは、演奏制御装置100と、複数のバトン型の操作子200と、音源、電子楽器等、演奏のためのハードウェア資源(図示略)とにより構成されている。
図1は、この発明の一実施形態である演奏制御装置100を含む演奏システムの構成を示すブロック図である。この演奏システムは、演奏制御装置100と、複数のバトン型の操作子200と、音源、電子楽器等、演奏のためのハードウェア資源(図示略)とにより構成されている。
操作子200は、ユーザが手に持って振る操作子であり、例えば何らかの楽音を発音させるタイミングや、拍としたいタイミング等、演奏制御のタイミングを指示するのに用いられる。操作子200は、加速度センサ201と無線通信部202を内蔵している。ここで、加速度センサ201は、操作子200の動きを示す動作検出信号として、操作子200に働く加速度ベクトルを互いに直交した3軸方向の各成分ax、ay、azに分解して検出し、これらの各成分を示す各アナログ信号を各々出力する。無線通信部202は、一定時間長(例えば5ms)のサンプリング周期毎に、加速度センサ201から出力される3種類のアナログ信号をサンプリングしてデジタル化することにより、加速度の3軸方向成分ax、ay、azを示すデータを生成し、このデータと操作子200を特定するIDとを含むパケットを、無線区間を介して演奏制御装置100に送信する。
演奏制御装置100は、演奏システム全体の制御中枢として働くCPU110と、CPU110により実行される各種のプログラムを記憶したROM120と、CPU110によってワークエリアとして使用されるRAM130と、ユーザから各種の指示を受け取るとともにユーザに各種の情報を提供する操作表示部140と、操作子200から無線区間を介してパケットを受信する無線通信部150と、上述した演奏のためのハードウェア資源とCPU110との間の情報交換を中継するI/F(インタフェース)群160とを有する。
RAM130には、複数の操作子200に各々対応付けて加速度記憶エリアが設けられている。無線通信部150は、一定時間長のサンプリング周期(例えば5ms)毎に、全ての操作子200から1個ずつパケットを受信し、各パケットから操作子200のIDと加速度の3軸方向成分ax、ay、azを示すデータを取り出す。そして、各操作子200の加速度の3軸方向成分ax、ay、azを示すデータを各操作子200に対応付けられた各加速度記憶エリアに各々書き込む。すなわち、本実施形態では、1サンプリング周期毎に、全ての操作子200から加速度の3軸方向成分ax、ay、azを示すデータが取得され、これらのデータによりRAM130内の各操作子200に対応した加速度記憶エリアが書き換えられる。
本実施形態において、ROM120には各種の演奏制御プログラムが記憶されている。CPU110は、これらの演奏制御プログラムのうち操作表示部140の操作により指示されたものをROM120からRAM130にロードして実行する。また、本実施形態において、CPU110は、操作表示部140の操作に従い、複数種類の演奏制御プログラムをROM120からRAM130にロードし、これらを並列に実行し、複数チャネルの演奏制御を行うことが可能である。図1には、CPU110がnチャネル分の演奏制御プログラムを実行している様子が示されている。CPU110が実行する演奏制御プログラムと、それらの演奏制御プログラムに従って行われる演奏制御のチャネルとの対応付けは、操作表示部140の操作により指定される。
各チャネルの演奏制御では、RAM130の各加速度記憶エリアのうち予め指定された1つの操作子200に対応した加速度記憶エリア内の加速度の3軸方向成分ax、ay、azのデータが用いられる。さらに詳述すると、本実施形態では、操作表示部140の操作により、演奏制御のチャネルと操作子200のIDとの対応付けが指定され、各チャネルの演奏制御では、この対応付けに従って、該当するIDの操作子200の加速度成分のデータが処理されるようになっている。
本実施形態において、演奏制御プログラムは、加速度取得部111、トリガ信号発生部112および演奏制御部113の各ルーチンにより構成されており、サンプリング周期毎に1回起動される。加速度取得部111は、操作子200の動きを示す動作検出信号を繰り返し取得する動作検出信号取得手段としての役割を担っており、演奏制御のチャネルに対応した操作子200の加速度の3軸方向成分ax、ay、azをRAM130内の該当する加速度記憶エリアから読み出すルーチンである。また、トリガ信号発生部112は、動作検出信号、すなわち、加速度取得部111により読み出される加速度の3軸方向成分ax、ay、azを処理し、演奏制御のタイミングを指示するトリガ信号を発生し、演奏制御部113に引き渡すルーチンである。そして、演奏制御部113は、トリガ信号発生部112からトリガ信号が引き渡されたとき、予め定められた演奏制御を行うルーチンである。例えば、ある演奏制御プログラムにおける演奏制御部113は、トリガ信号が与えられることにより、所定の音色のリズム音の楽音信号を形成し、I/F群160の中の適切なI/Fを介してサウンドシステム(図示略)にその楽音信号を送り、リズム音を放音させる。また、他の演奏制御プログラムにおける演奏制御部113は、例えばMIDIシーケンサであり、トリガ信号が与えられる毎に、序列化されたMIDIメッセージを例えばRAM130から順次読み出し、I/F群160の中の適切なI/Fを介してMIDI音源(図示略)に送り、楽音を放音させる。
本実施形態の特徴は、演奏制御プログラムにおけるトリガ信号発生部112の処理内容にある。このトリガ信号発生部112は、動作検出信号、すなわち、加速度取得部111により加速度の3軸方向成分ax、ay、azのデータが取得される毎に、取得された加速度の処理を行う。具体的には、トリガ信号発生部112は、第1〜第3の状態を有し、状態遷移しつつ、加速度取得部111が加速度を取得する毎にその処理を行う。各状態でのトリガ信号発生部112の処理内容を要約すると次の通りである。
(a)第1の状態では、動作検出信号が示す操作子200の動きの大きさ、すなわち、加速度取得部111が取得した加速度の大きさが閾値th1以上であるか否かを判断し、この判断結果が肯定的である場合に、次回の遷移先を第3の状態とする。
(b)第2の状態では、加速度取得部111が取得した加速度に基づいて、操作子200の動きに関する判定を行い、判定結果に従って遷移先の状態を決定する。まず、加速度取得部111が取得した加速度の大きさが所定時間以上に亙って閾値th3以下であるか否かを判断し、この判断結果が肯定的である場合には、操作子200が停止状態になったとみなし、次回の遷移先を第1の状態とする。また、加速度取得部111が取得した加速度の大きさの前回値との差分が第4の閾値th4以上であるか否かを判断し、この判断結果が肯定的である場合、すなわち、停止状態にない操作子200の動きの変化量が所定値以上の場合には、操作子200の動きが活発であるとみなし、次回の遷移先を第3の状態とする。
(c)第3の状態では、第2の状態から第3の状態に遷移した場合には、加速度取得部111が取得する加速度にピークが発生した旨の第1の条件を含むものをトリガ信号発生条件とし、第1の状態から第3の状態に遷移した場合には、第1の条件に加えて、第3の状態への遷移後の経過時間が閾値th2を越えた旨の第2の条件を含むものをトリガ信号発生条件とし、トリガ信号発生条件が満たされたときに、演奏制御のためのトリガ信号を発生して、次回の遷移先を第2の状態とする。また、第3の状態において、トリガ信号発生条件は、最後にトリガ信号が発生してからの経過時間が閾値th5を越えている旨の第3の条件を含む。トリガ信号発生部112は、第2の状態から第3の状態に遷移する場合には、第1の状態から第3の状態に遷移する場合に比べて、閾値th5を低くする。
本実施形態において、トリガ信号発生部112は、操作子200が停止中であるときには第1の状態となり易く、操作子200が停止中でないとき、すなわち、移動中であるときには第3の状態となり易い。従って、以下では、便宜上、第1の状態を停止中状態、第3の状態を移動中状態と呼ぶ。また、トリガ信号発生部112は、移動中状態においてトリガ信号を発生した後は、第2の状態となり、この第2の状態から停止中状態または移動中状態に遷移する。このように第2の状態は、停止中状態または移動中状態への遷移を待っている状態であるので、第2の状態を待機中状態という。
以上が本実施形態による演奏制御装置100の構成の詳細である。
以上が本実施形態による演奏制御装置100の構成の詳細である。
次に、本実施形態の動作を説明する。上述した通り、本実施形態では、1サンプリング周期毎に、全ての操作子200から加速度の3軸方向成分ax、ay、azを示すデータが取得され、これらのデータによりRAM130内の各操作子200に対応した加速度記憶エリアが書き換えられる。そして、1サンプリング周期毎に、各チャネルの演奏制御プログラムが実行される。各チャネルの演奏制御プログラムの加速度取得部111は、演奏制御のチャネルに対応した操作子200の加速度の3軸方向成分ax、ay、azをRAM130内の該当する加速度記憶エリアから読み出し、トリガ信号発生部112に引き渡す。図2は、このトリガ信号発生部112の1サンプリング周期分の処理内容を示すフローチャートである。
このトリガ信号発生部112では、次のデータを取り扱う。
加速度データAS:現在のサンプリング周期において取得された加速度の大きさを示すデータである。
前加速度データASold:現在のサンプリング周期の直前のサンプリング周期において算出された加速度データASである。
状態フラグFS:トリガ信号発生部112の状態が停止中状態であるとき“1”、待機中状態であるときは“2”、移動中状態であるときは“3”とされるフラグである。
移動時間データT0:状態が移動中状態になってからの経過時間を示すデータである。
経過時間データT1:トリガ信号を発生してからの経過時間(サンプリング周期数)を示すデータである。
停止時間データT2:加速度データASが閾値th3以下の状態を継続している時間(サンプリング周期数)を示すデータである。
反動フラグFR:移動中状態において、上記第2の条件をトリガ信号発生条件に加えるか否かの判断において参照されるフラグであり、停止中状態から移動中状態に遷移するときに“1”とされ、待機中状態から移動中状態に遷移するときに“0”とされる。
以上を踏まえて、トリガ信号発生部112の処理内容を説明する。
加速度データAS:現在のサンプリング周期において取得された加速度の大きさを示すデータである。
前加速度データASold:現在のサンプリング周期の直前のサンプリング周期において算出された加速度データASである。
状態フラグFS:トリガ信号発生部112の状態が停止中状態であるとき“1”、待機中状態であるときは“2”、移動中状態であるときは“3”とされるフラグである。
移動時間データT0:状態が移動中状態になってからの経過時間を示すデータである。
経過時間データT1:トリガ信号を発生してからの経過時間(サンプリング周期数)を示すデータである。
停止時間データT2:加速度データASが閾値th3以下の状態を継続している時間(サンプリング周期数)を示すデータである。
反動フラグFR:移動中状態において、上記第2の条件をトリガ信号発生条件に加えるか否かの判断において参照されるフラグであり、停止中状態から移動中状態に遷移するときに“1”とされ、待機中状態から移動中状態に遷移するときに“0”とされる。
以上を踏まえて、トリガ信号発生部112の処理内容を説明する。
トリガ信号発生部112では、まず、ステップS1に進み、加速度取得部111から引き渡された加速度の3軸方向成分ax、ay、azを用いて、加速度データASを算出する。本実施形態では、次式に示す加速度の絶対値ASを加速度データとして算出する。
AS=√(ax 2+ay 2+az 2) ……(1)
AS=√(ax 2+ay 2+az 2) ……(1)
次にステップS2に進むと、状態フラグFSの内容を判断する。そして、状態フラグFSが“1”である場合にはステップS11以降の停止中状態に対応した処理に進み、“2”である場合にはステップS21以降の待機中状態に対応した処理に進み、“3”である場合にはステップS31以降の移動中状態に対応した処理に進む。
停止中状態の処理の最初の処理であるステップS11に進むと、加速度データASが閾値th1以上であるか否かを判断する。この判断結果が「NO」の場合、停止中状態の処理を終え、ステップS3に進む。
次にステップS3に進むと、次回のサンプリング周期において演奏制御プログラムが起動されたときのために加速度データASを前加速度データASoldに退避させ、経過時間データT1を「1」だけ増加させる。このステップS3が終了することにより、トリガ信号発生部112の全処理が終了する。
以後、状態フラグFSが“1”である間は、サンプリング周期に同期してトリガ信号発生部112が起動されたときには、ステップS2からステップS11へ進むこととなる。そして、加速度データASが閾値th1未満である場合には、状態フラグFSは“1”を維持する。
ユーザが操作子200を停止状態から動かすと、加速度取得部11により取得される加速度の大きさが増してゆく。そして、加速度データASが閾値th1以上になると、ステップS2を介してステップS11に進んだとき、その判断結果が「YES」となる。この場合、処理はステップS12に進み、状態フラグFSに移動中状態を示す“3”をセットし、移動時間データT0を「0」に初期化し、反動フラグFRを“1”とし、閾値th5に所定の時間長を示す時間データTaをセットする。そして、停止中状態の処理を終え、ステップS3に進む。
このようにして状態フラグFSが“3”になると、以後、サンプリング周期に同期してトリガ信号発生部112が起動されたときには、ステップS2から移動中状態における最初の処理であるステップS31へ進むこととなる。このステップS31では、移動時間データT0が閾値th2より大きい旨の条件(上記第2の条件)または反動フラグFRが“0”である旨の条件の少なくとも一方が満たされているか否かを判断する。この判断結果が「NO」である場合には、ステップS34に進み、移動時間データT0を「1」だけ増加させる。次にステップS35に進み、移動時間データT0が上限値T0MAX以上になったか否かを判断する。そして、この判断結果が「NO」である場合には、移動中状態の処理を終えて、ステップS3に進む。一方、ステップS35の判断結果が「YES」の場合は、状態フラグFSに待機中状態に対応した“2”をセットし(ステップS36)、移動中状態の処理を終えて、ステップS3に進む。このステップS35およびS36の処理を設けているのは、次の理由による。まず、移動中状態のときに、操作子200の動きが止まると、操作子200が停止しているにも拘わらず、トリガ信号発生部112の状態は移動中状態に止まり続けることになる。そこで、これを防止するために、移動中状態となってからの経過時間を示す移動時間データT0が上限値T0MAX以上になったら、状態フラグFSを“2”とし、強制的に待機中状態に遷移させるようにしているのである。
さて、状態フラグFSが“3”である間は、サンプリング周期に同期してトリガ信号発生部112が起動されたときに、ステップS2からステップS31へ進むこととなる。そして、反動フラグFRが“1”である場合、すなわち、移動中状態への遷移前の状態が停止中状態である場合には、移動時間データT0が閾値th2以下であると、ステップS31の判断結果が「NO」となり、上述と同様な処理が繰り返される。しかし、移動中状態になってから時間が経過し、移動時間データT0が閾値th2を越えると、ステップS31の判断結果が「YES」となり、ステップS32へ進む。このステップS32では、次の条件を全て満たすか否かを判断する。
a.加速度データASが上昇傾向から下降傾向に転じたこと。すなわち、加速度データASにピークが発生したこと。
b.下降傾向に転じる直前の加速度データAS(すなわち、前加速度データASold)が所定の閾値th7以上であること。すなわち、ピーク時の加速度の大きさが、トリガ信号を発生するに足る範囲(ピーク判定範囲)内の値であること。
c.前回、トリガ信号を発生してからの経過時間を示す経過時間データT1が閾値th5より大きいこと。この条件cは、チャタリングを防止するために設けた条件である。ここで、チャタリングとは、加速度データASがピークとなり、トリガ信号発生条件が満たされてトリガ信号が発生した後、短時間のうちに加速度データASの波形に再びピークが発生した場合に、このピークのタイミングにおいてトリガ信号が発生される現象である。移動中状態への遷移前の状態が停止中状態である場合には、この条件cの判断に用いる閾値th5は時間データTaとなっている。
a.加速度データASが上昇傾向から下降傾向に転じたこと。すなわち、加速度データASにピークが発生したこと。
b.下降傾向に転じる直前の加速度データAS(すなわち、前加速度データASold)が所定の閾値th7以上であること。すなわち、ピーク時の加速度の大きさが、トリガ信号を発生するに足る範囲(ピーク判定範囲)内の値であること。
c.前回、トリガ信号を発生してからの経過時間を示す経過時間データT1が閾値th5より大きいこと。この条件cは、チャタリングを防止するために設けた条件である。ここで、チャタリングとは、加速度データASがピークとなり、トリガ信号発生条件が満たされてトリガ信号が発生した後、短時間のうちに加速度データASの波形に再びピークが発生した場合に、このピークのタイミングにおいてトリガ信号が発生される現象である。移動中状態への遷移前の状態が停止中状態である場合には、この条件cの判断に用いる閾値th5は時間データTaとなっている。
このステップS32の判断結果が「NO」である場合には、ステップS34に進み、上述と同様な処理を繰り返す。これに対し、ステップS32の判断結果が「YES」である場合には、ステップS33に進む。このステップS33では、トリガ信号を発生して演奏制御部113に引き渡し、状態フラグFSに待機中状態に対応した“2”をセットし、経過時間データT1を「0」に初期化する。そして、ステップS33の処理を終えると、ステップS34に進む。
トリガ信号が発生して状態フラグFSが“2”になると、以後、サンプリング周期に同期してトリガ信号発生部112が起動されたとき、ステップS2から待機中状態における最初の処理であるステップS21へ進むこととなる。このステップS21では、加速度データASが閾値th3以下か否か、すなわち、操作子200が停止しているとみなせる停止判定領域内にあるか否かを判断する。この判断結果が「YES」の場合はステップS22に進み、停止時間データT2を「1」だけ増加させ、ステップS24に進む。これに対し、ステップS21の判断結果が「NO」の場合はステップS23に進み、停止時間データT2を「0」に初期化し、ステップS24に進む。
次にステップS24に進むと、停止時間データT2が閾値th6より大きいか否かを判断する。この判断結果が「NO」の場合はステップS26へ進む。一方、ステップS24の判断結果が「YES」の場合は、ステップS25へ進んで、状態フラグFSを“1”とし、停止時間データT2を「0」に初期化し、ステップS26に進む。
次にステップS26に進むと、ΔAS=AS−ASoldなる演算により、加速度データASの前回値との差分ΔASを算出し、この差分ΔASが閾値th4以上であるか否かを判断する。この判断結果が「NO」である場合は、待機中状態の処理を終えて、ステップS3に進む。一方、ステップS26の判断結果が「YES」の場合は、ステップS27に進んで、状態フラグFSを“3”とし、反動フラグFRを“0”とし、閾値th5に時間データTbをセットする。この時間データTbは、時間データTaよりも短い時間長を示すデータである。そして、待機中状態の処理を終えて、ステップS3に進む。
以上のように、待機中状態において、加速度データASが閾値th3以下である時間が閾値th6より大きくなると、状態フラグFSは、停止中状態に対応した“1”とされる。また、待機中状態において、加速度データASの前回値との差分ΔASが閾値th4以上になると、操作子200の動きが活発になったとみなされ、状態フラグFSが移動中状態に対応した“3”とされる。また、待機中状態において、状態フラグFSが移動中状態に対応した“3”とされる場合には、反動フラグFRが“0”とされ、閾値th5は、時間データTaよりも短い時間長を示す時間データTbとされる。
待機中状態から停止中状態に遷移した場合における停止中状態の処理内容を既に説明した内容と同じである。しかし、待機中状態から移動中状態に遷移した場合における移動中状態の処理内容は、上述した停止中状態から移動中状態に遷移した場合における移動中状態の処理内容と一部異なったものになる。
まず、待機中状態から移動中状態に遷移する場合には、反動フラグFRが“0”とされる。このため、待機中状態から遷移した移動中状態の処理では、移動時間データT0がどのような値であってもステップS31の判断結果が常に「YES」となり、ステップS32に進むこととなる。
また、待機中状態から移動中状態に遷移する場合には、閾値th5は、時間データTaよりも短い時間長を示す時間データTbとされる。そして、ステップS32では、この閾値th5=Tbを用いて、前回、トリガ信号を発生してからの経過時間を示す経過時間データT1が閾値th5より大きいという条件を満たすか否かが判断される。
以上が本実施形態の動作である。
以上が本実施形態の動作である。
次に具体例を挙げ、本実施形態の動作をさらに詳細に説明する。
図3は、本実施形態において加速度データASに現れるピークのうち反動成分によるピークをマスキングする動作を説明する図である。この図において、横軸は時間軸であり、縦軸は加速度データASであり、プロットは、トリガ信号発生部112において周期的に発生される加速度データASを示している。図示の例では、加速度データASが閾値th1以上になることにより、停止中状態から移動中状態に遷移しており、移動中状態において加速度データASのピークが2つ発生している。1つ目のピークは、加速度データASaの発生時に検出されている。このピークは、ユーザが例えば音を鳴らすタイミングとすることを意図して発生させたピークではなく、反動成分によるピークである。しかし、この時点では、移動中状態への遷移後の経過時間を示す移動時間データT0が閾値th2以下であるため、この反動成分によるピークのマスキングが行われ、トリガ信号は発生しない(ステップS31=「NO」)。2つ目のピークは、ユーザが意図して発生させたピークであり、加速度データASbの発生時に検出されている。この2つ目のピークの時点では、移動中状態への遷移後の経過時間を示す移動時間データT0が閾値th2を越えている。このため、トリガ信号発生条件における他の条件を満たすことによりトリガ信号が発生することとなる。
図3は、本実施形態において加速度データASに現れるピークのうち反動成分によるピークをマスキングする動作を説明する図である。この図において、横軸は時間軸であり、縦軸は加速度データASであり、プロットは、トリガ信号発生部112において周期的に発生される加速度データASを示している。図示の例では、加速度データASが閾値th1以上になることにより、停止中状態から移動中状態に遷移しており、移動中状態において加速度データASのピークが2つ発生している。1つ目のピークは、加速度データASaの発生時に検出されている。このピークは、ユーザが例えば音を鳴らすタイミングとすることを意図して発生させたピークではなく、反動成分によるピークである。しかし、この時点では、移動中状態への遷移後の経過時間を示す移動時間データT0が閾値th2以下であるため、この反動成分によるピークのマスキングが行われ、トリガ信号は発生しない(ステップS31=「NO」)。2つ目のピークは、ユーザが意図して発生させたピークであり、加速度データASbの発生時に検出されている。この2つ目のピークの時点では、移動中状態への遷移後の経過時間を示す移動時間データT0が閾値th2を越えている。このため、トリガ信号発生条件における他の条件を満たすことによりトリガ信号が発生することとなる。
本実施形態において、反動成分によるピークをマスキングする動作は、停止中状態から移動中状態に遷移した場合のみ行われる。待機中状態から移動中状態に遷移した場合には、反動成分による加速度データASのピークのマスキング動作は行われない。待機中状態から移動中状態への遷移は、ユーザが操作子200を短い時間間隔で繰り返し振っているような状況(連打の状況)において発生する。このような状況では、反動成分による加速度データASのピークは現れ難く、リズミカルに発生するピークに即応してトリガ信号を発生することが望まれるからである。
図4は、本実施形態におけるチャタリング防止の動作を説明する図である。この例では、加速度データAShの発生時にトリガ信号発生条件を満たすピークが検出され、トリガ信号が発生している。その後、加速度データASが閾値th3以下の期間が閾値th6を越え、待機中状態から停止中状態に遷移している。そして、加速度データASが閾値th1を越えて、停止中状態から移動中状態に遷移し、加速度データASiの発生時にピークが検出される。しかし、移動中状態への遷移前の状態が停止中状態であるため、長い時間長を示す時間データTaが閾値th5とされる。そして、この例では、最後のトリガ信号の発生時点からの経過時間が閾値th5=Ta以下であることから、加速度データASiの発生時にはトリガ信号が発生されない。その後、加速度データASjの発生時に再びピークが検出される。この時点では、最後のトリガ信号の発生時点(加速度データAShの発生時)からの経過時間が閾値th5=Taを越えていることから、トリガ信号が発生される。その後、加速度データASは、短い時間間隔でリズミカルに下降と上昇を繰り返すが、閾値th3より大きい状態が続く。そして、この間の加速度データASk、ASl、ASm、ASnの各発生時点においてピークが各々検出される。これらの各ピークの検出時点では、トリガ信号が発生されると、移動中状態から待機状態への遷移が行われる。しかし、加速度データASが閾値th3以下にならないことから、トリガ信号発生部112は停止中状態とならず、移動中状態から待機中状態へ遷移し、待機中状態から移動中状態へ遷移する、という動作を繰り返す。このため、各ピークの発生時点では、時間データTaより短い時間長を示す時間データTbが閾値th5とされ、最後のトリガ信号発生時点からの経過時間が閾値th5=Tbより大きいことを条件にトリガ信号が発生される。従って、本実施形態によれば、操作子200が短い時間間隔でリズミカルに振られる場合でも、そのリズミカルな振りに即応して、トリガ信号を発生させることができる。
以上説明したように、本実施形態によれば、トリガ信号発生部112は、加速度を取得したときには、停止中状態、待機中状態、移動中状態のうちいずれか1種類の状態での処理のみを実行する。従って、周期的に繰り返し取得される加速度を高速で処理することができ、加速度の大きさの変化に即応して、トリガ信号を発生することができる。また、本実施形態において、トリガ信号発生部112では、停止中状態から移動中状態に遷移したときに限り、移動中状態の状態への遷移後の経過時間が閾値th2を越えた旨の第2の条件がトリガ信号発生条件に含まれ、待機中状態から移動中状態に遷移した場合には、この第2の条件がトリガ信号発生条件に含まれない。従って操作子200の操作の時間間隔が長いような場合には、第2の条件に関する判定を行うことにより、操作子200の加速度波形に現れる反動成分によるピークをマスキングして、ユーザが意図したタイミングでのピークのみを捉えてトリガ信号を発生することができる。また、ユーザが短い時間間隔で操作子200をリズミカルに振っているような状況では、第2の条件に関する判定を行わず、加速度のピークの発生に即応してトリガ信号を発生させることができる。また、本実施形態において、トリガ信号発生部112は、チャタリング防止のための判断に用いる閾値th5を、停止中状態から移動中状態に遷移した場合には大きくしているが、待機中状態から移動中状態に遷移した場合は小さくしている。従って、ユーザが短い時間間隔で操作子200をリズミカルに振っているような状況では、それらの全ての振りに対して、取りこぼすことなく応答し、トリガ信号を発生することができる。このように本実施形態によれば、操作子200の操作の態様に合った適切な方法により加速度波形から演奏制御のタイミングを決定することができる。
以上、この発明の一実施形態を説明したが、この発明には、他にも各種の実施形態が考えられる。例えば次の通りである。
(1)例えば閾値th1〜th6は、最適な値に固定しても良いが、ユーザが操作表示部140の操作により調整できるようにしてもよい。あるいは演奏する音楽のジャンル等に対応付けて、各ジャンルでの演奏に適した閾値th1〜th6のセットをROM120に複数記憶させておき、ユーザが操作表示部140の操作により選択したセットを採用するようにしてもよい。
(2)上記実施形態では、操作子200の加速度の絶対値を加速度データASとして用いたが、演算量の制約が厳しい場合には、加速度の3軸方向成分の2乗の和を加速度データASとして用いてもよい。
(3)上記実施形態では、操作子200の加速度の大きさのみを利用したが、加速度の3軸方向の成分のバランスに基づいて、操作子200の運動方向を推定し、この推定結果に基づいて、例えば発音する音色の変更等の多彩な演奏制御を行うようにしてもよい。
(4)ユーザの操作に基づく操作子200の運きを検出するセンサとして、加速度センサ以外のセンサ、例えば操作子200の角速度、変位、速度、圧力、傾き等を検出するセンサを操作子200に設け、このセンサから操作子200の運きを示す動作検出信号を取得してトリガ信号を発生するように演奏制御装置100を構成してもよい。
200……操作子、201……加速度センサ、202……無線通信部、100……演奏制御装置、110……CPU、120……ROM、130……RAM、140……操作表示部、150……無線通信装置、160……I/F群、111……加速度取得部、112……トリガ信号発生部、113……演奏制御部。
Claims (4)
- 操作子の動きを示す動作検出信号を繰り返し取得する動作検出信号取得手段と、
前記動作検出信号取得手段が動作検出信号を取得する毎に、第1乃至第3のいずれかの状態となり、前記動作検出信号取得手段が取得した動作検出信号に基づいて、演奏制御用のトリガ信号を発生するための制御を行う手段であり、
(a)前記第1の状態では、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさが第1の閾値以上であるか否かを判断し、この判断結果が肯定的である場合に、次回の遷移先の状態を前記第3の状態とし、
(b)前記第2の状態では、前記動作検出信号取得手段が取得した動作検出信号に基づいて、前記操作子の動きに関する判定を行い、前記操作子が停止状態にあると判定した場合には次回の遷移先の状態を前記第1の状態とし、前記操作子が停止状態になく、かつ、前記操作子の動きの大きさが所定値以上であると判定した場合には次回の遷移先を第3の状態とし、
(c)前記第3の状態では、遷移前の状態が前記第2の状態である場合には、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさにピークが発生した旨の第1の条件を含むものをトリガ信号発生条件とし、遷移前の状態が前記第1の状態である場合には、前記第1の条件に加えて、前記第3の状態への遷移後の経過時間が第2の閾値を越えた旨の第2の条件を含むものをトリガ信号発生条件とし、前記トリガ信号発生条件が満たされたときに、トリガ信号を発生して、次回の遷移先の状態を前記第2の状態とするトリガ信号発生手段と
を具備することを特徴とする演奏制御装置。 - 前記トリガ信号発生手段は、前記第2の状態では、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさが所定時間以上に亙って第3の閾値以下であるか否かを判断し、この判断結果が肯定的である場合には次回の遷移先の状態を前記第1の状態とし、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさの前回値との差分が第4の閾値以上であるか否かを判断し、この判断結果が肯定的である場合には次回の遷移先の状態を前記第3の状態とすることを特徴とする請求項1に記載の演奏制御装置。
- 前記第3の状態において、トリガ信号発生条件は、最後にトリガ信号が発生してからの経過時間が第5の閾値を越えている旨の第3の条件を含み、前記トリガ信号発生手段は、前記第2の状態から前記第3の状態に遷移する場合には、前記第1の状態から前記第3の状態に遷移する場合に比べて、前記第5の閾値を低くすることを特徴とする請求項1に記載の演奏制御装置。
- コンピュータを、
操作子の動きを示す動作検出信号を繰り返し取得する動作検出信号取得手段と、
前記動作検出信号取得手段が動作検出信号を取得する毎に、第1乃至第3のいずれかの状態となり、前記動作検出信号取得手段が取得した動作検出信号に基づいて、演奏制御用のトリガ信号を発生するための制御を行う手段であり、
(a)前記第1の状態では、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさが第1の閾値以上であるか否かを判断し、この判断結果が肯定的である場合に、次回の遷移先の状態を前記第3の状態とし、
(b)前記第2の状態では、前記動作検出信号取得手段が取得した動作検出信号に基づいて、前記操作子の動きに関する判定を行い、前記操作子が停止状態にあると判定した場合には次回の遷移先の状態を前記第1の状態とし、前記操作子が停止状態になく、かつ、前記操作子の動きの大きさが所定値以上であると判定した場合には次回の遷移先を第3の状態とし、
(c)前記第3の状態では、遷移前の状態が前記第2の状態である場合には、前記動作検出信号取得手段が取得した動作検出信号が示す前記操作子の動きの大きさにピークが発生した旨の第1の条件を含むものをトリガ信号発生条件とし、遷移前の状態が前記第1の状態である場合には、前記第1の条件に加えて、前記第3の状態への遷移後の経過時間が第2の閾値を越えた旨の第2の条件を含むものをトリガ信号発生条件とし、前記トリガ信号発生条件が満たされたときに、トリガ信号を発生して、次回の遷移先の状態を前記第2の状態とするトリガ信号発生手段と
して機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008176523A JP2010015073A (ja) | 2008-07-07 | 2008-07-07 | 演奏制御装置およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008176523A JP2010015073A (ja) | 2008-07-07 | 2008-07-07 | 演奏制御装置およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010015073A true JP2010015073A (ja) | 2010-01-21 |
Family
ID=41701221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008176523A Withdrawn JP2010015073A (ja) | 2008-07-07 | 2008-07-07 | 演奏制御装置およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010015073A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011257508A (ja) * | 2010-06-08 | 2011-12-22 | Casio Comput Co Ltd | 演奏装置および電子楽器 |
JP2012002919A (ja) * | 2010-06-15 | 2012-01-05 | Casio Comput Co Ltd | 演奏装置および電子楽器 |
-
2008
- 2008-07-07 JP JP2008176523A patent/JP2010015073A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011257508A (ja) * | 2010-06-08 | 2011-12-22 | Casio Comput Co Ltd | 演奏装置および電子楽器 |
JP2012002919A (ja) * | 2010-06-15 | 2012-01-05 | Casio Comput Co Ltd | 演奏装置および電子楽器 |
US8710347B2 (en) | 2010-06-15 | 2014-04-29 | Casio Computer Co., Ltd. | Performance apparatus and electronic musical instrument |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6908386B2 (en) | Game device changing sound and an image in accordance with a tilt operation | |
JP4679431B2 (ja) | 音出力制御プログラムおよび音出力制御装置 | |
JP5182655B2 (ja) | 電子打楽器およびプログラム | |
JP2000181676A (ja) | 画像処理装置 | |
JP2001084411A (ja) | スクリーン上のキャラクター制御システム | |
CN105405337B (zh) | 一种辅助音乐弹奏的方法和系统 | |
US8525006B2 (en) | Input device and recording medium with program recorded therein | |
JP2010015073A (ja) | 演奏制御装置およびプログラム | |
CN106648390B (zh) | 一种控制指令生成方法、装置及移动终端 | |
JP2010175754A (ja) | 姿勢評価装置、姿勢評価システム、プログラム | |
JP2010015068A (ja) | 演奏制御装置およびプログラム | |
CN105931627B (zh) | 基于人工智能的动作识别的乐器模拟方法和装置 | |
JP2001104635A (ja) | ボールパドルゲーム装置 | |
JP4432029B2 (ja) | 遊技機 | |
JP2007271739A (ja) | 合奏パラメータ表示装置 | |
JP2008117256A (ja) | 操作データ入力システム、操作データ入力方法及びプログラム | |
CN108697528A (zh) | 一种气囊控制方法及装置 | |
JP4464080B2 (ja) | 自動演奏装置およびプログラム | |
JP2006267845A (ja) | 演奏制御システムおよび演奏制御システム用プログラム | |
JP2010015071A (ja) | 演奏システム | |
JP3303608B2 (ja) | 自動演奏装置 | |
JP2010271440A (ja) | 演奏制御装置およびプログラム | |
JP2014048504A (ja) | セッション装置、方法及びプログラム | |
JP2009037118A (ja) | 演奏開始装置および演奏開始プログラム | |
JP3627319B2 (ja) | 演奏制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20111004 |