JP3720004B2 - 音楽制御装置 - Google Patents
音楽制御装置 Download PDFInfo
- Publication number
- JP3720004B2 JP3720004B2 JP2002212882A JP2002212882A JP3720004B2 JP 3720004 B2 JP3720004 B2 JP 3720004B2 JP 2002212882 A JP2002212882 A JP 2002212882A JP 2002212882 A JP2002212882 A JP 2002212882A JP 3720004 B2 JP3720004 B2 JP 3720004B2
- Authority
- JP
- Japan
- Prior art keywords
- music control
- music
- automatic performance
- difficulty
- data
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【産業上の利用分野】
本発明は、テンポ、ダイナミクスおよび音源パラメータ等をリアルタイムに制御できる音楽制御装置に関する。
【0002】
【従来の技術】
従来、テンポ、ダイナミクスおよび音源パラメータ等の音楽情報をリアルタイムに制御できる音楽制御装置として、予め設定された初期音楽情報によって演奏を開始し、その後に操作者が音楽制御のための信号出力装置を操作することにより、その操作方向や強さに応じて音楽情報をリアルタイムに制御するように構成されたものは知られている(例えば特開平6−27957号公報には、音楽情報としてテンポを制御するようにしたものが開示されている)。
【0003】
【発明が解決しようとする課題】
しかしながら、上記従来の音楽制御装置では、操作者は曲や装置への自分の習熟度に合わせて音楽制御の難易度(換言すれば、安定度または音楽表現力)を調節することができないために、習熟度が向上した操作者にとっては物足りなさを感じるようになり、また、初心者や習熟度が向上した操作者であっても初めて演奏する曲に対しては、思い通りの音楽制御を行うことができないことがあった。
【0004】
本発明は、上記問題に鑑みてなされたもので、操作者が曲や装置への自分の習熟度に合わせて音楽特性制御の難易度(安定度または音楽表現力)を調節することが可能な音楽制御装置を提供することを目的とする。
【0005】
【課題を解決するための手段】
上記目的を達成するため本発明は、操作者の動作に基づく運動を検出し、対応する動作検出信号を出力する動作検出手段であって、操作者に装着または所持されるものと、該動作検出手段によって出力された動作検出信号に応じて音楽制御信号を発生する音楽制御信号発生手段と、操作者が音楽制御の難易度を調節するための難易度調節手段と、自動演奏データを記憶する自動演奏データ記憶手段と、該記憶された自動演奏データを読み出して自動演奏する自動演奏手段と、該自動演奏手段による自動演奏の音楽特性を前記発生された音楽制御信号に基づいて制御する音楽制御手段と、前記音楽制御信号発生手段により発生された音楽制御信号および前記自動演奏手段により読み出された自動演奏データに基づいて、前記音楽制御手段が音楽特性制御に用いる音楽制御値を算出する音楽制御値算出手段とを有し、該音楽制御手段は、前記難易度調節手段により調節された難易度に応じて前記算出された音楽制御値を変更し、該変更後の音楽制御値に基づいて自動演奏の音楽特性を制御することを特徴とする。
【0006】
上記目的を達成するため本発明は、操作者の動作に基づく運動を検出し、対応する動作検出信号を出力する動作検出手段であって、操作者に装着または所持されるものと、該動作検出手段によって出力された動作検出信号に応じて音楽制御信号を発生する音楽制御信号発生手段と、操作者が音楽制御の難易度を調節するための難易度調節手段と、自動演奏データを記憶する自動演奏データ記憶手段と、該記憶された自動演奏データを読み出して自動演奏する自動演奏手段と、該自動演奏手段による自動演奏の音楽特性を前記発生された音楽制御信号に基づいて制御する音楽制御手段と、音楽制御値を所定個記憶するための記憶領域を備えた音楽制御値記憶手段と、前記音楽制御信号発生手段により発生された音楽制御信号および前記自動演奏手段により読み出された自動演奏データに基づいて、前記音楽制御手段が音楽特性制御に用いる音楽制御値を算出する音楽制御値算出手段とを有し、前記音楽制御値算出手段は、前記記憶領域に記憶された音楽制御値を、新たな音楽制御値が算出される度に更新する更新手段と、前記難易度調節手段により調節された難易度に応じて、前記記憶された音楽制御値から所定個の音楽制御値を選択し、該選択された所定個の音楽制御値と当該音楽制御値算出手段により新たに算出された音楽制御値とを平均化する平均化手段とを有し、前記音楽制御値の算出は、平均化による算出を含むものであり、前記音楽制御手段は、前記平均化された音楽制御値に基づいて自動演奏の音楽特性を制御するとともに、前記難易度調節手段により調節された難易度に応じて前記算出された音楽制御値を変更し、該変更後の音楽制御値に基づいて自動演奏の音楽特性を制御することを特徴とする。
【0007】
また、好ましくは、前記難易度調節手段により調節された難易度に応じて、前記音楽制御値算出手段により算出された音楽制御値を変更する際の上限値または下限値を変更する変更手段を有することを特徴とする。
【0008】
さらに、好ましくは、前記難易度調節手段により調節された難易度に応じて、前記音楽制御値算出手段により算出された音楽制御値を変更する際の変化幅を変更する変化幅変更手段を有することを特徴とする。
【0009】
また、前記自動演奏データ記憶手段は、前記自動演奏データとともに所定タイミング毎に音楽制御用マークデータを記憶し、前記自動演奏手段は、該記憶された音楽制御用マークデータから、前記難易度調節手段により調節された難易度に応じて所定数の音楽制御用マークデータを読み飛ばし、前記音楽制御値算出手段は、該読み出された音楽制御用マークデータおよび前記発生された音楽制御信号に基づいて音楽制御値を算出することを特徴とする。
【0010】
さらに、前記自動演奏データ記憶手段は、前記自動演奏データとともに、該自動演奏データ固有の音楽特性に追従すべき程度であって、当該自動演奏の音楽特性を制御する際の追従の程度を示す追従度データを記憶し、前記自動演奏手段は、該記憶された追従度データを読み出し、前記音楽制御手段は、前記難易度調整手段によって調節された難易度に応じて、前記読み出された追従度データによって示される追従の程度の高低を変更し、該変更後の追従の程度に基づいて自動演奏の音楽特性を制御することを特徴とする。
【0011】
好ましくは、前記追従度データは、曲の途中に、少なくとも1つ以上埋め込まれ、曲の進行に従って前記自動演奏手段が前記追従度データを読み出し、該読み出された追従度データによって示される追従度の程度の高低が、前記調節された難易度に応じて変化することを特徴とする。
【0012】
さらに、好ましくは、前記動作検出手段は、操作者の揺動動作に基づく運動を検出することを特徴とする。
【0013】
また、好ましくは、前記動作検出手段は、センサの個数を多くすることで操作者の動作に基づく運動を複数種類検出し、該検出された複数種類の運動を総合的に判断して、前記動作検出信号を出力することを特徴とする。
【0014】
上記目的を達成するため本発明は、操作者の動作に基づく運動を検出し、対応する動作検出信号を出力する動作検出手段であって、操作者に装着または所持されるものと、該動作検出手段によって出力された動作検出信号に応じて音楽制御信号を発生する音楽制御信号発生手段と、操作者が音楽制御の難易度を調節するための難易度調節手段と、自動演奏データを記憶する自動演奏データ記憶手段と、該記憶された自動演奏データを読み出して自動演奏する自動演奏手段と、該自動演奏手段による自動演奏の音楽特性を前記発生された音楽制御信号に基づいて制御する音楽制御手段と、前記難易度調節手段により調節された難易度が易から難に行くに従って、当該自動演奏の音楽特性を制御する際の追従の程度が高くなって行くように変更する変更手段とを有し、前記音楽制御手段は、前記変更手段によって変更された追従の程度に応じて、当該自動演奏の音楽特性を制御することを特徴とする。
【0015】
【作用】
請求項1記載の発明の構成に依れば、自動演奏データ記憶手段から自動演奏データが読み出されて自動演奏されているときに、操作者の動作に基づく連動が検出されると、それに対応して出力された動作検出信号に応じて、音楽制御信号発生手段から音楽制御信号が発生され、この音楽制御信号および自動演奏手段により読み出された自動演奏データに基づいて音楽制御値が算出され、その算出された音楽制御値が難易度調節手段により調節された難易度に応じて変更され、その変更された音楽制御値に基づいて自動演奏の音楽特性が制御される。
【0016】
請求項2記載の発明の構成に依れば、テンポ制御値記憶手段に記憶された所定個の音楽制御値から、難易度調節手段により調節された難易度に応じて選択された所定個の音楽制御値と、音楽制御値算出手段により算出された新たな音楽制御値とが平均化され、その平均化された音楽制御値に基づいて自動演奏の音楽特性が制御される。
【0017】
請求項3記載の発明の構成に依れば、難易度調節手段により調節された難易度に応じて、音楽制御値算出手段により算出された音楽制御値を変更する際の上限値または下限値が変更され、その変更された値に基づいて自動演奏の音楽特性が制御される。
【0018】
請求項4記載の発明の構成に依れば、難易度調節手段により調節された難易度に応じて、音楽制御値算出手段により算出された音楽制御値を変更する際の変化幅が変更され、その変更された変化幅の音楽制御値に基づいて自動演奏の音楽特性が制御される。
【0019】
請求項5記載の発明の構成に依れば、自動演奏データ記憶手段に記憶された音楽制御用マークデータのうち、難易度調節手段により調節された難易度に応じて所定個の音楽制御用マークデータが読み飛ばされ、その後に音楽制御用マークデータが読み出されると、その音楽制御用マークデータおよび音楽制御信号出力手段により発生された音楽制御信号に基づいて音楽制御値が算出され、その音楽制御値に基づいて自動演奏の音楽特性が制御される。
【0020】
請求項6記載の発明の構成に依れば、自動演奏データ記憶手段に記憶された追従度データが読み出され、その追従度データに応じて決定される音楽特性制御の難易度が難易度調節手段により調節され、その調節された難易度に応じて自動演奏の音楽特性が制御される。
【0021】
請求項7記載の発明の構成に依れば、追従度データは、曲の途中に、少なくとも1つ以上埋め込まれ、曲の進行に従ってその追従度の程度の高低が変化し、その追従度データにより決定された難易度が難易度調節手段により調節され、その調節された難易度に応じて自動演奏の音楽特性が制御される。
【0022】
請求項8記載の発明の構成に依れば、操作者の動作に基づく連動として、揺動動作に基づく連動が検出され、該揺動動作に基づく連動に応じて音楽制御信号が発生する。
【0023】
請求項9記載の発明に依れば、センサの個数を多くすることで操作者の動作に基づく連動が複数種類検出され、該検出された複数種類の連動が総合的に判断されて、前記動作検出信号が出力され、この出力された動作検出信号に応じて音楽制御信号が発生する。
【0024】
請求項10記載の発明に依れば、自動演奏データ記憶手段から自動演奏データが読み出されて自動演奏されているときに、操作者の動作に基づく連動が検出されると、それに対応して出力された動作検出信号に応じて、音楽制御信号発生手段から音楽制御信号が発生され、この音楽制御信号および変更手段によって変更された追従の程度に応じて、当該自動演奏の音楽特性が制御される。
【0025】
【実施例】
以下、本発明の実施例を図面に基づいて詳細に説明する。
【0026】
図1は、本発明の一実施例に係る音楽制御装置の概略構成を示すブロック図であり、本実施例の音楽制御装置は、テンポ制御信号を出力するテンポ制御信号出力装置1と該テンポ制御信号出力装置1からのテンポ制御信号に基づいて音楽情報が制御される自動演奏装置付き電子楽器21とにより構成されている。なお、本実施例では制御できる音楽情報として、テンポおよびダイナミクスを例に挙げて説明するが、これに限る必要はないことは云うまでもない。
【0027】
同図において、テンポ制御信号出力装置1は、操作者が行った該装置1の揺動動作のX軸(水平)方向の角速度を検出し、アナログ電気信号に変換する圧電振動ジャイロセンサ(X)2と、同様に装置1の揺動動作のY軸(垂直)方向の角速度を検出し、アナログ電気信号に変換する圧電振動ジャイロセンサ(Y)3と、各種情報を入力するためのスイッチ群4と、圧電振動ジャイロセンサ2,3からの各出力信号のノイズをそれぞれ除去するノイズ除去回路5,6と、該ノイズ除去回路5,6からのアナログ出力信号をそれぞれデジタル信号に変換するA/D変換回路7,8と、スイッチ群4の各スイッチの操作状態を検出するスイッチ検出回路9と、装置1全体の制御を司るCPU10と、該CPU10が実行する制御プログラムやテーブルデータ等を記憶するROM11と、各種入力情報および演算結果等を一時的に記憶するRAM12と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ13と、外部からのMIDI(Musical Instrument Digital Interface)信号を入力したり、MIDI信号として外部に出力したりするMIDIインターフェース(I/F)14とにより構成されている。そして、上記構成要素7〜14は、バス15を介して相互に接続され、CPU10にはタイマ13が接続されている。
【0028】
自動演奏装置付き電子楽器21は、音高情報を入力するための鍵盤22と、各種情報を入力するためのスイッチ群23と、鍵盤22の押鍵状態を検出する押鍵検出回路24と、スイッチ群23の各スイッチの操作状態を検出するスイッチ検出回路25と、装置21全体の制御を司るCPU26と、該CPU26が実行する制御プログラムやテーブルデータ等を記憶するROM27と、自動演奏データ、各種入力情報および演算結果等を一時的に記憶するRAM28と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ29と、自動演奏データや各種情報等を表示する、例えばLCD等のディスプレイ30と、外部からのMIDI信号を入力したり、MIDI信号として外部に出力したりするMIDIインターフェース(I/F)31と、記憶媒体であるフロッピー(登録商標)ディスク(FD)をドライブするフロッピー(登録商標)ディスクドライブ(FDD)32と、鍵盤22からの演奏データや自動演奏データ等を楽音信号に変換する音源回路33と、該音源回路33からの楽音信号に各種効果を付与する効果回路34と、該効果回路34からの楽音信号を音響に変換する、例えばスピーカ等のサウンドシステム35とにより構成されている。そして、上記構成要素24〜34は、バス36を介して相互に接続され、CPU26にはタイマ29が接続され、音源回路33には効果回路34が接続され、効果回路34にはサウンドシステム35が接続されている。
【0029】
さらに、テンポ制御信号出力装置1のMIDII/F14は、電子楽器21のMIDII/F31と相互に接続され、テンポ制御信号出力装置1と電子楽器21との間でMIDI信号の送受信が行われる。このMIDII/F14,31間の接続は、有線で行ってもよいし、無線で行ってもよい。
【0030】
操作者は、テンポ制御信号出力装置1を片手で把持し、該装置1を曲の所定のタイミングに応じて所定の方向に振ることにより、マニュアルで音楽情報を制御することができる。
【0031】
図2は、前記スイッチ群23中の一スイッチである難易度設定操作子231を示す図であり、本実施例では、難易度設定操作子231はロータリーボリューム形式のものを用いている。
【0032】
操作者は難易度設定操作子231を回転させることにより曲の難易度を調節することができ、難易度設定操作子231が“0”の位置にある場合には曲に予め設定された難易度でテンポ制御でき、その位置から時計方向に回転させた場合には、その回転角度に応じて「難」の程度が増加する一方、反時計方向に回転させた場合には、その回転角度に応じて「易」の程度が増加する。
【0033】
なお、難易度設定操作子231の形式は、これに限らず、スライドスイッチやアップダウンスイッチ等のどのような形式のものであってもよい。また、難易度設定操作子231は、本実施例のように電子楽器21側に設けずに、テンポ制御信号出力装置1側に設けてもよい。
【0034】
図3は、テンポ制御信号出力装置1が検出する揺動動作の種類の一例を示す図であり、(a)は、3角形の各辺の方向にテンポ制御信号出力装置1を振った場合に検出する3種類の揺動動作を示し、(b)は、上または下方向にテンポ制御信号出力装置1を振った場合に検出する2種類の揺動動作を示している。
【0035】
操作者がテンポ制御信号出力装置1を振ると、その揺動動作に応じて圧電振動ジャイロセンサ2,3からそれぞれ信号が出力され、CPU10は、各信号から操作者が行っている動作状態、すなわち、操作者の動作が図3の動作1〜3のうちいずれの動作に該当するかを判別するとともに、その判別された動作における絶対角速度がピークとなる位置(テンポ制御信号出力装置1の振り方にもよるが、各動作1〜3のほぼ中間地点で速度がピークとなるであろう)を検出し、該ピーク位置で、前記検出された動作に対応するキーコードのオンイベント(マークデータ)およびこの時点の絶対角速度(この算出方法は後述する)に応じたベロシティ値に所定のチャンネル番号(本実施例ではチャンネル1)を付与して、電子楽器21側へ出力する。例えば、動作1に対してはキーコード“C3”のキーオンイベント、動作2に対してはキーコード“C_3”のキーオンイベントおよび動作3に対してはキーコード“D3”のキーオンイベントに、この時点の絶対角速度に応じて算出されたベロシティ値を付加し、チャンネル1のイベントデータとして出力する。
【0036】
ここで、各キーオンイベントおよびベロシティ値は、MIDI信号としてMIDII/F14からMIDII/F31に対して出力される。すなわち、本実施例の音楽制御装置では、テンポ制御信号出力装置1は文字どおりテンポ制御信号の出力を主として行い、実際の自動演奏処理(自動演奏データの読み出しや発音処理等)は全て電子楽器21側で行うように構成されている。このようにして電子楽器21側に送信されたキーオンイベントおよびベロシティ値はRAM28の所定領域に一時的に格納された後に、CPU26により解析され、その解析結果がRAM28の所定領域TKONに格納される。
【0037】
図4は、電子楽器21の自動演奏データのデータフォーマットを示す図であり、自動演奏データは、前記RAM28の自動演奏データ格納領域281に格納される。
【0038】
同図に示すように、自動演奏データは、隣接した各イベント間の時間間隔を示すデルタタイムデータ41,…と、電子楽器21のキーオンやキーオフ等のイベント、この自動演奏データ固有のテンポに追従すべき程度を示す追従度イベントおよび拍タイミングを示す拍タイミングイベント(この拍タイミングイベントは、図17を用いて後述するテンポキーオン受信処理のステップS145およびS153で使用する)等のイベントデータ42,…とにより構成されている。本実施例では、デルタタイムデータ41として、1msを1単位とする整数値が採られ、イベントデータ42として、チャンネル番号を付与したイベントデータが採られている。ここで、デルタタイムデータ41をこのように構成したのは、各イベントのタイミング処理制御を1ms毎の割込み処理中(後述する図14の再生処理中)で行っているからである。また、イベントデータ42をこのように構成したのは、本実施例の電子楽器21は前記マークデータ、追従度イベントデータおよび拍タイミングイベントデータと通常の自動演奏データとを混在させるとともに、マークデータとして通常の自動演奏イベントデータを用いているために、この双方のデータを区別する必要があるからである。
【0039】
本実施例では、追従度イベントデータとして3種類の追従度(A:追従度高、B:追従度中、C:追従度低)を設け、これらの追従度イベントデータは、曲毎に所定の位置に予め登録されている。例えば、曲がカラオケである場合には、曲のイントロダクション(前奏部)は、通常テンポ制御に集中できるので、追従性をよくして、その最初の位置に追従度Aを登録し、イントロダクションが終了してテーマ(主題)に入ると、そのメロディーに応じて追従度BまたはCを登録するというように、曲の重要度に応じて3種類の追従度のうち、いずれかの追従度を選択して登録する。そして、CPU26は、一度追従度を検出すると、新たな追従度を検出するまで、検出した追従度に従って音楽制御を実行する。
【0040】
また、マークデータは前述したように、“C3”,“C_3”および“D3”の3種類のキーオンイベントであり、自動演奏データ格納領域281の所定の位置(アドレス)に、所定の順序で、予め格納されている。例えば、3拍子の曲では、各小節中、1,2,3拍目の各タイミングのイベントデータ42中に、それぞれ“C3”,“C_3”,“D3”のキーオンイベントデータがチャンネル番号1とともに予め格納され、4拍子の曲では、各小節中、1,2,3,4拍目の各タイミングのイベントデータ42中に、それぞれ“C3”,“D3”,“C3”,“D3”のキーオンイベントデータがチャンネル番号1とともに予め格納されている。すなわち、電子楽器21は、例えば16チャンネル(トラック)分の自動演奏データを再生できるように構成され、そのうちチャンネル1は前記マークデータ、追従度イベントデータおよび拍タイミングイベントデータ用に使用され、その他のチャンネルは通常の自動演奏データ用に使用されている。
【0041】
なお、本実施例では、自動演奏データは、上述のように「イベントデータ+デルタタイム」としたが、これに限らず、「イベントデータ+絶対時間」等の他のフォーマットでもよい。また、デルタタイムは1msを1単位としたが、1単位を音符の長さ(例えば、4分音符の1/24等)としてもよい。
【0042】
また、本実施例では、テンポ制御用のマークデータ(キーオンイベントデータ)、追従度イベントデータおよび拍タイミングイベントデータと自動演奏用のデータとを混在させ、これらのデータをチャンネル番号で区別するようにしたが、これに限らず、これらのデータをそれぞれ異なった種類のデータとして別々に構成してもよい。例えば、テンポ制御用のマークデータとして、テンポ制御すべき音符の位置に対応するメモリのアドレスを記憶したものを用いてもよい。また、本実施例では、追従度イベントデータとして、上述のように“A”,“B”,“C”を用いたが、これに限らず、任意のキーイベントデータを用いて表すようにしてもよい。
【0043】
以上のように構成されたテンポ制御信号出力装置1のCPU10が実行する制御処理を図5〜10を参照して説明し、自動演奏装置付き電子楽器21のCPU26が実行する制御処理を図11〜20を参照して説明する。
【0044】
図5は、テンポ制御信号出力装置1のCPU10が実行する圧電振動ジャイロセンサ出力処理の手順を示すフローチャートであり、本処理は、前記タイマ13が、例えば10ms毎に発生するタイマ割込み信号に同期して実行される割込み処理中の一処理である。
【0045】
同図において、まず、前述したように、ノイズ除去回路5,6によりノイズが除去され、A/D変換回路7,8によりデジタル変換された圧電振動ジャイロセンサ2,3からの各出力信号を取り込み、それぞれRAM12の所定領域ωx,ωy(以下、各領域の内容を、それぞれ「角速度ωx」、「角速度ωy」という)に格納する(ステップS1)。
【0046】
次に、この角速度ωx,ωyから次式により絶対角速度ωを算出し、この算出した絶対角速度ωをRAM12の所定領域ANGV(以下、この領域の内容を「絶対角速度ANGV」という)に格納する(ステップS2)。
【0047】
ω = (ωx 2+ωy 2)1/2
なお、今回算出した絶対角速度ωを領域ANGVに格納するときに、前回算出した絶対角速度ωが領域ANGVに格納されている場合には、該前回算出した値をRAM12の所定領域OANGVに保存する。
【0048】
次に、絶対角速度ωがピークとなる時点を検出するピーク検出処理サブルーチンを実行した(ステップS3)後に、本圧電振動ジャイロセンサ出力処理を終了する。
【0049】
図6は、このステップS3のピーク検出処理サブルーチンの詳細な手順を示すフローチャートであり、まずステップS11で、ピークが検出された否かを判別する。
【0050】
このステップS11の判別は、今回の絶対角速度ANGVおよび前回の絶対角速度OANGVに基づいて行う。具体的には、まず、前後の絶対角速度の値より大きい時点を検出する。例えば、今回の絶対角速度ANGV>前回の絶対角速度OANGVのときにはフラグFBIGをセットし、今回の絶対角速度ANGV≦前回の絶対角速度OANGVのときには、フラグFBIGの状態を検査し、フラグFBIGがセットされている場合には、前回の絶対角速度OANGVの時点を上記条件を満たす時点として検出すればよい。次に、このようにして検出された時点が、前回検出されたピーク時点から所定時間以上経過し、この時点の絶対角速度ω(すなわち、上記前回の絶対角速度OANGV)が所定の閾値より大きく、前回のピーク値の所定値(例えば0.5)倍よりも大きく、谷を通過している等の条件を全て満たしているか否かを判別する。これらの全ての条件を満たしている場合にはこの時点をピークとして判別し、1つでも条件を満たしていない場合にはこの時点をピークと判別しない。
【0051】
前記ステップS11の判別で、ピークが検出されたときには、このときのテンポ制御信号出力装置1の揺動動作の種類(すなわち、前記図3で説明した動作1〜3のうち操作者が行っている動作)を判定するピーク種類判定処理サブルーチンを実行した(ステップS12)後に、本ピーク検出処理を終了する。一方、ステップS11の判別で、ピークが検出されないときには、直ちに本ピーク検出処理を終了する。
【0052】
図7は、上記ステップS12のピーク種類判定処理サブルーチンの詳細な手順を示すフローチャートである。
【0053】
同図において、まず、操作者がテンポ制御信号出力装置1を振ったときの振り角度θが、180°<θ≦300°という条件を満たしているか否かを判別する(ステップS21)。図10は、この振り角度θを算出する処理を説明するための図であり、図中点(X,Y)は、前記角速度ωx,ωyをX−Y座標上に表わしたものである。すなわち、この点(X,Y)および原点Oを通る直線とX軸との交角が振り角度θになる。
【0054】
ステップS21の判別で、この条件を満たしている場合には、今回検出されたピークは「動作1」によるものと判定し(ステップS22)、前述したようにキーコード“C3”のキーオンおよびこのときの絶対角速度ωの値に応じたベロシティ値(ダイナミクス制御を行うためのパラメータ値)をチャンネル1のイベントデータとして、MIDI信号に変換し出力する(ステップS23)。
【0055】
一方、ステップS21の判別で、振り角度θが上記条件を満たしていないときには、動作2,3を判定するピーク2判定処理サブルーチンを実行した(ステップS24)後に、本ピーク種類判定処理を終了する。
【0056】
図8は、上記ステップS24のピーク2判定処理サブルーチンの詳細な手順を示すフローチャートであり、まず、振り角度θが、θ≦60°または300°<θという条件を満たしているか否かを判別する(ステップS31)。
【0057】
ステップS31の判別で、振り角度θが上記条件を満たしているときには、前記ステップS22,S23と同様にして、今回検出されたピークは「動作2」によるものと判定し(ステップS32)、キーコード“C_3”のキーオンおよびこのときの絶対角速度ωの値に応じたベロシティ値をチャンネル1のイベントデータとして出力する(ステップS33)。
【0058】
一方、ステップS31の判別で、振り角度θが上記条件を満たしていないときには、ピーク3判定処理サブルーチンを実行した(ステップS34)後に、本ピーク2判定処理を終了する。
【0059】
図9は、このステップS34のピーク3判定処理サブルーチンの詳細な手順を示すフローチャートであり、前記ピーク種類判定処理のステップS22,S23と同様にして、今回検出されたピークは「動作3」によるものと判定し(ステップS41)、キーコード“D3”のキーオンおよびこのときの絶対角速度ωの値に応じたベロシティ値をチャンネル1のイベントデータとして出力した(ステップS42)後に、本ピーク3判定処理を終了する。
【0060】
なお、本実施例は、絶対角速度ωがピークとなる時点を音楽制御を行う時点にしたが、これに限らず、絶対角速度ωの変化量が大きい時点等であってもよいし、また、音楽制御を行う時点を検出する検出方法は上述の方法に限る必要もない。
【0061】
図11は、自動演奏装置付き電子楽器21が実行するメインルーチンの手順を示すフローチャートである。なお、説明は省略したが、本メインルーチンと同様にテンポ制御信号出力装置1においてもスイッチ群4の各種スイッチ状態に応じた各種スイッチ処理等を含むメインルーチンを実行している。
【0062】
同図において、まず、RAM28のクリアや各種ポートのクリア等のイニシャライズを行う(ステップS51)。
【0063】
次に、鍵盤22の押鍵状態に応じてキーオンイベントまたはキーオフイベントの生成処理や発音または消音処理等の鍵処理を行い(ステップS52)、MIDI信号の送受信処理や受信したMIDI信号に応じた各種信号処理等のMIDI処理を行い(ステップS53)、スイッチ群23の各種スイッチ状態に応じた各種スイッチ処理を行い(ステップS54)、上述の処理以外のその他処理を行った(ステップS55)後に、ステップS52に戻って上述の処理を繰り返す。
【0064】
図12は、前記難易度設定操作子231が操作されたときに行われる難易度操作子処理の手順を示すフローチャートであり、前記ステップS54の各種スイッチ処理中の一処理である。
【0065】
同図において、難易度設定操作子231が操作されたか否かを判別し(ステップS61)、難易度設定操作子231が操作されないときには直ちに本難易度操作子処理を終了する一方、難易度設定操作子231が操作されたときにはステップS62に進む。
【0066】
ステップS62では、難易度設定操作子231の操作量(回転量)に応じて該操作子231が出力する値(例えば、図2の“0”の位置を値0とし、反時計方向に回転できる最大の位置(易)の値−1から時計方向に回転できる最大の位置(難)の値1までアナログ的に変化する値)を検出し、前記RAM28に確保された領域D_COEF(以下、この内容を「難易度係数D_COEF」という)に格納する。
【0067】
次に、実際に追従度制御に用いる、現在の追従度(すなわち、前記「追従度イベントデータA(高)」、「追従度イベントデータB(中)」および「追従度イベントデータC(低)」のうち、最後に読み出された追従度イベントデータに応じて設定された追従度)に係る各種値(本実施例では、図13に示す移動平均次数α、差分リミットβ、テンポ値の下限値γ、テンポ値の上限値δ)を、難易度係数D_COEFに応じて修正する(ステップS63)。ここで、各種値は、図13に示すように追従度に応じて異なった値が予め設定されて、それぞれRAM28の所定領域に格納されている。
【0068】
さらに、ステップS63で修正した各種値が、修正前の値から大きく変化しないようにリミット処理を行った(ステップS64)後に、本難易度操作子処理を終了する。
【0069】
なお、本実施例では、本難易度操作子処理を前記各種スイッチ処理中で行うようにしたが、これに限らず、難易度設定操作子231の出力を検出する時間間隔を一定にしたい場合等には、例えば10ms毎に発生する割込み処理中で行うようにしてもよい。
【0070】
図13は、前記追従度制御を行うための各種値α〜δの具体例および難易度設定操作子231から出力された難易度係数D_COEFに応じて各種値α〜δを修正する方法の一例を示す図であり、(a)は、追従度A〜Cおよび該各追従度に応じて初期値として設定される各種値α〜δの一例を示し、(b)は、(a)の値のうち移動平均次数αを例に挙げて、この移動平均次数αを難易度係数D_COEFに応じて修正する具体的な方法の一例を示している。
【0071】
(a)に示すように、追従度に応じて、移動平均次数α、差分リミットβ、テンポ値の下限値γ、テンポ値の上限値δの各初期値が前記RAM28の当該領域から読み出され、追従度制御するためにRAM28の所定位置に確保された領域に格納される。本実施例では、曲の途中で追従度を変更する、すなわち曲の位置に応じて異なった追従度イベントデータが埋め込まれ、これにより曲の進行に応じて追従度を変更するように構成され、現在の追従度と異なった追従度イベントデータが検出されると、当該追従度に応じた各種値α〜δが読み出されて、この読み出された各種値α〜δにより、追従度制御するために確保された領域の値が変更される。
【0072】
また、本実施例では、追従度に応じて追従度制御を行う時点を変更する。すなわち、追従度Aの場合には全てのマークデータ(判定マーク)が検出された時点で追従度制御が行われ、追従度Bの場合には拍上のマークデータが検出された時点で追従度制御が行われ、追従度Cの場合には小節頭のマークデータが検出された時点で追従度制御が行われる。この追従度制御時点の変更処理を行うために、前記図4で説明した拍タイミングイベントデータを使用する。これは、本実施例では、自動演奏データのデルタタイムデータの単位として、時間(1ms)を採用したために、拍位置にあるマークデータを判別することが難しいという理由からであり、例えばデルタタイムデータの単位として、所定音符の音長を基準にした場合には、拍位置にあるマークデータを簡単に判別することができるので、拍タイミングイベントデータを使用する必要はない。なお、前述のように本実施例では、マークデータは基本的には各拍タイミングの位置に記憶されるので、この場合には、追従度Aおよび追従度Bにおける追従度制御を行う時点に差は生じないが、より細かな制御を行うために、マークデータを各拍タイミングより細かいタイミング(例えば、音符毎のタイミング)の位置に記憶した場合には、追従度Aより追従度Bの方が追従度制御を行う時点が多くなり、テンポ制御の難易度が向上することになる。
【0073】
なお、各種値α〜δを追従度制御にどのように使用するかは、図19および20を用いて後述する。
【0074】
次に、各値α〜δの意味を説明する。
【0075】
移動平均次数αは、追従度制御を行う時点で算出されたテンポ係数T_COEFを平均化して滑らかにテンポを変化させるために、平均化に使用するテンポ係数の個数を決定する変数である。移動平均次数αが大きい程テンポの変化はより滑らかになるので、テンポ制御の難易度が上がるに従って移動平均次数αの値を小さくしている。
【0076】
差分リミットβは、テンポ変化の差分値の許容範囲を決定するための値であり、具体的には、今回算出されたテンポ係数T_COEFと前回算出されたテンポ係数T_COEFとの差分の許容範囲を示している。差分リミットβは、その値が大きい(換言すれば、許容範囲が広い)程、テンポ制御の自由度が向上するが、これによりテンポが大きく変化し過ぎるおそれもあり、制御自体は難しくなる。このため、図13(a)に示すように、テンポ制御の難易度が上がるに従って差分リミットβ値を大きくしている。
【0077】
テンポ値の下限値γおよび上限値δは、ぞれぞれテンポ係数T_COEFの下限値および上限値を示すもので、上記差分リミットβと同様の理由により、テンポ制御の難易度が上がるに従って下限値γを小さくするとともに、上限値δを大きくしている。
【0078】
以上説明した各種値α〜δは、前記難易度設定操作子231の操作により、変更することができる。例えば移動平均次数αは、難易度を変更することにより、(b)に示すように変更することができる。現在、追従度Aでテンポ制御がなされている場合に、操作者が難易度設定操作子231を「0」より「易」の方向に回転させると、その回転量に応じて移動平均次数αを増加させる方向に変更する。実際には、移動平均次数αは整数値を採るため、その回転量に応じて移動平均次数αは“1”ずつ増加していく。なお、本実施例では追従度Aの場合の移動平均次数αを“1”としたため、追従度Aの場合に操作者が難易度設定操作子231を「難」の方向に回転させても、移動平均次数αは変化しないようにしている。しかし、追従度Aの場合の移動平均次数αを“1”より大きい整数値にして、追従度Aの場合であっても、さらに難易度を高めることができるようにしてもよい。同様にして、追従度Cの場合には、移動平均次数αは「難」の方向にのみ変更され、追従度Bの場合には、移動平均次数αは「難」または「易」のいずれの方向にも変更される。なお、移動平均次数α以外の各種値β〜δも上述の方法により変更するが、本実施例のように直線的に調節する方法に限らず、例えば、曲線的に調節したり、所定の関数を用いて調節したりする等、どのような方法で調節してもよい。
【0079】
図14は、自動演奏データの再生処理の手順を示すフローチャートであり、本処理は、前記タイマ29が、例えば1ms毎に発生するタイマ割込み信号に同期して実行される割込み処理中の一処理である。
【0080】
同図において、まず、前記再生フラグRUNが“1”であるか否かを判別し(ステップS101)、再生フラグRUNが“0”のとき、すなわち自動演奏データの再生要求がなされていないときには直ちに本再生処理を終了する一方、再生フラグRUNが“1”のとき、すなわち自動演奏データの再生要求がなされているときには、フラグPAUSEが“0”であるか否かを判別する(ステップS102)。ここで、フラグPAUSEは、電子楽器21がチャンネル1のキーオンイベントデータを読み出したときに、まだテンポ制御信号出力装置1が当該キーオンイベントデータを送出していない場合に、当該キーオンイベントを受信するまで自動演奏データの再生を一時的に停止させるためのフラグである。
【0081】
ステップS102の判別で、フラグPAUSEが“0”のとき、すなわちテンポ制御信号出力装置1からのキーオンイベントを受信した後にチャンネル1の当該キーオンイベントを読み出しているときには、カウンタTIMEの値が“0”であるか否かを判別する(ステップS103)。ここで、カウンタTIMEは、RAM28に確保され、前記図3で説明した各イベントデータ42間の時間間隔をカウントするためのソフトカウンタである。
【0082】
ステップS103の判別で、カウンタTIMEの値が“0”のとき、すなわちイベントデータ42を出力するタイミングのときには、自動演奏データ格納領域281のアドレスを進め、その位置のデータを読み出し(ステップS104)、その読み出したデータがデルタタイムデータであるか否かを判別する(ステップS105)。
【0083】
ステップS105の判別で、読み出したデータがデルタタイムデータでないとき、すなわちイベントデータであるときには、当該イベントに対応するイベント対応処理サブルーチン(このサブルーチンの詳細な手順は、図16に基づいて後述する)を実行した(ステップS106)後に、前記ステップS104に戻って前述の処理を繰り返す。
【0084】
一方、ステップS105の判別で、読み出したデータがデルタタイムデータのときには該デルタタイムデータをカウンタTIMEに格納し(ステップS107)、カウンタTIMEが“0”であるか否かを判別する(ステップS108)。ここで、カウンタTIMEの値を判別するのは、同一タイミングで複数のイベントデータが自動演奏データ格納領域281に格納されている場合があるからである。
【0085】
ステップS108の判別で、カウンタTIME=0のときには、前記ステップS104に戻って前述の処理を繰り返し、一方、カウンタTIME≠0のときには、次式の演算によりカウンタTIMEの値を変更する(ステップS109)。
【0086】
TIME = TIME×T_COEF
ここで、T_COEFは前記テンポ係数を示している。すなわち、ステップS109では、デルタタイムで与えられるイベントデータ間の時間間隔をテンポ係数T_COEFで変更することにより、テンポを変更している。したがって、テンポ係数T_COEFが“1”の場合には標準テンポで曲が演奏され、テンポ係数T_COEFが“1”より小さい場合には標準テンポより速いテンポで曲が演奏され、テンポ係数T_COEFが“1”より大きい場合には標準テンポより遅いテンポで曲が演奏される。
【0087】
一方、ステップS103の判別で、カウンタTIMEの値が“0”でないときにはステップS110に進む。
【0088】
ステップS110では、カウンタTIMEの値を“1”だけデクリメントし、ステップS111では、RAM28に確保され、隣接するチャンネル1のキーオンイベント間の時間間隔をカウントするソフトカウンタDELTA_ACM(Delta Accumulate)の値(以下、この値を「デルタタイム累算値DELTA_ACM」という)を“1”だけインクリメントし、ステップS112では、RAM28に確保され、テンポ制御信号出力装置1から出力された隣接するキーオンイベント間の時間間隔(テンポ制御間隔)をカウントするソフトカウンタINTERVAL(以下、この値を「テンポ制御間隔INTERVAL」という)の値を“1”だけインクリメントし、ステップS113では、図17を参照して後述するテンポキーオン受信処理サブルーチンを実行した後に、本再生処理を終了する。
【0089】
一方、ステップS102の判別で、フラグPAUSEが“1”のとき、すなわち自動演奏データ格納領域281からチャンネル1のキーオンイベントデータを読み出し、テンポ制御信号出力装置1からの当該キーオンイベントの出力を待っているときには、前記ステップS103〜S111で説明した自動演奏データの読み出し処理を停止(スキップ)し、前記ステップS112に進む。
【0090】
図15は、前記テンポ制御間隔INTERVALとデルタタイム累算値DELTA_ACMとの関係を説明するための図であり、図中、“□”はチャンネル1のキーオンイベントを示し、“○”はチャンネル1以外のイベントを示している。
【0091】
同図から分かるように、デルタタイム累積値DELTA_ACMは、自動演奏データ格納領域281に格納された1拍分のデルタタイムを累算したものであり、テンポ制御間隔INTERVALは、操作者がテンポ制御信号出力装置1を振ることによってテンポ制御する1拍分の時間間隔を計測したものである。後述するように、このデルタタイム累算値DELTA_ACMおよびテンポ制御間隔INTERVALに基づいてテンポ係数T_COEFが算出される。なお、同図は、テンポ制御間隔INTERVALの方がデルタタイム累算値DELTA_ACMより小さい場合、すなわち、操作者が標準テンポより速いテンポで曲を再生するように制御している場合を示している。
【0092】
図16は、前記ステップS106のイベント対応処理サブルーチンの詳細な手順を示すフローチャートである。
【0093】
同図において、まず、読み出したイベントデータがチャンネル1のイベントデータであるか否かを判別し(ステップS121)、チャンネル1のイベントデータであるときには、そのイベントデータが追従度イベントデータであるか否かを判別する(ステップS122)。
【0094】
ステップS122の判別で、追従度イベントデータのときには、チャンネル1のキーオンイベントを読み出す前にテンポ制御信号出力装置1から当該キーオンイベントを既に受信していることを“1”で示すフラグKON_RCV(Key ON Recieve)が“1”であるか否かを判別し(ステップS123)、フラグKON_RCVが“0”のとき、すなわち当該キーオンイベントをテンポ制御信号出力装置1から受信していないときには、当該イベントのキーコードをRAM28に確保された領域KEYCODE(以下、この内容を「キーコードKEYCODE」という)に格納し(ステップS124)、前記フラグPAUSEをセットした(ステップS125)後に、本イベント対応処理を終了する。
【0095】
一方、ステップS123の判別で、フラグKON_RCVが“1”のときにはこのフラグKON_RCVをリセットして(ステップS126)、本イベント対応処理を終了する。
【0096】
一方、ステップS122の判別で、読み出したイベントデータが追従度イベントデータのときには、その追従度(すなわち、追従度A〜Cのうちいずれかの追従度)に応じて各種値α〜δを前記図13(a)に示す値に設定し(ステップS127)、前記ステップS62と同様にして該設定した各種値α〜δを難易度係数D_COEFに応じて修正し(ステップS128)、前記ステップS64と同様にして各種値α〜δのリミット処理を行った(ステップS129)後に、本イベント対応処理を終了する。
【0097】
一方、ステップS121の判別で、読み出したイベントデータがチャンネル1のものでないときには、そのイベントデータは通常の自動演奏イベントデータであるので、そのイベントデータを前記音源回路33へ出力した(ステップS130)後に、本イベント対応処理を終了する。なお、ステップS130において、音源回路33に出力するイベントがノートイベントの場合には、該ノートイベントのベロシティは、後述する図17のステップS142で設定されたダイナミクスに応じて修正したものを出力する。
【0098】
図17は、前記ステップS113のテンポキーオン受信処理サブルーチンの詳細な手順を示すフローチャートである。
【0099】
同図において、まず、テンポ制御信号出力装置1からテンポキーオンイベントを受信したか否かを判別し(ステップS141)、受信したときには、受信したキーオンのベロシティ値に応じてダイナミクスを設定して、RAM28の所定位置に確保された領域に格納する(ステップS142)。
【0100】
次に、フラグPAUSEが“1”であるか否かを判別し(ステップS143)、フラグPAUSEが“1”のときには、受信したテンポキーオンイベントのキーコードが前記キーコードKEYCODEと一致しているか否かを判別し(ステップS144)、一致しているときにはステップS145に進む。なお、前記ステップS141のテンポキーオンイベントの判別は、前記領域TKONの内容を検査することによって行うようにすればよい。
【0101】
一方、ステップS141の判別でテンポキーオンを受信していないとき、またはステップS144の判別で受信したテンポキーオンイベントのキーコードとキーコードKEYCODEとが一致していないときには、直ちに本テンポキーオン受信処理を終了する。
【0102】
ステップS145では、現時点がテンポ制御用マーク(マークデータ)の判定タイミングか否か、すなわち前記追従度制御を行う時点か否かを判別する。この判定タイミングか否かの判別は、前述したように追従度に応じて設定された判定タイミング(図13(a)参照)に基づいて行う。追従度が“A”の場合には、全てのマークデータを検出した時点がテンポ制御用マーク判定タイミングであり、例えばマークデータが音符毎に記憶されているときには各音符のタイミングがテンポ制御用マークの判定タイミングとなる。追従度が“B”の場合には、拍上のマークデータを検出した時点がテンポ制御用マーク判定タイミングであり、マークデータが音符毎に記憶されているときには、そのうち拍タイミングがテンポ制御用マークの判定タイミングとなる。具体的には、前記拍タイミングイベントデータを検出した時点をテンポ制御用マークの判定タイミングにすればよい。追従度が“C”の場合には、小節頭のマークデータを検出した時点がテンポ制御用マーク判定タイミングであり、マークデータが音符毎に記憶されているときには、そのうち小節頭のタイミングがテンポ制御用マークの判定タイミングとなる。具体的には、拍タイミングイベントデータを検出する度にその検出回数をカウントし、そのカウント値と曲の拍子を比較することにより、小節頭か否かを判別すればよい。
【0103】
ステップS145の判別で、テンポ制御用マークの判定タイミングであるときには、前記デルタタイム累算値DELTA_ACMおよびテンポ制御間隔INTERVALから、次式によりテンポ係数T_COEFの値を変更するための比率(rate)を求め、RAM28に確保された領域RATE(以下、この内容を「比率RATE」という)に格納する(ステップS146)。
【0104】
RATE = INTERVAL/DELTA_ACM
次に、図19を用いて後述するテンポ係数計算処理サブルーチンを実行し(ステップS147)、図20を用いて後述するテンポ係数リミット処理サブルーチンを実行する(ステップS148)。
【0105】
一方、ステップS145の判別で、テンポ制御用マークの判定タイミングでないときにはステップS146〜S148をスキップして、ステップS149に進む。
【0106】
ステップS149〜151では、前記デルタタイム累算値DELTA_ACM、テンポ制御間隔INTERVALおよびフラグPAUSEをそれぞれリセットした後に、本テンポキーオン受信処理を終了する。
【0107】
一方、ステップS143の判別で、フラグPAUSEが“0”であるときには、自動演奏データ格納領域281における次のチャンネル1のキーオンイベントをサーチし(ステップS152)、前記受信したキーオンイベントのキーコードとサーチしたキーオンイベントのキーコードとが一致しているか否かを判別し(ステップS153)、一致しているときにはステップ154に進み、一方、一致していないときにはエラーであるので直ちに本テンポキーオン受信処理を終了する。
【0108】
ステップS154では、次式(1)によりデルタタイム累算値DELTA_ACMを算出する。
【0109】
ここで、TIMEは、前記カウンタTIMEの値を示し、DELTAT(k),(k=1,2,…)は、現在曲を再生している時点(アドレス)の次のデルタタイムからサーチしたキーオンイベントまでのデルタタイムを示している。
【0110】
図18は、デルタタイム累算値DELTA_ACMの具体的な算出方法を説明するための図である。
【0111】
図示例では、自動演奏データ格納領域281からチャンネル1のキーオンイベントを読み出す前にテンポ制御信号出力装置1からテンポキーオンイベントを受信し、自動演奏データ格納領域281において、この受信時点から当該受信キーオンイベントに対応するチャンネル1のキーオンイベントの位置までにチャンネル1以外のイベントデータが少なくとも1つ以上格納されている場合を示している。同図中、“TIME”は、カウンタTIMEの値、すなわちイベントE0,E1間のデルタタイムの残り時間を示し、DELTAT(1)は、イベントE1,E2間のデルタタイムを示し、DELTAT(2)は、イベントE2,E3間のデルタタイムを示している。すなわち、図示例では、上記式(1)中の“Σ”は、k=1,2についてDELTAT(k)の加算を行うことになる。
【0112】
このようにして、上記式(1)によりチャンネル1のキーオンイベント間のデルタタイム累算値DELTA_ACMを求めることができる。
【0113】
図17に戻り、ステップS155では、サーチしたキーオンイベントまでのデルタタイムおよびカウンタTIMEの値を所定値でそれぞれ除算し、各除算結果で対応するデルタタイムおよびカウンタTIMEの値を変更する。すなわち、前記図18の例では、次式のように各値を変更する。
【0114】
TIME = TIME/C
DELTAT(1) = DELTAT(1)/C
DELTAT(2) = DELTAT(2)/C
ここで、Cは定数であり、“1”より大きい値である。このようにデルタタイムおよびカウンタTIMEの値を変更することで、次のマークデータ間のイベントの読み出しに速く移行できるようにしている。
【0115】
再び図17に戻り、ステップS156で前記フラグKON_RCVをセットし、ステップS157〜S162でそれぞれ前記ステップS145〜S150と同様の処理を行った後に、本テンポキーオン受信処理を終了する。
【0116】
図19は、前記ステップS147およびS159のテンポ係数計算処理サブルーチンの詳細な手順を示すフローチャートである。
【0117】
同図において、まず、過去のT_COEF×RATEの値を保存しておくために、RAM28の所定位置に確保された領域TC1〜TC16のうち、領域TC1〜TC15の値をそれぞれ領域TC2〜TC16に格納し直す(ステップS171)。
【0118】
次に、前記ステップS146またはS158で、今回新たに算出した比率RATEを用いて変更したテンポ係数T_COEF×RATEを、前記領域TC1の格納し(ステップS172)、前記ステップS63またはS128で修正した移動平均次数αに応じて、領域TC1〜TC16から選択したα個の格納値の移動平均値を算出して、最終のテンポ係数T_COEFを決定した(ステップS173)後に、本テンポ係数計算処理を終了する。
【0119】
図20は、前記ステップS148およびS160のテンポ係数リミット処理サブルーチンの詳細な手順を示すフローチャートである。
【0120】
同図において、まず、前記ステップS173で算出したテンポ係数T_COEFの今回の値と前回の値との差分を計算し、その差分値が前記ステップS63またはS128で修正した差分リミットβ以内であるか否かを判別する(ステップS181)。ここで、テンポ係数T_COEFの差分を計算するために、今回算出した最終のテンポ係数T_COEFを保存しておく必要があるが、この保存は、例えば本テンポ係数リミット処理を終了する直前に行うようにすればよい。
【0121】
ステップS181の判別で、テンポ係数T_COEFの差分が前記修正後の差分リミットβより大きい場合には、その差分が修正後の差分リミットβ以内に収まるように、今回算出したテンポ係数T_COEFをリミットし(ステップS182)、テンポ係数T_COEFの差分が修正後の差分リミットβ以内である場合には、ステップS182をスキップしてステップS183に進む。
【0122】
ステップS183では、今回算出した最終のテンポ係数T_COEF値が、ステップS63またはS128で修正した下限値γ以上、上限値δ以下であるか否かを判別し、テンポ係数T_COEF値がこの条件を満たさない場合には、テンポ係数T_COEFが下限値γと上限値δの間になるようにリミットした(ステップS184)後に、本テンポ係数リミット処理を終了し、一方、テンポ係数T_COEF値がこの条件を満たす場合には、直ちに本テンポ係数リミット処理を終了する。
【0123】
以上説明したように本実施例では、追従度A〜Cに応じて追従度制御に用いる各種値α〜δの初期値を設定し、該初期値を難易度設定操作子231から出力された難易度係数D_COEFに応じて修正し、難易度を調節するように構成したので、操作者が曲や装置への自分の習熟度に合わせてテンポ制御の難易度(安定度または音楽表現力)を調節することができる。
【0124】
また、マークデータと自動演奏データとを混在させたので、RAM28の記憶容量を削減することができ、これによりコストの低減化を図ることができる。
【0125】
なお、本実施例では、各種値α〜δの初期値は各追従度A〜Cに応じて予め記憶された値を読み出して設定するようにしたが、これに限らず、各種値α〜δの初期値を変更できるようにしてもよい。例えば、操作者が任意に決定できるようにしてもよいし、複数の値のセットを予め用意しておき、そのいずれかを選択できるようにしてもよい。また、曲毎に最適なセットを持つようにしてもよいし、複数のセットを用意しておき、曲に応じて最適なセットを自動的に選択するようにしてもよい。
【0126】
また、追従度は、本実施例のように3種類に限る必要はなく、1種類(例えば、曲の中で変化しないようにしたり、全ての曲に対して同様の追従度を設定したりする)でもよいし、2種類または4種類以上でもよい。すなわち、追従度の種類に拘わらず、各追従度を変更できるように構成されていればよい。
【0127】
さらに、本実施例では、追従度によって、移動平均の次数、前回値との差分、値の上下限値およびマークデータを読み飛ばす割合の5種類の条件を制御するように構成したが、これらの条件の一部を組み合わせて追従度制御に用いてもよいし、他の条件を制御するようにしてもよい。
【0128】
なお、本実施例では、テンポの制御は、デルタタイムの値にテンポ係数T_COEFを乗算し、デルタタイムの値を増加または減少させることによって行うように構成したが、これに限らず、処理の周期、例えば本実施例でいう割込みタイミングを変換させることによってテンポを変化させるように構成してもよい。また、デルタタイムの値を変化させるとき、所定の値を乗算するものに限らず、所定の値を加算するものであってもよい。
【0129】
また、テンポの制御だけに限らず、ダイナミクスの制御などについても、テンポ制御と同様の難易度制御を行なうようにしてもよい。
【0130】
また、本実施例では、2個の圧電ジャイロセンサ2,3からの出力信号に基づいてテンポ制御信号出力装置1の揺動動作を検出したが、3個以上の圧電ジャイロセンサを用いて揺動動作を検出するようにしてもよい。また、揺動動作を検出できるものであれば圧電ジャイロセンサに限らず、加速度センサや磁気または光を用いたもの等どのようなものであってもよいし、複数のセンサを組み合わせて用いてもよい。さらに、揺動動作を検出できるものであればセンサに限らず、揺動動作を撮像し、画像処理によって揺動操作を検出するようなものであってもよい。
【0131】
さらに、本実施例では、検出する揺動動作の種類を前記3種類に限定したが、これに限らず、もっと多くの種類の揺動動作を検出するようにしてもよい。この場合には、圧電ジャイロセンサの個数を多くしてより多くの揺動動作を正確に検出できるようにすればよい。なお、本実施例の3種類の揺動動作の検出においても、例えば、3拍子用と、2・4拍子用とで、異なるセンサを用いて判別精度を向上させるようにしてもよいし、3つ以上のセンサ出力を総合判断して揺動動作を検出するようにしてもよい。
【0132】
また、揺動動作を検出するセンサを取り付ける形態としては、本実施例のように片手に把持できるテンポ制御信号出力装置1に内蔵する他、センサを身体(例えば、手や腕等)に装着するようにしてもよいし、マイクロフォンに内蔵するようにしてもよいし、カラオケ装置等のリモコン装置に内蔵するようにしてもよい。
【0133】
また、本実施例では、テンポ制御信号出力装置1の揺動動作に基づいてテンポ制御信号を発生するようにしたが、これに限らず、タッピング操作や演奏操作子の操作等によってテンポ制御信号を発生するようにしてもよい。
【0134】
なお、本実施例では、操作者の揺動動作の動作種類およびその特徴点(ピークや谷)を検出してテンポ制御タイミングを出力するテンポ制御信号出力装置1とその被制御対象である自動演奏装置付き電子楽器21とを別体で構成したが、これらを1つの装置として構成してもよい。また、外部に接続された装置にテンポクロックを供給し、その外部装置の演奏テンポを制御するように構成してもよい。
【0135】
また、音楽制御する対象としては、自動演奏に限る必要はなく、自動伴奏または自動リズム等であってもよい。また、これらの再生に加え、動画等の画像再生を伴うものであってもよい。
【0136】
【発明の効果】
以上説明したように、本発明に依れば、自動演奏データ記憶手段から自動演奏データが読み出されて自動演奏されているときに、操作者の動作に基づく連動が検出されると、それに対応して出力された動作検出信号に応じて、音楽制御信号発生手段から音楽制御信号が発生され、この音楽制御信号および自動演奏手段により読み出された自動演奏データに基づいて音楽制御値が算出され、その算出された音楽制御値が難易度調節手段により調節された難易度に応じて変更され、その変更された音楽制御値に基づいて自動演奏の音楽特性が制御されるので、操作者が曲や装置への自分の習熟度に合わせて音楽特性制御の難易度(安定度または音楽表現力)を調節することが可能となる効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施例に係る音楽制御装置の概略構成を示すブロック図である。
【図2】図1の自動演奏装置付き電子楽器のスイッチ群中の一スイッチである難易度設定操作子を示す図である。
【図3】図1のテンポ制御信号出力装置により検出される操作者の動作と各動作に応じてテンポ制御信号出力装置から出力される信号の値とを示す図である。
【図4】図1の電子楽器の自動演奏データのデータフォーマットを示す図である。
【図5】図1のテンポ制御信号出力装置のCPUが実行する圧電振動ジャイロセンサ出力処理の手順を示すフローチャートである。
【図6】図5のステップS3のピーク検出処理サブルーチンの詳細な手順を示すフローチャートである。
【図7】図6のステップS12のピーク種類判定処理サブルーチンの詳細な手順を示すフローチャートである。
【図8】図7のステップS24のピーク2判定処理サブルーチンの詳細な手順を示すフローチャートである。
【図9】図8のステップS34のピーク3判定処理サブルーチンの詳細な手順を示すフローチャートである。
【図10】図1の各圧電ジャイロセンサからの出力に基づいてテンポ制御信号出力装置の振り角度を算出する方法を説明するための図である。
【図11】図1の自動演奏装置付き電子楽器のCPUが実行するメインルーチンの手順を示すフローチャートである。
【図12】図2の難易度設定操作子が操作されたときに行われる難易度操作子処理の手順を示すフローチャートである。
【図13】追従度制御を行うための各種値α〜δの具体例および難易度に応じた値の修正例を示す図である。
【図14】自動演奏データの再生処理の手順を示すフローチャートである。
【図15】テンポ制御間隔INTERVALとデルタタイム累算値DELTA_ACMとの関係を説明するための図である。
【図16】図14のステップS106のイベント対応処理サブルーチンの詳細な手順を示すフローチャートである。
【図17】図14のステップS113のテンポキーオン受信処理サブルーチンの詳細な手順を示すフローチャートである。
【図18】デルタタイム累算値DELTA_ACMの具体的な算出方法を説明するための図である。
【図19】図17のステップS147およびS159のテンポ係数計算処理サブルーチンの詳細な手順を示すフローチャートである。
【図20】図17のステップS148およびS160のテンポ係数リミット処理サブルーチンの詳細な手順を示すフローチャートである。
【符号の説明】
1 テンポ制御信号出力装置(音楽制御信号発生手段)
231 難易度設定操作子(難易度調節手段)
26 CPU(自動演奏手段、音楽制御手段、音楽制御値算出手段、選択手段、平均化手段、変更手段、変化幅変更手段)
28 RAM(自動演奏データ記憶手段、音楽制御値記憶手段)
Claims (10)
- 操作者の動作に基づく運動を検出し、対応する動作検出信号を出力する動作検出手段であって、操作者に装着または所持されるものと、
該動作検出手段によって出力された動作検出信号に応じて音楽制御信号を発生する音楽制御信号発生手段と、
操作者が音楽制御の難易度を調節するための難易度調節手段と、
自動演奏データを記憶する自動演奏データ記憶手段と、
該記憶された自動演奏データを読み出して自動演奏する自動演奏手段と、
該自動演奏手段による自動演奏の音楽特性を前記発生された音楽制御信号に基づいて制御する音楽制御手段と、
前記音楽制御信号発生手段により発生された音楽制御信号および前記自動演奏手段により読み出された自動演奏データに基づいて、前記音楽制御手段が音楽特性制御に用いる音楽制御値を算出する音楽制御値算出手段と
を有し、
該音楽制御手段は、前記難易度調節手段により調節された難易度に応じて前記算出された音楽制御値を変更し、該変更後の音楽制御値に基づいて自動演奏の音楽特性を制御することを特徴とする音楽制御装置。 - 操作者の動作に基づく運動を検出し、対応する動作検出信号を出力する動作検出手段であって、操作者に装着または所持されるものと、
該動作検出手段によって出力された動作検出信号に応じて音楽制御信号を発生する音楽制御信号発生手段と、
操作者が音楽制御の難易度を調節するための難易度調節手段と、
自動演奏データを記憶する自動演奏データ記憶手段と、
該記憶された自動演奏データを読み出して自動演奏する自動演奏手段と、
該自動演奏手段による自動演奏の音楽特性を前記発生された音楽制御信号に基づいて制御する音楽制御手段と、
音楽制御値を所定個記憶するための記憶領域を備えた音楽制御値記憶手段と、
前記音楽制御信号発生手段により発生された音楽制御信号および前記自動演奏手段により読み出された自動演奏データに基づいて、前記音楽制御手段が音楽特性制御に用いる音楽制御値を算出する音楽制御値算出手段と
を有し、
前記音楽制御値算出手段は、
前記記憶領域に記憶された音楽制御値を、新たな音楽制御値が算出される度に更新する更新手段と、
前記難易度調節手段により調節された難易度に応じて、前記記憶された音楽制御値から所定個の音楽制御値を選択し、該選択された所定個の音楽制御値と当該音楽制御値算出手段により新たに算出された音楽制御値とを平均化する平均化手段と
を有し、前記音楽制御値の算出は、平均化による算出を含むものであり、
前記音楽制御手段は、前記平均化された音楽制御値に基づいて自動演奏の音楽特性を制御するとともに、前記難易度調節手段により調節された難易度に応じて前記算出された音楽制御値を変更し、該変更後の音楽制御値に基づいて自動演奏の音楽特性を制御する
ことを特徴とする音楽制御装置。 - 前記難易度調節手段により調節された難易度に応じて、前記音楽制御値算出手段により算出された音楽制御値を変更する際の上限値または下限値を変更する変更手段を有することを特徴とする請求項1に記載の音楽制御装置。
- 前記難易度調節手段により調節された難易度に応じて、前記音楽制御値算出手段により算出された音楽制御値を変更する際の変化幅を変更する変化幅変更手段を有することを特徴とする請求項1または3のいずれかに記載の音楽制御装置。
- 前記自動演奏データ記憶手段は、前記自動演奏データとともに所定タイミング毎に音楽制御用マークデータを記憶し、
前記自動演奏手段は、該記憶された音楽制御用マークデータから、前記難易度調節手段により調節された難易度に応じて所定数の音楽制御用マークデータを読み飛ばし、
前記音楽制御値算出手段は、該読み出された音楽制御用マークデータおよび前記発生された音楽制御信号に基づいて音楽制御値を算出することを特徴とする請求項1記載の音楽制御装置。 - 前記自動演奏データ記憶手段は、前記自動演奏データとともに、該自動演奏データ固有の音楽特性に追従すべき程度であって、当該自動演奏の音楽特性を制御する際の追従の程度を示す追従度データを記憶し、
前記自動演奏手段は、該記憶された追従度データを読み出し、
前記音楽制御手段は、前記難易度調整手段によって調節された難易度に応じて、前記読み出された追従度データによって示される追従の程度の高低を変更し、該変更後の追従の程度に基づいて自動演奏の音楽特性を制御することを特徴とする請求項1記載の音楽制御装置。 - 前記追従度データは、曲の途中に、少なくとも1つ以上埋め込まれ、曲の進行に従って前記自動演奏手段が前記追従度データを読み出し、該読み出された追従度データによって示される追従度の程度の高低が、前記調節された難易度に応じて変化することを特徴とする請求項6記載の音楽制御装置。
- 前記動作検出手段は、操作者の揺動動作に基づく運動を検出することを特徴とする請求項1記載の音楽制御装置。
- 前記動作検出手段は、センサの個数を多くすることで操作者の動作に基づく運動を複数種類検出し、該検出された複数種類の運動を総合的に判断して、前記動作検出信号を出力することを特徴とする請求項1記載の音楽制御装置。
- 操作者の動作に基づく運動を検出し、対応する動作検出信号を出力する動作検出手段であって、操作者に装着または所持されるものと、
該動作検出手段によって出力された動作検出信号に応じて音楽制御信号を発生する音楽制御信号発生手段と、
操作者が音楽制御の難易度を調節するための難易度調節手段と、
自動演奏データを記憶する自動演奏データ記憶手段と、
該記憶された自動演奏データを読み出して自動演奏する自動演奏手段と、
該自動演奏手段による自動演奏の音楽特性を前記発生された音楽制御信号に基づいて制御する音楽制御手段と、
前記難易度調節手段により調節された難易度が易から難に行くに従って、当該自動演奏の音楽特性を制御する際の追従の程度が高くなって行くように変更する変更手段とを有し、
前記音楽制御手段は、前記変更手段によって変更された追従の程度に応じて、当該自動演奏の音楽特性を制御することを特徴とする音楽制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002212882A JP3720004B2 (ja) | 2002-07-22 | 2002-07-22 | 音楽制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002212882A JP3720004B2 (ja) | 2002-07-22 | 2002-07-22 | 音楽制御装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13995595A Division JP3427569B2 (ja) | 1995-05-15 | 1995-05-15 | 音楽制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003091280A JP2003091280A (ja) | 2003-03-28 |
JP3720004B2 true JP3720004B2 (ja) | 2005-11-24 |
Family
ID=19195930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002212882A Expired - Fee Related JP3720004B2 (ja) | 2002-07-22 | 2002-07-22 | 音楽制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3720004B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4618058B2 (ja) * | 2005-09-01 | 2011-01-26 | 株式会社日立製作所 | 背景画像生成方法とその装置及び画像監視システム |
JP4320782B2 (ja) | 2006-03-23 | 2009-08-26 | ヤマハ株式会社 | 演奏制御装置、およびプログラム |
JP5272899B2 (ja) * | 2009-06-02 | 2013-08-28 | カシオ計算機株式会社 | 楽曲難易度算出装置および楽曲難易度算出プログラム |
JP5771908B2 (ja) * | 2010-06-07 | 2015-09-02 | ヤマハ株式会社 | 楽音再生装置及びプログラム |
CN109478398B (zh) * | 2016-07-22 | 2023-12-26 | 雅马哈株式会社 | 控制方法以及控制装置 |
-
2002
- 2002-07-22 JP JP2002212882A patent/JP3720004B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003091280A (ja) | 2003-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4353018B2 (ja) | 楽器演奏教習装置及びそのプログラム | |
EP1748417B1 (en) | Tone generator control apparatus and program for electronic wind instrument | |
US8653350B2 (en) | Performance apparatus and electronic musical instrument | |
US20120006181A1 (en) | Performance apparatus and electronic musical instrument | |
JP2658463B2 (ja) | 自動演奏装置 | |
JP2000020054A (ja) | カラオケ装置 | |
JP3598613B2 (ja) | 楽音パラメータ制御装置 | |
US8373054B2 (en) | Electronic musical instrument | |
JP3720004B2 (ja) | 音楽制御装置 | |
JP3750699B2 (ja) | 楽音再生装置 | |
US5629491A (en) | Tempo control apparatus | |
JP3427569B2 (ja) | 音楽制御装置 | |
JP2009198714A (ja) | カラオケ装置及びカラオケ伴奏音楽の再生処理方法及びプログラム | |
JP3728814B2 (ja) | 自動伴奏装置 | |
JP3152104B2 (ja) | テンポ制御装置 | |
JP3627321B2 (ja) | 演奏制御装置 | |
JP3449045B2 (ja) | 演奏制御装置 | |
JP3303608B2 (ja) | 自動演奏装置 | |
JP3149736B2 (ja) | 演奏ダイナミクス制御装置 | |
JP3259602B2 (ja) | 自動演奏装置 | |
JP3471480B2 (ja) | テンポ制御装置 | |
JPH08314455A (ja) | 音楽制御装置 | |
JP3279122B2 (ja) | テンポ制御装置 | |
US20020046639A1 (en) | Method and apparatus for waveform reproduction | |
JP3372048B2 (ja) | 自動演奏装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050805 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050906 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120916 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130916 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |