(57)【特許請求の範囲】
【請求項１】
拍子に応じた揺動動作を検知する検知手段と、
この検知手段の検知出力に基づいて前記揺動動作の特徴点を検出する検出手段と、
前記検知手段の検知出力及び前記検出手段の検出出力に基づいて前記揺動動作の特徴点が何拍目の特徴点であるかをニューラルネットワークを用いて動作種類として判別し、該動作種類を表わすテンポ制御情報を送出する判別手段と、
この判別手段からのテンポ制御情報に基づいて自動演奏のテンポを制御する演奏制御手段と
を備えた演奏制御装置。
【請求項２】
前記検出手段がニューラルネットワークを用いて前記揺動動作の特徴点を検出する請求項１記載の演奏制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、指揮棒等の揺動動作に応答する演奏制御装置に関し、特に動作特徴点の検出や動作種類の判別にニューラルネットワークを用いることにより制御の信頼性を高め、安定した音楽演奏を可能にしたものである。
【０００２】
【従来の技術】
従来、人間の動作に伴うセンサ出力波形からピーク等の特徴点を検出したり、振り下ろし等の動作種類を判別したりするために、フィルタ処理（平均化処理）や大小比較処理等の信号処理を用いることが提案されている。
【０００３】
【発明が解決しようとする課題】
一般に、人間の動作は極めて曖昧且つ不安定である。このため、上記したような単純な信号処理だけでは、検出や判別の精度が低く、検出ミスや判別誤りが頻繁に発生した。従って、検出結果や判別結果に応じて例えば自動演奏のテンポを制御しようとしても、（イ）ユーザーがシステムに慣れる（機械にふさわしい動作をする）のに時間がかかること、（ロ）動作意図と異なる反応（誤動作）が生じるため、制御の信頼性が低く、安定した音楽演奏が困難であることなどの不都合を免れなかった。
【０００４】
この発明の目的は、揺動動作に応答して信頼性の高い演奏制御をなしうる新規な演奏制御装置を提供することにある。
【０００５】
【課題を解決するための手段】
この発明に係る演奏制御装置は、
拍子に応じた揺動動作を検知する検知手段と、
この検知手段の検知出力に基づいて前記揺動動作の特徴点を検出する検出手段と、
前記検知手段の検知出力及び前記検出手段の検出出力に基づいて前記揺動動作の特徴点が何拍目の特徴点であるかをニューラルネットワークを用いて動作種類として判別し、該動作種類を表わすテンポ制御情報を送出する判別手段と、
この判別手段からのテンポ制御情報に基づいて自動演奏のテンポを制御する演奏制御手段と
を備えたものである。
【０００６】
このような構成によれば、揺動動作の特徴点が何拍目の特徴点であるかをニューラルネットワークを用いて動作種類として判別し、判別に係る動作種類を表わすテンポ制御情報に基づいて自動演奏のテンポを制御するようにしたので、判別精度が向上し、信頼性の高いテンポ制御が可能になる。
【０００７】
この発明に係る演奏制御装置にあっては、前記検出手段がニューラルネットワークを用いて前記揺動動作の特徴点を検出するようにしてもよい。
【０００８】
このような構成によれば、ニューラルネットワークを用いて揺動動作の速度ピーク（又は谷）等の特徴点を検出するので、検出精度が向上し、一層信頼性の高いテンポ制御が可能になる。
【０００９】
【発明の実施の形態】
図１は、この発明に係る揺動分析装置１０を示すもので、この装置は、図２に示す電子楽器５０における自動演奏のテンポ及び楽音特性（音量、音色等）を制御するために使用されるものである。
【００１０】
揺動分析制御装置１０において、バス１２には、操作検出回路１４、Ａ／Ｄ（アナログ／ディジタル）変換回路１６，１８、ＣＰＵ（中央処理装置）２０、ＲＯＭ（リード・オンリィ・メモリ）２２、ＲＡＭ（ランダム・アクセス・メモリ）２４、タイマ２６、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）  インターフェース２８等が接続されている。
【００１１】
操作検出回路１４は、演奏スタートスイッチ等を含むスイッチ群３０中の各スイッチ毎に操作情報を検出するものである。演奏スタートスイッチは、電子楽器５０に設けてもよいが、指揮棒３２の把持部近傍に設けると操作しやすい。
【００１２】
指揮棒３２の先端近傍には、一例として圧電振動ジャイロセンサからなるｘ方向（水平方向）及びｙ方向（垂直方向）の角速度センサ３４及び３６が設けられており、センサ３４及び３６の出力Ｘ及びＹは、それぞれノイズ除去回路３８及び４０を介してＡ／Ｄ変換回路１６及び１８に供給される。Ａ／Ｄ変換回路１６は、ノイズ除去回路３８でノイズ除去された出力ＸをＡ／Ｄ変換した形のディジタル出力ＤＸ  を送出し、Ａ／Ｄ変換回路１８は、ノイズ除去回路４０でノイズ除去された出力ＹをＡ／Ｄ変換した形のディジタル出力ＤＹ  を送出する。
【００１３】
ＣＰＵ２０は、ＲＯＭ２２にストアされたプログラムに従ってＡ／Ｄ変換回路１６，１８の出力ＤＸ  ，ＤＹ  を分析してテンポ制御情報ＴＣ及び楽音制御情報ＳＣを発生するための各種処理を実行するもので、これらの処理については図３〜８を参照して後述する。ＲＡＭ２４は、ＣＰＵ２０による各種処理に際してレジスタ等として使用される記憶領域を含んでいる。
【００１４】
タイマ２６は、ＣＰＵ２０に割込命令信号を供給するもので、割込命令信号の発生周期は、一例として１０［ｍｓ］である。ＣＰＵ２０は、タイマ２６から割込命令信号が発生されるたびに図７のセンサ出力処理を実行する。
【００１５】
ＭＩＤＩイーターフェース２８は、図２のＭＩＤＩイーターフェース７０とＭＩＤＩケーブルで接続されたもので、テンポ制御情報ＴＣ、楽音制御情報ＳＣ等をＭＩＤＩイーターフェース７０に供給する。
【００１６】
図２の電子楽器５０において、バス５２には、押鍵検出回路５４、操作検出回路５６、表示回路５８、音源回路６０、ＣＰＵ６２、ＲＯＭ６４、ＲＡＭ６６、タイマ６８、ＭＩＤＩイーターフェース７０、フロッピィディスク装置７２が接続されている。
【００１７】
押鍵検出回路５４は、鍵盤７４の多数の鍵にそれぞれ設けられた多数のキースイッチを走査するなどして各鍵毎に鍵操作情報を検出するものである。
【００１８】
操作検出回路５６は、演奏モード選択スイッチ等を含むスイッチ群７６中の各スイッチ毎に操作情報を検出するものである。演奏モード選択スイッチによりマニアル演奏モード及び自動演奏モードのうち一方又は双方を選択可能である。
【００１９】
表示回路５８は、テンポ、音量等の設定値を表示する表示器を含んでいる。
【００２０】
音源回路６０は、一例として第１〜第１５の音源チャンネルを有するもので、各音源チャンネル毎にイベントデータに応じて楽音信号を発生可能である。例えば、キーオンに係るチャンネルナンバ１のイベントデータがチャンネルナンバ１の音源チャンネルに割当てられると、この音源チャンネルからは、供給されたイベントデータの指示する音高及び音量を有する楽音信号の発生が開始される。そして、キーオフに係るチャンネルナンバ１のイベントデータがチャンネルナンバ１の音源チャンネルに割当てられると、この音源チャンネルでは、供給されたイベントデータの指示する音高を有する楽音信号の減衰が開始される。他の音源チャンネルにおいても、上記したと同様にして楽音信号発生制御動作が行なわれる。
【００２１】
音源回路６０から発生される１又は複数の楽音信号は、サウンドシステム７８に供給され、音響に変換される。
【００２２】
ＣＰＵ６２は、ＲＯＭ６４にストアされたプログラムに従って鍵盤７４の操作に基づくマニアル演奏音信号の発生及び／又はＲＡＭ６６の演奏データに基づく自動演奏音信号の発生を制御するもので、自動演奏音信号の発生のための各種処理については図９〜１５を参照して後述する。ＲＡＭ６６には、フロッピィディスク装置７２から所望の楽曲の演奏データを選択して書込めるようになっている。別の選択方法としては、演奏データをＲＯＭ６４から選択して読出すようにしてもよい。ＲＡＭ６６は、ＣＰＵ６２による各種処理に際してレジスタ、カウンタ等として使用される記憶領域も含んでいる。
【００２３】
タイマ６８は、ＣＰＵ６２に割込命令信号を供給するもので、割込命令信号の発生周期は、一例として１［ｍｓ］である。ＣＰＵ６２は、タイマ６８から割込命令信号が発生されるたびに図１１の再生処理を実行する。この結果として、ＲＡＭ６６の演奏データに基づく自動演奏が遂行される。
【００２４】
ＭＩＤＩイーターフェース７０は、図１の揺動分析装置１０からテンポ制御情報ＴＣ及び楽音制御情報ＳＣを受信する。ＣＰＵ６２は、テンポ制御情報ＴＣに応じて自動演奏のテンポを制御すると共に、楽音制御情報ＳＣに応じて自動演奏音の音量、音色等の楽音特性を制御する。
【００２５】
図３は、指揮棒３２の揺動動作を３拍子の場合（Ａ）と２拍子又は４拍子の場合（Ｂ）とに分けて示したものである。
【００２６】
（Ａ）の３拍子の場合には、位置Ｐ１  ，Ｐ２  ，Ｐ３  の順に３角形を描くような揺動動作が行なわれる。センサ３４の出力Ｘ及びセンサ３６の出力Ｙに対応してＡ／Ｄ変換回路１６及び１８から得られる出力値をそれぞれＤＸ  及びＤＹ  とすると、絶対角速度ＤＺ  は、次の数１の式で求められる。
【００２７】
【数１】
0003627321.tif 000002
図４は、絶対角速度ＤＺ  の時間的変化の一例を示すもので、変化波形における３つの谷は、図３の位置Ｐ１  ，Ｐ２  ，Ｐ３  にそれぞれ対応する。また、位置Ｐ１  〜Ｐ２  間の動作１と位置Ｐ２  〜Ｐ３  の動作２と位置Ｐ３  〜Ｐ１  の動作３とは、変化波形におけるピークＱ１  ，Ｑ２  ，Ｑ３  （１，２，３拍目のピーク）にそれぞれ対応する。
【００２８】
この発明の実施形態にあっては、ニューラルネットワークを用いてピークＱ１  〜Ｑ３  をそれぞれ検出すると共に動作１〜３（ピーク種類）をそれぞれ判別し、それぞれの判別結果に応じて動作１ならばＣ３  のキーコードを有するテンポ制御情報ＴＣを発生し、動作２ならばＣ＃３  のキーコードを有するテンポ制御情報ＴＣを発生し、動作３ならばＤ３  のキーコードを有するテンポ制御情報ＴＣを発生する。なお、この実施形態ではテンポ制御情報として所定のキーコードを有するキーデータを用いたが、テンポ制御専用のデータを用いてもよい。
【００２９】
図３（Ｂ）の２拍子又は４拍子の場合には、位置Ｐ１１から位置Ｐ１２への振り下ろし動作１と位置Ｐ１２から位置Ｐ１１への振り上げ動作３との２動作となり、３拍子の場合と同様の処理により動作１ならばＣ３  のキーコードを有するテンポ制御情報ＴＣを発生し、動作３ならばＤ３  のキーコードを有するテンポ制御情報ＴＣを発生する。
【００３０】
図５は、ｘｙ平面内の角度θを示すものである。角度θは、Ａ／Ｄ変換回路１６，１８の出力値ＤＸ  ，ＤＹ  をｘｙ平面にプロットしたときの点をＳとすると、原点０と点Ｓを通る直線がｘ軸となす角度として定義される。角度θの情報は、ニューラルネットワークを用いて動作１〜３（ピーク種類）を判別する際に使用される。
【００３１】
図６は、この発明の実施に用いられるニューラルネットワークＮＭの入出力例を示すものである。ニューラルネットワークＮＭは、階層型のものであり、入力層Ｉ、中間層Ｍ及び出力層Ｏを備えている。結線は、一部を省略してある。
【００３２】
出力層Ｏからピークである確率の情報を得るには、１つ前のＤＸ  、１つ前のＤＹ  、１つ前のＤＺ  、前回のピークと今回のＤＺ  との差、ダイナミックなしきい値Ｄａ  と今回のＤＺ  の差等を入力層Ｉに入力する。ここで、ダイナミックなしきい値Ｄａ  とは、次々に求められたＤＺ  値を所定時間内で平均した値をいう。
【００３３】
出力層Ｏから谷である確率の情報を得るには、１つ前のＤＸ  、１つ前のＤＹ  、１つ前のＤＺ  等を入力層Ｉに入力する。
【００３４】
出力層Ｏから動作１である確率の情報を得るには、１つ前のＤＸ  、１つ前のＤＹ  、１つ前のＤＺ  等を入力層Ｉに入力する。同様にして適当な情報を入力層Ｉに入力することで、動作２である確率の情報や動作３である確率の情報を出力層Ｏから得ることができる。
【００３５】
前述した楽音制御情報ＳＣとしては、ダイナミクス（音の強さ）制御値、波形アタック（音の立上り）制御値、ＤＣＦ（ディジタル・コントロールド・フィルタ）カットオフ周波数制御値、波形デイケイ制御値等が発生される。
【００３６】
出力層Ｏからダイナミクス制御値を得るには、ダイナミックなしきい値Ｄａ  と今回のＤＺ  の差、前回のピークのピーク種類、今回の角度（図５のθ）、前回のピーク発生時と今回との角度差等を入力層Ｉに入力する。同様にして適当な情報を入力層Ｉに入力することで、波形アタック制御値、ＤＣＦカットオフ周波数制御値、波形デイケイ制御値等を出力層Ｏから得ることができる。
【００３７】
図６に示した構成は、単なる例示であり、他のパラメータを用いてもよい。例えば、現在のテンポ値や曲の拍子の情報を入力してもよいし、音源回路６０内のＥＧ（エンベロープ・ジェネレータ）を制御するための制御値を得るようにしてもよい。また、図６に示したパラメータは、すべて使う必要はなく、適宜省略してもよい。
【００３８】
ニューラルネットワークＮＭは、ユーザーが学習させて自分の好みの制御動作を行なわせるようにしてもよい。
【００３９】
図７は、センサ出力処理を示すもので、この処理は、タイマ２６から割込命令信号が発生されるたびに（すなわち１０［ｍｓ］の周期で）行なわれる。
【００４０】
ステップ８０では、Ａ／Ｄ変換回路１６，１８から出力値ＤＸ  ，ＤＹ  を取込む。そして、ステップ８２に移り、前掲の数１の式に従って絶対角速度ＤＺ  を求める。
【００４１】
次に、ステップ８４では、その他の必要な値（例えば図６に示した微分値、積分値、角度等）を求める。そして、ステップ８６に移る。
【００４２】
次に、ステップ８６では、ピーク検出処理を行なう。ピーク検出処理では、図４のＱ１  〜Ｑ３  等のピークを検出すると共に検出したピークが何拍目のピークか判別するが、詳しくは図８を参照して説明する。ステップ８６の後は、図示しないメインルーチンにリターンする。
【００４３】
図８は、ピーク検出処理を示すもので、ステップ９０では、図６に示したようなニューラルネットワークの入力層に各種の値を入力する。そして、ステップ９２に移り、ニューラルネットワーク演算を実行する。ニューラルネットワークは、ソフトウェアとしてＲＯＭ２２に格納されており、ＣＰＵ２０は、ニューラルネットワークのプログラムに従って演算を行なう。
【００４４】
次に、ステップ９４では、ニューラルネットワークの出力層から図６で前述したような各種の確率及び制御値を得る。そして、ステップ９６に移る。
【００４５】
ステップ９６では、得られたピークである確率の情報に基づいてピークである確率が高いか判定する。この判定では、確率が所定値（例えば０．５）以上であれば高いと判定する。判定結果が肯定的（Ｙ）であればステップ９８に移る。
【００４６】
ステップ９８では、動作１〜３のうち最も高い確率のものをピーク種類として決定する。例えば、図６に示した動作１〜３である確率のうち動作１である確率が最も高いときは、ピーク種類は動作１であると決定する。そして、ステップ１００に移る。
【００４７】
ステップ１００では、ステップ９８で決定されたピーク種類に応じたキーコードのテンポ制御情報ＴＣを出力する。例えば、ステップ９８でピーク種類として動作１が決定されたときは、動作１に対応するＣ３  のキーコードを有するテンポ制御情報ＴＣが出力される。出力されたテンポ制御情報ＴＣは、インターフェース２８，７０を介してＲＡＭ６６内の所定のレジスタにセットされる。
【００４８】
ステップ１００の処理が終ったとき又はステップ９６の判定結果が否定的（Ｎ）であった（ピークである確率が高くなかった）ときは、ステップ１０２に移り、楽音制御情報ＳＣとしての各種制御値を出力する。出力された制御値のうち、ダイナミクス制御値は、インターフェース２８，７０を介してＲＡＭ６６内の音量制御レジスタにセットされ、他の波形アタック制御値、ＤＣＦカットオフ周波数制御値、波形デイケイ制御値等は、音源回路６０内の対応するレジスタにセットされる。
【００４９】
音量制御レジスタにセットされたダイナミクス制御値は、演奏音の音量を制御するのに用いられる。また、音源回路６０内のレジスタにセットされた制御値のうち、波形アタック制御値は、音の立上りの速度及びレベルを制御するのに用いられ、ＤＣＦカットオフ周波数制御値は、ＤＣＦのカットオフ周波数を制御するのに用いられ、波形デイケイ制御値は、音の減衰の速度を制御するのに用いられ、この結果として微妙な音色制御が可能となる。
【００５０】
図９は、ＲＡＭ６６における演奏データのフォーマットを示すものである。
【００５１】
所望の楽曲の演奏データは、楽曲進行に従ってデルタタイムデータΔＴ、イベントデータＥＶ、デルタタイムデータΔＴ、イベントデータＥＶ…のようにデータΔＴ及びＥＶを交互に配置したものである。いずれのデルタタイムデータΔＴも、［ｍｓ］の単位で時間を表わすもので、最初のデルタタイムデータは、最初のイベントまでの時間を表わし、イベント間のデルタタイムデータは、イベント間の相対時間を表わす。例えば和音発音のように１タイミングに複数イベントがあるときは、該イベント間のデルタタイムデータは０を表わす。
【００５２】
各イベントデータＥＶは、図１０に示すように３バイトのデータからなる。第１バイトのうち上位４ビットがイベント種類データＥＳであり、下位４ビットがチャンネルナンバデータＣＨＮである。イベント種類データＥＳは、キーオン又はキーオフのようなイベント種類を表わす。チャンネルナンバデータＣＨＮは、０〜１５のいずれかのチャンネルナンバを表わす。チャンネルナンバ１〜１５は、音源回路６０の第１〜第１５の音源チャンネルに対応しているが、チャンネルナンバ０は、テンポ制御マークとして使用される。
【００５３】
各イベントデータＥＶにおいて、第２バイトは、キーコードデータＫＣであり、音高を表わす。また、第３バイトは、ベロシティデータＶＬであり、押鍵速度に対応する音量を表わす。
【００５４】
イベントデータＥＶとしては、チャンネルナンバ０のテンポ制御用のイベントデータと、チャンネルナンバ１〜１５の発音／非発音制御用のイベントデータ（キーオン／オフに係るイベントデータ）との２種類のものが存在する。発音／非発音制御用のイベントデータは、楽曲を構成する各音符毎に楽音信号の発生及び減衰開始を制御するもので、自動演奏の分野で広く使用されている。一方、テンポ制御用のイベントデータは、この発明を実施するために使用されるもので、以下では、簡単のため「テンポ制御データ」と称する。
【００５５】
テンポ制御データとしては、３拍子の場合、Ｃ３  ，Ｃ＃３  ，Ｄ３  の３種類のキーコードを有するものが使用される。そして、Ｃ３  ，Ｃ＃３  ，Ｄ３  のキーコードを有するテンポ制御データは、基準となるテンポにおいて第１拍、第２拍、第３拍のタイミングに対応する位置に配置され、このような順序で読出される。また、４拍子の楽曲の場合、Ｃ３  ，Ｄ３  ，Ｃ３  ，Ｄ３  のテンポ制御データがそれぞれ第１拍，第２拍，第３拍，第４拍のタイミングに対応する位置に配置され、このような順序で読出される。テンポ制御は、一例として、Ｃ３  のキーコードを有するテンポ制御データの読出タイミングに対して、Ｃ３  のキーコードを有するテンポ制御情報ＴＣの受信タイミングが早ければテンポを進めるように、また遅ければテンポを遅らせるように行なわれる。
【００５６】
図１１は、再生処理を示すもので、この処理は、タイマ６８から割込命令信号が発生されるたびに（すなわち１［ｍｓ］の周期で）行なわれる。以下の説明にて言及されるフラグ、レジスタ等は、ＲＡＭ６６内に存在するものである。
【００５７】
ステップ１３０では、ランフラグＲＵＮが１か判定する。フラグＲＵＮは、前述の演奏スタートスイッチをオンするたびに１であれば０になり、０であれば１になるもので、ＲＵＮ＝１は、自動演奏中であることを表わす。ステップ１３０の判定結果が肯定的（Ｙ）であればステップ１３２に移る。
【００５８】
ステップ１３２では、読出停止フラグＰＡＵＳＥが０か判定する。フラグＰＡＵＳＥは、ＲＡＭ６６からテンポ制御データを読出したにもかかわらず、その読出タイミングまでに対応するテンポ制御情報ＴＣが受信されていないときに１となるもので、ステップ１３２の判定結果が肯定的（Ｙ）であるとき（ＴＣを受信済みのとき）は、ステップ１３４に移る。
【００５９】
ステップ１３４では、デルタタイムレジスタＴＩＭＥが０か判定する。レジスタＴＩＭＥには、ＲＡＭ６６から読出したデルタタイムデータΔＴをセットし（ステップ１４２）、データΔＴの示す値を割込みのたびに１ずつ減算している（ステップ１４８）ので、ＴＩＭＥ＝０は、次のイベントデータを読出すべきタイミングになったことを意味する。ステップ１３４の判定結果が肯定的（Ｙ）であればステップ１３６に移る。
【００６０】
ステップ１３６では、ＲＡＭ６６のアドレスを１つ進めてデータを読出す。そして、ステップ１３８に移り、読出したデータがデルタタイムデータΔＴか判定する。ステップ１３４の後初めてステップ１３８にきたときは、ステップ１３８の判定結果が否定的（Ｎ）となる（ΔＴの次は必ずイベントデータＥＶの読出しとなる）ので、ステップ１４０に移る。ステップ１４０では、図１２について後述するようにイベント対応処理を行なう。この後、ステップ１３６に戻る。
【００６１】
ステップ１３６では、再びアドレスを進めてデータを読出す。そして、ステップ１３８で読出データがデルタタイムデータΔＴか判定すると、判定結果が肯定的（Ｙ）となり、ステップ１４２に移る。
【００６２】
ステップ１４２では、読出されたデルタタイムデータΔＴをレジスタＴＩＭＥにセットする。そして、ステップ１４４でＴＩＭＥ＝０か判定する。通常は、読出直後にデルタタイムデータΔＴがゼロになることはないが、前述したように和音発音等の場合にはΔＴ＝０のこともある。このような場合には、ステップ１４４の判定結果が肯定的（Ｙ）となり、ステップ１３６に戻る。
【００６３】
ステップ１３６では、次のイベントデータを読出し、ステップ１３８を介してステップ１４０でイベント対応処理を行なう。そして、ステップ１３６に戻って次のデルタタイムデータΔＴを読出してステップ１３８，１４２を介して再びステップ１４４にくる。ステップ１４４の判定結果が肯定的（Ｙ）であれば、ステップ１３６に戻る。ステップ１３６では、次のイベントデータを読出し、ステップ１３８を介してステップ１４０でイベントデータ対応処理を行なう。このようにして、和音を構成する第１〜第３音を実質的に同時に発音させることができる。ステップ１４０の後は、上記したと同様にステップ１３６，１３８，１４２，１４４の処理を行なう。
【００６４】
ステップ１４４の判定結果が否定的（Ｎ）であったときは、ステップ１４６に移る。ステップ１４６では、レジスタＴＩＭＥの値にテンポ係数レジスタＴＭＫの値（テンポ係数ＴＭＫ）を乗じたものをＴＩＭＥにセットする。
【００６５】
テンポ係数ＴＭＫは、基準値が１であり、指揮棒３２の揺動速度が速い又は遅いに応じてそれぞれ１より小さく又は大きくなるように後述のステップ１５４の処理で変更される。従って、ＴＩＭＥの値は、テンポ係数ＴＭＫの乗算により修正され、この結果として自動演奏のテンポが指揮棒３２の揺動速度に追従すべく制御される。
【００６６】
ステップ１４６の処理が終ったとき又はステップ１３４の判定結果が否定的（Ｎ）であった（読出すべきタイミングに達していない）ときは、ステップ１４８に移る。ステップ１４８では、ＴＩＭＥの値を１減らす。そして、ステップ１５０に移り、読出間隔レジスタＲＢの値を１増やす。レジスタＲＢは、図１４に示すようにあるテンポ制御データＴＥＶ１  の読出タイミングから次のテンポ制御データＴＥＶ２  の読出タイミングまでの時間間隔に対応する数値を得るためのものである。
【００６７】
ステップ１５０の処理が終ったとき又はステップ１３２の判定結果が否定的（Ｎ）であった（ＴＣの受信待ちである）ときは、ステップ１５２に移る。ステップ１５２では、受信間隔レジスタＲＡの値を１増やす。レジスタＲＡは、図１４に示すようにあるテンポ制御情報ＴＣ１  の受信タイミングから次のテンポ制御情報ＴＣ２  の受信タイミングまでの時間間隔に対応する数値を得るためのものである。ステップ１５２の後は、ステップ１５４に移り、図１３について後述するようにテンポ制御処理を実行する。
【００６８】
ステップ１５４の処理が終ったとき又はステップ１３０の判定結果が否定的（Ｎ）であった（自動演奏中でない）ときは、図示しないメインルーチンにリターンする。
【００６９】
図１２は、イベント対応処理を示すもので、ステップ１６０では、読出データがテンポ制御データＴＥＶか判定する。この判定結果が肯定的（Ｙ）であればステップ１６２に移る。
【００７０】
ステップ１６２では、受信フラグＴＣＲＦが１か（テンポ制御情報ＴＣを受信済みか）判定する。この判定結果が肯定的（Ｙ）であればステップ１６４に移り、ＴＣＲＦに０をセットする。これは、テンポ制御データＴＥＶを読出したときに対応するテンポ制御情報ＴＣが受信済みであることを意味する。
【００７１】
ステップ１６２の判定結果が否定的（Ｎ）であったときは、ステップ１６６に移り、テンポ制御データＴＥＶ中のキーコードデータＫＣをレジスタＫＥＹにセットする。そして、ステップ１６８に移り、レジスタＰＡＵＳＥに１をセットする。これは、テンポ制御データＴＥＶに対応するテンポ制御情報ＴＣを受信するまでＲＡＭ６６からの演奏データ読出しを停止するためである。すなわち、図１１では、ステップ１３２でＰＡＵＳＥ＝１であればステップ１３６の読出処理を行なわない。そして、テンポ制御情報ＴＣが受信されると、ステップ１５４の処理（ステップ１９６）でＰＡＵＳＥ＝０となり、この後は、ＲＡＭ６６からの演奏データ読出しが行なわれる。
【００７２】
ステップ１６０の判定結果が否定的（Ｎ）であったときは、ステップ１７０に移り、発音／非発音制御用のイベントデータＰＥＶのうち発音用のものだけベロシティデータＶＬの値をＲＡＭ６６内の音量制御レジスタにあるダイナミクス制御値に応じて修正する。例えば、指揮棒の振りが強いときは、ダイナミクス制御値に応じて音量を高めるべくデータＶＬの値を修正する。そして、ステップ１７２に移る。
【００７３】
ステップ１７２では、発音／非発音制御用のイベントデータＰＥＶを音源回路６０に送出する。このとき送出されるデータが発音制御用のイベントデータ（キーオンに係るイベントデータ）であればそれに対応する楽音信号の発生が開始され、非発音制御用のイベントデータ（キーオフに係るイベントデータ）であればそれに対応する楽音信号の減衰が開始される。
【００７４】
ステップ１６４，１６８又は１７２の処理が終ったときは、図１１のルーチンにリターンする。
【００７５】
図１３は、テンポ制御処理を示すもので、ステップ１８０では、テンポ制御情報ＴＣの受信ありか判定する。この判定結果が否定的（Ｎ）であれば図１１のルーチンにリターンする。
【００７６】
ステップ１８０の判定結果が肯定的（Ｙ）であったときは、ステップ１８２でＰＡＵＳＥ＝１か（読出停止中か）判定する。この判定結果が肯定的（Ｙ）である場合は、テンポ制御データＴＥＶの読出しよりそれに対応するテンポ制御情報ＴＣの受信が遅れた（揺動速度が遅い）場合であり、その一例を図１４に示す。すなわち、テンポ制御データＴＥＶ２  が読出された時点でＴＥＶ２  に対応するテンポ制御情報ＴＣ２’が受信されておらず（ＰＡＵＳＥ＝１）、この後でＴＣ２’が受信された場合である。
【００７７】
一方、ステップ１８２の判定結果が否定的（Ｎ）である場合は、テンポ制御データＴＥＶの読出しよりそれに対応するテンポ制御情報ＴＣの受信が早かった（揺動速度が速い）場合であり、その一例を図１４に示す。すなわち、テンポ制御データＴＥＶ２  が読出された時点でＴＥＶ２  に対応するテンポ制御情報ＴＣ２  がすでに受信されている（ＰＡＵＳＥ＝０）場合である。
【００７８】
ステップ１８２の判定結果が肯定的（Ｙ）であったときは、ステップ１８４に移り、受信したテンポ制御情報ＴＣのキーコードＫＣとレジスタＫＥＹのキーコードＫＣとが一致するか判定する。この判定結果が否定的（Ｎ）であれば図１１のルーチンにリターンし、肯定的（Ｙ）であればステップ１８６に移る。換言すれば、テンポ制御情報ＴＣを受信してそのキーコードＫＣが読出しに係るテンポ制御データＴＣＶのキーコードＫＣと一致することを条件としてステップ１８６〜１９６の処理を行なう。
【００７９】
ステップ１８６では、レジスタＲＡ，ＲＢの値の比ＲＡ／ＲＢをレジスタＲＡＴＥにセットする。そして、ステップ１８８に移り、レジスタＴＭＫの値にＲＡＴＥの値を乗じたものをＴＭＫにセットする。この結果、テンポ係数ＴＭＫがＲＡＴＥの値に応じて修正されたことになる。一例として、図１４のＴＥＶ２  ，ＴＣ２’の例では、比ＲＡ／ＲＢの値は、１より大きくなり、テンポ係数ＴＭＫは、１より大きくなる。
【００８０】
次に、ステップ１９０では、テンポ係数ＴＭＫの値のリミット処理を行なう。これは、ＴＭＫ値が大きすぎないように所定値（例えば２．０）以下に制限する処理である。
【００８１】
この後、ステップ１９２，１９４，１９６では、それぞれレジスタＲＢ，ＲＡ，フラグＰＡＵＳＥに０をセットする。そして、図１１のルーチンにリターンする。
【００８２】
次回の割込みにより図１１のルーチンに入り、ステップ１４６でレジスタＴＩＭＥの値にテンポ係数ＴＭＫを乗ずると、ＴＩＭＥの値は以前より大きくなり、自動演奏のテンポは揺動速度に追従して遅くなる。
【００８３】
一方、ステップ１８２の判定結果が否定的（Ｎ）であったときは、ステップ１９８に移り、次のテンポ制御データＴＥＶをサーチする。そして、ステップ２００に移る。
【００８４】
ステップ２００では、受信したテンポ制御情報ＴＣのキーコードＫＣとサーチしたテンポ制御データＴＥＶのキーコードＫＣとが一致するか判定する。これは、前述のステップ１８４に対応する処理である。この判定結果が否定的（Ｎ）であれば図１１のルーチンにリターンし、肯定的（Ｙ）であればステップ２０２に移る。
【００８５】
ステップ２０２では、前のテンポ制御データの読出タイミングからサーチしたテンポ制御データＴＥＶの読出タイミングまで時間間隔をレジスタＲＢにセットする。例えば、図１４に示すように発音／非発音制御用のイベントデータＰＥＶを読出した後テンポ制御情報ＴＣ２  を受信してからテンポ制御データＴＥＶ２  をサーチした場合、レジスタＲＢには、テンポ制御データＴＥＶ１  の読出タイミングからＴＣ２  の受信タイミングまでの時間間隔に対応する数値がセットされているだけで、ＴＣ２  の受信タイミングからＴＥＶ２  を（サーチではなく）演奏進行に応じて読出すべきタイミングまでの時間間隔に対応する数値が含まれていない。この時間間隔に対応する数値は、ＴＥＶ２  を読出すべきタイミングで０になるレジスタＴＩＭＥにおいてＴＣ２  受信時に残されている数値ＲＴに等しい。そこで、レジスタＲＢの値にＴＩＭＥの値ＲＴを加えたものをＲＢにセットする。
【００８６】
また、図１５に示すように発音／非発音制御用のイベントデータＰＥＶを読出した後テンポ制御情報ＴＣ２  を受信してからサーチ動作により発音／非発音制御用のイベントデータＰＥＶ’及びテンポ制御データＴＥＶ２  を読出した場合には、ＴＣ２  の受信タイミングからＰＥＶ’を演奏進行に応じて読出すべきタイミングまでの時間に対応してレジスタＴＩＭＥの値ＲＴを考慮すると共に、ＰＥＶ’を演奏進行に応じて読出すべきタイミングからＴＥＶ２  を演奏進行に応じて読出すべきタイミングまでの時間に対応して数値ＲＴ’を考慮する。数値ＲＴ’は、データＰＥＶ’及びＴＥＶ２  のイベント間相対時間をΔＴとし、テンポ係数をＴＭＫとすると、次の数２の式で表わされる。
【００８７】
【数２】
ＲＴ’＝ΔＴ×ＴＭＫ
従って、この場合には、レジスタＰＢの値にレジスタＴＩＭＥの値ＲＴと数値ＲＴ’とを加えたものをＲＢにセットする。なお、ＴＥＶ２  をサーチする際にＰＥＶ’のようなイベントデータが複数読出されるときは各イベントデータについてＲＴ’と同様の考慮を払えばよい。
【００８８】
次に、ステップ２０４では、レジスタＲＢの値に１／Ｎを乗じたものをＲＢにセットすると共に、レジスタＴＩＭＥの値に１／Ｎを乗じたものをＴＩＭＥにセットする。ここで、Ｎは、ＲＢの値をレジスタＲＡの値に近づけるために適宜選定される定数である。
【００８９】
次に、ステップ２０６では、フラグＴＣＲＦに１をセットする。この結果、この後の割込みにより図１２のステップ１６２にくると、判定結果が肯定的（Ｙ）となり、ステップ１６４でＴＣＲＴ＝０とされる。
【００９０】
次に、ステップ２０８では、レジスタＲＡ，ＲＢの値の比ＲＡ／ＲＢをレジスタＲＡＴＥにセットする。そして、ステップ２１０に移り、レジスタＴＭＫの値にＲＡＴＥの値を乗じたものをＴＭＫにセットする。この結果、テンポ係数ＴＭＫがＲＡＴＥの値に応じて修正されたことになる。一例として、図１４のＴＣ２  ，ＴＥＶ２  の例では、比の値ＲＡ／ＲＢが１より小さくなり、テンポ係数ＴＭＫが１より小さくなる。この後、ステップ２１２に移る。
【００９１】
ステップ２１２では、テンポ係数ＴＭＫの値のリミット処理を行なう。これは、ＴＭＫ値が小さすぎないように所定値（例えば０．５）以上に制限する処理である。
【００９２】
この後、ステップ２１４，２１６では、それぞれレジスタＲＢ，ＲＡに０をセットする。そして、図１１のルーチンにリターンする。
【００９３】
次回の割込みにより図１１のルーチンに入り、ステップ１４６でレジスタＴＩＭＥの値にテンポ係数ＴＭＫを乗ずると、ＴＩＭＥの値は以前より小さくなり、自動演奏のテンポは揺動速度に追従して速くなる。
【００９４】
この発明は、上記した実施形態に限定されるものではなく、種々の改変形態で実施可能なものである。例えば、次の（１）〜（１２）のような変更が可能である。
【００９５】
（１）揺動動作の特徴点検出と動作種類判別の両方に対してニューラルネットワークを適用したが、動作種類判別のみにニューラルネットワークを適用するようにしてもよい。
【００９６】
（２）揺動動作を検知するためのセンサは、圧電振動ジャイロセンサ等の角速度センサに限らず、加速度センサや磁気又は光を用いたセンサであってもよい。また、揺動動作を撮影し、画像処理によって揺動動作を検知するものであってもよい。さらに、複数種類のセンサを組合せて用いてもよい。
【００９７】
（３）ピークや谷等の特徴点の検出方法は、上記したものに限らず、他の条件を用いて検出してもよい。
【００９８】
（４）判別する揺動動作の種類は、３種類に限らず、もっと多くの種類の動作を判別するようにしてもよい。
【００９９】
（５）揺動分析装置と指揮棒とを別体としたが、指揮棒に揺動分析装置を内蔵させるようにしてもよい。また、揺動分析装置と自動演奏装置付き電子楽器とを別体としたが、これらを一体に構成してもよい。さらに、揺動分析装置からの出力情報ＴＣ，ＳＣは、図２の電子楽器以外の電子楽器や自動演奏装置に供給して上述のような演奏制御を行なうようにしてもよい。
【０１００】
（６）揺動動作の検知手段として、２つのセンサを用いたが、３つ以上のセンサを用いてもよい。例えば、３拍子用と、２，４拍子用とで異なるセンサを用いるようにしてもよいし、３つ以上のセンサの出力を総合的に判断して動作を検知するようにしてもよい。
【０１０１】
（７）センサは、指揮棒に装着したが、指揮棒に代わる揺動部材に装着したり、手など身体の一部に装着したり、マイクロホンに内蔵したり、カラオケ装置等の機器のリモートコントローラに内蔵したりしてもよい。センサと揺動分析装置との間の通信は、有線又は無線のいずれでもよい。
【０１０２】
（８）演奏中に演奏テンポを制御するようにしたが、演奏に先立って演奏テンポを決定する場合にもこの発明を適用することができる。
【０１０３】
（９）演奏データの記憶方式は、イベント＋デルタタイム（イベント間相対時間）としたが、イベント＋絶対時間等の他の方式を採用してもよい。また、デルタタイムは、ｍｓの単位であるとしたが、音符の長さを単位とする（例えば４分音符の１／２４とする）ようにしてもよい。
【０１０４】
（１０）テンポの制御は、デルタタイムの値にテンポ係数を乗算し、デルタタイムの値を変化させることで行なうようにしたが、図１１のタイマ割込みの周期を変化させることで行なうようにしてもよい。また、１回のタイマ割込みにおいてデルタタイムの値から減算する値を１以外の値とすることによりテンポを制御するようにしてもよい。さらに、デルタタイムの値を変化させるには、乗算に限らず、加算等の処理を用いてもよい。
【０１０５】
（１１）テンポ制御にあっては、テンポがなめらかに変化するように変化前の値から目標値までの間を補間するようにしてもよい。ダイナミクスの制御も同様にしてなめらかな変化が得られるようにしてもよい。
【０１０６】
（１２）楽音制御情報ＳＣに応じて演奏音の音量、音色等を制御するようにしたが、楽音制御情報ＳＣに応じて演奏音の音高、効果等を制御したり、演奏パート数等を制御したりしてもよい。
【０１０８】
【発明の効果】
以上のように、この発明によれば、ニューラルネットワークにより揺動動作の特徴点検出や動作種類判別を行なうようにしたので、検出精度や判別精度が向上し、信頼性の高い演奏態様制御が可能となり、安定した音楽演奏を行なえる効果が得られるものである。
【０１０９】
また、ニューラルネットワークでは、ファジィ制御に比べて検出乃至判別ルールをすべて記述する必要がなく、処理が簡単であること、試行錯誤により性能を向上させうること、ユーザーの癖や特徴を学習させうることなどの利点もある。
【図面の簡単な説明】
【図１】この発明に係る揺動分析装置の回路構成を示すブロック図である。
【図２】図１の装置の出力に応じて自動演奏可能な電子楽器の回路構成を示すブロック図である。
【図３】指揮棒の揺動動作の説明図である。
【図４】絶対角速度の変化の一例を示す波形図である。
【図５】ｘｙ平面内の角度の説明図である。
【図６】ニューラルネットワークの入出力例を示す図である。
【図７】センサ出力処理を示すフローチャートである。
【図８】ピーク検出処理を示すフローチャートである。
【図９】演奏データのフォーマットを示す図である。
【図１０】イベントデータのフォーマットを示す図である。
【図１１】再生処理を示すフローチャートである。
【図１２】イベント対応処理を示すフローチャートである。
【図１３】テンポ制御処理を示すフローチャートである。
【図１４】テンポ制御動作の説明図である。
【図１５】テンポ制御動作の説明図である。
【符号の説明】
１０：揺動分析装置、１２，５２：バス、１６，１８：Ａ／Ｄ変換回路、２０，６２：ＣＰＵ、２２，６４：ＲＯＭ、２４，６６：ＲＡＭ、２６，６８：タイマ、２８，７０：ＭＩＤＩインターフェース、３２：指揮棒、３４，３６：角速度センサ、５０：電子楽器、６０：音源回路。
【図１】
0003627321.tif 000003
【図２】
0003627321.tif 000004
【図３】
0003627321.tif 000005
【図４】
0003627321.tif 000006
【図５】
0003627321.tif 000007
【図７】
0003627321.tif 000008
【図６】
0003627321.tif 000009
【図８】
0003627321.tif 000010
【図９】
0003627321.tif 000011
【図１０】
0003627321.tif 000012
【図１１】
0003627321.tif 000013
【図１２】
0003627321.tif 000014
【図１３】
0003627321.tif 000015
【図１４】
0003627321.tif 000016
【図１５】
0003627321.tif 000017