JP2003280663A - 時間軸可変の波形データ再生装置 - Google Patents

時間軸可変の波形データ再生装置

Info

Publication number
JP2003280663A
JP2003280663A JP2002084690A JP2002084690A JP2003280663A JP 2003280663 A JP2003280663 A JP 2003280663A JP 2002084690 A JP2002084690 A JP 2002084690A JP 2002084690 A JP2002084690 A JP 2002084690A JP 2003280663 A JP2003280663 A JP 2003280663A
Authority
JP
Japan
Prior art keywords
waveform data
address
jump
read
time axis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002084690A
Other languages
English (en)
Other versions
JP3656906B2 (ja
Inventor
Keisuke Mikata
圭介 三方
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/ja
Publication of JP2003280663A publication Critical patent/JP2003280663A/ja
Application granted granted Critical
Publication of JP3656906B2 publication Critical patent/JP3656906B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】波形データを時間軸方向に圧縮あるいは伸張す
ることができる時間軸可変の波形データ再生装置におい
て、CPUの負荷を軽減し、また時間軸制御された波形
データの再生が破綻することなく、さらにテンポマップ
で設定された場合のようにあらかじめ定められた所望の
テンポからずれずに正確に時間軸制御して再生を行なう
ことができる波形データ再生装置を提供することを目的
とする。 【解決手段】時間軸制御データに基づいて、読み出し対
象の波形データ中の波形サンプル単位の所定位置をジャ
ンプ元アドレスとして設定し、該ジャンプ元アドレスに
対応するジャンプ先アドレスを設定する。読み出しアド
レスがジャンプ元アドレスに達したら、該読み出しアド
レスを、ジャンプ元アドレスに対応するジャンプ先アド
レスに移行させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、波形データを時
間軸方向に伸縮して再生することができる時間軸可変の
波形データ再生装置に関する。
【0002】
【従来の技術】従来より、時間軸制御が可能なサンプラ
が知られている。これは、サンプリング(録音)した波
形データの再生を行なう際に時間軸方向に伸縮して再生
することが可能なものである。また、テンポ同期が可能
なサンプラが知られている。これは、ループモードにし
たときに、そのループ波形をテンポ同期させることがで
きる、すなわち曲のテンポが変化したときにその変化後
のテンポに同期してループ波形を時間軸方向に圧縮伸張
して再生できるようにしたものである。
【0003】一方、ディジタルデータを録音するディジ
タルレコーダにテンポマップの機能を加えたものが知ら
れている。これは、新規にソングを作成するときに、そ
のレコーディングに先立って当該ソングにおけるテンポ
の変化を制御するテンポマップを作成するものである。
テンポマップは、例えば、ソングの開始時のテンポはテ
ンポ100BPM(BPMは1分間の4分音符の個数で
テンポを表す単位)、第10小節目からテンポ120B
PM、第14小節目から再びテンポ100BPM、…と
いうように、ソングの各範囲のテンポを予め設定するた
めの画面である。これにより、ユーザは、ソング中の任
意の範囲で任意のテンポ情報を設定できる。レコーディ
ング時には、作成したテンポマップに応じたテンポのメ
トロノーム音を発生し、演奏者はそのメトロノーム音を
聞きながら自分のパートの演奏を行なう。その演奏を当
該パートに対応するトラックに録音する。このようにし
て、複数パートの各パートの演奏を順次行ない、演奏さ
れた楽音をそれぞれ異なるトラックに録音していく。全
パートの演奏の録音が終わった後、複数トラックに録音
された楽音をミックスダウンして、例えばステレオ2チ
ャンネルの楽音を取得する。以上のようにして、テンポ
マップの設定にしたがうテンポで複数トラックのレコー
ディングを行なうことができる。
【0004】
【発明が解決しようとする課題】ところで、上述した時
間軸制御が可能な従来のサンプラの方式としては、第1
に、CPUが各波形サンプルを各サンプリング周期に配
置することにより、時間軸方向の圧縮および伸張を行な
うものがある。これは、元になる波形データを、テンポ
に応じて定められたある時間区間で再生するとき、その
波形データを切り分けて、前記時間区間の各サンプリン
グ周期でどのサンプルを読むかを決定して配置していく
ものである。これによれば、任意の精度で時間軸方向の
伸縮を管理することができる。しかし、1秒ごとにサン
プリング周波数に対応する数の波形サンプルについて時
間軸制御処理を行なわなければならず、CPUの負荷が
大きいという問題がある。
【0005】時間軸制御が可能なサンプラの方式とし
て、第2に、CPUが音源に対してスライスされた各波
形データ再生開始のトリガを供給し、音源は該トリガに
応じて各波形データを再生するものがある。これによれ
ば、CPUはトリガなどの波形データの再生を制御する
データだけを扱えばよいので(波形サンプル自体を扱わ
なくてよい)、CPUの負荷は小さい。しかし、CPU
は波形データの時間軸制御以外にも様々な処理を行なっ
ており、トリガのタイミングの精度を上げることは難し
いという問題がある。
【0006】従来のテンポ同期が可能なサンプラでは、
サンプリング周期の精度の時間軸制御を行なう場合、デ
ィジタルレコーダのテンポマップに対するテンポ同期が
徐々にずれてくるという問題がある。
【0007】この発明は、波形データを時間軸方向に圧
縮あるいは伸張することができる時間軸可変の波形デー
タ再生装置において、CPUの負荷を軽減し、また時間
軸制御された波形データの再生が破綻することなく、さ
らにテンポマップで設定された場合のようにあらかじめ
定められた所望のテンポからずれずに正確に時間軸制御
して再生を行なうことができる波形データ再生装置を提
供することを目的とする。
【0008】
【課題を解決するための手段】この目的を達成するた
め、請求項1に係る発明は、波形データを再生する波形
データ再生装置であって、波形データの時間軸の伸縮を
制御する時間軸制御データに基づいて、読み出し対象の
波形データ中の波形サンプル単位の所定位置をジャンプ
元アドレスとして順次設定する手段と、該ジャンプ元ア
ドレスに対応するジャンプ先アドレスを順次設定する手
段と、読み出しアドレスが前記ジャンプ元アドレスに達
したら、該読み出しアドレスを、前記ジャンプ元アドレ
スに対応する前記ジャンプ先アドレスに移行させる手段
とを備えたことを特徴とする。
【0009】請求項2に係る発明は、請求項1に記載の
時間軸可変の波形データ再生装置において、現在の読み
出しアドレスがジャンプ元アドレスに達する前に、前記
ジャンプ元を設定する手段は少なくともその次のジャン
プ元アドレスの設定を終えていることを特徴とする。
【0010】請求項3に係る発明は、請求項1に記載の
時間軸可変の波形データ再生装置において、前記ジャン
プ先アドレスを設定する手段は、前記ジャンプ先アドレ
スを、前記読み出し対象の波形データにおける複数のビ
ート先頭位置に各々順次設定することを特徴とする。
【0011】請求項4に係る発明は、波形データを再生
する波形データ再生装置であって、読み出す対象の波形
データを記憶した波形記憶手段と、前記波形データ中の
波形サンプル単位で表したジャンプ先アドレスと該ジャ
ンプ先アドレスに対応するジャンプ元アドレスとを、第
1組、第2組、…、および第N組のN組記憶するアドレ
ス記憶手段と、前記波形データの第1組のジャンプ先ア
ドレスから読み出しを開始し、読み出しアドレスが第1
組のジャンプ元アドレスに至ったとき読み出しアドレス
を第2組のジャンプ先アドレスに設定して読み出しを続
け、読み出しアドレスが第2組のジャンプ元アドレスに
至ったとき読み出しアドレスを第3組のジャンプ先アド
レスに設定して読み出しを続け、…、読み出しアドレス
が第N組のジャンプ元アドレスに至ったとき読み出しア
ドレスを第1組のジャンプ先アドレスに設定して読み出
しを続け、…というように、前記N組のアドレスを巡回
的に使用しつつ読み出しアドレスを移行させて波形デー
タの読み出しを行なう手段とを備えたことを特徴とす
る。
【0012】請求項5に係る発明は、請求項4に記載の
時間軸可変の波形データ再生装置において、さらに、前
記N組のうちの既に読み出しに使用されたアドレスの組
を、次にその組が読み出しに使用されるまでの所定のタ
イミングで更新する手段を含むことを特徴とする。
【0013】請求項6に係る発明は、請求項4に記載の
時間軸可変の波形データ再生装置において、指定された
テンポに応じて前記波形データを再生すべき時間区間で
のサンプル数が前記組の数Nで割り切れない値であると
き、前記ジャンプ先アドレスからジャンプ元アドレスま
での読み出しを所定回数行なうごとに、その所定回数の
読み出しの各組のジャンプ先アドレスからジャンプ元ア
ドレスまでの読み出しサンプル数を調整して、ずれ量の
補正を行なうことを特徴とする。
【0014】
【発明の実施の形態】以下、図面を用いてこの発明の実
施の形態を説明する。
【0015】図1は、この発明に係る時間軸可変の波形
データ再生装置を適用したディジタルレコーダのブロッ
ク構成図である。このシステムは、中央処理装置(CP
U)101、フラッシュメモリ102、ランダムアクセ
スメモリ(RAM)103、表示器104、フェーダ1
05、操作子106、PC入出力インターフェース(I
/O)107、書込&読出再生部111、波形メモリ1
12、ミキサ113、波形入力部114、波形出力部1
15、転送部116、バッファメモリ117、IDE
(Integrated Device Electromics)インターフェース
118、ハードディスク119、CD−RW(CD-rewri
table)ドライブ120、およびバスライン130を備
える。
【0016】CPU101は、このシステムの全体の動
作を制御する処理装置である。フラッシュメモリ102
は、CPU101が実行する各種の制御プログラムやC
PU101が使用する各種のデータなどを格納した不揮
発性メモリである。フラッシュメモリ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に出力される。波形入力部11
4は、マイクから入力したアナログ楽音信号をディジタ
ル波形データに変換してミキサ113に供給する。波形
出力部115は、ミキサ113から供給される波形デー
タを出力する。出力された波形データは、必要に応じ
て、アナログ楽音信号に変換され不図示のサウンドシス
テムにより放音される。
【0019】ミキサ113は、実際にはディジタルシグ
ナルプロセッサ(DSP)により構成されている。ミキ
サ113は、サンプリング周期単位で行なわれる時分割
多重処理で複数トラックの処理を並行して実行する。ミ
キサ113に対する入出力は、基本的には1サンプリン
グ周期で波形データの1サンプルを入出力するものであ
る。ミキサ113に対して波形入出力を行なう周辺各部
は、ミキサ113の時分割処理に同期して、波形データ
の入出力を行なう。例えば、所定のマイクから入力した
演奏音を所定のトラックに録音する場合、当該マイクか
ら入力して波形入力部114でディジタルデータに変換
された波形データは、ミキサ113が当該トラックの処
理を行なうタイムスレッドで波形入力部114からミキ
サ113に供給されるようにタイミングが調整される。
同様に、ミキサ113から当該トラックの波形出力を行
なうタイムスレッドで出力される波形データは、それが
出力されるタイミングで転送部116が受け取り、当該
トラックに対応するファイルにその波形データを書き込
むように処理される。
【0020】転送部116は、CPU101からの指示
に応じて、ハードディスク119とバッファメモリ11
7間の転送およびバッファメモリ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
とを接続するためのインターフェースである。また、I
DEI/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へ書き込む。このシステム
は複数のパッドを備えており、再生時に、各パッドを操
作したとき、そのパッドに割り当てられた波形メモリ1
12上の波形データを読み出して再生する。このとき波
形データの時間軸を圧縮伸張することが可能である。そ
の時間軸の圧縮伸張は、CPU101の指示に応じて書
込&読出再生部108が行なう。
【0025】図2は、図1の書込&読出再生部108に
よる時間軸可変の読出再生機能を実現するための構成を
示す。書込&読出再生部108は、ジャンプ先アドレス
レジスタ群(DEST1〜4)、ジャンプ元アドレスレ
ジスタ群(TAR1〜4)、フェードアウト開始点レジ
スタ群(FOUT1〜4)、フェード速度レジスタ(R
ATE)204、セレクタ205、現在アドレスレジス
タ206、アドレス加算器207、比較器208,20
9、カウンタ210、クロスフェードカーブ発生器21
1、および乗算器212を備えている。書込&読出再生
部108は時分割多重処理で複数チャンネルの処理を行
なうことができるようになっているが、ここでは1チャ
ンネル分の構成について示した。
【0026】レジスタ群201〜204は、このチャン
ネルで波形データを再生するときに使用するレジスタで
ある。CPU101は、これらのレジスタ群201〜2
04に値を設定することにより、所望の通りに時間軸制
御された波形データを読み出せる。ジャンプ先アドレス
レジスタ群(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,32
3は、波形データ301から波形サンプルがサンプリン
グ周期ごとに読み出されていく向きを示す。すなわち、
この矢印の向きに読み出しアドレスが進行していく。な
お、波形メモリからの波形データの読み出し速度は、各
チャンネルごとに1サンプル/サンプリング周期で一定
とする。また、読み出す波形データは固有のテンポ(サ
ンプリングしたときのテンポ)を持っているが、このテ
ンポは任意の値でよい。
【0030】上述したように、時間軸制御のためのパラ
メータとして、CPU101は、各チャンネルごと(す
なわち、各発音ごと)に、ジャンプ先アドレスDEST
1〜4、ジャンプ元アドレスTAR1〜4、およびフェ
ードアウト開始点アドレスFOUT1〜4の4セットの
データとフェード速度RATEを1つ設定できる。波形
データの読み出しは、ジャンプ先アドレスDEST1か
ら開始する。矢印321に示すようにサンプリング周期
ごとに1ずつ読み出しアドレスを進めて波形サンプルを
読み出していき、ジャンプ元アドレスTAR1まで進ん
だとき、読み出しアドレスを次のジャンプ先アドレスD
EST2に移行する。同様にして、ジャンプ先アドレス
DEST2から読み出しアドレスを矢印322のように
進め、次のジャンプ元アドレスTAR2まで進んだと
き、さらに次のジャンプ先アドレスDEST3に移行す
る。このように読み出しアドレスを進めていき、ジャン
プ元アドレスTAR4まで進んだら、読み出しアドレス
を次のジャンプ先アドレスDEST1に移行する。読み
出しアドレスをTAR4からDEST1にジャンプさせ
るときまでに、アドレスDEST1,TAR1,FOU
T1は次に使うデータに書き替えておく。このように、
上述した4セットのアドレスレジスタのうちの、そこに
書き込まれたアドレスによる読み出しが終了したレジス
タについて、CPU101がセット単位で順次更新して
いくことにより、図3に示すように読み出しアドレスが
進行し、時間軸の制御された波形データが継続的に再生
される。
【0031】図3の331は、矢印321のように読み
出しアドレスを進行させて読み出していく波形データの
フェードインおよびフェードアウトの様子を示す。ジャ
ンプ先アドレスDEST1から読み出しを開始したと
き、所定の速度でフェードインを行ない波形データを出
力する。フェードアウトのタイミング311は、フェー
ドアウト開始点アドレスFOUT1に至ったときフェー
ドアウトを開始し、ジャンプ元アドレスTAR1に至っ
たときそのフェードアウトが終了するように制御する。
これ以降の読み出しの場合の波形データ332,333
についても同様である。なお、フェードアウトの速度
は、フェード速度レジスタ204の設定に基づく。
【0032】説明を簡単にするため、アドレスレジスタ
およびそこに設定されるアドレスを示すDEST1〜
4,TAR1〜4,FOUT1〜4の記号は、それ以降
の設定アドレスを表すために拡張して使用するものとす
る。例えば、ジャンプ先アドレスについては、DEST
1→DEST2→DEST3→DEST4の順にレジス
タを利用し、DEST4の次に利用するアドレスは再び
レジスタDEST1に設定したデータを利用することに
なるが、DEST4の次に利用するアドレスをDEST
5と表記する。それ以後のアドレスも順次、DEST
6,DEST7,…と表記する。逆に言えば、CPU1
01がジャンプ先アドレスとして順次計算したアドレス
をDESTn(nは正整数)とし、DEST1→DES
T2→DEST3→DEST4→DEST5→DEST
6→…→DESTn(nは正整数)→…というようにア
ドレスを進める際、アドレスDESTnはレジスタDE
STn’(ただし、n’は、nを4で割った余りが1
〜3のときはその余り、nが4で割り切れるときは4
とする)に設定するということである。TARn,FO
UTnについても同様である。
【0033】図3(b)は、波形データのテンポより引
き伸ばして(テンポを遅くして)読み出す場合の読み出
しの様子を示す。341〜343は波形データを示す。
波形データは、あらかじめ拍単位に区切られているもの
とし、341が1拍目、342が2拍目、343が3拍
目のデータを示す。テンポを遅くする場合でもアドレス
の進め方は図3(a)で説明したのと同様である。ただ
し、DEST1から読み出しを開始した1拍目のデータ
341が終わる位置からフェードアウトし無発音の区間
を経てTAR1までで1拍目の再生を終え、引き続きD
EST2から読み出しを開始し、その2拍目のデータ3
42が終わる位置からフェードアウトし無発音の区間を
経てTAR2までで2拍目の再生を終え、…というよう
に再生を進める。ここでは、1拍目のデータ341の終
了位置をFOUT1とし、2拍目のデータ342の終了
位置をFOUT2とし、…というようにしているが、F
OUTの位置はこれに限らない。ただし、次の拍のアタ
ック部が出力されない程度の位置までにフェードアウト
する必要がある。
【0034】図4は、出力される波形データの例を示
す。401は出力される波形データを示す。その中のB
LOCK0,1,2,…は、それぞれ図3の331,3
32,333のようなジャンプ先アドレスDESTnか
らジャンプ元アドレスTARnで読み出された波形デー
タを示す。402は、BLOCK0〜3を拡大した図で
ある。各BLOCKで読み出された波形データが繋げら
れている。
【0035】次に、CPU101が、ジャンプ先アドレ
ス、ジャンプ元アドレス、およびフェードアウト開始点
アドレスを設定する具体例を説明する。
【0036】(第1の具体例)サンプリング周波数Fs
を44.1kHz、テンポ90BPM、4/4拍子、8
ビートで、波形データの再生を行なう場合、CPU10
1は、次のように1ビートのサンプル数を計算する。ま
ず、テンポが90BPMで4/4拍子であるから、 1小節の長さ=(60/90)×4=8/3秒 である。したがって、 1小節のサンプル数=44100×(8/3)=117
600サンプル である。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ビート当たりの長さと、各DES
Ti(ビート先頭位置)とに基づいて、各TARiが算
出される。以上より、1小節の再生を行なうためのジャ
ンプ先アドレスDESTiとジャンプ元アドレスTARi
(i=1〜8)が計算できる。フェードアウト開始点ア
ドレスFOUTiは、ジャンプ元アドレスTARiより所
定サンプルだけ前に設定すればよい。ただし、図3
(b)のような場合は、FOUTiとして各ビートの終
了位置などを設定する。
【0038】(第2の具体例)サンプリング周波数Fs
を44.1kHz、テンポ95BPM、4/4拍子、8
ビートで、波形データの再生を行なう場合、CPU10
1は、次のように1ビートのサンプル数を計算する。ま
ず、テンポが95BPMで4/4拍子であるから、 1小節の長さ=(60/95)×4=48/19秒 である。したがって、 1小節のサンプル数=44100×(48/19)=111410+(10/1 9)サンプル ……(11) である。上記(11)式の整数部分111410から、 1ビートの長さ=111410/8=13926+(1/4)サンプル……(1 2) である。そこで、ジャンプ先アドレスとジャンプ元アドレスとを、 ・TARi−DESTi=13926 (i=1,2,3,5,6,7のとき) ……(13) ・TARi−DESTi=13927 (i=4,8のとき) ……(14) の関係となるように設定する。これは、(12)式にお
ける1/4サンプル分を調整するため、3回分の読み出
しの1ビートの長さを13926サンプルとし、次の1
回分の読み出しの1ビートの長さを13927サンプル
としたものである。同様にして、(11)式における1
0/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セットのデータとフェード速度RA
TEをレジスタ群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は、上述したように最初にDES
T1を選択出力した後は、アドレス加算器207からの
入力を選択出力する。したがって、現在アドレスレジス
タ206の値は、DEST1から順次カウントアップさ
れ、これにより波形メモリのDEST1から波形データ
が1サンプルずつ読み出される(図3(a)の矢印32
1)。
【0043】クロスフェードカーブ発生器211は、読
み出しが開始されてから、所定の速度でフェードインす
るような乗数を乗算器212に出力する。乗算器212
は、読み出された波形サンプルにクロスフェードカーブ
発生器211からの乗数を乗算して出力する。これによ
り、波形データの読み出し開始時のフェードインが実現
される。
【0044】比較器209は、フェード開始点レジスタ
群203からの出力とアドレス加算器207からの出力
とを比較する。いまレジスタ群203からは、レジスタ
FOUT1に設定されたアドレスが出力されている。こ
れらが一致したとき、すなわち現在アドレスがFOUT
1に至ったとき、比較器209は一致信号を出力する。
この一致信号は、クロスフェードカーブ発生器211に
入力する。クロスフェードカーブ発生器211は、この
一致信号により現在アドレスがFOUT1に至ったこと
を検出し、この時点からレジスタ204に設定された速
度でフェードアウトするような乗数を乗算器212に出
力する。乗算器212は、読み出された波形サンプルに
クロスフェードカーブ発生器211からの乗数を乗算し
て出力する。これにより、現在アドレスがFOUT1に
至ったとき以降のフェードアウトが実現される。
【0045】比較器208は、ジャンプ元アドレスレジ
スタ群202からの出力とアドレス加算器207からの
出力とを比較する。いまレジスタ群202からは、レジ
スタTAR1に設定されたアドレスが出力されている。
これらが一致したとき、すなわち現在アドレスがTAR
1に至ったとき、比較器208は一致信号を出力する。
この一致信号は、セレクタ205、カウンタ210、お
よびクロスフェードカーブ発生器211に入力する。こ
れによりカウンタ210はi=1から2にカウントアッ
プするので、レジスタ群201からはレジスタDEST
2に設定されたアドレス、レジスタ群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内に記載したabc
dは、セットデータa,b,c,dを、この順に、第1
〜第4セットレジスタに設定したことを示す。矩形52
2,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〜2
04を、ビートを単位として更新していたが、その代わ
りに、ジャンプを単位に更新を行なうようにしてもよ
い。すなわち、ジャンプ先アドレスDESTiとジャン
プ元アドレスTARiを組として更新を行なうのではな
く、ジャンプ元アドレスTARiとジャンプ先アドレス
DEST(i+1)とを組にして、その組単位でレジス
タの更新を行なうようにしてもよい。
【0057】
【発明の効果】以上説明したように、この発明によれ
ば、時間軸制御データに基づいてジャンプ元アドレスと
ジャンプ先アドレスとを設定するだけで、読み出しアド
レスを移行させながら読み出しを行なうことができるの
で、CPUで直接波形サンプルを扱う必要がなく、CP
Uの負荷が小さい。また、時間軸制御をサンプリング周
期で行なうことができる。さらに、ジャンプ元アドレス
とジャンプ先アドレスとの組を複数組記憶できるように
しているので、CPUによる制御が一時的に遅れても、
時間軸制御された波形データの再生が破綻しない。ま
た、再生すべき時間区間でのサンプル数と、各組のジャ
ンプ先アドレスからジャンプ元アドレスまでの読み出し
サンプル数の和にずれがあるときは、ジャンプ先アドレ
スからジャンプ元アドレスまでの読み出しを所定回数行
なうごとに、その所定回数の読み出しの各組のジャンプ
先アドレスからジャンプ元アドレスまでの読み出しサン
プル数を調整して、ずれ量の補正を行なっているので、
例えばディジタルレコーダのテンポマップで規定された
テンポからずれることなく、正確な時間軸制御が可能で
ある。また、各拍ごとに補正をするのに比べて、補正に
要する演算量を大幅に減少できる。
【図面の簡単な説明】
【図1】この発明に係る時間軸可変の波形データ再生装
置を適用したディジタルレコーダのブロック構成図
【図2】書込&読出再生部による時間軸可変の読出再生
機能を実現するための構成図
【図3】書込&読出再生部108による波形メモリの読
み出しアドレスの進行の様子を示すタイミング図
【図4】出力される波形データの例を示す図
【図5】時間軸制御レジスタの更新タイミングを示す図
【符号の説明】
101…中央処理装置(CPU)、102…フラッシュ
メモリ、103…ランダムアクセスメモリ(RAM)、
104…表示器、105…フェーダ、106…操作子、
107…PC入出力インターフェース(I/O)、11
1…書込&読出再生部、112…波形メモリ、113…
ミキサ、114…波形入力部、115…波形出力部、1
16…転送部、117…バッファメモリ、118…ID
E(Integrated Device Electromics)インターフェー
ス、119…ハードディスク、120…CD−RW(CD
-rewritable)ドライブ、130…バスライン130。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】波形データを再生する波形データ再生装置
    であって、 波形データの時間軸の伸縮を制御する時間軸制御データ
    に基づいて、読み出し対象の波形データ中の波形サンプ
    ル単位の所定位置をジャンプ元アドレスとして順次設定
    する手段と、 該ジャンプ元アドレスに対応するジャンプ先アドレスを
    順次設定する手段と、 読み出しアドレスが前記ジャンプ元アドレスに達した
    ら、該読み出しアドレスを、前記ジャンプ元アドレスに
    対応する前記ジャンプ先アドレスに移行させる手段とを
    備えたことを特徴とする時間軸可変の波形データ再生装
    置。
  2. 【請求項2】請求項1に記載の時間軸可変の波形データ
    再生装置において、 現在の読み出しアドレスがジャンプ元アドレスに達する
    前に、前記ジャンプ元を設定する手段は少なくともその
    次のジャンプ元アドレスの設定を終えていることを特徴
    とする時間軸可変の波形データ再生装置。
  3. 【請求項3】請求項1に記載の時間軸可変の波形データ
    再生装置において、 前記ジャンプ先アドレスを設定する手段は、前記ジャン
    プ先アドレスを、前記読み出し対象の波形データにおけ
    る複数のビート先頭位置に各々順次設定することを特徴
    とする時間軸可変の波形データ再生装置。
  4. 【請求項4】波形データを再生する波形データ再生装置
    であって、 読み出す対象の波形データを記憶した波形記憶手段と、 前記波形データ中の波形サンプル単位で表したジャンプ
    先アドレスと該ジャンプ先アドレスに対応するジャンプ
    元アドレスとを、第1組、第2組、…、および第N組の
    N組記憶するアドレス記憶手段と、 前記波形データの第1組のジャンプ先アドレスから読み
    出しを開始し、読み出しアドレスが第1組のジャンプ元
    アドレスに至ったとき読み出しアドレスを第2組のジャ
    ンプ先アドレスに設定して読み出しを続け、読み出しア
    ドレスが第2組のジャンプ元アドレスに至ったとき読み
    出しアドレスを第3組のジャンプ先アドレスに設定して
    読み出しを続け、…、読み出しアドレスが第N組のジャ
    ンプ元アドレスに至ったとき読み出しアドレスを第1組
    のジャンプ先アドレスに設定して読み出しを続け、…と
    いうように、前記N組のアドレスを巡回的に使用しつつ
    読み出しアドレスを移行させて波形データの読み出しを
    行なう手段とを備えたことを特徴とする時間軸可変の波
    形データ再生装置。
  5. 【請求項5】請求項4に記載の時間軸可変の波形データ
    再生装置において、 さらに、前記N組のうちの既に読み出しに使用されたア
    ドレスの組を、次にその組が読み出しに使用されるまで
    の所定のタイミングで更新する手段を含むことを特徴と
    する時間軸可変の波形データ再生装置。
  6. 【請求項6】請求項4に記載の時間軸可変の波形データ
    再生装置において、 指定されたテンポに応じて前記波形データを再生すべき
    時間区間でのサンプル数が前記組の数Nで割り切れない
    値であるとき、前記ジャンプ先アドレスからジャンプ元
    アドレスまでの読み出しを所定回数行なうごとに、その
    所定回数の読み出しの各組のジャンプ先アドレスからジ
    ャンプ元アドレスまでの読み出しサンプル数を調整し
    て、ずれ量の補正を行なうことを特徴とする時間軸可変
    の波形データ再生装置。
JP2002084690A 2002-03-26 2002-03-26 時間軸可変の波形データ再生装置 Expired - Fee Related JP3656906B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002084690A JP3656906B2 (ja) 2002-03-26 2002-03-26 時間軸可変の波形データ再生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002084690A JP3656906B2 (ja) 2002-03-26 2002-03-26 時間軸可変の波形データ再生装置

Publications (2)

Publication Number Publication Date
JP2003280663A true JP2003280663A (ja) 2003-10-02
JP3656906B2 JP3656906B2 (ja) 2005-06-08

Family

ID=29231914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002084690A Expired - Fee Related JP3656906B2 (ja) 2002-03-26 2002-03-26 時間軸可変の波形データ再生装置

Country Status (1)

Country Link
JP (1) JP3656906B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007004541A1 (ja) * 2005-07-01 2007-01-11 Pioneer Corporation コンピュータプログラム、並びに情報再生装置及び方法
JP2010113176A (ja) * 2008-11-07 2010-05-20 Korg Inc 音楽データ録音再生装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007004541A1 (ja) * 2005-07-01 2007-01-11 Pioneer Corporation コンピュータプログラム、並びに情報再生装置及び方法
JP2010113176A (ja) * 2008-11-07 2010-05-20 Korg Inc 音楽データ録音再生装置

Also Published As

Publication number Publication date
JP3656906B2 (ja) 2005-06-08

Similar Documents

Publication Publication Date Title
JP6011064B2 (ja) 自動演奏装置及びプログラム
US6441290B2 (en) Apparatus and method for reproducing or recording, via buffer memory, sample data supplied from storage device
JP2000047667A (ja) 波形形成装置及び方法
US7579544B2 (en) Waveform generating device
JP4998046B2 (ja) 楽音発生装置
US7511214B2 (en) Automatic performance apparatus for reproducing music piece
JP3008922B2 (ja) 楽音発生装置および楽音発生方法
JPH0922287A (ja) 楽音波形生成方法
JP2010113278A (ja) 楽曲処理装置およびプログラム
JP3656906B2 (ja) 時間軸可変の波形データ再生装置
US20030171933A1 (en) Method and device for recording in cyclic loops several sound sequences
JP3980750B2 (ja) 電子楽器
JP6531432B2 (ja) プログラム、音源装置及び音響信号生成装置
JPH07295589A (ja) 波形処理装置
JP4084858B2 (ja) 波形再生装置
JP4066319B2 (ja) サンプラ機能を備えたディジタルレコーダ
JP4037973B2 (ja) 波形再生装置
JP4685226B2 (ja) 波形再生用自動演奏装置
JP3095018B2 (ja) 楽音発生装置
JP3770030B2 (ja) 録音再生装置
JP4062193B2 (ja) 自動伴奏再生位置検出装置、自動伴奏装置及び自動伴奏再生位置検出プログラム並びに自動伴奏制御プログラム
JP3980751B2 (ja) 電子楽器
JP2765469B2 (ja) 楽音信号再生装置
JP4835433B2 (ja) 演奏パターン再生装置及びそのコンピュータプログラム
JP5070908B2 (ja) 電子楽器における自動伴奏生成装置及びそのコンピュータプログラム

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