JP4102931B2 - Sound waveform synthesizer - Google Patents
Sound waveform synthesizer Download PDFInfo
- Publication number
- JP4102931B2 JP4102931B2 JP2004091518A JP2004091518A JP4102931B2 JP 4102931 B2 JP4102931 B2 JP 4102931B2 JP 2004091518 A JP2004091518 A JP 2004091518A JP 2004091518 A JP2004091518 A JP 2004091518A JP 4102931 B2 JP4102931 B2 JP 4102931B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- waveform data
- sound
- bus
- synthesis
- 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
本発明は、波形データを合成して楽音波形や人声音波形などの音波形を発生する音波形合成装置に関するものである。 The present invention relates to a sound waveform synthesizer that synthesizes waveform data to generate a sound waveform such as a musical sound waveform or a human voice waveform.
演奏データに応じて、素材となる波形データを加工することにより楽音波形を合成する、波形メモリ音源方式(波形テーブル音源方式)の電子音楽装置が知られている。
図4は、波形メモリ音源方式の電子音楽装置を示すブロック図である。
図4(a)において、CPUバス101には、音源制御用のCPU(Central Processing Unit)102、ワークRAM(Random Access Memory)103、および、音源LSI(Large Scale Integrated Circuit)104が接続されている。この音源LSI104には、波形メモリバス105経由で波形ROM(Read Only Memory)106が接続されている。
2. Description of the Related Art There is known an electronic music apparatus of a waveform memory sound source method (waveform table sound source method) that synthesizes a musical sound waveform by processing waveform data as a material in accordance with performance data.
FIG. 4 is a block diagram showing a waveform memory sound source type electronic music apparatus.
4A, a CPU (Central Processing Unit) 102 for sound source control, a work RAM (Random Access Memory) 103, and a sound source LSI (Large Scale Integrated Circuit) 104 are connected to the
ワークRAM103には、CPU102を動作させる処理プログラムがロードされている。一方、演奏データ(楽音波形制御情報)は、図示しない鍵盤等から、CPUバス101を介してワークRAM103に入力される。CPU102は、演奏データに基づいて音源パラメータ(制御パラメータ)を作成し、音源LSI104に出力する。音源LSI104は、音源パラメータに応じて、波形ROM(Read Only Memory)106から、素材となる波形データを読み出し、これを加工して楽音波形を合成する。合成された楽音波形は、図示を省略したCODEC(coder/decoder)においてアナログ信号に変換されて、楽音信号を発生する。
The
図4(b)に示すように、音源LSIに代えて音源用のDSP(Digital Signal Processor)107を用いるものもある。
DSPは、ディジタル信号処理専用のマイクロプロセッサである。積和演算が高速で行える。また、マイクロプログラムコードを変更すれば、音源方式を異なるものに入れ替えたり、音源方式をグレードアップしたりすることができる。DSP107で合成された楽音波形は、図示を省略したCODECにおいてアナログ信号に変換されて出力される。
なお、図示のDSP107は、信号処理の対象とする処理データと信号処理プログラムとが、バス(DSPバス108)およびワークRAM110を共有するタイプのものである。
As shown in FIG. 4B, there is a type using a DSP (Digital Signal Processor) 107 for a sound source instead of the sound source LSI.
The DSP is a microprocessor dedicated to digital signal processing. Multiply-and-accumulate operations can be performed at high speed. Further, if the microprogram code is changed, the sound source method can be replaced with a different one, or the sound source method can be upgraded. The musical sound waveform synthesized by the DSP 107 is converted into an analog signal and output by a CODEC (not shown).
The illustrated DSP 107 is of a type in which processing data and a signal processing program to be subjected to signal processing share a bus (DSP bus 108) and
ここで、CPU102とDSP107とは、いずれも、バスの使用権を割り当てる機能、いわゆる、バス・アービトレーション(arbitration:調停)機能を持つことから、バスを共有できない。
一般に、2本のバス間を共有メモリで接続することが知られている(特許文献1参照)。そこで、図4(b)においても、共有メモリ109を設けるとともに、DSPバス108にワークRAM110を設けている。
Here, since both the
In general, it is known to connect two buses with a shared memory (see Patent Document 1). Therefore, also in FIG. 4B, the shared
一方、高品質な楽音波形を再現するために、波形ROM106に記憶しておくべき波形データは、大容量化の傾向がある。
しかし、様々な楽器音色の波形データを、大容量の波形ROMに記憶しておくことは、コスト的に限界がある。
そのため、図4(c)に示すように、波形RAM111を用いるとともに、CPUバス101にHDC(Hard Disk Controller)112を介して、HDD(Hard Disk Drive)113を接続する。
On the other hand, the waveform data to be stored in the
However, storing waveform data of various instrument sounds in a large-capacity waveform ROM has a cost limitation.
Therefore, as shown in FIG. 4C, a
CPU102は、波形データを、演奏開始前に、HDD(Hard Disk Drive)113から一旦、ワークRAM103に転送し、それを波形RAM111に転送して格納する。
従って、必要とする楽器音色の波形データのみを、HDD113からワークRAM103を経て波形RAM111に転送すればよい。
しかし、楽器音色を切り替えるときは、切り替えた楽器音色の波形データを波形RAM111に転送しなければならないので、切替えに時間がかかるという問題がある。
また、合理的なコストで波形RAM111に格納することが可能なデータサイズには限度がある。
The
Therefore, it is only necessary to transfer only the waveform data of the required instrument tone color from the
However, when switching instrument timbres, the waveform data of the switched instrument timbres must be transferred to the
There is a limit to the data size that can be stored in the
そのため、演奏開始後、楽音合成処理中において、楽音合成処理に必要な波形データを、その都度、HDD113からワークRAM103を経て波形RAM111に供給する。この方式によれば、事実上、ほぼ無制限の波形データを使用できる。
この方式は、パーソナルコンピュータ上で実行される「サンプラー」のプログラムで実現されている。
ただし、HDD113においては、波形データの読み出しを要求してから波形データが読み出されるまでの遅延時間(Latency:レイテンシ)を無視できない。従って、ワークRAM103には、楽音合成に必要となる波形データを先読みして大量に格納しておく必要がある。
For this reason, after the performance is started, during the musical tone synthesis process, the waveform data necessary for the musical tone synthesis process is supplied from the
This method is realized by a “sampler” program executed on a personal computer.
However, in the
CPUバス101の処理は、音源パラメータ合成処理が主である。この処理は、複雑な処理アルゴリズムを持った、比較的大きな規模のプログラムであり、処理負荷は大変重くなっている。
ところが、機器組込み用のCPUバスは、パーソナルコンピュータのCPUバスほど高速ではない。また、CPUバスの速度は、内部動作速度に対して数分の1と遅い。CPU102が最も忙しい処理をする場合、最悪値ではデータ転送能力の7〜8割程度を命令fetchで使用するように設計されている。
従って、CPUバス101のデータ転送能力が、HDC112からワークRAM103に対する波形データの転送とワークRAM103からの波形データの転送の処理とに消費されてしまうと、CPU102の演算能力が十分に発揮できなくなる。
The processing of the
However, the CPU bus for embedded devices is not as fast as the CPU bus of personal computers. The CPU bus speed is a fraction of the internal operation speed. When the
Therefore, if the data transfer capability of the
ところで、HDDが、再生側のバスや、CPUバスとは異なるバスに接続されており、HDDから読み出された波形データを、共有バッファを介して再生側のバスに転送する楽音データ記録再生装置が、特許文献2で知られている。
図5は、このような従来の楽音データ記録再生装置を示すブロック図である。ただし、HDDに記録する側の構成は図示を省略している。
パーソナルコンピュータ121と再生制御装置122とは、シリアルケーブルで接続される。また、パーソナルコンピュータ121,再生制御装置122,HDD123は、SCSI(Small Computer System Interface)バスで接続される。
パーソナルコンピュータ121は、ファイル名の選択・設定操作を行い、シリアルケーブルでデータファイルの領域指示情報を再生制御装置122に送出する。
再生制御装置122は、HDD123に記憶された楽音波形データを、SCSIバス経由で読み出して楽音波形データを再生する。
By the way, a musical sound data recording / reproducing device, in which the HDD is connected to a bus on the playback side or a bus different from the CPU bus, and transfers waveform data read from the HDD to the bus on the playback side via a shared buffer Is known from US Pat.
FIG. 5 is a block diagram showing such a conventional musical sound data recording / reproducing apparatus. However, the configuration on the HDD recording side is not shown.
The
The
The reproduction control device 122 reads the musical sound waveform data stored in the
再生制御装置122内において、CPUバス125には、CPU126,RAM127,ROM128等からなるマイクロコンピュータとともに、シリアル入出力インターフェース124、SCSIインターフェース129,再生および転送制御部130,再生音発生部131が接続され、これらの動作はCPU126により制御される。
再生および転送制御部130は、取り込みバッファ134を備え、SCSIインターフェース129とは、波形データバス132で接続され、再生バッファ135とは、バス133で接続される。
In the reproduction control device 122, a serial input /
The reproduction and
HDD123から読み出された楽音波形データは、取り込みバッファ134に記憶される。取り込みバッファ134では、ヘッダ部の除去や、データの並べ替えを行ったりして、再生読み出しに適した1ブロック(16キロワード)分の楽音波形データが再生バッファ(4キロワード×2個)135に転送される。取り込みバッファ134への書き込み/読み出しは、システムクロックパルスが1か0かで切り替わる。
再生音発生部131は、再生バッファ135から1ブロック分の楽音波形データをサンプリングクロックに従って読み出して出力する。その際、読み出し波形のピッチ制御が可能である。
The musical sound waveform data read from the
The
上述した特許文献2に開示のように、波形データバス132と波形再生用のバス133との間に取り込みバッファ134を設ける構成によれば、それぞれのバスにおける楽音波形の転送を独立して行える。
しかし、特許文献2に開示の転送機能は、HDD123に記憶された波形データを所定のブロックサイズずつ読み出して再生することである。
従って、演奏データ(楽音波形制御情報)といった時変動要因に応じて、楽音波形合成処理に必要な波形データのデータ量が変動する場合に、HDD123のようなレイテンシの大きな記憶装置から波形データを読み出す際に、各バスにおける転送をどのようにすれば、転送効率が上がるのかについては記載されていない。
However, the transfer function disclosed in
Accordingly, when the amount of waveform data necessary for the musical sound waveform synthesis processing varies according to the time variation factor such as performance data (musical sound waveform control information), the waveform data is read from a storage device having a large latency such as the
本発明は、上述した問題点を解決するためになされたもので、記憶媒体から波形データを読み出し、その波形データを効率よく波形データ処理手段に転送できる、音波形合成装置を提供することを目的とするものである。 The present invention has been made to solve the above-described problems, and an object of the present invention is to provide a sound waveform synthesizer that can read waveform data from a storage medium and efficiently transfer the waveform data to waveform data processing means. It is what.
本発明は、請求項1に記載の発明においては、外部から音波形制御情報を入力し、大容量の記憶媒体に記憶された波形データに基づいて音波形合成を行う音波形合成装置において、波形データ処理手段と、波形データ供給手段と、波形バッファと、制御データ処理手段を有し、前記波形バッファは、該波形データ処理手段と該波形データ供給手段との間に接続され、前記制御データ処理手段は、前記外部から前記音波形制御情報を入力し、該音波形制御情報に応じて、前記波形データ処理手段における以後の音波形合成において新たに必要となると予測される波形データを前記記憶媒体から読み出させるための読み出し要求を作成し、該読み出し要求を前記波形データ供給手段に通知し、かつ、前記波形データ処理手段から、現時点において音波形合成のための信号処理をしている波形位置を表す音波形合成の進行状況の通知を受け、該音波形合成の進行状況に基づいて音波形合成に新たに必要となる波形データを前記波形バッファに転送することを要求する第1の転送要求を作成し、該第1の転送要求を前記波形データ供給手段に通知し、かつ、前記波形データ処理手段から、現時点において音波形合成のためにしている信号処理の内容を表す音波形合成状態の通知を受け、前記外部から入力した音波形制御情報と前記音波形合成状態に基づいて制御パラメータを作成し、該制御パラメータと、前記第1の転送要求に応じた第2の転送要求を、前記波形データ処理手段に通知するものであり、前記波形データ供給手段は、前記制御データ処理手段から前記第1の転送要求の通知を受けて、複数サンプルを1フレームとして、フレーム周期を単位として、前記記憶媒体から読み出された波形データを前記波形バッファに転送するものであり、前記波形データ処理手段は、前記制御データ処理手段から前記第2の転送要求の通知を受けて、前記フレーム周期を単位として、前記波形バッファから前記波形データを自身に転送し、前記制御データ処理手段から取得された前記制御パラメータと前記波形バッファから転送された波形データに基づいて、前記フレーム毎に1フレーム分の音波形を合成するとともに、前記音波形合成状態と前記音波形合成の進行状況を前記制御データ処理手段に通知するものである。
手段に転送することが容易に実現できる。
In the invention according to
Transfer to the means can be easily realized.
従って、波形バッファを用いることにより、音波形合成処理中においても、波形データ処理手段による音波形の合成処理と、波形データ供給手段による記憶媒体からの波形データの読み出しとは、独立して制御される。その結果、波形データ処理手段は、都合のよいタイミングで波形バッファから波形データを転送できるので、記憶媒体からの波形データの読み出しが音波形合成処理に与える影響を少なくすることができる。 Therefore, by using the waveform buffer, the sound waveform synthesis processing by the waveform data processing means and the reading of the waveform data from the storage medium by the waveform data supply means are controlled independently even during the sound waveform synthesis processing. The As a result, the waveform data processing means can transfer the waveform data from the waveform buffer at a convenient timing, so that the influence of reading the waveform data from the storage medium on the sound waveform synthesis process can be reduced.
1フレーム分の複数サンプル単位で音波形データを合成するので、波形データ処理手段による波形データの要処理量が、時間的に均一化され、フレーム周期毎にあまり変化しないので、波形データ処理手段を安定して動作させることができる。
波形データ処理手段による波形データの転送、および、波形データ供給手段による波形データの転送は、1フレーム周期を単位とすることから、1回の転送量がある程度まとまったものになるから、オーバヘッドの少ない効率の良い転送が可能になる。
Since the sound waveform data is synthesized in units of a plurality of samples for one frame, the required amount of processing of the waveform data by the waveform data processing means is made uniform in time and does not change much every frame period. It can be operated stably.
Since the waveform data transfer by the waveform data processing means and the waveform data transfer by the waveform data supply means are in units of one frame period, the amount of transfer at one time is a certain amount, so there is little overhead. Efficient transfer is possible.
請求項2に記載の発明においては、請求項1に記載の音波形合成装置において、前記波形データ処理手段は、第1のバスと、該第1のバスに接続された信号処理手段と第1の記憶手段を有し、前記波形データ供給手段は、第2のバスと、該第2のバスに接続された記憶媒体読出手段と第2の記憶手段を有し、前記波形バッファは、前記第1のバスと前記第2のバスの間に接続され、前記第2の記憶手段に記憶された波形データを前記第1の記憶手段に供給するものである。
従って、波形データを、波形データ供給手段から波形バッファを介して波形データ処理手段に転送することが容易に実現できる。
According to a second aspect of the present invention, in the sound waveform synthesizer according to the first aspect, the waveform data processing means includes a first bus, a signal processing means connected to the first bus, and a first bus. The waveform data supply means includes a second bus, a storage medium reading means connected to the second bus, and a second storage means, and the waveform buffer includes the second buffer Connected between one bus and the second bus, the waveform data stored in the second storage means is supplied to the first storage means.
Therefore, the waveform data can be easily transferred from the waveform data supply means to the waveform data processing means via the waveform buffer.
本発明によれば、波形バッファを用いることにより、発音動作中においても、ハードディスクのようなレイテンシが大きい大容量の記憶装置から波形データを読み出し、波形データ処理手段に転送できることから、リアルタイムでも高品質の合成音を発生できる効果がある。
その際、1フレーム周期を単位として波形データを転送するので、効率よくデータ転送能力を利用できる。
その結果、波形データ処理手段の処理能力の低下を防止し、実用的に十分な同時発音数が得られるという効果がある。
According to the present invention, the waveform buffer can be used to read waveform data from a large-capacity storage device having a large latency such as a hard disk and transfer it to the waveform data processing means even during a sound generation operation, so that high quality even in real time. There is an effect that can generate the synthesized sound.
At that time, since the waveform data is transferred in units of one frame period, the data transfer capability can be used efficiently.
As a result, it is possible to prevent a decrease in processing capability of the waveform data processing means and to obtain a practically sufficient number of simultaneous pronunciations.
図1は、本発明の実施の一形態について、その機能構成を説明するブロック図である。
音波形制御情報と記憶媒体に記憶された波形データに基づいて音波形合成処理を行う、電子音楽装置等の、音波形合成装置において、1は制御データ処理部、2は波形データ処理部、3は波形データ供給部、5はインターフェース部である。
波形データ供給部3には、HDD等の波形データ記憶装置4が接続される。
FIG. 1 is a block diagram illustrating the functional configuration of an embodiment of the present invention.
In a sound waveform synthesizing apparatus such as an electronic music apparatus that performs sound wave synthesizing processing based on sound waveform control information and waveform data stored in a storage medium, 1 is a control data processing unit, 2 is a waveform data processing unit, 3 Is a waveform data supply unit, and 5 is an interface unit.
A waveform
インターフェース部5は、制御データ処理部1、波形データ処理部2、波形データ供給部3を相互に接続する。波形バッファ6は、波形データ処理部2と波形データ供給部3とを接続し、波形データ転送のバッファ中継を行うことにより、波形データ処理部2による音波形の合成と、波形データ供給部3による波形データの読み出しとを、互いに干渉することなく個別に処理することができる。
一方、制御データ処理部1と波形データ処理部2との間、および、制御データ処理部1と波形データ供給部3との間のインターフェースには種々の方法を採用できることから、図示の例では、直結している。
制御データ処理部1、波形データ処理部2、波形データ供給部3は、それぞれの内部処理を、他の処理部の内部処理とは独立して自律的に行う。ただし、図示の例では、全体の統合動作としては、所定の複数サンプル期間に対応するフレーム周期を単位として動作している。
The
On the other hand, since various methods can be adopted for the interface between the control
The control
波形データ処理部2は、信号処理バス(第1のバス)20を有し、この信号処理バス20に、信号処理部21、記憶部(第1の記憶部)22が接続されている。信号処理部21は、さらに、転送制御部(第1の転送制御部)23を内蔵する。信号処理部21の出力は、図示しない音波形出力部に接続される。
波形データ処理部2は、取得された制御パラメータと転送された波形データに基づいて、1フレーム毎に、1フレーム分の音波形を合成し、合成された複数サンプルの音波形は、音波形出力部に供給され、ここで音波形がサンプリング周期毎に1サンプルずつ出力される。
音波形合成を1フレーム毎に行うには、図示しない音波形出力部から、所定の複数サンプリングクロックに相当するフレームに同期した信号の供給を受ければよい。
The waveform
The waveform
In order to perform sound waveform synthesis for each frame, a signal synchronized with a frame corresponding to a predetermined plurality of sampling clocks may be supplied from a sound waveform output unit (not shown).
波形データ処理部2は、制御データ処理部1から、少なくとも現フレーム期間で音波形を合成するのに必要な分の制御パラメータを取得する。かつ、転送制御部23により波形バッファ6から、少なくとも現フレーム期間で音波形を合成するのに必要な分の波形データを、記憶部22に転送する。
上述した制御パラメータの取得、および、波形データの転送は、音波形合成の処理に合わせて、フレーム周期を単位として行うことができる。
フレーム周期を単位とするとは、1フレーム周期の整数倍の時間間隔を意味する。その時々で、整数倍の値が変動しても構わない。
The waveform
The acquisition of the control parameters and the transfer of the waveform data described above can be performed in units of frame periods in accordance with the sound waveform synthesis process.
The unit of frame period means a time interval that is an integral multiple of one frame period. From time to time, the value of an integer multiple may change.
なお、波形データ処理部2は、音波形の1サンプル毎に音波形合成をしてもよい。しかし、音波形を合成する際に、ピッチなどの状況によって、使用する波形データのサンプル数が大きく変化する。そのため、一時的に供給する波形データが不足して合成波形にノイズが発生するがある。そのため、信号処理部21は、まとまったサイズの1フレーム単位で処理をした方が、必要とする波形データの変動が緩和されるので好ましい。
また、音波形の1サンプル毎に音波形合成をすると、波形データも1サンプルずつ転送しなければならない場合がある。そうすると、1サンプルの転送毎にオーバヘッドを必要とする。これに対し、フレーム毎に音波形合成をすれば、信号処理バス20や波形データバス30上を、波形データも、フレーム周期を単位として転送できるようになるので、高速で効率よく転送できるようになる。
波形データ処理部2は、音波形を1フレーム毎に合成するので、1フレーム分の遅れが生じる。しかし、1フレーム周期を極端に長くしない限り、実用上問題にならない。
Note that the waveform
In addition, when sound waveform synthesis is performed for each sample of a sound waveform, waveform data may have to be transferred one sample at a time. Then, overhead is required for each transfer of one sample. On the other hand, if sound waveform synthesis is performed for each frame, the waveform data can be transferred on the signal processing bus 20 and the waveform data bus 30 in units of frame periods, so that it can be transferred efficiently at high speed. Become.
Since the waveform
波形データ処理部2の具体構成を説明する。
信号処理部21は、記憶部22に記憶された制御パラメータおよび波形データに基づいてフレーム毎に音波形を合成するとともに、音波形合成状態および音波形合成の進行状況を、制御データ処理部1に通知する。
転送制御部23は、制御データ処理部1から、波形データ転送要求(第2の転送要求)の通知を受けて、波形バッファ6から波形データを記憶部22に転送する。
A specific configuration of the waveform
The
In response to the notification of the waveform data transfer request (second transfer request) from the control
信号処理部21は、信号処理バス20上を波形データが転送されている間でも、信号処理部内部の処理をすることができる。
信号処理部21によって合成された複数サンプルの音波形は、図示しない音波形出力手段に供給されて、サンプリング周期毎に1サンプルずつ出力される。
音波形合成状態および音波形合成の進行状況の通知は、音波形合成処理に連動させて、フレーム周期を単位として行うことができる。
The
The sound wave forms of the plurality of samples synthesized by the
The notification of the sound waveform synthesis state and the progress of sound waveform synthesis can be performed in units of frame periods in conjunction with the sound waveform synthesis processing.
制御データ処理部1は、制御パラメータ作成部11と要求作成部12を有し、音波形制御情報を入力する。入力される音波形制御情報とは、電子音楽装置の場合、演奏情報であって、鍵盤から出力されたり、曲データ記憶部から読み出されたりする。
上述した波形データ処理部2において、1音の音波形合成の進行とともに、波形バッファ6から転送した波形データが順次使用されて行くので、順次、1音の後続波形位置の波形データを新たに必要とする。また、異なる音の発音が指示されると、それまで使用されていた波形データが不要になり、新たな音の波形データの転送を必要とする。
The control
In the waveform
そこで、制御データ処理部1の要求作成部12は、信号処理部21から、音波形合成の進行状況の通知を受け、この音波形合成の進行状況に基づいて、波形データ処理部2に取得されて記憶部22に記憶されている、音波形の合成に必要な波形データが残っている量(残量)を計算する。計算結果に応じて、音波形の合成に新たに必要となる波形データを要求するための、第1の転送要求を波形データ供給部3に通知する。この第1の転送要求には、補充すべき波形データの部分を指定する情報が含まれている。
要求作成部12は、第1の転送要求に応じて、第2の転送要求を波形データ処理部2に通知することにより、信号処理部21に対し、波形データを波形バッファ6から転送させる。
Therefore, the
In response to the first transfer request, the
第1の転送要求および第2の転送要求の通知は、音波形合成処理に連動させて、フレーム周期を単位として行うことができる。波形データ処理部2から、フレームに同期した信号の供給を受ければよい。
波形データ処理部2において新たな波形データの転送が必要ないときは、第1の転送要求と第2の転送要求が通知されない。
なお、第1の転送要求および第2の転送要求は、記憶部22における、音波形の合成に必要となる波形データの残量が、例えば、所定量以下になったことに応じて通知してもよい。
また、上述した波形データの残量に代えて、音波形の合成によって消費された波形データの消費量に応じて、第1の転送要求、第2の転送要求を通知してもよい。
The notification of the first transfer request and the second transfer request can be performed in units of frame periods in conjunction with the sound waveform synthesis process. The waveform
When the waveform
The first transfer request and the second transfer request are notified in accordance with the remaining amount of waveform data necessary for sound waveform synthesis in the
Further, instead of the remaining amount of waveform data described above, the first transfer request and the second transfer request may be notified according to the consumption amount of the waveform data consumed by the synthesis of the sound waveform.
要求作成部12は、また、入力された音波形制御情報に基づいて、以後の音波形合成において新たに必要となると予測される波形データを、予め、波形データ記憶装置4から読み出すように、記憶媒体読出制御部31に読出要求を通知する。読み出せる波形データは、記憶部32から波形バッファ6に波形データが転送された後の空き容量以下になる。
一方、制御パラメータ作成部11は、音波形制御情報および音波形合成状態に基づいて、制御パラメータを作成し、波形データ処理部2に通知する。制御パラメータの通知も、音波形合成処理に連動させて、フレーム周期を単位として行うことができる。
The
On the other hand, the control
波形データ供給部3は、第1の転送要求の通知を受けて、記憶部32から音波形の合成に新たに必要となる波形データを、波形バッファ6に転送する。
波形データ処理部2は、第2の転送要求の通知を受けて、波形バッファ6から波形データを記憶部22に転送する。
波形データ供給部3の具体的構成を説明する。
波形データ供給部3は、波形データバス(第2のバス)30を有し、この波形データバス30に、記憶媒体読出制御部31と、記憶部(第2の記憶部)32と、転送制御部(第2の転送制御部)33が接続されている。
In response to the notification of the first transfer request, the waveform
The waveform
A specific configuration of the waveform
The waveform
転送制御部33は、上述した第1の転送要求の通知を受けて、記憶部32からこの記憶部32に記憶された波形データの少なくとも一部を波形バッファ6に転送する。
上述した記憶媒体読出制御部31は、上述した読出要求の通知を受けて、波形データ記憶装置4の記憶媒体から波形データを読み出して記憶部32に転送する。
波形データバス30では、波形バッファ6を介して波形データ処理部2へ転送する波形データが、音波形合成処理に際して不足しないようにするため、記憶部32からの波形データの転送が、記憶部32への波形データの転送よりも高い優先度で行われるように、バス・アービトレーションがなされる。
この波形データバス30においても、波形データをフレーム単位で転送すれば、バーストモード転送ができるので、高速で効率よく転送できる。上述した第1の転送要求がフレーム単位で通知されるので、これに直ちに応答すればよい。あるいは、波形データ処理部2等から、フレームに同期した信号の供給を受ければよい。
In response to the notification of the first transfer request described above, the
The storage medium read
In the waveform data bus 30, the waveform data transferred from the
Also in the waveform data bus 30, if the waveform data is transferred in units of frames, burst mode transfer can be performed, so that transfer can be efficiently performed at high speed. Since the first transfer request described above is notified in units of frames, it is sufficient to respond immediately. Alternatively, a signal synchronized with the frame may be received from the waveform
制御データ処理部1は、上述した音波形制御情報の入力を開始する以前に、記憶媒体読出制御部31に対し読出要求を通知することにより、波形データ記憶装置4の記憶媒体から、音波形制御情報の入力開始時に必要になると予測される波形データを、予め、記憶部32に転送させておくとよい。
音波形制御情報の入力が開始されれば、開始後の音波形合成に必要となる波形データを、短時間で、記憶部32から波形バッファ6を介して記憶部22に転送できる。
The control
When the input of the sound waveform control information is started, the waveform data necessary for the sound waveform synthesis after the start can be transferred from the
波形データ処理部2において、音波形の合成が同時に複数のチャンネルについて行われる場合、制御データ処理部1には、各チャンネル別に、音波形合成状態と音波形合成の進行状況の情報が通知される。制御パラメータ作成部11は、各チャンネル別に制御パラメータを波形データ処理部に通知し、要求作成部12も、各チャンネル別に第1の要求、第2の要求を通知する。波形データ供給部3は、各チャンネル別に波形データを読み出し、各チャンネル別に波形データを波形バッファ6に供給する。
When the waveform
上述した説明では、制御パラメータ,第2の転送要求,音波形合成状態,音波形合成の進行状況,第1の転送要求は、音波形合成処理に連動させて、フレーム周期を単位として通知することを説明した。しかし、フレーム周期を単位として通知することは必ずしも要しない。
これに対し、波形データ供給部3から波形バッファ6への波形データの転送、および、波形バッファ6から波形データ処理部2への波形データの転送に関しては、フレーム周期を単位として転送することが好ましい。フレーム周期を単位として転送すれば、1回で転送される波形データの容量がある程度大きなサイズになるので、オーバヘッドが相対的に小さくなり、また、バーストモード転送ができるので、転送効率が良くなる。
In the above description, the control parameter, the second transfer request, the sound waveform synthesis state, the progress status of the sound waveform synthesis, and the first transfer request are notified in units of the frame period in conjunction with the sound waveform synthesis process. Explained. However, it is not always necessary to notify the frame period as a unit.
On the other hand, regarding the transfer of the waveform data from the waveform
図2は、図1に示した実施の一形態を、波形メモリ音源方式の電子音楽装置に適用した具体例を示す構成図である。図中、図1と同様な部分には同じ符号を付している。
制御データ処理用のCPUバス41、図1の信号処理バス20に対応したDSPバス42、図1の波形データバス30に対応したHDDバス43からなる、3バス構成による電子音楽装置である。インターフェース部5の、共有メモリ45経由で各バス間のデータ転送を行うことにより、1本のバスでのアクセス競合の発生をなくすとともに、バスの混雑を緩和する。
FIG. 2 is a block diagram showing a specific example in which the embodiment shown in FIG. 1 is applied to a waveform memory sound source type electronic music apparatus. In the figure, the same parts as those in FIG.
This is an electronic music apparatus having a three-bus configuration comprising a control data processing CPU bus 41, a DSP bus 42 corresponding to the signal processing bus 20 of FIG. 1, and an HDD bus 43 corresponding to the waveform data bus 30 of FIG. By transferring data between the buses via the shared memory 45 of the
制御データ処理部1,波形データ処理部2,波形データ供給部3は、インターフェース部5により、フレーム周期を単位として動作する。
インターフェース部5は、共有メモリ45と、IRQ#2用のハードウエア割り込み線を有する。一方、IRQ#1は、CODEC52からDSP50へのハードウエア割り込みであって、64サンプル(1フレーム)毎に発生する。IRQ#1は、DSP50のフレーム処理のトリガになる。これに対し、IRQ#2は、DSP50からCPU46へのハードウエア割り込みであって、1フレーム毎に発生するが、IRQ#1とは別のタイミングで発生し、CPU46のフレーム処理のトリガになる。
The control
The
制御データ処理部1は、CPUバス41を備え、これに、図1に示した、制御パラメータ作成部11,要求作成部12の機能を実現するCPU46、ワークRAM47、演奏情報(音波形制御情報)を入力するMIDI(Musical Instrument Digital Interface)インターフェース48、電源投入時にワークRAM47にCPU制御プログラムをロードするブートROM49等が接続される。CPU46がMIDIインターフェースを備える場合は、これを、MIDIインターフェース48に置き換えることができる。
本発明に直接関係しない入力操作子や表示器、入出力インターフェース、エフェクタLSI等のブロックについては、図示を省略している。
The control
Blocks such as an input operator, a display, an input / output interface, and an effector LSI that are not directly related to the present invention are not shown.
CPU46は、ワークRAM47から処理プログラムを読み出し、一時データの格納のためにワークRAM47を読み書きし、必要に応じて共有メモリ45を読み書きする。CPU46はCPUバス41を占有する。
CPUバス41のデータ転送能力は、主にワークRAM47上の処理プログラムの実行時に、CPU46に読み込む(命令fetch)ために使われる。
The
The data transfer capability of the CPU bus 41 is mainly used for reading (instruction fetch) into the
波形データ処理部2は、DSPバス42に、図1の信号処理部50として機能するDSP50、記憶部22として機能するワークRAM51、電源投入時にワークRAM51に制御プログラムをロードするブートROM53等が接続されている。DSP50には、音波形出力部として機能するCODEC52が接続される。
DSP50は、ワークRAM51から制御プログラムを読み出し、一時データの格納のためにワークRAM51を読み書きし、必要に応じて共有メモリ45を読み書きする。DSP50は、DSPバス42を占有する。
The waveform
The
DSP50による、楽音波形合成処理は、繰り返し処理(ループ処理)を基本とする比較的単純な処理アルゴリズムを持つ。特に繰り返し処理に相当するプログラムは、DSP50内にある命令キャッシュに収まる小さなものであるため、命令fetchは、DSPバス42の帯域をほとんど使わない。
転送能力の大半は、波形バッファ共有メモリ58から波形データをワークRAM51に転送するため、および、DSP50とワークRAM51間で処理データを転送するために使用される。
The musical sound waveform synthesis processing by the
Most of the transfer capability is used to transfer waveform data from the waveform buffer shared
ワークRAM51は、最大同時発音チャンネル数分に相当する個数の一時波形データをチャンネル毎に格納している。各チャンネルは、「管理情報」+「4096サンプル分の部分波形」を格納できるバッファで構成される。
CODEC52を介さずに、ディジタル出力することもできる。CPUバス41にエフェクタLSIが接続されてCPU46で制御される場合、DSP50で合成された楽音波形データは、このエフェクタLSIの入力端子に供給されて、エフェクトが付加された後に、D/A変換されて出力される。
The
Digital output is also possible without going through the
一方、波形データ供給部3は、HDDバス43に、図1に示した記録媒体読出制御部31の機能を実現するHDC59、記憶部32の機能を実現するワークRAM60、転送制御部33の機能を実現するDMAC(Dynamic Memory Access Controller)61が接続されている。
図1に示した波形データ記憶装置4として、遅延時間(レイテンシ)が大きいが、大容量の波形データを記憶できるHDD44を用いる。
HDD44は、大容量の波形データが蓄積可能であるだけでなく、高速でデータ転送が可能である。最近のHDD44の場合、連続読出(sequential access)時には30〜40Mbyte/sec程度、不連続読出(random access)時には10〜20Mbyte/sec程度の性能が一般的である。
しかし、読み出しを要求してから読み出しが開始されるまでの遅延時間は非常に大きく、数10ms程度になる。しかし、実時間で楽音を発生させたい場合には、発音されるまでの遅延時間を、およそ10ms以内に収める必要がある。
On the other hand, the waveform
As the waveform
The
However, the delay time from when the read is requested to when the read is started is very large, about several tens of ms. However, in order to generate a musical sound in real time, it is necessary to keep the delay time until the sound is generated within about 10 ms.
そのため、HDD44から波形データを読出してワークRAM60に一時格納している。
HDDバス43上の転送は、HDD44からワークRAM60への波形データの転送と、ワークRAM60から波形バッファ58への波形データの転送が主である。
波形データの少なくとも1部は、転送期間を異ならせて、HDDバス43上を2度転送されることになる。
HDD44からワークRAM60へ転送するのは、新たに必要になると予測される波形データであるので、全てがワークRAM60から波形バッファ58に転送されるわけではない。従って、単位時間あたりの転送量(バスの帯域使用量)を比較すると、ワークRAM60から波形バッファ58への波形データの単位時間あたりの転送量は、HDD44からワークRAM60への波形データのそれに比べて小さいものである。
しかも、ワークRAM60から波形バッファ58への転送の単位時間あたりの回数(例えば、1フレームに1回)は、HDD44からワークRAM60への転送の単位時間あたりの回数よりも多いので、1回あたりの転送量も小さく、小出しの転送となる。
その結果、DSPバス42とHDDバス43とを設けることにより、波形データ転送のDSPバス42に与える負担を軽減している。
Therefore, the waveform data is read from the
The transfer on the HDD bus 43 is mainly a transfer of waveform data from the
At least a part of the waveform data is transferred twice on the HDD bus 43 with different transfer periods.
Since what is transferred from the
In addition, the number of transfers from the
As a result, by providing the DSP bus 42 and the HDD bus 43, the burden on the DSP bus 42 for waveform data transfer is reduced.
ワークRAM60は、システム起動時などにおいて、例えば、発音される可能性のある楽音波形の先頭部分(例えば、0.5秒分)を、全ての音色の、全てのキーコード(演奏される鍵盤上の全て鍵の音高)毎に静的に格納するメモリとともに、最大同時発音チャンネル数に相当する個数のリングバッファで実現される。なお、静的に格納するメモリは、各チャンネルに共通のものとすることができる。
リングバッファの記憶容量は一定であり、読み出しアドレスと書き込みアドレスが循環的に移動する。新たに書き込まれる波形データによって、古い波形データが順番に上書きされる。各リングバッファは、例えば、1.5秒分の波形データを格納する。
ワークRAM60の管理情報は、制御データ処理部1側のCPU46が持つ。
The
The storage capacity of the ring buffer is constant, and the read address and write address move cyclically. Old waveform data is overwritten in order by newly written waveform data. Each ring buffer stores, for example, 1.5 seconds of waveform data.
The management information of the
共有メモリ45は、2つのバス間に接続され、2つのバスを論理的に結合し、いずれのバスからもアクセス可能なメモリであり、データを受け渡す窓口となる。共有メモリ45に対し、各バスから自由なタイミングで、非同期の書き込み・読み出しができる。
共有メモリを実現するには、デュアルポート(dual port)RAMを用いたり、FIFO(First In First Out)を用いたり、あるいは、RAMを、高速のクロックにより2つのバスに交互にスイッチング接続して、2つのバスで時分割使用してもよい。共有メモリ45は、専用のハードウエアで実現される。共有メモリ45は、FPGA(Field Programmable Gate Array)で機能を実現することもできる。その際、DMAC61の機能を組み込むことができる。
The shared memory 45 is connected between two buses, logically couples the two buses and is accessible from either bus, and serves as a window for transferring data. Asynchronous writing / reading can be performed on the shared memory 45 at any timing from each bus.
To realize shared memory, use dual port RAM, use FIFO (First In First Out), or connect RAM to two buses alternately by high-speed clock. You may use time division by two buses. The shared memory 45 is realized by dedicated hardware. The shared memory 45 can also realize a function with an FPGA (Field Programmable Gate Array). At this time, the function of the
インターフェース部5は、波形バッファ6による波形データの転送に加え、音源パラメータと音源状態の転送、読出要求と転送要求の転送については、共有メモリである、波形バッファ共有メモリ58、音源パラメータ共有メモリ54、音源状態共有メモリ55、読出要求共有メモリ56、転送要求共有メモリ57で実現する。
音源パラメータ共有メモリ54および音源状態共有メモリ55は、CPUバス41とDSPバス42とに接続され、読出要求共有メモリ56と転送要求共有メモリ57とは、CPUバス41とHDDバス43とに、波形バッファ共有メモリ58は、HDDバス43とDSPバス42とに接続される。
波形バッファ共有メモリ58は、リングバッファで実現され、ワークRAM60に格納された波形データの一部を保持する。
波形バッファ共有メモリ58の管理情報は、CPU46が持つ。リングバッファ上には波形データのみが格納される。
In addition to the transfer of the waveform data by the waveform buffer 6, the
The sound source parameter shared
The waveform buffer shared
The management information of the waveform buffer shared
ここで、音源パラメータについて説明する。
図2でいう「音源パラメータ」は、「通常の音源パラメータ」(図1でいう制御パラメータ)に加えて、「波形バッファ共有メモリ58からワークRAM51への転送」(図1でいう第2の転送要求)を指示するパラメータを含む。
「通常の音源パラメータ」とは、キーオン、ノートナンバ、エンベロープレベル等である。
音源パラメータは、フレーム周期を単位として書き換わり、音源パラメータ共有メモリ54の先頭から、「パケットサイズ+パケットボディ(16bit×n)」(nは正の整数)のフォーマットで書き込まれる。あるフレーム周期において、転送すべき音源パラメータがない場合は、パケットサイズを0と書き込む。上述したパケットボディには、複数の音源パラメータが格納できる。
Here, the sound source parameters will be described.
“Sound source parameter” in FIG. 2 is “normal transfer source parameter” (control parameter in FIG. 1) and “transfer from waveform buffer shared
“Normal sound source parameters” include key-on, note number, envelope level, and the like.
The sound source parameters are rewritten in units of frame periods, and are written in the format of “packet size + packet body (16 bits × n)” (n is a positive integer) from the head of the sound source
「転送要求」について説明する。
ワークRAM60から波形バッファ共有メモリ58への転送を要求するときに、この「転送要求」が通知される。
「ワークRAM60上の転送開始アドレス」+「転送サイズ」+「転送先の発音チャンネル」で構成される。
The “transfer request” will be described.
When a transfer from the
It consists of “transfer start address on
「音源状態」について説明する。
図2でいう「音源状態」は、各発音チャンネルの「通常の音源状態」(図1でいう、音波形合成状態)に加えて、「楽音波形合成の進行状況」(図1でいう、音波形合成の進行状況)を示す情報を含む。
「通常の音源状態」とは、通常の音源装置において規定されているのと同様な、キーオン状態、振幅エンベロープの現在状態などである。
これに対し、「楽音波形合成の進行状況」を示す情報とは、例えば、楽音合成で現在処理されている波形位置のデータである。波形位置は、ノートオン時の位置を基準点0とした発音位置である。例えば、現時点までの累積サンプル数で表現される。
音源状態共有メモリ55は、同時発音可能な発音チャンネル毎の、各音源の状態を示すマップであって、メモリアドレスは予め決まっている。
The “sound source state” will be described.
The “sound source state” as shown in FIG. 2 includes “normal sound source state” (sound waveform synthesis state as shown in FIG. 1) of each tone generation channel, and “progression state of musical sound waveform synthesis” (as shown in FIG. Information indicating the progress of shape synthesis).
The “normal sound source state” refers to a key-on state, a current state of an amplitude envelope, and the like as defined in a normal sound source device.
On the other hand, the information indicating the “progress status of the musical sound waveform synthesis” is, for example, data on the waveform position currently processed in the musical sound synthesis. The waveform position is a sound generation position with the position at the time of note-on as the reference point 0. For example, it is expressed by the cumulative number of samples up to the present time.
The sound source
図3は、図2に示した具体例における各部の処理タイミングの一例を説明するシーケンス図である。
MIDIイベントに同期した処理、HDDの読出関連処理、IRQ#2に同期した処理、IRQ#1に同期した処理、CODEC処理に分けられる。
図中、MIDIイベントに同期した処理と、HDDの読出関連処理と、その他の処理はそれぞれ時間単位が異なる。
DSP50における楽音波形合成は、フレーム周期を単位として信号処理を行う。サンプリングクロックを44.1kHzとし、64サンプルを1フレームとすると、1フレーム期間は約1.45msecとなる。
FIG. 3 is a sequence diagram illustrating an example of processing timing of each unit in the specific example illustrated in FIG.
It can be divided into processing synchronized with MIDI events, processing related to HDD reading, processing synchronized with
In the figure, processes synchronized with MIDI events, HDD-related processes, and other processes have different time units.
Musical sound waveform synthesis in the
CPU46の動作に必要なプログラムおよびデータは、Boot ROM49に格納されているものとし、システム起動時に、ワークRAM47に転送されて実行を開始する。
DSP50に関しても同様で、DSP50の動作に必要なプログラムおよびデータは、Boot ROM53に格納され、システム起動時に、ワークRAM51に転送されて実行を開始する。
実時間で楽音を発生させる場合は、予め、システム起動時などにおいて、CPU46から読出要求を通知することにより、発音に使われる可能性のある全ての波形データの、先頭部分の波形を、HDD44からHDC59を介してRAM60へ転送しておき、楽音合成処理中は、これらの波形データをRAM60に保持しておく。
無音の状態から、演奏情報「ノートオン」を受信して1音分の発音が開始され、途中で、演奏情報「エクスプレッション」を受信して音量が変化し、最後に、演奏情報「ノートオフ」の受信で発音が止まるという単純な演奏情報を例に説明する。
It is assumed that programs and data necessary for the operation of the
The same applies to the
When generating a musical sound in real time, a read request is notified from the
From the silent state, the performance information “Note On” is received and sound generation for one sound is started. During the middle, the performance information “Expression” is received and the volume changes. Finally, the performance information “Note Off” An example of simple performance information in which the pronunciation stops upon reception of a song will be described.
図3(a)に示すように、演奏情報(音波形制御情報)71,75,77をMIDIデータとして受信し、ワークRAM47に入力する。
図3(b)に示すように、CPU46は、MIDIのノートオン、ノートオフ、コントロールチェンジ、ピッチベンド等のイベントをトリガにして、音源パラメータ作成処理を行う。
図示を省略したが、発音中において、音源パラメータは、5〜20msecのタイマー割り込みによっても作成される。
音源パラメータは、MIDIのような演奏データ、および、既に説明した、キーオン状態、振幅エンベロープの現在状態など「通常の音源状態」(音波形合成状態)に基づいて作成される。
CPU46は、音源パラメータ72,76,78をワークRAM47上に作成する。この作成処理に要する時間は一定しない。
CPU46は、HDD44の読出制御の処理をする。受信したMIDIデータに基づいて、以後の楽音波形合成に新たに必要となる波形データを予測する。
As shown in FIG. 3A, performance information (sound waveform control information) 71, 75, 77 is received as MIDI data and input to the
As shown in FIG. 3B, the
Although illustration is omitted, the sound source parameter is also generated by a timer interrupt of 5 to 20 msec during sound generation.
The sound source parameters are created based on performance data such as MIDI, and the “normal sound source state” (sound waveform synthesis state) such as the key-on state and the current state of the amplitude envelope already described.
The
The
図3(c)に示すように、新たに必要となると予測される波形データを、HDD44からワークRAM60へ読み出すための読出要求73を、ワークRAM47から読出要求共有メモリ56に転送する。
例えば、MIDIデータの受信により、ある音高の発音が開始されれば、発音された音高の楽音波形の波形データ、および、この音高からピッチベンド操作がなされて音高が変化する可能性のある範囲の全ての音高(例えば、現在において発音中の音高から、2オクターブ下から2オクターブ上まで)の楽音波形の波形データを、予めHDD44から順次読み出してワークRAM60に格納する。
As shown in FIG. 3C, a
For example, if the sound generation of a certain pitch is started by receiving MIDI data, the waveform data of the sound waveform of the generated pitch, and the pitch bend operation may be performed from this pitch and the pitch may change. Musical tone waveform data of all pitches in a certain range (for example, from the pitch that is currently sounding to 2 octaves lower to 2 octaves higher) are sequentially read out from the
図3(d)に示すように、HDC59は、読出要求共有メモリ56にアクセスし、格納されている、読出要求の通知74を読み出す。
図3(e)に示すように、HDC59は、読出要求に基づいた波形データをHDD44から読み出し、ワークRAM60に転送する。
要求された読出が完了するタイミング79まで、図3(c)に示したCPU46のタスクはブロックされる。従って、波形データの読出が完了すると、CPU46は、次の読出要求80を読出要求共有メモリ56に転送可能になる。
As shown in FIG. 3D, the HDC 59 accesses the read request shared memory 56 and reads the stored read request notification 74.
As shown in FIG. 3E, the HDC 59 reads waveform data based on the read request from the
Until the
次に、IRQ#2に同期した処理を説明する。
図3(k)に示すように、割り込み信号(IRQ#2)91が、DSP50からCPU46に通知される。
図3(f)に示すように、CPU46は、割り込み信号(IRQ#2)91のタイミングで、音源状態共有メモリ55から現フレーム(1)での音源状態(「通常の音源状態」および楽音波形合成の進行状況)92を読み出し、ワークRAM47に書き込む。
CPU46は、現フレーム(1)での音源状態(楽音波形合成の進行状況)92に基づいて、次のフレーム(2)以降のフレームで、DSP50が楽音波形を合成するために必要となる波形データの、ワークRAM51に残っているデータ量(残量)を計算し、新たに必要となる波形データがあれば、これを転送させることを決定する。
Next, processing synchronized with
As shown in FIG. 3 (k), an interrupt signal (IRQ # 2) 91 is notified from the
As shown in FIG. 3 (f), the
The
図3(g)に示すように、CPU46は、転送要求共有メモリ57に、波形データをワークRAM60から波形バッファ58へ転送することを要求する、「転送要求」93を通知する。転送すべき波形データは、後でワークRAM51に転送すべき波形データに対応する。
図3(h)に示すように、波形データ供給部3側のDMAC61は、転送要求共有メモリ57を読み出し、「転送要求」94を取得する。なお、一般的には、DMAC自身がメモリにアクセスしてデータを読み出すことはないが、ここでは、特殊化されたDMAC61を用いるか、共有メモリ45側にDMAC61に通知する機能を持たせることにより、結果としてDMAC61が「転送要求」を取得する。
As shown in FIG. 3G, the
As shown in FIG. 3H, the
図3(i)に示すように、DMAC61は、波形データをワークRAM60から波形バッファ共有メモリ58に転送する。「転送要求」によって通知された転送が完了するまでは、図3(g)に示した転送要求のタスクはブロックされている。
図3(j)に示すように、CPU46は、演奏情報と「通常の音源状態」(音波形合成状態)に基づいて音源パラメータを作成し、ワークRAM47に記憶している音源パラメータを、音源パラメータ共有メモリ54に転送する。
As shown in FIG. 3I, the
As shown in FIG. 3 (j), the
次に、IRQ#1に同期した処理を説明する。
図3(p)に示すように、割り込み信号(IRQ#1)81,86,…は、1フレーム毎に発生し、DSP50に供給される。
図3(l)に示すように、DSP50は、音源パラメータ共有メモリ54に転送された音源パラメータ82,87,…を、ワークRAM51に転送する。
なお、音源パラメータは、データサイズが小さいため、ワークRAM51に転送する代わりに、DSP50の内部RAMに転送してもよい。
Next, processing synchronized with
As shown in FIG. 3 (p), the interrupt signals (IRQ # 1) 81, 86,... Are generated every frame and supplied to the
As shown in FIG. 3L, the
The sound source parameters may be transferred to the internal RAM of the
図3(m)に示すように、DSP50は、現フレーム(1)での最新の音源状態83,88,…を、ワークRAM51から音源状態共有メモリ55に転送する。転送された音源状態は、先に説明したように、図3(f)に示したタイミングで、制御データ処理部1の側のRAM47に転送されることになる。
なお、音源状態はデータサイズが小さいため、ワークRAM51の代わりにDSP50の内部RAMから転送してもよい。
図3(n)に示すように、波形バッファ共有メモリ58に記憶されている波形データ84,89をワークRAM51に転送する。この転送制御は、DSP50の本体自身が直接的に実行してもよいし、本実施例のようにDSP50にDMAC(転送制御部23)が内蔵されている場合は、この内蔵DMACが、DSP50の本体からの指示で転送制御をしてもよい。
As shown in FIG. 3 (m), the
Since the sound source state has a small data size, it may be transferred from the internal RAM of the
As shown in FIG. 3 (n), the
ここで、波形バッファ共有メモリ58に記憶されていた波形データとは、図3(c)に示した読出要求73に応答してワークRAM60に読み出された図3(e)に示した波形データ(ただし、図3では、フレーム(1)の時刻よりも以前の、図示しない読み出しによる波形データ)が、図3(i)の波形データ95のタイミングで波形バッファ共有メモリ58に記憶されたものである。
すなわち、ワークRAM60に予め記憶されていた波形データのうち、次のフレーム(2)以降で必要となる波形データを、図3(f)に示された、現フレーム(1)での最新の音源状態(楽音波形合成の進行状況)92に基づいて決定し、波形バッファ共有メモリ58に記憶する。
Here, the waveform data stored in the waveform buffer shared
That is, of the waveform data stored in advance in the
その結果、図3(n)において、ワークRAM51に転送される波形データ84は、次のフレーム(2)以降で必要となる波形データである。
また、フレーム(2)の期間においては、新たな波形データの転送が必要ないと判定されたので、図3(g)に示すように、波形データの転送要求が作成されなかった。そのため、図3(i)に示すように、波形データは波形バッファ共有メモリ58に転送されず、フレーム(3)の期間において、図3(n)に示すように、ワークRAM51に波形データが転送されない。
As a result, in FIG. 3 (n), the
In addition, during the period of frame (2), it was determined that transfer of new waveform data was not necessary, so that no waveform data transfer request was created as shown in FIG. Therefore, the waveform data is not transferred to the waveform buffer shared
図3(o)に示すように、DSP50は、ワークRAM51に記憶された音源パラメータ(通常の音源パラメータ)82および波形データ84を読み出し、これらに基づいて、RAM51上で、次のフレーム(2)における64サンプル分の楽音合成処理を行う。
同時発音可能な発音チャンネル毎に順番に1フレーム分の楽音合成処理をし、既に楽音合成処理されたチャンネルの累算波形に新たに楽音合成されたチャンネルの楽音波形を加算して行く。
CODEC52は、ワークRAM51に格納された1フレーム分の楽音合成波形を、1サンプルずつD/A変換して合成音を出力する。
As shown in FIG. 3 (o), the
The musical tone synthesis process for one frame is performed in order for each of the sound generation channels that can be produced simultaneously, and the musical tone waveform of the newly synthesized musical tone channel is added to the accumulated waveform of the channel that has already been synthesized.
The CODEC 52 D / A converts the musical tone synthesis waveform for one frame stored in the
上述した説明において、DSPバス42上において、図3(l),図3(n)に示したように、波形データの波形バッファ共有メモリ58からワークRAM51への転送期間と、DSP50がワークRAM51との間で楽音波形合成のためのデータ転送をする期間とは、DSP50がバス・アービトレーションをすることにより、順番に行われ、転送期間が重なることはない。
In the above description, on the DSP bus 42, as shown in FIGS. 3 (l) and 3 (n), the waveform data is transferred from the waveform buffer shared
これに対し、HDDバス上においては、図3(i)に示したDMAC61による、ワークRAM60から波形バッファ共有メモリ58への転送が、図3(e)に示したHDC59からワークRAM60への波形データ転送よりも高い優先度で行われるように制御する。
その結果、競合するときは、HDC59からワークRAM60への波形データ転送に割り込んで、ワークRAM60から波形バッファ共有メモリ58への転送が行われるようにバス・アービトレーション制御をする。
この優先制御により、HDD44からの読出処理が、波形データ処理部2による楽音波形合成処理の遂行に影響を与えないようにする。
On the other hand, on the HDD bus, the transfer from the
As a result, when there is a conflict, the bus arbitration control is performed so that the waveform data transfer from the HDC 59 to the
This priority control prevents the reading process from the
図2において、仮に、波形バッファ共有メモリ58が設けられないで、HDDバス43がDSPバス42と直結され、DSP50によってバス・アービトレーションを行うとすると、HDC59からワークRAM60へ転送された予測波形データのうち、少なくとも一部の、現実に必要となった波形データが、ワークRAM60からワークRAM51へ再び転送されることになる。従って、所定転送量の最大2倍の波形データが、DSPバス42を流れることになる。DSPバス42は、もともとかなりの量のデータを転送しているため、DSPバス42上の転送が混雑して、転送の遅延によって、DSP50の楽音波形合成処理に支障を来す。
これに対し、図2に示したような、波形バッファ共有メモリ58が設けられた構成では、DSPバス42の転送能力が損なわれない。
In FIG. 2, if the waveform buffer shared
On the other hand, in the configuration provided with the waveform buffer shared
上述した説明では、図3(e)に示した波形データ読み出し処理が完了したことに同期して、図3(c)に示した読出要求を行っている。これに代えて、共有メモリ45に、読み出し完了通知を格納する共有メモリを新たに設け、この共有メモリを介してHDC59から読み出し完了通知をCPU46に通知することにより、読み出し処理と読み出し要求とを非同期で動作させてもよい。
同様に、図3(g)に示した波形転送要求についても、共有メモリ45に、波形転送完了通知を格納する共有メモリを新たに設け、この共有メモリを介してHDC59から波形転送完了通知をCPU46に通知することにより、波形転送処理と波形転送要求とを非同期で動作させてもよい。
In the above description, the readout request shown in FIG. 3C is made in synchronization with the completion of the waveform data readout processing shown in FIG. Instead, a shared memory for storing a read completion notification is newly provided in the shared memory 45, and a read completion notification is notified from the HDC 59 to the
Similarly, for the waveform transfer request shown in FIG. 3G, the shared memory 45 is newly provided with a shared memory for storing the waveform transfer completion notification, and the waveform transfer completion notification is sent from the HDC 59 via this shared memory to the
上述した説明では、図3(c),(d)に示したように、読出要求共有メモリ56を用いた。これに代えて、読出要求をCPU46からHDC59に通知するために、割り込み信号を用いてもよい。
同様に、図3(g),(h)に示したように、転送要求共有メモリ57を用いる代わりに、転送要求を通知するために、割り込み信号を用いてもよい。
In the above description, as shown in FIGS. 3C and 3D, the read request shared memory 56 is used. Instead, an interrupt signal may be used to notify the HDC 59 of a read request from the
Similarly, as shown in FIGS. 3G and 3H, instead of using the transfer request shared memory 57, an interrupt signal may be used to notify a transfer request.
上述した説明では、音源パラメータおよび音源状態の通知のために、共有メモリを用いた。これに代えて、図5に示した再生音発生部131のように、DSP42を、CPUバス41に接続されるI/Oポートが設けられたものにすれば、DSPバス42とCPUバス41の両方に接続されるようになるから、音源パラメータ共有メモリ54,音源状態共有メモリ55を必要としない。
また、読み出し要求および転送要求の通知についても、図5に示したSCSIインターフェース129のように、HDC59,DMAC61を、CPUバス41に接続されるI/Oポートが設けられたものにすれば、共有メモリを要しない。
In the above description, the shared memory is used for notification of the sound source parameters and the sound source state. Instead, if the DSP 42 is provided with an I / O port connected to the CPU bus 41 as in the reproduced
As for the notification of the read request and the transfer request, if the HDC 59 and the
上述した説明では、CPU46の動作に必要な処理プログラム、DSP50の動作に必要な処理プログラムは、それぞれ、ブートROM49,53に格納されており、システム起動時に、ワークRAM47,51にロードされるものとして説明した。
これに代えて、ブートROM49,53には、ブートローダのみを記憶するようにし、HDD44に処理プログラムを格納しておいてもよい。システム起動時に、ブートローダが、HDD44からプログラムを読み出し、ワークRAM47,51にロードしてもよい。
HDD44からプログラムをロードするためには、共有メモリ45に、プログラム転送用のデータバッファを設ければよい。
In the above description, the processing program necessary for the operation of the
Instead, only the boot loader may be stored in the
In order to load a program from the
上述した説明では、波形データ記憶装置として、HDDを例示して説明したが、読み出しに時間がかかる記憶媒体であっても、大容量の記憶装置であればよい。例えば、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical Disk),DVD(Digital Versatile Disk)などの記憶媒体の再生装置、アクセス遅延時間の大きな低速のRAMなどでもよい。USB2.0 Flash Memoryでもよい。
上述した説明では、リアルタイムで入力されるMIDIメッセージなどの演奏情報を処理して楽音波形を合成する具体例を説明した。
In the above description, the HDD has been exemplified as the waveform data storage device. However, even a storage medium that takes time to read may be a large-capacity storage device. For example, a playback device for a storage medium such as a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto Optical Disk), a DVD (Digital Versatile Disk), or a low-speed RAM with a large access delay time may be used. USB2.0 Flash Memory may be used.
In the above description, a specific example has been described in which musical tone information is synthesized by processing performance information such as MIDI messages input in real time.
しかし、記憶装置に記憶されたSMF(Standard MIDI File)などの楽曲データを再生して楽音波形を合成することもできる。この場合、楽曲データ中に含まれている時間情報(デュレーション情報)に応じて、一旦リアルタイムのMIDIデータに変換すれば、上述した具体例と同様に、楽音波形を合成することができる。
また、時間情報を含めて音源パラメータ(制御パラメータ)として、DSP50に通知し、DSP50において、時間情報を解釈して楽音波形を合成するようにしてもよい。
この場合、予め発音遅延を特定できるため、ワークRAM60の容量を減らすこともできる。
However, it is also possible to synthesize musical tone waveforms by playing back music data such as SMF (Standard MIDI File) stored in the storage device. In this case, once converted into real-time MIDI data according to time information (duration information) included in the music data, a musical sound waveform can be synthesized as in the above-described specific example.
Further, the
In this case, since the pronunciation delay can be specified in advance, the capacity of the
上述した説明では、波形メモリ音源方式で楽音波形を発生させることを前提に説明した。しかし、波形データを素材に用いるものであれば、どのような音源方式にも適用可能である。
例えば、奏法対応高品質音源(AEM:Articulation Element Modeling)に適用できる。
また、自然楽器の楽音を模擬する楽音波形に限らず、人工的に作成された楽音波形であってもよい。また、人声音を音声合成して、歌詞を歌わせたり、音声アナウンスをさせたりする場合にも、音波形を合成する方式であれば、同様に適用できる。
すなわち、本発明は、楽音信号、人声音等を含む一般的な音を合成する場合に適用できる。
The above description is based on the assumption that a musical sound waveform is generated by the waveform memory sound source method. However, any sound source method can be applied as long as waveform data is used as a material.
For example, it can be applied to high-quality sound source (AEM: Articulation Element Modeling).
Further, not only a musical sound waveform that simulates a musical sound of a natural musical instrument, but a musical sound waveform that is artificially created may be used. In addition, when synthesizing human voices and singing lyrics or making voice announcements, any method that synthesizes sound waveforms can be similarly applied.
That is, the present invention can be applied when synthesizing general sounds including musical tone signals, human voice sounds, and the like.
1…制御データ処理部、2…波形データ処理部、3…波形データ供給部、4…波形データ記憶装置、5…インターフェース部、6…波形バッファ
DESCRIPTION OF
Claims (2)
波形データ処理手段と、波形データ供給手段と、波形バッファと、制御データ処理手段を有し、
前記波形バッファは、該波形データ処理手段と該波形データ供給手段との間に接続され、
前記制御データ処理手段は、
前記外部から前記音波形制御情報を入力し、該音波形制御情報に応じて、前記波形データ処理手段における以後の音波形合成において新たに必要となると予測される波形データを前記記憶媒体から読み出させるための読み出し要求を作成し、該読み出し要求を前記波形データ供給手段に通知し、かつ、
前記波形データ処理手段から、現時点において音波形合成のための信号処理をしている波形位置を表す音波形合成の進行状況の通知を受け、該音波形合成の進行状況に基づいて音波形合成に新たに必要となる波形データを前記波形バッファに転送することを要求する第1の転送要求を作成し、該第1の転送要求を前記波形データ供給手段に通知し、かつ、
前記波形データ処理手段から、現時点において音波形合成のためにしている信号処理の内容を表す音波形合成状態の通知を受け、前記外部から入力した音波形制御情報と前記音波形合成状態に基づいて制御パラメータを作成し、該制御パラメータと、前記第1の転送要求に応じた第2の転送要求を、前記波形データ処理手段に通知するものであり、
前記波形データ供給手段は、
前記制御データ処理手段から前記第1の転送要求の通知を受けて、複数サンプルを1フレームとして、フレーム周期を単位として、前記記憶媒体から読み出された波形データを前記波形バッファに転送するものであり、
前記波形データ処理手段は、
前記制御データ処理手段から前記第2の転送要求の通知を受けて、前記フレーム周期を単位として、前記波形バッファから前記波形データを自身に転送し、
前記制御データ処理手段から取得された前記制御パラメータと前記波形バッファから転送された波形データに基づいて、前記フレーム毎に1フレーム分の音波形を合成するとともに、前記音波形合成状態と前記音波形合成の進行状況を前記制御データ処理手段に通知するものである、
ことを特徴とする音波形合成装置。 In a sound waveform synthesizer that inputs sound waveform control information from the outside and performs sound waveform synthesis based on waveform data stored in a large-capacity storage medium.
A waveform data processing means, a waveform data supply means, a waveform buffer, and a control data processing means;
The waveform buffer is connected between the waveform data processing means and the waveform data supply means ,
Before Symbol control data processing means,
The sound waveform control information is input from the outside , and waveform data predicted to be newly required in subsequent sound waveform synthesis in the waveform data processing means is read from the storage medium in accordance with the sound waveform control information. Creating a read request to notify the waveform data supply means of the read request, and
The waveform data processing means is notified of the progress status of the sound waveform synthesis representing the waveform position that is currently being processed for sound waveform synthesis, and the sound waveform synthesis is performed based on the progress status of the sound waveform synthesis. Creating a first transfer request for requesting transfer of newly required waveform data to the waveform buffer, notifying the waveform data supply means of the first transfer request; and
Wherein the waveform data processing section receives a notification of the sound waveform synthesis state representing the content of signal processing which is due to the sound waveform synthesis at the present time, on the basis of the sound waveform synthesis conditions and sound waveform control information input from the external create a control parameter, which the control parameter, the second transfer request corresponding to the first transfer request, notifying the waveform data processing section,
The waveform data supply means includes
In response to the notification of the first transfer request from the control data processing means, the waveform data read from the storage medium is transferred to the waveform buffer with a plurality of samples as one frame and a frame period as a unit. Yes ,
The waveform data processing means includes
Upon receiving the notification of the second transfer request from the control data processor, a unit of the frame period, and transfers the waveform data itself from the waveform buffer,
Based on the control parameter acquired from the control data processing means and the waveform data transferred from the waveform buffer, the sound waveform for one frame is synthesized for each frame, and the sound waveform synthesis state and the sound waveform are synthesized. Notifying the control data processing means of the progress of synthesis,
A sound wave synthesizer characterized by the above.
前記波形データ供給手段は、第2のバスと、該第2のバスに接続された記憶媒体読出手段と第2の記憶手段を有し、
前記波形バッファは、前記第1のバスと前記第2のバスの間に接続され、前記第2の記憶手段に記憶された波形データを前記第1の記憶手段に供給するものである、
ことを特徴とする請求項1に記載の音波形合成装置。 The waveform data processing means includes a first bus, signal processing means connected to the first bus, and first storage means,
The waveform data supply means has a second bus, a storage medium reading means connected to the second bus, and a second storage means,
The waveform buffer is connected between the first bus and the second bus, and supplies the waveform data stored in the second storage means to the first storage means.
The sound waveform synthesizer according to claim 1.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004091518A JP4102931B2 (en) | 2004-03-26 | 2004-03-26 | Sound waveform synthesizer |
EP05006393A EP1580729B1 (en) | 2004-03-26 | 2005-03-23 | Sound waveform synthesizer |
DE602005004685T DE602005004685T2 (en) | 2004-03-26 | 2005-03-23 | Sound waveform synthesizer |
CN200510055994.8A CN1674090B (en) | 2004-03-26 | 2005-03-24 | Sound waveform synthesizer |
US11/090,663 US7381879B2 (en) | 2004-03-26 | 2005-03-25 | Sound waveform synthesizer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004091518A JP4102931B2 (en) | 2004-03-26 | 2004-03-26 | Sound waveform synthesizer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005275241A JP2005275241A (en) | 2005-10-06 |
JP4102931B2 true JP4102931B2 (en) | 2008-06-18 |
Family
ID=35174947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004091518A Expired - Fee Related JP4102931B2 (en) | 2004-03-26 | 2004-03-26 | Sound waveform synthesizer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4102931B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015315A (en) * | 2006-07-07 | 2008-01-24 | Casio Comput Co Ltd | Musical sound generating apparatus and musical sound generating program |
-
2004
- 2004-03-26 JP JP2004091518A patent/JP4102931B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005275241A (en) | 2005-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7381879B2 (en) | Sound waveform synthesizer | |
JPH06308964A (en) | Musical tone forming device | |
US20120325073A1 (en) | Flash memory based stored sample electronic music synthesizer | |
JP3637578B2 (en) | Music generation method | |
JP3163984B2 (en) | Music generator | |
JP4102931B2 (en) | Sound waveform synthesizer | |
JP2882311B2 (en) | Music system, sound source and tone synthesis method | |
JP4102930B2 (en) | Sound waveform synthesizer | |
JPH07121181A (en) | Sound information processor | |
JP3918817B2 (en) | Music generator | |
JP3637577B2 (en) | Music generation method | |
JPH08160961A (en) | Sound source device | |
JP2006221209A (en) | Musical tone generator, musical tone generating method and memory medium storing program relating to this method | |
JP6531432B2 (en) | Program, sound source device and acoustic signal generation device | |
JP2765433B2 (en) | Memory playback device | |
JP2000122668A (en) | Digtal sound data processor, and computor system | |
JP5359203B2 (en) | Music processing apparatus and program | |
JPH10312189A (en) | Musical sound generation method | |
JPH02135564A (en) | Data processor | |
JP2005037964A (en) | Waveform generating apparatus and method | |
JP3855710B2 (en) | Digital signal processor for sound waveform data | |
JP3758267B2 (en) | Sound source circuit setting method, karaoke apparatus provided with sound source circuit set by the method, and recording medium | |
JP3659002B2 (en) | Musical sound data processing apparatus and computer system | |
JP3060920B2 (en) | Digital signal processor | |
JP2583377B2 (en) | Automatic performance device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050728 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070309 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070403 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070531 |
|
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: 20080226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080310 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110404 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120404 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130404 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140404 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |