JP2653232B2 - テンポコントローラ - Google Patents
テンポコントローラInfo
- Publication number
- JP2653232B2 JP2653232B2 JP2255742A JP25574290A JP2653232B2 JP 2653232 B2 JP2653232 B2 JP 2653232B2 JP 2255742 A JP2255742 A JP 2255742A JP 25574290 A JP25574290 A JP 25574290A JP 2653232 B2 JP2653232 B2 JP 2653232B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- tempo
- score
- score time
- shift amount
- 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
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の詳細な説明】 (a)産業上の利用分野 この発明は、シーケンサやリズムマシン等に対して実
時間で制御されたテンポクロックを与えることのできる
テンポコントローラに関する。
時間で制御されたテンポクロックを与えることのできる
テンポコントローラに関する。
(b)従来の技術 音楽の最も重要な基本要素の一つに演奏のテンポとい
うものがある。テンポは一つの曲の演奏の中でも様々に
変化し曲の表情作りの中で大きな役割を果たしている。
そのテンポ変化の中には、リタルダンドやアッチェレラ
ンドのように大局的なテンポ変化や小節内の細かなテン
ポの揺らぎ等様々なものが含まれる。電子楽器で、特に
その自動演奏でこのテンポの微妙な変化を与えるように
出来るとより音楽的な表現が可能になる。従来は、シー
ケンサ等で自動演奏を行う場合、このテンポの表現は予
めデータとして打ち込んでおくことによって実現されて
いる。
うものがある。テンポは一つの曲の演奏の中でも様々に
変化し曲の表情作りの中で大きな役割を果たしている。
そのテンポ変化の中には、リタルダンドやアッチェレラ
ンドのように大局的なテンポ変化や小節内の細かなテン
ポの揺らぎ等様々なものが含まれる。電子楽器で、特に
その自動演奏でこのテンポの微妙な変化を与えるように
出来るとより音楽的な表現が可能になる。従来は、シー
ケンサ等で自動演奏を行う場合、このテンポの表現は予
めデータとして打ち込んでおくことによって実現されて
いる。
(c)発明が解決しようとする課題 ところが、従来のシーケンサ等では実時間での柔軟な
テンポ変更を行うことができない。このことは、シーケ
ンサは人間との演奏の同期に関しては無能に近く、人間
の演奏者が機械の方に合わせてやらなければならないこ
とを意味する。そこで、この問題を解決するためにはシ
ーケンサ内で形成されているテンポクロック情報を外部
から与え、しかもこのテンポクロック情報を実時間で制
御する方法が考えられる。テンポを表現する手段として
は最も基本的なものとしてタッピングがある。即ち、演
奏者はタッピングを行うことにより、そのタッピングに
基づいてテンポクロックを発生するようにする。そこ
で、タッピングで与えられるテンポに対しコンピュータ
の演奏をどのように制御するかを考えてみる。
テンポ変更を行うことができない。このことは、シーケ
ンサは人間との演奏の同期に関しては無能に近く、人間
の演奏者が機械の方に合わせてやらなければならないこ
とを意味する。そこで、この問題を解決するためにはシ
ーケンサ内で形成されているテンポクロック情報を外部
から与え、しかもこのテンポクロック情報を実時間で制
御する方法が考えられる。テンポを表現する手段として
は最も基本的なものとしてタッピングがある。即ち、演
奏者はタッピングを行うことにより、そのタッピングに
基づいてテンポクロックを発生するようにする。そこ
で、タッピングで与えられるテンポに対しコンピュータ
の演奏をどのように制御するかを考えてみる。
まず、コンピュータ(シーケンサ等の自動演奏を行う
電子楽器)に対してタップでテンポを次々に与えながら
演奏を進めていくとする。第5図においてタップ操作者
(または演奏者)がAの位置でまず第1回目のタップを
したとする。この時にはコンピュータの楽譜時間とタッ
プを行った時の物理時間とがうまく同期している。仮に
その時のテンポのまま演奏が続くと、次の強拍点(即ち
次にタップされるべき位置)はBの所である。この時操
作者がテンポを速めるために少し早い目にB′の所でタ
ップしたとする。ここで操作者とコンピュータとの間に
楽譜時間としてのずれが生じる(この場合は4分の1
拍)。勿論、この時にテンポの差も生じる。そこで、コ
ンピュータの演奏を操作者の意図する演奏と同期させる
ためにテンポを合わせることが必要になってくる。この
例だとテンポを4/3倍に上げることになる。しかしそれ
だけだとコンピュータの次の強拍点はCになり、一方操
作者のタップはC′であるために時間的ずれ(4分の1
拍)が保存されてしまい完全な同期にはならない。そこ
で、B′のタップの時に生じた時間的ずれは何等かの形
で解消してやることが必要になる。一番簡単な方法は
B′がきた時点でまだ4分の3拍の位置にあるコンピュ
ータの楽譜時間を無理やり1拍の位置に合わせてしまう
ことである。同様にC′の位置でもCで示される楽譜時
間を無理やりC′の位置に合わせてしまう。第6図はこ
の方法を示している。これによると操作者とコンピュー
タの演奏とを1拍毎に完全に同期させることができる。
ところがこれには一つ問題がある。つまり、B′でタッ
プがされた時コンピュータはまだ4分の3拍の位置にい
るために急に1拍に移動するとその4分の3〜1拍間の
音符がその瞬間に鳴ってしまう。勿論その間に音符がな
ければ実害はないが、例えば4連音符があった場合それ
らの音符は1度になってしまい音楽的に問題となる。
電子楽器)に対してタップでテンポを次々に与えながら
演奏を進めていくとする。第5図においてタップ操作者
(または演奏者)がAの位置でまず第1回目のタップを
したとする。この時にはコンピュータの楽譜時間とタッ
プを行った時の物理時間とがうまく同期している。仮に
その時のテンポのまま演奏が続くと、次の強拍点(即ち
次にタップされるべき位置)はBの所である。この時操
作者がテンポを速めるために少し早い目にB′の所でタ
ップしたとする。ここで操作者とコンピュータとの間に
楽譜時間としてのずれが生じる(この場合は4分の1
拍)。勿論、この時にテンポの差も生じる。そこで、コ
ンピュータの演奏を操作者の意図する演奏と同期させる
ためにテンポを合わせることが必要になってくる。この
例だとテンポを4/3倍に上げることになる。しかしそれ
だけだとコンピュータの次の強拍点はCになり、一方操
作者のタップはC′であるために時間的ずれ(4分の1
拍)が保存されてしまい完全な同期にはならない。そこ
で、B′のタップの時に生じた時間的ずれは何等かの形
で解消してやることが必要になる。一番簡単な方法は
B′がきた時点でまだ4分の3拍の位置にあるコンピュ
ータの楽譜時間を無理やり1拍の位置に合わせてしまう
ことである。同様にC′の位置でもCで示される楽譜時
間を無理やりC′の位置に合わせてしまう。第6図はこ
の方法を示している。これによると操作者とコンピュー
タの演奏とを1拍毎に完全に同期させることができる。
ところがこれには一つ問題がある。つまり、B′でタッ
プがされた時コンピュータはまだ4分の3拍の位置にい
るために急に1拍に移動するとその4分の3〜1拍間の
音符がその瞬間に鳴ってしまう。勿論その間に音符がな
ければ実害はないが、例えば4連音符があった場合それ
らの音符は1度になってしまい音楽的に問題となる。
なお、ここで物理時間と楽譜時間の定義を行うと次の
ようになる。
ようになる。
物理時間・・・通常の時間である。コンピュータのタイ
マによって生成される例えばミリ秒単位の時間を意味す
る。
マによって生成される例えばミリ秒単位の時間を意味す
る。
楽譜時間・・・楽譜の中での位置を表す。通常1拍の何
分の1かを基本単位として用いる。例えばこの明細書全
体を通して示しているように、1拍の384分の1を単位
として楽譜時間を表現することが出来、また、MIDI規格
ではF8が1拍の24分の1の楽譜時間を表す単位と解釈さ
れる。
分の1かを基本単位として用いる。例えばこの明細書全
体を通して示しているように、1拍の384分の1を単位
として楽譜時間を表現することが出来、また、MIDI規格
ではF8が1拍の24分の1の楽譜時間を表す単位と解釈さ
れる。
この楽譜時間と物理時間で第5図および第6図の方式
を表現すると、第7図(A),(B)、第8図(A),
(B)のようになる。ここでは楽譜時間をこの明細書全
体を通して示しているように、1拍の384分の1を単位
として表現している。
を表現すると、第7図(A),(B)、第8図(A),
(B)のようになる。ここでは楽譜時間をこの明細書全
体を通して示しているように、1拍の384分の1を単位
として表現している。
第7図(A),(B)においては物理時間のt3におい
て操作者によりタップが少し速められたことを示してい
る。この場合には、次回からテンポが少し速まるわけで
あるが、t3の時点において14(384−370)単位分(クロ
ック分)の楽譜時間の遅れが生じ、以後テンポが変わら
ないとすると、その遅れ(時間的ずれ)がそのまま保存
されていく。一方、第8図(A),(B)では時間t3で
タップが早く打たれるとその時点で3拍目の楽譜時間
(1152楽譜時間位置)とt3とを合わせてしまう。このた
め、この時点で3拍目直前の14クロック分に相当する音
符が一度に発生されてしまう。4回目のタップ位置でも
同様である。
て操作者によりタップが少し速められたことを示してい
る。この場合には、次回からテンポが少し速まるわけで
あるが、t3の時点において14(384−370)単位分(クロ
ック分)の楽譜時間の遅れが生じ、以後テンポが変わら
ないとすると、その遅れ(時間的ずれ)がそのまま保存
されていく。一方、第8図(A),(B)では時間t3で
タップが早く打たれるとその時点で3拍目の楽譜時間
(1152楽譜時間位置)とt3とを合わせてしまう。このた
め、この時点で3拍目直前の14クロック分に相当する音
符が一度に発生されてしまう。4回目のタップ位置でも
同様である。
以上のように、単なるテンポの修正や時間的ずれの無
理矢理な修正のみでは演奏とタッピングとが同期しなか
ったり音符が一度に出力されたりして何れも音楽的な問
題を生じる不都合がある。
理矢理な修正のみでは演奏とタッピングとが同期しなか
ったり音符が一度に出力されたりして何れも音楽的な問
題を生じる不都合がある。
この発明の目的は、タップ時に生じる楽譜時間の時間
差(ずれ)をある関数でもって解消させることでタップ
時に演奏が滑らかに追従できるようにするテンポコント
ローラを提供することにある。
差(ずれ)をある関数でもって解消させることでタップ
時に演奏が滑らかに追従できるようにするテンポコント
ローラを提供することにある。
(d)課題を解決するための手段 請求項(1)にかかる発明では、演奏データの楽音を
順次自動的に出力するために、楽譜上の進行位置を表す
楽譜時間の進行に基づいてテンポクロック情報を出力す
るテンポクロック情報出力手段(第2図(F)n54)を
有するテンポコントローラにおいて、演奏者の操作に基
づいてタップデータを形成するタッピング手段(タップ
SW)と、該タッピング手段によってタップデータが形成
された時点に対応すべき拍位置の楽譜時間である拍位置
楽譜時間を推定する拍位置楽譜時間推定手段(第2図
(A)n1)と、前記タッピング手段によってタップデー
タが形成された時点における進行中の楽譜時間と、前記
拍位置楽譜時間推定手段によって推定された拍位置楽譜
時間とのずれ量である楽譜時間ずれ量を求める楽譜時間
ずれ量検出手段(第2図(A)n4)と、前記楽譜時間ず
れ量が所定の関数に基づいて徐々に減少されるように、
進行中の楽譜時間の更新を行う楽譜時間更新手段(第2
図(A)n6、第2図(D)n32)とを備え、前記楽譜時
間更新手段による楽譜時間の更新に応じて、前記テンポ
クロック情報出力手段がテンポクロック情報を出力する
ことを特徴としている。
順次自動的に出力するために、楽譜上の進行位置を表す
楽譜時間の進行に基づいてテンポクロック情報を出力す
るテンポクロック情報出力手段(第2図(F)n54)を
有するテンポコントローラにおいて、演奏者の操作に基
づいてタップデータを形成するタッピング手段(タップ
SW)と、該タッピング手段によってタップデータが形成
された時点に対応すべき拍位置の楽譜時間である拍位置
楽譜時間を推定する拍位置楽譜時間推定手段(第2図
(A)n1)と、前記タッピング手段によってタップデー
タが形成された時点における進行中の楽譜時間と、前記
拍位置楽譜時間推定手段によって推定された拍位置楽譜
時間とのずれ量である楽譜時間ずれ量を求める楽譜時間
ずれ量検出手段(第2図(A)n4)と、前記楽譜時間ず
れ量が所定の関数に基づいて徐々に減少されるように、
進行中の楽譜時間の更新を行う楽譜時間更新手段(第2
図(A)n6、第2図(D)n32)とを備え、前記楽譜時
間更新手段による楽譜時間の更新に応じて、前記テンポ
クロック情報出力手段がテンポクロック情報を出力する
ことを特徴としている。
また、請求項(2)にかかる発明では、請求項(1)
に記載のテンポコントローラにおいて、前記関数のパラ
メータを設定する手段を備えることを特徴とする。
に記載のテンポコントローラにおいて、前記関数のパラ
メータを設定する手段を備えることを特徴とする。
さらに、請求項(3)にかかる発明では、請求項
(1)に記載のテンポコントローラにおいて、前記関数
のパラメータを設定する手段を備えることを特徴とする
タップ時のタップのテンポと楽譜時間のテンポのずれ量
を求めるテンポずれ量検出手段を備え、前記楽譜時間更
新手段は、前記楽譜時間ずれ量と前記テンポのずれ量を
所定の関数に基づいて徐々に減少させつつ現在の楽譜時
間の更新を行うものであることを特徴とする。
(1)に記載のテンポコントローラにおいて、前記関数
のパラメータを設定する手段を備えることを特徴とする
タップ時のタップのテンポと楽譜時間のテンポのずれ量
を求めるテンポずれ量検出手段を備え、前記楽譜時間更
新手段は、前記楽譜時間ずれ量と前記テンポのずれ量を
所定の関数に基づいて徐々に減少させつつ現在の楽譜時
間の更新を行うものであることを特徴とする。
(e)作用 請求項(1)に係る発明では、タッピング手段によっ
てタップが与えられた時物理時間と楽譜時間とのずれ量
が求められる。そして、この楽譜時間ずれ量は所定の関
数に基づいて徐々に減少するように現在の楽譜時間の更
新を行っていく。テンポクロック情報出力手段は、楽譜
時間の更新毎にテンポクロック情報を外部に出力する。
シーケンサ等のコンピュータはこのテンポクロックに基
づいて演奏データを出力していく。
てタップが与えられた時物理時間と楽譜時間とのずれ量
が求められる。そして、この楽譜時間ずれ量は所定の関
数に基づいて徐々に減少するように現在の楽譜時間の更
新を行っていく。テンポクロック情報出力手段は、楽譜
時間の更新毎にテンポクロック情報を外部に出力する。
シーケンサ等のコンピュータはこのテンポクロックに基
づいて演奏データを出力していく。
請求項(2)に係る発明では、前記関数のパラメータ
が任意に設定できる手段を備えている。このパラメータ
を関数の返す値が急速に収束するように設定すれば追従
性が改善される。反対に関数の返す値の収束性を低くす
れば滑らかさが改善される。操作者はこの追従性と滑ら
かさとのトレードオフを自由な状態に設定できるわけで
ある。
が任意に設定できる手段を備えている。このパラメータ
を関数の返す値が急速に収束するように設定すれば追従
性が改善される。反対に関数の返す値の収束性を低くす
れば滑らかさが改善される。操作者はこの追従性と滑ら
かさとのトレードオフを自由な状態に設定できるわけで
ある。
請求項(3)に係る発明では、更に、タップ時のテン
ポずれ量が求められる。そして、楽譜時間更新手段は前
記楽譜時間ずれ量とともに、このテンポずれ量も所定の
関数に基づいて徐々に減少させつつ現在の楽譜時間の更
新を行う。この請求項(3)の発明ではテンポの変化に
対しても追従するようにしているため追従性が更に改善
される。
ポずれ量が求められる。そして、楽譜時間更新手段は前
記楽譜時間ずれ量とともに、このテンポずれ量も所定の
関数に基づいて徐々に減少させつつ現在の楽譜時間の更
新を行う。この請求項(3)の発明ではテンポの変化に
対しても追従するようにしているため追従性が更に改善
される。
(f)実施例 第1図はこの発明の実施例のブロック図を示してい
る。同図の1はテンポコントローラ、2はシーケンサ、
3は音源、4はサウンドシステムを示している。シーケ
ンサ2内の演奏データメモリには予め演奏データが記憶
されている。テンポコントローラ1はシーケンサ2に対
してMIDIケーブルを介してテンポクロック情報を与え
る。実際には、MIDIケーブル上はクロックではなく、F8
データが流れる。また、F8データの他、スタート時には
FAデータが出力され、ストップ時にはFCデータが出力さ
れる。シーケンサ2はF8データを受けると、演奏データ
メモリのポインタを一つ進める。つまり、シーケンサ2
は、このテンポクロックに基づいて内部の演奏データメ
モリから演奏データを読み出し音源3に送る。音源3は
その演奏データに対応する波形データを音源メモリから
読み出してサウンドシステム4に出力する。
る。同図の1はテンポコントローラ、2はシーケンサ、
3は音源、4はサウンドシステムを示している。シーケ
ンサ2内の演奏データメモリには予め演奏データが記憶
されている。テンポコントローラ1はシーケンサ2に対
してMIDIケーブルを介してテンポクロック情報を与え
る。実際には、MIDIケーブル上はクロックではなく、F8
データが流れる。また、F8データの他、スタート時には
FAデータが出力され、ストップ時にはFCデータが出力さ
れる。シーケンサ2はF8データを受けると、演奏データ
メモリのポインタを一つ進める。つまり、シーケンサ2
は、このテンポクロックに基づいて内部の演奏データメ
モリから演奏データを読み出し音源3に送る。音源3は
その演奏データに対応する波形データを音源メモリから
読み出してサウンドシステム4に出力する。
前記テンポコントローラ1はマイクロコンピュータ1
0、操作パネル11、タイマ12、タップスイッチ13およびM
IDIインタフェース14を備えている。操作パネル11はス
タート/ストップスイッチ、時間ずれ初期解消率(bypa
ssRatio)入力スイッチ、テンポずれ解消量(incTemp
o)入力スイッチを含む。タイマ12は外部割り込みタイ
マとして使用される。タップスイッチ13は通常のオンオ
フスイッチである。このスイッチは操作者がタッピング
し易いように、例えば足の甲の上下動作でオンオフ動作
するものや、手の上下動作でオンオフ動作する構造のも
のが望ましい。MIDIインタフェース14はマイクロコンピ
ュータ10から出力されるテンポクロック情報に基づいて
演奏データメモリカウントアップ用のF8データをMIDIケ
ーブル15に乗せる。なお、テンポクロック情報が0のと
きにはF8データは形成されない。MIDIケーブル15はMIDI
インタフェース14のMIDIOUT端子に接続される。
0、操作パネル11、タイマ12、タップスイッチ13およびM
IDIインタフェース14を備えている。操作パネル11はス
タート/ストップスイッチ、時間ずれ初期解消率(bypa
ssRatio)入力スイッチ、テンポずれ解消量(incTemp
o)入力スイッチを含む。タイマ12は外部割り込みタイ
マとして使用される。タップスイッチ13は通常のオンオ
フスイッチである。このスイッチは操作者がタッピング
し易いように、例えば足の甲の上下動作でオンオフ動作
するものや、手の上下動作でオンオフ動作する構造のも
のが望ましい。MIDIインタフェース14はマイクロコンピ
ュータ10から出力されるテンポクロック情報に基づいて
演奏データメモリカウントアップ用のF8データをMIDIケ
ーブル15に乗せる。なお、テンポクロック情報が0のと
きにはF8データは形成されない。MIDIケーブル15はMIDI
インタフェース14のMIDIOUT端子に接続される。
シーケンサ2はシーケンサ本体20とMIDIインタフェー
ス21とを含む。MIDIケーブル15はMIDIインタフェース21
のMIDIIN端子に接続される。シーケンサ本体20は内部に
設けられている演奏データメモリに図示のような演奏デ
ータを予め記憶している。図のイベントデータ間のF8の
数は楽譜上のイベント間隔に相当する数に等しい。イベ
ントデータは、例えばKON(ノートオン),KCD(音高),
VEL(キーベロシティ:音量)から構成され、ポインタ
がKONを指したときこれらの演奏データを順に音源3に
出力する。
ス21とを含む。MIDIケーブル15はMIDIインタフェース21
のMIDIIN端子に接続される。シーケンサ本体20は内部に
設けられている演奏データメモリに図示のような演奏デ
ータを予め記憶している。図のイベントデータ間のF8の
数は楽譜上のイベント間隔に相当する数に等しい。イベ
ントデータは、例えばKON(ノートオン),KCD(音高),
VEL(キーベロシティ:音量)から構成され、ポインタ
がKONを指したときこれらの演奏データを順に音源3に
出力する。
以上の構成により、テンポコントローラ1から出力さ
れるF8データの周期が短くなればシーケンサ2からは楽
譜時間が短くなるように演奏データが出力される。ま
た、反対に上記周期が長くなれば楽譜時間が長くなるよ
うに演奏データが出力される。
れるF8データの周期が短くなればシーケンサ2からは楽
譜時間が短くなるように演奏データが出力される。ま
た、反対に上記周期が長くなれば楽譜時間が長くなるよ
うに演奏データが出力される。
次に第2図(A)〜(F)を参照して上記テンポコン
トローラ12の動作を説明する。
トローラ12の動作を説明する。
第2図(A)はタップスイッチ13が操作された時の動
作を示している。このフローでは、テンポずれおよび楽
譜時間ずれを求め、楽譜時間ずれの一部を解消する動作
を行う。
作を示している。このフローでは、テンポずれおよび楽
譜時間ずれを求め、楽譜時間ずれの一部を解消する動作
を行う。
まず、n1においてタップ時における操作者の意図する
強拍点の楽譜時間の推定を行う。この位置はGuessPosで
表される。第3図においてタップ時をt3とするとこのGu
essPosは楽譜時間で1152の位置である。GuessPosは、 GuessPos=(CurPos/Beat)*Beat で求められる。ここでBeatは1拍の楽譜時間、即ち384
であり、CurPosは現在の楽譜時間位置を表す。例えば第
3図で現在の物理時間がt3とすると、CurPosは1056であ
る。また、(CurPos/Beat)は四捨五入値を返す。した
がって例えば、現在の物理時間がt3とした場合、CurPos
が960〜1152と間にある場合にはGuessPosは1152とな
り、CurPosが768〜959の間にある場合にはGuessPosは76
8となる。
強拍点の楽譜時間の推定を行う。この位置はGuessPosで
表される。第3図においてタップ時をt3とするとこのGu
essPosは楽譜時間で1152の位置である。GuessPosは、 GuessPos=(CurPos/Beat)*Beat で求められる。ここでBeatは1拍の楽譜時間、即ち384
であり、CurPosは現在の楽譜時間位置を表す。例えば第
3図で現在の物理時間がt3とすると、CurPosは1056であ
る。また、(CurPos/Beat)は四捨五入値を返す。した
がって例えば、現在の物理時間がt3とした場合、CurPos
が960〜1152と間にある場合にはGuessPosは1152とな
り、CurPosが768〜959の間にある場合にはGuessPosは76
8となる。
本実施例では楽譜時間のずれの解消とともに、テンポ
ずれの解消も行うようにしているため、次のn2ではテン
ポの計算を行う。
ずれの解消も行うようにしているため、次のn2ではテン
ポの計算を行う。
テンポの計算は、 newTempo =(GuessPos−PrevPos)/(CurTime−PrevTime) で求められる。ここで、newTempoは以後実行すべき演奏
テンポであり、PrevPosは前回の楽譜時間位置を示し、C
urTimeは現在の物理時間を示し、PrevTimeは前回の物理
時間を示している。つまり、newTempoは第3図から明ら
かなように直線の傾きを表していることに他ならない。
テンポであり、PrevPosは前回の楽譜時間位置を示し、C
urTimeは現在の物理時間を示し、PrevTimeは前回の物理
時間を示している。つまり、newTempoは第3図から明ら
かなように直線の傾きを表していることに他ならない。
続いてテンポずれの計算を行う(n3)。テンポずれ
は、 tempoDiff=newTempo−CurTempo で表される。
は、 tempoDiff=newTempo−CurTempo で表される。
また、続いてn4で楽譜時間のずれを求める。楽譜時間
のずれ量PosDiffは、 PosDiff=CurPos−GuessPos で求められる。第3図に示す例ではPosDiffは−96であ
る。次に、データの更新を行う。つまり、GuessPosをPr
evPosとして更新し、CurTimeをPrevTimeとして更新す
る。
のずれ量PosDiffは、 PosDiff=CurPos−GuessPos で求められる。第3図に示す例ではPosDiffは−96であ
る。次に、データの更新を行う。つまり、GuessPosをPr
evPosとして更新し、CurTimeをPrevTimeとして更新す
る。
以上の処理を行った後n6で時間ずれの初期解消モジュ
ールを実行する。
ールを実行する。
第2図(B)は時間ずれ初期解消モジュールのフロー
チャートを示している。ここではタップ時に生じた時間
ずれのうち直ちに解消するずれ量を求める。この時に必
要な係数は時間ずれ解消率bypassRatioである。このbyp
assRatioは第2図(C)に示すように予め操作パネル11
から入力されている。bypassRatioの大きさは0〜1の
範囲に設定される。時間ずれ解消モジュールのn10で
は、時間ずれをbypassRatioの分だけ解消することによ
ってCurPosを次のように変更する。
チャートを示している。ここではタップ時に生じた時間
ずれのうち直ちに解消するずれ量を求める。この時に必
要な係数は時間ずれ解消率bypassRatioである。このbyp
assRatioは第2図(C)に示すように予め操作パネル11
から入力されている。bypassRatioの大きさは0〜1の
範囲に設定される。時間ずれ解消モジュールのn10で
は、時間ずれをbypassRatioの分だけ解消することによ
ってCurPosを次のように変更する。
CurPos+=PosDiff*bypassRatio なお、上記の式はC言語の記述手法によって示してい
る。数学的に表すと次のようになる。
る。数学的に表すと次のようになる。
CurPos=CurPos+PosDiff*bypassRatio 第4図(A)では上記の式によってタップ時にCurPos
がp1からp2に移動していることが分かる。
がp1からp2に移動していることが分かる。
次にn11において時間ずれの更新を行う。即ち、 PosDiff*=(1−bypassRatio) で更新できる。
第2図(D)はMmsec毎にタイマ割り込みで実行され
るフローチャートである。このフローではタップスイッ
チがオンしてから時間ずれとテンポずれを少しずつ解消
していく動作を行う。
るフローチャートである。このフローではタップスイッ
チがオンしてから時間ずれとテンポずれを少しずつ解消
していく動作を行う。
n30でtempoDiffが0かどうかの判定を行い、tempoDif
fが0であれば、つまりテンポずれがない場合にはn32へ
進みここで時間ずれの解消ステップを実行する。また、
tempoDiffが0でなければn31でテンポずれの解消ステッ
プを実行し、続いて時間ずれ解消のステップを実行す
る。n32の時間ずれ解消ステップは次の式によって行わ
れる。
fが0であれば、つまりテンポずれがない場合にはn32へ
進みここで時間ずれの解消ステップを実行する。また、
tempoDiffが0でなければn31でテンポずれの解消ステッ
プを実行し、続いて時間ずれ解消のステップを実行す
る。n32の時間ずれ解消ステップは次の式によって行わ
れる。
CurPos+=PosDiff*0.06; PosDiff*=0.94 ここで、0.06はタップ時以降の時間ずれ解消率であ
り、予め定められている。この式によって、第4図に示
すように1回目の実行ではp2からp3にCurPosが移動す
る。そして、PosDiffも更新することにより次回の割り
込みに備える。
り、予め定められている。この式によって、第4図に示
すように1回目の実行ではp2からp3にCurPosが移動す
る。そして、PosDiffも更新することにより次回の割り
込みに備える。
またn31のテンポずれ解消ステップでは、次の式が実
行される。
行される。
CurTempo+=incTempo; tempoDiff−=incTempo ここでincTempoはテンポずれの1回当たりの解消量を
示すもので、第2図(E)に示すように予め操作パネル
11によって入力されている。
示すもので、第2図(E)に示すように予め操作パネル
11によって入力されている。
第4図(B)は上記テンポずれ改良ステップ(n31)
によって推移していくCurTempoを示している。
によって推移していくCurTempoを示している。
第4図(A),(B)に示すように、楽譜時間のずれ
量はタップ間で指数関数的に徐々に減少していき、テン
ポずれ量は一次関数で徐々に減少していく。
量はタップ間で指数関数的に徐々に減少していき、テン
ポずれ量は一次関数で徐々に減少していく。
第2図(F)はNmsec毎にタイマ割り込みによって実
行されるフローチャートである。このフローでは、MIDI
ケーブルに対して演奏データメモリのカウントアップの
ためのMIDIデータF8を出力する。
行されるフローチャートである。このフローでは、MIDI
ケーブルに対して演奏データメモリのカウントアップの
ためのMIDIデータF8を出力する。
n51,n52ではそれぞれ物理時間の維持と楽譜時間の維
持を行う。続いてn53で、現在までのMIDIClock数を求め
る。ここで、MIDIClock数とはMIDI規格で定められる分
解能(1拍当たりのカウント数が24)でのカウント数で
ある。現在までのMIDIClock数CurF8Countは、次式で求
められる。
持を行う。続いてn53で、現在までのMIDIClock数を求め
る。ここで、MIDIClock数とはMIDI規格で定められる分
解能(1拍当たりのカウント数が24)でのカウント数で
ある。現在までのMIDIClock数CurF8Countは、次式で求
められる。
CurF8Count=CurPos/F8Time ここでF8TimeはMIDIClock1個当たりの楽譜時間を表
す。
す。
続いてn54でMIDIケーブルに対して出力するMIDIClock
の数即ちF8データの数を求める。これは、 (CurF8Count−PrevF8Count) で求められる。ここで、PrevF8Countは前回までのMIDIC
lock数を表す。なお、この割り込みフローが例えば5mse
c毎に行われるとした場合、n54で出力されるMIDIClock
(F8データ)の数は0または1であり、しかも通常の楽
譜の演奏では0がかなり多く、たまに1になるものと考
えられる。
の数即ちF8データの数を求める。これは、 (CurF8Count−PrevF8Count) で求められる。ここで、PrevF8Countは前回までのMIDIC
lock数を表す。なお、この割り込みフローが例えば5mse
c毎に行われるとした場合、n54で出力されるMIDIClock
(F8データ)の数は0または1であり、しかも通常の楽
譜の演奏では0がかなり多く、たまに1になるものと考
えられる。
次にn55において、 PrevF8Count=CurF8Count を実行して次回の処理のための準備を行ってリターンす
る。
る。
以上の動作により、時間ずれ初期解消率(bypassRati
o)の値を大きく設定すればタッピングに対する自動演
奏出力の追従性が良くなり、また反対にその値を低く設
定すれば滑らかさが良くなる。操作者はこの滑らかさと
追従性のトレードオフを任意に選択することができる。
また、上記実施例ではテンポずれの解消も行うようにし
ているために、上記の追従性がより改善されることにな
る。
o)の値を大きく設定すればタッピングに対する自動演
奏出力の追従性が良くなり、また反対にその値を低く設
定すれば滑らかさが良くなる。操作者はこの滑らかさと
追従性のトレードオフを任意に選択することができる。
また、上記実施例ではテンポずれの解消も行うようにし
ているために、上記の追従性がより改善されることにな
る。
なお、第4図(A)に示すように楽譜時間のずれ量は
指数関数的に解消されるが、勿論一次関数で解消するよ
うにすることも可能である。同様にテンポずれ量も任意
の関数で減少させていくことができる。また、第2図
(D)のn32に示すように時間ずれ解消率を0.06の一定
値としたが、この値も操作者が任意に設定可能にでき
る。
指数関数的に解消されるが、勿論一次関数で解消するよ
うにすることも可能である。同様にテンポずれ量も任意
の関数で減少させていくことができる。また、第2図
(D)のn32に示すように時間ずれ解消率を0.06の一定
値としたが、この値も操作者が任意に設定可能にでき
る。
(g)発明の効果 この発明によれば、タッピングを行っている時の自動
演奏の出力は操作者のタッピングに対して滑らかに追従
するようになる。また、楽譜時間ずれ量の減少率を定め
る関数のパラメータは操作者によって決めることができ
るために、操作者は上記の滑らかさを一層向上させた
り、または追従性を向上させたりする等、曲に合わせて
追従性と滑らかな時間変化の特性を任意に設定すること
ができる。例えば、曲の追従性が欲しい場合にはタップ
時に直ぐにずれ量を解消する初期解消率を大きくし、滑
らかさが欲しい時には反対に初期解消率を小さくする。
これによって曲毎にタップに追従する演奏出力の最適な
時間変化を実現することができる。
演奏の出力は操作者のタッピングに対して滑らかに追従
するようになる。また、楽譜時間ずれ量の減少率を定め
る関数のパラメータは操作者によって決めることができ
るために、操作者は上記の滑らかさを一層向上させた
り、または追従性を向上させたりする等、曲に合わせて
追従性と滑らかな時間変化の特性を任意に設定すること
ができる。例えば、曲の追従性が欲しい場合にはタップ
時に直ぐにずれ量を解消する初期解消率を大きくし、滑
らかさが欲しい時には反対に初期解消率を小さくする。
これによって曲毎にタップに追従する演奏出力の最適な
時間変化を実現することができる。
第1図はこの発明の実施例のテンポコントローラにシー
ケンサと音源およびサウンドシステムを接続した時の構
成図、第2図(A)〜(F)はテンポコントローラの動
作を示すフローチャート、第3図は上記テンポコントロ
ーラの動作を説明するための図、第4図(A),(B)
は楽譜時間ずれ量とテンポずれ量の変化を説明するため
の図、第5図〜第8図は従来考えることのできたテンポ
コントローラの原理を説明するため図である。 1……テンポコントローラ、2……シーケンサ、3……
音源、4……サウンドシステム。
ケンサと音源およびサウンドシステムを接続した時の構
成図、第2図(A)〜(F)はテンポコントローラの動
作を示すフローチャート、第3図は上記テンポコントロ
ーラの動作を説明するための図、第4図(A),(B)
は楽譜時間ずれ量とテンポずれ量の変化を説明するため
の図、第5図〜第8図は従来考えることのできたテンポ
コントローラの原理を説明するため図である。 1……テンポコントローラ、2……シーケンサ、3……
音源、4……サウンドシステム。
Claims (3)
- 【請求項1】演奏データの楽音を順次自動的に出力する
ために、楽譜上の進行位置を表す楽譜時間の進行に基づ
いてテンポクロック情報を出力するテンポクロック情報
出力手段を有するテンポコントローラにおいて、 演奏者の操作に基づいてタップデータを形成するタッピ
ング手段と、 該タッピング手段によってタップデータが形成された時
点に対応すべき拍位置の楽譜時間である拍位置楽譜時間
を推定する拍位置楽譜時間推定手段と、 前記タッピング手段によってタップデータが形成された
時点における進行中の楽譜時間と、前記拍位置楽譜時間
推定手段によって推定された拍位置楽譜時間とのずれ量
である楽譜時間ずれ量を求める楽譜時間ずれ量検出手段
と、 前記楽譜時間ずれ量が所定の関数に基づいて徐々に減少
されるように、進行中の楽譜時間の更新を行う楽譜時間
更新手段と を備え、前記楽譜時間更新手段による楽譜時間の更新に
応じて、前記テンポクロック情報出力手段がテンポクロ
ック情報を出力することを特徴とするテンポコントロー
ラ。 - 【請求項2】請求項(1)において、前記関数のパラメ
ータを設定する手段を備えることを特徴とするテンポコ
ントローラ。 - 【請求項3】請求項(1)において、 タップ時のタップのテンポと楽譜時間の進行のテンポの
ずれ量であるテンポずれ量を求めるテンポずれ量検出手
段を備え、 前記楽譜時間更新手段は、前記楽譜時間ずれ量と前記テ
ンポずれ量を所定の関数に基づいて徐々に減少させつつ
現在の楽譜時間の更新を行うものであることを特徴とす
るテンポコントローラ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2255742A JP2653232B2 (ja) | 1990-09-25 | 1990-09-25 | テンポコントローラ |
DE69129522T DE69129522T2 (de) | 1990-09-25 | 1991-09-24 | Taktsteuerung zum automatischen Spielen von Musik |
US07/765,041 US5227574A (en) | 1990-09-25 | 1991-09-24 | Tempo controller for controlling an automatic play tempo in response to a tap operation |
EP91116253A EP0477869B1 (en) | 1990-09-25 | 1991-09-24 | Tempo controller for automatic music play |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2255742A JP2653232B2 (ja) | 1990-09-25 | 1990-09-25 | テンポコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04133095A JPH04133095A (ja) | 1992-05-07 |
JP2653232B2 true JP2653232B2 (ja) | 1997-09-17 |
Family
ID=17283003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2255742A Expired - Fee Related JP2653232B2 (ja) | 1990-09-25 | 1990-09-25 | テンポコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2653232B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020217324A1 (ja) * | 2019-04-23 | 2020-10-29 | AlphaTheta株式会社 | 電子楽器および楽曲フレーズ生成プログラム |
EP3869495B1 (en) * | 2020-02-20 | 2022-09-14 | Antescofo | Improved synchronization of a pre-recorded music accompaniment on a user's music playing |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5988795A (ja) * | 1982-11-15 | 1984-05-22 | ヤマハ株式会社 | 自動演奏機のテンポ制御装置 |
JPS63187199U (ja) * | 1987-05-15 | 1988-11-30 | ||
JPH0271894U (ja) * | 1988-11-18 | 1990-05-31 |
-
1990
- 1990-09-25 JP JP2255742A patent/JP2653232B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH04133095A (ja) | 1992-05-07 |
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 | |
JP2653232B2 (ja) | テンポコントローラ | |
JP2780475B2 (ja) | テンポコントローラ | |
JP2630054B2 (ja) | マルチトラックシーケンサ | |
JPH10198358A (ja) | テンポ制御装置 | |
JP2940123B2 (ja) | テンポコントローラ | |
JP2780476B2 (ja) | テンポコントローラ | |
JP2523779B2 (ja) | 自動演奏装置 | |
JP4412859B2 (ja) | 外部同期信号による同期演奏機能を備えた電子楽器 | |
JP3304889B2 (ja) | 電子楽器 | |
JPH10319958A (ja) | 自動演奏装置、自動演奏データ処理方法及び電子的情報記憶媒体 | |
JP2957204B2 (ja) | 電子楽器 | |
JP2723515B2 (ja) | 自動演奏装置 | |
JPH04156592A (ja) | テンポコントローラ | |
JP2569829B2 (ja) | 電子楽器 | |
JP2626146B2 (ja) | テンポコントローラ | |
JP2624104B2 (ja) | 自動演奏装置の演奏進行制御装置 | |
JPH0863168A (ja) | テンポ設定装置 | |
JPH04151694A (ja) | テンポコントローラ | |
JPH04133097A (ja) | テンポコントローラ | |
JPH1138972A (ja) | 音楽制御装置および記憶媒体 | |
JPH04186297A (ja) | テンポコントローラ | |
JP2000020060A (ja) | 電子楽器 | |
JPH03120589A (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 (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090523 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |