JP4464080B2 - Automatic performance device and program - Google Patents
Automatic performance device and program Download PDFInfo
- 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
Links
- 230000033001 locomotion Effects 0.000 claims description 21
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 92
- 238000012545 processing Methods 0.000 description 43
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012966 insertion method Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 241001136792 Alle Species 0.000 description 1
- 241000288673 Chiroptera Species 0.000 description 1
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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
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
[0010]
As shown in FIG. 4, the
[0011]
A circuit shown in FIG. 1 is incorporated in the
[0012]
The
[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
In this embodiment, it is predetermined that the
[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
[0015]
Further, the hit
[0016]
Next, the
The receiving
[0017]
The
[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,
[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
The Norton on event of
[0021]
More specifically, the
[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
[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
[0024]
First, as the musical
On the other hand, the
Thereafter, the events of the
[0025]
(1) Tempo control signal output processing
First, in the
First, in step S001, sensor output signals output from the
[0026]
In addition, the following processing is performed as to which point in the process in which the
First, the angular velocity v detected by the
[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
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
[0028]
(2) Automatic performance data playback processing
Next, automatic performance data reproduction processing executed by the musical
First, it is determined whether or not the reproduction of the
[0029]
If reproduction of the
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
[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
[0031]
On the other hand, if the read data is the
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
[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
If the event data read from the
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
If the content of the tempo information reception flag flgTmp is “0”, the process proceeds to step S145, and the read note number of
[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
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
[0036]
[Expression 1]
cntTime = cntTime × coefTmp
[0037]
In
Here, since the
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
[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
[0041]
Time t1The tempo control signal PTENPO (
[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
[0043]
Here, the pause flag flgPause described above will be described. When the key-on event of
[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
First, when the tempo control signal PTENPO is output from the
[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
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
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
[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
If the determination in step S123 is “Yes”, the process proceeds to step S124, and the tempo coefficient ratio rateTmp is obtained from the
[0048]
[Expression 2]
rateTmp = cntInt / cntDlt
[0049]
Based on the tempo coefficient ratio rateTmp obtained from the
[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
[0053]
In the next step S131, the note-on event of the
Next, in step S132, the calculation represented by
[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
By the processing of
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
[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
If the speed at which the operator swings the
[0059]
On the other hand, if the speed at which the operator swings the
As described above, the tempo of the automatic performance is controlled in accordance with the tempo at which the operator swings the
[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
[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
[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
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
As described above, the number-of-bats designation data PBEAT inserted into the
When the
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
In addition, there are the following modes for the hit number instruction by the operation of the
First, as a flag indicating whether or not the stroke number designation data PBEAT is output from the
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
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
Further, a special numerical value such as “0” is provided for the button SW of the
[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
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
[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
[0068]
C: Modification
(1) In the embodiment described above, the direction in which the
[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
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
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
[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
[0075]
(6) Data indicating the tempo changed by the operator operating the
[0076]
(7) For the
[0077]
(8) Although the shape of the
[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
[0080]
(11) The musical
[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
FIG. 5 is a diagram showing a state where the operator is waving the
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
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.
小節内において曲のテンポを何回のタイミングでとるべきかを示す打数を、打数指示情報に基づいて設定する機能と、
曲のテンポをとるためのタイミングを示すテンポ制御信号を受信する機能と、
当該自動演奏のテンポをとるタイミングの情報を含む自動演奏データに基づいて演奏信号を生成するとともに、前記自動演奏データのテンポをとる位置に埋め込まれたタイミングのうち、前記設定された打数によって定まるタイミングの間隔を前記テンポ制御信号の発生間隔と比較し、この比較結果に応じて自動演奏のテンポを決定する機能とを実現させるためのプログラム。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.
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)
| 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)
| 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 |
-
2003
- 2003-06-24 JP JP2003180205A patent/JP4464080B2/en not_active Expired - Fee Related
Cited By (1)
| 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 |