JPH06202666A - Waveform generating device and waveform storage device - Google Patents

Waveform generating device and waveform storage device

Info

Publication number
JPH06202666A
JPH06202666A JP4359637A JP35963792A JPH06202666A JP H06202666 A JPH06202666 A JP H06202666A JP 4359637 A JP4359637 A JP 4359637A JP 35963792 A JP35963792 A JP 35963792A JP H06202666 A JPH06202666 A JP H06202666A
Authority
JP
Japan
Prior art keywords
data
amplitude value
waveform
value data
compressed
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.)
Granted
Application number
JP4359637A
Other languages
Japanese (ja)
Other versions
JP2790160B2 (en
Inventor
Tetsuji Ichiki
哲二 市来
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP4359637A priority Critical patent/JP2790160B2/en
Priority to US08/097,163 priority patent/US5416264A/en
Publication of JPH06202666A publication Critical patent/JPH06202666A/en
Application granted granted Critical
Publication of JP2790160B2 publication Critical patent/JP2790160B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

PURPOSE:To skip and read data in a waveform memory when a high-pitch music waveform signal is reproduced by providing compressed waveform ampli tude value data between uncompressed waveform amplitude value data. CONSTITUTION:Data are read out of the waveform memory 410 according to four successive addresses outputted from an adder 408. The 1st data is a linear sample, the 2nd data corresponds two compressed samples, and the 3rd data is a linear sample. The four read data are inputted to a decoder 411 in sequence. An envelope generator 413 generates an envelope signal corresponding to timbre data. A multiplier 414 multiplies the amplitude value data by the envelope signal after interpolation. The amplitude value data given the envelope are accumulated by a channel accumulator 415 and outputted as final waveform data. Thus, waveform data can be obtained from any location in the waveform memory and the data in the waveform memory can be skipped and read.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】この発明は、波形サンプルデータ
を記憶した波形メモリを有する波形生成装置および波形
生成装置で用いる波形記憶装置(波形メモリ)に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a waveform generator having a waveform memory storing waveform sample data and a waveform storage device (waveform memory) used in the waveform generator.

【0002】[0002]

【従来の技術】従来、電子楽器などで用いる楽音波形の
生成方式として、所定の波形の順次サンプル点の波形振
幅値をディジタル的に波形メモリに記憶しておき、この
波形メモリの記憶内容を繰返し読出して楽音波形を生成
するようにした波形生成方式が知られている。
2. Description of the Related Art Conventionally, as a method of generating a musical tone waveform used in electronic musical instruments and the like, waveform amplitude values at sequential sampling points of a predetermined waveform are digitally stored in a waveform memory and the stored contents of the waveform memory are repeated. A waveform generation method is known in which the waveform is read out and a musical tone waveform is generated.

【0003】波形メモリからの読出しは、具体的には、
以下のように行なわれる。まず、発生すべき楽音の音高
に対応する周波数情報(いわゆるFナンバ)Fを累算器
で順次累算し、順次出力される累算値qF(q=1,
2,3,…)の整数部Iをアドレスとして所定周期で波
形メモリを読出す。また、累算値qFの整数部Iだけを
アドレスとして読出した波形データは量子化ノイズを含
むため、補間法を用いてこれを改善するようにしてい
る。すなわち、隣合う複数のサンプル点の波形データを
読出して、累算値qFの少数部dに基づく補間を行な
い、任意の位置の振幅値を求めこれを波形データとして
出力している。
To read from the waveform memory, specifically,
It is performed as follows. First, frequency information (so-called F number) F corresponding to the pitch of a musical tone to be generated is sequentially accumulated by an accumulator, and accumulated values qF (q = 1,
2, 3, ...) is used as an address to read the waveform memory in a predetermined cycle. Further, since the waveform data read by using only the integer part I of the accumulated value qF as an address contains quantization noise, the interpolation method is used to improve this. That is, the waveform data of a plurality of adjacent sample points is read out, interpolation is performed based on the decimal part d of the accumulated value qF, the amplitude value at an arbitrary position is obtained, and this is output as waveform data.

【0004】このようにして、所望の音高の楽音波形が
出力される。波形メモリの波形データは、順次サンプル
点の波形振幅値をそのまま(いわゆるリニアに)格納し
ている。音高が高くなるとFナンバの値も大きくなるの
で、累算値qFの整数部Iも大きくなり、波形メモリの
データを飛ばし読みしなければならない場合がある。波
形メモリはリニアに波形データを格納しているので、ア
ドレスを飛ばしても、常に各サンプル点の正しい波形振
幅値を読出すことができる。
In this way, a musical tone waveform having a desired pitch is output. The waveform data in the waveform memory sequentially stores the waveform amplitude values at the sampling points as they are (so-called linear). Since the F number value increases as the pitch increases, the integer part I of the accumulated value qF also increases, and it may be necessary to skip the data in the waveform memory. Since the waveform memory stores the waveform data linearly, the correct waveform amplitude value at each sample point can always be read even if the address is skipped.

【0005】一方、波形メモリの容量を抑えることなど
を目的として、波形データを圧縮することが行なわれて
いる。圧縮の方式としては、例えばDPCM(差分PC
M)、LPC(線形予測符号化)、およびADPCMな
どがある。これらは、いずれも過去の波形データ(再生
値)と新たに読出したデータとを用いて現在の波形デー
タ(再生値)を得る方式である。
On the other hand, the waveform data is compressed for the purpose of suppressing the capacity of the waveform memory. As a compression method, for example, DPCM (differential PC
M), LPC (Linear Predictive Coding), and ADPCM. All of these are methods of obtaining the current waveform data (reproduction value) by using the past waveform data (reproduction value) and the newly read data.

【0006】[0006]

【発明が解決しようとする課題】ところが、上述のよう
なデータ圧縮を行なっている場合は、常にある時点より
前のデータを用いてその時点の波形データを算出するた
め、波形メモリに格納されているデータを連続的に読み
出さなければならない。1つでもデータを読み出さない
と、その次から再生できなくなってしまう。したがっ
て、音高の高い楽音波形信号を再生するため波形メモリ
を飛ばし読みすることができず、音高の幅に制限がある
という問題があった。
However, in the case of performing the data compression as described above, since the waveform data at that time is always calculated using the data before a certain time, it is stored in the waveform memory. Data must be read continuously. If even one data is not read, the data cannot be reproduced from the next time. Therefore, since the musical tone waveform signal having a high pitch is reproduced, the waveform memory cannot be skipped and read, and the pitch width is limited.

【0007】この発明は、上述の従来例における問題点
に鑑み、音高の幅が制限されるようなことがなく波形メ
モリを飛ばし読みすることができ、かつ波形メモリのデ
ータを圧縮できる波形生成装置を提供することを目的と
する。
In view of the problems in the above-mentioned conventional example, the present invention can generate a waveform by skipping the waveform memory without limiting the pitch width and by compressing the data in the waveform memory. The purpose is to provide a device.

【0008】[0008]

【課題を解決するための手段】この目的を達成するた
め、この発明は、所定の複数サンプル点ごとに非圧縮波
形振幅値データを設けるとともに、該非圧縮波形振幅値
データのサンプル点の間にあるサンプル点に対しては、
直前の非圧縮波形振幅値データを用いて非圧縮波形振幅
値データに変換できるように圧縮された圧縮波形振幅値
データを設けた波形記憶手段と、生成すべき楽音波形の
音高に応じた周波数情報を発生する周波数情報発生手段
と、前記周波数情報を所定速度で繰返し累算して、累算
値を出力する累算手段と、前記累算値に基づいて、前記
波形記憶手段から、2以上の非圧縮波形振幅値データを
含む連続した範囲の複数の非圧縮波形振幅値データおよ
び圧縮波形振幅値データを読出す読出し手段と、前記読
出し手段によって読出された圧縮波形振幅値データを非
圧縮波形振幅値データに変換する変換手段と、前記累算
値に基づいて、前記読出し手段によって読出した非圧縮
波形振幅値データおよび前記変換手段によって得られた
非圧縮波形振幅値データから、補間に用いるべき非圧縮
波形振幅値データを選択する選択手段と、前記選択手段
によって選択された非圧縮波形振幅値データを用いて、
前記累算値に基づく補間処理を行ない、補間結果を波形
データとして出力する補間手段とを備えたことを特徴と
する。
In order to achieve this object, the present invention provides uncompressed waveform amplitude value data for each predetermined plurality of sample points and exists between the sample points of the uncompressed waveform amplitude value data. For sample points,
Waveform storage means provided with compressed waveform amplitude value data compressed so that it can be converted to uncompressed waveform amplitude value data using the immediately preceding uncompressed waveform amplitude value data, and a frequency corresponding to the pitch of the musical tone waveform to be generated. Frequency information generating means for generating information, accumulating means for repeatedly accumulating the frequency information at a predetermined speed and outputting an accumulated value, and two or more from the waveform storing means based on the accumulated value. Reading means for reading a plurality of uncompressed waveform amplitude value data and compressed waveform amplitude value data in a continuous range including the uncompressed waveform amplitude value data, and the compressed waveform amplitude value data read by the reading means. Conversion means for converting into amplitude value data, uncompressed waveform amplitude value data read by the reading means based on the accumulated value, and uncompressed waveform amplitude value obtained by the conversion means From over data, selecting means for selecting a non-compressed waveform amplitude value data to be used for interpolation, using a non-compressed waveform amplitude value data selected by said selecting means,
Interpolation means for performing interpolation processing based on the accumulated value and outputting the interpolation result as waveform data is provided.

【0009】前記読出し手段は、前記累算値の上位の値
に基づいて波形記憶手段の読出しアドレスを決定するよ
うにするとよい。後述する実施例では、累算値qFの整
数部Iにより波形メモリの読出しアドレスを決定してい
る。また、前記選択手段は、前記累算値の中位の値に基
づいて補間に用いるべきデータを選択するようにすると
よい。後述する実施例では、累算値qFの少数部Jに定
数Bを乗算した結果BJの整数部iに基づいて、補間に
用いるべきデータを選択するようにしている。さらに、
前記補間手段における補間処理は、前記累算値の下位の
値に基づいて行なうとよい。後述する実施例では、累算
値qFの少数部Jに定数Bを乗算した結果BJの少数部
jに基づいて、補間処理を行なっている。
The read means may determine the read address of the waveform storage means on the basis of the higher value of the accumulated value. In the embodiment described later, the read address of the waveform memory is determined by the integer part I of the accumulated value qF. Further, it is preferable that the selecting means selects data to be used for interpolation based on a middle value of the accumulated value. In the embodiment described later, data to be used for interpolation is selected based on the integer part i of BJ as a result of multiplying the decimal part J of the accumulated value qF by the constant B. further,
The interpolation processing in the interpolation means may be performed based on the lower value of the accumulated value. In the embodiment described later, the interpolation process is performed based on the decimal part j of BJ obtained by multiplying the decimal part J of the accumulated value qF by the constant B.

【0010】また、所定の複数サンプル点ごとに非圧縮
波形振幅値データを設けるとともに、該非圧縮波形振幅
値データのサンプル点の間にあるサンプル点に対して
は、直前の非圧縮波形振幅値データを用いて非圧縮波形
振幅値データに変換できるように圧縮された圧縮波形振
幅値データを設けた波形記憶手段と、生成すべき楽音波
形の音高に応じた周波数情報を発生する周波数情報発生
手段と、前記周波数情報を所定速度で繰返し累算して、
累算値を出力する累算手段と、前記累算値に基づいて、
前記波形記憶手段から、2以上の非圧縮波形振幅値デー
タを含む連続した範囲の複数の非圧縮波形振幅値データ
および圧縮波形振幅値データを読出す読出し手段と、前
記累算値に基づいて、前記読出し手段によって読出した
複数の非圧縮波形振幅値データおよび圧縮波形振幅値デ
ータから、補間に用いるべき非圧縮波形振幅値データお
よび圧縮波形振幅値データを選択する選択手段と、前記
選択手段によって選択された圧縮波形振幅値データを非
圧縮波形振幅値データに変換する変換手段と、前記選択
手段によって選択された非圧縮波形振幅値データと前記
変換手段によって得られた非圧縮波形振幅値データを用
いて、前記累算値に基づく補間処理を行ない、補間結果
を波形データとして出力する補間手段とを備えたことを
特徴とする。
Further, the uncompressed waveform amplitude value data is provided for each of a plurality of predetermined sample points, and the immediately preceding uncompressed waveform amplitude value data is set for the sample points between the sample points of the uncompressed waveform amplitude value data. Waveform storing means provided with compressed waveform amplitude value data compressed so as to be converted into uncompressed waveform amplitude value data, and frequency information generating means for generating frequency information according to the pitch of a musical tone waveform to be generated. And repeatedly accumulating the frequency information at a predetermined speed,
An accumulating unit that outputs an accumulated value, and based on the accumulated value,
Reading means for reading a plurality of uncompressed waveform amplitude value data and compressed waveform amplitude value data in a continuous range including two or more uncompressed waveform amplitude value data from the waveform storage means; Selecting means for selecting uncompressed waveform amplitude value data and compressed waveform amplitude value data to be used for interpolation from the plurality of uncompressed waveform amplitude value data and compressed waveform amplitude value data read by the reading means; Using the conversion means for converting the compressed waveform amplitude value data thus converted into the uncompressed waveform amplitude value data, the uncompressed waveform amplitude value data selected by the selecting means, and the uncompressed waveform amplitude value data obtained by the converting means. And an interpolation means for performing interpolation processing based on the accumulated value and outputting the interpolation result as waveform data.

【0011】さらに、この発明に係る波形記憶装置は、
所定の複数サンプル点ごとに非圧縮波形振幅値データを
設けるとともに、該非圧縮波形振幅値データのサンプル
点の間にあるサンプル点に対しては、直前の非圧縮波形
振幅値データを用いて非圧縮波形振幅値データに変換で
きるように圧縮された圧縮波形振幅値データを設けたこ
とを特徴とする。
Further, the waveform storage device according to the present invention is
The uncompressed waveform amplitude value data is provided for each of a plurality of predetermined sample points, and the sample points between the sample points of the uncompressed waveform amplitude value data are uncompressed using the immediately preceding uncompressed waveform amplitude value data. It is characterized in that compressed waveform amplitude value data compressed so as to be converted into waveform amplitude value data is provided.

【0012】[0012]

【作用】波形記憶手段は、複数の順次サンプル点の振幅
値データを記憶している。それら振幅値データは、非圧
縮波形振幅値データか圧縮波形振幅値データかのいずれ
かである。非圧縮波形振幅値データは、所定の複数サン
プル点ごとに設けられている。圧縮波形振幅値データ
は、非圧縮波形振幅値データの間に設けられている。圧
縮波形振幅値データは、その直前にある非圧縮波形振幅
値データを用いて非圧縮波形振幅値データに変換するこ
とができる。
The waveform storage means stores the amplitude value data of a plurality of sequential sampling points. The amplitude value data is either uncompressed waveform amplitude value data or compressed waveform amplitude value data. The uncompressed waveform amplitude value data is provided for each of a plurality of predetermined sample points. The compressed waveform amplitude value data is provided between the uncompressed waveform amplitude value data. The compressed waveform amplitude value data can be converted to the uncompressed waveform amplitude value data by using the uncompressed waveform amplitude value data immediately before it.

【0013】楽音波形を生成するときには、まず、生成
すべき楽音波形の音高に応じた周波数情報が発生され
る。この周波数情報は所定速度で繰返し累算され、累算
値が出力される。この累算値に基づいて、波形記憶手段
から、2以上の非圧縮波形振幅値データを含む連続した
範囲の複数の非圧縮波形振幅値データおよび圧縮波形振
幅値データが読出される。読出された圧縮波形振幅値デ
ータは、非圧縮波形振幅値データに変換される。
When a musical tone waveform is generated, first, frequency information corresponding to the pitch of the musical tone waveform to be generated is generated. This frequency information is repeatedly accumulated at a predetermined speed, and the accumulated value is output. Based on the accumulated value, a plurality of uncompressed waveform amplitude value data and compressed waveform amplitude value data in a continuous range including two or more uncompressed waveform amplitude value data are read from the waveform storage means. The read compressed waveform amplitude value data is converted into non-compressed waveform amplitude value data.

【0014】一方、波形記憶手段から読出された非圧縮
波形振幅値データおよび変換することにより得られた非
圧縮波形振幅値データから、累算値に基づいて、補間に
用いるべき非圧縮波形振幅値データが選択される。選択
された非圧縮波形振幅値データを用いて、累算値に基づ
く補間処理を行ない、補間結果が波形データとして出力
される。
On the other hand, from the uncompressed waveform amplitude value data read from the waveform storage means and the uncompressed waveform amplitude value data obtained by conversion, the uncompressed waveform amplitude value to be used for interpolation based on the accumulated value. The data is selected. The selected uncompressed waveform amplitude value data is used to perform interpolation processing based on the accumulated value, and the interpolation result is output as waveform data.

【0015】なお、波形記憶手段から読出したデータか
ら補間に用いるデータを選択し、選択したもののうち圧
縮波形振幅値データを非圧縮波形振幅値データに変換す
るようにしてもよい。
The data used for interpolation may be selected from the data read from the waveform storage means, and the compressed waveform amplitude value data of the selected data may be converted into the non-compressed waveform amplitude value data.

【0016】[0016]

【実施例】以下、図面を用いてこの発明の実施例を説明
する。
Embodiments of the present invention will be described below with reference to the drawings.

【0017】図1は、この発明の一実施例に係る波形生
成装置を適用した電子楽器のブロック構成を示す。この
電子楽器は、音色スイッチ1、検出器2、鍵盤3、検出
器4、音源部5、ディジタルアナログ変換器(DAC)
6、およびサウンドシステム7を備えている。
FIG. 1 shows a block configuration of an electronic musical instrument to which a waveform generating apparatus according to an embodiment of the present invention is applied. This electronic musical instrument includes a tone color switch 1, a detector 2, a keyboard 3, a detector 4, a tone generator 5, and a digital-analog converter (DAC).
6 and a sound system 7.

【0018】音色スイッチ1は、発生する楽音の音色を
指定するためのスイッチである。検出器2は、音色スイ
ッチ1の操作を検出して、指定された音色の音色番号T
Cを音源部5に向けて出力する。鍵盤3は、演奏者が演
奏するための複数の鍵を備えた鍵盤である。検出器4
は、鍵盤3の演奏を検出し、演奏データKDを音源部5
に向けて出力する。演奏データKDは、鍵のオン/オフ
を示すキーオン/オフ信号および音高を示すノードコー
ドを含む。
The tone color switch 1 is a switch for designating a tone color of a generated musical tone. The detector 2 detects the operation of the tone color switch 1 and detects the tone color number T of the designated tone color.
C is output toward the sound source unit 5. The keyboard 3 is a keyboard provided with a plurality of keys for the performer to play. Detector 4
Detects the performance of the keyboard 3 and outputs the performance data KD to the tone generator section 5.
Output to. The performance data KD includes a key on / off signal indicating a key on / off and a node code indicating a pitch.

【0019】音源部5は、検出器2,4からの音色番号
TCおよび演奏データKDに基づいて楽音信号(ディジ
タル波形振幅値データ)を生成出力する。音源部5は、
内部に波形メモリを備えている。DAC6は、音源部5
からの楽音信号に対しディジタルアナログ変換を行な
い、アナログ楽音信号を出力する。サウンドシステム7
は、DAC6から出力されるアナログ楽音信号に基づき
実際に楽音を放音する。
The tone generator 5 produces and outputs a tone signal (digital waveform amplitude value data) based on the tone color number TC and the performance data KD from the detectors 2, 4. The sound source unit 5 is
It has a waveform memory inside. The DAC 6 is the sound source unit 5
The digital-to-analog conversion is performed on the musical tone signal from and the analog musical tone signal is output. Sound system 7
Actually emits a musical tone based on the analog musical tone signal output from the DAC 6.

【0020】図2は、図1の音源部5の内部に設けられ
ている波形メモリの波形データフォーマットを示す。波
形メモリは、複数の記憶バンクを有し、各バンクに音色
ごとの波形デ−タが記憶されている。図2は、ある1つ
の音色の波形デ−タを示したものである。
FIG. 2 shows the waveform data format of the waveform memory provided inside the tone generator section 5 of FIG. The waveform memory has a plurality of storage banks, and the waveform data for each tone color is stored in each bank. FIG. 2 shows waveform data of one timbre.

【0021】波形データは、その音色の楽音波形の順次
サンプル点振幅値(波形振幅値)デ−タからなる。ただ
し、この実施例では、振幅値そのままの非圧縮なデータ
(以下、「リニアサンプル」と呼ぶ)と直前のサンプル
点の振幅値からの差分データ(以下、「圧縮サンプル」
と呼ぶ)とが混在している。具体的には、16ビットの
リニアサンプル、8ビットの圧縮サンプル、および8ビ
ットの圧縮サンプルが、この順で並んだブロックの繰返
しである。
The waveform data is composed of sequential sampling point amplitude value (waveform amplitude value) data of the tone waveform of the tone color. However, in this embodiment, uncompressed data with the amplitude value as it is (hereinafter referred to as “linear sample”) and difference data from the amplitude value of the immediately preceding sample point (hereinafter, “compressed sample”).
Called) is mixed. Specifically, 16-bit linear samples, 8-bit compressed samples, and 8-bit compressed samples are repeated blocks arranged in this order.

【0022】図2において、D0 は読出し開始位置であ
るアドレス(先頭からのオフセットアドレス)0に格納
された16ビットのリニアサンプル、D1 は次のアドレ
ス1の前半に格納された8ビットの圧縮サンプル、D2
はアドレス1の後半に格納された8ビットの圧縮サンプ
ルを示す。以下同様に、D3 ,D6 ,D9 ,…,Dm
は、それぞれアドレス2,4,6,…,(2/3)mに
格納された16ビットのリニアサンプルを示す。D4 ,
D7 ,D10,…,Dm+1 は、それぞれアドレス3,5,
7,…,(2/3)m+1の前半に格納された8ビット
の圧縮サンプルを示す。D5 ,D8 ,D11,…,Dm+2
は、それぞれアドレス3,5,7,…,(2/3)m+
1の後半に格納された8ビットの圧縮サンプルを示す。
In FIG. 2, D0 is a 16-bit linear sample stored at an address (offset address from the beginning) 0 which is a read start position, and D1 is an 8-bit compressed sample stored in the first half of the next address 1. , D2
Indicates an 8-bit compressed sample stored in the latter half of address 1. Similarly, D3, D6, D9, ..., Dm
Indicate 16-bit linear samples stored at addresses 2, 4, 6, ..., (2/3) m, respectively. D4,
D7, D10, ..., Dm + 1 are addresses 3, 5 and 5, respectively.
7 ... Shows 8-bit compressed samples stored in the first half of (2/3) m + 1. D5, D8, D11, ..., Dm + 2
Are addresses 3, 5, 7, ..., (2/3) m +, respectively.
8 shows an 8-bit compressed sample stored in the latter half of 1.

【0023】リニアサンプルとそれに続く2つの圧縮サ
ンプルの組をブロックと呼ぶ。例えば、データD0 ,D
1 ,D2 は1つのブロック、データD3 ,D4 ,D5 は
1つのブロック、…である。
A set of linear samples followed by two compressed samples is called a block. For example, the data D0, D
1, D2 is one block, data D3, D4, D5 is one block, ....

【0024】図3は、波形メモリに格納する図2のよう
な波形データと元の楽音波形との関連を示す図である。
300はサンプリングする楽音波形、301〜306は
それぞれサンプリング点を示す。黒丸で示したサンプリ
ング点301,304ではリニアサンプルをとり、白丸
で示したサンプリング点302,303,305,30
6では圧縮サンプルをとる。
FIG. 3 is a diagram showing the relationship between the waveform data stored in the waveform memory as shown in FIG. 2 and the original tone waveform.
Reference numeral 300 denotes a tone waveform to be sampled, and reference numerals 301 to 306 denote sampling points. Sampling points 301 and 304 indicated by black circles take linear samples, and sampling points 302, 303, 305 and 30 indicated by white circles are taken.
At 6, a compressed sample is taken.

【0025】例えば、サンプリング点301でサンプリ
ングしたリニアサンプルを図2のD3 とすると、次のサ
ンプリング点302のデータD4 は、サンプリング点3
02における振幅値とサンプリング点301における振
幅値との差分311となる。同様に、サンプリング点3
03のデータD5 は、サンプリング点303における振
幅値とサンプリング点302における振幅値との差分3
12となる。
For example, assuming that the linear sample sampled at the sampling point 301 is D3 in FIG. 2, the data D4 at the next sampling point 302 is the sampling point 3
A difference 311 between the amplitude value at 02 and the amplitude value at the sampling point 301 is obtained. Similarly, sampling point 3
The data D5 of 03 is the difference 3 between the amplitude value at the sampling point 303 and the amplitude value at the sampling point 302.
Twelve.

【0026】この実施例の電子楽器では、隣合う4つの
サンプルポイントに対応する波形データから補間を行な
う。上述の図2のように波形データを構成すれば、隣合
う4点の波形データを得るためには、以下の3つの組合
わせがある。
In the electronic musical instrument of this embodiment, interpolation is performed from waveform data corresponding to four adjacent sample points. If the waveform data is configured as shown in FIG. 2 described above, there are the following three combinations in order to obtain the waveform data of four adjacent points.

【0027】(1−)リニアサンプル、圧縮サンプ
ル、圧縮サンプル、リニアサンプルの順に4点をとる。
例えば、図2のデータD0 ,D1 ,D2 ,D3 の4点で
ある。圧縮サンプルD1 に対応するサンプル点のリニア
な振幅値を得るためには、リニアサンプルD0 を用い
て、D0 +D1 =D1 ′で算出する。また、圧縮サンプ
ルD2 に対応するサンプル点のリニアな振幅値を得るた
めには、算出したリニアサンプルD1 ′を用いて、D1
′+D2 =D2 ′で算出する。以下、簡単のため、圧
縮サンプルから求めたリニアな振幅値(例えば、上記D
1 ′やD2 ′)を算出リニアサンプルと呼ぶこととす
る。得られたデータD0 ,D1 ′,D2 ′,D3 に基づ
いて補間を行ない、データD0 のサンプル点とデータD
1 ′のサンプル点との間にある目的サンプル点の波形振
幅値を得る。
(1) Four points are taken in the order of linear sample, compressed sample, compressed sample, and linear sample.
For example, there are four points of data D0, D1, D2, D3 in FIG. In order to obtain the linear amplitude value of the sample point corresponding to the compressed sample D1, the linear sample D0 is used and D0 + D1 = D1 'is calculated. Further, in order to obtain the linear amplitude value of the sample point corresponding to the compressed sample D2, the calculated linear sample D1 'is used to obtain D1
It is calculated by '+ D2 = D2'. For the sake of simplicity, a linear amplitude value obtained from a compressed sample (for example, the above D
1'and D2 ') are called calculated linear samples. Interpolation is performed on the basis of the obtained data D0, D1 ', D2', D3, and the sampling points of the data D0 and the data D
Obtain the waveform amplitude value of the target sample point between the 1'sample points.

【0028】(1−)圧縮サンプル、圧縮サンプル、
リニアサンプル、圧縮サンプルの順に4点をとる。例え
ば、図2のデータD1 ,D2 ,D3 ,D4 の4点であ
る。圧縮サンプルD1 ,D2 に対応する算出リニアサン
プルD1 ′,D2 ′を得るためには、リニアサンプルD
0 が必要である。算出リニアサンプルD4 ′は、リニア
サンプルD3 を用いて算出する。得られたデータD1
′,D2 ′,D3 ,D4 ′に基づいて補間を行ない、
データD1 ′のサンプル点とデータD2 ′のサンプル点
との間にある目的サンプル点の波形振幅値を得る。
(1-) compressed sample, compressed sample,
Four points are taken in the order of linear sample and compressed sample. For example, there are four points of data D1, D2, D3 and D4 in FIG. In order to obtain the calculated linear samples D1 'and D2' corresponding to the compressed samples D1 and D2, the linear sample D
0 is required. The calculated linear sample D4 'is calculated using the linear sample D3. Obtained data D1
Interpolation based on ′, D2 ′, D3, D4 ′,
The waveform amplitude value of the target sample point between the sample points of the data D1 'and the sample points of the data D2' is obtained.

【0029】(1−)圧縮サンプル、リニアサンプ
ル、圧縮サンプル、圧縮サンプルの順に4点をとる。例
えば、図2のデータD2 ,D3 ,D4 ,D5 の4点であ
る。圧縮サンプルD2 に対応する算出リニアサンプルD
2 ′を得るためには、リニアサンプルD0 と圧縮サンプ
ルD1 が必要である。算出リニアサンプルD4 ′,D5
′は、リニアサンプルD3 を用いて算出する。得られ
たデータD2 ′,D3 ,D4′,D5 ′に基づいて補間
を行ない、データD2 ′のサンプル点とデータD3 ′の
サンプル点との間にある目的サンプル点の波形振幅値を
得る。
(1) Four points are taken in the order of compressed sample, linear sample, compressed sample, and compressed sample. For example, there are four points of data D2, D3, D4, D5 in FIG. Calculated linear sample D corresponding to compressed sample D2
To obtain 2 ', linear sample D0 and compressed sample D1 are needed. Calculated linear samples D4 ', D5
′ Is calculated using the linear sample D3. Interpolation is performed based on the obtained data D2 ', D3, D4', D5 'to obtain the waveform amplitude value of the target sample point between the sample point of the data D2' and the sample point of the data D3 '.

【0030】以上より、リニアサンプルから始めて4回
のアドレッシングを行なえば(例えば上記の例では図2
のアドレス0,1,2,3の16ビット×4データを読
み出せば)、隣合う4点の振幅値を必ず得ることができ
ることになる。言い換えると、波形メモリのどの位置か
ら読出しを開始する場合でも、2ブロック分を読み出し
さえすれば、隣合う4点の振幅値を必ず得ることができ
る。
From the above, if the addressing is performed four times starting from the linear sample (for example, in FIG.
If the 16-bit × 4 data of the addresses 0, 1, 2, and 3 are read out), the amplitude values of four adjacent points can be obtained without fail. In other words, no matter where in the waveform memory the reading is started, the amplitude values of four adjacent points can be obtained without fail by reading only two blocks.

【0031】次に、上述したように波形メモリを構成
し、飛ばし読みを可能とした本実施例の音源部につき詳
しく説明する。
Next, a detailed description will be given of the sound source section of the present embodiment, which has the waveform memory as described above and is capable of skip reading.

【0032】図4は、図1の音源部5のブロック構成を
示す。音源部5は、発音チャンネル割当て部401、音
色データ供給部402、Fナンバ発生部403、カウン
タ404、乗算器405,406、加算器407,40
8、補助カウンタ409、波形メモリ410、デコーダ
411、補間部412、エンベロープ発生器413、乗
算器414、およびチャンネル累算器415を備えてい
る。
FIG. 4 shows a block configuration of the sound source unit 5 of FIG. The sound source unit 5 includes a sound generation channel assignment unit 401, a tone color data supply unit 402, an F number generation unit 403, a counter 404, multipliers 405 and 406, and adders 407 and 40.
8, an auxiliary counter 409, a waveform memory 410, a decoder 411, an interpolator 412, an envelope generator 413, a multiplier 414, and a channel accumulator 415.

【0033】音色番号TCは、音色データ供給部402
に入力する。演奏データKDは、発音チャンネル割当て
部401に入力する。発音チャンネル割当て部401
は、入力演奏データKDに基づいて、時分割でチャンネ
ルの割当てを行ない、各チャンネルのタイムスロット
で、キーオン/オフ信号を音色データ供給部402に、
音高を示すキーコードをFナンバ発生部403に、それ
ぞれ出力する。
The tone color number TC is the tone color data supply section 402.
To enter. The performance data KD is input to the sound generation channel allocation unit 401. Pronunciation channel allocation unit 401
Assigns channels on a time-division basis based on the input performance data KD, and sends a key on / off signal to the tone color data supply unit 402 in a time slot of each channel.
The key code indicating the pitch is output to the F number generation unit 403, respectively.

【0034】音色データ供給部402は、各チャンネル
のタイムスロットで、音色番号TCに応じた音色データ
を、Fナンバ発生部403およびエンベロープ発生部4
13に供給する。また、音色データ供給部402は、音
色に応じたスタートアドレス(波形メモリ410の該音
色のデータ格納スタートアドレス)SAを加算器407
に向けて出力する。
The tone color data supply section 402 outputs the tone color data corresponding to the tone color number TC in the time slot of each channel to the F number generation section 403 and the envelope generation section 4.
Supply to 13. Further, the tone color data supply unit 402 adds the start address (start address for storing the tone color data of the waveform memory 410) SA corresponding to the tone color to the adder 407.
Output to.

【0035】Fナンバ発生部403は、各タイムスロッ
トにおいて、発生すべき楽音の音色データとキーコード
に応じたFナンバを発生する。カウンタ404は、この
Fナンバを順次累算し、累算値qF(q=1、2、3、
…)を出力する。累算値qFの整数部I(所定ビット位
置(小数点位置)より上位の値)は、乗算器405で所
定の定数Aと乗算される。この乗算結果AIは、波形デ
ータのスタートアドレスからのオフセット(図2のアド
レス0,1,2,…)となる。この乗算結果AIは、加
算器407でスタートアドレスSAと加算され、その加
算結果SA+AIは加算器408に入力する。
The F number generating section 403 generates an F number corresponding to the tone color data of the musical tone to be generated and the key code in each time slot. The counter 404 sequentially accumulates the F numbers and accumulates the accumulated value qF (q = 1, 2, 3,
...) is output. The integer part I of the accumulated value qF (value higher than a predetermined bit position (decimal point position)) is multiplied by a predetermined constant A in a multiplier 405. The multiplication result AI becomes an offset (address 0, 1, 2, ... In FIG. 2) from the start address of the waveform data. The multiplication result AI is added to the start address SA by the adder 407, and the addition result SA + AI is input to the adder 408.

【0036】ここで乗算器405の定数Aは、上記加算
結果SA+AIによって波形メモリのリニアサンプルが
アドレッシングされるように選択されている。図2から
分かるように、この実施例ではアドレス0,2,4,…
にリニアサンプルが記憶されているから、上記定数Aの
値は「2」である。これにより、加算器407の加算結
果は常にリニアサンプルをアドレッシングするアドレス
となる。
Here, the constant A of the multiplier 405 is selected so that the linear sample of the waveform memory is addressed by the addition result SA + AI. As can be seen from FIG. 2, addresses 0, 2, 4, ...
Since the linear sample is stored in, the value of the constant A is “2”. As a result, the addition result of the adder 407 is always the address for addressing the linear sample.

【0037】補助カウンタ409は、何サンプルを用い
て補間を行なうか、その数に応じてカウント値を繰返し
出力する。この実施例では、上述したように、4つの連
続するアドレスのデータ(16ビット×4)さえ読み出
せば、隣合う4点の振幅値を必ず得ることができるか
ら、補助カウンタ409は「0」「1」「2」「3」を
この順で順次出力する。
The auxiliary counter 409 repeatedly outputs a count value according to the number of samples used for interpolation and the number thereof. In this embodiment, as described above, the amplitude values of four adjacent points can be obtained without fail by reading the data (16 bits × 4) at four consecutive addresses, so the auxiliary counter 409 is set to “0”. "1", "2", and "3" are sequentially output in this order.

【0038】加算器408は、加算器407の加算結果
(リニアサンプルのアドレス)に補助カウンタ409か
らの出力を加算して、順次出力する。これにより、加算
器408からは、連続する4つのアドレスが順次出力さ
れることとなる。
The adder 408 adds the output from the auxiliary counter 409 to the addition result (address of the linear sample) of the adder 407, and outputs sequentially. As a result, four consecutive addresses are sequentially output from the adder 408.

【0039】波形メモリ410は、加算器408から順
次出力される4つの連続するアドレスによってデータが
読出される。第1番目のデータはリニアサンプル、第2
番目は圧縮サンプルが2つ分、第3番目はリニアサンプ
ル、第4番目は圧縮サンプルが2つ分である。読み出さ
れた4つのデータは、順次デコーダ411に入力する。
Data is read from the waveform memory 410 by four consecutive addresses sequentially output from the adder 408. 1st data is linear sample, 2nd
The second is for two compressed samples, the third is for linear samples, and the fourth is for two compressed samples. The read four data are sequentially input to the decoder 411.

【0040】一方、カウンタ404の少数部J(所定ビ
ット位置(小数点位置)より下位の値)は、乗算器40
6で所定の定数Bと乗算される。本実施例では定数Bの
値は「3」である。この値は、図2,3から分かるよう
に、リニアサンプルから次のリニアサンプルまでに3区
間あり、補間して求めるべき目的サンプル点がどの区間
に含まれるかを区別できるように選ばれている。乗算結
果BJの整数部i(「0」「1」「2」または「3」)
はデコーダ411に入力し、デコーダ411はこの整数
部iの値に基づいて4つの隣合うサンプル点のリニアな
振幅値データを順次出力する。
On the other hand, the decimal part J of the counter 404 (value lower than the predetermined bit position (decimal point position)) is the multiplier 40.
It is multiplied by 6 with a predetermined constant B. In this embodiment, the value of the constant B is "3". As can be seen from FIGS. 2 and 3, this value has three sections from the linear sample to the next linear sample, and is selected so that it can be distinguished which section contains the target sample point to be interpolated. . Integer part i of multiplication result BJ (“0” “1” “2” or “3”)
Is input to the decoder 411, and the decoder 411 sequentially outputs linear amplitude value data of four adjacent sample points based on the value of the integer part i.

【0041】以下、整数部iの意味およびデコーダ41
1が整数部iの値に基づいてどのように4点を選択する
かなどについて概略を説明する。
Hereinafter, the meaning of the integer part i and the decoder 41
The outline of how 1 selects four points based on the value of the integer part i will be described.

【0042】例えば、波形メモリ410から図2のアド
レス4,5,6,7の4データがデコーダ411に入力
したとする。サンプルでいえば、リニアサンプルD6 ,
D9および圧縮サンプルD7 ,D8 ,D10,D11がデコ
ーダ411に入力したことになる。
For example, it is assumed that the four pieces of data of addresses 4, 5, 6, and 7 in FIG. 2 are input from the waveform memory 410 to the decoder 411. Speaking of samples, linear sample D6,
This means that D9 and the compressed samples D7, D8, D10 and D11 are input to the decoder 411.

【0043】図3のサンプル点301をD6 に、サンプ
ル点302をD7 に、サンプル点303をD8 に、サン
プル点304をD9 に、サンプル点305をD10に、サ
ンプル点306をD11に、それぞれ対応させると、いま
補間によって求めたい目的サンプル点がどこにあるかに
よって、以下のような場合分けをする必要がある。
In FIG. 3, the sample point 301 corresponds to D6, the sample point 302 corresponds to D7, the sample point 303 corresponds to D8, the sample point 304 corresponds to D9, the sample point 305 corresponds to D10, and the sample point 306 corresponds to D11. Then, the following cases need to be classified according to where the target sample point to be obtained by interpolation is now.

【0044】(2−)目的サンプル点が、サンプル点
301と302の間にあるとき このとき図4のカウンタ404から出力される少数部J
は、0≦J<(1/3)であるから、定数B(=3)を
乗算した結果BJは、0≦BJ<1であり、乗算結果B
Jの整数部iは「0」となる。デコーダ411は、整数
部i=0を入力すると、上記の入力サンプルデータD6
〜D11に基づいて、サンプル点301,302,30
3,304の各振幅値(すべてリニアな値)を求めて順
次出力する。すなわち、リニアサンプルD6 、算出リニ
アサンプルD7 ′(=D6 +D7 )、算出リニアサンプ
ルD8 ′(=D7 ′+D8 )、およびリニアサンプルD
9 の4つの振幅値を順次出力する。
(2-) When the target sample point is between the sample points 301 and 302 At this time, the fractional part J output from the counter 404 in FIG.
Is 0 ≦ J <(1/3), the result BJ obtained by multiplying the constant B (= 3) is 0 ≦ BJ <1 and the multiplication result B
The integer part i of J is “0”. When the integer part i = 0 is input to the decoder 411, the input sample data D6 is input.
~ D11 based on sample points 301, 302, 30
Each amplitude value of 3,304 (all linear values) is obtained and sequentially output. That is, the linear sample D6, the calculated linear sample D7 '(= D6 + D7), the calculated linear sample D8' (= D7 '+ D8), and the linear sample D
The four amplitude values of 9 are sequentially output.

【0045】(2−)目的サンプル点が、サンプル点
302と303の間にあるとき このとき図1のカウンタ404から出力される少数部J
は、(1/3)≦J<(2/3)であるから、定数B
(=3)を乗算した結果BJは、1≦BJ<2であり、
乗算結果BJの整数部iは「1」となる。デコーダ41
1は、整数部i=1を入力すると、上記の入力サンプル
データD6 〜D11に基づいて、サンプル点302,30
3,304,305の各振幅値(すべてリニアな値)を
求めて順次出力する。すなわち、算出リニアサンプルD
7 ′(=D6 +D7 )、算出リニアサンプルD8 ′(=
D7 ′+D8 )、リニアサンプルD9 、および算出リニ
アサンプルD10′(=D9 +D10)の4つの振幅値を順
次出力する。
(2-) When the target sample point is between the sample points 302 and 303 At this time, the fractional part J output from the counter 404 in FIG.
Is (1/3) ≦ J <(2/3), the constant B
As a result of multiplying (= 3), BJ is 1 ≦ BJ <2,
The integer part i of the multiplication result BJ becomes “1”. Decoder 41
When the integer part i = 1 is input, 1 is the sampling point 302, 30 based on the input sample data D6 to D11.
The amplitude values of 3, 304 and 305 (all linear values) are obtained and sequentially output. That is, the calculated linear sample D
7 '(= D6 + D7), calculated linear sample D8' (=
D7 '+ D8), linear sample D9, and calculated linear sample D10' (= D9 + D10).

【0046】(2−)目的サンプル点が、サンプル点
303と304の間にあるとき このとき図1のカウンタ404から出力される少数部J
は、(2/3)≦J<1であるから、定数B(=3)を
乗算した結果BJは、2≦BJ<3であり、乗算結果B
Jの整数部iは「2」となる。デコーダ411は、整数
部i=2を入力すると、上記の入力サンプルデータD6
〜D11に基づいて、サンプル点303,304,30
5,306の各振幅値(すべてリニアな値)を求めて順
次出力する。すなわち、算出リニアサンプルD8 ′(=
D7 ′+D8 )、リニアサンプルD9 、算出リニアサン
プルD10′(=D9 +D10)、および算出リニアサンプ
ルD11′(=D10′+D11)の4つの振幅値を順次出力
する。
(2-) When the target sample point is between the sample points 303 and 304 At this time, the fractional part J output from the counter 404 in FIG.
Is (2/3) ≦ J <1, the result BJ obtained by multiplying the constant B (= 3) is 2 ≦ BJ <3, and the multiplication result B
The integer part i of J is “2”. When the integer part i = 2 is input to the decoder 411, the input sample data D6 is input.
~ D11 based on sample points 303, 304, 30
Each amplitude value of 5,306 (all linear values) is obtained and sequentially output. That is, the calculated linear sample D8 '(=
D7 '+ D8), linear sample D9, calculated linear sample D10' (= D9 + D10), and calculated linear sample D11 '(= D10' + D11).

【0047】次に、図5,6を参照して、デコーダ41
1の構成と動作を詳しく説明する。図5において、デコ
ーダ411は、ラッチ501、セレクタ502、データ
伸張部503、加算器504、セレクタ505、ディレ
イ部506、ロードパルス発生部507、および出力レ
ジスタ部508を備えている。
Next, referring to FIGS. 5 and 6, the decoder 41
1 will be described in detail. In FIG. 5, the decoder 411 includes a latch 501, a selector 502, a data decompression unit 503, an adder 504, a selector 505, a delay unit 506, a load pulse generation unit 507, and an output register unit 508.

【0048】波形メモリ410からの出力は、ラッチ5
01およびセレクタ502に入力する。ラッチ501
は、入力データのうち特にリニアサンプルをラッチする
ためのものである。ラッチ501の出力(16ビット)
は、セレクタ505の入力端子Aに入力する。
The output from the waveform memory 410 is the latch 5
01 and the selector 502. Latch 501
Is for latching particularly linear samples of the input data. Latch 501 output (16 bits)
Is input to the input terminal A of the selector 505.

【0049】セレクタ502は、波形メモリ410から
の出力データが圧縮サンプル2つ分(8ビット×2=1
6ビット)であった場合に、2つの圧縮サンプルを分離
するためのものである。セレクタ502の入力端子Aに
は、波形メモリ410からの16ビットの入力のうち上
位8ビットが入力する。セレクタ502の入力端子Bに
は、波形メモリ410からの16ビットの入力のうち下
位8ビットが入力する。
The selector 502 outputs the output data from the waveform memory 410 for two compressed samples (8 bits × 2 = 1).
6 bits), it is for separating two compressed samples. The upper 8 bits of the 16-bit input from the waveform memory 410 are input to the input terminal A of the selector 502. The lower 8 bits of the 16-bit input from the waveform memory 410 are input to the input terminal B of the selector 502.

【0050】データ伸張部503は、セレクタ502か
ら出力される圧縮サンプル(8ビット)を16ビットに
伸張(上位に8ビットの「0」を付加)する。データ伸
張部503からの出力は、加算器504に入力する。ま
た、加算器504には、ディレイ部506からの出力デ
ータが入力する。加算器504は、これらを加算し、加
算結果(16ビット)をセレクタ505の入力端子Bに
出力する。
The data decompression unit 503 decompresses the compressed sample (8 bits) output from the selector 502 into 16 bits (adds 8-bit "0" to the higher order). The output from the data decompression unit 503 is input to the adder 504. The output data from the delay unit 506 is input to the adder 504. The adder 504 adds these and outputs the addition result (16 bits) to the input terminal B of the selector 505.

【0051】加算器504は、圧縮サンプルとリニアサ
ンプル(算出リニアサンプルの場合もある)とを加算し
て、その圧縮サンプルに対応する算出リニアサンプルを
求めるためのものである。
The adder 504 is for adding a compressed sample and a linear sample (which may be a calculated linear sample) to obtain a calculated linear sample corresponding to the compressed sample.

【0052】すなわち、まず波形メモリ410からリニ
アサンプルが入力したときには、ラッチ501およびセ
レクタ505を介してディレイ部506で、そのリニア
サンプルを保持する。一方、リニアサンプルに続いて圧
縮サンプル2つ分のデータがデコーダに入力する。
That is, when a linear sample is first input from the waveform memory 410, the delay section 506 holds the linear sample via the latch 501 and the selector 505. On the other hand, data for two compressed samples is input to the decoder following the linear samples.

【0053】始めの圧縮サンプルが、セレクタ502で
分離され、さらにデータ伸張部503で16ビットに伸
張されて出力される。このとき、ディレイ部506から
は、直前のリニアサンプルが出力されるようになってお
り、加算器504でリニアサンプルと圧縮サンプルとを
加算する。これにより、加算器504から圧縮サンプル
に対応するサンプル点の算出リニアサンプルが出力さ
れ、セレクタ505およびディレイ部506を介して出
力される。次の圧縮サンプルについても同様に処理さ
れ、その圧縮サンプルに対応する算出リニアサンプルが
出力される。
The first compressed sample is separated by the selector 502, further expanded by the data expansion unit 503 to 16 bits and output. At this time, the immediately preceding linear sample is output from the delay unit 506, and the adder 504 adds the linear sample and the compressed sample. Thereby, the adder 504 outputs the calculated linear sample of the sample point corresponding to the compressed sample, and is output via the selector 505 and the delay unit 506. The next compressed sample is similarly processed, and the calculated linear sample corresponding to the compressed sample is output.

【0054】結果として、ディレイ部506からは、入
力した4アドレス分のデータに含まれる6つのサンプル
点のリニアな振幅値データが順次出力されることとな
る。
As a result, the delay unit 506 sequentially outputs the linear amplitude value data of the six sample points included in the input data for four addresses.

【0055】ディレイ部506から出力されたリニアな
振幅値データは、出力レジスタ508にロードされる。
ロードは、ロードパルス発生部507から出力されるロ
ードパルスに基づいて行なわれる。
The linear amplitude value data output from the delay unit 506 is loaded into the output register 508.
The loading is performed based on the load pulse output from the load pulse generator 507.

【0056】ロードパルス発生部507は、図4の乗算
器406から出力された整数部iに基づいて、ディレイ
部506から順次出力される6つのリニアな振幅値デー
タのうちロードすべき4つのデータのみをロードするよ
うにロードパルスを出力する。出力レジスタ508は、
FIFO(First−In First−Out)の
レジスタであり、ロードされた振幅値データは所定周期
のパルスφSPに基づいて読出される。出力レジスタから
読み出された振幅値データは、補間部412に入力す
る。
The load pulse generating section 507, based on the integer part i output from the multiplier 406 of FIG. 4, outputs four data to be loaded out of the six linear amplitude value data sequentially output from the delay section 506. Output a load pulse to load only. The output register 508 is
This is a FIFO (First-In First-Out) register, and the loaded amplitude value data is read based on a pulse φSP of a predetermined cycle. The amplitude value data read from the output register is input to the interpolation unit 412.

【0057】次に、具体例を用いてデコーダ411の動
作をさらに詳しく説明する。
Next, the operation of the decoder 411 will be described in more detail using a specific example.

【0058】図6は、デコーダ411の動作を説明する
ためのタイムチャートを示す。図6のPA〜PEは、図
5の同じPA〜PEで示す位置におけるタイムチャート
を示す。ここでは、図2のアドレス4,5,6,7のデ
ータ(すなわち、サンプルデータD6 〜D11)が順次入
力する場合を例として説明する。
FIG. 6 shows a time chart for explaining the operation of the decoder 411. PA-PE of FIG. 6 shows the time chart in the position shown by the same PA-PE of FIG. Here, a case where the data at the addresses 4, 5, 6, and 7 in FIG. 2 (that is, the sample data D6 to D11) are sequentially input will be described as an example.

【0059】図6のPAに示すように、波形メモリ41
0から、図2のアドレス4のリニアサンプルデータD6
、アドレス5の圧縮サンプルデータD7 とD8 、アド
レス6のリニアサンプルデータD9 、およびアドレス7
の圧縮サンプルデータD10とD11が、順次、デコーダ4
11に入力したとする。PBは、ラッチ501の出力を
示す。ラッチ501は、リニアサンプルD6 およびD9
をラッチし出力する。
As shown in PA of FIG. 6, the waveform memory 41
0 to linear sample data D6 at address 4 in FIG.
, Compressed sample data D7 and D8 at address 5, linear sample data D9 at address 6, and address 7
The compressed sample data D10 and D11 of
It is assumed that the data is input to 11. PB indicates the output of the latch 501. Latch 501 has linear samples D6 and D9.
Is latched and output.

【0060】PCは、セレクタ502の出力のタイミン
グチャートを示す。セレクタ502は、波形メモリ41
0から圧縮サンプルデータD7 とD8 が出力されるタイ
ムスロットの前半で圧縮サンプルデータD7 を選択出力
し、そのタイムスロットの後半で圧縮サンプルデータD
8 を選択出力する。
PC shows a timing chart of the output of the selector 502. The selector 502 is the waveform memory 41.
The compressed sample data D7 is selected and output in the first half of the time slot in which the compressed sample data D7 and D8 are output from 0, and the compressed sample data D is output in the latter half of the time slot.
8 is selected and output.

【0061】PDは、ディレイ部506の出力のタイミ
ングチャートを示す。ディレイ部506では、まずラッ
チ501およびセレクタ505を介して入力したリニア
サンプルD6 が保持され出力される。
PD shows a timing chart of the output of the delay unit 506. The delay unit 506 first holds and outputs the linear sample D6 input via the latch 501 and the selector 505.

【0062】リニアサンプルD6 が出力されている間
に、PCに示すように圧縮サンプルD7 がデータ伸張部
503を介して加算器504に入力する。加算器504
で、リニアサンプルD6 と圧縮サンプルD7 との加算が
行なわれ、圧縮サンプルD7 に対応するサンプル点のリ
ニアな振幅値である算出リニアサンプルD7 ′=D6 +
D7 が出力される。この算出リニアサンプルD7 ′は、
セレクタ505を介してディレイ部506で保持され、
PDのようにリニアサンプルD6 に引き続いてディレイ
部506から出力される。
While the linear sample D6 is being output, the compressed sample D7 is input to the adder 504 via the data expansion section 503 as shown in the PC. Adder 504
Then, the linear sample D6 and the compressed sample D7 are added, and the calculated linear sample D7 '= D6 + which is the linear amplitude value of the sample point corresponding to the compressed sample D7.
D7 is output. This calculated linear sample D7 'is
It is held by the delay unit 506 via the selector 505,
It is output from the delay unit 506 subsequent to the linear sample D6 like PD.

【0063】ディレイ部506から算出リニアサンプル
D7 ′が出力されているとき、PCに示すように、セレ
クタ502からは次の圧縮サンプルD8 が出力される。
圧縮サンプルD8 はデータ伸張部503を介して加算器
504に入力する。加算器504で、算出リニアサンプ
ルD7 ′と圧縮サンプルD8 との加算が行なわれ、圧縮
サンプルD8 に対応するサンプル点のリニアな振幅値で
ある算出リニアサンプルD8 ′=D7 ′+D8 が出力さ
れる。この算出リニアサンプルD8 ′は、セレクタ50
5およびディレイ部506を介して、PDのように引き
続いて出力される。
When the calculated linear sample D7 'is output from the delay unit 506, the next compressed sample D8 is output from the selector 502 as shown in the PC.
The compressed sample D8 is input to the adder 504 via the data expansion unit 503. The adder 504 adds the calculated linear sample D7 'and the compressed sample D8, and outputs the calculated linear sample D8' = D7 '+ D8 which is the linear amplitude value of the sample point corresponding to the compressed sample D8. This calculated linear sample D8 'is the selector 50
5 and the delay unit 506, the signal is continuously output like a PD.

【0064】結果として図6のPDのように、リニアサ
ンプル(もともとリニアな振幅値)D6 、算出リニアサ
ンプル(圧縮サンプルD7 に対応するサンプル点のリニ
アな振幅値)D7 ′=D6 +D7 、および算出リニアサ
ンプル(圧縮サンプルD8 に対応するサンプル点のリニ
アな振幅値)D8 ′=D7 ′+D8 が、出力レジスタ5
08に向けて順次出力される。次のサンプルD9 〜D11
についても同様に処理され、リニアサンプルD9 、算出
リニアサンプルD10′、および算出リニアサンプルD1
1′が、出力レジスタ508に向けて順次出力される。
As a result, as shown in PD of FIG. 6, linear sample (originally linear amplitude value) D6, calculated linear sample (linear amplitude value of sample point corresponding to compressed sample D7) D7 '= D6 + D7, and calculated The linear sample (the linear amplitude value of the sampling point corresponding to the compressed sample D8) D8 '= D7' + D8 is output to the output register 5
It is sequentially output toward 08. Next sample D9 ~ D11
Are processed in the same manner, and the linear sample D9, the calculated linear sample D10 ', and the calculated linear sample D1 are processed.
1'is sequentially output to the output register 508.

【0065】PDのように順次出力される6つのリニア
な振幅値データは、出力レジスタ508にロードされる
が、そのロードのタイミングを示すロードパルスは、図
6のようなタイミングで発生される。
Six linear amplitude value data which are sequentially output like PD are loaded into the output register 508, and the load pulse indicating the loading timing is generated at the timing shown in FIG.

【0066】まず、図4の乗算器406から出力された
整数部iの値が「0」のときは、上記の(2−)の場
合であるから、振幅値データD6 ,D7 ′,D8 ′,D
9 が出力レジスタ508にロードされるように、ロード
パルスが発生される。整数部iの値が「1」のときは、
上記の(2−)の場合であるから、振幅値データD7
′,D8 ′,D9 ,D10′が出力レジスタ508にロ
ードされるように、ロードパルスが発生される。整数部
iの値が「2」のときは、上記の(2−)の場合であ
るから、振幅値データD8 ′,D9 ,D10′,D11′が
出力レジスタ508にロードされるように、ロードパル
スが発生される。
First, when the value of the integer part i output from the multiplier 406 of FIG. 4 is "0", which is the case of the above (2-), the amplitude value data D6, D7 ', D8'. , D
A load pulse is generated so that 9 is loaded into output register 508. When the value of the integer part i is "1",
Since it is the case of (2-) above, the amplitude value data D7
A load pulse is generated so that ', D8', D9, D10 'are loaded into output register 508. When the value of the integer part i is "2", it is the case of (2-) described above, so that the amplitude value data D8 ', D9, D10', D11 'are loaded in the output register 508 so that A pulse is generated.

【0067】図6のPEは、出力レジスタ508から読
出されるデータ列を示す。上述したようにロードされた
4つの振幅値データは、所定周期のパルスφSPに基づい
て順次S0,S1,S2,S3のように読出され、補間
部412に向けて出力される。
PE in FIG. 6 indicates a data string read from the output register 508. The four amplitude value data loaded as described above are sequentially read out as S0, S1, S2, S3 based on the pulse φSP of a predetermined cycle, and output toward the interpolating unit 412.

【0068】以上のように、デコーダ411は、整数部
iの値(「0」「1」または「2」)に基づいて、4つ
の隣合うサンプル点のリニアな振幅値データを順次出力
する。なお、上述したような動作を行なうために、各部
にタイミング信号を送出するタイミング発生器(不図
示)が設けられている。
As described above, the decoder 411 sequentially outputs the linear amplitude value data of four adjacent sample points based on the value of the integer part i ("0""1" or "2"). A timing generator (not shown) that sends a timing signal is provided to each unit in order to perform the above-described operation.

【0069】再び図4を参照して、乗算結果BJの少数
部jは、補間部412に入力する。補間部412は、デ
コーダ411からの4点の振幅値データと少数部jの値
に基づいて補間処理を行ない、補間後波形データを出力
する。
Referring again to FIG. 4, the fractional part j of the multiplication result BJ is input to the interpolation section 412. The interpolation section 412 performs interpolation processing based on the amplitude value data of the four points from the decoder 411 and the value of the decimal part j, and outputs post-interpolation waveform data.

【0070】図7は、補間部412のブロック構成を示
す。補間部412は、補助カウンタ701、係数発生部
702、乗算器703、加算器704、ゲート705、
ディレイ部706、およびラッチ707を備えている。
この実施例では、4つの隣合うサンプル点を通る3次曲
線を想定して補間を行なう3次補間法を用いた。3次補
間法は、従来より知られている技術であるので、以下で
は簡単に説明する。
FIG. 7 shows a block configuration of the interpolation section 412. The interpolation unit 412 includes an auxiliary counter 701, a coefficient generation unit 702, a multiplier 703, an adder 704, a gate 705,
The delay unit 706 and the latch 707 are provided.
In this embodiment, a cubic interpolation method is used in which interpolation is performed assuming a cubic curve passing through four adjacent sample points. The cubic interpolation method is a conventionally known technique, and will be briefly described below.

【0071】補助カウンタ701は、デコーダ411か
ら順次入力する4つの振幅値データ(S0,S1,S
2,S3)に合わせて、「0」「1」「2」および
「3」のカウント値cを順次出力する。係数発生部70
2は、補助カウンタ701からのカウント値cに応じた
関数Acに乗算器406からの少数部jを代入して求め
た係数Ac(j)を出力する。
The auxiliary counter 701 has four amplitude value data (S0, S1, S) sequentially input from the decoder 411.
2, S3), the count values c of "0", "1", "2" and "3" are sequentially output. Coefficient generator 70
2 outputs a coefficient Ac (j) obtained by substituting the decimal part j from the multiplier 406 into the function Ac corresponding to the count value c from the auxiliary counter 701.

【0072】従来より知られている3次補間法によれ
ば、 A0(j)・S0+A1(j)・S1+A2(j)・S
2+A3(j)・S3 によって、補間された振幅値を求めることができる。
According to the conventionally known cubic interpolation method, A0 (j) .S0 + A1 (j) .S1 + A2 (j) .S
The interpolated amplitude value can be obtained by 2 + A3 (j) · S3.

【0073】そこで、乗算器703で、c=0,1,
2,3のそれぞれの場合に、Ac(j)とScとを乗算
し、乗算結果を加算器704に入力する。加算器704
の加算結果は、ディレイ部706に保持された後、所定
のタイミングでゲート705が開き、加算器704に入
力するようになっており、このループ回路でAc(j)
・Scを累算して、上記式の結果すなわち補間された振
幅値を求める。補間された振幅値データは、ラッチ70
7にラッチされ、次のエンベロープ付与乗算器414に
出力される。
Therefore, in the multiplier 703, c = 0, 1,
In each of the cases 2 and 3, Ac (j) is multiplied by Sc, and the multiplication result is input to the adder 704. Adder 704
After being held in the delay unit 706, the addition result of is input to the adder 704 by opening the gate 705 at a predetermined timing. In this loop circuit, Ac (j)
-Sc is accumulated to obtain the result of the above equation, that is, the interpolated amplitude value. The interpolated amplitude value data is stored in the latch 70.
7 and is output to the next envelope applying multiplier 414.

【0074】再び図4を参照して、エンベロープ発生器
413は、音色データに応じてエンベロープ信号を発生
する。乗算器414は、補間後振幅値データにエンベロ
ープ信号を乗算する。エンベロープを付与された振幅値
データは、チャンネル累算器415で累算され、最終的
な波形データとして出力される。
Referring again to FIG. 4, the envelope generator 413 generates an envelope signal according to the tone color data. The multiplier 414 multiplies the amplitude value data after interpolation by the envelope signal. The amplitude value data to which the envelope has been added is accumulated by the channel accumulator 415 and output as final waveform data.

【0075】以上のようにすれば、波形メモリのどの位
置からでも波形データを得ることができ、波形メモリの
データを飛ばし読みすることができる。また、データ圧
縮の効果もある。
With the above arrangement, the waveform data can be obtained from any position in the waveform memory, and the data in the waveform memory can be skipped and read. There is also the effect of data compression.

【0076】なお、上記実施例では、リニアサンプルを
16ビット、圧縮サンプルを8ビットとしているが、リ
ニアサンプルのビット数を減らして余ったビットを用い
て圧縮サンプルのレンジを広げるようにしてもよい。図
8は、上記第1の実施例の変形例であり、リニアサンプ
ルを14ビットで表して余った2ビット(上位)を圧縮
サンプルのシフトアップ量に用いた例である。この2ビ
ットをEXPで示す。
In the above embodiment, the linear sample is 16 bits and the compressed sample is 8 bits. However, the number of bits of the linear sample is reduced and the range of the compressed sample may be widened by using the surplus bits. . FIG. 8 shows a modification of the first embodiment, in which linear samples are represented by 14 bits and the remaining 2 bits (upper) are used for the shift-up amount of the compressed samples. These 2 bits are indicated by EXP.

【0077】EXP=0のときは、次の2つの8ビット
の圧縮サンプルに対してシフトアップせず、圧縮サンプ
ルは−128から+127までの範囲をとる。EXP=
1のときは、次の2つの8ビットの圧縮サンプルに対し
て1ビットシフトアップを行ない、圧縮サンプルは−2
56から+255までの範囲をとる。ただし、分解能は
2となる。EXP=2のときは、次の2つの8ビットの
圧縮サンプルに対して2ビットシフトアップを行ない、
圧縮サンプルは−512から+511までの範囲をと
る。ただし、分解能は4となる。EXP=3のときは、
次の2つの8ビットの圧縮サンプルに対して3ビットシ
フトアップを行ない、圧縮サンプルは−1024から+
1023までの範囲をとる。ただし、分解能は8とな
る。
When EXP = 0, the next two 8-bit compressed samples are not shifted up, and the compressed samples range from -128 to +127. EXP =
When it is 1, the next two 8-bit compressed samples are shifted up by 1 bit, and the compressed sample is -2.
It ranges from 56 to +255. However, the resolution is 2. When EXP = 2, 2-bit shift up is performed for the next two 8-bit compressed samples,
Compressed samples range from -512 to +511. However, the resolution is 4. When EXP = 3,
The next two 8-bit compressed samples are shifted up by 3 bits, and the compressed samples are changed from -1024 to +.
It takes up to 1023. However, the resolution is 8.

【0078】このようにするためには、上述の実施例の
図5において、ラッチ501からの出力のうち上位2ビ
ットEXPはデータ伸張部503に、他の14ビットは
上位に「0」を付加してセレクタ505に、それぞれ入
力するようにし、データ伸張部503ではEXPの値に
応じて、上記のように圧縮サンプルのシフトアップを行
なうようにすればよい。
In order to do this, in FIG. 5 of the above embodiment, the upper 2 bits EXP of the output from the latch 501 are added to the data decompression unit 503, and the other 14 bits are added to the upper "0". Then, the data is input to the selector 505, and the data decompression unit 503 shifts up the compressed sample as described above according to the value of EXP.

【0079】上記実施例では、3サンプル点ごとにリニ
アサンプルを持ち、4サンプル点を用いて補間を行なっ
ているが、これらは適宜変更することができる。例え
ば、5サンプル点ごとにリニアサンプルを持ち、2サン
プル点を用いて補間を行なうようにしてもよい。
In the above embodiment, the linear sample is provided for every 3 sample points, and the interpolation is performed using 4 sample points, but these can be appropriately changed. For example, a linear sample may be provided for every 5 sample points, and interpolation may be performed using 2 sample points.

【0080】以下、このような第2の実施例を説明す
る。
Hereinafter, such a second embodiment will be described.

【0081】図9は、第2の実施例において用いた、5
サンプル点ごとにリニアサンプルを持つようにした波形
データのフォーマットを示す。D0 は16ビットのリニ
アサンプル、D1 ,D2 ,D3 ,D4 は8ビットの圧縮
サンプルを示す。同様に、引き続くD5 は16ビットの
リニアサンプル、D6 ,D7 ,D8 ,D9 は8ビットの
圧縮サンプル、…である。
FIG. 9 shows the number of 5 used in the second embodiment.
The format of the waveform data that has a linear sample for each sample point is shown. D0 is a 16-bit linear sample, and D1, D2, D3, and D4 are 8-bit compressed samples. Similarly, the following D5 is a 16-bit linear sample, D6, D7, D8 and D9 are 8-bit compressed samples, ....

【0082】図10は、図9の波形データと元の楽音波
形との関連を示す図である。1000はサンプリングす
る楽音波形、1001〜1006はそれぞれサンプリン
グ点を示す。黒丸で示したサンプリング点1001,1
006ではリニアサンプルをとり、白丸で示したサンプ
リング点1002〜1005では圧縮サンプルをとる。
FIG. 10 is a diagram showing the relationship between the waveform data of FIG. 9 and the original tone waveform. Reference numeral 1000 indicates a musical tone waveform to be sampled, and reference numerals 1001 to 1006 indicate sampling points. Sampling points 1001,1 indicated by black circles
A linear sample is taken at 006, and a compressed sample is taken at sampling points 1002 to 1005 shown by white circles.

【0083】例えば、サンプリング点1001でサンプ
リングしたリニアサンプルを図9のD5 とすると、次の
サンプリング点1002のデータD6 は、サンプリング
点1002における振幅値とサンプリング点1001に
おける振幅値との差分1011となる。同様に、サンプ
リング点1003のデータD7 は、サンプリング点10
03における振幅値とサンプリング点1002における
振幅値との差分1012となる。
For example, assuming that the linear sample sampled at the sampling point 1001 is D5 in FIG. 9, the data D6 at the next sampling point 1002 is the difference 1011 between the amplitude value at the sampling point 1002 and the amplitude value at the sampling point 1001. . Similarly, the data D7 of the sampling point 1003 is the sampling point 10
A difference 1012 between the amplitude value at 03 and the amplitude value at the sampling point 1002 is obtained.

【0084】第2の実施例では、隣合う2つのサンプル
ポイントから補間を行なう。図9のように波形データを
構成すれば、隣合う2点の波形データを得るためには、
以下の5つの組合わせがある。
In the second embodiment, interpolation is performed from two adjacent sample points. If the waveform data is configured as shown in FIG. 9, in order to obtain the waveform data of two adjacent points,
There are five combinations:

【0085】(3−)図9のデータD5 ,D6 のよう
な2点(図10のサンプル点1001と1002)を用
いる。 (3−)データD6 ,D7 のような2点(サンプル点
1002と1003)を用いる。 (3−)データD7 ,D8 のような2点(サンプル点
1003と1004)を用いる。 (3−)データD8 ,D9 のような2点(サンプル点
1004と1005)を用いる。 (3−)データD9 ,D10のような2点(サンプル点
1005と1006)を用いる。
(3-) Two points (sample points 1001 and 1002 in FIG. 10) such as data D5 and D6 in FIG. 9 are used. (3-) Two points (sample points 1002 and 1003) such as data D6 and D7 are used. (3-) Two points (sample points 1003 and 1004) such as data D7 and D8 are used. (3-) Two points (sample points 1004 and 1005) such as data D8 and D9 are used. (3-) Two points (sample points 1005 and 1006) such as data D9 and D10 are used.

【0086】したがって、リニアサンプルから始めて4
回のアドレッシングを行なえば、上記のどの場合でも、
隣合う2点の振幅値を必ず得ることができることにな
る。
Therefore, starting from the linear sample, 4
In any of the above cases, if addressing is performed once,
This means that the amplitude values of two adjacent points can be obtained without fail.

【0087】このように、5サンプル点ごとにリニアサ
ンプルを持って、2サンプル点を用いて補間を行なう第
2の実施例も、図1,4,5,7とほとんど同様の構成
とすればよい。ただし、図4において、乗算器405で
乗算する定数Aは「3」、乗算器406で乗算する定数
Bは「5」とし、補助カウンタ409は「0」および
「1」を出力するようにする。
As described above, the second embodiment in which the linear sample is provided for every 5 sample points and the interpolation is performed by using the 2 sample points has the same configuration as that of FIGS. Good. However, in FIG. 4, the constant A multiplied by the multiplier 405 is “3”, the constant B multiplied by the multiplier 406 is “5”, and the auxiliary counter 409 outputs “0” and “1”. .

【0088】乗算器405の定数Aは、加算器407か
ら出力される波形メモリ読出しアドレスでリニアサンプ
ルがアドレッシングされるようにするための乗数であ
る。ここでは、図9のようにアドレス0,3,6,…に
リニアサンプルが記憶されているから、上記定数Aの値
は「3」としなければならない。
The constant A of the multiplier 405 is a multiplier for allowing the linear sample to be addressed by the waveform memory read address output from the adder 407. Here, since linear samples are stored at addresses 0, 3, 6, ... As shown in FIG. 9, the value of the constant A must be "3".

【0089】また、乗算器406の定数Bは、カウンタ
404からの少数部Jと乗算し、乗算結果BJの整数部
iにより、目的とするサンプルが上記(3−)〜(3
−)のどの区間に含まれるかを区別できるようにする
ためのものであるから、整数部iが0〜4を取るように
定数Bを「5」に設定しなければならない。
Further, the constant B of the multiplier 406 is multiplied by the decimal part J from the counter 404, and the target sample is obtained from the above (3-) to (3) by the integer part i of the multiplication result BJ.
Since it is for distinguishing which section of −) is included, the constant B must be set to “5” so that the integer part i takes 0 to 4.

【0090】補助カウンタ409は、何サンプルを用い
て補間を行なうか、その数に応じてカウント値を繰返し
出力するが、ここでは2点補間であるから「0」および
「1」を繰返し出力するようにする必要がある。図7の
補間部においても、同様に補助カウンタ701は「0」
および「1」を繰返し出力するようにする必要がある。
The auxiliary counter 409 repeatedly outputs a count value in accordance with the number of samples used for interpolation, and the number thereof. However, since it is two-point interpolation here, "0" and "1" are repeatedly output. Need to do so. Similarly, in the interpolator in FIG. 7, the auxiliary counter 701 has the value “0”.
It is necessary to repeatedly output "1" and "1".

【0091】さらに、図5のデコーダも同様の構成でよ
いが、本第2の実施例では5サンプルごとにリニアサン
プルを設け、2点補間するため、ラッチ501のタイミ
ングやロードパルス発生部507からのロードパルスな
どは異なるタイミングとなる。以下、これを説明する。
Further, the decoder of FIG. 5 may have the same structure, but in the second embodiment, since linear samples are provided for every 5 samples and two-point interpolation is performed, the timing of the latch 501 and the load pulse generator 507 are used. The load pulse and the like have different timings. This will be described below.

【0092】図11は、第2の実施例におけるデコーダ
411の動作を説明するためのタイムチャートを示す。
図11のPA〜PEは、図5の同じPA〜PEで示す位
置におけるタイムチャートを示す。ここでは、図9のア
ドレス3,4,5,6のデータ(すなわち、サンプルデ
ータD5 〜D10)が順次入力する場合を例として説明す
る。
FIG. 11 shows a time chart for explaining the operation of the decoder 411 in the second embodiment.
PA to PE in FIG. 11 are time charts at the positions indicated by the same PA to PE in FIG. Here, a case will be described as an example where the data at the addresses 3, 4, 5, and 6 in FIG. 9 (that is, the sample data D5 to D10) are sequentially input.

【0093】図11のPAに示すように、波形メモリ4
10から、図9のアドレス3のリニアサンプルデータD
5 、アドレス4の圧縮サンプルデータD6 とD7 、アド
レス5の圧縮サンプルデータD8 とD9 、およびアドレ
ス6のリニアサンプルデータD10が、順次、デコーダ4
11に入力したとする。PBは、ラッチ501の出力を
示す。ラッチ501は、リニアサンプルD5 およびD10
をラッチし出力する。
As shown in PA of FIG. 11, the waveform memory 4
10 to linear sample data D at address 3 in FIG.
5, compressed sample data D6 and D7 at address 4, compressed sample data D8 and D9 at address 5, and linear sample data D10 at address 6 are sequentially decoded by the decoder 4
It is assumed that the data is input to 11. PB indicates the output of the latch 501. Latch 501 has linear samples D5 and D10.
Is latched and output.

【0094】PCは、セレクタ502の出力のタイミン
グチャートを示す。セレクタ502は、波形メモリ41
0から圧縮サンプルデータD6 とD7 が出力されるタイ
ムスロットの前半で圧縮サンプルデータD6 を選択出力
し、そのタイムスロットの後半で圧縮サンプルデータD
7 を選択出力する。同様に、圧縮サンプルデータD8と
D9 が出力されるタイムスロットの前半で圧縮サンプル
データD8 を選択出力し、そのタイムスロットの後半で
圧縮サンプルデータD9 を選択出力する。
PC shows a timing chart of the output of the selector 502. The selector 502 is the waveform memory 41.
The compressed sample data D6 is selected and output in the first half of the time slot in which the compressed sample data D6 and D7 are output from 0, and the compressed sample data D6 is output in the latter half of the time slot.
Select 7 to output. Similarly, the compressed sample data D8 is selectively output in the first half of the time slot in which the compressed sample data D8 and D9 are output, and the compressed sample data D9 is selectively output in the latter half of the time slot.

【0095】PDは、ディレイ部506の出力のタイミ
ングチャートを示す。ディレイ部506では、まずラッ
チ501およびセレクタ505を介して入力したリニア
サンプルD5 が保持され出力される。
PD shows a timing chart of the output of the delay unit 506. The delay unit 506 first holds and outputs the linear sample D5 input via the latch 501 and the selector 505.

【0096】リニアサンプルD5 が出力されている間
に、PCに示すように圧縮サンプルD6 がデータ伸張部
503を介して加算器504に入力する。加算器504
で、リニアサンプルD5 と圧縮サンプルD6 との加算が
行なわれ、圧縮サンプルD6 に対応するサンプル点のリ
ニアな振幅値である算出リニアサンプルD6 ′=D5 +
D6 が出力される。この算出リニアサンプルD6 ′は、
セレクタ505を介してディレイ部506で保持され、
PDのようにリニアサンプルD5 に引き続いてディレイ
部506から出力される。
While the linear sample D5 is being output, the compressed sample D6 is input to the adder 504 via the data decompression unit 503 as shown on the PC. Adder 504
Then, the linear sample D5 and the compressed sample D6 are added, and the calculated linear sample D6 '= D5 + which is the linear amplitude value of the sample point corresponding to the compressed sample D6.
D6 is output. This calculated linear sample D6 'is
It is held by the delay unit 506 via the selector 505,
It is output from the delay unit 506 following the linear sample D5 like PD.

【0097】ディレイ部506から算出リニアサンプル
D6 ′が出力されているとき、PCに示すように、セレ
クタ502からは次の圧縮サンプルD7 が出力される。
圧縮サンプルD7 はデータ伸張部503を介して加算器
504に入力する。加算器504で、算出リニアサンプ
ルD6 ′と圧縮サンプルD7 との加算が行なわれ、圧縮
サンプルD7 に対応するサンプル点のリニアな振幅値で
ある算出リニアサンプルD7 ′=D6 ′+D7 が出力さ
れる。この算出リニアサンプルD7 ′は、セレクタ50
5およびディレイ部506を介して、PDのように引き
続いて出力される。
When the calculated linear sample D6 'is output from the delay unit 506, the next compressed sample D7 is output from the selector 502 as shown in the PC.
The compressed sample D7 is input to the adder 504 via the data expansion unit 503. The adder 504 adds the calculated linear sample D6 'and the compressed sample D7, and outputs the calculated linear sample D7' = D6 '+ D7 which is the linear amplitude value of the sample point corresponding to the compressed sample D7. This calculated linear sample D7 'is the selector 50
5 and the delay unit 506, the signal is continuously output like a PD.

【0098】以下、同様にして算出リニアサンプルD8
′,D9 ′が出力される。また、引き続いて次のリニ
アサンプルD10が出力される。結果として図11のPD
のように、リニアサンプルまたは算出リニアサンプルD
5 ,D6 ′,D7 ′,D8 ′,D9 ′,D10が、出力レ
ジスタ508に向けて順次出力される。
Thereafter, similarly calculated linear sample D8
', D9' are output. Further, the next linear sample D10 is subsequently output. As a result, the PD in FIG.
, Linear sample or calculated linear sample D
5, D6 ', D7', D8 ', D9' and D10 are sequentially output to the output register 508.

【0099】PDのように順次出力される6つのリニア
な振幅値データは、出力レジスタ508にロードされる
が、そのロードのタイミングを示すロードパルスは、図
11のように発生される。
Six linear amplitude value data which are sequentially output like PD are loaded into the output register 508, and a load pulse indicating the loading timing is generated as shown in FIG.

【0100】まず、図4の乗算器406から出力された
整数部iの値が「0」のときは、上記の(3−)の場
合であるから、振幅値データD5 ,D6 ′が出力レジス
タ508にロードされるように、ロードパルスが発生さ
れる。整数部iの値が「1」のときは、上記の(3−
)の場合であるから、振幅値データD6 ′,D7 ′が
出力レジスタ508にロードされるように、ロードパル
スが発生される。整数部iの値が「2」のときは、上記
の(3−)の場合であるから、振幅値データD7 ′,
D8 ′が出力レジスタ508にロードされるように、ロ
ードパルスが発生される。整数部iの値が「3」のとき
は、上記の(3−)の場合であるから、振幅値データ
D8 ′,D9 ′が出力レジスタ508にロードされるよ
うに、ロードパルスが発生される。整数部iの値が
「4」のときは、上記の(3−)の場合であるから、
振幅値データD9 ′,D10が出力レジスタ508にロー
ドされるように、ロードパルスが発生される。
First, when the value of the integer part i output from the multiplier 406 of FIG. 4 is "0", which is the case of (3-) above, the amplitude value data D5 and D6 'are output registers. A load pulse is generated, as loaded at 508. When the value of the integer part i is “1”, the above (3-
Therefore, a load pulse is generated so that the amplitude value data D6 ', D7' is loaded into the output register 508. When the value of the integer part i is "2", this is the case of the above (3-). Therefore, the amplitude value data D7 ',
A load pulse is generated so that D8 'is loaded into output register 508. When the value of the integer part i is "3", it is the case of (3-) described above, so that the load pulse is generated so that the amplitude value data D8 'and D9' are loaded into the output register 508. . When the value of the integer part i is “4”, this is the case of the above (3-).
A load pulse is generated so that the amplitude value data D9 'and D10 are loaded into the output register 508.

【0101】図11のPEは、出力レジスタ508から
読出されるデータ列を示す。ロードされた2つの振幅値
データは、所定周期のパルスφSPに基づいて順次S0,
S1のように読出され、補間部412に向けて出力され
る。
PE in FIG. 11 indicates a data string read from the output register 508. The two amplitude value data loaded are sequentially S0, based on the pulse φSP of a predetermined cycle.
It is read out as in S1 and output toward the interpolation unit 412.

【0102】以上のように、デコーダ411は、整数部
iの値(「0」「1」「2」「3」または「4」)に基
づいて、2つの隣合うサンプル点のリニアな振幅値デー
タを順次出力する。
As described above, the decoder 411 determines, based on the value of the integer part i (“0” “1” “2” “3” or “4”), the linear amplitude value of two adjacent sample points. Output data sequentially.

【0103】この第2の実施例では5サンプルごとにリ
ニアサンプルを設けているので、データ圧縮率は、第1
の実施例より高い。
In this second embodiment, since the linear samples are provided every 5 samples, the data compression rate is
Is higher than the example.

【0104】なお、第2の実施例においても、第1の実
施例で説明したようにリニアサンプルのビット数を減ら
して余ったビットを用いて圧縮サンプルのレンジを広げ
るようにしてもよい。図8の構成をそのまま適用すれば
よい。
Also in the second embodiment, as described in the first embodiment, the number of bits of linear samples may be reduced and the range of compressed samples may be widened by using the surplus bits. The configuration of FIG. 8 may be applied as it is.

【0105】[0105]

【発明の効果】以上説明したように、本発明によれば、
所定の複数サンプル点ごとにリニア(非圧縮)な振幅値
データを設け、その間に圧縮データを設けており、読出
しは2以上のリニア振幅値データを含む連続した範囲を
読出して、それら読出しデータから目的とするサンプル
点の振幅値を求めているので、音高の幅が制限(ピッチ
アップの制限)されるようなことがなく波形メモリを飛
ばし読みすることができる。また、波形メモリがデータ
圧縮され、容量は少なくて済む。
As described above, according to the present invention,
Linear (non-compressed) amplitude value data is provided for each of a plurality of predetermined sampling points, and compressed data is provided between them. For reading, a continuous range including two or more linear amplitude value data is read and the read data is read. Since the amplitude value of the target sampling point is obtained, the waveform memory can be skipped and read without the pitch width being limited (pitch up limitation). Further, the waveform memory is data-compressed, so that the capacity is small.

【図面の簡単な説明】[Brief description of drawings]

【図1】 この発明の一実施例に係る波形生成装置を適
用した電子楽器のブロック構成図
FIG. 1 is a block configuration diagram of an electronic musical instrument to which a waveform generation device according to an embodiment of the present invention is applied.

【図2】 波形データフォーマット図[Figure 2] Waveform data format diagram

【図3】 波形データと元の楽音波形との関連を示す図FIG. 3 is a diagram showing a relationship between waveform data and an original musical tone waveform.

【図4】 実施例の電子楽器の音源部のブロック構成図FIG. 4 is a block configuration diagram of a sound source section of the electronic musical instrument of the embodiment.

【図5】 音源部のデコーダのブロック構成図FIG. 5 is a block configuration diagram of a decoder of a sound source section.

【図6】 デコーダの動作を説明するためのタイムチャ
ート
FIG. 6 is a time chart for explaining the operation of the decoder.

【図7】 音源部の補間部のブロック構成図FIG. 7 is a block configuration diagram of an interpolation unit of a sound source unit.

【図8】 実施例の変形例における波形データフォーマ
ット図
FIG. 8 is a waveform data format diagram in a modified example of the embodiment.

【図9】 第2の実施例の波形データフォーマット図FIG. 9 is a waveform data format diagram of the second embodiment.

【図10】 第2の実施例における波形データと元の楽
音波形との関連を示す図
FIG. 10 is a diagram showing the relationship between waveform data and the original tone waveform in the second embodiment.

【図11】 第2の実施例におけるデコーダの動作を説
明するためのタイムチャート
FIG. 11 is a time chart for explaining the operation of the decoder in the second embodiment.

【符号の説明】[Explanation of symbols]

1…音色スイッチ、2…検出器、3…鍵盤、4…検出
器、5…音源部、6…ディジタルアナログ変換器(DA
C)、7…サウンドシステム、403…Fナンバ発生
部、404…カウンタ、405,406…乗算器、41
0…波形メモリ、411…デコーダ、412…補間部、
413…エンベロープ発生器。
1 ... Tone switch, 2 ... Detector, 3 ... Keyboard, 4 ... Detector, 5 ... Sound source section, 6 ... Digital-analog converter (DA
C), 7 ... Sound system, 403 ... F number generator, 404 ... Counter, 405, 406 ... Multiplier, 41
0 ... Waveform memory, 411 ... Decoder, 412 ... Interpolation unit,
413 ... Envelope generator.

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】所定の複数サンプル点ごとに非圧縮波形振
幅値データを設けるとともに、該非圧縮波形振幅値デー
タのサンプル点の間にあるサンプル点に対しては、直前
の非圧縮波形振幅値データを用いて非圧縮波形振幅値デ
ータに変換できるように圧縮された圧縮波形振幅値デー
タを設けた波形記憶手段と、 生成すべき楽音波形の音高に応じた周波数情報を発生す
る周波数情報発生手段と、 前記周波数情報を所定速度で繰返し累算して、累算値を
出力する累算手段と、 前記累算値に基づいて、前記波形記憶手段から、2以上
の非圧縮波形振幅値データを含む連続した範囲の複数の
非圧縮波形振幅値データおよび圧縮波形振幅値データを
読出す読出し手段と、 前記読出し手段によって読出された圧縮波形振幅値デー
タを非圧縮波形振幅値データに変換する変換手段と、 前記累算値に基づいて、前記読出し手段によって読出し
た非圧縮波形振幅値データおよび前記変換手段によって
得られた非圧縮波形振幅値データから、補間に用いるべ
き非圧縮波形振幅値データを選択する選択手段と、 前記選択手段によって選択された非圧縮波形振幅値デー
タを用いて、前記累算値に基づく補間処理を行ない、補
間結果を波形データとして出力する補間手段とを備えた
ことを特徴とする波形生成装置。
1. Uncompressed waveform amplitude value data is provided for each of a plurality of predetermined sample points, and immediately before the uncompressed waveform amplitude value data for sample points located between the sample points of the uncompressed waveform amplitude value data. Waveform storing means provided with compressed waveform amplitude value data compressed so that it can be converted into non-compressed waveform amplitude value data, and frequency information generating means for generating frequency information according to the pitch of a musical tone waveform to be generated. And accumulating means for repeatedly accumulating the frequency information at a predetermined speed and outputting an accumulated value, and based on the accumulated value, two or more non-compressed waveform amplitude value data from the waveform storing means. Read means for reading a plurality of uncompressed waveform amplitude value data and compressed waveform amplitude value data in a continuous range including the compressed waveform amplitude value data read by the reading means. Conversion means for converting into a data, and based on the accumulated value, the uncompressed waveform amplitude value data read by the reading means and the uncompressed waveform amplitude value data obtained by the converting means. Selecting means for selecting the waveform amplitude value data, and using the uncompressed waveform amplitude value data selected by the selecting means, an interpolation means for performing interpolation processing based on the accumulated value and outputting the interpolation result as waveform data. A waveform generation device comprising:
【請求項2】所定の複数サンプル点ごとに非圧縮波形振
幅値データを設けるとともに、該非圧縮波形振幅値デー
タのサンプル点の間にあるサンプル点に対しては、直前
の非圧縮波形振幅値データを用いて非圧縮波形振幅値デ
ータに変換できるように圧縮された圧縮波形振幅値デー
タを設けた波形記憶手段と、 生成すべき楽音波形の音高に応じた周波数情報を発生す
る周波数情報発生手段と、 前記周波数情報を所定速度で繰返し累算して、累算値を
出力する累算手段と、 前記累算値に基づいて、前記波形記憶手段から、2以上
の非圧縮波形振幅値データを含む連続した範囲の複数の
非圧縮波形振幅値データおよび圧縮波形振幅値データを
読出す読出し手段と、 前記累算値に基づいて、前記読出し手段によって読出し
た複数の非圧縮波形振幅値データおよび圧縮波形振幅値
データから、補間に用いるべき非圧縮波形振幅値データ
および圧縮波形振幅値データを選択する選択手段と、 前記選択手段によって選択された圧縮波形振幅値データ
を非圧縮波形振幅値データに変換する変換手段と、 前記選択手段によって選択された非圧縮波形振幅値デー
タと前記変換手段によって得られた非圧縮波形振幅値デ
ータを用いて、前記累算値に基づく補間処理を行ない、
補間結果を波形データとして出力する補間手段とを備え
たことを特徴とする波形生成装置。
2. Uncompressed waveform amplitude value data is provided for each of a plurality of predetermined sample points, and immediately before the uncompressed waveform amplitude value data for sample points between the sample points of the uncompressed waveform amplitude value data. Waveform storing means provided with compressed waveform amplitude value data compressed so that it can be converted into non-compressed waveform amplitude value data, and frequency information generating means for generating frequency information according to the pitch of a musical tone waveform to be generated. And accumulating means for repeatedly accumulating the frequency information at a predetermined speed and outputting an accumulated value, and based on the accumulated value, two or more non-compressed waveform amplitude value data from the waveform storing means. Reading means for reading a plurality of uncompressed waveform amplitude value data and compressed waveform amplitude value data in a continuous range, and a plurality of uncompressed waveform amplitude values read by the reading means based on the accumulated value Selecting means for selecting the non-compressed waveform amplitude value data and the compressed waveform amplitude value data to be used for interpolation from the data and the compressed waveform amplitude value data; and the compressed waveform amplitude value data selected by the selecting means. Converting means for converting into data, using the uncompressed waveform amplitude value data selected by the selecting means and the uncompressed waveform amplitude value data obtained by the converting means, performing interpolation processing based on the accumulated value,
A waveform generation device, comprising: an interpolation unit that outputs an interpolation result as waveform data.
【請求項3】所定の複数サンプル点ごとに非圧縮波形振
幅値データを設けるとともに、該非圧縮波形振幅値デー
タのサンプル点の間にあるサンプル点に対しては、直前
の非圧縮波形振幅値データを用いて非圧縮波形振幅値デ
ータに変換できるように圧縮された圧縮波形振幅値デー
タを設けたことを特徴とする波形記憶装置。
3. An uncompressed waveform amplitude value data is provided for each of a plurality of predetermined sample points, and immediately before the uncompressed waveform amplitude value data for the sample points between the sample points of the uncompressed waveform amplitude value data. The waveform storage device is characterized in that compressed waveform amplitude value data compressed so as to be converted into non-compressed waveform amplitude value data is provided.
JP4359637A 1992-07-27 1992-12-26 Waveform generation device and waveform storage device Expired - Fee Related JP2790160B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4359637A JP2790160B2 (en) 1992-12-26 1992-12-26 Waveform generation device and waveform storage device
US08/097,163 US5416264A (en) 1992-07-27 1993-07-23 Waveform-forming device having memory storing non-compressed/compressed waveform samples

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4359637A JP2790160B2 (en) 1992-12-26 1992-12-26 Waveform generation device and waveform storage device

Publications (2)

Publication Number Publication Date
JPH06202666A true JPH06202666A (en) 1994-07-22
JP2790160B2 JP2790160B2 (en) 1998-08-27

Family

ID=18465523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4359637A Expired - Fee Related JP2790160B2 (en) 1992-07-27 1992-12-26 Waveform generation device and waveform storage device

Country Status (1)

Country Link
JP (1) JP2790160B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046175A (en) * 2006-08-11 2008-02-28 Casio Comput Co Ltd Waveform generator and waveform generation processing program
JP2009265546A (en) * 2008-04-30 2009-11-12 Casio Comput Co Ltd Waveform generator and waveform generation processing program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59153596U (en) * 1983-03-31 1984-10-15 株式会社ケンウッド Storage device
JPH02126293A (en) * 1988-11-07 1990-05-15 Kawai Musical Instr Mfg Co Ltd Waveform generation system
JPH02137894A (en) * 1988-11-19 1990-05-28 Sony Corp Data compressing and encoding method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59153596U (en) * 1983-03-31 1984-10-15 株式会社ケンウッド Storage device
JPH02126293A (en) * 1988-11-07 1990-05-15 Kawai Musical Instr Mfg Co Ltd Waveform generation system
JPH02137894A (en) * 1988-11-19 1990-05-28 Sony Corp Data compressing and encoding method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046175A (en) * 2006-08-11 2008-02-28 Casio Comput Co Ltd Waveform generator and waveform generation processing program
JP2009265546A (en) * 2008-04-30 2009-11-12 Casio Comput Co Ltd Waveform generator and waveform generation processing program

Also Published As

Publication number Publication date
JP2790160B2 (en) 1998-08-27

Similar Documents

Publication Publication Date Title
US4246823A (en) Waveshape generator for electronic musical instruments
JP3404794B2 (en) Waveform generator
EP0177934B1 (en) Musical tone generating apparatus
US5625158A (en) Musical tone generating apparatus
EP0169659B1 (en) Sound generator for electronic musical instrument
US5290965A (en) Asynchronous waveform generating device for use in an electronic musical instrument
US5416264A (en) Waveform-forming device having memory storing non-compressed/compressed waveform samples
JPH0798586A (en) Sound source device for electronic music instrument
JP3081530B2 (en) Electronic musical instrument
JP2790160B2 (en) Waveform generation device and waveform storage device
KR100236686B1 (en) Data sample series access apparatus
JPH0422275B2 (en)
US4633500A (en) Speech synthesizer
JP2993344B2 (en) Waveform generation device, waveform storage device, waveform generation bubble, and waveform storage method
JPH0651778A (en) Waveform generating device
GB2294799A (en) Sound generating apparatus having small capacity wave form memories
JP3591451B2 (en) Data processing device and data processing method
JP3945435B2 (en) Waveform data compression method, tone signal generation method, tone signal processing apparatus, and program
US5817964A (en) Electronic musical instrument and method for storing a plurality of waveform sampling data at a single address
JP3651675B2 (en) Electronic musical instruments
JPH11109974A (en) Waveform recorder, waveform reproducer, waveform recording and reproducing device and recording medium
JPH045692A (en) Electronic musical instrument
JPH0695677A (en) Musical sound synthesizing device
JP2897377B2 (en) Waveform signal forming device
JPH039474B2 (en)

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees