JPH04156594A - テンポコントローラ - Google Patents
テンポコントローラInfo
- Publication number
- JPH04156594A JPH04156594A JP2282852A JP28285290A JPH04156594A JP H04156594 A JPH04156594 A JP H04156594A JP 2282852 A JP2282852 A JP 2282852A JP 28285290 A JP28285290 A JP 28285290A JP H04156594 A JPH04156594 A JP H04156594A
- Authority
- JP
- Japan
- Prior art keywords
- time
- tempo
- shift
- tapping
- notes
- 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
Links
- 238000010079 rubber tapping Methods 0.000 claims abstract description 32
- 238000001514 detection method Methods 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 230000008030 elimination Effects 0.000 abstract description 12
- 238000003379 elimination reaction Methods 0.000 abstract description 12
- 230000014509 gene expression Effects 0.000 abstract description 6
- 230000033764 rhythmic process Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000000034 method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(al産業上の利用分野
この発明は、シーケンサやリズムマシン等に対して実時
間で制御されたテンポクロックを与えることのできるテ
ンポコントローラに関する。
間で制御されたテンポクロックを与えることのできるテ
ンポコントローラに関する。
(b)従来の技術
音楽の最も重要な基本要素の一つに演奏のテンポという
ものがある。テンポは一つの曲の演奏の中でも様々に変
化し曲の表情作りの中で大きな役割を果たしている。そ
のテンポ変化の中には、リタルダンドやアンチニレラン
ドのように大局的なテンポ変化や小節内の細かなテンポ
の揺らぎ等様々なものが含まれる。電子楽器で、特にそ
の自動演奏でこのテンポの微妙な変化を与えるように出
来るとより音楽的な表現が可能になる。従来は、シーケ
ンサ等で自動演奏を行う場合、このテンポの表現は予め
データとして打ち込んでおくことによって実現されてい
る。
ものがある。テンポは一つの曲の演奏の中でも様々に変
化し曲の表情作りの中で大きな役割を果たしている。そ
のテンポ変化の中には、リタルダンドやアンチニレラン
ドのように大局的なテンポ変化や小節内の細かなテンポ
の揺らぎ等様々なものが含まれる。電子楽器で、特にそ
の自動演奏でこのテンポの微妙な変化を与えるように出
来るとより音楽的な表現が可能になる。従来は、シーケ
ンサ等で自動演奏を行う場合、このテンポの表現は予め
データとして打ち込んでおくことによって実現されてい
る。
(C)発明が解決しようとする課題
ところが、従来のシーケンサ等では実時間での柔軟なテ
ンポ変更を行うことができない。このことは、シーケン
サは人間との演奏の同期に関しては無能に近く、人間の
演奏者が機械の方に合わせてやらなければならないこと
を意味する。そこで、この問題を解決するためにはシー
ケンサ内で形成されているテンポクロック情報を外部か
ら与え、しかもこのテンポクロック情報を実時間で制御
する方法が考えられる。テンポを表現する手段としては
最も基本的なものとしてタッピングがある。即ち、演奏
者はタフピングを行うことにより、そのタッピングに基
づいてテンポクロックを発生するようにする。そこで、
タッピングで与えられるテンポに対しコンピュータの演
奏をどのように制御するかを考えてみる。
ンポ変更を行うことができない。このことは、シーケン
サは人間との演奏の同期に関しては無能に近く、人間の
演奏者が機械の方に合わせてやらなければならないこと
を意味する。そこで、この問題を解決するためにはシー
ケンサ内で形成されているテンポクロック情報を外部か
ら与え、しかもこのテンポクロック情報を実時間で制御
する方法が考えられる。テンポを表現する手段としては
最も基本的なものとしてタッピングがある。即ち、演奏
者はタフピングを行うことにより、そのタッピングに基
づいてテンポクロックを発生するようにする。そこで、
タッピングで与えられるテンポに対しコンピュータの演
奏をどのように制御するかを考えてみる。
まず、コンピュータ(シーケンサ等の自動演奏を行う電
子楽器)に対して夕・タブでテンポを次々に与えながら
演奏を進めていくとする。第6図においてタップ操作者
(または演奏者)がへの位置でまず第1回目のタップを
したとする。この時にはコンピュータの楽譜時間とタッ
プを行った時の物理時間とがうまく同期している。仮に
その時のテンポのまま演奏が続くと、次の強拍点(即ち
次にタップされるべき位置)はBの所である。この時操
作者がテンポを速めるために少し早い目にB′の所でタ
ップしたとする。ここで操作者とコンピュータとの間に
楽譜時間としてのずれが生しる(この場合は4分の1拍
)。勿論、この時にテンポの差も住しる。そこで、コン
ピュータの演奏を操作者の意図する演奏と同期させるた
めにテンポを合わせることが必要になってくる。この例
だとテンポを4/3倍に上げることになる。しかしそれ
だけだとコンピュータの次の強拍点はCになり、一方操
作者のタップはC′であるために時間的ずれ(4分の1
拍)が保存されてしまい完全な同期にはならない。そこ
で、B′のタップの時に生じた時間的ずれは何等かの形
で解消してやることが必要になる。一番簡単な方法はB
′がきた時点でまだ4分の3拍の位置にあるコンピュー
タの楽譜時間を無理やり1拍の位置に合わせてしまうこ
とである。同様にC′の位置でもCで示される楽譜時間
を無理やりC′の位置に合わせてしまう。
子楽器)に対して夕・タブでテンポを次々に与えながら
演奏を進めていくとする。第6図においてタップ操作者
(または演奏者)がへの位置でまず第1回目のタップを
したとする。この時にはコンピュータの楽譜時間とタッ
プを行った時の物理時間とがうまく同期している。仮に
その時のテンポのまま演奏が続くと、次の強拍点(即ち
次にタップされるべき位置)はBの所である。この時操
作者がテンポを速めるために少し早い目にB′の所でタ
ップしたとする。ここで操作者とコンピュータとの間に
楽譜時間としてのずれが生しる(この場合は4分の1拍
)。勿論、この時にテンポの差も住しる。そこで、コン
ピュータの演奏を操作者の意図する演奏と同期させるた
めにテンポを合わせることが必要になってくる。この例
だとテンポを4/3倍に上げることになる。しかしそれ
だけだとコンピュータの次の強拍点はCになり、一方操
作者のタップはC′であるために時間的ずれ(4分の1
拍)が保存されてしまい完全な同期にはならない。そこ
で、B′のタップの時に生じた時間的ずれは何等かの形
で解消してやることが必要になる。一番簡単な方法はB
′がきた時点でまだ4分の3拍の位置にあるコンピュー
タの楽譜時間を無理やり1拍の位置に合わせてしまうこ
とである。同様にC′の位置でもCで示される楽譜時間
を無理やりC′の位置に合わせてしまう。
第7図はこの方法を示している。これによると操作者と
コンピュータの演奏とを1拍毎に完全に同期させること
ができる。ところがこれには一つ問題がある。つまり、
B′でタップがされた時コンピュータはまだ4分の3拍
の位置にいるために急に1拍に移動するとその4分の3
〜1拍間の音符がその瞬間に鳴ってしまう。勿論その間
に音符がなければ実害はないが、例えば4連音符があっ
た場合それらの音符は1度になってしまい音楽的に問題
となる。
コンピュータの演奏とを1拍毎に完全に同期させること
ができる。ところがこれには一つ問題がある。つまり、
B′でタップがされた時コンピュータはまだ4分の3拍
の位置にいるために急に1拍に移動するとその4分の3
〜1拍間の音符がその瞬間に鳴ってしまう。勿論その間
に音符がなければ実害はないが、例えば4連音符があっ
た場合それらの音符は1度になってしまい音楽的に問題
となる。
なお、ここで物理時間と楽譜時間の定義を行うと次のよ
うになる。
うになる。
物理時間・・・通常の時間である。コンピュータのタイ
マによって生成される例えばミリ秒単位の時間を意味す
る。
マによって生成される例えばミリ秒単位の時間を意味す
る。
楽譜時間・・・楽譜の中での位置を表す。通常1拍の何
分の1かを基本単位として用いる。例えばこの明細書全
体を通して示しているように、1拍の24分の1の楽譜
時間を表す単位と解釈される。
分の1かを基本単位として用いる。例えばこの明細書全
体を通して示しているように、1拍の24分の1の楽譜
時間を表す単位と解釈される。
この楽譜時間と物理時間で第6図および第7図の方式を
表現すると、第8図(A)、 (B)、第9図(A)
、 (B)のようになる。ここでは楽譜時間をこの明
細書全体を通して示しているように、1拍の384分の
1を単位として表現している第8図(A)、 (B)
においては物理時間のt3において操作者によりタップ
が少し速められたことを示している。この場合には、次
回からテンポが少し速まるわけであるが、t3の時点に
おいて14 (384−370)単位分(クロック分
)の楽譜時間の遅れが生じ、以後テンポが変わらないと
すると、その遅れ(時間的ずれ)がそのまま保存されて
いく。一方、第9図(A)、 (B)では時間t3で
タップが早く打たれるとその時点で3拍目の楽譜時間(
1)52楽譜時間位置)とt3とを合わせてしまう。こ
のため、この時点で3拍目直前の14クロック分に相当
する音符が一度に発生されてしまう。4回目のタップ位
置でも同様である。
表現すると、第8図(A)、 (B)、第9図(A)
、 (B)のようになる。ここでは楽譜時間をこの明
細書全体を通して示しているように、1拍の384分の
1を単位として表現している第8図(A)、 (B)
においては物理時間のt3において操作者によりタップ
が少し速められたことを示している。この場合には、次
回からテンポが少し速まるわけであるが、t3の時点に
おいて14 (384−370)単位分(クロック分
)の楽譜時間の遅れが生じ、以後テンポが変わらないと
すると、その遅れ(時間的ずれ)がそのまま保存されて
いく。一方、第9図(A)、 (B)では時間t3で
タップが早く打たれるとその時点で3拍目の楽譜時間(
1)52楽譜時間位置)とt3とを合わせてしまう。こ
のため、この時点で3拍目直前の14クロック分に相当
する音符が一度に発生されてしまう。4回目のタップ位
置でも同様である。
以上のように、単なるテンポの修正や時間的ずれの無理
矢理な修正のみでは演奏とタッピングとが同期しなかっ
たり音符が一度に出力されたりして何れも音楽的な問題
を生じる不都合がある。
矢理な修正のみでは演奏とタッピングとが同期しなかっ
たり音符が一度に出力されたりして何れも音楽的な問題
を生じる不都合がある。
この発明の目的は、タップ時に生じる楽譜時間の時間差
(ずれ)を曲の情報を用いて解消させることでタップ時
に演奏が滑らかに追従できるようにするテンポコントー
ラを提供することにある。
(ずれ)を曲の情報を用いて解消させることでタップ時
に演奏が滑らかに追従できるようにするテンポコントー
ラを提供することにある。
(d1課題を解決するための手段
請求項(1)に係る発明は、タップデータを形成するタ
ッピング手段と、 タップ時の楽譜時間ずれ量を求める楽譜時間ずれ量検出
手段と、 タップ時の楽譜時間位置付近における音符の粗密の程度
を検出する手段と、 前記楽譜時間ずれ量を前記音符の粗密の程度に基づいて
減少させつつ現在の楽譜時間の更新を行う楽譜時間更新
手段と、 楽譜時間の更新に応してテンポクロック情報を出力する
テンポクロック情報出力手段と、を備えてなることを特
徴としている。
ッピング手段と、 タップ時の楽譜時間ずれ量を求める楽譜時間ずれ量検出
手段と、 タップ時の楽譜時間位置付近における音符の粗密の程度
を検出する手段と、 前記楽譜時間ずれ量を前記音符の粗密の程度に基づいて
減少させつつ現在の楽譜時間の更新を行う楽譜時間更新
手段と、 楽譜時間の更新に応してテンポクロック情報を出力する
テンポクロック情報出力手段と、を備えてなることを特
徴としている。
また、請求項筒に係る発明は、タップ時のテンポずれ量
を求めるテンポずれ量検出手段を備え、前記楽譜時間更
新手段は、前記楽譜時間ずれ量と前記テンポずれ量を前
記音符の粗密の程度に基づいて減少させつつ現在の楽譜
時間の更新を行うことを特徴としている。
を求めるテンポずれ量検出手段を備え、前記楽譜時間更
新手段は、前記楽譜時間ずれ量と前記テンポずれ量を前
記音符の粗密の程度に基づいて減少させつつ現在の楽譜
時間の更新を行うことを特徴としている。
(e)作用
請求項(1)に係る発明では、タッピング手段によって
タップが与えられた時物理時間と楽譜時間とのずれ量が
求められる。そして、この楽譜時間ずれ量は、タップ時
の楽譜時間位置付近における音符の粗密の程度に基づい
て減少するように現在の楽譜時間の更新を行っていく。
タップが与えられた時物理時間と楽譜時間とのずれ量が
求められる。そして、この楽譜時間ずれ量は、タップ時
の楽譜時間位置付近における音符の粗密の程度に基づい
て減少するように現在の楽譜時間の更新を行っていく。
この楽譜時間ずれ量の減少は、予め決められた関数や演
奏者によって指定された値に基づいて行われるものでは
なく、タップ時における音符の粗密の程度に基づくため
に、実際に演奏されている曲および演奏箇所の演奏状態
に応じた追従性が得られる。テンポクロック情報出力手
段は、楽譜時間の更新毎にテンポクロック情報を外部に
出力する。シーケンサ等のコンピュータはこのテンポク
ロックに基づいて演奏データを出力していく。
奏者によって指定された値に基づいて行われるものでは
なく、タップ時における音符の粗密の程度に基づくため
に、実際に演奏されている曲および演奏箇所の演奏状態
に応じた追従性が得られる。テンポクロック情報出力手
段は、楽譜時間の更新毎にテンポクロック情報を外部に
出力する。シーケンサ等のコンピュータはこのテンポク
ロックに基づいて演奏データを出力していく。
請求項(2)に係る発明では、更に、タップ時のテンポ
ずれ量が求められる。そして、楽譜時間更新手段は前記
楽譜時間ずれ量とともに、このテンポずれ量も楽譜時間
位置付近における音符の粗密の程度に基づいて減少させ
つつ現在の楽譜時間の更新を行う。この請求項(2)の
発明ではテンポの変化に対しても追従するようにしてい
るため追従性が更に改善されるとともに、曲に応じた追
従性もより望ましいものとなる。。
ずれ量が求められる。そして、楽譜時間更新手段は前記
楽譜時間ずれ量とともに、このテンポずれ量も楽譜時間
位置付近における音符の粗密の程度に基づいて減少させ
つつ現在の楽譜時間の更新を行う。この請求項(2)の
発明ではテンポの変化に対しても追従するようにしてい
るため追従性が更に改善されるとともに、曲に応じた追
従性もより望ましいものとなる。。
(f)実施例
第1図はこの発明の実施例のブロック図を示している。
同図の1はテンポコントローラ、2はシーケンサ、3は
音源、4はサウンドシステムを示している。シーケンサ
2内の演奏データメモリには予め演奏データが記憶され
ている。テンポコントローラlはシーケンサ2に対して
tlDIケーブルを介してテンポクロック情報を与える
。実際には、MIDIケーブル上はクロックではなく、
F8データが流れる。また、F8データの他、スタート
時にはFAデータが出力され、ストップ時にはFCデー
タが出力される。シーケンサ2はF8データを受けると
、演奏データメモリのポインタを一つ進める。つまり、
シーケンサ2は、このテンポクロフタに基づいて内部の
演奏データメモーリから演奏データを読み出し音源3に
送る。音源3はその演奏データに対応する波形データを
音源メモリから読み出してサウンドシステム4に出力〜
する。
音源、4はサウンドシステムを示している。シーケンサ
2内の演奏データメモリには予め演奏データが記憶され
ている。テンポコントローラlはシーケンサ2に対して
tlDIケーブルを介してテンポクロック情報を与える
。実際には、MIDIケーブル上はクロックではなく、
F8データが流れる。また、F8データの他、スタート
時にはFAデータが出力され、ストップ時にはFCデー
タが出力される。シーケンサ2はF8データを受けると
、演奏データメモリのポインタを一つ進める。つまり、
シーケンサ2は、このテンポクロフタに基づいて内部の
演奏データメモーリから演奏データを読み出し音源3に
送る。音源3はその演奏データに対応する波形データを
音源メモリから読み出してサウンドシステム4に出力〜
する。
前記テンポコントローラ1はマイクロコンビュ−タ10
、操作パネル1)、タイマ12、タップスイッチ13お
よびMIDIインタフェース14を備えている。操作パ
ネル1)はスタート/ストップスイッチ、時間ずれ初期
解消率(bypassRatio)入力スイッチ、テン
ポずれ解消量(i n cTemp o)入力スイッチ
を含む。タイマ12は外部割り込みタイマとして使用さ
れる。
、操作パネル1)、タイマ12、タップスイッチ13お
よびMIDIインタフェース14を備えている。操作パ
ネル1)はスタート/ストップスイッチ、時間ずれ初期
解消率(bypassRatio)入力スイッチ、テン
ポずれ解消量(i n cTemp o)入力スイッチ
を含む。タイマ12は外部割り込みタイマとして使用さ
れる。
タップスイッチ13は通常のオンオフスイッチである。
このスイッチは操作者がタッピングし易いように、例え
ば足の甲の上下動作でオンオフ動作するものや、手の上
下動作でオンオフ動作する構造のものが望ましい。MI
DIインタフェース14はマイクロコンピュータ10か
ら出力されるテンポクロック情報に基づいて演奏データ
メモリカウントアツプ用のF8データをMIDIケーブ
ル15に乗せる。なお、テンポクロック情報が00とき
にはF8データは形成されない。MIDIケーブル15
はMIDIインタフェース14のMIDIOUT端子に
接続される。
ば足の甲の上下動作でオンオフ動作するものや、手の上
下動作でオンオフ動作する構造のものが望ましい。MI
DIインタフェース14はマイクロコンピュータ10か
ら出力されるテンポクロック情報に基づいて演奏データ
メモリカウントアツプ用のF8データをMIDIケーブ
ル15に乗せる。なお、テンポクロック情報が00とき
にはF8データは形成されない。MIDIケーブル15
はMIDIインタフェース14のMIDIOUT端子に
接続される。
シーケンサ2はシーケンサ本体20とMIDIインタフ
ェース21とを含む。MIDIケーブル15はM I
D Iインタフェース210MIDI IN端子に接続
される。シーケンサ本体20は内部に設けられている演
奏データメモリに図示のような演奏データを予め記憶し
ている。図のイベントデータ間のF8の数は楽譜上のイ
ベント間隔に相当する数に等しい。イベントデータは、
例えばKON(ノートオン)、KCD(音高)、VEL
(キーへロシティ:音量)から構成され、ポインタが
KONを指したときこれらの演奏データを順に音B3に
出力する。
ェース21とを含む。MIDIケーブル15はM I
D Iインタフェース210MIDI IN端子に接続
される。シーケンサ本体20は内部に設けられている演
奏データメモリに図示のような演奏データを予め記憶し
ている。図のイベントデータ間のF8の数は楽譜上のイ
ベント間隔に相当する数に等しい。イベントデータは、
例えばKON(ノートオン)、KCD(音高)、VEL
(キーへロシティ:音量)から構成され、ポインタが
KONを指したときこれらの演奏データを順に音B3に
出力する。
以上の構成により、テンポコントローラ1から出力され
るF8データの周期が短くなればシーケンサ2からは楽
譜時間が短くなるように演奏データが出力される。また
、反対に上記周期が長くなれば楽譜時間が長くなるよう
に演奏データが出力される。
るF8データの周期が短くなればシーケンサ2からは楽
譜時間が短くなるように演奏データが出力される。また
、反対に上記周期が長くなれば楽譜時間が長くなるよう
に演奏データが出力される。
次に第2図(A)〜(D)を参照して上記テンポコント
ローラ1の動作を説明する。
ローラ1の動作を説明する。
第2図(A)はタップスイッチ13が操作された時の動
作を示している。このフローでは、テンポずれおよび楽
譜時間ずれを求め、楽譜時間ずれの一部を解消する動作
を行う。
作を示している。このフローでは、テンポずれおよび楽
譜時間ずれを求め、楽譜時間ずれの一部を解消する動作
を行う。
まず、nlにおいてタップ時における操作者の意図する
強拍点の楽譜時間の推定を行う。この位置はGuess
Posで表される。第4図においてタップ時をt3とす
るとこのGuessPosは楽譜時間で1)52の位置
である。GuessPosは、 GuessPos= (CurPos/Beat)*Beatで求められる。
強拍点の楽譜時間の推定を行う。この位置はGuess
Posで表される。第4図においてタップ時をt3とす
るとこのGuessPosは楽譜時間で1)52の位置
である。GuessPosは、 GuessPos= (CurPos/Beat)*Beatで求められる。
ここでBeatは1拍の楽譜時間、即ち384であり、
CurPosは現在の楽譜時間位置を表す。例えば第4
図で現在の物理時間がt3とすると、CurPosは1
056である。また、(CurPo s/Bea t)
は四捨五入値を返す。したがって例えば、現在の物理時
間がt3とした場合、CurPosが960〜1)52
の間にある場合にはGuessPosは1)52となり
、CurPosが768〜959の間にある場合にはG
uessPosは768となる本実施例では楽譜時間の
ずれの解消とともに、テンポずれの解消も行うようにし
ているため、次の02ではテンポの計算を行う。
CurPosは現在の楽譜時間位置を表す。例えば第4
図で現在の物理時間がt3とすると、CurPosは1
056である。また、(CurPo s/Bea t)
は四捨五入値を返す。したがって例えば、現在の物理時
間がt3とした場合、CurPosが960〜1)52
の間にある場合にはGuessPosは1)52となり
、CurPosが768〜959の間にある場合にはG
uessPosは768となる本実施例では楽譜時間の
ずれの解消とともに、テンポずれの解消も行うようにし
ているため、次の02ではテンポの計算を行う。
テンポの計算は、
newTempo=
(GuessPos−PrevPos)/(CurTi
rne−Pr evTime)で求められる。ここで、
newTempoは以後実行すべき演奏テンポであり、
prevPosは前回の楽譜時間位置を示し、Cu r
T i m eは現在の物理時間を示し、PrevT
imeは前回の物理時間を示している。つまり、new
TempOは第4図から明らかなように直線の傾きを表
していることに他ならない。
rne−Pr evTime)で求められる。ここで、
newTempoは以後実行すべき演奏テンポであり、
prevPosは前回の楽譜時間位置を示し、Cu r
T i m eは現在の物理時間を示し、PrevT
imeは前回の物理時間を示している。つまり、new
TempOは第4図から明らかなように直線の傾きを表
していることに他ならない。
続いてテンポずれの計算を行う(n3)。テンポずれは
、 tempoDif f=newTemp。
、 tempoDif f=newTemp。
−CurTemp。
で表される。
また、続いてn4で楽譜時間のずれを求める。
楽譜時間のずれ量Po5Diffは、
Po5Diff
=CurPos−GuessPos
で求められる。第4図に示す例ではPo5Diffは−
96である。次に、データの更新を行う。
96である。次に、データの更新を行う。
つまり、GuessPosをPrevPosとして更新
し、CurTimeをPrevTimeとして更新する
。
し、CurTimeをPrevTimeとして更新する
。
以上の処理を行った後n6で時間ずれの初期解消モジュ
ールを実行する。
ールを実行する。
第2図(B)は時間ずれ初期解消モジュールのフローチ
ャートを示している。ここではタップ時に生した時間ず
れのうち直ちに解消するずれ量を求める。また、後のテ
ンポずれ解消処理のために、−回当たりのテンポずれ解
消量を求める。
ャートを示している。ここではタップ時に生した時間ず
れのうち直ちに解消するずれ量を求める。また、後のテ
ンポずれ解消処理のために、−回当たりのテンポずれ解
消量を求める。
楽譜時間解消量を求める時に必要な係数は時間ずれ解消
率bypa s sRa t i oである。このby
passRatioはnlo以下によって求められる。
率bypa s sRa t i oである。このby
passRatioはnlo以下によって求められる。
まず、nloで(Cu r P o 5−GessPo
s)間のデータの切出しを行う。つまり、タップされた
時点でシステムが演奏していた楽譜時間位置から演奏者
の意図する楽譜時間位置まn12で(GessPos+
Beat)間のデータの切出しを行う。つまり、タップ
された時点から一拍分の中に含まれる音符データを取り
込む。
s)間のデータの切出しを行う。つまり、タップされた
時点でシステムが演奏していた楽譜時間位置から演奏者
の意図する楽譜時間位置まn12で(GessPos+
Beat)間のデータの切出しを行う。つまり、タップ
された時点から一拍分の中に含まれる音符データを取り
込む。
この取り込んだ音符データの総和を音数2とする(n1
3)。音数2は補正用に用いられる。n14で音数1と
音数2とを加えて音数3とする。この音数1.音数2は
、タップ時の楽譜時間位置付近における音符の粗密の程
度を表すパラメータである。次に、bypa s sR
a t i oを、上記音数1と音数2を引数とするL
OOKUP関数を用いてテーブルTABLEIから求め
る(r+15)。第3図(A)はこのテーブルTABL
EIを示す。
3)。音数2は補正用に用いられる。n14で音数1と
音数2とを加えて音数3とする。この音数1.音数2は
、タップ時の楽譜時間位置付近における音符の粗密の程
度を表すパラメータである。次に、bypa s sR
a t i oを、上記音数1と音数2を引数とするL
OOKUP関数を用いてテーブルTABLEIから求め
る(r+15)。第3図(A)はこのテーブルTABL
EIを示す。
このフローでは、−回当たりのテンポずれ解消量も求め
ている。n16がそのステップである。
ている。n16がそのステップである。
つまり、−回当たりのテンポずれ解消量incTemp
oは、上記音数3を引数とするLOOKUP関数により
テーブルTABLE2から求められる。第3図(B)は
このテーブルTABLE2を示す。
oは、上記音数3を引数とするLOOKUP関数により
テーブルTABLE2から求められる。第3図(B)は
このテーブルTABLE2を示す。
上記の処理を終えた後、n17の時間ずれ解消モジュー
ルでは、時間ずれをbypassRatioの分だけ解
消することによってCurPosを次のように変更する
。
ルでは、時間ずれをbypassRatioの分だけ解
消することによってCurPosを次のように変更する
。
CurPos十=
posDiff*bypassRati。
第5図(A)では上記の式によってタップ時にCurP
osがplからp2に移動していることが分かる。
osがplからp2に移動していることが分かる。
次にn18において時間ずれの更新を行う。即ち、
Po5Diff*=
(1−bypassRa t io)
で更新できる。
第2図(C)はMmsec毎にタイマ割り込みで実行さ
れるフローチャートである。このフローではタップスイ
ンチがオンしてから時間ずれとテンポずれを少しずつ解
消していく動作を行う。
れるフローチャートである。このフローではタップスイ
ンチがオンしてから時間ずれとテンポずれを少しずつ解
消していく動作を行う。
n30でtempoDiffがOかどうかの判定を行い
、tempoDiffが0であれば、つまりテンポずれ
かない場合にはn32へ進みここで時間ずれの解消ステ
ップを実行する。また、tempoDiffがOでなけ
ればn31でテンポずれの解消ステップを実行し、続い
て時間ずれ解消のステップを実行する。n32の時間ず
れ解消ステップは次の式によって行われる。
、tempoDiffが0であれば、つまりテンポずれ
かない場合にはn32へ進みここで時間ずれの解消ステ
ップを実行する。また、tempoDiffがOでなけ
ればn31でテンポずれの解消ステップを実行し、続い
て時間ずれ解消のステップを実行する。n32の時間ず
れ解消ステップは次の式によって行われる。
CurPos+=
P o s D 1 f f * 0− 06 ;Po
5Diff*−0,94 ここで、0.06はタップ時以降の時間ずれ解消率であ
り、予め定められている。この式によって、第5図に示
すように1回目の実行ではp2からp3にCurPos
が移動する。そして、P。
5Diff*−0,94 ここで、0.06はタップ時以降の時間ずれ解消率であ
り、予め定められている。この式によって、第5図に示
すように1回目の実行ではp2からp3にCurPos
が移動する。そして、P。
5l)iffも更新することにより次回の割り込みに備
える。
える。
またrx 31のテンポずれ解消ステップでは、次の式
が実行される。
が実行される。
CurTempo+−3ncTempo ;tempo
Di f f−incTemp。
Di f f−incTemp。
ここでi n cTemp oはテンポずれの1回当た
りの解消量を示すもので、第2図(B)のn16によっ
て求められている。
りの解消量を示すもので、第2図(B)のn16によっ
て求められている。
第5図(B)は上記テンポずれ解消ステップ(n31)
によって推移してい<CurTemp。
によって推移してい<CurTemp。
を示している。
第5図(A)、 (B)に示すように、楽譜時間のず
れ量はタップ間で指数関数的に減少していき、テンポず
れ量は一次関数で減少していく。
れ量はタップ間で指数関数的に減少していき、テンポず
れ量は一次関数で減少していく。
また、重要なことは、最初にplからp2に移動する大
きさ、およびqlからq2に移動する大きさが音数1お
よび音数2によって、つまり、タップ時の楽譜時間位置
付近における音符の粗密の程度によって変わることであ
る。本実施例では、音数1および音数2が多い程、つま
り音符が密である程bypa s sRa t i o
が小さくなり、か”:) i n CT e m p
oが小さくなって、plからp2への移動量およびql
からq2への移動量が少なくなる。つまり、音の飛びと
テンポの変化が抑えられるようになる。反対に音数1と
音数2が少なくなると、つまり音符が粗になると上記の
音の飛びとテンポの変化に対する抑制が抑えられ、むし
ろずれ量が多く解消されるようになる。
きさ、およびqlからq2に移動する大きさが音数1お
よび音数2によって、つまり、タップ時の楽譜時間位置
付近における音符の粗密の程度によって変わることであ
る。本実施例では、音数1および音数2が多い程、つま
り音符が密である程bypa s sRa t i o
が小さくなり、か”:) i n CT e m p
oが小さくなって、plからp2への移動量およびql
からq2への移動量が少なくなる。つまり、音の飛びと
テンポの変化が抑えられるようになる。反対に音数1と
音数2が少なくなると、つまり音符が粗になると上記の
音の飛びとテンポの変化に対する抑制が抑えられ、むし
ろずれ量が多く解消されるようになる。
第2図(D)はNm5ec毎にタイマ割り込みによって
実行されるフローチャートである。このフローでは、M
IDIケーブルに対して演奏データメモリのカウントア
ツプのためのMIDIデータF8を出力する。
実行されるフローチャートである。このフローでは、M
IDIケーブルに対して演奏データメモリのカウントア
ツプのためのMIDIデータF8を出力する。
n51.n52ではそれぞれ物理時間の維持と楽譜時間
の維持を行う。続いてn53で、現在までのM I D
I Cl o c k数を求める。ここで、MIDI
CI ock数とはMIDI規格で定められる分解能(
1拍当たりのカウント数が24)でのカウント数である
。現在までのM I D I Cl o ckk数ur
F8Countは、次式で求めらレルCurF8Cou
nt= CurPos/F8Time ここでF8TtmeはM I D I C1o c k
1個当たりの楽譜時間を表す。
の維持を行う。続いてn53で、現在までのM I D
I Cl o c k数を求める。ここで、MIDI
CI ock数とはMIDI規格で定められる分解能(
1拍当たりのカウント数が24)でのカウント数である
。現在までのM I D I Cl o ckk数ur
F8Countは、次式で求めらレルCurF8Cou
nt= CurPos/F8Time ここでF8TtmeはM I D I C1o c k
1個当たりの楽譜時間を表す。
続いてn54でMIDIケーブルに対して出力するM
I D I Cl o c kの数即ちF8デー’;’
(D数を求める。これは、 (CurF8Count − PrevF8Count) で求められる。ここで、PrevF8Countは前回
までのMIDIClock数を表す。なお、この割り込
みフローが例えば5ms e c毎に行われるとした場
合、n54で出力されるMIDIClock(F8デー
タ)の数は0または1であり、しかも通常の楽譜の演奏
ではOがかなり多く、たまに1になるものと考えられる
。
I D I Cl o c kの数即ちF8デー’;’
(D数を求める。これは、 (CurF8Count − PrevF8Count) で求められる。ここで、PrevF8Countは前回
までのMIDIClock数を表す。なお、この割り込
みフローが例えば5ms e c毎に行われるとした場
合、n54で出力されるMIDIClock(F8デー
タ)の数は0または1であり、しかも通常の楽譜の演奏
ではOがかなり多く、たまに1になるものと考えられる
。
次にn55において、
PrevF8Count=
Cu t F 8 Co un t
を実行して次回の処理のための準備を行ってリターンす
る。
る。
以上の動作により、タップ時の楽譜時間位置付近におけ
る音符の粗密の程度により時間ずれ初期解消率(byp
as sRa t i o)の値が変化し、タップ時に
おける楽譜時間位置付近の音符が密であるとその値が小
さくなり音の飛びが相対的に防がれる。反対に、タップ
時における楽譜時間位置付近の音符が粗であるとその値
が大きくなり、楽譜時間ずれが相対的に早く解消される
ようになる。この場合、音符が粗であるため音の飛びは
それほど大きくない。このように、時間ずれ初期解消率
の大小は、音の飛びと時間ずれ解消量との関係で一般に
トレードオフとなるが、上記の実施例では、音符の粗密
をパラメータとしてこの時間ずれ解消率を決めているた
めに、この値は演奏状態に非常に通したものとなる。ま
た、上記実施例ではテンポずれの解消も行うようにして
いるために、上記の追従性がより改善されることになる
。
る音符の粗密の程度により時間ずれ初期解消率(byp
as sRa t i o)の値が変化し、タップ時に
おける楽譜時間位置付近の音符が密であるとその値が小
さくなり音の飛びが相対的に防がれる。反対に、タップ
時における楽譜時間位置付近の音符が粗であるとその値
が大きくなり、楽譜時間ずれが相対的に早く解消される
ようになる。この場合、音符が粗であるため音の飛びは
それほど大きくない。このように、時間ずれ初期解消率
の大小は、音の飛びと時間ずれ解消量との関係で一般に
トレードオフとなるが、上記の実施例では、音符の粗密
をパラメータとしてこの時間ずれ解消率を決めているた
めに、この値は演奏状態に非常に通したものとなる。ま
た、上記実施例ではテンポずれの解消も行うようにして
いるために、上記の追従性がより改善されることになる
。
なお、本実施例ではタップ時の楽譜時間位−置付近の音
符の粗密を表すパラメータとして、音数1と音数2を示
したが、音数1だけでもよい。また、第5図(A)に示
すように楽譜時間のずれ量は指数関数的に解消されるが
、勿論−次間数で解消するようにすることも可能である
。同様にテンポずれ量も任意の関数で減少させていくこ
とができる。また、楽譜時間ずれの解消に関しては、音
符の粗密の程度により時間ずれ初期解消率のみ決めるよ
うにしているが、n32でMmsec毎の時間ずれ解消
に定数として使用している0、06を上記音符の粗密の
程度に基づいて変化する変数にしてもよい。
符の粗密を表すパラメータとして、音数1と音数2を示
したが、音数1だけでもよい。また、第5図(A)に示
すように楽譜時間のずれ量は指数関数的に解消されるが
、勿論−次間数で解消するようにすることも可能である
。同様にテンポずれ量も任意の関数で減少させていくこ
とができる。また、楽譜時間ずれの解消に関しては、音
符の粗密の程度により時間ずれ初期解消率のみ決めるよ
うにしているが、n32でMmsec毎の時間ずれ解消
に定数として使用している0、06を上記音符の粗密の
程度に基づいて変化する変数にしてもよい。
(幻発明の効果
この発明によれば、タッピングを行っている時の自動演
奏の出力は操作者のタッピングに対して滑らかに追従す
るようになる。また、楽譜時間ずれ量はタップ時の楽譜
時間位置付近における音符の粗密の程度により決まるた
めに、実際の演奏状・態に適した追従性を得ることが出
来る。また、音符の粗密の程度によりテンポずれ量の解
消量も決まるために、追従性がさらに実際の演奏状態に
通したものとなる。
奏の出力は操作者のタッピングに対して滑らかに追従す
るようになる。また、楽譜時間ずれ量はタップ時の楽譜
時間位置付近における音符の粗密の程度により決まるた
めに、実際の演奏状・態に適した追従性を得ることが出
来る。また、音符の粗密の程度によりテンポずれ量の解
消量も決まるために、追従性がさらに実際の演奏状態に
通したものとなる。
第1図はこの発明の実施例のテンポコントローラにシー
ケンサと音源およびサウンドシステムを接続した時の構
成図、第2図(A)〜(D)はテンポコントローラの動
作を示すフローチャート、第3図はテーブルを示す図、
第4図は上記テンポコントローラの動作を説明するため
の図、第5図(A)、 (B)は楽譜時間ずれlとテ
ンポずれ量の変化を説明するための図、第6図〜第9図
は従来考えることのできたテンポコントローラの原理を
説明するための図である。 1−テンポコントローラ、2−シーケンサ、3−音源、
4−サウンドシステム。
ケンサと音源およびサウンドシステムを接続した時の構
成図、第2図(A)〜(D)はテンポコントローラの動
作を示すフローチャート、第3図はテーブルを示す図、
第4図は上記テンポコントローラの動作を説明するため
の図、第5図(A)、 (B)は楽譜時間ずれlとテ
ンポずれ量の変化を説明するための図、第6図〜第9図
は従来考えることのできたテンポコントローラの原理を
説明するための図である。 1−テンポコントローラ、2−シーケンサ、3−音源、
4−サウンドシステム。
Claims (2)
- (1)タップデータを形成するタッピング手段とタップ
時の楽譜時間ずれ量を求める楽譜時間ずれ量検出手段と
、 タップ時の楽譜時間位置付近における音符の粗密の程度
を検出する手段と、 前記楽譜時間ずれ量を前記音符の粗密の程度に基づいて
減少させつつ現在の楽譜時間の更新を行う楽譜時間更新
手段と、 楽譜時間の更新に応じてテンポクロック情報を出力する
テンポクロック情報出力手段と、を備えてなるテンポコ
ントローラ。 - (2)請求項(1)において、 タップ時のテンポずれ量を求めるテンポずれ量検出手段
を備え、 前記楽譜時間更新手段は、前記楽譜時間ずれ量と前記テ
ンポずれ量を前記音符の粗密の程度に基づいて減少させ
つつ現在の楽譜時間の更新を行うものであることを特徴
とするテンポコントローラ。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2282852A JP2780475B2 (ja) | 1990-10-19 | 1990-10-19 | テンポコントローラ |
| 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 |
| DE69129522T DE69129522T2 (de) | 1990-09-25 | 1991-09-24 | Taktsteuerung zum automatischen Spielen von Musik |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2282852A JP2780475B2 (ja) | 1990-10-19 | 1990-10-19 | テンポコントローラ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04156594A true JPH04156594A (ja) | 1992-05-29 |
| JP2780475B2 JP2780475B2 (ja) | 1998-07-30 |
Family
ID=17657908
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2282852A Expired - Fee Related JP2780475B2 (ja) | 1990-09-25 | 1990-10-19 | テンポコントローラ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2780475B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007004541A1 (ja) * | 2005-07-01 | 2007-01-11 | Pioneer Corporation | コンピュータプログラム、並びに情報再生装置及び方法 |
-
1990
- 1990-10-19 JP JP2282852A patent/JP2780475B2/ja not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007004541A1 (ja) * | 2005-07-01 | 2007-01-11 | Pioneer Corporation | コンピュータプログラム、並びに情報再生装置及び方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2780475B2 (ja) | 1998-07-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5227574A (en) | Tempo controller for controlling an automatic play tempo in response to a tap operation | |
| EP2407958B1 (en) | Electronic musical instrument having chord application means | |
| JPS6078487A (ja) | 電子楽器 | |
| JP2722795B2 (ja) | 楽音合成装置 | |
| US20170169807A1 (en) | Audio processing device, method of audio processing, storage medium, and electronic musical instrument | |
| JPH04156594A (ja) | テンポコントローラ | |
| JP4201679B2 (ja) | 波形発生装置 | |
| JP2653232B2 (ja) | テンポコントローラ | |
| JPH01198797A (ja) | 電子楽器 | |
| JP2969138B2 (ja) | ピッチ検出装置 | |
| JP2940123B2 (ja) | テンポコントローラ | |
| JP2780476B2 (ja) | テンポコントローラ | |
| JPH1039863A (ja) | 自動伴奏装置 | |
| US5274191A (en) | Electronic musical instrument using fuzzy interference for controlling musical tone parameters | |
| JP4412859B2 (ja) | 外部同期信号による同期演奏機能を備えた電子楽器 | |
| JPH04133097A (ja) | テンポコントローラ | |
| JPH04156592A (ja) | テンポコントローラ | |
| JP3052476B2 (ja) | テンポ情報制御装置 | |
| JPH04151694A (ja) | テンポコントローラ | |
| JP2551195B2 (ja) | 自動演奏装置 | |
| JPH01273097A (ja) | 自動演奏装置 | |
| JPH031195A (ja) | 自動演奏装置 | |
| JPH03253898A (ja) | 自動伴奏装置 | |
| JPH0916169A (ja) | 自動演奏装置 | |
| JP2611531B2 (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: 20090515 Year of fee payment: 11 |
|
| LAPS | Cancellation because of no payment of annual fees |