Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4464080B2 - Automatic performance device and program - Google Patents
[go: Go Back, main page]

JP4464080B2 - Automatic performance device and program - Google Patents

Automatic performance device and program Download PDF

Info

Publication number
JP4464080B2
JP4464080B2 JP2003180205A JP2003180205A JP4464080B2 JP 4464080 B2 JP4464080 B2 JP 4464080B2 JP 2003180205 A JP2003180205 A JP 2003180205A JP 2003180205 A JP2003180205 A JP 2003180205A JP 4464080 B2 JP4464080 B2 JP 4464080B2
Authority
JP
Japan
Prior art keywords
tempo
automatic performance
strokes
data
timing
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
JP2003180205A
Other languages
Japanese (ja)
Other versions
JP2005017537A (en
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 JP2003180205A priority Critical patent/JP4464080B2/en
Publication of JP2005017537A publication Critical patent/JP2005017537A/en
Application granted granted Critical
Publication of JP4464080B2 publication Critical patent/JP4464080B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、操作者のテンポをとる動作に合わせて自動演奏のテンポを制御する自動演奏装置およびプログラムに関する。
【0002】
【従来の技術】
指揮棒の形状をした操作子を振ることで、自動演奏のテンポを制御する自動演奏装置が種々提案されている。例えば、特許文献1に示される装置においては、テンポをとるタイミングを示すタイミングデータを自動演奏データ中の拍の位置に埋め込んでおき、このデータが読み出される間隔と、操作子が振られた間隔を比較して曲のテンポをリアルタイムに変更する。
このような制御を行うことで、あたかも操作者自身が演奏を操る指揮者になったかのような感覚を得ることができる。
【0003】
【特許文献1】
特開平8−272363号公報
【0004】
ところで、上述した従来の装置においては、テンポをとるタイミングの回数は、自動演奏データに埋め込まれているタイミングデータによって決められてしまうため、小節内で何回のタイミングでテンポをとるかは、その自動演奏データによって固定的に決まってしまう。例えば、4分の4拍子の曲においては、曲の初めから終わりまで各小節毎に4打でテンポをとらなければならない。
この場合、テンポの速い曲などは、操作子を振るピッチを早くしなければならないため、初心者や高齢者には難しくなってしまう。また、曲調が変わる場合など、曲の途中において1小節内の打数を変更したい場合もあるが、従来装置においては不可能であった。
さらに、楽曲自体は4/4拍子であっても、これを指揮者の解釈により、2/2拍子で指揮すること(alla breve:アラブレーベ)がしばしば行われるが、従来装置ではこれに対応することも不可能であった。
【0005】
【発明が解決しようとする課題】
本発明はこのような背景の下になされたもので、テンポをとるタイミングの回数を変更することができる自動演奏装置およびプログラムを提供することを目的としている。
【0006】
【課題を解決するための手段】
上記課題を解決するために、本発明に係る自動演奏装置は、操作者によって動かされた際の運動状態を検出する操作子と、前記操作子が検出した運動状態から、曲のテンポをとるためのタイミングを示すテンポ制御信号を生成するテンポ制御信号出力手段と、小節内において曲のテンポを何回のタイミングでとるべきかを示す打数を、打数指示情報に基づいて設定する打数設定手段と、当該自動演奏のテンポをとるタイミングの情報を含む自動演奏データに基づいて演奏信号を生成するとともに、前記自動演奏データのテンポをとる位置に埋め込まれたタイミングのうち、前記打数設定手段が設定した打数によって定まるタイミングの間隔を前記テンポ制御信号の発生間隔と比較し、この比較結果に応じて自動演奏のテンポを決定する自動演奏手段とを具備することを特徴とする。
【0007】
なお、前記テンポ制御信号出力手段は、前記操作子により検出される運動状態が前記打数として設定可能な最大の値と同数の複数の種類に分類される場合において、前記操作子が検出した運動状態を前記複数の種類のいずれかであると特定し、特定した種類を示す識別情報を含む前記テンポ制御信号を生成し、前記自動演奏データは、曲の拍のタイミングに相当する位置毎に、当該タイミングにおける前記運動状態が前記複数の種類のいずれであるかを示す識別情報を含み、前記自動演奏手段は、前記自動演奏データにおける前記拍のタイミングのうち、前記複数の種類のうちの前記打数設定手段によって設定された打数において用いられる種類を示す識別情報が含まれる位置に相当するタイミングの間隔と、前記識別情報が示す種類が前記打数設定手段によって設定された打数において用いられる種類である前記テンポ制御信号の発生間隔とを比較するようにしてもよい。
また、前記打数指示情報は、前記自動演奏データに埋め込んでもよく、操作者が操作する入力手段によって入力されるようにしてもよい。
【0008】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態について詳細に説明する。
【0009】
A:実施形態の構成
図1は、本発明の一実施形態の構成を示すブロック図である。本実施形態においては、操作者によって振られる操作子1と、この操作子1の運動状況に応じたテンポ制御を行って自動演奏を行う楽音演奏装置2とにより構成されている。
【0010】
操作子1は、図4に示すように指揮棒のような外観を有している。図4に示す1aはその把持部であり、操作者は把持部1aを握って、操作子1を任意に振ることができるようになっている。図5は、操作者Aが、操作子1を手に持って振っている状態を示している。また、図4に示すように把持部1aの近傍には、複数のボタンSW,SW・・・を有した打数指定部105が設けられている。これらのボタンSWは、テンポ制御に際して、1小節あたり何回でテンポをとるかを設定するときに使用される。
【0011】
操作子1の内部には図1に示す回路が組み込まれている。図1に示すCPU103は、RAM102の記憶領域をワークエリアとして利用し、ROM101に格納されている各種プログラムを実行することで装置各部を制御する。タイマ104は、CPU103のタイマ割込み処理における割込み時間を計測する。
【0012】
Xセンサ106は、操作者が行った操作子1の揺動動作の水平方向の角速度を検出するものであり、Yセンサ107は操作子1の揺動動作の垂直方向の角速度を検出する。これらXセンサ106とYセンサ107には、圧電振動ジャイロセンサが用いられ、操作子1の先端部分に埋め込まれている(図4参照)。また、Xセンサ106とYセンサ107の出力信号は、ノイズの除去やAD変換がなされた後、CPU103に読みとられる。CPU103においては、読みとったXセンサ106、Yセンサ107の出力信号を基に操作者の揺動動作を特定する処理を行う。この処理においては、操作子1がどのように振られたかが特定され、上方向、下方向、右方向、左方向の4種の振り方が特定される。そして、特定した振り方に対応したMIDI(Musical Instrument Digital Interface:登録商標)イベントデータが生成される。
【0013】
次に、操作者のテンポの取り方を図3を用いて説明する。なお、この図において打数とは、テンポ制御を行う際に、1小節内で何回テンポをとるかを意味している。
まず、打数1の場合は、操作子1を上から下に振り下ろす時にテンポをとるやり方であり、1小節に1回だけテンポをとる。このやり方は、3拍子および4拍子の曲のいずれにおいても使用され、1拍目にテンポをとる。打数2の場合は、操作子1の振り下ろし時と振り上げ時にテンポをとるやり方であり、1小節に2回テンポをとる。このやり方は、4拍子の曲に用いられ、1拍目と3拍目にテンポをとる。打数3は3角形を描くように振るやり方であり、3角形の各辺を描く時にテンポをとる。このやり方は3拍子の曲に用いられ、各拍についてテンポをとる。打数4は、振り下ろし→左移動→右移動→振り上げの4つの動作でテンポをとるやり方であり、4拍子の曲に用いられ、各拍についてテンポをとる。
この実施形態においては、操作子1の振り方は、図3に示す振り方にすることが予め決められている。
【0014】
また、振り方向の特定は、同図に示されるように、下方向を振り方▲1▼,右方向を振り方▲2▼,上方向を振り方▲3▼,左方向を振り方▲4▼とし、それぞれにノートナンバを割り当てる。また、当該ノートナンバに対してノートオンイベントが付けられる。本実施形態では振り方▲1▼、▲2▼、▲3▼、▲4▼にそれぞれノートナンバ(61),(62),(63),(64)のノートオンメッセージを割り当てる。
また、これらのMIDIイベントデータに対し、任意の1つのチャンネルを割り当てる。本実施形態ではチャンネル番号1とする。以上のようにして、本実施形態においては、操作子1の振り方を示すデータは、チャンネル番号1のMIDIイベントデータ(ノートオンイベント)として生成される。そして、このイベントデータは、テンポ制御信号PTENPOとして送信部108を介して楽音演奏装置2に送信される。
【0015】
また、前述した打数指定部105は、押されたボタンSWに対応する打数指定データPBEATを出力する。この打数指定データPBEATは送信部108を介して楽音演奏装置2に送信されるようになっている。
【0016】
次に、楽音演奏装置2におけるCPU203は、RAM202の記憶領域をワークエリアとして利用し、ROM201に格納されている各種プログラムを実行することで装置各部を制御する。タイマ204は、CPU203へのタイマ割込み処理における割込み時間を計測するためのものである。HDD(ハードディスク)206には複数の自動演奏データが記憶されており、自動演奏時には指定された曲の自動演奏データがHDD206から読み出され、RAM202の自動演奏データ格納領域に格納される。外部記憶装置207はCD−ROMやフロッピディスク等の記録媒体に記憶されている自動演奏データを読み取る際に使用される。また、表示部208は各種情報を表示する。
受信部205は操作子1より出力されたテンポ制御信号PTENPOや打数指定データPBEATを受信し、CPU203へ出力する。
【0017】
音源回路209は自動演奏処理において順次読み出されるMIDIデータに基づいて楽音信号を生成し、効果回路210へと出力する。効果回路210は生成された楽音信号に種々の効果を付与し、サウンドシステム211に供給する。サウンドシステム211は、効果が付与された楽音信号を増幅して放音する。
【0018】
次に、自動演奏データのフォーマットについて説明する。自動演奏データのフォーマットは種々のデータフォーマットが考えられるが、本実施形態ではMIDIフォーマットを用いている。
自動演奏データは、図2に示すようにヘッダ部分とトラック部分に大別される。ヘッダ部分には曲の標準のテンポを示す標準テンポデータDTENPOや、1小節における打数(テンポをとる回数)を示すデフォルト値となる打数初期値データDBEATなどが含まれている。この実施形態の場合、打数初期値データDBEATは、曲の拍子数となっている。すなわち、4/4拍子であれば打数初期値データDBEATは「4」、3/4拍子であれば「3」が設定されている。
【0019】
また、トラック部分には、イベントデータ22と、次のイベントまでの時間間隔を示すデルタタイムデータ21が配置されている。デルタタイムデータ21は整数値で表され、その値がTのとき当該デルタタイムはTミリ秒である。イベントデータ22にはチャンネル番号が付加され、これにより当該イベントがどのチャンネルによって発音されるかが識別される。
【0020】
ここで、イベントデータには、演奏音を指示するものと、テンポ制御のために用いられるものとがあり、この実施形態においては、チャネル番号1のノートオンイベントが、テンポ制御のために用いられ、チャネル番号1以外のノートオンイベントが演奏用に用いられる。
また、自動演奏データ20に埋め込まれているチャネル番号1のノートンオンイベントは、拍のタイミングに配置され、操作子1から出力されるノートオンイベントと等しく、ノートナンバ(61),(62),(63),(64)の値が用いられる。
【0021】
より詳細に言えば、本実施形態の自動演奏データ20には、4拍子の曲においては、1拍目のタイミングに下方向の振り方▲1▼(図3参照)を示すノートナンバ(61)が埋め込まれ、2拍目のタイミングに左方向の振り方▲4▼を示すノートナンバ(64)が埋め込まれ、3拍目のタイミングに右方向の振り方▲2▼を示すノートナンバ(62)が埋め込まれ、4拍目のタイミングに上方向の振り方▲3▼を示すノートナンバ(63)が埋め込まれる。
【0022】
また、3拍子の曲においては、1拍目のタイミングにおいて、下方向の振り方▲1▼を示すノートナンバ(61)が埋め込まれ、2拍目のタイミングにおいては右方向の振り方▲2▼を示すノートナンバ(62)が埋め込まれ、3拍目のタイミングにおいては上方向の振り方▲3▼を示すノートナンバ(63)が埋め込まれる。
また、本実施形態における自動演奏データ20には、曲の途中で打数を指示する打数指示データCBEATが埋め込まれている。この打数データもチャネル番号1のイベントデータとなっている。
【0023】
B:動作
上記構成による本実施形態の動作について説明する。なお、初めに説明の簡単化のために、4/4拍子の自動演奏データ(打数初期値データDBEATは4)に対する処理であって、かつ、操作子1からは打数指定データPBEATは出力されない場合を説明する。
【0024】
まず、楽音演奏装置2が自動演奏データ20を再生するに伴い、操作者が操作子1を手に持って、テンポをとる準備をする。この準備は、指揮棒を持って演奏に控えるのと同様である。
一方、CPU203は、HDD206から自動演奏データ20を読み出し、RAM202の自動演奏データ格納領域に格納する。そして、CPU203は、RAM202内の自動演奏データを順次読み出し、自動演奏を行ってゆくが、初めに、ヘッダ部から打数初期値データDBEATと標準テンポDTENPOを読み出す。そして、標準テンポDTENPOに対応したテンポで自動演奏を行う。
以後は、RAM202内の自動演奏データ20のイベントが順次読み出され、自動演奏がなされてゆく。以下においては、自動演奏処理について、操作子1における処理と楽音演奏装置2における処理とを関連させつつ説明を行う。
【0025】
(1)テンポ制御信号出力処理
まず、操作子1では、図6のフローチャートで示されるテンポ制御信号出力処理が実行される。本処理は、タイマ104が例えば10ms毎に発生するタイマ割込み信号に同期して実行される割込み処理である。
まず、ステップS001においてXセンサ106およびYセンサ107より出力されるセンサ出力信号を取り込み、次のステップS002では操作子1の振り方向を判定するために揺動動作判別処理を行う。これは、Xセンサ106およびYセンサ107が検出する角速度vX,vYと、振り方向▲1▼、▲2▼、▲3▼、▲4▼を判別するために設定されている閾値(振り方向▲1▼の角速度vX,vYに対してそれぞれ閾値tX1,tY1,以下同様にして振り方向▲2▼、▲3▼、▲4▼に対して閾値tX2,tY2,tX3,tY3,tX4,tY4とする)とを比較し、振り方向を判別する処理である。
【0026】
また、操作子1が振られている過程のどの時点をテンポ指示の時点とするかについては、以下のような処理を行っている。
まず、Xセンサ106およびYセンサ107が検出する角速度vX,vYの自乗和の平方根を求め、これを絶対角速度とする。そして、この絶対角速度のピークを検出し、ピークが検出された時をテンポ指示の時と判断する。
【0027】
次に、ステップS002において振り方向が判別され、かつ、テンポ指示の時が判別されると、以下の処理において、それぞれの振り方向に応じたノートナンバが割り当てられて、チャンネル番号1のノートオンイベントとして出力される。
すなわち、振り方向が▲1▼であればノートナンバとして(61)(ステップS003)、振り方向▲2▼であればノートナンバとして(62)(ステップS004)、振り方向▲3▼であればノートナンバとして(63)(ステップS005)、振り方向▲4▼であればノートナンバとして(64)(ステップS006)が割り当てられる。そして、ノートナンバが定まった後、ステップS007では当該ノートナンバにノートオンメッセージを付加してチャンネル番号1のイベントデータとし、これをテンポ制御信号PTENPOとして送信部108から楽音演奏装置2へ出力される。
【0028】
(2)自動演奏データ再生処理
次に、楽音演奏装置2が実行する自動演奏データ再生処理を、図7に示したフローチャートを参照しつつ説明する。なお、本処理は、タイマ204が発生するタイマ割込み信号に同期して1ms毎に実行される割込み処理である。
始めに、ステップS101において自動演奏データ20の再生が要求されているかどうかを判別する。具体的には再生フラグflgPlay(データ名の"flg"はデータがフラグであることを示している)を参照し、これが"1"であれば再生要求がなされていると判断されて次のステップS102へと進み、"0"であれば再生要求がなされていないと判断されて直ちに本処理を終了する。なお、再生フラグflgPlayは、図示せぬスタートスイッチがオンされると"1"になって再生を指示し、スタートスイッチがオフされるか、自動演奏が終了すると"0"になって再生終了を指示する。
【0029】
さて、自動演奏データ20の再生が要求されていれば、次のステップS102において一時停止フラグflgPauseの判別を行い、"0"であればステップ103へ進み、"1"であればステップ112へと進む。一時停止フラグflgPauseは、自動演奏を一時的に停止させるか否かを指示するフラグであり、"0"のときに一時停止が解除され、"1"のときに一時停止が指定されるように定義されている。
ステップS103では、タイムカウンタcntTime(データ名の"cnt"はデータがカウンタであることを示している)の内容が「0」であるか否かが判断される。このタイムカウンタcntTimeは、デルタタイムデータ21が代入されるカウンタであり、割り込み処理の度にその値が減算され(ステップS110参照)、「0」になったときにイベントが実行される。すなわち、タイムカウンタcntTimeの内容は、次のイベントまでの時間を示していることになる。
【0030】
そして、ステップS103の判定が「No」であれば、未だイベント処理のタイミングに至っていないので、ステップS110〜S113の処理を行ってリターンする。ステップS103の判定が「Yes」であれば、以下に説明するイベント処理を行う。
まず、ステップS104へ進み自動演奏データ20が格納されているRAM202の記憶領域の読み出し位置(アドレス)を1つ進めてデータを読み出す。ここで読み出されたデータがデルタタイムデータ21であるかどうかを、次のステップS105で判別する。なお、この判別処理は、ステップS103から処理が進行している場合には、当該データは必ずイベントデータ22となるから、ステップS106のイベント対応処理に進む。ステップS106のイベント対応処理の後は、再びステップ104に進んで、アドレスを進めてデータを読み出す。そして、読み出したデータがデルタタイムデータ21かどうかを判断する(ステップS105)。このようにして、ステップS105の判定が「Yes」となるまでは、すなわち次のデルタタイムデータがくるまでは、ステップ104,105,106からなる処理を繰り返すが、このようなループ処理を行うのは、同時に発音するイベントがあった場合に、デルタタイムデータ21を挟まずにイベントデータ22が連続しているからである。
【0031】
一方、ステップS105において、読み出されたデータがデルタタイムデータ21であれば、ステップS107へと進み、当該デルタタイムデータ21の値をタイムカウンタcntTimeに代入する。
次に、ステップS108ではタイムカウンタcntTimeが0であるかどうかの判別処理を行う。ここで結果が「Yes」であれば、ステップS104へと進み、上述のステップS104以降の処理を繰り返す。
【0032】
次に、イベント対応処理について図11を参照して説明する。まず、ステップS141においては、自動演奏データ20から読み出されたイベントが、曲の途中において打数を指示する打数指示データCBEATか否かが判断される。打数指示データCBEATでなければ、ステップS143に移ってチャネル番号1のイベントか否かが判断される。チャネル番号1以外のイベントデータであれば、演奏用のイベントであるので、ステップS148に進んで当該イベントを出力して対応する処理(発音や消音など)を行い、リターンする。
【0033】
一方、ステップS141で「Yes」となったら変数Beatに打数指示データCBEATを代入し(S142)、ステップS143を介してステップS144に進む。ここで、ステップS142における処理は、自動演奏データ20から読み出されたデータに対する処理を行うステップであり、読み出されるデータとしては打数指示データCBEATと打数指定データPBEATがある。なお、打数指定データPBEATが読み出される場合については後述する。
また、自動演奏データ20から読み出されたイベントデータが、拍のタイミングに配置されたチャネル番号1のキーオンイベントであった場合は、ステップS141、S143を介してステップS144へと進む。
ステップS144では、テンポ情報受信フラグflgTmpの内容が"1"か否かが判定される。テンポ情報受信フラグflgTmpは、操作子1からテンポ制御信号PTENPOを受け取ったか否かを判定するフラグであり、"1"のときは操作子1からテンポ制御信号PTENPOを受け取ったことを示し、"0"のときは操作子1からテンポ制御信号PTENPOを受け取っていないことを示す。
このテンポ情報受信フラグflgTmpの内容が"0"であれば、ステップS145に進み、読み出されたチャネル番号1のノートナンバをイベント変数evtMDに代入する。そして、打数・動作判定処理(ステップS146)に進む。図12に示すフローチャートにおいては、変数Beatに代入された打数を判定し、判定結果に応じて一時停止フラグflgPauseを"1"にする。一時停止フラグflgPauseが"1"になるのは、以下の場合である。すなわち、打数が4の場合(ステップS161)、打数が2でイベント変数evtMDに代入されたノートオンイベントが(61)または(63)の場合(ステップS162,163)、打数が1でイベント変数evtMDが(61)の場合(ステップS164,165)である。以上の条件が満たされた場合は、一時停止フラグflgPauseに"1"がセットされる(ステップS166)。この場合、一時停止フラグflgPauseの内容が"1"であれば、拍のタイミングを示すチャネル番号1のノートオンイベントが、自動演奏データ20から読み出されたことが分かる。
【0034】
また、上記以外の打数指定やノートオンイベントの場合には、ただちにリターンする。一方、テンポ情報受信フラグflgTmpの内容が"1"であれば、図11に示すステップS144からステップS147に進み、テンポ情報受信フラグflgTmpをリセットしてリターンする。
【0035】
以上がイベント対応処理であるが、説明を簡単にするために、以下においては、自動演奏の打数は打数初期値DBEAT(値は4)によって指定されたままで打数指示データCBEATは読み出されていない場合を想定する。
ここで、図11に示すステップS144の意味を説明すると、この判定が「No」となるのは、拍のタイミングにおいて未だ操作子1からテンポ制御信号PTENPOが出力されていないことを意味し、操作者が自動演奏のテンポより遅いテンポで操作子1を振っている場合である。すなわち、リタルダンド(だんだん遅く)が指示されていることになる。逆に、ステップS144の判定が「Yes」の場合は、自動演奏の拍より早いタイミングで操作子1からテンポ制御信号PTENPOが出力されていることになり、アッチェレランド(だんだん速く)が指示されていることになる。
さて、図7に戻り、ステップS108の判定が「No」であれば、ステップS109へと進みタイムカウンタcntTimeの値を以下に示す数1に基づいて書き換える。
【0036】
【数1】
cntTime = cntTime × coefTmp
【0037】
数1において、coefTmp(データ名の"coef"はデータが係数であることを示している)はテンポ係数である。
ここで、タイムカウンタcntTimeは、前述したようにその値が0になったときに、次のイベントデータ22が読み出されるから、この値が大きくなるように書き換えられれば、次のイベントデータ22が読み出されるタイミングは遅れる。すなわち、自動演奏のテンポが遅くなる。一方、タイムカウンタcntTimeの内容が小さくなるように書き換えられれば、次のイベントデータ22が読み出されるタイミングは早くなる。すなわち、自動演奏のテンポが早くなる。
以上のように、テンポ係数coefTmpが1より小さい場合には現在のテンポより速いテンポで楽曲が演奏され、前記テンポ係数coefTmpが1より大きい場合には現在のテンポより遅いテンポで楽曲が演奏される。
【0038】
ステップS109の処理を行ったら、ステップS110へと進みタイムカウンタcntTimeを1だけデクリメントする。
次のステップS111では、デルタタイム累算値cntDltを1だけインクリメントする。その後ステップS112では、テンポ制御間隔cntIntを1だけインクリメントする。デルタタイム累算値cntDltは、1ms毎に起動される自動演奏データ再生処理(図7のフローチャート)のステップS111において1ずつインクリメントされる一方、次の拍のタイミングまで累算されるから(図9のステップS127,S132,S138参照)、リセットされる直前の値は、その時点における自動演奏の1拍分の長さに対応する。
【0039】
また、テンポ制御間隔cntIntは、1ms毎に起動される自動演奏データ再生処理(図7のフローチャート)のステップS112において1ずつインクリメントされる一方、操作子1からテンポ制御信号PTENPO(チャネル番号1のノートオン(61)〜(64))が出力されたときにリセットされるから(図9のステップS128,S139参照)、リセットされる直前の値は、操作者が指示する1拍分の長さに対応する。
【0040】
ここで、上記のデルタタイム累算値cntDltとテンポ制御間隔cntIntの関係について説明する。
図8は、テンポ制御間隔cntIntとデルタタイム累算値cntDltとの関係を説明するための図であり、図中、□は演奏データ20から読み出されたチャンネル番号1のノートオンイベントの発生タイミングを示し、○はチャンネル番号1以外のイベントの発生タイミングを示している。また、同図においては、4拍子の曲の1拍目と2拍目のタイミングを示している。
【0041】
時刻t1においては、操作子1から出力されたテンポ制御信号PTENPO(チャネル番号1のキーオンイベント)と、自動演奏データ20から読み出された1拍目のチャネル番号1のキーオンイベント(ノートナンバはいずれも(61))のタイミングは同じである。一方、自動演奏データ20から読み出される次のキーオンイベント(2拍目:チャネル番号1のノートナンバ(64))のタイミングは時刻t3であるが、操作子1から出力される2拍目のテンポ制御信号PTENPO(ノートナンバは(64))は、それより早い時刻t2に発生されている。このような関係の場合は、操作者はその時点の自動演奏のテンポより速いテンポで操作子1を振っていることになる。
【0042】
一方、テンポ制御間隔cntIntがデルタタイム累算値cntDltと比較して長い場合、例えば、図8に示す時刻t4に、操作子1から2拍目のキーオンイベント(ノートナンバは(64))が出力される場合は、操作者はその時点の自動演奏のテンポより遅いテンポで操作子1を振っていることを意味する。また、テンポ制御間隔cntIntとデルタタイム累算値cntDltが同じであれば、操作者はその時点の自動演奏のテンポ通りに操作子1を振っていることになる。
【0043】
ここで、前述した一時停止フラグflgPauseについて説明すると、自動演奏データ20からチャンネル番号1のキーオンイベントが読み出された時点において、操作子1から未だチャネル番号1のキーオンイベントが出力されていない場合に(例えば、図8の時刻t3〜t4の間)、一時停止フラグflgPauseの内容は"1"になり、自動演奏が一時停止される。この場合は、図7のフローチャートに示すステップS102の処理によって、イベント対応処理S106に進むことなく、直ちにリターンされるので演奏が一時停止される。
【0044】
次に、図7に示すステップS112までの処理が終了したら、ステップS113においてテンポキーオン処理を行う。この処理は、操作子1から出力されるテンポ制御信号PTENPOイベントに対する処理である。以下、テンポキーオン処理について図9を参照しつつ説明する。
まず、操作子1からテンポ制御信号PTENPOが出力された場合は、その内容(チャネル番号1のノートオンイベント)が、イベント変数evtTmpに代入される。そして、ステップS121においては、イベント変数evtTmpの内容からテンポ制御信号PTENPOを受信しているかどうかを判別する。これが「Yes」であれば次のステップS122へ進み、「No」であれば本処理を終了し、図7に示す自動演奏データ再生処理に戻る。
【0045】
次に、ステップS122において一時停止フラグflgPauseの状態を判別し、その内容が"1"ならステップS123へと進む。一時停止フラグflgPauseの内容が"1"になるということは、ステップS166を経由したということであり、そのためには、図11に示すステップS144で「No」となる必要がある。すなわち、操作者が自動演奏のテンポより遅いテンポで操作子1を振り、リタルダンド(だんだん遅く)を指示している場合である。
次に、ステップS123においては、イベント変数evtMDの内容とイベント変数evtTmpが一致するかどうかが判定され、一致していなければ以下の処理をスキップして直ちにリターンする。
【0046】
ここで、ステップS123の処理の意味を説明する。イベント変数evtMDには、図11に示すステップS145において、自動演奏データ20から読み出されたチャンネル番号1のノートオンイベントが書き込まれている。
また、現時点においては、打数初期値DBEATが「4」のまま変更されていない自動演奏データに対する処理を行っているので、イベント変数evtMDには、1拍目のタイミングではノートオンイベント(61)が代入され、2,3,4拍目のタイミングでは、それぞれ(64)、(62)、(63)のノートオンイベントが代入される。一方、操作者は、図3の打数4に対応する振り方で操作子1を振るから、1,2,3,4拍目に出力されるテンポ制御信号PTENPOの内容はそれぞれ、ノートオンイベント(61)、(64)、(62)、(63)となっている。
【0047】
すなわち、ステップS123の処理は、拍に対応する振り方以外の振り方がされている場合をキャンセルする処理である。この処理によって、自動演奏データ20の拍のタイミングと、操作子1の振り方(図3参照)との対応がとられる。
さて、ステップS123の判定が「Yes」であれば、ステップS124へ進み、デルタタイム累算値cntDltおよびテンポ制御間隔cntIntの各値から、テンポ係数比率rateTmpを以下の数2より求める。
【0048】
【数2】
rateTmp = cntInt / cntDlt
【0049】
上記数2より求められたテンポ係数比率rateTmpをもとに、ステップS125では新たなテンポ係数coefTmpを以下の数3より求める。なお、デルタタイム累算値cntDltおよびテンポ制御間隔cntIntが同じ値であれば、テンポ係数比率は変わらず、曲のテンポは維持される。
【0050】
【数3】
coefTmp = coefTmp × rateTmp
【0051】
ステップS125によりテンポ係数coefTmpを更新したら、次のステップS126ではテンポ係数coefTmpのリミット処理を行う。ここでリミット処理とは、テンポ係数coefTmpにより設定されたテンポが当該自動演奏装置において制御可能な最も遅いテンポを超えた場合に、テンポ係数coefTmpを下限値に制限するための処理である。
上述のテンポ係数リミット処理が終了したら、デルタタイム累算値cntDltおよびテンポ制御間隔cntIntに"0"をセットし(ステップS127,128)、一時停止フラグflgPauseを"0"にリセットし、(ステップS129)テンポキーオン処理を終了する。
【0052】
一方、ステップS122において一時停止フラグflgPauseが"0"の場合は、操作子1からテンポ制御信号PTENPOが出力された時点では、自動演奏データ20からは次の拍に対応するチャネル番号1のキーオンイベントが読み出されていない状態であり(図8の時刻t2〜t3;アッチェレランドが指示されている場合)、自動演奏データ20を先読みサーチして次に読み出されるべきチャネル番号1のキーオンイベントを読み出す。
【0053】
次のステップS131においては、ステップS130でサーチした自動演奏データ20のノートオンイベントであって、イベント変数evtMDに代入されたものと操作子1から出力されてイベント変数evtTmpに代入されたものが一致するかどうかを判別する。これがYesであれば次のステップS132へ進み、Noであれば本処理を終了し、前記自動演奏データ再生処理に戻る。このステップS131の処理は、前述したステップS123の処理と同じ意味合いの処理である。
次に、ステップS132では、数4で示される計算を実行する。
【0054】
【数4】
cntDlt = cntDlt + coefTmp(cntTime + DT)
【0055】
ここでDTとは、現在自動演奏中のイベント位置からイベント変数evtMDに代入された次のチャンネル番号1のキーオンイベントまでのデルタタイムdt1,dt2,…,dtnの総和である(図10参照)。
数4の処理により、現時点の自動演奏のテンポに沿った1拍分の時間間隔が、カウンタcntDltに代入される。
上述の処理が終了したら、次のステップS133へと進む。
【0056】
ステップS133では、図10に示されたDTを構成する各デルタタイムdt1,dt2,…,dtnおよびcntTimeのそれぞれに適当な1未満の定数を乗じ、次のイベントを早く読み出せるようにそれぞれの値を変更する。
次のステップS134では、テンポ情報受信フラグflgTmpに"1"をセットする。このテンポ情報受信フラグflgTmpの内容を見ることにより、自動演奏データ20の拍のタイミングよりも早く、当該拍に対応するテンポ制御信号PTENPOを受信しているか否かが分かる。そして、テンポ情報受信フラグflgTmpの内容が"1"であれば、操作者はアッチェレランドを指示していることが分かる。
【0057】
ステップS134が終了した後のステップS135からステップS139までの処理は、上述のステップS124からステップS128までのそれぞれの処理と同様である。すなわちテンポ係数比率rateTmpの設定(ステップS135)、テンポ係数coefTmpの更新(ステップS136)、テンポ係数coefTmpのリミット処理(ステップS137)、デルタタイム累算値cntDltおよびテンポ制御間隔cntIntのクリア(ステップS138,139)を行う。
以上の処理が終了したら、本テンポキーオン処理を終了し、図7に示す自動演奏データ再生処理に戻る。
【0058】
以上の処理をまとめると、操作者が操作子1を使って自動演奏のテンポと同じ速さでテンポをとっていれば、デルタタイム累算値cntDltとテンポ制御間隔cntIntは等しくなり、ステップS125(あるいはステップS136)で算出されるテンポ係数coefTmpは、それまでの値が維持される。したがって、図7に示すステップS109においてタイムカウンタcntTimeが書き換えられることなく、それまでのテンポが維持される。また、自動演奏は一時停止されることなく継続される。
また、操作者が操作子1を振る速さが自動演奏のテンポより速ければ、デルタタイム累算値cntDltよりテンポ制御間隔cntIntの方が小さくなり、ステップS136で算出されるテンポ係数coefTmpは小さくなる。この結果、図7に示すステップS109においては、タイムカウンタcntTimeの値は小さく書き換えられることになり、自動演奏のテンポが速くなる。
【0059】
一方、操作者が操作子1を振る速さが自動演奏のテンポより遅ければ、デルタタイム累算値cntDltよりテンポ制御間隔cntIntの方が大きくなる。したがって、ステップS125で算出されるテンポ係数coefTmpは大きくなる。この結果、図7に示すステップS109においては、タイムカウンタcntTimeの値は大きく書き換えられることになり、自動演奏のテンポが遅くなる。また、この場合は、図12のステップS166において一時停止フラグflgPauseに"1"がセットされるので、図7に示す自動演奏データ再生処理では、ステップS102の判定が「No」となってイベント対応処理(ステップS106)を経由しなくなるため、自動演奏が一時停止される。その後に、操作子1からテンポ制御信号PTENPOが出力されると、図9に示すステップS121→S122→S123→S124を介してS125に進み、ここでテンポ係数coefTmpは大きな値に書き換えられる。その後、ステップS129を経由することで一時停止フラグflgPauseがリセットされ、再び自動演奏が再開される。この再開以後においてはステップS109において、タイムカウンタcntTimeの値は大きな値に書き換えられているため、自動演奏のテンポが遅くなる。
以上のようにして、操作者が操作子1を振るテンポに応じて、自動演奏のテンポが制御される。
【0060】
(3)曲の途中で打数指示データCBEATが読み出された場合
上述した動作例は、自動演奏データ20から打数初期値DBEATの値を読み込んだ後に、その値が変更されない例であったが、本実施形態においては自動演奏データ20に埋め込まれた打数指示データCBEATが読み出される度に、打数が変更される。
【0061】
今、打数指示データCBEATが読み出され、その値が「2」であるとすれば、図12に示すステップS162で「Yes」となり、ステップS163の処理を経由する。すなわち、1拍目と3拍目のタイミングに埋め込まれているノートオンイベントが読み込まれたときだけ一時停止フラグflgPauseがセットされ、2拍目と4拍目は不問とされる。また、図9に示すステップS123、S131においても1拍目と3拍目の動作(▲1▼と▲3▼)以外のテンポ制御信号PTENPOは無視されるから、自動演奏のテンポは振り下ろしと振り上げによって制御されることになる。すなわち、図2の打数2の振り方によって制御される。
また、ステップS124またはステップS135におけるテンポ係数比率rateTmpの算出において、デルタタイム累算値cntDltおよびテンポ制御間隔cntIntの各値は、それぞれ2拍分の時間間隔を示すものとなる。
【0062】
一方、読み出された打数指示データCBEATの値が「1」であるとすれば、図12に示すステップS164で「Yes」となり、ステップS165の処理を経由する。すなわち、1拍目のタイミングに埋め込まれているノートオンイベントが読み込まれたときだけ一時停止フラグflgPauseがセットされ、その他の拍は不問とされる。また、図9に示すステップS123、S131においても1拍目の動作(▲1▼)以外のテンポ制御信号PTENPOは無視されるから、自動演奏のテンポは振り下ろしだけによって制御されることになる。すなわち、図3の打数1の振り方によって制御される。
【0063】
また、ステップS124またはステップS135におけるテンポ係数比率rateTmpの算出において、デルタタイム累算値cntDltおよびテンポ制御間隔cntIntの各値は、それぞれ4拍分の時間間隔を示すものとなる。
以上のように、この実施形態においては、自動演奏データ20の適宜な位置に打数指示データCBEATを埋め込んでおくことにより、テンポをとる際の打数を自在に変えることができる。
ここで、図13は第1小節が打数2、第2小節以降が打数4に設定されている例である。このように曲の適宜な位置において、テンポをとる打数を任意に設定することができる。
【0064】
(4)操作者がボタンSWを押して打数を指示した場合
次に、操作者がボタンSW(図1または図4参照)を押した場合の動作について説明する。ボタンSW、SW・・・は、それぞれ打数1,打数2、打数3、打数4に対応して設けられている。いずれかのボタンSWが押されると、そのボタンに対応した打数を示す打数してデータPBEATが操作子1から出力される。この打数指定データPBEATは、図2に示す自動演奏データ20に挿入される(図2の破線参照)。挿入の仕方としては、打数指定データPBEATが出力された時点で処理されているイベントの直後に挿入するか、あるいは、次の拍の位置や次の小節の先頭位置に挿入するやり方があるが、適宜設定すればよく、また、操作子1のボタンSWの操作によって挿入の仕方を選択できるようにしてもよい。
以上のようにして、自動演奏データ20に挿入された打数指定データPBEATは、イベント対応処理において読み出され、図11に示すステップS142に示すように、打数指示データCBEATの場合と同じように処理され、変数Beatに代入される。
このようにして、RAM202中の自動演奏データ20に挿入すると、演奏終了後に、この演奏データ20をHDD206に転送したり、あるいは外部記憶装置207を用いて記憶媒体に書き込んだりすることができ、操作者が打数の制御を施した自動演奏データ20の保存、記録を行うことができる。
また、以上のように、ボタンSWを押して打数指定データPBEATを出力する場合は、自動演奏データ20に埋め込まれている打数指示データCBEATに加えて打数の変更指示を行うこともでき、また、打数指示データCBEATが埋め込まれていなくても、打数の変更を行うことができる。
また、操作子1の操作による打数指示には以下のような態様もある。
まず、操作子1より打数指定データPBEATが出力されたか否かを示すフラグとして、打数情報受信フラグflgPBEATを設定し、このフラグが"1"なら操作子1から打数指定データPBEATが出力されたとし、"0"なら操作子1から打数指定データPBEATは出力されていないという制御を行う。このような制御を行うと、操作子1から打数指定データPBEATが出力されると、打数情報受信フラグflgPBEATが"1"になり、打数指定データPBEATが出力されたことを知ることができる。そして、イベント対応処理において、図11に破線で示すステップSa、Sbを追加し、打数情報受信フラグflgPBEATが"1"であれば、操作子1から出力された打数指定データPBEATの値を変数Beatに代入し(ステップSa→Sb→S143)、自動演奏データ20から打数指示データCBEATあるいは打数指定データPBEATが読み出されたとしてもこれは採用しない。
一方、打数情報受信フラグflgPBEATが"0"であれば、ステップS141の判断を行い、これがYesであれば、ステップS142に進んで自動演奏データ20から読み出された打数指示データCBEATまたは打数指定データPBEATを変数Beatに代入する(ステップSa→S141→S142)。
また、打数の初期値は実施形態において説明したように、自動演奏データ20中に書き込まれている打数初期値データDBEATによって決定されるが、操作子1から演奏前に打数指定データPBEATが出力された場合は、打数初期値データDBEATを打数指定データPBEATの値に書き換えてもよい。この場合、打数指定データPBEATの値が有効な値のときだけ書き換えを行い、無効な値(例えば、4拍子のときに「3」など)のときは書き換えないようにする。
さらに、操作子1のボタンSWに例えば「0」などの特殊な数値のものを設け、このボタンが押されたら、打数指定データPBEATに基づいて書き換えた値をデフォルト(打数初期値データDBEATの値)に戻すようにしてもよい。また、ボタンSWの押し方の組み合わせによってデフォルトに戻すようにしてもよい。この場合は、打数初期値データDBEATの書き換えに際して、打数初期値データDBEATの値をRAM202の所定の記憶エリアに保存しておき、デフォルトに戻すことが指示されたときに、その記憶エリアの値を自動演奏データ20に書き込めばよい。
【0065】
(5)3拍子の曲の場合
以上の説明は、4拍子の曲について行ったが、その他の拍子でも上記と同様の動作となる。例えば、図14は3拍子の場合の打数・動作判別処理(ステップS146)である。図に示すステップS151では変数Beatの内容が「3」であるか否かが判定され、「Yes」であれば、ステップS154で一時停止フラグflgPauseがセットされる。また、変数Beatの内容が「1」であれば、ステップS151→S152→S153に進み、イベント変数evtMDの内容が1拍目に対応する(61)か否かが判定される。この判定が「Yes」ならステップS154で一時停止フラグflgPauseがセットされる。
【0066】
その他の処理は4拍子の場合と同様であり、これにより、変数Beatの内容が「3」であれば3拍子の各拍についてテンポがとられ、変数Beatの内容が「1」であれば1拍目だけでテンポがとられる。操作子1の振り方は、図3に示す打数3と打数1に対応する。ここで、図15は3拍子の曲の例であるが、第1小節は打数3、第2小節以降は打数1となっている。
ところで、ステップS146は、拍子に応じた処理内容となるため、種々の拍子に対応して複数用意されており、自動演奏データ20から読みとられた拍子に対応した処理が選択される。なお、曲の途中で拍子が変わる場合には、その時点において、変更後の拍子に対応する打数・動作判別処理が選択される。
【0067】
(実施形態の概要)
上述した実施形態の装置としての概要をまとめると、以下のとおりである。
「操作者によって動かされた際の運動状態を検出する操作子と、
前記操作子が検出した運動状態から、曲のテンポをとるためのタイミングを示すテンポ制御信号を、前記運動の種類(実施形態では振り方)を識別する識別情報(実施形態ではノートナンバ)を含めて生成するテンポ制御信号生成手段と、
小節内において曲のテンポを何回のタイミングでとるべきかを示す打数を、打数指示情報に基づいて設定する打数設定手段と、
自動演奏データに基づいて演奏信号を生成する自動演奏手段とを有し、
前記自動演奏データは、曲のテンポをとる位置に、前記運動の種類を識別する識別情報とともに埋め込まれるタイミング情報を含んでおり、
前記自動演奏手段は、前記打数設定手段が設定した打数に基づいて前記識別情報の種類を選択し、選択した識別情報を有する前記タイミング情報の間隔と、選択した識別情報を有する前記テンポ制御信号の間隔とを比較し、この比較結果に応じて自動演奏のテンポを決定することを特徴とする自動演奏装置。」
また、上述した実施形態においては、曲のテンポを示すテンポ情報が自動演奏データに含まれていない場合であっても、楽音演奏装置2が、自動演奏開始前に操作子1から出力されるテンポ制御信号PTENPOの間隔を認識することで、初期テンポを設定することもできる。
【0068】
C:変形例
(1) 上述した実施形態においては、操作子1を振る方向を検出し、自動演奏データ20の拍の位置にも操作子1を振る方向に対応したデータを埋め込んで、操作子1の動作方向を認識しながらテンポ制御を行ったが、操作子1の動作方向を不問にしたテンポ制御を行うこともできる。例えば、操作子1を平板状に形成し、これが操作者によって叩かれたことを圧電センサなどで検出し、この検出タイミングの間隔からテンポを制御してもよい。この場合、自動演奏の1拍の間隔は、上述の実施形態のように自動演奏データ20の拍のタイミングの位置にデータを埋め込み、そのデータの時間間隔を演算すればよい。このような構成をとった場合の打数の制御は、上述の実施形態と同様に行うことができる。例えば、4拍子で打数が4なら、圧電センサの検出タイミングの間隔を1拍分として認識する。同様にして、打数が2なら2拍分、打数が1なら4拍分として認識すればよい。
【0069】
以上のような態様とした場合の概要は以下のとおりである。
「操作者によって動かされた際の運動状態を検出する操作子と、
前記操作子が検出した運動状態から、曲のテンポをとるためのタイミングを示すテンポ制御信号を生成して出力するテンポ制御信号出力手段と、
小節内において曲のテンポを何回のタイミングでとるべきかを示す打数を、打数指示情報に基づいて設定する打数設定手段と、
自動演奏データに基づいて演奏信号を生成するとともに、前記打数設定手段が設定した打数に対応するタイミングの間隔を、前記自動演奏データのテンポをとる位置に埋め込まれたタイミング情報の間隔から求めて前記テンポ制御信号の発生間隔と比較し、この比較結果に応じて自動演奏のテンポを決定する自動演奏手段と
を具備することを特徴とする自動演奏装置。」
【0070】
また、曲のテンポを示す情報から自動演奏の拍の長さを求めてもよい。さらに、自動演奏信号20に小節線情報が埋め込まれている場合は、小節線情報の間隔から拍の長さを演算してもよい(例えば、4拍子なら小節線情報の間隔の四分の一を1拍として算出するなど)。
この場合には、「自動演奏データのテンポをとる位置に埋め込まれたタイミング情報」は不要になる。要するに、自動演奏の拍(1拍または複数の拍)の長さは、自動演奏データに基づいて種々の求め方がある。
【0071】
(2)上述した実施形態においては、打数を指定するボタンSW(図4参照)によって操作者が任意に打数を指定できるようにしたが、このボタンSWついて操作の制限を付加してもよい。例えば、4拍子なら打数1,2,4を指定する以外のボタン操作は無効にし、3拍子なら打数1,2,3を指定する以外のボタン操作は無効にするように構成してもよい。また、有効なボタンSWについては、そのボタン自身あるいはそのボタンの近傍に設けたLED等が点灯するようにしてもよい。このような制御を行うには、楽音演奏装置2から拍子を示す信号を操作子1側に供給し、操作子1においては、拍子を示す信号を受信して、どのボタンの操作を無効にするかを決定すればよい。この場合、拍子を示す情報は、自動演奏データ20から読みとればよい。
上記のように構成すれば、誤操作が防止できる効果がある。特に、曲の途中で拍子が変わる場合などは有効である。
【0072】
(3)上述した実施形態においては、自動演奏データ20に埋め込んだ打数指示データCBEATによって打数変更を行ったが、打数が変更されるタイミングを操作者に気づかせるために、「打数が変更されます」などのメッセージを発音(あるいは表示)するように構成してもよい。発音は、音声データを自動演奏データ20に埋め込んでおけば簡単に実現することができ、表示を行うには、文字データを埋め込んでおけばよい。また、その音声データや文字データを操作子1に転送し、操作子1がこれを受信するようにしておけば、操作子1においても発音や表示を行うことができる。
【0073】
(4)上述した実施形態においては、1小節単位で打数の設定を行ったが、2小節以上の単位で打数を設定してもよい。また、拍子についても、4拍子、3拍子に限らず、任意の拍子の設定が可能である。
【0074】
(5)操作子1の振り方の強弱に基づく制御を加えてもよい。例えば、角速度vX,vYに対する閾値tX1,tY1,tX2,tY2,tX3,tY3,tX4,tY4を可変とし、打数に応じて変更されるようにしてもよい。こうすることで、打数が多い場合には閾値を小さくし、細かい動作でもテンポ指示ができるようにするなどの制御を行うことができる。
【0075】
(6)操作者が操作子1を操作して変更したテンポを示すデータを自動演奏データ20に埋め込むようにしてもよい。これによって、自動演奏データ20は、操作者の好みのテンポの曲となる。
【0076】
(7)上述の実施形態におけるXセンサ106およびYセンサ107には、速度を感知する速度センサを用いてもよい。要するに、振りの方向性が検出できるセンサを用いればよい。
【0077】
(8)操作子1の形状については、本実施形態では片手で把持できる指揮棒のような形状としたが、これは任意である。例えば、カスタネットのような形状にし、操作者はこれを叩いてテンポをとってもよく、あるいは、操作者の身体に取り付ける形状にし、身振り手振りに合わせてテンポ制御を行ってもよい。
【0078】
(9)テンポの変動に応じて打数を変えてもよい。テンポに対して幾つかの閾値を用意しておき、曲のテンポがある領域に入ったら打数は2、また他の領域に入ったら打数は1、というように制御することもできる。
【0079】
(10)操作子1から出力されるテンポ制御信号PTENPOを楽音演奏装置2側で作成してもよい。すなわち、操作子1からは、Xセンサ106およびYセンサ107の出力信号をそのまま出力するように構成し、これらの信号からテンポ制御信号PTENPOを作成する処理は楽音演奏装置2側で行うという構成をとってもよい。
【0080】
(11)実施形態における楽音演奏装置2は、ROM201,RAM202,CPU203,タイマ204,HDD206,表示部208等を有しているが、これらは一般のコンピュータと同様の構成である。したがって、楽音演奏装置2として専用に構成された装置に限らず、一般のコンピュータに楽音演奏装置2と同様の動作を行わせるプログラムを読み込ませることによっても、同様の装置を構成することができる。また、このプログラムを記録した記録媒体を作成し、これを頒布することでより広い利用に供することもできる。
【0081】
【発明の効果】
以上説明したように、本発明によれば、打数を変更して操作性を向上させたテンポ制御を行うことが可能となる。
【図面の簡単な説明】
【図1】 本発明の一実施形態の構成を示すブロック図である。
【図2】 同実施形態で用いる自動演奏データを示した図である。
【図3】 同実施形態において操作者のテンポのとり方を示す図である。
【図4】 同実施形態における操作子1の外観を示す図である。
【図5】 同実施形態において操作者が操作子1を振っている状態を示す図である。
【図6】 同実施形態におけるテンポ制御信号出力処理のフローチャートである。
【図7】 同実施形態における自動演奏データ再生処理のフローチャートである。
【図8】 同実施形態におけるテンポ制御間隔cntIntとデルタタイム累算値cntDltとの関係を説明するための図である。
【図9】 同実施形態におけるテンポキーオン処理のフローチャートである。
【図10】 同実施形態におけるデルタタイム累算値cntDltの具体的な算出方法を説明するための図である。
【図11】 同実施形態におけるイベント対応処理のフローチャートである。
【図12】 同実施形態における4/4拍子の場合の打数・動作判別処理のフローチャートである。
【図13】 同実施形態における4/4拍子の打数変更例を示した図である。
【図14】同実施形態における3/4拍子の場合の打数・動作判別処理のフローチャートである。
【図15】同実施形態における3/4拍子の打数変更例を示した図である。
【符号の説明】
1…操作子、20…自動演奏データ、103…CPU(テンポ制御信号出力手段)、105…打数指定部(入力手段)、203…CPU(自動演奏手段、打数設定手段)、DBEAT…打数初期値データ(打数指示情報)、CBEAT…打数指示データ(打数指示情報)、PBEAT…打数指定データ(打数指示情報)、PTENPO…テンポ制御信号。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an automatic performance apparatus and a program for controlling an automatic performance tempo in accordance with an operation for taking an operator's tempo.
[0002]
[Prior art]
Various automatic performance devices have been proposed that control the tempo of automatic performance by waving a manipulator shaped like a baton. For example, in the apparatus shown in Patent Document 1, timing data indicating the timing at which the tempo is taken is embedded in the beat position in the automatic performance data, and the interval at which this data is read out and the interval at which the operation element is swung are set. Compare and change song tempo in real time.
By performing such control, it is possible to obtain a feeling as if the operator has become a conductor who performs the performance.
[0003]
[Patent Document 1]
JP-A-8-272363
[0004]
By the way, in the above-described conventional apparatus, the number of times to take the tempo is determined by the timing data embedded in the automatic performance data. It is fixedly determined by automatic performance data. For example, in a quarter-beat song, the tempo must be taken with four strokes for each measure from the beginning to the end of the song.
In this case, a fast-tempo music or the like is difficult for beginners and elderly people because the pitch of the operation member must be increased. Further, there are cases where it is desired to change the number of strokes within one measure in the middle of a song, such as when the tone of a song changes, but this is not possible with conventional devices.
Furthermore, even if the music itself has a 4/4 time signature, it is often performed by the conductor's interpretation at a 2/2 time signature (alle bleve), but this is supported by conventional devices. It was impossible.
[0005]
[Problems to be solved by the invention]
The present invention has been made under such a background, and an object of the present invention is to provide an automatic performance apparatus and program capable of changing the number of times of taking a tempo.
[0006]
[Means for Solving the Problems]
  In order to solve the above-described problems, an automatic performance device according to the present invention takes the tempo of a song from an operation element that detects a movement state when moved by an operator and the movement state detected by the operation element. A tempo control signal output means for generating a tempo control signal indicating the timing of the above, a batting number setting means for setting a batting number indicating how many times the tempo of the song should be taken within a measure, based on the batting instruction information;Includes timing information for the tempo of the automatic performanceWhile generating performance signals based on automatic performance data,Of the timing embedded in the position where the tempo of the automatic performance data is taken, the timing interval determined by the number of strokes set by the stroke number setting meansComparing with the generation interval of the tempo control signal, automatic performance means for determining the tempo of the automatic performance according to the comparison result is provided.
[0007]
  The tempo control signal output means, when the motion state detected by the operator is classified into a plurality of types equal to the maximum value that can be set as the number of strokes, the motion state detected by the operator Is specified as one of the plurality of types, and the tempo control signal including identification information indicating the specified type is generated, and the automatic performance data is generated for each position corresponding to the beat timing of the song. Identification information indicating which of the plurality of types of the exercise state at the timing is included, and the automatic performance means sets the number of strokes of the plurality of types among the timings of the beats in the automatic performance data The timing interval corresponding to the position including the identification information indicating the type used in the number of strokes set by the means, and the type indicated by the identification information are May be compared with the interval of generation of the tempo control signal is a type used in bats that have been set by the number setting means.
  Further, the batting number instruction information may be embedded in the automatic performance data, or may be input by an input means operated by an operator.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0009]
A: Configuration of the embodiment
FIG. 1 is a block diagram showing a configuration of an embodiment of the present invention. In this embodiment, it is constituted by an operator 1 that is shaken by an operator, and a musical sound performance device 2 that performs automatic performance by performing tempo control in accordance with the movement status of the operator 1.
[0010]
As shown in FIG. 4, the operating element 1 has an appearance like a baton. Reference numeral 1a shown in FIG. 4 denotes a gripping portion, and the operator can arbitrarily swing the operating element 1 by grasping the gripping portion 1a. FIG. 5 shows a state where the operator A is waving with the operator 1 in his / her hand. Further, as shown in FIG. 4, a striking number designating unit 105 having a plurality of buttons SW, SW... These buttons SW are used to set how many times the tempo is taken per measure during tempo control.
[0011]
A circuit shown in FIG. 1 is incorporated in the operator 1. The CPU 103 shown in FIG. 1 uses the storage area of the RAM 102 as a work area, and controls each part of the apparatus by executing various programs stored in the ROM 101. The timer 104 measures an interrupt time in the timer interrupt process of the CPU 103.
[0012]
The X sensor 106 detects the angular velocity in the horizontal direction of the swing operation of the operating element 1 performed by the operator, and the Y sensor 107 detects the angular velocity in the vertical direction of the swing operation of the operating element 1. A piezoelectric vibration gyro sensor is used for the X sensor 106 and the Y sensor 107 and is embedded in the tip portion of the operation element 1 (see FIG. 4). The output signals of the X sensor 106 and the Y sensor 107 are read by the CPU 103 after noise removal and AD conversion. The CPU 103 performs processing for specifying the swinging motion of the operator based on the read output signals of the X sensor 106 and the Y sensor 107. In this process, it is specified how the operation element 1 is swung, and four types of swinging directions of upward, downward, rightward, and leftward are specified. Then, MIDI (Musical Instrument Digital Interface: registered trademark) event data corresponding to the specified way of swinging is generated.
[0013]
Next, how to set the tempo of the operator will be described with reference to FIG. In this figure, the number of strokes means how many times the tempo is taken within one measure when tempo control is performed.
First, when the number of strokes is 1, the tempo is taken when the operator 1 is swung down from top to bottom, and the tempo is taken only once per bar. This approach is used for both 3-beat and 4-beat songs and takes the tempo on the first beat. When the number of strokes is 2, the tempo is taken when the operator 1 is lowered and raised, and the tempo is taken twice per bar. This method is used for 4-beat music and takes tempo on the 1st and 3rd beats. The number of strokes 3 is a method of shaking to draw a triangle, and takes a tempo when drawing each side of the triangle. This method is used for songs with three time signatures and takes a tempo for each beat. The number of strokes 4 is a method of taking a tempo by four operations of swinging down → moving left → moving right → swinging up, and is used for a 4-beat song, and takes a tempo for each beat.
In this embodiment, it is predetermined that the operation element 1 is shaken as shown in FIG.
[0014]
In addition, as shown in the figure, the swing direction is specified by swinging downward (1), swinging right (2), swinging upward (3), and swinging left (4). ▼ and assign a note number to each. A note-on event is attached to the note number. In this embodiment, note-on messages of note numbers (61), (62), (63), and (64) are assigned to the swing methods (1), (2), (3), and (4), respectively.
Further, any one channel is assigned to these MIDI event data. In this embodiment, the channel number is 1. As described above, in the present embodiment, the data indicating how the operator 1 is swung is generated as MIDI event data (note-on event) of channel number 1. The event data is transmitted to the musical tone performance apparatus 2 via the transmission unit 108 as a tempo control signal PTENPO.
[0015]
Further, the hit number specifying unit 105 described above outputs the hit number specifying data PBEAT corresponding to the pressed button SW. The hit number designation data PBEAT is transmitted to the musical tone performance apparatus 2 via the transmission unit 108.
[0016]
Next, the CPU 203 in the musical tone performance apparatus 2 uses the storage area of the RAM 202 as a work area, and controls each part of the apparatus by executing various programs stored in the ROM 201. The timer 204 is for measuring the interruption time in the timer interruption process to the CPU 203. A plurality of automatic performance data is stored in the HDD (hard disk) 206, and at the time of automatic performance, automatic performance data of a designated song is read from the HDD 206 and stored in an automatic performance data storage area of the RAM 202. The external storage device 207 is used when reading automatic performance data stored in a recording medium such as a CD-ROM or a floppy disk. The display unit 208 displays various information.
The receiving unit 205 receives the tempo control signal PTENPO and the hit number designation data PBEAT output from the operation element 1 and outputs them to the CPU 203.
[0017]
The tone generator circuit 209 generates a tone signal based on the MIDI data sequentially read in the automatic performance process, and outputs it to the effect circuit 210. The effect circuit 210 gives various effects to the generated musical sound signal and supplies it to the sound system 211. The sound system 211 amplifies and emits the musical sound signal to which the effect is given.
[0018]
Next, the format of automatic performance data will be described. Although various data formats can be considered as the format of the automatic performance data, the MIDI format is used in this embodiment.
The automatic performance data is roughly divided into a header portion and a track portion as shown in FIG. The header portion includes standard tempo data DTENPO indicating the standard tempo of the song, and default number of strokes data DBEAT serving as a default value indicating the number of strokes in one measure (the number of times the tempo is taken). In the case of this embodiment, the hit number initial value data DBEAT is the number of beats of the song. That is, if the 4/4 time signature is set, the number-of-strokes initial value data DBEAT is set to “4”, and if it is 3/4 time, “3” is set.
[0019]
In the track portion, event data 22 and delta time data 21 indicating a time interval until the next event are arranged. The delta time data 21 is represented by an integer value. When the value is T, the delta time is T milliseconds. A channel number is added to the event data 22, thereby identifying which channel is used to generate the event.
[0020]
Here, the event data includes those for instructing a performance sound and those used for tempo control. In this embodiment, the note-on event of channel number 1 is used for tempo control. Note on events other than channel number 1 are used for performance.
The Norton on event of channel number 1 embedded in the automatic performance data 20 is arranged at the beat timing and is the same as the note on event output from the operation element 1 and has the note numbers (61), (62), Values (63) and (64) are used.
[0021]
More specifically, the automatic performance data 20 of the present embodiment includes a note number (61) indicating a downward swing method (1) (see FIG. 3) at the timing of the first beat in a 4-beat music. Is embedded and a note number (64) indicating a leftward swing method (4) is embedded at the timing of the second beat, and a note number (62) indicating a rightward swing method (2) at the timing of the third beat Is embedded, and a note number (63) indicating how to swing upward (3) is embedded at the timing of the fourth beat.
[0022]
Also, in a 3-beat song, a note number (61) indicating a downward swing method (1) is embedded at the timing of the first beat, and a rightward swing method (2) at the timing of the second beat. A note number (62) is embedded, and at the timing of the third beat, a note number (63) indicating an upward swing method (3) is embedded.
Also, in the automatic performance data 20 in the present embodiment, batting number instruction data CBEAT for instructing the batting number in the middle of a song is embedded. This number-of-strokes data is also event data of channel number 1.
[0023]
B: Operation
The operation of the present embodiment having the above configuration will be described. First, for simplification of explanation, it is processing for automatic performance data of 4/4 time signature (batted stroke initial value data DBEAT is 4), and the stroke number specifying data PBEAT is not output from the controller 1 Will be explained.
[0024]
First, as the musical tone performance device 2 reproduces the automatic performance data 20, the operator holds the operator 1 in his hand and prepares for the tempo. This preparation is similar to holding a baton and refraining from playing.
On the other hand, the CPU 203 reads the automatic performance data 20 from the HDD 206 and stores it in the automatic performance data storage area of the RAM 202. Then, the CPU 203 sequentially reads the automatic performance data in the RAM 202 and performs the automatic performance, but first reads the stroke number initial value data DBEAT and the standard tempo DTENPO from the header portion. Then, automatic performance is performed at a tempo corresponding to the standard tempo DTENPO.
Thereafter, the events of the automatic performance data 20 in the RAM 202 are sequentially read and automatic performance is performed. In the following, the automatic performance processing will be described while relating the processing in the operator 1 and the processing in the musical tone performance device 2.
[0025]
(1) Tempo control signal output processing
First, in the operator 1, the tempo control signal output process shown in the flowchart of FIG. 6 is executed. This process is an interrupt process executed in synchronization with a timer interrupt signal generated by the timer 104 every 10 ms, for example.
First, in step S001, sensor output signals output from the X sensor 106 and the Y sensor 107 are captured, and in the next step S002, a swing motion determination process is performed to determine the swing direction of the operation element 1. This is the angular velocity v detected by the X sensor 106 and the Y sensor 107.X, VYAnd the threshold value (angular velocity v of the swing direction {circle around (1)} set for discriminating the swing directions (1), (2), (3), and (4).X, VYFor each threshold tX1, TY1In the same manner, the threshold value t for the swing directions (2), (3), and (4)X2, TY2, TX3, TY3, TX4, TY4To determine the swing direction.
[0026]
In addition, the following processing is performed as to which point in the process in which the operation element 1 is being swung is set as the time point of the tempo instruction.
First, the angular velocity v detected by the X sensor 106 and the Y sensor 107X, VYFind the square root of the sum of squares of, and use this as the absolute angular velocity. Then, the peak of the absolute angular velocity is detected, and the time when the peak is detected is determined as the time of tempo instruction.
[0027]
Next, when the swing direction is determined in step S002 and the time of tempo instruction is determined, note numbers corresponding to the respective swing directions are assigned in the following processing, and the note-on event of channel number 1 is assigned. Is output as
That is, if the swing direction is (1), the note number is (61) (step S003), if the swing direction is (2), the note number is (62) (step S004), and if the swing direction is (3), the note is recorded. (63) (step S005) is assigned as the number, and (64) (step S006) is assigned as the note number if the swing direction is (4). Then, after the note number is determined, in step S007, a note-on message is added to the note number to obtain event data of channel number 1, and this is output from the transmitting unit 108 to the musical sound performance device 2 as a tempo control signal PTENPO. .
[0028]
(2) Automatic performance data playback processing
Next, automatic performance data reproduction processing executed by the musical tone performance device 2 will be described with reference to the flowchart shown in FIG. This process is an interrupt process executed every 1 ms in synchronization with the timer interrupt signal generated by the timer 204.
First, it is determined whether or not the reproduction of the automatic performance data 20 is requested in step S101. Specifically, the playback flag flgPlay (data name "flg" indicates that the data is a flag) is referred to. If this is "1", it is determined that a playback request has been made and the next step Proceeding to S102, if it is "0", it is determined that a reproduction request has not been made, and this processing is immediately terminated. The playback flag flgPlay is set to “1” when a start switch (not shown) is turned on to instruct playback, and is set to “0” when the start switch is turned off or the automatic performance is finished, and playback is ended. Instruct.
[0029]
If reproduction of the automatic performance data 20 is requested, the pause flag flgPause is determined in the next step S102. If "0", the process proceeds to step 103. If "1", the process proceeds to step 112. move on. The pause flag flgPause is a flag for instructing whether or not to stop the automatic performance temporarily. The pause is canceled when “0” and the pause is designated when “1”. Is defined.
In step S103, it is determined whether or not the content of the time counter cntTime (data name “cnt” indicates that the data is a counter) is “0”. The time counter cntTime is a counter to which the delta time data 21 is substituted, and the value is subtracted every time interrupt processing is performed (see step S110), and an event is executed when it becomes “0”. That is, the content of the time counter cntTime indicates the time until the next event.
[0030]
If the determination in step S103 is “No”, the event processing timing has not yet been reached, so the processing in steps S110 to S113 is performed and the process returns. If the determination in step S103 is “Yes”, event processing described below is performed.
First, the process proceeds to step S104, and the read position (address) of the storage area of the RAM 202 in which the automatic performance data 20 is stored is advanced by one to read the data. Whether or not the read data is the delta time data 21 is determined in the next step S105. Note that this determination process proceeds to the event response process in step S106 because the data is always the event data 22 if the process has progressed from step S103. After the event handling process in step S106, the process proceeds to step 104 again, the address is advanced, and the data is read. Then, it is determined whether or not the read data is delta time data 21 (step S105). In this way, the processing consisting of steps 104, 105, and 106 is repeated until the determination in step S105 is “Yes”, that is, until the next delta time data is received. Such loop processing is performed. This is because the event data 22 is continuous without interposing the delta time data 21 when there are events that sound simultaneously.
[0031]
On the other hand, if the read data is the delta time data 21 in step S105, the process proceeds to step S107, and the value of the delta time data 21 is substituted into the time counter cntTime.
Next, in step S108, it is determined whether or not the time counter cntTime is zero. Here, if the result is “Yes”, the process proceeds to step S104, and the processes after step S104 are repeated.
[0032]
Next, event handling processing will be described with reference to FIG. First, in step S141, it is determined whether or not the event read from the automatic performance data 20 is hit number instruction data CBEAT that specifies the number of hits in the middle of the song. If it is not the number-of-strokes instruction data CBEAT, the process moves to step S143 to determine whether or not the event is channel number 1. If the event data is other than channel number 1, it is a performance event, so the process proceeds to step S148, where the event is output, corresponding processing (sounding, mute, etc.) is performed, and the process returns.
[0033]
On the other hand, if “Yes” is determined in step S141, the hit number instruction data CBEAT is substituted for the variable Beat (S142), and the process proceeds to step S144 via step S143. Here, the processing in step S142 is a step for performing processing on the data read from the automatic performance data 20, and the read data includes stroke number instruction data CBEAT and stroke number designation data PBEAT. The case where the number-of-bats designation data PBEAT is read will be described later.
If the event data read from the automatic performance data 20 is a key-on event of channel number 1 arranged at the beat timing, the process proceeds to step S144 via steps S141 and S143.
In step S144, it is determined whether or not the content of the tempo information reception flag flgTmp is “1”. The tempo information reception flag flgTmp is a flag for determining whether or not the tempo control signal PTENPO has been received from the operation element 1. When “1”, it indicates that the tempo control signal PTENPO has been received from the operation element 1 and “0”. "" Indicates that the tempo control signal PTENPO has not been received from the operator 1.
If the content of the tempo information reception flag flgTmp is “0”, the process proceeds to step S145, and the read note number of channel number 1 is substituted into the event variable evtMD. Then, the process proceeds to the hit number / motion determination process (step S146). In the flowchart shown in FIG. 12, the number of strokes assigned to the variable Beat is determined, and the pause flag flgPause is set to “1” according to the determination result. The pause flag flgPause becomes “1” in the following cases. That is, when the number of strokes is 4 (step S161), when the number of strokes is 2 and the note-on event assigned to the event variable evtMD is (61) or (63) (steps S162 and 163), the number of strokes is 1 and the event variable evtMD Is (61) (steps S164 and 165). When the above conditions are satisfied, “1” is set to the pause flag flgPause (step S166). In this case, if the content of the pause flag flgPause is “1”, it can be seen that the note-on event of channel number 1 indicating the beat timing is read from the automatic performance data 20.
[0034]
If the number of strokes other than the above is specified or a note-on event, the process returns immediately. On the other hand, if the content of the tempo information reception flag flgTmp is “1”, the process proceeds from step S144 shown in FIG. 11 to step S147 to reset the tempo information reception flag flgTmp and return.
[0035]
The above is the event handling processing, but in order to simplify the explanation, in the following, the number of strokes of the automatic performance is specified by the default number of strokes DBEAT (value is 4) and the number of strokes instruction data CBEAT is not read. Assume a case.
Here, the meaning of step S144 shown in FIG. 11 will be described. The determination of “No” means that the tempo control signal PTENPO has not yet been output from the operation element 1 at the timing of the beat, and the operation This is a case where the user is waving the operation element 1 at a tempo slower than the tempo of the automatic performance. In other words, the ritardando (slowly) is instructed. On the other hand, if the determination in step S144 is “Yes”, the tempo control signal PTENPO is output from the operation element 1 at a timing earlier than the beat of the automatic performance, and the accelerando (faster) is instructed. It will be.
Now, returning to FIG. 7, if the determination in step S108 is “No”, the process proceeds to step S109, and the value of the time counter cntTime is rewritten based on the following formula 1.
[0036]
[Expression 1]
cntTime = cntTime × coefTmp
[0037]
In Equation 1, coefTmp (data name “coef” indicates that data is a coefficient) is a tempo coefficient.
Here, since the next event data 22 is read when the value of the time counter cntTime becomes 0 as described above, the next event data 22 is read if it is rewritten to increase this value. Timing is delayed. That is, the automatic performance tempo is slowed down. On the other hand, when the content of the time counter cntTime is rewritten so as to be small, the timing at which the next event data 22 is read out is advanced. That is, the tempo of automatic performance is increased.
As described above, when the tempo coefficient coefTmp is smaller than 1, the music is played at a tempo faster than the current tempo, and when the tempo coefficient coefTmp is larger than 1, the music is played at a tempo slower than the current tempo. .
[0038]
When the process of step S109 is performed, the process proceeds to step S110, and the time counter cntTime is decremented by one.
In the next step S111, the delta time accumulated value cntDlt is incremented by one. Thereafter, in step S112, the tempo control interval cntInt is incremented by one. The delta time accumulated value cntDlt is incremented by 1 in step S111 of the automatic performance data reproduction process (the flowchart of FIG. 7) activated every 1 ms, and is accumulated until the timing of the next beat (FIG. 9). The values immediately before being reset correspond to the length of one beat of the automatic performance at that time.
[0039]
The tempo control interval cntInt is incremented by 1 in step S112 of the automatic performance data reproduction process (the flowchart of FIG. 7) activated every 1 ms. On the other hand, the tempo control signal PTENPO (note of channel number 1) is sent from the operator 1. Since it is reset when ON (61) to (64)) is output (see steps S128 and S139 in FIG. 9), the value immediately before the reset is the length of one beat indicated by the operator. Correspond.
[0040]
Here, the relationship between the delta time accumulated value cntDlt and the tempo control interval cntInt will be described.
FIG. 8 is a diagram for explaining the relationship between the tempo control interval cntInt and the delta time accumulated value cntDlt. In the figure, □ indicates the occurrence timing of the note-on event of channel number 1 read from the performance data 20. ◯ indicates the occurrence timing of an event other than channel number 1. In the figure, the timing of the first beat and the second beat of the 4-beat music is shown.
[0041]
Time t1The tempo control signal PTENPO (channel number 1 key-on event) output from the controller 1 and the channel number 1 key-on event (note number) of the first beat read from the automatic performance data 20 are both ( The timing of 61)) is the same. On the other hand, the timing of the next key-on event (second beat: note number (64) of channel number 1) read from the automatic performance data 20 is the time t.ThreeHowever, the tempo control signal PTENPO (note number is (64)) of the second beat output from the controller 1 has a time t earlier than that.2Has been generated. In such a relationship, the operator swings the operation element 1 at a tempo faster than the tempo of the automatic performance at that time.
[0042]
On the other hand, when the tempo control interval cntInt is longer than the delta time accumulated value cntDlt, for example, the time t shown in FIG.FourIn addition, when the key-on event (note number is (64)) of the second beat is output from the controller 1, the operator has swung the controller 1 at a tempo slower than the tempo of the automatic performance at that time. means. If the tempo control interval cntInt and the delta time accumulated value cntDlt are the same, the operator swings the operator 1 according to the tempo of the automatic performance at that time.
[0043]
Here, the pause flag flgPause described above will be described. When the key-on event of channel number 1 is read from the automatic performance data 20, the key-on event of channel number 1 has not been output from the controller 1 yet. (For example, between times t3 and t4 in FIG. 8), the content of the pause flag flgPause becomes “1”, and the automatic performance is paused. In this case, the process of step S102 shown in the flowchart of FIG. 7 is returned immediately without proceeding to the event response process S106, so that the performance is paused.
[0044]
Next, when the processing up to step S112 shown in FIG. 7 is completed, tempo key-on processing is performed in step S113. This process is a process for the tempo control signal PTENPO event output from the operator 1. Hereinafter, the tempo key-on process will be described with reference to FIG.
First, when the tempo control signal PTENPO is output from the operation element 1, the content (note-on event of channel number 1) is substituted into the event variable evtTmp. In step S121, it is determined whether the tempo control signal PTENPO is received from the contents of the event variable evtTmp. If this is “Yes”, the process proceeds to the next step S122. If “No”, this process is terminated, and the process returns to the automatic performance data reproduction process shown in FIG.
[0045]
Next, in step S122, the state of the pause flag flgPause is determined. If the content is "1", the process proceeds to step S123. The fact that the content of the pause flag flgPause is “1” means that the process has passed through step S166. To that end, it is necessary to set “No” in step S144 shown in FIG. That is, this is a case where the operator swings the operation element 1 at a tempo slower than the tempo of the automatic performance, and instructs a ritardando (slowly).
Next, in step S123, it is determined whether or not the contents of the event variable evtMD match the event variable evtTmp. If they do not match, the following processing is skipped and the process returns immediately.
[0046]
Here, the meaning of the process of step S123 will be described. In the event variable evtMD, the note-on event of channel number 1 read from the automatic performance data 20 in step S145 shown in FIG.
At the present time, since the initial performance number DBEAT is “4” and the automatic performance data that has not been changed is being processed, the event variable evtMD has a note-on event (61) at the timing of the first beat. The note-on events (64), (62), and (63) are substituted at the second, third, and fourth beat timings, respectively. On the other hand, since the operator swings the operation element 1 in a manner corresponding to the number of strokes 4 in FIG. 3, the contents of the tempo control signal PTENPO output at the first, second, third and fourth beats are respectively note-on events ( 61), (64), (62), and (63).
[0047]
That is, the process of step S123 is a process of canceling a case where a swinging method other than the swinging method corresponding to the beat is performed. By this processing, the correspondence between the beat timing of the automatic performance data 20 and the way of swinging the operation element 1 (see FIG. 3) is taken.
If the determination in step S123 is “Yes”, the process proceeds to step S124, and the tempo coefficient ratio rateTmp is obtained from the following equation 2 from each value of the delta time accumulated value cntDlt and the tempo control interval cntInt.
[0048]
[Expression 2]
rateTmp = cntInt / cntDlt
[0049]
Based on the tempo coefficient ratio rateTmp obtained from the above equation 2, a new tempo coefficient coefTmp is obtained from the following equation 3 in step S125. If the delta time accumulated value cntDlt and the tempo control interval cntInt are the same value, the tempo coefficient ratio does not change and the tempo of the song is maintained.
[0050]
[Equation 3]
coefTmp = coefTmp × rateTmp
[0051]
When the tempo coefficient coefTmp is updated in step S125, the tempo coefficient coefTmp is limited in the next step S126. Here, the limit processing is processing for limiting the tempo coefficient coefTmp to the lower limit value when the tempo set by the tempo coefficient coefTmp exceeds the slowest tempo that can be controlled by the automatic performance device.
When the above tempo coefficient limit processing is completed, “0” is set to the accumulated delta time value cntDlt and the tempo control interval cntInt (steps S127 and 128), and the pause flag flgPause is reset to “0” (step S129). ) End the tempo key-on process.
[0052]
On the other hand, when the pause flag flgPause is “0” in step S122, when the tempo control signal PTENPO is output from the operator 1, the key-on event of the channel number 1 corresponding to the next beat from the automatic performance data 20 is output. Is not read (time t2 to t3 in FIG. 8; when the accelerando is instructed), the automatic performance data 20 is pre-readed and the key-on event of channel number 1 to be read next is read.
[0053]
In the next step S131, the note-on event of the automatic performance data 20 searched in step S130, the one assigned to the event variable evtMD and the one output from the operator 1 and assigned to the event variable evtTmp match. Determine whether to do. If this is Yes, it will progress to the following step S132, and if it is No, this process will be complete | finished and it will return to the said automatic performance data reproduction process. The process in step S131 has the same meaning as the process in step S123 described above.
Next, in step S132, the calculation represented by Equation 4 is executed.
[0054]
[Expression 4]
cntDlt = cntDlt + coefTmp (cntTime + DT)
[0055]
Here, DT is the delta time dt from the current automatic performance event position to the next channel number 1 key-on event assigned to the event variable evtMD.1, Dt2, ..., dtn(See FIG. 10).
By the processing of Equation 4, the time interval for one beat along the tempo of the current automatic performance is substituted into the counter cntDlt.
When the above process ends, the process proceeds to the next step S133.
[0056]
In step S133, each delta time dt constituting the DT shown in FIG.1, Dt2, ..., dtnMultiply each of cntTime by an appropriate constant less than 1, and change each value so that the next event can be read quickly.
In the next step S134, "1" is set to the tempo information reception flag flgTmp. By looking at the contents of the tempo information reception flag flgTmp, it can be determined whether or not the tempo control signal PTENPO corresponding to the beat is received earlier than the beat timing of the automatic performance data 20. If the content of the tempo information reception flag flgTmp is “1”, it can be understood that the operator has instructed the accelerand.
[0057]
The processing from step S135 to step S139 after step S134 is completed is the same as the processing from step S124 to step S128 described above. That is, setting of the tempo coefficient ratio rateTmp (step S135), updating of the tempo coefficient coefTmp (step S136), limit processing of the tempo coefficient coefTmp (step S137), clearing of the delta time accumulated value cntDlt and the tempo control interval cntInt (step S138, 139).
When the above processing is completed, the tempo key-on processing is terminated, and the process returns to the automatic performance data reproduction processing shown in FIG.
[0058]
In summary, if the operator takes the tempo at the same speed as the tempo of the automatic performance using the operator 1, the accumulated delta time value cntDlt is equal to the tempo control interval cntInt, and step S125 ( Alternatively, the tempo coefficient coefTmp calculated in step S136) maintains the previous value. Accordingly, the time counter cntTime is not rewritten in step S109 shown in FIG. 7, and the previous tempo is maintained. The automatic performance is continued without being paused.
If the speed at which the operator swings the control 1 is faster than the tempo of automatic performance, the tempo control interval cntInt becomes smaller than the delta time accumulated value cntDlt, and the tempo coefficient coefTmp calculated in step S136 becomes smaller. . As a result, in step S109 shown in FIG. 7, the value of the time counter cntTime is rewritten to be small, and the tempo of automatic performance is increased.
[0059]
On the other hand, if the speed at which the operator swings the control 1 is slower than the tempo of the automatic performance, the tempo control interval cntInt becomes larger than the delta time accumulated value cntDlt. Therefore, the tempo coefficient coefTmp calculated in step S125 is increased. As a result, in step S109 shown in FIG. 7, the value of the time counter cntTime is greatly rewritten, and the tempo of automatic performance is slowed down. In this case, since “1” is set to the pause flag flgPause in step S166 of FIG. 12, in the automatic performance data reproduction process shown in FIG. Since the process does not go through the process (step S106), the automatic performance is temporarily stopped. After that, when the tempo control signal PTENPO is output from the operator 1, the process proceeds to S125 via steps S121 → S122 → S123 → S124 shown in FIG. 9, where the tempo coefficient coefTmp is rewritten to a large value. Thereafter, the temporary stop flag flgPause is reset through step S129, and automatic performance is resumed again. After this restart, in step S109, the value of the time counter cntTime has been rewritten to a large value, so that the tempo of automatic performance is slowed down.
As described above, the tempo of the automatic performance is controlled in accordance with the tempo at which the operator swings the operator 1.
[0060]
(3) When the batting instruction data CBEAT is read during the song
The operation example described above is an example in which the value of the initial stroke number DBEAT is not changed after the value of the initial stroke number DBEAT is read from the automatic performance data 20, but in this embodiment, the stroke number instruction data CBEAT embedded in the automatic performance data 20 is used. Each time is read, the number of strokes is changed.
[0061]
If the number-of-stroke instruction data CBEAT is read and its value is “2”, “Yes” is obtained in step S162 shown in FIG. 12, and the process of step S163 is performed. That is, the pause flag flgPause is set only when the note-on event embedded at the timing of the first beat and the third beat is read, and the second and fourth beats are unquestioned. Also, in steps S123 and S131 shown in FIG. 9, the tempo control signal PTENPO other than the first and third beat operations (1) and (3) is ignored, so the tempo of the automatic performance is lowered. It will be controlled by swinging up. That is, it is controlled by the manner of swinging 2 in FIG.
Further, in the calculation of the tempo coefficient ratio rateTmp in step S124 or step S135, each of the accumulated delta time value cntDlt and the tempo control interval cntInt indicates a time interval of 2 beats.
[0062]
On the other hand, if the value of the read batting instruction data CBEAT is “1”, “Yes” is obtained in step S164 shown in FIG. 12, and the process of step S165 is performed. In other words, the pause flag flgPause is set only when the note-on event embedded at the timing of the first beat is read, and other beats are unquestioned. Also, in steps S123 and S131 shown in FIG. 9, the tempo control signal PTENPO other than the first beat operation (1) is ignored, so that the automatic performance tempo is controlled only by swinging down. That is, it is controlled by the way of swinging the number of strokes 1 in FIG.
[0063]
Further, in the calculation of the tempo coefficient ratio rateTmp in step S124 or step S135, each value of the accumulated delta time value cntDlt and the tempo control interval cntInt indicates a time interval of 4 beats.
As described above, in this embodiment, the number of strokes at the time of tempo can be freely changed by embedding the number-of-batches instruction data CBEAT in an appropriate position of the automatic performance data 20.
Here, FIG. 13 shows an example in which the first bar is set to 2 for the number of strokes and the second bar and the subsequent bars are set to 4 for the number of strokes. In this way, it is possible to arbitrarily set the number of strokes to take a tempo at an appropriate position of the song.
[0064]
(4) When the operator presses the button SW to instruct the number of strokes
Next, an operation when the operator presses the button SW (see FIG. 1 or FIG. 4) will be described. The buttons SW, SW... Are provided corresponding to the number of strokes 1, the number of strokes 2, the number of strokes 3, and the number of strokes 4, respectively. When any button SW is pressed, data PBEAT is output from the operator 1 as the number of strokes indicating the number of strokes corresponding to the button. This number-of-bats designation data PBEAT is inserted into the automatic performance data 20 shown in FIG. 2 (see the broken line in FIG. 2). As an insertion method, there is a method of inserting immediately after the event being processed at the time when the hit number designation data PBEAT is output, or inserting it at the position of the next beat or the start position of the next measure. What is necessary is just to set suitably, and you may enable it to select the insertion method by operation of button SW of the operation element 1. FIG.
As described above, the number-of-bats designation data PBEAT inserted into the automatic performance data 20 is read in the event handling process, and is processed in the same manner as in the case of the number-of-bats instruction data CBEAT as shown in step S142 in FIG. And assigned to the variable Beat.
When the performance data 20 is inserted into the automatic performance data 20 in the RAM 202 in this manner, the performance data 20 can be transferred to the HDD 206 or written to a storage medium using the external storage device 207 after the performance is completed. It is possible to store and record the automatic performance data 20 for which the player has controlled the number of strokes.
Further, as described above, when the button SW is pressed to output the batting number designation data PBEAT, it is possible to instruct the batting number change in addition to the batting number instruction data CBEAT embedded in the automatic performance data 20, and the batting number Even if the instruction data CBEAT is not embedded, the number of strokes can be changed.
In addition, there are the following modes for the hit number instruction by the operation of the operation element 1.
First, as a flag indicating whether or not the stroke number designation data PBEAT is output from the operator 1, the stroke number reception flag flgPBEAT is set. If this flag is "1", the stroke number designation data PBEAT is output from the operator 1. If "0", control is performed such that the stroke number designation data PBEAT is not output from the operation element 1. When such control is performed, when the stroke number designation data PBEAT is output from the operator 1, the stroke number reception flag flgPBEAT is set to "1", and it can be known that the stroke number designation data PBEAT has been output. Then, in the event handling process, steps Sa and Sb indicated by broken lines in FIG. 11 are added, and if the striking information reception flag flgPBEAT is “1”, the value of the striking designation data PBEAT output from the operator 1 is set to the variable Beat. (Step Sa → Sb → S143), even if the batting number instruction data CBEAT or the batting number designation data PBEAT is read from the automatic performance data 20, this is not adopted.
On the other hand, if the batting information reception flag flgPBEAT is “0”, the determination in step S141 is performed. If this is Yes, the process proceeds to step S142 and the batting instruction data CBEAT or batting number designation data read from the automatic performance data 20 is obtained. PBEAT is substituted for the variable Beat (steps Sa → S141 → S142).
Further, as described in the embodiment, the initial value of the number of strokes is determined by the stroke number initial value data DBEAT written in the automatic performance data 20, but the stroke number designation data PBEAT is output from the operator 1 before the performance. In this case, the initial striking value data DBEAT may be rewritten with the value of the striking number designation data PBEAT. In this case, rewriting is performed only when the value of the hit number designation data PBEAT is a valid value, and is not rewritten when the value is invalid (for example, “3” when the time is 4).
Further, a special numerical value such as “0” is provided for the button SW of the operation element 1 and when this button is pressed, the value rewritten based on the strike number designation data PBEAT is set as the default (value of the strike number initial value data DBEAT ). Further, it may be returned to the default by a combination of how to press the button SW. In this case, when rewriting the initial striking value data DBEAT, the value of the initial striking value data DBEAT is stored in a predetermined storage area of the RAM 202, and when it is instructed to return to the default, the value of the storage area is changed. The automatic performance data 20 may be written.
[0065]
(5) In case of 3 beats
The above description has been made for a 4-beat music piece, but the operation is similar to the above for other time signatures. For example, FIG. 14 shows the number of strokes / motion discrimination process (step S146) in the case of 3 beats. In step S151 shown in the figure, it is determined whether or not the content of the variable Beat is “3”. If “Yes”, the pause flag flgPause is set in step S154. If the content of the variable Beat is “1”, the process proceeds to steps S151 → S152 → S153, and it is determined whether or not the content of the event variable evtMD corresponds to the first beat (61). If this determination is “Yes”, the pause flag flgPause is set in step S154.
[0066]
The other processing is the same as in the case of 4-beat, so that if the content of the variable Beat is “3”, the tempo is taken for each beat of the 3-beat, and 1 if the content of the variable Beat is “1”. The tempo is taken only by the beat. The manner of swinging the operation element 1 corresponds to the number of strokes 3 and the number of strokes 1 shown in FIG. Here, FIG. 15 shows an example of a three-beat tune, but the first measure has three strokes and the second and subsequent bars have one stroke.
By the way, since step S146 has processing contents corresponding to the time signature, a plurality of steps corresponding to various time signatures are prepared, and processing corresponding to the time signature read from the automatic performance data 20 is selected. If the time signature changes in the middle of the song, the number of strokes / motion discriminating process corresponding to the changed time signature is selected at that time.
[0067]
(Outline of the embodiment)
The outline of the apparatus according to the above-described embodiment is summarized as follows.
“An operator that detects the state of motion when moved by an operator,
The tempo control signal indicating the timing for taking the tempo of the music from the motion state detected by the operator includes identification information (note number in the embodiment) for identifying the type of motion (how to swing in the embodiment). Tempo control signal generating means for generating
A batting number setting means for setting the batting number indicating how many times the tempo of the song should be taken within the measure based on the batting number instruction information;
Automatic performance means for generating a performance signal based on the automatic performance data,
The automatic performance data includes timing information embedded with identification information for identifying the type of exercise at a position where the tempo of the song is taken,
The automatic performance means selects the type of the identification information based on the number of strokes set by the number of strokes setting means, the interval of the timing information having the selected identification information, and the tempo control signal having the selected identification information An automatic performance device that compares intervals and determines the tempo of automatic performance according to the comparison result. "
Further, in the above-described embodiment, even if the tempo information indicating the tempo of the song is not included in the automatic performance data, the music performance device 2 outputs the tempo output from the operation element 1 before the automatic performance is started. The initial tempo can be set by recognizing the interval of the control signal PTENPO.
[0068]
C: Modification
(1) In the embodiment described above, the direction in which the operating element 1 is swung is detected, and the data corresponding to the direction in which the operating element 1 is swung is embedded in the beat position of the automatic performance data 20. The tempo control is performed while recognizing the above, but the tempo control can be performed without regard to the operation direction of the operation element 1. For example, the operation element 1 may be formed in a flat plate shape, and it may be detected by a piezoelectric sensor or the like that it has been hit by an operator, and the tempo may be controlled based on the detection timing interval. In this case, the interval of one beat of the automatic performance may be calculated by embedding data at the position of the beat timing of the automatic performance data 20 as in the above-described embodiment and calculating the time interval of the data. The control of the number of strokes when such a configuration is adopted can be performed in the same manner as in the above-described embodiment. For example, if the number of strokes is 4 in 4 beats, the detection timing interval of the piezoelectric sensor is recognized as 1 beat. Similarly, if the number of strokes is 2, it can be recognized as 2 beats, and if the number of strokes is 1, it can be recognized as 4 beats.
[0069]
The outline in the case of the above aspect is as follows.
“An operator that detects the state of motion when moved by an operator,
Tempo control signal output means for generating and outputting a tempo control signal indicating the timing for taking the tempo of the music from the motion state detected by the operator;
A batting number setting means for setting the batting number indicating how many times the tempo of the song should be taken within the measure based on the batting number instruction information;
The performance signal is generated based on the automatic performance data, and the timing interval corresponding to the number of strokes set by the stroke number setting means is obtained from the timing information interval embedded in the position where the tempo of the automatic performance data is taken. Automatic performance means for comparing the tempo control signal generation interval and determining the tempo of the automatic performance according to the comparison result;
An automatic performance device comprising: "
[0070]
The beat length of the automatic performance may be obtained from information indicating the tempo of the song. Furthermore, when the bar line information is embedded in the automatic performance signal 20, the beat length may be calculated from the interval of the bar line information (for example, if the time signature is four, the quarter of the bar line information interval may be calculated. Is calculated as 1 beat).
In this case, “timing information embedded at a position where the tempo of the automatic performance data is taken” is not necessary. In short, there are various ways of obtaining the length of the beat (one beat or a plurality of beats) of the automatic performance based on the automatic performance data.
[0071]
(2) In the above-described embodiment, the operator can arbitrarily designate the number of strokes by using the button SW (see FIG. 4) for designating the number of strokes. However, an operation restriction may be added to this button SW. For example, a button operation other than designating the number of strokes 1, 2, and 4 may be invalidated if the time signature is 4, and a button operation other than designating the number of strokes 1, 2, and 3 may be invalidated if the time signature is 3, For an effective button SW, the button itself or an LED provided in the vicinity of the button may be lit. In order to perform such control, a signal indicating a time signature is supplied from the musical sound performance device 2 to the operation element 1 side, and the operation element 1 receives a signal indicating a time signature and invalidates which button operation. You just have to decide. In this case, information indicating the time signature may be read from the automatic performance data 20.
If comprised as mentioned above, there exists an effect which can prevent misoperation. This is especially effective when the time signature changes in the middle of a song.
[0072]
(3) In the above-described embodiment, the number of strokes is changed by the number-of-batches instruction data CBEAT embedded in the automatic performance data 20. In order to make the operator aware of the timing when the number of strokes is changed, Or the like may be generated (or displayed). Pronunciation can be easily realized by embedding voice data in the automatic performance data 20, and character data may be embedded for display. If the voice data or character data is transferred to the operation element 1 and the operation element 1 receives the voice data or character data, the operation element 1 can also generate sound and display.
[0073]
(4) In the embodiment described above, the number of strokes is set in units of one measure, but the number of strokes may be set in units of two measures or more. Also, the time signature is not limited to four time signatures and three time signatures, and arbitrary time signatures can be set.
[0074]
(5) Control based on how the operator 1 is swung may be added. For example, the threshold value t for the angular velocities vX and vYX1, TY1, TX2, TY2, TX3, TY3, TX4, TY4May be changed and changed according to the number of strokes. By doing this, it is possible to perform control such that the threshold value is reduced when the number of strokes is large and the tempo can be instructed even with a fine operation.
[0075]
(6) Data indicating the tempo changed by the operator operating the operating element 1 may be embedded in the automatic performance data 20. As a result, the automatic performance data 20 becomes a song having a tempo desired by the operator.
[0076]
(7) For the X sensor 106 and the Y sensor 107 in the above-described embodiment, a speed sensor that senses the speed may be used. In short, a sensor that can detect the direction of the swing may be used.
[0077]
(8) Although the shape of the operation element 1 is a shape of a command bar that can be grasped with one hand in the present embodiment, this is arbitrary. For example, it may be shaped like a castanet and the operator may tap it to take the tempo, or it may be attached to the operator's body and perform tempo control in accordance with gesture gestures.
[0078]
(9) The number of strokes may be changed according to the change in tempo. It is also possible to prepare several thresholds for the tempo, and control the number of strokes to be 2 when entering the tempo of the music, and 1 when entering the other region.
[0079]
(10) The tempo control signal PTENPO output from the operator 1 may be created on the musical tone performance apparatus 2 side. That is, the operation element 1 is configured to output the output signals of the X sensor 106 and the Y sensor 107 as they are, and the process of creating the tempo control signal PTENPO from these signals is performed on the musical tone performance apparatus 2 side. It may be taken.
[0080]
(11) The musical tone performance device 2 in the embodiment includes a ROM 201, a RAM 202, a CPU 203, a timer 204, an HDD 206, a display unit 208, and the like, which have the same configuration as a general computer. Therefore, the same device can be configured not only by a device dedicated to the musical tone performance device 2 but also by reading a program that causes a general computer to perform the same operation as the musical tone performance device 2. In addition, a recording medium in which this program is recorded can be created and distributed for wider use.
[0081]
【The invention's effect】
As described above, according to the present invention, it is possible to perform tempo control with improved operability by changing the number of strokes.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an embodiment of the present invention.
FIG. 2 is a diagram showing automatic performance data used in the embodiment.
FIG. 3 is a diagram showing how an operator takes a tempo in the embodiment.
FIG. 4 is a diagram showing an appearance of an operation element 1 in the same embodiment.
FIG. 5 is a diagram showing a state where the operator is waving the operator 1 in the embodiment.
FIG. 6 is a flowchart of tempo control signal output processing in the embodiment.
FIG. 7 is a flowchart of automatic performance data reproduction processing in the embodiment.
FIG. 8 is a diagram for explaining a relationship between a tempo control interval cntInt and a delta time accumulated value cntDlt in the same embodiment.
FIG. 9 is a flowchart of tempo key-on processing in the embodiment.
FIG. 10 is a diagram for explaining a specific method of calculating a delta time accumulated value cntDlt in the embodiment.
FIG. 11 is a flowchart of event handling processing in the embodiment.
FIG. 12 is a flowchart of the number-of-strokes / motion discrimination process in the case of 4/4 time signature in the embodiment.
FIG. 13 is a diagram showing an example of changing the number of beats of 4/4 time in the same embodiment.
FIG. 14 is a flowchart of the number-of-strokes / motion discrimination process in the case of 3/4 time in the embodiment.
FIG. 15 is a diagram showing an example of changing the number of beats of 3/4 time in the same embodiment;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Controller, 20 ... Automatic performance data, 103 ... CPU (tempo control signal output means), 105 ... Number-of-bats designation part (input means), 203 ... CPU (automatic performance means, number-of-bats setting means), DBEAT ... Number of strokes initial value Data (battage instruction information), CBEAT ... battage instruction data (battage instruction information), PBEAT ... battage designation data (battage instruction information), PTENPO ... tempo control signal.

Claims (5)

操作者によって動かされた際の運動状態を検出する操作子と、
前記操作子が検出した運動状態から、曲のテンポをとるためのタイミングを示すテンポ制御信号を生成するテンポ制御信号出力手段と、
小節内において曲のテンポを何回のタイミングでとるべきかを示す打数を、打数指示情報に基づいて設定する打数設定手段と、
当該自動演奏のテンポをとるタイミングの情報を含む自動演奏データに基づいて演奏信号を生成するとともに、前記自動演奏データのテンポをとる位置に埋め込まれたタイミングのうち、前記打数設定手段が設定した打数によって定まるタイミングの間隔を前記テンポ制御信号の発生間隔と比較し、この比較結果に応じて自動演奏のテンポを決定する自動演奏手段とを具備することを特徴とする自動演奏装置。
An operator for detecting a movement state when moved by an operator;
A tempo control signal output means for generating a tempo control signal indicating a timing for taking the tempo of the music from the motion state detected by the operator;
A batting number setting means for setting the batting number indicating how many times the tempo of the song should be taken within the measure based on the batting number instruction information;
The performance signal is generated based on the automatic performance data including timing information for taking the tempo of the automatic performance , and the number of strokes set by the number of strokes setting means among the timing embedded in the position where the tempo of the automatic performance data is taken An automatic performance apparatus comprising: an automatic performance means for comparing an interval of timing determined by the tempo control signal generation interval and determining an automatic performance tempo according to the comparison result.
前記テンポ制御信号出力手段は、前記操作子により検出される運動状態が前記打数として設定可能な最大の値と同数の複数の種類に分類される場合において、
前記操作子が検出した運動状態を前記複数の種類のいずれかであると特定し、特定した種類を示す識別情報を含む前記テンポ制御信号を生成し、
前記自動演奏データは、当該自動演奏のテンポをとるタイミングに相当する位置毎に、当該タイミングにおける前記運動状態が前記複数の種類のいずれであるかを示す識別情報を含み、
前記自動演奏手段は、前記自動演奏データのテンポをとる位置埋め込まれた拍のタイミングのうち、前記複数の種類のうちの前記打数設定手段によって設定された打数において用いられる種類を示す識別情報が含まれる位置に相当するタイミングの間隔と、前記識別情報が示す種類が前記打数設定手段によって設定された打数において用いられる種類である前記テンポ制御信号の発生間隔とを比較することを特徴とする請求項1記載の自動演奏装置。
The tempo control signal output means, when the movement state detected by the operator is classified into a plurality of types of the same number as the maximum value that can be set as the number of strokes,
The movement state detected by the operator is specified as one of the plurality of types, and the tempo control signal including identification information indicating the specified type is generated,
The automatic performance data includes, for each position corresponding to the timing of taking the tempo of the automatic performance, identification information indicating which of the plurality of types is the exercise state at the timing,
The automatic performance means has identification information indicating a type used in the number of strokes set by the stroke number setting means of the plurality of types among timings of beats embedded at a position where the tempo of the automatic performance data is taken. The timing interval corresponding to the included position is compared with the generation interval of the tempo control signal whose type indicated by the identification information is the type used in the number of strokes set by the number-of-strokes setting means. Item 2. The automatic performance device according to Item 1.
前記打数指示情報は、前記自動演奏データに埋め込まれていることを特徴とする請求項1記載の自動演奏装置。  2. The automatic performance apparatus according to claim 1, wherein the hit number instruction information is embedded in the automatic performance data. 前記打数指示情報は、操作者が操作する入力手段によって入力されることを特徴とする請求項1記載の自動演奏装置。  2. The automatic performance device according to claim 1, wherein the hit number instruction information is input by an input means operated by an operator. コンピュータに、
小節内において曲のテンポを何回のタイミングでとるべきかを示す打数を、打数指示情報に基づいて設定する機能と、
曲のテンポをとるためのタイミングを示すテンポ制御信号を受信する機能と、
当該自動演奏のテンポをとるタイミングの情報を含む自動演奏データに基づいて演奏信号を生成するとともに、前記自動演奏データのテンポをとる位置に埋め込まれたタイミングのうち、前記設定された打数によって定まるタイミングの間隔を前記テンポ制御信号の発生間隔と比較し、この比較結果に応じて自動演奏のテンポを決定する機能とを実現させるためのプログラム。
On the computer,
A function for setting the number of strokes indicating how many times the tempo of a song should be taken within a measure based on the number of strokes instruction information;
A function of receiving a tempo control signal indicating the timing for taking the tempo of the song;
A timing determined by the set number of strokes among timing embedded in a position where the tempo of the automatic performance data is taken , while generating a performance signal based on automatic performance data including timing information of the tempo of the automatic performance And a function for determining an automatic performance tempo according to the comparison result.
JP2003180205A 2003-06-24 2003-06-24 Automatic performance device and program Expired - Fee Related JP4464080B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003180205A JP4464080B2 (en) 2003-06-24 2003-06-24 Automatic performance device and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003180205A JP4464080B2 (en) 2003-06-24 2003-06-24 Automatic performance device and program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009055309A Division JP2009122706A (en) 2009-03-09 2009-03-09 Automatic music playing apparatus and program

Publications (2)

Publication Number Publication Date
JP2005017537A JP2005017537A (en) 2005-01-20
JP4464080B2 true JP4464080B2 (en) 2010-05-19

Family

ID=34181309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003180205A Expired - Fee Related JP4464080B2 (en) 2003-06-24 2003-06-24 Automatic performance device and program

Country Status (1)

Country Link
JP (1) JP4464080B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009122706A (en) * 2009-03-09 2009-06-04 Yamaha Corp Automatic music playing apparatus and program

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4492488B2 (en) * 2005-08-26 2010-06-30 ソニー株式会社 Information processing apparatus, information processing method, and program
JP5157125B2 (en) * 2006-10-27 2013-03-06 ヤマハ株式会社 Music generator
JP5023752B2 (en) * 2007-03-22 2012-09-12 ソニー株式会社 Content search apparatus, content search method, and content search program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009122706A (en) * 2009-03-09 2009-06-04 Yamaha Corp Automatic music playing apparatus and program

Also Published As

Publication number Publication date
JP2005017537A (en) 2005-01-20

Similar Documents

Publication Publication Date Title
JP3841828B2 (en) Virtual instrument with new input device
KR100432455B1 (en) Game system
JP5731734B2 (en) GAME PROGRAM, GAME DEVICE, GAME SYSTEM, AND GAME PROCESSING METHOD
US8785761B2 (en) Sound-generation controlling apparatus, a method of controlling the sound-generation controlling apparatus, and a program recording medium
CN106128437B (en) Electronic musical instrument
JP5549698B2 (en) Performance device, method and program
JP2001215963A (en) Music playing device, music playing game device, and recording medium
JP4464080B2 (en) Automatic performance device and program
JP3286683B2 (en) Melody synthesis device and melody synthesis method
JP2009122706A (en) Automatic music playing apparatus and program
JP5702585B2 (en) Input determination program, information processing apparatus, system, and information processing method
JPH09281963A (en) Music control device
CN109559724B (en) Musical scale conversion apparatus, electronic wind instrument, musical scale conversion method, and storage medium
JP6572916B2 (en) Pronunciation control device and method, program
JP2010172435A (en) Training supporting apparatus and program
JPH1097244A (en) Musical tone controller
JP3259602B2 (en) Automatic performance device
JP3303608B2 (en) Automatic performance device
JP3227548U (en) Performance control system, performance control device
JP2001042862A (en) Apparatus for controlling reproduction according to given rhythm and method thereof as well as medium storing program for reproduction control
JP4140108B2 (en) Musical amusement system, control device therefor, control method therefor, and recording medium recording the control program
JP3945307B2 (en) Performance guide method, apparatus thereof, and program
JP6902792B2 (en) Game equipment and programs
JP2009037118A (en) Performance start device and performance start program
JP4191348B2 (en) Audio waveform playback device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090309

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090316

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100126

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100218

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

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4464080

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140226

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees