JP3815353B2 - マルチトラック再生装置、マルチトラック録音装置およびマルチトラック録音再生装置 - Google Patents
マルチトラック再生装置、マルチトラック録音装置およびマルチトラック録音再生装置 Download PDFInfo
- Publication number
- JP3815353B2 JP3815353B2 JP2002077045A JP2002077045A JP3815353B2 JP 3815353 B2 JP3815353 B2 JP 3815353B2 JP 2002077045 A JP2002077045 A JP 2002077045A JP 2002077045 A JP2002077045 A JP 2002077045A JP 3815353 B2 JP3815353 B2 JP 3815353B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform data
- buffer
- track
- data
- tracks
- 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
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、マルチトラックの再生や録音を行うことのできるマルチトラック再生装置、マルチトラック録音装置およびマルチトラック録音再生装置に関するものである。
【0002】
【従来の技術】
従来より、発音しようとするピッチに応じて波形メモリから読み出した波形データに基づいて楽音を生成するようにした波形メモリ音源が知られている。このような波形メモリ音源において、1チャンネルの波形データを波形メモリに書き込み可能とした発明が提案されている(特開平10−49170号参照)。
また、ハードディスク等の大容量の記憶装置にストリーム波形データ等の2トラックの楽音データを記録し、再生できるようにした楽音データ録音再生装置が提案されている。従来提案されている楽音データ録音再生装置の概略構成を図9に示す。図9に示す楽音データ録音再生装置においては、2トラックの波形データの録音再生が可能とされている。
【0003】
図9に示す楽音データ録音再生装置120において、外部回路122から供給された2トラックの波形データは、転送および録音/再生制御部131の制御の基で、例えばハードディスク(HD)からなる大容量メモリ121に録音されるようになる。この場合、入力された2トラックの波形データは、それぞれ2分されている録音バッファメモリ132a,132bに一次記憶されて大容量メモリ121に転送されて録音されるようになされている。録音バッファメモリ132a,132bは、それぞれ2分されてダブルバッファ構成とされている。すなわち、第1トラックの波形データが一次記憶される録音バッファメモリ132aは第1バッファRBUF1Aと第2バッファRBUF1Bとに分割されており、第2トラックの波形データが一次記憶される録音バッファメモリ132bも同様に第1バッファRBUF2Aと第2バッファRBUF2Bとに分割されている。
【0004】
第1トラックの波形データが録音される場合は、転送および録音/再生制御部131の制御の基で、録音バッファメモリ132aの第1バッファRBUF1Aに順次書き込まれていく。第1バッファRBUF1Aへの書き込みが終了すると、引き続いて第2バッファRBUF1Bに波形データが書き込まれていくが、この際に第1バッファRBUF1Aの波形データが大容量メモリ121へ転送される。そして、第2バッファRBUF1Bへの書き込みが終了すると、引き続いて既に波形データが転送されている第1バッファRBUF1Aに波形データが書き込まれる。この際に、第2バッファRBUF1Bの波形データが大容量メモリ121へ転送される。第2トラックの波形データの録音についても録音バッファメモリ132bを使用して同様に行われ、このような動作が繰り返し行われることにより、2トラックの波形データを大容量メモリ121に録音することができるようになる。
【0005】
このようにして録音された2トラックの波形データを再生する際には、ダブルバッファ構成とされた2トラック分の読出バッファ133a,133bと、この読出バッファ133a,133bから波形データが転送されるダブルバッファ構成とされた2トラック分の再生バッファ134a,134bとが使用される。そして、最終的に大容量メモリ121から読み出された波形データが再生音発生部135に供給されて、再生された楽音データがDAC136においてアナログ楽音信号に変換されてサウンドシステムから放音されるようになる。
【0006】
この場合、図10に示す動作タイミング図のように転送および録音/再生制御部131により制御されて再生が行われる。すなわち、図10に示すように、再生に当たって再生準備スタートがタイミングt0でスタートされると、大容量メモリ121から読出バッファ133aの第1バッファXBuf1Aに第1トラック(Tr.1)の波形データS10が書き込まれ、続いて大容量メモリ121から読出バッファ133aの第2バッファXBuf1Bに第1トラックの次の波形データS11が書き込まれる。そして、転送後のタイミングt2において読出バッファ133aの第1バッファXBuf1Aおよび第2バッファXBuf1Bに書き込まれた第1トラックの波形データS10,S11の所定量が、再生バッファ134aの第1バッファPBuf1Aおよび第2バッファPBuf1Bにそれぞれ転送される。ここで、第1のトラックについては、バッファXBuf1A,BのサイズとバッファPBuf1A,Bのサイズは同じになっている。
【0007】
このタイミングt2において、大容量メモリ121から読出バッファ133bの第1バッファXBuf2Aに第2トラック(Tr.2)の波形データS20が書き込まれる。そして、転送後のタイミングt3において読出バッファ133bの第1バッファXBuf2Aに書き込まれた第2トラックの波形データS20の所定量ずつが、再生バッファ134bの第1バッファPBuf2Aおよび第2バッファPBuf2Bにそれぞれ転送される。このタイミングt3において、書き込まれた波形データS10の全てが転送された読出バッファ133aの第1バッファXBuf1Aに大容量メモリ121から第1トラックの次の波形データS12が書き込まれ、続くタイミングt4において、大容量メモリ121から読出バッファ133bの第2バッファXBuf2Bに第2トラックの続く波形データS21が書き込まれる。これにより、再生の準備が完了する。ここで、第2のトラックについては、バッファXBuf1A,BのサイズがバッファPBuf1A,Bのサイズの4倍となっている。
【0008】
再生スタートされると、再生バッファ134a,134bにおける第1バッファPBuf1A,PBuf2Aから第1トラックおよび第2トラックの波形データが読み出されて再生音発生部135に供給され、再生音発生部135において再生音が再生されていく。この場合、例えば第1トラックの波形データは48kHzのサンプリング周波数とされ、第2トラックの波形データは36kHzのサンプリング周波数とされているものとする。このため、再生バッファ134bにおける第1バッファPBuf2Aからの読み出しがタイミングt5で終了し、続いて再生バッファ134bにおける第2バッファPBuf2Bから連続して次の第2トラックの波形データが読み出される。同時に、再生バッファ134bにおける第1バッファPBuf2Aへのデータ転送要求が発生し、タイミングt5において次の波形データが読出バッファ133bの第1バッファXBuf2Aから再生バッファ134bにおける第1バッファPBuf2Aに転送される。
【0009】
また、タイミングt6において再生バッファ134aにおける第1バッファPBuf1Aからの読み出しが終了し、続いて再生バッファ134aにおける第2バッファPBuf1Bから連続して次の第1トラックの波形データが読み出される。同時に、再生バッファ134aにおける第1バッファPBuf1Aへのデータ転送要求が発生し、タイミングt6において次の波形データが読出バッファ133aの第2バッファXBuf1Bから再生バッファ134aにおける第1バッファPBuf1Aに転送される。この際に、読出バッファ133aにおける第2バッファXBuf1Bの波形データが全て転送されて第2バッファXBuf1Bへのデータ書込要求が発生する。そこで、続く第1トラックの波形データS13が大容量メモリ121から読み出されて、読出バッファ133aにおける第2バッファXBuf1Bに書き込まれるようになる。
【0010】
次いで、タイミングt7になると再生バッファ134bにおける第2バッファPBuf2Bからの読み出しが終了し、続いて再生バッファ134bにおける第1バッファPBuf2Aから連続して次の第2トラックの波形データが読み出される。同時に、再生バッファ134bおける第2バッファPBuf2Bへのデータ転送要求が発生し、タイミングt7において次の波形データが読出バッファ133bの第1バッファXBuf2Aから再生バッファ134bにおける第2バッファPBuf2Bに転送される。この際に、読出バッファ133bにおける第1バッファXBuf2Aの波形データ(バッファPBuf2A,PBuf2Bの4つ分に相当)が全て転送され第1バッファXBuf2Aへのデータ書込要求が発生する。そこで、この第1バッファXBuf2Aに続く第2トラックの波形データS22が大容量メモリ121から読み出されて書き込まれるようになる。このような動作が図10に示すように繰り返し行われて、大容量メモリ121から読み出された波形データが再生音発生部135に供給されて、再生された楽音データがDAC136においてアナログ楽音信号に変換されてサウンドシステムから放音されるようになる。
【0011】
ところで、このような楽音データ録音再生装置120において再生されるトラックの内の一方のトラックが途中から再生される場合もある。この場合の、動作タイミング図を図11に示す。図11に示すタイミングは、第2トラックが再生中に第1トラックが再生スタートされる場合を示している。
第2トラックは既に再生されている。第1トラックが再生スタートされる前に第1トラックにおける再生準備スタートが開始され、タイミングt25近傍において大容量メモリ121から読出バッファ133aの第1バッファXBuf1Aに第1トラックの波形データS10が書き込まれる。この時、再生中の第2トラックにおいて読出バッファ133bの第1バッファXBuf2Aへのデータ書込要求が発生し、第1バッファXBuf2Aに大容量メモリ121から読み出された第2トラックの次の波形データS21が書き込まれる。続いて、大容量メモリ121から読出バッファ133aの第2バッファXBuf1Bに第1トラックの次の波形データS11が書き込まれる。そして、タイミングt28において読出バッファ133aの第1バッファXBuf1Aおよび第2バッファXBuf1Bに書き込まれた第1トラックの波形データS10,S11の所定量が、再生バッファ134aの第1バッファPBuf1Aおよび第2バッファPBuf1Bにそれぞれ転送される。
【0012】
このようにして再生スタートの準備が完了し、タイミングt31のタイミングにて第1トラックの再生がスタートされる。再生スタートされると、再生バッファ134aにおける第1バッファPBuf1Aから第1トラックの波形データが読み出されて再生音発生部135に供給され、再生音発生部135において再生音が再生されていくようになる。そして、タイミングt32で再生バッファ134bにおける第2バッファPBuf2Bからの読み出しが終了すると、続いて再生バッファ134bにおける第1バッファPBuf2Aから連続して次の第2トラックの波形データが読み出される。同時に、再生バッファ134bにおける第2バッファPBuf2Bへのデータ転送要求が発生し、タイミングt32において次の波形データが読出バッファ133bの第2バッファXBuf2Bから再生バッファ134bにおける第2バッファPBuf2Bに転送される。
【0013】
この転送により、空いた第2バッファXBuf2Bへのデータ書込要求が発生して、続く第2トラックの波形データS22が大容量メモリ121から読み出されて、読出バッファ133bにおける第2バッファXBuf2Bに書き込まれるようになる。さらに、タイミングt33において再生バッファ134aにおける第1バッファPBuf1Aからの読み出しが終了し、続いて再生バッファ134aにおける第2バッファPBuf1Bから連続して次の第1トラックの波形データが読み出される。同時に、再生バッファ134aにおける第1バッファPBuf1Aへのデータ転送要求が発生し、タイミングt33において次の波形データが読出バッファ133aの第2バッファXBuf1Bから再生バッファ134aにおける第1バッファPBuf1Aに転送される。この際に、読出バッファ133aにおける第2バッファXBuf1Bの波形データが全て転送されて第2バッファXBuf1Bへのデータ書込要求が発生する。そこで、続く第1トラックの波形データS13が大容量メモリ121から読み出されて、読出バッファ133aにおける第2バッファXBuf1Bに書き込まれるようになる。このような動作が図11に示すように繰り返し行われて、大容量メモリ121から読み出された波形データが再生音発生部135に供給されて、再生された楽音データがDAC136においてアナログ楽音信号に変換されてサウンドシステムから放音されるようになる。
【0014】
【発明が解決しようとする課題】
従来提案されている楽音データ録音再生装置120においては、2トラックの波形データの録音/再生を行うことができる。しかしながら、2つのトラックにおいて再生する際に、各トラックにおけるデータ書込要求やデータ転送要求の割込要求タイミングは、バッファメモリのサイズや読出レートにより応じたタイミングとなっていた。すなわち、図10に示すようにトラック間における割込要求のタイミングが非同期となり、あるタイミングにおいて割込要求タイミングが集中するおそれが生じる。また、再生中に他のトラックの再生がスタートされる場合は、既に再生中のトラックとの同期をとる手段がなく、この場合においても、あるタイミングにおいて割込要求タイミングが集中するおそれが生じるようになる。このように割込要求の頻度が高く且つ変動的になると、割込要求を受けて動作する制御手段の動作が不安定になるおそれがあるという問題点があった。また、従来はトラック毎の割込要求であるので、単位時間あたりの割込要求の回数が多くなってしまう。すると、制御手段では1回の割込処理ごとにどうしても所定量のオーバーヘッドが生じてしまうことから、全体として処理速度が遅くなったり動作が不安定になるという問題があった。
【0015】
そこで本発明は、マルチトラックの録音や再生を行っても制御手段への割込頻度が高く変動的にならないようにしたマルチトラック再生装置、マルチトラック録音装置およびマルチトラック録音再生装置を提供することを目的としている。
【0016】
【課題を解決するための手段】
上記目的を達成するため、本発明の第1のマルチトラック再生装置は、波形データが記憶される読み書き可能な波形メモリと、該波形メモリから波形データを読み出して楽音を再生する再生手段と、該再生手段における所定の周期毎における楽音再生用の波形データの読出処理と重複しない時分割化されたタイミングにおいて、制御手段の制御の基で、前記波形メモリへのアクセスを行うことができるアクセス手段とを備え、録音された複数トラックの波形データを前記波形メモリ上にトラック毎に形成された複数のバッファに、前記アクセス手段がそれぞれ所定量ずつ波形データを転送し、前記再生手段が、前記複数のバッファから複数トラックの波形データを読み出して複数トラックの楽音を再生するようにされており、前記複数の各バッファは、バッファに記憶された波形データの再生時間が相互に同じになるようなバッファサイズとされて、前記アクセス手段は、該複数バッファから各々所定量の波形データが読み出され再生されたタイミングで、複数トラックの既に転送された波形データに続く所定量の波形データを複数トラックに対応する前記複数のバッファへ一括してデータ転送するようにしている。
【0017】
また、上記本発明の第1のマルチトラック再生装置において、前記再生手段は基準サンプリング周期毎に、前記複数のバッファから複数トラックの波形データを読み出して複数トラックの楽音を再生するようにされており、該基準サンプリング周期をカウントするサンプリングカウンタの計数値が所定値となった際に、前記複数のバッファへのデータ転送要求が発行され、該要求により、前記アクセス手段が前記複数バッファの各々への所定量の波形データの転送を行うようにしてもよい。
さらに、上記本発明の第1のマルチトラック再生装置において、前記複数の各バッファは、バッファに記憶された波形データの再生時間が相互に同じになるように、記憶される波形データのサンプリング周波数に応じたバッファサイズとされていてもよい。
さらにまた、上記本発明の第1のマルチトラック再生装置において、前記複数の各バッファは、バッファに記憶された波形データの再生時間が相互に同じになるように、記憶される波形データのサンプルあたりのビット数に応じたバッファサイズとされていてもよい。
【0018】
次に、上記目的を達成することのできる本発明の第2のマルチトラック再生装置は、トラック毎に波形データの再生開始タイミングと再生終了タイミングとが独立して制御可能な複数トラックの波形データを再生するマルチトラック再生装置であって、前記複数トラックの各々に対応している複数のバッファと、前記複数トラックにおいて再生される波形データを記憶する記憶手段と、サンプリング周期毎に、複数のトラックに対応している前記複数のバッファから、それぞれ所定サンプル数の波形データを1サンプルずつ読み出し、読み出した波形データに基づいて前記複数トラックの楽音を再生する再生手段と、該再生手段により所定時間分あるいは所定サンプル数の波形データが再生されたことを検出し、データ要求を発行する要求手段と、該要求手段が発行するデータ要求に応じて、複数のトラックのそれぞれについて、既にバッファに転送した波形データに続く所定量の波形データを、前記記憶手段から対応する前記バッファに順次転送する転送手段とを備えている。
【0019】
次に、上記目的を達成することのできる本発明の第3のマルチトラック再生装置は、トラック毎に波形データの再生開始タイミングと再生終了タイミングとが独立して制御可能な複数トラックの波形データを再生するマルチトラック再生装置であって、前記複数トラックの各々に対応している複数のバッファと、前記複数トラックにおいて再生される波形データを記憶する記憶手段と、サンプリング周期毎に、複数のトラックに対応している前記複数のバッファから、それぞれ所定サンプル数の波形データを1サンプルずつ読み出し、読み出した波形データに基づいて前記複数トラックの楽音を再生する再生手段と、該再生手段により所定時間分あるいは所定サンプル数の波形データが再生されたことを検出し、データ要求を発行する要求手段と、該要求手段が発行するデータ要求に応じて、複数のトラックのそれぞれについて、既にバッファに転送した波形データに続く所定量の波形データを、前記記憶手段から対応するバッファに順次転送する転送手段とを備えており、前記データ要求の発行時、前記転送手段は、前記複数トラックのうち対応するタイミングで波形データを再生しないトラックについては波形データの転送を省略するようにしている。
【0020】
また、上記本発明の第2および第3のマルチトラック再生装置において、前記複数トラックの再生開始時に、前記複数トラックのうちの有意な波形データの再生が他のトラックに遅れて開始されるトラックについても、前記再生手段による再生を同時に開始するとともに、前記転送手段は当該トラックの該有意な波形データの転送を、前記再生開始タイミングの直前のデータ要求より前のデータ要求に応じて開始するようにしてもよい。
【0021】
次に、上記目的を達成することのできる本発明のマルチトラック録音装置は、複数トラックの波形データを録音するマルチトラック録音装置であって、前記複数トラックの各々に対応している複数のバッファと、波形データが録音される記憶手段と、複数の波形データを入力する入力手段と、サンプリング周期毎に、複数のトラックに対応している前記複数のバッファに、前記入力手段から入力される複数の波形データを、それぞれ1サンプルずつ書き込む書込手段と、該書込手段により所定時間分あるいは所定サンプル数の波形データが書き込まれたことを検出し、データ要求を発行する要求手段と、該要求手段が発行するデータ要求に応じて、複数のトラックの各トラックに対応している前記複数のバッファから、当該バッファに記憶されている波形データを順次読み出して、前記記憶手段に転送書込する転送手段とを備えている。
【0022】
上記目的を達成することのできる本発明の第1のマルチトラック録音再生装置は、波形データが記憶される読み書き可能な波形メモリと、該波形メモリから波形データを読み出して楽音を再生すると共に、複数トラックの波形データを録音可能な録音再生手段と、該録音再生手段における所定の周期毎における楽音再生用の波形データの読出処理及び楽音録音用の波形データの書込処理と重複しない時分割化されたタイミングにおいて、制御手段の制御の基で、前記波形メモリへのアクセスを行うことができるアクセス手段とを備え、前記録音再生手段は波形データを録音する際に、前記複数トラックの波形データを前記波形メモリ上に形成された複数のバッファに基準サンプリング周期に従ってそれぞれ書き込み、該複数のバッファに所定量の波形データが書き込まれた際に、前記アクセス手段が前記複数のバッファに書き込まれた所定量の波形データを録音用記憶手段に転送するようにされており、前記複数の各バッファは、波形データのバッファへの録音時間が相互に同じになるようなバッファサイズとされて、前記複数のバッファからの転送処理が一括して行われるようにしている。
【0023】
また、上記本発明の第1のマルチトラック録音再生装置において、前記基準サンプリング周期をカウントするサンプリングカウンタの計数値が所定値となった際に、前記複数のバッファからのデータ転送要求が発行され、該要求により、前記アクセス手段が前記複数のバッファの各々からの所定量の波形データの転送を行うようにしてもよい。
【0024】
次に、上記目的を達成することのできる本発明の第2のマルチトラック録音再生装置は、少なくとも1つの録音トラックの波形データを録音すると同時に、複数の再生トラックの波形データを再生することができるマルチトラック録音再生装置であって、前記複数トラックの各々に対応している複数のバッファと、波形データを読み出しおよび書き込みすることができる記憶手段と、波形データを入力する入力手段と、サンプリング周期毎に、録音用とされたトラックに対応している前記バッファに、前記入力手段から入力される複数の波形データを、1サンプルずつ書き込むとともに、複数の再生用とされたトラックに対応している前記バッファから所定サンプル数の波形データを1サンプルずつ読み出し、読み出した波形データに基づいて前記複数再生トラックの楽音を再生する書込読出手段と、該書込読出手段により所定時間分あるいは所定サンプル数の波形データが処理されたことを検出し、データ要求を発行する要求手段と、該要求手段が発行するデータ要求に応じて、録音用とされたトラックに対応している前記バッファから、当該バッファに記憶されている波形データを順次読み出して前記記憶手段に転送書込するとともに、複数の再生用とされたトラックのそれぞれについて、既にバッファに転送した波形データに続く所定量の波形データを、前記記憶手段から対応する前記バッファに順次転送する転送手段とを備えている。
【0025】
このような本発明によれば、波形データが順次転送される複数のバッファから複数トラックの波形データを読み出して複数トラックの楽音を再生する際に、複数の各バッファは、転送される波形データのサンプリング周波数とサンプルあたりのビット数に対応するバッファサイズとされて、複数のバッファへの転送処理が一括して行うことができるようにしている。これにより、各トラック毎の割込要求をそれぞれ送出する必要をなくすことができ、制御手段への割込頻度を低減することができる。さらに、割込要求の送出タイミングが所定周期となることから、割込要求の発生タイミングが変動することを防止することができる。従って、制御手段の動作を安定化することができる。また、一括して転送処理を行えることから、複数のバッファの書込/読出の管理を行いやすくなる。
さらに、データ転送要求の発生タイミングが複数のバッファにおいて同期していることから、基準サンプリング周期をカウントするサンプリングカウンタの計数値が所定値となった際に、複数のバッファへのデータ転送の割込要求を送出することができるようになり、それぞれのバッファにデータ転送要求の検出および割込要求を送出するハードを設ける必要がなくすことができるようになる。
【0026】
【発明の実施の形態】
本発明にかかるマルチトラック録音再生装置の機能を備えている本発明の実施の形態にかかる楽音生成装置の構成例を示すブロック図を図1に示す。
図1に示す楽音生成装置1おいて、CPU10は各種プログラムを実行することにより楽音生成装置1における楽音再生や録音の動作を制御する中央処理装置(Central Processing Unit)であり、タイマ11は動作時の経過時間を示したり、特定の間隔でタイマ割込を発生するタイマであり、自動演奏の時間管理等に使用される。ROM12は、CPU10が実行する録音処理や楽音生成処理のプログラムや、各種データが格納されているROM(Read Only Memory)である。RAM13は楽音生成装置1におけるシステムメモリであり、CPU10のワークエリア等が設定されるRAM(Random Access Memory)である。
【0027】
また、ディスク14はハードディスク、フレキシブルディスク、リムーバブルディスク等の記録媒体であり、波形メモリ21にロードする波形データや録音されたストリーム波形データなどが格納されている。ドライブ15はセットされたディスク14の読出/書込を行うディスクドライブである。MIDIインタフェース16は、楽音生成装置1内部で作成したMIDIメッセージを外部へ送出したり、外部からのMIDIメッセージを受信するMIDIインターフェースである。ネットワークインタフェース17は、LAN(Local Area Network )やインターネット、電話回線等の通信ネットワークを介してサーバコンピュータに接続するためのネットワークインターフェースである。パネルスイッチ(パネルSW)18は、楽音生成装置1のパネルに設けられている各種スイッチであり、これを操作することにより楽音生成装置1に各種指示を与えることができる。パネル表示器19は、楽音生成時に各種情報が表示されるディスプレイである。
【0028】
音源部20は、CPU10からの発音開始指示に基づいて、波形メモリ21から波形データ(波形サンプル)を読み出し、補間、エンベロープ付与、チャンネル累算(ミキシング)、および効果(エフェクト)付与などの処理を行って、楽音波形データとして出力している。音源部20から出力された楽音波形データは、DAC23によりアナログ信号に変換され、サウンドシステム24により放音される。波形メモリ21は、SDRAM等の高速のメモリにより構成されており、所定のレートでサンプリングされた多数の波形サンプルデータが格納されている。波形サンプルは、例えば16ビットあるいは32ビットで表され、アドレスは波形サンプル単位に付けられている。すなわち、1アクセスで1つの波形サンプルを読み出すようにしている。波形メモリ21には、楽音の生成に先立ってディスク14等から読み出された波形データが格納されている。
【0029】
外部回路22は、外部から音声や楽音等のオーディオデータを取り込むためのアナログ・ディジタル変換器(ADC)、効果(エフェクト)付与処理を行なう外部DSP、あるいはディジタルフィルタなどで構成されている。音源部20から外部回路22へ供給された波形データには、外部回路22においてエフェクト付与処理やディジタルフィルタ処理が施されて、音源部20へ戻される。音源部20においては、戻された波形データが他のチャンネルの波形データにミキシングされて出力されるようになる。なお、外部回路22は楽音生成装置1に内蔵してもよいし、楽音生成装置1の外部に設けてもよい。ディジタル・アナログ変換器(DAC)23は、音源部20から最終的に出力されるステレオの楽音データをディジタルの楽音信号に変換してサウンドシステムから放音している。また、バス25はアドレスバス、コントロールバス、データバスの各バスを備える前記した各部を相互接続しているCPUバスである。
【0030】
次に、本発明の実施の形態における楽音生成装置1の音源部20の詳細構成を図2に示し、図3に音源部20における動作タイミングを示す。この音源部20において発音チャンネル数が128チャンネルとされている場合は、音源部20は時分割128チャンネルで動作する。このため、音源部20内の各部には、時分割を行なうための基準信号となる制御クロック信号やチャンネルカウント値などの制御信号が供給されている。
図2において、波形メモリ21は読み書き可能な、例えばSDRAM(Synchronous DRAM)により構成されており、音源部20において楽音を生成する際には予めディスク14等から読み出した複数の比較的短期間のサンプリング波形が記憶されている。音源部20では、この波形メモリ21からチャンネル毎に時分割で読み出された波形データに基づいて各チャンネルの楽音を生成している。
【0031】
楽音を生成する際に、楽音生成装置1におけるCPU10は音源制御レジスタ30に各種音源パラメータ情報を供給して、発音の開始指示を出す。この音源制御レジスタ30にはCPU10からアドレスバス(AD4)を介してアドレスが供給されると共に、データバス(DATA4)を介して各種データの授受が行われる。図2においては、データバス(DATA4)が複数本示されているが、説明の便宜上複数本として示しているだけであり、実際には1本のバスとされている。上記した音源パラメータ情報はCPU10からデータバス(DATA4)を介して音源制御レジスタ30に供給され、音源制御レジスタ30においてCPU10からアドレスバス(AD4)を介して与えられるレジスタアドレスで示されるレジスタに格納される。
【0032】
発音開始指示と共に音源制御レジスタ30に供給される音源パラメータ情報は、波形メモリ読み出し速度(楽音ピッチに対応)、波形メモリ読み出し区間、エンベロープパラメータ、ミキサ33に対する設定情報、およびエフェクト用係数等とされる。この内の波形メモリ読み出し区間パラメータは、読み出す波形データの開始アドレスASおよびそのデータ長LPAとされる。この場合、アドレスバス(AD4)上のレジスタアドレスで示される音源制御レジスタ30内の特定のレジスタに、データバス(DATA4)を介して供給される音源パラメータが格納される。これにより、複数のそれぞれのレジスタに対応する音源パラメータがそれぞれ格納されていくようになる。
【0033】
音源制御レジスタ30および読出書込回路31は、処理A、処理B、取り込み処理、および補間処理、Xアクセス処理の5つの処理を行なう。各処理の概要および処理タイミングは次の通りである。処理Aは、音源制御レジスタ30から供給される波形データの開始アドレスASおよびそのデータ長LPAやピッチPITCH等の情報に基づいて、楽音生成のために時分割チャンネルタイミングにしたがって各発音チャンネルの波形データ読出アドレスを作成する処理である。各チャンネルのアドレスは、読出書込回路31内の図示しないレジスタに保持される。発音チャンネル数が128チャンネルとされている場合は、処理AはDAC23における1DAC周期内において128チャンネル分の波形データ読出アドレスを作成する。なお、128チャンネルのうちの任意のチャンネルは波形メモリ21に波形データを書き込むための書込チャンネルとして動作可能であり、書込チャンネルとして動作しているチャンネルについては、処理Aにおいて波形データ書込アドレスが生成される。
【0034】
この場合、図3に示すように1DAC周期は前半と後半とに2分割されて、前半の期間では1ch〜64chの波形データ読出アドレスが作成され(処理A前半ch)、後半の期間では65ch〜128chの波形データ読出アドレスが作成される(処理A後半ch)。処理Aでは、全チャンネルについて読出アドレスの生成を行ない、かつ、各チャンネルの読出アドレスの整数部の進行量に応じて波形データを読み出すべきチャンネルを決定し、決定されたチャンネルのチャンネル番号とそのチャンネルでの読み出すべきサンプル数(前記進行量に対応)を制御RAMに格納する。なお、補間処理における4点補間では連続する4サンプルの波形データが必要になるが、そのうちの過去に波形メモリ21から読み出された波形データは波形バッファに既に保存されている。なお、1ch〜128chの各チャンネルの処理を行うタイムスロットは1DAC周期を等分割して与えられる。すなわち、処理Aにおける各チャネルに割り当てられるタイムスロットは1DAC周期をTとするとT/128とされ、このタイムスロットにおいて図示するようにチャンネル順に処理される。
【0035】
処理Bは、読出書込回路31において処理Aよりほぼ1/2DAC周期だけ遅れて実行される処理であり、後述するタイミングで処理Aが終了したチャンネルについて行われる。処理Bは、制御RAMに読み出すべきチャンネルとして記憶されているチャンネルについて、当該チャンネルの読出アドレスに基づいて制御RAMに記憶されているアクセス回数だけ波形メモリをアクセスし、該回数分の波形サンプルを読み出している。この場合、図3に示すように1DAC周期の前半の期間では1ch〜64chについての波形メモリ21からの読み出しが実行され(処理B前半ch)、後半の期間では65ch〜128chについての波形メモリ21からの読み出しが実行される(処理B後半ch)。この場合、処理Aにおいて、波形データを読み出すべきチャンネルとしてチャンネル番号が制御RAMに格納されなかったチャンネルについては、処理Bの処理は行われない。処理Bが行われるタイムスロットは処理Aの1タイムスロットの1/4とされ、1DAC周期をTとするとT/512とされる。1DAC周期ごとに512回ということは、音源の1チャンネル当たり4サンプルの波形データを読み出すことができることを意味している。
【0036】
そして、処理Aにおいて記憶されたアクセス回数が複数であったチャンネル(すなわち、読出アドレスの整数部が複数進行したチャンネル)については、それぞれの波形データ読出アドレスに対する処理Bが該アクセス回数に対応したタイムスロット数ずつ順次実行されるようになる。例えば、図3の処理Bに示すように1chについては処理Bが1タイムスロットで行われ、2chについては処理Bは行われず、3chについては処理Bが3タイムスロットで行われ、4chについては処理Bは行われず、5chについては処理Bが1タイムスロットで行われ、6chについては処理Bは行われず、7chについては処理Bが2タイムスロットで行われ、発音されていない8ch〜64chについては処理Bは行われないようになる。なお、書込チャンネルとして設定されたチャンネルについては、処理Bにおいて、波形データ書込アドレスが生成される。この書込チャンネルのアクセス回数は、それぞれ、常に1回とされる。
【0037】
このように、処理Bが行われないチャンネルがあることから処理Bの前半期間においては7chの処理が終了してから後半期間が始まるまでのタイムスロットが空くようになると共に、後半期間においても後には次の前半期間が始まるまでにタイムスロットに空きが生じるようになる。そこで、この空いたタイムスロットを使用してXアクセス回路40によるXアクセス処理が行われるようになる。なお、処理Bにおいてタイムスロットが空くまでは読出書込回路31がセレクタ制御信号(CONT1)をセレクタ35に与えて、セレクタ35を読出書込回路31側へ切り換えている。これにより、読出書込回路31からアドレスバス(AD2)を介して波形データ読出アドレスを波形メモリ21へ供給することができるようになる。また、処理Bにおいてタイムスロットに空きが生じるようになると、読出書込回路31がセレクタ制御信号(CONT1)によりセレクタ35をXアクセス回路40側へ切り換える。さらに、読出書込回路31はセレクタ制御信号(CONT2)をXアクセス回路40へ与えて後述するXアクセス処理を実行できるようにする。
【0038】
また、取り込み処理は、読出書込回路31により実行される処理であり、処理Bにより波形メモリ21に供給された波形データ読出アドレスにしたがって読み出された波形データをデータバス(DATA1)を介して取り込み、各チャンネル別に内蔵する波形バッファに書き込む処理である。この波形バッファは、サンプル間補間用の波形データを記憶するバッファであり、各チャンネルごとに波形メモリ21から読み出された最新の波形データを4サンプル分記憶する。処理Bにおいて波形データ読出アドレスが波形メモリ21に供給されると、波形メモリ21から直ちに波形データが読み出されることから、取り込み処理は、図3に示すように処理Bからわずか遅れて開始されるようになる。この場合、1つの波形データ読出アドレスで1つの波形サンプルが読み出されることから、図3の取り込み処理に示すように1chについては波形データが1サンプル分取り込まれ、2chについては波形データは取り込まれず、3chについては波形データが3サンプル分取り込まれ、4chについては波形データは取り込まれず、5chについては波形データが1サンプル分取り込まれ、6chについては波形データは取り込まれず、7chについて波形データが2サンプル分取り込まれ、8ch〜64chについては波形データは取り込まれないようになる。なお、書込チャンネルとして設定されたチャンネルについては、この取り込み処理の代わりに、前記波形メモリ書込アドレスに対し、ミキサ33から1DAC周期ごとに1サンプルずつ供給される波形データを書き込む書込処理が行われる。
【0039】
このように、波形データが取り込まれないチャンネルがあることから取り込み処理の前半期間においては7chの処理が終了してから後半期間が始まるまでのタイムスロットが空くようになると共に、後半期間においても後には次の前半期間が始まるまでのタイムスロットに空きが生じるようになる。そこで、この空いたタイムスロットを後述するXアクセス処理を行うXアクセス回路40が波形メモリ21にアクセスする際のタイムスロットとして割り当てるようにする。なお、取り込み処理における1タイムスロットは処理Bの1タイムスロットと同様とされ、1DAC周期をTとするとT/512とされる。なお、取り込み処理においてタイムスロットが空くまでは読出書込回路31がセレクタ制御信号(CONT1)をセレクタ35に与えて、セレクタ35を読出書込回路31側へ切り換えている。これにより、波形メモリ21から読み出した波形データをデータバス(DATA1)、セレクタ35およびデータバス(DATA2)を介して読出書込回路31の波形バッファに取り込むことができるようになる。また、取り込み処理においてタイムスロットに空きが生じるようになると、読出書込回路31がセレクタ制御信号(CONT1)によりセレクタ35をXアクセス回路40側へ切り換える。さらに、読出書込回路31はセレクタ制御信号(CONT2)をXアクセス回路40へ与えて後述するXアクセス処理を実行できるようにする。
【0040】
補間処理は、読出書込回路31における図示しない補間回路により実行される処理であり、時分割チャンネルタイミングにしたがって、波形バッファから各チャンネルの必要とする波形サンプルを読み出し、2点補間や4点補間を行なった波形データを出力する処理である。この場合、波形バッファには取り込み処理により取り込まれた波形データが格納されていることから、補間処理は取り込み処理より若干遅れて開始されるようになる。補間された波形データは、読出書込回路31からEG付与回路32に供給される。この場合、図3に示すように1DAC周期の前半の期間では1ch〜64chの補間処理が行われ(補間前半ch)、後半の期間では65ch〜128chの補間処理が行われる(補間後半ch)。なお、1ch〜128chの各チャンネルの補間処理時間は1DAC周期を等分割して与えられる。すなわち、補間処理における各チャネルに割り当てられるタイムスロットは1DAC周期をTとするとT/128とされ、このタイムスロットにおいて図示するようにチャンネル順に処理される。
【0041】
Xアクセス処理は、音源制御レジスタ30内に設けられているXアクセス回路40の制御の基で実行される処理である。このXアクセス処理では、録音処理や再生処理における転送処理が行われるようになる。具体的には、前述した処理Bや取り込み処理において処理を行うタイムスロットが空いた際に、Xアクセス処理により、そのタイムスロットを使用してXアクセス回路40の制御の基で転送処理が行われる。例えば、外部回路22に入力されたオーディオデータをディジタル変換したストリーム波形データをハードディスク等の大容量の記憶容量を有するディスク14に録音することができる。この際には、ストリーム波形データを一時記憶するバッファメモリが波形メモリ21上に設けられるようになる。すなわち、波形メモリ21の一部によりバッファメモリが構成される。この場合、録音するストリーム波形データを複数トラックの複数のストリーム波形データとすることができ、トラックを構成するチャンネル数に対応するバッファメモリが波形メモリ21上に形成される。
【0042】
波形メモリ21上に形成されたバッファメモリの一構成例を図5に示す。この例では、チャンネル1(ch.1)ないしチャンネル6(ch.6)の6チャンネルに対応するバッファメモリが波形メモリ21上に構成されている。この場合の各バッファメモリのサイズは、記憶されるストリーム波形データのサンプリング周波数と1サンプルあたりのビット数に応じて、各バッファに記憶される波形データの再生時間が相互に同じ時間長になるように定められている。すなわち、サンプリング周波数が44.1kHzで16ビットのサンプルとされているストリーム波形データを一時記憶するチャンネル1,チャンネル3,チャンネル5,チャンネル6におけるバッファメモリのサイズは、図5に示すように全体で2kW(ワード)とされ、それぞれ1kWのバッファAとバッファBとに分割されてダブルバッファ構成とされている。また、サンプリング周波数が22.05kHzで16ビットのサンプルとされているストリーム波形データを一時記憶するチャンネル2におけるバッファメモリのサイズは、全体で1kW(ワード)とされそれぞれ0.5kWのバッファAとバッファBとに分割されてダブルバッファ構成とされている。さらに、サンプリング周波数が44.1kHzで32ビットのサンプルとされているストリーム波形データを一時記憶するチャンネル4におけるバッファメモリのサイズは、全体で4kW(ワード)とされそれぞれ2kWのバッファAとバッファBとに分割されてダブルバッファ構成とされている。
【0043】
このようなバッファメモリのサイズとすると、全体で2kW(ワード)、分割されて1kWとされているバッファAあるいはバッファBにおいて、44.1kHzのサンプリング周波数でストリーム波形データを読出/書込した際に要する時間は、1024Word×1/44.1≒23.2msecとなる。また、全体で1kW(ワード)とされ分割されて0.5kWとされているバッファAあるいはバッファBにおいて、22.05kHzのサンプリング周波数でストリーム波形データを読出/書込した際に要する時間は、512Word×1/22.05≒23.2msecとなる。さらに、全体で4kW(ワード)とされ分割されて2kWとされているバッファAあるいはバッファBにおいて、44.1kHzのサンプリング周波数で32ビット(2ワード)のストリーム波形データを読出/書込した際に要する時間は、2048Word×1/(44.1×2)≒23.2msecとなる。このように、チャンネル1ないしチャンネル6において各バッファメモリに記憶された波形データを再生する際の再生時間が相互に等しくなると共に、波形データを各バッファメモリに録音する際の録音時間が相互に等しくなるサイズとされている。
【0044】
例えば、第1トラックがサンプリング周波数が44.1kHzで16ビットのサンプルのチャンネル1からなり、第2トラックがサンプリング周波数が22.05kHzで16ビットのサンプルのチャンネル2からなり、第1トラックと第2トラックとのストリーム波形データを録音する場合は、使用していない2つの発音チャンネルを録音用に転用するよう選択する。転用できる発音チャンネルは、例えば最大128チャンネルとされている場合に最後の16チャンネルとされている。ここで、第1トラックに第127チャンネルを第2トラックに第128チャンネルを選択して割り当てたとする。すると、処理Aの後半の期間における第127チャンネルおよび第128チャンネルのタイムスロットにおいて、第1トラックおよび第2トラックにおけるストリーム波形データを書き込む波形メモリ21上のバッファメモリのアドレスが、それぞれ読出書込回路31において作成される。このアドレスは、サンプリング周波数に応じてDAC周期毎にインクリメントされていく。また、第1トラックにおけるバッファメモリはそれぞれ1024ワードサイズの第1バッファメモリBuf1Aと第2バッファメモリBuf1Bからなり、第2トラックにおけるバッファメモリはそれぞれ512ワードサイズの第1バッファメモリBuf2Aと第2バッファメモリBuf2Bからなるものとする。そして、処理Bの後半期間における第127チャンネルおよび第128チャンネルのタイムスロットにおいて、絶対アドレスに変換されたアドレスがセレクタ35を介して波形メモリ21へ供給され、第1バッファメモリBuf1Aと第2バッファメモリBuf2Aとの先頭に、第1トラックおよび第2トラックのストリーム波形データが1サンプルずつ書き込まれる。
【0045】
次のDACサイクルでは、処理Bの後半期間における第127チャンネルおよび第128チャンネルのタイムスロットにおいて、第1バッファメモリBuf1Aに、第1トラックのストリーム波形データが1サンプル書き込まれるが、第2トラックのストリーム波形データは22.05kHzのサンプリング周波数とされているためアドレスがインクリメントされず第1バッファメモリBuf2Aに波形サンプルが書き込まれないことと等価となる。このように、第1トラックのストリーム波形データは1DAC毎に1サンプル書き込まれ、第2トラックのストリーム波形データは2DAC毎に1サンプル書き込まれることになる。すると、第1バッファメモリBuf1Aに第1トラックのストリーム波形データが1024サンプル書き込まれてFull状態となりデータ転送の割込要求がCPU10に送出される時には、バッファメモリBuf2Aに第2トラックのストリーム波形データが512サンプル書き込まれてFull状態となっており、データ転送の割込要求が送出されるタイミングとなっている。そこで、この際にデータ転送の割込要求を送出し、これを受けたCPU10が、第1バッファメモリBuf1Aおよび第1バッファメモリBuf2Aに書き込まれた第1トラックおよび第2トラックのストリーム波形データを、一括処理により順次ディスク14へ転送するようにする。これにより、複数トラックの録音をする際においても割込要求をトラック毎に送出する必要がないので、割込要求回数を低減することができる。
【0046】
なお、1DACサイクルおきにインクリメントするアドレスを作成する場合に、DACサイクル毎にインクリメントするアドレスカウンタのカウント値を1ビットシフトダウンしたカウント値を用いることができる。また、上述したようにデータ転送の割込要求は第1トラックおよび第2トラックにおいて同一のタイミングで所定周期毎に発生するので、いずれか一つのアドレスカウンタのカウント値を見ることにより一つの割込要求を送出すればよい。あるいは、基準とされる2048サンプル(1DACサイクルで1サンプル)をカウントするサンプルカウンタが、その半分までカウントした際およびカウントアップした際にデータ転送の割込要求を送出するようにしても良い。
【0047】
ところで、ストリーム波形データのバッファメモリからの転送は、Xアクセス処理により行われる。Xアクセス処理に先立ってCPU10は、まず、第1バッファメモリBuf1Aの先頭アドレスをXAレジスタ42に設定し、Xアクセス回路40に対し転送処理の開始を指示する。そして、タイムスロットが空いてXアクセス処理が実行可能なタイミングになると、読出書込回路31から制御信号(CONT2)がXアクセス回路40に供給されるようになる。さらに、セレクタ35が制御信号(CONT1)によりXアクセス回路40側に切り換えられて、第1バッファメモリBuf1Aに書き込まれた第1トラックのストリーム波形データがデータバス(DATA3)を介してFIFO41に順次読み込まれる。ここで、1DAC周期の空きタイムスロットで転送できるデータ量は転送するデータ量及びバッファメモリのサイズと比べて少ないので、上記読み込みは複数のDAC周期にわたり継続的に行われる。そして、FIFO41に所定量の波形データが書き込まれたことがCPU10に通知されると、CPU10はFIFO41からストリーム波形データを読み出してRAM13に書き込む。ここで、FIFO41のサイズは、通常、転送するデータ量より小さいので、以上の波形メモリ21に形成されている第1バッファメモリBuf1AからFIFO41への読み込み、および、FIFO41からRAM13への転送も複数回繰り返して実行されることにより、第1バッファメモリBuf1Aに記憶された第1トラックのストリーム波形データ(1024サンプル)が全てRAM13へ転送される。
【0048】
続いて、CPU10は、Xアクセス回路40の転送処理を一旦停止し、第2バッファメモリBuf2Aの先頭アドレスをXAレジスタ42に設定した後、Xアクセス回路40に対し転送処理の開始を指示する。そして、第1トラックの場合と同様にして、第2バッファメモリBuf2Aに記憶された第2トラックのストリーム波形データ(512サンプル)が全て波形メモリ21に形成されている第2バッファメモリBuf2AからRAM13へ転送される。各トラックについて、RAM13にストリーム波形データが、ディスク14の記憶単位(1クラスタ、例えば32kバイト)以上蓄積されたとき、該記憶単位分のストリーム波形データが、ディスク14へ転送書込される。なお、Xアクセス処理により転送する波形データの量がFIFO41のサイズより小さい場合には、CPU10によるFIFO41からRAM13への転送処理が1回で終了する。
以上に説明したように、本発明にかかる楽音生成装置1では複数トラックの録音をする際においても、割込要求をトラック毎に送出しないので、多数の割込によりCPU10の動作が遅くなることを防止することができる。なお、波形データのFIFO41からRAM13への転送を、CPU10自身が行わず、CPU10により制御された図示しないDMAコントローラが行うようにしてもよい。
【0049】
ところで、第1バッファメモリBuf1Aおよび第1バッファメモリBuf2Aへの書込が終了すると、続くサンプルは、第2バッファメモリBuf1Bおよび第2バッファメモリBuf2Bに書き込まれるようになる。そして、第2バッファメモリBuf1Bおよび第2バッファメモリBuf2Bへの書込が終了すると、続くサンプルは、転送が終了した第1バッファメモリBuf1Aおよび第1バッファメモリBuf2Aに書き込まれるようになると共に、データ転送の割込要求の発生に応じてXアクセス処理による第2バッファメモリBuf1Bおよび第2バッファメモリBuf2Bに書き込まれているストリーム波形データの転送が開始されるようになる。このような動作を繰り返し行うことにより、エンドレス録音をディスク14に対して行うことができるようになる。
【0050】
なお、XAレジスタ42には、1トラックに対応するバッファメモリの先頭アドレスを収納することができる。波形メモリ21上に複数のバッファメモリが形成されて複数トラックの同時録音を行う場合も、上述した2トラック録音の例のように、XAレジスタ42に複数バッファの先頭アドレスを順番に設定して、各バッファごとにストリーム波形データをRAM13に転送するようにすればよい。また、1トラックのストリーム波形データがステレオとされている場合には、ステレオ用に形成されているバッファメモリのそれぞれの先頭アドレスをXAレジスタ42に格納できるようにしてもよい。この場合の先頭アドレスは、CPU10から供給される。例えば、Xアクセス処理により波形メモリ21に形成されているバッファメモリからステレオのストリーム波形データをFIFO41に転送する場合は、XAレジスタ42に格納されたLチャンネル用のアドレスとRチャンネル用のアドレスとが時分割されて交互に波形メモリ21に供給される。これにより、波形メモリ21からステレオのLデータとRデータとが交互に読み出されるようになる。このLデータとRデータとが、FIFO41にインターリーブされて交互に書き込まれるようになる。CPU10はFIFO41に書き込まれたインターリーブされて格納されているLデータとRデータとを読み出してRAM13上にLデータとRデータとに分離して取り込めばよい。
エンドレス録音の動作と同様にしてエンドレス再生を行うこともできるが、この説明は後述する。
【0051】
次に、読出書込回路31から時分割で出力される各チャンネルの波形データは、EG付与回路32においてエンベロープが付与される。付与されるエンベロープは、CPU10から与えられて音源制御レジスタ30のレジスタに格納されている各チャンネルのエンベロープパラメータに基づいて決定される。エンベロープが付与された、例えば128チャンネル分の波形データはミキサ33に供給される。さらに、ミキサ33には信号処理回路(DSP)34から出力されるエフェクト処理等がされた、例えば8チャンネル分の波形データ、および外部回路22から入力された、あるいはフィルタ処理やエフェクト処理等がされた、例えば8チャンネル分の波形データが供給されている。ミキサ33は、これらの供給された各チャンネルの波形データにそれぞれ係数値を乗算してミキシングする。係数値はCPU10から音源制御レジスタ30に与えられて、内蔵するレジスタに格納されている。ミキサ33においてミキシングされた波形データは、8チャンネル分がDSP34に、8チャンネル分が外部回路22に、音源部20の最終的な出力となる2チャンネル(LおよびR出力)分がDAC23に、それぞれ出力されるようになされている。そして、DAC23によりアナログ信号に変換された楽音信号はサウンドシステム24から放音されるようになる。このように、ミキサ33はCPU10から指定されたチャンネルの波形データに指定された係数値を乗算してミキシングし、そのミキシング結果をCPU10の指定に基づく出力部へ指定されたチャンネルで送出するようにしている。
【0052】
なお、FIFO41にはポインタレジスタから書込ポインタと読出ポインタとが指示されており、読出ポインタが書込ポインタを追い越さないようにFIFO41は制御される。このような制御のため、FIFO制御レジスタ44に通知制御情報が格納されている。この通知制御情報は、FIFO41に書き込んだデータを転送する際の書き込んだデータ量の閾値情報や、FIFO41に転送したデータを読み出す際の残存するデータ量の閾値情報とされており、これらの閾値を超えた際にデータ読出/書込を実行するようにされている。また、FIFO制御レジスタ44にステレオ指示情報が供給されると、FIFO制御レジスタ44はLデータとRデータとをFIFO41に交互に書き込むインターリーブ処理を行って波形データを書き込むように制御する。さらに、FIFO制御レジスタ44にクリア情報が供給されると、FIFO制御レジスタ44はFIFO41をクリアする。さらにまた、FIFO制御レジスタ44にビット数情報が供給されると、FIFO制御レジスタ44は波形データを16ビットあるいは32ビットとして扱う。FIFO41は512ワード×16ビットとされているので、指示されたビット数に応じてFIFO41を制御するようにする。すなわち、ビット数情報により32ビットと指示されると、FIFO制御レジスタ44は1つの波形データを読出/書込する際に2ワードをFIFO41から読出/書込するように制御する。
【0053】
次に、図2に示す構成の音源部20におけるデータ流れ図を図4に、その動作タイミングを図7に示し、これらの図を参照しながら、録音処理および再生処理におけるデータの流れを説明する。
図4において、制御手段5はCPU10とシステムRAM(図1に示すRAM13)と図2には示していないDMA(Direct Memory Access)コントローラからなり、波形メモリ21に形成されているバッファメモリにおけるストリーム波形データの転送制御を行っている。書込手段52は読出書込回路31の一機能であり、楽音生成用のチャンネルの内の上述した特定のチャンネルを使用して波形メモリ21に形成されているバッファメモリへストリーム波形データを書き込む手段である。音源手段51は、内蔵する読出書込回路31により読み出された波形データにEG付与部32により音量の時間変化を付与することにより楽音データを生成する音源手段である。この音源手段51が、波形メモリ21に形成されているバッファメモリからループ再生することにより、後述するようにエンドレス再生することが可能となる。
【0054】
ミキサ手段53は、ミキサ33とDSP34の機能を備え時分割で生成された各チャンネルの楽音データをミキシングして最終的な楽音データを作成してDAC23に供給したり、外部回路22に波形データを供給してエフェクト処理された波形データを受け取ってミキシングしたりしている。外部回路22,DAC23,音源手段51,書込手段52,ミキサ手段53は、1DAC周期を基準とするサンプリング周波数Fsに同期して動作している。これに対して、波形メモリ21に形成されているバッファメモリとFIFO41間ではサンプリング周波数Fsに同期してデータの授受が行われるが、FIFO41と制御手段5間ではサンプリング周波数Fsとは直接関係しないCPU10の動作タイミングで読み出される。
【0055】
ここで、書込手段52およびXアクセス回路40を使用した複数トラックのエンドレス録音について説明する。例えば、トラック1ないしトラック5の録音を音源手段のチャンネル1ないしチャンネル5に割当てる。書込手段52により実行される書込処理では、前述した処理Aによりストリーム波形データを書き込む波形メモリ21上のバッファメモリのアドレスが作成され、処理Bにより作成されたアドレスに基づいて上記バッファメモリにストリーム波形データが書き込まれる。あるトラックにおいて、このストリーム波形データが44.1kHzのサンプリング周波数で16ビットのサンプルとされている場合は、サンプリング周波数Fs毎に1サンプルずつ上記バッファメモリに書き込まれていく。そして、サンプリング周波数44.1kHzのサンプルが1024ワード上記バッファメモリに書き込まれたタイミングt2において、図7に示すようにデータ転送の割込要求が発生する。また、サンプリング周波数が22.05kHzであれば、タイミングt2でのサンプル数は512ワードである。この割込要求を受けたCPU10は、Xアクセス処理を利用して、波形メモリ21上に設定された複数トラックのバッファメモリから、当該バッファメモリに記憶されたストリーム波形データを1トラック分ずつ順次RAM13に転送する。
【0056】
図示する例では、CPU10がXアクセス回路を用いた転送処理を実行することにより、チャンネル1の第2バッファBuf1B、チャンネル2の第2バッファBuf2B、チャンネル4の第2バッファBuf4B、チャンネル5の第2バッファBuf5Bに記憶されているストリーム波形データがXアクセス処理によりFIFO41へ順次転送されるとともに、CPU10によりFIFO41からシステムRAM(RAM13)へ順次転送される。ここで、Xアクセス処理による転送は前述した空きタイムスロットで行われ、CPU10による転送はCPU10の動作タイミングで行われる。すなわち、CPU10の動作タイミングでFIFO41からシステムRAM(RAM13)にストリーム波形データが転送され、システムRAMの何れかのトラックのバッファで、ディスク14の記憶単位に相当する量のストリーム波形データが蓄積されたら、当該トラックの該記憶単位分のストリーム波形データがディスク14へ転送記憶される。このFIFO41からシステムRAMへの転送、および、システムRAMからディスク14への転送は、CPU10により制御されたDMAコントローラが、DMAコントローラの動作タイミングで行うことができる。
【0057】
さらに、サンプリング周波数44.1kHzのサンプルが1024ワード(サンプリング周波数22.05kHzではサンプルが512ワード)上記バッファメモリに書き込まれた際に、データ転送の割込要求がタイミングt3において発生する。この割込要求を受けたCPU10は、Xアクセス処理により波形メモリ21に記憶されているストリーム波形データがXアクセス処理によりFIFO41へ順次転送するとともに、CPU10によりFIFO41からシステムRAM(RAM13)へ順次転送する。図示する例では、Xアクセス処理によりチャンネル1の第1バッファBuf1A、チャンネル2の第1バッファBuf2A、チャンネル4の第1バッファBuf4A、チャンネル5の第1バッファBuf5Aに記憶されているストリーム波形データがFIFO41へ順次転送されるとともに、CPU10によりFIFO41からシステムRAM(RAM13)へ順次転送される。ここで、Xアクセス処理による転送は前述した空きタイムスロットで行われ、CPU10による転送はCPU10の動作タイミングで行われる。すなわち、CPU10の動作タイミングでFIFO41からシステムRAM(RAM13)にストリーム波形データが転送され、システムRAMにおいてまとめられたストリーム波形データがディスク14へ転送されるようになる。このような動作が繰り返し行われることにより、エンドレス録音をディスク14に対して行うことができるようになる。なお、データ転送の割込要求は所定周期毎に発生している。
【0058】
次に、ディスク14に録音されているストリーム波形データをエンドレス再生する説明を行う。
図8に5トラック同時再生タイミングを示し、この図を参照して5トラック同時再生の説明を行う。ここでは、第1トラック(Tr.1)はチャンネル1からなり、第2トラック(Tr.2)はチャンネル2からなり、第3トラック(Tr.3)はチャンネル3からなり、第4トラック(Tr.4)はチャンネル4からなり、第5トラック(Tr.5)はチャンネル5からなっているものとする。そして、第1トラックおよび第2トラックはタイミングt0の再生スタート時から発音されるが、第3トラックは図示する範囲の時間以上経過したタイミングtn3で再生スタートされ、第4トラックはタイミングt34で再生スタートされ、第5トラックはタイミングt15で再生スタートされるものとされている。また、第2トラックはタイミングt42で再生が終了するものとされている。なお、図8に示される各トラックにおいて、上段の短いボックスは、CPU10の制御の基でストリーム波形データをXアクセス処理により波形メモリへ書き込んでいる期間および書込先のバッファ(AないしB)を示し、また、下段の長いボックスの連鎖は、音源部手段51による波形メモリ21に記憶されているストリーム波形データの再生が行われている期間および再生元のバッファ(AないしB)を示す。また、それらのボックスのうち、ハッチングの付与されたボックスはそのデータに録音されたストリーム波形データが含まれていることを示し、空白のボックスはそのデータが全てゼロデータであることを示す。
【0059】
また、ストリーム波形データがエンドレス再生される場合は、波形メモリ21に再生されるトラック分のダブルバッファ構成のバッファメモリが形成され、それぞれのバッファメモリ領域がループ再生されることによりエンドレス再生されるようになる。この場合の各バッファメモリのサイズは、各バッファメモリにおける読出/書込に要する時間が等しくなるサイズとされている。すなわち、前述したように記憶されるストリーム波形データのサンプリング周波数と1サンプルあたりのビット数に応じて各バッファメモリのサイズが定められている。ここでは、図5に示すサンプリング周波数と1サンプルあたりのビット数とされたチャンネル1ないしチャンネル5とされ、図5に示すサイズのバッファメモリが第1トラックないし第5トラック用のバッファメモリとして波形メモリ21上に形成されたとする。そして、タイミングt0の再生スタートに先立って、第1トラックのバッファメモリBuf1A,Buf1Bに第1トラックのストリーム波形データが順次転送され、続いて第2トラックのバッファメモリBuf2A,Buf2Bに第2トラックのストリーム波形データが転送される。また、同時に、第5トラックの第1バッファメモリBuf5Aには全てのサンプル値がゼロである無音のストリーム波形データが転送され、第2バッファメモリBuf5Bには途中のタイミングt15に対応する位置までが無音で、それ以降に録音された波形データが始まる第5トラックのストリーム波形データが転送される。さらに、同時に、第3トラックおよび第4トラックのバッファメモリBuf3A,Buf3B,Buf4A,Buf4Bには無音のストリーム波形データが転送される。
【0060】
このストリーム波形データの転送は、前述したXアクセス処理により実行される。すなわち、CPU10は再生する第1トラックないし第5トラックのストリーム波形データの所定量をディスク14からRAM13に読み出しておく。そして、第1トラックのストリーム波形データを所定量ずつFIFO41に転送する。ここで、タイムスロットが空いてXアクセス処理が実行可能なタイミングになると、読出書込回路31から制御信号(CONT2)がXアクセス回路40に供給されるようになる。さらに、セレクタ35が制御信号(CONT1)によりXアクセス回路40側へ切り換えられて、FIFO41上の第1トラックのストリーム波形データが波形メモリ21上に形成されている第1バッファメモリBuf1Aおよび第2バッファメモリBuf2Aに順次転送されるようになる。バッファメモリBuf1A,Buf1Bへの第1トラックのストリーム波形データの転送が終了すると、同様にして第2トラックのバッファメモリBuf2A,Buf2Bに第2トラックのストリーム波形データが順次転送される。さらに、バッファメモリBuf2A,Buf2Bへの第2トラックのストリーム波形データの転送が終了すると、同様にして、第3トラック、第4トラックおよび第5トラックのバッファメモリBuf3A,Buf3B,Buf4A,Buf4B,Buf5Aに無音のストリーム波形データが転送され、さらに、第5トラックの第2バッファメモリBuf5Bに第5トラックのストリーム波形データが転送される。ここで、第2バッファメモリBuf5Bに転送されるストリーム波形データは以下の手順でCPU10により作成される。CPU10は、まず、第2バッファメモリBuf5Bと同じサイズの記憶領域をRAM13上に確保し、その先頭よりタイミングt15に相当する途中の位置までゼロを書き込む。次に、CPU10は、ディスク14ないしRAM13からトラック5のタイミングt15で再生開始すべきストリーム波形データを読み出し、その先頭部を第2バッファメモリBuf5Bの該途中の位置以降に書き込む。このストリーム波形データを音源手段51が読み出すことにより、タイミングt15までが無音であり、それ以降に録音された波形がスタートするようなトラック5の楽音を再生することができる。
【0061】
これにより、再生の準備が終了し再生スタートされるが、それぞれのトラックにおける再生スタートでそれぞれのトラックを再生スタートさせると、途中で再生スタートされるトラックは既にスタートされているトラックに同期させるためには、既にスタートされているトラックの再生位置を検出して後のトラックの再生をスタートさせる同期化回路が必要であり、構成が複雑になってしまう。そこで、途中で再生されるトラックも含めて複数トラックを同期して再生する複数トラックの同時再生を行う場合は、その複数トラックの再生のために使用するチャンネル(トラック再生チャンネル)のすべてにキーオントリガを同時に与え、同じサンプリング周期においてその複数チャンネルの読出再生動作を開始させる。すなわち、再生開始に先立って複数のトラック再生チャンネルに、それぞれ対応するトラックの2バッファ領域の先頭アドレスと終了アドレス、サンプリング周波数、データビット数を設定するとともに、再生を開始するタイミングt0において、そのトラック再生チャンネルのすべてにキーオントリガを同時に与えることにより、例えば、図8に示す5トラックに対応する5チャンネルが同時に再生動作を開始する。
【0062】
これにより、波形メモリ21上に形成されている第1トラックないし第5トラックのバッファメモリの先頭アドレスからDAC周期毎に1サンプルずつ波形データが読み出され、少なくとも5トラックのストリーム波形データが音源手段51において再生されていくようになる。この場合、トラック再生チャンネルとして、読出書込回路31の書込チャンネルに設定されていない何れのチャンネルを使用してもよい。例えば、チャンネル1ないしチャンネル5が第1トラックないし第5トラックにそれぞれ割り当てられたものとする。書込チャンネルに設定されておらず、かつ、トラック再生チャンネルでもないチャンネルは、MIDI信号等の演奏データに応じ、波形メモリから波形データを読み出して楽音を生成する楽音形成チャンネルとして使用することができる。
【0063】
すると、処理Aの前半の期間におけるチャンネル1ないしチャンネル5のタイムスロットにおいて第1トラックないし第5トラックにおけるストリーム波形データを読み出す波形メモリ21上のバッファメモリBuf1,Buf2,Buf3,Buf4,Buf5のアドレスがそれぞれ読出書込回路31において作成される。このアドレスは、各チャンネルに設定された各トラックの先頭アドレスを初期値として、各バッファメモリに格納されているストリーム波形データのサンプリング周波数に応じてDAC周期毎にインクリメントされていく。そして、処理Bの前半期間におけるチャンネル1ないしチャンネル5の各タイムスロットにおいて絶対アドレスに変換されたアドレスがセレクタ35を介して波形メモリ21へ供給され、第1バッファメモリBuf1A、第1バッファメモリBuf2A、第1バッファメモリBuf3A、第1バッファメモリBuf4A、第1バッファメモリBuf5Aの先頭の1サンプルのストリーム波形データがそれぞれ読み出される。そして、第1バッファメモリBuf1Aおよび第2バッファメモリBuf2Aから読み出されたストリーム波形データに基づいて、前述したように音源手段51において第1トラックおよび第2トラックの楽音が生成される。しかし、図8に示すように第3トラックないし第5トラックは未だ再生スタートのタイミングに達しておらず、第1バッファメモリBuf3A,Buf4A,Buf5Aからは無音のストリーム波形データが読み出される。このため、第3トラックないし第5トラックでは音源手段51により無音の楽音が再生されるようになる。
【0064】
そして、タイミングt1に達すると第1バッファメモリBuf1Aおよび第1バッファメモリBuf2Aに転送されていたストリーム波形データの読み出しが同時に終了し、続いて第2バッファメモリBuf1Bおよび第2バッファメモリBuf2Bに転送されていたストリーム波形データの読み出しが開始される。この場合、第1バッファメモリBuf3A,Buf4A,Buf5Aの読み出しも同時に終了し、続いて第2バッファメモリBuf3B,Buf4B,Buf5Bの読み出しが開始される。この際にデータ転送の割込要求が送出される。この割込要求は、基準とされる2048サンプル(1DACサイクルで1サンプル)をカウントするサンプルカウンタが、その半分までカウントした際およびカウントアップした際に送出される。ここで、何れかのトラック再生チャンネルのアドレスカウンタをこのサンプリングカウンタとして動作させるようにしてもよい。これを受けたCPU10は、FIFO41にRAM13から第1トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第1トラックの次のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf1Aに転送する。次いで、FIFO41にRAM13から第2トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第2トラックの次のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf2Aに転送する。さらに、FIFO41にRAM13から第5トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第5トラックの次のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf5Aに転送する。さらにまた、第3トラックおよび第4トラックでは、当該期間t2-t3にかけて無音の再生が継続し、かつ、対応するバッファメモリには既に無音のストリーム波形データが記憶されているので、さらなるデータ転送の必要はない。
【0065】
タイミングt1からは、第2バッファメモリBuf1B,Buf2Bに転送されていたストリーム波形データが、DAC周期毎に1サンプルずつ読み出されて、読み出されたストリーム波形データに基づいて、前述したように音源手段51において楽音が生成されていく。また、第2バッファメモリBuf3B,Buf4B,Buf5BからもDAC周期毎に1サンプルずつ読み出されるが、第3トラックないし第5トラックは未だ再生スタートのタイミングに達しておらず、無音のデータが読み出される。このため、第3トラックないし第5トラックでは音源手段51により無音の楽音が再生され続けるようになる。ここで、タイミングt15に達すると第5トラックの再生スタートタイミングとなり、このタイミングからは第2バッファメモリBuf5BからDAC周期毎に読み出されたデータは有意なストリーム波形データとなり、読み出されたストリーム波形データに基づいて、前述したように音源手段51において第5トラックの楽音も生成されていくようになる。
【0066】
そして、タイミングt2に達すると第2バッファメモリBuf1B,Buf2B,Buf5Bに転送されていたストリーム波形データの読み出しが同時に終了し、続いて第1バッファメモリBuf1A,Buf2A,Buf5Aに転送されていたストリーム波形データの読み出しが開始される。さらに、第2バッファメモリBuf3B,Buf4Bの読み出しも同時に終了し、続いて第1バッファメモリBuf3A,Buf4Aの読み出しが開始される。この際、チャンネル1ないしチャンネル5のタイムスロットにおいてDAC周期毎にインクリメントされているバッファメモリBuf1,Buf2,Buf3,Buf4,Buf5の読出アドレスは、各チャンネルに設定されている各バッファの終了アドレス(バッファBの最後)に同時に達した後、各バッファの先頭アドレス(バッファAの先頭)に戻されDAC周期毎のインクリメントを継続する。このリターン時にデータ転送の割込要求が送出される。この割込要求は、前述したようにサンプルカウンタが、その半分までカウントした際およびカウントアップした際に送出される。これを受けたCPU10は、FIFO41にRAM13から第1トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第1トラックの次のストリーム波形データを波形メモリ21上に形成されている第2バッファメモリBuf1Bに転送する。
【0067】
次いで、FIFO41にRAM13から第2トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第2トラックの次のストリーム波形データを波形メモリ21上に形成されている第2バッファメモリBuf2Bに転送する。さらに、FIFO41にRAM13から第5トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第5トラックの次のストリーム波形データを波形メモリ21上に形成されている第2バッファメモリBuf5Bに転送する。さらにまた、第4トラックの再生スタートタイミングがt34とされていることから、それに先立って、CPU10は、RAM13上において先頭からタイミングt34に相当する位置までが無音でそれ以降に有意な楽音が始まるトラック4のストリーム波形データ(第2バッファメモリBuf4Bと同サイズ)を作成し、FIFO41にRAM13から該ストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第4トラックの先頭のストリーム波形データを波形メモリ21上に形成されている第2バッファメモリBuf4Bに転送する。さらにまた、第3トラックでは期間t3-t4にかけて無音の再生が継続し、かつ、バッファメモリに既に無音のストリーム波形データが記憶されているので、更なるデータ転送の必要はない。
【0068】
この様子が図7の前半に示されている。すなわち、タイミングt2において割込要求が発生し、これを受けたCPU10はXアクセス処理によりFIFO41を介して波形メモリ21に形成されている所定のチャンネルのバッファメモリに、続くストリーム波形データを図7に示すように転送している。この転送はCPUアクセスによる転送となり、その転送時間は転送するデータ量(=バッファのサイズ=データビット数×サンプル数)にほぼ比例する時間となる。すなわち、サンプリング周波数が44.1kHzでサンプルのビット数が16ビットとされているトラック1およびトラック5の転送時間に対して、サンプリング周波数が22.05kHzでサンプルのビット数が16ビットとされているトラック2の転送時間は1/2となり、サンプリング周波数が44.1kHzでサンプルのビット数が32ビットとされているトラック4の転送時間は2倍となる。この各バッファメモリへの転送処理は、図7に示すように一括して行われている。なお、図7では各1つのトラックの転送が連続的に行われているように見えるが、それを更に拡大して見れば、図3に示されるようにDAC周期毎の空きタイムスロットを利用したXアクセス処理によって、断続的に徐々に行われていることが判る。
【0069】
タイミングt2からは、第1バッファメモリBuf1A,Buf2A,Buf5Aに転送されていたストリーム波形データが、DAC周期毎に1サンプルずつ読み出されて、読み出されたストリーム波形データに基づいて、前述したように音源手段51において第1トラック、第2トラックおよび第5トラックの楽音が生成されていく。また、第1バッファメモリBuf3A,Buf4AからもDAC周期毎に1サンプルずつ読み出されが、第3トラックおよび第4トラックは未だ再生スタートのタイミングに達しておらず、無音のデータが読み出される。このため、第3トラックおよび第4トラックでは音源手段51により無音の楽音が再生され続けるようになる。
【0070】
そして、タイミングt3に達すると第1バッファメモリBuf1A,Buf2A,Buf5Aに転送されていたストリーム波形データの読み出しが同時に終了し、続いて第2バッファメモリBuf1B,Buf2B,Buf5Bに転送されていたストリーム波形データの読み出しが開始される。さらに、第1バッファメモリBuf3A,Buf4Aの読み出しも同時に終了し、続いて第2バッファメモリBuf3B,Buf4Bの読み出しが開始される。この際にデータ転送の割込要求が送出される。この割込要求は、前述したようにサンプルカウンタが、その半分までカウントした際およびカウントアップした際に送出される。これを受けたCPU10は、FIFO41にRAM13から第1トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第1トラックの次のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf1Aに転送する。さらに、第2トラックの再生エンドタイミングがt42とされていることから、それに先立って、CPU10は、RAM13上において先頭からタイミングt42に相当する位置までが録音された有意な楽音となり以降が無音となるようなトラック2のストリーム波形データを作成し、FIFO41にRAM13から該ストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第2トラックの次のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf2Aに転送する。
【0071】
さらに、FIFO41にRAM13から第5トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第5トラックの次のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf5Aに転送する。さらにまた、FIFO41にRAM13から第4トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第4トラックの先頭のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf4Aに転送する。さらにまた、第3トラックでは期間t4-t5にかけて無音の再生が継続し、かつ、バッファメモリに既に無音のストリーム波形データが記憶されているので、更なるデータ転送の必要はない。
このタイミングt3における転送の様子も図7に示されている。すなわち、タイミングt3において割込要求が発生し、これを受けたCPU10はXアクセス処理によりFIFO41を介して波形メモリ21に形成されている所定のチャンネルのバッファメモリに、続くストリーム波形データを図7に示すように転送している。
【0072】
タイミングt3からは、第2バッファメモリBuf1B,Buf2B,Buf5Bに転送されていたストリーム波形データが、DAC周期毎に1サンプルずつ読み出されて、読み出されたストリーム波形データに基づいて、前述したように音源手段51において第1トラック、第2トラックおよび第5トラックの楽音が生成されていく。また、第2バッファメモリBuf3B,Buf4BからもDAC周期毎に1サンプルずつ読み出されが、第3トラックおよび第4トラックは未だ再生スタートのタイミングに達しておらず、無音のデータが読み出される。このため、第3トラックおよび第4トラックでは音源手段51により無音の楽音が再生され続けるようになる。ここで、タイミングt34に達すると第4トラックの再生スタートタイミングとなり、このタイミングからは第2バッファメモリBuf4BからDAC周期毎に読み出されたデータは有意なストリーム波形データとなり、読み出されたストリーム波形データに基づいて、前述したように音源手段51において第4トラックの楽音も生成されていくようになる。
【0073】
そして、タイミングt4に達すると第2バッファメモリBuf1B,Buf2B,Buf4B,Buf5Bに転送されていたストリーム波形データの読み出しが同時に終了し、続いて第1バッファメモリBuf1A,Buf2A,Buf4A,Buf5Aに転送されていたストリーム波形データの読み出しが開始される。さらに、第2バッファメモリBuf3Bの読み出しも同時に終了し、続いて第1バッファメモリBuf3Aの読み出しが開始される。この際にデータ転送の割込要求が送出される。この割込要求は、前述したようにサンプルカウンタが、その半分までカウントした際およびカウントアップした際に送出される。これを受けたCPU10は、FIFO41にRAM13から第1トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第1トラックの次のストリーム波形データを波形メモリ21上に形成されている第2バッファメモリBuf1Bに転送する。次いで、FIFO41にRAM13から第2トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第2トラックの次のストリーム波形データを波形メモリ21上に形成されている第2バッファメモリBuf2Bに転送する。しかし、第2トラックは既にタイミングt42において終了しており当該区間t5-t6にかけて無音の再生が継続するが、バッファメモリには未だ無音のストリームデータが記憶されていないので、Buf2Bには無音のストリーム波形データが転送されるようになる。
【0074】
さらに、FIFO41にRAM13から第4トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第4トラックの次のストリーム波形データを波形メモリ21上に形成されている第2バッファメモリBuf4Bに転送する。さらにまた、FIFO41にRAM13から第5トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第5トラックの次のストリーム波形データを波形メモリ21上に形成されている第2バッファメモリBuf5Bに転送する。さらにまた、第3トラックでは期間t5-t6にかけて無音の再生が継続し、かつ、バッファメモリに既に無音のストリーム波形データが記憶されているので、更なるデータ転送の必要はない。
【0075】
タイミングt4からは、第1バッファメモリBuf1A,Buf2A,Buf4A,Buf5Aに転送されていたストリーム波形データが、DAC周期毎に1サンプルずつ読み出されて、読み出されたストリーム波形データに基づいて、前述したように音源手段51において第1トラック、第2トラック、第4トラックおよび第5トラックの楽音が生成されていく。また、第1バッファメモリBuf3AからもDAC周期毎に1サンプルずつ読み出されが、第3トラックは未だ再生スタートのタイミングに達しておらず、無音のデータが読み出される。このため、第3トラックでは音源手段51により無音の楽音が再生され続けるようになる。ここで、タイミングt42に達すると第2トラックの終了タイミングとなり、このタイミングからは第1バッファメモリBuf2AからDAC周期毎に読み出されたデータは無音のデータとなり、トラック2では無音の楽音が生成されるようになる。
【0076】
そして、タイミングt5に達すると第1バッファメモリBuf1A,Buf2A,Buf4A,Buf5Aに転送されていたストリーム波形データの読み出しが同時に終了し、続いて第2バッファメモリBuf1B,Buf2B,Buf4B,Buf5Bに転送されていたストリーム波形データの読み出しが開始される。さらに、第1バッファメモリBuf3Aの読み出しも同時に終了し、続いて第2バッファメモリBuf3Bの読み出しが開始される。この際にデータ転送の割込要求が送出される。この割込要求は、前述したようにサンプルカウンタが、その半分までカウントした際およびカウントアップした際に送出される。これを受けたCPU10は、FIFO41にRAM13から第1トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第1トラックの次のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf1Aに転送する。次いで、FIFO41にRAM13から第2トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第2トラックの次のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf2Aに転送する。しかし、第2トラックでは、当該区間t5-t6にかけて無音の再生が継続し、かつ、バッファメモリには未だ無音のストリームデータが記憶されていないので、Buf2Aには無音のストリーム波形データが転送されるようになる。
【0077】
さらに、FIFO41にRAM13から第4トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第4トラックの次のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf4Aに転送する。さらにまた、FIFO41にRAM13から第5トラックの次のストリーム波形データを転送しつつ、Xアクセス処理によりFIFO41上の第5トラックの次のストリーム波形データを波形メモリ21上に形成されている第1バッファメモリBuf5Aに転送する。さらにまた、第3トラックでは期間t5-t6にかけて無音の再生が継続し、かつ、バッファメモリに既に無音のストリーム波形データが記憶されているので、更なるデータ転送の必要はない。
タイミングt5からは、第2バッファメモリBuf1B,Buf2B,Buf4B,Buf5Bに転送されていたストリーム波形データが、DAC周期毎に1サンプルずつ読み出されて、読み出されたストリーム波形データに基づいて、前述したように音源手段51において第1トラック、第4トラックおよび第5トラックの楽音が生成されていく。ただし、第2トラックでは、前述したように無音の楽音が生成される。また、第2バッファメモリBuf3BからもDAC周期毎に1サンプルずつ読み出されるが、第3トラックは未だ再生スタートのタイミングに達しておらず、無音のデータが読み出される。このため、第3トラックでは音源手段51により無音の楽音が再生され続けるようになる。
【0078】
このようにして録音されているストリーム波形データを再生していくことにより、エンドレスの5トラック同時再生を実行することができるようになる。この場合、上述した5トラック同時再生において、途中から再生スタートされるトラック3においては、再生スタートの一つ前の区間のタイミングまでは、そのトラックのバッファメモリにはストリーム波形データの転送を行わないようにしている。例えば、区間tn-t(n+1)の何れかのタイミングtn3から再生されるトラック3においては、再生スタートの一つ前の区間t(n-1)-tnのタイミングt(n-1)までは、トラック3のバッファメモリBuf3A、Buf3Bにはストリーム波形データの転送は行われない。すなわち、無音区間におけるデータの転送は行わない。これにより、転送処理の負荷を軽減することができるようになる。これは、再生処理ばかりではなく録音処理においても同様とされている。なお、データ転送の割込要求は図8に示すように所定周期毎に発生している。
【0079】
また、録音されているストリーム波形データを再生する際に、再生するストリーム波形データの範囲を予め定めて再生することができる。この場合は、図6に示すようにディスク14に録音されているストリーム波形データ上に、再生開始アドレスと再生終了アドレスを指定するようにすればよい。この再生開始アドレスは絶対アドレスとされ、再生終了アドレスは再生開始アドレスに対する差分で表されている。
このようにして、再生終了アドレスまで再生してトラック2のように途中で再生が終了したトラックについては、バッファメモリに無音のストリーム波形データ(全てデータ0)を転送してバッファメモリ内のデータをゼロクリアするようにしている。そして、該トラックにおいて2区間以上、無音の再生が継続する場合には、最初の2区間のために2つのバッファがゼロクリアされたら、それ以降の無音区間についてはストリーム波形データの転送を行う必要はなくなる。例えば、トラック2においてはタイミングt4において第2バッファBuf4Bにデータ0が転送され、タイミングt5において第1バッファBuf4Aにデータ0が転送されてバッファメモリBuf2上の全てのデータがゼロクリアされる。そこで、タイミングt5よりスタートする無音区間が2区間以上継続する場合には、タイミングt6以降のそれに対応するデータ転送の割込要求に応じたデータ転送を行わないようにしている。これによっても、転送処理の負荷を軽減することができるようになる。
【0080】
また、本発明の実施の形態にかかる楽音生成装置1では、音源手段51と書込手段52がそれぞれ読出書込回路31の異なるチャンネルにより同時に動作可能であるので、以上に説明した複数トラックの同時録音と複数トラックの同時再生も平行して同時に行うことができる。例えば、読出書込回路31のチャンネル1、2を2つのトラックの録音に、チャンネル3、4、5を3つのトラックの再生に割当て、それらの録音再生を全部同時に実行することができる。図5に示すように波形メモリ21に録音用のバッファメモリBuf1,Buf2と再生用のバッファメモリBuf3,Buf4,Buf5を用意し、読出書込回路31のチャンネル1、2を書込チャンネルに設定して、トラック録音チャンネルであるチャンネル1、2とトラック再生チャンネルであるチャンネル3、4、5に同時にキーオントリガを与え、既に説明したのと同様の処理により、ストリーム波形データのエンドレス録音とエンドレス再生を実行する。録音と再生のチャンネルに同時にキーオンを掛けるため、録音と再生でデータ転送の要求割込が共通化できるし、録音後に、新たに録音されたストリーム波形データのタイミングを、同時に再生したストリーム波形データに容易に同期させることができる。
【0081】
上記説明した本発明の実施の形態にかかる楽音生成装置1では、ディスク14への記憶単位と波形メモリ21のバッファサイズが異なっており、ディスク14と波形メモリ21の転送の途中に介在されるRAM13において、CPU10がサイズ変換をおこなっている。そのため、ディスク14側と録音再生側で異なるそれぞれにとって都合のよい記憶単位を使用することができる。すなわち、ディスク14側ではクラスタを単位の効率のよい記憶を行い、録音再生側では複数トラックで共通の区間単位の管理を行なえるようになる。これにより、複数トラック間において区間が共通のため、途中から再生開始する場合のトラック間の同期がとりやすくなる。また、本発明にかかるマルチトラック録音再生装置であれば、一般に波形メモリより大きい容量とされるCPU10のシステムRAMの一部を、ディスクキャッシュとして使用することができる。
【0082】
なお、上記の説明では本発明は、マルチトラック録音再生装置の機能を備えた楽音生成装置として説明したが、単にマルチトラック録音再生装置であってもよい。
さらに、本発明において述べている一括処理による転送とは、共通のデータ転送の要求割込に応じて複数トラックの波形データを時分割で転送することを意味しており、複数トラック分の転送法は上述した方法に限らずいろいろなバリエーションが考えられる。例えば、複数トラック分の波形データを1、ないし、複数サンプルごとに時分割化して転送してもよい。あるいは、波形メモリの波形データの転送元ないし転送先の準備状態に応じて、波形データを準備できたサンプル数ずつ送るようにしてもよい。または、複数トラック分の複数バッファの転送すべき波形データの量が均一化されるように制御してもよい。
【0083】
ところで、上記説明した本発明の実施の形態にかかる楽音生成装置1では、各トラックの録音された波形データの存在しない期間(無音期間)では、その期間の最初に無音のストリーム波形データをバッファに転送することにより、その期間の無音の再生が行なわれるようになっていた。しかしながら、この無音のストリーム波形データの転送は、以下に説明する第1の態様あるいは第2の態様を採用することにより省略することが可能であり、省略した際に制御手段5の負荷を軽減することができる。
【0084】
第1の態様は、図5に示す波形メモリ21上に形成されたバッファメモリにおいて、複数トラックに共通の(予め何れのトラックにも属さない)バッファBufZ(図示しない)を確保し、そのバッファに無音のストリーム波形データを記憶しておく方法である。ここで、このバッファBufZのサイズは、同時に再生する複数トラックに対応した複数バッファのうちの一番大きいバッファと同じサイズ(2kワード)にする。
各トラックの再生において無音期間の再生を開始する場合は、制御手段5の制御の基で、読出書込回路31のそのトラックのトラック再生チャンネルで作成している波形データ読出アドレスを、そのチャンネルに対応したバッファ(第1バッファメモリないし第2バッファメモリ)のアドレスから共通のバッファBufZのアドレスにジャンプさせる。すなわち、その無音期間の間はバッファBufZからの無音の波形データの読み出しを行なわせる。無音期間中に、制御手段5は、無音期間後に再生するストリーム波形データをそのチャンネルに対応したバッファに転送し、さらに、無音期間が終了したら、同読出アドレスをその転送されたバッファに再ジャンプさせ、そのチャンネルに対応したバッファによる通常再生に復帰させる。
【0085】
ここで、バッファBufZのサイズは上述のように設定されているので、無音期間の開始時と終了時のジャンプでは、その前後で各トラック再生チャンネルの読出アドレスのバッファ先頭位置からの相対位置、同読出アドレスの進行速度、および、バッファのサイズを同じにすることができる。そのため、各バッファ内での読出アドレスの相対位置はジャンプにより影響を受けず、ジャンプしても読出アドレスにおけるトラック間の同期が保たれたままとなる。この場合、読出書込回路31に読出アドレスのジャンプ機能が必要となるが、これは従来のサンプラ等で実現されている簡単な構成で実現可能である。また、バッファBufZは、複数のトラックに共通であり、トラック数分のバッファは必要ない。さらに、各トラックの第1バッファと第2バッファに共通のバッファとすることにより、バッファBufZの容量を更に削減している。このように、少ないハードウェアの追加で、無音のストリーム波形データの転送を省略することができる。
【0086】
また、第2の態様は、図2に示す波形メモリ21から読出書込回路31への読み出し経路のいずれかの任意の場所に、読み出される波形データの全ビットをマスクしてゼロにしてしまうマスク回路(図示しない)を設ける方法である。すなわち、各トラックの再生において無音期間の再生を開始する場合は、そのタイミングで、制御手段5(ないしCPU10)は、マスク回路に対して読出書込回路31のそのトラックのトラック再生チャンネルで読み出し中の波形データをマスクする開始を指示する。マスクの開始されたチャンネルでは、波形メモリ21から読み出される波形データはマスクされ、ゼロの波形データに基づく無音の再生が行なわれる。そして、制御手段5は、無音期間中に無音期間後に再生するストリーム波形データをそのチャンネルに対応したバッファに転送し、無音期間の終了タイミングで、マスク回路に対してマスクの停止を指示する。マスクの停止されたチャンネルは、波形メモリ21から読み出された波形データに基づく通常のトラック再生に復帰する。
【0087】
この例では、そもそも、無音のストリーム波形データをバッファに記録すること自体が不要となり、第1の態様と比べても、バッファBufZが不要となる点が優れている。マスク回路は簡単なアンドゲートを使用して実現できる。このため、さらに少ないハードウェアの追加で、無音のストリーム波形データの転送を省略することができる。この第2の態様において、さらに制御手段5がマスクの開始ないし停止とともにその実行タイミングを指示するようにすると、マスクタイミングの精度を向上させることもできる。
なお、ストリーム波形データをマスクすることに代えて、無音期間においてエンベロープ乗算器の乗算係数をゼロにしてミュートするようにしてもよい。これによっても無音のストリーム波形データの転送を省略することができる。
【0088】
さらにまた、上記説明した本発明の実施の形態にかかる楽音生成装置1におけるバッファメモリはダブルバッファとしたが、バッファメモリは必ずしもダブルバッファにしなくてもよい。例えば、トラックごとに3以上のバッファにして、それに順次書き込むようにしてもよい。あるいは、1トラックごとに1つのバッファにして、サンプルカウンタで所定量の空きが生じるのを検出して波形データの転送を要求するようにしてもよい。このようにすると、途中から再生を開始するトラックについて、再生開始タイミングが含まれる区間の直前のデータ転送の割込要求の一つ前のデータ転送の割込要求でストリーム波形データのバッファへの転送を開始する代わりに、当該割込要求以前の他のタイミングのデータ転送の割込要求で転送を開始するようにすることができるようになる。さらに、バッファとしてFIFOを使用したり、デュアルポートメモリを使用してもよい。本発明では、独立した複数トラックについて転送の要求を共用するとともに、それに応じた波形データの転送を一括して行うところに特徴がある。本発明の実施の形態においては、具体的なバッファの構成の仕方は自在に変更することができる。
【0089】
さらにまた、上記説明したXアクセスにおいて、波形データをFIFOに書き込む処理、ないし、波形データをFIFOから読み出す処理を、CPUの代わりに、そのCPUにより制御されたDMAC(ダイレクトメモリアクセス・コントローラ)が行うようにしてもよい。DMACが代わりに行うようにすれば、CPUの割り込み処理の起動に伴うオーバーヘッド増加を防ぐことができる。
さらにまた、上記の説明において述べたストリーム波形データとは、連続した複数サンプリング周期分の複数サンプルデータからなる波形データを意味している。さらにまた、有意のストリーム波形データとは、マイク等から入力音や電子楽器の演奏音を録音することに得られたストリーム波形データや、CD、レコード、ダウンロードした音楽コンテンツからリッピングされたストリーム波形データなどの何らかの録音された音の含まれるデータであり、無音のストリーム波形データとは、録音ではなく値が0のサンプルを並べることにより作られたデータのことである。
【0090】
【発明の効果】
本発明は以上説明したように、波形データが順次転送される複数のバッファから複数トラックの波形データを読み出して複数トラックの楽音を再生する際に、複数の各バッファは、転送される波形データのサンプリング周波数とサンプルあたりのビット数に対応するバッファサイズとされて、複数のバッファへの転送処理を一括して行うことができるようにしている。これにより、各トラック毎の割込要求をそれぞれ送出する必要をなくすことができ、制御手段への割込頻度を低減することができる。さらに、割込要求の送出タイミングが所定周期となることから、割込要求の発生タイミングが変動することを防止することができる。従って、制御手段の動作を安定化することができる。また、一括して転送処理を行えることから、複数のバッファの書込/読出の管理を行いやすくなる。
さらに、データ転送要求の発生タイミングが複数のバッファにおいて同期していることから、基準サンプリング周期をカウントするサンプリングカウンタの計数値が所定値となった際に、複数のバッファへのデータ転送の割込要求を送出することができるようになり、それぞれのバッファにデータ転送要求の検出および割込要求を送出するハードを設ける必要がなくすことができるようになる。
【図面の簡単な説明】
【図1】 本発明にかかるマルチトラック録音再生装置の機能を備えている本発明の実施の形態にかかる楽音生成装置の構成例を示すブロック図である。
【図2】 本発明の実施の形態にかかる楽音生成装置における音源部の詳細構成を示す図である。
【図3】 本発明の実施の形態にかかる楽音生成装置における音源部の動作タイミングを示す図である。
【図4】 本発明の実施の形態にかかる楽音生成装置における音源部のデータの流れを説明するための機能ブロック図である。
【図5】 本発明の実施の形態にかかる楽音生成装置における波形メモリ上におけるバッファの配置構成を示す図である。
【図6】 録音されたストリーム波形データ上の再生範囲を説明するための図である。
【図7】 本発明の実施の形態にかかる楽音生成装置におけるマルチトラック録音/再生処理時の転送タイミングを示す図である。
【図8】 本発明の実施の形態にかかる楽音生成装置におけるマルチトラック再生処理時の再生タイミングを示す図である。
【図9】 従来の楽音データ録音再生装置の概略構成を示すブロック図である。
【図10】 従来の楽音データ録音再生装置における再生タイミングを示す図である。
【図11】 従来の楽音データ録音再生装置における他の再生タイミングを示す図である。
【符号の説明】
1 楽音生成装置、5 制御手段、10 CPU、11 タイマ、12 ROM、13 RAM、14 ディスク、15 ドライブ、16 MIDIインタフェース、17 ネットワークインタフェース、18 パネルSW、19 パネル表示器、20 音源部、21 波形メモリ、22 外部回路、23 DAC、24サウンドシステム、25 バス、30 音源制御レジスタ、31 読出書込回路、32 EG付与回路、33 ミキサ、34 DSP、35 セレクタ、40Xアクセス回路、41 FIFO、42 XAレジスタ、43 ポインタレジスタ、44 FIFO制御レジスタ、51 音源手段、52 書込手段、53 ミキサ手段、120 楽音データ録音再生装置、121 大容量メモリ、122外部回路、131 再生制御部、132a,132b 録音バッファメモリ、133a,133b 読出バッファ、134a,134b 再生バッファ、135 再生音発生部
Claims (11)
- 波形データが記憶される読み書き可能な波形メモリと、
該波形メモリから波形データを読み出して楽音を再生する再生手段と、
該再生手段における所定の周期毎における楽音再生用の波形データの読出処理と重複しない時分割化されたタイミングにおいて、制御手段の制御の基で、前記波形メモリへのアクセスを行うことができるアクセス手段とを備え、
録音された複数トラックの波形データを前記波形メモリ上にトラック毎に形成された複数のバッファに、前記アクセス手段がそれぞれ所定量ずつ波形データを転送し、前記再生手段が、前記複数のバッファから複数トラックの波形データを読み出して複数トラックの楽音を再生するようにされており、前記複数の各バッファは、バッファに記憶された波形データの再生時間が相互に同じになるようなバッファサイズとされて、前記アクセス手段は、該複数バッファから各々所定量の波形データが読み出され再生されたタイミングで、複数トラックの既に転送された波形データに続く所定量の波形データを複数トラックに対応する前記複数のバッファへ一括してデータ転送するようにしたことを特徴とするマルチトラック再生装置。 - 前記再生手段は基準サンプリング周期毎に、前記複数のバッファから複数トラックの波形データを読み出して複数トラックの楽音を再生するようにされており、該基準サンプリング周期をカウントするサンプリングカウンタの計数値が所定値となった際に、前記複数のバッファへのデータ転送要求が発行され、該要求により、前記アクセス手段が前記複数バッファの各々への所定量の波形データの転送を行うようにしたことを特徴とする請求項1記載のマルチトラック再生装置。
- 前記複数の各バッファは、バッファに記憶された波形データの再生時間が相互に同じになるように、記憶される波形データのサンプリング周波数に応じたバッファサイズとされていることを特徴とする請求項1記載のマルチトラック再生装置。
- 前記複数の各バッファは、バッファに記憶された波形データの再生時間が相互に同じになるように、記憶される波形データのサンプルあたりのビット数に応じたバッファサイズとされていることを特徴とする請求項1記載のマルチトラック再生装置。
- トラック毎に波形データの再生開始タイミングと再生終了タイミングとが独立して制御可能な複数トラックの波形データを再生するマルチトラック再生装置であって、
前記複数トラックの各々に対応している複数のバッファと、
前記複数トラックにおいて再生される波形データを記憶する記憶手段と、
サンプリング周期毎に、複数のトラックに対応している前記複数のバッファから、それぞれ所定サンプル数の波形データを1サンプルずつ読み出し、読み出した波形データに基づいて前記複数トラックの楽音を再生する再生手段と、
該再生手段により所定時間分あるいは所定サンプル数の波形データが再生されたことを検出し、データ要求を発行する要求手段と、
該要求手段が発行するデータ要求に応じて、複数のトラックのそれぞれについて、既にバッファに転送した波形データに続く所定量の波形データを、前記記憶手段から対応する前記バッファに順次転送する転送手段と、
を備えたことを特徴とするマルチトラック再生装置。 - トラック毎に波形データの再生開始タイミングと再生終了タイミングとが独立して制御可能な複数トラックの波形データを再生するマルチトラック再生装置であって、
前記複数トラックの各々に対応している複数のバッファと、
前記複数トラックにおいて再生される波形データを記憶する記憶手段と、
サンプリング周期毎に、複数のトラックに対応している前記複数のバッファから、それぞれ所定サンプル数の波形データを1サンプルずつ読み出し、読み出した波形データに基づいて前記複数トラックの楽音を再生する再生手段と、
該再生手段により所定時間分あるいは所定サンプル数の波形データが再生されたことを検出し、データ要求を発行する要求手段と、
該要求手段が発行するデータ要求に応じて、複数のトラックのそれぞれについて、既にバッファに転送した波形データに続く所定量の波形データを、前記記憶手段から対応するバッファに順次転送する転送手段とを備えており、
前記データ要求の発行時、前記転送手段は、前記複数トラックのうち対応するタイミングで波形データを再生しないトラックについては波形データの転送を省略するようにしたことを特徴とするマルチトラック再生装置。 - 前記複数トラックの再生開始時に、前記複数トラックのうちの有意な波形データの再生が他のトラックに遅れて開始されるトラックについても、前記再生手段による再生を同時に開始するとともに、前記転送手段は当該トラックの該有意な波形データの転送を、前記再生開始タイミングの直前のデータ要求より前のデータ要求に応じて開始するようにしたことを特徴とする請求項3または4記載のマルチトラック再生装置。
- 複数トラックの波形データを録音するマルチトラック録音装置であって、
前記複数トラックの各々に対応している複数のバッファと、
波形データが録音される記憶手段と、
複数の波形データを入力する入力手段と、
サンプリング周期毎に、複数のトラックに対応している前記複数のバッファに、前記入力手段から入力される複数の波形データを、それぞれ1サンプルずつ書き込む書込手段と、
該書込手段により所定時間分あるいは所定サンプル数の波形データが書き込まれたことを検出し、データ要求を発行する要求手段と、
該要求手段が発行するデータ要求に応じて、複数のトラックの各トラックに対応している前記複数のバッファから、当該バッファに記憶されている波形データを順次読み出して、前記記憶手段に転送書込する転送手段と、
を備えたことを特徴とするマルチトラック録音装置。 - 波形データが記憶される読み書き可能な波形メモリと、
該波形メモリから波形データを読み出して楽音を再生すると共に、複数トラックの波形データを録音可能な録音再生手段と、
該録音再生手段における所定の周期毎における楽音再生用の波形データの読出処理及び楽音録音用の波形データの書込処理と重複しない時分割化されたタイミングにおいて、制御手段の制御の基で、前記波形メモリへのアクセスを行うことができるアクセス手段とを備え、
前記録音再生手段は波形データを録音する際に、前記複数トラックの波形データを前記波形メモリ上に形成された複数のバッファに基準サンプリング周期に従ってそれぞれ書き込み、該複数のバッファに所定量の波形データが書き込まれた際に、前記アクセス手段が前記複数のバッファに書き込まれた所定量の波形データを録音用記憶手段に転送するようにされており、前記複数の各バッファは、波形データのバッファへの録音時間が相互に同じになるようなバッファサイズとされて、前記複数のバッファからの転送処理が一括して行われるようにしたことを特徴とするマルチトラック録音再生装置。 - 前記基準サンプリング周期をカウントするサンプリングカウンタの計数値が所定値となった際に、前記複数のバッファからのデータ転送要求が発行され、該要求により、前記アクセス手段が前記複数のバッファの各々からの所定量の波形データの転送を行うようにしたことを特徴とする請求項3記載のマルチトラック録音再生装置。
- 少なくとも1つの録音トラックの波形データを録音すると同時に、複数の再生トラックの波形データを再生することができるマルチトラック録音再生装置であって、
前記複数トラックの各々に対応している複数のバッファと、
波形データを読み出しおよび書き込みすることができる記憶手段と、
波形データを入力する入力手段と、
サンプリング周期毎に、録音用とされたトラックに対応している前記バッファに、前記入力手段から入力される複数の波形データを、1サンプルずつ書き込むとともに、複数の再生用とされたトラックに対応している前記バッファから所定サンプル数の波形データを1サンプルずつ読み出し、読み出した波形データに基づいて前記複数再生トラックの楽音を再生する書込読出手段と、
該書込読出手段により所定時間分あるいは所定サンプル数の波形データが処理されたことを検出し、データ要求を発行する要求手段と、
該要求手段が発行するデータ要求に応じて、録音用とされたトラックに対応している前記バッファから、当該バッファに記憶されている波形データを順次読み出して前記記憶手段に転送書込するとともに、複数の再生用とされたトラックのそれぞれについて、既にバッファに転送した波形データに続く所定量の波形データを、前記記憶手段から対応する前記バッファに順次転送する転送手段と、
を備えたことを特徴とするマルチトラック録音再生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002077045A JP3815353B2 (ja) | 2002-03-19 | 2002-03-19 | マルチトラック再生装置、マルチトラック録音装置およびマルチトラック録音再生装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002077045A JP3815353B2 (ja) | 2002-03-19 | 2002-03-19 | マルチトラック再生装置、マルチトラック録音装置およびマルチトラック録音再生装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003271150A JP2003271150A (ja) | 2003-09-25 |
JP3815353B2 true JP3815353B2 (ja) | 2006-08-30 |
Family
ID=29205577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002077045A Expired - Fee Related JP3815353B2 (ja) | 2002-03-19 | 2002-03-19 | マルチトラック再生装置、マルチトラック録音装置およびマルチトラック録音再生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3815353B2 (ja) |
-
2002
- 2002-03-19 JP JP2002077045A patent/JP3815353B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003271150A (ja) | 2003-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3149093B2 (ja) | 自動演奏装置 | |
US6665409B1 (en) | Methods for surround sound simulation and circuits and systems using the same | |
JP5614420B2 (ja) | 楽音発生装置、電子楽器、プログラム及び楽音発生方法 | |
US7381879B2 (en) | Sound waveform synthesizer | |
JPH06308964A (ja) | 楽音形成装置 | |
US8791349B2 (en) | Flash memory based stored sample electronic music synthesizer | |
JP3163984B2 (ja) | 楽音発生装置 | |
JP3815353B2 (ja) | マルチトラック再生装置、マルチトラック録音装置およびマルチトラック録音再生装置 | |
JP3861873B2 (ja) | 音楽システム及び音楽データ送受装置 | |
JP3855711B2 (ja) | 音波形データ用ディジタル信号処理装置 | |
JP3097174B2 (ja) | マルチメディアレコーダ | |
JPH07121181A (ja) | 音声情報処理装置 | |
JP3695405B2 (ja) | 音源装置 | |
JP3922289B2 (ja) | 音源装置 | |
JP3695404B2 (ja) | 波形処理デバイス | |
JP2914265B2 (ja) | 音源装置 | |
JP4120979B2 (ja) | 波形再生装置 | |
US20210297778A1 (en) | Audio interface apparatus and recording system | |
JP3855710B2 (ja) | 音波形データ用ディジタル信号処理装置 | |
JP4102931B2 (ja) | 音波形合成装置 | |
JP3952916B2 (ja) | 波形データ処理装置 | |
JP3714087B2 (ja) | サンプルデータ再生装置およびサンプルデータ記録再生装置 | |
JP4102930B2 (ja) | 音波形合成装置 | |
JP3060920B2 (ja) | ディジタル信号処理装置 | |
JPH0424691A (ja) | 電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040421 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060419 |
|
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: 20060516 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060529 |
|
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: 20100616 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100616 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110616 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120616 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120616 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130616 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140616 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |