JPH0916169A - 自動演奏装置 - Google Patents

自動演奏装置

Info

Publication number
JPH0916169A
JPH0916169A JP7160350A JP16035095A JPH0916169A JP H0916169 A JPH0916169 A JP H0916169A JP 7160350 A JP7160350 A JP 7160350A JP 16035095 A JP16035095 A JP 16035095A JP H0916169 A JPH0916169 A JP H0916169A
Authority
JP
Japan
Prior art keywords
data
performance
beat
mark
tempo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7160350A
Other languages
English (en)
Other versions
JP3303608B2 (ja
Inventor
Satoshi Usa
聡史 宇佐
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 JP16035095A priority Critical patent/JP3303608B2/ja
Publication of JPH0916169A publication Critical patent/JPH0916169A/ja
Application granted granted Critical
Publication of JP3303608B2 publication Critical patent/JP3303608B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【目的】演奏データに対するマークを自動生成できるよ
うにしたことにより、どのような演奏データでもタイミ
ング制御をできるようにした自動演奏装置を提供する。 【構成】演奏データ中に書き込まれている拍子データ,
小節線データ,テンポデータまたは分解能データに基づ
いて、各拍タイミングを算出し、この拍タイミングに読
み出されるようにビートマークイベントデータを演奏デ
ータ中に書き込む。また、演奏テンポが速い曲の場合に
は、2拍毎,3拍毎,4拍毎など所定拍毎にビートマー
クイベントデータが書き込まれるように修正する。ま
た、遅い曲の場合にはマークの分解能を上げる修正をす
る。利用者はコントローラを操作して各拍タイミングを
指示すれば、このタイミングと一致するようにビートマ
ークイベントデータが読み出され、利用者が指示したタ
イミングに拍が一致し、テンポも制御できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、演奏データを読み出
すことによって自動演奏を行う自動演奏装置に関し、特
に、利用者の指示によってテンポをリアルタイムに制御
できる自動演奏装置に関する。
【0002】
【従来の技術】演奏データを読み出して自動演奏を行っ
ているとき、利用者が指揮棒などのコントローラを振っ
て拍タイミングを指示することにより、拍タイミングの
平均間隔などから指示テンポを割り出して自動演奏のテ
ンポを制御する技術が提案されている。
【0003】
【発明が解決しようとする課題】しかし、上記従来の技
術はコントローラの操作に基づいてテンポを算出し、自
動演奏のテンポをこれに合わせるのみの制御であるた
め、利用者が指示した拍タイミングと自動演奏の拍タイ
ミングが一致しないことがあり、操作感がよくなかっ
た。
【0004】そこで、演奏データ中に拍タイミング毎に
マークを入れておき、そのマークの読み出しタイミング
とコントローラの操作タイミングとが一致するように自
動演奏を制御することが考えられる。このようにする
と、操作タイミングと演奏のタイミングとをほぼ一致さ
せることができ操作感が向上する。しかし、現在の演奏
データにはこのようなマークデータが書き込まれていな
いため上述したようなタイミング制御ができない欠点が
あり、また、演奏データに拍タイミング毎のマークデー
タを書き込む作業は大変面倒である。
【0005】この発明は、演奏データに対するマークを
自動生成できるようにしたことにより、どのような演奏
データでもタイミング制御をできるようにした自動演奏
装置を提供することを目的とする。
【0006】
【課題を解決するための手段】この出願の請求項1の発
明は、自動演奏を行うための演奏データを記憶する演奏
データ記憶手段と、該演奏データ中の拍子データに基づ
き、所定タイミング毎にマークデータを生成して前記演
奏データに対応させて記憶するマークデータ生成手段
と、該記憶されたマークデータによって前記演奏データ
の自動演奏を制御する自動演奏制御手段とを備えたこと
を特徴とする。
【0007】この出願の請求項2の発明は、自動演奏を
行うための演奏データを記憶する演奏データ記憶手段
と、該演奏データ中の小節線データに基づき所定タイミ
ング毎にマークデータを生成して、前記演奏データに対
応させて記憶するマークデータ生成手段と、該記憶され
たマークデータによって前記演奏データの自動演奏を制
御する自動演奏制御手段とを備えたことを特徴とする。
【0008】この出願の請求項3の発明は、自動演奏を
行うための演奏データを記憶する演奏データ記憶手段
と、該演奏データ中のテンポデータに基づき所定タイミ
ング毎にマークデータを生成して、前記演奏データに対
応させて記憶するマークデータ生成手段と、該記憶され
たマークデータによって前記演奏データの自動演奏を制
御する自動演奏制御手段とを備えたことを特徴とする。
【0009】この出願の請求項4の発明は、自動演奏を
行うための演奏データを記憶する演奏データ記憶手段
と、該演奏データ中の歩進分解能データに基づき、所定
タイミング毎にマークデータを生成して前記演奏データ
に対応させて記憶するマークデータ生成手段と、該記憶
されたマークデータによって前記演奏データの自動演奏
を制御する自動演奏制御手段とを備えたことを特徴とす
る。
【0010】この出願の請求項5の発明は、前記マーク
データ生成手段を前記マークデータを拍タイミング毎に
生成する手段とし、前記自動演奏制御手段を利用者によ
る拍タイミング指示と前記マークデータの読み出しタイ
ミングとを比較してテンポを制御する手段としたことを
特徴とする。
【0011】この出願の請求項6の発明は、前記マーク
データ生成手段を小節内の拍番号に応じて異なるマーク
データを生成する手段とし、前記自動演奏制御手段を利
用者による拍タイミング指示の拍番号と前記マークデー
タの拍番号との一致を条件としてテンポを制御する手段
としたことを特徴とする。
【0012】この出願の請求項7の発明は、前記マーク
データ生成手段を生成したマークデータを自動演奏のテ
ンポに基づいて増減する手段としたことを特徴とする。
【0013】
【作用】この発明の自動演奏装置では、拍子データ,小
節線データ,テンポデータ,歩進分解能データに基づい
てマークデータを生成する。曲の進行を制御するこれら
のデータは、演奏データによる自動演奏の進行を制御す
るデータであり、これらのデータに基づいてマークデー
タを生成することにより、所定タイミング毎のマークデ
ータを生成することができる。これにより、マークデー
タが書き込まれていない演奏データに自動的にマークデ
ータを書き込むことができる。さらに、この発明では、
これらのマークデータによって該演奏データの自動演奏
を制御する。この制御は、たとえば、このマークデータ
が読み出されたタイミングによって自動演奏が遅速を判
断し、マークデータの次の読出タイミングを所定タイミ
ングに一致させるようにテンポを制御するなどである。
【0014】また、この発明の自動演奏装置では、前記
マークデータを拍タイミング毎に生成し、利用者が拍タ
イミング毎に発生する指示とこのマークデータの読出タ
イミングとを比較してテンポを制御する。音楽における
タイミングとしては拍タイミングが最も感取しやすいタ
イミングであるため、拍タイミングで制御するようにし
たことにより、利用者の指示が容易になり、的確な制御
が可能になる。
【0015】また、この発明の自動演奏装置では、各拍
毎に異なる番号を付して制御するようにした。これによ
り、演奏データのマークデータと利用者の指示とが異な
る拍であるのに同一拍であるとして制御されることがな
くなり、制御ずれが無くなる。
【0016】また、この発明の自動演奏装置では、生成
されたマークデータを自動演奏のテンポに基づいて増減
する。たとえば、4拍子で1小節当たり4個のマークデ
ータが生成された場合でも、テンポが速い場合には、1
小節当たり2個や1個に減らし、また、テンポが極めて
遅い場合には、1小節当たり8個のマークデータを生成
する。これにより、そのテンポに応じた的確な指示が可
能になる。
【0017】
【実施例】図1はこの発明の実施例である自動演奏装置
のブロック図である。この自動演奏装置は、デルタタイ
ムとイベントデータの組み合わせからなる演奏データを
読み込んで自動演奏を行うとともに、利用者が揺動操作
するコントローラの操作に応じてリアルタイムに自動演
奏のテンポをコントロールすることができる。このリア
ルタイムのテンポコントロールには、演奏データの各拍
タイミング毎に書き込まれているビートマークイベント
データを用いるが、ビートマークイベントデータが書き
込まれていない演奏データには、ビートマークイベント
データを書き込む処理をすることができる。
【0018】CPU10には、バスを介してROM1
1、RAM12、FDD13、MIDIインタフェース
14、タイマ15、表示回路16、押鍵検出回路17、
スイッチ検出回路19、A/D変換回路21,24、音
源回路27および効果回路28が接続されている。RO
M11は、CPU10が用いる制御プログラム等を記憶
している。RAM12には、自動演奏やビートマーク生
成処理を行う演奏データを読み込むエリアやA/D変換
回路21,24に接続されている圧電振動ジャイロセン
サ23,26の出力データを記憶するエリアが設定され
る。FDD13には複数の演奏データを記憶したフロッ
ピィディスクがセットされる。MIDIインタフェース
14には他の音源装置などが接続される。CPU10は
MIDIインタフェース14を介してこの外部接続され
た音源装置を制御することもできる。タイマはCPU1
0に対して所定時間(たとえば10ms)毎に割り込み
をかける回路である。表示回路16は現在処理中の演奏
データの曲名や発音中の音色名などを表示する回路であ
る。押鍵検出回路17には鍵盤18が接続されている。
鍵盤18は5オクターブ(61鍵)程度の音域のもので
あり、各鍵のオン/オフおよび鍵のキーオン速度(ベロ
シティ)のセンサを備えている。前記押鍵検出回路17
は、鍵盤18の各鍵のオン/オフおよびベロシティを検
出してラッチする機能を備えている。スイッチ検出回路
19には複数のスイッチ20が接続されている。スイッ
チ20には、自動演奏スタート/ストップスイッチ、ビ
ートマーク生成スイッチ、ビートマーク変更指示スイッ
チなどが含まれている。スイッチ検出回路19はこれら
のスイッチのオン/オフイベントを検出してCPU10
に伝達する。A/D変換回路21,24には、ノイズ除
去回路22,25を介して圧電振動ジャイロセンサ2
3,26が接続されている。圧電振動ジャイロセンサ2
3,26はコントローラ30に内蔵されている。
【0019】ここで、コントローラ30は、拍タイミン
グを指示するために利用者が手などで操作するものであ
り、その形態としては、手で操作する指揮棒などの装
置、身体に装着する装置などの専用装置のほか、歌唱者
が手に持つマイクやカラオケ装置などのリモコンにジャ
イロセンサを内蔵して併用することもできる。利用者
は、このようなコントローラ30を図2(B)に示すよ
うな動作で振ることによって拍を指示する。この動作が
コントローラ30に内蔵されている圧電振動ジャイロセ
ンサ23,26によって検出される。圧電信号ジャイロ
センサ23,26は、X軸方向,Y軸方向に設置されて
おり、コントローラ30の上下左右方向の揺動をベクト
ルとして検出することができる。検出データはノイズ除
去回路22,25を介してA/D変換回路21,24に
入力される。ノイズ除去回路22,25は、細かい振動
などによる検出データを除去してピークの誤検出を防ぐ
回路である。A/D変換回路21,24は、検出データ
をディジタルデータに変換する。このディジタルデータ
はRAM12の所定エリアに記憶される。
【0020】音源回路27は、CPU10から送られて
きたイベントデータに応じて楽音信号を形成する。形成
された楽音信号は効果回路28に入力される。効果回路
28はCPU10からの指示に応じて、入力された楽音
に対しリバーブなどの効果を付与する。効果を付与され
た楽音信号はサウンドシステム29に入力される。サウ
ンドシステム29は入力された楽音信号を増幅して出力
する。
【0021】図2は演奏データおよびコントローラの動
作の例を示す図である。一般的な演奏データは、ヘッダ
および複数組のデルタタイムデータ,イベントデータか
らなっている。デルタタイムデータは相前後するイベン
トデータの発生タイミングの時間的間隔を表すデータで
あり、この実施例においては、デルタタイムデータはm
s(ミリセカンド)を単位として値として表されてい
る。ヘッダには、演奏開始当初のテンポデータや拍子デ
ータなどが書き込まれている。また、イベントデータに
は、発音イベントデータや消音イベントデータのほか、
小節線のタイミングであることを示す小節線イベントデ
ータ、その小節内の何拍目かのタイミングであることを
示すビートマークイベントデータ、曲の途中で拍子やテ
ンポが変化する場合に新たな拍子やテンポを示す拍子変
更イベントデータ,テンポ変更イベントデータなどがあ
る。ビートマークイベントデータとしては、ビート1,
ビート2,ビート3,ビート0の4種類がある。ビート
1のデータは、全ての拍子の1拍目,4拍子の3拍目の
拍タイミングに書き込まれる。ビート2のデータは、3
拍子の2拍目の拍タイミングに書き込まれる。ビート3
のデータは、3拍子の3拍目,2拍子の2拍目,4拍子
の2拍目,4拍目の拍タイミングに書き込まれる。ま
た、ビート0のデータは、拍子や何拍目であるかが不明
の場合に拍タイミングであることのみを示すために書き
込まれる。なお、演奏データによっては、小節線イベン
トデータ,拍子データ(拍子変更データ),ビートマー
クイベントデータが書き込まれていないものがある。
【0022】ここで、ビートマークイベントデータの機
能を説明する。自動演奏時においては、テンポデータに
基づいてデルタタイムをカウントしてゆき、デルタタイ
ムをカウントし終えたとき次のイベントデータを読み出
す、という動作を繰り返すが、利用者がコントローラ3
0を操作して拍を指示すると、CPU10は入力された
ビート指示信号と演奏データ中のビートマークイベント
データのタイミングが一致(ほぼ一致)するように自動
演奏のテンポを制御する。自動演奏のテンポを変更する
場合、デルタタイムデータに所定のテンポ係数T_CO
EFを乗算してイベントデータの時間間隔を変更する。
この場合、テンポ係数T_COEFの値が1よりも大き
ければテンポが遅くなり、1よりも小さければテンポが
速くなる。
【0023】ここで、図3を参照してテンポ係数T_C
OEFの求め方を説明する。演奏データの本来のデルタ
タイムデータは直前までのテンポ係数T_COEFによ
って修正されている。この修正された拍間隔をDELT
A_ACM、操作者がコントローラ30によって指示し
た拍間隔(ビート指示信号とビート指示信号の時間的間
隔)がINTERVALとするとそのずれ比RATE
が、 RATE=INTERVAL/DELTA_ACM で算出される。このRATEが、次の拍間隔制御のため
にT_COEFに乗算され、新たなT_COEFが算出
される。そしてこの新たなT_COEFが次の拍のデル
タタイムデータに乗算される。
【0024】また、上述したように、演奏データにはビ
ートマークイベントが書き込まれていないものも多い。
そこで、コントローラ30を操作してリアルタイムにテ
ンポ制御を行うためには、演奏データ中にビートマーク
を書き込む必要がある。
【0025】図4はこのビートマーク生成処理動作を示
すフローチャートである。
【0026】ビートマーク生成処理をする曲を選択して
(フロッピィディスクから)RAM12に読み込んだの
ち、ビートマーク生成スイッチをオンするとこの動作が
スタートする。まず、演奏データを一通り読み流して演
奏データ中に拍子データ,小節線データが存在するか否
かを判断する。演奏データ中に拍子データ,小節線デー
タともに存在する場合には(s2)、隣接する小節線デ
ータ間のデルタタイムデータの合計を算出し、拍子デー
タが示す拍数で分割して各拍タイミングを求める(s
3)。各拍タイミングにその拍番号(1拍目,2拍目,
‥)に対応するビートマークイベントデータを書き込む
(s4)。ビートマークイベントは、図2(B)に示す
ように、2拍子の場合には、1拍目に“1”,2拍目に
“3”のマークを書き込む。3拍子の場合には、1拍目
に“1”,2拍目に“2”,3拍目に“3”のマークを
書き込む。また、4拍子の場合には、1拍目に“1”,
2拍目に“3”,3拍目に“1”,4拍目に“3”のマ
ークを書き込む。こののち、テンポ(速度)または利用
者の指示入力に基づいてビートマークの削除,修正を行
う。すなわち、図(C)に示すようにゆっくりしたテン
ポの曲の場合には、各拍を指示するが、テンポの速い曲
の場合には、利用者(指揮者)は各拍タイミングを指示
せず、小節の1拍目や(4拍子の場合)1拍目と3拍目
のみ指示する場合がある。このような場合に、演奏デー
タ中のビートマークもこれに合わせて書き換える必要が
ある。自動的にこの処理を行う場合には、概ね、指示動
作が1秒間に2回を越えないように書き換えを行うよう
にすればよい。また、利用者が「この曲は1つ振り(1
小節に1回の拍タイミング指示)で演奏する」と決めた
場合には、その入力を受け付けそれに合わせてビートマ
ークイベントデータの書換えを行うようにする。また、
上記説明は、テンポの速い曲についてビートマークイベ
ントデータを間引く場合について説明したが、テンポが
非常にゆっくりしたた曲の場合には、4拍子でも8つ振
りする場合があり、このような場合のために、拍タイミ
ング(表拍)以外に裏拍にもビートマークイベントデー
タを書き込むことができるようにしてもよい。
【0027】一方、演奏データ中に拍子データのみ書き
込まれており、小節線データが書き込まれていない場合
には(s6)、拍子データとテンポデータに基づいて小
節線位置を求める(s7)。すなわち、テンポデータに
基づいて拍子分だけデルタタイムをカウントし、カウン
トし終えた位置を小節線とする。たとえば、テンポ=1
20であった場合、1拍当たり500msなので、デル
タタイムデータの合計は1拍当たり500となる。4拍
子ならば2000のところが小節線の位置になる。ま
た、3拍子ならば1500のところが小節線の位置にな
る。また、この場合には、演奏データの先頭を第1小節
の1拍目としてカウントすればよい。こののち、s3に
進む。
【0028】また、演奏データ中に小節線データのみ書
き込まれており、拍子データが書き込まれていない場合
には(s8)、隣接する小節線データ間のデルタタイム
の合計を求め、テンポデータに基づいて拍子を求める
(s9)。すなわち、デルタタイムの合計値をテンポデ
ータで割り、その商を拍子とする。たとえば、テンポ=
120であった場合、1拍あたり500msなので、デ
ルタタイムデータの合計は1拍あたり500となる。小
節線データの間のデルタタイムデータの合計が2000
ならば4拍子であることが求められる。また、合計が1
500であれば3拍子であることが求められる。このの
ち、s3に進む。
【0029】一方、演奏データに拍子データも小節線デ
ータも書き込まれていない場合には、s10に進み、演
奏データの先頭からテンポデータ分ずつデルタタイムを
カウントしてゆき、カウントアップした点を拍位置とし
て求める。そして、この拍位置に何拍目か不明の拍位置
であるとして番号0のビートマークイベントデータを書
き込む(s11)。こののち、s5に進む。この場合、
s5でこの曲の拍子が入力された場合には、番号0のビ
ートマークから拍番号を示すビートマークに書き換える
ものとする。
【0030】図5〜図9のフローチャートを参照してこ
の自動演奏装置の自動演奏動作について説明する。この
自動演奏動作は、利用者がコントローラ30を操作して
リアルタイムに拍タイミングを指示するモードの自動演
奏動作である。
【0031】図5はタイマ割り込みによるセンサ検出処
理動作を示すフローチャートである。この動作は10m
s毎に実行される。まず、2つの圧電振動ジャイロセン
サ23,26(これらはX軸,Y軸方向に設置されてい
る。)の出力を取り込み(s14)、この出力に基づい
て絶対角速度(√x2 +y2 )を求める(s15)。求
められた絶対角速度がピーク値であるか否かを判定し、
ピーク値である場合には(s16)、拍タイミングであ
るとしてその揺動角度θに応じてピークの種類を判定
し、ピーク種類に応じた番号のビート指示信号を発生す
る(s17)。ここで、同図(B)に示すように360
°を3分割し、θ=180°〜315°の範囲を動作1
の範囲とし、θ=315°(−45°)〜45°の範囲
を動作2の範囲とし、θ=45°〜180°の範囲を動
作3の範囲とし、ピーク時の揺動角度がその範囲内であ
ればその動作であると判断する。
【0032】図6は再生処理動作を示すフローチャート
である。この動作はタイマ割り込みによって実行され
る。このタイマ割り込みの間隔は1ms程度の短い間隔
で行われる。まずs20〜s22で演奏データを読み出
すか否かを判断する。RUNは自動演奏フラグであり、
RUN=1のとき自動演奏データが行われていることを
示している。PAUSEは一時停止(ポーズ)フラグで
あり、PAUSE=1のときには自動演奏の進行を一時
停止していることを示している。TIMEはデュレーシ
ョンタイムレジスタであり、次の演奏データを読み出す
までの時間間隔であるデルタタイムをセットしてカウン
トダウンするためのレジスタである。したがって、TI
ME=0のとき次の演奏データの読出タイミングである
と判断される。したがって、RUN=1且つPAUSE
=0且つTIME=0のとき自動演奏中で動作が停止し
ておらず、且つ、次の演奏データを読み出すタイミング
であると判断される。
【0033】以上の条件が満たされた場合には、s23
に進み、演奏データのアドレスを進めて次のデータを読
み出す(s23)。読み出したデータがイベントデータ
であるかデルタタイムデータであるかを判断する(s2
4)。イベントデータであればこのイベントデータに対
応する処理を実行し(s25)、次の演奏データを読み
出すためにs23に戻る。
【0034】読み出したデータがデルタタイムデータで
あればこのデルタタイムデータをTIMEにセットする
(s26)。TIMEにセットされた値が0であった場
合(複数のイベントが同時に発生する場合)にはs27
からs23に戻る。セットしたTIMEが0でなかった
場合にはTIMEに対してテンポ係数T_COEFを掛
けて修正する(s28)。このテンポ係数T_COEF
は、コントローラ30の操作によって発生したビート指
示信号に基づいて自動演奏中の曲の速度を修正するため
の係数である。このT_COEFの算出方法は後述す
る。
【0035】こののち、TIMEから1を減算する(s
29)。さらに、DELTA_ACMを1加算する(s
30)。DELTA_ACMは、図3で説明したよう
に、修正された演奏データのデルタタイムデータを1拍
分積算するレジスタである。
【0036】s29,s30の動作は、s23〜s28
の処理を済ませた場合のほか、s22でTIMEが0で
ないと判断された場合に実行される。こののち、INT
ERVALに1を加算する(s31)。INTERVA
Lは、図3で説明したように、ビート指示信号が入力さ
れたのち次のビート指示信号が入力されるまで、すなわ
ち操作者が指示する1拍分のデルタタイムを積算するレ
ジスタである。次に、ビート指示対応処理(s32)を
実行する。このビート指示対応処理は、コントローラ3
0の操作によってビート指示信号が発生したときこれに
対応して実行される処理動作である。これは図8の説明
において詳述する。このs31,s32の動作は自動演
奏が行われていれば(RUN=1)必ず実行される。
【0037】図7はイベント対応処理を示すフローチャ
ートである。演奏データの読み出しによってイベントデ
ータが読み出されたときこの動作が実行される。まず、
そのイベントがビートマークのイベントであるかを判断
する(s40)。ビートマークイベント以外のイベント
データであった場合にはそのイベントデータが演奏イベ
ントデータであるかを判断する(s41)。演奏イベン
トデータであった場合には、そのイベントデータを音源
回路27に出力して対応する発音や消音などの動作を行
わせる(s42)。また、ビートマークイベント,演奏
イベント以外のイベントデータであった場合には、その
他イベントに対応した処理を実行する(s43)。
【0038】一方、ビートマークのイベントであった場
合には、まず、ビート指示信号発生フラグBEAT_R
CVに1がセットされているか否かを判断する(s4
4)。ビート指示信号発生フラグBEAT_RCVは、
演奏データ中のビートマークイベントデータが読み出さ
れるまえに、コントローラ30によってビート指示信号
が発生された場合にセットされるフラグである。したが
って、BEAT_RCV=1の場合には、操作者が指示
したテンポよりも演奏されているテンポが遅いことを示
している(図3(A)参照)。この場合には、さきに、
ビート指示信号が発生した時点で、このイベントデータ
(ビートマークイベントデータ)に対応する処理は行わ
れているため(図8のs55〜s61参照)、BEAT
_RCVをリセットして(s47)リターンする。一
方、BEAT_RCV=0の場合には、このビート指示
の番号をBEAT_NOレジスタに記憶し(s45)、
操作者の拍タイミング指示よりも先に拍タイミングのデ
ータを読み出したことから演奏が速すぎたとして一時停
止フラグPAUSEに1をセットして、自動演奏の進行
を一時停止する(s46)。ただし、発音は継続されて
いるものとする。
【0039】図8はビート指示対応処理を示すフローチ
ャートである。ビート指示対応処理とは、コントローラ
30の操作によってビート指示信号が発生したときこれ
に対応する処理動作である。まず、ビート指示信号の発
生があるか否かを判断する(s50)。ビート指示信号
が発生していない場合にはそのままリターンする。ビー
ト指示信号が発生した場合、すなわち、この動作に入っ
たとき所定のバッファにビート指示信号が記憶されてい
た場合には、現在PAUSE=1であるか否か、すなわ
ち、先に演奏データのビートマークイベントデータが読
み出されているかを判断する(s51)。PAUSE=
1の場合には、発生したビートマークの番号とs45の
動作で記憶したBEAT_NOの内容とが一致するか否
かを判断する(s52)。この場合、BEAT_NO=
0の場合には無条件に全ての番号と一致するものとす
る。一致しなかった場合には、このテンポの指示に従う
必要がないと判断してそのままリターンする。一致した
場合には、先行していた自動演奏に利用者の指示が追い
ついたため、自動演奏を再開可能であるとしてテンポ計
算処理(s53)を実行したのち、自動演奏を再開する
(s54)。以下、これらの動作を具体的に説明する。
【0040】図9はテンポ計算処理を示すフローチャー
トである。テンポ計算処理とは、演奏データからビート
マークイベントデータを読み出すタイミングと、利用者
のコントローラ30操作によってビート指示信号が発生
したタイミングがずれているということは、自動演奏の
テンポと利用者が指示したテンポとが不一致であったと
いうことであるため、これを修正する処理である。ま
ず、s65では、テンポのズレをカウント値の比で表す
ズレ比RATEを求める。RATEは、 RATE=INTERVAL/DELTA_ACM で求めることができる。S53の場合には、INTER
VALがDELTA_ACMよりも大きいため、RAT
Eは1より大きくなる。このRATE分だけ前拍のテン
ポを修正すればよいため前拍のテンポ係数T_COEF
にRATEを乗算して修正する(s66)。すなわち、 T_COEF=T_COEF×RATE の演算を行う。RATE>1であれば、T_COEFの
値が大きくなりテンポが遅くなる。また、RATE<1
であれば、T_COEFの値が小さくなりテンポが速く
なる。この処理によってT_COEFが上限・下限のリ
ミット値を超えた場合(最も遅く演奏できるテンポより
も遅くなった場合や最も速く演奏できるテンポよりも速
くなった場合)には、T_COEFをリミット値までク
リップするリミット処理を行う(s67)。
【0041】図8において、また、s54の自動演奏再
開処理は、DELTA_ACMに0をセットし、INT
ERVALに0をセットし、PAUSEを0にリセット
する動作である。
【0042】一方、s51でPAUSE=0であった場
合には、まだ演奏データからビートマークイベントデー
タが読み出されていない、すなわち、自動演奏のテンポ
が利用者の指示よりも遅いということを意味する。この
ため、自動演奏を利用者の指示に追いつかせるため以下
の動作を行う。まず、演奏データを早送りして次のビー
トマークイベントデータをサーチする(s55)。サー
チされビートマークイベントデータの番号と発生したビ
ート指示信号の番号とが一致するか否かを判断する(s
56)。これらが不一致の場合には、このテンポの指示
に従う必要がないと判断してそのままリターンする。一
致した場合には、DELTA_ACMに現在自動演奏中
の位置から(「上記サーチしたイベントデータまでの全
デルタタイム」+TIME)×T_COEFの値を加算
する(s57)。これで自動演奏の遅れが解消された
が、その分(現在自動演奏中の位置から上記サーチした
イベントデータまで)のイベントデータが実行されてい
ないため、このイベントデータに関してはデルタタイム
データを所定値分の1に短縮して演奏する(s58)。
こののち、BEAT_RCVをセットし(s59)、テ
ンポ計算処理(s60:図9)を実行したのち、DEL
TA_ACMに0をセットし、INTERVALに0を
セットして(s61)、リターンする。この場合、利用
者によるビート指示信号の発生が自動演奏によるビート
マークイベントデータの読み出しよりも早かったため、
s60のテンポ計算処理ではテンポが速くなるように再
計算される。
【0043】図10,図11を参照して、いわゆる分解
能方式でデルタタイムを記憶している演奏データに対す
るビートマーク生成処理動作を説明する。分解能方式と
は、デルタタイムをミリセカンドでカウントするのでは
なく、4分音符のn分の1ととして設定されたクロック
数でカウントする方式である。図10はミリセカンド方
式と分解能方式とを比較した図である。同図(A)は4
分音符=120のテンポの場合の1拍分のデルタタイム
を示している。ミリセカンド方式の場合には、 60000ミリセカンド÷120=500ミリセカンド のデルタタイムである。一方、4分音符/96の分解能
の分解能方式では、1拍分のデルタタイムは、当然に9
6クロックである。ちなみに、この場合1クロックは約
5.2msである。
【0044】また、同図(B)は4分音符=90のテン
ポの場合の1拍分のデルタタイムを示している。ミリセ
カンド方式の場合には、 60000ミリセカンド÷90=750ミリセカンド のデルタタイムである。一方、4分音符/96の分解能
の分解能方式では、1拍分のデルタタイムは、どのよう
なテンポでも96クロックである。この場合1クロック
は約6.9msである。
【0045】このように、ミリセカンド方式ではテンポ
が変わるとデルタタイムも変わるが、分解能方式では、
イベント間の相対時間が変わらない限り、テンポが変わ
ってもデルタタイムは不変である。
【0046】図11は分解能方式の演奏データにビート
マークを書き込むビートマーク生成処理動作を示してい
る。
【0047】ビートマーク生成処理をする曲を選択して
(フロッピィディスクから)RAM12に読み込んだの
ち、ビートマーク生成スイッチをオンするとこの動作が
スタートする。このとき読み込まれた演奏データのデル
タタイムデータは分解能方式で記録されている。まず、
演奏データを一通り読み流して(s71)、演奏データ
中に拍子データ,小節線データが存在するか否かを判断
する。演奏データ中に拍子データ,小節線データともに
存在する場合には(s72)、小節線データ,拍子デー
タおよび分解能データに基づいて各拍タイミングを求め
る(s73)。そして各拍タイミングにその拍番号(1
拍目,2拍目,‥)に対応するビートマークイベントデ
ータを書き込む(s74)。こののち、テンポ(速度)
または利用者の指示入力に基づいてビートマークの削
除,修正を行う。この修正方式は図4のビートマーク生
成動作の場合と同様である。
【0048】一方、演奏データ中に拍子データのみ書き
込まれており、小節線データが書き込まれていない場合
には(s76)、拍子データと分解能データに基づいて
小節線位置を求める(s77)。すなわち、分解能デー
タに基づいて拍子分だけデルタタイムをカウントし、カ
ウントし終えた位置を小節線とする。この場合には、演
奏データの先頭を第1小節の1拍目としてカウントすれ
ばよい。こののち、s73に進む。また、演奏データ中
に小節線データのみ書き込まれており、拍子データが書
き込まれていない場合には(s78)、隣接する小節線
データ間のデルタタイムの合計を求め、分解能データに
基づいて拍子を求める(s79)。すなわち、デルタタ
イムの合計値を分解能データで割り、その商を拍子とす
る。こののち、s73に進む。
【0049】一方、演奏データに拍子データも小節線デ
ータも書き込まれていない場合には、s80に進み、演
奏データの先頭から分解能データ分ずつデルタタイムを
カウントしてゆき、カウントアップした点を拍位置とし
て求める。そして、この拍位置に何拍目か不明の拍位置
であるとして番号0のビートマークイベントデータを書
き込む(s81)。こののち、s75に進む。この場
合、s75でこの曲の拍子が入力された場合には、番号
0のビートマークから拍番号を示すビートマークに書き
換えるものとする。
【0050】このようにビートマークイベントデータが
書き込まれた分解能方式の演奏データでテンポ制御を行
う場合には、上記実施例のようにデルタタイムを伸縮さ
せるのではなく、再生処理の割り込み間隔を伸縮制御す
るようにする。
【0051】なお、この発明は上記実施例の構成に代え
て以下のように構成することもできる。
【0052】演奏データは「イベント+デルタタイム」
で構成したが、他の形式、たとえば「イベント+絶対時
間」などで構成してもよい。
【0053】ビートマークイベントデータは演奏データ
中に混在させるようにしたが、演奏データとは異なる領
域に記憶するようにしてもよい。たとえば、演奏データ
の記録されていないトラック(チャンネル)にビートマ
ークを記録するようにしてもよい。また、ビートタイミ
ングに対応する演奏データのメモリ上のアドレス値を各
ビートタイミング毎に記憶しておき、それに基づいてビ
ートマークイベントデータを発生させるようにしてもよ
い。このようにして記憶したビートマークのデータは、
曲データと一緒のデータファイルとしてもよいし、曲デ
ータのファイルとは別のファイルとしてもよい。
【0054】上記実施例では、演奏に先立って予めビー
トマークを作成するようにしているが、自動演奏しなが
らその場でビートマークを作成するようにしてもよい。
【0055】上記実施例ではビートマークイベントデー
タを拍タイミング毎に書き込み、その曲に記憶されてい
るテンポデータに応じてそれを削減・修正するようにし
たが、再生する際に設定されたテンポに応じてその場で
ビートマークの削減・修正(もともと少ない状態で記憶
されていた場合は増加・修正)をするようにしてもよ
い。
【0056】テンポの制御は、デルタタイムの値にテン
ポ係数を掛け、デルタタイムの値を増減させることによ
って行ったが、処理の周期を変化させることによってテ
ンポを変化させてもよい。また、デルタタイムの値を変
化させるとき、所定の値を乗算するものに限らず、加算
するものであってもよい。
【0057】通常の自動演奏に限らず、自動伴奏や自動
リズム演奏にこれを適用することもできる。また、カラ
オケ等の映像(動画や静止画)を伴うものであってもよ
い。
【0058】揺動動作に基づいてビート指示信号(=テ
ンポ制御用信号)を発生するようにしたが、タッピング
操作や演奏操作子の操作によってテンポ制御信号を発生
するようにしてもよい。
【0059】揺動動作を検出するためのセンサは圧電振
動ジャイロセンサに限らず、加速度センサや、磁気や光
を用いたものであってもよい。揺動動作を撮像し、画像
処理によって揺動動作を検出するようなものでもよい。
複数種類のセンサを組み合わせて用いてもよい。また、
ジャイロセンサを2つ用いて動作を検出したが、3つ以
上用いて動作を検出してもよい。たとえば、3拍子用
と、2・4拍子用とで、異なるセンサを用いるようにし
てもよいし、3つ以上のセンサ出力を総合判断して、動
作を検出するようにしてもよい。
【0060】特徴点(ピーク,谷)の検出方法は実施例
のものに限らない。他の条件を用いて特徴点を検出して
もよい。
【0061】検出する揺動動作の種類は、実施例の3種
類に限らず、もっと多くの種類の動作を検出するように
してもよい。例えば4拍子のときは、全て異なる動作と
して検出するようにしてもよい。
【0062】また、外部装置にテンポクロックを供給し
て、外部装置の演奏テンポを制御するように構成しても
よい。
【0063】コントローラから自動演奏装置へのセンサ
出力の送信は、無線で行っても有線で行ってもよい。
【0064】コントローラの操作によってテンポを制御
するだけでなく、音量や音色など、他の音楽特性を制御
するようにしてもよい。たとえば、揺動動作の速さに応
じて音量を制御するようにしてもよい。
【0065】
【発明の効果】以上のようにこの発明によれば、マーク
データを自動的に生成して曲データに対応させて記憶す
るようにしたので、マークをいれる作業を人手を使って
行う必要が無くなる。また、拍子データや小節線データ
などを用いることによって適切な位置に、適切なマーク
を記録することが可能になる。これにより、マークデー
タが書き込まれていない曲であってもこの処理によって
マークデータを書き込むことにより、操作感のよいテン
ポ制御を行うことができる。
【0066】また、マークデータを拍タイミング毎に生
成するようにしたことにより、利用者の感覚にあった制
御が可能になり、さらに操作感を高めることができる。
【0067】また、自動的に生成したマークデータを曲
のテンポに応じて修正するようにしたことにより、曲の
遅速に応じたテンポ指示が可能になりさらに操作感を高
めることが可能になる。
【図面の簡単な説明】
【図1】この発明実施例である自動演奏装置のブロック
【図2】同自動演奏装置の演奏データおよびテンポ指示
動作を示す図
【図3】同自動演奏装置のテンポ制御の方式を説明する
【図4】同自動演奏装置のビートマーク作成動作を示す
【図5】同自動演奏装置のテンポ指示検出動作を示す図
【図6】同自動演奏装置の再生処理動作を示す図
【図7】同自動演奏装置のイベント対応処理動作を示す
【図8】同自動演奏装置のビートマーク処理動作を示す
【図9】同自動演奏装置のテンポ計算処理動作を示す図
【図10】同自動演奏装置のビートマーク作成動作の他
の実施例を示す図
【図11】同自動演奏装置のビートマーク作成動作の他
の実施例を示す図
【符号の説明】
23,26−圧電ジャイロセンサ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 自動演奏を行うための演奏データを記憶
    する演奏データ記憶手段と、 該演奏データ中の拍子データに基づき、所定タイミング
    毎にマークデータを生成して、前記演奏データに対応さ
    せて記憶するマークデータ生成手段と、 該記憶されたマークデータによって前記演奏データの自
    動演奏を制御する自動演奏制御手段と、 を備えたことを特徴とする自動演奏装置。
  2. 【請求項2】 自動演奏を行うための演奏データを記憶
    する演奏データ記憶手段と、 該演奏データ中の小節線データに基づき、所定タイミン
    グ毎にマークデータを生成して、前記演奏データに対応
    させて記憶するマークデータ生成手段と、 該記憶されたマークデータによって前記演奏データの自
    動演奏を制御する自動演奏制御手段と、 を備えたことを特徴とする自動演奏装置。
  3. 【請求項3】 自動演奏を行うための演奏データを記憶
    する演奏データ記憶手段と、 該演奏データ中のテンポデータに基づき、所定タイミン
    グ毎にマークデータを生成して、前記演奏データに対応
    させて記憶するマークデータ生成手段と、 該記憶されたマークデータによって前記演奏データの自
    動演奏を制御する自動演奏制御手段と、 を備えたことを特徴とする自動演奏装置。
  4. 【請求項4】 自動演奏を行うための演奏データを記憶
    する演奏データ記憶手段と、 該演奏データ中の歩進分解能データに基づき、所定タイ
    ミング毎にマークデータを生成して、前記演奏データに
    対応させて記憶するマークデータ生成手段と、 該記憶されたマークデータによって前記演奏データの自
    動演奏を制御する自動演奏制御手段と、 を備えたことを特徴とする自動演奏装置。
  5. 【請求項5】 前記マークデータ生成手段は、前記マー
    クデータを拍タイミング毎に生成する手段であり、 前記自動演奏制御手段は、利用者による拍タイミング指
    示と前記マークデータの読み出しタイミングとを比較し
    てテンポを制御する手段である請求項1乃至請求項4に
    記載の自動演奏装置。
  6. 【請求項6】 前記マークデータ生成手段は、小節内の
    拍番号に応じて異なるマークデータを生成する手段であ
    り、 前記自動演奏制御手段は、利用者による拍タイミング指
    示の拍番号と前記マークデータの拍番号との一致を条件
    としてテンポを制御する手段である請求項5に記載の自
    動演奏装置。
  7. 【請求項7】 前記マークデータ生成手段は、生成した
    マークデータを自動演奏のテンポに基づいて増減する手
    段を含む請求項5に記載の自動演奏装置。
JP16035095A 1995-06-27 1995-06-27 自動演奏装置 Expired - Fee Related JP3303608B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16035095A JP3303608B2 (ja) 1995-06-27 1995-06-27 自動演奏装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16035095A JP3303608B2 (ja) 1995-06-27 1995-06-27 自動演奏装置

Publications (2)

Publication Number Publication Date
JPH0916169A true JPH0916169A (ja) 1997-01-17
JP3303608B2 JP3303608B2 (ja) 2002-07-22

Family

ID=15713084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16035095A Expired - Fee Related JP3303608B2 (ja) 1995-06-27 1995-06-27 自動演奏装置

Country Status (1)

Country Link
JP (1) JP3303608B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007264034A (ja) * 2006-03-27 2007-10-11 Yamaha Corp 演奏記録装置及びプログラム
JP2009122706A (ja) * 2009-03-09 2009-06-04 Yamaha Corp 自動演奏装置及びプログラム
JP2014048418A (ja) * 2012-08-30 2014-03-17 Brother Ind Ltd 楽曲演奏装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007264034A (ja) * 2006-03-27 2007-10-11 Yamaha Corp 演奏記録装置及びプログラム
JP2009122706A (ja) * 2009-03-09 2009-06-04 Yamaha Corp 自動演奏装置及びプログラム
JP2014048418A (ja) * 2012-08-30 2014-03-17 Brother Ind Ltd 楽曲演奏装置

Also Published As

Publication number Publication date
JP3303608B2 (ja) 2002-07-22

Similar Documents

Publication Publication Date Title
JP3307152B2 (ja) 自動演奏制御装置
JP3058051B2 (ja) 音楽的アミューズメントシステム
EP0829847A1 (en) Conduct-along system
JPH0827628B2 (ja) 自動演奏装置
US5010801A (en) Electronic musical instrument with a tone parameter control function
JP2595800B2 (ja) 自動演奏装置
JP3484719B2 (ja) 音声入力機能付き演奏ガイド装置および演奏ガイド方法
JP3303608B2 (ja) 自動演奏装置
US5629491A (en) Tempo control apparatus
JPH1031495A (ja) カラオケ装置
JP3259602B2 (ja) 自動演奏装置
JP3627321B2 (ja) 演奏制御装置
JPH1039863A (ja) 自動伴奏装置
JP3720004B2 (ja) 音楽制御装置
JP2773638B2 (ja) 自動演奏装置
JP5162754B2 (ja) 演奏開始装置および演奏開始プログラム
US6362410B1 (en) Electronic musical instrument
JP3427569B2 (ja) 音楽制御装置
JP2660462B2 (ja) 自動演奏装置
JP2625800B2 (ja) 自動演奏装置
JP3672179B2 (ja) 音楽的アミューズメントシステム
JP3672178B2 (ja) 音楽的アミューズメントシステム
JP3279122B2 (ja) テンポ制御装置
JPH08314455A (ja) 音楽制御装置
JP3136695B2 (ja) 電子弦楽器

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090510

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100510

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110510

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130510

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees