JP2705042B2 - Envelope waveform generation method - Google Patents
Envelope waveform generation methodInfo
- Publication number
- JP2705042B2 JP2705042B2 JP3250825A JP25082591A JP2705042B2 JP 2705042 B2 JP2705042 B2 JP 2705042B2 JP 3250825 A JP3250825 A JP 3250825A JP 25082591 A JP25082591 A JP 25082591A JP 2705042 B2 JP2705042 B2 JP 2705042B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- envelope
- waveform
- envelope waveform
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、波形を生成する波形生
成方式に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a waveform generation method for generating a waveform.
【0002】[0002]
【発明の背景】従来、波形を生成する回路、例えば楽音
信号を生成する回路は、楽音波形を生成する部分とエン
ベロープ波形を生成する部分とよりなっている。そし
て、この楽音波形とエンベロープ波形とを乗算して、こ
の乗算結果データを楽音信号として出力していた。とこ
ろが、被乗算データが8ビットデータ2つであると、乗
算結果データは16ビットデータとなってしまい、デー
タ量が増加してしまうという問題点があった。2. Description of the Related Art Conventionally, a circuit for generating a waveform, for example, a circuit for generating a tone signal, includes a portion for generating a musical tone waveform and a portion for generating an envelope waveform. Then, the musical tone waveform is multiplied by the envelope waveform, and the multiplication result data is output as a musical tone signal. However, if the multiplied data is two 8-bit data, the multiplication result data becomes 16-bit data, and there is a problem that the data amount increases.
【0003】そこで、被乗算データを2つに分け、一方
のデータについて乗算を行った後、この乗算結果データ
に対し、上記被乗算データの残りのデータの値に応じて
シフトすれば、乗算結果データのビット数を少なくする
ことができる。この例を、エンベロープデータについて
考えてみる。この場合、エンベロープデータを上位パワ
ーデータと下位マンティッサデータに分けて、下位マン
ティッサデータに楽音波形データを乗算し、この乗算結
果データを、上位パワーデータの値に応じてシフトする
ことになる。Therefore, the multiplied data is divided into two parts, one of the data is multiplied, and the multiplied result data is shifted according to the value of the remaining data of the multiplied data. The number of data bits can be reduced. Consider this example for envelope data. In this case, the envelope data is divided into upper power data and lower Mantissa data, the lower Mantissa data is multiplied by the tone waveform data, and the multiplication result data is shifted according to the value of the upper power data. Become.
【0004】この状況を示すのが図33(2)(図25
(2))である。この図の実線は、乗算結果データを示
し、点線はシフト後のデータを示している。このよう
に、シフトにより、実線のリニアな特性が点線のイクス
ポーネンシャルな特性に変化することになる。図33
(2)のシフトは、ダウンシフトであるが、アップシフ
トの場合でも同じようにイクスポーネンシャルな特性と
なる。FIG. 33 (2) (FIG. 25) shows this situation.
(2)). The solid line in this figure indicates the multiplication result data, and the dotted line indicates the shifted data. In this way, the shift changes the linear characteristic of the solid line to the exponential characteristic of the dotted line. FIG.
The shift (2) is a downshift, but the upshift also has the same exponential characteristics.
【0005】このようなイクスポーネンシャルな特性に
変わることは、エンベロープ波形のリリースやディケイ
のような下降部分について、自然界の音と同じものであ
り、かえって都合が良いものである。また、乗算結果デ
ータがリニアな特性であることは、演算処理が単純な型
で済み、演算処理上も都合が良い。The change to such an exponential characteristic is the same as the sound in the natural world in the descending portion such as the release and decay of the envelope waveform, which is rather convenient. In addition, the fact that the multiplication result data has a linear characteristic requires only a simple type of arithmetic processing, which is convenient in terms of arithmetic processing.
【0006】次に、図33(2)のエンベロープ波形の
アタックの上昇部分について検討してみる。エンベロー
プ波形のアタック部分が、点線のイクスポーネンシャル
な特性をもつものは、自然界には、ほとんど存在しない
ものであり、聴感上異和感がある。エンベロープ波形の
アタック部分は、実線のリニアな特性か、鎖線の逆イク
スポーネンシャルな特性が望ましい。Next, a description will be given of a portion where the attack of the envelope waveform in FIG. 33 (2) is increased. The envelope waveform having an exponential characteristic indicated by a dotted line in the attack portion is almost nonexistent in the natural world and has a sense of strangeness in hearing. It is desirable that the attack portion of the envelope waveform has a linear characteristic of a solid line or an inverse exponential characteristic of a chain line.
【0007】そこで、エンベロープ波形のアタック部分
については、上記シフトとは逆のシフトを行い、乗算結
果データを逆イクスポーネンシャルな特性にしておく必
要が生じる。そのために、本発明は、図25(1)に示
すように、エンベロープ波形のレベルが大きくなるほ
ど、エンベロープ波形レベルの変化のスピードを小さく
したものである。これにより、上記シフト後は、図33
(1)または図25(2)に示すように、アタック部分
の特性はリニアな特性または逆イクスポーネンシャルな
特性となる。Therefore, the attack portion of the envelope waveform needs to be shifted in the opposite direction to the above shift, and the multiplication result data needs to have reverse exponential characteristics. Therefore, in the present invention, as shown in FIG. 25A, as the level of the envelope waveform increases, the speed of change of the envelope waveform level is reduced. Thus, after the shift, FIG.
As shown in (1) or FIG. 25 (2), the characteristics of the attack portion are linear characteristics or inverse exponential characteristics.
【0008】[0008]
【課題を解決するための手段】上記目的を達成するため
に、本発明は、波形の変化のスピードを決定するスピー
ドデータをシフトアップし、このアップシフト量を、生
成された波形のレベル値が大きいほど、小さくなるよう
に制御したものである。また本発明は、演算された波形
の演算結果をシフトダウンし、このダウンシフト量を、
波形の演算結果が小さいほど、大きくなるように制御し
たものである。SUMMARY OF THE INVENTION In order to achieve the above object, the present invention shifts up speed data for determining the speed of change of a waveform, and determines the amount of this upshift by changing the level value of the generated waveform. The control is performed such that the larger the size, the smaller the size. Further, the present invention shifts down the calculation result of the calculated waveform, and
The control is performed so that the smaller the calculation result of the waveform is, the larger it is.
【0009】[0009]
【作用】これにより、波形の増大する部分の波形形状
を、逆イクスポーネンシャルな特性にして、自然界の音
により近付けることができる。また、波形の減小する部
分の波形形状を、イクスポーネンシャルな特性にして、
自然界の音により近付けることができる。As a result, it is possible to make the waveform shape of the portion where the waveform is increased a reverse exponential characteristic so as to be closer to the sound of the natural world. In addition, the waveform shape of the part where the waveform is reduced is made an exponential characteristic,
It can be closer to the sound of nature.
【0010】[0010]
【実施例】1.全体回路 図1は、本発明の全体回路図を示すものである。キーボ
ード1の各キー及び音色スイッチ2の各スイッチは、キ
ーアサイナ回路30によって走査され、操作キーに応じ
た音高で、操作音色スイッチに応じた音色の楽音が16
チャンネルの楽音生成系の空チャンネルに割り当てられ
る。このチャンネル割り当て内容は、アサインメントメ
モリ回路32に記憶される。また、キーボード1の各鍵
の押鍵圧力は、各鍵に設けられた圧力センサ3で検出さ
れ、A−D変換器4で押鍵圧力を示すデジタル形式のタ
ッチデータTOに変換されて、後述するCPU300に
送られる。[Examples] 1. FIG. 1 shows an overall circuit diagram of the present invention. Each key of the keyboard 1 and each switch of the timbre switch 2 are scanned by the key assigner circuit 30, and a tone corresponding to the operation key switch and a tone of 16 tones corresponding to the operation timbre switch are generated.
The channel is assigned to an empty channel of the tone generation system. This channel assignment content is stored in the assignment memory circuit 32. The key press pressure of each key of the keyboard 1 is detected by a pressure sensor 3 provided for each key, and converted into digital touch data TO indicating the key press pressure by an AD converter 4, which will be described later. Sent to the CPU 300.
【0011】さらに、リズムキー5では、ロック、ディ
スコ等のリズムの選択が行われ、エフェクトキー6で
は、各キーのオン、オフにより、ポルタメント、グライ
ト、グロウル、エコー、サスティン、ビブラート、コー
ラス、アンサンブル、ホンキートンク、トレモロ等の効
果が付加され、各キーのオン、オフはCPU300によ
って検出される。このほか、ボリュームつまみ7、テン
ポつまみ8のコントロール量も可変抵抗器により電圧変
動量として検出され、A−D変換器9、10を介してボ
リュームデータ、テンポデータとしてCPU300に与
えられる。Further, the rhythm key 5 is used to select a rhythm such as rock or disco, and the effect key 6 is used to turn on or off each key so that portamento, glow, glow, echo, sustain, vibrato, chorus, ensemble, etc. , Honky tonk, tremolo, and the like, and the ON / OFF of each key is detected by the CPU 300. In addition, the control amounts of the volume knob 7 and the tempo knob 8 are also detected as voltage fluctuation amounts by the variable resistors, and are supplied to the CPU 300 as volume data and tempo data via the AD converters 9 and 10.
【0012】ROM20には、楽音信号を生成するため
の処理プログラムと、波形及びエンベロープに関する音
色データと、波形データRDそのもの等が記憶されてい
る。このROM20の読出アドレスは、ROMアドレス
制御回路31によって制御され、処理プログラムまたは
音色データの読み出しと、波形データRDの読み出しと
が切り換えられる。The ROM 20 stores a processing program for generating a tone signal, tone color data relating to a waveform and an envelope, the waveform data RD itself, and the like. The read address of the ROM 20 is controlled by the ROM address control circuit 31, and switching between reading the processing program or tone data and reading the waveform data RD is performed.
【0013】ROM20より読み出された処理プログラ
ムは、キーアサイナ回路30の後述するCPU300に
送られて各種処理が実行される。また同じくROM20
より読み出された波形やエンベロープに関する音色デー
タは、アサインメントメモリ回路32の空チャンネルに
応じたエリアに書き込まれる。さらに同じくROM20
より読み出された波形データRDそのものは波形データ
伸長補間回路50へと送られる。The processing program read from the ROM 20 is sent to a CPU 300 of the key assigner circuit 30 to be described later to execute various processing. Also ROM20
The read timbre data relating to the waveform and the envelope is written to an area of the assignment memory circuit 32 corresponding to the empty channel. ROM20
The read waveform data RD itself is sent to the waveform data decompression interpolation circuit 50.
【0014】アサインメントメモリ回路32には、キー
ボード1の操作キーに応じた周波数ナンバスピードデー
タFSも空チャンネルに応じたエリアに書き込まれる。
この周波数ナンバスピードデータFSは、周波数ナンバ
累算器40で各チャンネルごとに順次累算され、ROM
アドレス制御回路31を介してROM20に読出アドレ
スデータとして与えられる。これにより、波形データR
Dが周波数ナンバスピードデータFSに応じた速度、す
なわち音高に応じた速度で読み出され、波形データ伸長
補間回路50に入力される。In the assignment memory circuit 32, frequency number speed data FS corresponding to the operation key of the keyboard 1 is also written in an area corresponding to an empty channel.
The frequency number speed data FS is sequentially accumulated for each channel by the frequency number accumulator 40,
The data is supplied to the ROM 20 via the address control circuit 31 as read address data. Thereby, the waveform data R
D is read at a speed corresponding to the frequency number speed data FS, that is, at a speed corresponding to the pitch, and is input to the waveform data decompression interpolation circuit 50.
【0015】この波形データRDはROM20内に多種
類記憶されており、これらの各種類の選択は、アサイン
メントメモリ回路32より読み出されるバンクデータに
よって行われる。上記波形データ伸長補間回路50で
は、ROM20より読み出されてきた、データ圧縮され
た状態の差分データが伸長されるとともに、各波形デー
タRDのサンプルポイント地点の間の補間地点も求めら
れて乗算回路70に送られる。この補間は、周波数ナン
バ累算器40からの周波数ナンバ累算値FAの一部を使
って行われる。Various types of the waveform data RD are stored in the ROM 20, and selection of each type is performed by bank data read from the assignment memory circuit 32. In the waveform data decompression interpolation circuit 50, the differential data in a data-compressed state read from the ROM 20 is decompressed, and an interpolation point between sample point points of each waveform data RD is also calculated. 70. This interpolation is performed using a part of the frequency number accumulated value FA from the frequency number accumulator 40.
【0016】また、アサインメントメモリ回路32から
読み出されるエンベロープに関するデータは、エンベロ
ープ発生器60へ送られてエンベロープ波形が生成さ
れ、上記乗算回路70へ送られる。乗算回路70では、
上記伸長補間波形データIPの各サンプル値とエンベロ
ープ波形の各サンプル値EAとが乗算され、シフト回路
80でデータシフトが行われて、系列累算回路90で系
列ごとに累算され、D−A変換器100を介してサウン
ドシステム110より発音出力される。The data on the envelope read from the assignment memory circuit 32 is sent to an envelope generator 60 to generate an envelope waveform, which is sent to the multiplying circuit 70. In the multiplication circuit 70,
Each sample value of the expanded interpolation waveform data IP is multiplied by each sample value EA of the envelope waveform, the data is shifted by the shift circuit 80, and the data is accumulated for each sequence by the sequence accumulator circuit 90. The sound is output from the sound system 110 via the converter 100.
【0017】上記エンベロープ発生器60より、アサイ
ンメントメモリ回路32には、エンベロープ波形の現在
のフェーズ値PHが送られ、次の新しいフェーズに関す
るエンベロープデータを出力するように働きかける。ま
たエンベロープ発生器60より、周波数ナンバ累算器4
0には、キーオンのタイミングで、オンイベント信号が
送られ、周波数ナンバスピードデータFSの累算が開始
される。The current phase value PH of the envelope waveform is sent from the envelope generator 60 to the assignment memory circuit 32, and acts to output envelope data relating to the next new phase. In addition, the envelope generator 60 outputs the frequency number accumulator 4
At 0, an on-event signal is sent at the key-on timing, and accumulation of the frequency number speed data FS is started.
【0018】さらにエンベロープ発生器60より、波形
データ伸長補間回路50には、データ長信号D816が
送られ、波形データRDの補間を行うか、行わないかの
選択が行われる。データ長信号D816は、波形データ
RDが8ビットのサンプル値2つよりなるか、10ビッ
トのサンプル値と6ビットの差分データよりなるかの区
別を示すもので、10ビットのサンプル値と6ビットの
差分データが読み出されたとき、波形データRDの補間
が行われる。Further, a data length signal D816 is sent from the envelope generator 60 to the waveform data decompression interpolation circuit 50, and a selection is made as to whether interpolation of the waveform data RD is performed or not. The data length signal D816 indicates whether the waveform data RD consists of two 8-bit sample values or 10-bit sample values and 6-bit difference data. Is read out, interpolation of the waveform data RD is performed.
【0019】上記シフト回路80では、乗算後の楽音デ
ータが、エンベロープ累算値EAの上位ビットデータで
あるエンベロープパワーデータEA12〜15の大きさ
に応じて、シフトダウンされ、ディケイ、リリースの減
衰時の波形形状が、エクスポーネンシャルな特性とさ
れ、楽音が自然音により近づくようになる。In the shift circuit 80, the tone data after the multiplication is shifted down according to the magnitude of the envelope power data EA12 to 15 which are the upper bit data of the envelope accumulated value EA. Has an exponential characteristic, so that the musical sound comes closer to the natural sound.
【0020】また上記D−A変換器100及びサウンド
システム110には、4つの楽音生成系が時分割により
形成されており、系列累算回路90において、アサイン
メントメモリ回路32からの系列データGRに応じて、
いずれの生成系に楽音データを送り込むかが決定され
る。In the DA converter 100 and the sound system 110, four tone generation systems are formed by time division. In the sequence accumulation circuit 90, the sequence data GR from the assignment memory circuit 32 is stored. Depending on,
It is determined which generation system the tone data is to be sent to.
【0021】この系列累算回路90には、周波数ナンバ
累算器40から、波形折返し信号FDUも与えられてお
り、この波形折返し信号FDUは、波形データの一波形
のうち前半の半波形の生成が終わって、後半の半波形の
生成にはいるときハイレベルとなる。これにより、系列
累算回路90では、楽音データがプラスマイナス反転し
た値とされ、楽音波形の前半の半波形と後半の半波形と
が、プラスマイナス反転した状態となる。また、系列累
算回路90には、キーアサイナ回路30より、D−Aゲ
ート信号も与えられており、D−A変換器100への楽
音データの出力のコントロールが行われる。The sequence accumulating circuit 90 is also supplied with a waveform folded signal FDU from the frequency number accumulator 40. The waveform folded signal FDU generates the first half of one waveform of the waveform data. Becomes high level when the second half waveform is generated. As a result, in the sequence accumulation circuit 90, the musical sound data is set to a value obtained by inverting the plus or minus, and the first half waveform and the second half waveform of the musical sound waveform are in a plus or minus inverted state. The sequence accumulation circuit 90 is also supplied with a DA gate signal from the key assigner circuit 30, and controls output of musical sound data to the DA converter 100.
【0022】システムクロック発生器10から、図1の
各回路30、40、50、60、90には、図2に示す
ようなクロック信号等や、これらを分周したもの、論理
和、論理積をとった信号等が与えられており、各回路の
タイミングコントロールが行われる。From the system clock generator 10, the respective circuits 30, 40, 50, 60, and 90 in FIG. 1 provide clock signals and the like as shown in FIG. And the like, and the timing of each circuit is controlled.
【0023】2.ROM20 図3はROM20の記憶内容を示すものである。このR
OM20は、「0」〜「15」の16個のバンクエリア
に分割され、各バンクエリアは「0000н(нは16
進値であることを示す記号)」〜「FFFFн」の番地
を有している。バンク「0」の「0000н」〜「0F
FFн」はCPU300のRAM301、アサインメン
トメモリ320等の使用エリアである。「1000н」
〜「1FFFн」は後述するMMUラッチ310の使用
エリアである。「2000н」〜「FFFFн」には楽
音信号を生成するための処理プログラムが記憶されてい
る。バンク「1」の、「0000н」〜「3FFFн」
には、楽音波形及びエンベロープ波形の内容を選択決定
するための音色データが128音色分記憶されている。[0023] 2. ROM 20 FIG. 3 shows the storage contents of the ROM 20. This R
The OM 20 is divided into 16 bank areas “0” to “15”, and each bank area is “0000 н (where н is 16).
Sign indicating that the value is a binary value) to “FFFFн”. "0000 н"-"0F" of bank "0"
“FFн” is an area used by the RAM 301 and the assignment memory 320 of the CPU 300. "1000н"
「1FFFн” is an area used by the MMU latch 310 described later. A processing program for generating a tone signal is stored in "2000 н" to "FFFF н". Bank "1", "0000н"-"3FFFн"
Stores 128 tone colors for selecting and determining the contents of the musical tone waveform and the envelope waveform.
【0024】バンク「1」の「4000н」以降からバ
ンク「15」の「FFFFн」までは、各バンクごとに
1つの選択音色にて読み出される(A)(B)2つの波
形データRDが同じアドレスに記憶されている。この波
形データRDは、正弦波、三角波、鋸歯状波、矩形波、
ノイズ音波形等々やこれらを合成した波形のほか、特定
フォルマントに対応した複数の特定周波数帯域のスペク
トルグループに対応する各周波数成分を合成した複数種
類の波形等であってもよいし、ループトップ、ループエ
ンド等を利用したPCM波形であってもよい。From "4000" in bank "1" to "FFFF" in bank "15", one selected tone color is read out for each bank. (A) (B) Two waveform data RD have the same address. Is stored in This waveform data RD includes a sine wave, a triangular wave, a sawtooth wave, a rectangular wave,
In addition to noise sound waveforms and the like and waveforms obtained by synthesizing them, a plurality of types of waveforms obtained by synthesizing frequency components corresponding to spectrum groups of a plurality of specific frequency bands corresponding to specific formants may be used. A PCM waveform using a loop end or the like may be used.
【0025】音色データの記憶エリアは処理プログラム
の記憶エリアより、後述するMMUアドレスデータ分だ
けずれた位置にある。音色データは、バンクデータ、デ
ータ長信号データD816、系列データGR、イニシャ
ル周波数ナンバデータ、ループトップデータ、ループエ
ンドデータ、エンベロープデータよりなり、エンベロー
プデータは、さらにフェーズレベルデータPL、エンベ
ロープ加減信号データEDU、シンアウトデータTH、
エンベロープスピードデータESよりなっている。The storage area of the timbre data is shifted from the storage area of the processing program by an MMU address data described later. The timbre data includes bank data, data length signal data D816, sequence data GR, initial frequency number data, loop top data, loop end data, and envelope data. The envelope data further includes phase level data PL and envelope adjusted signal data EDU. , Thin out data TH,
It consists of envelope speed data ES.
【0026】バンクデータは、15種類の波形データR
Dのうちの1つを選択指定するためのもので、1つのチ
ャンネルに割り当てられる1つの音色につき、(A)
(B)2つの波形が選択され、データ長信号D816
は、上述したように波形データRDが8ビットのサンプ
ル値2つよりなるか、10ビットのサンプル値と6ビッ
トの差分データよりなるかの区別を示すもので、系列デ
ータGR0,1も上述したように、上記乗算後の楽音デ
ータSTを4つのいずれの楽音生成系に割り当てるかを
示すものである。The bank data is composed of 15 types of waveform data R
D for selecting and specifying one of D. For each tone assigned to one channel, (A)
(B) Two waveforms are selected and the data length signal D816
Indicates whether the waveform data RD is composed of two 8-bit sample values or 10-bit sample value and 6-bit difference data, as described above. The series data GR0, 1 are also described above. Thus, the tone data ST after the multiplication is assigned to any of the four tone generation systems.
【0027】イニシャル周波数ナンバデータは、図8に
示すように、周波数ナンバスピードデータFSを順次累
算して波形データRDを読み出していくにあたってのス
タート時点の周波数ナンバ累算値を示す。ループエンド
データは、周波数ナンバスピードデータFSの累算を加
算方向から減算方向へ折り返す地点の周波数ナンバ累算
値FAを示す。ループトップデータは、周波数ナンバス
ピードデータFSの累算方向を減算方向から加算方向へ
折り返す地点の周波数ナンバ累算値FAを示しており、
図8に示すようにループトップとループエンドとの間で
周波数ナンバ累算値FAをループ変化させることによ
り、半波形分の波形データを連続した波形の状態で読み
出して行くことができる。As shown in FIG. 8, the initial frequency number data indicates the frequency number accumulated value at the start at the time of sequentially accumulating the frequency number speed data FS and reading out the waveform data RD. The loop end data indicates a frequency number accumulated value FA at a point where the accumulation of the frequency number speed data FS is turned from the addition direction to the subtraction direction. The loop top data indicates the frequency number accumulated value FA at a point where the accumulation direction of the frequency number speed data FS is turned from the subtraction direction to the addition direction,
As shown in FIG. 8, by changing the frequency number accumulated value FA between the loop top and the loop end in a loop, it is possible to read out half waveform data in a continuous waveform state.
【0028】なお図8の波形折返し信号FDUは、周波
数ナンバ累算値FAの最上位ビットデータであり、波形
データの一波長のうち前半の半波長の生成が終わって、
後半の半波長の生成にはいるときハイレベルとなるもの
であって、この信号FDUに基づいて周波数ナンバ累算
値FAの加減演算切換と、波形データ(楽音データ)の
サンプル値(振幅値)のプラスマイナス切換が行われ
る。The waveform return signal FDU in FIG. 8 is the most significant bit data of the accumulated frequency number FA, and the generation of the first half of one wavelength of the waveform data is completed.
The signal is at a high level when the second half wavelength is generated. Based on the signal FDU, the frequency number accumulation value FA is switched between addition and subtraction, and the waveform data (musical sound data) sample value (amplitude value) is switched. Is switched between plus and minus.
【0029】エンベロープデータの中のエンベロープレ
ベルデータELは図24に示すように、エンベロープ波
形のアック、ディケイ、サスティン、リリースの最終到
達地点におけるエンベロープ累算値を示している。エン
ベロープ加減信号データEDUは、エンベロープ累算値
EAを加算していくのか、減算していくのかを示してい
る。またエンベロープデータのエンベロープスピードデ
ータESは、エンベロープ累算値EAの加減速度を示し
ており、この値が大きいほどエンベロープ波形の傾きが
大きくなる。エンベロープスピードデータESとエンベ
ロープレベルデータELとは、キーボード1のキーの押
鍵速度、または押鍵圧力に応じたキータッチデータに応
じて決定される。As shown in FIG. 24, the envelope level data EL in the envelope data indicates the accumulated value of the envelope at the final arrival point of the ack, decay, sustain, and release of the envelope waveform. The envelope addition / subtraction signal data EDU indicates whether the envelope accumulated value EA is to be added or subtracted. The envelope speed data ES of the envelope data indicates the acceleration / deceleration of the envelope accumulated value EA. The larger this value, the larger the slope of the envelope waveform. The envelope speed data ES and the envelope level data EL are determined according to the key pressing speed of a key of the keyboard 1 or key touch data corresponding to the key pressing pressure.
【0030】エンベロープの中のシンアウトデータTH
は、エンベロープ累算値EAの累算システムへのエンベ
ロープ累算値EAの取り入れラッチの間引き率を示すデ
ータである。本来のエンベロープ累算値EAの取り入れ
ラッチは、繰り返し行われる全チャンネル分のタイムス
ロットに1回行なわれる。このデータが「11」のとき
間引きはなく、「10」のとき4回に1回取り入れら
れ、「01」のとき16回に1回取り入れられ、「0
0」のとき64回に1回取り入れられる。The thin-out data TH in the envelope
Is data indicating the thinning rate of the latch for taking in the envelope accumulated value EA into the accumulation system of the envelope accumulated value EA. The latch for taking in the original envelope accumulated value EA is performed once in the time slot for all the channels that is repeatedly performed. When this data is "11", there is no thinning out. When the data is "10", it is taken once every four times. When it is "01", it is taken once every 16 times.
When it is "0", it is taken in once every 64 times.
【0031】このシンアウト(取り入れラッチ間引き)
により、同じエンベロープスピードデータでもエンベロ
ープのスピードを等倍、4倍、16倍、64倍に変化さ
せることができる。このシンアウトデータTHもキーボ
ード1のキーの押鍵速度、または押鍵圧力に応じたキー
タッチデータに応じて変化させても良い。上記「0」、
「1」は2値論理レベルのlow状態、high状態を
示すものである。This thin out (take-in latch thinning)
Thus, even with the same envelope speed data, the envelope speed can be changed to 1, 4, 16, or 64 times. The thin-out data TH may also be changed according to the key pressing speed of the key of the keyboard 1 or the key touch data corresponding to the key pressing pressure. The above "0",
“1” indicates a low state and a high state of the binary logic level.
【0032】このようにROM20には、楽音を生成発
音または各種制御するための処理プログラムと、楽音に
関する楽音データとが記憶されているので、プログラム
とデータを記憶するメモリが1つで済み、その分、回路
構成を簡易なものとすることができる。As described above, since the ROM 20 stores the processing program for generating and generating or controlling various musical tones and the musical tone data relating to the musical tones, only one memory for storing the program and the data is required. For this reason, the circuit configuration can be simplified.
【0033】3.キーアサイナ回路30 図4は、キーアサイナ回路30を示すものである。CP
U300は与えられるマスタクロック信号φ(CK2)
が、ハイレベルのときのみ動作可能なものである。図2
下方に示すように、CPU300のデータバスライン及
びアドレスバスラインには、マスタクロック信号CK2
がハイレベル「1」のとき、CPU300に関するデー
タが流れ、ローレベル「0」のとき、CPU300に無
関係なデータが流れる。[0033] 3. Key Assigner Circuit 30 FIG. 4 shows the key assigner circuit 30. CP
U300 is applied master clock signal φ (CK2)
Is operable only when it is at a high level. FIG.
As shown below, the master clock signal CK2 is provided on the data bus line and the address bus line of the CPU 300.
Is high level “1”, data relating to CPU 300 flows, and when low level “0”, data unrelated to CPU 300 flows.
【0034】3−1.ROMアドレス制御回路31 ROM20や各種メモリのアクセス用の、CPU300
からのアドレスデータCA0〜15は16ビットデータ
であるが、最下位ビットを除く下位11ビットCA1〜
11はセレクタ313に与えられる。また、上位4ビッ
トCA12〜15は上位に「0000」の4ビットデー
タが付加されて、セレクタ312のB入力を通じて、上
記下位11ビットCA1〜11とともに、19ビットの
アドレスデータとして、セレクタ313を介してROM
20に与えられ、主に処理プログラムの読み出しが行わ
れる。 3-1. ROM address control circuit 31 CPU 300 for accessing ROM 20 and various memories
Are the 16-bit data, but the lower 11 bits CA1 to CA1 excluding the least significant bit
11 is provided to the selector 313. The upper four bits CA12 to CA15 have 4-bit data "0000" added to the upper bits, and are input to the B input of the selector 312 as the 19-bit address data together with the lower 11 bits CA1 to 11 via the selector 313. ROM
The processing program is mainly read out.
【0035】またCPU300が、処理プログラム以外
の音色データやその他データを読み出す時には、CPU
300より8ビットのMMUアドレスデータがデータバ
スラインを通じて出力され、これがMMUラッチ310
を介して上記セレクタ312を通じ、上述の下位11ビ
ットCA1〜11に付加されて、セレクタ313を介し
ROM20に与えられる。When the CPU 300 reads out tone data other than the processing program and other data, the CPU 300
MMU address data of 8 bits from 300 is output through the data bus line, and this is
Are added to the lower 11 bits CA1 to CA11 through the selector 312 via the selector 312 and supplied to the ROM 20 via the selector 313.
【0036】このアドレスデータの切り換え状態を示し
たのが、図5であり、ROM20のアドレスデータは1
9ビットであるにもかかわらず、CPU300のアドレ
スデータは16ビットであるため、「0000」の付加
や、MMUアドレスデータの付加が行われる。FIG. 5 shows the switching state of the address data.
Although the address data is 9 bits, the address data of the CPU 300 is 16 bits, so that "0000" and MMU address data are added.
【0037】こうして、MMUアドレスを付加するか、
「0000」を付加するかで、プログラムの読み出しと
音色データの読み出しが簡単に切り換えられ、CPU3
00の読出アドレスデータがROM20の読出アドレス
データより少ないビット数であっても、ROM20の全
領域の読み出しを行うことができる。Thus, whether the MMU address is added or
By adding “0000”, the reading of the program and the reading of the timbre data can be easily switched.
Even if the read address data of 00 is smaller in the number of bits than the read address data of the ROM 20, the entire area of the ROM 20 can be read.
【0038】従って、ROM20のバンク「0」は、C
PU300がMMUラッチ310を使わずに直接アクセ
スできるので、CPU300専用の処理プログラム等が
記憶されるのである。また、CPU300が、例えばバ
ンク「1」の「3524н」番地をアクセスするには、
MMUラッチ310に「13н」をセットし、CPU3
00のアドレスデータとして「1524н」をセットす
れば、合成アドレスデータは、「13524н」となっ
て、バンク「1」の「3524н」番地がアクセスされ
ることになる。この場合CPU300のアドレスデータ
「1524н」の最上位4ビットの「1н」は、セレク
タ312でキャンセルされる。Therefore, the bank "0" of the ROM 20 stores C
Since the PU 300 can be directly accessed without using the MMU latch 310, a processing program dedicated to the CPU 300 is stored. Further, for example, in order for the CPU 300 to access the address “3524н” of the bank “1”,
"13н" is set in the MMU latch 310, and the CPU 3
If "1524H" is set as the address data of 00, the combined address data becomes "13524H", and the address "3524H" of the bank "1" is accessed. In this case, the selector 312 cancels the most significant four bits “1н” of the address data “1524н” of the CPU 300.
【0039】上記上位4ビットデータCA12〜15は
コンパレータ311にも与えられており、このコンパレ
ータ311には4ビットのf(x)データも与えられて
おり、両データが一致しない時、「0000」と上位4
ビットアドレスデータCA12〜15の方が選択され
る。また両データが一致した時、一致信号がコンパレー
タ311から上記セレクタ312に与えられて、MMU
ラッチ310の方が選択される。従って上位4ビットの
アドレスデータCA12〜15がf(x)データに一致
していない時に、CPU300の処理プログラム等の読
み出しが行われ、一致した時は音色データ等が読み出さ
れる。The upper 4-bit data CA12 to CA15 are also supplied to a comparator 311. The comparator 311 is also supplied with 4-bit f (x) data. When the two data do not match, "0000" is output. And the top four
Bit address data CA12 to CA15 are selected. When both data match, a match signal is supplied from the comparator 311 to the selector 312, and the MMU
Latch 310 is selected. Therefore, when the upper four bits of the address data CA12 to CA15 do not match the f (x) data, the processing program of the CPU 300 is read, and when they match, the tone color data and the like are read.
【0040】このf(x)データはCPU300によっ
て選択設定してもよいし、予め固定された値でもよい。
このf(x)を「1н」に固定すると、RAM20のバ
ンク「0」の「1000н」〜「1FFFн」のMMU
ラッチ310用のエリアがアクセスされ、f(x)を
「0н」に固定すると、RAM20のバンク「0」の
「0000н」〜「0FFFн」のエリアがアクセスさ
れることとなる。The f (x) data may be selected and set by the CPU 300 or may be a fixed value.
When this f (x) is fixed to “1 н”, the MMU of “1000 н” to “1FFFF” of the bank “0” of the RAM 20 is obtained.
When the area for the latch 310 is accessed and f (x) is fixed to “0 н”, the area of “0000 н” to “0FFF н” of the bank “0” of the RAM 20 is accessed.
【0041】上記セレクタ313を介して、後述するア
サインメントメモリ320よりCPU300によって読
み出されたバンクデータと、周波数ナンバ累算器40か
らの周波数ナンバ累算値FA12〜26とが、ROM2
0に与えられ、対応するバンクの波形データRDが読み
出される。このセレクタ313における、データセレク
ト切換は、上記システムクロック発生器10からのクロ
ック信号CK2によって行われ、図2下方に示すよう
に、処理プログラムの読み出しと波形データRDのサン
プル値との読み出しが切り換えられる。The bank data read by the CPU 300 from the assignment memory 320 to be described later via the selector 313 and the frequency number accumulated values FA12 to FA26 from the frequency number accumulator 40 are stored in the ROM 2
0, and the waveform data RD of the corresponding bank is read. The data selection in the selector 313 is performed by the clock signal CK2 from the system clock generator 10, and as shown in the lower part of FIG. 2, the reading of the processing program and the reading of the sample value of the waveform data RD are switched. .
【0042】このうち、処理プログラムの読み出しのタ
イミングにおいては、上記f(x)データに基づいて、
さらに処理プログラムの読み出しと音色データの読み出
しが切り換えられる。そして、これらの読出処理が16
チャンネル分ずつ繰返し行われて行く。Of these, at the timing of reading the processing program, based on the above f (x) data,
Further, reading of the processing program and reading of the timbre data are switched. Then, these reading processes are performed by 16
It is repeated for each channel.
【0043】ROM20より読み出されるデータのう
ち、波形データRDはそのまま波形データ伸長補間回路
50へ送られ、処理プログラムや音色データは、8ビッ
トデータずつに2分割され、セレクタ314を介してC
PU300に送られたり、ゲートバッファ323を介し
てアサインメントメモリ320に送られたりする。セレ
クタ314における、データセレクト切換は、上記CP
U300からのアドレスデータCAの最下位ビットCA
0に基づいて行われる。Of the data read from the ROM 20, the waveform data RD is sent to the waveform data decompression interpolation circuit 50 as it is, and the processing program and timbre data are divided into two pieces of 8-bit data.
It is sent to the PU 300 or sent to the assignment memory 320 via the gate buffer 323. The data selection switching in the selector 314 is performed by the CP
Least significant bit CA of address data CA from U300
This is performed based on 0.
【0044】これにより、CPU300の処理速度に追
随してROM20からのデータ取り込みが行われる。ま
た、CPU300のデータバスラインのビット数に対し
ROM20からの読み出しデータのビット数が多くて
も、スムーズにデータ処理を行うことができる。Thus, data is taken in from the ROM 20 following the processing speed of the CPU 300. Further, even if the number of bits of data read from the ROM 20 is larger than the number of bits of the data bus line of the CPU 300, data processing can be performed smoothly.
【0045】3−2.アサインメントメモリ回路32 図6は、アサインメントメモリ回路32のアサインメン
トメモリ320の記憶内容を示すものである。アサイン
メントメモリ320は、16チャンネル分の音色データ
のメモリエリアが形成されており、各チャンネルエリア
にROM20からの音色データがセットされる。この場
合、セットされる音色データのうちエンベロープデータ
はEG0〜15の各エンベロープグループエリアにセッ
トされ、それ以外のデータはCH0〜15の各チャンネ
ルエリアに分けてセットされる。 3-2. Assignment Memory Circuit 32 FIG. 6 shows the contents stored in the assignment memory 320 of the assignment memory circuit 32. The assignment memory 320 has a memory area for timbre data for 16 channels, and timbre data from the ROM 20 is set in each channel area. In this case, of the tone data to be set, the envelope data is set in each of the envelope group areas EG0 to EG15, and the other data is set separately in the respective channel areas of CH0 to CH15.
【0046】CH0〜15にセットされるデータは、バ
ンクデータ(A)(B)、エンベロープグループデータ
(A)(B)、周波数ナンバスピードデータFS、キー
オン信号データ、データ長信号データD816、系列デ
ータGR、イニシャル周波数ナンバデータ、ループトッ
プデータ、ループエンドデータよりなっておいる。この
うち周波数ナンバスピードデータFS、キーオン信号デ
ータ、エンベロープグループデータ(A)(B)以外の
データについては、ROM20の記憶内容のところで説
明したとおりである。Data set in CH0 to CH15 include bank data (A) and (B), envelope group data (A) and (B), frequency number speed data FS, key-on signal data, data length signal data D816, and sequence data. It consists of GR, initial frequency number data, loop top data, and loop end data. The data other than the frequency number speed data FS, the key-on signal data, and the envelope group data (A) and (B) are as described in the storage contents of the ROM 20.
【0047】周波数ナンバスピードデータFSは、キー
ボード1の操作キーの音高に応じたデータで、波形デー
タRDの読出アドレスデータの累算ステップ値として用
いられる。キーオン信号データは、現在キーオン中であ
ることを示すデータで、キーオンで「1」、キーオフで
「0」となる。The frequency number speed data FS is data corresponding to the pitch of the operation key of the keyboard 1, and is used as an accumulation step value of the read address data of the waveform data RD. The key-on signal data is data indicating that the key is currently on, and is "1" for key-on and "0" for key-off.
【0048】エンベロープグループデータ(A)(B)
は、当該チャンネルエリアの音色に応じたエンベロープ
データの記憶されているエンベロープグループエリアE
G0〜15のアドレスを示すデータであり、1つのチャ
ンネルに割り当てられる音色は2つの楽音よりなるもの
であるため、(A)(B)と2つ存在することになる。
これに応じて、波形データRDも2つ存在するため、バ
ンクデータも(A)(B)2つの存在することになる。
EG0〜15にセットされるエンベロープデータについ
ても、上述ROM20の記憶内容の説明のところで説明
したとおりである。Envelope group data (A) (B)
Is an envelope group area E in which envelope data corresponding to the tone color of the channel area is stored.
This data indicates addresses G0 to G15. Since the tone color assigned to one channel is composed of two musical tones, there are two (A) and (B).
Accordingly, since there are two waveform data RDs, there are two bank data (A) and (B).
The envelope data set in EG0 to EG15 is also as described in the description of the storage contents of the ROM 20 described above.
【0049】上記周波数ナンバスピードデータFSは、
(A)(B)2つの楽音について共用され、キーボード
1の1つの操作キーに応じて(A)(B)2つの楽音が
合成出力されることになる。この(A)(B)2つの楽
音は、バンクデータまたはエンベロープグループデータ
が異なるため、異なる音色の楽音となっており、また別
々にエンベロープ制御も行われることになる。The frequency number speed data FS is
(A) and (B) are shared for two musical tones, and two musical tones (A) and (B) are synthesized and output according to one operation key of the keyboard 1. Since the two tone sounds (A) and (B) have different bank data or envelope group data, they have different tone colors, and the envelope control is performed separately.
【0050】これら、バンクデータ、エンベロープグル
ープデータの選択は、上述した音色スイッチ2の各スイ
ッチの切換選択によってその組み合わせが任意に切り換
えられるが、圧力センサ3からのタッチデータTOの大
きさ、ボリュームつまみ7、テンポつまみ8からのボリ
ュームデータ、テンポデータの変化、リズムキー5、エ
フェクトキー6の各キーの切換選択によっても、切り換
えられる。この場合、バンクデータ、エンベロープグル
ープデータ以外に、イニシャル周波数ナンバデータ、ル
ープトップデータ、ループエンドデータを切り換えるこ
とにより、音色内容を変化させてもよい。また、1つの
操作キーで合成出力される楽音は(A)(B)の2つだ
けでなく、これ以上でもよい。The combination of the bank data and the envelope group data can be arbitrarily switched by selecting the switches of the tone switch 2 described above. The size of the touch data TO from the pressure sensor 3 and the volume knob are selected. 7, the volume data and the change of tempo data from the tempo knob 8 and the rhythm key 5 and the effect key 6 can be switched. In this case, the timbre may be changed by switching the initial frequency number data, the loop top data, and the loop end data in addition to the bank data and the envelope group data. In addition, the number of musical tones synthesized and output by one operation key is not limited to two (A) and (B), and may be more than two.
【0051】このアサインメントメモリ320より読み
出されたデータは、AM(アサインメントメモリ)バス
を介して、周波数ナンバ累算器40やエンベロープ発生
器60等へ送出されたり、ゲートバッファ322を介し
てCPU300に与えられる。また、4ビットのエンベ
ロープグループデータ(A)(B)については、ラッチ
324を介し、エンベロープ発生器60からのフェーズ
データPAが2ビット下位に付加され、「1」が上位に
付加されて計7ビットとなり、セレクタ321を介し、
再びアサインメントメモリ320に与えられる。The data read from the assignment memory 320 is sent to the frequency number accumulator 40, the envelope generator 60, etc., via an AM (assignment memory) bus, or via the gate buffer 322. It is given to the CPU 300. As for the 4-bit envelope group data (A) and (B), the phase data PA from the envelope generator 60 is added to the lower two bits and “1” is added to the upper one via the latch 324, for a total of 7 bits. Bit, and via the selector 321,
It is provided to the assignment memory 320 again.
【0052】これにより、対応するエンベロープのエン
ベロープレベルデータEL、シンアウトデータTH、エ
ンベロープスピードデータES等が読み出されて、エン
ベロープ発生器60に送られる。このセレクタ321を
介してシステムクロック発生器10からのクロック信号
CKの集合である読出アドレスデータもアサインメント
メモリ320に与えられるほか、CPU300からのア
クセスアドレスデータも与えられる。As a result, the envelope level data EL, thin-out data TH, envelope speed data ES, etc. of the corresponding envelope are read and sent to the envelope generator 60. The read address data, which is a set of clock signals CK from the system clock generator 10, is also supplied to the assignment memory 320 via the selector 321, and the access address data from the CPU 300 is also supplied.
【0053】これらのアドレスデータの切換状態を示し
たのが、図2最下段のタイムチャートである。クロック
信号群CKに基づいたバンクデータ(A)(B)とエン
ベロープグループデータ(A)(B)が読み出され、こ
れに続いて周波数ナンバスピードデータFSが読み出さ
れた後、上記エンベロープグループデータ(A)とフェ
ーズデータPAに基づいたエンベロープスピードデータ
(A)ESとエンベロープレベルデータ(A)ELが読
み出され、この後CPU300のアクセスが行われる。FIG. 2 is a time chart at the bottom of FIG. 2 showing the switching state of these address data. The bank data (A) and (B) and the envelope group data (A) and (B) based on the clock signal group CK are read, and subsequently, the frequency number speed data FS is read. The envelope speed data (A) ES and the envelope level data (A) EL based on (A) and the phase data PA are read out, and thereafter the CPU 300 accesses.
【0054】そしてさらに、同じくクロック信号群CK
に基づいたイニシャル周波数ナンバ、キーオン、データ
長信号データD816、系列データGRの各データと、
これに続いてループトップデータ、ループエンドデータ
とが読み出され、上記エンベロープグループデータ
(B)とフェーズデータPAに基づいたエンベロープス
ピードデータ(B)ESとエンベロープレベルデータ
(B)ELの読み出しが行われ、この後CPU300の
アクセスが行われる。そしてこれらのアクセス処理が1
6チャンネル分ずつ繰り返し行われていく。Further, the clock signal group CK
Each of initial frequency number, key-on, data length signal data D816, and sequence data GR based on
Subsequently, the loop top data and the loop end data are read, and the envelope speed data (B) ES and the envelope level data (B) EL based on the envelope group data (B) and the phase data PA are read. Thereafter, the access of the CPU 300 is performed. And these access processes are 1
The process is repeated for every six channels.
【0055】この場合、読出アドレスデータとして用い
られるクロック信号群CKは、図2のCK1〜CKなど
が用いられる。セレクタ321における各アドレスデー
タのセレクトはシステムクロック発生器10からのクロ
ック信号CK1、CK2に基づいて行われ、「00」
「01」のタイミングで、クロック信号群CKが選択さ
れ、「10」でラッチ324からのエンベロープグルー
プデータとフェーズデータPAが選択され、「11」で
CPU300からのアドレスデータが選択される。In this case, as the clock signal group CK used as read address data, CK1 to CK in FIG. 2 are used. The selection of each address data in the selector 321 is performed based on the clock signals CK1 and CK2 from the system clock generator 10, and is "00".
At the timing of “01”, the clock signal group CK is selected, at “10”, the envelope group data and the phase data PA from the latch 324 are selected, and at “11”, the address data from the CPU 300 is selected.
【0056】RAM301には、各種中間処理データが
メモリされ、タイマ302は、CPU300が設定した
周期でインタラプト信号をCPU300に与え、リセッ
ト回路303は電源投入時にCPU300とアウトプッ
トラッチ304にリセットをかけるものである。アウト
プットラッチ304、306には音色スイッチ2、キー
ボード1のサンプリングアドレスが一時セットされ、イ
ンプットバッファ305、307には、そのサンプリン
グ結果が入力される。上記アウトプットラッチ304の
サンプリングデータのうち1ビットのみ上記D−A変換
器100のゲート信号として用いられる。A RAM 301 stores various intermediate processing data, a timer 302 gives an interrupt signal to the CPU 300 at a cycle set by the CPU 300, and a reset circuit 303 resets the CPU 300 and the output latch 304 when the power is turned on. It is. The sampling addresses of the timbre switch 2 and the keyboard 1 are temporarily set in the output latches 304 and 306, and the sampling results are input to the input buffers 305 and 307. Only one bit of the sampling data of the output latch 304 is used as a gate signal of the DA converter 100.
【0057】4.周波数ナンバ累算器40 図7は、周波数ナンバ累算器40を示すものである。上
記アサインメントメモリ回路32からの周波数ナンバス
ピードデータFSは、ラッチ404を介し、イクスクル
シブオアゲート群405を介して、アダー407で、そ
れまでの周波数ナンバ累算値FAに累算される。このう
ち上位8ビットFA19〜26はセレクタ413を介
し、下位19ビットFA0〜18はイクスクルシブオア
ゲート群414を介し、ラッチ群415、セレクタ41
6を介して、上記周波数ナンバ累算値FAとして再びア
ダー407に与えられる。[0057] 4. Frequency Number Accumulator 40 FIG. 7 shows the frequency number accumulator 40. The frequency number speed data FS from the assignment memory circuit 32 is accumulated through the latch 404, through the exclusive OR gate group 405, and the adder 407 to the accumulated frequency number FA up to that time. Of these, the upper 8 bits FA19 to 26 are through a selector 413, the lower 19 bits FA0 to 18 are through an exclusive OR gate group 414, a latch group 415 and a selector 41.
6, is again provided to the adder 407 as the frequency number accumulated value FA.
【0058】これにより、周波数ナンバ累算値FAが周
波数ナンバスピードデータFSの大きさに応じた速度で
累算され、この累算値FAはラッチ418を介し、上位
の整数部分にあたる15ビットFA12〜26が上記R
OMアドレス制御回路31に送られ、波形データRDの
読み出しが行われる。また小数部分の中の上位3ビット
FA9〜11と最上位ビットの波形折返し信号FDU
は、上記波形データ伸長補間回路50へ送られて、波形
データRDのサンプル値の伸長と補間に用いられる。As a result, the frequency number accumulated value FA is accumulated at a speed corresponding to the magnitude of the frequency number speed data FS, and the accumulated value FA is transmitted via the latch 418 to the 15-bit FA12 to 15th bit corresponding to the upper integer part. 26 is R
The data is sent to the OM address control circuit 31, and the waveform data RD is read. The upper three bits FA9 to 11 in the decimal part and the waveform folding signal FDU of the most significant bit
Is sent to the waveform data decompression interpolation circuit 50 and is used for decompression and interpolation of the sample value of the waveform data RD.
【0059】このような周波数ナンバ累算値FAの内容
を示したのが図9であり、周波数ナンバ累算値FAは全
部で28ビットのデータである。最上位ビットは波形折
返し信号FDUで、次の8ビットFA19〜26はコン
パレートビットで、後述するループエンド、ループトッ
プに到達したか否かの対比に用いられる。さらに次の7
ビットFA12〜18が整数部分、最後の12ビットF
A0〜11が小数部分となっている。このような周波数
ナンバスピードデータFSは、CH0〜15の16チャ
ンネル分、周波数ナンバ累算器40で累算され、各チャ
ンネルの周波数ナンバ累算値FAは上記ラッチ群415
にメモリされている。FIG. 9 shows the contents of the frequency number accumulated value FA. The frequency number accumulated value FA is 28-bit data in total. The most significant bit is the waveform folded signal FDU, and the next eight bits FA19 to 26 are compare bits, which are used to compare whether or not a loop end and a loop top described later have been reached. Next 7
Bits FA12-18 are integer part, last 12 bits F
A0 to 11 are decimal parts. Such frequency number speed data FS is accumulated by the frequency number accumulator 40 for 16 channels from CH0 to CH15, and the frequency number accumulated value FA of each channel is stored in the latch group 415.
Is stored in the memory.
【0060】このラッチ群415は16個のラッチより
なり、周波数ナンバスピードデータの累算の行われるラ
ッチは、クロック信号CK3のタイミングで切り換えら
れていき、ラッチからの読出はクロック信号CK3の一
周期の間のタイミングで行われ、ラッチへの書込はクロ
ック信号CK3の後半の最後のタイミングで行われる。
このラッチ群415の各ラッチには、(A)(B)2つ
の楽音成分につき、同じ読み出しアドレス(同じ周波数
ナンバ累算値FA12〜FA26)がセットされる。音
色の違いは上記バンクデータ(A)(B)の違いに基づ
いている。The latch group 415 is composed of 16 latches. The latch for accumulating the frequency number speed data is switched at the timing of the clock signal CK3, and reading from the latch is performed for one cycle of the clock signal CK3. And writing to the latch is performed at the last timing of the latter half of the clock signal CK3.
In each latch of the latch group 415, the same read address (the same frequency number accumulated value FA12 to FA26) is set for (A) and (B) two tone components. The difference in timbre is based on the difference in the bank data (A) and (B).
【0061】また、アサインメントメモリ回路32から
の8ビットイニシャル周波数ナンバは、ラッチ406を
介しセレクタ416にて、上位に1ビットの「0」下位
に19ビットの「00…0」が付加されて、周波数ナン
バ累算値FAと同じ28ビットデータとしてセレクトさ
れる。このセレクタ416におけるセレクト信号は、エ
ンベロープ発生器60からのキーオンタイミングに出力
されるオンイベント信号が用いられる。そして図8に示
すように、キーオンタイミングから、このイニシャル周
波数ナンバに対し、順次周波数ナンバスピードデータF
Sが累算されていく。The 8-bit initial frequency number from the assignment memory circuit 32 is obtained by adding 1 bit “0” to the high order and 19 bits “00... 0” to the low order by the selector 416 via the latch 406. , Is selected as the same 28-bit data as the frequency number accumulated value FA. As the select signal in the selector 416, an on-event signal output at the key-on timing from the envelope generator 60 is used. Then, as shown in FIG. 8, from the key-on timing, the frequency number speed data F is sequentially assigned to this initial frequency number.
S is accumulated.
【0062】さらに、アサインメントメモリ回路32か
らのループエンドデータ、ループトップデータは、ラッ
チ402を介し、セレクタ403でループエンド、ルー
プトップいずれかが選択され、コンパレータ409に与
えられるとともに、セレクタ413にも与えられる。Further, the loop end data and the loop top data from the assignment memory circuit 32 are selected via the latch 402 by the selector 403 to select either the loop end or the loop top data. Is also given.
【0063】コンパレータ409では、周波数ナンバ累
算値FAの上位8ビットコンパレートビットFA19〜
26との比較が行われ、周波数ナンバ累算値FAがルー
プエンドとループトップの間の範囲を越えたとき、セレ
クタ410よりオーバラン信号FCPが出力される。こ
の信号FCPは、オアゲート411を介し、上記イクス
クルシブオアゲート群414及びセレクタ413に与え
られ、ループエンドデータまたはループトップデータ
が、周波数ナンバ累算値FAの上位のコンパレートビッ
トFA19〜26に代わって、新たなデータとして取り
込まれる。In the comparator 409, the upper 8 bits of the frequency number accumulated value FA are compared with the comparison bits FA19 to FA19.
When the frequency number accumulated value FA exceeds the range between the loop end and the loop top, the selector 410 outputs an overrun signal FCP. This signal FCP is supplied to the exclusive OR gate group 414 and the selector 413 via the OR gate 411, and the loop end data or the loop top data replaces the higher-order comparator bits FA19 to 26 of the frequency number accumulated value FA. And it is captured as new data.
【0064】このとき、イクスクルシブオアゲート群4
14では、それまでの周波数ナンバ累算値FAの整数部
分及び小数部分の値がプラスマイナス反転される。これ
は波形データRDの読出方向をループエンドまたはルー
プトップで反転させるにあたって、それまでの周波数ナ
ンバ累算値FAの端数をプラスマイナス反転した状態で
そのまま使い、波形データRDの反転読み出しに整合性
をもたせるためのものである。At this time, the exclusive OR gate group 4
At 14, the values of the integer part and the decimal part of the frequency number accumulated value FA up to that point are inverted plus or minus. This means that when inverting the reading direction of the waveform data RD at the loop end or loop top, the fraction of the accumulated frequency number FA up to that point is used as it is in the plus / minus inverted state, and the consistency of the inverted reading of the waveform data RD is maintained. It is for giving.
【0065】上記オーバラン信号FCPは、イクスクル
シブオアゲート412にも与えられて、周波数ナンバ累
算値FAの最上位ビットである波形折返し信号FDUを
反転させ、これによりイクスクルシブオアゲート群40
5における周波数ナンバスピードデータFSの値がプラ
スマイナス反転され、アダー407における周波数ナン
バ累算値FAの累算方向が加減切り換えされる。このよ
うな周波数ナンバスピードデータFSの加減切換によ
る、半波形ごとのループ再生の状態を示したのが図8で
ある。The overrun signal FCP is also applied to an exclusive OR gate 412 to invert the waveform folding signal FDU, which is the most significant bit of the frequency number accumulated value FA, and thereby the exclusive OR gate group 40
The value of the frequency number speed data FS at 5 is inverted plus or minus, and the direction of accumulation of the frequency number accumulated value FA at the adder 407 is switched. FIG. 8 shows a state of loop reproduction for each half waveform by such switching of the frequency number speed data FS.
【0066】上記波形折返し信号FDUは、セレクタ4
03、410にセレクト信号として与えられ、周波数ナ
ンバスピードデータFSの加算時にはループエンドデー
タとA<B検出信号の方が選択され、減算時にはループ
トップデータとA>B検出信号の方が選択される。また
波形折返し信号FDUは、アダー407のCin端子に
も入力され、周波数ナンバスピードデータFSの減算時
に、周波数ナンバ累算値FAの+1処理が行われるほ
か、イクスクルシブオアゲート408にも与えられる。The waveform folding signal FDU is supplied to the selector 4
03 and 410 are provided as select signals. When frequency number speed data FS is added, loop end data and A <B detection signal are selected, and when subtraction, loop top data and A> B detection signal are selected. . Further, the waveform folded signal FDU is also input to the Cin terminal of the adder 407, and when subtracting the frequency number speed data FS, the frequency number accumulated value FA is subjected to +1 processing, and is also given to the exclusive OR gate 408.
【0067】このイクスクルシブオアゲート408に
は、アダー407のCout端子からの出力信号も与え
られており、周波数ナンバ累算値FAがオーバーフロー
またはアンダーフローしたことが検出され、これも上記
オーバラン信号FCPとして出力される。An output signal from the Cout terminal of the adder 407 is also supplied to the exclusive OR gate 408, and it is detected that the frequency number accumulated value FA has overflowed or underflowed. Is output as
【0068】さらに、アサインメントメモリ回路32か
らのバンクデータ(A)(B)は、ラッチ400を介し
て、セレクタ401で(A)、(B)いずれか一方のバ
ンクデータが選択され、ラッチ417を介して、上述周
波数ナンバ累算値FAの整数部分とコンパレートビット
とともに、ROMアドレス制御回路31へ送られ、波形
データRDの読み出しが行われる。Further, the bank data (A) and (B) from the assignment memory circuit 32 via the latch 400 are used to select one of the bank data (A) and (B) by the selector 401 and the latch 417 is selected. Is sent to the ROM address control circuit 31 together with the integer part of the above-described accumulated frequency number FA and the compare bit, and the waveform data RD is read.
【0069】これにより、1つのチャンネルに割り当て
られる2つの楽音成分(A)(B)は、バンクデータは
異なっているものの、共通の周波数ナンバ累算値FAが
用いられ、楽音生成処理のタイミング同期がとられる。As a result, although the two tone components (A) and (B) assigned to one channel have different bank data, a common frequency number accumulated value FA is used, and the timing synchronization of the tone generation process is performed. Is taken.
【0070】上記セレクタ401のセレクト信号には、
システムクロック発生器10からのクロック信号CK3
が用いられ、このクロック信号CK3の前半で(A)に
ついての楽音生成処理が行われ、後半で(B)について
の楽音生成処理が行われることになる。システムクロッ
ク発生器10からのクロック信号群CKは、上記ラッチ
400、402、404、406、415、417、4
18にもラッチ信号として与えられ、チャンネル周期及
びタイミング同期がとられる。The select signal of the selector 401 includes
Clock signal CK3 from system clock generator 10
Is used, the tone generation process for (A) is performed in the first half of the clock signal CK3, and the tone generation process for (B) is performed in the second half. The clock signal group CK from the system clock generator 10 corresponds to the latches 400, 402, 404, 406, 415, 417, 4
18 is also provided as a latch signal to synchronize the channel cycle and timing.
【0071】5.波形データ伸長補間回路50 図10は、波形データ伸長補間回路50を示すものであ
る。ここでゲート500〜510とセレクタ511〜5
13とで、図14に示すような波形データRDの中の差
分データの伸長が行われる。ゲート514〜517とゲ
ート群518、519、アダー520、セレクタ521
とで、図12に示すような波形データRDの各サンプル
値R0 、R1 、R2 、R3 …の補間が行われる。ゲート
群524、522、ゲート526、セレクタ525、ア
ダー527で、波形データRDが10ビットのサンプル
値と6ビットの差分データのとき、楽音波形の補間が行
われ(D816=0)、8ビットのサンプル値2つのと
き、楽音波形の補間が行われない(D816=1)。[0071] 5. Waveform Data Expansion Interpolation Circuit 50 FIG. 10 shows the waveform data expansion interpolation circuit 50. Here, gates 500 to 510 and selectors 511 to 5
The expansion of the difference data in the waveform data RD as shown in FIG. Gates 514 to 517, gate groups 518 and 519, adder 520, selector 521
Then, interpolation of each sample value R 0 , R 1 , R 2 , R 3 ... Of the waveform data RD as shown in FIG. 12 is performed. When the waveform data RD is a 10-bit sample value and 6-bit difference data, interpolation of a musical sound waveform is performed by the gate groups 524 and 522, the gate 526, the selector 525, and the adder 527 (D816 = 0), and the 8-bit data. When there are two sample values, interpolation of the musical tone waveform is not performed (D816 = 1).
【0072】5−1.波形データ伸長補間回路50のデ
ータ処理の概要 図13は、ROM20より読み出された波形データRD
のデータ構成を示すものである。データ長信号D816
がローレベルで10ビットのサンプル値と6ビットの差
分データからなるときは、上位10ビットRD6〜15
はサンプル値で、RD5は差分符号データ、RD2〜4
は差分パワーデータ、RD0、1は差分マンティッサデ
ータとなっている。差分データRD0〜4は圧縮状態で
記憶されており、伸長すると図14に示すような10ビ
ットの伸長差分データIE0〜8、IESとなる。すな
わち差分パワーデータRD2〜4は、差分値の何ビット
目にはじめて「1」があるかを示すデータであり、差分
マンティッサデータRD0、1は、この「1」に続く2
ビット分のデータそのものを示している。 5-1. The data of the waveform data decompression interpolation circuit 50
Overview over data processing Figure 13, the waveform data RD read from the ROM20
FIG. Data length signal D816
Is a low level and consists of a 10-bit sample value and 6-bit difference data, the upper 10 bits RD6 to RD15
Is a sample value, RD5 is difference code data, RD2-4
Is difference power data, and RD0 and RD1 are difference Mantissa data. The difference data RD0 to RD4 are stored in a compressed state, and when expanded, become 10-bit expanded difference data IE0 to IE8 and IES as shown in FIG. That is, the difference power data RD2 to RD4 are data indicating the first bit of the difference value where “1” is present, and the difference mantisser data RD0 and RD1 are two bits following the “1”.
The data itself for bits is shown.
【0073】このように、図14上段のデータは伸長差
分データを加算するときのものであるが、下段のデータ
は減算するときのものである。この場合には、差分パワ
ーデータRD2〜4は、差分値の何ビット目まで「1」
が続くかを示すデータであり、これに続く変換差分マン
ティッサデータRG0〜2は、差分マンティッサデータ
RD0、1を図14下方の論理式で変換したもので、こ
の変換内容は図15に示すとおりであり、プラスマイナ
ス反転した値に変換される。As described above, the data in the upper part of FIG. 14 is for adding the decompression difference data, while the data in the lower part is for subtraction. In this case, the difference power data RD2 to RD4 are “1” up to what bit of the difference value.
The conversion difference mantissa data RG0 to RG2 following this are obtained by converting the difference mantissa data RD0 and RD1 with the logical formula in the lower part of FIG. And is converted to a value that is inverted plus or minus.
【0074】このような伸長差分データIE0〜8、I
ESは、図12に大丸で示す波形データRDの各サンプ
ル値の間の差の1/2であり、各サンプル値と×印で示
す仮想値との差を示すことになる。図12の仮想値は補
間値と重なって×印に○印が重なった状態となってい
る。The decompression differential data IE0-8, IE
ES is の of the difference between each sample value of the waveform data RD indicated by a large circle in FIG. 12, and indicates the difference between each sample value and a virtual value indicated by a cross. The virtual value in FIG. 12 overlaps with the interpolation value and is in a state in which the mark “x” overlaps the mark “x”.
【0075】ここで、仮想値(本来のポイント)は、記
憶する楽音波形の先頭ポイント及びこの先頭ポイントか
ら標本化周期ごとの各標本化ポイントの値を示してお
り、サンプル値(中間点)は、上記先頭ポイント及び各
標本化ポイント各々の中間のポイントの値を示してい
る。Here, the virtual value (original point) indicates the head point of the musical tone waveform to be stored and the value of each sampling point from this head point for each sampling period. , And the values at the intermediate points between the start point and each sampling point.
【0076】上記波形データRDの各サンプル値R0 、
R1 、R2 …は、周波数ナンバ累算値FAの小数が1/
2のときにおけるものであるため、図11(2)と図1
2の×印でつながる波形を実現するためには、サンプル
値G0 、G1 、G2 …の各×印地点の中間点のサンプル
値をメモリすればよいことになる。この中間点のサンプ
ル値は、R0 =(G0 +G1 )/2、R1=(G1 +G
2 )/2、R2 =(G2+G3 )/2…となる。Each sample value R 0 of the waveform data RD,
R 1 , R 2 ... Are obtained by dividing the decimal number of the frequency number accumulated value FA by 1 /.
2 and FIG. 11 (2) and FIG.
In order to realize a waveform connected by the mark x of 2, it is only necessary to store the sample value of the sample point G 0 , G 1 , G 2 . The sample values of this intermediate point are: R 0 = (G 0 + G 1 ) / 2, R 1 = (G 1 + G
2 ) / 2, R 2 = (G 2 + G 3 ) / 2.
【0077】このように、×印のサンプル値ではなく、
×印の中間点のサンプル値を記憶することにより、図1
2と図11(2)に示すように、周波数ナンバ累算値F
Aが「00…0」のスタート地点で波形データレベルを
正確に「0」にすることができる。すなわち、ROM2
0の波形データRDのメモリエリアの先頭番地には、通
常第1ステップ目の「0」レベルでない波形データRD
がメモリされているが、周波数ナンバ累算値FAが「0
0…0」のとき、この第1ステップを読み出してしまわ
ないような処理が行われなくとも、上記中間点のサンプ
ル値を記憶することにより自動的に位相合わせができ、
図11(1)のような位相のずれを生じてしまうことが
なくなる。As described above, instead of the sample values indicated by the crosses,
By storing the sample values at the midpoints of the crosses, FIG.
2 and FIG. 11 (2), the frequency number accumulated value F
The waveform data level can be accurately set to "0" at the start point where A is "00 ... 0". That is, ROM2
In the first address of the memory area of the waveform data RD of 0, the waveform data RD which is not the "0" level in the first step is normally stored.
Is stored, but the frequency number accumulated value FA is “0”.
In the case of "0 ... 0", the phase can be automatically adjusted by storing the sample value of the above-mentioned intermediate point even if a process for preventing the reading of the first step is not performed.
The phase shift as shown in FIG. 11A does not occur.
【0078】また、×印の中間点とこの中間点の前後の
補間点との差分データは前後同じとなり、この結果、記
憶すべき差分データは本来の差分データの1/2で済む
ことになる。従って、通常波形データRDのサンプル値
が10ビットの時、その差分データは10ビットであ
り、上記のような圧縮方式を用いても差分パワーデータ
のビット数が4ビット必要となるため、最大圧縮して7
ビットにしかならないが、上述したように差分データを
1/2にできることにより、差分データを6ビットにで
き、合計16ビットとして、通常のデータアクセスにお
いて1回でアクセスできる。Further, the difference data between the midpoint of the mark x and the interpolation points before and after this midpoint is the same before and after, and as a result, the difference data to be stored is only half of the original difference data. . Therefore, when the sample value of the normal waveform data RD is 10 bits, the difference data is 10 bits. Even if the above-mentioned compression method is used, the number of bits of the difference power data is required to be 4 bits. 7
The difference data can be reduced to half as described above, but the difference data can be reduced to 6 bits, and can be accessed once in normal data access as a total of 16 bits.
【0079】このため、1つのROM20より波形デー
タRDとプログラム(または音色データ)とを交互に読
み出して、単位時間当りの波形データRDの読み出し機
会が1/2に減っても十分対応できる。なお、記憶する
波形データRDは、×地点が折れ線状につながる波形で
あってもよい。Therefore, the waveform data RD and the program (or timbre data) are alternately read out from one ROM 20, and the readout of the waveform data RD per unit time can be reduced to half. Note that the stored waveform data RD may be a waveform in which the X points are connected in a polygonal line shape.
【0080】上述の伸長差分データの1/4、2/4、
3/4、4/4を、上記各サンプル値に対し、図16に
示すように加減すれば、補間値が求められることにな
る。この場合、図12の各サンプル値R0 、R1 、
R2 、R3 …に対し、E0 、D1 、D2 、D3 …のよう
に、補間値の方が大きいときは、伸長差分データは図1
4上段に示すように加算値となり、D0 、E1 、E2 、
E3 …のように補間値の方が小さいときは、伸長差分デ
ータは図14下段に示すように減算値となる。1/4, 2/4,
If 3/4 and 4/4 are added to and subtracted from each of the sample values as shown in FIG. 16, an interpolated value can be obtained. In this case, each sample value R 0 , R 1 ,
When the interpolated value is larger than R 2 , R 3, ..., E 0 , D 1 , D 2 , D 3 ,.
4 As shown in the upper part, the added value becomes D 0 , E 1 , E 2 ,
When the interpolation value is smaller as in E 3 ..., The decompression difference data is a subtraction value as shown in the lower part of FIG.
【0081】波形データRDのデータ形式に10ビット
のものと、8ビットのものの2種類あるのは、量子化ビ
ット数を減らしても量子化ノイズがそれほど問題となら
ないにぎやかな音は8ビットとし、量子化ノイズが目立
つ音は10ビットとして使い分け、メモリ使用量を少な
くしたものである。There are two types of data format of the waveform data RD, that is, 10-bit data format and 8-bit data format. The lively sound is 8-bit data in which quantization noise does not cause much problem even if the number of quantization bits is reduced. Sounds in which quantization noise is noticeable are selectively used as 10 bits, and the amount of memory used is reduced.
【0082】5−2.波形データ伸長補間回路50の回
路構成 図10において、セレクタ511のA側「0」端子とB
側「1」端子には、差分マンティッサデータRD0がそ
のまま入力される。またセレクタ511のA側「1」端
子とB側「2」端子には、伸長差分データの最上位ビッ
トIESが「0」のとき、差分マンティッサデータRD
1がそのまま入力され、最上位ビットIESが「1」の
とき、アンドゲート502が開成されるので、差分マン
ティッサデータRD0とRD1との排他的論理和データ
RG1が入力される。 5-2. Time of waveform data decompression interpolation circuit 50
In FIG. 10, the “0” terminal on the A side of the selector 511 and the B terminal
The difference mantisser data RD0 is directly input to the side “1” terminal. When the most significant bit IES of the decompressed difference data is “0”, the difference Mantissa data RD is connected to the A-side “1” terminal and the B-side “2” terminal of the selector 511.
When "1" is input as it is and the most significant bit IES is "1", the AND gate 502 is opened, so that the exclusive OR data RG1 of the differential mantisser data RD0 and RD1 is input.
【0083】さらにセレクタ511のA側「2」端子と
B側「3」端子には、上記最上位ビットIESが「0」
のとき、ナンドゲート505の出力が「1」となってイ
クスクルシブオアゲート506で、ノアゲート509の
出力が反転されるので、差分パワーデータRD2〜4の
論理和が入力され、最上位ビットIESが「1」のと
き、オアゲート504による差分マンティッサデータR
D0、1の論理和の反転データと差分パワーデータRD
2〜4の論理和の反転データとの排他的論理和データR
G2が入力される。そして、セレクタ511のA側
「3」端子には、上記最上位ビットIESが入力され、
B側「0」端子には、「0」データが入力される。Further, the A side “2” terminal and the B side “3” terminal of the selector 511 have the most significant bit IES set to “0”.
At this time, the output of the NAND gate 505 becomes "1" and the output of the NOR gate 509 is inverted by the exclusive OR gate 506, so that the logical sum of the difference power data RD2 to RD4 is input, and the most significant bit IES is " When “1”, the difference Mantissa data R by the OR gate 504
Inverted data of the logical sum of D0 and D1, and difference power data RD
Exclusive OR data R with inverted data of OR of 2 to 4
G2 is input. The most significant bit IES is input to the A-side “3” terminal of the selector 511,
“0” data is input to the “0” terminal on the B side.
【0084】これにより、図14に示すような、差分マ
ンティッサデータRD0、1と上位1ビット分のデー
タ、または変換差分マンティッサデータRG0、1、2
のデータが作成されることになる。変換差分マンティッ
サデータRG0〜2の具体的な内容は図15に示すとう
りである。As a result, as shown in FIG. 14, the difference mantissa data RD0, RD1 and the data for the upper one bit, or the converted difference mantisser data RG0, RG1,
Will be created. The specific contents of the conversion difference mantisser data RG0 to RG2 are as shown in FIG.
【0085】このセレクタ511の4ビットデータは、
セレクタ512、513で上位に最上位ビットIESが
2ビット分、または4ビット分付加されるか、下位に
「0」データが2ビット分、または4ビット分付加され
るかが選択され、10ビットデータとして出力される。The 4-bit data of the selector 511 is
The selectors 512 and 513 select whether the uppermost bit IES is added to the upper two bits or four bits or the lower "0" data is added to the two bits or four bits. Output as data.
【0086】各セレクタ511、512、513のセレ
クト状態を適当に選ぶことにより差分マンティッサデー
タRD0、1またはRG0〜2を、図14に示すように
シフトしていくことができ、このセレクト状態の選択
は、差分パワーデータRD2〜4に基づいて行われる。
こうして、差分圧縮データが6ビットであるにもかかわ
らず、伸長差分データを10ビットまで拡大することが
でき、メモリ使用量を少なくできる。By appropriately selecting the select state of each of the selectors 511, 512, 513, the differential mantisser data RD0, RD0 or RG0-2 can be shifted as shown in FIG. Is selected based on the difference power data RD2 to RD4.
In this manner, the expanded differential data can be expanded to 10 bits despite the 6-bit differential compressed data, and the memory usage can be reduced.
【0087】上記伸長差分データの最上位ビットIES
は、イクスクルシブオアゲート500の入力の差分符号
データRD5と、ノアゲート501の入力の周波数ナン
バ累算値FAの小数部分の最上位ビットFA11と、ノ
アゲート508からの差分データの各ビットRD0〜4
の論理和の反転データとによって決定される。The most significant bit IES of the decompressed difference data
Are the difference code data RD5 input to the exclusive OR gate 500, the most significant bit FA11 of the decimal part of the frequency number accumulated value FA input to the NOR gate 501, and each bit RD0 to RD4 of the difference data from the NOR gate 508.
And the inverted data of the logical sum of
【0088】すなわち、図12に示すように、D0 のF
A11が「0」、差分符号RD5が「0」(加算方向)
のときと、E1 、E2…のFA11が「1」、RD5が
「1」(減算方向)のときは、伸長差分データの最上位
ビットIESが「1」となって、サンプル値に対して差
分データを減算しなくてはならないことを示す。上記ノ
アゲート501には差分データの各ビットRD0、1、
2、3、4、5の論理和の反転データが入力されて、差
分データが「00000」のとき、ノアゲート501の
出力を「0」として、伸長差分データの最上位ビットI
ESが「1」にならないようにコントロールされる。[0088] That is, as shown in FIG. 12, F of D 0
A11 is “0”, difference code RD5 is “0” (addition direction)
, And when FA11 of E 1 , E 2 ... Is “1” and RD5 is “1” (subtraction direction), the most significant bit IES of the decompression difference data becomes “1”, Indicates that the difference data must be subtracted. In the NOR gate 501, each bit RD0, 1,.
When the inverted data of the logical sum of 2, 3, 4, and 5 is input and the differential data is “00000”, the output of the NOR gate 501 is set to “0” and the most significant bit I of the expanded differential data is
It is controlled so that ES does not become “1”.
【0089】伸長差分データIEは、1ビット下位にシ
フトされて2/4の値となってアンドゲート群519を
介し、アダー520の一方の端子に入力されるととも
に、2ビット下位にシフトされて1/4の値となってア
ンドゲート群518を介しアダー520の他方の端子に
入力され、このアダー520の出力はセレクタ521の
A側に与えられる。またセレクタ521のB側には、上
記伸長差分データIEがシフトされず、そのままの倍率
で与えられる。従って、アンドゲート群518、519
の開成信号であるIM0、IM1とセレクタ521のセ
レクト信号であるIM2よりなる掛率データIMを適当
に選ぶことにより、図16に示すように伸長差分データ
IEを1/4倍、2/4倍、3/4倍、4/4倍、0倍
とすることができる。The expanded differential data IE is shifted down by one bit to a value of 2/4, input to one terminal of the adder 520 via the AND gate group 519, and shifted down by 2 bits. A value of 1/4 is input to the other terminal of the adder 520 through the AND gate group 518, and the output of the adder 520 is supplied to the A side of the selector 521. On the B side of the selector 521, the decompressed difference data IE is not shifted but is given at the same magnification. Therefore, the AND gate groups 518, 519
The expansion difference data IE is 1/4 times and 2/4 times as shown in FIG. 16 by appropriately selecting the multiplication factor data IM composed of IM0 and IM1 which are the opening signals of the above and IM2 which is the selection signal of the selector 521. 、 3 times, / times, and 0 times.
【0090】このような掛率とされた伸長差分データI
Eは、アンドゲート群522を介してアダー527に与
えられ、後述する波形データRDのサンプル値RD6〜
15に加減算され、波形データRDの各サンプル値の補
間が行われることになる。The expansion difference data I having such a multiplication factor is
E is given to the adder 527 via the AND gate group 522, and the sample values RD6 to RD6 of the waveform data RD to be described later.
15 is added and subtracted, and interpolation of each sample value of the waveform data RD is performed.
【0091】こうして、1つのサンプル値RD6〜15
と差分データRD0〜5で、8つの地点の波形データR
Dを作成することができ、なめらかな波形特性を得るこ
とができるとともにメモリ容量も少なくすることができ
ている。またこのような1つのデータで8つの地点を決
定できる波形データRDは1回の読み出しで読み出すこ
とができ、波形データRDの読み出し機会が少なくても
十分なめらかな波形を実現できる。この結果、ROM2
0より波形データRDとそれ以外のプログラム等とを交
互に読み出しても、波形生成処理に支障をきたすことが
なくなり、ROM20にプログラムと波形データRDと
を一緒にメモリしても、各情報の読み出し速度を高める
必要もなくなる。Thus, one sample value RD6 to RD15
And the difference data RD0 to RD5, the waveform data R at eight points
D can be created, smooth waveform characteristics can be obtained, and the memory capacity can be reduced. In addition, such waveform data RD that can determine eight points by one data can be read out by one reading, and a sufficiently smooth waveform can be realized even if there is little opportunity to read out the waveform data RD. As a result, ROM2
Even if the waveform data RD and other programs are read alternately from 0, it does not hinder the waveform generation processing. Even if the program and the waveform data RD are stored together in the ROM 20, the reading of each information is performed. There is no need to increase speed.
【0092】上記掛率データIM0〜2は、周波数ナン
バ累算値FAの小数部分の上位3ビットFA9〜11に
よって、論理ゲート514〜517によって作成され
る。このゲート群514、517により、図16に示す
ようなデータ変換が行われ、波形データRDの補間値が
求められることになる。この場合、周波数ナンバ累算値
FAの小数部分の最上位ビットFA11のみが「1」の
とき、すなわち周波数ナンバ累算値FAが1/2のとき
は、サンプル値に対する補間は行われず、ここを中心と
して、これより前のタイミングでは、補間値が差分デー
タの1/4、2/4、3/4、4/4の減算値となり、
後のタイミングでは、補間値が差分データの1/4、2
/4、3/4の加算値となっている。The multiplying factor data IM0 to IM2 are generated by the logic gates 514 to 517 by the upper three bits FA9 to FA11 of the decimal part of the frequency number accumulated value FA. By the gate groups 514 and 517, data conversion as shown in FIG. 16 is performed, and an interpolation value of the waveform data RD is obtained. In this case, when only the most significant bit FA11 of the decimal part of the frequency number accumulated value FA is “1”, that is, when the frequency number accumulated value FA is 1 /, no interpolation is performed on the sample value. As a center, at an earlier timing, the interpolated value is a subtraction value of 1/4, 2/4, 3/4, 4/4 of the difference data,
At a later timing, the interpolated value is 1/4, 2
/ 4, 3/4.
【0093】上記波形データRD0〜15は、10ビッ
トのサンプル値と6ビットの差分データよりなるとき
は、サンプル値RD6〜15が、セレクタ525のA側
より入力されて、そのまま上記アダー527に与えられ
て、補間値が加減される。このとき、データ長信号D8
16は、「0」となるから、アンドゲート群524、5
22は開成され、アンドゲート526は閉成され、セレ
クタ525はA側が選択される。また波形データRD0
〜15が、8ビットのサンプル値2つよりなるときは、
波形データRD0〜7はセレクタ525のB側より入力
され、上記アダー527に与えられ、波形データRD8
〜15はセレクタ525のA側より入力され、上記アダ
ー527に与えられる。When the waveform data RD0 to RD15 consist of a 10-bit sample value and 6-bit difference data, the sample values RD6 to RD15 are input from the A side of the selector 525, and are given to the adder 527 as they are. Then, the interpolation value is adjusted. At this time, the data length signal D8
16 becomes “0”, so that the AND gate groups 524, 5
22 is opened, the AND gate 526 is closed, and the selector 525 selects the A side. Also, the waveform data RD0
When ~ 15 consists of two 8-bit sample values,
The waveform data RD0 to RD7 are input from the B side of the selector 525, and are provided to the adder 527.
To 15 are input from the A side of the selector 525 and supplied to the adder 527.
【0094】このとき各データRD0〜7、8〜15の
下位に2ビット「00」が付加されて10ビットデータ
とされる。また、このとき、データ長信号D816は
「1」となるから、アンドゲート群524、522は閉
成され、補間は行われない。さらに、このとき、アンド
ゲート526は開成されるから、周波数ナンバ累算値F
Aの小数部分の最上位ビットFA11の値(1、0)に
応じて、サンプル値(2n=RD0〜7、2n+1=R
D8〜15)が切り換えられる。At this time, two bits “00” are added to the lower part of each data RD0 to RD7 and RD8 to RD15 to form 10-bit data. At this time, since the data length signal D816 becomes "1", the AND gate groups 524 and 522 are closed and no interpolation is performed. Further, at this time, since the AND gate 526 is opened, the frequency number accumulated value F
In accordance with the value (1, 0) of the most significant bit FA11 of the decimal part of A, the sample value (2n = RD0 to 7, 2n + 1 = R
D8 to D15) are switched.
【0095】6.エンベロープ発生器60 図17はエンベロープ発生器60を示すものである。上
記アサインメントメモリ回路32からのエンベロープス
ピードデータES0〜5は、ラッチ641を介しエンベ
ロープスピードデータ伸長回路600で、図22に示す
ようなデータ伸長が行われる。この伸長されたエンベロ
ープスピードデータESは、イクスクルシブオアゲート
群643を介しアダー644で、それまでのエンベロー
プ累算値EA0〜15に累算され、セレクタ649、ラ
ッチ群650を介し、上記エンベロープ累算値EA0〜
15として、再びアダー644に与えられるとともに、
ラッチ651を介して、乗算回路70及びシフト回路8
0へ出力される。上記ラッチ群650は32個のラッチ
よりなり、16音色分の(A)(B)2つの楽音につい
ての計32個分のエンベロープ累算値EAが累算可能と
なっている。[0095] 6. Envelope Generator 60 FIG. 17 shows the envelope generator 60. The envelope speed data ES0 to ES5 from the assignment memory circuit 32 are expanded by the envelope speed data expansion circuit 600 via the latch 641 as shown in FIG. The expanded envelope speed data ES is accumulated by the adder 644 via the exclusive OR gate group 643 to the envelope accumulated values EA0 to EA15 up to that time, and is further accumulated via the selector 649 and the latch group 650. Value EA0
As 15 is given again to Adder 644,
The multiplication circuit 70 and the shift circuit 8 are connected via the latch 651.
Output to 0. The latch group 650 includes 32 latches, and a total of 32 envelope accumulated values EA for (A) and (B) two musical tones for 16 tones can be accumulated.
【0096】また、エンベロープの累算方向を示すエン
ベロープ加減信号EDUは、上記イクスクルシブオアゲ
ート群643に与えられ、累算方向が減算のときは、伸
長エンベロープスピードデータESEが、プラスマイナ
ス反転されてアダー644に与えられ、エンベロープ累
算値EAの減算が行われる。このアダー644からのエ
ンベロープ累算値EAの上位7ビットは、コンパレータ
645に与えられて、図24に示すエンベロープのアタ
ック、ディケイ、サスティン、リリース等の各フェーズ
のエンベロープレベルデータELと比較される。そして
エンベロープ累算値EAがエンベロープレベルデータE
Lを越えたとき、セレクタ646を介しノアゲート64
8を介して、フェーズ歩進信号ECSが上記セレクタ6
49に与えられる。The envelope addition / subtraction signal EDU indicating the accumulation direction of the envelope is supplied to the exclusive OR gate group 643. When the accumulation direction is subtraction, the expanded envelope speed data ESE is inverted plus or minus. This is supplied to the adder 644, and the subtraction of the envelope accumulated value EA is performed. The upper 7 bits of the envelope accumulated value EA from the adder 644 are supplied to a comparator 645, and compared with the envelope level data EL of each phase such as the attack, decay, sustain, and release of the envelope shown in FIG. The envelope accumulated value EA is the envelope level data E
L, the NOR gate 64 via the selector 646.
8, the phase step signal ECS is supplied to the selector 6
49.
【0097】これにより、上記エンベロープレベルデー
タELの下位に、エンベロープ加減信号EDUと全て同
じ値の9ビットデータが付加されたデータが、エンベロ
ープ累算値EAとして切換選択される。従って、次のエ
ンベロープフェーズでのエンベロープ累算のスタート地
点が正確なエンベロープレベルデータELに修正され
る。As a result, data obtained by adding 9-bit data having the same value as the envelope addition / subtraction signal EDU to the lower part of the envelope level data EL is switched and selected as the envelope accumulated value EA. Therefore, the start point of the envelope accumulation in the next envelope phase is corrected to the accurate envelope level data EL.
【0098】上記セレクタ646のセレクト信号には、
エンベロープの累算方向を示すエンベロープ加減信号E
DUが用いられ、エンベロープ累算が加算のときは、エ
ンベロープ累算値EAがエンベロープレベルデータEL
以上になるタイミングが検出され、エンベロープ累算が
減算のときは、エンベロープ累算値がエンベロープレベ
ルデータEL以下になるタイミングが検出される。また
上記アダー644のCout出力とエンベロープ加減信
号EDUとは、イクスクルシブオアゲート647に入力
されて、これも上記フェーズ歩進信号ECSとして用い
られており、エンベロープ累算値がオーバフローまたは
アンダーフローしたときにも、次のフェーズのエンベロ
ープ累算に移行する。The select signal of the selector 646 includes
Envelope addition / subtraction signal E indicating the accumulation direction of the envelope
When DU is used and the envelope accumulation is addition, the envelope accumulated value EA is the envelope level data EL.
When the above timing is detected and the envelope accumulation is subtraction, the timing at which the envelope accumulation value becomes equal to or less than the envelope level data EL is detected. Further, the Cout output of the adder 644 and the envelope addition / subtraction signal EDU are input to an exclusive OR gate 647, which is also used as the phase advance signal ECS. Then, the process shifts to envelope accumulation in the next phase.
【0099】このようなフェーズの移行は、フェーズ制
御回路630によって行われる。すなわち、フェーズ制
御回路630は、ラッチ642を介して与えられるキー
オン信号によってアタックフェーズにはいり、上記フェ
ーズ歩進信号ECSが与えられるたびに、ディケイ、サ
スティン、リリース等の次のフェーズに移行させてい
く。このフェーズ移行にあたっては、フェーズ制御回路
630よりキーアサイナ回路30のアサインメントメモ
リ回路32に対し、次のフェーズについてのエンベロー
プデータの読み出し指示が行われ、その時のフェーズを
そのまま保持するときは、ラッチ群652を通じて保た
れる。The phase shift is performed by the phase control circuit 630. That is, the phase control circuit 630 enters the attack phase by the key-on signal given via the latch 642, and shifts to the next phase such as decay, sustain, release, etc. every time the phase advance signal ECS is given. . In this phase shift, the phase control circuit 630 instructs the assignment memory circuit 32 of the key assigner circuit 30 to read the envelope data for the next phase. When the phase at that time is to be held as it is, the latch group 652 is used. Kept through.
【0100】上記エンベロープスピードデータ伸長回路
600における、圧縮エンベロープスピードデータES
の伸長は、シフト係数制御回路610からのシフト係数
データEP0〜3によってシフト制御がなされることに
より行われる。このシフト係数データEP0〜3は、エ
ンベロープスピードデータの上位4ビットES2〜5、
エンベロープ累算値の上位4ビットEA12〜15、エ
ンベロープ加減信号EDUに基づいて作成される。In the envelope speed data decompression circuit 600, the compressed envelope speed data ES
Is performed by performing shift control using shift coefficient data EP0 to EP3 from the shift coefficient control circuit 610. The shift coefficient data EP0 to EP3 are the upper four bits ES2 to ES5 of the envelope speed data,
The upper four bits EA12 to EA15 of the accumulated envelope value and the envelope addition / subtraction signal EDU are created.
【0101】また、アサインメントメモリ回路32から
のシンアウトデータTH0、1は、シンアウト回路62
0に与えられて、ラッチ群650におけるエンベロープ
累算値のラッチタイミングのシンアウト(間引き)が制
御される。このシンアウト回路620、フェーズ制御回
路630、ラッチ群652、ラッチ641、642、6
51には、システムクロック発生器10よりクロック信
号が与えられて、データ処理のチャンネル周期及びタイ
ミング周期がとられる。The thin-out data TH0, TH1 from the assignment memory circuit 32 are
When the signal is given to 0, the thinning-out (thinning-out) of the latch timing of the envelope accumulated value in the latch group 650 is controlled. This thin-out circuit 620, phase control circuit 630, latch group 652, latches 641, 642, 6
A clock signal is given to 51 from the system clock generator 10, and a channel cycle and a timing cycle of data processing are obtained.
【0102】6−1.エンベロープスピードデータ伸長
回路600 図18はエンベロープスピードデータ伸長回路600を
示すものである。セレクタ601のA側「0」端子とB
側「1」端子にエンベロープスピードデータES0が入
力され、A側「1」とB側「2」端子にエンベロープス
ピードデータES1が入力され、A側「2」端子とB側
「3」端子にエンベロープES2〜5のオアゲート60
5を介した出力が入力され、A側「3」端子とB側
「0」端子には「0」データが入力される。これによ
り、図22の伸長エンベロープスピードデータの中のE
S0、1とその上位1ビット分が作成されることにな
る。 6-1. Envelope speed data expansion
Circuit 600 FIG. 18 shows the envelope speed data decompression circuit 600. A side “0” terminal of selector 601 and B
Envelope speed data ES0 is input to the terminal “1” on the side, envelope speed data ES1 is input to the terminal “1” on the A side and terminal “2” on the B side, and the envelope is input to the terminal “2” on the A side and the terminal “3” on the B side. OR gate 60 of ES2-5
5 is input, and “0” data is input to the A-side “3” terminal and the B-side “0” terminal. Thereby, E in the expanded envelope speed data of FIG.
S0, 1 and its upper one bit are created.
【0103】このセレクタ601からの4ビットデータ
は、セレクタ602、603、604を介して上位また
は下位に2ビットの「00」、4ビットの「000
0」、8ビットの「00000000」が付加される。
このとき、データが各セレクタ601〜604のA側に
入力されれば、上位へデータシフトされず、そのまま出
力されていくが、B側に入力されれば、各々1ビット、
2ビット、4ビット、8ビットシフトされていくことに
なる。従って、各セレクタ601〜604のセレクト状
態を適当に選ぶことにより、エンベロープスピードデー
タESを図23に示すようにシフトしていくことがで
き、このセレクト状態の選択はシフト係数データEP0
〜3に基づいて行われる。The 4-bit data from the selector 601 is sent to the upper or lower 2 bits of “00” and 4 bits of “000” via the selectors 602, 603 and 604.
0 ”and 8-bit“ 0000000000 ”are added.
At this time, if the data is input to the A side of each of the selectors 601 to 604, the data is not shifted to the higher order and output as it is.
The data is shifted by 2, 4, and 8 bits. Therefore, by appropriately selecting the selection states of the selectors 601 to 604, the envelope speed data ES can be shifted as shown in FIG. 23. This selection state is selected by the shift coefficient data EP0.
3 is performed.
【0104】こうして、圧縮エンベロープスピードデー
タESがエンベロープ加減信号EDUを含めて7ビット
であるにもかかわらず、その伸長値は16ビットまで拡
大され、メモリ使用量を少なくすることができる。Thus, although the compressed envelope speed data ES is 7 bits including the envelope added / subtracted signal EDU, the decompressed value is expanded to 16 bits, and the memory usage can be reduced.
【0105】このようにして伸長したエンベロープスピ
ードデータESEを、さらに累算したエンベロープ累算
値EAは、(A)(B)2つの楽音成分につきそれぞれ
16チャンネル分、上記ラッチ群650にラッチされ
る。エンベロープ累算値EA0〜15は16ビットで、
そのうち上位4ビットEA12〜15がパワーデータ、
下位12ビットEA0〜11がマンティッサデータとな
る。The envelope accumulated value EA obtained by further accumulating the expanded envelope speed data ESE is latched by the latch group 650 for 16 channels for each of (A) and (B) two tone components. . The envelope accumulated values EA0 to EA15 are 16 bits,
The upper 4 bits EA12 to EA15 are power data,
The lower 12 bits EA0 to EA11 serve as mantissa data.
【0106】6−2.シフト係数制御回路610 図19はシフト係数制御回路610を示すものである。
圧縮エンベロープスピードデータESの上位4ビット
は、そのままアダー611のA側に入力され、アンドゲ
ート群612を介してシフト係数データEP0〜3とし
て出力され、図22に示すようなデータシフトすなわち
圧縮エンベロープスピードデータESの伸長が行われ
る。 6-2. Shift coefficient control circuit 610 FIG. 19 shows the shift coefficient control circuit 610.
The upper 4 bits of the compressed envelope speed data ES are directly input to the A side of the adder 611, output as shift coefficient data EP0 to EP3 via the AND gate group 612, and subjected to data shift as shown in FIG. The data ES is expanded.
【0107】図22は、アダー611のB側の入力がな
んら影響を与えないときのものであり、影響を与えると
きは上記データシフトが修正されることになる。なお、
ノアゲート613とオアゲート614により、エンベロ
ープスピードデータES2〜5が「0000」のとき、
シフト係数データEPは「0001」とされ、図22最
上段に示すように、エンベロープスピードデータが「0
000」のときでも、データシフト位置はエンベロープ
スピードデータが「0001」のときと同じ状態とされ
る。FIG. 22 shows a case in which the input on the B side of the adder 611 has no effect. When the input has an effect, the data shift is corrected. In addition,
By the NOR gate 613 and the OR gate 614, when the envelope speed data ES2 to ES5 is "0000",
The shift coefficient data EP is “0001”, and as shown in the uppermost part of FIG. 22, the envelope speed data is “0”.
000 ", the data shift position is in the same state as when the envelope speed data is" 0001 ".
【0108】上記エンベロープ累算値EAの累算方向を
示すエンベロープ加減信号EDUは、インバータ617
で反転され、アンドゲート616を介してナンドゲート
群615に与えられており、エンベロープ加減信号ED
Uが「1」のディケイ、リリース時等の減衰時には、ア
ダー611のB入力には「1111」が入力されること
になる。The envelope addition / subtraction signal EDU indicating the accumulation direction of the envelope accumulation value EA is supplied to the inverter 617.
, And is given to the NAND gate group 615 via the AND gate 616, and the envelope addition / subtraction signal ED
At the time of decay or release when U is “1”, “1111” is input to the B input of the adder 611.
【0109】そして、アダー611のCin端子には
「1」が入力されているので、結局アダー611のA側
の入力データは何の影響もうけず、そのまま出力され
る。また、エンベロープ加減信号EDUが「0」のアタ
ック時においては、エンベロープ累算値の最上位ビット
EA15が「0」のとき、やはりB側には「1111」
が入力され、A入力がそのまま出力されるが、最上位ビ
ットEA15が「1」のとき、エンベロープパワーデー
タEA12〜15が反転されてB側に減算値として与え
られる。Since "1" is input to the Cin terminal of the adder 611, the input data on the A side of the adder 611 is output without any influence. When the envelope addition / subtraction signal EDU is "0", when the most significant bit EA15 of the envelope accumulated value is "0", "1111" is also displayed on the B side.
Is input and the A input is output as it is, but when the most significant bit EA15 is "1", the envelope power data EA12 to EA15 are inverted and given to the B side as a subtraction value.
【0110】このため、エンベロープパワーデータEA
12〜15が「1000」を越え、「1001(9н
(нは16進値であることを示す記号)」「1010
(Aн)」「1011(Bн)」…となるに従って、シ
フト係数データEP0〜3は本来の値から−1、−2、
−3…と減っていくことになり、図23に示すように、
エンベロープスピードデータ伸長回路600におけるデ
ータシフトアップがそれだけ押さえられて、スピードデ
ータが1/2、1/4、1/8…の値となり、図25に
示すように、エンベロープ波形のアタック部分を逆イク
スポーネンシャルな形状にすることができる。For this reason, the envelope power data EA
12 to 15 exceed "1000" and "1001 (9
(Н is a symbol indicating that it is a hexadecimal value) "" 1010
(Aн), “1011 (Bн)”,..., The shift coefficient data EP0 to EP3 are −1, −2,
-3 ..., and as shown in FIG.
Since the data shift-up in the envelope speed data expansion circuit 600 is suppressed accordingly, the speed data becomes a value of 1/2, 1/4, 1/8,..., As shown in FIG. The shape can be ponential.
【0111】これにより、エンベロープ波形のアタック
特性を自然界に存在する音に、さらに近付けることがで
きる。この場合、エンベロープパワーデータEA12〜
15が「1000(8)」以下の時は、イクスポーネン
シャルにせずリニアな波形としているが、この段階まで
はイクスポーネンシャルであれリニアであれ、波形的に
は大差がなく、聴感上区別がつかないのであり、これに
より回路構成をより簡易にできる。As a result, the attack characteristic of the envelope waveform can be made closer to a sound that exists in the natural world. In this case, the envelope power data EA12-
When 15 is equal to or less than "1000 (8)", the waveform is not exponential but has a linear waveform. However, up to this stage, there is no significant difference in waveform, whether exponential or linear, and It is indistinguishable, so that the circuit configuration can be simplified.
【0112】なお、上記アンドゲート群612には、ア
ダー611のCout端子からの信号が開成信号として
与えられており、エンベロープスピードデータES2〜
5の値に対し、B入力の減算値が大きくなって、シフト
係数データEP0〜3がマイナスになるときには、Co
ut端子出力が「0」となって、アンドゲート群612
が閉じられる。The AND gate group 612 receives a signal from the Cout terminal of the adder 611 as an opening signal, and outputs the envelope speed data ES2 to ES2.
When the subtraction value of the B input becomes larger than the value of 5, and the shift coefficient data EP0 to EP3 becomes negative,
ut terminal output becomes “0”, and the AND gate group 612 is output.
Is closed.
【0113】6−3.フェーズ制御回路630 図20はフェーズ制御回路630を示すものである。図
28はこのフェーズ制御回路630のデータ変換内容を
示すものである。フェーズ値PH0、1は、フェーズ値
PB0、1が上記ラッチ群652を経たもので、このフ
ェーズ値は、図26に示すように「00(0)」でアタ
ックを表し、「01(1)」で第2アタックまたはディ
ケイ、「10(2)」でサスティンまたは第2ディケ
イ、「11(3)」がリリースまたは無音状態を表して
いる。 6-3. Phase control circuit 630 FIG. 20 shows the phase control circuit 630. FIG. 28 shows the data conversion contents of the phase control circuit 630. The phase values PH0 and PH1 are obtained by passing the phase values PB0 and PB1 through the latch group 652. The phase value is represented by "00 (0)" as shown in FIG. 26, and "01 (1)" Indicates a second attack or decay, “10 (2)” indicates a sustain or second decay, and “11 (3)” indicates a release or silence state.
【0114】図20において、フェーズ値PH0、1が
どのような値であれ、キーオン信号が「0」になれば、
ナンドゲートNA3、5の出力が「11」となり、ラッ
チを介して、フェーズ値PA0、1は、図28(1)上
段に示すように、「11(3)」とされる。これは、発
音中にキーオフとなれば、どのフェーズであれ強制的に
リリース状態とするためである。In FIG. 20, no matter what the phase values PH0 and PH1 are, if the key-on signal becomes "0",
The outputs of the NAND gates NA3 and NA5 become "11", and the phase values PA0 and PA1 are made "11 (3)" via the latches as shown in the upper part of FIG. This is because if the key is turned off during sound generation, the release state is forcibly set in any phase.
【0115】また、キーオン信号が「1」で、ナンドゲ
ートNA1の出力が「1」のとき、フェーズ値PH0、
1は、ナンドゲートNA2,4で反転後、ナンドゲート
NA3、5で再反転され、図28(1)下段に示すよう
に、そのままの値が維持される。これは、キーオン中で
あれば、その時のフェーズをそのまま維持すればよいか
らである。When the key-on signal is "1" and the output of the NAND gate NA1 is "1", the phase values PH0, PH0,
After 1 is inverted by the NAND gates NA2 and NA4, it is inverted again by the NAND gates NA3 and NA5, and the value is maintained as shown in the lower part of FIG. This is because during key-on, the phase at that time may be maintained as it is.
【0116】さらに、フェーズ値PH0、1が「11
(3)」のリリース状態でキーオン信号が「1」になる
と、ナンドゲートNA1の出力が「0」となるから、ナ
ンドゲートNA2、4の出力は「11」で、ナンドゲー
トNA3、5の出力は「00」となり、フェーズ値PA
0、1は、図28(1)最下段に示すように「00
(0)」となる。これは、リリース中または無音中にキ
ーオン状態となれば、次の新たな楽音の生成発音状態に
はいるため、フェーズを「00(0)」とするためであ
る。このとき、インバータIV2の出力が「1」となっ
て、オンイベント信号が出力される。なお、ラッチ63
1は、システムクロック発生器10からのクロック信号
により、ラッチ動作が行われる。Further, the phase values PH0 and PH1 are set to "11
When the key-on signal becomes "1" in the release state of "(3)", the output of the NAND gate NA1 becomes "0". Therefore, the outputs of the NAND gates NA2 and NA4 are "11", and the outputs of the NAND gates NA3 and NA5 are "00". And the phase value PA
0 and 1 are “00” as shown at the bottom of FIG.
(0) ". This is because the phase is set to “00 (0)” if the key-on state is established during the release or silence, because the state is in the state of generating and generating the next new musical tone. At this time, the output of the inverter IV2 becomes "1", and an on-event signal is output. Note that the latch 63
In 1, a latch operation is performed by a clock signal from the system clock generator 10.
【0117】また、フェーズ歩進信号ECSが「0」の
時は、イクスクルシブオアゲートEO1のノアゲートN
R1からのデータは「0」となって、フェーズ値PA0
がそのままPB0として出力され、アンドゲートAN1
が閉成されるので、フェーズ値PA1がそのままオアゲ
ートOR1を介してPB1として出力され、図28
(2)上段に示すように、そのままの値が維持される。
これは、フェーズ歩進の指示がなければ、そのときのフ
ェーズをそのまま維持すればよいからである。When the phase step signal ECS is "0", the NOR gate N of the exclusive OR gate EO1
The data from R1 becomes "0" and the phase value PA0
Is output as PB0 as it is, and AND gate AN1
Is closed, the phase value PA1 is output as it is as PB1 via the OR gate OR1, and FIG.
(2) As shown in the upper part, the value is maintained as it is.
This is because if there is no instruction to advance the phase, the phase at that time may be maintained as it is.
【0118】フェーズ歩進信号ECSが「1」のとき
は、フェーズ値PA0、1が「00」の場合、PB0、
1は「01」となって1つ先のフェーズに歩進され、フ
ェーズ値PA0、1が「01」の場合、PB0、1は
「10」となってやはり1つ先のフェーズに歩進され、
図28(2)中段に示すようになる。これは、フェーズ
歩進の指示があれば、そのときのフェーズを1つ進めれ
ばよいからである。When the phase step signal ECS is "1", when the phase values PA0, 1 are "00", PB0,
1 becomes “01” and is advanced to the next phase. When the phase values PA0 and PA1 are “01”, PB0 and 1 become “10” and are also advanced to the next phase. ,
The result is as shown in the middle part of FIG. This is because if there is an instruction to advance the phase, the phase at that time may be advanced by one.
【0119】しかし、フェーズ歩進信号ECSが「1」
で、フェーズ値PA0、1が「10」「11」のとき
は、フェーズは歩進されず、図28(2)下段に示すよ
うに、そのままの値が維持される。これは、フェーズ
「10(2)」から次のリリースのフェーズ「11
(3)」に移るのは、キーオン状態からキーオフ状態に
なったときのみであり、またリリースまたは無音のフェ
ーズ「11(3)」から新たなアタックのフェーズ「0
0(0)」に移るのは、キーオフ状態からキーオン状態
になったときのみであって、キーオン信号の変化のみで
フェーズを歩進すればよいからである。However, when the phase advance signal ECS is "1"
When the phase values PA0 and PA1 are "10" and "11", the phase is not advanced and the value is maintained as shown in the lower part of FIG. This is because phase “10 (2)” starts with phase “11” of the next release.
The transition to (3) ”is performed only when the key-on state changes to the key-off state, and a new attack phase“ 0 ”changes from the release or silence phase“ 11 (3) ”.
The reason why the phase shifts to "0 (0)" is only when the state changes from the key-off state to the key-on state, and the phase only needs to be advanced by changing the key-on signal.
【0120】図27は、このようなフェーズ値PH0、
1(PB0、1)のラッチ群652への記憶状態を示す
もので、(A)(B)2つの楽音成分につき16チャン
ネル分のフェーズ値がラッチされている。FIG. 27 shows such a phase value PH0,
This indicates the storage state of 1 (PB0, 1) in the latch group 652, in which (A) and (B) phase values for 16 channels are latched for two tone components.
【0121】6−4.シンアウト回路620 図21はシンアウト回路620を示すものである。カウ
ンタ621は、クロック信号CK7をベースとして、図
29に示すような、周期が2倍、4倍、8倍…のクロッ
ク信号Q0、1…5を出力するもので、このクロック信
号Q0、1…5は、オアゲート群622を介しナンドゲ
ート623を介して、ラッチ信号TOとして出力され
る。 6-4. Shin'auto circuit 620 FIG. 21 shows a Shin'auto circuit 620. The counter 621 outputs, based on the clock signal CK7, clock signals Q0, 1,... 5 having a cycle of 2, 4, 8,... As shown in FIG. 5 is output as the latch signal TO via the OR gate group 622 and the NAND gate 623.
【0122】シンアウトデータTH0、1は、アサイン
メントメモリ回路32からの周波数ナンバ累算値FAの
ラッチ間引き率を示す。このシンアウトデータTH0、
1は、アンドゲート625、オアゲート626を介し、
オアゲート群622に与えられ、またシンアウトデータ
TH1はそのまま上記オアゲート群622の一部に与え
られる。これらにより、「1」信号の与えられるオアゲ
ートの出力が常時「1」とされ、各クロック信号Q0〜
5が無効とされる。The thin-out data TH0, TH1 indicate the thinning rate of the latch of the frequency number accumulated value FA from the assignment memory circuit 32. This thin-out data TH0,
1 is via an AND gate 625 and an OR gate 626,
The thin-out data TH1 is supplied to a part of the OR gate group 622 as it is. As a result, the output of the OR gate to which the “1” signal is given is always “1”, and each of the clock signals Q0 to Q0
5 is invalidated.
【0123】シンアウトデータTH0、1が「00」の
とき、すべてのクロック信号Q0〜5が有効となるの
で、ラッチ信号TOは、すべてのクロック信号Q0〜5
が「1」の時のみ、「0」となる。これは、図29下段
に示すように、本来のチャンネルタイミングすなわち本
来のラッチタイミングと同じクロック信号CK7からみ
て64発に1回のタイミングである。When the thin-out data TH0 and TH1 are "00", all the clock signals Q0 to Q5 are valid, so that the latch signal TO is
Is "0" only when is "1". As shown in the lower part of FIG. 29, this is a timing once per 64 times when viewed from the same clock signal CK7 as the original channel timing, that is, the original latch timing.
【0124】また、シンアウトデータTH0、1が「0
1」のとき、クロック信号Q0〜3だけが有効となるの
で、ラッチ信号TOは、クロック信号Q0〜3が「1」
の時のみ、「0」となる。これは、図29下段に示すよ
うに、本来のチャンネルタイミングすなわち本来のラッ
チタイミングと同じクロック信号CK7からみて16発
に1回のタイミングである。Further, the thin-out data TH0 and TH1 are set to "0".
When "1", only the clock signals Q0 to Q3 are valid, so that the latch signal TO indicates that the clock signals Q0 to Q3 are "1".
"0" only at the time of. As shown in the lower part of FIG. 29, this is a timing of once every 16 shots when viewed from the same clock signal CK7 as the original channel timing, that is, the original latch timing.
【0125】さらに、シンアウトデータTH0、1が
「10」のとき、クロック信号Q0、1だけが有効とな
るので、ラッチ信号TOは、クロック信号Q0、1が
「1」の時のみ、「0」となる。これは、図29下段に
示すように、本来のチャンネルタイミングすなわち本来
のラッチタイミングと同じクロック信号CK7からみて
4発に1回のタイミングである。Further, when the thin-out data TH0 and TH1 are "10", only the clock signals Q0 and 1 are valid, so that the latch signal TO becomes "0" only when the clock signals Q0 and 1 are "1". ". As shown in the lower part of FIG. 29, this is a timing of one out of four times when viewed from the same clock signal CK7 as the original channel timing, that is, the original latch timing.
【0126】またさらに、シンアウトデータTH0、1
が「11」のとき、すべてのクロック信号Q0〜5が無
効となるので、ラッチ信号TOは、クロック信号Q0〜
5に関係なく、常時「0」となる。これは、図29下段
に示すように、本来のチャンネルタイミングすなわち本
来のラッチタイミングと同じクロック信号CK7とまっ
たく同じタイミングである。Further, the syn-out data TH0, TH1
Is "11", all the clock signals Q0 to Q5 are invalidated, so that the latch signal TO
Regardless of 5, it is always "0". This is exactly the same clock signal CK7 as the original channel timing, that is, the original latch timing, as shown in the lower part of FIG.
【0127】このようにして生成されたラッチ信号TO
は、デコーダ624の0〜31の32個のいずれかの出
力ラインより出力され、32個のラッチ群650のいず
れかにおいて、エンベロープ累算値EAのシンアウト
(間引き)ラッチが実行され、このシンアウトは各ラッ
チについて順番に行われる。上記デコーダ624の0〜
31の32個の出力ラインの選択は、ラッチ627を介
して与えられるクロック信号CK3〜7によって行われ
る。The latch signal TO generated in this manner is
Is output from any of the 32 output lines 0 to 31 of the decoder 624, and a thin-out (decimation) latch of the envelope accumulated value EA is executed in any of the 32 latch groups 650. This is performed sequentially for each latch. 0 to 0 of the decoder 624
Selection of 31 output lines of 31 is performed by clock signals CK3 to CK7 supplied via a latch 627.
【0128】こうして、図30に示すように、エンベロ
ープ累算値EAのラッチのシンアウト(間引き)によ
り、エンベロープ累算値EAのビット数を従来必要とさ
れた20ビットから16ビットと少なくしても、動作性
の良い楽音を発音できる。なお、ラッチ627は、シス
テムクロック発生器10からのクロック信号によってラ
ッチされタイミング同期がとられる。In this way, as shown in FIG. 30, the number of bits of the envelope accumulated value EA is reduced from 20 bits conventionally required to 16 bits due to the thinning out (decimation) of the latch of the envelope accumulated value EA. , Can produce musical sounds with good operability. Note that the latch 627 is latched by a clock signal from the system clock generator 10 to achieve timing synchronization.
【0129】7.乗算回路70 図31は乗算回路70を示すものである。波形データ伸
長補間回路50からの波形データのサンプル値や補間値
よりなる補間波形データIP0〜9が、乗算回路70に
与えられるとともに、エンベロープ発生器60からのエ
ンベロープ累算値EA0〜15のうち、下位3ビットと
上位4ビットを除いたマンティッサデータEA3〜11
も乗算回路70に与えられて、波形データとエンベロー
プとの乗算が行われる。[0129] 7. Multiplication circuit 70 FIG. 31 shows the multiplication circuit 70. Interpolated waveform data IP0 to 9 composed of sample values and interpolated values of the waveform data from the waveform data decompression interpolation circuit 50 are supplied to the multiplication circuit 70, and among the envelope accumulated values EA0 to EA15 from the envelope generator 60, Mantissa data EA3 to 11 excluding lower 3 bits and upper 4 bits
Is also supplied to the multiplication circuit 70, where the multiplication of the waveform data and the envelope is performed.
【0130】このとき、上記乗算されるエンベロープマ
ンティッサデータEA3〜11の上位に「1」データが
付加される。これは、エンベロープマンティッサデータ
EA3〜11の9ビットをMとすると、1+M/29 の
演算を行うことを示し、この値に補間波形データIPが
乗算されることになる。このようにして乗算された乗算
データMTは20ビットデータとして出力されるが、下
位4ビットを切り捨てて、16ビットデータMT0〜1
5としてシフト回路80へ出力される。At this time, "1" data is added to the higher order of the envelope mantisser data EA3 to EA3 to be multiplied. This is because, if the 9-bit envelope Man tipper support data EA3~11 is M, indicates that performs calculation of 1 + M / 2 9, so that the interpolated waveform data IP to this value is multiplied. The multiplied data MT multiplied in this way is output as 20-bit data.
5 is output to the shift circuit 80.
【0131】8.シフト回路80 図32はシフト回路80を示すものである。乗算データ
MT0〜15は、4段のセレクタ800、801、80
2、803を介して、エンベロープパワーデータEA1
2〜15の値に応じたシフトダウンが行われて、楽音デ
ータST0〜15として、系列累算回路90へ出力され
る。[0131] 8. Shift Circuit 80 FIG. 32 shows the shift circuit 80. Multiplied data MT0 to MT15 are provided by four-stage selectors 800, 801, 80
2, 803 via the envelope power data EA1
Shift down according to the values of 2 to 15 is performed and output to the sequence accumulation circuit 90 as musical sound data ST0 to ST15.
【0132】セレクタ800は、セレクト信号EA12
が「0」のとき1ビットシフトダウンし、「1」のとき
そのままシフトしないでデータを出力する。セレクタ8
01は、セレクト信号EA12が「0」のとき2ビット
シフトダウンし、「1」のときそのままシフトしないで
データを出力する。セレクタ802は、セレクト信号E
A12が「0」のとき4ビットシフトダウンし、「1」
のときそのままシフトしないでデータを出力する。セレ
クタ803は、セレクト信号EA12が「0」のとき8
ビットシフトダウンし、「1」のときそのままシフトし
ないでデータを出力する。The selector 800 outputs the select signal EA12
Is "0", the data is shifted down by one bit, and when "1", the data is output without being shifted. Selector 8
01 shifts down by 2 bits when the select signal EA12 is "0", and outputs data without shifting when it is "1". The selector 802 outputs the select signal E
When A12 is "0", shift down by 4 bits to "1"
In this case, data is output without shifting. When the select signal EA12 is “0”, the selector
Bit shift down, and when "1", data is output without shifting.
【0133】従って、エンベロープパワーデータEA1
2〜15の値が小さいほどシフトダウン量が大きくな
る。エンベロープパワーデータEA12〜15をPとす
ると、このシフト回路80では2P-16の演算を行ってい
ることになり、上記補間波形データをRとすると、この
シフト回路80の出力は2P-16×(1+M/29 )×R
となる。この場合かっこ内の1は省略してもよく、そう
すると乗算回路70のB側の「9」端子入力は「0」と
なる。Therefore, the envelope power data EA1
The smaller the value of 2 to 15, the larger the downshift amount. If the envelope power data EA12 to EA15 is P, this shift circuit 80 performs 2P -16 calculation. If the interpolation waveform data is R, the output of this shift circuit 80 is 2P-16. × (1 + M / 2 9 ) × R
Becomes In this case, 1 in parentheses may be omitted, and the input of the “9” terminal on the B side of the multiplication circuit 70 becomes “0”.
【0134】このデータシフトダウンにより、エンベロ
ープレベルが低いほどシフトダウンの割合が大きいの
で、エンベロープ波形は、図25(2)及び図33
(2)に示すように、ディケイ、リリース等の減衰部分
がイクスポーネンシャルな特性となり、自然界に存在す
る音にさらに近付けることができる。一方、アタック等
の加増部分は、図25(1)に示すように、予め逆イク
スポーネンシャルな特性となっているため、シフト回路
80でのシフトダウンにより、リニアな特性となる。ア
タック部分を予め逆イクスポーネンシャルな特性とする
制御は、上述したシフト係数制御回路610及びエンベ
ロープスピードデータ伸長回路600で行われる。Due to this data shift-down, the lower the envelope level is, the larger the ratio of the shift-down is. Therefore, the envelope waveform is shown in FIG. 25 (2) and FIG.
As shown in (2), the attenuation portion such as decay and release has exponential characteristics, and can be made closer to sounds existing in the natural world. On the other hand, as shown in FIG. 25A, an increased portion such as an attack has reverse exponential characteristics in advance, and thus has linear characteristics due to downshifting in the shift circuit 80. The control to make the attack portion have the inverse exponential characteristic in advance is performed by the shift coefficient control circuit 610 and the envelope speed data decompression circuit 600 described above.
【0135】この場合、シフト回路80またはシフト係
数制御回路610でのシフト内容を任意に選べば、アタ
ックの波形形状を図33(1)に示すような任意の逆イ
クスポーネンシャルな特性としたり、ディケイ、リリー
スの波形形状を任意のイクスポーネンシャルな特性とし
たりすることができる。In this case, if the contents of the shift in the shift circuit 80 or the shift coefficient control circuit 610 are arbitrarily selected, the waveform of the attack can have an arbitrary inverse exponential characteristic as shown in FIG. , Decay, and release waveforms can have arbitrary exponential characteristics.
【0136】9.系列累算回路90 図34は系列累算回路90を示すものである。上記シフ
ト回路80からの楽音データST0〜15は、エクスク
ルシブオアゲート群900の各ゲートを介して、アダー
901のA入力側に入力されている。波形折返し信号F
DUは上記エクスクルシブオアゲート群900の全ゲー
トに与えられ、波形折返し信号FDUが「1」の時、楽
音データST0〜15の値が反転される。[0136] 9. Sequence accumulation circuit 90 FIG. 34 shows a sequence accumulation circuit 90. The musical sound data ST0 to ST15 from the shift circuit 80 are input to the A input side of the adder 901 through the gates of the exclusive OR gate group 900. Waveform return signal F
DU is applied to all the gates of the exclusive OR gate group 900. When the waveform folding signal FDU is "1", the values of the musical tone data ST0 to ST15 are inverted.
【0137】ROM20に半分の波長の波形データを記
憶しておき、この波形データを通常に読み出すとき波形
折返し信号FDUが「0」となり、波形データをリバー
スして読み出すとき波形折返し信号FDUが「1」とな
る。このリバース読み出しのとき、波形データの値も反
転させ、1波長の波形データを生成する。上記波形折返
し信号FDUは、アダー901のCin端子にも入力さ
れ、上記楽音データST反転時に+1の補正が行われ
る。The waveform data of the half wavelength is stored in the ROM 20, and when this waveform data is read out normally, the waveform return signal FDU becomes "0". When the waveform data is reversed and read out, the waveform return signal FDU becomes "1". ". At the time of the reverse reading, the value of the waveform data is also inverted to generate waveform data of one wavelength. The waveform folding signal FDU is also input to the Cin terminal of the adder 901 and +1 is corrected when the musical sound data ST is inverted.
【0138】上記エクスクルシブオアゲート群900を
経た楽音データGAは、アダー901で、それまでの各
系列ごとの累算楽音データGC0〜15が加算され、セ
レクタ906を介し、ラッチバッファ910で一時記憶
された後、上記累算楽音データGC0〜15として、上
記アダー901に与えられる。これにより、順次時分割
に送られてくる楽音データGAが累算される。The musical sound data GA that has passed through the exclusive OR gate group 900 is added to the cumulative musical sound data GC0 to GC15 for each series by the adder 901 and temporarily stored in the latch buffer 910 via the selector 906. After that, it is given to the adder 901 as the accumulated musical sound data GC0 to GC15. Thus, the tone data GA sequentially sent in a time-division manner is accumulated.
【0139】上記セレクタ906のB入力側には、上記
アダー901からの累算楽音データGBの最上位ビット
GB15が15ビット分入力されている。そして、上記
楽音データGAの最上位ビットGA15が、そのまま上
記セレクタ906のB入力の最上位ビットとして入力さ
れる。To the B input side of the selector 906, 15 bits of the most significant bit GB15 of the accumulated musical sound data GB from the adder 901 are input. Then, the most significant bit GA15 of the tone data GA is directly input as the most significant bit of the B input of the selector 906.
【0140】ゲート群902〜905では、オーバーフ
ローまたはアンダーフローの判別が行われる。これによ
り、セレクタ906のセレクトデータが切り換えられ、
オーバーフローのときには、プラスの最大値「011…
1」がセレクトされ、またアンダーフローのときには、
マイナスの最大値「100…0」がセレクトされ、それ
ぞれにおいて最大振幅に維持される。In the gate groups 902 to 905, an overflow or an underflow is determined. As a result, the select data of the selector 906 is switched,
In the case of overflow, the positive maximum value "011 ...
When "1" is selected and underflow occurs,
The negative maximum values “100... 0” are selected and maintained at the maximum amplitude in each case.
【0141】このオーバーフローまたはアンダーフロー
は次の2つの条件から判別される。1つは、エクスクル
シブオアゲート902における、累算前の楽音データG
Aと累算楽音データGCとの符号が一致していることで
ある。他の1つは、エクスクルシブオアゲート904に
おける、累算前の楽音データGAと累算後の累算楽音デ
ータGBとの符号が不一致であることである。This overflow or underflow is determined from the following two conditions. One is that the tone data G before accumulation in the exclusive OR gate 902 is stored.
This means that the signs of A and the accumulated musical sound data GC match. The other is that the sign of the musical tone data GA before accumulation and the accumulated musical tone data GB after accumulation in the exclusive OR gate 904 do not match.
【0142】上記楽音データGAの最上位ビットGA1
5と累算楽音データGCの最上位GC15とは、エクス
クルシブオアゲート902およびインバータ903を介
してアンドゲート905に与えられる。これにより、累
算前の楽音データGAと累算楽音データGCとの符号の
一致の判別が行われる。両データGA15とGC15と
がともにプラスまたはともにマイナスであれば、「1」
の一致判別信号が上記インバータ903からアンドゲー
ト905に与えられる。The most significant bit GA1 of the tone data GA
5 and the most significant GC15 of the accumulated musical sound data GC are supplied to an AND gate 905 via an exclusive OR gate 902 and an inverter 903. As a result, it is determined whether the signs of the musical tone data GA before accumulation and the accumulated musical tone data GC match. If both data GA15 and GC15 are both positive or both negative, "1"
Is provided from the inverter 903 to the AND gate 905.
【0143】上記累算前の楽音データGAの最上位ビッ
トGA15と累算後の累算楽音データGBの最上位GB
15とは、エクスクルシブオアゲート904を介してア
ンドゲート905に与えられる。これにより、累算前の
楽音データGAと累算後の累算楽音データGBとの符号
の一致の判別が行われる。両データGA15とGB15
とがプラスまたはマイナスにおいて一致しなければ、
「1」の不一致判別信号が上記エクスクルシブオアゲー
ト904からアンドゲート905に与えられる。The most significant bit GA15 of the tone data GA before accumulation and the most significant GB of the accumulated tone data GB after accumulation.
15 is supplied to an AND gate 905 via an exclusive OR gate 904. As a result, it is determined whether the signs of the musical tone data GA before accumulation and the accumulated musical tone data GB after accumulation match. Both data GA15 and GB15
If does not match in plus or minus,
A mismatch discrimination signal of “1” is applied from the exclusive OR gate 904 to the AND gate 905.
【0144】なお、累算前のデータGA15と累算後の
データGB15とが不一致であっても、累算前の両デー
タGA15とGC15とが不一致であれば、オーバーフ
ローまたはアンダーフローではない。上記アンドゲート
905の出力はセレクト切換信号として上記セレクタ9
06に与えられる。Even if the data GA15 before accumulation and the data GB15 after accumulation do not match, if the data GA15 before accumulation and GC15 do not match, it is not an overflow or an underflow. The output of the AND gate 905 is used as a select switching signal by the selector 9.
06.
【0145】こうして、楽音データの累算値GBがオー
バーフローまたはアンダーフローしても楽音信号の振幅
レベルを最大振幅のまま維持でき、特別の判定ビットを
設けなくても済み、データ処理量を少なくすることがで
きる。In this way, even if the cumulative value GB of the musical tone data overflows or underflows, the amplitude level of the musical tone signal can be maintained at the maximum amplitude, no special judgment bit needs to be provided, and the data processing amount is reduced. be able to.
【0146】セレクタ906からの累算楽音データGC
0〜15は、ラッチバッファ910に入力される。この
ラッチバッファ910は、8個のラッチとセレクタとほ
ぼ同じ機能を持つ8個の3ステートバッファとよりな
り、この8個のラッチのうち各々「a群」「b群」と名
付けられる4個ずつのラッチで、楽音データの累算を行
うものと、この累算値を出力するものとが交互に切り換
えられる。ラッチバッファ910が4個ずつあるのは、
D−A変換器100、サウンドシステム110に形成さ
れる楽音生成系が4系統あるためであり、この系統ごと
に楽音データが累算出力されていく。The accumulated musical sound data GC from the selector 906
0 to 15 are input to the latch buffer 910. The latch buffer 910 is composed of eight latches and eight three-state buffers having almost the same function as the selector. Of the eight latches, four latches named “group a” and “group b” are used, respectively. Are alternately switched between those for accumulating musical tone data and those for outputting this accumulated value. There are four latch buffers 910 each.
This is because there are four tone generation systems formed in the DA converter 100 and the sound system 110, and the tone data is cumulatively calculated for each of these systems.
【0147】この系統は、例えば第1系統はチャンネル
CH0〜3の(A)(B)の楽音、第2系統はチャンネ
ルCH4〜7の(A)(B)の楽音、第3系統はチャン
ネルCH8〜11の(A)(B)の楽音、第4系統はチ
ャンネルCH12〜15の(A)(B)の楽音が割り当
てられ、各チャンネルの楽音データが各系列ごとに累算
される。The first system is, for example, the (A) and (B) musical tones of channels CH0 to CH3, the second system is the (A) and (B) musical tones of channels CH4 to CH7, and the third system is channel CH8. To the (A) and (B) musical tones of 1111, the musical tones of (A) and (B) of the channels CH12 to 15 are assigned to the fourth system, and the musical sound data of each channel is accumulated for each stream.
【0148】この系列を決めるのが、上述したアサイン
メントメモリ回路32からの系列データGR0、1であ
り、デコーダ907は、この系列データGR0、1とク
ロック信号CK8とをクロック信号CK3及びクロック
信号CK2の反転信号(図35(3))のタイミングで
取り込んでデコードし、ラッチバッファ910の中の累
算値を書き込むラッチを順次選択する。これは、図35
の例であれば、(4)に示すように、各チャンネルCH
0、1…15についての(A)(B)の各タイミングで
行われ、シフト回路80からの(A)(B)2つの楽音
につき、4チャンネル分ずつ、各系列ごとに累算合成さ
れて出力されていくことになる。The sequence is determined by the sequence data GR0,1 from the above-mentioned assignment memory circuit 32, and the decoder 907 converts the sequence data GR0,1 and the clock signal CK8 into the clock signal CK3 and the clock signal CK2. 35 (3)), the latch is fetched and decoded, and the latch in the latch buffer 910 to which the accumulated value is to be written is sequentially selected. This is shown in FIG.
In the example of (4), as shown in (4), each channel CH
15 (A) and (B) for each of the timings 0, 1,..., And for each of the two musical tones (A) and (B) from the shift circuit 80, four channels are accumulated and synthesized for each sequence. It will be output.
【0149】またこの系列データGR0、1は、セレク
タ908を介して、デコーダ909に与えられ、デコー
ダ909は、この系列データGR0、1とクロック信号
CK8とをクロック信号CK3及びクロック信号CK2
またはクロック信号CK2の反転信号のタイミングで取
り込んでデコードし、3ステートバッファをコントロー
ルして、ラッチバッファ910の中の累算途中のデータ
を読み出すラッチを順次選択する。これは、図35の例
であれば、(5)に示すように、系列GR0b、GR1
b、GR2b…で示すタイミングである。The series data GR0 and GR1 are supplied to a decoder 909 via a selector 908. The decoder 909 converts the series data GR0 and GR1 and the clock signal CK8 into a clock signal CK3 and a clock signal CK2.
Alternatively, the latch is read in at the timing of the inverted signal of the clock signal CK2, decoded, and the three-state buffer is controlled to sequentially select the latches in the latch buffer 910 from which the data being accumulated is read. This is, in the example of FIG. 35, as shown in (5), the sequences GR0b, GR1
b, GR2b...
【0150】これに対し、クロック信号群もセレクタ9
08を介して、デコーダ909に与えられ、デコーダ9
09は、このクロック信号群とクロック信号CK8とを
クロック信号CK2のタイミングで取り込んでデコード
し、3ステートバッファをコントロールして、ラッチバ
ッファ910の中の累算値を読み出すラッチを順次選択
する。これは、図35の例であれば、(5)に示すよう
に、各チャンネルCH0、1…15についての系列GR
0a、GR1a、GR2a…で示すタイミングである。
これにより、図35(4)(5)に示す、ラッチへの書
き込みタイミングと、ラッチからの読み出しタイミング
とが一致するラッチで累算が行われ、これ以外のラッチ
で累算楽音データの読み出しが行われる。On the other hand, the clock signal group is also connected to the selector 9.
08 to the decoder 909,
09 fetches and decodes the clock signal group and the clock signal CK8 at the timing of the clock signal CK2, controls the three-state buffer, and sequentially selects a latch from the latch buffer 910 from which the accumulated value is read. In the example of FIG. 35, this is the sequence GR for each channel CH0, 1,.
0a, GR1a, GR2a...
As a result, the accumulation is performed in the latch whose write timing to the latch coincides with the read timing from the latch, as shown in FIGS. 35 (4) and (5). Done.
【0151】ラッチバッファ910からの楽音データG
Cは、ラッチ911を介してD−A変換器100に出力
される。このラッチ911へのラッチは、上記図35
(5)の系列GR0a、GR1a、GR2a…で示すタ
イミングと同じタイミングで行われ、図35(7)に示
すように、各系列ごとの楽音データがa群のラッチ、b
群のラッチで交互に出力されていく。なお、図35
(6)に示すようなワンショットが、システムクロック
発生器10よりラッチバッファ910に与えられ、a群
のラッチとb群のラッチとが交互にリセットされる。ま
た、ラッチ911はキーアサイナ回路30からのD−A
ゲート信号によってリセットされる。Music data G from latch buffer 910
C is output to the DA converter 100 via the latch 911. The latch to the latch 911 is performed as shown in FIG.
(5) are performed at the same timings as indicated by the series GR0a, GR1a, GR2a,..., And as shown in FIG.
The data is output alternately by the group latches. Note that FIG.
One shot as shown in (6) is given from the system clock generator 10 to the latch buffer 910, and the latches of group a and the latches of group b are alternately reset. The latch 911 is connected to the DA from the key assigner circuit 30.
Reset by gate signal.
【0152】本発明は上記実施例に限定されず、本発明
の趣旨を逸脱しない範囲で種々変更可能である。例え
ば、波形のスタート又はエンドを制御する周期は、全チ
ャンネル分の周期と異なる周期であっても良く、シンア
ウト(エンベロープ累算値EAの取り込みラッチの間引
き)のタイミングは、上述の4回に1回、16回に1
回、64回に1回以外のタイミングでもよい。The present invention is not limited to the above embodiment, but can be variously modified without departing from the spirit of the present invention. For example, the cycle for controlling the start or end of the waveform may be different from the cycle for all channels, and the timing of thin-out (thinning out of the latch for taking in the envelope accumulated value EA) is one in four times as described above. Times, 1 in 16 times
And timings other than once every 64 times.
【0153】[0153]
【発明の効果】以上詳述したように、本発明は、波形の
変化のスピードを決定するスピードデータをシフトアッ
プし、このアップシフト量を、生成された波形のレベル
値が大きいほど、小さくなるように制御した。従って、
波形の増大する部分の波形形状を、逆イクスポーネンシ
ャルな特性にして、自然界の音により近付けることがで
きる等の効果を奏する。また本発明は、演算された波形
の演算結果をシフトダウンし、このダウンシフト量を、
波形の演算結果が小さいほど、大きくなるように制御し
た。従って、波形の減小する部分の波形形状を、イクス
ポーネンシャルな特性にして、自然界の音により近付け
ることができる等の効果を奏する。。As described above, according to the present invention, the speed data for determining the speed of the waveform change is shifted up, and the upshift amount decreases as the level value of the generated waveform increases. Was controlled as follows. Therefore,
The waveform shape of the portion where the waveform is increased is made to have an inverse exponential characteristic, and it is possible to bring the sound closer to the sound of the natural world. Further, the present invention shifts down the calculation result of the calculated waveform, and
Control was performed so that the smaller the calculation result of the waveform, the larger the result. Therefore, there is an effect that the waveform shape of the portion where the waveform is reduced can be made an exponential characteristic so that the waveform can be made closer to the sound of the natural world. .
【図1】本発明の全体回路図である。FIG. 1 is an overall circuit diagram of the present invention.
【図2】図1及び図4の各部におけるタイムチャート図
である。FIG. 2 is a time chart of each part in FIGS. 1 and 4;
【図3】ROM20の記憶内容を示す図である。FIG. 3 is a diagram showing stored contents of a ROM 20.
【図4】キーアサイナ回路30の回路図である。FIG. 4 is a circuit diagram of the key assigner circuit 30.
【図5】CPU300のアドレスデータとROM20の
アドレスデータの対応関係を示す図である。FIG. 5 is a diagram showing a correspondence relationship between address data of a CPU 300 and address data of a ROM 20.
【図6】アサインメントメモリ320の記憶内容を示す
図である。FIG. 6 is a diagram showing the contents stored in an assignment memory 320.
【図7】周波数ナンバ累算器40の回路図である。FIG. 7 is a circuit diagram of the frequency number accumulator 40.
【図8】波形データの読み出し状態を示す図である。FIG. 8 is a diagram showing a read state of waveform data.
【図9】周波数ナンバ累算値FA内容を示す図である。FIG. 9 is a diagram showing the contents of a frequency number accumulated value FA.
【図10】波形データ伸長補間回路50の回路図であ
る。FIG. 10 is a circuit diagram of a waveform data decompression interpolation circuit 50;
【図11】波形データの半波長分のサンプル値と読み出
しタイミングとの対応関係を示す図である。FIG. 11 is a diagram showing the correspondence between sample values for half a wavelength of waveform data and readout timings.
【図12】波形データのサンプル値と補間値を示す図で
ある。FIG. 12 is a diagram showing sample values and interpolation values of waveform data.
【図13】波形データRDの内容を示す図である。FIG. 13 is a diagram showing the contents of waveform data RD.
【図14】波形データの差分データRD0〜5を伸長し
た内容を示す図である。FIG. 14 is a diagram showing expanded contents of difference data RD0 to RD5 of waveform data.
【図15】差分マンティッサデータRDから変換差分マ
ンティッサデータRGへの変換内容を示す図である。FIG. 15 is a diagram showing the content of conversion from difference mantissa data RD to converted difference mantissa data RG.
【図16】周波数ナンバ累算値の小数部分の上位ビット
FA9〜11と差分データの掛率データIM0〜2と波
形データのサンプル値の補間内容との関係を示す図であ
る。FIG. 16 is a diagram showing the relationship among the upper bits FA9 to FA11 of the decimal part of the frequency number accumulated value, the multiplication data IM0 to IM2 of the difference data, and the interpolation contents of the sample values of the waveform data.
【図17】エンベロープ発生器60の回路図である。FIG. 17 is a circuit diagram of the envelope generator 60.
【図18】エンベロープスピードデータ伸長回路600
の回路図である。FIG. 18 shows an envelope speed data decompression circuit 600.
FIG.
【図19】シフト係数制御回路610の回路図である。FIG. 19 is a circuit diagram of a shift coefficient control circuit 610.
【図20】フェーズ制御回路630の回路図である。FIG. 20 is a circuit diagram of a phase control circuit 630.
【図21】シンアウト回路620の回路図である。FIG. 21 is a circuit diagram of a thin-out circuit 620.
【図22】伸長したエンベロープスピードデータESE
の内容を示す図である。FIG. 22: Expanded envelope speed data ESE
It is a figure which shows the content of.
【図23】アタック時におけるエンベロープ累算値EA
のエンベロープパワーデータEA12〜15と伸長エン
ベロープスピードデータESE(SS)との関係を示す
図である。FIG. 23 shows an envelope accumulated value EA during an attack.
FIG. 7 is a diagram showing a relationship between envelope power data EA12 to 15 and expanded envelope speed data ESE (SS).
【図24】エンベロープ累算値EAの内容を示す図であ
る。FIG. 24 is a diagram showing the contents of an envelope accumulated value EA.
【図25】エンベロープ累算値EAに応じたエンベロー
プ波形を示す図である。FIG. 25 is a diagram illustrating an envelope waveform according to an envelope accumulated value EA.
【図26】エンベロープフェーズを示す図である。FIG. 26 is a diagram showing an envelope phase.
【図27】ラッチ群652に記憶されるフェーズ値PH
を示す図である。FIG. 27 shows a phase value PH stored in a latch group 652.
FIG.
【図28】フェーズ制御回路630におけるフェーズ値
の変換内容を示す図である。FIG. 28 is a diagram showing conversion contents of a phase value in a phase control circuit 630.
【図29】シンアウト回路620の各部のタイムチャー
ト図である。FIG. 29 is a time chart of each part of the thin-out circuit 620.
【図30】シンアウト(ラッチ群650へのラッチの間
引き)によるエンベロープ累算値EAの累算タイミング
を示す図である。FIG. 30 is a diagram showing the accumulation timing of the envelope accumulated value EA due to thin out (thinning out of the latches into the latch group 650).
【図31】乗算回路70の回路図である。31 is a circuit diagram of the multiplication circuit 70. FIG.
【図32】シフト回路80の回路図である。32 is a circuit diagram of the shift circuit 80. FIG.
【図33】シフト回路80によるエンベロープ波形の修
正内容を示す図である。FIG. 33 is a diagram showing correction contents of an envelope waveform by a shift circuit 80;
【図34】系列累算回路90の回路図である。34 is a circuit diagram of a sequence accumulation circuit 90. FIG.
【図35】系列累算回路90の各部のタイムチャート図
である。35 is a time chart of each part of the sequence accumulation circuit 90. FIG.
20…ROM、30…キーアサイナ回路、31…ROM
アドレス制御回路、32…アサインメントメモリ回路、
40…周波数ナンバ累算器、50…波形データ伸長補間
回路、60…エンベロープ発生器、70…乗算回路、8
0…シフト回路、90…系列累算回路、300…CP
U、320…アサインメントメモリ、600…エンベロ
ープスピードデータ伸長回路、610…シフト係数制御
回路、620…シンアウト回路、630…フェーズ制御
回路。20 ROM, 30 key assigner circuit, 31 ROM
Address control circuit, 32 ... assignment memory circuit,
40: frequency number accumulator, 50: waveform data decompression interpolation circuit, 60: envelope generator, 70: multiplication circuit, 8
0: shift circuit, 90: series accumulation circuit, 300: CP
U, 320: assignment memory, 600: envelope speed data expansion circuit, 610: shift coefficient control circuit, 620: thin out circuit, 630: phase control circuit.
Claims (5)
するスピードデータを発生するスピードデータ発生手段
と、 このスピードデータ発生手段で発生されたスピードデー
タを繰り返し演算することにより、エンベロープ波形を
生成するエンベロープ波形生成手段と、 上記スピードデータ発生手段で発生されるスピードデー
タをシフトアップするシフトアップ手段と、 上記エンベロープ波形のレベル値が増加するときに、こ
のシフトアップ手段のアップシフト量を、上記エンベロ
ープ波形生成手段で生成されたエンベロープ波形のレベ
ル値が大きいほど、小さくなるように制御し、このエン
ベロープ波形のレベル値が減少するときには作動しない
シフト量制御手段とを備えたことを特徴とするエンベロ
ープ波形生成方式。1. A speed data generating means for generating speed data for determining a speed of change of an envelope waveform, and an envelope waveform for generating an envelope waveform by repeatedly calculating the speed data generated by the speed data generating means. Generating means; shift-up means for shifting up the speed data generated by the speed data generating means; and when the level value of the envelope waveform increases, the up-shift amount of the shift-up means is used to generate the envelope waveform. And a shift amount control unit that does not operate when the level value of the envelope waveform is reduced, the control being performed so that the level value decreases as the level value of the envelope waveform decreases. .
開始指示手段と、 この開始指示手段によるエンベロープ波形の生成の開始
指示以降、エンベロープ波形のレベル値を大きくなるよ
うに演算する増大演算手段と、 この開始指示手段によるエンベロープ波形の生成の開始
指示以降、エンベロープ波形のレベル値を小さくなるよ
うに演算する減小演算手段と、 これら増大演算手段及び減小演算手段で演算されたエン
ベロープ波形の演算結果をシフトダウンするシフトダウ
ン手段と、 このシフトダウン手段のダウンシフト量を、上記エンベ
ロープ波形の演算結果が小さいほど、大きくなるように
制御するシフト量制御手段とを備えたことを特徴とする
エンベロープ波形生成方式。2. An initiating means for instructing the start of generation of an envelope waveform, and an increasing calculating means for performing an operation to increase the level value of the envelope waveform after the instruction to start the generation of the envelope waveform by the instructing means. Subsequent to the start instruction by the start instruction means to start the generation of the envelope waveform, a reduction operation means for calculating the level value of the envelope waveform to be small, and a calculation result of the envelope waveform calculated by the increase operation means and the decrease operation means And a shift amount control means for controlling the downshift amount of the downshift means to increase as the calculation result of the envelope waveform decreases. Generation method.
ンベロープ波形生成手段は、エンベロープ波形のアタッ
クフェーズに応じた波形、またはエンベロープ波形のイ
クスポーネンシャルな波形を生成することを特徴とする
請求項1または2記載の電子楽器のエンベロープ波形生
成方式。3. The method according to claim 1, wherein the increase calculation means, the decrease calculation means, or the envelope waveform generation means generates a waveform corresponding to an attack phase of the envelope waveform or an exponential waveform of the envelope waveform. Item 3. An electronic musical instrument envelope waveform generation method according to item 1 or 2.
ベロープ波形データ、減小演算手段によって演算された
エンベロープ波形データ、またはエンベロープ波形生成
手段によって生成されたエンベロープ波形データに対
し、楽音波形データを演算して合成することを特徴とす
る請求項1、2または3記載のエンベロープ波形生成方
式。4. The tone waveform data is calculated from the envelope waveform data calculated by the increase calculation means, the envelope waveform data calculated by the reduction calculation means, or the envelope waveform data generated by the envelope waveform generation means. 4. An envelope waveform generation method according to claim 1, wherein the envelope waveforms are synthesized by combining.
は上記エンベロープ波形生成手段は、複数のエンベロー
プ波形につき、時分割に演算または生成を行うものであ
ることを特徴とする請求項1、2、3または4記載のエ
ンベロープ波形生成方式。5. The method according to claim 1, wherein said increase calculation means, said decrease calculation means, or said envelope waveform generation means performs calculation or generation of a plurality of envelope waveforms in a time division manner. 5. An envelope waveform generation method according to claim 3 or 4.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3250825A JP2705042B2 (en) | 1991-09-30 | 1991-09-30 | Envelope waveform generation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3250825A JP2705042B2 (en) | 1991-09-30 | 1991-09-30 | Envelope waveform generation method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63281102A Division JPH02126294A (en) | 1988-11-07 | 1988-11-07 | Waveform generation system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04362996A JPH04362996A (en) | 1992-12-15 |
JP2705042B2 true JP2705042B2 (en) | 1998-01-26 |
Family
ID=17213594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3250825A Expired - Lifetime JP2705042B2 (en) | 1991-09-30 | 1991-09-30 | Envelope waveform generation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2705042B2 (en) |
-
1991
- 1991-09-30 JP JP3250825A patent/JP2705042B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH04362996A (en) | 1992-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5248842A (en) | Device for generating a waveform of a musical tone | |
US4681007A (en) | Sound generator for electronic musical instrument | |
US4733591A (en) | Electronic musical instrument | |
JP2705042B2 (en) | Envelope waveform generation method | |
JP2997470B2 (en) | Music information processing device | |
JP2798913B2 (en) | Musical tone waveform generating apparatus and musical tone waveform generating method | |
JP2565555B2 (en) | Sequence accumulator for electronic musical instruments | |
US5665931A (en) | Apparatus for and method of generating musical tones | |
US5245126A (en) | Waveform generation system with reduced memory requirement, for use in an electronic musical instrument | |
JP3067630B2 (en) | Music sound information processing apparatus and music sound information processing method | |
JPH0769700B2 (en) | Waveform generation method | |
JP3176901B2 (en) | Music sound information processing apparatus and music sound information processing method | |
JPH02203394A (en) | Musical sound frequency modulating device for electronic musical instrument | |
JPS6330638B2 (en) | ||
JP3016470B2 (en) | Sound source device | |
JP3062569B2 (en) | Electronic musical instrument frequency modulation device | |
JP3344988B2 (en) | Music sound generation apparatus and music sound generation method | |
JPS6118559Y2 (en) | ||
JP3104873B2 (en) | Sound source device | |
JPH02179699A (en) | Musical sound waveform generating device | |
JPS6217239B2 (en) | ||
JP2910632B2 (en) | Waveform memory sound generator | |
JP3347284B2 (en) | Tone frequency modulation device and tone frequency modulation method | |
JP3567766B2 (en) | Pitch shift playback device using compressed waveform samples | |
JP2000163071A (en) | Reproducing device having long stream reproducing function |