JPH0738955Y2 - Music synthesizer - Google Patents

Music synthesizer

Info

Publication number
JPH0738955Y2
JPH0738955Y2 JP1987151604U JP15160487U JPH0738955Y2 JP H0738955 Y2 JPH0738955 Y2 JP H0738955Y2 JP 1987151604 U JP1987151604 U JP 1987151604U JP 15160487 U JP15160487 U JP 15160487U JP H0738955 Y2 JPH0738955 Y2 JP H0738955Y2
Authority
JP
Japan
Prior art keywords
envelope
data
level
pitch
register
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
Application number
JP1987151604U
Other languages
Japanese (ja)
Other versions
JPS6455992U (en
Inventor
洋二 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP1987151604U priority Critical patent/JPH0738955Y2/en
Publication of JPS6455992U publication Critical patent/JPS6455992U/ja
Application granted granted Critical
Publication of JPH0738955Y2 publication Critical patent/JPH0738955Y2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【考案の詳細な説明】 [考案の技術分野] この考案は楽音合成装置に関し、特に、ピッチエンベロ
ープ(周波数エンベロープ)の制御技術に関する。
DETAILED DESCRIPTION OF THE INVENTION [Technical Field of the Invention] The present invention relates to a musical sound synthesizer, and more particularly to a pitch envelope (frequency envelope) control technique.

[考案の背景] 楽音合成装置におけるピッチエンベロープは、生成され
る楽音について、その音高の時間変動特性を基本的に決
定するパラメータである。
[Background of the Invention] The pitch envelope in a musical tone synthesizer is a parameter that basically determines the time variation characteristic of the pitch of a generated musical tone.

最近の技術として、このようなピッチエンベロープに、
タッチレスポンスや、キースケーリング等を反映させる
試みがある。すなわち、タッチレスポンス等のデータを
ピッチエンベロープの目標値の変更データとして使用す
るわけである。ここにおいて、目標値ないしピッチエン
ベロープレベルをELで表わし、レベルの変更データをEL
Cで表わすと、変更後のピッチエンベロープレベルEL
(変更)は、 EL(変更)=EL−ELC (式1) で演算されている。
As a recent technology, in such a pitch envelope,
There are attempts to reflect touch response and key scaling. That is, data such as touch response is used as change data for the target value of the pitch envelope. Here, the target value or pitch envelope level is represented by EL, and the level change data is EL
Expressed as C, the pitch envelope level EL after the change
(Change) is calculated by EL (change) = EL-ELC (Equation 1).

ELCをタッチレスポンスデータとすると、タッチの強い
ときほどELCは小さな値をとる。当初、ピッチは中心レ
ベル、すなわち、鍵に割り当てた基準の音高にあるとす
ると、ELがこの中心レベルより高いときには、(式1)
によるとタッチの強いときほど、高い目標値EL(変更)
が設定されるため、タッチの強いときほど音高の変動幅
が広くなる。一方、ELが中心レベルより低いとすると、
タッチの弱いときほど低い目標値EL(変更)が設定さ
れ、タッチの強いときほど、音高の低下量が少なくな
る。これは、感覚的にいって、不自然であり、タッチで
ピッチを振らせる場合に、操作しずらいという問題があ
った。
When ELC is used as touch response data, ELC takes a smaller value when the touch is stronger. Initially, assuming that the pitch is at the center level, that is, at the reference pitch assigned to the key, when EL is higher than this center level, (Equation 1)
According to, the stronger the touch, the higher the target value EL (change)
Is set, the pitch fluctuation range becomes wider as the touch becomes stronger. On the other hand, if EL is lower than the central level,
The weaker the touch, the lower the target value EL (change) is set, and the stronger the touch, the less the decrease in pitch. This is unnatural from a sensory point of view, and there is a problem that it is difficult to operate when the pitch is swung by touch.

[考案の目的] この考案は上述の背景に鑑みてなされたもので、タッチ
レスポンス等によるピッチエンベロープへの反映が自然
に行われる楽音合成装置を提供することを目的とする。
[Object of the Invention] The present invention has been made in view of the above background, and an object thereof is to provide a musical sound synthesizer in which a touch response or the like is naturally reflected in a pitch envelope.

[考案の要点] この考案は上記の目的を達成するために、CPUから音源
側に与えられたピッチエンベロープレベルが中心レベル
より低いときには、タッチレスポンス等のピッチエンベ
ロープ変更データにより、ピッチエンベロープを増大さ
せる方向に変更し、ピッチエンベロープレベルが中心レ
ベルより高いときにはピッチエンベロープレベル変更デ
ータによりピッチエンベロープレベルを減少させる方向
に変更するレベル変更回路手段を設けたことを特徴とす
る。
In order to achieve the above object, this invention increases the pitch envelope by the pitch envelope change data such as touch response when the pitch envelope level given from the CPU to the sound source side is lower than the center level. It is characterized in that level changing circuit means is provided for changing the direction to the direction, and when the pitch envelope level is higher than the center level, changing the direction in the direction to decrease the pitch envelope level by the pitch envelope level changing data.

[考案の作用、展開] この考案によれば、ピッチの目標値であるピッチエンベ
ロープレベルが、中心レベルを対称軸として、ピッチエ
ンベロープ変更データにより、中心レベルに近づく方向
に変更される。したがって、ピッチエンベロープ変更デ
ータがタッチレスポンスデータである場合、タッチの強
いときほど、鍵の基準音高レベルである中心レベルから
隔ったピッチが目標値として設定されることになり、自
然な感覚でタッチ操作を行うことができる。
[Operation and Development of the Invention] According to this invention, the pitch envelope level, which is the target value of the pitch, is changed toward the center level by the pitch envelope change data with the center level as the axis of symmetry. Therefore, when the pitch envelope change data is the touch response data, the pitch farther from the center level, which is the reference pitch level of the key, is set as the target value when the touch is stronger, which gives a natural feeling. Touch operation can be performed.

なお、実用新案登録請求の範囲には、第1項を初めとし
て、各構成要素の後にかっこ入りで符号を記入してある
が、これは、後述する図示実施例における対応要素の参
照符号を示している。もちろん、このことは、本考案が
実施例に限定されるという意味ではなく、単に対応関係
を示したにすぎない。
In the claims for utility model registration, starting from the first paragraph, reference numerals are entered in parentheses after each constituent element, which is the reference numeral of the corresponding element in the illustrated embodiment described later. ing. Of course, this does not mean that the present invention is limited to the embodiments, but merely shows the correspondence.

例えば、第1項におけるELpj(S)←ELpj(S)+ELC
pjと、ELpj(S)←ELpj(S)−ELCpjの式は例示であ
り、この代りに、例えば、変更データELCpjの代りに、
重み係数の付いた変更データを使用してもよい。
For example, EL pj (S) ← EL pj (S) + ELC in the first term
The expressions pj and EL pj (S) ← EL pj (S) −ELC pj are examples, and instead of this, for example, instead of the change data ELC pj ,
Modified data with weighting factors may be used.

第2項は、変更後のピッチエンベロープレベルが中心レ
ベルをクロスしたときに中心レベルに制限する回路手段
について述べている。この制限回路手段は、音高に変動
を加えない通常の演奏の場合に特に有効な手段である。
この場合、CPUから中心レベルのピッチエンベロープレ
ベルを与えておけば、変更データによる変更後のピッチ
エンベロープは中心レベルをクロスすることになるが、
この制限回路手段の働きにより、中心レベルに固定さ
れ、鍵の基準音高が保たれることになる。
The second term describes circuit means for limiting the changed pitch envelope level to the center level when the center level is crossed. This limiting circuit means is a particularly effective means in the case of a normal performance in which the pitch is not changed.
In this case, if the central level pitch envelope level is given from the CPU, the pitch envelope after modification by the modification data will cross the central level,
By the function of the limiting circuit means, the reference pitch of the key is maintained by being fixed at the center level.

第3項の構成は、擬似ポルタメント効果をもたらすこと
ができる。すなわち、同項記載のフラグに、鍵の押し替
えの方向の値をセットすれば、例えば、前回の押鍵の際
に、ピッチを中心レベルから上昇させ、今回の高い鍵の
押鍵の際に、ピッチを中心レベルに向けて上昇させるこ
とにより、ポルタメント効果がかかることになる。
The configuration of the third term can bring about a pseudo portamento effect. That is, if the value in the key pressing direction is set to the flag described in the same paragraph, for example, when the key is pressed last time, the pitch is raised from the center level, and when the key is pressed high this time. , By raising the pitch toward the center level, the portamento effect will be applied.

[実施例] 第1図は本考案に係る電子楽器の機能図である。CPU3は
汎用マイコンで、制御プログラムに従って、鍵盤1、ス
イッチ2を走査して押鍵、音色選択等を検出し、バス上
に配置されたROM4、RAM5等を使って音色データ、発音制
御データを生成して音源LSIの発音を制御する。音源LSI
6は、後で詳述するが外付けRAM7を楽音生成のための演
算用バッファとして利用して楽音を生成し、DAC(デジ
タルアナログ変換器)8に転送する。楽音信号はDAC8で
アナログ信号に変換され、アンプ9で増幅されてスピー
カ10によって報音される。
[Embodiment] FIG. 1 is a functional diagram of an electronic musical instrument according to the present invention. The CPU3 is a general-purpose microcomputer, which scans the keyboard 1 and the switch 2 to detect key depression and tone color selection according to the control program, and generates tone color data and sound control data using the ROM4, RAM5, etc. arranged on the bus. And control the pronunciation of the sound source LSI. Sound source LSI
As will be described later in detail, 6 generates a musical sound by using the external RAM 7 as a calculation buffer for musical sound generation, and transfers it to a DAC (digital-analog converter) 8. The tone signal is converted into an analog signal by the DAC 8, amplified by the amplifier 9, and sounded by the speaker 10.

第2図は、本考案を適用する音源LSI6の動作を説明する
ためのブロック図である。音源LSI6は、振幅エンベロー
プ及びピッチ変動を含んだキーコード等の生成のため
に、RAM7を音色データ用メモリ、又は演算経過データ用
メモリとして使う。尚、RAM7は第3図に示すように、40
0nsec毎にインタフェース/制御部11(インタフェース
占有時間)とエンベロープ/キーコード生成回路(演算
回路占有時間)に交代で占有され、CPUからのデータ書
込み及びエンベロープ等の演算のためのアクセスに対処
する。
FIG. 2 is a block diagram for explaining the operation of the tone generator LSI 6 to which the present invention is applied. The tone generator LSI 6 uses the RAM 7 as a tone color data memory or a calculation progress data memory in order to generate a key code including an amplitude envelope and a pitch variation. In addition, RAM7, as shown in FIG.
The interface / control unit 11 (interface occupancy time) and the envelope / key code generation circuit (arithmetic circuit occupancy time) are alternately occupied every 0 nsec to deal with access from the CPU for writing data and computing envelopes and the like.

まず、インタフェース/制御部11の動作を説明する。CP
U3からは音源LSI6に対して音色データ又は発音制御デー
タが転送されるが、音源LSI6ではデータバスDB0〜7に
あるデータを▲▼がLOWのとき▲▼の立上りエ
ッジで取込む。その際、/DがLOWならばデータバスDB0
〜DB7のデータをインストラクション、/DがHIGHなら
ばそのインストラクションに付属するデータとして取込
む(第4図参照)。尚、インストラクションは続いて転
送されるデータの種類を示している。インタフェース/
制御部11はCPU3からのインストラクション及びデータを
受けて、そのインストラクションに対応するRAM7のアド
レスAA0〜11と書込み信号▲▼を生成し、外部RAMイ
ンターフェース16を介して外部RAM7に転送されたデータ
を格納する。ただし、CPU3から転送されたデータが特殊
なものの場合は内部メモリに格納する。例えば転送され
たデータがオペレーションコード(波形生成のための制
御データ)の場合には、外部RAM7への書込みは禁止さ
れ、OCレジスタ14への書込み信号WOが発生することによ
り、OCレジスタに書込まれる。
First, the operation of the interface / control unit 11 will be described. CP
U3 transfers tone color data or tone generation control data to the tone generator LSI6, and the tone generator LSI6 takes in the data on the data buses DB0 to DB7 at the rising edge of ▲ ▼ when ▼ is LOW. At that time, if / D is LOW, data bus DB0
~ DB7 data is taken as an instruction, and if / D is HIGH, it is taken in as data attached to that instruction (see Fig. 4). The instruction indicates the type of data that is subsequently transferred. interface/
The control unit 11 receives instructions and data from the CPU3, generates addresses AA0 to 11 of the RAM7 and write signals ▲ ▼ corresponding to the instructions, and stores the data transferred to the external RAM7 via the external RAM interface 16. To do. However, if the data transferred from CPU3 is special, it is stored in the internal memory. For example, when the transferred data is an operation code (control data for waveform generation), writing to the external RAM 7 is prohibited, and a write signal WO to the OC register 14 is generated, so that the data is written to the OC register. Be done.

エンベロープ/キーコード生成回路12は、外部RAM7に書
込まれたデータをアクセスするためにアドレスBA0〜11
及びエンベロープの演算経過データ等の書込み信号▲
▼を発生する。それによって外部RAM7の音色データ
(エンベロープレート/レベルなど)に基づき、発音制
御データ(キーコード、モジュレーションなど)に従っ
て、振幅エンベロープ又はピッチ変動を含んだキーコー
ド(以下では合成キーコードと呼ぶ)を生成し、バスL2
〜14を介して指数変換/位相角生成回路13に時分割に転
送する。
The envelope / key code generation circuit 12 uses addresses BA0 to 11 to access the data written in the external RAM 7.
And write signal for envelope calculation progress data, etc.
Generate ▼. As a result, based on the tone color data (envelope rate / level, etc.) of the external RAM7, a key code (hereinafter called a synthetic key code) that includes amplitude envelope or pitch fluctuation is generated according to the tone generation control data (key code, modulation, etc.). And bus L2
Through 14 to the exponential conversion / phase angle generation circuit 13 in a time division manner.

指数変換/位相角生成回路13はエンベロープ/キーコー
ド生成回路12からの振幅エンベロープ、合成キーコード
を1つの指数変換器を時分割的に共用することによって
指数変換する。指数変換された振幅エンベロープ(指数
エンベロープ)、及び指数変換された合成キーコード
(周波数情報)は夫々、エンベロープレジスタ、周波数
情報レジスタに一旦格納される。これらは、外部RAM7を
アクセスして振幅エンベロープ、合成キーコードを生成
し、指数変換するという演算処理が低速で行なわれ、そ
の後の演算処理が高速で行なわれるためのインタフェー
ス用バッファとして使われる。第5図に2つの演算処理
の時間関係を示すが、低速演算周期は高速演算周期の48
倍になっている。これは出力波形の変化レートが可聴周
波数の2倍以上でないといけないために波形演算は高速
で行なわれ(本実施例では約40KHz)、それ以外の演算
は外部RAM7のアクセスに合わせて低速で行っているから
である。
The exponential conversion / phase angle generation circuit 13 exponentially converts the amplitude envelope and the composite key code from the envelope / key code generation circuit 12 by sharing one exponential converter in a time division manner. The exponentially converted amplitude envelope (exponential envelope) and the exponentially converted composite key code (frequency information) are temporarily stored in the envelope register and the frequency information register, respectively. These are used as interface buffers for accessing the external RAM 7 to generate an amplitude envelope and a synthetic key code and performing exponential conversion at low speed, and for performing subsequent arithmetic processing at high speed. Fig. 5 shows the time relationship between the two calculation processes. The low-speed calculation cycle is the high-speed calculation cycle.
Is doubled. This is because the change rate of the output waveform must be twice the audible frequency or more, so the waveform calculation is performed at high speed (about 40 KHz in this embodiment), and the other calculations are performed at low speed according to the access to the external RAM 7. Because it is.

エンベロープレジスタに格納された指数エンベロープは
高速演算に対応して読出され、波形合成回路15にエンベ
ロープE0〜11として転送される。周波数情報レジスタに
格納された周波数情報は、高速演算に対応して読出さ
れ、累算されて位相角データP0〜11として波形生成回路
15に転送される。
The exponent envelope stored in the envelope register is read in correspondence with the high speed operation and transferred to the waveform synthesizing circuit 15 as envelopes E0 to E11. The frequency information stored in the frequency information register is read and accumulated in correspondence with the high-speed operation, and the waveform information is generated as the phase angle data P0 to 11 in the waveform generation circuit.
Transferred to 15.

波形生成回路15はOCレジスタ14から読出されたオペレー
ションコードOC0〜7に基づいて、指数変換/位相角生
成回路13から転送されるエンベロープE0〜11、位相角デ
ータP0〜11に従って楽音波形O0〜15を生成し、DAC8へ出
力する。
The waveform generation circuit 15 is based on the operation codes OC0 to 7 read from the OC register 14, and in accordance with the envelopes E0 to 11 and the phase angle data P0 to 11 transferred from the exponential conversion / phase angle generation circuit 13, the tone waveforms O0 to O15. Is generated and output to DAC8.

第6図はインタフェース/制御部11の回路図である。ま
ず、タイミング信号発生回路159について説明する。タ
イミング信号発生回路159は、第7図、第8図に示すよ
うに基本クロックφM(10MHz)を分周し必要なタイミン
グ信号を作り、外部からのリセット信号▲▼
から内部リセット信号を作るものである。第9図にそ
の一実施例を示す。10MHzの基本クロックはフリップフ
ロップ233、インバータ235で分周されS0が生成され、更
にフリップフロップ234によってT0が生成される。更に
アンド237によってφ1が生成され、フリップフロップ23
9、240によってV1、W1が生成される。また、フリップフ
ロップ243によってT1が生成される。これらの信号から
インバータ242、245、アンド244、246〜248によって
W、▲▼、▲▼、CK1、CK2が生成される(第7
図)。カウンタA:249はクロックCK2を分周するバイナリ
カウンタで、CK2の立上りで変化する。カウンタ出力の
うちQ1〜Q5は読出しのためのアドレス信号C1〜C5として
エンベロープ/キーコード生成回路12、及びOCレジスタ
14に出力される。また、カウンタ出力Q0、Q1から2相フ
リップフロップ250、251、フリップフロップ252、イン
バータ253、アンド254−1〜254−4によってタイミン
グ信号T2、T3、CKP、CKQ、CKW、CKRが生成される(第8
図)。また、インバータ255−1〜3、オア256、アンド
257から▲▼、CKLが生成される(第52図)。ま
た、カウンタA:249のCARRY OUT(カウント値127のとき
“1")からはアンド258でCKRTが生成され、この信号は
外部からのリセット信号をサンプリングするクロックと
して用いられる。クロックCKRTによりフリップフロップ
260、261でリセット信号をサンプリングし2度以上外部
リセット信号をアンド262で検出したら内部リセット信
号が生成される。したがって内部リセット信号は第8図
のようになる。その時第17図のカウンタB303は同期リ
セットカウンタなので第8図のようにリセット後の動作
を行なう。
FIG. 6 is a circuit diagram of the interface / control unit 11. First, the timing signal generation circuit 159 will be described. The timing signal generation circuit 159 divides the basic clock φ M (10 MHz) to generate a necessary timing signal as shown in FIGS. 7 and 8, and a reset signal from the outside ▲ ▼
From the internal reset signal. FIG. 9 shows an embodiment thereof. The basic clock of 10 MHz is divided by the flip-flop 233 and the inverter 235 to generate S0, and the flip-flop 234 further generates T0. Further, AND 237 generates φ 1 , and the flip-flop 23
V 1 and W 1 are generated by 9,240. Further, T1 is generated by the flip-flop 243. From these signals, inverters 242, 245, ANDs 244, 246 to 248 generate W, ▲ ▼, ▲ ▼, CK1 and CK2 (seventh example).
Figure). The counter A: 249 is a binary counter that divides the clock CK2 and changes at the rising edge of CK2. Of the counter outputs, Q 1 to Q 5 are used as address signals C 1 to C 5 for reading, and the envelope / key code generation circuit 12 and the OC register
It is output to 14. Also, the timing signals T2, T3, CKP, CKQ, CKW, CKR are generated from the counter outputs Q 0 , Q 1 by the two-phase flip-flops 250, 251, the flip-flop 252, the inverter 253, and ANDs 254-1 to 254-4. (8th
Figure). Inverters 255-1 to 3, OR 256, and
From 257, ▲ ▼ and CKL are generated (Fig. 52). Further, CKRT is generated by AND 258 from CARRY OUT (“1” when the count value is 127) of the counter A: 249, and this signal is used as a clock for sampling the reset signal from the outside. Flip-flop by clock CKRT
When the reset signal is sampled by 260 and 261 and the external reset signal is detected twice by AND 262, the internal reset signal is generated. Therefore, the internal reset signal becomes as shown in FIG. At that time, since the counter B303 in FIG. 17 is a synchronous reset counter, the operation after reset is performed as shown in FIG.

次に、CPU3と音源LSI6のデータメモリである外部RAM7と
をインタフェースするインタフェース/制御部11の動作
を説明する。表1にCPU3から転送されるインストラクシ
ョン、データ及び、外部RAM7の対応するアドレスを示
す。
Next, the operation of the interface / control unit 11 that interfaces the CPU 3 and the external RAM 7 which is the data memory of the tone generator LSI 6 will be described. Table 1 shows the instructions and data transferred from the CPU3 and the corresponding addresses of the external RAM7.

ここで、音源LSI6は8つの発音チャンネルを持ち各発音
チャンネル毎に8つの正弦波生成モジュールを持つの
で、エンベロープ/キーコード生成回路12では、各発音
チャンネル毎のピッチエンベロープを含めて72個の振幅
エンベロープ、64個の合成キーコードを生成しなければ
ならない。そのため、データは各チャンネル毎(jjj=
0〜7)に各モジュール(0iii=0〜7)のデータを転
送しなければならない。ただしエンベロープに関係する
データはピッチも含めて9個(jjjj=0〜8)転送す
る。尚、データを1個しか送らないものは各モジュール
共通のものである。
Since the tone generator LSI 6 has eight sound generation channels and eight sine wave generation modules for each sound generation channel, the envelope / key code generation circuit 12 has 72 amplitudes including the pitch envelope for each sound generation channel. Envelope, 64 synthetic keycodes must be generated. Therefore, the data is for each channel (jjj =
Data of each module (0iii = 0 to 7) must be transferred to 0 to 7). However, 9 pieces of data (jjjj = 0 to 8) including the pitch are transferred as data related to the envelope. It is common to each module that only one data is sent.

第6図で▲▼、/D、▲▼、DB0〜7にはCPU3
からの信号が入るわけだが、第4図のように信号が入っ
た時インバータ100〜103、ナンド104、105によって▲
▼、▲▼が発生する。信号▲▼が発生
するとバスDB0〜7のデータがインバータ106〜113を介
してラッチ146〜153に▲▼の立上りで取込まれると
ともにカウンタ191、フリップフロップ186、192〜195を
リセットする。ラッチ149〜153の出力はインストララク
ションデコーダ154に入力され、それによって必要な制
御信号が発生する。インストラクションデコーダは第10
図のようにインバータ265〜267、ナンド269〜277、アン
ド278で構成されており、各信号は表2のようになる。
In Fig. 6, ▲ ▼, / D, ▲ ▼, CPU0 for DB0-7
However, when the signal is input as shown in Fig. 4, the inverters 100 to 103, NAND 104, 105
▼ and ▲ ▼ occur. When the signal {circle over ()} is generated, the data on the buses DB0 to DB7 are taken into the latches 146 to 153 via the inverters 106 to 113 at the rising edge of {circle around ()}, and the counter 191 and the flip-flops 186, 192 to 195 are reset. The outputs of the latches 149 to 153 are input to the instruction decoder 154, which generates the necessary control signals. Instruction decoder is the 10th
As shown in the figure, it is composed of inverters 265 to 267, NANDs 269 to 277, and 278, and each signal is as shown in Table 2.

例えば、周波数比のインストラクションに対しては、WB
とWTが論理“1"となる(WB=“1"、▲▼=“0") まず、外部RAM7に書込まれるデータのうち、各チャンネ
ルの各モジュールあたり1バイトのデータ(ハイリリー
スレート、モジュレーション感度、エンベロープレート
変化、エンベロープレベル変化、エンベロープレート、
エンベロープレベル)の書込み動作を説明する(第11図
参照)、CPU3からのインストラクション書込みに応答し
て、信号▲▼が“0"になる。そのとき、バスDB0
〜7のインストラクションはインバータ106〜113で反転
されてラッチ146〜153に取込まれるとともに、カウンタ
191、フリップフロップ192〜195、186がリセットされ
る。そしてインストラクションデコーダ154の出力WBが
“0"となるのでナンド172の出力は常に“1"となり、
▲▼が“1"なのでオア168、170、アンド169によっ
てCK12はCKQとなる。次にCPU3からのデータ書込により
信号▲▼が“0"→“1"になると、フリップフロッ
プ173は▲▼の立上りで“1"を出力し、フリップ
フロップ174の出力は“1"となる。その後、フリップ
フロップ173、175はCKRに同期してリセットされるので
はCKRの1区間だけ“1"となる。また、インストラク
ションデコーダ154の出力▲▼、IDは“1"、“0"、
は“0"なのでオア178、179、インバータ180、181、ナ
ンド182により信号▲▼はが“1"、かつT2が“0"
のとき“0"となる。その時、インストラクションデコー
ダ154の出力▲▼、WBは“1"、“0"なので、ノア161
の出力は▲▼が“0"、▲▼が“0"のときだけ
“1"となり、バスD0〜7のクロックインバータ122〜129
の出力が出力される。カウンタ191は、インストラクシ
ョンデコーダ154の出力▲▼が“1"なので、が
“1"のときのCKQがそのクロックCKCとなり、CKC毎に
0、1、2、……と歩進され、その値はフリップフロッ
プ192〜195、インバータ196〜199で2度反転してモジュ
ール番号を表わすアドレスAA0〜AA3となる。アドレスAA
4〜AA6はインストラクションのラッチ146〜153の下位3
ビットの反転であるからチャンネル番号を表わす値“jj
j"となる。また、アドレスAA7〜AA11はインストラクシ
ョンデコーダ154の出力EF、WBが“0"だから、ノア204、
オア205、207の右入力は“0"、アンド209、211の右入力
は“1"、オア203の左入力は“0"なので、インストラク
ションのラッチ146〜153の上位5ビットの反転となり、
インストラクションの上位5ビットそのものとなる。以
上のように各チャンネル各モジュールあたり1バイトの
データの書込みの場合、インストラクションと一致する
アドレスに対して第11図のような書込み用の信号が生成
される。ここで各チャンネルの識別はインストラクショ
ン下位3ビットでなされるが、モジュールの識別はイン
ストラクション転送後から何番目のデータかということ
をカウンタ191で係数することによって行なわれてい
る。したがって、1つのインストラクションに複数のデ
ータが後続する連続転送フォーマットにおいて、どのデ
ータがどのモジュールに対するデータであるかはインタ
フェース/制御部11で自動的に識別されるので、CPU3は
モジュール別にインストラクションを送る必要はなく転
送効率が上る。
For example, for frequency ratio instructions, WB
And WT become logic "1" (WB = "1", ▲ ▼ = "0") First, of the data written to the external RAM7, 1 byte of data for each module of each channel (high release rate, Modulation sensitivity, envelope rate change, envelope level change, envelope rate,
The envelope level) write operation will be described (see FIG. 11). In response to the instruction write from the CPU 3, the signal ▲ ▼ becomes “0”. At that time, bus DB0
The instructions of ~ 7 are inverted by the inverters 106-113 and taken into the latches 146-153, and the counter
191, flip-flops 192-195, and 186 are reset. Then, the output WB of the instruction decoder 154 becomes "0", so the output of the NAND 172 becomes "1" at all times.
Since ▲ ▼ is "1", CK12 becomes CKQ by OR 168, 170, and 169. Next, when the signal ▲ ▼ changes from “0” to “1” by the data writing from the CPU 3, the flip-flop 173 outputs “1” at the rising of ▲ ▼, and the output of the flip-flop 174 becomes “1”. . After that, since the flip-flops 173 and 175 are reset in synchronization with CKR, only one section of CKR becomes "1". Further, the output ▲ ▼ of the instruction decoder 154, the IDs are “1”, “0”,
Is "0", so signal ▲ ▼ is "1" and T2 is "0" by OR 178, 179, inverters 180, 181, and NAND 182.
When it is, it becomes "0". At that time, the output ▲ ▼ of the instruction decoder 154 and WB are “1” and “0”, so NOR 161
Output becomes "1" only when ▲ ▼ is "0" and ▲ ▼ is "0", and clock inverters 122-129 of buses D0-7
Is output. In the counter 191, since the output ▲ ▼ of the instruction decoder 154 is "1", the CKQ when is "1" becomes the clock CKC, and the value is incremented by 0, 1, 2, ... for each CKC. Flip-flops 192 to 195 and inverters 196 to 199 invert twice to become addresses AA0 to AA3 representing module numbers. Address aa
4 to AA6 are lower 3 of instruction latches 146 to 153
Value "jj" that represents the channel number because it is a bit inversion
Also, the addresses AA7 to AA11 are the outputs EF and WB of the instruction decoder 154, and the addresses 204 to
The right input of the ORs 205 and 207 is “0”, the right input of the ANDs 209 and 211 is “1”, and the left input of the OR 203 is “0”. Therefore, the upper 5 bits of the instruction latches 146 to 153 are inverted,
It is the upper 5 bits of the instruction itself. As described above, in the case of writing 1-byte data for each module of each channel, a signal for writing as shown in FIG. 11 is generated for an address matching the instruction. Here, the identification of each channel is made by the lower 3 bits of the instruction, but the identification of the module is made by multiplying by the counter 191 what number data is after the instruction transfer. Therefore, in the continuous transfer format in which one instruction is followed by a plurality of data, which data is for which module is automatically identified by the interface / control unit 11. Therefore, the CPU 3 needs to send instructions for each module. But the transfer efficiency goes up.

次に外部RAM7に書込まれるデータのうち各チャンネル各
モジュールあたり2バイトのデータ(周波数比、キーコ
ード、モジュレーションレベル/レート、ピッチモジュ
レーション)の書込み動作を説明する(第12図参照)。
CPU3からのインストラクション書込みに応答し、▲
▼が0になり、それによって、インストラクションが
ラッチ146〜153に取込まれるとともに、カウンタ191、
フリップフロップ186、192〜195がリセットされる。フ
リップフロップ176の出力は“0"となっているのでナン
ド172の上入力は“1"、インストラクションデコーダ154
の出力WBは“1"なのでナンド172の出力は“0"となっ
ており、また、ノア167の入力は共に“0"なのでオア16
8、170、アンド169により、CK12はCKQとなる。CPU3から
のデータの書込みにより、▲▼が“0"→“1"にな
ると、フリップフロップ114〜121がデータを取込むと共
にフリップフロップ175は“1"を出力し、フリップフロ
ップ176は“1"、インバータ171は“0"、ナンド172の出
力は“1"となる。そのとき、ノア167の上入力は“1"
なのでCK12はCKWとなる。再び▲▼が“0"→“1"
になると、フリップフロップ130〜137は前段のデータ
を、フリップフロップ114〜121はバスのデータを取込む
と共に、フリップフロップ173の出力は“1"となり、フ
リップフロップ174の出力も“1"となる。が“1"と
なるとフリップフロップ173、175はリセットされるの
で、はCKRの2区間だけ“1"となる(∵CK12=CKW)。
インストラクションデコーダ154の出力▲▼は
“1"、IDは“0"であるからナンド182の出力▲▼
は、が“1"の時にT2が“0"の時、すなわち2回“0"と
なる。また、WBが“1"となるので、▲▼が“0"でT3
が“0"のとき▲▼が“0"の幅でクロックインバータ
122〜129がデータを出力し、▲▼が“0"でT3が“1"
のとき▲▼が“0"の幅でクロックインバータ138〜1
45がデータを出力する。ここでデータは下位(レベ
ル)、上位(レート)の順でCPUから書込まれるので、
バスD0〜7には上位(レート)、下位(レベル)の順で
データが出力され外部RAM7に入力される。カウンタ191
は、インストラクションデコーダ154の出力▲▼が
“0"なのでが“1"のときのCKWがそのクロックCKCとな
り、0、1、2……と歩進されてモジュール番号を表わ
すアドレスAA0〜AA3となる。アドレスAA4〜AA6はインス
トラクションのラッチ146〜153の下位3ビットの反転で
あるからチャンネル番号を示す値“jjj"となる。また、
アドレスAA7〜AA11は、インストラクションデコーダ154
のEFが“0"、WBが“1"だから、T3が“0"のときAA7を
“0"にするインストラクション上位5ビットとなり、T3
が“1"のときAA8〜11がインストラクション上位4ビッ
トでAA7が“1"となる。つまり、2バイトデータの第1
バイトアドレスと第2バイトアドレスの区別はAA7を切
り換えることにより行なわれる。尚、チャンネルの識別
とモジュールの識別に関してはチャンネル、モジュール
当り1バイトのデータ書込みの場合と同様である。ここ
までの説明から明らかなように、本実施例によれば、イ
ンタフェース/制御部11に転送データのバイト構成をイ
ンストラクションに基づいて識別する手段が組み込まれ
ているため、CPU3から音源LSI6に対し、インストラクシ
ョンに可変のバイト構成のデータが後続する可変フォー
マットでデータ転送を行なうことができ、ダミーデータ
なしの最適の転送効率を達成できる。
Next, of the data written to the external RAM 7, the writing operation of 2-byte data (frequency ratio, key code, modulation level / rate, pitch modulation) for each module of each channel will be described (see FIG. 12).
In response to instruction writing from CPU3,
▼ becomes 0, so that the instruction is captured in the latches 146 to 153 and the counter 191,
The flip-flops 186, 192-195 are reset. Since the output of the flip-flop 176 is "0", the upper input of the NAND 172 is "1" and the instruction decoder 154
Output WB is "1", the output of NAND 172 is "0", and the inputs of Noah 167 are both "0".
CK12 becomes CKQ by 8,170, and169. When ▲ ▼ changes from “0” to “1” by writing data from the CPU3, the flip-flops 114 to 121 take in the data, the flip-flop 175 outputs “1”, and the flip-flop 176 outputs “1”. The inverter 171 becomes "0", and the output of the NAND 172 becomes "1". At that time, the upper input of Noah 167 is "1"
So CK12 becomes CKW. Again ▲ ▼ is “0” → “1”
Then, the flip-flops 130 to 137 take in the data of the previous stage, the flip-flops 114 to 121 take the data of the bus, and the output of the flip-flop 173 becomes "1" and the output of the flip-flop 174 also becomes "1". . When becomes 1, the flip-flops 173 and 175 are reset, so that becomes only 1 in two sections of CKR (∵CK12 = CKW).
The output ▲ ▼ of the instruction decoder 154 is “1” and the ID is “0”, so the output of the NAND 182 ▲ ▼
Is "1", T2 is "0", that is, "0" twice. Also, because WB is “1”, ▲ ▼ is “0” and T3
When is “0”, the width of ▲ ▼ is “0”.
122 to 129 output data, ▲ ▼ is “0” and T3 is “1”
When ▲ ▼ is “0”, the clock inverters 138 to 1
45 outputs the data. Since the data is written from the CPU in the order of lower (level) and upper (rate),
Data is output to the buses D0 to D7 in the order of higher (rate) and lower (level), and input to the external RAM 7. Counter 191
, The output ▲ ▼ of the instruction decoder 154 is "0", but the CKW when it is "1" becomes the clock CKC, and is stepped to 0, 1, 2, ... to become addresses AA0 to AA3 representing the module number. . Since the addresses AA4 to AA6 are the inversions of the lower 3 bits of the instruction latches 146 to 153, they have the value "jjj" indicating the channel number. Also,
Addresses AA7 to AA11 are instruction decoder 154
EF is “0” and WB is “1”, so when T3 is “0”, the upper 5 bits of the instruction that sets AA7 to “0” become T3.
When is "1", AA8 to 11 are the upper 4 bits of the instruction and AA7 is "1". That is, the first of 2-byte data
The distinction between the byte address and the second byte address is made by switching AA7. The channel identification and the module identification are the same as in the case of writing 1-byte data for each channel and module. As is apparent from the above description, according to the present embodiment, the interface / control unit 11 has a means for identifying the byte configuration of the transfer data based on the instruction, and therefore, the CPU 3 causes the tone generator LSI 6 to It is possible to perform data transfer in a variable format in which a variable byte-structured data follows the instruction, and optimum transfer efficiency without dummy data can be achieved.

次にインストラクション“フラグセット”について述べ
る(第13図参照)。“フラグセット”は外部RAM7にエン
ベロープフラグをセットする命令である。信号の生成
までは1バイトデータの場合と全く同じである。インス
トラクションデコーダ154の出力EFが“1"なので、が
“0"→“1"になったとき、アンド183の出力が“1"とな
り、▲▼が“0"になった時にリセットされていた
フリップフロップ186の出力は“1"となる。また、イ
ンストラクションデコーダ154の出力▲▼は“1"な
のでカウンタ191のクロックCKCはが“1"の間CKQと一
致し、カウンタ191は歩進される。カウンタ191の値が9
になるとCKRに同期してオア184、ナンド185により、フ
リップフロップ186がリセットされるので、は▲
▼〜▲▼が0〜8の間(CKRの9区間)“1"と
なり、ナンド182の出力▲▼は各カウント値毎T2が
“0"のときに“0"となる。その時、インストラクション
デコーダ154の出力▲▼、WBは“1"、“0"なので、
ノア161の出力は▲▼“0"、▲▼が“0"のとき
だけ“1"となり、バスD0〜7にはクロックドインバータ
122〜129の出力が出力される。アドレスAA0〜AA3はカウ
ンタ191の値、アドレスAA4〜AA6はインストラクション
の“jjj"、AA7〜AA11はEFが“1"、WBが“0"だから“001
10"となる。したがって、インストラクション“フラグ
セット”ではモジュール0〜8に同じデータが自動的に
書込まれることになる。
Next, the instruction “flag set” will be described (see FIG. 13). “Flag set” is an instruction to set the envelope flag in the external RAM 7. The process up to signal generation is exactly the same as for 1-byte data. Since the output EF of the instruction decoder 154 is "1", when is changed from "0" to "1", the output of the AND 183 is changed to "1", and when the ▲ ▼ is changed to "0", the flip-flop which has been reset. The output of group 186 is "1". Further, since the output (1) of the instruction decoder 154 is "1", the clock CKC of the counter 191 coincides with CKQ while "1", and the counter 191 is incremented. The value of counter 191 is 9
Then, the flip-flop 186 is reset by the OR 184 and the NAND 185 in synchronization with CKR.
▼ to ▲ ▼ becomes “1” during 0 to 8 (9 sections of CKR), and the output ▲ ▼ of the NAND 182 becomes “0” when T2 for each count value is “0”. At that time, since the output ▲ ▼ of the instruction decoder 154 and WB are “1” and “0”,
The output of Noah 161 becomes "1" only when ▲ ▼ "0" and ▲ ▼ is "0", and the clocked inverter is connected to buses D0-7.
The output of 122 to 129 is output. The addresses AA0 to AA3 are the value of the counter 191, the addresses AA4 to AA6 are the instruction "jjj", and AA7 to AA11 are EF "1" and WB "0", so "001".
10 ". Therefore, in the instruction" flag set ", the same data is automatically written in modules 0-8.

次にインストラクション“キーオフ”について述べる
(第14図参照)。信号▲▼が“0"になるとインス
トラクションがラッチ146〜153に取込まれるとともに、
カウンタ191、フリップフロップ186、192〜195がリセッ
トされる。インストラクションデコーダ154の出力WBが
“0"なのでは“1"、ノア167の出力は“0"、▲▼
が“0"なのでオア168の出力は“0"となり、従ってCK12
はCKWと一致する。▲▼が“0"→“1"になると、
フリップフロップ114〜121にデータが取込まれるととも
に、フリップフロップ173は“1"を出力し、は“1"と
なる。が“1"となるとフリップフロップ173、175はリ
セットされるので、はCKRの2区間だけ“1"となる。
また、インストラクションデコーダ154の出力EFが“1"
なのでアンド183の出力はが“1"のときに“1"となる
から、フリップフロップ186の出力は“1"となる。▲
▼が“0"なのでカウンタ191のクロックCKCはが
“1"の間CKWと一致し、カウンタ191は歩進される。カウ
ンタ191の値が9になるとCKRに同期してフリップフロッ
プ186がリセットされるので、は▲▼〜▲
▼が0〜8の間(CKRの18区間)“1"となり、=
“1"のもとで、ナンド182の出力▲▼は▲▼が
“0"のため各カウント毎にT2が“0"、T3が“1"のときに
“0"となる。そのとき、EFは“1"なのでアドレスAA0〜A
A11は“00110jjjiiii"となるが、が“1"でT3が“0"、
T2が“0"のときは、RAM7からのデータが読出されてきて
いる。フリップフロップ213〜216はそのデータのうち下
位4ビットをCKPで取込み、その値が“*000"ならば“0
0000111"に、“0***”ならば“00000111"に“1abc"
ならば“00000abc"をT3が“1"、T2が“0"のとき▲
▼が“0"の幅でバスD0〜7に出力する(ただし、a、
b、cは任意2進数)。尚、後述するがインストラクシ
ョン“フラグセット”、“キーオフ”は、RAM7の中のデ
ータ“エンベロープフラグ”を書き替えるものである。
ここでデータ“エンベロープフラグ”はエンベロープの
ステップ等の現在の状態を示すもので、下位3ビットが
ステップ(0〜7)、4ビット目がサスティン中か否か
のビットである。すなわち、インストラクション“フラ
グセット”はエンベロープフラグをCPU3から直接書込む
命令で、データの下位3ビットにより、どのステップか
らでもエンベロープをスタートさせられるものである。
また、4ビット目をサスティンの値“1"にしてエンベロ
ープフラグを再設定することにより、所望の時点からエ
ンベロープをホールドすることができる。インストラク
ション“キーオフ”は現在のエンベロープフラグのデー
タに応じてデータを再セットする命令で、ステップ0
(0000)のとき、又はエンベロープ終了(1000)でなく
サスティンレベルに到達していないのなら最後のステッ
プ7(0111)へ進め、サスティンレベルにいるのなら
(1abc)、サスティンを解除(0abc)するようになって
いる。
Next, the instruction “key off” will be described (see FIG. 14). When the signal ▲ ▼ becomes “0”, the instructions are taken into the latches 146 to 153 and
The counter 191, the flip-flops 186, 192-195 are reset. The output WB of the instruction decoder 154 is "0", so it is "1", the output of the NOR 167 is "0", ▲ ▼
Is "0", the output of OR 168 is "0", therefore CK12
Matches CKW. When ▲ ▼ changes from “0” to “1”,
The data is taken into the flip-flops 114 to 121, and the flip-flop 173 outputs "1", which becomes "1". When becomes 1, the flip-flops 173 and 175 are reset, so that becomes only 1 in two sections of CKR.
Also, the output EF of the instruction decoder 154 is “1”.
Therefore, the output of the AND 183 is "1" when the output is "1", and the output of the flip-flop 186 is "1". ▲
Since ▼ is “0”, the clock CKC of the counter 191 coincides with CKW while is “1”, and the counter 191 is incremented. When the value of the counter 191 reaches 9, the flip-flop 186 is reset in synchronization with CKR.
▼ becomes "1" between 0 and 8 (18 sections of CKR), =
Under "1", the output ▲ ▼ of the NAND 182 becomes "0" when T2 is "0" and T3 is "1" because ▲ ▼ is "0". At that time, since EF is “1”, addresses AA0-A
A11 is “00110jjjiiii”, but is “1” and T3 is “0”,
When T2 is "0", the data is being read from RAM7. Flip-flops 213 to 216 take in the lower 4 bits of the data with CKP, and if the value is "* 000", "0"
If "0 ***" is set to 0000111 "," 1abc "is set to" 00000111 "
Then, "00000abc" when T3 is "1" and T2 is "0" ▲
▼ is output to buses D0 to 7 with a width of "0" (however, a,
b and c are arbitrary binary numbers). As will be described later, the instructions “flag set” and “key off” are used to rewrite the data “envelope flag” in the RAM 7.
Here, the data "envelope flag" indicates the current state of the step of the envelope and the like, and the lower 3 bits are the step (0 to 7) and the 4th bit is a bit indicating whether or not the sustain is being performed. That is, the instruction "flag set" is an instruction for directly writing the envelope flag from the CPU 3, and the envelope can be started from any step by the lower 3 bits of the data.
Also, by setting the fourth bit to the sustain value "1" and resetting the envelope flag, the envelope can be held from a desired time point. The instruction "key off" is an instruction to reset the data according to the data of the current envelope flag.
If it is (0000), or if the envelope has not reached the end (1000) and the sustain level has not been reached, proceed to the final step 7 (0111). If at the sustain level (1abc), cancel sustain (0abc). It is like this.

次にOCレジスタへの書込みを説明する(第15図)。書込
み動作は1バイトデータとほぼ同じだが、インストラク
ションデコーダ154の出力IDが“1"となるためRAM7への
最終的書込信号▲▼は発生せず(第43図参照)。
▲▼が“0"なのでと同じタイミングでOCレジスタ
への書込み信号WOが発生され、T2=“0"で▲▼=
“0"のときにフリップフロップ114〜121に取り込まれて
いるオペレーションコードがゲート122〜129を通ってOC
レジスタに入力される。最後にラッチ156〜158への書込
み(モード)は、上と同様にが発生するが、インスト
ラクションデコーダ154の出力IDが“1"となるためRAM7
への書込みは発生せず、▲▼が“0"となるのでと
同じタイミングでラッチ信号MLTが発生し、その立下り
でラッチ156〜158にフリップフロップ114〜116のデータ
が取込まれる(第16図参照)。
Next, writing to the OC register will be described (Fig. 15). The write operation is almost the same as the 1-byte data, but the output ID of the instruction decoder 154 becomes "1", so the final write signal ▲ ▼ to the RAM 7 is not generated (see FIG. 43).
The write signal WO to the OC register is generated at the same timing as when ▲ ▼ is "0", and when T2 = "0", ▲ ▼ =
When it is “0”, the operation code stored in the flip-flops 114 to 121 passes through the gates 122 to 129 and OC.
Input to register. Finally, writing to the latches 156 to 158 (mode) occurs similarly to the above, but since the output ID of the instruction decoder 154 becomes "1", the RAM7
To the flip-flops 114 to 116 is taken into the latches 156 to 158 at the falling edge of the latched signal MLT at the same timing as the writing of ▲ ▼ to "0". (See Figure 16).

第17図はエンベロープ/キーコード生成回路12のブロッ
ク図である。エンベロープ/キーコード生成回路12は、
振幅エンベロープ及び合成キーコードを生成するために
RAM7にアクセスしながら以下の演算を行っている。
FIG. 17 is a block diagram of the envelope / key code generation circuit 12. The envelope / key code generation circuit 12
To generate amplitude envelope and synthetic key code
The following operations are performed while accessing RAM7.

エンベロープレート(エンベロープの傾きデータ)
を鍵域又は鍵タッチに対応するデータ“エンベロープレ
ート変化”で変更する。
Envelope rate (envelope slope data)
Is changed by the data "envelope rate change" corresponding to the key range or key touch.

エンベロープレベル(エンベロープの各ステップの
目標データ)を鍵域又は鍵タッチに対応するデータ“エ
ンベロープレベル変化”で変更する。
The envelope level (target data of each step of the envelope) is changed by the data "envelope level change" corresponding to the key range or key touch.

変更されたエンベロープレート、エンベロープレベ
ルに従ってエンベロープを生成する。
An envelope is generated according to the changed envelope rate and envelope level.

アフタータッチ、LFO等に対応する振幅モジュレー
ションデータを補間し、振幅エンベロープと演算して最
終的な振幅エンベロープを生成する。
Amplitude modulation data corresponding to aftertouch, LFO, etc. is interpolated and calculated as an amplitude envelope to generate a final amplitude envelope.

ベンダー、LFO等に対応するピッチモジュレーショ
ンデータをピッチエンベロープと演算する。
Pitch modulation data corresponding to vendors, LFOs, etc. is calculated as a pitch envelope.

キーコードとモジュレーション付きのピッチエンベ
ロープを演算し、それと各モジュール毎の周波数比率を
表わす周波数比とを演算し、最終的な合成キーコードを
生成する。
A key code and a pitch envelope with modulation are calculated, and a frequency ratio representing a frequency ratio of each module is calculated to generate a final synthesized key code.

これらを実現するために、エンベロープ/キーコード生
成回路12では、第30図に示すように、共通化された演算
回路308を使用し、そのA、B、M、Sレジスタへのデ
ータのロードや加減算の制御等を行っている。ただし、
M、Sレジスタ、Bレジスタ上位の出力はいずれか一つ
が選択される。第17図においてカウンタB303は演算の基
本周期を作っているもので、第18図にその回路図を示
す。
In order to realize these, the envelope / key code generation circuit 12 uses a common arithmetic circuit 308 as shown in FIG. It controls addition and subtraction. However,
One of the upper outputs of the M, S register and B register is selected. In FIG. 17, the counter B303 forms a basic cycle of calculation, and FIG. 18 shows its circuit diagram.

カウンタ1〜3:309〜311は周期リセットカウンタでそれ
ぞれ演算サイクル、チャンネル、モジュールに相当して
いる。カウンタ1:309はBC11が0のときは0〜19の20進
カウンタ、BC11が1のときは0〜31の32進カウンタ、カ
ウンタ2:310はカウンタ1:309が1巡する毎に歩進される
8進カウンタ、カウンタ3:311はカウンタ1、2が1巡
する毎に歩進される9進カウンタである。尚、カウンタ
3:311の値は0〜7はモジュール0〜7に相当し、8は
ピッチに相当している。第19図にエンベロープ/キーコ
ード生成回路12の演算周期を示す。
Counters 1 to 3: 309 to 311 are cycle reset counters and correspond to operation cycles, channels, and modules, respectively. Counter 1: 309 is a decimal counter of 0 to 19 when BC11 is 0, 32 decimal counter of 0 to 31 when BC11 is 1, and counter 2: 310 is stepped every time counter 1: 309 makes one cycle. The octal counter, counter 3: 311, is a 9-ary counter that is incremented each time the counters 1 and 2 make one cycle. The counter
As for the value of 3: 311, 0 to 7 correspond to modules 0 to 7, and 8 corresponds to pitch. FIG. 19 shows the operation cycle of the envelope / key code generation circuit 12.

第20A図にエンベロープ/キーコード生成回路12の動作
の概要を説明するためのフローを示す。ここで、A;Aレ
ジスタ、AM;Aレジスタ上位、AL;Aレジスタ下位、B;Bレ
ジスタ、BM;Bレジスタ上位、BL;Bレジスタ下位、M;Mレ
ジスタ、S;Sレジスタ、F1;CKF1で取込むフリップフロッ
プ、F2;CKF2で取込むフリップフロップである。また、 EFij;エンベロープフラグ i=0〜8(モジュール、ピッチ)、j=0〜7(チ
ャンネル) ERij(S);エンベロープレート i=0〜8(〃)、j=0〜7(〃)、 s=0〜7(エンベロープステップ) ERCj;エンベロープレート変化 j=0〜7(〃) ▲EM ij▼;エンベロープ上位 i〜8(〃)、j=0
〜7(〃) ▲EiL ij▼;エンベロープ下位 i=0〜8(〃)、j=0〜7(〃) ELij(s);エンベロープレベル i=0〜8(〃)、j=0〜7(〃)、 s=0〜7(〃) ELCij;エンベロープレベル変化 i=0〜8(〃)、j=0〜7(〃) ▲AMDM j▼;振幅モジュレーション上位 j=0〜7
(〃) ▲AMDL j▼; 〃 下位 j=0〜7
(〃) ▲PMDM j▼;ピッチモジュレーション上位 j=0〜7
(〃) ▲PMDL j▼; 〃 下位 j=0〜7
(〃) MSij;モジュレーション感度 i=0〜7(モジュール)、j=0〜7(〃) ▲KCM j▼;キーコード上位 j=0〜7(〃) ▲KCL j▼; 〃 下位 j=0〜7(〃) ▲PEM j▼;ピッチエンベロープ上位 j=0〜7(〃) ▲PEL j▼; 〃 下位 j=0〜7(〃) ▲FRM ij▼;周波数比上位 i=0〜7(〃)、j=0
〜7(〃) ▲FRL ij▼; 〃 下位 i=0〜7(〃)、j=0
〜7(〃) ▲MRj▼;モジュレーションレート j=0〜7(〃) ▲MLj▼;モジュレーションレベル j=0〜7(〃) のように対応している。第20A図のフローで、左側にあ
る数字はタイミングを意味しており、0〜11はカウンタ
1の値そのもの、1P〜19はカウンタ3の値が8
(ピッチの演算)以外のときのカウンタ1の値12〜19、
12P〜19Pはカウンタ3の値が8(ピッチの演算)のとき
のカウンタ1の値12〜19に相当する。
FIG. 20A shows a flow for explaining the outline of the operation of the envelope / key code generation circuit 12. Where A; A register, A M ; A register upper, A L ; A register lower, B; B register, B M ; B register upper, B L ; B register lower, M; M register, S; S register , F1; a flip-flop fetched by CKF1 and F2; a flip-flop fetched by CKF2. Further, EF ij ; envelope flag i = 0 to 8 (module, pitch), j = 0 to 7 (channel) ER ij (S); envelope rate i = 0 to 8 (〃), j = 0 to 7 (〃 ), S = 0 to 7 (envelope step) ERC j ; envelope rate change j = 0 to 7 (〃) ▲ E M ij ▼; envelope upper level i to 8 (〃), j = 0
~ 7 (〃) ▲ Ei L ij ▼; Lower envelope i = 0 to 8 (〃), j = 0 to 7 (〃) EL ij (s); Envelope level i = 0 to 8 (〃), j = 0 ~ 7 (〃), s = 0 to 7 (〃) ELC ij ; envelope level change i = 0 to 8 (〃), j = 0 to 7 (〃) ▲ AMD M j ▼; upper amplitude modulation j = 0 7
(〃) ▲ AMD L j ▼; 〃 Lower j = 0 to 7
(〃) ▲ PMD M j ▼; Higher pitch modulation j = 0 to 7
(〃) ▲ PMD L j ▼; 〃 Lower j = 0 to 7
(〃) MS ij ; Modulation sensitivity i = 0 to 7 (module), j = 0 to 7 (〃) ▲ KC M j ▼; Key code higher j = 0 to 7 (〃) ▲ KC L j ▼; 〃 Lower j = 0 to 7 (〃) ▲ PE M j ▼; pitch envelope upper j = 0 to 7 (〃) ▲ PE L j ▼; 〃 lower j = 0 to 7 (〃) ▲ FR M ij ▼; frequency ratio upper i = 0 to 7 (〃), j = 0
~ 7 (〃) ▲ FR L ij ▼; 〃 Lower i = 0 to 7 (〃), j = 0
-7 (〃) ▲ MR j ▼; Modulation rate j = 0 to 7 (〃) ▲ ML j ▼; Modulation level j = 0 to 7 (〃). In the flow of FIG. 20A, the numbers on the left side mean the timings, 0 to 11 are the values of the counter 1 itself, and 1P to 19 are the values of the counter 3 are 8.
Counter 1 values other than (pitch calculation) 12 to 19,
12P to 19P correspond to the values 12 to 19 of the counter 1 when the value of the counter 3 is 8 (pitch calculation).

第20A図のフローを説明する。まずタイミング0でエン
ベロープフラグ;EFijをRAM7からSレジスタにロードす
る。ここで、エンベロープフラグのデータ構成は下のよ
うになっている。
The flow of FIG. 20A will be described. First, at timing 0, the envelope flag; EF ij is loaded from the RAM 7 into the S register. Here, the data structure of the envelope flag is as follows.

1)Sレジスタ下位3ビット(エンベロープステップ)
対応するエンベロープレート;ERij(s)をAレジスタ
上位に、2)エンベロープレート変化;ERCjをBレジス
タ上位にロードし(A、Bとも下位には0でロード)、
3)それらを加算してエンベロープレートを変更し、B
レジスタに格納する。そのとき同時にエンベロープ現在
値の上位をAレジスタ上位(下位は0)にロードし4)
次に下位をAレジスタ下位にロードして、5)エンベロ
ープの現在値をEF4に応じて、変更されたエンベロープ
レートで加減算することによってエンベロープを更新
し、Bレジスタに格納する。更にエンベロープレベル;
ELij(s)をAレジスタ上位に(下位には0)、6)M
レジスタにエンベロープレベル変化;ELCijをロード
し、7)それらを加減算してエンベロープレベルを変更
し、Aレジスタに格納する。尚、F1にセットされるエン
ベロープレベルの8ビット目;ELij(s)7はサスティンポ
イントのフラグである。そのとき、Mレジスタには振幅
モジュレーション;AMDj(モジュール0〜7の演算
時)、又はピッチモジュレーション;PMDj(ピッチの演
算時)をロードしておく。8)次に変更されたエンベロ
ープレベルから更新されたエンベロープを減算し、エン
ベロープが目標値に到達したか否かを判定する(その時
Aレジスタ下位にはAMDj又はPMDjの下位をロードしてお
く)。エンベロープが目標値に到達していない場合に
は、F′=“0"となり、9▲▼)エンベロープフラ
グ(Sレジスタ)は更新されず、Aレジスタの上位に格
納されている更新されたエンベロープの上位をRAM7のエ
ンベロープ上位;▲EM ij▼に対応するアドレスに書込
む。エンベロープが目標値に到達している場合には、
F′=“1"となり、9F′)エンベロープフラグ7(Sレ
ジスタ)のステップを表す下位3ビットを更新するとと
もに(1+S)、“ノード”のビットを“0"とし、サス
ティンフラグ;ELij(s)7が“1"ならば“ホールド”のビ
ットを“1"としてAレジスタ上位に格納する。その時、
変更されたエンベロープレベルの値をエンベロープ値と
してBレジスタにロードするとともに、RAM7のエンベロ
ープ上位;▲EM ij▼に対応するアドレスに書込む。1
0)次に到達、未到達のいずれの場合にも、Bレジスタ
下位には格納すべきエンベロープ下位データが入ってい
るので、それをRAM7のエンベロープ下位;▲EL ij▼の
アドレスに書込む。ただし、ノードのビットが節点を表
わす“0"の場合には、上記のような演算を行なわず、エ
ンベロープの現在値と目標値を比較することによってエ
ンベロープの進むべき方向を判定して符号のビットをセ
ットしている。以上説明したようにエンベロープの基本
演算は、ステップの節点毎にエンベロープの進行方向を
判定しておき、 a)エンベロープレートレベルの変更 b)エンベロープの更新 c)目標レベルへの到達か否かの判定 d)エンベロープ現在値格納 によって行なわれている。
1) Lower 3 bits of S register (envelope step)
Corresponding envelope rate; ER ij (s) is loaded in the upper register A, 2) Envelope rate change; ERC j is loaded in the upper register B (both A and B are loaded with 0),
3) Add them and change the envelope rate,
Store in register. At the same time, load the upper envelope current value into the A register upper register (lower register is 0) 4).
Next, the lower order is loaded into the lower order of the A register, and 5) the envelope is updated by adding / subtracting the current value of the envelope according to EF 4 with the changed envelope rate, and stored in the B register. Further envelope level;
EL ij (s) to A register upper (0 to lower), 6) M
Load envelope level change; ELC ij into the register, 7) add and subtract them to change the envelope level, and store in A register. The eighth bit of the envelope level set in F1; EL ij (s) 7 is a sustain point flag. At that time, amplitude modulation; AMD j (when calculating modules 0 to 7) or pitch modulation; PMD j (when calculating pitch) is loaded in the M register. 8) Next, the updated envelope is subtracted from the changed envelope level, and it is determined whether the envelope has reached the target value (at that time, the lower register of A register is loaded with lower j of AMD j or PMD j ). ). If the envelope has not reached the target value, F '= "0", and the envelope flag (S register) is not updated, and the updated envelope value stored in the upper register of the A register is not updated. Write the upper address to the address corresponding to the upper envelope of RAM7; ▲ E M ij ▼. If the envelope has reached the target value,
F ′ = “1”, 9F ′) The lower 3 bits representing the step of the envelope flag 7 (S register) are updated (1 + S), the “node” bit is set to “0”, and the sustain flag; EL ij ( s) If 7 is "1", the "hold" bit is set to "1" and stored in the upper register A register. At that time,
The changed envelope level value is loaded into the B register as the envelope value, and is written in the address corresponding to the envelope upper level; ▲ E M ij ▼ in RAM7. 1
0) then reached, in either case of non-arrival, since the B register lower containing the envelope lower data to be stored, it envelopes the lower RAM 7; writing the ▲ E L ij ▼ address. However, if the bit of the node is "0" that represents the node, the above operation is not performed, but the current direction of the envelope and the target value are compared to determine the direction in which the envelope should proceed and the bit of the code Is set. As described above, in the basic envelope calculation, the traveling direction of the envelope is determined for each node of the step, and a) change of the envelope rate level b) update of the envelope c) determination of whether or not the target level is reached d) It is performed by storing the envelope current value.

次に、11)Aレジスタ上位にMレジスタのデータが転送
されるとともにAレジスタ上位のデータがRAM7のエンベ
ロープフラグ;EFijのアドレスに書込まれる。このと
き、Aレジスタ下位には振幅モジュレーション;AMDj
はピッチモジュレーション;PMDjの下位データ、Mレジ
スタにはその上位データが入っている。
Next, 11) the data of the M register is transferred to the upper register of the A register, and the upper register data of the A register is written to the address of the envelope flag; EF ij of the RAM 7. At this time, the lower register of the A register contains the lower data of the amplitude modulation; AMD j or the pitch modulation; PMD j , and the upper data of the M register.

まず、モジュール0〜7の演算(カウンタ3=0〜7)
について考える。12)BレジスタにあるRAM7に書込ん
だエンベロープのデータをAレジスタにロードするとと
もに、Aレジスタ下位にある振幅モジュレーション下
位;▲AMDL j▼のデータをBレジスタ下位にロードす
る。13)振幅感度;MSijをSレジスタにロードする。
次に14)Aレジスタのエンベロープのデータから、
M、Bレジスタ下位のAMDjのデータをMSijに応じて減算
し、最終エンベロープデータとして、指数変換/位相角
生成回路13に転送する。その時Aレジスタ上位にはキー
コード上位;▲KCM j▼をロードしておく。15)Aレジ
スタ下位にキーコード下位;▲KCL j▼をロードする。16
)Bレジスタ上位にピッチのエンベロープ上位;▲PE
M j▼、17)下位に▲PEM j▼をロードする。18)キー
コードとピッチのエンベロープを加算しAレジスタに格
納するとともに、周波数上位;▲FRM ij▼をBレジスタ
上位にロード。19)周波数比下位;▲FRL ij▼をBレ
ジスタ下位にロードする。0)次の演算サイクルの0の
タイミングでピッチのエンベロープ付きのキーコードに
周波数比を加減算(F2に応じて)した最終的なキーコー
ドとして指数変換/を位相角生成回路13に転送する。
First, calculation of modules 0 to 7 (counter 3 = 0 to 7)
think about. 12) The envelope data written to the RAM 7 in the B register is loaded into the A register, and the amplitude modulation lower order under the A register; ▲ AMD L j ▼ data is loaded into the B register lower order. 13) Amplitude sensitivity; MS ij is loaded into the S register.
Next, from the envelope data of 14) A register,
The data of AMD j in the lower part of the M and B registers is subtracted according to MS ij and transferred to the exponential conversion / phase angle generation circuit 13 as the final envelope data. At that time, the key code high-order; ▲ KC M j ▼ is loaded in the A-register high-order. 15) A register lower the key code subordinate; ▲ KC L j ▼ loading. 16
) Upper register of pitch B, upper envelope of pitch; ▲ PE
M j ▼, 17) Load ▲ PE M j ▼ in the lower level. 18) Add the key code and pitch envelope and store in the A register, and load the upper frequency; ▲ FR M ij ▼ into the B register. 19) Lower frequency ratio; ▲ FR L ij ▼ is loaded into the lower register of B register. 0) At the timing of 0 in the next operation cycle, exponential conversion / is transferred to the phase angle generation circuit 13 as a final key code obtained by adding / subtracting the frequency ratio (according to F2) to the key code with the pitch envelope.

次にピッチの演算(カウンタ3=8)について考える。
12P)BレジスタのRAM7に書込んだエンベロープのデー
タにAレジスタにあるピッチモジュレーション;PMDj
加減算(F2に応じて)し、最終的なピッチのエンベロー
プ;PEjとしてBレジスタに格納する。そのとき、Aレ
ジスタ上位に振幅モジュレーション上位;▲AMDM j▼を
ロードしておく。13P)振幅モジュレーション下位;▲A
MDL j▼をAレジスタ下位にロードする。14P)モジュレ
ーションレート;MRjをMレジスタにロードする。15P)
AMDjをMRjをF2に応じて加減算するとともにモジュレー
ションレベル;MLjをMレジスタにロードする。16P)振
幅モジュレーション;AMDjを更新した値とモジュレーシ
ョンレベルを比較する(その時ピッチのエンベロープ上
位をRAM7の▲PEM j▼に書込む)。振幅モジュレーション
が目標値;MLjに到達していないなら、17P▲▼)ピ
ッチのエンベロープ下位▲PEL j▼をRAM7に書込み、到達
しているのなら、17PF′)目標値;MLjをAレジスタに
ロードするとともに、▲PEL j▼をRAM7に書込む。Aレジ
スタの目標値を越えない振幅モジュレーションのデータ
を18P)上位、19P)下位とRAM7に書込む。尚、20P〜31P
は演算タイミングの調整のためのNOPである。ここで、
振幅モジュレーションはCPUから与えられるアフタータ
ッチ等の検出量の前回検出量との差の絶対値;MRj、符
号;▲MR7 j▼、及び今回検出量;MLjのデータ(第21図
参照)を基にして、補間することによって生成されてい
る。
Next, consider the pitch calculation (counter 3 = 8).
12P) Pitch modulation; PMD j in the A register is added / subtracted (according to F2) to the envelope data written in the RAM 7 of the B register, and stored in the B register as the final pitch envelope; PE j . At that time, the amplitude modulation upper level; ▲ AMD M j ▼ is loaded in the A register upper level. 13P) Lower amplitude modulation; ▲ A
Load MD L j ▼ into the lower register of the A register. 14P) Modulation rate; MR j is loaded into the M register. 15P)
Add and subtract AMD j from MR j according to F2 and load modulation level; ML j into M register. 16P) Amplitude modulation: Compare the updated value of AMD j with the modulation level (at that time, write the upper envelope of the pitch into ▲ PE M j ▼ of RAM7). If the amplitude modulation has not reached the target value; ML j , write 17P ▲ ▼) Lower pitch envelope ▲ PE L j ▼ in RAM7, and if it has reached, 17PF ') Target value; ML j to A Load the register and write ▲ PE L j ▼ to RAM7. Write the amplitude modulation data that does not exceed the target value of the A register to RAM7 at 18P) upper and 19P) lower. 20P-31P
Is a NOP for adjusting the calculation timing. here,
Amplitude modulation is the absolute value of the difference between the detected amount of aftertouch etc. given by the CPU and the detected amount of the previous time; MR j , sign; ▲ MR 7 j ▼, and the detected amount of this time; ML j data (see Fig. 21) It is generated by interpolating based on.

MR(1)=ML(0)−ML(1)、MR(1)7=0 MR(2)=ML(1)−ML(2)、MR(2)7=0 MR(3)=ML(2)−ML(3)、MR(3)7=0 MR(4)=ML(4)−ML(3)、MR(4)7=1 : : : : : : : : 第22図は第17図のエンベロープ/キーコード生成回路12
が上述の動作を行なうための基本的信号を発生するため
の演算用タイミング信号発生回路305の詳細図である。
図示のように、演算用タイミング信号発生回路305はROM
化(ファームウェア)化された構造をもっており、その
動作についてエンベロープ/キーコード生成回路12の主
な動作をまとめた第20B図を参照して説明する。入力BC0
〜4はカウンタB303の中のカウンタ1の出力で基本タイ
ミングである。又、PはカウンタB303の中のカウンタ3
のMSBすなわちピッチの演算中“1"の信号であり、F′
ば動作フローの分枝フラグF′に対応している。図中
0、1、……、9F′、12Pはタイミングに相当し、夫
々、タイミング0、タイミング1、……、F′=1のと
きのタイミング9、P=1のときのタイミング12を意味
している。第22図の中で「BW0」はエンベロープ/キー
コード生成回路12からRAM7のデータが書込まれるための
原信号で、第20B図の“データバスD0〜7"にレジスタ出
力が出る時のみ“1"となっている。LSIにはアドレスのL
SBを強制的に“1"とするもので後述するようにタイミン
グ12、12P、13P、17、17P▲▼、17PF′、18P、
19Pで“1"となる。▲▼はアドレス下位4ビット
(モジュール)をオール0にするもので第20B図のデー
タにiのINDEXがついていないタイミングで“1"とな
る。OA0〜4は原アドレス信号で、第20B図の“アドレ
ス”に対応している。ただし、タイミング1、5の“SS
S"は原アドレスOA0〜2のかわりのエンベロープフラグ
(Sレジスタ)の下位3ビット(ステップ)がアドレス
として採用されることを意味している。a〜kは第23図
に示すようにクロック発生回路304の出力である各種ク
ロック、CKAM、CKAL、……、CKE等を生成するための信
号で、第20B図“クロック”のタイミングで“1"とな
る。RA、RBは夫々Aレジスタ、BレジスタるRAM7からの
データをロードする時“1"となる信号で、第20B図“A
レジスタ入力”、“Bレジスタ入力”に対応している。
AM、AL、BM、BLはデータバスD0〜7に夫々のレジスタ出
力を出力する時に“1"となる信号で、第20B図の“デー
タバスD0〜7"に対応している。B0はBレジスタの出力を
常にマスクするためのもので第20B図の“加減算器B入
力”が上位側“M"、下位側“0"のときに“1"となる。A0
はAレジスタの出力を常にマスクするためのもので、第
20A図のフローで9▲▼;AM←0+S、9F′;AM
1+S、11;AM←0+M、12;A←0+B、17PF′;A←
0+M、(0)に対応し“1"となる。Mは加減算器440
のB入力がMレジスタ出力となる場合に“1"となるもの
で、第20B図の“加減算器B入力”の上位側が“M"とな
っているタイミングに“1"となる。SUは加減算器440の
演算を減算形式、すなわち“A−B"又は“A−M"とする
信号で、第20A図のフローの8;A−B、14;A−M
(BL)、16P;A−M(0)で“1"となる。SF2は加減算器
440のB入力側符号をF2の値とするもので、後述するよ
うにタイミング0、15P、16Pで“1"となる。
MR (1) = ML (0) -ML (1), MR (1) 7 = 0 MR (2) = ML (1) -ML (2), MR (2) 7 = 0 MR (3) = ML (2) -ML (3), MR (3) 7 = 0 MR (4) = ML (4) -ML (3), MR (4) 7 = 1: 1 ::::::::: Envelope / key code generation circuit 12 in FIG.
FIG. 4 is a detailed diagram of a calculation timing signal generating circuit 305 for generating a basic signal for performing the above-described operation.
As shown, the calculation timing signal generation circuit 305 is a ROM
The operation will be described with reference to FIG. 20B in which the main operations of the envelope / key code generation circuit 12 are summarized. Input BC0
˜4 are outputs of the counter 1 in the counter B303, which are basic timings. Also, P is the counter 3 in the counter B303.
Is the signal of "1" during the calculation of the MSB, that is, the pitch, and F '
For example, it corresponds to the branch flag F'of the operation flow. In the figure, 0, 1, ..., 9F ', 12P correspond to timings, meaning timing 0, timing 1, ..., Timing 9 when F' = 1 and timing 12 when P = 1, respectively. is doing. In FIG. 22, “BW 0 ” is the original signal for writing the data of RAM7 from the envelope / key code generation circuit 12, and only when the register output is output to “data bus D0-7” in FIG. 20B. It is “1”. Address L for LSI
SB is forcibly set to "1", and timings 12, 12P, 13P, 17, 17P ▲ ▼, 17PF ', 18P,
It becomes "1" at 19P. ▲ ▼ sets all the lower 4 bits (module) of the address to 0, and becomes "1" at the timing when the INDEX of i is not added to the data of FIG. 20B. OA0 to 4 are original address signals and correspond to "address" in FIG. 20B. However, "SS of timing 1 and 5"
S "means that the lower 3 bits (steps) of the envelope flag (S register) instead of the original addresses OA0 to 2 are adopted as addresses. A to k are clock generation as shown in FIG. Signals for generating various clocks, CKAM, CKAL, ..., CKE, etc., which are the outputs of the circuit 304, and become "1" at the timing of "clock" in Fig. 20B. RA and RB are A register and B respectively. A signal that becomes "1" when loading data from the register RAM7.
It corresponds to "register input" and "B register input".
AM, AL, BM, and BL are signals that become "1" when the respective register outputs are output to the data buses D0-7, and correspond to the "data buses D0-7" in FIG. 20B. B0 is for always masking the output of the B register, and becomes "1" when the "adder / subtractor B input" in FIG. 20B is the upper side "M" and the lower side "0". A0
Is for always masking the output of the A register.
In the flow of Fig. 20A, 9 ▲ ▼; A M ← 0 + S, 9F '; A M
1 + S, 11; AM ← 0 + M, 12; A ← 0 + B, 17PF '; A ←
It becomes “1” corresponding to 0 + M and (0). M is adder / subtractor 440
It becomes "1" when the B input of becomes the M register output, and becomes "1" at the timing when the upper side of the "adder / subtractor B input" in FIG. 20B becomes "M". SU is a signal that makes the operation of the adder / subtractor 440 a subtraction type, that is, "AB" or "AM", and is 8; AB, 14; AM in the flow of FIG. 20A.
( BL ), 16P; A-M (0) becomes "1". SF2 is an adder / subtractor
The code on the B input side of 440 is used as the value of F2, and becomes "1" at timings 0, 15P, and 16P as described later.

次に、第24図演算用アドレス生成回路301について説明
する。大抵の場合アドレス信号BA0〜11は、以下のよう
に構成されている。
Next, FIG. 24 calculation address generation circuit 301 will be described. In most cases, the address signals BA0-11 are constructed as follows.

さらに、BA0〜3はカウンタB303の出力BC8〜11、BA4〜
5はBC5〜7、BA7〜11は演算用タイミング信号発生回路
305のアドレス信号OA0〜4に対応している。次に特殊な
場合について考える。タイミング1のとき信号は0で
ある。またOA4も第20B図から“1"である。そのとき7
が“1"すなわちハイリリースでないなら、インバータ37
1、インバータ365〜367、バッファ368、370によりアド
レスは、 OA4 OA3 S2 S1 S0 BC7 BC6 BC5 BC11 BC10 BC9 BC8 となる。したがってエンベロープフラグにより示される
ステップのエンベロープレート;ERij(s)のアドレス
となる。タイミング5も同様である。もし、7が“0"
すなわちハイリリースなら、オア363、アンド364により
アドレスは、 0A3 S2 S1 S0 BC7 BC6 BC5 BC11 BC10
BC9 BC8 となる。ここでハイリリースの設定はCPUからインスト
ラクション“フラグセット”、データ“10000111"で行
なえば、上のアドレス上位5ビットは“00111"となり、
ハイリリースレート;HRijを示す固有アドレスとなる。
したがってハイリリース時には通常のエンベロープレー
トではなくハイリリースレートが読出され使われること
になる。次に、タイミング2、14、14P、15、15P、
16、16Pのとき、▲▼は“1"、LSIは“0"であるか
ら、インバータ385、386、ノア383、384、クロックノア
382により、アドレスは、 OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 0 となる。次にタイミング7、8のとき、7、8は“1"、
▲▼は“1"、LSIは“0"であるから、モード信号/
Iがチャンネル独立を示す“1"のとき、インバータ385、
386、クロックインバータ381、アンド378〜380により、
アドレスは、 OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 ▲
となる。したがって、インストラクション“ピッチモジ
ュレーション”で書込まれたチャンネル別のピッチモジ
ュレーションデータがピッチ演算中のタイミング7、8
で読出され、エンベロープ/キーコード生成回路12内部
で生成されたチャンネル独立の振幅モジュレーションデ
ータがモジュール0〜7演算中のタイミング7、8で読
出されることになる。もし、タイミング7、8でモード
信号/Iがチャンネル共通を表わす“0"ならば、アンド
372〜374、オア375〜377によりアドレスは、 OA4 OA3 OA2 OA1 OA0 0 0 0 0 0 0 ▲▼ となる。従って、全チャンネル共通の振幅、ピッチモジ
ュレーションデータを読出すことになる。次にタイミン
グ12、12P、13P、17、17P′、17PF′、18P、19P
のときは▲▼、LSIは“1"なので、インバータ385、
386、ノア383、384、クロックノア382、アンド378〜380
により、アドレスは、 OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 1 となる。これは第20B図の“*”を付けたアドレスに対
応するものでこれらのデータは、データ識別を上位5ビ
ットとLSBを使っているものである。尚、“**”を付
けたアドレスは、LSBを“1"とすることでデータMLjのア
ドレスと区別し、そこをダミーアドレスとしている(こ
のタイミング12ではレジスタALからレジスタBLにデー
タバスD0〜7を介して転送するのでRAM7の書込み信号が
出てしまうため)。以上のように演算用アドレス生成回
路301は動作フロー第20A図に対応するアドレス信号B0〜
11を発生する。
Further, BA0 to 3 are outputs BC8 to 11 and BA4 to BA4 of the counter B303.
5 is BC5-7, BA7-11 is a calculation timing signal generation circuit
It corresponds to the address signals OA0-4 of 305. Now consider a special case. At the timing 1, the signal is 0. OA4 is also "1" from Fig. 20B. Then 7
Inverter 37
1, the address is OA4 OA3 S 2 S 1 S 0 BC7 BC6 BC5 BC11 BC10 BC9 BC8 due to the inverters 365 to 367 and the buffers 368 and 370. Therefore, the address is the envelope rate of the step indicated by the envelope flag; ER ij (s). Timing 5 is the same. If 7 is “0”
In other words, for high release, the address is 0 0A3 S 2 S 1 S 0 BC7 BC6 BC5 BC11 BC10 by OR 363 and AND 364.
BC9 It becomes BC8. If the high release is set from the CPU with the instruction "flag set" and data "10000111", the upper 5 bits of the upper address will be "00111".
High release rate: A unique address indicating HR ij .
Therefore, at the time of high release, the high release rate is read and used instead of the normal envelope rate. Next, timing 2, 14, 14P, 15, 15P,
In 16 and 16P, ▲ ▼ is “1” and LSI is “0”, so inverters 385, 386, NOR 383, 384, clock NOR
According to 382, the address becomes OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 00 00. Next, at timings 7 and 8, 7 and 8 are "1",
Since ▲ ▼ is “1” and LSI is “0”, the mode signal /
When I is "1" indicating channel independence, inverter 385,
By 386, clock inverter 381, and 378-380,
The address is OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 ▲
Therefore, the pitch modulation data for each channel written by the instruction “pitch modulation” is used for the timing 7 and 8 during the pitch calculation.
The channel-independent amplitude modulation data generated in the envelope / key code generation circuit 12 is read at timings 7 and 8 during the operation of modules 0 to 7. If the mode signal / I is "0" indicating that the channel is common at timings 7 and 8, then AND
The addresses are OA4 OA3 OA2 OA1 OA0 0 0 0 0 0 0 ▲ ▼ by 372 to 374 and ORs 375 to 377. Therefore, the amplitude and pitch modulation data common to all channels are read. Next, the timing 12, 12P, 13P, 17, 17P ', 17PF', 18P, 19P
, ▲ ▼, because the LSI is “1”, the inverter 385,
386, Noah 383, 384, Clock Noah 382, And 378-380
Therefore, the address becomes OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 1 This corresponds to the address marked with "*" in Fig. 20B, and these data use the upper 5 bits and LSB for data identification. The address with "**" is distinguished from the address of the data ML j by setting the LSB to "1", and the dummy address is used (at this timing 12, the data from register A L to register B L Since the data is transferred via the buses D0 to 7, the RAM7 write signal will be output). As described above, the arithmetic address generating circuit 301 is operated by the address signals B0 ...
Raise 11.

第25図に演算用制御信号発生回路307の詳細図を示す。
aは、クロックCKAMの条件信号、RAはRAM7からAレジス
タへのロード制御信号である。ここでRAM7からAレジス
タ上位にデータをロードするときには、Aレジスタ下位
にはオール0を入力するためにナンド387によって▲
▼を“0"にする(例えばタイミング1)。同時に、
Bレジスタ上位にRAM7からデータをロードするときに
は、Bレジスタ下位にオール0を入力するために▲
▼が“0"となる。AM、AL、BM、BLは、夫々のレジスタ
のデータをデータバスD0〜7に出力するための条件信号
で、エンベロープ/キーコード生成回路12のRAM7の占有
時間は、T2が“1"のときでそのデータ出力時間の巾は第
7図の▲▼が“0"の巾だから第26図のようにAM′、
AL′、BM′、BL′が生成される。また、レジスタ上位は
A、Bとも7ビットでデータバスのMSBD7に出力するビ
ットがないので、A又はBレジスタ上位をデータバスD0
〜7に出力する場合にはオア394、アンド393によりMSB
として、SレジスタMSBを出力する。B0′はBレジスタ
出力をマスクする信号で、演算用タイミング信号発生回
路305からのB0、及びタイミング5、すなわちエンベロ
ープレートの加減算時の加減算イネーブル信号▲▼
(後述)、タイミング14の振幅モジュレーション減算
時のモジュレーション感度が0の信号MO0(後述)に従
ってアンド395、オア396により“1"となる。A0′は、A
レジスタの出力をマスクする信号で、演算用タイミング
信号発生回路305からのA0、及びタイミング5、すなわ
ちエンベロープレート加減算時のエンベロープ現在値を
マスクする信号E0に従って、アンド397、オア398により
“1"となる。“▲▼”は、Aレジスタの出力を1000
00000000000とするもので、ピッチのエンベロープ演算
中にエンベロープ現在値をマスクする信号E0に従ってナ
ンド400により“0"となる。
FIG. 25 shows a detailed diagram of the arithmetic control signal generation circuit 307.
a is a condition signal of the clock CKAM, and RA is a load control signal from the RAM 7 to the A register. Here, when data is loaded from RAM7 to the upper register A, all 0s are input to the lower register A by NAND 387.
Set ▼ to “0” (for example, timing 1). at the same time,
When loading data from RAM7 to the upper register of B register, input all 0s to the lower register of B register.
▼ becomes “0”. AM, AL, BM, and BL are condition signals for outputting the data of the respective registers to the data buses D0 to D7. The occupying time of RAM7 of the envelope / key code generation circuit 12 is when T2 is "1". The data output time is AM ', as shown in Fig. 26 because ▲ ▼ in Fig. 7 is "0".
AL ', BM', BL 'are generated. In addition, since the upper register is 7 bits for both A and B, there is no bit to output to MSBD7 of the data bus.
When outputting to ~ 7, MSB by OR 394, AND 393
As a result, the S register MSB is output. B0 'is a signal for masking the output of the B register, and B0 from the arithmetic timing signal generating circuit 305 and timing 5, that is, an addition / subtraction enable signal ▲ ▼ at the time of envelope rate addition / subtraction
As will be described later, the AND sensitivity is set to "1" by the AND 395 and the OR 396 according to the signal MO0 (described later) in which the modulation sensitivity at the time of amplitude modulation subtraction at timing 14 is 0. A0 'is A
A signal for masking the output of the register, which is set to "1" by the AND 397 and the OR 398 in accordance with A0 from the operation timing signal generating circuit 305 and the signal E0 for masking the envelope current value at the timing 5, that is, the envelope rate addition / subtraction. Become. “▲ ▼” indicates the output of the A register is 1000
It is set to 00000000000, and becomes "0" by the NAND 400 in accordance with the signal E0 for masking the envelope current value during the pitch envelope calculation.

第27図は、エンベロープ/キーコード生成回路12で、エ
ンベロープフラグをロードし(タイミング0)、再び書
込む(タイミング11)までの間にCPUから転送されたイ
ンストラクションによって同一チャンネル同一モジュー
ル又はピッチのエンベロープフラグが書き替えられた場
合に、エンベロープ/キーコード生成回路12からRAM7に
エンベロープフラグを書き込むのを禁止する、書込み禁
止回路302の詳細図である。エクスクルーシブ・オア408
〜414、ノア407は比較回路を形成し、インタフェース/
制御部11からのアドレスでチャンネル、モジュール又は
ピッチに相当するビットAA0〜6と、エンベロープ/キ
ーコード生成回路12での演算チャンネル、モジュール又
はピッチに相当するカウンタ3の出力BC5〜11とを比較
し、一致したら“1"を出力する。第28図は書込み禁止回
路302のタイムチャートである。第27図のナンド406の出
力はインタフェース/制御部11がエンベロープ/キー
コード生成回路12で演算しているチャンネル、モジュー
ル又はピッチと同じチャンネル、同じモジュール又はピ
ッチのエンベロープフラグを書込んだ時に“0"となる。
第18図(1)はエンベロープ/キーコード生成回路12で
エンベロープフラグを読出した直後にインタフェース/
制御部11が同一チャンネル、同一モジュール又はピッチ
のエンベロープフラグを書込んだ場合であり、はタイ
ミング1の後半から0となって書込みを禁止する。尚タ
イミング0以前にが“0"となっていもオア404によっ
てタイミング0でフリップフロップ403は“1"にセット
されるので書込みは禁止されない。(2)はエンベロー
プ/キーコード生成回路12がエンベロープフラグを書込
む直前にインタフェース/制御部11が同一チャンネル、
モジュール又はピッチのエンベロープフラグを書込んだ
場合であり、はタイミング11の後半で0となって書込
みを禁止する。したがって、タイミング1〜11の間に同
一チャンネル、同一モジュール又はピッチのエンベロー
プフラグが、インタフェース/制御部11で書込まれたら
エンベロープ/キーコード生成回路12からのエンベロー
プフラグの書込みを禁止する。
FIG. 27 shows that the envelope / key code generation circuit 12 loads an envelope flag (timing 0) and writes it again (timing 11) until the instruction transferred from the CPU causes an envelope of the same module or pitch on the same channel. FIG. 6 is a detailed diagram of a write inhibit circuit 302 that inhibits the envelope / key code generation circuit 12 from writing the envelope flag in the RAM 7 when the flag is rewritten. Exclusive Or 408
~ 414, Noah 407 forms a comparison circuit, interface /
Bits AA0 to 6 corresponding to the channel, module or pitch in the address from the control unit 11 are compared with outputs BC5 to 11 of the counter 3 corresponding to the operation channel, module or pitch in the envelope / key code generation circuit 12. , If it matches, "1" is output. FIG. 28 is a time chart of the write inhibit circuit 302. The output of the NAND 406 of FIG. 27 is "0" when the interface / control unit 11 writes the channel flag calculated by the envelope / key code generation circuit 12, the same channel as the module or pitch, or the envelope flag of the same module or pitch. "It becomes.
FIG. 18 (1) shows the interface / key code generation circuit 12 immediately after the interface flag is read.
In the case where the control unit 11 writes the envelope flag of the same channel, the same module, or the pitch, in the latter half of timing 1, the writing becomes 0 and the writing is prohibited. Even if the value is "0" before the timing 0, the OR 404 sets the flip-flop 403 to "1" at the timing 0, so that writing is not prohibited. In (2), the interface / control unit 11 is on the same channel immediately before the envelope / key code generation circuit 12 writes the envelope flag,
In the case where the module or pitch envelope flag is written, becomes 0 in the latter half of timing 11 and writing is prohibited. Therefore, if the envelope flag of the same channel, the same module, or the pitch is written by the interface / control unit 11 between the timings 1 to 11, the writing of the envelope flag from the envelope / key code generation circuit 12 is prohibited.

第29図は指数データ用アドレス生成回路306の詳細図で
ある。フリップフロップ415〜420、反転出力フリップフ
ロップ421は演算回路308で生成された最終エンぺロープ
及び最終キーコードを指示変換/位相角生成回路13で指
数変換してメモリに書込む際の書込みアドレスを記憶す
る。クロックインバータ425〜434は書込みP1アドレスと
読出しアドレスC1〜5をタイミング信号T2によっで切換
えることにより、アドレス信号DA1〜5を生成する(ア
ドレスDA0は書込みアドレスと同じ)。指数変換された
エンベロープ、及び周波数情報は、アンド422、423によ
って生成されたWEE、WEF、アドレスDA0〜5によって夫
々メモリに書込まれる(詳細は詳述)。
FIG. 29 is a detailed diagram of the index data address generation circuit 306. The flip-flops 415 to 420 and the inversion output flip-flop 421 are write addresses when the final envelope and the final key code generated by the arithmetic circuit 308 are exponentially converted by the instruction conversion / phase angle generation circuit 13 and written in the memory. Remember. The clock inverters 425 to 434 generate the address signals DA1 to 5 by switching the write P1 address and the read addresses C1 to 5 by the timing signal T2 (the address DA0 is the same as the write address). The index-converted envelope and frequency information are written in the memory by WEE, WEF, and addresses DA0-5 generated by AND 422 and 423, respectively (details will be described in detail).

次に演算回路308を第30図を用いて説明する。上述した
ような第17図の制御信号によって演算回路308は第20A図
の動作フローのように動作を行っている。
Next, the arithmetic circuit 308 will be described with reference to FIG. The arithmetic circuit 308 operates in accordance with the control signal of FIG. 17 as described above as in the operation flow of FIG. 20A.

第31図はAレジスタの詳細図である。Aレジスタは、下
位側FF485〜492、上位側FF493〜499およびFFへの入力選
択用クロックナンド454〜461、クロックインバータ462
〜483、及びFF出力のバスD0〜7への出力用クロックイ
ンバータ500〜514、及び加減算器440のA入力への出力
変更用ゲート群515〜531によって構成されている。信号
RAはデータバスD0〜7と演算出力L0〜14からのFFへの入
力選択、▲▼はD0〜7を上位側FF493〜499にロー
ドする際に下位側FF485〜492にオール1を入力する信号
である。尚、下位側FF485〜492にオール1がロードされ
るのは▲▼が“0"でクロックCKALが出た時であ
る。また、信号AL′、AM′は、Aレジスタ下位又は上位
のデータをデータバスD0〜7に出力するか否かを制御す
るものである。ゲート群515〜531は加減算器440のA入
力へのデータを変更するもので、A0′が“1"ならばオー
ル0、▲▼が0ならば00000010……0(第20A図
動作フローにおけるエンベロープステップの更新処理9
F′;AM←1+sに対応)、 が“0"ならば第25図よりA0′は1なので10……0(ピッ
チのエンベロープのスタートデータに相当)。
FIG. 31 is a detailed diagram of the A register. The A register is a clock NAND 454 to 461 for input selection to the lower FF485 to 492, an upper FF493 to 499 and FF, a clock inverter 462.
.About.483, output clock inverters 500 to 514 for outputting the FF output to the buses D0 to 7, and output changing gate groups 515 to 531 to the A input of the adder / subtractor 440. signal
RA is the input selection to the FF from the data bus D0 to 7 and the operation output L0 to 14, and ▲ ▼ is a signal to input all 1s to the lower side FF485 to 492 when loading D0 to 7 to the upper side FF493 to 499. Is. All 1s are loaded to the lower FFs 485 to 492 when ▼ is “0” and the clock CKAL is output. Further, the signals AL 'and AM' control whether or not the lower or upper data of the A register is output to the data buses D0 to D7. The gate groups 515 to 531 change the data to the A input of the adder / subtractor 440. If A0 'is "1", all 0s. If ▲ ▼ is 0, 00000010 ...... 0 (envelope in the operation flow of FIG. 20A. Step update process 9
F ′; A M ← 1 + s), If is "0", A0 'is 1 from Fig. 25, so it is 10 ... 0 (corresponding to the start data of the pitch envelope).

第32図は、Bレジスタの詳細図である。Bレジスタは下
位側FF564〜571、上位側FF572〜578、及びFFへの入力選
択用クロックナンド532〜539、クロックインバータ540
〜562、及びデータバスD0〜7への出力用クロックナン
ド579〜593、及びシフト回路438への出力を変更するゲ
ート594〜616によって構成されている。信号RBは、デー
タバスD0〜7と演算出力L0〜14からのFFへの入力選択、
▲▼はD0〜7を上位側FF572〜578にロードする際
に下位側FF564〜571にオール1を入力する信号である。
尚、下位側FF564〜571にオール1がロードされるのは、
▲▼が“0"でクロックCKBLがでた時である。ま
た、信号BL′、BM′は、Bレジスタの下位又は上位のデ
ータをデータバスD0〜7に出力するか否かを制御するも
のである。ゲート群594〜616はシフト回路438への出力
データを変更するもので、Bが“1"ならBレジスタ上位
を出力、“0"ならばM又はSレジスタをBレジスタ上位
のかわりにシフト回路438へ出力するB0′が“1"、Bが
“1"ならば出力BI0〜14はオール0となり、B0′が
“1"、Bが“0"ならば、上位7ビットはM又はSレジス
タの出力、下位8ビットはオール0となる。又信号5が
“1"のときはBは“1"なのでB0が“0"ならば出力は1、
BO10、BO9、BO8、0……0となる。これはエンベロープ
レートデータのレンジを広げるためのデータ変換で、BO
11〜BO14によって変換されたデータのシフト又はデータ
加減算の間引き等を行なうことによって、所望範囲のエ
ンベロープの上昇下降速度を得ている。第3にBレジス
タ上位に入っているエンベロープレート;ER6、ER5……
ER0の変換を示す。
FIG. 32 is a detailed diagram of the B register. B register is for lower side FF564 to 571, upper side FF572 to 578, and clock NANDs 532 to 539 for input selection to FF, clock inverter 540.
˜562, and output clock NANDs 579 to 593 to the data buses D0 to 7, and gates 594 to 616 for changing the output to the shift circuit 438. The signal RB is an input selection to the FF from the data buses D0 to 7 and operation outputs L0 to 14,
▲ ▼ is a signal for inputting all 1s to the lower FFs 564-571 when loading D0-7 to the upper FFs 572-578.
In addition, all 1 is loaded to the lower FF564-571,
It is when ▲ ▼ is “0” and the clock CKBL appears. Further, the signals BL 'and BM' control whether to output the lower or upper data of the B register to the data buses D0 to D7. The gate groups 594 to 616 change the output data to the shift circuit 438. When B is "1", the upper register of the B register is output, and when "0", the M or S register is shifted to the shift circuit 438 instead of the upper register of the B register. If B0 'is "1" and B is "1", the outputs BI0-14 are all 0. If B0' is "1" and B is "0", the upper 7 bits are M or S register. The output and lower 8 bits are all 0s. When the signal 5 is "1", B is "1", so if B0 is "0", the output is 1.
BO10, BO9, BO8, 0 ... 0. This is a data conversion for expanding the range of envelope rate data.
The rising and falling speeds of the envelope in the desired range are obtained by shifting the data converted by 11 to BO14 or thinning out the data addition / subtraction. Third, the envelope rate in the upper register of B register; ER 6 , ER 5 ......
Indicates conversion of ER 0 .

第33図はMレジスタの詳細図で、反転出力FF617〜623は
クロックCKMによりデータバスD0〜6のデータを取込
む。クロックノア624〜630は信号Mが“1"のときNレジ
スタのデータを出力するものでMが“1"、MO0が“1"の
ときオール0を出力する。
FIG. 33 is a detailed view of the M register. The inverted outputs FF617-623 take in the data on the data buses D0-6 by the clock CKM. The clock NORs 624 to 630 output the data of the N register when the signal M is "1" and output all 0s when M is "1" and MO0 is "1".

第34図にシフト制御回路447を示す。クロックインバー
タ643〜645、クロックノア664、637、640の制御入力に
より信号14が“1"のときすなわち第20A図動作フロー
における最終エンベロープの演算処理“E←A−M(E
←Eij−AMDj)”のときだけSレジスタ下位3ビット
(モジュレーション感度)に応じたシフト制御信号SH
1、2、4、8を出力する。尚、シフト回路438は、SH
1、2、4、8の信号が“1"のときそれぞれ1左シフト
(×1/2)、2左シフト(×1/4)、4左ヒフト(×1/1
6)、8左シフト(×1/256)を行うもので、例えばSH
1、2、4、8がそれぞれ1、0、1、0ならばトータ
ルで5左シフト(×1/32)のシフトを行なうものである
(図示せず)。したがって“A←A−M(A←Eij−AMD
j)”の時はモジュレーション感度MSijに応じて各モジ
ュール毎に重み付けされ、振幅モジュレーションがかけ
られる。尚、MSijが0のときはアンド649の出力MO0が
“1"となるため、演算は“A←A−0"となりモジュレー
ションはかからない。次に12Pが“1"のとき、すなわち
第20A図動作フローにおける最終ピッチエンベロープの
計算“B←±A+B(B←±PMDj+Epj)”のときは、S
H1、2、4、8がそれぞれ0、1、0、0となり2左シ
フト(×1/4)される(演算説明は後述)。また、15Pが
“1"のときすなわち動作フローにおける振幅モジュレー
ションの補間演算“A←A±M(A←AMDj±MRj)”の
ときは、MTが“0"なら、SH1、2、4、8は0、0、
1、0で4左シフト(×1/16)、MTが“1"ならSH1、
2、4、8は1、0、1、0となり5左シフト(×1/3
2)となる。ここで、前述したようにMRjはアフタータッ
チ等の検出量の前回検出量との差の絶対値であるから、
MT=“0"なら今回検出量である目標値MLjに到達するた
めには、MRjの加減算が16回必要となる。すなわち、第1
9図のタイムチャートから16×1.2288=19.6608(msec)
で到達することになる。これはmin19.6608msec毎にアフ
タータッチ等の検出データから算出したMLj、MRjをCPU
が転送すれば、音源LSI内部でデータを補間し、なめら
かなデータを生成することを意味している。また、MT=
“1"ならばMRjの加減算が32回必要となり、補間演算の
周期は、39.3216msecとなる。次にタイミング5につい
て考える。信号5が“1"であるからAND631〜633、635、
636、639、641が有効になるため、SH1、2、4、8の値
が▲▼〜▲▼によって決まり(表
4)、表3に示すようなデータのシフトが行なわれる。
尚、上記以外のタイミングでは、SH1、2、4、8は常
に0、0、0、0となるため、シフトは行なわれない。
FIG. 34 shows the shift control circuit 447. When the signal 14 is "1" by the control inputs of the clock inverters 643 to 645 and the clock NORs 664, 637, and 640, that is, the final envelope calculation process in the operation flow of FIG.
← E ij −AMD j ) ”only, the shift control signal SH corresponding to the lower 3 bits (modulation sensitivity) of the S register
Outputs 1, 2, 4, and 8. The shift circuit 438 is SH
When the signals of 1, 2, 4, and 8 are "1", 1 left shift (× 1/2), 2 left shift (× 1/4), and 4 left hyft (× 1/1)
6), 8 left shift (x 1/256), for example SH
If 1, 2, 4, and 8 are 1, 0, 1, and 0, respectively, a total of 5 left shifts (× 1/32) are performed (not shown). Therefore, “A ← A−M (A ← E ij −AMD
j ) ”, each module is weighted according to the modulation sensitivity MS ij and amplitude modulation is applied. When MS ij is 0, the output MO0 of AND 649 is“ 1 ”, so the calculation is performed. "A ← A-0" and no modulation is applied.Next, when 12P is "1", that is, the calculation of the final pitch envelope in the operation flow of Fig. 20A "B ← ± A + B (B ← ± PMD j + E pj )" When S
H1, 2, 4, and 8 become 0, 1, 0, and 0, respectively, and are shifted to the left by 2 (× 1/4) (calculation description will be given later). Further, when 15P is “1”, that is, when the interpolation calculation of amplitude modulation in the operation flow is “A ← A ± M (A ← AMD j ± MR j )”, if MT is “0”, SH1, 2, 4 , 8 is 0, 0,
4 left shift (× 1/16) with 1, 0, SH1 if MT is “1”,
2, 4, 8 becomes 1, 0, 1, 0 and 5 left shift (× 1/3
2) Here, as described above, MR j is the absolute value of the difference between the detected amount of aftertouch etc. and the previous detected amount,
If MT = “0”, addition / subtraction of MR j is required 16 times to reach the target value ML j which is the detected amount this time. That is, the first
16 × 1.2288 = 19.6608 (msec) from the time chart of 9 figures
Will be reached by. This is ML j , MR j calculated from the detected data such as aftertouch for every min19.6608msec to CPU
Means that the data is interpolated inside the sound source LSI to generate smooth data. Also, MT =
If it is "1", addition and subtraction of MR j are required 32 times, and the cycle of interpolation calculation is 39.3216 msec. Next, consider the timing 5. Since signal 5 is "1", AND631-633, 635,
Since 636, 639, and 641 are valid, the values of SH1, 2, 4, and 8 are determined by ▲ ▼ to ▲ ▼ (Table 4), and the data shift shown in Table 3 is performed.
At timings other than the above, SH1, 2, 4, and 8 are always 0, 0, 0, 0, and therefore no shift is performed.

第35図はエンベロープ制御回路448の詳細図である。エ
ンベロープ制御回路448は、タイミング5の演算でエン
ベロープを上昇、下降させるか、または停止させておく
かを制御するイネーブル信号▲▼を作るものであ
る。信号▲▼は、ナンド665により、▲▼が
“0"すなわち、ホールド中、またはが“1"すなわち、
エンベロープがステップの切替わり点におり、進むべき
方向を判定中のときは“1"となり、エンベロープを固定
させる。また、インバータ651〜654、カウンタ655、フ
リップフロップ656〜659、アンド660〜663、オア664は
エンベロープの傾きを変えるために、エンベロープ演算
の間引き信号を発生する回路を形成しており、オア664
の出力が0のとき、演算が間引きされるように▲▼
が“1"となる。表5にエンベロープレートの上位4ビッ
トのデータであるBレジスタ出力▲▼〜▲
▼の値と演算のイネーブル信号▲▼が“0"とな
るカウンタ値の関係を示す。
FIG. 35 is a detailed diagram of the envelope control circuit 448. The envelope control circuit 448 produces an enable signal ▲ ▼ for controlling whether the envelope is raised, lowered, or stopped in the calculation of timing 5. The signal ▲ ▼ indicates that ▲ ▼ is “0”, that is, is being held, or is “1”, that is,
When the envelope is at the step switching point and the direction in which to proceed is being determined, the value is "1" and the envelope is fixed. Further, the inverters 651 to 654, the counter 655, the flip-flops 656 to 659, the ANDs 660 to 663, and the OR 664 form a circuit that generates a thinning signal of the envelope operation in order to change the inclination of the envelope.
When the output of is 0, the calculation is thinned out.
Becomes “1”. Table 5 shows the B register output, which is the data of the upper 4 bits of the envelope rate.
The relationship between the value of ▼ and the counter value at which the operation enable signal ▲ ▼ becomes “0” is shown.

したがって表3の下部のような演算の間引きが行なわれ
る。
Therefore, the thinning-out of the operations shown in the lower part of Table 3 is performed.

第36図のデータ変更回路439の詳細図である。タイミン
グ12Pのとき、信号12Pは“1"となるから、ゲート回路66
6〜677により、出力BI″12〜14は BI″12=▲▼、BI″13=▲▼、 BI″14=BI′12 となる。タイミング12Pの演算は第20A図の動作フローで
は、“B←±A+B(B←±PMDj+Epj)”であり、B
I′0〜14は、Bレジスタ427の出力を左2シフトしたも
のであるから、Bレジスタの出力BI0〜14をデータに対
応させて▲E0 pj▼〜▲E14 pj▼とおくと、加減算器440
のB入力BI′0〜11、BI″12〜14は、 となる。これはピッチのエンベロープのレンジを中心レ
ベル10……0のまわりに1/4に圧縮したことを意味す
る。次に、タイミング18のとき信号18は“1"となる
から、ゲート回路666〜677により出力BI12〜14は BI″12=BI′12、BI″13=BI′13、 BI″14=▲▼ となる。タイミング18の演算は第20A図の動作フロー
では“A←A+B(A←KCj+PEpj)”であるから、B
レジスタの出力BI0〜14をデータに対応させて▲PE0 j
〜▲PE14 j▼とおくと加減算器440のB入力BI′0〜11、
BI″12〜14は、 となる。これは、最終的なピッチのエンベロープを中心
レベルより上なら正、下なら負の2の補数表示にしたこ
とになる。すなわちこれをキーコード;KCjに加算する
際に、最終的なピッチのエンベロープを10……0を中心
にしてそれより大きければその差を加算、小さければそ
の差を減算することに相当しており、キーコードに反映
されるピッチエンベロープを中心レベルに対して対称化
している。
FIG. 37 is a detailed diagram of the data change circuit 439 of FIG. 36. At timing 12P, the signal 12P becomes “1”, so the gate circuit 66
From 6 to 677, the outputs BI ″ 12 to 14 are BI ″ 12 = ▲ ▼, BI ″ 13 = ▲ ▼, BI ″ 14 = BI′12. The operation of timing 12P is "B ← ± A + B (B ← ± PMD j + E pj )" in the operation flow of FIG. 20A, and B
Since I'0 to 14 are obtained by shifting the output of the B register 427 by 2 to the left, if the outputs BI0 to 14 of the B register are made to correspond to the data, ▲ E 0 pj ▼ to ▲ E 14 pj ▼, Adder / subtractor 440
B input BI'0-11, BI ″ 12-14 of Becomes This means that the range of the pitch envelope is compressed 1/4 around the center level 10 ... 0. Next, at the timing 18, the signal 18 becomes "1", so that the outputs BI12-12 are BI "12 = BI'12, BI" 13 = BI'13, BI "14 = ▲ ▼ by the gate circuits 666-677. The operation at timing 18 is “A ← A + B (A ← KC j + PE pj )” in the operation flow of FIG.
Correspond the output BI0 to 14 of the register to the data ▲ PE 0 j
~ ▲ PE 14 j ▼ B input BI'0 to 11 of adder / subtractor 440,
BI ″ 12-14 are Becomes This means that the envelope of the final pitch is displayed in two's complement, which is positive above the center level and negative below. That is, when this is added to the key code; KC j , the envelope of the final pitch is centered at 10 ... 0, and if it is larger, the difference is added, and if it is smaller, the difference is subtracted. The pitch envelope reflected in the key code is symmetrical with respect to the center level.

第37図は符号生成回路449の詳細図である。信号ASは加
減算器440のA入力側の符号で、12P、▲▼が“1"の
とき、ナンド678、681により“1"となる。すなわち、第
20A図動作フローの“B←±A+B(B←±PMDj
Epj)”のA側の符号は、F2(データPMDjのMSB)が“1"
なら正、“0"なら負ということになる。また、7.Pが
“1"、F2が“1"ならばインバータ679、ナンド680、681
によりASが“1"となる。すなわち動作フローに示すピッ
チエンベロープの目標値演算“A←A±M(0)(A←
ELpj(s)±ELCpj)”において、F2が“1"ならばピッ
チのエンベロープレベルデータが中心レベルに対して反
転し、第38図(b)のようなエンベロープとなる
((a)は反転しない場合)。ここに、F2はタイミング
2で取り込まれた▲ERC7 j▼であり、これはキーコード
の変化の方向、すなわち、前回の押鍵と今回の押鍵の位
置関係を表わしている。尚、この時加減算器のLSBの誤
差が出る場合があるが十分小さいので問題ない。したが
って信号▲▼は、加減算器440で演算“*←−A
±*”が行なわれる時“0"となる。信号BSは加減算器44
0のB入力側の符号で、▲▼=“0"(タイミング
8、14、16P)のとき常に“1"である。また、タイミ
ング5又は8のとき信号5.8が“1"のとき、P又は▲
▼が“1"、が“0"ならば、オア687、ノア686、ナ
ンド689により▲▼=▲▼となる(それ以外
では“1")。すなわち、 5.8;エンベロープ更新又はエンベロープと目標値との比
較 PV▲▼;ピッチの演算又はステップ0以外の時 =“0";ステップの切換わり点での方向判定でない時
(後述) にはナンド689の出力▲▼は▲▼となり、符
号BSは5のときS4、8のとき“1"(▲▼=0だか
ら)となる。また、SF2が“1"、つまり、タイミング
0、15P、16Pのときはナンド685の出力F2′はF2となる
(それ以外では“1")。すなわち、“0";周波数レート
の加減算”、“15P;モジュレーションレートとの加減
算”、“16P;振幅モジュレーションと目標値の比較”の
ときにはF2′はF2、符号BSは▲▼となる。また、タ
イミング7でP=0のとき、ナンド684の出力は0、BS
は“1"となる。すなわち、動作フロー“A←A±M
(0)(A←ELij(S)±ELCij)”でピッチの演算で
ないときには符号BSは“1"となる。P=1のときは符号
BSはFA14となる。したがって、第38図の矢印で示すよう
に、ピッチのエンベロープレベルは反転後のデータが中
心レベルよりも上;FA14=“1"のとき(第39図参照)は
減算、下;FA14=“0"のとき(第39図参照)は加算とな
る。以上のように第37図の符号生成回路449は加減算器4
40における各入力の符号AS、BSを生成し、動作フロー
(第20A図)が実現される。
FIG. 37 is a detailed diagram of the code generation circuit 449. The signal AS is a code on the A input side of the adder / subtractor 440, and becomes "1" by the NANDs 678 and 681 when 12P and ▲ ▼ are "1". That is,
“B ← ± A + B (B ← ± PMD j +
The code on the A side of E pj ) "is F1 (MSB of data PMD j ) is" 1 "
If so, it means positive, and if "0", it means negative. If 7.P is "1" and F2 is "1", inverter 679, NAND 680, 681
As a result, AS becomes "1". That is, the target value calculation of the pitch envelope shown in the operation flow is "A ← A ± M (0) (A ←
In EL pj (s) ± ELC pj ) ”, if F2 is“ 1 ”, the pitch envelope level data is inverted with respect to the center level, resulting in an envelope as shown in FIG. 38 (b) ((a) is F2 is the ▲ ERC 7 j ▼ captured at the timing 2, which indicates the direction of the key code change, that is, the positional relationship between the previous key press and the current key press. At this time, the LSB error of the adder / subtractor may occur, but it is sufficiently small, so there is no problem.
It becomes “0” when ± * is performed.
It is a code on the B input side of 0, and is always "1" when ▲ ▼ = "0" (timing 8, 14, 16P). When the signal 5.8 is “1” at timing 5 or 8, P or ▲
If ▼ is “1” and is “0”, ▲ ▼ = ▲ ▼ will be obtained by OR 687, Noah 686, and Nando 689 (otherwise, “1”). 5.8; Envelope update or comparison of envelope and target value PV ▲ ▼; Pitch calculation or other than step 0 = "0"; When direction judgment is not made at step switching point (described later), NAND 689 Output ▲ ▼ becomes ▲ ▼, and when the code BS is 5, it is S4, and when it is 8, it is "1" (since ▲ ▼ = 0). Further, when SF2 is "1", that is, when the timing is 0, 15P, 16P, the output F2 'of the NAND 685 becomes F2 ("1" otherwise). That is, in the case of “0”: addition / subtraction of frequency rate ”,“ 15P: addition / subtraction with modulation rate ”, and“ 16P: comparison of amplitude modulation and target value ”, F2 ′ is F2 and the code BS is ▲ ▼. When P = 0 at timing 7, the output of NAND 684 is 0, BS
Becomes "1". That is, the operation flow “A ← A ± M
(0) (A ← EL ij (S) ± ELC ij ) ”, the code BS is“ 1 ”when the pitch is not calculated. When P = 1, the code is the code.
BS will be FA14. Therefore, as shown by the arrow in Fig. 38, the envelope level of the pitch is higher than the center level of the data after inversion; when FA14 = "1" (see Fig. 39), subtracted; below; FA14 = "0". When it is "(see Fig. 39), it is an addition. As described above, the code generation circuit 449 of FIG.
The codes AS and BS of each input in 40 are generated, and the operation flow (FIG. 20A) is realized.

第39図は加減算器440、出力クリップ回路441を示すもの
である。加減算器440は、オア691、エクスクルーシブ・
オア692〜699等、加算器700によって構成され、符号A
S、BSによってA±B又は±A+Bが実行される。FA1
4、FB14、CO、S14は夫々、加算器のA入力MSB、B入力M
SB、CARRYOUT、出力MSBである。
FIG. 39 shows the adder / subtractor 440 and the output clip circuit 441. The adder / subtractor 440 is an OR 691, exclusive
Or 692 to 699 etc., composed of adder 700, code A
A ± B or ± A + B is executed by S and BS. FA1
4, FB14, CO and S14 are the A input MSB and B input M of the adder, respectively.
SB, CARRYOUT, output MSB.

第40図は動作フローにおける分岐フラグF′の基になる
信号Fを発生するフラグ発生回路450の詳細図である。
クロックCKFはタイミング5、8、15P、16Pのときのみ
発生するのでその場合のみ考える。まず、が“0"なら
ばタイミング5のとき信号5、8が“1"なのでナンド71
4が有効になり、ナンド714の出力はS4′、ナンド715の
出力は▲▼となる。▲▼は“1"なのでナンド
719の下入力は“1"だから▲▼が“1"、COが“1"
又は▲▼が“0"、COが“0"ならばFF720は“1"が
セットされる。これは、エンベロープ更新時にオーバー
フロー又はアンダーフローをしたらフラグFをセットす
ることに相当する。が“0"でタイミング8のとき、同
様にしてナンド714の出力は▲▼、ナンド715の出
力はS4′となる。このとき▲▼は“0"なので、タイ
ミング5でフラグFがセットされているならば再度セッ
トされる。フラグFがセットされていない時は、S4′が
“0"、COが“0"又はS4′が“1"、COが“1"ならばFF720
は“1"にセットされる。これは、更新されたエンベロー
プが目標値を上昇中に越えるか、下降中に到達するか越
えたらフラグFをセットすることに相当する。したがっ
てが“0"のときフラグFは、エンベロープが目標値に
到達した時にセットされる。次にが“1"ならば、第37
図より▲▼=“1"、BS=“0"となる。また、第35
図より▲▼=“1"となる。従ってタイミング5で
は、“B←A+0"が行なわれる。その時、第40図でナン
ド715の出力は“1"であり、COは“0"、▲▼は“1"
であるからフラグはセットされない。タイミング8で
は、ナンド715の出力は“1"なので目標値からエンベロ
ープの現在値を引いて目標値が大きいか等しければ(CO
=“1")フラグFを“1"にセットする。すなわち、+方
向のときF=1、−方向のときF=0とフラグをセット
する。次にタイミング5、8以外、つまり、タイミング
15P、16Pのときは、ナンド715の出力は▲▼とな
る。タイミング15Pのとき、▲▼=“0"でCO=
“1"又は▲▼=“1"でCO=“0"、すなわち振幅モ
ジュレーションデータを更新中、オーバーフロー又はア
ンダーフローしたらフラグFをセットする。タイミング
16Pのときは、▲▼=“0"でCO=“1"、又は▲
▼=“1"でCO=“0"、すなわち更新された振幅モジ
ュレーションが目標値に上昇中に到達するか越えるか、
下降中に越えたらフラグFをセットする。以上のように
フラグFはセットされ、動作フロー(第20A図)の分岐
条件となる。
FIG. 40 is a detailed diagram of the flag generation circuit 450 for generating the signal F which is the basis of the branch flag F'in the operation flow.
The clock CKF is generated only at timings 5, 8, 15P, and 16P, so only that case will be considered. First, if is "0", the signals 5 and 8 are "1" at the timing 5, so the NAND 71
4 becomes valid, the output of NAND 714 becomes S4 ′, and the output of NAND 715 becomes ▲ ▼. ▲ ▼ is "1" so it's Nando
The lower input of the 719 is “1”, so ▲ ▼ is “1” and CO is “1”.
Or if ▲ ▼ is “0” and CO is “0”, FF720 is set to “1”. This corresponds to setting the flag F when overflow or underflow occurs when updating the envelope. Is 0 and the timing is 8, similarly, the output of the NAND 714 becomes ▲ ▼ and the output of the NAND 715 becomes S4 ′. At this time, ▲ ▼ is "0", so if the flag F is set at timing 5, it is set again. If flag F is not set, S4 'is "0", CO is "0" or S4' is "1", and CO is "1".
Is set to "1". This corresponds to setting the flag F when the updated envelope exceeds or exceeds the target value while rising or falling. Therefore, when is "0", the flag F is set when the envelope reaches the target value. If the next is “1”, the 37th
From the figure, ▲ ▼ = “1” and BS = “0”. Also, the 35th
From the figure, ▲ ▼ = “1”. Therefore, at timing 5, "B ← A + 0" is performed. At that time, the output of NAND 715 is "1", CO is "0", and ▲ ▼ is "1" in FIG.
Therefore, the flag is not set. At timing 8, the output of NAND 715 is "1", so if the target value is greater than or equal to the target value by subtracting the current value of the envelope from the target value (CO
= “1”) Flag F is set to “1”. That is, the flag is set such that F = 1 in the + direction and F = 0 in the − direction. Next, except timing 5 and 8, that is, timing
In 15P and 16P, the output of NAND 715 is ▲ ▼. At timing 15P, ▲ ▼ = “0” and CO =
If "1" or ▲ ▼ = "1" and CO = "0", that is, if the amplitude modulation data is being updated, a flag F is set if it overflows or underflows. timing
When 16P, ▲ ▼ = “0” and CO = “1”, or ▲
▼ = “1” and CO = “0”, that is, whether the updated amplitude modulation reaches or exceeds the target value while rising.
If it crosses during descent, set flag F. The flag F is set as described above, and the branch condition of the operation flow (FIG. 20A) is set.

第41図は加減算器440におけるオーバーフローやアンダ
ーフローの発生をモニターし、発生時に演算出力を所定
値に制御する出力クリップ制御回路451の詳細図であ
る。出力信号CT、MX、▲▼はそれぞれ“1"、“1"、
“0"のときに第39図加算器700の出力を10……0、1…
…1、0……0とするものである。まず、タイミング18
すなわち動作フローの“A←A+B(A←KCj+P
Ej)”のとき、前述したように第30図のシフト回路43
8、データ変更回路439によって加減算器440へのB入力
は、 となっているため、この時の演算は中心レベル10……0
を境として上が正、下が負の2の補数形式のデータを加
算することに相当する。従って加減算器440の符号AS、B
Sではなく、加算器B入力MSB:FB14が“0"又は“1"のと
きにオーバーフロー、アンダーフローを見なければなら
ない。18が“1"のとき、アンド728、731が有効とな
り、18=“1"、FB14=“1"、▲▼=“0"ならばノ
ア732の出力が“0"、アンド738の出力▲▼が“0"と
なる(MX=“0"、CT=“0")。これは、負のデータを加
算した時、アンダーフローしたらオール“0"にすること
に相当する。18=“1"、FB14=“0"、CO=“1"ならば
OR729の出力MXが“1"となる(▲▼=“1"、CT=
“0")。これは、正のデータを加算した時、オーバーフ
ローしたらオール“1"にすることに相当する。次に、18
=“0"、かつ7∧P=“0"のとき、ノア722の出力
は、BS=“1"又はAS0=“1"のとき“0"となる(“A−
B"又は“−A+B")。そのとき、アンド730が有効とな
り、CO=“0"のときノア732の出力は“0"、アンド738の
出力は“0"となり、▲▼=“0"となる(MX=“0"、
CT=“0")。これはアンダーフローのときオール“0"に
することを意味する。BS=“0"、AS0=“0"のとき(A
+B)、アンド727が有効となり、CO=“1"ならオア729
の出力MXは“1"となる(▲▼=“1"、CT=“0")。
これはオーバーフローのときオール“1"にすることを意
味する。最後にタイミング7かつP=“1"のときを説明
する。S14≠FA14又はCO≠BSのときEXOR733の出力は
“1"、したがってCT=“1"、▲▼=“0"(MX=
“0")となる。これはピッチのエンベロープレベルを変
更した際、変更によりデータが中心レベルを越えた時、
第39図の加算器700の出力を中心レベル10……0にする
ことを意味する。以上のようにして第39図加算器700の
出力は制御される。
FIG. 41 is a detailed diagram of the output clip control circuit 451 which monitors the occurrence of overflow or underflow in the adder / subtractor 440 and controls the arithmetic output to a predetermined value when the overflow or underflow occurs. Output signals CT, MX, ▲ ▼ are "1", "1",
When it is "0", the output of the adder 700 shown in FIG.
... 1, 0 ... 0. First, timing 18
That is, "A ← A + B (A ← KC j + P in the operation flow
E j ) ”, the shift circuit 43 of FIG.
8. The B input to the adder / subtractor 440 by the data change circuit 439 is Therefore, the calculation at this time is the central level 10 …… 0.
This is equivalent to adding data in the two's complement format in which the upper part is positive and the lower part is negative at the boundary. Therefore, the codes AS and B of the adder / subtractor 440
When the adder B input MSB: FB14 is "0" or "1" instead of S, overflow and underflow must be seen. When 18 is “1”, AND 728 and 731 are valid, and if 18 = “1”, FB14 = “1”, ▲ ▼ = “0”, the output of NOR 732 is “0”, and the output of AND 738 is ▲ ▼ becomes "0" (MX = "0", CT = "0"). This is equivalent to setting all "0" if underflow occurs when adding negative data. If 18 = "1", FB14 = "0", CO = "1"
Output MX of OR729 becomes “1” (▲ ▼ = “1”, CT =
"0"). This is equivalent to setting all "1" if an overflow occurs when positive data is added. Then 18
When “=“ 0 ”and 7∧P =“ 0 ”, the output of NOR 722 becomes“ 0 ”when BS =“ 1 ”or AS0 =“ 1 ”(“ A-
B "or" -A + B ") At that time, AND 730 becomes valid, and when CO =" 0 ", the output of NOR 732 becomes" 0 ", the output of AND 738 becomes" 0 ", and ▲ ▼ =" 0 ". (MX = "0",
CT = "0"). This means that all underflows are set to "0". When BS = "0" and AS0 = "0" (A
+ B), AND 727 become valid, and CO = “1”, OR 729
Output MX is “1” (▲ ▼ = “1”, CT = “0”).
This means to set all "1" s in case of overflow. Finally, the case of timing 7 and P = “1” will be described. When S14 ≠ FA14 or CO ≠ BS, the output of EXOR733 is “1”, therefore CT = “1”, ▲ ▼ = “0” (MX =
"0"). This is because when the pitch envelope level is changed and the change causes the data to exceed the center level,
This means setting the output of the adder 700 in FIG. 39 to the center level 10 ... 0. The output of the adder 700 shown in FIG. 39 is controlled as described above.

第42図はSレジスタ及びエンベロープフラグ制御回路44
6の詳細図である。フリップフロップ739〜746はSレジ
スタで、データバスD0〜7をクロックCKSで取込む。S
レジスタの内容はP=1又はP=0のタイミング1〜13
のときエンベロープフラグであり、そのタイミングの
みでエンベロープフラグ制御回路446の出力は意味をも
っている。▲▼はエンベロープフラグがナンド74
7より“*0**0000"すなわちノーマルモードのステッ
プ0のとき0となる信号である。は、ステップの切換
わり点で方向判定する時に“1"となる信号でナンド74
7、749、オア748、インバータ753によりP=“1"又は▲
▼=“1"で▲▼=“1"のとき、すなわち、振
幅エンベロープのステップ0以外でノードフラグが0だ
ったら=“1"となる。E0はタイミング5の演算“5←
A±B[B←Eij±(ERij(s)+ERCj)]”でA入力
を0とする信号で、ナンド747、ノア752、インバータ75
9、アンド760、オア761により、▲▼=▲▼=
0のとき、すなわちモードがマスクのとき、又は▲
▼=0かつ▲▼=1、すなわち、ステップ0の最
初に“1"となる。尚、ノーマルモードではステップ0の
最初にA入力が0となるため、エンベロープは必ず0か
らスタートすることになる。F′は動作フロー(第20A
図)の分岐のためのフラグで、オア762、763、インバー
タ764、アンド765により、タイミング9以外ではF′=
F、タイミング9では=“0"、かつS3=“0"のときに
F′=F、それ以外でF′=“0"となる。すなわち、タ
イミング9では方向判定中、又はホールド中F′=0、
それ以外ではF′=Fとなる。次に出力BI8〜BI14につ
いて説明する。これらはタイミング9のときだけ、エン
ベロープフラグ制御回路446の出力となる。BI8〜10はS0
〜S2となる。BI11は、=“0"、かつエンベロープフラ
グが“*0***111"でなく、かつF=“1"、F1=“1"
のとき“1"となりそれ以外は、もとの値▲EF3 ij▼とな
る。すなわち、方向判定中でなく、ノーマルモードのス
テップ7でなく、F1(エンベロープレベルの8ビット目
=サスティンフラグ)が“1"のとき到達したら、ホール
ドのフラグ▲EF3 ij▼は“1"となる。BI12は、=“1"
のときF=“0"なら“1"となる。すなわち、=“1"の
とき判定結果が−方向ならば符号ビット▲EF4 ij▼を
“1"にする。また、=“1"、かつF=“0"以外の時
は、ナンド754の出力が“0"すなわちサスティンレベル
到達時にBI12を“0"とする。また、▲▼=1すなわ
ちステップの切換わり点にいる時はBI12を0とする。そ
れ以外ではBI12は元の値▲EF4 ij▼となる。BI13は=
“0"、かつ▲▼=1、かつF=1のとき、すなわ
ち、方向判定中でなく、サスティン中でない時到達した
ら“0"となり、それ以外は“1"となって、ステップの切
換りを示すフラグとなる。レジスタA、Bの上位をRAM7
に書込む時8ビット目には、Sレジスタの8ビット目を
SMSBによって書込む。以上説明したように第42図エンベ
ロープフラグ制御回路はエンベロープフラグに応じた信
号▲▼、、F′、E0を出力するとともにエンベ
ロープフラグの設定を行なう。エンベロープフラグはキ
ーオン後、通常、ステップ0からスタートし(ピッチエ
ンベロープは方向判定後スタート)、到達したらステッ
プに1が加算され、ノードフラグ▲EF5 ij▼をノードを
表わす0にして方向判定を行い、符号フラグ▲EF4 ij
をセットして次ステップをスタートする。もし、到達し
た時サスティンフラグ(エンベロープレベルELij(S)
のMSB)が“1"ならホールド状態となりエンベロープは
固定される。その後キーオフがCPU3から来たらホールド
が解除されて次ステップをスタートする。尚、ループモ
ードでサスティンフラグが最終のステップ7にあった
ら、エンベロープフラグは011*0111←01101111+1=0
1010000となりステップ0に戻るためエンベロープが最
初からくり返される。
FIG. 42 shows an S register and envelope flag control circuit 44.
It is a detailed view of 6. The flip-flops 739 to 746 are S registers and take in the data buses D0 to D7 with the clock CKS. S
The register contents are timing 1 to 13 when P = 1 or P = 0.
Is the envelope flag, and the output of the envelope flag control circuit 446 is meaningful only at that timing. ▲ ▼ has an envelope flag of 74
7 indicates "* 0 ** 0000", that is, a signal which becomes 0 when step 0 in the normal mode. Is a signal that becomes “1” when determining the direction at the step switching point.
7, 749, OR 748, Inverter 753 P = "1" or ▲
When ▼ = “1” and ▲ ▼ = “1”, that is, when the node flag is 0 except at step 0 of the amplitude envelope, it becomes “1”. E0 is the operation of timing 5 "5 ←
A ± B [B ← E ij ± (ER ij (s) + ERC j )] ”is a signal that sets the A input to 0. NAND 747, NOR 752, inverter 75
9, AND 760, OR 761, ▲ ▼ = ▲ ▼ =
0, that is, when the mode is mask, or ▲
▼ = 0 and ▲ ▼ = 1, that is, "1" is set at the beginning of step 0. In the normal mode, since the A input becomes 0 at the beginning of step 0, the envelope always starts from 0. F'is the operation flow (20A
The flag for branching in the figure), F '= other than timing 9 by OR 762, 763, inverter 764, and 765.
At F, timing 9 = “0”, and S3 = “0”, F ′ = F, and otherwise F ′ = “0”. That is, at timing 9, the direction is being determined or the hold is in progress F ′ = 0,
Otherwise, F '= F. Next, the outputs BI8 to BI14 will be described. These are outputs of the envelope flag control circuit 446 only at timing 9. BI8-10 is S0
~ S2. BI11 == "0", the envelope flag is not "* 0 *** 111", and F = "1" and F1 = "1".
In case of, it becomes "1", otherwise it becomes the original value ▲ EF 3 ij ▼. That is, when the direction is not being determined and the step 1 in the normal mode is not performed and F1 (8th bit of the envelope level = sustain flag) reaches “1”, the hold flag ▲ EF 3 ij ▼ is set to “1”. Become. BI12 = “1”
When F = “0”, it becomes “1”. That is, when the determination result is the-direction when = "1", the code bit ▲ EF 4 ij ▼ is set to "1". When the value other than "1" and F = "0", BI12 is set to "0" when the output of the NAND 754 reaches "0", that is, the sustain level. Also, BI12 is set to 0 when ▲ ▼ = 1, that is, at the switching point of steps. Otherwise, BI12 has the original value ▲ EF 4 ij ▼. BI13 =
When "0", ▲ ▼ = 1, and F = 1, that is, when the direction is not being determined and the sustain is not in progress, it will be "0", otherwise it will be "1", and step switching Is a flag indicating. RAM7 above registers A and B
When writing to, the 8th bit of the S register
Write by SMSB. As described above, the envelope flag control circuit shown in FIG. 42 outputs signals ▲ ▼, F'and E0 according to the envelope flag and sets the envelope flag. After the key is turned on, the envelope flag usually starts from step 0 (pitch envelope starts after determining the direction), and when reached, 1 is added to the step, and the node flag ▲ EF 5 ij ▼ is set to 0 representing the node to determine the direction. , Sign flag ▲ EF 4 ij
Set and start the next step. If reached, sustain flag (envelope level EL ij (S)
If the MSB) is “1”, the hold state is set and the envelope is fixed. Then, when the key-off comes from CPU3, the hold is released and the next step is started. If the sustain flag is in the final step 7 in loop mode, the envelope flag is 011 * 0111 ← 01101111 + 1 = 0.
Since it becomes 1010000 and returns to step 0, the envelope is repeated from the beginning.

以上第30図の演算回路を説明したが、このような動作を
行なうことによって、演算回路は第20A図の動作フロー
のような演算を実行し、最終エンベロープ及び合成キー
コードを生成し、指数変換/位相角生成回路13に転送す
る。
Although the arithmetic circuit of FIG. 30 has been described above, by performing such an operation, the arithmetic circuit performs an operation as shown in the operation flow of FIG. 20A, generates a final envelope and a synthetic key code, and performs exponential conversion. / Transfer to the phase angle generation circuit 13.

第43図は、外部RAMインタフェース16の詳細図である。
第44図(a)はインターフェース/制御部11から、
(b)はエンベロープ/キーコード生成回路12からのRA
Mへの書込みタイミングである。アドレス信号RA0〜11
は、インタフェース/制御部11からのアドレスAA0〜1
1、エンベロープ/キーコード生成回路12からのアドレ
スBA0〜11を、夫々のRAM占有時間(第3図)に基づいて
クロックインバータ777〜801で切換えることにより得ら
れる。書込みイネーブル信号▲▼は、インタフェ
ース/制御部11からの書込み信号▲▼が“0"となっ
た時(ただし、内部メモリの使用を示す信号IDが“1"で
ない時)、または、エンベロープ/キーコード生成回路
12からの書込み信号▲▼が“0"となった時、タイミ
ング信号▲▼が“0"の巾で“0"となる。また、出力
イネーブル信号▲▼は▲▼、▲▼が共に
“1"のとき信号CK2が“0"の巾で“0"となる。データRD0
〜7は▲▼又は▲▼が“0"のとき、信号▲
▼が“0"の巾で、音源LSI6からの出力となる。
FIG. 43 is a detailed diagram of the external RAM interface 16.
FIG. 44 (a) shows the interface / control unit 11
(B) RA from the envelope / key code generation circuit 12
This is the write timing to M. Address signals RA0-11
Is the address AA0-1 from the interface / control unit 11.
1. The addresses BA0 to 11 from the envelope / key code generation circuit 12 are obtained by switching the clock inverters 777 to 801 based on the RAM occupation time (FIG. 3). The write enable signal ▲ ▼ is used when the write signal ▲ ▼ from the interface / control unit 11 becomes “0” (when the signal ID indicating the use of the internal memory is not “1”) or the envelope / key. Code generation circuit
When the write signal ▲ ▼ from 12 becomes "0", the timing signal ▲ ▼ becomes "0" in the width of "0". When both ▲ ▼ and ▲ ▼ of the output enable signal ▲ ▼ are "1", the signal CK2 has a width of "0" and becomes "0". Data RD0
~ 7 is a signal when ▲ ▼ or ▲ ▼ is “0”
▼ is the width of "0", and it is the output from the sound source LSI6.

第45図は、第2図の指数変換/位相角生成回路13のブロ
ック図である。エンベロープ/キーコード生成回路12で
生成されたエンベロープ及びキーコードは、クロックCK
Eでフリップフロップ(FF)1000に取込まれる。FF1000
の出力は指数ROM1001で変換されてエンベロープレジス
タ1002、周波数情報レジスタ1004に入力される。第46図
はエンベロープレジスタ1002の詳細図である。エンベロ
ープレジスタ1002は、2つのRAM(ENVERAM、ENVORA
M)、FF1014〜1019など、インバータ1027、クロックイ
ンバータ1020〜1026、1028〜1033など、及びインバータ
1008、1010、ナンド1009、1011によって構成され、第48
図(a)のタイムチャートのように動作する。カウンタ
1(第18図)はエンベロープ/キーコード生成回路12の
基本タイミングを示しており、FF415〜421(第29図)の
データ出力はタイミング0から切替わる。FF415〜420の
データはエンベロープレジスタ1002、周波数情報レジス
タ1004への書込みチャンネル(DA0〜2)、モジュール
(DA3〜5)を示すアドレスに対応し、T2が0のときの
みDA1〜DA5のデータとなる(DA0は常にFF415の値と対
応)。また、FF1000の出力は第48図のように切替わり、
WEEがタイミング0で“1"となるので、DA0が“0"のとき
(偶数チャンネル)にはナンド1009が“0"となるのでT2
=“0"のときにタイミング信号Wが“1"の巾でENVERAM1
012の所定アドレス(FF416〜420の反転)にデータが書
込まれる。またDA0が“1"のとき(奇数チャンネル)に
はナンド1011が“0"となり、ENVORAM1013にデータが書
込まれる。T2が“1"のときは、アドレスDA1〜5は、タ
イミング信号発生回路159(第6図)の出力C1〜5の反
転であるから、C1〜5の値に対応したチャンネル、モジ
ュールのデータを読出す、バッファ1020〜1026、1028〜
1033、インバータ1027により、T2=“1"のときにはENVE
RAM1012、T2=“0"のときにはENVORAM1013からT2=“1"
で読出されたデータをFF1014〜1019で遅らせたデータが
出力E0〜11となる。したがって、エンベロープレジスタ
1002はエンベロープ/キーコード生成回路12のタイミン
グでデータが書込まれ、インタフェース/制御部11のタ
イミングで読出され、FF1003を介して波形生成回路15に
送られる。
FIG. 45 is a block diagram of the exponential conversion / phase angle generation circuit 13 of FIG. The envelope and key code generated by the envelope / key code generation circuit 12 are clocked by the clock CK.
It is taken in by flip-flop (FF) 1000 at E. FF1000
Is converted by the exponent ROM 1001 and input to the envelope register 1002 and the frequency information register 1004. FIG. 46 is a detailed diagram of the envelope register 1002. The envelope register 1002 has two RAMs (ENVERAM, ENVORA
M), FF1014-1019, etc., inverter 1027, clock inverters 1020-1026, 1028-1033, etc., and inverter
1008, 1010, Nand 1009, 1011, 48th
It operates like the time chart of FIG. The counter 1 (Fig. 18) shows the basic timing of the envelope / key code generation circuit 12, and the data output of FF 415 to 421 (Fig. 29) is switched from the timing 0. The data of FF415 to 420 correspond to the address indicating the envelope register 1002, the write channel (DA0 to 2) and the module (DA3 to 5) to the frequency information register 1004, and become the data of DA1 to DA5 only when T2 is 0. (DA0 always corresponds to the value of FF415). The output of FF1000 is switched as shown in Fig. 48,
Since WEE becomes “1” at timing 0, when DA0 is “0” (even channel), NAND 1009 becomes “0”, so T2
When = "0", the timing signal W is "1" and ENVERAM1
Data is written to a predetermined address of 012 (inversion of FF416 to 420). When DA0 is "1" (odd channel), NAND 1011 becomes "0" and data is written to ENVORAM1013. When T2 is "1", the addresses DA1 to 5 are the inversions of the outputs C1 to C5 of the timing signal generation circuit 159 (Fig. 6). Read, buffer 1020-1026, 1028-
1033 and inverter 1027 enable ENVE when T2 = "1".
RAM1012, T2 = "0" from ENVORAM1013 when T2 = "0"
The data read in step FF1014 to 1019 is delayed, and the data E0 to 11 are output. Therefore, the envelope register
Data is written to 1002 at the timing of the envelope / key code generation circuit 12, read at the timing of the interface / control unit 11, and sent to the waveform generation circuit 15 via the FF 1003.

第47図は周波数情報レジスタ1004の詳細図で、エンベロ
ープレジスタ1002と全く同様の動作をする。読出された
周波数情報FI0〜20はFF1005を介し、位相角生成用の累
算器(加算器1006、シフトレジスタ1007)へ送られ、位
相角が生成される。
FIG. 47 is a detailed diagram of the frequency information register 1004, which operates in exactly the same way as the envelope register 1002. The read frequency information FI0-20 is sent to the accumulator (adder 1006, shift register 1007) for phase angle generation via FF1005, and the phase angle is generated.

第49図は、OCレジスタ14の詳細図である。OCレジスタ14
はエンベロープレジスタ1002や周波数情報レジスタ1004
と同様に偶数チャンネル用RAM(OCERAM)、奇数チャン
ネル用RAM(OCORAM)からなり、それを交互にREADする
ことによって常に読出しながら書込めるレジスタであ
る。インタフェース/制御部11からのアドレスAA0〜
2、4〜6が書込み用アドレス、C1〜C5が読出し用アド
レスでT2が“1"の時が読出し、“0"のときが書込み可能
となっている。フリップフロップ1076B〜1083B、1101〜
1103、シフトレジスタ1104は制御信号C0〜3をタイミン
グ遅延させるもの、ゲート1105〜1116は、制御信号C5〜
9を生成するためのものである。
FIG. 49 is a detailed diagram of the OC register 14. OC register 14
Are envelope register 1002 and frequency information register 1004
Similarly, the RAM for even channels (OCERAM) and the RAM for odd channels (OCORAM) consist of registers that can be written while always reading by alternately reading them. Address AA0 from interface / control unit 11
2, 4 to 6 are write addresses, C1 to C5 are read addresses, and read is possible when T2 is "1", and write is possible when T2 is "0". Flip-flops 1076B ~ 1083B, 1101 ~
1103 and shift register 1104 delay the control signals C0 to 3 in timing, and gates 1105 to 1116 control signals C5 to
It is for generating 9.

第50図は、波形生成回路15のブロック図である。波形生
成回路15は本件出願人に係る特願昭61-55008号に示す回
路とほぼ同様な動作を行なう。まず、位相角P0〜11がセ
レクタ1118で選択され、FF1119、位相角変換回路1120、
シフトレジスタ1121を介して正弦波ROM1122に入力さ
れ、波形信号sinX′となる。尚、位相変換回路1120は、
制御信号の値に従って正弦波に位相歪みを導入するもの
で、対応する波形は第51図のようになる。波形信号sin
X′は、シフトレジスタ1136、加算器1137、FF1138を介
した(ゲート回路1135の出力は0とする)エンベロープ
E″と乗算器1124で乗算され、FF1125を介して出力され
る。この出力は、楽音として出力される場合は楽音出力
を累算するためのレジスタ(セレクタ1127、FF1128、ゲ
ート回路1129)からの出力がセレクタ1130、ゲート回路
1131を通ったデータを加減算器1126で加減算される。第
52図に波形生成回路15のタイムチャートを示す。C0〜5
は第6図タイミング信号発生回路159のカウンタ出力
で、C1〜5は第45図エンベロープレジスタ1002、周波数
情報レジスタ1004、第2図OCレジスタ14の読出しアドレ
スになっている。また、その1ビット遅れは、波形形成
回路(第50図)の基本タイミングになっており、6ビッ
ト中下位3ビットがチャンネル、上位3ビットがモジュ
ールの演算に相当している。信号P、X′、E′、
E″、E″sinX′、R′、Rは夫々、モジュール0、チ
ャンネル0の演算からモジュール7、チャンネル7の演
算までの1サイクルのタイミングを示している。波形の
生成は制御信号C0〜9によってセレクタ1118、1127、11
30、1132、ゲート回路1129、1131、1135、位相角変更回
路1120、加減算器1126を制御することによって行なわれ
る。表6にCPUから入力されたOCデータ上位4ビットに
対応する演算で示す(第49図参照)。
FIG. 50 is a block diagram of the waveform generation circuit 15. The waveform generation circuit 15 performs almost the same operation as the circuit shown in Japanese Patent Application No. 61-55008 relating to the present applicant. First, the phase angles P0 to 11 are selected by the selector 1118, the FF 1119, the phase angle conversion circuit 1120,
It is input to the sine wave ROM 1122 via the shift register 1121 and becomes the waveform signal sinX ′. The phase conversion circuit 1120 is
Phase distortion is introduced into the sine wave according to the value of the control signal, and the corresponding waveform is as shown in FIG. Waveform signal sin
X ′ is multiplied by the envelope E ″ through the shift register 1136, the adder 1137, and the FF 1138 (the output of the gate circuit 1135 is 0) by the multiplier 1124, and is output through the FF 1125. This output is When output as a musical sound, the output from the register (selector 1127, FF1128, gate circuit 1129) for accumulating the musical sound output is the selector 1130, gate circuit.
The data passed through 1131 is added / subtracted by an adder / subtractor 1126. First
FIG. 52 shows a time chart of the waveform generation circuit 15. C0-5
6 is the counter output of the timing signal generating circuit 159 in FIG. 6, and C1 to 5 are read addresses of the envelope register 1002, frequency information register 1004 and OC register 14 in FIG. The 1-bit delay corresponds to the basic timing of the waveform forming circuit (FIG. 50). The lower 3 bits of the 6 bits correspond to the channel and the upper 3 bits correspond to the module operation. Signals P, X ', E',
E ″, E ″ sinX ′, R ′, and R respectively indicate the timing of one cycle from the calculation of module 0 and channel 0 to the calculation of module 7 and channel 7. Waveforms are generated by selectors 1118, 1127, 11 according to control signals C0-9.
This is performed by controlling 30, 1132, gate circuits 1129, 1131, 1135, phase angle changing circuit 1120, and adder / subtractor 1126. Table 6 shows the operation corresponding to the upper 4 bits of OC data input from the CPU (see Fig. 49).

これらの演算制御によって、波形が生成される。 A waveform is generated by these arithmetic control.

以下に波形生成例を示す。ただし、iはモジュールNo、
jはチャンネルNoとする。
An example of waveform generation is shown below. However, i is the module number,
j is the channel number.

1)Ei+1jsin(EijsinPij) オペレーションコードは ij **000000(上位4ビットは0010でもよい) i+1j 101*0000 i+2j 000***** となる。これにより、表6のように、モジュールi、チ
ャンネルjの波形は、位相角としてPが選択され、その
出力E″sinX′はモジュールi+1、チャンネルjの位
相となる。モジュールi+1、チャンネルjの波形出力
E″sinX′は楽音出力と累算される。尚、制御信号C6〜
9は位相Xから8ビット遅れで出力される波形に対する
ものだから、例えば、i+1、jの制御信号はモジュー
ルi、チャンネルjの波形出力に対するものとなってい
る。
1) E i + 1j sin ( E ij sinP ij) operation code becomes ij ** 000000 (upper 4 bits may be 0010) i +1 j 101 * 0000 i +2 j 000 *****. As a result, as shown in Table 6, P is selected as the phase angle for the waveforms of module i and channel j, and the output E ″ sinX ′ becomes the phase of module i + 1 and channel j. Waveforms of module i + 1 and channel j The output E ″ sinX ′ is accumulated with the tone output. Control signal C6 ~
Since 9 is for the waveform output with a delay of 8 bits from phase X, for example, the control signals of i + 1, j are for the waveform output of module i, channel j.

2)Ei+2jsin(EijsinPij-Ei+1jsinPi+1j) オペレーションコードは、 ij **000000(上位4ビットは0010でもよい) i+1j 10000000 i+2j 111*0000 i+3j 000***** となる。これにより、表6のようにモジュールi、チャ
ンネルjの波形は位相角としてPが選択され、その出力
E″siX′はシフトレジスタ1133に入力される。モジュ
ールi+1、チャンネルjの波形は位相角としてPが選択
され、その波形はシフトレジスタ1134の出力Rから減算
されてモジュールi+2、チャンネルjの位相角となる。
そして、モジュールi+2、チャンネルjの波形出力E″s
inX′は楽音出力として累算される。以上のようにオペ
レーションコードによって、波形生成が様々に行なわれ
ることによって、多くの音色の楽音を発生できる。出力
波形は生成された波形を順次累算していくが、第52図で
C0〜C5の値が“9"のときに新たな演算サイクルの波形が
FF1128に取込まれるが(出力されない波形=位相となる
もの)、その時のFF1128の出力が前サイクルの波形の累
算値であるので、それをラッチ1139で取込む(CKL)こ
とによってラッチ1139は各演算サイクル毎の波形最終累
算値を出力することになる。尚、ゲート回路1140は信号
OMが“0"のとき出力をオール0(中心レベル)にするも
ので、リセット後モードデータがセットされるまでそれ
を維持する。すなわち、パワーオン等により外部リセッ
ト信号が発生すると、タイミング信号発生回路159によ
り内部リセット信号が発生し、これが第6図のモードの
ラッチ156をリセットし、その出力OMを“0"にするた
め、ゲート回路1140の出力、すなわちDAC8に送られる信
号出力は無音レベルのオールゼロに置かれる。一方、CP
U3はインタフェース/制御部11を通じて、外部RAM7に音
色等の所要データを設定し、最後にインストラクション
“モード”を送ってモードラッチ156〜158をセットす
る。これによりOMは“1"となり、ゲート回路1140はイネ
ーブルされ、波形生成回路15で演算した波形信号がDAC8
に送られるようになる。つまり、電源投入後、外部RAM7
における所要データの設定が完了し、音源LSI6が正規の
楽音信号を合成可能になるまでの間、DAC8への入力は無
音状態のレベルに維持されるようになっている。
2) E i + 2j sin (E ij sinP ij- E i + 1j sinP i + 1j ) The operation code is ij ** 000000 (the upper 4 bits may be 0010) i +1 j 10000000 i +2 j 111 * 0000i +3 j 000 ***** As a result, as shown in Table 6, P is selected as the phase angle for the waveforms of the module i and the channel j, and the output E ″ siX ′ is input to the shift register 1133. The waveforms of the module i +1 and the channel j are in phase. P is selected as the angle and its waveform is subtracted from the output R of the shift register 1134 to become the phase angle of module i +2 , channel j.
Then, the waveform output E ″ s of module i +2 , channel j
inX 'is accumulated as a musical sound output. As described above, various waveforms are generated according to the operation code, so that many tone colors can be generated. As for the output waveform, the generated waveforms are sequentially accumulated.
When the value of C0 to C5 is "9", the waveform of the new operation cycle
It is taken into FF1128 (waveform that is not output = phase), but since the output of FF1128 at that time is the accumulated value of the waveform of the previous cycle, by latching it in (CKL), latch 1139 becomes The waveform final accumulated value for each operation cycle will be output. The gate circuit 1140 is a signal
When OM is "0", the output is all 0 (center level), and it is maintained after reset until mode data is set. That is, when an external reset signal is generated due to power-on or the like, the timing signal generation circuit 159 generates an internal reset signal, which resets the latch 156 in the mode of FIG. 6 and sets its output OM to "0". The output of the gate circuit 1140, the signal output sent to the DAC 8, is placed at a silence level, all zeros. On the other hand, CP
U3 sets required data such as a tone color in the external RAM 7 through the interface / control unit 11, and finally sends an instruction "mode" to set the mode latches 156 to 158. As a result, OM becomes “1”, the gate circuit 1140 is enabled, and the waveform signal calculated by the waveform generation circuit 15 is applied to the DAC8.
Will be sent to. In other words, after turning on the power, the external RAM7
The input to the DAC 8 is maintained at a silent level until the tone generator LSI 6 is able to synthesize a regular musical tone signal after the setting of the required data is completed.

[考案の効果] 以上詳細に説明したように、この考案によれば、タッチ
レスポンス等のピッチエンベロープレベル変更データに
より、音高の目標値であるピッチエンベロープレベルを
変更する際に、変更前のピッチエンベロープレベルと中
心レベルとの差が小さくなるようにピッチエンベロープ
レベルを変更しているで、タッチレスポンス等によるピ
ッチへの反映の度合を自然に制御することができ、ユー
ザーの感覚にもマッチしやすい利点を有している。
[Advantage of Device] As described in detail above, according to this device, when the pitch envelope level which is the target value of the pitch is changed by the pitch envelope level change data such as the touch response, the pitch before the change is changed. Since the pitch envelope level is changed so that the difference between the envelope level and the center level becomes small, the degree of reflection on the pitch due to touch response etc. can be naturally controlled, and it is easy to match the user's feeling Have advantages.

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

第1図は本考案の一実施例に係る電子楽器の全体構成
図、第2図は音源LSIのブロック図、第3図は音源LSIの
インタフェース部とエンベロープ/キーコード生成回路
による外部RAM占有の割振を示すタイムチャート、第4
図はCPUから音源LSIのインタフェース/制御部に送られ
るデータと書込制御信号のタイムチャート、第5図は楽
音制御信号生成のための低速演算周期と波形生成のため
の高速演算周期とを示すタイムチャート、第6図はイン
タフェース/制御部の詳細図、第7図はタイミング信号
発生回路が発生する信号の一部のタイムチャート、第8
図はタイミング信号発生回路が発生するその他の信号の
タイムチャート、第9図はタイミング信号発生回路の詳
細図、第10図はインストラクションデコーダの詳細図、
第11図は1バイト長のデータの転送インストラクション
に対するインタフェース/制御部の動作を示すタイムチ
ャート、第12図は2バイト長のデータの転送インストラ
クションに対するインタフェース/制御部の動作を示す
タイムチャート、第13図はフラグセットのインストラク
ションに対するインタフェース/制御部の動作を示すタ
イムチャート、第14図はキーオフのインストラクション
に対するインタフェース/制御部の動作を示すタイムチ
ャート、第15図はOCレジスタへの書込みインストラクシ
ョンに対するインタフェース/制御部の動作を示すタイ
ムチャート、第16図はモードの設定インストラクション
に対するインタフェース/制御部の動作を示すタイムチ
ャート、第17図はエンベロープ/キーコード生成回路の
ブロック図、第18図はエンベロープ/キーコード生成回
路の動作サイクルを与えるカウンタBの詳細図、第19図
はカウンタBのタイムチャート、第20A図はエンベロー
プ/キーコード生成回路による演算のフローチャート、
第20B図はエンベロープ/キーコード生成回路の動作を
まとめた図、第21図はCPUから与えられる振幅モジュレ
ーション生成用データを示すグラフ、第22図は演算用タ
イミング信号発生回路の詳細図、第23図はクロック発生
回路の詳細図、第24図は演算用アドレス生成回路の詳細
図、第25図は演算用制御信号発生回路の詳細図、第26図
は演算用制御信号発生回路におけるタイムチャート、第
27図は書込み禁止回路の詳細図、第28図は書込み禁止回
路の動作を示すタイムチャート、第29図は指数データ用
アドレス生成回路の詳細図、第30図は演算回路の詳細な
ブロック図、第31図はAレジスタの詳細図、第32図はB
レジスタの詳細図、第33図はMレジスタの詳細図、第34
図はシフト制御回路の詳細図、第35図はエンベロープ制
御回路の詳細図、第36図はデータ変更回路の詳細図、第
37図は符号生成回路の詳細図、第38図はフラグによるピ
ッチエンベロープの反転を示すグラフ、第39図は加減算
器と出力クリップ回路の詳細図、第40図はフラグ発生回
路の詳細図、第41図は出力クリップ制御回路の詳細図、
第42図はSレジスタとエンベロープフラグ制御回路の詳
細図、第43図は外部RAMインタフェースの詳細図、第44
図は外部RAMインタフェースの動作を示すタイムチャー
ト、第45図は指数変換/位相角生成回路のブロック図、
第46図はエンベロープレジスタの詳細図、第47図は周波
数情報レジスタの詳細図、第48図は指数変換/位相角生
成回路のタイムチャート、第49図はOCレジスタの詳細
図、第50図は波形生成回路の詳細図、第51図は波形生成
回路において制御信号により歪みの生じる正弦波のセッ
トを示す波形図、第52図は波形生成回路のタイムチャー
トである。 1……鍵盤、2……スイッチ、3……CPU、7……外部R
AM、11……インタフェース/制御部、12……エンベロー
プ/キーコード生成回路、15……波形生成回路、436、4
42、440、449、437、447、450、438、448……ピッチエ
ンベロープ演算回路。
FIG. 1 is an overall configuration diagram of an electronic musical instrument according to an embodiment of the present invention, FIG. 2 is a block diagram of a tone generator LSI, and FIG. 3 is an external RAM occupation by an interface unit of the tone generator LSI and an envelope / key code generation circuit. Time chart showing allocation, 4th
FIG. 5 is a time chart of data and write control signals sent from the CPU to the interface / control unit of the tone generator LSI, and FIG. 5 shows a low speed calculation cycle for generating a tone control signal and a high speed calculation cycle for generating a waveform. Time chart, FIG. 6 is a detailed view of the interface / control unit, FIG. 7 is a time chart of a part of the signals generated by the timing signal generation circuit, and FIG.
FIG. 9 is a time chart of other signals generated by the timing signal generating circuit, FIG. 9 is a detailed diagram of the timing signal generating circuit, FIG. 10 is a detailed diagram of the instruction decoder,
FIG. 11 is a time chart showing the operation of the interface / control unit for a transfer instruction of 1-byte length data, and FIG. 12 is a time chart showing the operation of the interface / control unit for a transfer instruction of 2-byte length data. Fig. 14 is a time chart showing the operation of the interface / control unit for the flag set instruction, Fig. 14 is a time chart showing the operation of the interface / control unit for the key-off instruction, and Fig. 15 is the interface for the write instruction to the OC register. 16 is a time chart showing the operation of the control unit, FIG. 16 is a time chart showing the operation of the interface / control unit with respect to mode setting instructions, FIG. 17 is a block diagram of the envelope / key code generation circuit, and FIG. Detailed view of the counter B to provide an operation cycle of Beropu / key code generating circuit, the time chart of Figure 19 is the counter B, the 20A diagram flow chart of the operation according to the envelope / key code generating circuit,
FIG. 20B is a diagram summarizing the operation of the envelope / key code generation circuit, FIG. 21 is a graph showing amplitude modulation generation data given from the CPU, FIG. 22 is a detailed diagram of the operation timing signal generation circuit, and FIG. Figure is a detailed view of the clock generation circuit, Figure 24 is a detailed view of the operation address generation circuit, Figure 25 is a detailed view of the operation control signal generation circuit, Figure 26 is a time chart in the operation control signal generation circuit, First
27 is a detailed diagram of the write inhibit circuit, FIG. 28 is a time chart showing the operation of the write inhibit circuit, FIG. 29 is a detailed diagram of the exponent data address generation circuit, FIG. 30 is a detailed block diagram of the arithmetic circuit, Figure 31 is a detailed view of the A register, and Figure 32 is B.
Detailed view of register, Fig. 33 Detailed view of M register, 34
Figure is a detailed view of the shift control circuit, Figure 35 is a detailed view of the envelope control circuit, Figure 36 is a detailed view of the data change circuit,
Fig. 37 is a detailed diagram of the code generation circuit, Fig. 38 is a graph showing the inversion of the pitch envelope by the flag, Fig. 39 is a detailed diagram of the adder / subtractor and the output clip circuit, Fig. 40 is a detailed diagram of the flag generation circuit, 41 is a detailed diagram of the output clip control circuit,
42 is a detailed view of the S register and envelope flag control circuit, FIG. 43 is a detailed view of the external RAM interface, 44
Figure is a time chart showing the operation of the external RAM interface. Figure 45 is a block diagram of the exponential conversion / phase angle generation circuit.
Fig. 46 is a detailed diagram of the envelope register, Fig. 47 is a detailed diagram of the frequency information register, Fig. 48 is a time chart of the exponential conversion / phase angle generation circuit, Fig. 49 is a detailed diagram of the OC register, and Fig. 50 is 51 is a detailed diagram of the waveform generating circuit, FIG. 51 is a waveform diagram showing a set of sinusoidal waves which are distorted by a control signal in the waveform generating circuit, and FIG. 52 is a time chart of the waveform generating circuit. 1 ... keyboard, 2 ... switch, 3 ... CPU, 7 ... external R
AM, 11 ... Interface / control section, 12 ... Envelope / key code generation circuit, 15 ... Waveform generation circuit, 436, 4
42, 440, 449, 437, 447, 450, 438, 448 ... Pitch envelope arithmetic circuit.

Claims (3)

【実用新案登録請求の範囲】[Scope of utility model registration request] 【請求項1】少なくとも発生すべき楽音の音高を指定す
る演奏入力装置(1、2)の演奏状態をモニターするCP
U(3)によって制御され、演奏状態に従って楽音を合
成するため、メモリ(7)と、上記CPUから転送される
少なくとも音高を含むデータを上記メモリに書き込むイ
ンターフェース回路手段(11)と、上記メモリを利用し
て楽音制御信号を生成する楽音制御信号生成回路手段
(12)と、上記楽音制御信号生成回路手段により生成さ
れた楽音制御信号に従って楽音波形を生成する波形生成
手段を備え、上記楽音制御信号生成回路手段には、上記
波形生成回路手段の生成する楽音波形に周波数変動を与
えるためのピッチエンベロープを生成するピッチエンベ
ロープ生成回路手段(308)が含まれ、このピッチエン
ベロープ生成回路手段が、上記CPUから与えられたピッ
チエンベロープレベル変更データ(ELCpj)とピッチエ
ンベロープレベルデータ(ELpj(s))とを使って、ピ
ッチエンベロープレベルデータを変更するレベル変更回
路手段(436、442、440、449)と、上記レベル変更回路
手段により変更されたピッチエンベロープレベルデータ
とピッチエンベロープレートデータとに従って上記ピッ
チエンベロープを演算するピッチエンベロープ演算回路
手段(436、437、440、449、450、447、438、448)とか
ら構成される楽音合成装置において、 上記レベル変更手段は、上記CPUから与えられたピッチ
エンベロープレベルが上記演奏入力装置が指定した音高
に対応するピッチレベルである中心レベルより低いとき
には、上記ピッチエンベロープレベル変更データによ
り、ピッチエンベロープレベルを増大させ(ELpj(s)
←ELpj(s)+ELCpj)、上記CPUから与えられたピッチ
エンベロープレベルが上記中心レベルより高いときに
は、上記ピッチエンベロープレベル変更データによりピ
ッチエンベロープレベルを減少させる(ELpj(s)←EL
pj(s)+ELCpj)ことを特徴とする楽音合成装置。
1. A CP for monitoring a performance state of a performance input device (1, 2) for designating at least a pitch of a musical tone to be generated.
A memory (7), which is controlled by U (3) and synthesizes a musical tone according to a playing state, interface circuit means (11) for writing data including at least a pitch transferred from the CPU to the memory, and the memory. A tone control signal generating circuit means (12) for generating a tone control signal by utilizing the above, and a waveform generating means for generating a tone waveform in accordance with the tone control signal generated by the tone control signal generating circuit means. The signal generating circuit means includes a pitch envelope generating circuit means (308) for generating a pitch envelope for giving a frequency variation to the musical tone waveform generated by the waveform generating circuit means. pitch envelope level changes data provided from CPU (ELC pj) and pitch envelope level data (EL pj s)) is used to change the pitch envelope level data according to the level changing circuit means (436, 442, 440, 449) and the pitch envelope level data and the pitch envelope rate data changed by the level changing circuit means. In a tone synthesizer comprising pitch envelope calculation circuit means (436, 437, 440, 449, 450, 447, 438, 448) for calculating the pitch envelope, the level changing means is provided from the CPU. When the pitch envelope level is lower than the center level which is the pitch level corresponding to the pitch designated by the performance input device, the pitch envelope level is increased by the pitch envelope level change data (EL pj (s)
← EL pj (s) + ELC pj ), and when the pitch envelope level given from the CPU is higher than the center level, the pitch envelope level change data is used to decrease the pitch envelope level (EL pj (s) ← EL
pj (s) + ELC pj ) is a musical sound synthesizer.
【請求項2】実用新案登録請求の範囲第1項記載の楽音
合成装置において、 上記レベル変更回路手段は、変更されたピッチエンベロ
ープレベルデータが上記中心レベルをクロスしたとき
は、変更されたピッチエンベロープレベルデータを上記
中心レベルに制限する制限回路手段(451、441)を有す
ることを特徴とする楽音合成装置。
2. A tone synthesis apparatus according to claim 1, wherein the level changing circuit means changes the pitch envelope when the changed pitch envelope level data crosses the center level. A tone synthesizer having limit circuit means (451, 441) for limiting level data to the central level.
【請求項3】実用新案登録請求の範囲第1項記載の楽音
合成装置において、 上記メモリは上記CPUから与えられるピッチエンベロー
プの反転の有無を指示するフラグ(ERCj 7)を記憶する
部分を有し、上記レベル変更回路手段は、上記フラグに
従って、上記CPUから与えられたピッチエンベロープレ
ベルデータを上記中心レベルに対して選択的に反転し、
この選択的に反転されたデータを上記ピッチエンベロー
プレベル変更データにより変更することを特徴とする楽
音合成装置。
3. The musical sound synthesizer according to claim 1 of the utility model registration, wherein the memory has a portion for storing a flag (ERC j 7 ) for instructing the presence or absence of inversion of the pitch envelope given from the CPU. The level changing circuit means selectively inverts the pitch envelope level data given from the CPU with respect to the center level according to the flag,
A tone synthesizer characterized in that the selectively inverted data is changed by the pitch envelope level change data.
JP1987151604U 1987-10-02 1987-10-02 Music synthesizer Expired - Lifetime JPH0738955Y2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1987151604U JPH0738955Y2 (en) 1987-10-02 1987-10-02 Music synthesizer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1987151604U JPH0738955Y2 (en) 1987-10-02 1987-10-02 Music synthesizer

Publications (2)

Publication Number Publication Date
JPS6455992U JPS6455992U (en) 1989-04-06
JPH0738955Y2 true JPH0738955Y2 (en) 1995-09-06

Family

ID=31425793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1987151604U Expired - Lifetime JPH0738955Y2 (en) 1987-10-02 1987-10-02 Music synthesizer

Country Status (1)

Country Link
JP (1) JPH0738955Y2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61188593A (en) * 1985-02-18 1986-08-22 カシオ計算機株式会社 Touch response unit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61188593A (en) * 1985-02-18 1986-08-22 カシオ計算機株式会社 Touch response unit

Also Published As

Publication number Publication date
JPS6455992U (en) 1989-04-06

Similar Documents

Publication Publication Date Title
JPH0738955Y2 (en) Music synthesizer
JPH0738956Y2 (en) Music synthesizer
JP2527652Y2 (en) Music synthesizer
JP2950461B2 (en) Tone generator
JP2997470B2 (en) Music information processing device
JPH0750799Y2 (en) Tone phase synchronizer
JP2718039B2 (en) Music synthesizer
JP2753511B2 (en) Music synthesizer
JP2722460B2 (en) Music synthesizer
JPS6042955B2 (en) Wave generator for electronic musical instruments
JPS6374100A (en) Electronic musical instrument
US4936179A (en) Electronic musical instrument
JPH0746960Y2 (en) Music synthesizer
JP2968320B2 (en) Distortion device
JP3116447B2 (en) Digital signal processor
JPS5839B2 (en) electronic musical instruments
JPS6118559Y2 (en)
JP2798913B2 (en) Musical tone waveform generating apparatus and musical tone waveform generating method
JPH02125296A (en) Electronic musical instrument
JPS6343760B2 (en)
JPH02179697A (en) Processor for electronic musical instrument
JPS63264798A (en) Adaptive calculator for digital musical sound synthesizer
JPH0460725A (en) Digital microcomputer
JPH0460595A (en) Processor for electronic musical instrument
JPH06242779A (en) Signal processor