以下、図面を用いてこの発明の実施の形態について説明する。
図1は、この発明に係るミキサ付きマルチトラックディジタルレコーダのブロック構成図である。このレコーダは、中央処理装置(CPU)101、フラッシュメモリ102、ランダムアクセスメモリ(RAM)103、表示器104、電動フェーダ105、操作子106、PC入出力インターフェース(I/O)107、ミキサ108、波形入力部109、波形出力部110、転送部111、バッファメモリ112、IDE(Integrated Device Electromics)入出力インターフェース113、ハードディスク114、CD−RW(CD-rewritable)ドライブ115、およびバスライン120を備える。
CPU101は、このミキサ付きレコーダの全体の動作を制御する処理装置であり、DMA(ダイレクトメモリアクセス)機能を含む。フラッシュメモリ102は、CPU101が実行する各種の制御プログラムやCPU101が使用する各種のデータなどを格納した不揮発性メモリである。フラッシュメモリ102は、書き換えが可能で、電源を切っても記憶された情報が失われない。RAM103は、CPU101が実行するプログラムのロード領域やワーク領域に使用する揮発性メモリである。表示器104は、このレコーダの外部パネル上に設けられた各種の情報を表示するためのディスプレイである。電動フェーダ105は、このレコーダの外部パネル上に設けられた各種パラメータの値設定用の操作子である。操作子106は、このレコーダの外部パネル上に設けられた各種の操作子である。
PC I/O107は、外部PC(パソコン)と接続するためのインターフェースである。本ミキサ付きレコーダは、通常モードとストレージモードとを有する。通常モードのときは、ミキサ付きレコーダとしての通常の動作を行い、外部PCから本ミキサ付きレコーダへはアクセスできない。ストレージモードのときは、外部PCからハードディスク114やCD−RWドライブ115にアクセスでき、例えば、外部PCで、ハードディスク114に保存されているソングデータから波形データを読み出し、種々の加工を行い、再びハードディスク114に書込む、といった処理が可能である。
ミキサ108は、波形入力部109から入力した波形データ、および転送部111を介して入力したハードディスク114やCD−RWドライブ115からの波形データを、任意に組み合わせてミキシングする。ミキシング結果は、波形出力部110や転送部111に出力される。波形入力部109は、マイクなどから入力したアナログ楽音信号をディジタル波形データに変換して、あるいは入力したディジタル波形データをそのまま、ミキサ108に供給する。波形出力部110は、ミキサ108から供給される波形データを出力する。出力された波形データは、必要に応じて、アナログ楽音信号に変換され不図示のサウンドシステムにより放音される。
ミキサ108は、実際にはディジタルシグナルプロセッサ(DSP)により構成されている。ミキサ108は、サンプリング周期単位で行われる時分割多重処理で複数トラックの処理を並行して実行する。ミキサ108に対する入出力は、基本的には1サンプリング周期で波形データの1サンプルを入出力するものである。ミキサ108に対して波形入出力を行う周辺各部は、ミキサ108の時分割処理に同期して、波形データの入出力を行う。例えば、所定のマイクから入力した演奏音を所定のトラックに録音する場合、当該マイクから入力して波形入力部109でディジタルデータに変換された波形データは、ミキサ108が当該トラックの処理を行うタイムスレッドで波形入力部109からミキサ108に供給されるようにタイミングが調整される。同様に、ミキサ108から当該トラックの波形出力を行うタイムスレッドで出力される波形データは、それが出力されるタイミングで転送部111が受け取り、当該トラックに対応するファイルにその波形データを書き込むように処理される。
転送部111は、CPU101からの指示に応じて、ハードディスク114とバッファメモリ112間の転送およびバッファメモリ112とミキサ108間の転送(サンプリング周期ごとに1サンプル転送するものであり、それを再生・録音トラック数分行う)を制御する。バッファメモリ112には、複数トラック分の記憶領域が用意されており、複数トラック分同時に録音・再生することができる。
1トラック分の録音は、以下のように行う。転送部111は、当該トラックに録音すべき波形データの1サンプルが出力されるサンプリング周期のタイミングで、ミキサ108から当該サンプルを受け取り、バッファメモリ112の当該トラックの記憶領域に書き込む。バッファメモリ112の当該トラックの記憶領域に1クラスタ分のサンプルが溜まったら、それをハードディスク114の当該トラック記憶領域へ転送する。転送部111からハードディスク114への波形データの転送は、1クラスタ分のデータが溜まったときに行われ、ミキサ108と転送部111との間のサンプリング周期に同期した転送とは独立している。したがって、転送部111からハードディスク114に転送を行っている間も、前述したバッファメモリ112への書き込み動作は継続される。
1トラック分の再生は、以下のように行う。まず再生すべきトラックの先頭の2以上のクラスタのサンプルをハードディスク114から読み出してバッファメモリ112の当該トラックに対応する記憶領域に書き込む。転送部111は、ミキサ108が当該トラックの波形データを入力するサンプリング周期のタイミングで、バッファメモリ112から当該トラックの1サンプルを読み出してミキサ108に渡す。バッファメモリ112に1クラスタ分の空き領域(再生し終えたサンプルの記憶領域)ができたら、ハードディスク114からその空き領域へ後続の1クラスタ分のデータを転送する。ハードディスク114からバッファメモリ112へのデータ転送がミキサ108と転送部111との間のデータ転送と独立して行われることは、録音時と同様である。
IDE I/O113は、ハードディスク114およびCD−RWドライブ115と転送部111とを接続するためのインターフェースである。また、IDE I/O113は、ハードディスク114およびCD−RWドライブ115と、CPU101、フラッシュメモリ102、およびRAM103との間のインターフェースでもある。ハードディスク114は、ソングデータなどを格納するための外部記憶装置である。CD−RWドライブ115は、CD、CD−R、あるいはCD−RWを挿入してデータを読み出しあるいは書き込む装置である。
図2は、図1のミキサ付きレコーダにおける信号の流れを示すブロック図である。信号入力201は、図1の波形入力部109から入力した波形信号を示す。入力した波形信号201は、16chある入力ch202のうちの任意のchに割り当てることができる。入力ch202は、入力した波形信号に対してフェーダ105などに応じたレベル調整、イコライザなどによる周波数特性の調整、あるいは各種の波形の変形処理・効果付与処理などを施す。入力ch202からの出力は、8本あるミキシングバス203に入力しミキシングされる。ミキシングバス203の出力は、対応する出力ch(8ch)204に出力される。出力ch204で、入力ch202と同様の信号処理を施し、波形信号出力205として出力する。この波形信号出力205が、図1の波形出力部110から出力される波形信号である。
録音セレクタ206は、入力ch202あるいは出力ch204から適宜録音用に選択したchの出力信号を入力し、マルチトラックレコーダ207の割り当てられたトラックに出力する。マルチトラックレコーダ207は、トラック毎に録音セレクタ206から割り当てられた入力chまたは出力chを割り当てて録音する。マルチトラックレコーダ207の再生出力は、各トラックに対応するトラックch(16ch)208に出力される。トラックch208は、各トラックの信号を適宜選択してミキシングバス203に出力する。これにより、マルチトラックレコーダ207の何れかのトラックを再生しながら、別トラックに録音する動作が可能である。
太線で図示したマルチトラックレコーダ207は、主として図1の転送部111、バッファメモリ112、IDE I/O113、及びハードディスク114などで実現される。図2中のマルチトラックレコーダ207以外の部分は、主として図1のミキサ(DSP)108、波形入力部109、及び波形出力部110などで実現される。ミキサ108の各種の設定(例えば、各ch202,204,208のレベルの設定、周波数特性の調整、あるいは波形変形処理や効果付与処理の設定)は、ユーザが図1の表示器104上の所定の画面を見ながらフェーダ105や操作子106を操作することにより行うことができる。それらのミキサ108における現時点での設定値は、RAM103上の現ソング管理データ中のミキサ領域に保持されているものである。現ソング管理データとは、RAM103上に読み込まれて展開されている作成編集対象のソングファイル(図3(b)で後述)のデータのことである。
図3(a)は、図1のハードディスク114のメモリマップを示す。最外周から第1及び第2のパーティション301及び302が割り当てられ、最内周に保護領域303が設けられている。パーティション301及び302は、PCと互換性のあるファイルシステム(FAT32、FAT16、NTFSなど)でフォーマットされており、上述したUSBストレージモードのとき、外部PCからアクセスすることができる領域である。なお、ここでは2つのパーティションを設けているが、その数は任意である。また、パーティション301及び302上のファイルシステムは、少なくとも各ファイル毎にタイムスタンプを記憶できるものとする。
保護領域303は、ユーザから隠されている領域であり、USBストレージモードでも外部PCからアクセスすることができない。この保護領域303には、本システムの動作プログラム(RAM103にロードされCPU101により実行される)を含む各種ファイルを保存する。特に、保護領域303には、「日時データ」と「最後に読み込まれていたソングのソング名」とが記憶される。これらについては、後に詳しく説明する。
図3(b)はソングファイルの構成、図4はソングデータのフォルダ及びファイル構成、図5はソングの構成、図6は仮想トラックの構成を、それぞれ示す。
まず図5と図6を参照して、1つのソングの構成と仮想トラックの構成を説明する。図5に示すように、1つのソングは16のトラックで構成され、各トラックはそれぞれ8つの仮想トラックを持つ。なお、トラックの数や仮想トラックの数はこれに限らない。録音及び再生を行う際には、各トラックについて1つの仮想トラックを選択して行う。新規にソングを作成する場合、初期状態では、そのソングを構成する各仮想トラックは全てミュート区間(無音の区間)になっている。そして、トラックとその中の仮想トラックを選択して録音を行うことにより、そのトラックに波形データの存在する区間(リージョン)が形成され、その波形データが記憶される。従って、例えば、初めて録音の行われた仮想トラックには、その録音の終了時にはリージョンが1つだけ存在することになる。同じ仮想トラックの異なる時間範囲について順次録音を行えば、1つの仮想トラックに複数のリージョンが形成されることになる。通常、曲をレコーディングする際には、複数のトラックの複数の仮想トラックを順次選択して録音が行われる。
このように形成した複数のリージョンを含む仮想トラックのデータは、図6に示すような構成となる。仮想トラック5−2は、トラック5の仮想トラック2を表すものとする(以下同様)。仮想トラックの情報として、当該仮想トラックの先頭リージョンのリージョン番号を記憶しておく。リージョン番号は、リージョンを一意に特定する番号である。各リージョンは、そのリージョンで再生する波形データを記憶する波形ファイルのファイル名と、再生開始位置と、再生開始時刻と、再生時間と、次のリージョンを連結するための連結情報である次リージョン番号とを記憶している。再生開始位置とは、当該波形ファイル中のどこから再生を開始するかを示す位置であり、例えば波形ファイル601であれば、ファイル先頭から再生開始ポイント611までのオフセット情報である。再生開始時刻は、当該トラックの中で(すなわち、当該ソングの時間軸上で)、このリージョンの再生を開始する時刻である。再生時間は、当該波形ファイルを再生する時間長さである。波形ファイル601では、612が再生終了ポイントを示している。1つの波形ファイルは、1テイク(1回の録音)で取得されたものである。
仮想トラックを再生するときには、その先頭リージョン番号のリージョンから次リージョン番号を辿りながら、各リージョンについて、記憶している再生開始時刻から再生時間だけ、波形ファイルの再生開始位置から波形データを読み出して順次再生する。なお、各仮想トラックにおいて、ソングの開始時刻からその仮想トラックの最初のリージョンの再生開始時刻までの区間や、あるリージョンの再生終了時刻(再生終了時刻の再生時間だけ後)からその次のリージョンの再生開始時刻までの区間などは、再生すべき波形ファイルの存在しない無音のミュート区間である。
このミキサ付きレコーダにおいては、録音した各仮想トラックの各リージョンを編集することもできる。例えば、各リージョンについて、波形ファイルの読み出し開始位置や終了位置を変更したり、再生開始時刻や再生時間を変更したりすることができる。また、指定したトラックの指定した仮想トラックにおいて、所望の区間を指定して新たに録音(パンチイン録音)したり、波形データのカット、コピー、ペースト、及びムーブなどの編集が可能である。このようにトラックが編集された場合、元の仮想トラックはそのままとして、新たな仮想トラックが作成される。例えば、図6の仮想トラック5−2で編集が行われた場合、リージョン119,122,129はそのまま残し、新たに編集後のリージョンを作成して記憶する。仮想トラックの情報としては、編集後の先頭リージョンのリージョン番号を記憶する。編集前の状態の先頭リージョン番号119は、1つ前の履歴として、仮想トラック5−2の情報に残しておく。これにより、アンドゥー(UNDO)で編集前の状態に戻れるようにしている。
なお、トラックの編集において、波形ファイルは非破壊とする。例えば、図6の仮想トラック5−2で波形データのカット、コピー、ペースト、及びムーブなどの編集が行われた場合でも、波形ファイル601〜603自体はそのままの状態で保持され、それらを指すリージョンデータの方を追加・修正・削除することで対処するものとする。ただし、新たな録音のときは、その波形ファイルが追加されるものとする。また、波形データのカット&ペーストやコピー&ペーストの場合、ペーストした結果、1つの波形ファイルが複数のリージョンから参照されるといった競合状態が生じて動作時に不具合が出る可能性があるので、ペーストの場合は元の波形ファイルをコピーして新たな波形ファイルを作成し、その波形ファイルを参照するようにしてもよい。
次に、このようなソングを表すハードディスク114上のファイル構成について説明する。図5及び図6で説明した1つのソングは、図3(b)のソングファイルで表される。ソングファイルは、「ソング名.aws」のファイル名を持つ。拡張子awsは、このファイルがソングファイルであることを示す。ソングファイルは、ヘッダ領域311、トラック領域312、リージョン領域313、ミキサ領域314、およびその他データ領域315を備える。ヘッダ領域311は、そのソング全体にわたる情報を記憶する領域である。ヘッダ領域311には、そのソングのソング名、ソングID、及びタイムスタンプの他、各トラックについて現在選択されている仮想トラックの番号が記憶される。ソングIDはソングファイルとそれに対応するバックアップファイルとの整合性チェックのための情報である。新規作成したソングには新たなソングIDが付くが、そのソングファイルに対応するバックアップファイルにも同じソングIDが付くようになっている。これにより、ソングファイルとバックアップファイルのソングIDを比較することで、それらの対応関係をチェックすることができる。トラック領域312は、当該ソングの各トラックにおける仮想トラックの情報を記憶する領域である。トラック領域312には、各トラックの名前と、各トラックの有する全ての仮想トラックそれぞれについての先頭リージョンのリージョン番号(または先頭リージョンのリージョン情報へのポインタ)が記憶される。このうち、先頭リージョンのリージョン番号については、例えば図6に示した例の場合では、トラック5の仮想トラック2について「119」が記憶されることになる。リージョン領域313には、各リージョンについてのリージョン情報(上述した、ファイル名、再生開始位置、再生開始時刻、再生時間、及び次リージョン番号)が記憶される。例えば、図6のリージョン119,122,129は、このリージョン領域313に記憶される。なお、あるリージョンにおいて次リージョンがないとき、次リージョン番号にはNULL(空白)が格納される。ミキサ領域314には、図2で説明したミキサ108の各種の設定情報が格納される。その他データ領域315には、その他のデータが格納される。
上述の図3(b)から分かるように、ソングファイルは波形データを含んでいない。波形データ(例えば図6の601〜603など)は、それぞれ別ファイルとして記憶される。図4は、図3(b)のソングファイルに加えて、波形ファイルやバックアップファイルなどを含む全体、すなわち1つのソングを取り扱うために必要なファイルの全体を示すものである。これらのフォルダ及びファイルの全体は、ハードディスク114上のパーティション301または302に保存される。401は図3(b)のソングファイルと同じ名前のフォルダ(ディレクトリ)であり、このソングフォルダの下に当該ソングの各種のファイルが記憶される。402は図3(b)で説明したソングファイルであり、作成・編集後の最新の状態のソングを表すファイルとして1つのソングフォルダに1つだけ記憶される。403はソングファイルのバックアップファイルであり、1つのソングフォルダに複数記憶される。バックアップファイルは、それがバックアップファイルであることが分かるようなファイル名及び拡張子とされる。ここでは、ソング名に-aや-bを付けたファイル名とし拡張子awxを付けてバックアップファイル名としたが、その付け方は任意である。また、1つのバックアップファイルのデータ構成は、図3(b)で説明したソングファイルと同じである。保持するバックアップファイルの数は、予め決められた所定数を上限とする。その所定数だけのバックアップファイルが存在する状態で新たにバックアップファイルの書込み要求が発行された場合は、存在するバックアップファイル中で一番古いものを削除して新たなバックアップファイルを書込んだり、あるいは一番古いバックアップファイルに上書きする形で新たなバックアップファイルを書込むことにより、その数を上記所定数に抑えている。Audioフォルダ404の下に、このソングで使用している波形ファイル405(例えば図6の601〜603)が記憶される。波形ファイル405は、16ビット形式や24ビット形式の公知の形式(ここではwav形式)の波形データファイルである。波形ファイル405のファイル名は、ここでは作成した順に0.wav,1.wav,…と付けていくものとする。ストレージモードのとき、外部PCから直接このAudioフォルダ404の下の波形ファイル405を編集することが可能である。
Renderフォルダ406の下には、リージョン間の接続用の波形ファイル407が格納される。この接続用の波形ファイル407について説明する。本ミキサ付きレコーダでは、録音した波形ファイルは上記Audioフォルダ404の下に保存されるが、この波形ファイルは、ハードディスク114上に構築されているファイルシステムの元で記憶されるものであり、所定容量のクラスタ単位で記憶されている。1つの波形ファイルを構成する一連のクラスタは、一般的にはハードディスク上の区々の位置に存在し、波形ファイルを読み出すときはクラスタの連鎖を辿りながら読み出すものである。ここで、再生時に波形ファイルから読み出すべき範囲はリージョンで規定する再生開始位置から終了位置(再生開始位置と再生時間から決まる)までであるので、あるリージョンで再生すべき波形ファイルの再生範囲の先頭または末尾はクラスタ中の途中位置となるのが一般的であり、また、それらの先頭または末尾のクラスタから読み出す波形データのデータ量が少なくなる場合がある。この場合、前のリージョンの末尾から次のリージョンの先頭へのつなぎ目部分で、前のリージョンの末尾のクラスタの波形データを再生している時間内に、次のリージョンの先頭のクラスタの再生準備が完了せず、再生が安定して行えなくなるという不具合が生じることがある。特に、トラックの編集によってリージョンの波形ファイルの再生範囲が変更されたことに起因して、そのような現象が発生する場合もある。
そこで、本ミキサ付きレコーダでは、リージョンのつなぎ目部分で、前のリージョンの末尾のクラスタ中の波形データまたは次のリージョンの先頭のクラスタ中の波形データの少なくとも一方がクラスタの容量の50%未満しかない場合、前のリージョンの末尾のクラスタと次のリージョンの先頭のクラスタから波形データを取出し(それらのクラスタ内の全データを取出すとは限らず、一部分を取出す場合もある)、それらを合わせて1クラスタの容量の50%以上の波形データとし、1クラスタに収まる接続用波形ファイル407としてRenderフォルダ406の下に記憶する。例えば図4に示した1-2.wavは、リージョン1からリージョン2のつなぎ目で読み出す接続用波形ファイルである。再生時には、リージョン1の末尾のクラスタの代わりに1-2.wav(1クラスタ)を読み出して再生し、その次には、次のリージョン2の先頭クラスタをスキップしてその次のクラスタから読出し再生する。これにより安定した再生が行える。なお、接続用波形ファイル407は自動生成されるものであり、ユーザによる編集は禁止されている。
次に、本ミキサ付きレコーダにおけるオートセーブ機能の概要を説明する。本ミキサ付きレコーダでは、編集対象のソングファイル(図3(b))を読み込んでRAM103上の現ソング管理データに展開し、上述した各種の編集(新たなトラックの録音、パンチイン録音、波形のカット、コピー、ペースト、及びムーブなどの編集、ミキサの各種パラメータの設定・変更など)を施す際、録音や波形編集などのレコーダ部(図2のマルチトラックレコーダ207)における操作が行われる毎に、上記現ソング管理データを、図4のバックアップファイル403としてオートセーブする。このとき、所定のバックアップファイル名(使われていない名前)を付けて記憶する。一方、ミキサ部(図2の207以外の部分)に関する操作の場合はオートセーブしない。
トラックの録音や編集などのレコーダ部における処理では、その処理をユーザが指示してからその実行が終わるまでにもともと待ち時間があり、その待ち時間がオートセーブで多少伸びても、ユーザがそれに気付くことはない。これに対し、ユーザが操作子を操作すると直ちに現状の設定に反映されるミキサの操作については、オートセーブを行わないようにしたので、レスポンスも悪化しない。ミキサの設定データに関してはレコーダのデータに比較して復元が容易であり、異常が生じてデータが失われても被害は小さい。また、各オートセーブごとに新たなファイルを作成してバックアップを書き込むので、オートセーブ中に異常が生じても、直前のバックアップは影響を受けない。
次に、ファイルのタイムスタンプの付け方について概要を説明する。このミキサ付きレコーダは、リアルタイムクロックを備えていない。従って、本レコーダで各種のファイルをハードディスク114に書込むとき、そのファイルのタイムスタンプとして書込み時の正確な日時を書込めるわけではない。その代わりに、本レコーダで各種のファイルをハードディスク114に書込むときには、保護領域303に記憶されている日時データに基づいて決定した値をそのファイルのタイムスタンプとして書込む。保護領域303に記憶されている日時データは、「日時データ」と呼んでいるが、これはこのデータからタイムスタンプ値を決定していることからそのように呼んでいるだけであって、正確な日時を保持しているわけではない。日時データは、日、時、分、秒で表現できるデータとする。保護領域303の日時データの初期値は、工場出荷時(ファクトリーセット実行時)に、このレコーダの発売日前後の適当な日時(ただし、時、分、秒は0:0:0と初期化する)を設定しておくものとする。
録音や波形編集などのレコーダ部における操作が行われる毎に実行される上述のオートセーブでは、日時データを2秒進め、その日時データをタイムスタンプとして、現ソング管理データをバックアップファイルとしてオートセーブする。また、録音や編集により波形ファイルを保存する場合も、同様に日時データを2秒進め、その日時データをタイムスタンプとして波形ファイルを保存する。一方、ユーザ操作によりソング保存指示イベントが発行された場合は、日時データを1時間進め、分と秒は0:0に設定し、その日時データをタイムスタンプとして現ソング管理データをソングファイルとして保存する。
このように各ファイルに付けたタイムスタンプを用いることにより、図4の波形ファイル405やソングファイル402及びバックアップファイル403を容易にグループ化できる。グループ化する1つの例として、画面表示について説明する。
図7(a)は、表示器104に表示される、現ソング管理データとしてロードするソングを指定する画面例である。画面700中に、ソング名一覧表示701、バックアップボタン702、実行ボタン703、及び中止ボタン704が表示されている。ソング名一覧表示701は、所定のフォルダの下に存在するソングフォルダ中のすべてのソングファイル402及びバックアップファイル403(後述するボタン702がオンのとき)を一覧表示する欄である。SongNameと記載された見出しの下側に、ファイルのソング名が表示される。bupと記載された見出しの下側に、そのファイルがソングファイルであるのかバックアップファイルであるのかなどのそのファイルの属性を示す記号が表示される。記号awsはソングファイルを示す。従って、「wakuwaku aws」と「dokidoki aws」は、それぞれソングファイルwakuwaku.awsとdokidoki.awsを示している。記号a1,a2,s3はバックアップファイルを示す。特に、aはオートセーブ機能で保存されたバックアップファイル(後述する図9のステップ915,923で保存されたもの)、sはユーザ操作で保存指示があったときに保存されたバックアップファイル(後述する図11のステップ1101で保存されたもの)を示す。aやsの後に続く数字は、1番新しいバックアップファイルから古いバックアップファイルへ順に1,2,…と付けたものである。
バックアップボタン702は、クリックする毎にオンとオフを切替えるボタンである。バックアップボタン702がオンされている状態では、上述したようにソング名一覧表示701の中にバックアップファイルも含めて表示される。バックアップボタン702がオフされている状態では、ソングファイルのみがソング名一覧表示701の中に一覧表示され、バックアップファイルは表示されない。ユーザは、ソング名一覧表示701から、編集対象のファイルを選択し、実行ボタン703をクリックすることで、当該ファイルを現ソング管理データとしてロードし編集することができる。中止ボタン704はロードを中止するためのボタンである。
図7(a)のソング名一覧表示701は、各ファイルのタイムスタンプによりソートされて表示されている。ここで、ソング名wakuwakuのソングがどのように編集されてバックアップなどのファイルが記憶され、そのときどのようなタイムスタンプが付されて保存されたかの例を説明する。前提として、日時データとして、NN:1:0:0が記憶されている状態から開始するものとする。なお、NNは日を表すデータであり、日の後に:で分けて記載された1:0:0は順に時:分:秒の値を表すものとする。次の、(1)〜(4)は、ソングwakuwakuに対する処理を時間の経過に沿って記載したものである。
(1)いま、タイムスタンプがNN:1:0:0であるソングファイルwakuwaku.awsを編集しているものとする。未だ保存は指示されていないので、このソングファイルwakuwaku.awsは上記のタイムスタンプのままハードディスク上に保持されている。ここで、3トラック同時録音を行ったとする。これはレコーダ部の操作であるのでオートセーブされバックアップファイルwakuwaku-a.awxが記憶される。そのタイムスタンプは、この時点の日時データNN:1:0:0を2秒進めたNN:1:0:2である。
(2)次に、wakuwakuの保存がユーザ操作により指示されたとする。これにより、保存実行前のソングファイルwakuwaku.awsがバックアップファイルwakuwaku-b.awxにリネームされる。このタイムスタンプはNN:1:0:0のままである。また、現ソング管理データの内容が新たなソングファイルwakuwaku.awsとして上書き保存される。このソングファイルのタイムスタンプは、日時データの時の値が1時間進められ、分と秒は0とされたものになるので、NN:2:0:0である。
(3)次に、トラックのカットなどの編集が指示されたとする。これはレコーダ部の操作であるのでオートセーブされバックアップファイルwakuwaku-c.awxが記憶される。そのタイムスタンプは、この時点の日時データNN:2:0:0を2秒進めたNN:2:0:2である。
(4)ここでwakuwakuを正常に保存する前に編集処理が異常終了したとする。
以上の処理により、以下のファイルが記憶されたことになる。
(イ)wakuwaku-a.awx(タイムスタンプNN:1:0:2)
(ロ)wakuwaku-b.awx(タイムスタンプNN:1:0:0)
(ハ)wakuwaku.aws(タイムスタンプNN:2:0:0)
(ニ)wakuwaku-c.awx(タイムスタンプNN:2:0:2)
これらのファイルをタイムスタンプが新しい順に並べると、(ニ)(ハ)(イ)(ロ)の順になる。(ニ)のファイルはタイムスタンプの分:秒の部分が0:0でないので、オートセーブされたバックアップファイルだと分かる。また、このファイルがバックアップファイルの中では1番新しいファイルであるので、記号aに1を付けて、属性を示す記号a1で表示される(711)。次の(ハ)のファイルはタイムスタンプの分:秒の部分が0:0のソングファイルなので、ユーザが保存したソングファイルだと分かる。そこで、記号awsで表示される(712)。次の(イ)のファイルはタイムスタンプの分:秒の部分が0:0でないので、オートセーブされたバックアップファイルだと分かる。また、このファイルがバックアップファイルの中では2番目に新しいファイルであるので、記号aに2を付けて、属性を示す記号a2で表示される(713)。次の(ロ)のファイルはタイムスタンプの分:秒の部分が0:0のバックアップファイルなので、ユーザがソングの保存を指示したときに前のソングファイルをバックアップしたものだと分かる。また、このファイルがバックアップファイルの中では3番目に新しいファイルであるので、記号sに3を付けて、属性を示す記号s3で表示される(714)。
以上のようにして、図7(a)のソング名一覧表示701のwakuwakuのグループ化された表示711〜714が実現される。これにより、1つのソングの複数のバックアップを、ユーザが保存を指示したバックアップとオートセーブしたバックアップとで区別して表示することができる。
図7(b)は、ソングwakuwakuを指定し、当該ソングの波形ファイルのうちから編集対象の波形ファイルを選択するときの画面である。波形ファイルについても、タイムスタンプを元にグループ化された表示を行うことができる。画面740中に、グループ名と波形ファイル名の一覧表示741、実行ボタン742、及び中止ボタン743が表示されている。グループ名と波形ファイル名の一覧表示741においては、区切り線751でグループを分けている。区切り線751の上側のグループ752は、バックアップファイルwakuwaku-a.awxと同じタイムスタンプを有する波形ファイルのグループである。区切り線751の下側のグループ753は、a4と属性表示されるバックアップファイル(図7(a)では不図示)と同じタイムスタンプを有する波形ファイルのグループである。このような表示により、1テイクで録音された波形ファイルのグループが分り、それらとバックアップファイルとの対応も分る。そのバックアップファイルの図7(a)の画面での表示位置を見ることで、ソングwakuwakuを作成する際のどのタイミングで作成した波形ファイルであるかも把握できる。
図7(b)のようなグループ化された表示がどのように行われるかについて説明する。上記の図7(a)で説明した例において、(1)の3トラック同時録音で3つの波形ファイル012.wav,013.wav,014.wavが記憶されたとする。これらの波形ファイルのタイムスタンプは、上記(1)でオートセーブしたバックアップファイルwakuwaku-a.awxと同じNN:1:0:2である。そこで、図7(b)のグループ752のように、これら3つの波形ファイルをグループにまとめて表示する。グループ名(Group)としては、同じタイムスタンプのバックアップファイルwakuwaku-a.awxが図7(a)の画面で表示されるときに付される属性表示a2を表示する。ここで、これら3つの波形ファイルのタイムスタンプは一致しているので、1テイクで3トラック同時録音を行ったことが分かる。そこで、これら3つの波形ファイルのファイル名を括る括り線756を付けて表示し、3トラック同時録音を行ったことが分かるように表示している。グループ753の表示も同様である。このグループでは、011.wavと010.wavに別々の括り線757,758が付けてあるので、これら2つの波形ファイルは別々のテイクで録音されたものであることが分かる。
なお、上記の図7のような表示以外でも、本ミキサ付きレコーダにおけるタイムスタンプを利用した種々の表示が考えられる。例えば、1つのソングについて、各バックアップと、そのバックアップと同時に記録された波形ファイルをセットにして表示することもできる。
次に、上述のミキサ付きレコーダにおける処理手順を説明する。
図8は、上述のミキサ付きレコーダのメインルーチンを示す。電源がオンされると、まずステップ801で初期設定を行う。これは、OSを起動し、各種のルーチンを起動し、それら各種ルーチンの初期設定を行うものである。特に、保護領域の「最後に読み込まれていたソングのソング名」を確認する。次にステップ802で、「最後に読み込まれていたソングのソング名」のソングフォルダ401を参照し、ソングファイルやバックアップファイルがあるかを確認する。ソングファイルのみあれば、ステップ803から804に進み、当該ソングファイルのデータをチェックする。このチェックは、CRCによる記録エラーのチェックだけでなく、仮想トラックの各リージョンが指す波形ファイルが存在することと、その波形ファイルの波形データ長さが該リージョンで指定されている再生範囲に対して十分であることのチェックを含むものである。これは、外部PCから波形ファイルを編集できるため、波形ファイルが編集されてリージョンとの整合が取れなくなることがあるため、それをチェックするものである。ステップ805でデータが適正であれば、ステップ806で当該ソングファイルをメモリ上に現ソング管理データとしてロードする。ステップ803でソングファイルがないとき(「最後に読み込まれていたソングのソング名」が記載されていないときも含む)、あるいはステップ805でソングファイルのデータが適正でないときは、そのままステップ810に進む。
ステップ803でソングファイル及びバックアップファイルの両方があるときは、ステップ807で、ソングファイルより新しいバックアップファイルの中の最新のものから順に、そのバックアップファイルのデータをチェックする。なお、どのバックアップファイルよりもソングファイルの方が新しい場合は、ステップ807,808はスキップして(すなわち、ステップ808でNOと判断して)ステップ804に進むものとする。また、ファイルの新しさは、上述したタイムスタンプにより判断する。バックアップファイルのデータチェックは、ステップ804のソングファイルと同様のチェックに加え、そのバックアップファイルに対応するソングファイルとの整合性をチェックするため、ソングファイルのソングIDとパックアップファイルのソングIDが同じであるかをチェックする。ステップ807でソングファイルより新しいバックアップファイルの中の最新のものから順にデータをチェックしていき、データが適正なものが見つかれば、ステップ808からステップ809に進み、当該バックアップファイルをメモリ上に現ソング管理データとしてロードする。
ステップ810では、初期設定で起動されている各種のタスクにおいてイベントが発生しているかチェックする。イベントがあればステップ811から812に進み、そのイベントに対応する処理を行う。その後、ステップ810に戻る。図9〜図11で説明する各種のイベント処理は、このステップ812で呼び出されるものである。
なお、ステップ806,809でソングファイルやバックアップファイルをロードするときには、再生の前準備として、再生する波形ファイルのクラスタ構成を確認し、その連鎖の順番を用意しておいてもよい。また、この時点で、図4のRenderフォルダで説明した接続用波形ファイル407を自動生成してもよい。
図9(a)は、録音開始指示イベントの処理を示す。これは、ユーザがどのトラックのどの仮想トラックのどの時間位置から録音するかを指定して、さらにどのchの信号をその仮想トラックに入力させるかを設定して、録音開始を指示したときに実行される処理である。ステップ901で、録音前処理として、新規録音用の波形ファイルを作成しオープンする。ステップ902で録音動作を開始する。これにより、図1,2で説明したように、転送部111が録音動作を行いハードディスク114上の波形ファイルに波形データを書込んでいく。
図9(b)は、録音停止指示イベントの処理を示す。これは、ユーザが録音停止を指示したとき実行される。ステップ911で、録音動作を停止する。ステップ912で日時データを2秒進める。ステップ913で録音後処理として当該波形ファイルをクローズする。ステップ914で録音した波形データを含む新規仮想トラックを作成し、ステップ915でオートセーブする。なお、波形ファイルを外部からインポートしてソング中で利用する手順も、ステップ912〜915と同様に行えばよい。インポートした波形データを、録音した波形データと同様に取り扱って、波形ファイルを作成し仮想トラックを追加すればよい。この編集により、現ソング管理データ中のトラック領域及びリージョン領域のデータが更新される。
図9(a)及び(b)では、録音の開始及び停止の処理を示したが、再生についても同様であるし、再生と録音を同時にする場合も同様である。例えば、再生するファイルをオープンして再生動作を開始したり再生動作を停止する処理を行うようにすればよい。ただし、再生だけの場合は、オートセーブは行われない。
図9(c)は、トラックに対する各種の編集イベントの処理を示す。ユーザにより、トラックが指定され、カット、コピー、ペースト、及びムーブなどの指示が為されたとき、本処理が実行される。ステップ921で、編集対象の現仮想トラックから、編集後の新仮想トラックを作成する。この編集により、現ソング管理データ中のトラック領域及びリージョン領域のデータが更新される。ステップ922で日時データを2秒進め、ステップ923でオートセーブする。
図10(a)は、オートセーブの処理の第1の例を示す。ステップ1001で、一番古いバックアップファイルを検出し、ステップ1002で、現ソング管理データを該ファイルに上書きセーブする。ステップ1001でバックアップが所定数以下のときは、新規のバックアップファイルを作成してそこにセーブすることとする。図10(b)は、オートセーブの処理の第2の例を示す。ステップ1011で、一番古いバックアップを削除し、ステップ1012で現ソング管理データを最新バックアップとしてセーブする。ステップ1011は、バックアップが所定数以下のときはスルーする。図10(a)または(b)のどちらでも、バックアップファイルにセーブするときには、日時データでタイムスタンプを書換える。
図10(c)は、各種のミキサ操作(フェーダ操作、EQ/COMP制御など)が為されたときの処理を示す。ステップ1021で現ソング管理データ中のミキサ領域の当該パラメータを操作に応じて変更し、ステップ1022でその変更をミキサ部(DSP)108に反映する。このミキサ操作の処理ではオートセーブしないので、操作に応じたレスポンスの悪化がない。
図11(a)は、ソング保存指示イベントの処理を示す。これは、ユーザによるソング保存の指示操作があったときに実行される処理である。ステップ1101で、現ソングファイルをタイムスタンプを変更せずにバックアップファイルにリネームする。これは図4のソングファイル402をリネームしてバックアップファイル403とする処理である。なお、図10(a)や(b)で説明したように、バックアップファイルの数が所定数を超えないようにする処理が必要であれば行うものとする。次に、ステップ1102で、日時データを1時間進める。このとき同時に日時データの分と秒を0クリアする。ステップ1103で、現ソング管理データを新たにソングファイル402としてセーブする。
図11(b)は、ソングまたはバックアップ読み込み指示イベントの処理を示す。これは、ユーザがソングあるいはバックアップファイルを明示的に指定して読み込みを指示したときに実行される。ステップ1111で、指定されたファイルのデータチェックを行う。このチェックについては、図8のステップ804,807で説明した。データが適正であれば、ステップ1112から1113へ進み、当該ファイルをメモリ上に現ソング管理データとしてロードする。エラーがあるときは、ステップ1114でエラー表示を行う。
なお、上述のオートセーブ機能は、ユーザが有効/無効を切替えることができるようにしてもよい。また、オートセーブで残すバックアップ数をユーザが指定できるようにしてもよい。
また、上記実施の形態におけるタイムスタンプを用いた並べ替えとグループ化表示の機能においては、オートセーブの機能は必須ではなくオフできるようにしてもよい。すなわち、上記実施形態では、レコーダの編集が行なわれる毎にタイムスタンプを進めてバックアップを取るようになっているが、この処理は必ずしも行なわなくても良い。最低、レコーダの録音時とソングの保存時において、タイムスタンプの進行制御が行なわれていればよい。
上述のオートセーブ機能に関しては、RTC(リアルタイムクロック)の回路を備えたマルチトラックレコーダに適用してもよい。その場合、各種ファイルに付与するタイムスタンプは、そのRTCが生成するタイムスタンプとすればよい。
さらに、本レコーダをストレージモードに切替えれば、ハードディスクに記憶した各種ファイルは外部PCからアクセスできるようになるので、外部PCでそれらのファイルを上記タイムスタンプを利用して並べ替えたりグループ化して表示することもできる。
また、ユーザが記録日(日時データの日の部分)を入力できるようにしてもよい。その場合、日時データに、ユーザの入力した日の午前0時0分0秒を設定する。ソングの保存は同じ日付で23回しかできないが、オートセーブがあるので、それほど頻繁に保存を行なう必要はない。オートセーブがオフされている場合は、ソングの保存指示に応じて進める時間を1時間より短い時間にすればよい。例えば10分であれば、同じ日付でソングを143回保存できる。
101…中央処理装置(CPU)、102…フラッシュメモリ、103…ランダムアクセスメモリ(RAM)、104…表示器、105…電動フェーダ、106…操作子、107…PC入出力インターフェース(I/O)、108…ミキサ、109…波形入力部、110…波形出力部、111…転送部、112…バッファメモリ、113…IDE(Integrated Device Electromics)入出力インターフェース、114…ハードディスク、115…CD−RW(CD-rewritable)ドライブ、120…バスライン。