JPH0695677A - Musical sound synthesizing device - Google Patents
Musical sound synthesizing deviceInfo
- Publication number
- JPH0695677A JPH0695677A JP4244381A JP24438192A JPH0695677A JP H0695677 A JPH0695677 A JP H0695677A JP 4244381 A JP4244381 A JP 4244381A JP 24438192 A JP24438192 A JP 24438192A JP H0695677 A JPH0695677 A JP H0695677A
- Authority
- JP
- Japan
- Prior art keywords
- data
- waveform
- memory
- vector
- output
- 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.)
- Pending
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は自然楽器と同様の音色を
高品質に合成出力する電子楽器の楽音合成装置に関す
る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a musical tone synthesizing device for an electronic musical instrument which synthesizes and outputs a tone color similar to that of a natural musical instrument with high quality.
【0002】[0002]
【従来の技術】近年、電子楽器のいわゆる楽音合成装置
にはディジタル技術による合成方式が導入されて、合成
音の品質の向上が著しい。特に、自然楽器の楽音波形を
そのまま記憶しておいて、再生すべき音高に比例した速
度で再生するいわゆるPCM方式に準じた方式が多く使
用されている。このような楽音合成装置は、たとえば、
特開昭52−121313号公報、特開昭51−934
8号公報、あるいは、特開昭51−14015号公報に
詳述されている。2. Description of the Related Art In recent years, a so-called musical tone synthesizing apparatus for electronic musical instruments has been introduced with a synthesizing method by digital technology, and the quality of synthesized speech has been remarkably improved. In particular, a method based on the so-called PCM method, in which the musical tone waveform of a natural musical instrument is stored as it is and is reproduced at a speed proportional to the pitch to be reproduced, is often used. Such a musical sound synthesizer, for example,
JP-A-52-121313, JP-A-51-934
No. 8 or Japanese Patent Laid-Open No. 5114015.
【0003】以下、図面を参照しながら上述の楽音合成
装置について説明する。図9は従来の楽音合成装置の構
成を示すものである。図9において、100はアドレス
発生器、120と121は波形メモリ、130〜132
は加算器、140は乗算器である。The above-mentioned musical tone synthesizer will be described below with reference to the drawings. FIG. 9 shows the configuration of a conventional musical sound synthesizer. In FIG. 9, 100 is an address generator, 120 and 121 are waveform memories, and 130 to 132.
Is an adder and 140 is a multiplier.
【0004】以上のように構成される楽音合成装置につ
いて、以下その動作について説明する。The operation of the tone synthesizer configured as above will be described below.
【0005】波形メモリ120には楽音、例えば、ピア
ノ、ストリングス、あるいは、バスドラムなどの波形デ
ータを記憶させておくことができるが、ここでは、ピア
ノの音を記憶させておくものとする。波形メモリ120
の記憶容量を16MBit、1波形データを16Bi
t、波形アドレスを20Bitとすると、サンプリング
周波数Fsが40kHzの場合には、約26.2秒分の
波形データが記憶されることとなる。本従来例において
は、上述のような条件でサンプリングされたピアノの音
(A=440Hz)の立ち上がりから立ち下がりまでの
波形を記憶しておくものとする。なお、波形メモリ12
1は波形メモリ120と同一の波形データを記憶してい
るものとする。The waveform memory 120 can store waveform data such as musical tones, for example, piano, strings, bass drum, etc. Here, it is assumed that piano sounds are stored. Waveform memory 120
Storage capacity of 16MBit, waveform data of 16Bi
If t and the waveform address are 20 bits, when the sampling frequency Fs is 40 kHz, the waveform data for about 26.2 seconds is stored. In this conventional example, the waveform from the rising edge to the falling edge of the piano sound (A = 440 Hz) sampled under the above conditions is stored. The waveform memory 12
It is assumed that 1 stores the same waveform data as the waveform memory 120.
【0006】音高情報Sが入力されると、アドレス発生
器100は、音高情報Sをサンプリング周波数Fsに対
応したタイミングで累積加算して得られるアドレスA0
〜A29を出力する。音高情報SとアドレスA0〜A29と
のデータの対応を図10に示す。When the pitch information S is input, the address generator 100 cumulatively adds the pitch information S at a timing corresponding to the sampling frequency Fs to obtain an address A0.
~ Outputs A29. The correspondence between the pitch information S and the data of the addresses A0 to A29 is shown in FIG.
【0007】アドレス発生器100から出力されるアド
レスの内、アドレスA10〜A29は波形メモリ120と加
算器130とへ供給され、アドレスA0〜A9は乗算器1
40へ供給される。加算器130において値1だけ増加
されたアドレスA10〜A29は波形メモリ121に供給さ
れる。Of the addresses output from the address generator 100, the addresses A10 to A29 are supplied to the waveform memory 120 and the adder 130, and the addresses A0 to A9 are the multiplier 1
40. The addresses A10 to A29 increased by the value 1 in the adder 130 are supplied to the waveform memory 121.
【0008】波形メモリ120に供給されるアドレスA
10〜A29は、波形メモリ120内の波形アドレスWA0
〜WA19として使用され、対応する波形アドレスに記憶
された波形データWiが出力される。他方において、波
形メモリ121に供給される値1だけ増加されたアドレ
スA10〜A29は、波形メモリ121内の波形アドレスW
A0〜WA19として使用され、対応する波形アドレスに
記憶された波形データWi+1が出力される。波形データ
WiとWi+1とは実質的に隣合う波形データであり、加算
器131において、差分(Wi+1−Wi)が演算出力され
る。差分(Wi+1−Wi)は、乗算器140において、ア
ドレスA0〜A9を小数部とした乗算がなされた後に加算
器132において、波形データWiと加算され、波形値
Wとして出力される。以上の動作により、波形データW
iとWi+1とについての、アドレスA0〜A9による直線補
間値Wが演算されることとなる。以上の各データの対応
を図9と図10とに示す。Address A supplied to the waveform memory 120
10 to A29 are the waveform address WA0 in the waveform memory 120.
The waveform data Wi stored in the corresponding waveform address is output. On the other hand, the addresses A10 to A29 supplied to the waveform memory 121 and incremented by 1 are the waveform addresses W in the waveform memory 121.
The waveform data Wi + 1 used as A0 to WA19 and stored at the corresponding waveform address is output. The waveform data Wi and Wi + 1 are substantially adjacent waveform data, and the difference (Wi + 1−Wi) is calculated and output by the adder 131. The difference (Wi + 1−Wi) is multiplied in the multiplier 140 by using the addresses A0 to A9 as a decimal part, and then added to the waveform data Wi in the adder 132 and output as the waveform value W. By the above operation, the waveform data W
The linear interpolation value W by the addresses A0 to A9 is calculated for i and Wi + 1. Correspondence of the above respective data is shown in FIG. 9 and FIG.
【0009】音高情報Sが値1.0の時、アドレス発生
器100は、サンプリング周波数Fs毎に、S=1.0
を累積加算するので、アドレスA10〜A29の値がサンプ
リング周波数Fsごとに1ずつ増加する。従って、波形
メモリ120と121とに入力される波形アドレスWA
0〜WA19は、加算器130により値1だけずれたま
ま、順次に1ずつ増加することになる。波形メモリ12
0と121とからそれぞれ出力される波形データは、波
形メモリ120の出力がW0,W1,W2,W3,・・・と変化す
るとき、波形メモリ121の出力はW1,W2,W3,W4,・・
・と変化することとなる。加算器131により得られる
差分データ出力は、乗算器140において乗算するアド
レスA0〜A9が常に値0であるために、結局、乗算器1
40の出力は値0となり、加算器132の出力は、波形
メモリ120から順次に読み出される波形データW0,W
1,W2,W3,・・・がそのまま出力されるので、記憶された
ピアノの音(A=440Hz)が波形出力されることと
なる。When the pitch information S has a value of 1.0, the address generator 100 outputs S = 1.0 for each sampling frequency Fs.
Is cumulatively added, the values of the addresses A10 to A29 increase by 1 for each sampling frequency Fs. Therefore, the waveform address WA input to the waveform memories 120 and 121
0 to WA19 are sequentially incremented by 1 while being shifted by the value 1 by the adder 130. Waveform memory 12
When the output of the waveform memory 120 changes to W0, W1, W2, W3, ..., The output of the waveform memory 121 is W1, W2, W3, W4 ,.・
・ And it will change. The difference data output obtained by the adder 131 is eventually the multiplier 1 because the addresses A0 to A9 multiplied by the multiplier 140 are always 0.
The output of 40 is the value 0, and the output of the adder 132 is the waveform data W0, W sequentially read from the waveform memory 120.
Since 1, W2, W3, ... Are output as they are, the stored piano sound (A = 440 Hz) is output as a waveform.
【0010】音高情報Sが値2の時、上述と同様の動作
により、波形メモリ120の出力はW0,W2,W4,W6,・・
・、波形メモリ121の出力はW1,W3,W5,W7,・・・とな
るので、加算器132からは、波形メモリ120から出
力される波形データW0,W2,W4,W6,・・・がそのまま出
力されることとなり、記憶されたピアノの音が波形デー
タ1点置きに読み出されるため、1オクターブ上の音名
Aの音(880Hz)が出力されることとなる。When the pitch information S has the value 2, the output of the waveform memory 120 is W0, W2, W4, W6, ...
.. Since the output of the waveform memory 121 is W1, W3, W5, W7, ..., From the adder 132, the waveform data W0, W2, W4, W6 ,. Since it is output as it is, and the stored piano sound is read every other waveform data, the sound (880 Hz) of the pitch name A one octave higher is output.
【0011】音名Cの音(523.25Hz)を出力さ
せるための音高情報Sは値1.189(周波数比)を与
えればよい。この時、上述と同様の動作により、波形メ
モリ120の出力は、W0,W1,W2,W3,W4,W5,W7,W
8,・・・、波形メモリ121の出力は、W1,W2,W3,W4,
W5,W6,W8,W9,・・・となる。初期状態、即ち、アドレ
ス発生器100の出力A0〜A29が値0の時には、波形
メモリ120の出力W0がそのまま加算器132から出
力されるが、音高情報Sが加算されたときには、波形メ
モリ120の出力値W1と波形メモリ121の出力値W2
は、加算器131において差分値(W2−W1)が演算さ
れ、乗算器140において、アドレスA0〜A9の値0.
189が乗じられて、加算器132においてW1と加算
されるため、波形データW1と波形データW2との間をア
ドレスA0〜A9の値0.189により直線補間した補間
値が演算出力されることとなる。以下同様にして、乗算
器140においてアドレスA0〜A9は、順次に0.37
8,0.567,0.756,0.945,0.134,・
・・と変化しながら、対応する差分データ(W2−W
1),(W3−W2),(W4−W3),(W5−W4),
(W7−W8),・・・と乗算され、加算器132におい
て、対応する波形データW0,W1,W2,W3,W4,W5,W7,
・・・と加算されて補間演算値として出力されることとな
る。The value 1.189 (frequency ratio) may be given to the pitch information S for outputting the sound with the pitch name C (523.25 Hz). At this time, the output of the waveform memory 120 is W0, W1, W2, W3, W4, W5, W7, W by the same operation as described above.
8, ..., The output of the waveform memory 121 is W1, W2, W3, W4,
W5, W6, W8, W9, ... In the initial state, that is, when the outputs A0 to A29 of the address generator 100 are 0, the output W0 of the waveform memory 120 is output from the adder 132 as it is, but when the pitch information S is added, the waveform memory 120 is output. Output value W1 and the output value W2 of the waveform memory 121
, The difference value (W2-W1) is calculated in the adder 131, and the value of the addresses A0 to A9 is 0.
Since it is multiplied by 189 and added to W1 in the adder 132, an interpolated value obtained by linearly interpolating between the waveform data W1 and the waveform data W2 by the value 0.189 of the addresses A0 to A9 is output. Become. Similarly, in the multiplier 140, the addresses A0 to A9 are sequentially set to 0.37.
8, 0.567, 0.756, 0.945, 0.134, ...
.. while changing to the corresponding difference data (W2-W
1), (W3-W2), (W4-W3), (W5-W4),
(W7−W8), ... And the corresponding waveform data W0, W1, W2, W3, W4, W5, W7,
... is added and output as an interpolation calculation value.
【0012】以上においては、波形メモリ120と波形
メモリ121には同じ波形データを記憶しているものと
したが、公知の時分割処理の技術を用いて、波形データ
WiとWi+1とを単一の波形メモリ120を2回アクセス
することにより読み出すようにして波形メモリの記憶容
量をいわゆるサンプリングデータと同じ量としたり、あ
るいは、図11の様に構成した楽音合成装置において波
形メモリ122に予め差分演算した(Wi+1−Wi)を記
憶させておくことにより、加算器130と131とを不
要にする方法も提案されているが、後者の方法では、い
わゆるサンプリングデータに等しい記憶容量の波形メモ
リとそれ以外に差分データを記憶する波形メモリが必要
とされていた。In the above description, the same waveform data is stored in the waveform memory 120 and the waveform memory 121. However, the waveform data Wi and Wi + 1 are separated into single data by using the known time division processing technique. The waveform memory 120 is read out by accessing the waveform memory 120 twice to make the storage capacity of the waveform memory the same amount as so-called sampling data, or the waveform memory 122 has a difference in advance in the musical tone synthesizer configured as shown in FIG. A method has been proposed in which the adders 130 and 131 are unnecessary by storing the calculated (Wi + 1−Wi), but the latter method is a waveform memory having a storage capacity equal to so-called sampling data. Besides that, a waveform memory for storing difference data was required.
【0013】なお、非常に長いピアノの音やストリング
スなどのような持続系の楽音を合成するときには、波形
メモリに記憶させた波形データの最終部分を繰り返し読
み出すようにして、出力音を持続させることができる。When synthesizing a very long piano sound or a continuous tone such as strings, the last part of the waveform data stored in the waveform memory is repeatedly read to maintain the output sound. You can
【0014】[0014]
【発明が解決しようとする課題】しかしながら、上記の
ような構成では、時分割処理によっても、1波形データ
を構成するBit数、いわゆる、量子化Bit数と波形
データ数との乗算によって決まる多量のデータを記憶す
る波形メモリが必要になるという問題点があった。However, in the above configuration, even if the time-division processing is performed, a large amount of bits determined by multiplying the number of bits constituting one waveform data, that is, the number of quantized Bits and the number of waveform data. There is a problem that a waveform memory for storing data is required.
【0015】また、波形メモリに記憶した波形データの
出力音高を変化させて読み出すために、音高情報Sを累
積加算して読み出す波形データの波形アドレスを得るよ
うにしているために、記憶している波形データが必ずし
も順次に読み出されないために、公知の逐次圧縮技術、
すなわち、差分圧縮(DPCM)や適応型差分圧縮(A
DPCM)などの技術、あるいは、ベクトル量子化のよ
うな圧縮技術を適用できないという問題点を有してい
た。In order to change and output the output pitch of the waveform data stored in the waveform memory, the pitch information S is cumulatively added to obtain the waveform address of the waveform data to be read. Waveform data is not always read sequentially, known sequential compression technology,
That is, differential compression (DPCM) and adaptive differential compression (A
There is a problem that a technique such as DPCM) or a compression technique such as vector quantization cannot be applied.
【0016】本発明は上記問題点を解決するため、少な
い波形メモリで自然な楽音を合成することのできる楽音
合成装置を提供することを目的とする。In order to solve the above problems, it is an object of the present invention to provide a tone synthesizer capable of synthesizing a natural tone with a small amount of waveform memory.
【0017】[0017]
【課題を解決するための手段】この目的を達成するため
に、第1の発明の楽音合成装置は、楽音の一連の波形デ
ータのなかから予め定めたデータ数N個毎に波形データ
を記憶する波形メモリと、N個以上の要素から構成され
るベクトルを複数組記憶するベクトルメモリと、波形メ
モリに記憶した波形データとその近傍のN個の波形デー
タとの差分データに対応するベクトルとその大きさを特
定するインデックスデータを波形メモリに記憶した波形
データに対応して記憶するインデックスメモリと、出力
する楽音の音高に対応して順次に変化するアドレスを出
力するアドレス発生器と、アドレスとインデックスデー
タとに対応したベクトルメモリの要素を補間演算する補
間演算部と、アドレスに対応した波形メモリの波形デー
タと補間演算部出力とを加算する加算器より構成され
る。In order to achieve this object, the musical tone synthesizer of the first invention stores waveform data for every predetermined number N of a series of waveform data of musical tones. A waveform memory, a vector memory for storing a plurality of sets of vectors composed of N or more elements, a vector corresponding to difference data between the waveform data stored in the waveform memory and N waveform data in the vicinity, and a magnitude thereof. The index memory that stores the index data that specifies the depth corresponding to the waveform data that is stored in the waveform memory, the address generator that outputs the address that sequentially changes according to the pitch of the tone to be output, the address and the index The interpolation calculation unit that interpolates the elements of the vector memory corresponding to the data, and the waveform data and the interpolation calculation unit of the waveform memory corresponding to the address. Composed of an adder for adding and.
【0018】また、この目的を達成するために、第2の
発明の楽音合成装置は、楽音の一連の波形データのなか
から予め定めたデータ数N個毎に波形データを記憶する
波形メモリと、N個以上の要素から構成されるベクトル
を複数組記憶するベクトルメモリと、波形メモリに記憶
した波形データとその近傍のN個の波形データとの差分
データに対応するベクトルとその大きさとを特定するイ
ンデックスデータを波形メモリに記憶した波形データに
対応して記憶するインデックスメモリと、出力する楽音
の音高に対応して順次に変化するアドレスを出力するア
ドレス発生器と、アドレスに対応した波形メモリの波形
データに補間演算する第1の補間演算部と、アドレスと
インデックスデータとに対応したベクトルメモリの要素
を補間演算する第2の補間演算部と、第1と第2の補間
演算部出力を加算する加算器より構成される。In order to achieve this object, the musical tone synthesizer of the second invention comprises a waveform memory for storing waveform data for every predetermined number N of data from a series of musical tone waveform data. A vector memory for storing a plurality of sets of vectors composed of N or more elements, a vector corresponding to difference data between the waveform data stored in the waveform memory and N waveform data in the vicinity thereof, and its magnitude are specified. The index memory that stores the index data corresponding to the waveform data stored in the waveform memory, the address generator that outputs the address that sequentially changes according to the pitch of the tone to be output, and the waveform memory corresponding to the address A first interpolation calculation unit for performing interpolation calculation on waveform data, and a first interpolation calculation unit for performing interpolation calculation on elements of a vector memory corresponding to addresses and index data. And interpolation calculation unit, composed of a first adder for adding the second interpolation computation unit output.
【0019】さらに、この目的を達成するために、第3
の発明の楽音合成装置は、時間変化するスキップデータ
Niを出力するスキップデータ発生部と、楽音の一連の
波形データのなかからスキップデータNi個毎に波形デ
ータを記憶する波形メモリと、出力する楽音の音高とス
キップデータNiとに対応して順次に変化するアドレス
を出力するアドレス発生器と、アドレスとスキップデー
タとに対応して波形メモリから出力される波形データを
補間演算する補間演算部とから構成される。Furthermore, in order to achieve this object, a third
The musical sound synthesizer of the invention described above comprises a skip data generator for outputting time-varying skip data Ni, a waveform memory for storing waveform data for each skip data Ni among a series of waveform data of musical sounds, and a musical sound for output. An address generator that outputs addresses that sequentially change according to the pitch and skip data Ni, and an interpolation calculation unit that interpolates the waveform data output from the waveform memory corresponding to the addresses and skip data. Composed of.
【0020】[0020]
【作用】第1の発明の構成によって、アドレス発生器は
指示された音高に従って順次に変化するアドレスを出力
する。アドレスに基づいて読み出されるインデックスメ
モリに記憶されたインデックスデータと、アドレスとイ
ンデックスデータとに基づいて読み出されるベクトルメ
モリに記憶されたベクトルを構成する複数の要素を補間
演算部で補間演算した値と、アドレスに基づいて読み出
される波形メモリに記憶された波形データの値とを、加
算器で加算するようにしたので、楽音の一連の波形デー
タをN個毎に記憶した波形データと、記憶した波形デー
タに関する複数の差分データに相当するベクトルデータ
とから出力波形が演算出力されることとなる。According to the structure of the first aspect of the invention, the address generator outputs addresses which sequentially change according to the designated pitch. Index data stored in the index memory that is read based on the address, and a value obtained by performing an interpolation operation on the plurality of elements that form the vector stored in the vector memory that is read based on the address and the index data by an interpolation operation unit, Since the value of the waveform data stored in the waveform memory that is read based on the address is added by the adder, the waveform data in which a series of waveform data of musical tones is stored every N pieces and the stored waveform data The output waveform is calculated and output from the vector data corresponding to a plurality of difference data regarding.
【0021】第2の発明の構成によって、アドレス発生
器は指示された音高に従って順次に変化するアドレスを
出力する。アドレスに基づいて読み出される波形メモリ
に記憶された複数の波形データに対して第1の補間演算
部で補間演算された値と、アドレスに基づいて読み出さ
れるインデックスメモリに記憶されたインデックスデー
タとアドレスとに基づいて読み出されるベクトルメモリ
に記憶されたベクトルを構成する複数の要素を第2の補
間演算部で補間演算した値とを、加算器で加算するよう
にしたので、楽音の一連の波形データをN個毎に記憶し
た複数の波形データと、記憶した波形データに関する複
数の差分データに相当するベクトルデータとから出力波
形が演算出力されることとなる。According to the configuration of the second invention, the address generator outputs addresses which sequentially change according to the designated pitch. A value obtained by interpolating the plurality of waveform data stored in the waveform memory based on the address by the first interpolation computing unit, and index data and address stored in the index memory that are read out based on the address. Since a plurality of elements constituting the vector stored in the vector memory read out based on the above are interpolated by the second interpolating section and added by an adder, a series of waveform data of musical tones is obtained. The output waveform is calculated and output from the plurality of waveform data stored for every N pieces and the vector data corresponding to the plurality of difference data regarding the stored waveform data.
【0022】第3の発明の構成によって、アドレス発生
器は指示された音高とスキップデータNiとに従って順
次に変化するアドレスを出力する。スキップデータ発生
部は時間変化するスキップデータNiを出力する。スキ
ップデータとアドレスとに基づいて読み出される波形メ
モリに記憶された波形データに関して、補間演算部にお
いて補間演算がなされて出力波形が得られることとな
る。According to the third aspect of the invention, the address generator outputs addresses which sequentially change according to the designated pitch and the skip data Ni. The skip data generator outputs skip data Ni that changes with time. The waveform data stored in the waveform memory, which is read out based on the skip data and the address, is interpolated by the interpolating unit to obtain the output waveform.
【0023】[0023]
【実施例】以下、本発明の第1の実施例について、図面
を参照しながら説明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A first embodiment of the present invention will be described below with reference to the drawings.
【0024】図1は本発明の第1の実施例の楽音合成装
置のブロック図である。図1において、125は波形メ
モリ、133〜136は加算器、145,146は乗算
器、200はインデックスメモリ、220,221はベ
クトルメモリ、250は比較器、260はゲートであ
る。なお、アドレス発生器100は従来例の構成と同じ
ものである。FIG. 1 is a block diagram of a musical sound synthesizing apparatus according to a first embodiment of the present invention. In FIG. 1, 125 is a waveform memory, 133 to 136 are adders, 145 and 146 are multipliers, 200 is an index memory, 220 and 221 are vector memories, 250 is a comparator, and 260 is a gate. The address generator 100 has the same structure as the conventional example.
【0025】第1の実施例においては、予め定めた波形
データの飛び越し数(スキップデータ)Nを4(2の2
乗)とする。従来例と同一の楽音波形をサンプリングし
た波形データ、即ち、従来例の波形メモリ120に記憶
した波形データの一部Wi-N〜Wi+Nを図2の(a)に示
す。波形Wi-NからNサンプル毎、即ち、4サンプル毎
に選択した波形データを図2の(b)に示すが、これら
の波形データを波形メモリ125に記憶しておくものと
する。波形Wi-Nについて、図2(a)のアドレス(i
−N+1)からアドレスiまでの波形データと波形Wi-
Nとの差分データを図2(c)に示すが、同様にして波
形Wiについてアドレス(i+1)からアドレス(i+
N)の差分データも示している。In the first embodiment, the predetermined interlace number (skip data) N of waveform data is 4 (2 of 2).
Squared). FIG. 2A shows waveform data obtained by sampling the same tone waveform as that of the conventional example, that is, a part of the waveform data Wi-N to Wi + N stored in the waveform memory 120 of the conventional example. The waveform data selected from the waveform Wi-N every N samples, that is, every 4 samples is shown in FIG. 2B, and these waveform data are stored in the waveform memory 125. For the waveform Wi-N, the address (i
Waveform data from -N + 1) to address i and waveform Wi-
The difference data from N is shown in FIG. 2C. Similarly, for the waveform Wi, the address (i + 1) to the address (i +
The difference data of N) is also shown.
【0026】ベクトルメモリ220には、図3に示すよ
うにスキップデータNに対応して4個の要素を有するベ
クトルを記憶しているものとする。例えば、ベクトルV
0は(0.25,0.50,0.75,1.00)の4つの
要素から構成されており、アドレス0〜3に対して、最
終要素を先頭として、以下、第1要素から順次に(1.
00,0.25,0.50,0.75)として記憶されて
いる。また、ベクトルV1は(0.80,0.87,0.
93,1.00)の4つの要素から構成されており、ア
ドレス4〜7に対して、最終要素を先頭として、以下、
第1要素から順次に記憶されている。以下同様にして、
ベクトルV11を構成する4つの要素は、アドレス44
〜47に対して、最終要素を先頭として、以下、第1要
素から順次に記憶されているものとする。なお、ベクト
ルメモリ221はベクトルメモリ220と同一のものと
する。It is assumed that the vector memory 220 stores a vector having four elements corresponding to the skip data N as shown in FIG. For example, the vector V
0 is composed of four elements (0.25, 0.50, 0.75, 1.00). For addresses 0 to 3, the last element is the head, and from the first element onwards. To (1.
00, 0.25, 0.50, 0.75). Further, the vector V1 is (0.80, 0.87, 0.
93, 1.00) of four elements, and addresses 4 to 7 with the last element as the head,
It is stored sequentially from the first element. And so on
The four elements forming the vector V11 have an address of 44
It is assumed that the last elements are stored in order from the first element to the first to the fourth elements. The vector memory 221 is the same as the vector memory 220.
【0027】インデックスメモリ200には、波形メモ
リ125に記憶している波形データに対応したインデッ
クスデータが記憶されているものとする。波形データW
iに対応するインデックスデータIiは、ベクトルインデ
ックスVIiとレベルデータLiとから構成される。ベク
トルインデックスVIiは、ベクトルV0〜V11を指
示するために、4ビットで構成される。本実施例におい
ては、ベクトルを12種類としたが、これは、必要に応
じて増減することができる。なお、波形データの飛び越
し数Nを4としているため、サンプリング周波数40k
Hzにおいては、楽器音に含まれる10kHz以上の周
波数成分の変動が、上述した図2(c)に示すような差
分データの変動に大きく反映されることとなるが、楽器
音に含まれる10kHz以上の周波数成分は非常に小さ
なため、実質的には、本実施例における12種類程度の
ベクトルがあれば良い。即ち、図2(c)における差分
データについて、アドレス(i+1)〜(i+N)の4
つの差分データは、ベクトルV6により近似することが
でき、また、アドレス(i−N+1)〜iまでの差分デ
ータはベクトルV0で近似することができるので、波形
データWi-NとWiとに対応するインデックスデータのベ
クトルインデックスはそれぞれ、0と6となる。但し、
波形の補間精度を向上し、補間に起因するノイズを減少
させるためにインデックスデータを構成する要素数を増
しておくことは、非常に有効に働くので、要素数を8、
または、16として補間精度を向上する、あるいは、1
024としてインデックスデータ要素間の補間演算その
ものを省略することもできる。また、レベルデータLi
は、符号無し12ビットのデータとして、ベクトルイン
デックスVIiに指定されたベクトルデータを使用する
大きさを決定する。即ち、図2(c)における差分デー
タに関して、波形データWi-NとWiとに対応するインデ
ックスデータのレベルデータはそれぞれ、(Wi−Wi-
N)と(Wi+N−Wi)となる。It is assumed that the index memory 200 stores index data corresponding to the waveform data stored in the waveform memory 125. Waveform data W
The index data Ii corresponding to i is composed of vector index VIi and level data Li. The vector index VIi is composed of 4 bits to indicate the vectors V0 to V11. In the present embodiment, there are 12 types of vectors, but this can be increased or decreased as necessary. Since the number N of jumps in the waveform data is 4, the sampling frequency is 40k.
In Hz, the fluctuation of the frequency component of 10 kHz or more contained in the musical instrument sound is largely reflected in the fluctuation of the difference data as shown in FIG. 2 (c) described above. Since the frequency component of is very small, it is sufficient that there are about 12 types of vectors in this embodiment. That is, regarding the differential data in FIG. 2C, 4 of the addresses (i + 1) to (i + N)
The two difference data can be approximated by the vector V6, and the difference data from the address (i-N + 1) to i can be approximated by the vector V0, and thus correspond to the waveform data Wi-N and Wi. The vector indexes of the index data are 0 and 6, respectively. However,
It is very effective to increase the number of elements forming the index data in order to improve the waveform interpolation accuracy and reduce the noise caused by the interpolation.
Alternatively, the interpolation accuracy is improved to 16 or 1
As 024, the interpolation calculation itself between the index data elements can be omitted. Also, the level data Li
Determines the size for using the vector data designated by the vector index VIi as 12-bit unsigned data. That is, regarding the difference data in FIG. 2C, the level data of the index data corresponding to the waveform data Wi-N and Wi are respectively (Wi-Wi-
N) and (Wi + N-Wi).
【0028】以上のように構成される楽音合成装置の動
作について、以下に述べる。従来例と同様にして、アド
レス発生器100は指示された音高情報Sを累積加算
し、アドレスA0〜A29を出力する。波形メモリ125
に記憶している波形データ(図2(b)参照)のサンプ
ル数は、従来例の波形メモリ120に記憶した波形デー
タ(図2(c)参照)のサンプル数の4分の1(N=
4)であるため、アドレスA12〜A29が波形メモリ12
5に供給されて、波形データWiが出力される。インデ
ックスメモリ200にも同様にして、アドレスA12〜A
29が供給されて、インデックスデータIiを構成するベ
クトルインデックスVIiとレベルデータLiが出力され
る。The operation of the tone synthesizer configured as above will be described below. Similarly to the conventional example, the address generator 100 cumulatively adds the instructed pitch information S and outputs the addresses A0 to A29. Waveform memory 125
The number of samples of the waveform data (see FIG. 2 (b)) stored in the waveform memory is 1/4 (N = N) of the number of samples of the waveform data (see FIG. 2 (c)) stored in the conventional waveform memory 120.
4), the addresses A12 to A29 are stored in the waveform memory 12
5, and waveform data Wi is output. Addresses A12 to A are similarly applied to the index memory 200.
29 is supplied, and the vector index VIi forming the index data Ii and the level data Li are output.
【0029】ベクトルメモリ220は、アドレス発生器
100から出力されるアドレスA10〜A11を下位アドレ
スとし、インデックスメモリ200から出力されるベク
トルインデックスVIiを上位アドレスとする計6ビッ
トのアドレスに従って決定されるベクトルを構成する要
素を出力する。ベクトルメモリ221も同様の動作によ
りベクトルを構成する要素を出力するが、加算器134
においてアドレスA10〜A11に対して1だけ加算した値
を下位2ビットアドレスとする。また、アドレスA10と
A11の値が共に値0の時には、比較器250は値0を出
力し、ゲート260の出力を値0にリセットし、アドレ
スA10とA11のいすれかの値が0でないときには、比較
器250は値1を出力し、ゲート260はベクトルメモ
リ220から出力されるベクトルの要素の値をそのまま
出力する。従って、アドレスA10〜A11の値が(0→1
→2→3)と変化するにともなって、ゲート260とベ
クトルメモリ221からは、それぞれ、(値0→指定さ
れたベクトルの第1要素→第2要素→第3要素)および
(指定されたベクトルの第1要素→第2要素→第3要素
→第4要素)が出力される。これらの出力は、従来例の
加算器131〜132及び乗算器140と同様に構成さ
れる加算器135〜136及び乗算器145によって直
線補間された後に、乗算器146においてレベルデータ
を乗算されて、図2(c)の差分データの直線補間値に
相当するデータとなり、さらに、加算器133において
波形メモリ125から出力される波形データと加算され
て、結局、直線補間波形が得られることとなる。The vector memory 220 has addresses A10 to A11 output from the address generator 100 as lower addresses and a vector index VIi output from the index memory 200 as upper addresses, which is a vector determined according to a total of 6 bits. Output the elements that make up. The vector memory 221 also outputs the elements forming the vector by the same operation, but the adder 134
The value obtained by adding 1 to the addresses A10 to A11 is used as the lower 2 bit address. Further, when the values of the addresses A10 and A11 are both 0, the comparator 250 outputs the value 0 and resets the output of the gate 260 to the value 0. When either of the addresses A10 and A11 is not 0, the comparator 250 outputs the value 0. The comparator 250 outputs the value 1, and the gate 260 outputs the value of the element of the vector output from the vector memory 220 as it is. Therefore, the value of address A10-A11 is (0 → 1
(→ 2 → 3), the gate 260 and the vector memory 221 receive (value 0 → first element of designated vector → second element → third element) and (designated vector), respectively. The first element → the second element → the third element → the fourth element) are output. These outputs are linearly interpolated by the adders 135 to 136 and the multiplier 145 which are configured similarly to the adders 131 to 132 and the multiplier 140 of the conventional example, and then are multiplied by the level data in the multiplier 146, Data corresponding to the linearly interpolated value of the difference data in FIG. 2C is further added to the waveform data output from the waveform memory 125 in the adder 133, so that the linearly interpolated waveform is finally obtained.
【0030】なお、第1の実施例においては、理解を助
けるために、ベクトルを記憶するベクトルメモリをベク
トルメモリ220,221の2つのメモリとしたが従来
例の波形メモリと同様にして、時分割処理によって一つ
のベクトルメモリ220により構成できることは自明で
ある。In the first embodiment, in order to facilitate understanding, the vector memory for storing the vector is two memories, vector memories 220 and 221. However, like the conventional waveform memory, the time division is performed. It is obvious that one vector memory 220 can be configured by processing.
【0031】また、第1の実施例においては予め定める
Nを4としたので、波形データとして圧縮率4分の1、
インデックスデータとしても波形データと同じ記憶容量
を必要とするため、ベクトルメモリを別にすれば、従来
例の波形メモリ120の2分の1の記憶容量により構成
される。Further, in the first embodiment, since the predetermined N is set to 4, the compression ratio is 1/4 as the waveform data.
Since the index data also requires the same storage capacity as the waveform data, it has a storage capacity that is half that of the conventional waveform memory 120, except for the vector memory.
【0032】なお、以上においては、予め定めるNを4
としたが、楽音の種類によってはNの値を他の値にする
ことにより、データの圧縮率をさらに高めたりすること
もできる。また、第1の実施例においては、ベクトルに
より直線補間値を得るようにしたが、必ずしも直線補間
演算でなく高次の補間演算をするようにしても良い。な
お、ベクトルの要素から得られる補間値を波形データに
加算するようにしたが、波形データにベクトルの要素を
加算した後で、補間演算を実施しても同様の効果が得ら
れることも付け加えておく。さらに、楽音波形において
時間的に近接する波形データの差分値は一般に波形デー
タを構成する語長よりも小さくなるため、ベクトルを構
成する要素の語長は、波形データの語長よりも小さな語
長で表すことができるので、ベクトルメモリの記憶語長
を小さくすることができる。In the above, the predetermined N is 4
However, depending on the type of musical sound, the data compression rate can be further increased by changing the value of N to another value. Further, in the first embodiment, the linear interpolation value is obtained by the vector, but it is not always necessary to perform the linear interpolation calculation, but a higher-order interpolation calculation may be performed. Although the interpolation value obtained from the vector element is added to the waveform data, the same effect can be obtained by performing the interpolation calculation after adding the vector element to the waveform data. deep. Furthermore, since the difference value of waveform data that are temporally close in a musical tone waveform is generally smaller than the word length that forms the waveform data, the word length of the elements that form the vector is smaller than the word length of the waveform data. Since it can be represented by, the storage word length of the vector memory can be reduced.
【0033】以上のように、第1の実施例によれば、予
め定めたNに従ってN個毎の波形データのみを記憶した
波形メモリと、インデックスデータにより特定されるベ
クトルデータとから補間値を演算するようにしたので、
少ないメモリと簡単な構成で、楽音を合成することがで
きる。As described above, according to the first embodiment, the interpolated value is calculated from the waveform memory storing only N waveform data according to the predetermined N and the vector data specified by the index data. I decided to do so,
Tones can be synthesized with a small memory and a simple configuration.
【0034】以下、本発明の第2の実施例について、図
面を参照しながら説明する。図4は本発明の第2の実施
例の楽音合成装置のブロック図である。図4において、
125,126は波形メモリ、130〜136は加算
器、140,145,146は乗算器、201はインデ
ックスメモリ、222,223はベクトルメモリであ
る。なお、アドレス発生器100は従来例の構成と同じ
ものである。The second embodiment of the present invention will be described below with reference to the drawings. FIG. 4 is a block diagram of a musical sound synthesizer according to the second embodiment of the present invention. In FIG.
125 and 126 are waveform memories, 130 to 136 are adders, 140, 145 and 146 are multipliers, 201 is an index memory, and 222 and 223 are vector memories. The address generator 100 has the same structure as the conventional example.
【0035】第2の実施例において第1の実施例と同様
に、予め定めた波形データの飛び越し数(スキップデー
タ)Nを4(2の2乗)とする。従来例と同一の楽音波
形をサンプリングした波形データ、即ち、従来例の波形
メモリ120に記憶した波形データの一部Wi-N〜Wi+N
を図2の(a)に示す。波形Wi-NからNサンプル毎、
即ち、4サンプル毎に選択した波形データを図2の
(b)に示すが、これらの波形データを波形メモリ12
5に記憶しておくものとする。また、波形メモリ125
は波形メモリ126と同一のものとする。波形Wi-Nと
Wiとについて直線補間した値と、図2(a)のアドレ
ス(i−N+1)からアドレスiまでの波形データと波
形Wi-Nとの差分データを図2(d)に示すが、同様に
して波形Wiと波形Wi+Nとについて直線補間した値とア
ドレス(i+1)からアドレス(i+N)の波形データ
との差分データも示している。In the second embodiment, as in the first embodiment, the number of skips (skip data) N of the predetermined waveform data is set to 4 (2 squared). Waveform data obtained by sampling the same tone waveform as the conventional example, that is, a part of the waveform data stored in the waveform memory 120 of the conventional example Wi-N to Wi + N.
Is shown in FIG. Every N samples from the waveform Wi-N,
That is, the waveform data selected for every four samples is shown in FIG. 2B, but these waveform data are stored in the waveform memory 12
It should be stored in 5. Also, the waveform memory 125
Is the same as the waveform memory 126. FIG. 2D shows the values obtained by linearly interpolating the waveforms Wi-N and Wi, and the difference data between the waveform data from the address (i-N + 1) to the address i in FIG. 2A and the waveform Wi-N. However, similarly, the difference data between the linearly interpolated values of the waveform Wi and the waveform Wi + N and the waveform data of the address (i + 1) to the address (i + N) are also shown.
【0036】ベクトルメモリ222には、図5に示すよ
うにスキップデータNに対応して4個の要素を有するベ
クトルV0〜V3とV4〜V7(図示せず)を記憶して
いるものとする。例えば、ベクトルV0は(0.00,
0.33,0.67,1.00)の4つの要素から構成さ
れており、アドレス0〜3に対して、第1要素から順次
に、(0.00,0.33,0.67,1.00)として記
憶されている。また、ベクトルV1は(0.00,0.5
0,1.00,0.50)の4つの要素から構成されてお
り、アドレス4〜7に対して、第1要素から順次に記憶
されている。以下同様にして、ベクトルV3を構成する
4つの要素は、アドレス12〜15に対して、第1要素
から順次に記憶されているものとする。なお、ベクトル
V4〜V7はそれぞれベクトルV0〜V3の符号を反転
したデータとして、アドレス16〜31に記憶されてい
るものとする。なお、ベクトルメモリ222はベクトル
メモリ223と同一のものとする。It is assumed that the vector memory 222 stores vectors V0 to V3 and V4 to V7 (not shown) having four elements corresponding to the skip data N as shown in FIG. For example, the vector V0 is (0.00,
It is composed of four elements (0.33, 0.67, 1.00), and for addresses 0 to 3, sequentially from the first element (0.00, 0.33, 0.67, It is stored as 1.00). Also, the vector V1 is (0.00, 0.5
0, 1.00, 0.50) and four elements are stored sequentially for the addresses 4 to 7 from the first element. Similarly, it is assumed that the four elements forming the vector V3 are sequentially stored from the first element for the addresses 12 to 15. The vectors V4 to V7 are assumed to be stored in the addresses 16 to 31 as data in which the signs of the vectors V0 to V3 are inverted. The vector memory 222 is the same as the vector memory 223.
【0037】インデックスメモリ201には、波形メモ
リ125に記憶している波形データに対応したインデッ
クスデータが記憶されているものとする。即ち、波形デ
ータWiに対応するインデックスデータIiは、ベクトル
インデックスVIiとレベルデータLiとから構成され
る。ベクトルインデックスVIiは、ベクトルV0〜V
7を指示するために、3ビットで構成される。本実施例
においては、ベクトルを8種類としたが、これは、必要
に応じて増減することができる。なお、波形データの飛
び越し数Nを4としているため、サンプリング周波数4
0kHzにおいては、楽器音に含まれる10kHz以上
の周波数成分の変動が、上述した図2(d)に示すよう
な差分データの変動に大きく反映されることとなるが、
楽器音に含まれる10kHz以上の周波数成分は非常に
小さく、また、差分データ(図2(d)参照)を得るた
めに、波形メモリ125,126に記憶した波形データ
の補間波形との差分を得るようにしたため、ベクトルの
両端の要素は0近傍に集束するように正規化されるた
め、記憶すべきベクトルの種類は、実質的には、本実施
例における8種類程度のベクトルがあれば良い。即ち、
図2(d)における差分データについて、アドレス(i
+1)〜(i+N)の4つの差分データは、ベクトルV
2により近似することができ、また、アドレス(i−N
+1)〜iまでの差分データはベクトルV0で近似する
ことができるので、波形データWi-NとWiとに対応する
インデックスデータのベクトルインデックスはそれぞ
れ、0と2となる。但し、波形の補間精度を向上し、補
間に起因するノイズを減少させるためにインデックスデ
ータを構成する要素数を増しておくことは、非常に有効
に働くので、要素数を8、または、16として補間精度
を向上する、あるいは、1024としてインデックスデ
ータ要素間の補間演算そのものを省略することもでき
る。また、レベルデータLiは、符号無し12ビットの
データとして、ベクトルインデックスVIiに指定され
たベクトルを使用する大きさを決定する。即ち、図2
(d)における差分データに関して、波形データWi-N
とWiとに対応するインデックスデータのレベルデータ
はそれぞれ、(Wi−Wi-N)と(Wi+N−Wi)よりも小
なる値となる。It is assumed that the index memory 201 stores index data corresponding to the waveform data stored in the waveform memory 125. That is, the index data Ii corresponding to the waveform data Wi is composed of the vector index VIi and the level data Li. The vector index VIi is the vector V0 to V
It consists of 3 bits to indicate 7. In this embodiment, there are eight types of vectors, but this can be increased or decreased as needed. Since the number N of jumps in the waveform data is 4, the sampling frequency is 4
At 0 kHz, the fluctuation of the frequency component of 10 kHz or more contained in the instrument sound is largely reflected in the fluctuation of the difference data as shown in FIG.
The frequency component of 10 kHz or more included in the musical instrument sound is very small, and the difference between the waveform data stored in the waveform memories 125 and 126 and the interpolated waveform is obtained in order to obtain the difference data (see FIG. 2D). As a result, the elements at both ends of the vector are normalized so as to be converged in the vicinity of 0. Therefore, the types of vectors to be stored may substantially be about eight types in this embodiment. That is,
For the difference data in FIG. 2D, the address (i
The four difference data of +1) to (i + N) are vector V
2 and the address (i-N
Since the differential data from +1) to i can be approximated by the vector V0, the vector indexes of the index data corresponding to the waveform data Wi-N and Wi are 0 and 2, respectively. However, it is very effective to increase the number of elements forming the index data in order to improve the interpolation accuracy of the waveform and reduce the noise caused by the interpolation. Therefore, the number of elements is set to 8 or 16. It is also possible to improve the interpolation accuracy or omit 1024 and omit the interpolation calculation itself between the index data elements. Further, the level data Li is a 12-bit unsigned data, and determines the size of using the vector designated by the vector index VIi. That is, FIG.
Regarding the difference data in (d), the waveform data Wi-N
And the level data of the index data corresponding to Wi are smaller than (Wi-Wi-N) and (Wi + N-Wi), respectively.
【0038】以上のように構成される楽音合成装置の動
作について、以下に述べる。従来例と同様にして、アド
レス発生器100は指示された音高情報Sを累積加算
し、アドレスA0〜A29を出力する。波形メモリ125
に記憶している波形データ(図2(b)参照)のサンプ
ル数は、従来例の波形メモリ120に記憶した波形デー
タ(図2(a)参照)のサンプル数の4分の1(N=
4)であるため、アドレスA12〜A29が波形メモリ12
5と加算器130とに供給され、波形メモリ126には
加算器130により1だけ増加されたアドレスA12〜A
29が供給されて、以下、従来例と同様の動作により、ア
ドレスA12〜A29の値が(i−1)である時、波形メモ
リ125から波形データWiー1が出力され、波形メモリ
126からは波形データWiが出力されて、2つの波形
データ間の差分が加算器131より出力されて、乗算器
140においてアドレスA2〜A11を小数部とした乗算
がなされた後に、加算器132において波形データWiー
1と加算されるので、結局、波形メモリ125と126
とから出力される波形データの、アドレスA2〜A11に
よる直線補間値Wpが演算されることとなる。The operation of the tone synthesizer configured as above will be described below. Similarly to the conventional example, the address generator 100 cumulatively adds the instructed pitch information S and outputs the addresses A0 to A29. Waveform memory 125
The number of samples of the waveform data (see FIG. 2 (b)) stored in the waveform data is 1/4 (N =
4), the addresses A12 to A29 are stored in the waveform memory 12
5 and the adder 130, and the waveform memory 126 has addresses A12 to A increased by 1 by the adder 130.
29 is supplied, and thereafter, by the same operation as in the conventional example, when the values of the addresses A12 to A29 are (i-1), the waveform data Wi-1 is output from the waveform memory 125, and the waveform memory 126 is output from the waveform memory 126. The waveform data Wi is output, the difference between the two waveform data is output from the adder 131, and the multiplier 140 performs multiplication with the addresses A2 to A11 as a decimal part, and then the adder 132 outputs the waveform data Wi. -
Since it is added with 1, the waveform memories 125 and 126 are eventually added.
The linear interpolation value Wp by the addresses A2 to A11 of the waveform data output from and is calculated.
【0039】インデックスメモリ201にも同様にし
て、アドレスA12〜A29が供給されて、インデックスデ
ータIiを構成するベクトルインデックスVIiとレベル
データLiが出力される。Similarly, the addresses A12 to A29 are supplied to the index memory 201, and the vector index VIi forming the index data Ii and the level data Li are output.
【0040】他方において、加算器134〜136とベ
クトルメモリ222,223と乗算器145は、第1の
実施例と同様に構成されており、ベクトルメモリ222
は、アドレス発生器100から出力されるアドレスA10
〜A11を下位アドレスとし、インデックスメモリ201
から出力されるベクトルインデックスVIiを上位アド
レスとする計6ビットのアドレスに従って決定されるベ
クトルを構成する要素を出力する。ベクトルメモリ22
3も同様の動作によりベクトルを構成する要素を出力す
るが、加算器134においてアドレスA10〜A11に対し
て1だけ加算した値を下位2ビットアドレスとする。な
お、アドレスA10とA11の値が共に値0の時には、ベク
トルメモリ222,223に記憶されるベクトルデータ
の要素の値は0となっている。従って、アドレスA10〜
A11の値が(0→1→2→3)と変化するにともなっ
て、ベクトルメモリ222,223からは、それぞれ、
(指定されたベクトルの第1要素→第2要素→第3要
素)および(指定されたベクトルの第2要素→第3要素
→第4要素→値0)が出力される。これらの出力は、従
来例の加算器131,132及び乗算器140と同様に
構成される加算器135,136及び乗算器145によ
って直線補間された後に、乗算器146においてレベル
データを乗算されて、図2(d)の差分データの直線補
間値に相当するデータとなり、さらに、加算器133に
おいて波形メモリ125から出力される波形データと加
算されて、結局、直線補間波形が得られることとなる。On the other hand, the adders 134 to 136, the vector memories 222 and 223, and the multiplier 145 are constructed in the same manner as in the first embodiment, and the vector memory 222.
Is the address A10 output from the address generator 100.
~ A11 as the lower address, index memory 201
The elements constituting the vector determined according to the total 6-bit address having the vector index VIi output from the above as the upper address are output. Vector memory 22
3 also outputs the elements constituting the vector by the same operation, but the value obtained by adding 1 to the addresses A10 to A11 in the adder 134 is set as the lower 2 bit address. When the values of the addresses A10 and A11 are both 0, the value of the element of the vector data stored in the vector memories 222 and 223 is 0. Therefore, address A10 ~
As the value of A11 changes (0 → 1 → 2 → 3), the vector memories 222 and 223 respectively
(First element of designated vector → second element → third element) and (second element of designated vector → third element → fourth element → value 0) are output. These outputs are linearly interpolated by the adders 135 and 136 and the multiplier 145 which are configured similarly to the adders 131 and 132 and the multiplier 140 of the conventional example, and then multiplied by the level data in the multiplier 146, Data corresponding to the linearly interpolated value of the difference data of FIG. 2D is further added to the waveform data output from the waveform memory 125 in the adder 133, and the linearly interpolated waveform is eventually obtained.
【0041】なお、第2の実施例においては、理解を助
けるために、波形データを記憶する波形メモリを波形メ
モリ125,126として、また、差分データを近似す
るベクトルを記憶するベクトルメモリをベクトルメモリ
222,223として、それぞれ同じ内容のデータを記
憶する2つのメモリとしたが従来例と同様にして、時分
割処理によって、それぞれ一つの波形メモリ125とベ
クトルメモリ222とにより構成できることは自明であ
る。In the second embodiment, in order to facilitate understanding, the waveform memory for storing the waveform data is the waveform memories 125 and 126, and the vector memory for storing the vector approximating the difference data is the vector memory. Although two memories 222 and 223 for respectively storing the same content of data are used, it is obvious that one waveform memory 125 and one vector memory 222 can be configured by time division processing in the same manner as in the conventional example.
【0042】第2の実施例に必要とするメモリの記憶容
量は、第1の実施例と同様に従来例の4分の1の波形メ
モリとインデックスメモリであるのが、第1の実施例に
比べてさらに記憶すべきベクトルの種類を少なくするこ
とができる。The memory capacity required for the second embodiment is the same as the first embodiment, that is, the waveform memory and the index memory which are ¼ of those of the conventional example. Compared with this, it is possible to further reduce the types of vectors to be stored.
【0043】なお、以上においては、予め定めるNを4
としたが、楽音の種類によってはNの値を他の値にする
ことにより、データの圧縮率をさらに高めたりすること
もできる。さらに、楽音波形において時間的に近接する
波形データの差分値は一般に波形データを構成する語長
よりも小さくなるため、ベクトルを構成する要素の語長
は、波形データの語長よりも小さな語長で表すことがで
きるので、ベクトルメモリの記憶語長を小さくすること
ができる。In the above, the predetermined N is 4
However, depending on the type of musical sound, the data compression rate can be further increased by changing the value of N to another value. Furthermore, since the difference value of waveform data that are temporally close in a musical tone waveform is generally smaller than the word length that forms the waveform data, the word length of the elements that form the vector is smaller than the word length of the waveform data. Since it can be represented by, the storage word length of the vector memory can be reduced.
【0044】以上のように、第2の実施例によれば、予
め定めたNに従ってN個毎の波形データのみを記憶した
波形メモリから読み出した波形データの補間値と、イン
デックスデータにより特定されるベクトルを構成する要
素とから補間値を演算するようにしたので、より少ない
メモリと簡単な構成で、楽音を合成することができる。As described above, according to the second embodiment, the index data and the interpolation value of the waveform data read from the waveform memory that stores only N waveform data according to the predetermined N are specified. Since the interpolation value is calculated from the elements forming the vector, it is possible to synthesize the musical sound with a smaller memory and a simple structure.
【0045】以下、本発明の第3の実施例について、図
面を参照しながら説明する。図6は本発明の第3の実施
例の楽音合成装置のブロック図である。図6において、
110,111は波形メモリ、300はシフタ、301
はスキップデータ発生部である。なお、アドレス発生器
100、加算器130〜132、乗算器140は従来例
の構成と同じものである。The third embodiment of the present invention will be described below with reference to the drawings. FIG. 6 is a block diagram of a musical sound synthesizer according to the third embodiment of the present invention. In FIG.
110 and 111 are waveform memories, 300 is a shifter, and 301
Is a skip data generator. The address generator 100, the adders 130 to 132, and the multiplier 140 have the same configuration as the conventional example.
【0046】一般に、楽器音の立ち上がり部、特に、ピ
アノのような減衰系の楽器音の立ち上がり部において
は、高い周波数成分が多く含まれており、楽器音の定常
部あるいは減衰部になるにつれて、高い周波数成分が少
なくなる。従って、従来例あるいは第1及び第2の実施
例における予め定めた波形データの飛び越し数Nを時間
的に変化させることにより、楽器音波形への圧縮技術の
追従度を制御することができる。In general, the rising part of a musical instrument sound, in particular, the rising part of a musical instrument sound of a damping system such as a piano contains a large amount of high frequency components. High frequency components are reduced. Therefore, by changing the interlacing number N of the predetermined waveform data in the conventional example or the first and second embodiments with time, it is possible to control the degree of follow-up of the compression technique to the sound waveform of the musical instrument.
【0047】図8(a)にピアノの波形データを示す。
また、図8(b)に、ピアノの波形データに関して必要
な波形データの飛び越し数(スキップデータ)Nの変化
を示す。FIG. 8A shows piano waveform data.
Further, FIG. 8B shows a change in the number N of skips of the waveform data (skip data) necessary for the waveform data of the piano.
【0048】波形メモリ110には、図8(a)に示す
ピアノの波形データに関してスキップデータN1を1と
して、即ち、時刻T1までの全ての波形データを波形デ
ータとして記憶する。時刻T1から時刻T2までは、スキ
ップデータN2を2として、即ち、波形データを2サン
プル毎に1個記憶する。以下同様にして、時刻T3から
合成動作完了まではスキップデータN4を8として波形
データを記憶するものとする。なお、波形メモリ111
は波形メモリ110と同一のものとする。In the waveform memory 110, with respect to the waveform data of the piano shown in FIG. 8A, the skip data N1 is set to 1, that is, all the waveform data up to time T1 are stored as the waveform data. From time T1 to time T2, the skip data N2 is set to 2, that is, one waveform data is stored for every two samples. Similarly, from the time T3 to the completion of the combining operation, the skip data N4 is set to 8 and the waveform data is stored. The waveform memory 111
Is the same as the waveform memory 110.
【0049】スキップデータ発生部301は図7のよう
に構成される。図7において、230,231はスキッ
プメモリ、149は乗算器、190〜192は加算器で
ある。The skip data generator 301 is constructed as shown in FIG. In FIG. 7, reference numerals 230 and 231 are skip memories, 149 are multipliers, and 190 to 192 are adders.
【0050】以上のように構成される楽音合成装置の動
作について、以下に述べる。スキップデータ発生部30
1は、アドレス発生器100から出力されるアドレスA
0〜A29を入力として、スキップメモリ230にはアド
レスA28〜A29が入力される。スキップメモリ230に
は、図8(b)のスキップデータN1〜N5が記憶されて
おり、スキップメモリ230とスキップメモリ231は
同一のものとする。入力されるアドレスA28〜A29に対
応したスキップデータNkがスキップメモリ230から
出力されると、スキップメモリ231からは加算器19
0により値1だけ増加されたアドレスに対応するスキッ
プデータNk+1が出力される。加算器191から(Nk+1
−Nk)が出力されて、乗算器149においてアドレス
A0〜A27を小数部とする乗算がなされて、加算器19
2でNkと加算されて、その上位4ビットの値が出力さ
れるので、結局、スキップデータNkとNk+1とをアドレ
スA0〜A27により直線補間したスキップデータNiとし
て出力されることとなる。The operation of the tone synthesizer configured as above will be described below. Skip data generator 30
1 is the address A output from the address generator 100.
Addresses A28 to A29 are input to the skip memory 230 by inputting 0 to A29. The skip data N1 to N5 of FIG. 8B are stored in the skip memory 230, and the skip memory 230 and the skip memory 231 are the same. When the skip data Nk corresponding to the input addresses A28 to A29 is output from the skip memory 230, the adder 19 is output from the skip memory 231.
The skip data Nk + 1 corresponding to the address increased by 1 by 0 is output. From the adder 191 (Nk + 1
-Nk) is output and the multiplier 149 performs multiplication with the addresses A0 to A27 as the fractional part, and the adder 19
Since Nk is added at 2 and the value of the higher 4 bits is output, the skip data Nk and Nk + 1 are eventually output as skip data Ni which is linearly interpolated by the addresses A0 to A27.
【0051】シフタ300は、スキップデータ発生部3
01から出力されるスキップデータNiの値にしたがっ
て、入力される音高情報Sを除算するように働くので、
スキップデータが値1の時は音高情報Sをそのままに、
また、スキップデータが2あるいは3の時には、それぞ
れ音高情報Sを小さくするように1あるいは2ビットシ
フトして出力することとなる。シフタ300においてビ
ットシフトされた音高情報Sは、アドレス発生器100
へ入力されるが、出力されるアドレス情報への音高情報
Sの寄与度は、シフタ300によるビットシフト量によ
り影響されることとなる。The shifter 300 includes a skip data generator 3
Since the input pitch information S is divided according to the value of the skip data Ni output from 01,
When the skip data has a value of 1, the pitch information S remains unchanged,
Further, when the skip data is 2 or 3, the pitch information S is shifted by 1 or 2 bits so as to be reduced and outputted. The pitch information S bit-shifted in the shifter 300 is the address generator 100.
However, the contribution of the pitch information S to the output address information is influenced by the bit shift amount by the shifter 300.
【0052】以上のようにして、音高情報Sのアドレス
発生器100出力のアドレスへの影響度はスキップデー
タNiにより制御されることとなるので、波形メモリ1
10,111へ供給されるアドレスA0〜A29により出
力される波形データとそれらの補間値は、スキップデー
タNiに従って、Ni個毎に記憶された波形データとそれ
らの補間値となる。As described above, since the degree of influence of the pitch information S on the address output from the address generator 100 is controlled by the skip data Ni, the waveform memory 1
The waveform data output from the addresses A0 to A29 supplied to 10, 111 and their interpolated values become the waveform data stored for every Ni data and their interpolated values according to the skip data Ni.
【0053】なお、第3の実施例においては、理解を助
けるために、波形データを記憶する波形メモリを波形メ
モリ110,111として、それぞれ同じ内容のデータ
を記憶する2つの波形メモリとしたが従来例と同様にし
て、時分割処理によって、一つの波形メモリ110によ
り構成できることは自明である。In the third embodiment, in order to facilitate understanding, the waveform memories for storing the waveform data are the waveform memories 110 and 111, and two waveform memories for storing the same data are used. It is obvious that one waveform memory 110 can be configured by time division processing in the same manner as in the example.
【0054】また、第3の実施例においても、第1と第
2の実施例と同様にして、インデックスデータにより、
ベクトルデータを用いて波形精度をさらに向上させるこ
ともできる。Also in the third embodiment, as in the first and second embodiments, by the index data,
The waveform accuracy can be further improved by using vector data.
【0055】以上のように、第3の実施例によれば、時
間的に変化するスキップデータNiに対応してアドレス
発生器から出力するアドレスを変化させるようにしたの
で、アドレスに従って、楽音の一連の波形データをスキ
ップデータNiサンプル毎に記憶した波形メモリから読
み出される波形データを補間演算することにより波形出
力が得られることとなるため、楽音の波形に応じてスキ
ップデータを変化させることにより適切なデータ圧縮を
実現することができる。As described above, according to the third embodiment, the address output from the address generator is changed corresponding to the skip data Ni which changes with time. Since the waveform output can be obtained by interpolating the waveform data read from the waveform memory in which the waveform data of No. 1 is stored for each skip data Ni sample, it is appropriate to change the skip data according to the waveform of the musical tone. Data compression can be realized.
【0056】[0056]
【発明の効果】本発明の楽音合成装置は、楽音の一連の
波形データをNサンプル毎に記憶した波形メモリと、波
形メモリに記憶していない波形データに関するデータを
波形メモリに記憶した波形データに従属的なデータとし
てインデックスするためのデータをインデックスメモリ
に記憶するようにして、音高に対応して変化するアドレ
ス発生器のアドレス出力を基に、波形メモリから出力す
る波形データと、インデックスメモリに記憶したデータ
により特定される差分データに相当するベクトルデータ
を読み出して、出力波形を演算するようにしたので、少
ないメモリで、楽音波形を復号化することができる。As described above, the musical tone synthesizer of the present invention can generate a waveform memory in which a series of waveform data of musical tones is stored for every N samples and waveform data in which waveform data not stored in the waveform memory is stored in the waveform memory. By storing the data for indexing as dependent data in the index memory, the waveform data output from the waveform memory and the index memory are stored in the index memory based on the address output of the address generator that changes according to the pitch. Since the vector data corresponding to the difference data specified by the stored data is read and the output waveform is calculated, the musical tone waveform can be decoded with a small memory.
【0057】また、波形メモリにNサンプル毎に記憶す
る波形データに関して、Nの値を楽音波形に応じて時間
変化することにより、波形出力の音質が波形出力開始か
ら停止までの全体にわたって、均質になるようにデータ
圧縮をすることができる。With respect to the waveform data stored in the waveform memory for every N samples, the value of N is changed with time according to the musical tone waveform, so that the sound quality of the waveform output is uniform over the entire period from the start to the end of the waveform output. Data can be compressed so that
【図1】本発明の第1の実施例における楽音合成装置の
構成を示すブロック図FIG. 1 is a block diagram showing the configuration of a musical sound synthesizer according to a first embodiment of the present invention.
【図2】本発明の第1,第2の実施例における動作を説
明するための例示的波形図FIG. 2 is an exemplary waveform diagram for explaining the operation in the first and second embodiments of the present invention.
【図3】同第1の実施例における動作を説明するための
例示的波形図FIG. 3 is an exemplary waveform chart for explaining the operation in the first embodiment.
【図4】本発明の第2の実施例における楽音合成装置の
構成を示すブロック図FIG. 4 is a block diagram showing the configuration of a musical sound synthesizer according to a second embodiment of the present invention.
【図5】同第2の実施例における動作を説明するための
例示的波形図FIG. 5 is an exemplary waveform diagram for explaining an operation in the second embodiment.
【図6】本発明の第3の実施例における楽音合成装置の
構成を示すブロック図FIG. 6 is a block diagram showing a configuration of a musical sound synthesizing apparatus according to a third embodiment of the present invention.
【図7】図6におけるスキップデータ発生部の内部構成
を示すブロック図7 is a block diagram showing an internal configuration of a skip data generation unit in FIG.
【図8】同第3の実施例における動作を説明するための
例示的包絡波形図FIG. 8 is an exemplary envelope waveform diagram for explaining the operation in the third embodiment.
【図9】従来例における楽音合成装置の構成を示すブロ
ック図FIG. 9 is a block diagram showing a configuration of a musical sound synthesizing device in a conventional example.
【図10】従来例における例示的データ構成を示す模式
図FIG. 10 is a schematic diagram showing an exemplary data structure in a conventional example.
【図11】従来例を応用した楽音合成装置の構成を示す
ブロック図FIG. 11 is a block diagram showing the configuration of a musical tone synthesizer to which a conventional example is applied.
100 アドレス発生器 110〜111,120〜126 波形メモリ 130〜136,190〜192 加算器 140〜149 乗算器 200〜201 インデックスメモリ 220〜223 ベクトルメモリ 230〜231 スキップメモリ 250〜251 比較器 260〜262 ゲート 300 シフタ 301 スキップデータ発生部 100 Address generator 110-111, 120-126 Waveform memory 130-136, 190-192 Adder 140-149 Multiplier 200-201 Index memory 220-223 Vector memory 230-231 Skip memory 250-251 Comparator 260-262 Gate 300 Shifter 301 Skip data generator
Claims (6)
めたデータ数N個毎に波形データを記憶する波形メモリ
と、 N個以上の要素から構成されるベクトルを複数組記憶す
るベクトルメモリと、 前記波形メモリに記憶した波形データとその近傍のN個
の波形データとの差分データに対応する前記ベクトルメ
モリに記憶されたベクトルとその大きさを特定するイン
デックスデータを記憶するインデックスメモリと、 出力する楽音の音高に対応して順次に変化するアドレス
を出力するアドレス発生器と、 前記アドレスに対応した前記インデックスメモリのイン
デックスデータに従って前記ベクトルメモリから出力さ
れるベクトルの要素を補間演算する補間演算部と、 前記アドレスに対応した前記波形メモリの波形データと
前記補間演算部出力とを加算する加算器とから構成され
る楽音合成装置。1. A waveform memory for storing waveform data for each predetermined number N of data from a series of waveform data of musical tones, and a vector memory for storing a plurality of sets of vectors composed of N or more elements. An index memory for storing index data for specifying a vector and a vector stored in the vector memory corresponding to difference data between the waveform data stored in the waveform memory and N waveform data in the vicinity thereof, and An address generator that outputs addresses that sequentially change according to the pitch of a musical tone to be played, and an interpolation operation that interpolates the elements of the vector output from the vector memory according to the index data of the index memory that corresponds to the address. Section, waveform data of the waveform memory corresponding to the address, and output of the interpolation calculation section Tone synthesis device comprising an adder for adding.
クトルメモリ出力のベクトルの要素とを加算出力し、補
間演算部は前記加算出力を補間演算することを特徴とす
る請求項1記載の楽音合成装置。2. The musical tone according to claim 1, wherein the adder adds and outputs the waveform data output from the waveform memory and the vector element output from the vector memory, and the interpolation calculation unit performs interpolation calculation on the addition output. Synthesizer.
めたデータ数N個毎に波形データを記憶する波形メモリ
と、 N個以上の要素から構成されるベクトルを複数組記憶す
るベクトルメモリと、 前記波形メモリに記憶した波形データにより補間演算さ
れるデータとその近傍のN個の波形データとの差分デー
タに対応する前記ベクトルメモリに記憶されたベクトル
とその大きさを特定するインデックスデータを記憶する
インデックスメモリと、 出力する楽音の音高に対応して順次に変化するアドレス
を出力するアドレス発生器と、 前記アドレスに対応した前記波形メモリの波形データに
補間演算する第1の補間演算部と、 前記アドレスに対応した前記インデックスメモリのイン
デックスデータに従って前記ベクトルメモリから出力さ
れるベクトルの要素を補間演算する第2の補間演算部
と、 前記第1と第2の補間演算部出力を加算する加算器とか
ら構成される楽音合成装置。3. A waveform memory for storing waveform data for each predetermined number N of data among a series of waveform data of musical tones, and a vector memory for storing a plurality of sets of vectors composed of N or more elements. Storing the vector stored in the vector memory corresponding to the difference data between the data interpolated by the waveform data stored in the waveform memory and the N waveform data in the vicinity thereof and the index data specifying the size thereof An index memory, an address generator that outputs addresses that sequentially change according to the pitch of a musical tone that is output, and a first interpolation calculation unit that performs an interpolation calculation on the waveform data of the waveform memory that corresponds to the address. , The vector output from the vector memory according to the index data of the index memory corresponding to the address. A second interpolation operation unit for interpolation calculation elements of torque, the first and musical tone synthesizing apparatus constituted by a second interpolation operation unit adder for adding the output.
成する要素の語長が波形メモリに記憶する波形データの
語長よりも小さなことを特徴とする請求項1,2または
3記載の楽音合成装置。4. The musical tone synthesizing apparatus according to claim 1, wherein the word length of the element forming the vector stored in the vector memory is smaller than the word length of the waveform data stored in the waveform memory. .
るスキップデータ発生部と、 楽音の一連の波形データのなかから前記スキップデータ
Ni個毎に波形データを記憶する波形メモリと、 出力する楽音の音高と前記スキップデータNiとに対応
して順次に変化するアドレスを出力するアドレス発生器
と、 前記アドレスと前記スキップデータとに対応して前記波
形メモリから出力される波形データを補間演算する補間
演算部とから構成される楽音合成装置。5. A skip data generator for outputting skip data Ni that changes with time, a waveform memory for storing waveform data for each of the skip data Ni among a series of waveform data of musical sounds, and a tone sound to be output. An address generator that outputs addresses that sequentially change according to the high level and the skip data Ni, and an interpolation calculation that interpolates the waveform data output from the waveform memory corresponding to the addresses and the skip data A musical sound synthesizer composed of parts.
間経過と共に増加することを特徴とする請求項5記載の
楽音合成装置。6. The musical tone synthesizing apparatus according to claim 5, wherein the value of the skip data Ni which changes with time increases with the passage of time.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4244381A JPH0695677A (en) | 1992-09-14 | 1992-09-14 | Musical sound synthesizing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4244381A JPH0695677A (en) | 1992-09-14 | 1992-09-14 | Musical sound synthesizing device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0695677A true JPH0695677A (en) | 1994-04-08 |
Family
ID=17117844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4244381A Pending JPH0695677A (en) | 1992-09-14 | 1992-09-14 | Musical sound synthesizing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0695677A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113808555A (en) * | 2021-09-17 | 2021-12-17 | 广州酷狗计算机科技有限公司 | Song synthesis method and device, equipment, medium and product thereof |
-
1992
- 1992-09-14 JP JP4244381A patent/JPH0695677A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113808555A (en) * | 2021-09-17 | 2021-12-17 | 广州酷狗计算机科技有限公司 | Song synthesis method and device, equipment, medium and product thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4435832A (en) | Speech synthesizer having speech time stretch and compression functions | |
US5625158A (en) | Musical tone generating apparatus | |
US5321794A (en) | Voice synthesizing apparatus and method and apparatus and method used as part of a voice synthesizing apparatus and method | |
JP3482685B2 (en) | Sound generator for electronic musical instruments | |
JPS6398699A (en) | Electronic musical instrument | |
US5416264A (en) | Waveform-forming device having memory storing non-compressed/compressed waveform samples | |
US5245127A (en) | Signal delay circuit, FIR filter and musical tone synthesizer employing the same | |
JPH0695677A (en) | Musical sound synthesizing device | |
US4633500A (en) | Speech synthesizer | |
GB2294799A (en) | Sound generating apparatus having small capacity wave form memories | |
JPS61124994A (en) | Musical sound signal generator | |
JP3435702B2 (en) | Music generator | |
JP2790160B2 (en) | Waveform generation device and waveform storage device | |
JPS61204697A (en) | Tone signal generator | |
JP2579049B2 (en) | Music synthesizer | |
US5817964A (en) | Electronic musical instrument and method for storing a plurality of waveform sampling data at a single address | |
JPH0651777A (en) | Musical sound synthesizing device | |
JP2679314B2 (en) | Music synthesizer | |
JPH09198049A (en) | Musical sound synthesizing device | |
JPH09212170A (en) | Musical tone synthesizer | |
JPS6212519B2 (en) | ||
JP2678970B2 (en) | Tone generator | |
JPS58219599A (en) | Voice synthesizer | |
JPH02108099A (en) | Waveform interpolating device | |
JPS59162594A (en) | Musical tone sythesizer |