JP3656906B2 - Waveform data playback device with variable time axis - Google Patents
Waveform data playback device with variable time axis Download PDFInfo
- Publication number
- JP3656906B2 JP3656906B2 JP2002084690A JP2002084690A JP3656906B2 JP 3656906 B2 JP3656906 B2 JP 3656906B2 JP 2002084690 A JP2002084690 A JP 2002084690A JP 2002084690 A JP2002084690 A JP 2002084690A JP 3656906 B2 JP3656906 B2 JP 3656906B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- waveform data
- jump
- read
- waveform
- 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
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、波形データを時間軸方向に伸縮して再生することができる時間軸可変の波形データ再生装置に関する。
【0002】
【従来の技術】
従来より、時間軸制御が可能なサンプラが知られている。これは、サンプリング(録音)した波形データの再生を行なう際に時間軸方向に伸縮して再生することが可能なものである。また、テンポ同期が可能なサンプラが知られている。これは、ループモードにしたときに、そのループ波形をテンポ同期させることができる、すなわち曲のテンポが変化したときにその変化後のテンポに同期してループ波形を時間軸方向に圧縮伸張して再生できるようにしたものである。
【0003】
一方、ディジタルデータを録音するディジタルレコーダにテンポマップの機能を加えたものが知られている。これは、新規にソングを作成するときに、そのレコーディングに先立って当該ソングにおけるテンポの変化を制御するテンポマップを作成するものである。テンポマップは、例えば、ソングの開始時のテンポはテンポ100BPM(BPMは1分間の4分音符の個数でテンポを表す単位)、第10小節目からテンポ120BPM、第14小節目から再びテンポ100BPM、…というように、ソングの各範囲のテンポを予め設定するための画面である。これにより、ユーザは、ソング中の任意の範囲で任意のテンポ情報を設定できる。レコーディング時には、作成したテンポマップに応じたテンポのメトロノーム音を発生し、演奏者はそのメトロノーム音を聞きながら自分のパートの演奏を行なう。その演奏を当該パートに対応するトラックに録音する。このようにして、複数パートの各パートの演奏を順次行ない、演奏された楽音をそれぞれ異なるトラックに録音していく。全パートの演奏の録音が終わった後、複数トラックに録音された楽音をミックスダウンして、例えばステレオ2チャンネルの楽音を取得する。以上のようにして、テンポマップの設定にしたがうテンポで複数トラックのレコーディングを行なうことができる。
【0004】
【発明が解決しようとする課題】
ところで、上述した時間軸制御が可能な従来のサンプラの方式としては、第1に、CPUが各波形サンプルを各サンプリング周期に配置することにより、時間軸方向の圧縮および伸張を行なうものがある。これは、元になる波形データを、テンポに応じて定められたある時間区間で再生するとき、その波形データを切り分けて、前記時間区間の各サンプリング周期でどのサンプルを読むかを決定して配置していくものである。これによれば、任意の精度で時間軸方向の伸縮を管理することができる。しかし、1秒ごとにサンプリング周波数に対応する数の波形サンプルについて時間軸制御処理を行なわなければならず、CPUの負荷が大きいという問題がある。
【0005】
時間軸制御が可能なサンプラの方式として、第2に、CPUが音源に対してスライスされた各波形データ再生開始のトリガを供給し、音源は該トリガに応じて各波形データを再生するものがある。これによれば、CPUはトリガなどの波形データの再生を制御するデータだけを扱えばよいので(波形サンプル自体を扱わなくてよい)、CPUの負荷は小さい。しかし、CPUは波形データの時間軸制御以外にも様々な処理を行なっており、トリガのタイミングの精度を上げることは難しいという問題がある。
【0006】
従来のテンポ同期が可能なサンプラでは、サンプリング周期の精度の時間軸制御を行なう場合、ディジタルレコーダのテンポマップに対するテンポ同期が徐々にずれてくるという問題がある。
【0007】
この発明は、波形データを時間軸方向に圧縮あるいは伸張することができる時間軸可変の波形データ再生装置において、CPUの負荷を軽減し、また時間軸制御された波形データの再生が破綻することなく、さらにテンポマップで設定された場合のようにあらかじめ定められた所望のテンポからずれずに正確に時間軸制御して再生を行なうことができる波形データ再生装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
この目的を達成するため、請求項1に係る発明は、制御プログラムを記憶するメモリと、前記制御プログラムを実行して、装置全体の動作の制御を行なうCPUと、波形データを記憶する波形記憶手段と、前記CPUにより制御され、前記波形記憶手段から波形データを読み出して再生する読出再生部とを備えた波形データ再生装置であって、前記読出再生部は、順次進行する読出アドレスを生成する生成手段と、生成された読出アドレスで波形記憶手段から波形データを読み出して再生する手段と、ジャンプ元アドレスとジャンプ先アドレスとを記憶するアドレス記憶手段と、読出アドレスが前記ジャンプ元アドレスに達したら、前記生成手段が生成する読出アドレスを、前記ジャンプ元アドレスに対応する前記ジャンプ先アドレスに移行させる手段とを備えており、前記読出再生部が前記波形データの読み出し再生を行なっているとき、前記CPUが、波形データの時間軸の伸縮を制御する時間軸制御データに基づいて、読み出し対象の波形データ中の波形サンプル単位の所定位置であるジャンプ元アドレスと該ジャンプ元アドレスに対応するジャンプ先アドレスとを前記アドレス記憶手段に順次設定する処理を実行することにより、読み出される波形データの時間軸伸縮制御を行なうことを特徴とする。
【0009】
請求項2に係る発明は、請求項1に記載の波形データ再生装置であって、前記CPUは、前記ジャンプ元アドレスとジャンプ先アドレスとを設定する処理において、現在の読出アドレスが設定されているジャンプ元アドレスに達する前に、少なくともその次のジャンプ元アドレスの設定を終えていることを特徴とする。
【0010】
請求項3に係る発明は、請求項1に記載の波形データ再生装置であって、前記波形記憶手段に記憶されている波形データには複数ビート分の波形データが含まれており、前記CPUは、前記ジャンプ元アドレスとジャンプ先アドレスとを設定する処理において、前記ジャンプ先アドレスを、前記波形データの複数のビート先頭位置の各々に順次設定することをを特徴とする。
【0011】
請求項4に係る発明は、制御プログラムを記憶するメモリと、前記制御プログラムを実行して、装置全体の動作の制御を行なうCPUと、波形データを記憶する波形記憶手段と、前記CPUにより制御され、前記波形記憶手段から波形データを読み出して再生する読出再生部とを備えた波形データ再生装置であって、前記読出再生部は、順次進行する読出アドレスを生成する生成手段と、生成された読出アドレスで波形記憶手段から波形データを読み出して再生する手段と、前記波形データ中の波形サンプル単位で表したジャンプ先アドレスと該ジャンプ先アドレスに対応するジャンプ元アドレスとを、第1組、第2組、…、および第N組のN組記憶するアドレス記憶手段と、前記生成手段に対し、まず、前記波形データの第1組のジャンプ先アドレスを前記生成手段の読出アドレスに設定し、読出アドレスが第1組のジャンプ元アドレスに至ったとき第2組のジャンプ先アドレスを前記生成手段の読出アドレスに設定し、読出アドレスが第2組のジャンプ元アドレスに至ったとき第3組のジャンプ先アドレスを前記生成手段の読出アドレスに設定し、…、読出アドレスが第N組のジャンプ元アドレスに至ったとき第1組のジャンプ先アドレスを前記生成手段の読出アドレスに設定し、…というように、前記N組のアドレスを巡回的に使用しつつ読出アドレスを移行させる手段とを備えており、前記読出再生部が前記波形データの読み出し再生を行なっているとき、前記CPUが、前記アドレス記憶手段が記憶するN組のジャンプ先アドレスとジャンプ元アドレスのうち、ジャンプ元アドレスが前記移行させる手段によって読出アドレスの移行に既に使用されている第i組のジャンプ先アドレスと第i組のジャンプ元アドレスとのセットまたは第i組のジャンプ元アドレスと第(i+1)組のジャンプ先アドレスとのセットに対し、波形データの時間軸の伸縮を制御する時間軸制御データに基づいて、次に用いるジャンプ先アドレスおよびジャンプ元アドレスを設定する処理を実行することにより、読み出される波形データの時間軸伸縮制御を行なうことを特徴とする。
請求項5に係る発明は、請求項4に記載の波形データ再生装置において、前記CPUは、前記次に用いるジャンプ元アドレスおよびジャンプ先アドレスを設定する処理の際に、前記次に用いるジャンプ元アドレスおよびジャンプ先アドレスを、前記アドレス記憶手段に、1セット分または2セット分ずつ設定することを特徴とする。
【0012】
請求項6に係る発明は、請求項4に記載の時間軸可変の波形データ再生装置において、前記CPUは、前記次に用いるジャンプ元アドレスおよびジャンプ先アドレスを設定する処理を、前記N組のうちの既に読み出しに使用されたアドレスの組が次に読み出しに使用されるまでの所定のタイミングで実行することを特徴とする。
【0013】
請求項7に係る発明は、請求項1ないし6に記載の波形データ再生装置において、前記CPUは、前記ジャンプ元アドレスとジャンプ先アドレスとを設定する処理に先立って、前記波形データ中の各ビートの波形データの先頭位置を、それぞれ、各ビートのジャンプ先アドレスとして決定する過程と、再生する波形データのサンプリング周波数とテンポと拍子とビートとに基づいて、1小節中の波形サンプルの数を求め、その波形サンプルの数を1小節のビートの数で均等に分割することにより整数部と分数部とを含む1ビート分のサンプル数を算出し、該整数部に対して該分数部に応じた調整を加えることにより各ビートの波形データのサンプル数を算出する過程と、前記決定された各ビートの波形データの先頭位置に算出された各ビートのサンプル数を加算した位置を、それぞれ、各ビートのジャンプ元アドレスとして決定する過程とを実行することを特徴とする。
【0014】
【発明の実施の形態】
以下、図面を用いてこの発明の実施の形態を説明する。
【0015】
図1は、この発明に係る時間軸可変の波形データ再生装置を適用したディジタルレコーダのブロック構成図である。このシステムは、中央処理装置(CPU)101、フラッシュメモリ102、ランダムアクセスメモリ(RAM)103、表示器104、フェーダ105、操作子106、PC入出力インターフェース(I/O)107、書込&読出再生部111、波形メモリ112、ミキサ113、波形入力部114、波形出力部115、転送部116、バッファメモリ117、IDE(Integrated Device Electromics)インターフェース118、ハードディスク119、CD−RW(CD-rewritable)ドライブ120、およびバスライン130を備える。
【0016】
CPU101は、このシステムの全体の動作を制御する処理装置である。フラッシュメモリ102は、CPU101が実行する各種の制御プログラムやCPU101が使用する各種のデータなどを格納した不揮発性メモリである。フラッシュメモリ102は、書き換えが可能で、電源を切っても記憶された情報が失われない。RAM103は、CPU101が実行するプログラムのロード領域やワーク領域に使用する揮発性メモリである。表示器104は、このシステムの外部パネル上に設けられた各種の情報を表示するためのディスプレイである。フェーダ105は、このシステムの外部パネル上に設けられた各種パラメータの値設定用の操作子である。操作子106は、このシステムの外部パネル上に設けられた各種の操作子である。操作子106は、ユーザが操作するための複数のパッドを備えている。
【0017】
PC I/O107は、外部のPC機器と接続するためのインターフェースである。書込&読出再生部111は、後述するサンプラ機能を実現するための部分であり、外部から入力した波形データを波形メモリ112に書き込み、また波形メモリ112に記憶された波形データを読み出して再生する処理を行なう。波形メモリ112は、外部から入力した波形データ(サンプリングしたもの)を記憶する記憶装置である。
【0018】
ミキサ113は、書込&読出再生部111を介して入力した波形メモリ112からの波形データ、波形入力部114から入力した波形データ、および転送部116を介して入力したハードディスク119やCD−RWドライブ120からの波形データを、任意に組み合わせてミキシングする。ミキシング結果は、波形出力部115や転送部116に出力される。波形入力部114は、マイクから入力したアナログ楽音信号をディジタル波形データに変換してミキサ113に供給する。波形出力部115は、ミキサ113から供給される波形データを出力する。出力された波形データは、必要に応じて、アナログ楽音信号に変換され不図示のサウンドシステムにより放音される。
【0019】
ミキサ113は、実際にはディジタルシグナルプロセッサ(DSP)により構成されている。ミキサ113は、サンプリング周期単位で行なわれる時分割多重処理で複数トラックの処理を並行して実行する。ミキサ113に対する入出力は、基本的には1サンプリング周期で波形データの1サンプルを入出力するものである。ミキサ113に対して波形入出力を行なう周辺各部は、ミキサ113の時分割処理に同期して、波形データの入出力を行なう。例えば、所定のマイクから入力した演奏音を所定のトラックに録音する場合、当該マイクから入力して波形入力部114でディジタルデータに変換された波形データは、ミキサ113が当該トラックの処理を行なうタイムスレッドで波形入力部114からミキサ113に供給されるようにタイミングが調整される。同様に、ミキサ113から当該トラックの波形出力を行なうタイムスレッドで出力される波形データは、それが出力されるタイミングで転送部116が受け取り、当該トラックに対応するファイルにその波形データを書き込むように処理される。
【0020】
転送部116は、CPU101からの指示に応じて、ハードディスク119とバッファメモリ117間の転送およびバッファメモリ117とミキサ113間の転送(1サンプル/サンプリング周期×再生または録音トラック数分)を制御する。バッファメモリ117には、複数トラック分の記憶領域が用意されており、複数トラック分同時に録音・再生することができる。
【0021】
1トラック分の録音は、以下のように行なう。転送部116は、当該トラックに録音すべき波形データの1サンプルが出力されるサンプリング周期のタイミングで、ミキサ113から当該サンプルを受け取り、バッファメモリ117の当該トラックの記憶領域に書き込む。バッファメモリ117の当該トラックの記憶領域に1クラスタ分のサンプルが溜まったら、それをハードディスク119の当該トラック記憶領域へ転送する。転送部116からハードディスク119への波形データの転送は、1クラスタ分のデータが溜まったときに行なわれ、ミキサ113と転送部116との間のサンプリング周期に同期した転送とは独立している。したがって、転送部116からハードディスク119に転送を行なっている間も、前述したバッファメモリ117への書き込み動作は継続される。
【0022】
1トラック分の再生は、以下のように行なう。まず再生すべきトラックの先頭の2以上のクラスタのサンプルをハードディスク119から読み出してバッファメモリ117の当該トラックに対応する記憶領域に書き込む。転送部116は、ミキサ113が当該トラックの波形データを入力するサンプリング周期のタイミングで、バッファメモリ117から当該トラックの1サンプルを読み出してミキサ113に渡す。バッファメモリ117に1クラスタ分の空き領域(再生し終えたサンプルの記憶領域)ができたら、ハードディスク119からその空き領域へ後続の1クラスタ分のデータを転送する。ハードディスク119からバッファメモリ117へのデータ転送がミキサ113と転送部116との間のデータ転送と独立して行なわれることは、録音時と同様である。
【0023】
IDE I/O118は、ハードディスク119およびCD−RWドライブ120と転送部116とを接続するためのインターフェースである。また、IDEI/O118は、ハードディスク119およびCD−RWドライブ120と、CPU101、フラッシュメモリ102、およびRAM103との間のインターフェースでもある。ハードディスク119は、演奏データを格納するための外部記憶装置である。CD−RWドライブ120は、CD、CD−R、あるいはCD−RWを挿入してデータを読み出しあるいは書き込む装置である。
【0024】
上記転送部116によるレコーダ機能と書込&読出再生部111を使用して実現するサンプラ機能について説明する。CPU101は、上述したように転送部116によるレコーダ機能を用いてハードディスク119に書き込んだ波形データをRAM103上に読み出し、該RAM103上でその波形データから波形メモリ112に記憶する波形データを作成する。これは、例えば、録音した波形データの前後を切り落として4分の4拍子の1小節分に合うようにするなどの処理を行なうものである。CPU101の指示に応じて、作成した波形データを波形メモリ112へ書き込む。このシステムは複数のパッドを備えており、再生時に、各パッドを操作したとき、そのパッドに割り当てられた波形メモリ112上の波形データを読み出して再生する。このとき波形データの時間軸を圧縮伸張することが可能である。その時間軸の圧縮伸張は、CPU101の指示に応じて書込&読出再生部108が行なう。
【0025】
図2は、図1の書込&読出再生部108による時間軸可変の読出再生機能を実現するための構成を示す。書込&読出再生部108は、ジャンプ先アドレスレジスタ群(DEST1〜4)、ジャンプ元アドレスレジスタ群(TAR1〜4)、フェードアウト開始点レジスタ群(FOUT1〜4)、フェード速度レジスタ(RATE)204、セレクタ205、現在アドレスレジスタ206、アドレス加算器207、比較器208,209、カウンタ210、クロスフェードカーブ発生器211、および乗算器212を備えている。書込&読出再生部108は時分割多重処理で複数チャンネルの処理を行なうことができるようになっているが、ここでは1チャンネル分の構成について示した。
【0026】
レジスタ群201〜204は、このチャンネルで波形データを再生するときに使用するレジスタである。CPU101は、これらのレジスタ群201〜204に値を設定することにより、所望の通りに時間軸制御された波形データを読み出せる。ジャンプ先アドレスレジスタ群(DEST1〜4)201は、4つのジャンプ先アドレスの設定用レジスタである。ジャンプ元アドレスレジスタ群(TAR1〜4)202は、4つのジャンプ元アドレスの設定レジスタである。フェードアウト開始点レジスタ群203は、フェードアウトを開始する位置を示す4つのフェードアウト開始点アドレスを設定するレジスタである。フェード速度レジスタ204は、フェードアウトの速度(レート)を設定するレジスタである。
【0027】
それぞれ4つのレジスタから構成されるレジスタ群201〜203については、n=1〜4として、DESTnとTARnとFOUTnを1セットとして使用する(全部で4セット)。DESTnとTARnとFOUTnの1セットを、第nセットレジスタと呼ぶ。なお、レジスタと該レジスタに設定するデータとは同じ記号で呼ぶものとする。例えば、ジャンプ先アドレスを設定するレジスタDEST1に設定されたデータは、ジャンプ先アドレスDEST1と呼ぶ。
【0028】
図2の各部の動作を説明する前に、波形データを時間軸方向で伸縮して再生するための読み出しアドレスの進め方について説明する。
【0029】
図3(a)は、書込&読出再生部108による波形メモリの読み出しアドレスの進行の様子を示すタイミング図である。301は読み出す対象の波形データを表わす。その上の右向き矢印321,322,323は、波形データ301から波形サンプルがサンプリング周期ごとに読み出されていく向きを示す。すなわち、この矢印の向きに読み出しアドレスが進行していく。なお、波形メモリからの波形データの読み出し速度は、各チャンネルごとに1サンプル/サンプリング周期で一定とする。また、読み出す波形データは固有のテンポ(サンプリングしたときのテンポ)を持っているが、このテンポは任意の値でよい。
【0030】
上述したように、時間軸制御のためのパラメータとして、CPU101は、各チャンネルごと(すなわち、各発音ごと)に、ジャンプ先アドレスDEST1〜4、ジャンプ元アドレスTAR1〜4、およびフェードアウト開始点アドレスFOUT1〜4の4セットのデータとフェード速度RATEを1つ設定できる。波形データの読み出しは、ジャンプ先アドレスDEST1から開始する。矢印321に示すようにサンプリング周期ごとに1ずつ読み出しアドレスを進めて波形サンプルを読み出していき、ジャンプ元アドレスTAR1まで進んだとき、読み出しアドレスを次のジャンプ先アドレスDEST2に移行する。同様にして、ジャンプ先アドレスDEST2から読み出しアドレスを矢印322のように進め、次のジャンプ元アドレスTAR2まで進んだとき、さらに次のジャンプ先アドレスDEST3に移行する。このように読み出しアドレスを進めていき、ジャンプ元アドレスTAR4まで進んだら、読み出しアドレスを次のジャンプ先アドレスDEST1に移行する。読み出しアドレスをTAR4からDEST1にジャンプさせるときまでに、アドレスDEST1,TAR1,FOUT1は次に使うデータに書き替えておく。このように、上述した4セットのアドレスレジスタのうちの、そこに書き込まれたアドレスによる読み出しが終了したレジスタについて、CPU101がセット単位で順次更新していくことにより、図3に示すように読み出しアドレスが進行し、時間軸の制御された波形データが継続的に再生される。
【0031】
図3の331は、矢印321のように読み出しアドレスを進行させて読み出していく波形データのフェードインおよびフェードアウトの様子を示す。ジャンプ先アドレスDEST1から読み出しを開始したとき、所定の速度でフェードインを行ない波形データを出力する。フェードアウトのタイミング311は、フェードアウト開始点アドレスFOUT1に至ったときフェードアウトを開始し、ジャンプ元アドレスTAR1に至ったときそのフェードアウトが終了するように制御する。これ以降の読み出しの場合の波形データ332,333についても同様である。なお、フェードアウトの速度は、フェード速度レジスタ204の設定に基づく。
【0032】
説明を簡単にするため、アドレスレジスタおよびそこに設定されるアドレスを示すDEST1〜4,TAR1〜4,FOUT1〜4の記号は、それ以降の設定アドレスを表すために拡張して使用するものとする。例えば、ジャンプ先アドレスについては、DEST1→DEST2→DEST3→DEST4の順にレジスタを利用し、DEST4の次に利用するアドレスは再びレジスタDEST1に設定したデータを利用することになるが、DEST4の次に利用するアドレスをDEST5と表記する。それ以後のアドレスも順次、DEST6,DEST7,…と表記する。逆に言えば、CPU101がジャンプ先アドレスとして順次計算したアドレスをDESTn(nは正整数)とし、DEST1→DEST2→DEST3→DEST4→DEST5→DEST6→…→DESTn(nは正整数)→…というようにアドレスを進める際、アドレスDESTnはレジスタDESTn’(ただし、n’は、▲1▼nを4で割った余りが1〜3のときはその余り、▲2▼nが4で割り切れるときは4とする)に設定するということである。TARn,FOUTnについても同様である。
【0033】
図3(b)は、波形データのテンポより引き伸ばして(テンポを遅くして)読み出す場合の読み出しの様子を示す。341〜343は波形データを示す。波形データは、あらかじめ拍単位に区切られているものとし、341が1拍目、342が2拍目、343が3拍目のデータを示す。テンポを遅くする場合でもアドレスの進め方は図3(a)で説明したのと同様である。ただし、DEST1から読み出しを開始した1拍目のデータ341が終わる位置からフェードアウトし無発音の区間を経てTAR1までで1拍目の再生を終え、引き続きDEST2から読み出しを開始し、その2拍目のデータ342が終わる位置からフェードアウトし無発音の区間を経てTAR2までで2拍目の再生を終え、…というように再生を進める。ここでは、1拍目のデータ341の終了位置をFOUT1とし、2拍目のデータ342の終了位置をFOUT2とし、…というようにしているが、FOUTの位置はこれに限らない。ただし、次の拍のアタック部が出力されない程度の位置までにフェードアウトする必要がある。
【0034】
図4は、出力される波形データの例を示す。401は出力される波形データを示す。その中のBLOCK0,1,2,…は、それぞれ図3の331,332,333のようなジャンプ先アドレスDESTnからジャンプ元アドレスTARnで読み出された波形データを示す。402は、BLOCK0〜3を拡大した図である。各BLOCKで読み出された波形データが繋げられている。
【0035】
次に、CPU101が、ジャンプ先アドレス、ジャンプ元アドレス、およびフェードアウト開始点アドレスを設定する具体例を説明する。
【0036】
(第1の具体例)
サンプリング周波数Fsを44.1kHz、テンポ90BPM、4/4拍子、8ビートで、波形データの再生を行なう場合、CPU101は、次のように1ビートのサンプル数を計算する。まず、テンポが90BPMで4/4拍子であるから、
1小節の長さ=(60/90)×4=8/3秒
である。したがって、
1小節のサンプル数=44100×(8/3)=117600サンプル
である。1小節が8ビートであるから、
1ビートの長さ=117600/8=14700サンプル
である。そこで、ジャンプ先アドレスとジャンプ元アドレスとは、
TARi−DESTi=14700 ……(1)
の関係となる。
【0037】
再生すべき波形データは、CPU101が、サンプリングした波形を編集して用意する。したがって、例えば4/4拍子で使う8ビート分の波形、あるいは3拍子系で使う12ビート分の波形というような波形データを生成できる。ここでは、再生すべき波形データが8ビート分のサンプル数がM(Mは8で割り切れる整数とする)のデータであり、この波形データを上述のテンポで1小節で再生するように時間軸制御するとする。まず、DEST1に波形データの先頭アドレスを設定する。また、1小節8ビートであるから波形データの先頭からM/8サンプルごとにビート先頭位置があることになる。したがって、
DESTj+1=DESTj+M/8 (j=1〜7) ……(2)
である。TARiは(1)式より求めればよい。すなわち、テンポに応じた1ビート当たりの長さと、各DESTi(ビート先頭位置)とに基づいて、各TARiが算出される。以上より、1小節の再生を行なうためのジャンプ先アドレスDESTiとジャンプ元アドレスTARi(i=1〜8)が計算できる。フェードアウト開始点アドレスFOUTiは、ジャンプ元アドレスTARiより所定サンプルだけ前に設定すればよい。ただし、図3(b)のような場合は、FOUTiとして各ビートの終了位置などを設定する。
【0038】
(第2の具体例)
サンプリング周波数Fsを44.1kHz、テンポ95BPM、4/4拍子、8ビートで、波形データの再生を行なう場合、CPU101は、次のように1ビートのサンプル数を計算する。まず、テンポが95BPMで4/4拍子であるから、
1小節の長さ=(60/95)×4=48/19秒
である。したがって、
1小節のサンプル数=44100×(48/19)=111410+(10/19)サンプル ……(11)
である。上記(11)式の整数部分111410から、
1ビートの長さ=111410/8=13926+(1/4)サンプル……(12)
である。そこで、ジャンプ先アドレスとジャンプ元アドレスとを、
・TARi−DESTi=13927 (i=4,8のとき) ……(14)
の関係となるように設定する。これは、(12)式における1/4サンプル分を調整するため、3回分の読み出しの1ビートの長さを13926サンプルとし、次の1回分の読み出しの1ビートの長さを13927サンプルとしたものである。同様にして、(11)式における10/19サンプル分を調整するため、19小節のうちの10小節は111411サンプルを読み出し、残りの9小節は111410サンプルを読み出すようにする。例えば、19小節単位で、2,4,6,8,10,12,14,16,18,19番目の小節(10小節分)の8ビート目の読み出しサンプル数を+1すればよい。
【0039】
なお、ここではテンポの補正を最後の拍で行なうようにしたが、先頭の拍や途中の拍で行なってもよい。また、テンポの補正を1小節単位ではなく、複数小節単位、または任意の複数拍単位で行なってもよい。
【0040】
図2に戻って、図3および図4で説明した時間軸可変の波形データ再生を行なう書込&読出再生部108の動作について詳しく説明する。
【0041】
CPU101は、上述したように計算したジャンプ先アドレスDEST1〜4、ジャンプ元アドレスTAR1〜4、およびフェードアウト開始点アドレスFOUT1〜4の4セットのデータとフェード速度RATEをレジスタ群201〜204に設定する。カウンタ210は、使用するレジスタセットを特定するi=1〜4の値を保持するレジスタである。読み出しが開始されるときカウンタ210はi=1に初期化されるから、始めは、レジスタ群201〜203から、第1セットレジスタのアドレス(DEST1,TAR1,FOUT1)がそれぞれ出力される。
【0042】
読み出しが開始されると、セレクタ205は最初にジャンプ先アドレスレジスタ群201からの入力を選択出力する。いまレジスタ群201からは、レジスタDEST1に設定されたアドレスが出力されているから、このDEST1に設定されたアドレスがセレクタ205を介して現在アドレスレジスタ206に設定される。現在アドレスレジスタ206に設定されたアドレスは、波形メモリ109に入力し、当該アドレスから波形データが読み出し出力される。アドレス加算器207は、サンプリング周期ごとに、現在アドレス206の値をカウントアップし、その結果をセレクタ205に入力する。セレクタ205は、上述したように最初にDEST1を選択出力した後は、アドレス加算器207からの入力を選択出力する。したがって、現在アドレスレジスタ206の値は、DEST1から順次カウントアップされ、これにより波形メモリのDEST1から波形データが1サンプルずつ読み出される(図3(a)の矢印321)。
【0043】
クロスフェードカーブ発生器211は、読み出しが開始されてから、所定の速度でフェードインするような乗数を乗算器212に出力する。乗算器212は、読み出された波形サンプルにクロスフェードカーブ発生器211からの乗数を乗算して出力する。これにより、波形データの読み出し開始時のフェードインが実現される。
【0044】
比較器209は、フェード開始点レジスタ群203からの出力とアドレス加算器207からの出力とを比較する。いまレジスタ群203からは、レジスタFOUT1に設定されたアドレスが出力されている。これらが一致したとき、すなわち現在アドレスがFOUT1に至ったとき、比較器209は一致信号を出力する。この一致信号は、クロスフェードカーブ発生器211に入力する。クロスフェードカーブ発生器211は、この一致信号により現在アドレスがFOUT1に至ったことを検出し、この時点からレジスタ204に設定された速度でフェードアウトするような乗数を乗算器212に出力する。乗算器212は、読み出された波形サンプルにクロスフェードカーブ発生器211からの乗数を乗算して出力する。これにより、現在アドレスがFOUT1に至ったとき以降のフェードアウトが実現される。
【0045】
比較器208は、ジャンプ元アドレスレジスタ群202からの出力とアドレス加算器207からの出力とを比較する。いまレジスタ群202からは、レジスタTAR1に設定されたアドレスが出力されている。これらが一致したとき、すなわち現在アドレスがTAR1に至ったとき、比較器208は一致信号を出力する。この一致信号は、セレクタ205、カウンタ210、およびクロスフェードカーブ発生器211に入力する。これによりカウンタ210はi=1から2にカウントアップするので、レジスタ群201からはレジスタDEST2に設定されたアドレス、レジスタ群202からはレジスタTAR2に設定されたアドレス、レジスタ群203からはレジスタFOUT2に設定されたアドレスが出力される。また、比較器208からの一致信号を受けたセレクタ205は、ジャンプ先アドレスレジスタ201からの入力を選択出力する。これ以降の動作は、上述のi=1の場合と同様である。カウンタ210がi=1,2,3,4とカウントアップされるのに伴って処理が進み、i=4の後は再びi=1に設定され、上述の処理を繰り返す。なお、CPU101は順次ジャンプ先アドレスDEST1〜4、ジャンプ元アドレスTAR1〜4、およびフェードアウト開始点アドレスFOUT1〜4のデータを書き替えていく。
【0046】
以上のように処理を進めることにより、書込&読出再生部108は、時間軸可変の波形データ再生を実現する。
【0047】
図5は、時間軸制御レジスタ(DEST1〜4,TAR1〜4,FOUT1〜4)の更新タイミングを示す図である。501は読出される波形データを示す。a,b,c,…は、それぞれ時間軸制御レジスタに設定する1セットのデータ(ジャンプ先アドレス、ジャンプ元アドレス、およびフェードアウト開始点アドレス)を示す。
【0048】
読み出しを開始するとき、CPU101は、521に示すように4セット分のデータを時間軸制御レジスタに設定する。矩形521内に記載したabcdは、セットデータa,b,c,dを、この順に、第1〜第4セットレジスタに設定したことを示す。矩形522,523,…についても同様である。読み出し開始タイミング511から、第1セットレジスタに設定されたセットデータaにしたがって波形データが読み出される。セットデータaにしたがう波形データの読み出しが終了すると、次のセットデータbにしたがう波形データの読み出しに移行する。また、セットデータaにしたがう波形データの読み出しが終了したタイミングで割り込みが発生し、CPU101は、この割り込みを契機として時間区間512で次のセットデータeを第1セットレジスタに設定する(522)。同様にして、セットデータbにしたがう波形データの読み出しが終了したタイミングで割り込みが発生し、CPU101は、この割り込みを契機として時間区間513で次のセットデータfを第1セットレジスタに設定する(523)。
【0049】
セットデータの設定は、2セット単位で行なうこともできる。例えば、551に示すように4セット分のデータを設定した後、波形データの読み出しを開始し、セットデータa,bにしたがう波形データ読み出しが終了したタイミングで割り込みを発生させ、時間区間542で2セット分のデータe,fを書き込む。これを繰返すことにより波形データを読出すことができる。
【0050】
上記実施形態によれば、現在の読み出しアドレスがジャンプ元アドレスに達する前に、少なくともその次のジャンプ元アドレスの設定を終えているようにしているので、安定した動作が可能である。
【0051】
なお、上記実施形態では、再生すべき波形データのサンプル数Mをビート数で割り切れる整数としたが、必ずしも割り切れる数でなくてもよい。割り算の結果1以下の分数が生じてしまった場合には、波形データの各ビート先頭位置に、生じてしまった分数に対応する補正をかけてやればよい。例えば、ビート数8で割った結果の余りが3で、分数3/8が生じてしまった場合は、8ビートの波形の3番目と6番目と8番目を+1すればよい。
【0052】
また、各ビートの先頭位置は、必ずしも等間隔である必要はない。ユーザが、各ビートの先頭位置を個別に指定できるようになっていてもよい。あるいは、波形データから音の立ち上がり位置を検出し、その検出結果に基づいて各ビートの先頭位置を自動的に決定するようにしてもよい。
【0053】
各ビート位置が等間隔でない場合、テンポを変えつつ波形データを再生する際の各ビートの長さは、波形データの元のテンポ、再生するテンポ、および各ビート先頭位置間のサンプル数とに基づいて決定するとよい。すなわち、波形データのテンポを変更した場合でも、各ビート毎のサンプル数の比率が保たれるようにする。また、この場合も、再生される全ビート分の波形データのサンプル数がテンポとビート数に応じて決定されるサンプル数に合致するよう補正をかける必要がある。
【0054】
さらにまた、各ビート位置が等間隔でない場合に、そのビート位置をテンポに応じた正確なビート位置に修正し(いわゆる波形データのクォンタイズ)、その修正後のビート位置を基準に時間軸の伸縮を行うようにしてもよい。
【0055】
波形データのビート先頭位置のアドレスをビート数に基づいて毎回算出する必要はない。すなわち、波形データの再生時にビート先頭位置の計算するのではなく、各波形データ毎に予め決定しておいてその波形データに対応するデータとして記憶しておくのがよい。
【0056】
上記実施形態では、レジスタ群201〜204を、ビートを単位として更新していたが、その代わりに、ジャンプを単位に更新を行なうようにしてもよい。すなわち、ジャンプ先アドレスDESTiとジャンプ元アドレスTARiを組として更新を行なうのではなく、ジャンプ元アドレスTARiとジャンプ先アドレスDEST(i+1)とを組にして、その組単位でレジスタの更新を行なうようにしてもよい。
【0057】
【発明の効果】
以上説明したように、この発明によれば、時間軸制御データに基づいてジャンプ元アドレスとジャンプ先アドレスとを設定するだけで、読み出しアドレスを移行させながら読み出しを行なうことができるので、CPUで直接波形サンプルを扱う必要がなく、CPUの負荷が小さい。また、時間軸制御をサンプリング周期で行なうことができる。さらに、ジャンプ元アドレスとジャンプ先アドレスとの組を複数組記憶できるようにしているので、CPUによる制御が一時的に遅れても、時間軸制御された波形データの再生が破綻しない。また、再生すべき時間区間でのサンプル数と、各組のジャンプ先アドレスからジャンプ元アドレスまでの読み出しサンプル数の和にずれがあるときは、ジャンプ先アドレスからジャンプ元アドレスまでの読み出しを所定回数行なうごとに、その所定回数の読み出しの各組のジャンプ先アドレスからジャンプ元アドレスまでの読み出しサンプル数を調整して、ずれ量の補正を行なっているので、例えばディジタルレコーダのテンポマップで規定されたテンポからずれることなく、正確な時間軸制御が可能である。また、各拍ごとに補正をするのに比べて、補正に要する演算量を大幅に減少できる。
【図面の簡単な説明】
【図1】この発明に係る時間軸可変の波形データ再生装置を適用したディジタルレコーダのブロック構成図
【図2】書込&読出再生部による時間軸可変の読出再生機能を実現するための構成図
【図3】書込&読出再生部108による波形メモリの読み出しアドレスの進行の様子を示すタイミング図
【図4】出力される波形データの例を示す図
【図5】時間軸制御レジスタの更新タイミングを示す図
【符号の説明】
101…中央処理装置(CPU)、102…フラッシュメモリ、103…ランダムアクセスメモリ(RAM)、104…表示器、105…フェーダ、106…操作子、107…PC入出力インターフェース(I/O)、111…書込&読出再生部、112…波形メモリ、113…ミキサ、114…波形入力部、115…波形出力部、116…転送部、117…バッファメモリ、118…IDE(Integrated Device Electromics)インターフェース、119…ハードディスク、120…CD−RW(CD-rewritable)ドライブ、130…バスライン130。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a time-variable waveform data reproducing apparatus capable of reproducing waveform data by expanding and contracting in the time axis direction.
[0002]
[Prior art]
Conventionally, a sampler capable of time axis control is known. This can be expanded and contracted in the time axis direction when reproducing sampled (recorded) waveform data. A sampler capable of tempo synchronization is also known. This is because when the loop mode is set, the loop waveform can be synchronized with the tempo, that is, when the tempo of the song changes, the loop waveform is compressed and expanded in the time axis direction in synchronization with the changed tempo. It can be played back.
[0003]
On the other hand, a digital recorder for recording digital data with a tempo map function added is known. In this method, when a new song is created, a tempo map for controlling the tempo change in the song is created prior to recording. For example, the tempo map has a tempo of 100 BPM at the start of the song (BPM is a unit representing the tempo by the number of quarter notes per minute),
[0004]
[Problems to be solved by the invention]
By the way, as a conventional sampler system capable of time axis control as described above, firstly, there is a method in which the CPU arranges each waveform sample in each sampling period to perform compression and expansion in the time axis direction. This is because when the original waveform data is played back in a certain time interval determined according to the tempo, the waveform data is divided, and which sample is read at each sampling period of the time interval is determined and arranged. It is something to do. According to this, expansion and contraction in the time axis direction can be managed with arbitrary accuracy. However, there is a problem that the time axis control processing must be performed for the number of waveform samples corresponding to the sampling frequency every second, and the load on the CPU is large.
[0005]
As a sampler system capable of time axis control, second, a CPU supplies a trigger for starting reproduction of each waveform data sliced to a sound source, and the sound source reproduces each waveform data in accordance with the trigger. is there. According to this, since the CPU only needs to handle data for controlling the reproduction of waveform data such as a trigger (it is not necessary to handle the waveform sample itself), the load on the CPU is small. However, since the CPU performs various processes other than the time axis control of the waveform data, there is a problem that it is difficult to increase the accuracy of the trigger timing.
[0006]
A conventional sampler capable of tempo synchronization has a problem that tempo synchronization with respect to the tempo map of the digital recorder gradually shifts when performing time axis control with the accuracy of the sampling period.
[0007]
The present invention provides a time-variable waveform data reproducing apparatus capable of compressing or expanding waveform data in the time-axis direction, reducing the load on the CPU, and reproducing time-controlled waveform data without failing. Another object of the present invention is to provide a waveform data reproducing apparatus capable of performing reproduction by accurately controlling the time axis without deviating from a predetermined desired tempo as in the case of setting with a tempo map.
[0008]
[Means for Solving the Problems]
In order to achieve this object, the invention according to claim 1A memory for storing a control program; a CPU for controlling the operation of the entire apparatus by executing the control program; waveform storage means for storing waveform data; andWaveform dataReadReproduceAnd a reading / reproducing unitA waveform data reproducing device,The read / playback unit generates a read address that proceeds in sequence, a means for reading out and reproducing waveform data from the waveform storage means with the generated read address, and an address for storing a jump source address and a jump destination address Storage means and readingWhen the address reaches the jump source address,Reading generated by the generating meansMeans for transferring an address to the jump destination address corresponding to the jump source address;And when the readout / reproduction unit is performing readout / reproduction of the waveform data, the CPU includes, based on the time axis control data for controlling expansion / contraction of the time axis of the waveform data, in the waveform data to be read out. Time axis expansion / contraction control of the waveform data to be read is performed by executing processing for sequentially setting a jump source address, which is a predetermined position in the waveform sample unit, and a jump destination address corresponding to the jump source address in the address storage means.It is characterized by that.
[0009]
The invention according to
[0010]
The invention according to
[0011]
The invention according to claim 4A memory for storing a control program; a CPU for controlling the operation of the entire apparatus by executing the control program; waveform storage means for storing waveform data; andWaveform dataReadReproduceAnd a reading / reproducing unitA waveform data reproducing device,The read / playback unit includes a generation unit that generates a read address that sequentially proceeds, a unit that reads and reproduces waveform data from the waveform storage unit using the generated read address,Address storage means for storing a first set, a second set,..., And an Nth set of jump destination addresses expressed in waveform sample units in the waveform data and jump source addresses corresponding to the jump destination addresses. When,For the generating means, first,The first set of jump destination addresses of the waveform dataIs set as the read address of the generating meansAndReadIf the address reaches the first jump source addressKidaiTwo sets of jump destination addressesIs set to the read address of the generating means.,ReadIf the address reaches the second set of jump source addressesKidai3 sets of jump destination addressesIs set to the read address of the generating means....ReadIf the address reaches the Nth set of jump source addressesKidaiA set of jump destination addressesIs set to the read address of the generating means.While using the N sets of addresses cyclically,ReadMigrated addressMakeMeansAnd when the read / playback unit is reading and playing the waveform data, the CPU selects the jump source address from among the N sets of jump destination addresses and jump source addresses stored in the address storage means. A set of the i-th set of jump destination addresses and the i-th set of jump source addresses or the i-th set of jump source addresses and the (i + 1) -th set of jump destination addresses that are already used for the transfer of the read address by the transfer means. Time of waveform data to be read out by executing processing for setting a jump destination address and a jump source address to be used next based on time axis control data for controlling expansion and contraction of the time axis of waveform data. Perform axis expansion / contraction controlIt is characterized by that.
According to a fifth aspect of the present invention, in the waveform data reproducing device according to the fourth aspect, the CPU uses the jump source address used next in the process of setting the jump source address and jump destination address used next. And jump destination addresses are set in the address storage means for one set or two sets.
[0012]
Claim6The invention according to
[0013]
According to a seventh aspect of the present invention, in the waveform data reproducing device according to any one of the first to sixth aspects, the CPU sets each beat in the waveform data prior to the process of setting the jump source address and the jump destination address. Based on the process of determining the start position of each waveform data as the jump destination address of each beat, and the sampling frequency, tempo, time signature and beat of the waveform data to be reproduced,By finding the number of waveform samples in a measure and dividing the number of waveform samples equally by the number of beats in one measureCalculating the number of samples for one beat including an integer part and a fractional part, and calculating the number of samples of waveform data of each beat by adjusting the integer part according to the fractional part; and And a step of determining a position obtained by adding the calculated number of samples of each beat to the head position of the determined waveform data of each beat as a jump source address of each beat.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0015]
FIG. 1 is a block diagram of a digital recorder to which a time-variable waveform data reproducing apparatus according to the present invention is applied. This system includes a central processing unit (CPU) 101, a
[0016]
The
[0017]
The PC I /
[0018]
The
[0019]
The
[0020]
The
[0021]
Recording for one track is performed as follows. The
[0022]
Playback for one track is performed as follows. First, samples of two or more clusters at the head of a track to be reproduced are read from the
[0023]
The IDE I /
[0024]
The recorder function by the
[0025]
FIG. 2 shows a configuration for realizing a reading / reproducing function with variable time axis by the writing & reading reproducing
[0026]
The
[0027]
For
[0028]
Before explaining the operation of each unit in FIG. 2, a method of advancing the read address for reproducing the waveform data by expanding and contracting in the time axis direction will be described.
[0029]
FIG. 3A is a timing chart showing the progress of the read address of the waveform memory by the write & read
[0030]
As described above, as parameters for time axis control, the
[0031]
[0032]
In order to simplify the description, the symbols DEST1 to 4, TAR1 to 4, FOUT1 to 4 indicating the address registers and the addresses set therein are expanded and used to represent the subsequent set addresses. . For example, as for the jump destination address, the registers are used in the order of DEST1, DEST2, DEST3, and DEST4. The address used next to DEST4 uses the data set in the register DEST1 again, but is used next to DEST4. The address to be written is denoted as DEST5. The subsequent addresses are also written in order as DEST6, DEST7,. In other words, an address sequentially calculated by the
[0033]
FIG. 3B shows a state of reading when reading is performed with the waveform data extended from the tempo (at a slower tempo).
[0034]
FIG. 4 shows an example of output waveform data.
[0035]
Next, a specific example in which the
[0036]
(First specific example)
When waveform data is reproduced at a sampling frequency Fs of 44.1 kHz, a tempo of 90 BPM, 4/4 time, and 8 beats, the
1 bar length = (60/90) x 4 = 8/3 seconds
It is. Therefore,
Number of samples in one measure = 44100 x (8/3) = 117600 samples
It is. Since one measure is 8 beats,
1 beat length = 117600/8 = 14700 samples
It is. Therefore, the jump destination address and the jump source address are:
TARi-DESTi = 14700 (1)
It becomes the relationship.
[0037]
The waveform data to be reproduced is prepared by the
DESTj + 1 = DESTj + M / 8 (j = 1-7) (2)
It is. TARi may be obtained from equation (1). That is, each TARi is calculated based on the length per beat corresponding to the tempo and each DESTi (beat start position). As described above, the jump destination address DESTi and the jump source address TARi (i = 1 to 8) for reproducing one measure can be calculated. The fade-out start point address FOUTi may be set a predetermined sample before the jump source address TARi. However, in the case of FIG. 3B, the end position of each beat is set as FOUTi.
[0038]
(Second specific example)
When reproducing waveform data at a sampling frequency Fs of 44.1 kHz, tempo 95 BPM, 4/4 time, 8 beats, the
1 bar length = (60/95) x 4 = 48/19 seconds
It is. Therefore,
Number of samples in one measure = 44100 × (48/19) = 111410 + (10/19) samples (11)
It is. From the integer part 111410 of the above equation (11),
Length of one beat = 111410/8 = 13926 + (1/4) sample (12)
It is. So, jump destination address and jump source address,
TARi-DESTi = 13927 (when i = 4, 8) (14)
Set so that This is because the length of one beat for three readings is set to 13926 samples and the length of one beat for the next reading is set to 13927 samples in order to adjust the ¼ sample in equation (12). Is. Similarly, in order to adjust 10/19 samples in Equation (11), 10 out of 19 bars read 111411 samples, and the remaining 9 bars read 111410 samples. For example, the number of read samples at the eighth beat of the second, fourth, sixth, eighth, tenth, twelfth, fourteenth, sixteenth, eighteenth and nineteenth measures (for ten measures) may be incremented by one.
[0039]
Although the tempo correction is performed at the last beat here, it may be performed at the first beat or the middle beat. Further, the tempo correction may be performed not in units of one measure but in units of a plurality of measures or in units of arbitrary multiple beats.
[0040]
Returning to FIG. 2, the operation of the write & read
[0041]
The
[0042]
When reading is started, the
[0043]
The cross
[0044]
The
[0045]
The
[0046]
By proceeding as described above, the writing & reading
[0047]
FIG. 5 is a diagram showing the update timing of the time axis control registers (DEST1 to 4, TAR1 to 4, FOUT1 to 4).
[0048]
When starting the reading, the
[0049]
Set data can be set in units of two sets. For example, after four sets of data are set as shown at 551, waveform data reading is started, and an interrupt is generated at the timing when waveform data reading according to the set data a and b is completed. Write set data e and f. By repeating this, the waveform data can be read.
[0050]
According to the embodiment, since the setting of at least the next jump source address is completed before the current read address reaches the jump source address, stable operation is possible.
[0051]
In the above embodiment, the number M of samples of waveform data to be reproduced is an integer divisible by the number of beats. However, the number may not necessarily be divisible. If a fraction of 1 or less occurs as a result of the division, correction corresponding to the generated fraction may be applied to each beat start position of the waveform data. For example, if the remainder of the result of dividing by the number of beats is 3 and a fraction of 3/8 is generated, the third, sixth and eighth positions of the 8-beat waveform may be incremented by one.
[0052]
Further, the start positions of the beats do not necessarily have to be equally spaced. The user may be able to individually specify the start position of each beat. Alternatively, the rising position of the sound may be detected from the waveform data, and the head position of each beat may be automatically determined based on the detection result.
[0053]
If the beat positions are not equally spaced, the length of each beat when playing waveform data while changing the tempo is based on the original tempo of the waveform data, the playback tempo, and the number of samples between each beat start position. It is good to decide. That is, even when the tempo of the waveform data is changed, the ratio of the number of samples for each beat is maintained. Also in this case, it is necessary to perform correction so that the number of samples of waveform data for all beats to be reproduced matches the number of samples determined according to the tempo and the number of beats.
[0054]
Furthermore, when each beat position is not equally spaced, the beat position is corrected to an accurate beat position according to the tempo (so-called waveform data quantization), and the time axis is expanded or contracted based on the corrected beat position. You may make it perform.
[0055]
It is not necessary to calculate the beat start position address of the waveform data every time based on the number of beats. That is, instead of calculating the beat start position when reproducing the waveform data, it is preferable to predetermine each waveform data and store it as data corresponding to the waveform data.
[0056]
In the above-described embodiment, the
[0057]
【The invention's effect】
As described above, according to the present invention, it is possible to perform reading while shifting the read address by simply setting the jump source address and the jump destination address based on the time axis control data. There is no need to handle waveform samples and the load on the CPU is small. Further, the time axis control can be performed at the sampling period. Furthermore, since a plurality of sets of jump source addresses and jump destination addresses can be stored, even if the control by the CPU is temporarily delayed, the reproduction of the waveform data controlled in time axis does not fail. If there is a difference between the number of samples in the time interval to be played back and the number of read samples from each jump destination address to the jump source address, the number of reads from the jump destination address to the jump source address is a predetermined number of times. Each time it is performed, the number of read samples from the jump destination address to the jump source address of each set of the predetermined number of times of read is adjusted to correct the deviation amount. For example, it is defined by the tempo map of the digital recorder Accurate time axis control is possible without deviating from the tempo. In addition, the amount of calculation required for correction can be greatly reduced as compared with correction for each beat.
[Brief description of the drawings]
FIG. 1 is a block diagram of a digital recorder to which a time axis variable waveform data reproducing apparatus according to the present invention is applied.
FIG. 2 is a block diagram for realizing a time-variable reading / reproducing function by a writing & reading reproducing unit;
FIG. 3 is a timing chart showing how a read address of a waveform memory is advanced by the write & read
FIG. 4 is a diagram showing an example of output waveform data
FIG. 5 is a diagram showing the update timing of the time axis control register
[Explanation of symbols]
DESCRIPTION OF
Claims (7)
前記制御プログラムを実行して、装置全体の動作の制御を行なうCPUと、
波形データを記憶する波形記憶手段と、
前記CPUにより制御され、前記波形記憶手段から波形データを読み出して再生する読出再生部とを備えた波形データ再生装置であって、
前記読出再生部は、
順次進行する読出アドレスを生成する生成手段と、
生成された読出アドレスで波形記憶手段から波形データを読み出して再生する手段と、
ジャンプ元アドレスとジャンプ先アドレスとを記憶するアドレス記憶手段と、
読出アドレスが前記ジャンプ元アドレスに達したら、前記生成手段が生成する読出アドレスを、前記ジャンプ元アドレスに対応する前記ジャンプ先アドレスに移行させる手段とを備えており、
前記読出再生部が前記波形データの読み出し再生を行なっているとき、前記CPUが、
波形データの時間軸の伸縮を制御する時間軸制御データに基づいて、読み出し対象の波形データ中の波形サンプル単位の所定位置であるジャンプ元アドレスと該ジャンプ元アドレスに対応するジャンプ先アドレスとを前記アドレス記憶手段に順次設定する処理を実行することにより、読み出される波形データの時間軸伸縮制御を行なうことを特徴とする波形データ再生装置。A memory for storing a control program;
A CPU that executes the control program and controls the operation of the entire apparatus;
Waveform storage means for storing waveform data;
A waveform data reproducing apparatus comprising a read / reproducing unit that is controlled by the CPU and reads out and reproduces waveform data from the waveform storage means;
The read / playback unit
Generating means for generating read addresses that proceed sequentially;
Means for reading and reproducing the waveform data from the waveform storage means at the generated read address;
Address storage means for storing a jump source address and a jump destination address;
Means for shifting the read address generated by the generating means to the jump destination address corresponding to the jump source address when the read address reaches the jump source address;
When the read / playback unit is reading and playing the waveform data, the CPU
Based on the time axis control data for controlling the expansion and contraction of the time axis of the waveform data, the jump source address that is a predetermined position of the waveform sample unit in the waveform data to be read and the jump destination address corresponding to the jump source address A waveform data reproducing apparatus for performing time-axis expansion / contraction control of waveform data to be read out by executing processing for sequentially setting in an address storage means.
前記CPUは、前記ジャンプ元アドレスとジャンプ先アドレスとを設定する処理において、
現在の読出アドレスが、設定されているジャンプ元アドレスに達する前に、少なくともその次のジャンプ元アドレスの設定を終えていることを特徴とする波形データ再生装置。The waveform data reproducing device according to claim 1,
In the process of setting the jump source address and the jump destination address, the CPU
A waveform data reproducing apparatus, wherein at least the next jump source address has been set before the current read address reaches the set jump source address.
前記波形記憶手段に記憶されている波形データには複数ビート分の波形データが含まれており、
前記CPUは、前記ジャンプ元アドレスとジャンプ先アドレスとを設定する処理において、前記ジャンプ先アドレスを、前記波形データの複数のビート先頭位置の各々に順次設定することを特徴とする波形データ再生装置。The waveform data reproducing device according to claim 1,
The waveform data stored in the waveform storage means includes waveform data for a plurality of beats,
The CPU sequentially sets the jump destination address to each of a plurality of beat head positions of the waveform data in the process of setting the jump source address and the jump destination address.
前記制御プログラムを実行して、装置全体の動作の制御を行なうCPUと、
波形データを記憶する波形記憶手段と、
前記CPUにより制御され、前記波形記憶手段から波形データを読み出して再生する読出再生部とを備えた波形データ再生装置であって、
前記読出再生部は、
順次進行する読出アドレスを生成する生成手段と、
生成された読出アドレスで波形記憶手段から波形データを読み出して再生する手段と、
前記波形データ中の波形サンプル単位で表したジャンプ先アドレスと該ジャンプ先アドレスに対応するジャンプ元アドレスとを、第1組、第2組、…、および第N組のN組記憶するアドレス記憶手段と、
前記生成手段に対し、まず、前記波形データの第1組のジャンプ先アドレスを前記生成手段の読出アドレスに設定し、読出アドレスが第1組のジャンプ元アドレスに至ったとき第2組のジャンプ先アドレスを前記生成手段の読出アドレスに設定し、読出アドレスが第2組のジャンプ元アドレスに至ったとき第3組のジャンプ先アドレスを前記生成手段の読出アドレスに設定し、…、読出アドレスが第N組のジャンプ元アドレスに至ったとき第1組のジャンプ先アドレスを前記生成手段の読出アドレスに設定し、…というように、前記N組のアドレスを巡回的に使用しつつ読出アドレスを移行させる手段とを
備えており、
前記読出再生部が前記波形データの読み出し再生を行なっているとき、前記CPUが、
前記アドレス記憶手段が記憶するN組のジャンプ先アドレスとジャンプ元アドレスのうち、ジャンプ元アドレスが前記移行させる手段によって読出アドレスの移行に既に使用されている第i組のジャンプ先アドレスと第i組のジャンプ元アドレスとのセットまたは第i組のジャンプ元アドレスと第(i+1)組のジャンプ先アドレスとのセットに対し、波形データの時間軸の伸縮を制御する時間軸制御データに基づいて、次に用いるジャンプ先アドレスおよびジャンプ元アドレスを設定する処理を実行することにより、読み出される波形データの時間軸伸縮制御を行なうことを特徴とする波形データ再生装置。A memory for storing a control program;
A CPU that executes the control program and controls the operation of the entire apparatus;
Waveform storage means for storing waveform data;
A waveform data reproducing apparatus comprising a read / reproducing unit that is controlled by the CPU and reads out and reproduces waveform data from the waveform storage means;
The read / playback unit
Generating means for generating read addresses that proceed sequentially;
Means for reading and reproducing the waveform data from the waveform storage means at the generated read address;
Address storage means for storing a first set, a second set,..., And an Nth set of jump destination addresses expressed in waveform sample units in the waveform data and jump source addresses corresponding to the jump destination addresses. When,
First, for the generation means, the first set of jump destination addresses of the waveform data is set as the read address of the generation means, and when the read address reaches the first set of jump source addresses, the second set of jump destination addresses. The address is set to the read address of the generating means, and when the read address reaches the second set of jump source addresses, the third set of jump destination addresses is set to the read address of the generating means,. When N sets of jump source addresses are reached, the first set of jump destination addresses is set as the read address of the generating means, and the read addresses are shifted while cyclically using the N sets of addresses. Means and
When the read / playback unit is reading and playing the waveform data, the CPU
Of the N sets of jump destination addresses and jump source addresses stored in the address storage means, the i th jump destination address and the i th set that have already been used for transfer of the read address by the means for shifting the jump source address Next, based on the time axis control data for controlling the expansion and contraction of the time axis of the waveform data, for the set of the jump source address of the first group or the set of the i th jump source address and the (i + 1) th jump destination address, A waveform data reproducing apparatus for performing time axis expansion / contraction control of waveform data to be read out by executing a process of setting a jump destination address and a jump source address used in
前記CPUは、前記次に用いるジャンプ元アドレスおよびジャンプ先アドレスを設定する処理の際に、
前記次に用いるジャンプ元アドレスおよびジャンプ先アドレスを、前記アドレス記憶手段に、1セット分または2セット分ずつ設定することを特徴とする波形データ再生装置。In the waveform data reproducing device according to claim 4,
The CPU sets the jump source address and the jump destination address to be used next,
The waveform data reproducing apparatus characterized in that the next jump source address and the jump destination address to be used next are set in the address storage means for one set or two sets.
前記CPUは、前記次に用いるジャンプ元アドレスおよびジャンプ先アドレスを設定する処理を、
前記N組のうちの既に読み出しに使用されたアドレスの組が次に読み出しに使用されるまでの所定のタイミングで実行することを特徴とする波形データ再生装置。In the waveform data reproducing device according to claim 4,
The CPU performs a process of setting a jump source address and a jump destination address to be used next.
The waveform data reproducing apparatus, which is executed at a predetermined timing until a set of addresses already used for reading out of the N sets is used for next reading.
前記CPUは、前記ジャンプ元アドレスとジャンプ先アドレスとを設定する処理に先立って、
前記波形データ中の各ビートの波形データの先頭位置を、それぞれ、各ビートのジャンプ先アドレスとして決定する過程と、
再生する波形データのサンプリング周波数とテンポと拍子とビートとに基づいて、1小節中の波形サンプルの数を求め、その波形サンプルの数を1小節のビートの数で均等に分割することにより整数部と分数部とを含む1ビート分のサンプル数を算出し、該整数部に対して該分数部に応じた調整を加えることにより各ビートの波形データのサンプル数を算出する過程と、
前記決定された各ビートの波形データの先頭位置に算出された各ビートのサンプル数を加算した位置を、それぞれ、各ビートのジャンプ元アドレスとして決定する過程と
を実行することを特徴とする波形データ再生装置。In the waveform data reproducing device according to any one of claims 1 to 6,
Prior to the process of setting the jump source address and the jump destination address, the CPU
A process of determining the start position of the waveform data of each beat in the waveform data as a jump destination address of each beat;
Based on the sampling frequency, tempo, time signature, and beat of the waveform data to be reproduced, the number of waveform samples in one measure is obtained, and the number of waveform samples is equally divided by the number of beats in one measure. And calculating the number of samples of waveform data of each beat by calculating the number of samples for one beat including the fractional part and adjusting the integer part according to the fractional part,
And determining the position obtained by adding the calculated number of samples of each beat to the start position of the waveform data of each beat determined as a jump source address of each beat. Playback device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002084690A JP3656906B2 (en) | 2002-03-26 | 2002-03-26 | Waveform data playback device with variable time axis |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002084690A JP3656906B2 (en) | 2002-03-26 | 2002-03-26 | Waveform data playback device with variable time axis |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003280663A JP2003280663A (en) | 2003-10-02 |
JP3656906B2 true JP3656906B2 (en) | 2005-06-08 |
Family
ID=29231914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002084690A Expired - Fee Related JP3656906B2 (en) | 2002-03-26 | 2002-03-26 | Waveform data playback device with variable time axis |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3656906B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090223352A1 (en) * | 2005-07-01 | 2009-09-10 | Pioneer Corporation | Computer program, information reproducing device, and method |
JP2010113176A (en) * | 2008-11-07 | 2010-05-20 | Korg Inc | Music data recording/reproducing device |
-
2002
- 2002-03-26 JP JP2002084690A patent/JP3656906B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003280663A (en) | 2003-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6011064B2 (en) | Automatic performance device and program | |
US8772618B2 (en) | Mixing automatic accompaniment input and musical device input during a loop recording | |
US6441290B2 (en) | Apparatus and method for reproducing or recording, via buffer memory, sample data supplied from storage device | |
US9899016B2 (en) | Musical sound signal generation apparatus that generates sound emulating sound emitting from a rotary speaker | |
JP4998046B2 (en) | Music generator | |
JP5655713B2 (en) | Movie playback device, movie playback method and program | |
JP3656906B2 (en) | Waveform data playback device with variable time axis | |
JP2010113278A (en) | Music processing device and program | |
US7396989B2 (en) | Waveform generating device | |
JP3980750B2 (en) | Electronic musical instruments | |
US6207885B1 (en) | System and method for rendition control | |
JP6531432B2 (en) | Program, sound source device and acoustic signal generation device | |
JP4084858B2 (en) | Waveform playback device | |
JP4037973B2 (en) | Waveform playback device | |
JP2002175080A (en) | Waveform data generating method, waveform data generating apparatus and recording medium | |
JP4066319B2 (en) | Digital recorder with sampler function | |
JP4236570B2 (en) | Waveform playback device and waveform playback program | |
JP4685226B2 (en) | Automatic performance device for waveform playback | |
JP3095018B2 (en) | Music generator | |
JP3770030B2 (en) | Recording / playback device | |
JP2004219495A (en) | Electronic musical instrument | |
JP5548975B2 (en) | Performance data generating apparatus and program | |
JP4097785B2 (en) | Waveform playback device | |
JP5104418B2 (en) | Automatic performance device, program | |
JP5239432B2 (en) | Tone generator and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040830 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041125 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050124 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050303 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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: 20090318 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090318 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100318 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110318 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110318 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120318 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130318 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140318 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |