この発明を、HDDを外部記憶装置として用いたディジタルミキシングレコーダ(ハードディスクレコーダ)に適用した場合の実施の形態を説明する。図3はハードディスクレコーダ全体の主要部のシステム構成を示す。このハードディスクレコーダ10は複数のチャンネル{個々のトラックの音データについて信号処理を行う信号経路(各チャンネルごとに物理的に分割された信号経路のみならず、各チャンネルの音データが時分割処理される物理的には共通の信号経路を含む)または該信号経路を流れる音データ自体をいう。}の信号経路を有し、複数トラックの同時録音(例えば、最大16トラック同時録音)もしくは複数トラックの同時再生(例えば最大16トラック同時再生)または複数トラックの同時録音および同時再生(例えば最大16トラック同時再生しながら最大8トラック同時録音)が可能に構成されている。各チャンネルの1サンプルの音データは、ミックスダウンした信号が24ビット(3バイト)で構成されている以外は、すべて16ビット(2バイト)で構成されている。
ハードディスクレコーダ10は、メインCPU12、レコーダCPU14、サブCPU16の合計3個のワンチップCPU(マイコン){例えば日立製SH7042(シングルチップRISCマイコン)}を具えている。各CPU12,14,16は個別に用意された相互に非同期の動作クロックでそれぞれ独立に駆動される。メインCPU12は主にミキシング制御を行う。レコーダCPU14はメインCPU12からの指令に基づきHDD60の記録および再生制御、波形編集制御等を行う。サブCPU16は操作者による各種操作情報をメインCPU12に伝達する制御、メインCPU12からの指令に基づく各フェーダ操作子のモータ駆動制御等を行う。
サブCPU16のバス18には、スイッチ、回転式つまみ、マウス、ジョグ、シャトル等で構成される各種操作子20と、サブCPU16のプログラムを格納したフラッシュROM22と、モータドライバインタフェース24等が接続されている。モータドライバインタフェース24には、モータドライバ28を介して複数本のモータドライブ式フェーダ操作子26が接続されている。各モータドライブ式フェーダ操作子26の操作位置情報はサブCPU16に伝達される。各種操作子20では、操作者の操作により、ミキシングパラメータ{ルーティング(各入力チャンネルをどの信号経路チャンネルを経由してどのトラックに録音するか、および各トラック再生信号をどの信号経路チャンネルを経由してどの出力チャンネルから出力するかの割り付け)、イコライザ特性、エフェクト特性、定位(PAN)等}の設定、録音/再生/停止/一時停止/スロー再生/早送り/巻戻し等のレコーダ機能の各種動作指示、ソング(録音、再生を行う曲の単位で、例えば1ソング=音楽の1曲)の選択、録音・再生モード/編集モード等の動作モードの切換え、波形編集等の操作が行われる。録音・再生モードには、各パートについて通常の録音、再生を行うモード{録音のみ(ALL REC)、再生のみ、再生と同時に録音(SYNC DUBBING)のいずれかを行うモード}のほか、パンチイン、パンチアウトを行うモード、ミックスダウンを行うモード等がある。各種操作子20の操作情報はサブCPU16に伝達され、信号ライン30を介してメインCPU12に伝達される。各フェーダ操作子26は操作者の操作により各入力チャンネルおよび各出力チャンネルごとのレベル調整、ステレオ出力のレベル調整等を行うもので、その操作情報はサブCPU16に伝達され、信号ライン30を介してメインCPU12に伝達される。また、録音・再生モードでは、各再生トラックのフェーダレベル調整に関して、ソングの進行に従ってメインCPU12から各フェーダ操作子26の操作位置指令が信号ライン30を介してサブCPU16に順次伝達され、モータドライバインタフェース24およびモータドライバ28を介して各フェーダ操作子26がそれぞれ指令された操作位置に自動的に移動制御される。これにより、録音時に設定された各フェーダ操作子26の操作位置が再現されて、各トラックの再生レベルが録音時に設定した状態に自動調整されて再生が行われる。
メインCPU12のバス32には、メインCPU12のプログラムを格納したフラッシュROM34と、録音、再生、編集等を行うために現在指定しているソングについてのミキシング機能(ルーティング、イコライジング、エフェクト付与、フェーダレベル調整、定位調整等)に関するソング管理データとして、時間の進行に応じたこれら各パラメータの設定値に関するシーケンスデータを格納し、またメインCPU12の作業領域として機能するDRAM36と、ミキシング機能を実現するDSP38と、LCD制御回路41を介してLCD(液晶表示器)43と、インタフェース45を介してFL(蛍光)表示器47等が接続されている。LCD43には、動作モードに応じた情報が表示される。例えば、録音・再生モード時には、ルーティング、チャンネルのオン・オフ、バーチャルトラックの選択等をするための表示がなされ、波形編集モード時には、波形編集をする部分の波形がグラフィック表示される。FL表示器47には数値による時間情報(タイムコード)およびバーグラフによる各チャンネルの入力信号または再生信号のレベル等が表示される。なおバーチャルトラックとは、トラック(リアルトラック)についてそれぞれ割り当てられる仮想のトラックで、再生時あるいは同時録音再生時には、再生を行う各トラック(リアルトラック)について、それぞれ割り当てられた複数のバーチャルトラックの中から1つずつバーチャルトラックを選択して再生することができる。例えば、トラック数が16で、バーチャルトラック数が各トラックについてそれぞれ8であれば、合計128のバーチャルトラックを作成することができる。
DSP38は、複数チャンネルのミキシング処理部を構成し、操作者による各種操作子20およびフェーダ操作子26の操作に基づき、あるいはDRAM36に格納されているミキシング機能に関するシーケンスデータに応じて、メインCPU12の指令により、録音入力および再生出力に対してルーティング、イコライジング、エフェクト付与、フェーダレベル調整、定位調整等のミキシング機能について、それぞれ指示された内容を実現するための処理(ミキシング処理)を実行する。
アナログ入力端子40から入力される複数チャンネル(例えば最大16チャンネル)のアナログ音声信号(録音入力)は、ゲインコントロール(図示せず)で、A/D変換の際の適正な信号レベルにゲイン調整された後、A/D変換器42でディジタル信号に変換されてDSP38に入力されて、ミキシング処理が施される。また、ディジタル入力端子44から入力される複数チャンネル(例えば最大16チャンネル)のディジタル音声信号(録音入力)はインタフェース46を介してDSP38に入力されて、ミキシング処理が施される。ミキシング処理が施された録音入力は、後述するHDD60に録音される。また、HDD60から再生される複数チャンネル(例えば最大16チャンネル)のディジタル音声信号(再生出力)は、DSP38でミキシング処理されて、インタフェース52を介してディジタル出力端子54から出力される。また、該ディジタル音声信号をDSP38で2チャンネルステレオ信号にミキシングした信号は、D/A変換器48でアナログ信号に変換されて、アナログ出力端子50からモニタ用信号等として出力される。
レコーダCPU14のバス56には、レコーダCPU14のプログラムを格納したフラッシュROM58と、DRAM62と、この発明の外部記憶装置に相当するHDD60と、この発明のバッファメモリに相当するSDRAM(シンクロナスDRAM)64,66に対する音データの書き込みおよび読み出し制御を行うDRAMコントローラ(以下「DRC」)68と、インタフェース70を介してCD−RW等の光ディスク装置72と、パラレルインタフェース74を介して現在の日時のデータを生成するリアルタイムクロック76等が接続されている。HDD60はIDE等のインタフェースでバス56に接続されている。光ディスク装置72はHDD60に録音したソングをCD−RディスクやCD−RWディスクにバックアップしたり、バージョンアップ用プログラムを格納したCD−ROM等を再生して、フラッシュROM22,34,58のプログラムを更新するのに利用される。
HDD60のアドレス領域の分割例を図4に示す。HDD60のアドレス領域は、先頭から固定容量のシステム管理データ用アドレス領域84と、それに続く最後尾までの共用アドレス領域86に分割されている。共用アドレス領域86には、前方側の端部からチャンネルごとの音データがテイク(録音の単位で、1テイク=1回分の録音)順にディジタル信号で順次記録されて蓄積されて音データ領域86−0が順次拡大して形成され、後方側の端部から各ソングのソング管理データが順次記録されてソング管理データ領域86−1,86−2,……が順次形成される。音データはクラスタ(128Kバイト)単位で記録される。一度録音された音データは操作者による明示の、該当するテイクの消去指令が与えられない限り消去されない。複数トラックを同時に録音する場合、各トラックの音データは順次入れ替わって共用アドレス領域86に記録され、またパンチイン、パンチアウト等で後から追加される音データ、波形編集された音データ等は、そのトラックの初期録音の音データが記録されているアドレスとは離れて、それらが記録される時点での共用アドレス領域86の記録済み音データの最後尾に続けて記録されるので、各バーチャルトラックの音データは、共用アドレス領域86内にクラスタ単位で分散して記録されている。録音中の演奏パートに曲の途中で長い休止期間があった場合等には、操作者が該当チャンネルについて無音区間の指示操作をすることにより、その時点で該当チャンネルの録音が休止され、その休止前の音データが含まれている1クラスタ分のデータが共用アドレス領域86に記録された後は、そのチャンネルについての音データの記録は行われない。操作者が該当チャンネルについて無音区間終了の指示操作をすると、該当チャンネルについて録音が再開され、該当チャンネルの音データがクラスタ単位で共用アドレス領域86に順次記録される。
各ソングのソング管理データ領域86−1,86−2,……には、このように分散して記録された、該ソングに含まれる各バーチャルトラックの音データを連続した音楽として再生するために必要な、該各バーチャルトラックごとの音データの記録アドレスの連鎖を示すシーケンスデータが記録されている。無音区間が指示されたバーチャルトラックについては、無音区間の開始時間および終了時間の情報も併せて記録される。また、各ソングのソング管理データ領域86−1,86−2,……には、そのソングに含まれるバーチャルトラックごとのミキシング機能に関するシーケンスデータも記録されている。各ソングのソング管理データ領域86−1,86−2,……は固定容量(例えば、1ソングあたり1.5Mバイト)であり、操作者により新規にソングのファイルの作成が指示されるごとに、そのソングについてのソング管理データ領域が新たに初期化されて確保され、そのソングについて録音等音データの追加がなされるごとにそれに対応してソング管理データが更新される。各ソングのソング管理データ領域86−1,86−2,……は一度定められると固定であり、操作者による明示のソングの消去指令が与えられない限り消去されない。システム管理データ用アドレス領域84には、ソングごとのソング管理データの記録位置を知るためのデータを含むシステム管理データが記録されている。
ソング管理データはソング単位で、HDD60の全アドレス領域の後方側の端部から順次記録され{ただし、個々のソング管理データ領域86−1,86−2,……内では、データは通常どおり前方側から正方向(アドレスが増加する方向)に記録される。}、しかも個々のソング管理データ領域86−1,86−2,……の容量は固定であるので、システム管理データ用アドレス領域84にHDD60の全アドレス領域の最後尾のアドレス情報を記録しておくことにより、各ソング管理データ領域86−1,86−2,……の開始位置を演算で求めることができる。例えば、最初のソングのソング管理データ領域86−1の開始位置は、〔HDD60の全アドレス領域の最後尾のアドレス〕−〔1つのソング管理データ領域の容量〕の演算で求められる。なお、演算で求める代わりに、システム管理データ用アドレス領域84に、各ソングのソング管理データ領域86−1,86−2,……の開始位置のアドレス情報を記録しておくこともできる。なお、上記の例では、共用アドレス領域の最後尾のアドレスをHDD60の全アドレス領域の最後尾のアドレスに一致させたがこれに限るものではない。
以上のようなファイル構成によれば、ハードディスクレコーダ10の電源をオンした際に、自動的にHDD60の先頭のアドレスにアクセスしてシステム管理データを読み取り、ソングが指定されたときに、該システム管理データに基づき、該指定されたソングのソング管理データが記録されているアドレス領域(ソング管理データ領域)にアクセスして該ソング管理データを読み取り、該ソングの再生が指示されたときに、該ソング管理データに基づき、該ソングの現在選択されている各バーチャルトラックについて音データが記録されているアドレスに順次アクセスして読み取ることにより、該バーチャルトラックの音データを再生することができる。
図3において、DRAM62には、HDD60から読み出されたシステム管理データ、および録音、再生、編集等を行うために現在指定しているソングに関するソング管理データのうちHDD60における記録位置の連鎖を示すシーケンスデータが格納される。また、DRAM62はレコーダCPU14の作業領域として機能する。なお、音データはDSP38とDRC68間では、バス32,56を経由しない信号ライン69を介して相互に伝送される。
メインCPU12のバス32とレコーダCPU14のバス56はデュアルポートRAM78(以下「DPRAM」)を介して相互に接続され、メインCPU12とレコーダCPU14間で授受すべき各種指令やソング管理データ等の情報が伝送される。サンプリングクロック発振器80からはサンプリング周期のクロックが発振されてアンド回路82に入力される。レコーダCPU14からは録音あるいは再生の開始に同期して立上がり、その終了に同期して立下がる動作区間指示信号が出力され、アンド回路82に入力される。これにより、アンド回路82からは録音あるいは再生の開始から終了までの区間サンプリングクロックが出力される。このサンプリングクロックはメインCPU12およびレコーダCPU14の外部クロック入力端子に入力される。両CPU12,14内には該外部クロック入力端子から入力されるクロックをカウントするカウンタがそれぞれ配置されている。両カウンタは録音あるいは再生の開始に同期してリセットされて、その後入力されるサンプリングクロックをカウントする。メインCPU12は該カウント値に応じてサンプリングクロック単位でミキシング処理を実行する。また、レコーダCPU14は該カウント値に応じてサンプリングクロック単位でHDD60およびSDRAM64,66の書込みあるいは読出し制御を実行する。これにより、メインCPU12およびレコーダCPU14は、それぞれ個別の動作クロック(例えば28MHz)で動作しながら、サンプリング周期(48kHz、44.1kHz等)単位では互いに同期して動作して、録音あるいは再生のための制御を独立にかつ並行して実行することができる。
図3のハードディスクレコーダ10における録音・再生モード時のデータ(音データ、システム管理データ、ソング管理データ)の授受について図5を参照して説明する。ハードディスクレコーダ10の電源を投入すると、HDD60のシステム管理データ用アドレス領域からシステム管理データが読み出されて、バス56を介してDRAM62に保持される。ソングを指定すると、レコーダCPU14はDRAM62に保持されているシステム管理データを参照して、HDD60の指定されたソングのソング管理データが記録されているソング管理データ領域にアクセスして、該当するソング管理データを読み出す。読み出されたソング管理データのうち該ソングのミキシング機能に関するシーケンスデータは、バス56、DPRAM78およびバス32を介してDRAM36に転送される。また、読み出されたソング管理データのうち、HDD60における該ソングの一連の音データの記録位置の連鎖を示すシーケンスデータは、バス56を介してDRAM62に転送される。これにより、前記指定されたソングについて、操作者の指示により、録音、再生、波形編集等の各作業が可能となる。なお、初めて録音するソングについては、操作者の操作により、予め新規にソングのファイルが作られ(HDD60にソング管理データ領域が新たに1つ初期化されて確保される。)、そのソング管理データがDRAM36,62に保持されて、録音可能な状態となる。
録音・再生モードでは、録音を指示されたトラック{録音(記録)チャンネル}について、次のように処理が行われる。アナログ入力端子40またはディジタル入力端子44から入力される該トラックの録音信号(音データ)は、A/D変換器42またはインタフェース46を介してDSP38に入力され、操作者による各種操作子20およびフェーダ操作子26の操作に応じてDSP38でミキシング処理が施され、バス56を経由しない信号ライン69を介して、DRC68からバッファメモリを構成するSDRAM64,66に順次格納される。SDRAM64,66に格納された音データは、定期的にバス56を介してHDD60にDMA転送されて録音される。また、このとき新たに生成されるシステム管理データおよびソング管理データのうち再生位置の連鎖を示すシーケンスデータはDRAM62に順次蓄積され、ソング管理データのうちミキシング機能に関するシーケンスデータはDRAM36に順次蓄積される。録音を終了して保存操作をすると、DRAM36に蓄積されたミキシング機能に関するシーケンスデータはDPRAM78を介してバス56に伝送され、DRAM62に蓄積されたHDD60における音データの記録位置の連鎖を示すデータとともに、HDD60の該ソングのソング管理データを保存するソング管理データ領域に上書き保存される。また、DRAM62に格納されているシステム管理データもHDD60のシステム管理データ用アドレス領域に上書き保存される。
録音・再生モードでは、再生を指示されたトラック(再生チャンネル)について、次のように処理が行われる。レコーダCPU14はDRAM62に格納されている該トラックの再生位置の連鎖を示すシーケンスデータを参照して、HDD60から該当するトラックの音データを順次読み出す。該読み出された音データは、バス56およびDRC68を介してSDRAM64,66にDMA転送して格納される。DRC68は該SDRAM64,66に格納された音データをサンプリング周期で順次読み出す。SDRAM64,66から読み出された音データは、バス56を経由しない信号ラインを介してDRC68からDSP38に転送される。メインCPU12はDRAM36に格納されているミキシング機能に関するシーケンスデータを参照してDSP38のパラメータを設定し、該転送される音データに対してミキシング処理を施す。ミキシング処理を施された音データは、インタフェース52を介してディジタル出力端子54から出力される。また、DSP38内で2チャンネルステレオ信号にミキシングされた信号は、D/A変換器48でアナログ信号に変換されて、アナログ出力端子50から出力される。なお、録音・再生モードでは、録音、再生を行う各トラックの信号が順番に時分割処理され、その際SDRAM64,66は録音トラックか再生トラックかに応じて動作(書き込み/読み出し)が時分割で切り換えられる。
録音・再生モード時におけるバス56の使用権(バス権)制御とサンプルデータの転送制御(SDRAM64,66の書き込み読み出し制御)の具体例について説明する。録音・再生モード時には、図6に示すように、サンプリング周期1/fs(fs=48kHz、44.1kHz等)ごとに、所定の区間A(第1の時間)、B(第2の時間)に分割される。区間A,Bの長さは、A<Bである。バス56の使用権は、区間AではレコーダCPU14に割り当てられ、区間BではSDRAM64,66とHDD60間のDMA転送に割り当てられる。レコーダCPU14は区間A内で、バス56を介して、フラッシュROM58に格納されているプログラムやDRAM62に格納されているソング管理データにアクセスして、該プログラムを実行する。サンプルデータの転送制御は、次のようにして行われる。録音チャンネル(入力チャンネル)については、区間Aでバス56を経由しない信号ライン69を介してSDRAM64または66に対し1サンプルずつ時分割で音データの書き込みが行われ、区間Bで該録音チャンネルの複数サンプルの音データがSDRAM64または66から読み出され、バス56を介してHDD60へDMA転送して書き込まれる。再生チャンネル(出力チャンネル)については、区間AでSDRAM64または66から1サンプルずつ時分割で音データの読み出しが行われ、バス56を経由しない信号ライン69を介して出力され、区間Bで該再生チャンネルの複数サンプルの音データがHDD60から読み出され、バス56を介してSDRAM64または66へDMA転送して書き込まれる。
なお、SDRAM64,66からHDD60へのDMA転送は、チャンネルごとに、1クラスタ分のサンプルデータがSDRAM64,66に新たに蓄積された時点で、該新たに蓄積された(あるいはそれよりも前に蓄積された)1クラスタ分のサンプルデータをまとめて毎サンプリング周期の区間Bごとに区切ってDMA転送し、1つのチャンネルについて1クラスタ分のサンプルデータのDMA転送が終了したら、1クラスタ分のサンプルデータがSDRAM64,66に新たに蓄積された別のチャンネルについて同様に1クラスタ分まとめてDMA転送するようにして、各チャンネル1クラスタ分ずつでかつ各チャンネル相互に時分割で行われる。また、HDD60からSDRAM64,66へのDMA転送は、チャンネルごとに、1クラスタ分のサンプルデータがSDRAM64,66から新たに読み出された時点で、該チャンネルについて1クラスタ分のサンプルデータをまとめて毎サンプリング周期の区間Bごとに区切ってDMA転送し、1つのチャンネルについて1クラスタ分のサンプルデータのDMA転送が終了したら、1クラスタ分のサンプルデータがSDRAM64,66から新たに読み出された別のチャンネルについて同様に1クラスタ分まとめてDMA転送するようにして、各チャンネル1クラスタ分ずつでかつ各チャンネル相互に時分割で行われる。なお、いずれのチャンネルについても、DMA転送によるデータ移動の必要がない場合、すなわち入出力信号ライン69からの入力データがSDRAM64,66に1クラスタ分新たに書き込まれてもいなければ、入出力信号ライン69への出力データがSDRAM64,66から1クラスタ分新たに読み出されてもいない場合には、DMA転送は休止され、各サンプリング周期内全体にわたりレコーダCPU14に使用権が割り当てられる。なお、SDRAM64,66はアドレス領域が各チャンネルごとに分割され、各チャンネルのアドレス領域は少なくとも2クラスタ分のサンプルデータを記憶できる容量を有している。ある1つのチャンネルに着目すると、DRC68のアドレス制御により、少なくとも2つ使用できるうちの1つのクラスタ分のアドレス領域を使って1クラスタ分のサンプルデータのDMA転送を行っている間に、別の1クラスタ分のアドレス領域を使って同チャンネルの新たな録音入力または再生出力のサンプルデータがサンプリング周期ごとに1サンプルずつ書き込まれまたは読み出される。DMA転送を行うアドレス領域と、録音入力または再生出力のサンプルデータを1サンプルずつ書き込みまたは読み出すアドレス領域とを、1クラスタごとに交互に切り換えることにより、同一チャンネルについてDMA転送と録音入力または再生出力のサンプルデータの書き込みまたは読み出しを並行して行うことができる。
録音・再生モード時におけるバス56の使用権の時分割制御の具体例について説明する。図7はバス56の使用権の時分割制御の制御系統を示し、図8は録音・再生モード時における該制御系統のDRC68の動作を示す。図8において、(A)〜(F)は、図7においてそれぞれ同符号で示した箇所の信号波形である。ここでは、レコーダCPU14として日立製SH7042を使用するものとし、また1サンプリング周期を512分割したクロックで制御するものとする。SH7042はDMA転送を制御するDMAコントローラを内蔵しているが、ここではこのレコーダCPU14内のDMAコントローラを使用せずに、HDD60に内蔵されているIDEインタフェース61に設けられているDMAコントローラ63を使用してDMA転送を制御するものとする。
図7において、レコーダCPU14は、録音・再生モード時に、いずれかの録音チャンネルあるいは再生チャンネルについて、SDRAM64,66に1クラスタ分の録音入力のサンプルデータが蓄積されるごとに(またはSDRAM64,66から1クラスタ分の再生出力のサンプルデータが読み出されるごとに)、DRC68およびHDD60にDMA動作開始の指令を出す。HDD60はこの指令を受けて、DMA要求信号DMARQ=“H”{図8(A)}を発行する。DRC68は該信号DMARQをインバータ88で反転してDフリップフロップ回路90に入力する。カウンタ92は、サンプリング周期の開始タイミングごとにリセットされ、図3のサンプリングクロック発振器80で発振されるサンプリングクロック(48kHz、44.1kHz等)の1周期(1/fs)を512分割したクロック(以下「512分割クロック」)をカウントする。タイミング生成器94はカウンタ92のカウント値に応じて、該カウント値が0〜127の区間(サンプリング周期の開始から1/4の区間)で“H”レベルとなり、同128〜521の区間(サンプリング周期の残りの3/4区間)で“L”レベルとなるバス権分割信号{図8(D)}を出力する。また、タイミング生成器94は該カウント値が0〜255の区間(サンプリング周期の前半1/2の区間)で“H”レベルとなり、同256〜521の区間(サンプリング周期の後半1/2の区間)で“L”レベルとなるクロック信号{図8(B)}を併せて出力する。Dフリップフロップ回路90は入力されるDMA要求信号DMARQ(HDD60内のクロックに同期した信号)の反転信号をDRC68のクロック信号で取り込んで、DMA要求信号IDMARQ=“L”{図8(C)}を出力する。オア回路96はDMA要求信号IDMARQとバス権分割信号を入力し、DMA要求信号IDMARQ=“L”の区間についてバス権分割信号を出力する。オア回路98はオア回路96の出力信号とDMA要求信号DMARQの反転信号を入力して、DMA要求信号DMARQ=“H”の終了に同期してバス権分割信号の出力を停止する信号を、バス権要求信号BREQ{図8(E)}として出力する。レコーダCPU14は、バス権要求信号BREQ=“L”を受信すると、バス権を解放して、バス権要求受付信号BACK=“L”{図8(F)}を出力する。DRC68はバス権要求受付信号BACKを受信すると、これをそのままDMA受付信号DMACKとしてHDD60に送信する。HDD60とDRC68はBACK(DMACK)=“L”の区間でバス56を専有してDMA転送を行う。また、DRC68は、DMA動作期間中に、毎サンプリング周期ごとに、該サンプリング周期の開始から1/4の区間でバス権要求信号BREQを“H”にしてバス権を返上する。これにより、レコーダCPU14は、その区間だけバス権を取得し、バス56を専有してDRAM62およびフラッシュROM58にアクセスして、録音、再生に必要なプログラムを実行する。
レコーダCPU14がバス56を専有している間は、HDD60とDRC68間のDMA転送は休止され、DRC68はバス56を介さない信号ライン69を経由して、各サンプリング周期ごとに、各録音チャンネルについてSDRAM64,66への入力サンプルデータ(各チャンネル1サンプルずつ)の書き込みあるいはSDRAM64,66からの出力サンプルデータ(各チャンネル1サンプルずつ)の読み出しを行う。以上のようにして、サンプリング周期の開始から1/4の区間ではレコーダCPU14がバスマスタとして、図7に符号Iで示すように、レコーダCPU14がバス56を介してDRAM62およびフラッシュROM58にアクセスしてプログラムを実行し、サンプリング周期の残り3/4の区間ではHDD60(IDE)がバスマスタとして、図7に符号IIで示すように、HDD60とDRC68がバス56を介してDMA転送を実行するように、バス権が分割される。
図7の制御系統による1つの再生チャンネルについてのDMA転送の手順(プロトコル)を図9を参照して説明する。録音・再生モード時に、SDRAM64,66から1クラスタ分の再生出力サンプルデータの読み出しが終了すると、レコーダCPU14からの指令で、DRC68はDMA転送を行う動作モードに設定される(S1)。また、レコーダCPU14からHDD60(IDE)にDMA読み出しの開始を要求する指令が与えられる(S2)。HDD60はこれを受けて、DMA要求信号DMARQ=“H”を発行し、DRC68に転送する(S3)。DRC68はこれを受けて、バス権要求信号BREQ=“L”を発行し、レコーダCPU14に転送する(S4)。レコーダCPU14はバス権要求信号BREQ=“L”を受信すると、ストローブ端子を“H”レベル出力にするとともに、該ストローブ端子、アドレス端子、データ端子をそれぞれハイインピーダンスに設定して、バス権要求受付信号BACK=“L”を発行する(S5)。DRC68はこれを受けてDMA受付信号DMACK=“L”を発行し、HDD60へ転送する(S6)。DRC68はデータ送出を促す信号DIORをHDD60に送出する(S7)。DRC68はこれを受けて、該DMA転送に割り当てられた区間ごとにデータ送出(DMA転送)を行う(DMARQ=“H”の間、DIORが立ち下がるごとに新しいデータがHDD60から送出される。)。送出されたデータはDRC68に受け取られて(S8)、SDRAM64,66に転送される。1クラスタ分のデータのDMA転送が終了したら、HDD60はDMA要求信号DMARQを立ち下げる。これとともに、HDD60は割り込み要求信号IDEIRQを発行する(S9)。該割り込み要求信号IDEIRQはDRC68を介してレコーダCPU14に転送される。レコーダCPU14はこれによりDMA転送の終了を認識し、DMA転送終了処理を行う。DMA転送終了処理が終わると、該処理の終了がDRC68を介してHDD60に通知され(S10)、HDD60は割り込み要求信号IDEIRQの発行を解除する。また、レコーダCPU14は、バス受付信号BACKを“H”レベルに戻し、DRC68に転送する(S11)。DRC68はこれを受けてDMA受付信号DMACKを“H”レベルに戻し、HDD60に転送する(S12)。以上でDMA転送は終了し、次にいずれかのチャンネルについてDMA転送が要求されるまでバス56はレコーダCPU14に専有される。
なお、SDRAM64,66のアドレス領域をチャンネル単位に分割し、各チャンネルのアドレス領域をそれぞれ単一のバンクに割り当て、サンプリング周期の開始から1/4の区間内で、バンクが異なるチャンネルを交互に指定して各チャンネルのデータを1サンプルずつ時分割でSDRAM64,66に書き込みまたはSDRAM64,66から読み出すことにより、512分割クロックの8クロックごとに3〜4サンプル程度のデータをSDRAM64,66に書き込みまたはSDRAM64,66から読み出すことができ、24トラック(16トラック同時再生しながら8トラック同時録音)程度の入出力チャンネル数であれば、該サンプリング周期の開始から1/4の区間内(128クロック分の時間)で十分な余裕をもって各チャンネル1サンプルずつのサンプルデータをSDRAM64,66に書き込みまたはSDRAM64,66から読み出すことができる。また、1サンプル分のサンプルデータのDMA転送は512分割クロックの4クロックで行うことができるので、1サンプリング周期の残りの3/4の区間内(384クロック分の時間)では90サンプル程度のサンプルデータをDMA転送することができる。したがって、CDフォーマットのデータ(16ビット、44.1kHz)を扱う場合には、1つのチャンネルの1クラスタ(128Kバイト、)分のサンプルデータ(64Kサンプル。CDフォーマットの場合、64Kサンプル/44.1kHzにより、約1.45秒分のデータ)のDMA転送は、64000/90により約800サンプリング周期(約20msec程度)程度の時間内で十分に行うことができる。
DRC68内におけるサンプルデータの信号経路構成およびSDRAM64,66のアドレス情報の信号経路構成の具体例を図10に示す。トラックアドレスジェネレータ100は、録音・再生モード時に、毎サンプリング周期の開始から1/4の区間で、各チャンネルの入力1サンプルデータの書き込みまたは出力1サンプルデータの読み出しを行うためのSDRAM64,66のアドレス情報を生成する。また、残りの3/4の区間で、次のサンプリング周期での各チャンネルのSDRAM64,66の書き込みまたは読み出しアドレスの計算を行う。DMAアドレスジェネレータ102は、録音・再生モード時に、DMA転送を行っている区間の毎サンプリング周期の残り3/4の区間で各チャンネルのDMA転送データの書き込みまたは読み出しを行うSDRAM64,66のアドレス情報を生成する。このアドレス情報は、DMA転送で書き込みまたは読み出しを行うSDRAM64,66の開始アドレスの情報がレコーダCPU14から与えられ、以後DMAアドレスジェネレータ102内で該開始アドレスからアドレス値を所定の周期で順次インクリメントしていくことにより生成される。マルチプレクサ104は、例えば前記バス受付信号BACK{図8(F)}を切換信号として用いて、DMA転送を行っている期間の毎サンプリング周期の開始から1/4の区間はトラックアドレスジェネレータ100で生成されるアドレス情報を選択出力し、DMA転送を行っている期間の毎サンプリング周期の残り3/4の区間はDMAアドレスジェネレータ102で生成されるアドレス情報を選択出力する。マルチプレクサ104から出力されるアドレス情報はSDRAMアドレスコンバータ105でロー(行)アドレスとコラム(列)アドレスに時分割されて、SDRAM64,66のアドレス入力端子に供給される。
DSP38(図5、図3)から供給される各入力チャンネルのサンプルデータは、シリアル/パラレル変換器103で並列データに変換され、ラッチ回路106に各チャンネル1サンプルずつラッチされて、マルチプレクサ112を介してSDRAM64,66に書き込まれる。また、SDRAM64,66から読み出される各出力チャンネルのサンプルデータは、マルチプレクサ112を介してラッチ回路108に各チャンネル1サンプルずつラッチされ、パラレル/シリアル変換器110で直列データに変換されてDSP38に出力される。ラッチ回路106,108のサンプルデータは毎サンプリング周期ごとに書き換えられる。DMA転送データは、マルチプレクサ112、信号ライン114、バス56を介してSDRAM64,66とHDD60間でDMA転送される。マルチプレクサ112は、例えば前記バス受付信号BACKを切換信号として用いて、DMA転送を行っている期間の毎サンプリング周期の開始から1/4の区間は信号ライン69を選択して各入出力チャンネル1サンプルずつ入出力を行い、DMA転送を行っている期間の毎サンプリング周期の残り3/4の区間は信号ライン114を選択してDMA転送データの入出力を行う。書き込み/読み出し制御回路116はSDRAM64,66にデータを書き込むタイミングでは該SDRAM64,66を書き込みモードに設定し、SDRAM64,66からデータを読み出すタイミングでは読み出しモードに設定する制御を行う。
バッファメモリを構成するSDRAM64,66の、録音・再生モードの通常の録音、再生時における各バンクに対する各チャンネルの割り当て例を表1に示す。
(表1)
チップ番号 バンク番号 割り当てチャンネル番号またはチャンネル名
0 0 0,2,4,6,8,10
0 1 1,3,5,7,9,11
0 2 12,14,16,18,20,22
0 3 13,15,17,19,21,23
1 0 メトロノーム(1発目),サンプラー
1 1 サンプラー
1 2 サンプラー
1 3 サンプラー,メトロノーム(2発目以降)
チップ0(SDRAM64,66の一方)、1(SDRAM64,66の他方)はそれぞれ0〜3の4バンクに構成されている。チップ0には演奏音用に0〜23のチャンネルが均等の容量の領域に割り当てられている。隣接するチャンネル番号どうしは別々のバンクに割り当てられている。チップ1のバンク0には、小節の1発目のメトロノーム音の波形全体、サンプラーの領域が割り当てられている。バンク2,3全体にはサンプラーの領域が割り当てられている。バンク4には、サンプラー、小節の2発目以降に共用されるメトロノーム音の波形全体の領域が割り当てられている。録音・再生モード時に演奏音用の0〜23チャンネルの領域内の音データは演奏の進行に応じて順次更新されるが、メトロノーム音およびサンプラー音は繰り返し読み出して用られるので(メトロノーム音は操作者によりメトロノーム音再生がオンに設定されているときに、操作者によって指示されたテンポで自動的に繰り返し読み出され、サンプラー音は操作者の操作に基づきレコーダCPU14から発音が指令されるごとに繰り返し読み出される。)、1つのソング中では特に必要のない限り更新されない。つまり、メトロノーム音およびサンプラー音については、SDRAM64または66に、再生する波形データ全体が保存されているので、再生中にSDRAM64または66への書き込みは必要なく、SDRAM64または66からの読み出しのみ行われる。SDRAM64または66からのメトロノーム音およびサンプラー音の読み出しは、サンプリング周期1/fsごとに1サンプルずつ(複数種類のサンプラーが指定されている場合は、その種類ごとに1サンプルずつ)、演奏音の再生チャンネルの音データの読み出し処理および録音チャンネルの音データの書き込み処理と時分割で行われる。なお、サンプラー音は、操作者が予め任意のサンプラー音を任意の数だけ録音しておき、録音・再生モードでソングを指定して録音をするに先立ち、操作者が録音されているサンプラー音の中から任意のサンプラー音を選択して(最大8種類まで選択可能)、HDD60から該当するサンプラー音の音データを読み出して、SDRAM64,66の任意のチャンネル(サンプラー0〜7)に書き込んでおく。そして、録音開始後の任意のタイミングで任意のチャンネルのサンプラーの発音をボタン操作等で指示することにより該当するサンプラー音が発音され、その発音タイミングおよび発音チャンネルがソング管理データに記録される。録音が終了してそのソングの再生を行うと、ソング管理データに基づき、該当するタイミングで該当するサンプラー音がSDRAM64,66から読み出されて発音される。
表1のチャンネル割り当てをする際の、SDRAM64,66(一方がチップ0,他方がチップ1)のアドレスマップ例を図11に示す。チップ0には各演奏チャンネル0〜23にそれぞれA領域(1クラスタ)、B領域(1クラスタ)の合計2クラスタ分の連続したアドレス領域が割り当てられている。チップ0のバンク2の後尾にはバンク0,2に割り当てられたチャンネル用の無音領域が、またバンク3の後尾にはバンク1,3に割り当てられたチャンネル用の無音領域が、それぞれ適宜の大きさ(1〜2クラスタ程度)で割り当てられ、録音・再生モードの投入とともに、無音データがそれぞれ書き込まれて保持される。チップ1の先頭にはメトロノーム(1発目)に適宜の大きさ(1クラスタ程度)の領域が割り当てられている。チップ1の後尾にはメトロノーム(2発目以降)に適宜の大きさ(1クラスタ程度)の領域が割り当てられている。メトロノーム(1発目)、メトロノーム(2発目以降)の領域には、録音・再生モードの投入とともに、フラッシュROM58(図3)から読み出されたメトロノーム(1発目)、メトロノーム(2発目以降)の音データがそれぞれ保持される。チップ1の先頭および後尾の領域に挟まれた連続した中間の領域にサンプラーの領域が割り当てられている。サンプラーの領域に割り当てるサンプラーの数は操作者が任意に設定することができる(ただし、最大で0〜7の8種類、合計約80秒)。
SDRAM64,66を日立製HM5264165−B60で構成し、該SDRAM64,66の各バンクに図11のようにチャンネルを割り当て、1サンプリング周期(全512タイムスロット)の開始から1/4の期間(0〜127タイムスロット)(すなわち、図6の区間A)で各チャンネルのデータを1サンプルずつSDRAM64,66に書き込みあるいはSDRAM64,66から読み出す場合の、通常の録音、再生時におけるDRC68によるSDRAM64,66の書き込み、読み出し制御シーケンスの一例を表2に示す。表2において,各記号はそれぞれ次を表す。
ACT:選択したバンクを活性化させるコマンド。このとき、ロー(行)アドレスが指定される。
RDwAP:Read with auto pre−charge(読み出しを行い、それが終了後自動的にプリチャージするコマンド)。このとき、コラム(列)アドレスが指定される。)
WTwAP:Write with auto pre−charge(書き込みを行い、それが終了後自動的にプリチャージするコマンド)。このとき、コラム(列)アドレスが指定される。
R/WwAP:Read or write with auto pre−charge(読み出しまたは書き込みを行い、それが終了後自動的にプリチャージするコマンド)。このとき、コラム(列)アドレスが指定される。
R:読み出しモード
W:書き込みモード
(表2)
タイム チップ選択 コマンド バンク選択 モード 入出力データ
スロット (チップ番号) (バンク番号) (チャンネル番号)
0 0 ACT 0
1 0 ACT 1
2 0 RDwAP 0
3 0 RDwAP 0
4 1 R 0
5 1 ACT 0 R 1
6 1
7 1 RDwAP 0
8 0 ACT 0
9 0 ACT 1 R メトロノーム(1発目)
10 0 RDwAP 0
11 0 RDwAP 1
12 1 R 2
13 1 ACT 3 R 3
14 1
15 1 RDwAP 3
16 0 ACT 0
17 0 ACT 1 R メトロノーム(2発目以降)
18 0 RDwAP 0
19 0 RDwAP 1
20 1 R 4
21 1 R 5
22 1
23 1
24 0 ACT 0
25 0 ACT 1
26 0 RDwAP 0
27 0 RDwAP 1
28 1 R 6
29 1 R 7
30 1
31 1
32 0 ACT 0
33 0 ACT 1
34 0 R/WwAP 0 W 8
35 0 R/WwAP 1 W 9
36 1 (R 8)
37 1 (R 9)
38 1
39 1
40 0 ACT 0
41 0 ACT 1
42 0 R/WwAP 0 W 10
43 0 R/WwAP 1 W 11
44 1 (R 10)
45 1 (R 11)
46 1
47 1
48 0 ACT 2
49 0 ACT 3
50 0 R/WwAP 2 W 12
51 0 R/WwAP 3 W 13
52 1 (R 12)
53 1 (R 13)
54 1
55 1
56 0 ACT 2
57 0 ACT 3
58 0 R/WwAP 2 W 14
59 0 R/WwAP 3 W 15
60 1 (R 14)
61 1 (R 15)
62 1
63 1
64 0 ACT 2
65 0 ACT 3
66 0 WTwAP 2 W 16(MIXL上位ワード)
67 0 WTwAP 3 W 17(MIXR上位ワード)
68 1
69 1 ACT 0〜3
70 1
71 1 RDwAP 0〜3
72 0 ACT 2
73 0 ACT 3 R サンプラー0
74 0 WTwAP 2 W 18
75 0 WTwAP 3 W 19
76 1
77 1 ACT 0〜3
78 1
79 1 RDwAP 0〜3
80 0 ACT 2
81 0 ACT 3 R サンプラー1
82 0 WTwAP 2 W 20
83 0 WTwAP 3 W 21
84 1
85 1 ACT 0〜3
86 1
87 1 RDwAP 0〜3
88 0 ACT 2
89 0 ACT 3 R サンプラー2
90 0 WTwAP 2 W 22
91 0 WTwAP 3 W 23
92 1
93 1 ACT 0〜3
94 1
95 1 RDwAP 0〜3
96 0 ACT 2
97 0 ACT 3 R サンプラー3
98 0 { WTwAP 2 W 16(MIXL下位ワード)}
99 0 { WTwAP 3 W 17(MIXR下位ワード)}
100 1
101 1 ACT 0〜3
102 1
103 1 RDwAP 0〜3
104 0
105 0 ACT 3 R サンプラー4
106 0
107 0
108 1
109 1 ACT 0〜3
110 1
111 1 RDwAP 0〜3
112 0
113 0 R サンプラー5
114 0
115 0
116 1
117 1 ACT 0〜3
118 1
119 1 RDwAP 0〜3
120 0
121 0 R サンプラー6
122 0
123 0
124 1
125 1 ACT 0〜3
126 1
127 1 RDwAP 0〜3
128 0
129 0 R サンプラー7
表2の例では、演奏音用の0〜23チャンネルのうちチャンネル0〜7を再生専用チャンネル、チャンネル8〜15を録音再生兼用チャンネル、チャンネル16〜23を録音専用チャンネルに設定している。ただし、チャンネル8〜15は録音のみ(ALL REC)のモードでのみ録音用チャンネルとして使用できるもので、再生同時録音(SYNC DUBBING)のモードでは再生用チャンネルとしてのみ使用することができる。表2ではチャンネル8〜15を読み出しモードに設定した場合のこれら各チャンネル8〜15のサンプルデータの出力タイミングをそれぞれカッコ書きで示している。また、表2において、タイムスロット127で読み出しを指令されたサンプラー7のデータは、区間Aが終了後(つまり、メインCPU14がバス権を明け渡した後)のタイムスロット129で出力されるが、このデータの出力にはメインCPU14は関与しないので、該データの出力は支障なく行うことができる。なお、ミックスダウンを行うときは、チャンネル0〜15を再生チャンネルとしてミックスダウン元のパートのトラックを割り当て、チャンネル16,17をミックスダウン先の録音チャンネルMIXL,MIXR(左右2チャンネル)として割り当てて、チャンネル0〜15で再生した音をDSP38で左右2チャンネルにミックスダウンして、チャンネル16,17を経てHDD60に録音する。HDD60に録音されたミックスダウン信号を再生するときは、左右2チャンネルのミックスダウン信号を再生専用チャンネル0〜15のうちの任意のチャンネルに割り当てて再生する。ミックスダウン信号MIXL,MIXRは24ビットで構成されるので、それぞれ上位ワード、下位ワードに分けて伝送する。表2のシーケンスを実行する際のSDRAM64,66の制御信号のタイムチャートの一部を図12に示す。
バッファメモリを構成するSDRAM64,66の、録音・再生モードのパンチイン、パンチアウト時における各バンクに対する各チャンネルの割り当て例を表3に示す。
(表3)
チップ番号 バンク番号 割り当てチャンネル番号またはチャンネル名
0 0 0, 2, 4
0 1 1, 3, 5
0 2 6, 8,10
0 3 7, 9,11
1 0 12,14,16
1 1 13,15,17
1 2 18,20,22,メトロノーム(1発目)
1 3 19,21,23,メトロノーム(2発目以降)
表3のチャンネル割り当てをする際の、SDRAM64,66のアドレスマップ例を図13に示す。パンチイン、パンチアウト時は、操作者がパンチイン、パンチアウト区間を含むように適当に設定したリピート区間を自動的にリピート再生するため、演奏チャンネル0〜23には通常の録音、再生時の倍のA〜D(それぞれ1クラスタずつ)の連続した4クラスタ分の領域が割り当てられている。また、チップ0のバンク2の後尾にはチップ0のバンク0,2に割り当てられたチャンネル用の無音領域が、チップ0のバンク3の後尾にはチップ0のバンク1,3に割り当てられたチャンネル用の無音領域が、チップ1のバンク0の後尾にはチップ1のバンク0,2に割り当てられたチャンネル用の無音領域が、チップ1のバンク1の後尾にはチップ1のバンク1,3に割り当てられたチャンネル用の無音領域がそれぞれ適宜の大きさ(1〜2クラス程度)で割り当てられ、パンチイン、パンチアウトモードの投入とともに無音データがそれぞれ書き込まれて保持される。また、チップ1のバンク2の後尾には、メトロノーム(1発目)に適宜の大きさ(1クラスタ程度)の領域が割り当てられ、チップ1のバンク3の後尾にはメトロノーム(2発目以降)に適宜の大きさ(1クラスタ程度)の領域が割り当てられている。メトロノーム(1発目)、メトロノーム(2発目以降)の領域には、パンチイン、パンチアウトの投入とともに、フラッシュROM58(図3)から読み出されたメトロノーム(1発目)、メトロノーム(2発目以降)の音データがそれぞれ保持される。なお、パンチイン、パンチアウト時はサンプラーは使用しないものとし、サンプラーは割り当てられない。SDRAM64,66の各バンクに図13のようにチャンネルを割り当てた場合の、パンチイン、パンチアウト時におけるDRC68によるSDRAM64,66の制御シーケンスは、前記表2からサンプラーおよびミックスダウンに関するシーケンスを除いたものとすることができる。
SDRAM64,66のチャンネル割り当てを、通常の録音、再生時は図11のように設定し、パンチイン、パンチアウト時は図13のように設定した場合の、該SDRAM64,66のアドレス制御について説明する。図10のトラックアドレスジェネレータ100の構成例を図1に示す。トラックアドレスRAM118は、各チャンネルについて、現在のサンプリング周期で読み出しあるいは書き込みを行うSDRAM64,66のアドレス情報(現アドレス)を記憶するとともに、次のサンプリング周期で読み出しあるいは書き込みを行うSDRAM64,66のアドレスを計算するために必要な、SDRAM64,66の各種アドレス情報を順次更新しながら記憶するものである(トラックアドレスRAM118に記憶されるSDRAM64,66のアドレス情報を以下まとめて「アドレスパラメータ」という。)。トラックアドレスRAM118のアドレスマップ例を図14に示す。トラックアドレスRAM118には演奏チャンネル0〜23、サンプラー0〜7、メトロノーム(1発目)、メトロノーム(2発目以降)用の領域がそれぞれ設けられている。演奏チャンネル0〜23用の領域にはそれぞれ次の8つの領域内アドレスが割り当てられて、それぞれ1ワードずつ該当するアドレスパラメータデータを保持する。
(1)領域内アドレス0{領域始端アドレス(TS)保持用アドレス}:当該チャンネルに割り当てられたSDRAM64,66のアドレス領域の始端アドレス。すなわち、図11、図13のアドレスマップの領域Aの先頭のアドレス。
(2)領域内アドレス1{領域終端アドレス(TE)保持用アドレス}:当該チャンネルに割り当てられたSDRAM64,66のアドレス領域の終端アドレス。すなわち、通常の録音、再生時あるいはミックスダウン時は図11の領域Bの後尾のアドレス、パンチイン、パンチアウト時は図13の領域Dの後尾のアドレス。
(3)領域内アドレス2{読み出し開始アドレス(RS)保持用アドレス}:当該チャンネルに割り当てられたSDRAM64,66のアドレス領域の読み出しを開始するアドレス。再生開始当初にHDD60から読み出される最初のクラスタの音データは領域Aに格納されるので、通常は領域Aの先頭のアドレス(領域始端アドレスTS)を読み出し開始アドレスRSに設定してそこから読み出しを開始すればよいが、特殊なファイルでは曲の最初の部分に音楽データでない例えばサンプリング周波数等が記入されている場合があり、この部分を再生したくない場合は音楽データが開始されるアドレスを読み出し開始アドレスRSに設定することができる。
(4)領域内アドレス3{割り込み要求発生アドレス(RT)保持用アドレス}:当該チャンネルについて音データのDMA転送のための割り込み要求をレコーダCPU14に向けて発生するSDRAM64,66のアドレス。SDRAM64,66の書き込みまたは読み出しアドレスが割り込み要求発生アドレスに達するごとに該割り込み要求が発せられる。通常の録音、再生時は割り込み要求発生アドレスは各演奏チャンネル0〜23のアドレス領域の領域A,B(図11)の各後尾のアドレスに設定され、1クラスタ分の音データが書き込まれまたは読み出されるごとに割り込み要求が発生される。無音領域を再生する場合やパンチイン、パンチアウト等のために適宜設定された区間をリピート再生する場合はこれ以外のアドレスにも割り込み要求発生アドレスRTが設定される。これについては後述する。
(5)領域内アドレス4{現アドレス(CR)保持用アドレス}:当該チャンネルについて現在のサンプリング周期で書き込みまたは読み出しを行うSDRAM64,66のアドレス。通常はサンプリング周期ごとに1アドレスずつインクリメントされていく。
(6)領域内アドレス5{ジャンプ元アドレス(JT)保持用アドレス}:当該チャンネルについて読み出し中にアドレスジャンプを行うSDRAM64,66のジャンプ元のアドレス。ソング管理データにより指示されるジャンプ開始時刻または操作者により指示されるジャンプ開始時刻にアドレスポインタが到達するSDRAM64,66のアドレスを、レコーダCPU14が現アドレス(CR)を参照して演算で求めて設定する。
(7)領域内アドレス6{ジャンプ先アドレス(JD)保持用アドレス}:当該チャンネルについて読み出し中にアドレスジャンプを行うSDRAM64,66のジャンプ先のアドレス。ジャンプ先のサンプルデータが格納されるSDRAM64,66のアドレスをレコーダCPU14が演算で求めて設定する。現アドレスCRの1つ先のアドレスがジャンプ元アドレスJTに到達すると、現アドレスについて書き込みまたは読み出しを行った後、アドレスジャンプを行い、次のサンプリング周期からはジャンプ先アドレスJDから読み出しが続行される。
(8)領域内アドレス7:未使用
また、トラックアドレスRAM118のサンプラー0〜7、メトロノーム(1発目)、メトロノーム(2発目以降)用の領域には、それぞれ次の4つの領域内アドレスが割り当てられて、それぞれ1ワードずつ該当するアドレスパラメータデータを保持する。
(1)領域内アドレス0{読み出し開始アドレス(RS)保持用アドレス}:当該チャンネルの読み出しを開始するSDRAM64,66のアドレス。
(2)領域内アドレス1{読み出し終了アドレス(RE)保持用アドレス}:当該チャンネルの読み出しを終了するSDRAM64,66のアドレス
(3)領域内アドレス2{現アドレス(CR)保持用アドレス}:当該チャンネルについて現在のサンプリング周期で書き込みまたは読み出しを行うSDRAM64,66のアドレス。サンプリング周期ごとに1アドレスずつインクリメントされていく。
(4)領域内アドレス4:未使用
なお、サンプラー0〜7およびメトロノーム(1発目)、メトロノーム(2発目以降)については、読み出し開始アドレスRSで指定されるSDRAM64,66のアドレスに無音データが格納され、その次のアドレスから有効な音データが格納される。そして、SDRAM64,66のアドレスポインタは、発音開始が指示されるまで、該読み出し開始アドレスRSに停まっている。発音開始の指示(サンプラーの場合は操作者による発音指示操作またはソング管理データに基づくレコーダCPU14からの発音指令、メトロノーム音については指定されたテンポに対応した周期ごとにレコーダCPU14から発せられる発音指令)があると、アドレスポインタがサンプリング周期ごとに1ずつ進められていき、サンプラー音あるいはメトロノーム音が発音される。アドレスポインタが読み出し終了アドレスREに到達すると発音を終了し、次に発音開始の指示が与えられるまで、アドレスポインタは読み出し開始アドレスRSに停まる。
本ハードディスクレコーダ10において録音・再生モードが選択されると、レコーダCPU14からは、ソング指定前にわかっていて予めトラックアドレスRAM118に格納できるアドレスパラメータのデータとして、演奏チャンネル0〜23の領域始端アドレスTS、領域終端アドレスTE、メトロノーム(1発目)、メトロノーム(2発目以降)の読み出し開始アドレスRS、読み出し終了アドレスRE等の各データが、それらを格納するトラックアドレスRAM118のアドレス情報とともに送出される。レコーダCPU14は、送出したアドレスパラメータのデータおよびトラックアドレスRAM118のアドレス情報を、自身のクロックで図1のレジスタ120,122にそれぞれ書き込む。レジスタ120,122に書き込まれた情報は、DRC68が自身のクロックで読み出して、セレクタ124,126を介してトラックアドレスRAM118に転送される。これにより、各演奏チャンネル0〜23の領域始端アドレスTS、領域終端アドレスTEおよびメトロノーム(1発目)、メトロノーム(2発目以降)の読み出し開始アドレスRS、読み出し終了アドレスRE等の情報がトラックアドレスRAM118のそれぞれ割り当てられたアドレスに書き込まれる。
続いてソングが指定されると、HDD60から読み出されるソング管理データに基づき、レコーダCPU14からは演奏チャンネル0〜23のうち再生が指示されたチャンネルの読み出し開始アドレスRS、最初の割り込み要求発生アドレスRT、各サンプラーの読み出し開始アドレスRS、読み出し終了アドレスRE等のデータが、それらを格納するトラックアドレスRAM118のアドレス情報とともに送出され、レジスタ120,122およびセレクタ124,126を介してトラックアドレスRAM118に入力され、これら各アドレスパラメータデータがトラックアドレスRAM118のアドレス情報で指示されたアドレスにそれぞれ書き込まれる。ジャンプ元アドレスJTおよびジャンプ先アドレスJDのデータは、ソング管理データに基づき、アドレスジャンプを発生させる時刻の直前にレコーダCPU14からそれらを格納するトラックアドレスRAM118のアドレス情報とともに送出され、レジスタ120,122およびセレクタ124,126を介してトラックアドレスRAM118の該当するアドレスに保持される。なお、録音・再生モードにおいてパンチイン、パンチアウトが指示されると、演奏チャンネル0〜23およびメトロノーム(1発目)、メトロノーム(2発目以降)に割り当てられるSDRAM64,66のアドレス領域を前記図13に示すように変更する必要があるので、レコーダCPU14からは各演奏チャンネル0〜23の領域始端アドレスTSおよび領域終端アドレスTEのデータがそれらを格納するトラックアドレスRAM118のアドレス情報とともに送出され、レジスタ120,122およびセレクタ124,126を介してトラックアドレスRAM118に送られ、トラックアドレスRAM118の該当するアドレスに書き込まれて、該アドレス内のデータが更新される。
録音、再生が行われている際には、レコーダCPU14からは演奏チャンネル0〜23のうち再生が指示されたチャンネルについて、割り込み要求発生アドレスRT、ジャンプ元アドレスJT、ジャンプ先アドレスJDが、それらを格納するトラックアドレスRAM118の情報とともに、該割り込みあるいは該アドレスジャンプを発生させる直前の適宜の時点で送出され(録音が指示されたチャンネルについては、割り込み要求発生アドレスRTに関する情報のみ送出される。)、レジスタ120,122にそれぞれ書き込まれる。セレクタ124,126は、毎サンプリング周期で、512分割クロックの8n+4/0〜511(n=0,1,2,…,63)のタイミング(すなわち8クロックに1回のタイミング)ごとに入力A側を選択し、該レジスタ120,122に書き込まれているデータを読み出す。トラックアドレスRAM118はこの読み出しタイミングごとに書き込みモードに切り換えられる。その結果、レジスタ120に保持されたアドレスパラメータデータは、レジスタ122に保持されたデータで指示されるトラックアドレスRAM118のアドレスに格納される。このようにして、録音、再生が行われている際に、トラックアドレスRAM118内の割り込み要求発生アドレスRT、ジャンプ元アドレスJT、ジャンプ先アドレスJDの各アドレスパラメータデータがその都度必要な内容に更新される。なお、ジャンプ終了後は、次のジャンプをすぐに発生させる必要がない限り、レコーダCPU14からはジャンプ元アドレスJT、ジャンプ先アドレスJDのアドレスパラメータデータとして、当該チャンネルの領域外のアドレス情報が送出されて、トラックアドレスRAM118の該当するアドレスに格納される。当該チャンネルの領域外のアドレスであるので、アドレスポインタのインクリメント動作でそのアドレスに到達することはなく、したがってアドレスジャンプは発生しない。次のジャンプが近づくと、レコーダCPU14からそのジャンプを行わせるための有効なジャンプ元アドレスJT、ジャンプ先アドレスJDのパラメータデータが送出されて、トラックアドレスRAM118の該当するアドレスに格納される。なお、DMA転送が行われている間は、レコーダCPU14がバス権を取得するサンプリング周期の開始から1/4の区間でのみレジスタ120,122に対するデータの書き込みが行われることになるが、レコーダCPU14はその区間だけ使っても、更新が必要なトラックアドレスRAM118のアドレスパラメータデータおよび該データを格納するトラックアドレスRAM118のアドレス情報を、その都度遅滞なくレジスタ120,122に書き込むことができる。なお、トラックアドレスRAM118の各チャンネルの現アドレスCR保持用アドレスには、後述するように、図1のアドレス演算回路134において演算で求められた値が格納される。
図1において、SDRAM読み書き用アドレス発生回路128は、録音・再生モードにおいて、毎サンプリング周期の開始から1/4の区間で各チャンネルの1サンプルの音データをSDRAM64,66から時分割で読み出しあるいはSDRAM64,66に書き込むために、トラックアドレスRAM118の現アドレスCRが記憶されているアドレスの情報を前記表2のタイムスロットで規定されるタイミングに従って、録音あるいは再生を指示されたチャンネルごとに発生する。計算用アドレスパラメータ読み出し用アドレス発生回路130は、録音・再生モードにおいて、毎サンプリング周期の残り3/4の区間で、各チャンネルの次のサンプルのデータの読み出しあるいは書き込みを行うSDRAM64,66のアドレスを各チャンネルごとに時分割で計算するために、トラックアドレスRAM118から各チャンネルのアドレスパラメータを読み出すための該トラックアドレスRAM118のアドレス情報を、512分割クロックに同期して、予め規定されたタイミングに従って時分割で発生する。両アドレス発生回路128,130から発生されるトラックアドレスRAM118のアドレス情報はセレクタ132に入力され、毎サンプリング周期の開始から1/4の区間ではSDRAM読み書き用アドレス発生回路128の出力アドレス情報が選択され、残りの3/4の区間では計算用アドレスパラメータ読み出し用アドレス発生回路130の出力アドレスが選択される。
セレクタ132で選択されたアドレス情報は、レジスタ120,122のデータをトラックアドレスRAM118に書き込む512分割クロックの8クロックごとのタイミング{8n+4/0〜511(n=0,1,2,…,63)のタイミング}を除いた区間でセレクタ124から出力され、トラックアドレスRAM118のアドレス端子に入力され、トラックアドレスRAM118の該当するアドレスから該当するパラメータデータが読み出される。なお、レジスタ120,122のデータをトラックアドレスRAM118に書き込むタイミングでは、アドレス発生回路128,130から有効なデータが発生されないように、512分割クロックに同期した該アドレス発生回路128,130のデータ発生シーケンスが設定されている。毎サンプリング周期の開始から1/4の区間でトラックアドレスRAM118から読み出される各チャンネルの現アドレスCRは、SDRAM64,66に送られ、その書き込みまたは読み出しアドレスとして用いられる。また、該現アドレスCRは、レコーダCPU14に送られ、レコーダCPU14に各チャンネルの現アドレスCRが通知される。
アドレス演算回路134は、トラックアドレスRAM118に格納されているアドレスパラメータに基づき、毎サンプリング周期の残り3/4の区間で、各チャンネルの次のサンプルのデータの読み出しあるいは書き込みを行うSDRAM64,66のアドレス(次のサンプリング周期の現アドレスCR)を、512分割を動作クロックとして用いて時分割で計算する。該演算を行うために、各チャンネルに割り当てられたアドレス演算回路134の使用時間の分割例を図15に示す。各演算チャンネル0〜23,サンプラー0〜7,メトロノーム(1発目)、メトロノーム(2発目以降)は、それぞれに割り当てられた時間内でアドレス演算回路134を専有して、次のサンプリング周期の現アドレスCRを計算し、トラックアドレスRAM118の該当するアドレスに格納する。演算するチャンネルの順序は、例えば前記図14に示されたトラックアドレスRAM118のアドレス配列と同じ順序とすることができる。
図1のアドレス演算回路134内の構成について説明する。セレクタ136はトラックアドレスRAM118の書き込みタイミング(512分割クロックの8クロックごとに1クロック分)を除いたタイミングで該トラックアドレスRAM118から時分割で読み出される現在演算を行っているチャンネルの各アドレスパラメータまたはレジスタ138(レジスタB)のデータを選択する。選択されたデータはレジスタ140(レジスタA)に書き込まれる。レジスタAに書き込まれたデータはセレクタ126およびALU(演算部)142に送出される。ALU142はレジスタAのデータおよびレジスタBのデータを用いて適宜の演算を行い、その結果に応じてレジスタAのデータ書き込み、計算用アドレスパラメータ読み出し用アドレス発生回路130からのアドレス情報の発生、DMA転送のための割り込み要求発生の各制御を行う。ALU142の計算は必要に応じてACC(アキュムレータ)144に保持される。
アドレス演算回路134における1つの演奏チャンネル(再生チャンネル)のアドレス計算手順を説明する。図16は、再生操作(または再生同時録音操作)がされて再生が起動した時の最初のサンプリング周期で行われる計算である。再生操作がされると(S1)、トラックアドレスRAM118から、当該再生チャンネルの読み出し開始アドレスRSが読み出され(S2)、セレクタ136、レジスタA、セレクタ126を介して、トラックアドレスRAM118の当該再生チャンネルの現アドレスCR保持用アドレスに格納される(S3)。図17は、その次のサンプリング周期から停止操作がされるまでの間にサンプリング周期ごとに繰り返される計算である。トラックアドレスRAM118から現アドレスCRを読み出して、レジスタAに書き込む(S10)。ALU142でレジスタAのデータ(現アドレスCR)+1を計算して、計算結果をACC144に格納する(S11)。トラックアドレスRAM118から割り込み要求発生アドレスRTを読み出して、レジスタAへ書き込む。これを並行してACC144のデータ(現アドレスCR+1)をレジスタBへ書き込む。これと並行して、ALU142で{レジスタAのデータ(割り込み要求アドレスRT)}−{レジスタBのデータ(現アドレスCR+1)}を計算する。レジスタAのデータ=レジスタBのデータであれば、DMA転送のための割り込みを発生する(S12)。トラックアドレスRAM118からジャンプ元アドレスJTを読み出して、レジスタAへ書き込む。これと並行して、ALU142で{レジスタAのデータ(ジャンプ元アドレスJT)}−{レジスタBのデータ(現アドレスCR+1)}を計算する(S13)。トラックアドレスRAM118から領域終端アドレスTEを読み出して、レジスタAへ書き込む。これと並行して、ALU142で{レジスタAのデータ(領域終端アドレスTE)}−{レジスタBのデータ(現アドレスCR+1)}を計算する(S14)。
ステップS13の計算結果が{レジスタAのデータ(ジャンプ元アドレスJT)}={レジスタBのデータ(現アドレスCR+1)}の場合は、トラックアドレスRAM118からジャンプ先アドレスJDを読み出して、レジスタAへ書き込む。ステップS14の計算結果が{レジスタAのデータ(領域終端アドレスTE)}<{レジスタBのデータ(現アドレスCR+1)}の場合は、トラックアドレスRAM118から領域始端アドレスTSを読み出してレジスタAに書き込む。計算結果がそれ以外の場合はレジスタBのデータ(現アドレスCR+1)をレジスタAに書き込む(S15)。そして、これら計算結果に応じてレジスタAに書き込まれたデータをトラックアドレスRAM118の該当チャンネルの現アドレスCR保持用アドレスに書き込む(S16)。その結果、次のサンプリング周期では、この現アドレスCR保持用アドレスに書き込まれたSDRAM64,66のアドレスについてサンプルデータの書き込みまたはサンプルデータの読み出しが行われる。
録音チャンネルについても、アドレス演算回路134で同様の計算が行われる。すなわち、録音操作(または再生同時録音操作)がされて、録音が起動した時の最初のサンプリング周期でトラックアドレスRAM118から領域始端アドレスTSが読み出されて、該トラックアドレスRAM118の現アドレスCR保持用アドレスに格納され、次のサンプリング周期で該現アドレスCRで指示されるSDRAM64,66のアドレスにサンプルデータの書き込みが行なわれ、以後サンプリング周期ごとに現アドレスCRが1ずつインクリメントされていく。その途中で割り込み要求アドレスに一致すると、DMA転送のための割り込み要求が発生される。現アドレスCRが領域終端アドレスTEに到達すると、次のサンプリング周期では領域始端アドレスTSが現アドレスCRとして設定され、以後アドレス循環が繰り返される。録音チャンネルについてはアドレスジャンプは行われない。
また、サンプラー0〜7については、再生操作(または再生同期録音操作)がされて再生が起動されると、最初のサンプリング周期でトラックアドレスRAM118のサンプラー0〜7の読み出し開始アドレスRSが読み出されて、該トラックアドレスRAM118の該当チャンネルの現アドレスCR保持用アドレスに格納され、操作者によりサンプラー発音操作がされるまでまたはソング管理データに基づきレコーダCPU14から発音指令が発せられるまでその状態が保持される。SDRAM64,66のサンプラー0〜7の読み出し開始アドレスRSには無音データが格納されているので、この状態では発音されない。操作者が任意のサンプラーについて発音操作をするとまたはソング管理データに基づきレコーダCPU14から発音指令が発せられると、該当するサンプラーについてサンプリング周期ごとに現アドレスCRが1ずつインクリメントされて、該当するサンプラー音が発音される。現アドレスCRが読み出し終了アドレスREに到達すると、次のサンプリング周期以降トラックアドレスRAM118の現アドレスCR保持用アドレスには読み出し開始アドレスRSが保持されて、次にそのサンプラーについて発音操作がされるまでまたはソング管理データに基づきレコーダCPU14から発音指令が発せられるまで、そのサンプラー音は発音されない。
また、メトロノーム(1発目)、メトロノーム(2発目以降)については、録音・再生モードの投入によってトラックアドレスRAM118からメトロノーム(1発目)、メトロノーム(2発目以降)の読み出し開始アドレスRSが読み出されて、該トラックアドレスRAM118のメトロノーム(1発目)、メトロノーム(2発目以降)の現アドレスCR保持用アドレスに格納されて、操作者によりメトロノーム音の発音指示操作がされるまで、その状態が保持される。SDRAM64,66のメトロノーム(1発目)、メトロノーム(2発目以降)の読み出し開始アドレスRSには無音データが格納されているので、この状態では発音されない。操作者がメトロノーム音の発音指示操作をすると、レコーダCPU14からメトロノーム(1発目)の発音が指令され、メトロノーム(1発目)についてサンプリング周期ごとに現アドレスCRが1ずつインクリメントされて、小節の1拍目のメトロノーム音が発音される。現アドレスCRが読み出し終了アドレスREに到達すると、次のサンプリング周期以降トラックアドレスRAM118の現アドレスCR保持用アドレスには読み出し開始アドレスRSが保持されて発音が停止される。小節の2拍目のタイミングに達すると、レコーダCPU14からメトロノーム(2発目以降)の発音が指令され、メトロノーム(2発目以降)についてサンプリング周期ごとに現アドレスが1ずつインクリメントされて、小節の2拍目のメトロノーム音が発音される。現アドレスCRが読み出し終了アドレスREに到達すると、次のサンプリング周期以降トラックアドレスRAM118の現アドレスCR保持用アドレスには読み出し開始アドレスRSが保持されて発音が停止される。メトロノーム(2発目以降)は該小節内で、曲の拍子に応じて必要な数だけ発音が繰り返し指令されて、発音が繰り返される。次の小節以降もメトロノーム音(1発目)、メトロノーム(2発目以降)、…が繰り返し発音される。
なお、チャンネル数が多くアドレス演算回路134で1サンプリング周期内に全チャンネルのアドレス計算ができない場合には、トラックアドレスRAM118およびアドレス演算回路134を複数組並列に設けて、チャンネルを振り分けて計算するかあるいはアドレス演算回路134の動作クロック周波数を上げて計算速度を速めるようにすればよい。
トラックアドレスジェネレータ100によるSDRAM64,66のアドレス制御例について説明する。図18は通常の録音、再生時の1つの演奏チャンネル(再生チャンネル)についてのSDRAM64または66のアドレスポインタの移動を示したものである。この例ではアドレスジャンプは含まれていない。当該チャンネルには、SDRAM64または66のA領域、B領域の連続した2クラスタ分の音データを格納するメモリ空間(アドレス領域)が割り当てられ、現アドレスCRに相当する読み出しアドレスポインタがサンプリング周期ごとに1アドレスずつインクリメントされていく。A領域の先頭に領域始端アドレスTSが設定され、B領域の後尾に領域終端アドレスTEが設定されている。また、この例では、読み出し開始アドレスRSが領域始端アドレスTSとは別のアドレスに設定されている。割り込み要求発生アドレスRTはA領域、B領域のうちアドレスポインタが存在する領域の後尾のアドレスに交互に設定される。
選択されたソングについて再生(または録音同時再生)が指示されると、HDD60から各再生チャンネルの最初のクラスタの音データが読み出されて、DMA転送でSDRAM64,66の各再生チャンネルに割り当てられた領域のA領域に格納され、読み出し開始アドレスRSからサンプリング周期ごとにアドレスポインタが1アドレスずつ進められて、該当する音データが読み出されて再生が行われる。アドレスポインタがA領域を移動している間に次のクラスタの音データがHDD60から読み出されて、B領域に格納される。アドレスポインタがA領域を移動している際には、割り込み要求発生アドレスRTはA領域の後尾のアドレスに設定される。アドレスポインタがA領域を移動中に、B領域のDMA転送による音データの書き込みは終了する。アドレスポインタがA領域の後尾のアドレスに到達すると、割り込み要求が発生される。この割り込み要求はレコーダCPU14に通知され、DMA転送が起動されてHDD60からさらに次のクラスタの音データが読み出され、A領域にDMA転送で書き込まれる。アドレスポインタはA領域の後尾に達した後も引き続きB領域の先頭アドレスからサンプリング周期ごとに1アドレスずつ進められて、音データは途切れることなく再生される。アドレスポインタがB領域に入ると、割り込み要求発生アドレスRTはB領域の後尾のアドレスに変更される。アドレスポインタが該B領域を移動中に、A領域のDMA転送による音データの書き込みは終了する。アドレスポインタは、B領域の後尾のアドレスに到達すると、次のサンプリング周期ではA領域の先頭のアドレスに戻され、さらにサンプリング周期ごとに1アドレスずつインクリメントされていき、音データは途切れることなく再生される。アドレスポインタがA領域を移動中にB領域のDMA転送による音データの書き込みが行われる。アドレスポインタがA領域を移動中は割り込み要求発生アドレスRTはA領域の後尾のアドレスに設定される。以上のようにして、再生が停止されるまでアドレスポインタはA領域の先頭からB領域の後尾までの区間を繰り返し移動する。
なお、録音が指示された演奏チャンネルについては、録音(または録音同時再生)の開始が指示されると、書き込みアドレスポインタが領域始端アドレスTSからサンプリング周期ごとに1アドレスずつ進められ、入力されるサンプリングデータが1サンプルずつA領域に格納されていく。このとき、割り込み要求発生アドレスRTはA領域の後尾に設定される。アドレスポインタが該割り込み要求発生アドレスRTに到達すると、割り込み要求が発生され、DMA転送が起動されて、A領域に蓄積された1クラスタ分の音データがHDD60にDMA転送されて記録される。アドレスポインタはA領域の後尾に達した後も引き続きB領域の先頭アドレスからサンプリング周期ごとに1アドレスずつ進められて、入力される音データはB領域に格納されていく。このとき、割り込み要求発生アドレスRTはB領域の後尾に設定される。アドレスポインタが該割り込み要求発生アドレスRTに到達すると、割り込み要求が発生され、DMA転送が起動されて、B領域に蓄積された1クラスタ分の音データがHDD60に転送されて記録される。アドレスポインタはA領域の先頭に戻されて、サンプリング周期ごとに1アドレスずつ進められる。録音または再生同時録音が停止されるまで以上の動作が繰り返されて、入力される音データは1クラスタずつHDD60に記録される。
次に、無音区間を設定して録音した場合のアドレス制御例について説明する。ここでは、図19に示すように、ある演奏チャンネルについて時刻t1〜t2(t1,t2は録音開始からの経過時間)の区間に無音区間が設定されているものとする。m1〜m6はHDD60に記録されているそれぞれ1クラスタ分の音データである。録音中に時刻t1で無音区間の開始が指示されると、その時点で録音は休止され、その直前に作成されていた音データm3のクラスタ(そのクラスタの時刻t1以降には無効な音データが作成される)のデータがHDD60に記録された後は、そのチャンネルについてのHDD60への音データの記録は休止される。時刻t2に無音区間の終了が指示されると録音が再開され、音データm4,m5,…が1クラスタずつ作成されてHDD60に記録される。録音を終了して保存操作をすると、ソング管理データにそのパートの演奏の時刻t1〜t2が無音区間であることが記録される。
図19のように無音区間を含んで録音されたパートを再生するときのアドレスジェネレータ100によるSDRAM64,66のアドレス制御例を図20の手順図に従って説明する。(i)はSDRAM64または66の領域Aに格納された音データm1を読み出している状態、(ii)はそれに続いて領域Bに格納された音データm2を読み出している状態である。音データm2を読み出している間に領域Aが音データm3に書き換えられ、時刻t1に相当するアドレスがジャンプ元アドレスJTとして設定され、無音領域の先頭のアドレスがジャンプ先アドレスJDとして設定される。アドレスポインタAPが領域Bの後尾のアドレスに達すると、(iii) のようにアドレスポインタAPが領域Aに戻されて、その先頭のアドレスから再び移動していく。また、割り込み要求発生アドレスRTがジャンプ元アドレスJTと同じアドレスに設定される。アドレスポインタAPはジャンプ元アドレスJTに到達すると、ジャンプ先アドレスJDにジャンプし、(iv)に示すようにジャンプ先アドレスJDからサンプリング周期ごとに1アドレスずつ移動していく。これにより当該チャンネルについて無音が再生される。また、アドレスポインタAPがジャンプ元アドレスJTで割り込み要求発生アドレスRTに到達することにより、割り込み要求が発生され、無音再生されている間に領域Bが音データm4に書き換えられ、領域Aが音データm5に書き換えられる。無音区間の終了時刻t2の直前まで、無音区間の後尾のアドレスがシャンプ元アドレスJT、該無音区間の先頭のアドレスがジャンプ先アドレスJDに設定され、アドレスポインタAPは無音領域を循環して、無音が再生される。この間HDD60からの当該チャンネルの音データの読み出しは休止される。無音区間の終了時刻t2の直前に達すると、(v)に示すように、無音区間の終了時刻t2に相当する無音領域のアドレスがジャンプ元アドレスJTとして設定され、領域Bの先頭のアドレスがジャンプ先アドレスJDとして設定される。アドレスポインタAPは無音領域のジャンプ元アドレスJTに到達すると、(vi)に示すようにジャンプ先アドレスJDにジャンプし、領域Bの先頭から音データm4の読み出しを再開する。これにより、無音区間は終了し、当該チャンネルの演奏音が再生される。また、領域Bの後尾の領域終端アドレスTEが割り込み要求発生アドレスRTとして設定される。アドレスポインタAPは領域終端アドレスTEに到達すると、(vii) に示すように領域Aに戻されて、その先頭のアドレスから再び移動していき、音データm5が読み出されて再生される。また、割り込み要求が発生されて、領域Bが音データm6に書き替えられ、音データm5の読み出し終了後に音データm6が読み出されて再生される。
次に、リピート再生する場合のアドレス制御例について説明する。ここでは、図21に示すように、録音されているソングのt3〜t4の区間をリピート再生し、この区間内の時刻t5〜t6でパンチイン、パンチアウトを行うものとする。m1〜m6はそれぞれ1クラスタずつの音データである。リピート再生の開始時刻t3は音データm1の途中の時刻であり、リピート再生の終了時刻t4は音データm6の途中の時刻である。図21のようにリピート再生する場合のアドレスジェネレータ100によるSDRAM64,66のアドレス制御例を図22の手順図に従って説明する。録音・再生モードにおいてパンチイン、パンチアウトモードが選択されると、前記図13で示したように、各演奏チャンネル0〜23にSDRAM64,66の4クラスタ分の領域A〜Dが割り当てられる。操作者の操作によりリピート区間t3〜t4およびパンチイン、パンチアウト区間t5〜t6が指示されると、HDD60が読み出されて、図22の(i)に示すように、時刻t3が含まれるクラスタの音データm1が領域Aに格納され、時刻t4が含まれるクラスタの音データm6が領域Dに格納される。これらリピート区間の両端の音データm1,m6はリピート再生を行っている間書き換えられない。領域B,Cには、最初に(i)に示すように、音データm2,m3がそれぞれ格納される。領域Aの先頭アドレスに領域始端アドレスTS、領域Aの時刻t3に相当するアドレスに読み出し開始アドレスRS、領域Aの後尾にジャンプ先アドレスJD、領域Bの後尾に割り込み要求発生アドレスRT、領域Cの後尾にジャンプ元アドレスJT、領域Dの後尾に領域終端アドレスTEがそれぞれ設定される。
リピート再生開始が指示されると、(ii)に示すように、アドレスポインタAPが読み出し開始アドレスRSからサンプリング周期ごとに1アドレスずつ進行していき、音データm1のうち時刻t3以降の音データが読み出されて再生される。アドレスポインタAPが領域Aの後尾アドレスに到達すると、(iii) に示すように、領域Bの音データm2がそのまま続けて再生される。音データm2を再生している途中の時刻t5に到達すると、パンチイン、パンチアウトが指示されたチャンネルが録音モードに切り換えられて、パンチインが実行される。アドレスポインタAPが領域Bの後尾アドレスに到達すると、割り込み要求が発生し、HDD60から音データm4が読み出され、(iv)に示すように、領域Bが該音データm4で書き換えられる。アドレスポインタAPはそのまま領域Bを移動して音データm3の再生および入力音の録音が続行される。割り込み要求発生アドレスRTは領域Cの後尾アドレスに変更される。アドレスポインタAPが領域Cの後尾アドレスに到達すると、ジャンプが発生し、(v)に示すようにアドレスポインタAPが領域Bの先頭アドレスに戻されて、音データm4の読み出しが行われる。また、割り込み要求が発生されて、HDD60から音データm5が読み出され、領域Cが該音データm5で書き換えられる。割り込み要求発生アドレスRTは、領域Bの後尾アドレスに設定される。アドレスポインタAPが領域Bの後尾アドレスに到達すると、割り込み要求が発生され、(vi)に示すように、領域Bが音データm2で書き換えられる。アドレスポインタAPはそのまま領域Cを移動し、音データm5の再生が行われる。割り込み要求発生アドレスRTは領域Cの後尾アドレスに変更される。また、領域Dの時刻t4に相当するアドレスがジャンプ元アドレスJT、領域Aの時刻t3に相当するアドレスがジャンプ先アドレスJDとして設定される。音データm5を再生している途中の時刻t6に到達すると、パンチイン、パンチアウトが指示されたチャンネルが再生モードに戻されて、パンチアウトが実行される。アドレスポインタAPが領域Cの後尾アドレスに到達すると、割り込み要求が発生し、(vii) に示すように、領域Cが音データm3で書き換えられる。アドレスポインタAPはそのまま領域Dを移動し、音データm6の再生が行われる。割り込み要求発生アドレスRTは領域Bの後尾アドレスに変更される。アドレスポインタAPがリピート区間の終了時刻t4に相当するアドレスに到達すると、ジャンプが発生し、(viii)に示すように、アドレスポインタAPが領域Aのリピート区間の開始時刻t3に相当するアドレスに戻され、そこから再び再生が行われて、以上のリピート再生およびパンチイン、パンチアウト動作が繰り返される。なお、時刻t3に相当するアドレスから再生を再開する前にわずかな無音時間を形成して、リピート区間の開始位置に戻ったことが容易に認識されるようにしてもよい。
最後に、図10のDMAアドレスジェネレータ102による、DMA転送におけるSDRAM64,66の書き込み、読み出しアドレス制御について説明する。1つのチャンネルについてのDMAアドレスジェネレータ102の構成例を図23に示す。DMAアドレスジェネレータ102はカウンタ146で構成される。DMA転送のための割り込み要求が発生されると、レコーダCPU14はSDRAM64,66の該当チャンネルの領域A,B(リピート再生の場合は領域B,C)のうち、今回DMA転送を行う側の領域の先頭アドレスをカウンタ146に設定する。カウンタ146のインクリメント入力INCには、図7のオア回路96から出力されるサンプリング周期の残り3/4の区間(すなわちDMA転送を行う区間)を示す信号が入力され、クロック入力CKには、512分割クロックを1/4に分周したクロックが入力される。これによりカウンタ146はDMA転送を行う区間で512分割クロックの4クロックごとにカウントアップされ、そのカウント値がSDRAM64,66にアドレス情報として入力されて該当するアドレスからサンプルデータが読み出されてHDD60にDMA転送され、あるいはHDD60からDMA転送されたサンプルデータがそのアドレスに書き込まれる。
なお、上記実施の形態ではバッファメモリをSDRAMで構成した場合について説明したが、他の形式のメモリを用いることもできる。また、上記実施の形態では外部記憶装置をHDDとしたが、光ディスク装置、光磁気ディスク装置、その他の外部記憶装置を使用することもできる。また、上記実施の形態では外部記憶装置が内蔵されている記録再生装置にこの発明を適用した場合について説明したが、外部記憶装置をSCSI等のインタフェースボードを介して外付けして使用する記録再生装置にもこの発明を適用することができる。また、上記実施の形態ではディジタルミキシングレコーダ(ハードディスクレコーダ)にこの発明を適用した場合について説明したが、ミキシング機能を具えていないディジタルレコーダ、その他各種のサンプルデータ再生装置にこの発明を適用することができる。
10…ハードディスクレコーダ(サンプルデータ再生装置)、64,66…SDRAM(バッファメモリ)、60…HDD(外部記憶装置)、100…トラックアドレスジェネレータ(バッファメモリ制御回路)118…トラックアドレスRAM(ジャンプアドレス設定回路、アドレスメモリ)、134…アドレス演算回路(読み出しアドレス演算回路)。