[go: up one dir, main page]

JP3656906B2 - Waveform data playback device with variable time axis - Google Patents

Waveform data playback device with variable time axis Download PDF

Info

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
Application number
JP2002084690A
Other languages
Japanese (ja)
Other versions
JP2003280663A (en
Inventor
圭介 三方
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2002084690A priority Critical patent/JP3656906B2/en
Publication of JP2003280663A publication Critical patent/JP2003280663A/en
Application granted granted Critical
Publication of JP3656906B2 publication Critical patent/JP3656906B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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】
請求項に係る発明は、請求項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)
である。そこで、ジャンプ先アドレスとジャンプ元アドレスとを、

Figure 0003656906
・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), tempo 120 BPM from the 10th measure, 100 BPM again from the 14th measure, ... Is a screen for presetting the tempo of each range of the song. Thereby, the user can set arbitrary tempo information within an arbitrary range in the song. During recording, a metronome sound with a tempo corresponding to the created tempo map is generated, and the performer plays his part while listening to the metronome sound. Record the performance on the track corresponding to the part. In this way, the performance of each part of the plurality of parts is performed sequentially, and the musical tones that have been performed are recorded on different tracks. After the performances of all parts are recorded, the musical sounds recorded on a plurality of tracks are mixed down to obtain, for example, stereo two-channel musical sounds. As described above, a plurality of tracks can be recorded at a tempo according to the setting of the tempo map.
[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 claim 2 is described in claim 1.Wave ofData playback deviceBecause,In the process of setting the jump source address and the jump destination address, the CPUCurrentReadAddressIs setBefore reaching the jump source addressSmallAt least the next jump source address has been set.
[0010]
  The invention according to claim 3 is described in claim 1.Wave ofData playback deviceBecause,The waveform data stored in the waveform storage means includes waveform data for a plurality of beats, and the CPUSaidJump source address andJump destination addressAndSetIn processing, The jump destination addressWaveShape dataofMultiple beat start positionsTo each ofIt is characterized by setting sequentially.
[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 claim 4 is the waveform data reproducing device with variable time axis 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 set of addresses already used for reading out of the N setsButNextRead onAt a predetermined timing until it is usedExecuteIt is characterized by that.
[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 flash memory 102, a random access memory (RAM) 103, a display 104, a fader 105, an operator 106, a PC input / output interface (I / O) 107, writing and reading. Playback unit 111, waveform memory 112, mixer 113, waveform input unit 114, waveform output unit 115, transfer unit 116, buffer memory 117, IDE (Integrated Device Electromics) interface 118, hard disk 119, CD-RW (CD-rewritable) drive 120 and a bus line 130.
[0016]
The CPU 101 is a processing device that controls the overall operation of the system. The flash memory 102 is a nonvolatile memory that stores various control programs executed by the CPU 101 and various data used by the CPU 101. The flash memory 102 can be rewritten, and stored information is not lost even when the power is turned off. The RAM 103 is a volatile memory used for a load area and a work area for programs executed by the CPU 101. The display device 104 is a display for displaying various information provided on the external panel of the system. A fader 105 is an operator for setting various parameter values provided on the external panel of the system. The operator 106 is various operators provided on the external panel of this system. The operation element 106 includes a plurality of pads for operation by the user.
[0017]
The PC I / O 107 is an interface for connecting to an external PC device. The write & read reproduction unit 111 is a part for realizing a sampler function to be described later, writes waveform data input from the outside to the waveform memory 112, and reads and reproduces the waveform data stored in the waveform memory 112. Perform processing. The waveform memory 112 is a storage device that stores externally input waveform data (sampled).
[0018]
The mixer 113 includes a waveform data from the waveform memory 112 input via the write & read reproduction unit 111, a waveform data input from the waveform input unit 114, and a hard disk 119 and a CD-RW drive input via the transfer unit 116. Waveform data from 120 are mixed in any combination. The mixing result is output to the waveform output unit 115 and the transfer unit 116. The waveform input unit 114 converts an analog musical tone signal input from a microphone into digital waveform data and supplies the digital waveform data to the mixer 113. The waveform output unit 115 outputs the waveform data supplied from the mixer 113. The output waveform data is converted into an analog musical tone signal as necessary and emitted by a sound system (not shown).
[0019]
The mixer 113 is actually constituted by a digital signal processor (DSP). The mixer 113 performs the processing of a plurality of tracks in parallel by time division multiplexing processing performed in units of sampling periods. The input / output to / from the mixer 113 is basically to input / output one sample of waveform data at one sampling period. The peripheral units that perform waveform input / output with respect to the mixer 113 input / output waveform data in synchronization with the time division processing of the mixer 113. For example, when a performance sound input from a predetermined microphone is recorded on a predetermined track, the waveform data input from the microphone and converted into digital data by the waveform input unit 114 is time for the mixer 113 to process the track. The timing is adjusted so that the waveform is supplied from the waveform input unit 114 to the mixer 113 by a thread. Similarly, the waveform data output in the time thread for outputting the waveform of the track from the mixer 113 is received by the transfer unit 116 at the output timing, and the waveform data is written in the file corresponding to the track. It is processed.
[0020]
The transfer unit 116 controls transfer between the hard disk 119 and the buffer memory 117 and transfer between the buffer memory 117 and the mixer 113 (1 sample / sampling period × reproduction or number of recording tracks) in accordance with an instruction from the CPU 101. The buffer memory 117 is provided with storage areas for a plurality of tracks, and can be recorded / reproduced for a plurality of tracks simultaneously.
[0021]
Recording for one track is performed as follows. The transfer unit 116 receives the sample from the mixer 113 at the timing of the sampling period at which one sample of waveform data to be recorded on the track is output, and writes the sample in the storage area of the track in the buffer memory 117. When a sample for one cluster is accumulated in the storage area of the track of the buffer memory 117, the sample is transferred to the track storage area of the hard disk 119. The waveform data is transferred from the transfer unit 116 to the hard disk 119 when data for one cluster is accumulated, and is independent of the transfer synchronized with the sampling period between the mixer 113 and the transfer unit 116. Accordingly, the above-described writing operation to the buffer memory 117 is continued while the transfer from the transfer unit 116 to the hard disk 119 is performed.
[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 hard disk 119 and written in a storage area corresponding to the track in the buffer memory 117. The transfer unit 116 reads one sample of the track from the buffer memory 117 and passes it to the mixer 113 at the timing of the sampling period when the mixer 113 inputs the waveform data of the track. When an empty area for one cluster (storage area for the sample that has been reproduced) is created in the buffer memory 117, data for the subsequent one cluster is transferred from the hard disk 119 to the empty area. The data transfer from the hard disk 119 to the buffer memory 117 is performed independently of the data transfer between the mixer 113 and the transfer unit 116 as in the case of recording.
[0023]
The IDE I / O 118 is an interface for connecting the hard disk 119 and the CD-RW drive 120 to the transfer unit 116. The IDEI / O 118 is also an interface between the hard disk 119 and the CD-RW drive 120 and the CPU 101, flash memory 102, and RAM 103. The hard disk 119 is an external storage device for storing performance data. The CD-RW drive 120 is a device that reads or writes data by inserting a CD, CD-R, or CD-RW.
[0024]
The recorder function by the transfer unit 116 and the sampler function realized by using the writing & reading reproduction unit 111 will be described. The CPU 101 reads the waveform data written in the hard disk 119 using the recorder function by the transfer unit 116 as described above, and creates waveform data to be stored in the waveform memory 112 from the waveform data on the RAM 103. For example, the recorded waveform data is cut off before and after it so that it fits into one measure of four quarters. The created waveform data is written into the waveform memory 112 in accordance with an instruction from the CPU 101. This system includes a plurality of pads. When each pad is operated during reproduction, the waveform data on the waveform memory 112 assigned to the pad is read and reproduced. At this time, it is possible to compress and expand the time axis of the waveform data. The time-axis compression / decompression is performed by the writing & reading reproduction unit 108 in accordance with an instruction from the CPU 101.
[0025]
FIG. 2 shows a configuration for realizing a reading / reproducing function with variable time axis by the writing & reading reproducing unit 108 of FIG. The write & read reproduction unit 108 includes a jump destination address register group (DEST1-4), a jump source address register group (TAR1-4), a fadeout start point register group (FOUT1-4), a fade speed register (RATE) 204, A selector 205, a current address register 206, an address adder 207, comparators 208 and 209, a counter 210, a crossfade curve generator 211, and a multiplier 212 are provided. The write & read reproduction unit 108 can perform processing of a plurality of channels by time division multiplex processing. Here, the configuration for one channel is shown.
[0026]
The register groups 201 to 204 are registers used when reproducing waveform data on this channel. The CPU 101 can read waveform data that is time-axis controlled as desired by setting values in these register groups 201 to 204. The jump destination address register group (DEST1 to 4) 201 is a register for setting four jump destination addresses. The jump source address register group (TAR1 to 4) 202 is a setting register for four jump source addresses. The fade-out start point register group 203 is a register that sets four fade-out start point addresses indicating positions where fade-out is started. The fade speed register 204 is a register for setting a fade-out speed (rate).
[0027]
For register groups 201 to 203 each composed of four registers, n = 1 to 4 and DESTn, TARn, and FOUTn are used as one set (4 sets in total). One set of DESTn, TARn, and FOUTn is called an nth set register. Note that a register and data set in the register are referred to by the same symbol. For example, the data set in the register DEST1 for setting the jump destination address is called the jump destination address DEST1.
[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 reproduction unit 108. 301 represents the waveform data to be read. The right-pointing arrows 321, 322, and 323 above them indicate the directions in which waveform samples are read from the waveform data 301 at each sampling period. That is, the read address proceeds in the direction of the arrow. Note that the reading speed of the waveform data from the waveform memory is constant at one sample / sampling period for each channel. The waveform data to be read has a unique tempo (tempo when sampling), but this tempo may be an arbitrary value.
[0030]
As described above, as parameters for time axis control, the CPU 101 determines, for each channel (that is, for each sound generation), jump destination addresses DEST1 to DEST4, jump source addresses TAR1 to 4, and fade-out start point addresses FOUT1 to FOUT1. 4 sets of 4 data and one fade speed RATE can be set. Reading of the waveform data starts from the jump destination address DEST1. As shown by the arrow 321, the read address is advanced by one for each sampling period to read the waveform sample. When the waveform sample is advanced to the jump source address TAR1, the read address is shifted to the next jump destination address DEST2. Similarly, when the read address is advanced from the jump destination address DEST2 as shown by the arrow 322 and the next jump source address TAR2 is advanced, the process proceeds to the next jump destination address DEST3. The read address is advanced in this way, and when the jump source address TAR4 is reached, the read address is shifted to the next jump destination address DEST1. By the time the read address is jumped from TAR4 to DEST1, the addresses DEST1, TAR1, and FOUT1 are rewritten to the next data to be used. In this way, among the four sets of address registers described above, the CPU 101 sequentially updates the register that has been read by the address written therein, in units of sets, as shown in FIG. The time-controlled waveform data is continuously reproduced.
[0031]
Reference numeral 331 in FIG. 3 indicates the state of fade-in and fade-out of waveform data that is read out by advancing the read address as indicated by an arrow 321. When reading is started from the jump destination address DEST1, fade-in is performed at a predetermined speed and waveform data is output. The fade-out timing 311 is controlled so that the fade-out is started when the fade-out start point address FOUT1 is reached, and the fade-out is ended when the jump source address TAR1 is reached. The same applies to the waveform data 332 and 333 in the subsequent reading. The fade-out speed is based on the setting of the fade speed register 204.
[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 CPU 101 as a jump destination address is DESTn (n is a positive integer), DEST1 → DEST2 → DEST3 → DEST4 → DEST5 → DEST6 →... → DESTn (n is a positive integer) →. Address DESTn is stored in register DESTn ′ (where n ′ is the remainder when (1) n divided by 4 is 1 to 3, and (2) when n is divisible by 4) It is set to). The same applies to TARn and FOUTn.
[0033]
FIG. 3B shows a state of reading when reading is performed with the waveform data extended from the tempo (at a slower tempo). Reference numerals 341 to 343 denote waveform data. The waveform data is preliminarily divided into beat units, and 341 indicates the first beat, 342 indicates the second beat, and 343 indicates the third beat. Even when the tempo is slowed down, the address advance is the same as described with reference to FIG. However, fade-out from the position where the data 341 of the first beat that started reading from DEST1 ends, playback of the first beat is completed up to TAR1 through a silent period, reading continues from DEST2, and the second beat is started. Fading out from the position where the data 342 ends, the playback of the second beat is finished up to TAR2 through the silent section, and so on. Here, the end position of the first beat data 341 is FOUT1, the end position of the second beat data 342 is FOUT2, and so on, but the position of FOUT is not limited to this. However, it is necessary to fade out to a position where the attack portion of the next beat is not output.
[0034]
FIG. 4 shows an example of output waveform data. Reference numeral 401 denotes output waveform data. BLOCK 0, 1, 2,... Therein indicate waveform data read from the jump destination address DESTn such as 331, 332, and 333 in FIG. 402 is an enlarged view of BLOCK0-3. The waveform data read by each BLOCK is connected.
[0035]
Next, a specific example in which the CPU 101 sets a jump destination address, a jump source address, and a fade-out start point address will be described.
[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 CPU 101 calculates the number of samples per beat as follows. First, because the tempo is 90 BPM and 4/4 time,
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 CPU 101 by editing the sampled waveform. Therefore, for example, waveform data such as a waveform for 8 beats used for 4/4 time signatures or a waveform for 12 beats used for 3 time signatures can be generated. Here, the waveform data to be reproduced is data of which the number of samples for 8 beats is M (M is an integer divisible by 8), and the time axis control is performed so that this waveform data is reproduced in one measure at the above-described tempo. Then. First, the top address of the waveform data is set in DEST1. Further, since there are 8 beats per bar, there is a beat start position for every M / 8 samples from the beginning of the waveform data. Therefore,
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 CPU 101 calculates the number of samples per beat as follows. First, because the tempo is 95 BPM and 4/4 time,
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,
Figure 0003656906
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 reproduction unit 108 for performing the time axis variable waveform data reproduction described with reference to FIGS. 3 and 4 will be described in detail.
[0041]
The CPU 101 sets four sets of data of the jump destination addresses DEST1 to DEST4, the jump source addresses TAR1 to TAR4, and the fadeout start point addresses FOUT1 to FEAT4 calculated as described above and the fade speed RATE in the register groups 201 to 204. The counter 210 is a register that holds values of i = 1 to 4 that specify a register set to be used. Since the counter 210 is initialized to i = 1 when reading is started, first, the addresses (DEST1, TAR1, FOUT1) of the first set registers are output from the register groups 201-203, respectively.
[0042]
When reading is started, the selector 205 first selects and outputs the input from the jump destination address register group 201. Since the address set in the register DEST 1 is now output from the register group 201, the address set in the DEST 1 is set in the current address register 206 via the selector 205. The address set in the current address register 206 is input to the waveform memory 109, and the waveform data is read out from the address and output. The address adder 207 counts up the value of the current address 206 for each sampling period, and inputs the result to the selector 205. The selector 205 selects and outputs the input from the address adder 207 after first selecting and outputting DEST1 as described above. Therefore, the value of the current address register 206 is sequentially counted up from DEST1, thereby reading out waveform data sample by sample from DEST1 of the waveform memory (arrow 321 in FIG. 3A).
[0043]
The cross fade curve generator 211 outputs a multiplier that fades in at a predetermined speed to the multiplier 212 after the reading is started. The multiplier 212 multiplies the read waveform sample by the multiplier from the crossfade curve generator 211 and outputs the result. Thereby, fade-in at the start of reading waveform data is realized.
[0044]
The comparator 209 compares the output from the fade start point register group 203 with the output from the address adder 207. From the register group 203, the address set in the register FOUT1 is output. When they match, that is, when the current address reaches FOUT1, the comparator 209 outputs a match signal. This coincidence signal is input to the crossfade curve generator 211. The crossfade curve generator 211 detects that the current address has reached FOUT1 based on the coincidence signal, and outputs a multiplier that fades out at the speed set in the register 204 to the multiplier 212 from this point. The multiplier 212 multiplies the read waveform sample by the multiplier from the crossfade curve generator 211 and outputs the result. As a result, the fade-out after the current address reaches FOUT1 is realized.
[0045]
The comparator 208 compares the output from the jump source address register group 202 with the output from the address adder 207. The address set in the register TAR1 is output from the register group 202 now. When they match, that is, when the current address reaches TAR1, the comparator 208 outputs a match signal. The coincidence signal is input to the selector 205, the counter 210, and the crossfade curve generator 211. As a result, the counter 210 counts up from i = 1 to 2, so that the address set in the register DEST2 from the register group 201, the address set in the register TAR2 from the register group 202, and the register FOUT2 from the register group 203 The set address is output. Further, the selector 205 that has received the coincidence signal from the comparator 208 selects and outputs the input from the jump destination address register 201. The subsequent operation is the same as in the case of i = 1. The processing proceeds as the counter 210 counts up to i = 1, 2, 3, 4, and after i = 4, i = 1 is set again, and the above processing is repeated. The CPU 101 sequentially rewrites the data of the jump destination addresses DEST1 to DEST4, the jump source addresses TAR1 to TAR4, and the fade-out start point addresses FOUT1 to FOUT4.
[0046]
By proceeding as described above, the writing & reading reproduction unit 108 realizes waveform data reproduction with a variable time axis.
[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). Reference numeral 501 denotes waveform data to be read. a, b, c,... each indicate a set of data (jump destination address, jump source address, and fade-out start point address) set in the time axis control register.
[0048]
When starting the reading, the CPU 101 sets four sets of data in the time axis control register as indicated by 521. The abcd described in the rectangle 521 indicates that the set data a, b, c, d are set in the first to fourth set registers in this order. The same applies to the rectangles 522, 523,. From the read start timing 511, the waveform data is read according to the set data a set in the first set register. When the reading of the waveform data according to the set data a is completed, the process proceeds to reading of the waveform data according to the next set data b. Further, an interrupt is generated at the timing when the reading of the waveform data according to the set data a is completed, and the CPU 101 sets the next set data e in the first set register in the time interval 512 using this interrupt (522). Similarly, an interrupt is generated at the timing when the reading of the waveform data according to the set data b is completed, and the CPU 101 sets the next set data f in the first set register in the time interval 513 using this interrupt as a trigger (523). ).
[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 register groups 201 to 204 are updated in units of beats, but instead, updating may be performed in units of jumps. That is, instead of updating the jump destination address DESTi and the jump source address TARi as a set, the jump source address TARI and the jump destination address DEST (i + 1) are set as a set and the register is updated in units of the set. May be.
[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 reproduction unit 108;
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 SYMBOLS 101 ... Central processing unit (CPU), 102 ... Flash memory, 103 ... Random access memory (RAM), 104 ... Display, 105 ... Fader, 106 ... Operator, 107 ... PC input / output interface (I / O), 111 DESCRIPTION OF SYMBOLS WRITE & READ REPRODUCING UNIT 112 ... WAVEFORM MEMORY, 113 ... MIXER, 114 ... WAVEFORM INPUT UNIT, 115 ... WAVEFORM OUTPUT UNIT, 116 ... TRANSFER, 117 ... BUFFER MEMORY, 118 ... IDE (Integrated Device Electromics) Interface ... Hard disk, 120... CD-RW (CD-rewritable) drive, 130.

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.
請求項1に記載の波形データ再生装置であって、
前記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.
請求項1に記載の波形データ再生装置であって、
前記波形記憶手段に記憶されている波形データには複数ビート分の波形データが含まれており、
前記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
請求項4に記載の波形データ再生装置において、
前記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.
請求項4に記載の波形データ再生装置において、
前記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.
請求項1ないし6に記載の波形データ再生装置において、
前記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.
JP2002084690A 2002-03-26 2002-03-26 Waveform data playback device with variable time axis Expired - Fee Related JP3656906B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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