JP3149736B2 - 演奏ダイナミクス制御装置 - Google Patents

演奏ダイナミクス制御装置

Info

Publication number
JP3149736B2
JP3149736B2 JP16917495A JP16917495A JP3149736B2 JP 3149736 B2 JP3149736 B2 JP 3149736B2 JP 16917495 A JP16917495 A JP 16917495A JP 16917495 A JP16917495 A JP 16917495A JP 3149736 B2 JP3149736 B2 JP 3149736B2
Authority
JP
Japan
Prior art keywords
value
peak
register
dynamics
tempo
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
Application number
JP16917495A
Other languages
English (en)
Other versions
JPH08339181A (ja
Inventor
聡史 宇佐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP16917495A priority Critical patent/JP3149736B2/ja
Priority to US08/643,121 priority patent/US5663514A/en
Publication of JPH08339181A publication Critical patent/JPH08339181A/ja
Application granted granted Critical
Publication of JP3149736B2 publication Critical patent/JP3149736B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は電子楽器などの楽音演
奏におけるダイナミクスを演奏者の身振り動作に応じて
制御することのできる演奏ダイナミクス制御装置に関す
る。
【0002】
【従来の技術】従来、自動演奏装置はメロディ演奏や伴
奏演奏の各音符に関する演奏情報(音符データ)をメモ
リ等に記憶しておき、その記憶された演奏情報を所定の
テンポで自動的に読み出し、読み出された演奏情報に従
ってメロディ音や伴奏音を発音する。この場合、演奏の
テンポはタイマ等から出力されるテンポクロックの周波
数によって決定される。このテンポクロックの周波数は
テンポ設定スイッチ等を操作することによって自由に可
変することができる。ところが、テンポ設定スイッチな
どを操作して演奏中の演奏テンポを変化させた場合、そ
の変化の仕方がスイッチの操作状態(操作量や操作速度
など)に依存するため、実際の演奏時における指揮棒な
どの手振り動作に対応したような微妙なテンポ変化を与
えることは非常に困難であった。
【0003】そこで、最近では、操作者の指揮棒などに
加速度センサを内蔵し、その手振り動作に応じた加速度
センサの出力の最大値を検出し、その検出タイミングで
自動演奏のテンポを制御するようにしたものが現れてい
る。このものは加速度センサの出力最大値を検出した時
点で発音したり、シーケンスデータを進めたりすること
によって、演奏のテンポを任意に制御することができる
と共に、この加速度センサの出力値に応じて演奏のダイ
ナミクス(演奏時におけるサウンドに強弱をつけて演奏
全体に躍動感を与えること)をも任意に制御できるよう
になっている。すなわち、操作者の手振り動作が大きい
場合には、加速度センサの出力が大きくなり、それに応
じて演奏ダイナミクスも大きくなり、サウンドの変化の
割合も大きくなり、演奏が全体的に力強くなる。逆に、
操作者の手振り動作が小さい場合には、加速度センサの
出力が小さくなり、それに応じて演奏ダイナミクスも小
さくなり、サウンドの変化の割合も小さくなり、演奏が
全体的に弱々しくなる。
【0004】
【発明が解決しようとする課題】実際の指揮法による演
奏においては、指揮者の打点動作、加速減速動作、クリ
ッキング動作、打点を結ぶ指揮棒の先端の描く線の形な
どの種々の要因に応じて、演奏ダイナミクスは制御され
ている。しかしながら、従来は操作者の手振り動作すな
わち加速度センサの出力に応じて演奏ダイナミクスを制
御していたため、操作者が指揮法にどれだけ習熟してい
るか、操作者のその時の気分や音楽の内容(曲ジャン
ル)などによっても、手振り動作の強さ、速さなどにバ
ラツキが生じ、そのバラツキがそのまま加速度センサの
出力値のバラツキとして現れ、操作者自身の意図するダ
イナミクスで演奏を行うことが非常に困難であるという
問題があった。例えば、2拍子や4拍子における上下手
振り運動や3拍子における三角形手振り運動において、
特に意識せずに手を振った場合、操作者自身は同じ強
さ、同じ速さで振っているつもりでも、大抵の場合振り
降ろし動作(ダウンビート)の方が、振り上げ動作(ア
ップビート)や3拍子の2拍目の横振り動作に比べて強
く、速く振り動作を行っている。従って、操作者自身は
均等な強さ、速さで振っているつもりでも、加速度セン
サの出力値もこの振り動作の相違に応じて変化してしま
い、振り降ろし動作(ダウンビート)による加速度セン
サ出力の方が自然と大きくなり、結果として演奏ダイナ
ミクスも振り降ろし動作(ダウンビート)時のものがこ
れ以外の振り動作のものよりも大きくなり、演奏ダイナ
ミクスが操作者の手振り動作の癖に依存したような変化
をするようになる。
【0005】この発明は上述の点に鑑みてなされたもの
であり、操作者の身振り動作の癖などに伴う演奏ダイナ
ミクスのバラツキを無くし、操作者の意図した演奏ダイ
ナミクスを与えることのできる演奏ダイナミクス制御装
置を提供することを目的とする。
【0006】
【課題を解決するための手段】この発明に係る演奏ダイ
ナミクス制御装置は、操作者の身振り動作に基づいてそ
の動作種類及び動作量を検出する動作検出手段と、この
動作検出手段によって検出された前記動作種類に応じて
前記動作量を補正する補正する補正手段と、この補正手
段によって補正された前記動作量に基づいて演奏のダイ
ナミクスを制御する制御手段とから構成されるものであ
る。
【0007】
【作用】動作検出手段は操作者の身振り動作すなわち指
揮者の手振り動作や揺動動作などに基づいて動作の種類
及び動作量を検出する。例えば、直交する2つの角速度
センサからなる動作検出手段を指揮棒内に設けた場合、
操作者が指揮棒を上下手振り運動又は三角手振り運動さ
せることによって、動作検出手段は2つのセンサ出力に
基づいて指揮棒の振られた方向を動作種類として検出
し、このときのセンサ出力の極大値を動作量として検出
する。補正手段は、指揮棒の振られた方向が振り降ろし
動作(ダウンビート)の場合には補正せず、振り上げ動
作(アップビート)や三角手振り運動の横振り動作の場
合にはそのセンサ出力が増加するように補正する。これ
によって、操作者の身振り動作の癖などに伴う動作量の
バラツキが均一化される。制御手段はこの補正手段によ
って補正された動作量に基づいて演奏のダイナミクスを
制御するので、操作者の身振り動作の癖などに伴うバラ
ツキのない、操作者の意図したダイナミクスに従った演
奏を行わせることができるようになる。なお、制御手段
は演奏ダイナミクス制御の他に請求項2に記載のように
動作検出手段によって検出された動作種類及び動作量に
基づいて演奏のテンポを制御してもよい。
【0008】
【実施例】以下、この発明の実施例を添付図面に従って
詳細に説明する。図1は鍵盤、音源回路及び自動演奏装
置を内蔵した電子楽器1Hと、この電子楽器1Hに操作
者の手振り動作に応じたテンポ制御信号を出力する指揮
棒20との詳細構成及び両者間の接続関係を示すハード
ブロック図である。まず、電子楽器1Hの構成について
説明する。マイクロプロセッサユニット(CPU)11
はこの電子楽器1Hの全体動作を制御するものである。
このCPU11に対して、バス1Gを介してROM1
2、RAM13、押鍵検出回路14、スイッチ検出回路
15、表示回路16、音源回路17、効果付与回路1
8、タイマ19、フロッピーディスクドライブ(FD
D)1A及びMIDIインターフェイス(I/F)1B
がそれぞれ接続されている。
【0009】この実施例ではCPU11によって押鍵検
出処理やテンポ制御データの送受信処理及び発音処理等
を行う電子楽器について説明するが、押鍵検出回路14
からなるモジュールや音源回路17からなるモジュール
とがそれぞれ別々に構成され、各モジュール間のデータ
の授受をMIDIインターフェイスで行うように構成さ
れたものにも同様に適用できることは言うまでもない。
ROM12はCPU11の各種プログラムや各種データ
を格納するものであり、リードオンリーメモリ(RO
M)で構成されている。RAM13は演奏情報やCPU
11がプログラムを実行する際に発生する各種データを
一時的に記憶するものであり、ランダムアクセスメモリ
(RAM)の所定のアドレス領域がそれぞれ割り当てら
れ、レジスタやフラグとして利用される。
【0010】鍵盤1Cは発音すべき楽音の音高を選択す
るための複数の鍵を備えており、各鍵に対応してキース
イッチを有しており、また必要に応じて押鍵速度検出装
置や押圧力検出装置等のタッチ検出手段を有している。
鍵盤1Cは音楽演奏のための基本的な操作子であり、こ
れ以外の演奏操作子、例えばドラムパッド等でもよいこ
とはいうまでもない。押鍵検出回路14は発生すべき楽
音の音高を指定する鍵盤1Cのそれぞれの鍵に対応して
設けられた複数のキースイッチからなる回路を含んで構
成されており、新たな鍵が押圧されたときはキーオンイ
ベント情報を出力し、鍵が新たに離鍵されたときはキー
オフイベント情報を出力する。また、鍵押し下げ時の押
鍵操作速度又は押圧力等を判別してタッチデータを生成
する処理を行い、生成したタッチデータをベロシティデ
ータとして出力する。このようにキーオン、キーオフイ
ベント情報及びベロシティ情報はMIDI規格で表現さ
れておりキーコードと割当てチャンネルを示すデータを
も含んでいる。
【0011】パネルスイッチ1Dは自動演奏スタート/
ストップスイッチ、一時停止(ポーズ)スイッチ、音
色、音量、効果等を選択・設定・制御するための各種ス
イッチを含むものである。パネルスイッチ1Dにはこの
他にも色々なスイッチを有するが、その詳細については
公知なので説明を省略する。スイッチ検出回路15はパ
ネルスイッチ1D上の各操作子の操作状態を検出し、そ
の操作状態に応じたスイッチイベントをバス1Gを介し
てCPU11に出力する。表示回路16はCPU11の
制御状態、設定データの内容等の各種の情報を表示部1
Eに表示するものである。表示部1Eは液晶表示パネル
(LCD)等から構成され、表示回路16によってその
表示動作を制御される。
【0012】音源回路17は複数のチャンネルで楽音信
号の同時発生が可能であり、バス1Gを経由して与えら
れた演奏情報(MIDI規格に準拠したデータ)を入力
し、このデータに基づき楽音信号を発生する。音源回路
17における楽音信号発生方式はいかなるものを用いて
もよい。例えば、発生すべき楽音の音高に対応して変化
するアドレスデータに応じて波形メモリに記憶した楽音
波形サンプル値データを順次読み出すメモリ読み出し方
式、又は上記アドレスデータを位相角パラメータデータ
として所定の周波数変調演算を実行して楽音波形サンプ
ル値データを求めるFM方式、あるいは上記アドレスデ
ータを位相角パラメータデータとして所定の振幅変調演
算を実行して楽音波形サンプル値データを求めるAM方
式等の公知の方式を適宜採用してもよい。
【0013】効果付与回路18は音源回路17からの楽
音信号に種々の効果を付与し、効果の付与された楽音信
号をサウンドシステム1Fに出力する。効果付与回路1
8によって効果の付与された楽音信号は、図示しないア
ンプ及びスピーカからなるサウンドシステム1Fを介し
て発音される。タイマ19は時間間隔を計数したり、自
動演奏のテンポを決定するためのクロックパルスを発生
するものであり、このクロックパルスはCPU11に対
してインタラプト命令として与えられるので、CPU1
1はインタラプト処理により各種の処理を実行する。フ
ロッピーディスクドライブ(FDD)1Aは外部記憶媒
体すなわちフロッピーディスクから自動演奏データを電
子楽器1H内に取り込んだり、電子楽器1H内で処理さ
れた自動演奏データをフロッピーディスクに書き込んだ
りするインターフェイスである。
【0014】MIDIインターフェイス(I/F)1B
は電子楽器1Hのバス1Gと指揮棒20のMIDIイン
ターフェイス(I/F)27との間を接続し、MIDI
インターフェイス27は指揮棒20のバス2EとMID
Iインターフェイス1Bとの間を接続している。従っ
て、電子楽器1Hのバス1Gと指揮棒20のバス2Eと
の間は、MIDIインターフェイス1B及び27を介し
て接続され、両者の間では、MIDI規格に準拠したデ
ータのやり取りが双方向で行えるようになっている。
【0015】次に、指揮棒20の構成について説明す
る。マイクロプロセッサユニット(CPU)21はこの
指揮棒20の動作を制御するものである。このCPU2
1に対しては、バス2Eを介してROM22、RAM2
3、スイッチ検出回路24、A/D変換器25,26、
MIDIインターフェイス27及びタイマ28がそれぞ
れ接続されている。ROM22はCPU21の各種プロ
グラムや各種データを格納するものであり、リードオン
リーメモリ(ROM)で構成されている。RAM23は
CPU21がプログラムを実行する際に発生する各種デ
ータを一時的に記憶するものであり、ランダムアクセス
メモリ(RAM)の所定のアドレス領域がそれぞれ割り
当てられ、レジスタやフラグとして利用される。スイッ
チ群29は指揮棒20のオン/オフスイッチやテンポ制
御信号の出力タイミングを調整するためのディレイタイ
ムスイッチ等で構成される。スイッチ検出回路24はス
イッチ群29の操作状態を検出し、その操作状態に応じ
たデータをバス2Eを介してCPU21に出力する。
【0016】X方向圧電振動ジャイロセンサ2A及びY
方向圧電振動ジャイロセンサ2Bは、センサが1つの回
転軸を中心として回転した場合にその回転の角速度に比
例するコリオリの力に比例した電圧を発生する圧電振動
ジャイロセンサを直交する2軸(X軸及びY軸)に設け
たものである。従って、X方向圧電ジャイロセンサ2A
から出力される電圧に基づいてX軸方向の角速度ωXを
検出することができ、Y方向圧電ジャイロセンサ2Bか
ら出力される電圧に基づいてY軸方向の角速度ωYを検
出することができる。
【0017】ノイズ除去回路2C及び2DはX方向圧電
振動ジャイロセンサ2A及びY方向圧電ジャイロセンサ
2Bからの各センサ出力信号に含まれるセンサ内部のノ
イズ成分を除去するものであり、応答周波数以上の高周
波成分を除去するローパスフィルタで構成される。A/
D変換器25及び26はノイズ除去回路2C及び2Dに
よって高周波成分の除去されたセンサ出力信号をディジ
タル信号に変換するものである。このA/D変換器25
及び26によって変換されたディジタル信号は所定周期
でCPU21によって読み取られ、所定のデータ処理に
よって指揮棒20全体の動作判定処理に利用される。
【0018】タイマ28は指揮棒20の動作クロックを
発生するものであり、この動作クロックがCPU21に
対してインタラプト命令として与えられ、CPU21は
インタラプト処理により指揮棒20の動作状態を検出
し、動作状態に応じて自動演奏のテンポを決定するため
のテンポ制御信号をMIDIインターフェイス27及び
1Bを介して電子楽器1H側に出力する。
【0019】次に、指揮棒20内のマイクロコンピュー
タ(CPU21)によって実行される処理の一例を図2
から図10のフローチャートに基づいて説明する。図2
は指揮棒20内のマイクロコンピュータ(CPU21)
が処理するセンサ出力処理の一例を示す図である。この
センサ出力処理はタイマ28からの動作クロック(周期
約10ms)に同期して実行されるタイマ割り込み処理
である。このセンサ出力処理はプログラムROM22に
格納されている制御プログラムに応じた一連の処理であ
り、次のようなステップで順番に実行される。
【0020】ステップ1:X方向圧電振動ジャイロセン
サ2A及びY方向圧電振動ジャイロセンサ2Bの出力、
すなわちA/D変換器25及び26から出力されるディ
ジタル信号をバス2Eを介して取り込む。 ステップ2:直流成分を除去する。すなわち、指揮棒2
0を操作する操作者が手振り動作以外の旋回動作などの
低速回転動作を行うと、それに応じた直流成分すなわち
ドリフト成分が発生するので、ステップ1で取り込んだ
ディジタル信号を低周波の遮断周波数を持つハイパスフ
ィルタを通過させることによって、それを除去する。
【0021】ステップ3:直流成分の除去されたX方向
圧電振動ジャイロセンサ2A及びY方向圧電振動ジャイ
ロセンサ2Bの出力X及びYに基づいて絶対角速度を算
出し、それを絶対角速度レジスタA_SPEEDに格納
する。絶対角速度は図2のステップ3に示すような演算
式、出力X及びYの二乗の和のルートを取ることによっ
て算出される。なお、このステップによって算出された
絶対角速度の値を、時間を横軸としてプロットすると図
12(A)に示すようなものになる。 ステップ4:今回のタイマ割り込み時点からm回前のタ
イマ割り込み時点までの各タイミングのステップ3で算
出された絶対角速度の平均値を算出し、それを移動平均
値として移動平均レジスタM_AVERAGEに格納す
る。例えば、mが『8』の場合には各タイミングで算出
された8個の絶対角速度の和を8で除することによって
移動平均値が得られる。 ステップ5:今回のタイマ割り込み時点からn回前のタ
イマ割り込み時点までの各タイミングのステップ4で算
出され、移動平均レジスタM_AVERAGEに格納さ
れている移動平均値の平均値を算出し、それをダイナミ
ックしきい値としてダイナミックしきい値レジスタDY
NA_THREに格納する。
【0022】ステップ6:前回値レジスタNOWの格納
値を前々回値レジスタOLDに格納し、今回値レジスタ
NEWの格納値を前回値レジスタNOWに格納し、今回
算出された移動平均値(移動平均レジスタM_AVER
AGEの格納値)を今回値レジスタNEWに格納する。
すなわち、前々回値レジスタOLD、前回値レジスタN
OW及び今回値レジスタNEWの格納値をそれぞれ新し
い値にシフトする。 ステップ7:前々回値レジスタOLD、前回値レジスタ
NOW及び今回値レジスタNEWのそれぞれの格納値に
基づいたピーク検出処理を行う。図3はこのピーク検出
処理の詳細を示す図である。このピーク検出処理は次の
ようなステップで順番に実行される。
【0023】ステップ70:前回値レジスタNOWの格
納値が、前々回値レジスタOLDの格納値以上及び今回
値レジスタNEWの格納値以上であるかどうか、すなわ
ち前回のタイマ割り込みの時点で検出された移動平均値
が極大値(ピーク)かどうかの判定を行い、YESの場
合は次のステップ71に進み、NOの場合は図2のステ
ップ8に進む。 ステップ71:前回のタイマ割り込みの時点が移動平均
値の極大値(ピーク)だと前記ステップ70で判定され
たので、ここでは今回のピーク判定時点が前回のピーク
判定時点から起算して所定時間経過したかどうかの判定
を行い、所定時間経過している場合(YES)には次の
ステップ72に進み、所定時間経過していない(NO)
場合には直ちに図2のステップ8に進む。すなわち、前
回のピーク判定時点から所定時間経過していない時点で
再びステップ70でYESと判定されたピークは、操作
者の手振り動作の乱れによって生じた疑似のピーク値だ
ということを意味するからである。
【0024】ステップ72:前回値レジスタNOWの格
納値が一定しきい値よりも大きいかどうかを判定し、大
きい(YES)場合は次のステップ73に進み、小さい
(NO)場合は直ちに図2のステップ8に進む。すなわ
ち、前回値レジスタNOWの格納値が一定しきい値より
も小さいということは、ステップ70及びステップ71
でYESと判定されたピークは、操作者の手振り動作の
乱れによって生じた疑似のピーク値だということを意味
するからである。 ステップ73:前回値レジスタNOWの格納値が図2の
ステップ5で算出されダイナミックしきい値レジスタD
YNA_THREに格納されているダイナミックしきい
値よりも大きいかどうかを判定し、大きい(YES)場
合は次のステップ74に進み、小さい(NO)場合は直
ちに図2のステップ8に進む。すなわち、ピーク値はダ
イナミックしきい値よりも必ず大きいからである。
【0025】ステップ74:前回値レジスタNOWの格
納値が、前回ピーク値レジスタLAST_PEAKの格
納値に1以下の所定係数Aを乗じたものよりも大きいか
どうかを判定し、大きい(YES)場合は次のステップ
75に進み、小さい場合は直ちに図2のステップ8に進
む。すなわち、ピーク値は前回のピーク値にだいたい近
似した値となると考えられるからである。 ステップ75:今回のタイマ割り込みの時点以前にピー
ク検出処理又は谷検出処理によって検出されたのが谷か
どうかの判定を行い、前回検出されたのが谷(YES)
の場合は今回検出されたピークは正しいと考えられるの
で次のステップ76に進み、前回検出されたのがピーク
(NO)の場合はピークが連続することはあり得ないの
で、今回検出されたピークが誤りであると考えられるの
で直ちに図2のステップ8に進む。
【0026】ステップ76:前回ピーク値レジスタLA
ST_PEAKに前回値レジスタNOWの格納値を格納
する。 ステップ77:今回検出されたピークがどのような動作
種類におけるピークであるのかピーク種類判定処理を行
う。すなわち、ステップ70〜ステップ75の処理によ
って判定されたピークが指揮棒20のどの方向に振られ
たことによって発生したものなのかを判定する処理であ
る。
【0027】図4はこのピーク種類判定処理の詳細を示
す図である。このピーク種類判定処理は次のようなステ
ップで順番に実行される。 ステップ770:直流成分の除去されたX方向圧電振動
ジャイロセンサ2Aの出力X及びY方向圧電振動ジャイ
ロセンサ2Bの出力Yに基づいて角度を算出し、それを
角度レジスタθに格納する。角度は図4のステップ77
0に示す演算式、すなわち出力Yを出力Xで除した値の
アークタンジェントによって算出される。
【0028】ステップ771:角度レジスタθの格納値
が180°より大きくて300°以下であるかどうかの
判定を行い、YESの場合は次のステップ772に進
み、NOの場合はステップ773に進む。 ステップ772:今回のピークが動作種類『1』の手振
り動作によって生じたものなので、ここでは今回のピー
クを動作『1』のピークとする。 ステップ773:角度レジスタθの格納値が60°以下
であって300°よりも大きいかどうかの判定を行い、
YESの場合は次のステップ774に進み、NOの場合
はステップ775に進む。 ステップ774:今回のピークが動作種類『2』の手振
り動作によって生じたものなので、ここでは今回のピー
クを動作『2』のピークとする。 ステップ775:ステップ771及びステップ773で
NOと判定されたということは、角度レジスタθの格納
値が180°以下であって60°よりも大きいというこ
と、すなわち、今回のピークが動作種類『3』の手振り
動作によって生じたものであることを意味するので、こ
こでは今回のピークを動作『3』のピークとする。
【0029】図11は、ステップ770の演算式によっ
て求められた角度θと、その動作種類『1』、『2』及
び『3』との関係を示す図である。すなわち、角度θが
180°より大きくて300°以下である(ステップ7
71でYES)と判定されたということは、図示のよう
な動作『1』の方向に、角度θが60°以下であって3
00°よりも大きい(ステップ773でYES)と判定
されたということは、図示のような動作『2』の方向
に、角度θが180°以下であって60°よりも大きい
(ステップ773でNO)と判定されたということは、
図示のような動作『3』の方向に指揮棒20が振られた
ことをそれぞれ意味する。なお、ピーク種類の判定の方
法は上述した方法に限らず、例えば前回ピークの種類や
前回ピークとの角度差などを考慮してもよい。
【0030】ステップ78:今回検出されたピーク値に
基づいてダイナミクス算出処理1〜5の中のいずれか一
つを実行し、ダイナミクスを算出し、図2のステップ8
に進む。このダイナミクス算出処理1〜5の詳細につい
ては後述する。 ステップ8:前々回値レジスタOLD、前回値レジスタ
NOW及び今回値レジスタNEWのそれぞれの格納値に
基づいた谷検出処理を行う。図5はこの谷検出処理の詳
細を示す図である。この谷検出処理は次のようなステッ
プで順番に実行される。
【0031】ステップ80:前回値レジスタNOWの格
納値が、前々回値レジスタOLDの格納値以下であり、
かつ、今回値レジスタNEWの格納値以下であるかどう
か、すなわち前回のタイマ割り込みの時点で検出された
移動平均値が極小値(谷)かどうかの判定を行い、YE
Sの場合は次のステップ81に進み、NOの場合はリタ
ーンして次のタイマ割り込みタイミングまで待機する。 ステップ81:前回のタイマ割り込みの時点が移動平均
値の極小値(谷)となった時点であると前記ステップ8
0で判定されたので、ここでは今回の谷判定時点が前回
の谷判定時点から起算して所定時間経過したかどうかの
判定を行い、所定時間経過している場合(YES)には
次のステップ82に進み、所定時間経過していない(N
O)場合には、今回の谷判定は誤りであると考えられる
のでリターンして次のタイマ割り込みタイミングまで待
機する。
【0032】ステップ82:前回値レジスタNOWの格
納値が一定しきい値よりも小さいかどうかを判定し、小
さい(YES)場合は次のステップ83に進み、大きい
(NO)場合は今回の谷判定が誤りであると考えられる
のでリターンして次のタイマ割り込みタイミングまで待
機する。 ステップ83:前回値レジスタNOWの格納値がダイナ
ミックしきい値レジスタDYNA_THREに格納され
ているダイナミックしきい値よりも小さいかどうかを判
定し、小さい(YES)場合は次のステップ84に進
み、大きい(NO)場合は今回の谷判定が誤りであると
考えられるのでリターンして次のタイマ割り込みタイミ
ングまで待機する。
【0033】ステップ84:今回のタイマ割り込みの時
点以前にピーク検出処理又は谷検出処理によって検出さ
れたのがピークかどうかの判定を行い、前回検出された
のがピーク(YES)の場合は今回検出された谷は正し
いと考えられるので次のステップ85に進み、前回検出
されたのが谷(NO)の場合は今回検出された谷は誤り
であると考えられるのでリターンして次のタイマ割り込
みタイミングまで待機する。 ステップ85:今回検出された極小値が正式な谷である
と判定する。以上のようにして、谷が検出されると、今
度は図3のピーク検出処理によってピークの検出が行わ
れるようになる。すなわち、図3のピーク検出処理と図
5の谷検出処理とが交互に行われることによってピーク
と谷の検出が確実に行われる。
【0034】次に図3のステップ78のダイナミクス算
出処理1〜5の詳細について説明する。図6〜図10は
ダイナミクス算出処理1〜5の詳細をそれぞれ示す図で
ある。図6のダイナミクス算出処理1では、図4のピー
ク種類判定処理によって判定されたピークの種類(すな
わち動作種類)『1』、『2』、『3』毎に、異なるテ
ーブルを参照し、そのピーク値をテーブル変換した値を
ダイナミクスとして出力する。
【0035】図7のダイナミクス算出処理2では、図4
のピーク種類判定処理によって判定されたピークの種類
(すなわち動作種類)『1』、『2』、『3』毎に、異
なる係数をピーク値に乗じることによってダイナミクス
を算出している。このダイナミクス算出処理2は次のよ
うなステップで順番に実行される。 ステップ780:ピークの種類すなわち動作種類は
『1』であるかどうかを判定し、『1』(YES)の場
合はステップ782に進み、『2』又は『3』(NO)
の場合はステップ781に進む。 ステップ781:ピークの種類すなわち動作種類は
『2』であるかどうかを判定し、『2』(YES)の場
合はステップ784に進み、『3』(NO)の場合はス
テップ786に進む。
【0036】ステップ782:前記ステップ780で動
作種類『1』のピークである(YES)と判定されたの
で、ここでは、そのピーク値をそのままダイナミクスと
する。すなわち、前回値レジスタNOWに格納されてい
るピーク値をダイナミクスとしてダイナミクスレジスタ
DYNAMICSに格納する。このステップでは係数は
1.0である。 ステップ783:動作『1』に対応したキーコード『C
3』のキーオンと、前記ステップ782によって得られ
たダイナミクスを出力する。 ステップ784:前記ステップ781で動作種類『2』
のピークである(YES)と判定されたので、ここで
は、そのピーク値に係数αを乗じ、その値をダイナミク
スとする。すなわち、前回値レジスタNOWに格納され
ているピーク値に係数αを乗じ、その乗算結果(α×N
OW)をダイナミクスとしてダイナミクスレジスタDY
NAMICSに格納する。 ステップ785:動作『2』に対応したキーコード『C
♯3』のキーオンと、前記ステップ784によって得ら
れたダイナミクスを出力する。 ステップ786:前記ステップ781で動作種類『3』
のピークである(NO)と判定されたので、ここでは、
そのピーク値に係数βを乗じ、その値をダイナミクスと
する。すなわち、前回値レジスタNOWに格納されてい
るピーク値に係数βを乗じ、その乗算結果(β×NO
W)をダイナミクスとしてダイナミクスレジスタDYN
AMICSに格納する。 ステップ787:動作『3』に対応したキーコード『D
3』のキーオンと、前記ステップ786によって算出さ
れたダイナミクスを出力する。
【0037】図8のダイナミクス算出処理3では、図7
のダイナミクス算出処理2と同様に動作種類『1』、
『2』、『3』毎に、移動平均を取り、その移動平均値
に異なる係数を乗じることによってダイナミクスを算出
している。なお、図8において図7と同じステップには
同一の符号が付してあるので、その説明は省略する。
【0038】ステップ788:ステップ780で動作種
類『1』のピークである(YES)と判定されたので、
ここでは、動作種類『1』のピーク値の移動平均を取
り、それをダイナミクスとする。すなわち、前回値レジ
スタNOWよりも前に検出された動作種類『1』のピー
ク値を格納している前3回値レジスタLAST13、前
2回値レジスタLAST12、前々回値レジスタLAS
T11及び前回値レジスタNOWの各格納値を加算し、
それを4で除して得られた移動平均値((NOW+LA
ST11+LAST12+LAST13)/4)をダイ
ナミクスとしてダイナミクスレジスタDYNAMICS
に格納する。 ステップ789:次のダイナミクス算出処理3に備えて
動作種類『1』の各レジスタLAST13、LAST1
2及びLAST11の値をそれぞれ更新する。すなわ
ち、前3回値レジスタLAST13に前2回値レジスタ
LAST12の値を格納し、前2回値レジスタLAST
12に前々回値レジスタLAST11の値を格納し、前
々回値レジスタLAST11に前回値レジスタNOWの
値を格納する。
【0039】ステップ78A:前記ステップ781で動
作種類『2』のピークである(YES)と判定されたの
で、ここでは、動作種類『2』のピーク値の移動平均を
取り、その移動平均値に係数αを乗じ、それをダイナミ
クスとする。すなわち、前回値レジスタNOWよりも前
に検出された動作種類『2』のピーク値を格納している
前3回値レジスタLAST23、前2回値レジスタLA
ST22、前々回値レジスタLAST21及び前回値レ
ジスタNOWの各格納値を加算し、それを4で除した値
に係数αを乗じ、その乗算結果(α×(NOW+LAS
T21+LAST22+LAST23)/4)をダイナ
ミクスとしてダイナミクスレジスタDYNAMICSに
格納する。 ステップ78B:次のダイナミクス算出処理3に備え
て、ステップ789と同様に動作種類『2』の各レジス
タLAST23、LAST22及びLAST21の値を
それぞれ更新する。
【0040】ステップ78C:前記ステップ781で動
作種類『3』のピークである(NO)と判定されたの
で、ここでは、動作種類『3』のピーク値の移動平均を
取り、その移動平均値に係数βを乗じ、それをダイナミ
クスとする。すなわち、前回値レジスタNOWよりも前
に検出された動作種類『3』のピーク値を格納している
前3回値レジスタLAST33、前2回値レジスタLA
ST32、前々回値レジスタLAST31及び前回値レ
ジスタNOWの各格納値を加算し、それを4で除した値
(移動平均値)に係数βを乗じ、その乗算結果(β×
(NOW+LAST31+LAST32+LAST3
3)/4)をダイナミクスとしてダイナミクスレジスタ
DYNAMICSに格納する。 ステップ78D:次のダイナミクス算出処理3に備え
て、ステップ789と同様に動作種類『3』の各レジス
タLAST33、LAST32及びLAST31の値を
それぞれ更新する。
【0041】図9のダイナミクス算出処理4では、図7
のダイナミクス算出処理2と同様に動作種類『1』、
『2』、『3』毎に、異なる係数をそのピーク値に乗
じ、さらに、動作種類『2』及び『3』に関しては乗算
結果と動作種類『1』のピーク値との間の平均を取るこ
とによってダイナミクスを算出している。なお、図9に
おいて図7と同じステップには同一の符号が付してある
ので、その説明は省略する。
【0042】ステップ78E:動作種類『1』に関して
は図7のダイナミクス算出処理2と同じだが、動作種類
『2』及び『3』に関しては動作種類『1』のピーク値
との間で平均を取るという処理を行っている関係上、こ
こでは、前回値レジスタNOWのピーク値すなわち動作
種類『1』のピーク値を前々回値レジスタLASTに格
納する。 ステップ78F:前記ステップ781で動作種類『2』
のピークである(YES)と判定されたので、ここで
は、動作種類『2』のピーク値に係数αを乗じ、その乗
算値と動作種類『1』の前回のピーク値との平均を取
り、それをダイナミクスとする。すなわち、前回値レジ
スタNOWに格納されているピーク値に係数αを乗じ、
その乗算値と前々回値レジスタLASTの格納値を加算
し、それを2で除した平均値((α×NOW+LAS
T)/2)をダイナミクスとしてダイナミクスレジスタ
DYNAMICSに格納する。 ステップ78G:前記ステップ781で動作種類『3』
のピークである(NO)と判定されたので、ここでは、
動作種類『3』のピーク値に係数βを乗じ、その乗算値
と動作種類『1』の前回のピーク値との平均を取り、そ
れをダイナミクスとする。すなわち、前回値レジスタN
OWに格納されているピーク値に係数βを乗じ、その乗
算値と前々回値レジスタLASTの格納値を加算し、そ
れを2で除した平均値((β×NOW+LAST)/
2)をダイナミクスとしてダイナミクスレジスタDYN
AMICSに格納する。
【0043】図10のダイナミクス算出処理5では、図
9のダイナミクス算出処理4と同様に動作種類『1』、
『2』、『3』毎に、異なる係数をそのピーク値に乗
じ、さらに、動作種類『2』及び『3』に関しては乗算
結果と動作種類『1』のピーク値との間の平均を取るこ
とによってダイナミクスを算出する。そして、動作種類
『3』に関しては前回のピークの種類(動作種類)が
『1』なのか『2』なのかに応じて係数の値を異ならせ
るようにしている。すなわち、2拍子や4拍子における
上下手振り運動では動作『1』のピークと動作『2』ピ
ークが交互に現れ、3拍子における三角形手振り運動で
は動作『1』のピーク、動作『2』のピーク、動作
『3』のピークが順番に現れる。従って、動作『1』か
ら動作『3』に移行する場合と、動作『2』から動作
『3』に移行する場合とでは角速度センサの出力値も異
なる。そこで、ここでは上下手振り運動の場合と三角形
手振り運動の場合とで動作『3』に対する係数値をそれ
ぞれ異ならせることにした。なお、図10において図9
と同じステップには同一の符号が付してあるので、その
説明は省略する。
【0044】ステップ78H:前記ステップ781で動
作種類『3』のピークである(NO)と判定されたの
で、ここでは、前回の動作種類が『1』であるかどうか
を判定し、『1』(YES)の場合にはステップ78J
に進み、『2』の場合にはステップ78Gに進む。 ステップ78J:前記ステップ78Hで前回の動作種類
が『1』だと判定されたので、ここでは、動作種類
『3』のピーク値に係数γを乗じ、その乗算値と動作種
類『1』の前回のピーク値との平均を取り、それをダイ
ナミクスとする。すなわち、前回値レジスタNOWに格
納されているピーク値に係数γを乗じ、その乗算値と前
々回値レジスタLASTの格納値を加算し、それを2で
除した平均値((γ×NOW+LAST)/2)をダイ
ナミクスとしてダイナミクスレジスタDYNAMICS
に格納する。
【0045】例えば、振り降ろし動作時のピーク値が最
も大きく、振り上げ動作時のピーク値が最も小さいの
で、三角手振り運動における動作種類『3』の振り上げ
動作の場合の係数αを1.75とし、動作種類『2』の
横振り動作の場合の係数βを1.5とし、上下手振り振
動における動作種類『3』の振り上げ動作の場合の係数
γを1.875とすることによって、全体的にダイナミ
クスの均一化を図ることができる。なお、これら係数値
は一例であり、操作者個々が任意に所望の値を設定して
もよいことはいうまでもない。
【0046】次に、指揮棒20が操作者の身振り動作に
応じて動かされることによって、どのようにしてセンサ
出力処理を行うのか、その動作例を図12を用いて説明
する。図12は、指揮棒20が三角形の軌跡を描くよう
にして3拍子の身振り動作に応じた三角手振り運動にお
けるセンサ出力処理の概念を示す模式図である。図12
(A)は指揮棒20が3拍子の三角手振り運動で動かさ
れる場合における絶対角速度の出力波形のようすを示す
図であり、図12(B)は三角手振り運動における絶対
角速度のピーク検出時点を示す図である。
【0047】指揮棒20が図12(B)のような三角手
振り運動で動かされると、ステップ3で算出される絶対
角速度の値は図12(A)のような形状となる。第1ピ
ーク、谷、第2ピーク、谷、第3ピーク、谷の順番でそ
れぞれピークと谷が交互に現れる。まず、指揮棒20が
図11において240°の方向(左斜め下方向)に振ら
れると、ステップ70〜ステップ75の処理によって第
1ピークが検出される。そして、前回ピーク値レジスタ
LAST_PEAKに前回値レジスタNOWの格納値が
格納される。図4のステップ771の処理によって第1
ピークは動作『1』のピークだと判定され。図12
(B)では第1ピークの検出時点が円で示されている。
そして、ステップ78のダイナミクス算出処理1〜5の
いずれかによって第1ピークのピーク値に対応したダイ
ナミクスが算出され、動作種類『1』に対応したキーコ
ード『C3』のキーオンと共に出力されるようになる。
【0048】その後、指揮棒20が図11において24
0°の方向(左斜め下方向)から0°の方向(右側水平
方向)に振られると、その手振り動作の変化点で図5の
ステップ80〜ステップ85の処理によって今度は谷が
検出される。そして、指揮棒20が図11において0°
の方向(右側水平方向)に振られると、それに応じて今
度は第2ピークが動作『2』のピークとして検出され、
この第2ピークのピーク値に対応したダイナミクスが算
出され、キーコード『C♯3』のテンポキーオン信号と
共に出力されるようになる。
【0049】指揮棒20が図11において0°の方向
(右側水平方向)から120°の方向(左斜め上方向)
に振られると、その手振り動作の変化点で谷が検出され
る。その後、今度は第3ピークが動作『3』のピークと
して検出される。この第3ピークのピーク値に対応した
ダイナミクスが算出され、キーコード『D3』のテンポ
キーオン信号と共に出力されるようになる。そして、再
び指揮棒20が図11において120°の方向(左斜め
上方向)から240°の方向(左斜め下方向)に振られ
ると、その手振り動作の変化点で谷が検出され、前述の
処理が繰り返し実行される。
【0050】なお、図12(B)の右側には、指揮棒2
0が上下方向に2拍子又は4拍子で手振り動作(又は揺
動動作)された場合のピーク検出時点が示してある。こ
の場合、指揮棒20が図11において270°の方向
(下方向)に振られると、第1ピークが動作『1』のピ
ークとして検出され、この第1ピークのピーク値に対応
したダイナミクスが算出され、キーコード『C3』のテ
ンポキーオン信号と共に出力される。その後、指揮棒2
0が図11において270°の方向(下方向)から90
°の方向(上方向)に振られると、その手振り動作の変
化点で谷が検出され、今度は第2ピークが動作『3』の
ピークとして検出され、この第2ピークのピーク値に対
応したダイナミクスが算出され、キーコード『D3』の
テンポキーオン信号と共に出力されるようになる。そし
て、再度指揮棒20が図11において90°の方向(上
方向)から270°の方向(下方向)に振られると、そ
の手振り動作の変化点で谷が検出され、前述の処理が繰
り返し実行される。
【0051】このようにして、操作者が指揮棒20を動
かすことによって、指揮棒20は操作者の手振り動作に
応じて操作者の意図したインターバルでテンポキーオン
信号を出力すると共に意図したダイナミクスを出力する
ことができるようになるため、このテンポキーオン信号
及びダイナミクスに応じて電子楽器1Hがシーケンスデ
ータの再生を行うことによりテンポや演奏ダイナミクス
を任意に制御することができるようになる。なお、後述
するようにテンポキーオン信号の出力タイミングと自動
演奏の拍タイミングとがほぼ一致するように、電子楽器
1Hにおいて自動演奏のテンポを制御するようになって
いるので、操作者が意図する拍タイミングと自動演奏の
拍タイミングとは一致することとなる。
【0052】次に、このテンポキーオン信号を入力する
ことによって、電子楽器1H内のマイクロコンピュータ
(CPU11)がどのようにして楽音の再生処理を行う
のかその一例を図13〜図15のフローチャートに基づ
いて説明する。図13は電子楽器1H内のマイクロコン
ピュータ(CPU11)が処理する楽音の再生処理の一
例を示す図である。この再生処理はタイマ19からの動
作クロック(周期約1ms)に同期して実行されるタイ
マ割り込み処理である。この再生処理はプログラムRO
M12に格納されている制御プログラムに応じた一連の
処理であり、次のようなステップで順番に実行される。
【0053】ステップ40:走行状態フラグRUNが
『1』かどうかを判定し、『1』(YES)の場合は自
動演奏データの再生処理を行うことを意味するので次の
ステップ41以降に進み、『0』(NO)の場合は再生
処理を行わないことを意味するので直ちにリターンし、
次の割り込みタイミングまで待機する。 ステップ41:一時停止フラグPAUSEが『0』かど
うかを判定し、『0』(YES)の場合は一時停止中な
ので次のステップ42に進み、『1』(NO)の場合は
ステップ4Bにジャンプする。一時停止については後述
する。 ステップ42:タイミングカウンタTIMEが『0』か
どうかを判定し、『0』(YES)の場合は次のステッ
プ43に進み、『0』以外の値(NO)の場合は次のス
テップ49にジャンプする。
【0054】ステップ43:ステップ42又はステップ
47でタイミングカウンタTIMEが『0』だと判定さ
れたので、ここでは、RAM12のアドレスを進め、そ
のアドレス位置から自動演奏データを読み出す。自動演
奏データはイベントデータ(チャンネルナンバを含む)
とデルタタイムデータとの組み合わせ複数で構成され
る。 ステップ44:前記ステップ43で読み出されたデータ
はデルタタイムデータかどうかを判定し、デルタタイム
データ(YES)の場合はステップ45に進み、そうで
ない他のイベントデータ(NO)の場合はステップ46
に進む。 ステップ45:タイミングカウンタTIMEにステップ
43で読み出されたデルタタイムデータを格納する。
【0055】ステップ46:ステップ43で読み出され
たイベントデータに対応した処理(イベント対応処理)
を実行する。図14はこのイベント対応処理の詳細を示
す図である。このイベント対応処理は次のようなステッ
プで順番に実行される。 ステップ460:この実施例では自動演奏データが1〜
16チャンネルのデータを含み、そのうちのチャンネル
ナンバCH1をテンポ制御用のチャンネルとし、キーオ
ンイベントをテンポ制御用マークとして使用しているの
で、ここでは、前記ステップ43で読み出されたイベン
トデータがチャンネルナンバCH1のイベントかどうか
を判定し、YESの場合はステップ461に進み、NO
の場合はこれ以外のチャンネルナンバのイベントなので
ステップ465に進む。なお、チャンネルナンバCH1
のキーオンイベントは、各拍タイミングの位置に記憶さ
れており、各イベントのキーコードは、3拍子の曲の場
合はC3,C♯3,D3,C3,C♯3,D3・・・の
順に、2,4拍子の場合はC3,D3,C3,D3の順
に並んでいる。
【0056】ステップ461:前記ステップ460でチ
ャンネルナンバCH1のイベントだと判定されたので、
ここでは、キーオンレシーブフラグKON_RCVが
『1』かどうかを判定し、『1』(YES)の場合はス
テップ462に進み、『0』(NO)の場合はステップ
463に進む。 ステップ462:前記ステップ461でキーオンレシー
ブフラグKON_RCVが『1』であるということは、
チャンネルナンバCH1のイベントが読み出される前に
指揮棒20からMIDIインターフェイス27及び1B
を介して既にテンポキーオン信号が入力したことを意味
するので、ここでは、そのキーオンレシーブフラグKO
N_RCVに『0』をセットし、ステップ47に進む。
【0057】ステップ463:前記ステップ461でキ
ーオンレシーブフラグKON_RCVが『0』であると
いうことは、前記ステップ43で読み出されたチャンネ
ルナンバCH1のイベントに対応したテンポキーオン信
号が未だ入力していないことを意味するので、ここで
は、そのキーコードレジスタKEYCODEに読み出さ
れたイベントのキーコードを格納する。 ステップ464:テンポキーオン信号が未だ入力してい
ないので、一時停止フラグPAUSEに『1』をセット
し、次のステップ47に進む。一時停止フラグPAUS
Eに『1』がセットされることによって、これ以降はス
テップ41の判定がNOとなり、ステップ42〜4Aは
実行されなくなる。 ステップ465:前記ステップ460でチャンネルナン
バCH1以外のイベントだと判定されたので、ここで
は、そのイベントを音源回路17に出力する。このと
き、イベントがノートイベントの場合には図3のステッ
プ78によって算出されたダイナミクスに応じてベロシ
ティを修正する。このベロシティの修正によって指揮棒
20の振りの速さなどの動作に応じて楽音の音量を任意
に制御することができる。なお、ベロシティ以外の要
素、例えば音色、ピッチ、効果などを任意に制御するよ
うにしてもよい。
【0058】ステップ47:前記ステップ45で読み出
されたデルタタイムデータが『0』の場合があるので、
ここでは再びタイミングカウンタTIMEが『0』がど
うかを判定し、『0』(YES)の場合は次のステップ
43に進み、『0』以外の値(NO)の場合は次のステ
ップ49にジャンプする。デルタタイムデータが『0』
ということは、同じタイミングに複数イベントが存在す
ることを意味する。 ステップ48:タイミングレジスタTIMEの格納値に
テンポ係数レジスタT_COEFの格納値(テンポ係
数)を乗じる。ここで、テンポ係数は『1』を基準とし
た値で、この値に応じてテンポが制御される。例えば、
『0.5』であったときはテンポは2倍となり、『2』
であったときはテンポは半分となる。
【0059】ステップ49:タイミングレジスタTIM
Eの値を『1』だけデクリメント処理する。 ステップ4A:デルタアキュムレートレジスタDELT
A_ACMの値を『1』だけインクリメント処理する。
デルタアキュムレートレジスタDELTA_ACMはチ
ャンネルナンバCH1から読み出されるイベント間の時
間を計時するものである。 ステップ4B:インターバルレジスタINTERVAL
の値を『1』だけインクリメント処理する。インターバ
ルレジスタINTERVALは指揮棒20から送信され
てくるテンポキーオン信号の時間間隔を計時するもので
ある。
【0060】ステップ4C:テンポキーオン受信処理を
行う。このテンポキーオン受信処理は指揮棒20からテ
ンポキーオン信号を受信する毎に行われる処理である。
従って、テンポキーオン信号が受信されない場合には実
質的な処理は行われない。図15はこのテンポキーオン
受信処理の詳細を示す図である。このテンポキーオン受
信処理は次のようなステップで順番に実行される。 ステップ4C0:指揮棒20からMIDIインターフェ
イス27及び1Bを介してテンポキーオン信号の受信有
りかどうかを判定し、受信有り(YES)の場合はステ
ップ4C1に進み、受信無し(NO)の場合は図13の
再生処理にリターンし、次の割り込みタイミングまで待
機する。
【0061】ステップ4C1:一時停止フラグPAUS
Eが『1』かどうかを判定し、『1』(YES)の場合
はステップ4C2に進み、『0』(NO)の場合はステ
ップ4C9に進む。 ステップ4C2:前記ステップ4C1で一時停止フラグ
PAUSEが『1』であると判定されたということは、
テンポキーオン信号の受信よりも先にチャンネルナンバ
CH1のイベントデータが読み出され、そのキーコード
がステップ463で既にキーコードレジスタKEYCO
DEに格納されたことを意味するので、ここでは、その
受信テンポキーオン信号のキーコードとキーコードレジ
スタKEYCODEに格納されているキーコードとが一
致するかどうかを判定し、一致する(YES)場合はス
テップ4C3に進み、一致しない(NO)場合は図13
の再生処理にリターンし、次の割り込みタイミングまで
待機する。
【0062】ステップ4C3:インターバルレジスタI
NTERVALの値とデルタアキュムレートレジスタD
ELTA_ACMの値との比をレートレジスタRATE
に格納する。すなわち、指揮棒20から送信されてくる
テンポキーオン信号の時間間隔と、実際にチャンネルナ
ンバCH1のイベントが読み出される時間間隔との比が
レートレジスタRATEに格納される。 ステップ4C4:レートレジスタRATEの値にテンポ
係数レジスタT_COEFのテンポ係数を乗じる。 ステップ4C5:前記ステップ4C4の処理の結果、テ
ンポ係数レジスタT_COEFの値が所定値よりも大き
く、あるいは小さくならないようにリミット処理を行
う。 ステップ4C6:デルタアキュムレートレジスタDEL
TA_ACMに『0』をセットする。 ステップ4C7:インターバルレジスタINTERVA
Lに『0』をセットする。 ステップ4C8:一時停止フラグPUASEに『0』を
セットする。これによって図13の再生処理が再び開始
するようになる。
【0063】ステップ4C9:前記ステップ4C1で一
時停止フラグPAUSEが『0』であると判定されたと
いうことは、チャンネルナンバCH1のイベントデータ
がまだ読み出されていないことを意味するので、この時
点以降に最初に現れる次のチャンネルナンバCH1のイ
ベントをサーチして読み出す。 ステップ4CA:受信テンポキーオン信号のキーコード
とサーチしたチャンネルナンバCH1のキーコードとが
一致するかどうかを判定し、一致する(YES)場合は
ステップ4CAに進み、一致しない(NO)場合は図1
3の再生処理にリターンし、次の割り込みタイミングま
で待機する。
【0064】ステップ4CB:前記ステップ4C8でサ
ーチしたチャンネルナンバCH1のイベントがサーチさ
れるまでに読み出された各イベントのデルタタイムデー
タの累算値にテンポ係数レジスタT_COEFのテンポ
係数を乗じたものと、その時点におけるタイミングレジ
スタTIMEの値とをデルタアキュムレートレジスタD
ELTA_ACMに加算する。 ステップ4CC:前記ステップ4C8でサーチしたイベ
ントまでのデルタタイム及びタイミングレジスタTIM
Eの値に1/Bを乗じる。ここでBは1以上の値とす
る。すなわち、指揮棒20からのテンポキーオン信号を
受信した時点以降の再生速度を上げて、テンポキーオン
信号受信タイミングと拍タイミングとを近づけるため
に、各イベントのデルタタイム及びタイミングレジスタ
TIMEの値を小さくする。 ステップ4CD:キーオンレシーブフラグKON_RC
Vに『1』をセットし、ステップ4CEに進む。ステッ
プ4CEからステップ4CJまでは前記ステップ4C3
から前記ステップ4C7までと同じなので、その説明は
省略する。
【0065】次に、このテンポキーオン信号を入力する
ことによって、電子楽器1H内のマイクロコンピュータ
(CPU11)がどのようにして再生処理を行うのか、
その動作例を図16を用いて説明する。図16は、指揮
棒20から電子楽器1Hに取り込まれるテンポキーオン
信号の入力タイミングと、自動演奏データの読み出しタ
イミンイグとの関係を示す図である。タイミングt0で
は図13のステップ40〜ステップ42を経て、ステッ
プ43でチャンネルナンバCH3のイベントが読み出さ
れ、図14のステップ465でそのイベントが音源回路
に出力される。次のステップ43でデルタタイムD0が
読み出され、ステップ45でタイミングレジスタTIM
EにそのデルタタイムD0が書き込まれる。
【0066】その後、デルタタイムD0に対応する時間
が経過することよって、タイミングレジスタTIMEの
値も0となり、タイミングt1ではステップ40〜ステ
ップ42を経て、ステップ43によってチャンネルナン
バCH1のイベントが読み出される。このタイミングt
1ではまだテンポキーオン信号は受信されていないの
で、図14のステップ461ではNOと判定され、ステ
ップ463でイベントのキーコード『C3』がキーコー
ドレジスタKEYCODEに格納され、一時停止フラグ
PAUSEに『1』がセットされる。次のステップ43
でデルタタイムD1が読み出され、ステップ45でタイ
ミングレジスタTIMEにそのデルタタイムD1が書き
込まれる。タイミングt1よりも少し遅れたタイミング
t2で今度は指揮棒20から電子楽器1Hに対してキー
コード『C3』のテンポキーオン信号とダイナミクスが
受信される。これによって、図15のテンポキーオン受
信処理のステップ4C0〜ステップ4C2を経て、ステ
ップ4C3〜ステップ4C8の処理が行われ、インター
バルレジスタINTERVALの値とデルタアキュムレ
ートレジスタDELTA_ACMの値との比であって、
例えばほぼ1に近い値がレートレジスタRATEに新た
に格納され、テンポ係数レジスタT_COEFには前回
とほとんど同じテンポ係数が格納され、インターバルレ
ジスタINTERVAL、デルタアキュムレートレジス
タDELTA_ACM及び一時停止フラグPAUSEに
『0』がセットされる。
【0067】その後、デルタタイムD1に対応する時間
が経過することよって、タイミングレジスタTIMEの
値も0となり、タイミングt3ではチャンネルナンバC
H2のイベントが読み出され、図14のステップ465
でそのイベントが音源回路に出力される。このとき、ノ
ートイベントのベロシティは受信されたダイナミクスに
応じて修正される。次のステップ43でデルタタイムD
2が読み出され、ステップ45でタイミングレジスタT
IMEにそのデルタタイムD2が書き込まれる。以下、
同様にして各タイミングt3〜t7でチャンネルナンバ
CH3〜CH6のイベント及びデルタタイムD3〜D6
が順次読み出され、それぞれのイベントが音源回路に出
力される。その後、デルタタイムD6に対応する時間を
計時中(タイミングレジスタTIMEのデクリメント処
理中)のタイミングt8で今度は指揮棒20から電子楽
器1Hに対してキーコード『C♯3』のテンポキーオン
信号とダイナミクスが受信される。これによって、図1
5のテンポキーオン受信処理のステップ4C0及びステ
ップ4C1を経て、ステップ4C9〜4CJの処理が行
われる。ステップ4C9ではチャンネルナンバCH1の
キーコード『C♯3』のイベントが直ぐにサーチされる
ので、ステップ4CAを経て、ステップ4CBの処理が
行われる。ステップ4CBでは、チャンネルナンバCH
1のイベントがサーチされるまでの間にデルタタイムは
存在しなかったので、ここではデルタタイムの累算値は
『0』であり、タイミングレジスタTIMEの値だけが
デルタアキュムレートレジスタDELTA_ACMに加
算される。これによって、デルタアキュムレートレジス
タDELTA_ACMの値とインターバルレジスタIN
TERVALの値との関係は:デルタアキュムレートD
ELTA_ACMの方がインターバルレジスタINTE
RVALよりも大きくなる。
【0068】ステップ4CCではテンポキーオン信号を
受信したタイミングt8以降の再生速度を上げるため
に、各イベントのデルタタイム及びタイミングレジスタ
TIMEの値にB分の1を乗じる。ステップ4CDでは
キーオンレシーブフラグKON_RCVに『1』がセッ
トされ、ステップ4CE〜ステップ4CJではインター
バルレジスタINTERVALの値とデルタアキュムレ
ートレジスタDELTA_ACMの値との比(1より小
さい値)がレートレジスタRATEに新たに格納され、
テンポ係数レジスタT_COEFには前回よりも小さな
テンポ係数が格納され、デルタアキュムレートレジスタ
DELTA_ACM及びインターバルレジスタINTE
RVALに『0』がセットされるようになる。その後、
タイミングレジスタTIMEの値が0となり、タイミン
グt9でチャンネルナンバCH1のイベントが読み出さ
れることによって、図14のステップ462でキーオン
レシーブフラグKON_RCVに『0』がセットされ
る。以下、同様にして各タイミングでチャンネルナンバ
のイベント及びデルタタイムがテンポ係数レジスタT_
COEFに格納されている1よりも小さなテンポ係数に
よって修正を加えられながら順次読み出され、それぞれ
のイベントが音源回路に出力されるようになる。すなわ
ち、指揮棒20からのテンポキーオン信号の受信タイミ
ングの方が自動演奏データの読み出しタイミングよりも
早い場合には自動演奏データの再生処理のテンポがアッ
プし、逆の場合には自動演奏データの再生処理のテンポ
がダウンする。
【0069】なお、上述の実施例では、身振り動作を検
出するためのセンサとして、圧電ジャイロセンサに限ら
ず、加速度センサや、磁気や光を用いたものであっても
よい。例えば、身振り動作を撮像し、画像処理によって
身振り動作を検出するようなものでもよい。また、これ
らのセンサを複数個組み合わせてもよい。また、上述の
実施例では、身振り動作の特徴点として圧電ジャイロセ
ンサからの出力のピーク及び谷を抽出する場合について
説明したが、これに限らず、センサの種類を変えるなど
して、他の条件を用いてその特徴点を抽出するようにし
てもよい。さらに、上述の実施例では、MIDIインタ
ーフェイスを介して接続された指揮棒20と電子楽器1
Hを例に説明したが、両者を一体で構成してもよいこと
はいうまでもない。また、電子楽器1Hの発生するテン
ポクロックを外部装置に供給して、外部装置の演奏テン
ポを制御するように構成してもよい。
【0070】上述の実施例では、指揮棒20がピーク及
び谷を検出し、さらにその動作種類を検出する場合につ
いて説明したが、指揮棒20は単に身振り動作に応じた
センサ値を出力し、電子楽器1H側でこの出力に応じた
検出(ピーク及び谷検出、動作種類検出)処理などを行
うようにしてもよいことはいうまでもない。また、上述
の実施例では、圧電ジャイロセンサを2つを用いて身振
り動作を検出する場合について説明したが、3つ以上用
いてもよいことはいうまでもない。この場合、3拍子用
と、2/4拍子用とで異なる位置に設けられたセンサを
それぞれ用いてもよいし、3つ以上のセンサ出力を総合
判断して身振り動作を検出するようにしてもよい。
【0071】また、上述の実施例では、センサを指揮棒
に内蔵する場合について説明したが、操作者の身体(例
えば手など)に装着したり、マイクやその他の機器(例
えばカラオケ装置のリモコンなど)に内蔵したりしても
よい。この場合、センサ出力の送出は有線又は無線で行
えばよい。例えば、マイクに内蔵した場合、カラオケの
イントロ部分でのみテンポ制御を有効とし、マイクの身
振り動作に応じてカラオケの演奏テンポが決定されるよ
うにすればよい。実施例では演奏中常にテンポを制御す
る場合について説明したが、演奏に先立ってテンポを決
定する場合に用いてもよい。実施例では、演奏データが
イベントとデルタタイムから構成される場合について説
明したが、これ以外の記憶方式であってもよいことはい
うまでもない。例えば、演奏データをイベントと絶対時
間との組で構成する。また、デルタタイムの単位にはm
sなどの時間の単位を用いても、音符の長さ(例えば4
分音符の1/24など)を用いてもよい。
【0072】実施例では、テンポの制御は、デルタタイ
ムの値にテンポ係数を乗じ、デルタタイムの値を増減さ
せることによって行う場合について説明したが、処理の
周期(割り込みタイミング)を変化させることによって
テンポを変化させるようにしてもよい。実施例では、テ
ンポ制御用のデータと自動演奏用のデータを混在させ、
チャンネルナンバで区別する場合について説明したが、
両者を予め別々に設けてもよい。例えば、テンポを制御
する音符位置に対応するメモリのアドレスを記憶したも
のを、テンポ制御用データとしてもよい。テンポが滑ら
かに変化するように、テンポが変化したとき、テンポ係
数レジスタT_COEFの値を前の値と補間するように
してもよい。ダイナミクスの制御も同様に滑らかに変化
させてもよい。
【0073】実施例では、ピーク値に所定値を乗算して
ダイナミクスを算出する場合について説明したが、所定
値を加算してダイナミクスを算出してもよい。また、ピ
ークの大きさの変化に基づいて、乗算又は加算する値を
変化させてもよいし、複数の所定値の中から選択できる
ようにしてもよい。図6のダイナミクス算出処理1のよ
うにテーブル参照によってダイナミクスを求めるものに
ついては、複数のテーブルを備えておき、ピークの大き
さに応じていずれかのテーブルを適宜選択するようにし
てもよい。上述の実施例ではダイナミクスに応じてベロ
シティを変化させる場合について説明したが、ダイナミ
クスに応じて音色、音高、効果などを変化させるように
してもよい。また、これに限らず、演奏パート数などを
増減するようにしてもよいし、これらの少なくとも1つ
を制御することで演奏のダイナミクスを制御するように
してもよい。
【0074】図8のダイナミクス算出処理3では、4つ
のピーク値の移動平均を取り、それをダイナミクスとす
る場合について説明したが、これ以外の個数のピーク値
の移動平均を取り、それをダイナミクスとしてもよいこ
とはいうまでもない。また、図9及び図10のダイナミ
クス算出処理では動作種類『1』の前回ピーク値との平
均を取り、それをダイナミクスとする場合について説明
したが、図7のステップ782、ステップ784及びス
テップ786によって算出された各動作種類『1』、
『2』、『3』のダイナミクスとの平均を取り、それを
その動作種類におけるダイナミクスとして出力してもよ
い。
【0075】
【発明の効果】この発明のダイナミクス制御装置によれ
ば、操作者の手振り動作の癖などに伴うダイナミクスの
バラツキを無くし、操作者の意図したダイナミクスを与
えることができる。
【図面の簡単な説明】
【図1】 電子楽器と、この電子楽器に操作者の手振り
動作に応じたテンポ制御信号を出力する指揮棒との詳細
構成及び両者間の接続関係を示すハードブロック図であ
る。
【図2】 図1の指揮棒内のマイクロコンピュータが処
理するセンサ出力処理の一例を示す図である。
【図3】 図2のピーク検出処理の詳細を示す図であ
る。
【図4】 図3のピーク種類判定処理の詳細を示す図で
ある。
【図5】 図2の谷検出処理の詳細を示す図である。
【図6】 図3のダイナミクス算出処理の一例であるダ
イナミクス算出処理1の詳細を示す図である。
【図7】 図3のダイナミクス算出処理の一例であるダ
イナミクス算出処理2の詳細を示す図である。
【図8】 図3のダイナミクス算出処理の一例であるダ
イナミクス算出処理3の詳細を示す図である。
【図9】 図3のダイナミクス算出処理の一例であるダ
イナミクス算出処理4の詳細を示す図である。
【図10】 図3のダイナミクス算出処理の一例である
ダイナミクス算出処理5の詳細を示す図である。
【図11】 演算式によって求められた角度θと動作種
類との関係を示す図である。
【図12】 指揮棒が三角形の軌跡を描くようにして3
拍子で手振り動作される場合のセンサ出力処理の概念を
示す模式図である。
【図13】 電子楽器内のマイクロコンピュータが処理
する楽音の再生処理の一例を示す図である。
【図14】 図13のイベント対応処理の詳細を示す図
である。
【図15】 図13のテンポキーオン受信処理の詳細を
示す図である。
【図16】 指揮棒から電子楽器に取り込まれるテンポ
キーオン信号の入力タイミングと、自動演奏データの読
み出しタイミンイグとの関係を示す図である。
【符号の説明】
11,21…CPU、12,22…ROM、13,23
…RAM、14…押鍵検出回路、15,24…スイッチ
検出回路、16…表示回路、17…音源回路、18…効
果付与回路、19,28…タイマ、1A…フロッピーデ
ィスクドライブ(FDD)、1B,27…MIDIイン
ターフェイス(I/F)、1C…鍵盤、1D,29…パ
ネルスイッチ、1E…表示部、1F…サウンドシステ
ム、1G,2E…バス、1H…電子楽器、20…指揮
棒、25,26…A/D、2A…X方向圧電振動ジャイ
ロセンサ、2B…Y方向圧電振動ジャイロセンサ、2
C,2D…ノイズ除去回路
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G10H 1/053 G10H 1/00 - 1/00 102 G10H 1/46

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 操作者の身振り動作に基づいてその動作
    種類及び動作量を検出する動作検出手段と、 この動作検出手段によって検出された前記動作種類に応
    じて前記動作量を補正する補正する補正手段と、 この補正手段によって補正された前記動作量に基づいて
    演奏のダイナミクスを制御する制御手段とから構成され
    ることを特徴とする演奏ダイナミクス制御装置。
  2. 【請求項2】 前記制御手段は前記動作検出手段によっ
    て検出された動作種類及び動作量に基づいて演奏のテン
    ポを制御することを特徴とする請求項1に記載の演奏ダ
    イナミクス制御装置。
JP16917495A 1995-05-02 1995-06-12 演奏ダイナミクス制御装置 Expired - Fee Related JP3149736B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP16917495A JP3149736B2 (ja) 1995-06-12 1995-06-12 演奏ダイナミクス制御装置
US08/643,121 US5663514A (en) 1995-05-02 1996-04-30 Apparatus and method for controlling performance dynamics and tempo in response to player's gesture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16917495A JP3149736B2 (ja) 1995-06-12 1995-06-12 演奏ダイナミクス制御装置

Publications (2)

Publication Number Publication Date
JPH08339181A JPH08339181A (ja) 1996-12-24
JP3149736B2 true JP3149736B2 (ja) 2001-03-26

Family

ID=15881625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16917495A Expired - Fee Related JP3149736B2 (ja) 1995-05-02 1995-06-12 演奏ダイナミクス制御装置

Country Status (1)

Country Link
JP (1) JP3149736B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6541905B1 (en) 1995-04-21 2003-04-01 Canon Kabushiki Kaisha Image forming apparatus
US6593950B2 (en) 1991-10-08 2003-07-15 Canon Kabushiki Kaisha Electron-emitting device, and electron beam-generating apparatus and image-forming apparatus employing the device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2942344B1 (fr) * 2009-02-13 2018-06-22 Movea Dispositif et procede de controle du defilement d'un fichier de signaux a reproduire
JP5036010B2 (ja) * 2010-08-19 2012-09-26 任天堂株式会社 音楽演奏プログラム、音楽演奏装置、音楽演奏システム、および音楽演奏方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6232794B2 (ja) 2012-07-18 2017-11-22 住友電気工業株式会社 半導体光素子

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6232794B2 (ja) 2012-07-18 2017-11-22 住友電気工業株式会社 半導体光素子

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6593950B2 (en) 1991-10-08 2003-07-15 Canon Kabushiki Kaisha Electron-emitting device, and electron beam-generating apparatus and image-forming apparatus employing the device
US6541905B1 (en) 1995-04-21 2003-04-01 Canon Kabushiki Kaisha Image forming apparatus

Also Published As

Publication number Publication date
JPH08339181A (ja) 1996-12-24

Similar Documents

Publication Publication Date Title
US5663514A (en) Apparatus and method for controlling performance dynamics and tempo in response to player's gesture
JP3307152B2 (ja) 自動演奏制御装置
JP3149736B2 (ja) 演奏ダイナミクス制御装置
JP3152104B2 (ja) テンポ制御装置
JP3449045B2 (ja) 演奏制御装置
JPH1055174A (ja) 指揮棒および楽音再生装置
JP3080261B2 (ja) 自動演奏装置
JP3720004B2 (ja) 音楽制御装置
JPH1039863A (ja) 自動伴奏装置
JPH08278786A (ja) ホロニック・リズム・ジェネレータ装置
JP3427569B2 (ja) 音楽制御装置
JP3259602B2 (ja) 自動演奏装置
JPS62187393A (ja) 電子楽器のタツチレスポンス装置
JP3307162B2 (ja) 音楽制御装置
JPH0272394A (ja) 自動リズム演奏装置
JP3279122B2 (ja) テンポ制御装置
JP2653232B2 (ja) テンポコントローラ
JPH08123448A (ja) 音声信号の波形解析を用いた画像処理装置
JP2537856B2 (ja) 自動演奏装置
JP2767173B2 (ja) 音響効果装置
JP2537963B2 (ja) 自動演奏装置
JP4040193B2 (ja) 電子楽器
JP2723515B2 (ja) 自動演奏装置
JP2940123B2 (ja) テンポコントローラ
JPH0667661A (ja) 楽音制御装置

Legal Events

Date Code Title Description
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 (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090119

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100119

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120119

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees