JP3925294B2 - 波形データ処理装置 - Google Patents
波形データ処理装置 Download PDFInfo
- Publication number
- JP3925294B2 JP3925294B2 JP2002130780A JP2002130780A JP3925294B2 JP 3925294 B2 JP3925294 B2 JP 3925294B2 JP 2002130780 A JP2002130780 A JP 2002130780A JP 2002130780 A JP2002130780 A JP 2002130780A JP 3925294 B2 JP3925294 B2 JP 3925294B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform data
- mute
- cluster
- period
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
この発明は、ハードディスクドライブ(HDD)等の記憶手段に記憶した波形データを処理する波形データ処理装置に関し、特に、波形データの管理や読み出しを、クラスタ単位で行い、また、再生すべき波形データの存在する区間につき、クラスタ単位で分散記憶されている波形データを、順次記憶手段から読み出してバッファに書き込み、そのバッファから適切なタイミングで読み出して処理に供する装置であって、無音区間を含む波形データを扱う際の制御に特徴を有する装置に関する。
【0002】
【従来の技術】
近年、マイク等で集めた音をデジタルの波形データとしてHDD等の記憶手段に記憶させて録音することが広く行われるようになっている。そしてこのような録音を行う際、あるパートが演奏を一時休止する場合等、録音を行う必要がない期間がある場合、その期間はそのパートに対応するトラックのミュート(無音)期間とし、波形データを記録する代わりにその旨を記録し、波形データの記録に必要な容量を削減することが行われている。
また、このように録音した波形データを編集する際にも、あるパートの波形データを一部だけ採用する際には、そのパートの残りの期間をミュート期間として、その旨を記録することが行われている。
なお、この明細書において、「ミュート」は、実質的に音が聞こえなくなる状態のことをいうものとし、完全な無音と、多少音が残っていても耳に聞こえない実質的な無音の両方を含むものとする。
【0003】
ところで、このような波形データに対して合成,変換,出力等の処理を行う場合、一般には、波形データを記憶手段から読み出し、その波形データを出力してミキシング等を行ったり、スピーカ等の発音手段を駆動したりしている。そして、この出力を安定的かつ連続的に行うため、記憶手段から読み出した波形データを所定のデータサイズ単位あるいはサンプル数単位で一旦バッファに書き込み、ここから所定のタイミングで出力し、またバッファを2期間単位分設け、その一方からデータを出力している間にもう一方に書き込みを行うといった制御が行われている。
しかし、ミュート期間には波形データを記録しないものとすると、その期間についてはこの制御をそのまま適用することはできない。
【0004】
このような問題に対応した装置として、特開2001−216736号公報には、予めバッファ中にミュート期間における波形データを記憶したミュート領域を設定しておくと共に、波形データの再生中にミュート期間の指示情報に基づき、ミュート期間の開始時点でバッファからの読み出しアドレスをこのミュート領域にジャンプさせ、ミュート期間ではミュート領域に記憶している波形データを出力するようにしたサンプルデータ再生装置が開示されている。
このような装置によれば、ミュート期間についても波形データのある期間と同等な制御で合成,変換,再生等の処理を行うことができる。またこの期間では、記憶手段からデータを読み出してバッファに書き込む処理が必要ないので、処理負担を低減することができる。
【0005】
【発明が解決しようとする課題】
しかしながら、上記公報に記載の構成では、バッファ上に予めミュート期間の波形データを記憶したミュート領域を設けておく必要があり、再生開始時に必要な処理が増えるため再生の開始に時間がかかるという問題と、バッファに必要な容量が増え、コストアップにつながるという問題があった。
この発明は、このような問題を解決し、波形データ処理装置において、より負担の少ない処理で、かつ少ないバッファ容量でミュート期間を含むデータの処理を行えるようにすることを目的する。
【0006】
【課題を解決するための手段】
上記の目的を達成するため、この発明は、波形データ処理装置を以下のように構成したものである。
【0007】
すなわち、クラスタ単位で波形データを読み書き可能な波形データ記憶手段に、再生すべき波形データの存在する、複数のクラスタ期間からなるリージョン区間と、そのリージョン区間以外の、複数のクラスタ期間からなるミュート区間とからなるトラックの、そのリージョン区間で再生すべき波形データとしてクラスタ単位で分散記憶されている波形データを連続的に処理する波形データ処理装置において、上記トラックを構成する各リージョン区間について、そのリージョン区間の処理開始時刻情報と処理終了時刻情報と波形選択情報とを含むリージョン情報を記憶するリージョン情報記憶手段と、上記波形データのサンプリング周期毎に進行する読出アドレスを発生させるアドレス発生手段と、上記波形データ記憶手段からクラスタ単位で読み出した波形データを一時的に記憶する1クラスタ分の記憶領域を複数有するリングバッファと、上記読出アドレスと、上記リージョン情報に含まれる各リージョン区間の処理開始時刻情報と処理終了時刻情報とに基づいて、上記トラックにおける処理中のクラスタ期間が上記リージョン区間のクラスタ期間であるか上記ミュート区間のクラスタ期間であるかを判定し、上記ミュート区間のクラスタ期間である場合にはミュートを指示するミュート指示手段と、前記各クラスタ期間に、上記リングバッファから上記読出アドレスに基づいて波形データを順次読み出し、そのクラスタ期間に対し上記ミュート指示手段によってミュートが指示されていない場合にはそのまま、ミュートが指示されている場合には読み出した波形データを無音波形データに変換して処理する処理手段と、その処理手段による上記リングバッファからの上記リージョン区間の波形データの読み出しが1クラスタ期間分終了した場合に、上記処理手段による上記波形データの読み出しと並行して、上記波形選択情報に基づいて上記波形データ記憶手段から、リージョン区間内で次に波形データを読み込むべきクラスタ期間の1クラスタ分の波形データを読み出して、上記リングバッファの上記波形データ処理手段による波形データの読み出しが終了した1クラスタ分の記憶領域に記憶させる波形データ転送手段とを設け、上記アドレス発生手段を、上記処理中のクラスタ期間が上記ミュート区間内のクラスタ期間である間も、上記ミュート区間内のクラスタ期間の読出アドレスとして、上記リングバッファ中の、上記波形データ記憶手段から読み出した上記リージョン区間内のクラスタ期間の波形データを記憶させる記憶領域内で進行する、上記ミュート区間内のクラスタ期間の読出アドレスを発生させると共に、上記ミュート区間の終了時に、読出アドレスを、次のリージョン区間内で最初に読み出すべき波形データを記憶させたアドレスに移動させる手段としたものである。
【0008】
このような波形データ処理装置において、上記処理手段を、上記リージョン区間の先頭において、上記読出アドレスに基づいて、上記リングバッファにクラスタ単位で記憶されている波形データのうちそのリージョンについての波形選択情報の示すアドレスから波形データを読み出して処理を行うとするとよい。
あるいは、上記ミュート指示手段が、上記リージョン区間の末尾において、上記読出アドレスが上記リングバッファにクラスタ単位で記憶されている波形データのうちそのリージョンについての再生終了時刻情報に応じた読出アドレスまで進行したタイミングで、処理が上記ミュート区間に入ったものと判定してミュートの指示を開始する手段を有するようにしてもよい。
また、上記ミュート指示手段が、処理が上記ミュート区間に入ったと判定した後、上記読出アドレスが次に処理すべきリージョンについての上記処理開始時刻に対応するアドレスまで進行したタイミングで、上記ミュート区間が終了したと判定してミュートの指示を中止する手段を有するようにしてもよい。
【0009】
【発明の実施の形態】
以下、この発明の好ましい実施の形態を図面を参照して説明する。
まず、この発明の波形データ処理装置の実施形態であるマルチトラックレコーダ(ハードディスクレコーダ)の構成について、図1を用いて説明する。図1は、そのマルチトラックレコーダの概略構成を示すブロック図である。
このマルチトラックレコーダは、複数のチャンネルの信号経路を有し、最大16トラックの同時録音,16トラックの同時再生,16トラックの同時再生をしながら4トラックの同時録音が可能な装置である。そして、録音は、アナログ又はデジタルの入力波形をデジタルの波形データとして記録することによって行い、再生は、この波形データを順次読み出して出力処理することによって行う。また、再生した波形データに対して、ミキシングやイコライジング等の合成,変換処理等を行うこともでき、さらにこの処理後の波形データを録音(記録)することもできる。
なお、上述したチャンネルとは、個々のトラックの波形データについて信号処理を行う信号経路(各チャンネル毎に物理的に分割された信号経路のみならず、各チャンネルの波形データが時分割処理される物理的には共通の信号経路を含む)または該信号経路を流れる波形データ自体をいう。
【0010】
このようなマルチトラックレコーダは、表示器11,フェーダ12,操作子13,CPU14,フラッシュメモリ15,RAM16,パーソナルコンピュータインタフェース(PCI/F)17,ミキサ18,データ転送ユニット19,IDE(Integrated Drive Electronics)I/F20を備えており、これらが互いにシステムバス23で接続されている。また、HDD21及びCD−RW(Compact Disk - Rewritable)ドライブ22も備え、これらはIDEI/F20を介してデータ転送ユニット19及びシステムバス23に接続されている。
【0011】
表示器11は表示手段であり、液晶表示器(LCD)や蛍光(EL)表示器等によって構成することができる。そして、このマルチトラックレコーダの動作状態や設定状態及び、録音,再生を行っている波形データの内容等を表示するユニットである。
フェーダ12は、各チャンネルにおける入出力の音量(波形データの波高値)を調整するためのユニットである。
操作子13は、このマルチトラックレコーダの操作を行うための各種キーやスイッチであり、キーボードとスライドスイッチやダイアルスイッチ、ボタンスイッチ等によって構成することができる。なお、表示器11にグラフィカル・ユーザ・インタフェース(GUI)を表示して、そのGUI上のスイッチをこれらのスイッチ等の一部としてあるいは一部に代えて用いるようにしてもよい。
【0012】
CPU14は、このマルチトラックレコーダの動作を統括制御する制御部であり、フラッシュメモリ15に記憶された各種制御プログラムを実行することによって、各部の動作や波形データの処理等の制御を行う。
フラッシュメモリ15は、書き換え可能な不揮発性記憶手段であり、各種制御プログラムや設定等の、このマルチトラックレコーダの動作に必要な情報を記憶するユニットである。このフラッシュメモリ15に記憶しているプログラムは、例えば新しいプログラムの記録されたCD−ROMディスクをCD−RWドライブ22にセットして内容を読み込む等することにより、必要に応じて書き換えてバージョンアップを行うことができる。設定の変更も、操作子13からの操作等によって行うことができる。
【0013】
RAM16は、CPU14のワークエリアとして使用したり、一時的に必要なデータを記憶したりするための揮発性の記憶手段である。
PCI/F17は、このマルチトラックレコーダをPC等のコンピュータと接続するためのインタフェースである。このマルチトラックレコーダをPCに接続することにより、PC側からこのマルチトラックレコーダの動作を制御することが可能になる。
【0014】
ミキサ18は、波形処理手段であり、サンプリング周期毎に、入力される波形データに対して合成,変換,出力等の処理を行うことのできるデジタルシグナルプロセッサ(DSP)である。ここで、合成処理としては例えばミキシング、変換処理としては例えばイコライジングが考えられる。また、このミキサ18は波形データ入力端子41及び波形データ出力端子42を備えている。
波形データ入力端子41は、マイクその他のオーディオ機器からの波形データの入力を受け付ける端子であるが、これらの波形データは、必要な場合にはA/D変換回路によってデジタルデータに変換してから入力される。波形データ出力端子42は、ミキサ18による編集後の波形データを出力する端子であり、例えばその波形データを外部のスピーカを備えたオーディオ機器に出力して発音を行わせることができる。この出力は、必要な場合にはD/A変換回路によってアナログデータに変換して行うことができ、また、光デジタル出力器によって行ってもよい。
【0015】
さらに、ミキサ18はデータ転送ユニット19と接続されており、記録すべき波形データをデータ転送ユニット19に転送したり、データ転送ユニット19から処理すべき波形データの転送を受けたりすることもできる。例えば、波形データ入力端子41から入力された波形データの録音(記録)を行う場合には、ここから入力された波形データに必要な場合にはミキシング等の処理を行ってからデータ転送ユニット19に転送する。また、HDD21に記録されている波形データに基づいて外部のオーディオ機器に発音させる場合には、データ転送ユニット19から転送されてくる波形データに必要な場合にはミキシング等の処理を行ってから波形データ出力端子42から出力する。
このマルチトラックレコーダは、前述したように再生と同時に録音が可能であるので、HDD21から読み出されてデータ転送ユニット19を経由してミキサ18に入力された16トラックの波形データをミックスダウンして2トラックの波形データを作成し、これを再びデータ転送ユニット19に出力し、CD−RWドライブ22に格納されているCD−RWディスクに記録して音楽CDを作成すること等も行うことができる。
【0016】
データ転送ユニット19は、バッファとしてバッファメモリ30を備え、ミキサ18及びIDEI/F20と直接データの授受が可能なように接続されている。そして、IDEI/F20を介してHDD21及びCD−RWドライブ22から読み出した波形データをバッファメモリ30に一旦書き込み、サンプリング周期毎に1サンプルずつ読み出してミキサ18に転送するユニットである。また、ミキサ18から出力された、HDD21あるいはCD−RWドライブ22に書き込むべき波形データも、バッファメモリ30に一旦蓄積し、所定のデータサイズ単位分あるいはサンプル数単位分まとめてIDEI/F20に出力して書き込みを行う。この発明の主な特徴は、このデータ転送ユニット19からミキサ18への波形データ転送の制御を行う手段であるが、この点については後に詳述する。
【0017】
IDEI/F20は、HDD21及びCD−RWドライブ22に対するデータの入出力を行うためのインタフェースであり、データ転送ユニット19や他の各部から転送されてくるデータをHDD21やCD−RWドライブ22に書き込んだり、HDD21やCD−RWドライブ22から読み出したデータをデータ転送ユニット19や他の各部に転送したりするユニットである。ここで、HDD21へは最大で再生20トラック分(16トラック再生と同時に4トラック録音を実行時)の波形データを時分割で入出力でき、CD−RWドライブ22へは2チャンネル分の波形データを時分割で入出力できる。
なお、このIDEI/F20は、ここではIDEとしているが、HDD21やCD−RWドライブ22へのデータ入出力を行うインタフェースであれば特にこれに限定されるものではなく、これに代えてSCSI(Small Computer System Interface),USB2(Universal Serial Bus 2),IEEE1394(Institute of Electrical and Electronic Engineers 1394)等の他のインタフェースを用いてもよい。
【0018】
HDD21とCD−RWドライブ22とは、このマルチトラックレコーダで録音した波形データや合成,変換,再生等の処理を行う波形データの記憶を行うための記憶手段である。またその他にも、CD−RWドライブ22は、CD−ROMメディア等に記録された各種のデータやアプリケーションプログラム等を読み取ってフラッシュメモリ15に記憶されたプログラムを更新する際にも用いることができる。
以上がこのマルチトラックレコーダの概略構成である。
以後の説明においては、特に断らない限り、HDD21を記憶媒体として用いて波形データの録音及び再生を行う場合を例にしてこのマルチトラックレコーダの動作について説明する。
【0019】
上記のマルチトラックレコーダにおいて、波形データの録音や再生を行う場合には、CPU14からの指示に応じてHDD21とバッファメモリ30の間のデータ転送とバッファメモリ30とミキサ18との間のデータ転送が行われる。
このうち前者の転送は、HDD21の1クラスタ分を1単位として行う。この装置においては、録音・再生を安定して行うため、通常のHDDよりもクラスタサイズを大きくしており、1クラスタは64キロワードである。そして、これは42kHzのサンプリング周期で1秒間分程度の波形データに相当する。
また後者の転送は、サンプリング周期毎に、各サンプリング周期分(1サンプル)の波形データについて行う。
【0020】
バッファメモリ30には、1クラスタ分の波形データを記憶できる領域が、16トラックについてそれぞれ2つずつ設けられている。この配置を図2に示すが、Trackの後の数字がトラック番号を示し、それぞれのAとBがそのトラック分の記憶領域として設けた2つの領域を示す。そして、これらの領域が再生用と録音用の各々について設けられている。従って、全部で64クラスタ分の記憶領域が設けられていることになる。
ただし、上述したように、同時に入出力を行うのは最大で20トラックであるから、録音と再生の動作に応じて各記憶領域を各トラックに割り振るようにする場合には、20トラック分として40クラスタ分の記憶領域を設ければ足りる。
また、AとBの領域を併せてリングバッファとして用いることもできる。
【0021】
このようなバッファメモリ30を介した波形データの転送についてさらに説明する。
録音を行う場合には、ミキサ18はサンプリング周期毎にそのサンプリング周期分の波形データを各トラックについてデータ転送ユニット19に転送し、データ転送ユニット19はこれをバッファメモリ30の対応する領域(例えば各トラックのA領域とする)に記憶させる。そして、1クラスタ分の波形データが記憶されると、そのデータをHDD21上のそのデータを記憶すべきクラスタに転送して記憶させる。
【0022】
また、この転送中もミキサ18からデータ転送ユニット19へのデータ転送は継続され、転送ユニット19はこのデータを今度はバッファメモリ30の対応するもう一つの領域(この場合は各トラックのB領域)に記憶させる。そして、再び1クラスタ分の波形データが記憶されると、そのデータをHDD21上のそのデータを記憶すべきクラスタに転送して記憶させる。
この間にミキサ18からデータ転送ユニット19へ転送されてくる波形データは、今度はA領域に記憶され、HDD21への転送を終えたA領域のデータを逐次新たなデータに更新する。このように、転送ユニット19は、バッファメモリ30上に設けた各トラックについての2つの記憶領域を交互に用いながら、ミキサ18から連続的に転送されてくる波形データを、クラスタ単位でHDD21に転送して記憶させる。
【0023】
一方、再生を行う場合には、転送ユニット19はまず、再生する各トラックについて、再生すべき波形データのうち、先頭から2クラスタ分の波形データを読み出してバッファメモリ30上の対応する2つの領域に記憶させる。ここでは、初めのクラスタ分をA領域に、2番目のクラスタ分をB領域に記憶させるものとする。
そして再生を開始すると、転送ユニット19はサンプリング周期毎に各トラックについてバッファメモリ30のA領域の波形データを1サンプルずつ読み出してミキサ18に転送する。そして、ミキサ18はこれらの各波形データについて処理を行う。
A領域のデータを全て転送し終わると、次は続けてB領域のデータの転送を行うが、同時にHDD21から次のクラスタの波形データを読み出し、これを必要なデータを全て転送し終えたA領域に記憶させてA領域を新たな期間の波形データで更新する。そして、B領域のデータを全て転送し終わると、次はA領域のデータの転送を行うと同時にHDD21からさらに次のクラスタの波形データを読み出し、これをB領域に記憶させてこの領域を新たな期間の波形データで更新する。
【0024】
このような処理を行うことにより、記憶手段に記憶されている波形データを所定のデータサイズ単位あるいはサンプル数単位で順次読み出してバッファに書き込み、サンプリング周期毎に該バッファから波形データを1サンプルずつ読み出して再生し、バッファ中の読み出しを終了したアドレスのデータを記憶手段から読み出される新たな期間の波形データで順次更新して、波形データを連続的に処理することができる。
録音と再生を同時に行う場合には、それぞれについての転送を並行して行うものとする。
【0025】
次に、HDD21における波形データの記憶方式について図3乃至図5を用いて説明する。図3はこのマルチトラックレコーダのHDD21のアドレス領域におけるデータの配置を示す図、図4はこのマルチトラックレコーダにおけるソングデータの構成について説明するための図、図5は同じく仮想トラックのデータの構成について説明するための図である。
HDD21のアドレス領域は先頭から、固定容量のシステム管理データ用アドレス領域51と、それに続く最後尾までの共用アドレス領域52に分割されている。そして、共用アドレス領域52には、前方側の端部から波形データがテイク(録音の単位で、1テイク=1回分の録音)順にトラック毎にクラスタ単位で分散して記憶されて蓄積され、その蓄積された領域が波形データ領域53となり、一度録音された波形データは操作者による明示の、該当するテイクの消去指令が与えられない限り消去されない。そして、後方側の端部から、このクラスタ単位で分散記憶された波形データを管理するためのソング管理データが複数ソング分順次記憶されて、ソング管理データ領域54−1,54−2,……(以下、総称する場合には符号54で示す)が順次形成される。
【0026】
また、各ソング管理データ領域54は固定容量(例えば、1ソングあたり1.5メガバイト)であり、操作者により新規にソングファイルの作成が指示されるごとに、そのソングについてのソング管理データ領域54が新たに初期化されて確保され、そのソングについて波形データの追加や編集がなされるごとにそれに対応してソング管理データが更新される。各ソング管理データ領域54は一度定められると固定であり、操作者による明示のソングの消去指令が与えられない限り消去されない。
【0027】
システム管理データ用アドレス領域51には、ソングごとのソング管理データの記憶位置を知るためのデータを含むシステム管理データが記憶されている。ソング管理データ領域54は、ソング単位でHDD21の全アドレス領域の後方側の端部から順次作成され、しかも個々のソング管理データ領域54の容量は固定であるので、システム管理データ用アドレス領域51にHDD21の全アドレス領域の最後尾のアドレスを記憶しておくことにより、各ソング管理データ領域54の開始位置を演算で求めることができる。
【0028】
例えば、ソング1のソング管理データ領域54−1の開始位置は、〔HDD21の全アドレス領域の最後尾のアドレス〕−〔1つのソング管理データ領域54の容量〕の演算で求められる。
ここで、個々のソング管理データ領域54内では、データは通常どおり前方側から正方向(アドレスが増加する方向)に記憶されることを注記しておく。
なお、演算で求める代わりに、システム管理データ用アドレス領域51に、各ソングのソング管理データ領域54の開始位置のアドレスを記憶しておくこともできる。また、上記の例では、共用アドレス領域の最後尾のアドレスがHDD21の全アドレス領域の最後尾のアドレスに一致する例を示したが、一致しないようにしてもよい。
【0029】
ところで、各ソングのソング管理データの内部は、図4に示すような階層構造を有する。1つのソングは16のトラックによって構成され、各トラックは8つの仮想トラックを持つ。すなわち、各ソングは128の仮想トラックを含むことになる。また、録音及び再生を行う場合には、各トラックについて1つの仮想トラックを選択して行う。そして、録音の場合には、ミキサ18からデータ転送ユニット19を通して転送されてくる波形データは、トラック毎に選択されている仮想トラックの波形データとして波形データ領域53に記憶され、再生の場合には、トラック毎に選択されている仮想トラックの波形データが波形データ領域53から読み出されてデータ転送ユニット19を介してミキサ18へ転送される。
そして、例えば複数トラックを同時に録音する場合、各トラックの波形データはそれらが記憶される時点での共用アドレス領域52における波形データ記憶済み領域の最後尾に続けて記憶されるので、各(仮想)トラックの波形データは、波形データ領域53内にクラスタ単位で分散して記憶されることになる。
【0030】
このマルチトラックレコーダにおいて新規の録音を行う場合、まず新規のソングを作成するが、この状態では、作成されたソングを構成する各仮想トラックは全てミュート区間になっている。そして、トラックとその中の仮想トラックを選択して録音を行うことにより、そのトラックに波形データの存在する区間(リージョン)が形成され、波形データが波形データ領域53に記憶される。
従って、例えば、初めて録音の行われた仮想トラックには、その録音の終了時にはリージョンが1つだけ存在することになる。そして、そのリージョンの再生開始時刻は、ソングの時間軸においてそのリージョンの録音が開始された位置であり、再生時間は、録音開始から録音終了までの時間である。
【0031】
また、同じ仮想トラックの異なる時間範囲について順次録音を行えば、1つの仮想トラックに複数のリージョンが形成されることになる。そして、通常、曲をレコーディングする際には、複数のトラックの複数の仮想トラックを順次選択して録音が行われる。
さらに、このマルチトラックレコーダにおいては、このように録音した各仮想トラックの各リージョンを編集することもできる。例えば、各リージョンについて、波形データ領域53に記憶されたそのリージョンに対応する波形データの読み出し開始位置や終了位置を変更したり、再生開始時刻や再生時間を変更したりすることができる。
【0032】
このように形成した複数のリージョンを含む仮想トラックのデータは、図5に示すような構成となる。
まず、波形データは上述したようにクラスタ単位で分散して記憶されるので、これを連結するため、1クラスタ分の波形データをノードとし、各ノードについて、波形データ領域53におけるそのノードの波形データを記憶したクラスタのアドレス(後述するクラスタ番号)と、次のノードを連結するための連結情報(後述する後のノードのノード番号)とを含む情報を記憶するようにしている。そして、各ノードの連結情報に基づいてノードを辿り、各ノードの波形データを記憶したクラスタから波形データを順次読み出すことにより、録音した波形データを再現することができる。なお、図5において、各ノードに付した数字はそのノードのノード番号を示す。
【0033】
そして、各リージョンについて、そのリージョンで再生する波形データの先頭を示す再生開始位置(後述する先頭ノードのノード番号と再生開始ポイント)と、再生開始時刻と、再生時間と、次のリージョンを連結するための連結情報(後述する後のリージョンのリージョン番号)とを含む情報を記憶している。図5では、ノードの下側に付した上向きの矢印が各リージョンにおける再生開始位置を、下向きの矢印が再生終了位置を示す。
これに加えて、仮想トラックの情報として先頭のリージョンを示す先頭情報(後述する先頭リージョンのリージョン番号)を含む情報を記憶しておき、再生時に、先頭情報の示すリージョンから連結情報に基づいてリージョンを辿り、各リージョンについて記憶している再生開始時刻から再生時間だけ、再生開始位置から波形データを順次再生することにより、仮想トラックの波形データを再生することができる。
【0034】
ここで、各仮想トラックにおいて、ソングの開始時刻からその仮想トラックの最初のリージョンの再生開始時刻までの区間や、あるリージョンの再生終了時刻(再生終了時刻の再生時間だけ後)からその次のリージョンの再生開始時刻までの区間等は、対応する波形データの存在しない区間となる。この実施例においては、この区間をミュート区間と呼んでいる。
このマルチトラックレコーダにおいては、上述した各仮想トラック,リージョン,ノードについての情報をソング管理データ領域54に記憶し、これらの情報に基づいて波形データの再生順序及び再生タイミングを決定して再生している。その意味で、これらの情報をシーケンスデータと呼ぶ。
【0035】
各ソングのソング管理データ領域54には、そのソング全体にわたる情報を記憶するヘッダ領域、そのソングの各トラックにおける仮想トラックの情報を記憶するトラック領域、そのソングの各リージョンの情報を記憶するリージョン領域、そのソングの各ノードの情報を記憶するノード領域が互いに混在する状態で含まれている。このソングデータ管理領域54のうちリージョン領域が、リージョン情報記憶手段として機能する。
このうちヘッダ領域には、そのソングのソング名及び作成日の情報の他、各トラックについて現在選択されている仮想トラックの番号が記憶される。
トラック領域には、各トラックの名前と、各トラックの有する全ての仮想トラックそれぞれについての先頭リージョンのリージョン番号(又は先頭リージョンのリージョン情報へのポインタ)が記憶される。このうち、先頭リージョンのリージョン番号については、例えば図5に示した例の場合では、第5トラックの第2仮想トラックについて119が記憶されることになる。
【0036】
そして、リージョン領域には、各リージョンについてのリージョン情報として、前のリージョンのリージョン番号,後のリージョンのリージョン番号,再生開始時刻,そのリージョンで最初に再生する先頭ノードのノード番号,先頭ノード内の再生開始ポイント,再生時間が記憶される。ここで、前のリージョンや後のリージョンのリージョン番号については、該当するリージョンがない場合にはNULL(空白)となる。また、該当するリージョンのリージョン情報の記憶位置を示すポインタとして記憶してもよい。ノード番号についても、同様にノード情報の記憶位置を示すポインタとして記憶してもよい。再生開始時刻は、そのリージョンの波形データの再生を開始する時刻をソングの再生開始からの相対時刻で指定する。再生時間は、そのリージョンで再生するノード数及び最終ノード内の再生終了ポイントによって指定する。
【0037】
例えば、図5に示したリージョン119の場合には、前のリージョンのリージョン番号としてNULL,後のリージョンのリージョン番号として122,先頭ノードのノード番号として5011,再生開始時刻として何らかの値,再生開始ポイントとして図中のノード5011の下側に示した上矢印に相当する位置、再生時間として再生ノード数3とノード5023の下側に示した下矢印に相当する位置が記憶されることになる。
ここで、再生開始時刻から再生時間だけ経過した時刻が再生終了時刻であるので、実質的に再生終了時刻の情報もリージョン情報として記憶されていることになる。
【0038】
ノード領域には、各ノードについてのノード情報として、前のノードのノード番号,後のノードのノード番号,HDD21中のそのノードの波形データを記憶したアドレス(クラスタ番号)が記憶される。ここで、前のノードや後のノードのノード番号については、該当するノードがない場合にはNULL(空白)となる。また、該当するノードのノード情報の記憶位置を示すポインタとして記憶してもよい。
例えば、図5に示したノード5019の場合には、前のノードのノード番号として5011,後のノードのノード番号として5023,そして適切なクラスタ番号を記憶することになる。
【0039】
CPU14は、これらのシーケンスデータを参照して、各仮想トラックの波形データの記憶位置と再生タイミングとを認識し、再生時における波形データのHDD21からバッファメモリ30への転送と、バッファメモリ30からミキサ18への転送とを制御することができる。
そして、各リージョンにおいてHDD21中のどの位置に記憶されている波形データを再生するかを示す情報、すなわち再生するリージョンの先頭ノードの情報,再生するノードの後のノードのノード番号,再生開始ポイントと再生終了ポイントの情報が、波形選択情報である。ただし、波形選択情報の表現および記憶の形式は、上述したものに限られるものではない。
なお、このマルチトラックレコーダにおいては、波形データを録音する際には、1つのリージョンの波形データは連鎖するノードの波形データとして記憶する。この連鎖を示すのが、図5でノード間を繋ぐ矢印であり、連鎖の先頭のノードにおいては常にその先頭から波形データが記憶される。最終ノードにおいては、録音の中止された時点までしか波形データが存在しないが、それ以降にもミュート状態を示す波形データを書き込み、大きさはやはり1クラスタ分としている。
【0040】
そして、一度録音した波形データに対して再録音を伴わない切り貼りの編集を行う場合には、もとの波形データ、すなわち初めに録音した各ノードの波形データに変更を加えることなく、シーケンスデータを変更して編集結果を作成する。すなわち、あるリージョンの先頭部を削除する場合には先頭ノードを後ろのノードにずらしたり再生開始ポイントにオフセットを設けたりし、位置をずらす場合には再生開始時刻を変更する等している。
このようにしても、CPU14が編集後のシーケンスデータを参照して波形データの転送タイミングを制御すれば、各ノードの波形データ自体を切り貼り編集して得た波形データを再生する場合と同様の再生を行うことができる。
【0041】
次に、このようにHDD21に記憶されている波形データを再生する際のデータ転送の制御について、図6及び図7を用いて詳しく説明する。図6は図1に示したデータ転送ユニット19の構成をより詳しく示すブロック図、図7は図6に示したレジスタと波形データの読み出しアドレスとの関係について説明するための図である。
このマルチトラックレコーダにおいて、HDD21に記憶されている波形データを再生する際には、ソング管理データに従ってHDD21からクラスタ単位で波形データを順次読み出してデータ転送ユニット19のバッファメモリに記憶させ、ここからサンプリング周期毎に1サンプルずつ読み出してミキサ18に転送することは既に述べた。
【0042】
この転送の中継を行うデータ転送ユニット19は、図6に示す構成である。すなわち、HDD21からIDEI/F20を介して読み込む波形データのバッファメモリ30への書き込みアドレスを制御するための転送カウンタ33と比較回路34と、ミキサ18とバッファメモリ30との間で波形データを転送する際(録音ないし再生時)のバッファメモリ30からの波形データの読み出しアドレスとバッファメモリ30への波形データの書き込みアドレスとミュート回路32の動作とを制御するための録再カウンタ35と比較回路36とを備え、マルチプレクサ31によって転送カウンタ33と録再カウンタ35との出力の一方を時分割に選択してバッファメモリ30における書き込み及び読み出しアドレスを制御している。この時分割の態様としては、例えば、ミキサ18とバッファメモリ30との間の転送を行うための録再カウンタ35の出力をその転送タイミングで優先的に選択し、その残りの時間に転送カウンタ33の出力を選択するようにすればよい。
さらに、ミュートの指示があったミュート期間はバッファメモリ30から読み出された波形データをミュートしてミキサ18に転送するミュート手段としてミュート回路32を設けている。
【0043】
また、このデータ転送ユニット19はレジスタ群37,38も備えており、転送カウンタ33の動作は比較回路34とレジスタ群37によって、録再カウンタ35の動作は比較回路36とレジスタ群38によって制御される。
さらに、録再カウンタ35,比較回路36,レジスタ群38は、録音及び再生を行うトラック毎に同じものを1組ずつ設けている。すなわち、このマルチトラックレコーダは、最大で16トラックの再生と4トラックの録音を同時に行うので、録再カウンタ35,比較回路36,レジスタ群38の組を20組備えている。
図7においては、図示の都合上代表して1組のみを示しており、ここではこの1組の動作を代表して説明するが、実際には最大20組の録再カウンタが並列してマルチプレクサ31及びミュート回路32に信号を出力することになる。どの録再カウンタをどのトラックに対応させるかは、録音/再生の開始時にCPU14が決定するものとする。
【0044】
16トラックの再生と4トラックの録音を同時に行うため、20組の録再カウンタ35は録音と再生のための波形データの転送を時分割化されたタイミングで行う。すなわち、録再カウンタ35の出力する読出アドレスに従って、データ転送ユニット19とミキサ18の間では、各サンプリング周期毎に、最大16トラックの再生のための波形データがデータ転送ユニット19からミキサ18に転送され、また、最大4トラックの録音のための波形データがミキサ18から転送ユニット19に転送される。従って、波形データは図6のミュート回路32を時分割で通過することになる。
20組の録再カウンタ35はそれぞれ、ミュート回路32にミュートを指示する場合、その録再カウンタ35の出力する読出アドレスから波形データを読み出して転送を行うタイミング、すなわち、その録再カウンタ35に対応付けられたトラックの波形データがミュート回路32を通過するタイミングでミュートを指示する。
このマルチトラックレコーダでは、データ転送ユニット19による波形データの転送タイミングに同期してミュートを行うようにしているので、時分割化され転送される複数のトラックの波形データのうちの任意のトラックの波形データをミュートするための構成が簡単である。
【0045】
レジスタ群37には、開始アドレスレジスタSAD,終了アドレスレジスタEAD,トリガフラグTrigerが含まれる。そして、HDD21から波形データを読み出してバッファメモリ30に書き込む場合には、CPU14が開始アドレスレジスタSADと終了アドレスレジスタEADにそれぞれ書き込み領域の開始アドレスと終了アドレスを設定し、IDEI/F20にHDD21からの読み出しを行う旨と対象のクラスタの番号を設定する。その後、CPU14がトリガフラグTrigerに1を書き込むと、HDD21から指定したクラスタの1クラスタ分の波形データが読み出される。
【0046】
転送カウンタ33は、開始アドレスレジスタSADの値からカウントを開始し、そのカウント値を書き込みアドレスとしてマルチプレクサ31に出力する。そして、前述したようにバッファメモリ30への書き込みとバッファメモリからの読み出しは並行して行うので、マルチプレクサ31はこのタイミングを調整する。そしてマルチプレクサ31がタイミングを計ってそのアドレスをバッファメモリ30に出力すると、そのアドレスへの書き込みが実行される。すると、転送カウンタ33はカウント値をカウントアップし、次の書き込みアドレスとしてマルチプレクサ31に出力する。一方、転送カウンタ33のカウント値は比較回路34にも入力され、比較回路34はこの値を終了アドレスレジスタEADの値と比較する。
【0047】
このような手順で転送カウンタ33が終了アドレスレジスタEADの値までカウントアップすると、比較回路34での比較が一致するので、この時点で比較回路34が転送カウンタ33にカウント動作の中止を指示すると共に、CPU14の処理に割り込みを発生させて1クラスタ分の波形データの読み込みが終了した旨を伝達する。ここで、この割り込みは、複数トラック分の波形データの記憶が同時に必要になった場合に、これらの記憶を順番に効率よく実行するための制御に用いるものである。
【0048】
このような処理により、HDD21上の指定したクラスタに記憶された波形データを読み出して、バッファメモリ30上の開始アドレスレジスタSADと終了アドレスレジスタEADとで指定した領域に書き込むことができる。ここで、読み出しは常に1クラスタ単位で行われるので、終了アドレスレジスタEADは設けず、終了アドレスは開始アドレスレジスタSADの値から演算で求めるようにしてもよい。
なお、録音時にHDD21への波形データの書き込みを行う場合も、IDEI/F20に書き込みを行う旨を設定することにより、同様の動作で、バッファメモリ30上の開始アドレスレジスタSADと終了アドレスレジスタEADとで指定した領域に記憶された波形データをHDD21上の指定したクラスタに書き込むことができる。
【0049】
一方、レジスタ群38には、バッファメモリ30上の図2に示した対応するトラックについてのA領域の読み出し開始アドレスを示すレジスタDest0,同じくB領域の読み出し開始アドレスを示すレジスタDest1,A領域の読み出し終了アドレスを示すレジスタTar0,B領域の読み出し終了アドレスを示すレジスタTar1,ミュート期間における読み出し開始アドレスを示すレジスタZDest,ミュート期間における読み出し終了アドレスを示すレジスタZTar,ミュート期間を指定するためのレジスタmute,再生開始を指示するためのトリガフラグstart,再生終了を指示するためのトリガフラグstopが含まれる。
そして、バッファメモリ30から波形データを読み出してミキサ18に転送する場合には、CPU14はレジスタDest0,Dest1,Tar0,Tar1,ZDest,ZTarのうち必要なレジスタにそれぞれ適切な値を設定することによって、バッファメモリ30上の波形データを読み出すべきアドレスを指定する。
【0050】
ここで、これらのうちレジスタDest0,Dest1,Tar0,Tar1の設定値は、基本的にはバッファメモリ30上の対応する領域の開始あるいは終了アドレスと一致するが、前述したシーケンスデータによって再生開始ポイントや再生終了ポイントが設定されその領域に記憶される波形データの一部しか再生しない場合には、これに応じて領域の途中のアドレスが設定されることになる。レジスタZDest,ZTarについては後述する。
【0051】
HDD21に記録された波形データの再生を行う場合、再生はソング毎に行うが、CPU14はHDD21から再生するソングについての前述したシーケンスデータを読み出して参照し、再生すべき仮想トラック、リージョン及びノードの構成や再生タイミング、そしてミュート期間の配置を認識する。そして、再生する仮想トラックの初めがミュート期間でなく、ソングの再生開始とその仮想トラックの波形データの再生開始が同時の場合、再生開始準備として、上述した処理によって初めの2クラスタ(2つのノード)分の波形データをHDD21から読み出させ、それぞれバッファメモリ30のA領域とB領域に記憶させておく。
【0052】
そして、ユーザが操作子13のプレイボタンを押下する等して再生開始を指示すると、CPU14はトリガフラグstartに1を書き込み、転送開始のトリガをかける。すると、録再カウンタ35はレジスタDest0の値からカウントを開始し、そのカウント値を読み出しアドレスとしてマルチプレクサ31に出力する。ここでは、録再カウンタ35がアドレス発生手段として機能する。そして、前述したようにバッファメモリ30への書き込みとバッファメモリ30からの読み出しは並行して行うので、マルチプレクサ31はこのタイミングを調整する。
【0053】
そしてマルチプレクサ31がタイミングを計ってそのアドレスをバッファメモリ30に出力すると、そのアドレスから1サンプルの波形データが読み出され、ミュート回路32を通してミキサ18に転送される。ここでは、マルチプレクサ31が読出手段として機能する。
このとき、ミュート回路32にミュートが指示されていれば、ミュート回路32は、波形データをミュートし、無音状態を示すデータに変更してからミキサ18に対して出力する。このミュートは、例えばミュート回路32をアンドゲートによって構成し、入力端子の一方に波形データを入力するようにし、ミュート指示を行う場合には入力端子のもう一方に0を入力するようにして行うことができる。
【0054】
1サンプルの読み出しが完了し、次のサンプリング周期になると、録再カウンタ35はカウント値をカウントアップし、次の読み出しアドレスとしてマルチプレクサ31に出力する。一方、録再カウンタ35のカウント値は比較回路36に入力され、比較回路36はこの値をレジスタTar0の値と比較する。
このような手順でサンプリング周期毎にバッファメモリ30から1サンプルずつ波形データを読み出してミキサ18に転送し、録再カウンタ35がレジスタTar0の値までカウントアップすると、比較回路36での比較が一致する。この時点でA領域の終わりまで読み出しが終了したことになるので、比較回路36はCPU14の処理に割り込みを発生させ、その旨を伝達する。そして、CPU14はこれを認識すると、HDD21に記憶されている次に再生すべきノードの1クラスタ分の波形データを読み出しを終了したA領域に書き込む指示を行う。また、そのノードのうちの再生すべき部分に応じてレジスタDest0及びTar0の内容を更新する。
【0055】
一方、録再カウンタ35は、レジスタmuteを参照してミュートが設定されているか否か判断する。そして、設定されていなければ続けてB領域の波形データを読み出すため、レジスタDest1の値からカウントを開始し、そのカウント値を読み出しアドレスとしてマルチプレクサ31に出力する。そして、A領域の場合と同様にマルチプレクサ31がタイミングを調整してこれをバッファメモリ30に出力し、波形データの読み出しとミキサ18への転送が行われる。
また、比較回路36での比較対象はB領域の読み出し中はTar1の値である。そして、録再カウンタ35がレジスタTar1の値までカウントアップし、比較回路36での比較結果が一致すると、その時点でB領域の終わりまで読み出しが終了したことになるので、比較回路36はCPU14の処理に割り込みを発生させ、その旨を伝達する。そして、CPU14はこれを認識すると、HDD21に記憶されている次に再生すべきノードの1クラスタ分の波形データを読み出しを終了したB領域に書き込む指示を行う。また、そのノードのうちの再生すべき部分に応じてレジスタDest1及びTar1の内容を更新する。
【0056】
録再カウンタ35は、レジスタmuteを参照してミュートが設定されているか否か判断し、設定されていなければ続けて再びA領域の波形データを読み出すため、レジスタDest0の値からカウントを開始する。なお、A領域の波形データは、B領域の波形データを読み出している間にHDD21から読み出された次のノードの波形データによって更新されている。
以後このような処理を繰り返すことにより、図7(a)に示すように録再カウンタ35のカウント値を変化させ、A領域とB領域の波形データを交互に読み出してミキサ18に転送することができ、波形データを連続的に再生することができる。
以上のうち、HDD21からバッファメモリ30への波形データの転送の処理においては、CPU14とマルチプレクサ31と転送カウンタ33とが波形データ転送手段として機能する。
なお、ユーザから再生中止の指示があると、CPU14はトリガフラグstopに1を書き込み、その時点で録再カウンタ35のカウントアップ動作が停止される。
【0057】
ここで、以後、上述したA又はBの1つの領域の波形データの転送を行う期間、すなわち、録再カウンタがDest0からTar0まであるいはDest1からTar1までカウントアップして読み出しを行う期間を、「クラスタ期間」と呼ぶことにする。後述するZDestからZTarまでの場合も同様とする。なお、この「クラスタ期間」において、必ずしも1クラスタ分全ての波形データの転送を行うわけではないことに注意が必要である。
【0058】
ところで、あるクラスタ期間の後にミュート期間が設けられている場合、CPU14は少なくともそのクラスタ期間が終了する前に、レジスタmuteに次のクラスタ期間のミュートを指示する旨の情報を設定しておく。そして、録再カウンタ35がレジスタmuteを参照した際にミュートが設定されていれば、次のクラスタ期間では録再カウンタ35はレジスタZDestの値からカウントを開始し、ミュート回路32に対してミュートを指示すると共に、レジスタmuteをクリアする。
【0059】
また、比較回路36は、録再カウンタ35のカウント値とレジスタZTarの値とを比較する。録再カウンタ35がレジスタZTarの値までカウントアップし、比較回路36での比較結果が一致すると、その時点でミュートを指定したクラスタ期間分の読み出しが終了したことになるので、比較回路36はCPU14の処理に割り込みを発生させ、その旨を伝達する。また、録再カウンタ35は、再度レジスタmuteを参照してミュート指示が設定されているか否か判断する。
さらにミュート期間を継続させる場合には、この時点までにCPU14は再びレジスタmuteにミュートを指示する旨の情報を設定しておくので、この場合には録再カウンタ35は再度カウンタZDestの値からカウントを開始し、ミュート回路32に対してミュートを指示すると共に、レジスタmuteをクリアする。
ミュートが設定されていなければ、録再カウンタ35は、図7(b)又は(c)に示すように、ミュート期間に入る直前に読み出しを行っていた領域でない方の領域から波形データを読み出すべく、Dest0又はDest1からカウントを開始すると共に、ミュート回路32に対するミュート指示を取り消す。従って、以後は再びバッファメモリ30から読み出した波形データがそのままミキサ18に転送されることになる。
【0060】
ここで、ミュート期間においてはバッファメモリ30からどのような波形データが読み出されても動作に影響はないので、レジスタZDest及びZTarは、バッファメモリ30中のアドレスの値であればどんな値に設定しても構わない(但しZTar>ZDestである)。そして、レジスタZTarの値とレジスタZDestの値との差が、ミュート期間の長さを示すことになる。
しかし、ミュート期間以外では1クラスタ分の波形データを読み出す毎に割り込みを発生させて読み出し領域を切り換える制御を行っているので、制御を簡単にするため、ここではミュート期間についても1クラスタ分毎に区切って割り込みを発生させるようにしている。そして、このような制御を行うため、レジスタZDestの値はA領域の先頭アドレスに固定し、レジスタZTarの値は基本的にA領域の最終アドレスとしている。そして、指定すべきミュート期間の長さが1クラスタ分の期間より短い場合に、レジスタZTarの値としてレジスタZDestの値により近い値を設定している。
【0061】
なお、上記の説明においては、各クラスタ期間が終了した時点の割り込み処理において、CPU14が、読み出しを終了した領域にHDD21に記憶されている次に再生すべきノードの波形データを書き込む指示を行う例を示したが、次がミュート期間である場合には必ずしもその割り込み処理の時点で書き込みの指示を行う必要はなく、一連のミュート期間が終了した後の読み出しに間に合うタイミングで書き込みを指示すればよい。
これらのミュート期間の指定に関する処理においては、CPU14と録再カウンタ35とがミュート指示手段として機能する。
【0062】
なお、上記の処理において、レジスタ群38の値はCPU14が各リージョンのリージョン情報に含まれる再生開始時刻と再生終了時刻の情報に基づいて設定し、録再カウンタ35はレジスタ群38のmuteレジスタの内容に基づいて再生中の区間がミュート区間か否か判断し、ミュート指示の有無を決める。従って、ミュート指示手段は、読出アドレスと、リージョン情報に含まれる各リージョン区間の処理開始時刻情報と処理終了時刻情報とに基づいて、トラックにおける処理中の区間がリージョン区間かミュート区間かを判定し、ミュート区間である場合にはミュートを指示する手段であるということもできる。
また、各リージョンの末尾においては、Tar0レジスタあるいはTar1レジスタは、そのリージョンの(ここでは再生終了ポイントを用いて指定される)再生終了時刻に応じた値に設定されるので、読出アドレスがここまで進行したタイミングで次のミュートのクラスタ期間に移行することになる。その後、ミュート区間の最後のクラスタ期間では、ZTarレジスタは、次のリージョンの再生開始時刻に応じた値に設定されるので、読出アドレスがここまで進行したタイミングで次の有音のクラスタ期間に移行することになる。
また、上述した読出手段とミュート手段と波形処理手段とによって処理手段を構成するものとする。
そして、各リージョンの先頭においては、Dest0レジスタあるいはDest1レジスタは、波形選択情報である再生開始ポイントに応じた値に設定されるので、読出アドレスはこの値からカウントされ、処理手段による波形データの読み出しと処理も、このアドレスから行われることになる。
【0063】
次に、図8及び図9も用いて、このマルチトラックレコーダにおける波形データ再生時のデータ転送制御の具体例について説明する。図8及び図9は、図5に示した仮想トラック5−2を再生する場合の波形データの転送処理について説明するための図である。
なお、図8において、HDD21からバッファメモリ30への1クラスタ分の波形データの転送終了時の割り込みは図示を省略しているが、この割り込みは、複数トラックの同時録音及び/又は同時再生にかかる転送カウンタ33による波形データの転送を効率よく行うための割込みである。
【0064】
複数トラックの同時録音及び/又は同時再生では、異なるトラックのクラスタ単位の転送が同時に要求される場合がある。しかしながら、転送カウンタ33及びIDEI/F20の構成上、複数のトラックのクラスタ単位の転送を同時に行うことはできない。そのため、転送カウンタ33はこの割り込みを使用して複数トラックのクラスタ単位の転送を1トラック分ずつ順番に行うのである。すなわち、まずいずれか1つのトラックのクラスタ単位の転送を行い、その終了を割り込みにより検知して次のトラックのクラスタ単位の転送を行う、それを続けることにより要求された全トラック分の転送を行うのである。
【0065】
仮想トラック5−2の例に戻ると、この仮想トラックにおいては、図8に示す通り、最初のリージョンであるリージョン119の再生開始が仮想トラックの再生開始から2秒15後に設定されているので、再生はミュート期間から始まる。また、次のクラスタ期間もミュート期間である。
このように最初の2つのクラスタ期間がミュート期間である場合には、再生開始準備の時点においてバッファメモリ30に波形データを記憶させておく必要はない。また、最初の1つのクラスタ期間のみミュート期間である場合には、1クラスタ分のみ記憶させておけばよい。
【0066】
従って、図8に示す例の場合には、図9に示すように、再生開始時にはHDD21からバッファメモリ30への波形データの転送は行わない。また、レジスタZDestにバッファメモリ30上のA領域の最初のアドレスを、レジスタZTarに同じくA領域の最後のアドレスを設定すると共にミュートを指示し、初めのクラスタ期間ではミュート回路32でミュートを行いながら丸々1クラスタ分の65536サンプルの波形データをサンプリング周期毎に読み出し、ミキサ18に転送する。そして、次のクラスタ期間もミュート期間であるので、CPU14はこの間にレジスタmuteにミュートを設定しておく。なお、図中の「*」は、その時点の処理においてそのレジスタの内容は考慮しないことを示す。
【0067】
録再カウンタ35のカウント値がレジスタZTarの値に達すると割り込みIが発生する。この時点でレジスタmuteにミュートが設定されているので、録再カウンタ35はミュート回路32にミュートを指示すると共にレジスタZDestからカウントを開始するが、設けるべきミュート期間はあと37664サンプル分の期間であるので、CPU14はレジスタZTarにA領域の37664番目のアドレスを書きこんでその旨の設定を行う。レジスタZDestの値は変更しないが、図中の上矢印はこのように前に設定した値を変更していないことを示す。
また、次の割り込み後のクラスタ期間はノード5011を再生する期間であるので、CPU14はノード5011の波形データを記憶しているHDD21のクラスタ5011を読み出してその内容をバッファメモリ30のA領域に書き込む指示を行う。ここで、図5に示したようにノード5011にはオフセットが設定されており、再生開始ポイントが7210番目の波形データであるので、再生開始位置を示すレジスタDest0にA領域の7210番目のアドレスを設定する。また、このノードは最後まで再生するので、再生終了位置を示すレジスタTar0にはA領域の最終アドレスを設定する。
【0068】
2番目のクラスタ期間(ミュート期間)の再生が終了すると、割り込みIIが発生する。この時点ではレジスタmuteにミュートは設定されていないので、録再カウンタ35はバッファメモリ30のA領域に記憶されたノード5011の波形データ(65535−7210+1=58327サンプル)を読み出すべく、レジスタDest0の値であるA領域の7210番目のアドレスからカウントを開始する。
また、次の割り込み後のクラスタ期間はノード5019を再生する期間であるので、CPU14はHDD21のクラスタ5019を読み出してその内容をバッファメモリ30のB領域に書き込む指示を行う。そして、ノード5019については全体を再生するので、レジスタDest1にはB領域の先頭アドレスを、Tar1にはB領域の最終アドレスを設定する。
【0069】
3番目のクラスタ期間の再生(ノード5011の再生)が終了すると、割り込みIIIが発生するが、ミュートが設定されていないので、録再カウンタ35は引き続きバッファメモリ30のB領域に記憶されたノード5019の波形データ(65536サンプル)を読み出すべく、レジスタDest1の値であるB領域の先頭アドレスからカウントを開始する。
また、CPU14は次の割り込み後のクラスタ期間に再生するノード5023の波形データを、読み出しが終了したバッファメモリ30のA領域に書き込む指示を行う。そして、レジスタDest0にA領域の先頭アドレスを設定すると共に、レジスタTar0には再生終了ポイントであるA領域の56617番目のアドレスを設定する。
【0070】
4番目のクラスタ期間の再生(ノード5019の再生)が終了すると、割り込みIVが発生するが、ミュートが設定されていないので、録再カウンタ35は引き続きバッファメモリ30のA領域に記憶されたノード5023の波形データ(56617サンプル)を読み出すべく、レジスタDest0の値であるA領域の先頭アドレスからカウントを開始する。
また、次の割り込み後のクラスタ期間はミュート区間であるので、CPU14はレジスタmuteにミュートを設定する。そして、丸々1クラスタ分のミュート期間を指定するため、レジスタZTarにA領域の最終アドレスを設定する。
【0071】
5番目のクラスタ期間の再生(ノード5023の再生)が終了すると、割り込みVが発生するが、この時点でレジスタmuteにミュートが設定されているので、録再カウンタ35はミュート回路32にミュートを指示すると共にレジスタZDestからカウントを開始する。また、次の割り込み後もミュート期間であるので、CPU14はレジスタmuteにミュートを設定するが、レジスタZTarの値をここで変更してしまうと、6番目のクラスタ期間(ミュート期間)の再生が正常に行えなくなるので、この時点では変更は行わない。
【0072】
6番目のクラスタ期間の再生が終了すると、割り込みVIが発生する。この時点でもミュートが設定されているので録再カウンタ35はミュート回路32にミュートを指示すると共にレジスタZDestの値からカウントを開始するが、設けるべきミュート期間はあと62144サンプル分の期間であるので、CPU14はレジスタZTarにA領域の62144番目のアドレスを書き込んでその旨の設定を行う。
また、CPU14は次の割り込み後のクラスタ期間に再生するノード5038の波形データを、バッファメモリ30の直前に読み出しを行った領域でないB領域に書き込む指示を行う。そして、ノード5038にもオフセットが設定されているので、レジスタDest1に再生開始ポイントであるB領域の34080番目のアドレスを設定する。レジスタTar1の内容は変更する必要がないのでそのままである。
【0073】
7番目のクラスタ期間(ミュート期間)の再生が終了すると、割り込みVIIが発生する。この時点ではレジスタmuteにミュートは設定されていないので、録再カウンタ35はバッファメモリ30のB領域に記憶されたノード5038の波形データ(65536−34080+1=31457サンプル)を読み出すべく、レジスタDest1の値であるB領域の34080番目のアドレスからカウントを開始する。
また、CPU14は次の割り込み後のクラスタ期間に再生するノード5040の波形データを、読み出しが終了しているバッファメモリ30のA領域に書き込む指示を行う。そして、レジスタTar0にA領域の最終アドレスを設定する。レジスタDest0の内容は変更する必要がないのでそのままである。
【0074】
以下同様に、割り込みVIII乃至XIにおいて図9に示した処理を行うことにより、図5に示した仮想トラック5−2のうち図8に示した部分の再生を行うことができる。
ここでは1トラックを再生する場合の動作について説明したが、複数トラックの同時再生を行う場合には、複数の録再カウンタ35の出力が、マルチプレクサ31とミュート回路32に入力されることになる。この場合、マルチプレクサ31は各録再カウンタ35の出力するアドレスを、適宜タイミングを調整してバッファメモリ30に出力して波形データを読み出させ、1サンプリング期間内に全てのトラックについての波形データをミキサ18に転送できるようにする。
ミュート回路32についても、録再カウンタ35からミュート指示の出ているトラックの波形データのみミュートしてミキサ18に転送し、そうでないトラックの波形データはそのままミキサ18に転送するものとする。
【0075】
このようなマルチトラックレコーダにおいては、波形データを処理するために再生を行う際、ミュート期間ではミュート回路32によって波形データをミュートしてミキサ18に出力するようにしているので、バッファメモリ30上にミュート期間の波形データを記憶しておく領域を設ける必要がなく、バッファメモリ30に必要な容量を低減し、コストダウンを図ることができる。また、再生開始準備時にミュート期間の波形データをバッファメモリ30に書き込む必要もないので、再生時の処理負担を低減し、再生準備を高速に行うことができる。
【0076】
なお、以上説明したマルチトラックレコーダにおいては、各リージョンの先頭又は末尾で再生するノードについて、再生のクラスタ期間が短すぎる場合には再生が不安定になることがあるので、このような場合には、前後のミュートあるいは有音のクラスタ期間と結合させてクラスタ期間が短くなりすぎないようにするとよい。
また、ここで示した例では、HDD21からの波形データの読み込みは、各ノードを再生するクラスタ期間の前のクラスタ期間に行うようにしたが、ミュート期間を挟む場合でも、ミュート期間中、すなわちミュート回路32によるミュートが行われている間、の最初のクラスタ期間に、ミュート期間後に再生する予定のクラスタ(ノード)の波形データをHDD21から読み出してバッファメモリ30に書き込んでおくようにしてもよい。
さらに、ミュート期間中に、ミュート期間後に再生する予定の2クラスタ分の波形データをバッファメモリ30に書き込んでおくようにしてもよい。このようにすれば、ミュート期間後のリージョンにおける初めのクラスタ期間が極端に短い場合でも、問題なく再生を行うことができる。
【0077】
また、HDD21から読み出した波形データはバッファメモリ30のA領域とB領域に交互に記憶させるようにしたが、ミュート期間の終了後にリージョンの先頭で再生すべき波形データは、直前に記憶させた領域に関わらず、常にA領域に記憶させるようにしてもよい。この場合、バッファメモリ30からの読み出しも、常にA領域から行うことになる。
また、CPU14によるレジスタmuteへのミュート指示の設定は、ミュート期間にすべきクラスタ期間の直前のクラスタ期間に行うようにしたが、2期間前あるいは3期間前にこの設定を行うことができるようにしてもよい。
【0078】
さらにまた、ここで示した例では、ミュート区間専用にレジスタZDest,ZTarを設けたが、ミュート区間専用のレジスタを設けずに、A領域用のレジスタDest0,Tar0とB領域用のレジスタDest1,Tar1のうちの、ミュート区間に入る直前のクラスタ期間において再生に使用されていない方のレジスタを、そのミュート区間のレジスタとして使用するようにしてもよい。その場合、そのミュート区間の終わったあとのクラスタ期間の再生には、ミュート区間に入る直前において再生に使用されていた方のレジスタを使うようにする。また、ここで示した例では、レジスタDest0,Tar0,Dest1,Tar1,ZDest,ZTarに基づいて録再カウンタの生成するアドレスをジャンプさせつつミュートを行っていたが、このようなアドレスのジャンプは行わずに、無音としたいアドレスの範囲を指定してその範囲でミュートを行わせるようにしてもよい。
【0079】
また、ここではこの発明をHDDを用いたマルチトラックレコーダに適用した例について説明したが、この発明は波形データを再生する際の制御手段に特徴を有するので、録音機能は必須ではない。また、波形データの記録についても、HDDに限らず、光ディスクや光磁気ディスクを用いてもよいことは言うまでもない。これらの記憶手段も、装置に内蔵したものであっても、SCSI(Small Computer System Interface)等によるインタフェースを介して接続して外部に設けたものでもよい。
【0080】
また、ここではバッファメモリ30とミキサ18の間にミュート回路32を設けた例について説明したが、バッファメモリ30とIDEI/F20との間にミュート回路を設け、転送カウンタ33がそのミュートを管理するようにしてもよい。その場合、バッファメモリ30にはミュート期間に先立ってミュート回路の働きによりミュートされた波形データが書き込まれ、ミュート期間には録再カウンタ35の出力する読み出しアドレスからその波形データを読み出す。このような構成では、ミュート期間において読み出しを行っている領域に次のクラスタ期間の波形データを書き込むことができない点、およびミュート期間の管理が複雑になる点で上述した実施形態に比較して劣るが、その他の点については上述した実施形態と同様な効果を発揮する。
これ以外にも、この発明の要旨を逸脱しない範囲で種々の変更を行うことができることも、いうまでもない。
【0081】
【発明の効果】
以上説明してきたように、この発明の波形データ処理装置によれば、バッファ上にミュート期間の波形データを記憶しておく領域を設ける必要がないので、バッファに必要な容量を低減し、コストダウンを図ることができる。また、再生開始準備時にミュート期間の波形データをバッファに書き込む必要もないので、再生時の処理負担を低減し、再生準備を高速に行うことができる。
さらに、バッファの、ミュート期間中に読み出しを行っているのと同じ領域に、次の期間のための波形データを用意することができる。
【図面の簡単な説明】
【図1】この発明の波形データ処理装置の実施形態であるマルチトラックレコーダの概略構成を示すブロック図である。
【図2】そのマルチトラックレコーダに備えたバッファメモリにおける波形データの記憶領域の配置を示す図である。
【図3】同じくHDDのアドレス領域におけるデータの配置を示す図である。
【図4】同じくソングデータの構成について説明するための図である。
【図5】同じく仮想トラックのデータの構成について説明するための図である。
【図6】図1に示したデータ転送ユニット19の構成をより詳しく示すブロック図である。
【図7】図6に示したレジスタと波形データの読み出しアドレスとの関係について説明するための図である。
【図8】図8は、図5に示した仮想トラック5−2を再生する場合の波形データの転送処理について説明するための図である。
【図9】図8に示した再生を行う際の各レジスタの設定やCPUによる制御処理について説明するための図である。
【符号の説明】
11…表示器、12…フェーダ、13…操作子、14…CPU、15…フラッシュメモリ、16…RAM、17…PCI/F、18…ミキサ、19…データ転送ユニット、20…IDEI/F、21…HDD、22…CD−RWドライブ、23…システムバス、30…バッファメモリ、31…マルチプレクサ、32…ミュート回路、33…転送カウンタ、34,36…比較回路、35…録再カウンタ、37,38…レジスタ群、41…波形データ入力端子、42…波形データ出力端子、51…システム管理データ用アドレス領域、52…共用アドレス領域、53…波形データ領域、54…ソング管理データ領域
Claims (1)
- クラスタ単位で波形データを読み書き可能な波形データ記憶手段に、再生すべき波形データの存在する、複数のクラスタ期間からなるリージョン区間と、該リージョン区間以外の、複数のクラスタ期間からなるミュート区間とからなるトラックの、該リージョン区間で再生すべき波形データとしてクラスタ単位で分散記憶されている波形データを連続的に処理する波形データ処理装置であって、
前記トラックを構成する各リージョン区間について、該リージョン区間の処理開始時刻情報と処理終了時刻情報と波形選択情報とを含むリージョン情報を記憶するリージョン情報記憶手段と、
前記波形データのサンプリング周期毎に進行する読出アドレスを発生させるアドレス発生手段と、
前記波形データ記憶手段からクラスタ単位で読み出した波形データを一時的に記憶する1クラスタ分の記憶領域を複数有するリングバッファと、
前記読出アドレスと、前記リージョン情報に含まれる各リージョン区間の処理開始時刻情報と処理終了時刻情報とに基づいて、前記トラックにおける処理中のクラスタ期間が前記リージョン区間のクラスタ期間であるか前記ミュート区間のクラスタ期間であるかを判定し、前記ミュート区間のクラスタ期間である場合にはミュートを指示するミュート指示手段と、
前記各クラスタ期間に、前記リングバッファから前記読出アドレスに基づいて波形データを順次読み出し、該クラスタ期間に対し前記ミュート指示手段によってミュートが指示されていない場合にはそのまま、ミュートが指示されている場合には読み出した波形データを無音波形データに変換して処理する処理手段と、
該処理手段による前記リングバッファからの前記リージョン区間の波形データの読み出しが1クラスタ期間分終了した場合に、前記処理手段による前記波形データの読み出しと並行して、前記波形選択情報に基づいて前記波形データ記憶手段から、リージョン区間内で次に波形データを読み出すべきクラスタ期間の1クラスタ分の波形データを読み出して、前記リングバッファの前記波形データ処理手段による波形データの読み出しが終了した1クラスタ分の記憶領域に記憶させる波形データ転送手段とを設け、
前記アドレス発生手段は、前記処理中のクラスタ期間が前記ミュート区間内のクラスタ期間である間も、前記ミュート区間内のクラスタ期間の読出アドレスとして、前記リングバッファ中の、前記波形データ記憶手段から読み出した前記リージョン区間内のクラスタ期間の波形データを記憶させる記憶領域内で進行するアドレスを発生させると共に、前記ミュート区間の終了時に、読出アドレスを、次のリージョン区間内で最初に読み出すべき波形データを記憶させたアドレスに移動させる手段であることを特徴とする波形データ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002130780A JP3925294B2 (ja) | 2002-05-02 | 2002-05-02 | 波形データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002130780A JP3925294B2 (ja) | 2002-05-02 | 2002-05-02 | 波形データ処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006300422A Division JP4151726B2 (ja) | 2006-11-06 | 2006-11-06 | 波形データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003323174A JP2003323174A (ja) | 2003-11-14 |
JP3925294B2 true JP3925294B2 (ja) | 2007-06-06 |
Family
ID=29543711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002130780A Expired - Fee Related JP3925294B2 (ja) | 2002-05-02 | 2002-05-02 | 波形データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3925294B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7259314B2 (en) | 2005-03-28 | 2007-08-21 | Yamaha Corporation | Waveform data processing apparatus |
-
2002
- 2002-05-02 JP JP2002130780A patent/JP3925294B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003323174A (ja) | 2003-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6441290B2 (en) | Apparatus and method for reproducing or recording, via buffer memory, sample data supplied from storage device | |
JPH06236313A (ja) | 音声信号記録再生装置 | |
US7259314B2 (en) | Waveform data processing apparatus | |
US6437228B2 (en) | Method and apparatus for storing audio data | |
JP2002215164A (ja) | 波形データ処理装置及び方法並びに記録媒体 | |
JP2002124022A (ja) | オーディオデータ記録再生装置 | |
JP4151726B2 (ja) | 波形データ処理装置 | |
JP3925294B2 (ja) | 波形データ処理装置 | |
JP3812674B2 (ja) | データ蓄積ディスクの再生装置 | |
JP3980750B2 (ja) | 電子楽器 | |
JP2002203361A (ja) | ディジタルオーディオ録音装置 | |
JP4055784B2 (ja) | マルチトラック再生装置 | |
JP3741063B2 (ja) | ディジタルレコーダおよびそのプログラム | |
US20010048648A1 (en) | Audio recording medium, methods of recording data on and reproducing data from the recording medium, and recording and reproducing apparatuses therefor | |
JP3980751B2 (ja) | 電子楽器 | |
JP3770030B2 (ja) | 録音再生装置 | |
JP3230756B2 (ja) | デジタルレコーダ | |
JP4207914B2 (ja) | 波形データ処理装置 | |
JP2009032394A (ja) | オーディオデータ記録再生装置 | |
JP3666467B2 (ja) | 波形編集装置及び波形編集用プログラム | |
JP3664027B2 (ja) | 記録再生装置 | |
JP4140612B2 (ja) | 波形データ処理装置 | |
JP3714087B2 (ja) | サンプルデータ再生装置およびサンプルデータ記録再生装置 | |
JP3573043B2 (ja) | 録音再生装置の複数マイコンの同期回路 | |
JP4456469B2 (ja) | 演奏情報再生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060117 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060316 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060905 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061101 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20061117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061212 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070110 |
|
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: 20070206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070219 |
|
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: 20110309 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110309 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120309 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130309 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140309 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |