JPH04133097A - テンポコントローラ - Google Patents

テンポコントローラ

Info

Publication number
JPH04133097A
JPH04133097A JP2255743A JP25574390A JPH04133097A JP H04133097 A JPH04133097 A JP H04133097A JP 2255743 A JP2255743 A JP 2255743A JP 25574390 A JP25574390 A JP 25574390A JP H04133097 A JPH04133097 A JP H04133097A
Authority
JP
Japan
Prior art keywords
tempo
time
tap
score time
score
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.)
Pending
Application number
JP2255743A
Other languages
English (en)
Inventor
Hirobumi Mukono
博文 向野
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 JP2255743A priority Critical patent/JPH04133097A/ja
Publication of JPH04133097A publication Critical patent/JPH04133097A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (al産業上の利用分野 この発明は、シーケンサやリズムマシン等に対して実時
間で制御されたテンポクロックを与えることのできるテ
ンポコントローラに関する。
(bl従来の技術 音楽の最も重要な基本要素の一つに演奏のテンポという
ものがある。テンポは一つの曲の演奏の中でも様々に変
化し曲の表情作りの中で大きな役割を果たしている。そ
のテンポ変化の中には、リタルダンドやアンチニレラン
ドのように大局的なテンポ変化や小節内の細かなテンポ
の揺らぎ等様々なものが含まれる。電子楽器で、特にそ
の自動演奏でこのテンポの微妙な変化を与えるように出
来るとより音楽的な表現が可能になる。シーケンサ等で
このテンポの変化を含む自動演奏を行う場合、最も簡単
な方法はそのテンポの変化も予めデータとして打ち込ん
でおくことである。
ところが、このようなシーケンサ等では実時間での柔軟
なテンポ変更を行うことができない。このことはシーケ
ンサは人間との演奏の同期に関しては無能に近く、人間
の演奏者が機械の方に合ゎせてやらなければならないこ
とを意味する。そこで、この問題を解決するためにシー
ケンサ内で形成されているテンポクロック情報を外部か
ら与え、しかもこのテンポクロツタ情報を実時間で制御
する方法が提案されている。テンポを表現する手段とし
ては最も基本的なものとしてタッピングがある。即ち、
演奏者はタッピングを行うことにより、そのタッピング
に基づいてテンポクロックを発生するようにする。そこ
で、タンピングで与えられるテンポに対しコンピュータ
の演奏をどのように制御するかを考えてみる。
まず、コンピュータ(シーケンサ等の自動演奏を行う電
子楽器)に対してタップでテンポを次々に与えながら演
奏を進めていくとする。第5図においてタップ操作者(
または演奏者)がAの位置でまず第1回目のタップをし
たとする。この時にはコンピュータの楽譜時間とタップ
を行った時の物理時間とがうまく同期している。仮にそ
の時のテンポのまま演奏が続くと、次の強拍点(即ち次
にタップされるべき位置)はBの所である。この操作者
がテンポを速めるために少し早い目にB′の所でタップ
したとする。ここで操作者とコンピュータとの間に楽譜
時間としてのずれが生しる(この場合は4分の1拍)。
勿論、この時にテンポの差も生しる。そこで、コンピュ
ータの演奏を操作者の意図する演奏と同期させるために
テンポを合わせることが必要になってくる。この例だと
テンポを473倍に上げることになる。しかしそれだけ
だとコンピュータの次の強拍点はCになり、一方探作者
のタップはC′であるために時間的ずれ(4分の1拍)
が保存されてしまい完全な同期にはならない。そこでB
′の時に生じた時間的ずれは何等かの形で解消して′や
ることが必要になる。この時間的ずれを解消するために
、Bの位置をB′に、またCの位置をC′にそれぞれ直
ちに或いは徐々に合わせてしまう。第6図はこの方法を
示している。
なお、ここで物理時間と楽譜時間の定義を行うと次のよ
うになる。
物理時間・・・通常の時間である。コンピュータのタイ
マによって生成される例えばミリ秒単位の時間を意味す
る。
楽譜時間・・・楽譜の中での位置を表す。通常1拍の何
分の1かを基本単位として用いる。例えばこの明細書で
は1拍の384分の1を単位として楽譜時間を表現し、
M i D I規格ではF8が1拍の24分の1の楽譜
時間を表す単位と解釈される。
(C)発明が解決しようとする課題 ところで、テンポを変更するためのテンポクロツタ情報
はターツブデータに基づいて生成されるが、操作者(ま
たは演奏者)が誤ってタッピングを行うとテンポクロッ
ク情報も誤ったものとなる。
この場合、上記の方法では楽譜時間のずれが極めて大き
いものとなってしまう。
そこでこの発明の目的は、今回のタップが誤タップであ
るかどうかを判定するとともに、誤タップである場合に
はそのタップを無視するようにしたテンポコントローラ
を提供することにある。
(ロ)課題を解決するための手段 この発明は、 タップデータを形成するタッピング手段と、前記タップ
データに基づいて現在の楽譜時間の更新を行う楽譜時間
更新手段と、 楽譜時間の更新毎にテンポクロック情報を出力するテン
ポクロック情報出力手段と、 前回のタップ時と今回のタップ時の楽譜時間位置の差を
検出するタップ間楽譜時間差検出手段と前記楽譜時間位
置の差が一定値以下である時今回のタップを誤タップと
見做して無視する手段とを備えてなることを特徴とする
(e)作用 この発明では、タッピングのたびに夕・71間楽譜時間
差検出手段により前回のタップ時と今回のタップ時の楽
譜時間の位置の差が検出され、その差が一定値以下であ
る時に今回のタップを誤タップと見做して無視する。
(f)実施例 第1図はこの発明の実施例のブロック図を示している。
同図の1はテンポコントローラ、2はシーケンサ、3は
音源、4はサウンドシステムを示している。シーケンサ
2内の演奏データメモリには予め演奏データが記憶され
ている。テンポコントローラ1はシーケンサ2に対して
M I D Iケーブルを介してテンポクロック情報を
与える。実際には、M I D Iケーブル上はクロッ
クではなく、F8データが流れる。また、F8データの
他、スタート時にはFAデータが出力され、ストップ時
にはFCデータが出力される。シーケンサ2はF8デー
クを受けると、演奏データメモリのポインタを一つ進め
る。つまり、シーケンサ2は、このテンポクロック乙こ
基づいて内部の演奏データメモリから演奏データを読み
出し音源3に送る。音源3はその演奏データに対応する
波形データを音源メモリから読み出してサウンドシステ
ム4に出力する。
前記テンポコントローラ1はマイクロコンピュータ10
、操作パネル11、タイマ12、タップスイッチ13お
よびM I D Iインタフェース14を備えている。
操作パネル11はスタート/ストップスイッチ、時間ず
れ初期解消率(bypassRatio)入カスイ・7
チ、テンポずれ解消量(i n cTemp o)入カ
スイソチを含む。タイマ12は外部割り込みタイマとし
て使用される。
タップスイッチ13は通常のオンオフスイッチである。
このスイッチは操作者がタッピングし易いように、例え
ば足の甲の上下動作でオンオフ動作するものや、手の上
下動作でオンオフ動作する構造のものが望ましい。MI
 D Iインタフェース14はマイクロコンピュータ1
0から出力されるテンポクロック情報に基づいて演奏デ
ータメモリカウントアツプ用のF8データをMIDIケ
ーブル15に乗セる。なお、テンポクロック情報がOの
ときにはF8データは形成されない。MIDIケーブル
15はMIDIインタフェース14のMIDIOUT端
子に接続される。
シーケンサ2はシーケンサ本体20とM I D Iイ
ンタフェース21とを含む。MIDIケーブル15はM
 I D Iインタフェース21のM I D I I
N端子に接続される。シーケンサ本体20は内部に設け
られている演奏データメモリに図示のような演奏データ
を予め記憶している。図のイベントデータ間のF8の数
は楽譜上のイベント間隔に相当する数に等しい。イベン
トデータは、例えばKON<ノートオン)、KCD  
(富商)、VEL  (キーへロシティ:音M)から構
成され、ポインタがKONを指したときこれらの演奏デ
ータを順に音a3に出力する。
以上の構成により、テンポコントローラlから出力され
るF8データの周期が短くなればシーケンサ2からは楽
譜時間が短くなるように演奏データが出力される。また
、反対に上記周期が長くなれば楽譜時間が長くなるよう
に演奏データが出力される。
次に第2図(A)〜(E)を参照して上記テンポコント
ローラlの動作を説明する。
第2図(A)はタップスイッチ13が操作された時の動
作を示している。このフローでは、テンポずれおよび楽
譜時間ずれを求め、楽譜時間ずれの一部を解消する動作
を行う。
まず、nlにおいてタップ時における操作者の意図する
強拍点の楽譜時間の推定を行う。この位置はGuess
Posで表される。第3図においてタップ時をt3とす
るとこのGuessPosは楽譜時間で1152の位置
である。QuessPosは、 QuessPos= (CurPo s/Bea t)*Bea tで求めら
れる。ここでBea tは1拍の楽譜時間、即ち384
であり、Curiosは現在の楽譜時間位置を表す。例
えば第3図で現在の物理時間がt3とすると、CurP
osは1056である。また、(CurPos/Bea
 t)は四捨五入値を返す。したがって例えば、現在の
物理時間がL3とした場合、CurPosが960〜1
152の間にある場合にはGuessPosは1152
となり、CurPosが768〜959の間にある場合
にはGuessPosは768となる上記のようにCu
rPosは768〜959の間にある場合にはGues
sPosが768となるため、この場合には今回のタッ
プによって楽譜時間位置に変更がないものと見做される
。即ち、このことは今回のタップが無視されることを意
味する。このように、本実施例では前回のタップ位置に
対する今回のタップ位置が1拍の楽譜時間(定数:38
4)の172以下である時に今回のタップを誤タップと
見做して無視する。もし、前回のタップ位置に対する今
回のタップ位置の差が1拍の楽譜時間の2分の1の時に
も今回のタップを有効と見做せば、テンポを2倍の速さ
に変更する必要が生じてくるが、テンポが急激に2倍に
なることは実際的ではない。そこで、本実施例のように
することが一つの望ましい方法であると考えられる。勿
論、この判定のためのスレソンホールト値となる楽譜時
間位置の差は設計者が任意に設定できるものである。な
お、nlに続くn1′において、 GuessPos=PrevPos? の判定を行っており、この弐の条件が満足された場合に
n5に進み、満足されない時にだけn2のテンポの計算
ステップに進むようにしているが、nlにてGuess
Pos=CurPosてあれば GuessPos=PrevPosとなってrll−e
 n5 ヘと進む。即ち、GuessPosがPrev
Posと同一であるということはn3.n4で計算され
るテンポおよび楽譜時間のずれがないということを意味
し、結局、今回のタップが誤タップとして見做され無視
されることを意味するnlにおいては、 (CurPos/Bea t) の計算によって四捨五入値を返すようにしているため、
このnlによる演算によってタップ間の楽譜時間差が実
質的に求められている。
GuessPosがPrevPosと相違している場合
、即ち前回のタップ時と今回のタップ時の楽譜時間差が
2分の1拍を超える場合は今回のタップを無視してはい
けないためにn2以下の動作を行う。つまり、本実施例
では楽譜時間のずれの解消とともに、テンポずれの解消
も行うようにしているため、次のn2ではテンポの計算
も行うテンポの計算は、 newTempo= (CruessPos−PrevPos)/(CurT
ime−PrevTime)で求められる。ここで、n
ewTempoは以後実行すべき演奏テンポであり、p
revPosは前回の楽譜時間位置を示し、Cu t 
T i m eは現在の物理時間を示し、prevTi
meは前回の物理時間を示している。つまり、n e 
w T e m pOは第3図から明らかなように直線
の傾きを表していることに他ならない。
続いてテンポずれの計算を行う(n3)。テンポずれは
、 tempoDi f f=newTemp。
−CurTemp。
で表さる。
また、続いてn4で楽譜時間のずれを求める。
楽譜時間のずれ量Po5Diffは、 Po5Di f f =CurPos−GuessPos で求められる。第3図に示す例ではPo5Diffは−
96である。次に、データの更新を行う。
つまり、GuessPosをPrevPosとして更新
し、CurTimeをPrevTimeとして更新する
以上の処理を行った後n6で時間ずれの初期解消モジュ
ールを実行する。
第2図(B)は時間ずれ初期解消モジュールのフローチ
ャートを示している。ここではタップ時に生した時間ず
れのうち直ちに解消するずれ量を求める。この時に必要
な係数は時間ずれ解消率bypassRatioである
。このbypassRB t i oは第2図(C)に
示すように予め操作パネル11から入力されている。b
ypassRattoの大きさはO〜1の範囲に設定さ
れる。
時間ずれ解消モジュールのnloでは、時間ずれをby
passRatioの分だけ解消することによってCu
rPosを次のように変更する。
CurPos−i− PosDiff*bypassRattなお、上記の式
はC言語の記述手法によって示している。数学的に表す
と次のようになる。
CurPos−CurPos +Po5Dif f*bypassRat i。
第4図(A)では上記の式によって夕・ノブ時にCur
Posがplからp2に移動していることが分かる。
次にnilにおいて時間ずれの更新を行う。即ち、 Po5Diff*二 (1−bypassRatio) で更新できる。
第2図(D)はMmsec毎にタイマ割り込みで実行さ
れるフローチャートである。このフローではタップスイ
ッチがオンしてから時間すれとテンポずれを少しずつ解
消していく動作を行う。
n30てTemp oD i f fが0かどうかの判
定を行い、Temp oD i f fが0であれば、
つまりテンポずれかない場合にはn32へ進みここて時
間ずれの解消ステップを実行する。また、tempoD
iffが0でなければn31でテンポずれの解消ステッ
プを実行し、続いて時間ずれ解消のステップを実行する
。n32の時間ずれ解消ステップは次の式によって行わ
れる。
CurPos*= Po5Diff*二、、06; Po5Diff*=0.94 ここで、0.06はタップ時以降の時間ずれ解消率であ
り、予め定められている。この式によって、第4図に示
すように1回目の実行てはp2からp3にCurPos
が移動する。そして、P。
5Diffも更新することにより次回の割り込みに備え
る。
またn31のテンポずれ解消ステップでは、次の弐が実
行される。
CurTempo+=incTempo  ;temp
oDif f−=incTemp。
ここでi n cTemp oはテンポずれの1回当た
りの解消量を示すもので、第2図(E)に示すように予
め操作パネル11によって入力されている。
第4図(B)は上記テンポずれ解消ステップ(n31)
によって推移してい<CurTemp。
を示している。
第4図(A)、  (B)に示すように、楽譜時間のず
れ量はタップ間で指数関数的に減少していき、テンポず
れ量は一次関数で減少していく。
第2図(F)はNm5ec毎にタイマ割り込みによって
実行されるフローチャートである。このフローでは、M
IDIケーブルに対して演奏データメモリのカウントア
ツプのだめのMIDIデータF8を出力する。
n51.n52ではそれぞれ物理時間の維持と楽譜時間
の維持を行う。続いてn53で、現在までのM I D
 T Cl o c k数を求める。ここで、MIDI
Clock数とはMIDI規格で定められる分解能(1
拍当たりのカウント数が24)でのカウント数である。
現在までのMIDIC1ock数CurF8Count
は、次式で求められるCurF8Count= Cu r P o s / F 8 T i m eこ
こでF8TimeはM I D I C1o c k 
1個当たりの楽譜時間を表す。
続いてn54でMIDIケーブルに対して出力するM 
I D I Cl o c kの数即ちF8データの数
を求める。これは、 (CurF8Count PrevF8Count) で求められる。ここで、PrevF8Countは前回
までのM r D I Cl o c k数を表す。な
お、この割り込みフローが例えば5m5ec毎に行われ
るとした場合、n54で出力されるMIDIClock
(F8データ)の数はOまたは1であり、しかも通常の
楽譜の演奏では0がかなり多く、たまに1になるものと
考えられる。
次にn55において、 PrevF8Count= CurF8Count を実行して次回の処理のための準備を行ってリターンす
る。
以上の動作により、時間ずれ初期解消率(bypass
Ratio)の値を大きく設定すればタッピングに対す
る自動演奏出力の追従性が良くなり、また反対にその値
を低く設定すれば滑らかさが良くなる。操作者はこの滑
らかさと追従性のトレードオフを任意に選択することが
できる。また、上記実施例ではテンポずれの解消も行う
ようにしているために、上記の追従性がより改善される
ことになる。
なお、第4図(A)に示すように楽譜時間のずれ量は指
数関数的に解消されるが、勿論−次関数で解消するよう
にすることも可能である。同様にテンポずれ量も任意の
関数で減少させていくことができる。また、第2図(D
>のn32に示すように時間ずれ解消率を0.06の一
定値としたが、この値も操作者が任意に設定可能にてき
る。
(g)発明の効果 この発明によれば、夕・7ピングが短い時間間隔で行わ
れた場合にこれを無視してテンポを保つようにするため
、操作者(または演奏者)が間違って夕・ッピングを行
った場合に、出力される楽音のテンポが不本意に変わる
のを防くことができる。
【図面の簡単な説明】
第1図はこの発明の実施例のテンポコントローラにシー
ケンサと音源およびサウンドシステムを接続した時の構
成図、第2図(A)〜(F)はテンポコントローラの動
作を示すフローチャート、第3図は上記テンポコントロ
ーラの動作を説明するための図、第4図(A)、  (
B)は楽譜時間ずれ量とテンポずれ量の変化を説明する
ための図、第5図、第6図−←÷姻は従来考えることの
できたテンポコントローラの原理を説明するための図で
ある。 1−テンポコントローラ、2−シーケンサ、3−音源、
4−サウンドシステム。 り97スイdQ\ 第2rf!I(A>

Claims (1)

    【特許請求の範囲】
  1. (1)タップデータを形成するタッピング手段と前記タ
    ップデータに基づいて現在の楽譜時間の更新を行う楽譜
    時間更新手段と、 楽譜時間の更新毎にテンポクロック情報を出力するテン
    ポクロック情報出力手段と、 前回のタップ時と今回のタップ時の楽譜時間位置の差を
    検出するタップ間楽譜時間差検出手段と前記楽譜時間位
    置の差が一定値以下である時今回のタップを誤タップと
    見做して無視する手段とを備えてなるテンポコントロー
    ラ。
JP2255743A 1990-09-25 1990-09-25 テンポコントローラ Pending JPH04133097A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2255743A JPH04133097A (ja) 1990-09-25 1990-09-25 テンポコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2255743A JPH04133097A (ja) 1990-09-25 1990-09-25 テンポコントローラ

Publications (1)

Publication Number Publication Date
JPH04133097A true JPH04133097A (ja) 1992-05-07

Family

ID=17283018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2255743A Pending JPH04133097A (ja) 1990-09-25 1990-09-25 テンポコントローラ

Country Status (1)

Country Link
JP (1) JPH04133097A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007256631A (ja) * 2006-03-23 2007-10-04 Yamaha Corp 演奏制御装置、およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007256631A (ja) * 2006-03-23 2007-10-04 Yamaha Corp 演奏制御装置、およびプログラム
US7633003B2 (en) 2006-03-23 2009-12-15 Yamaha Corporation Performance control apparatus and program therefor

Similar Documents

Publication Publication Date Title
US5227574A (en) Tempo controller for controlling an automatic play tempo in response to a tap operation
US9711119B2 (en) Audio processing device, method of audio processing, storage medium, and electronic musical instrument
JPH04133097A (ja) テンポコントローラ
US5880391A (en) Controller for use with a music sequencer in generating musical chords
JPH04133095A (ja) テンポコントローラ
JP2630054B2 (ja) マルチトラックシーケンサ
JP3052476B2 (ja) テンポ情報制御装置
JP2780476B2 (ja) テンポコントローラ
JP2780475B2 (ja) テンポコントローラ
JPH04133098A (ja) テンポコントローラ
JP2682182B2 (ja) 電子楽器
JPH04156592A (ja) テンポコントローラ
JPS648355B2 (ja)
JPH04151694A (ja) テンポコントローラ
JP4412859B2 (ja) 外部同期信号による同期演奏機能を備えた電子楽器
JP3304889B2 (ja) 電子楽器
JP2555765B2 (ja) 電子楽器
JPH0863168A (ja) テンポ設定装置
JP3819107B2 (ja) 電子楽器の変調装置
JP2527045B2 (ja) 電子楽器
JP3227753B2 (ja) テンポ制御装置
JP2720794B2 (ja) 自動演奏装置
JP2551195B2 (ja) 自動演奏装置
JPH03253898A (ja) 自動伴奏装置
JPH04186299A (ja) 電子楽器