JP2718039B2 - Music synthesizer - Google Patents

Music synthesizer

Info

Publication number
JP2718039B2
JP2718039B2 JP62249469A JP24946987A JP2718039B2 JP 2718039 B2 JP2718039 B2 JP 2718039B2 JP 62249469 A JP62249469 A JP 62249469A JP 24946987 A JP24946987 A JP 24946987A JP 2718039 B2 JP2718039 B2 JP 2718039B2
Authority
JP
Japan
Prior art keywords
envelope
flag
data
memory
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP62249469A
Other languages
Japanese (ja)
Other versions
JPS6491196A (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 JP62249469A priority Critical patent/JP2718039B2/en
Publication of JPS6491196A publication Critical patent/JPS6491196A/en
Application granted granted Critical
Publication of JP2718039B2 publication Critical patent/JP2718039B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 [発明の技術分野] この発明は楽音合成装置に関し、特に、楽音の発音制
御技術に関する。 [発明の背景] 従来の代表的な楽音合成システムでは、CPU(汎用マ
イクロプロセッサ等)に演算状態の検出、音源部への所
要データの転送などの制御機能をもたせ、音源部にはCP
Uから転送されたデータを基に楽音を合成する合成機能
をもたせている。この種の装置では、発音制御命令とし
て、キーオン命令とキーオフ命令がCPUから音源部に送
られるようになっており、キーオン命令が与えられたと
きには、音源部はエンベロープを最初のステップからス
タートさせ、キーオフ命令が与えられたときには、所定
のステップに移行してエンベロープを終了させる。した
がって、発音開始時に、エンベロープを任意のステップ
から開始させたり、発音中にエンベロープを任意の他の
ステップに変更したり、発音中の任意のタイミングでエ
ンベロープをサスティン状態に移行させたりする自由度
を欠いている。 例えば、特公昭60-42955号(特願昭51-158949号、出
願日、昭和51年12月29日、名称、「電子楽器用ウェイブ
ジェネレータ」)では、CPU(キーアサイナ)から音源
部へキーオン命令としてスタートコマンドが与えられる
とき、音源部のセグメント番号(ステップ番号)がゼロ
に初期化され、音源部はこのセグメント番号で示される
エンベロープデータを読み出し、エンベロープを開始さ
せる。発音中は、セグメント番号を歩進させタイミング
を検出するために、各セグメントの長さを示すデータが
使用され、音源部はこのデータを一定のサイクルで減算
し、セグメントの時間が経過した時点でセグメント番号
をインクリメントし、次のステップのエンベロープの生
成に移行する。上記セグメント長データは発音開始に先
立ち、CPUから与えられるデータであり、発音中の変更
はない。セグメント長データのなかには、サスティンフ
ラグが含まれ、このフラグが立っているセグメント番号
では、セグメント長データの減算は停止され、エンベロ
ープはホールド状態に置かれる。したがって、エンベロ
ープがホールド状態に移行するのは、予め設定されたセ
グメント長データにより示されている時間が経過したと
きのみであり、発音中における演算状態の変化等によっ
て発生することはない。このサスティングラグ自体は、
CPUからキーオフ命令が送られてきても変更されない
が、エンベロープを終了させるために、キーオフ命令に
基づく制御信号が音源内部で生成され、この制御信号に
より、セグメント長データの計測とエンベロープの演算
(加減算)が再開されるようになっている。 電子楽器の楽音合成装置にあっては、演奏入力装置の
演奏状態を楽音に反映させることのできる度合が重要な
検討事項の1つであり、この度合が高いものが望まれ
る。 [発明の目的] したがって、この発明の目的は、自由度の高いエンベ
ロープ制御、発音制御が可能な楽音合成装置を提供する
ことである。 [発明の要点] この発明は上記の目的を達成するため、エンベロープ
の進行を制御するためのエンベロープフラグのメモリを
用意し、このエンベロープフラグの内容に従ってエンベ
ロープを演算するエンベロープ生成回路手段と、エンベ
ロープの進行に応じてエンベロープフラグを選択的に更
新するエンベロープ更新回路手段とを楽音制御信号生成
回路手段に組み込み、さらに、上記エンベロープフラグ
の内容がCPUにより自由に書き換えられるようにしたこ
とを要点とする。 すなわち、特許請求の範囲第1項の発明によれば、演
奏状態をモニターするCPU(3)によって制御され、演
奏状態に従って楽音を合成するため、メモリ(7)と、
上記CPUからの命令または命令とその付属データとに応
答して、上記メモリの所定領域にデータを書き込むイン
タフェース回路(11)と、上記メモリのデータを利用し
てエンベロープ等の楽音制御信号を生成する楽音制御信
号生成回路(12)と、上記楽音制御信号生成回路により
生成された楽音制御信号に従って楽音波形を生成する波
形生成回路(15)とを備えた楽音合成装置において、 上記メモリが、その一部として、(a)上記インタフ
ェース回路を介して上記CPUにより書き込まれる、生成
すべきエンベロープ波形の各ステップ毎のエンベロープ
演算用パラメータ(ERij、ELij)を記憶するエンベロー
プ演算用パラメータメモリと、(b)エンベロープ波形
の現在値(Eij)を記憶するエンベロープ現在値メモリ
と、(c)エンベロープ波形のステップ情報を含むエン
ベロープフラグ(EFij)を記憶するエンベロープフラグ
メモリとを含み、 上記楽音制御信号生成回路が、(d)上記エンベロー
プフラグメモリから、エンベロープフラグを読み出すエ
ンベロープフラグ読み出し回路と、(e)読み出したエ
ンベロープフラグに含まれるステップ情報が示すステッ
プのエンベロープ演算用パラメータ(ERij(s)、EL
ij(s))を、上記エンベロープ演算用パラメータメモリ
から読み出すパラメータ読み出し回路と、(f)上記エ
ンベロープ現在値メモリからエンベロープ現在値を読み
出し、読み出したエンベロープ演算用パラメータとの間
で演算を行ってエンベロープ現在値を更新し、更新結果
を楽音制御信号として出力するとともにエンベロープ現
在値メモリにセーブするエンベロープ生成回路と、
(g)上記エンベロープ生成回路による演算の結果に従
って、読み出したエンベロープフラグを適宜更新し、更
新したエンベロープフラグを上記エンベロープフラグメ
モリにセーブするエンベロープフラグ更新回路とを含
み、 (h)上記CPUから上記インタフェース回路への命令の
なかにフラグセット命令が含まれ、(i)上記インタフ
ェース回路は、当該フラグセット命令に応答して、その
付属データである任意のエンベロープフラグを、上記エ
ンベロープフラグメモリに書き込むとともに、前記エン
ベロープフラグ更新回路が、上記演算の結果に従って更
新したエンベロープフラグを、上記エンベロープフラグ
メモリに書き込むように構成されたことを特徴とする楽
音合成装置が提供される。 [発明の作用、展開] 特許請求の範囲第1項の記載によれば、CPUは、フラ
グセット命令を与えるときに、この命令に任意のエンベ
ロープフラグを付属させ、このエンベロープフラグがイ
ンタフェース回路手段を介してメモリに書き込まれる。 例えば、発音開始を行うときに、エンベロープフラグ
のセット命令により、最初のステップ以外のステップを
指示する情報を付属データとしてインタフェース回路手
段に送ってやれば、エンベロープ生成回路手段によりエ
ンベロープがこの指示されたステップから開始すること
になる。原理的にこのセット命令によりセットされるエ
ンベロープステップは任意の値を取り得る。したがっ
て、発音の開始時に、任意の位置からエンベロープを生
成開始できる。 具体的に挙げると、最初のアタック部分を構成するス
テップに、振動を含むエンベロープデータを設定してお
き、鍵タッチに応じてこれらのステップを選択的に省略
して振動のないステップからエンベロープが開始される
ようにフラグセット命令を与えることにより、アタック
トレモロを鍵タッチの大小という、演算状態情報により
選択することが可能となる。 さらに、フラグセット命令は発音中の任意のタイミン
グで発行することが原理的に可能である。例えば、ある
種の演奏状態の変化に対して、ホールドを示す情報を含
むエンベロープフラグをフラグセット命令によりメモリ
に設定すれば、押鍵のタイミングとは独立のタイミング
からエンベロープをホールド状態にすることができる。 なお、所望であれば、フラグセット命令を一種のキー
オフ命令として使用することもできる。 例えば、エンベロープを高速で減衰させるためのハイ
リリースデータ(HRij)を記憶するハイリリースメモリ
を上記メモリ(7)上に設け、CPUから“ハイリリー
ス”のフラグセット命令を与えることで、インタフェー
ス回路手段がこの命令の付属データである。ハイリリー
スデータを指示するエンベロープフラグをエンベロープ
フラグメモリに書き込み、楽音制御信号生成回路がエン
ベロープフラグを読み出したときにそのエンベロープフ
ラグがハイリリースデータを指示しているならば通常の
リリースデータに代えハイリリースメモリからハイリリ
ースデータを読み出すようにする(特許請求の範囲第4
項)。このようにすれば、ハイリリースのフラグセット
命令によって楽音を高速に消音することができる。 このように、フラグセット命令による任意のエンベロ
ープフラグ設定機能は、極めて自由度の高いエンベロー
プ制御を可能にするものであり、新しい発音制御の概念
をもたらしている。 エンベロープフラグはエンベロープ生成回路手段にお
けるエンベロープの演算を制御する働きをもっており、
逆に、エンベロープ生成回路手段による演算結果もしく
はエンベロープの進行状況は、エンベロープフラグを選
択的に更新する働きをもっている。代表的には、エンベ
ロープ波形のあるステップか完了したときには(エンベ
ロープ演算用パラメータを第5項のようにエンベロープ
レートと目標レベルとで構成した場合には、エンベロー
プの現在値が目標レベルに到達したときには)、エンベ
ロープ更新回路手段にてエンベロープフラグに含まれる
ステップ情報が次ステップに更新され、次の演算サイク
ルからは、エンベロープ生成回路手段は、この更新され
たステップのエンベロープデータを使ってエンベロープ
の現在値を生成していく(特許請求の範囲第10項)。ま
た、エンベロープフラグにエンベロープの方向情報を含
ませる場合には、ステップの更新時に、新しい目標値と
エンベロープ現在値とを比較することで、新しいステッ
プにおけるエンベロープの方向情報を決定することがで
きる。 このために、例えば、エンベロープフラグ更新手段
は、エンベロープ波形のステップ完了に際し、エンベロ
ープ波形が節点にいることを表わすノードフラグ(E
F6)を立てて次のステップのエンベロープ波形の方向を
判定する(特許請求の範囲第11項)。 ところで本発明のように、エンベロープフラグのメモ
リアクセスを音源側のエンベロープ生成回路手段やエン
ベロープフラグ更新回路手段のみならず、外部のCPUも
行う構成にあっては、CPUによるエンベロープフラグの
書換えを確保する手段があることが望ましい。特許請求
の範囲第2項はこの手段の好ましい構成を述べている。
すなわち、エンベロープフラグのメモリがCPUにより書
き換えられた場合に、エンベロープフラグ更新回路手段
によるエンベロープフラグの書き換えを一時的に禁止す
る禁止回路手段を設けている。したがって、COUによる
エンベロープフラグの書換えは遅れなしに確実になされ
ることになる。 フラグセット命令は、エンベロープフラグのデータが
付属する命令であり、この付属データがそのままのかた
ちでメモリに書き込まれる。これに対し、特許請求の範
囲第3項に記載のキーオフ命令にはデータは付属しな
い。このキーオフ命令はエンベロープフラグのデータを
書き換える命令である点で、フラグセット命令と似てい
るが、変更されたエンベロープフラグのデータが、CPU
自身の送出したデータでない点で異なっている。すなわ
ち、インタフェース回路手段にはキーオフ命令に応答す
るキーオフ処理回路手段が設けられ、この手段により、
キーオフ命令発行時点のエンベロープフラグをメモリか
ら読み出し、その内容に従ってエンベロープフラグを変
更してメモリに戻している。これは、離鍵の際には、そ
の時点におけるエンベロープの進行状況によってエンベ
ロープフラグを変更した方がよい場合が少なくないこと
を考慮したものである。 離鍵の際に、エンベロープの進行状況とは独立のエン
ベロープフラグを設定しても問題のない場合は、フラグ
セット命令により行うことができる。例えば、エンベロ
ープのステップを最終ステップとするエンベロープフラ
グデータをフラグセット命令に付属させてやれば、命令
発行時におけるステップにかかわらず、エンベロープの
演算を最終ステップに移行させることができる。逆にい
えば、上記キーオフ命令によるフラグ変更機能はフラグ
セット命令によるフラグ設定機能を補完する働きをもっ
ている。 一構成例において、上記波形成形回路手段は、複数の
発音チャンネルにおける各チャンネルの楽音波形を複数
のモジュールの時分割動作で生成するものであり、入力
として楽音制御信号生成回路手段から与えられるモジュ
ール別のキーコードとエンベロープを受けとる(特許請
求の範囲第6項)。 これに関連して、上記エンベロープフラグメモリとエ
ンベロープ現在値メモリは、発音チャンネル別、モジュ
ール別にエンベロープフラグとエンベロープ現在値をそ
れぞれ記憶し、上記エンベロープ演算用パラメータメモ
リは発音チャンネル別、モジュール別、エンベロープス
テップ別にエンベロープ演算用パラメータを記憶する
(特許請求の範囲第7項)。 データ構成として、上記エンベロープフラグは、
(i)エンベロープのステップ(EF0〜EF2)(ii)エン
ベロープがホールド状態かどうかを示すフラグ(EF3
の情報を含む(特許請求の範囲第8項)。 後述する実施例では、エンベロープフラグは、(i)
エンベロープのステップ(EF0〜EF2)(ii)エンベロー
プがホールド状態かどうかを示すフラグ(EF3)(iii)
エンベロープの方向(EF4)(iv)エンベロープがステ
ップの節点にいるかどうかを示すフラグ(EF5)(v)
エンベロープのモード(EF6、EF7)の情報を含んでいる
(特許請求の範囲第9項)。 [実施例] 第1図は本発明に係る電子楽器の機能図である。CPU3
は汎用マイコンで、制御プログラムに従って、鍵盤1、
スイッチ2を走査して押鍵、音色選択等を検出し、バス
上に配置されたROM4、RAM5等を使って音色データ、発音
制御データを生成して音源LSIの発音を制御する。音源L
SI6は、後で詳述するが外付けRAM7を楽音生成のための
演算用バッファとして利用して楽音を生成し、DAC(デ
ジタルアナログ変換器)8に転送する。楽音信号はDAC8
でアナログ信号に変換され、アンプ9で増幅されてスピ
ーカ10によって放音される。 第2図は、本発明を適用する音源LSI6の動作を説明す
るためのブロック図である。音源LSI6は、振幅エンベロ
ープ及びピッチ変動を含んだキーコード等の生成のため
に、RAM7を音色データ用メモリ、又は演算経過データ用
メモリとして使う。尚、RAM7は第3図に示すように、40
0nsec毎にインタフェース/制御部11(インタフェース
占有時間)とエンベロープ/キーコード生成回路(演算
回路占有時間)に交代で占有され、CPUからのデータ書
込み及びエンベロープ用の演算のためのアクセスに対処
する。 まず、インタフェース/制御部11の動作を説明する。
CPU3からは音源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レジスタに書込まれる。 エンベロープ/キーコード生成回路12は、外部RAM7に
書込まれたデータをアクセスするためにアドレスBA0〜1
1及びエンベロープの演算経過データ等の書込み信号▲
▼を発生する。それによって外部RAM7の音色データ
(エンベロープレート/レベルなど)に基づき、発音制
御データ(キーコード、モジュレーションなど)に従っ
て、振幅エンベロープ又はピッチ変動を含んだキーコー
ド(以下では合成キーコードと呼ぶ)を生成し、バスL2
〜14を介して指数変換/位相角生成回路13に時分割に転
送する。 指数変換/位相角生成回路13はエンベロープ/キーコ
ード生成回路12からの振幅エンベロープ、合成キーコー
ドを1つの指数変換器を時分割的に共用することによっ
て指数変換する。指数変換された振幅エンベロープ(指
数エンベロープ)、及び指数変換された合成キーコード
(周波数情報)は夫々、エンベロープレジスタ、周波数
情報レジスタに一旦格納される。これらは、外部RAM7を
アクセスして振幅エンベロープ、合成キーコードを生成
し、指数変換するという演算処理が低速で行なわれ、そ
の後の演算処理が高速で行なわれるためのインタフェー
ス用バッファとして使われる。第5図に2つの演算処理
の時間関係を示すが、低速演算周期は高速演算周期の48
倍になっている。これは出力波形の変化レートが可聴周
波数の2倍以上でないといけないために波形演算は高速
で行なわれ(本実施例では約40KHz)、それ以外の演算
は外部RAM7のアクセスに合わせて低速で行っているから
である。 エンベロープレジスタに格納された指数エンベロープ
は高速演算に対応して読出され、波形合成回路15にエン
ベロープE0〜11として転送される。周波数情報レジスタ
に格納された周波数情報は、高速演算に対応して読出さ
れ、累算されて位相角データP0〜11として波形生成回路
15に転送される。 波形生成回路15はOCレジスタ14から読出されたオペレ
ーションコードOC0〜7に基づいて、指数変換/位相角
生成回路13から転送されるエンベロープE0〜11、位相角
データP0〜11に従って楽音波形O0〜15を生成し、DAC8へ
出力する。 第6図はインタフェース/制御部11の回路図である。
まず、タイミング信号発生回路159について説明する。
タイミング信号発生回路159は、第7図、第8図に示す
ように基本クロックφM(10MHz)を分周し必要なタイミ
ング信号を作り、外部からのリセット信号▲
▼から内部リセット信号を作るものである。第9図に
その一実施例を示す。10MHzの基本クロックはフリップ
フロップ233、インバータ235で分周されS0が生成され、
更にフリップフロップ234によってT0が生成される。更
にアンド237によってφ1が生成され、フリップフロップ
239,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図のようにリセット後の動作
を行なう。 次に、CPU3と音源LSI6のデータメモリである外部RAM7
とをインタフェースするインタフェース/制御部11の動
作を説明する。表1にCPU3から転送されるインストラク
ション、データ及び、外部RAM7の対応するアドレスを示
す。 ここで、音源LSI6は8つの発音チャンネルを持ち各発
音チャンネル毎に8つの正弦波生成モジュールを持つの
で、エンベロープ/キーコード生成回路12では、各発音
チャンネル毎のピッチエンベロープを含めて72個の振幅
エンベロープ、64個の合成キーコードを生成しなければ
ならない。そのため、データは各チャンネル毎(jjj=
0〜7)に各モジュール(0iii=0〜7)のデータを転
送しなければならない。ただしエンベロープに関係する
データはピッチも含めて9個(jjjj=0〜8)転送す
る。尚、データを1個しか送らないものは各モジュール
共通のものである。 第6図で▲▼、/D、▲▼、DB0〜7にはCPU
3からの信号が入るわけだが、第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のようにな
る。 まず、外部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、1
81、ナンド182により信号▲▼は、が“1"、かつT
2が“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となる。ア
ドレスAA4〜AA6はインストラクションのラッチ146〜153
の下位3ビットの反転であるからチャンネル番号を表わ
す値“jjj"となる。また、アドレスAA7〜AA11はインス
トラクションデコーダ154の出力EF、WBが“0"だから、
ノア204、オア205、207の右入力は“0"、アンド209、21
1の右入力は“1"、オア203の左入力は“0"なので、イン
ストラクションのラッチ146〜153の上位5ビットの反転
となり、インストラクションの上位5ビットそのものと
なる。以上のように各チャンネル各モジュールあたり1
バイトのデータの書込みの場合、インストラクションと
一致するアドレスに対して第11図のような書込み用の信
号が生成される。ここで各チャンネルの識別はインスト
ラクション下位3ビットでなされるが、モジュールの識
別はインストラクション転送後から何番目のデータかと
いうことをカウンタ191で計数することによって行なわ
れている。したがって、1つのインストラクションに複
数のデータが後続する連続転送フォーマットにおいて、
どのデータがどのモジュールに対するデータであるかは
インタフェース/制御部11で自動的に識別されるので、
CPU3はモジュール別にインストラクションを送る必要は
なく転送効率が上る。 次に外部RAM7に書込まれるデータのうち各チャンネル
各モジュールあたり2バイトのデータ(周波数比、キー
コード、モジュレーションレベル/レート、ピッチモジ
ュレーション)の書込み動作を説明する(第12図参
照)。CPU3からのインストラクション書込みに応答し、
▲▼が0になり、それによって、インストラクシ
ョンがラッチ146〜153に取込まれるとともに、カウンタ
191、フリップフロップ186、192〜195がリセットされ
る。フリップフロップ176の出力は“0"となっているの
でナンド172の上入力は“1"、インストラクションデコ
ーダ154の出力WRは“1"なのでナンド172の出力はは
“0"となっており、また、ノア167の入力は共に“0"な
のでオア168、170、アンド169により、CK12はCKQとな
る。CPU3からのデータの書込みにより、▲▼が
“0"→“1"になると、フリップフロップ114〜121がデー
タを取込むと共にフリップフロップ175は“1"を出力
し、フリップフロップ176は“1"、インバータ171は
“0"、ナンド172の出力は“1"となる。そのとき、ノ
ア167の上入力は“1"なのでCK12はCKWとなる。再び▲
▼が“0"→“1"になると、フリップフロップ130〜1
37は前段のデータを、フリップフロップ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〜145がデータを出力する。ここでデータは下位
(レベル)、上位(レート)の順でCPUから書込まれる
ので、バスD0〜7には上位(エート)、下位(レベル)
の順でデータが出力され外部RAM7に入力われる。カウン
タ191は、インストラクションーデコーダ154の出力▲
▼が“0"なので、が“1"のときのCKWがそのクロッ
クCKCとなり、0、1、2……と歩進されてモジュール
番号を表わすアドレスAA0〜AA3となる。アドレスAA4〜A
A6はインストラクションのラッチ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に対し、イン
ストラクションに可変のバイト構成のデータが後続する
可変フォーマットでデータ転送を行なうことができ、ダ
ミーデータなしの最適の転送効率を達成できる。 次にインストラクション“フラグセット”について述
べる(第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〜A
A3はカウンタ191の値、アドレスAA4〜AA6はインストラ
クションの“jjj"、AA7〜AA11はEFが“1"、WBが“0"だ
から“00110"となる。したがって、インストラクション
“フラグセット”ではモジュール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"な
らば“00000111"に、“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)するようになっ
ている。 次にOCレジスタへの書込みを説明する(第15図)。書
込み動作は1バイトデータとほぼ同じだが、インストラ
クションデコーダ154の出力IDが“1"となるためRAM7へ
の最終的書込信号▲▼は発生せず(第43図参
照)。▲▼が“0"なのでと同じタイミングでOCレ
ジスタへの書込み信号WOが発生され、T2=“0"で▲
▼=“0"のときにフリップフロップ114〜121に取り込ま
れているオペレーションコードがゲート122〜129を通っ
てOCレジスタに入力される。最後にラッチ156〜158への
書込み(モード)は、上と同様にが発生するが、イン
ストラクションデコーダ154の出力IDが“1"となるためR
AM7への書込みは発生せず、▲▼が“0"となるので
と同じタイミングでラッチ信号MLTが発生し、その立
下りでラッチ156〜158にフリップフロップ114〜116のデ
ータが取込まれる(第16図参照)。 第17図はエンベロープ/キーコード生成回路12のブロ
ック図である。エンベロープ/キーコード生成回路12
は、振幅エンベロープ及び合成キーコードを生成するた
めにRAM7にアクセスしながら以下の演算を行っている。 エンベロープレート(エンベロープの傾きデータ)
を鍵域又は鍵タッチに対応するデータ“エンベロープレ
ート変化”で変更する。 エンベロープレベル(エンベロープの各ステップの
目標データ)を鍵域又は鍵タッチに対応するデータ“エ
ンベロープレベル変化”で変更する。 変更されたエンベロープレート、エンベロープレベ
ルに従ってエンベロープを生成する。 アフタータッチ、LFO等に対応する振幅モジュレー
ションデータを補間し、振幅エンベロープと演算して最
終的な振幅エンベロープを生成する。 ベンダー、LFO等に対応するピッチモジュレーショ
ンデータをピッチエンベロープと演算する。 キーコードとモジュレーション付きのピッチエンベ
ロープを演算し、それと各モジュール毎の周波数比率を
表わす周波数比とを演算し、最終的な合成キーコードを
生成する。 これらを実現するために、エンベロープ/キーコード生
成回路12では、第30図に示すように、共通化された演算
回路308を使用し、そのA、B、M、Sレジスタへのデ
ータのロードや加減算の制御等を行っている。ただし、
M、Sレジスタ、Bレジスタ上位の出力はいずれか1つ
が選択される。第17図においてカウンタB303は演算の基
本周期を作っているもので、第18図にその回路図を示
す。 カウンタ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の演算周期を示す。 第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;モジュレーションレート i=0〜7(〃) MLj;モジュレーションレベル i=0〜7(〃) のように対応している。第20A図のフローで、左側にあ
る数字はタイミングを意味しており、0〜11はカウンタ
1の値そのもの、1P〜19はカウンタ3の値が8
(ピッチの演算)以外のときのカウンタ1の値12〜19〜
12P〜19Pはカウンタ3の値が8(ピッチの演算)のとき
のカウンタ1の値12〜19に相当する。 第20A図のフローを説明する。まずタイミング0でエ
ンベロープフラグ;EFijをRAM7からSレジスタにロード
する。ここで、エンベロープフラグのデータ構成は下の
ようになっている。 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▼に対応するアドレスに書込む。10)次に到
達、未到達のいずれの場合にも、Bレジスタ下位には格
納すべきエンベロープ下位データが入っているので、そ
れをRAM7のエンベロープ下位;▲EL ij▼のアドレスに
書込む。ただし、ノードのビットが節点を表わす“0"の
場合には、上記のような演算を行なわず、エンベロープ
の現在値と目標値を比較することによってエンベロープ
の進むべき方向を判定して符号のビットをセットしてい
る。以上説明したようにエンベロープの基本演算は、ス
テップの節点毎にエンベロープの進行方向を判定してお
き、 a) エンベロープレートレベルの変更 b) エンベロープの更新 c) 目標レベルへの到達か否かの判定 d) エンベロープ現在値格納 によって行なわれている。 次に、11)Aレジスタ上位にMレジスタのデータが転
送されるとともにAレジスタ上位のデータがRAM7のエン
ベロープフラグ;EFijのアドレスに書込まれる。このと
き、Aレジスタ下位には振幅モジュレーション;AMDj
はピッチモジュレーション;PMDjの下位データ、Mレジ
スタにはその上位データが入っている。 まず、モジュール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に転送する。 次にピッチの演算(カウンタ3=8)について考え
る。12P)BレジスタのRAM7に書込んだエンベロープの
データにAレジスタにあるピッチモジュレーション;PM
Djを加減算(F2に応じて)し、最終的なピッチのエンベ
ロープ;PEjとしてBレジスタに格納する。そのとき、
Aレジスタ上位に振幅モジュレーション上位;▲AMDM j
▼をロードしておく。13P)振幅モジュレーション下
位;▲AMDL 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図参照)を基にして、補間することによって生
成されている。 第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にはア
ドレスのLSBを強制的に“1"とするもので後述するよう
にタイミング12、12P、13P、17、17P▲▼、17P
F′、18P、19Pで“1"となる。▲▼はアドレス下位
4ビット(モジュール)をオール0にするもので第20B
図のデータにiのINDEXがついていないタイミングで
“1"となる。OA0〜4は原アドレス信号で、第20B図の
“アドレス”に対応している。ただし、タイミング1、
5の“SSS"は原アドレスOA0〜2のかわりのエンベロー
プフラグ(Sレジスタ)の下位3ビット(ステップ)が
アドレスとして採用されることを意味している。a〜k
は第23図に示すようにクロック発生回路304の出力であ
る各種クロック、CKAM、CKAL、……、CKE等を生成する
ための信号で、第20B図“クロック”のタイミングで
“1"となる。RA、RBは夫々Aレジスタ、BレジスタにRA
M7からのデータをロードする時“1"となる信号で、第20
B図“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、9
F′;AM←1+S、11;AM←0+M、12;A←0+B、17
PF′;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"となる。 次に、第24図演算用アドレス生成回路301について説
明する。大抵の場合アドレス信号BA0〜11は、以下のよ
うに構成されている。 さらに、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によりア
ドレスは、0 OA3 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により、アドレスは、 0A4 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により、
アドレスは、 0A4 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によりアドレスは、 0A4 OA3 OA2 OA1 OA0 ▲0 0 0 0 0 0
▼ となる。従って、全チャンネル共通の振幅、ピッチモジ
ュレーションデータを読出すことになる。次にタイミン
グ12、12P、13P、17、17P′、17PF′、18P、19P
のときは、▲▼、LSIは“1"なので、インバータ38
5、386、ノア383、384、クロックノア382、アンド378〜
380により、アドレスは、 0A4 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を発生する。 第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図のようにA
M′、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レジスタの出力
を100000000000000とするもので、ピッチのエンベロー
プ演算中にエンベロープ現在値をマスクする信号E0に従
ってナンド400により“0"となる。 第27図は、エンベロープ/キーコード生成回路12で、
エンベロープフラグをロードし(タイミング0)、再び
書込む(タイミング11)までの間にCPUから転送された
インストラクションによって同一チャンネル同一モジュ
ール又はピッチのエンベロープフラグが書き替えられた
場合に、エンベロープ/キーコード生成回路12からRAM7
にエンベロープフラグを書き込むのを禁止する。書込み
禁止回路302の詳細図である。エクスクルーシブ・オア4
08〜414、ノア407は比較回路を形成し、インタフェース
/制御部11からのアドレスでチャンネル、モジュール又
はピッチに担当するビットAA0〜6と、エンベロープ/
キーコード生成回路12での演算チャンネル、モジュール
又はピッチに相当するカウンタ3の出力BC5〜11とを比
較し、一致したら“1"を出力する。第28図は書込み禁止
回路302のタイムチャートである。第27図のナンド406の
出力ははインタフェース/制御部11がエンベロープ/
キーコード生成回路12で演算しているチャンネル、モジ
ュール又はピッチと同じチャンネル、同じモジュール又
はピッチのエンベロープフラグを書込んだ時に“0"とな
る。第28図(1)はエンベロープ/キーコード生成回路
12でエンベロープフラグを読出した直後にインタフェー
ス/制御部11が同一チャンネル、同一モジュール又はピ
ッチのエンベロープフラグを書込んだ場合であり、は
タイミング1の後半から0となって書込みを禁止する。
尚タイミング0以前にが“0"となっていてもオア404
によってタイミング0でフリップフロップ403は“1"に
セットされるので書込みは禁止されない。(2)はエン
ベロープ/キーコード生成回路12がエンベロープフラグ
を書込む直前にインタフェース/制御部11が同一チャン
ネル、モジュール又はピッチのエンベロープフラグを書
込んだ場合であり、はタイミング11の後半で0となっ
て書込みを禁止する。したがって、タイミング1〜11の
間に同一チャンネル、同一モジュール又はピッチのエン
ベロープフラグが、インタフェース/制御部11で書込ま
れたらエンベロープ/キーコード生成回路12からのエン
ベロープフラグの書込みを禁止する。 第29図は指数データ用アドレス生成回路306の詳細図
である。フリップフロップ415〜420、反転出力フリップ
フロップ421は演算回路308で生成された最終エンベロー
プ及び最終キーコードを指数変換/位相角生成回路13で
指数変換してメモリに書込む際の書込みアドレスを記憶
する。クロックインバータ425〜434は書込みP1アドレス
と読出しアドレスC1〜5をタイミング信号T2によって切
換えることにより、アドレス信号DA1〜5を生成する
(アドレスDA0は書込みアドレスと同じ)。指数変換さ
れたエンベロープ、及び周波数情報は、アンド422、423
によって生成されたWEE、WEF、アドレスDA0〜5によっ
て夫々メモリに書込まれる(詳細は後述)。 次に演算回路308を第30図を用いて説明する。上述し
たような第17図の制御信号によって演算回路308は第20A
図の動作フローのように動作を行っている。 第31図はAレジスタの詳細図である。Aレジスタは、
下位側FF485〜492、上位側FF493〜499およびFFへの入力
選択用クロックナンド454〜461、クロックインバータ46
2〜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(ピッ
チのエンベロープのスタートデータに相当)。 第32図は、Bレジスタの詳細図である。Bレジスタは
下位側FF564〜571、上位側FF572〜578、及びFFへの入力
選択用クロックナンド532〜539、クロックインバータ54
0〜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、
B010、B09、B08、0……0となる。これはエンベロープ
レートデータのレンジを広げるためのデータ変換で、BO
11〜BO14によって変換されたデータのシフト又はデータ
加減算の間引き等を行なうことによって、所望範囲のエ
ンベロープの上昇下降速度を得ている。表3にBレジス
タ上位に入っているエンベロープレート;ER6、ER5……
ER0の変換を示す。 第33図はMレジスタの詳細図で、反転出力FF617〜623
はクロックCKMによりデータバスD0〜6のデータを取込
む。クロックノア624〜630は信号Mが“1"のときNレジ
スタのデータを出力するものでMが“1"、MO0が“1"の
ときオール0を出力する。 第34図にシフト制御回路447を示す。クロックインバ
ータ643〜645、クロックノア634、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となるため、シフトは行なわれない。 第35図はエンベロープ制御回路448の詳細図である。
エンベロープ制御回路448は、タイミング5の演算でエ
ンベロープを上昇、下降させるか、または停止させてお
くかを制御するイネーブル信号▲▼を作るものであ
る。信号▲▼は、ナンド665により、▲▼が
“0"すなわち、ホールド中、または、が“1"すなわ
ち、エンベロープがステップの切替わり点におり、進む
べき方向を判定中のときは“1"となり、エンベロープを
固定される。また、インバータ651〜654、カウンタ65
5、フリップフロップ656〜659、アンド660〜663、オア6
64はエンベロープの傾きを変えるために、エンベロープ
演算の間引き信号を発生する回路を形成しており、オア
664の出力が0のとき、演算が間引きされるように▲
▼が“1"となる。表5にエンベロープレートの上位4
ビットのデータであるBレジスタ出力▲▼〜▲
▼の値と演算のイネーブル信号▲▼が“0"
となるカウンタ値の関係を示す。 したがって表3の下部のように演算の間引きが行なわ
れる。 第36図はデータ変更回路439の詳細図である。タイミ
ング12Pのとき、信号12Pは“1"となるから、ゲート回路
666〜677により、出力BI″12〜14は BI″12=▲▼、BI″13=▲▼、B
I″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〜1
1、BI″12〜14は、 となる。これは、最終的なピッチのエンベロープを中心
レベルより上なら正、下なら負の2の補数表示にしたこ
とになる。すなわちこれをキーコード;KCjに加算する
際に、最終的なピッチのエンベロープを10……0を中心
にしてそれより大きければその差を加算、小さければそ
の差を減算することに相当しており、キーコードに反映
されるピッチエンベロープを中心レベルに対して対称化
している。 第37図は符号生成回路449の詳細図である。信号ASは
加減算器440のA入力側の符号で、12P、▲▼が“1"
のとき、ナンド678、681により“1"となる。すなわち、
第20A図動作フローの“B←±A+B(B←±PMDj
Epj)”のA側の符号は、F2(データPMDjMSB)が“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は加減算器440の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図参照)は減算、下;FA
14=“0"のとき(第39図参照)は加算となる。以上のよ
うに第37図の符号生成回路449は加減算器440における各
入力の符号AS、BSを生成し、動作フロー(第20A図)が
実現される。 第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、CARRY OUT、出力MSBである。 第40図は動作フローにおける分岐フラグF′の基にな
る信号Fを発生するフラグ発生回路450の詳細図であ
る。クロックCKFはタイミング5、8、15P、16Pのとき
のみ発生するのでその場合のみ考える。まず、が“0"
ならばタイミング5のとき信号5、8が“1"なのでナン
ド714が有効になり、ナンド714の出力はS4′、ナンド71
5の出力は▲▼となる。▲▼は“1"なのでナ
ンド719の下入力は“1"だから▲▼が“1"、COが
“1"又は▲▼が“0"、COが“0"ならばFF720は
“1"がセットされる。これは、エンベロープ更新時にオ
ーバーフロ又はアンダーフローをしたらフラグFをセッ
トすることに相当する。が“0"でタイミング8のと
き、同様にしてナンド714の出力は▲▼、ナンド7
15の出力は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図)の分岐条件となる。 第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の
出力は制御される。 第42図はSレジスタ及びエンベロープフラグ制御回路
446の詳細図である。フリップフロップ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の演算“B←
A±B[B←Eij±(ERij(s)+ERCj]”でA入力を0と
する信号で、ナンド747、ノア752、インバータ759、ア
ンド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)のMS
B)が“1"ならホールド状態となりエンベロープは固定
される。その後キーオフがCPU3から来たらホールドが解
除されて次のステップをスタートする。尚、ループモー
ドでサスティンフラグが最終のステップ7にあったら、
エンベロープフラグは011*0111→01101111+1=01010
000となりステップ0に戻るためエンベロープが最初か
くり返される。 以上第30図の演算回路を説明したが、このような動作
を行なうことによって、演算回路は第20A図の動作フロ
ーのような演算を実行し、最終エンベロープ及び合成キ
ーコードを生成し、指数変換/位相角生成回路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からの出力となる。 第45図は、第2図の指数変換/位相角生成回路13のブ
ロック図である。エンベロープ/キーコード生成回路12
で生成されたエンベロープ及びキーコードは、クロック
CKEでフリップフロップ(FF)1000に取込まれる。FF100
0の出力は指数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"のときにはEN
VERAM1012、T2=“0"のときにはENVORAM1013からT2=
“1"で読出されたデータをFF1014〜1019で遅らせたデー
タが出力E0〜11となる。したがって、エンベロープレジ
スタ1002は、エンベロープ/キーコード生成回路12のタ
イミングでデータが書込まれ、インタフェース/制御部
11のタイミングで読出され、FF1003を介して波形生成回
路15に送られる。 第47図は周波数情報レジスタ1004の詳細図で、エンベ
ロープレジスタ1002と全く同様の動作をする。読出され
た周波数情報FI0〜20はFF1005を介し、位相角生成用の
累算器(加算器1006、シフトレジスタ1007)へ送られ、
位相角が生成される。 第49図は、OCレジスタ14の詳細図である。OCレジスタ
14はエンベロープレジスタ1002や周波数情報レジスタ10
04と同様に偶数チャンネル用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を生産するものである。 第50図は、波形生成回路15のブロック図である。波形
生成回路15は本件出願人に係る特願昭61-55008号に示す
回路とほぼ同様な動作を行なう。まず、位相角P0〜11が
セレクタ118で選択され、FF1119、位相角変換回路112
0、シフトレジスタ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、1130、1132、
ゲート回路1129、1131、1135、位相角変更回路、1120、
加減算器1126を制御することによって行なわれる。表6
にCPUから入力されたOCデータ上位4ビットに対応する
演算で示す(第49図参照)。 これらの演算制御によって、波形が生成される。 以下に波形生成例を示す。ただし、iはモジュールN
o、jはチャンネルNoとする。 1) Ei+ljsin(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の波形出力に対するものとなってい
る。 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″sinX′はシフトレジスタ1133に入力される。モジュ
ールi+1、チャンネルjの波形は位相角としてPが選択
され、その波形はシフトレジスタ1134の出力Rから減算
されてモジュールi+2、チャンネルjの位相角となる。
そして、モジュールi+2、チャンネルjの波形出力E″s
inX′は楽音出力と累算される。以上のようにオペレー
ションコードによって、波形生成が様々に行なわれるこ
と9によって、多くの音色の楽音を発生できる。出力波
形は生成された波形を順次累算していくが、第52図でC0
〜C5の値が“9"のときに新たな演算サイクルの波形がFF
1128に取込まれるが(出力されない波形=位相となるも
の)、その時のFF1128の出力が前サイクルの波形の累算
値であるので、それをラッチ1139で取込む(CKL)こと
によってラッチ1139は各演算サイクル毎の波形最終累算
値を出力することになる。尚、ゲート回路1140は信号OM
が“0"のとき出力をオール0(中心レベル)にするもの
で、リセット後モードデータがセットされるまでそれを
維持する。すなわち、パワーオン等により外部リセット
信号が発生すると、タイミング信号発生回路159により
内部リセット信号が発生し、これが第6図のモードのラ
ッチ156をリセットし、その出力OMを“0"にするため、
ゲート回路1140の出力、すなわちDAC8に送られる信号出
力は無音レベルのオールゼロに置かれる。一方、CPU3は
インタフェース/制御部11を通じて、外部RAM7に音色等
の所要データを設定し、最後にインストラクション“モ
ード”を送ってモードラッチ156〜158をセットする。こ
れによりOMは“1"となり、ゲート回路1140はイネーブル
され、波形生成回路15で演算した波形信号がDAC8に送ら
れるようになる。つまり、電源投入後、外部RAM7におけ
る所要データの設定完了に、音源LSI6が正規の楽音信号
を合成可能になるまでの間、DAC8への入力は無音状態の
レベルに維持されるようになっている。 [発明の効果] 以上、詳細に説明したように、この発明では、エンベ
ロープの進行を制御するためのエンベロープフラグを使
用し、このエンベロープフラグをCPUにより自由に書き
換えられるようにしているので、従来技術では達成し得
なかった自由度の高いエンベロープ制御、発音制御が可
能であり、演奏入力装置の演奏状態をよりダイナミック
に楽音に反映させることができる。例えば、発音開始の
際、イニシャルタッチの大小により異なるエンベロープ
ステップからエンベロープの演奏を開始させることがで
きる。また、発音中の任意の時点で生じ得る演奏状態の
変化に対応して、エンベロープをサスティン状態に固定
したり、他のステップに移行させることができる。
DETAILED DESCRIPTION OF THE INVENTION [Technical Field of the Invention]   The present invention relates to a tone synthesizer, and more particularly to a tone generation system.
Related to your technology. [Background of the Invention]   Conventional typical music synthesis systems use a CPU (general purpose
Detects the calculation state in the microprocessor, etc.
Control functions such as transfer of required data are provided, and the sound source section has a CP
Synthesizing function to synthesize musical sounds based on data transferred from U
It has. In this type of device, the sound control command is
Key-on and key-off commands are sent from the CPU to the tone generator.
And a key-on command is given
Sound source, the envelope starts from the first step.
Start, and when a key-off command is given,
Then, the envelope is terminated. did
At the start of the sound,
Or start the envelope while playing
You can change to a step, or
Freedom to move the envelope to the sustain state
Lacking.   For example, Japanese Patent Publication No. 60-42955 (Japanese Patent Application No. 51-158949,
Application date, December 29, 1976, name, "wave for electronic musical instruments
Generator)), the sound source from the CPU (key assigner)
Start command is given to the unit as a key-on command
When the segment number (step number) of the sound source section is zero
And the sound source section is indicated by this segment number.
Read the envelope data and start the envelope.
Let During pronunciation, increase the segment number
Data to indicate the length of each segment to detect
Used, the sound source section subtracts this data in a certain cycle
When the segment time has elapsed, the segment number
Increment the next step of the raw envelope
Move on to The above segment length data must be
Standing, data given from the CPU, changes during sounding
There is no. Some of the segment length data include sustain
The segment number that contains the lag and this flag is set
In, the subtraction of the segment length data is stopped and the envelope
The hoop is put on hold. Therefore, the envelope
The transition to the hold state occurs when the
When the time indicated by the segment length data has elapsed
Only when the sound is generated.
Does not occur. This sustaining lug itself,
It does not change even if a key-off command is sent from the CPU
However, the key-off command is used to terminate the envelope.
A control signal is generated within the sound source based on this control signal.
Measurement of segment length data and calculation of envelope
(Addition / subtraction) is resumed.   For musical sound synthesizers for electronic musical instruments,
The degree to which the playing state can be reflected in the musical tone is important
It is one of the items to be considered, and it is desirable that this
You. [Object of the invention]   Therefore, an object of the present invention is to provide a highly flexible envelope.
To provide a tone synthesizer capable of controlling rope and sound
That is. [The gist of the invention]   In order to achieve the above object, the present invention provides an envelope
Memory for envelope flags to control the progress of the
Prepare the envelope according to the contents of this envelope flag.
An envelope generation circuit for calculating a rope;
Selectively update the envelope flag as the rope progresses
Generate tone control signal with new envelope updating circuit means
Embedded in the circuit means, and furthermore, the envelope flag
Content can be freely rewritten by the CPU.
And the main point.   That is, according to the first aspect of the present invention,
The performance is controlled by the CPU (3) that monitors the playing state.
A memory (7) for synthesizing musical tones according to the playing state;
It responds to the instructions from the CPU or the instructions and their accompanying data.
In response, an input to write data to a predetermined area of the memory is made.
Interface circuit (11) and data from the above memory
Tone control signals for generating tone control signals such as envelopes
Signal generation circuit (12) and the above tone control signal generation circuit
Waves that generate musical tone waveforms according to the generated musical tone control signal
In a musical sound synthesizer provided with a shape generation circuit (15),   The memory may include (a) the interface
Generated by the CPU through the base circuit
The envelope for each step of the envelope waveform to be used
Calculation parameters (ERij, ELijEnvelope to remember)
Parameter memory for loop calculation and (b) envelope waveform
Current value of (EijEnvelope current value memory
And (c) an envelope including step information of the envelope waveform.
Velocity flag (EFijEnvelope flag to memorize)
And memory,   The tone control signal generation circuit includes: (d) the envelope
Read the envelope flag from the
An envelope flag reading circuit;
The step indicated by the step information contained in the envelope flag
Envelope calculation parameters (ERij(s), EL
ij(s)) is stored in the parameter memory for envelope calculation.
A parameter reading circuit for reading data from
Reads the current envelope value from the envelope current value memory.
Between the read and read envelope calculation parameters
To update the current envelope value and update the result.
Is output as a tone control signal and the envelope
An envelope generation circuit for saving in a value memory;
(G) According to the result of the operation by the envelope generation circuit,
Therefore, the read envelope flag is appropriately updated and updated.
The new envelope flag is
Memory envelope flag update circuit
See (H) Instructions from the CPU to the interface circuit
A flag setting instruction is included in the
The base circuit responds to the flag setting instruction and
The optional envelope flag, which is the attached data, is
Write to envelope flag memory and
The envelope flag update circuit updates the envelope according to the result of the above operation.
Replace the new envelope flag with the above envelope flag
A music device configured to write to a memory.
A sound synthesizer is provided. [Action and Development of the Invention]   According to claim 1, the CPU is a flash memory.
When giving a set command, this command
A rope flag is attached, and this envelope flag
The data is written to the memory via the interface circuit means.   For example, when starting sounding, the envelope flag
Steps other than the first step
The information to be instructed is attached to
Once sent to the stage, the envelope generation circuit means
The envelope starts from this indicated step
become. In principle, the error set by this set instruction
The envelope step can take any value. Accordingly
At the beginning of the sound
Can start.   Specifically, the scans that make up the first attack
Set envelope data including vibration in the step
And selectively omit these steps depending on the key touch
Envelope starts from step without vibration
Attack by giving a flag set instruction
Tremolo is calculated by key state
It becomes possible to select.   In addition, the flag set instruction can be used to
It is possible in principle to publish it. For example, there is
For various types of performance changes, information indicating hold is included.
Envelope flag is stored in memory by flag set instruction.
If set to, the timing is independent of the key press timing
The envelope can be put into a hold state from.   If desired, the flag set instruction can be
It can also be used as an off command.   For example, a high
High release memory that stores release data (HRij)
Is provided on the memory (7), and the CPU
Interface flag by giving a
The circuit means is the data attached to this instruction. High lily
Envelope flag that indicates the data
Write to the flag memory, and the tone control signal generation circuit
When the envelope flag is read, its envelope flag is
Normal if lag indicates high release data
High release from high release memory instead of release data
Source data (claim 4)
Section). This way, the high release flag set
A musical tone can be muted at high speed by a command.   Thus, any envelope by the flag set instruction
The envelope flag setting function is an extremely flexible envelope
And a new concept of pronunciation control.
Has been brought.   The envelope flag is sent to the envelope generation circuit means.
Has the function of controlling the calculation of the envelope
Conversely, the result of the operation by the envelope generation circuit means
Is the envelope progress, select the envelope flag
It has the function of selectively updating. Typically, envelopes
When a step with a rope waveform is completed (envelope
Set the parameters for the rope calculation to the envelope as in item 5.
Envelope if configured with rate and target level
(When the current value of the lamp reaches the target level)
Included in envelope flag by rope update circuit means
The step information is updated to the next step, and the next operation cycle
From this, the envelope generation circuit means
Envelope using the envelope data of the
Is generated (claim 10). Ma
Also, the envelope flag contains the direction information of the envelope.
Otherwise, when updating the steps,
By comparing the current envelope value, the new step
Can determine the direction information of the envelope in the
Wear.   For this purpose, for example, an envelope flag updating means
Indicates that the envelope waveform
Node flag indicating that the loop waveform is at the node (E
F6) To change the direction of the envelope waveform for the next step.
Judgment (Claim 11).   By the way, as in the present invention, the memo of the envelope flag is used.
Re-access is performed by the envelope generation circuit means or envelope on the sound source side.
Not only the bellows flag updating circuit means but also the external CPU
In the configuration to perform, the CPU sets the envelope flag
It is desirable to have a means for ensuring rewriting. Claim
The second term in the range describes a preferred configuration of this means.
That is, the memory of the envelope flag is written by the CPU.
Envelope flag updating circuit means when replaced
Temporarily prohibits envelope flag rewriting by
Prohibition circuit means is provided. Therefore, by COU
Envelope flag rewriting is done without delay
Will be.   The flag set instruction is used when the envelope flag data is
It is an attached instruction, and this attached data is
Is written to memory later. In contrast, the claims
No data is attached to the key-off command described in box 3.
No. This key-off command uses the envelope flag data.
It is similar to the flag set instruction in that it is a rewrite instruction.
However, the changed envelope flag data is
The difference is that the data is not sent by itself. Sand
That is, the interface circuit means responds to the key-off command.
Key-off processing circuit means,
Whether the envelope flag at the time of issuing the key-off command is stored in memory
The envelope flag according to the contents.
And then put it back in memory. This is the key release
The envelope progress at the time of
It is not uncommon for rope flags to be changed
Is considered.   When the key is released, the envelope is independent of the progress of the envelope.
If there is no problem with setting the envelope flag,
It can be performed by a set instruction. For example, Envelo
Envelope hula with the last step of the loop
If you attach the tag data to the flag set instruction,
Regardless of the step at the time of issuance, the envelope
The operation can be shifted to the final step. Conversely
For example, the flag change function by the key-off command
It has the function of complementing the flag setting function by the set instruction.
ing.   In one configuration example, the waveform shaping circuit means includes a plurality of
Multiple tone waveforms for each channel in the pronunciation channel
Is generated by the time-sharing operation of the module
Provided from the musical tone control signal generation circuit means as
Key code and envelope for each
Range 6).   In this connection, the envelope flag memory and
The envelope current value memory stores the
The envelope flag and the current envelope value
Each of them is stored in the parameter
Re for sound channels, modules, and envelopes
Store envelope calculation parameters for each step
(Claim 7).   As a data structure, the envelope flag is
(I) Envelope steps (EF0~ EFTwo) (Ii) En
Flag indicating whether the envelope is on hold (EFThree)
(Claim 8).   In an embodiment to be described later, the envelope flag is (i)
Envelope steps (EF0~ EFTwo) (Ii) Envelope
Flag (EF)Three) (Iii)
Envelope direction (EFFour(Iv) The envelope is
Flag indicating whether or not a node isFive) (V)
Envelope mode (EF6, EF7) Information
(Claim 9). [Example]   FIG. 1 is a functional diagram of an electronic musical instrument according to the present invention. CPU3
Is a general-purpose microcomputer.
Scans switch 2 to detect key press, tone selection, etc.
Tone data and pronunciation using ROM4, RAM5, etc. located above
Control data is generated to control the sound generation of the sound source LSI. Sound source L
SI6 uses an external RAM7 for musical tone generation
Generates a musical tone by using it as an arithmetic buffer,
Digital-to-analog converter) 8. The tone signal is DAC8
Is converted to an analog signal, amplified by the amplifier 9 and
The sound is emitted by the speaker 10.   FIG. 2 illustrates the operation of the sound source LSI 6 to which the present invention is applied.
FIG. Sound source LSI6 has amplitude envelope
For generating key codes etc. that include loop and pitch fluctuations
RAM7 is used for memory for tone data or data for calculation progress
Use as memory. In addition, as shown in FIG.
Interface / control unit 11 (interface
Occupancy time) and envelope / key code generation circuit (calculation
Circuit occupied time) and data written from CPU
Address access for arithmetic for envelopes and envelopes
I do.   First, the operation of the interface / control unit 11 will be described.
The CPU 3 sends warm color data or sound control data to the sound source LSI 6.
Data is transferred, but in the sound source LSI 6, the data buses DB0 to DB7
When ▲ ▼ is LOW, the data in
Take in with a cartridge. At this time, if / D is LOW, data bus DB0
~ Instructions for DB7 data, if / D is HIGH
Imported as data attached to the instruction
(See FIG. 4). Instructions will continue
Indicates the type of data to be sent. interface/
The control unit 11 receives instructions and data from the CPU 3
Receiving the RAM7 address corresponding to the instruction.
Address AA0-11 and write signal ▲ ▼
Data transferred to the external RAM 7 via the interface 16
Is stored. However, the data transferred from CPU3 is special
If not, store it in the internal memory. For example transferred
The operation data (control for waveform generation)
Control data), writing to external RAM7 is prohibited.
And a write signal WO to the OC register 14 is generated.
Is written to the OC register.   The envelope / key code generation circuit 12 is connected to the external RAM 7
Address BA0 to BA1 to access the written data
1 and write signal of envelope calculation progress data, etc.
Generates ▼. As a result, the tone data in the external RAM 7
(Envelope plate / level, etc.)
Control data (key code, modulation, etc.)
Key code including amplitude envelope or pitch fluctuation
(Hereinafter referred to as a composite key code), and the bus L2
Through 14 to the exponential conversion / phase angle generation circuit 13
Send.   The exponential conversion / phase angle generation circuit 13 is an envelope / key
The amplitude envelope from the code generation circuit 12
By sharing one exponential converter in a time-sharing manner.
To exponential conversion. Exponentially transformed amplitude envelope (finger
Number envelope) and exponentially converted composite key code
(Frequency information) are the envelope register and the frequency, respectively.
Once stored in the information register. These are external RAM7
Access to generate amplitude envelope and synthetic key code
The exponential conversion operation is performed at a low speed.
Interface for high-speed arithmetic processing after
Used as a buffer for Fig. 5 shows two arithmetic processes
The low-speed operation cycle is 48 times that of the high-speed operation cycle.
Doubled. This means that the output waveform change rate is audible
Waveform calculation is fast because it must be at least twice the number of waves
(Approximately 40 KHz in this embodiment), other operations
Is performed at low speed according to the access of external RAM7
It is.   Exponential envelope stored in the envelope register
Is read out in response to the high-speed operation, and
Transferred as envelopes E0-11. Frequency information register
The frequency information stored in the
The waveform generation circuit accumulates and accumulates the data as phase angle data P0 to P11.
Transferred to 15.   The waveform generation circuit 15 reads the operation read from the OC register 14.
Exponential conversion / phase angle based on the motion codes OC0-7
Envelopes E0 to E11 and phase angles transferred from the generation circuit 13
Generates tone waveforms O0-15 according to data P0-11 and sends them to DAC8
Output.   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 is shown in FIG. 7 and FIG.
So that the basic clock φM(10MHz) divided and required time
Signal and an external reset signal ▲
The internal reset signal is generated from ▼. In FIG.
An example is shown. 10MHz basic clock flip
The frequency is divided by the flop 233 and the inverter 235 to generate S0,
Further, T0 is generated by the flip-flop 234. Change
Φ by And 2371Is generated, flip-flop
V by 239,2401, W1Is generated. Also flip
T1 is generated by flop 243. These signals
By inverters 242, 245, and 244, 246-248
W, ▲ ▼, ▲ ▼, CK1, CK2 are generated (7th
Figure). Counter A: 249 is binary dividing clock CK2
The counter changes at the rising edge of CK2. Counter output
Of which Q1~ QFiveIs the address signal C for reading1~ CFiveAs
Envelope / key code generation circuit 12 and OC register
Output to 14. Also, the counter output Q0, Q1From 2 sets
Lip flop 250, 251, flip flop 252, in
Timmin by Barta 253, And 254-1 to 254-4
Signal T2, T3, CKP, CKQ, CKW, CKR are generated (eighth
Figure). In addition, inverters 255-1 to 35-2, OR 256, and
From 257, a CKL is generated (FIG. 52). Ma
The counter A: CARRY OUT of 249 (when the count value is 127
CKRT is generated by AND258 from “1”), and this signal
A clock for sampling an external reset signal
Used as Flip-flop by clock CKRT
Sample the reset signal at 260, 261 and externally more than once
When the reset signal is detected by AND 262, the internal reset signal
Issue is generated. Therefore, the internal reset signal is
become that way. At that time, the counter B303 in FIG.
Operation after reset as shown in Fig. 8 because it is a set counter
Perform   Next, the external RAM 7 which is the data memory of the CPU 3 and the sound source LSI 6
Of the interface / control unit 11
Explain the work. Table 1 shows the instructions transferred from CPU3
Shows the corresponding address of the external RAM7.
You.   Here, the sound source LSI 6 has eight sound channels and each sound source
I have 8 sine wave generation modules for each sound channel
In the envelope / key code generation circuit 12, each sound is generated.
72 amplitudes, including pitch envelope for each channel
Envelope, must generate 64 synthetic key codes
No. Therefore, data is stored for each channel (jjj =
0-7), the data of each module (0iii = 0-7) is transferred.
Must be sent. But related to the envelope
Nine data (jjjj = 0 to 8) including the pitch are transferred
You. The module that sends only one data is the module
It is common.   In Figure 6, ▲ ▼, / D, ▲ ▼, DB0 ~ 7 are CPU
The signal from 3 is input, but the signal is input as shown in Fig. 4.
▲ by inverter 100-103, Nand 104, 105
▼ and ▲ ▼ occur. Signal ▲ ▼ is issued
When the data is generated, the data on buses DB0 to DB7
Taken into the latches 146-153 via the rising edge of ▲ ▼
With counter 191, flip-flop 186, 192-195
Reset. The outputs of latches 149-153 are
Input to the decoder 154, thereby
A control signal is generated. Instruction decoder
As shown in Fig. 10, inverters 265-267, NANDs 269-277,
278, and each signal is as shown in Table 2.
You.   First, of the data written to the external RAM 7,
1 byte of data per module (high
Slew rate, modulation sensitivity, envelope play
Change, envelope level change, envelope play
(Envelope level, envelope level)
Refer to Figure 11), and respond to instruction writing from CPU3.
In response, the signal ▲ ▼ becomes “0”. Then the bus
Instructions for DB0-7 are inverters 106-113
After being inverted and taken into the latches 146 to 153, the cow
Counter 191, flip-flops 192 to 195, 186 are reset
It is. And the output WB of the instruction decoder 154
Is “0”, so the output of NAND 172 is always “1”.
▲ ▼ is “1”, so OR 168, 170, and 169
Therefore, CK12 becomes CKQ. Next, write data from CPU3.
When the signal ▲ ▼ changes from “0” to “1”, the flip-flop
The lop 173 outputs “1” at the rise of ▲ ▼,
The output of the flip-flop 174 becomes “1”. After that,
Flip-flops 173 and 175 are reset in synchronization with CKR
In this case, it becomes "1" for only one section of CKR. Also, the instrument
The output ▲ ▼ of the fraction decoder 154, the ID is “1”,
“0” is “0”, so OR 178, 179, inverter 180, 1
81, Nando 182, signal ▲ ▼ is “1” and T
When "2" is "0", it becomes "0". At that time, the instruction
The output ▲ ▼ and WB of the decoder 154 are “1” and “0”.
The output of Noah 161 is “0” for ▲ ▼ and “0” for ▲ ▼
"1" only when
Data 122 to 129 are output. Counter 191
The output ▲ ▼ of the instruction decoder 154 is “1”.
Therefore, CKQ when is “1” becomes the clock CKC,
Each CKC is incremented by 0, 1, 2, ..., and the value is flipped.
Flipped twice by flip-flops 192-195 and inverters 196-199
Address AA0 to AA3 representing the module number. A
Dresses AA4-AA6 Latch Instructions 146-153
Represents the channel number because the lower 3 bits are inverted.
Is “jjj”. Addresses AA7 to AA11 are
Since the outputs EF and WB of the traction decoder 154 are "0",
The right input of NOR 204, OR 205, 207 is "0", AND 209, 21
The right input of 1 is “1” and the left input of OR 203 is “0”.
Inversion of the upper 5 bits of the latch 146 to 153 of the struct
And the upper 5 bits of the instruction
Become. As described above, one for each module for each channel
When writing byte data, instructions and
A write signal as shown in Fig. 11 is sent to the matching address.
Issue is generated. Here, the identification of each channel is
This is done with the lower 3 bits of the function,
Another is the number of data after instruction transfer.
Is done by counting with the counter 191
Have been. Therefore, one instruction
In a continuous transfer format followed by a number of data,
Which data is for which module
Since it is automatically identified by the interface / control unit 11,
CPU3 does not need to send instructions for each module
Transfer efficiency is increased.   Next, each channel among the data written to the external RAM7
2 bytes of data per module (frequency ratio, key
Chord, modulation level / rate, pitch mod
(Write operation) (see FIG. 12)
See). Respond to instruction writing from CPU3,
▲ ▼ becomes 0, which causes the instruction
Counter is latched into latches 146-153,
191, flip-flop 186, 192-195 are reset
You. The output of flip-flop 176 is “0”
The input on NAND 172 is “1”, instruction deco
The output of the NAND 172 is
It is “0”, and both inputs of Noah 167 are “0”.
Because of OR 168, 170, and 169, CK12 becomes CKQ
You. ▲ ▼ is changed by writing data from CPU3.
When the signal changes from “0” to “1”, the flip-flops 114 to 121
And the flip-flop 175 outputs “1”
The flip-flop 176 is “1” and the inverter 171 is
The output of the NAND 172 is “0” and the output of the NAND 172 is “1”. At that time,
CK12 is CKW because the upper input of A167 is "1". Again ▲
When ▼ changes from “0” to “1”, flip-flops 130-1
37 is the previous stage data, flip-flops 114 to 121 are buses
And the output of the flip-flop 173
Becomes “1”, and the output of the flip-flop 174 becomes “1”.
Becomes Becomes “1”, the flip-flops 173 and 175
Since it is reset, it becomes “1” only for 2 sections of CKR
(∵CK12 = CKW). Output of instruction decoder 154
Power ▲ ▼ is “1” and ID is “0”, so Nando 182
When the force ▲ ▼ is “1” and T2 is “0”,
It becomes "0" twice. Also, since WB becomes “1”, ▲ ▼
Is “0” and T3 is “0”.
Inverters 122 to 129 output data, and ▲ ▼ is “0”
When T3 is “1”, ▲ ▼ is clock invert at “0” width.
Data 138 to 145 output data. Where the data is lower
(Level), upper (rate) written from CPU
Therefore, buses D0 to D7 have higher (eight) and lower (level) levels.
Are output in this order and input to the external RAM 7. Coun
191 is the output of the instruction decoder 154 ▲
Since ▼ is “0”, CKW when “1” is
CKC, the module is advanced by 0, 1, 2, ...
Addresses AA0 to AA3 representing numbers are obtained. Address AA4-A
A6 is the lower 3 bits of instruction latches 146-153.
Since this is the reverse of the default, the value “jjj” indicating the channel number is
You. Addresses AA7 to AA11 are instructions
Since EF of the decoder 154 is “0” and WB is “1”, T3 is “0”.
When AA7 is set to "0", instruction upper 5 bits
AA8-11 when T3 is "1"
AA7 becomes "1" in the upper 4 bits. In other words, two-byte data
Distinction between the first byte address and the second byte address of data
Is performed by switching AA7. In addition, Chang
Channels for channel identification and module identification
Same as writing 1 byte data per module
is there. As is clear from the description so far,
According to this, the transfer of transfer data to the interface / control unit 11 is performed.
The means to identify the program configuration based on the instruction
Since it is embedded, the CPU 3
Variable byte data follows the instruction
Data can be transferred in a variable format.
Optimum transfer efficiency without mee data can be achieved.   Next, the instruction "Flag set" is described.
(See Fig. 13). “Flag set” is stored in external RAM7.
This command sets the envelope flag. Raw signal
Until the process is the same as in the case of 1-byte data. Inn
Since the output EF of the structure decoder 154 is “1”,
Changes from “0” to “1”, the output of AND 183 changes to “1”.
And reset when ▲ ▼ becomes “0”.
The output of the flip-flop 186 becomes “1”. Also,
The output ▲ ▼ of the instruction decoder 154 is “1”
Therefore, while the clock CKC of the counter 191 is “1”,
If so, the counter 191 is incremented. If the value of counter 191 is
When it reaches 9, in sync with CKR, OR 184 and NAND 185
Since the flip-flop 186 is reset,
▼-▲ ▼ is between 0-8 (9 sections of CKR) “1”
And output ▲ ▼ of NAND 182 is T2 for each count value
Is "0" when is "0". At that time, the instruction
The output ▲ ▼ and WB of the decoder 154 are “1” and “0”.
The output of Noah 161 is “0” for ▲ ▼. ▲ ▼
It becomes "1" only when it is "0", and clocks are input to buses D0-7.
Outputs of the inverters 122 to 129 are output. Address AA0-A
A3 is the value of counter 191 and addresses AA4 to AA6 are the instructions.
Action “jjj”, AA7 to AA11 have EF “1” and WB “0”
To “00110”. Therefore, the instructions
In the "flag set", the same data is stored in modules 0-8
It will be written automatically.   Next, I will explain the instruction "Key-off"
(See FIG. 14). When the signal ▲ ▼ becomes “0”,
As traction is taken into latches 146-153,
The counter 191, flip-flops 186, 192 to 195 are reset.
Is The output WB of the instruction decoder 154 is
"0" means "1", the output of NOR 167 is "0", ▲ ▼
Is “0”, the output of OR 168 becomes “0”, and therefore CK12
Matches CKW. When ▲ ▼ changes from “0” to “1”,
When data is taken into flip-flops 114 to 121,
At the same time, the flip-flop 173 outputs “1”, and “1” is output.
Become. Becomes “1”, flip-flops 173 and 175 are reset.
Since it is set, it becomes "1" for only two sections of CKR.
Also, the output EF of the instruction decoder 154 is "1".
So the output of AND 183 becomes “1” when “1” is output
Therefore, the output of the flip-flop 186 becomes “1”. ▲
Since ▼ is “0”, the clock CKC of the counter 191 is
During "1", it matches CKW and the counter 191 is incremented. Cow
When the value of the counter 191 becomes 9, the flip-flop is synchronized with CKR.
▲ ▼ ~ ▲
▼ is “1” between 0 and 8 (18 sections of CKR), and =
Under “1”, the output ▲ ▼ of Nand 182 becomes ▲ ▼
When T2 is “0” and T3 is “1” for each count because it is “0”
It becomes “0”. At that time, since EF is “1”, addresses AA0 to AA
A11 becomes “00110jjjiiii”, but “1” and T3
When “0” and T2 are “0”, data is read from RAM7.
Is coming. The flip-flops 213 to 216
The lower 4 bits are captured by CKP and the value is “* 000”.
To “00000111”, and to “0 ****” to “00000111”
If “1abc”, then “00000abc” when T3 is “1” and T2 is “0”
▲ ▼ is output to buses D0-7 with width of “0” (however,
a, b, and c are arbitrary binary numbers). As will be described later,
Actions “Flag Set” and “Key Off” are in RAM7
Data of the “envelope flag”
You. Where the data "envelope flag" is the envelope
Indicates the current state of the step, etc.
Is the step (0-7), the 4th bit is sustaining
It is a bit of whether or not. That is, instructions
“Flag set” is used to convert envelope flags directly from CPU3.
The instruction to be written depends on the lower 3 bits of the data.
You can start the envelope from the top
is there. Also, set the fourth bit to the sustain value “1” and
By resetting the envelope flag,
You can hold the envelope from. Ins
Traction "key off" is the current envelope flag
Instruction to reset the data according to the data
At 0 (0000) or at the end of the envelope (1000)
If you haven't reached the sustain level
Proceed to Step 7 (0111) and you are at the sustain level
(1abc), release sustain (0abc)
ing.   Next, writing to the OC register will be described (FIG. 15). book
Operation is almost the same as 1-byte data,
To the RAM7 because the output ID of the action decoder 154 becomes "1".
No final write signal ▲ ▼ is generated (see FIG. 43).
See). The OC timing is the same as when ▲ ▼ is “0”.
A write signal WO to the register is generated, and when T2 = "0"
▼ = Flip-flops 114 to 121 when "0"
Operation code passed through gates 122-129
Input to the OC register. Finally to latch 156-158
Write (mode) occurs as above, but
Since the output ID of the structure decoder 154 becomes “1”, R
Since writing to AM7 does not occur and ▲ ▼ becomes “0”
Latch signal MLT is generated at the same timing as
The data of the flip-flops 114 to 116
Data is captured (see Fig. 16).   FIG. 17 is a block diagram of the envelope / key code generation circuit 12.
FIG. Envelope / key code generation circuit 12
Generates an amplitude envelope and a composite key code.
The following calculation is performed while accessing the RAM 7 for the purpose.   Envelope plate (envelope tilt data)
Is the data corresponding to the key range or key touch
Change in the default. "   Envelope level (for each step of the envelope
Target data) to the data “d” corresponding to the key range or key touch.
Change with envelope level change ".   Modified envelope plate, envelope preve
Generate an envelope according to the   Amplitude modulation for aftertouch, LFO, etc.
Interpolation data and calculate the amplitude envelope
Generate the final amplitude envelope.   Pitch modulation for vendors, LFOs, etc.
Calculate the pitch data with the pitch envelope.   Pitch envelope with keycode and modulation
Calculate the rope and calculate the frequency ratio for each module
And calculate the final composite key code.
Generate. To achieve these, envelope / key code generation
In the circuit 12, as shown in FIG.
The circuit 308 is used to store data into the A, B, M, and S registers.
It controls data loading and addition / subtraction. However,
Any one of the upper outputs of the M, S and B registers
Is selected. In FIG. 17, the counter B303 is
The circuit diagram is shown in Fig. 18.
You.   Counters 1-3: 309-311 are synchronous reset counters.
Each corresponds to an operation cycle, channel, and module.
ing. Counter 1: 309 is 0 to 19 when BC11 is 0.
Hexadecimal counter, 32-bit counter from 0 to 31 when BC11 is 1,
Counter 2: 310 is incremented each time Counter 1: 309 makes one round
Octal counter, counter 3: 311 is counter 1, 2 is 1
This is a ninth-number counter that is incremented every time the vehicle goes round. In addition, Coun
The value of data 3: 311 is 0 to 7 corresponds to modules 0 to 7,
Is equivalent to the pitch. Figure 19 Envelope / Key
4 shows an operation cycle of the code generation circuit 12.   FIG. 20A shows the operation of the envelope / key code generation circuit 12.
The flow for explaining the outline of the work is shown. Where A; A
Register, AM; A register upper, AL; A lower register, B; B
Register, BM; B register upper, BL; B register lower, M; M
Register, S; S register, F1: Flip flow captured by CKF1
F2; flip-flop taken in by CKF2. Ma
Was EFijAn envelope flag i = 0 to 8 (module,
Switch), j = 0 to 7 (channel) ERij(s); Envelope plate i = 0 to 8 (〃), j =
0-7 (〃), s = 0-7 (envelope step) ERCj; Envelope plate change j = 0-7 (〃) ▲ EM ij▼; Envelope upper i-8 (〃), j = 0
7 (〃) ▲ EiL ij▼; envelope lower i = 0-8 (0〜), j
= 0 to 7 (〃) ELij(s); envelope level i = 0 to 8 (〃), j =
0 to 7 (〃), s = 0 to 7 (〃) ELCij; Envelope level change i = 0 to 8 (〃), j
= 0 to 7 (〃) ▲ AMDM j▼; upper amplitude modulation j = 0 to 7
(〃) ▲ AMDL j▼; 〃 Lower j = 0-7
(〃) ▲ PMDM j▼; higher pitch modulation j = 0-7
(〃) ▲ PMDL j▼; 〃 Lower j = 0-7
(〃) MSijModulation sensitivity i = 0 to 7 (modulation
Le), j = 0 to 7 (〃), ▲ KCM j▼; key code upper j = 0 to 7 (〃) ▲ KCL j▼; 〃 Lower j = 0-7 (〃) ▲ PEM j▼; upper pitch envelope j = 0 to 7 (〃) ▲ PEL j▼; 〃 Lower j = 0-7 (〃) ▲ FRM ij▼; high frequency ratio i = 0-7 (0〜), j = 0
7 (〃) ▲ FRL ij▼; 下 位 Lower order i = 0 ~ 7 (〃), j = 0 ~
7 (〃) MRjModulation rate i = 0 to 7 (〃) MLjModulation level i = 0 to 7 (〃) It corresponds as follows. In the flow of Fig.
Numbers indicate timing, and 0 to 11 are counters
The value of 1 itself, 1P to 19 are 8
Counter 1 value other than (pitch calculation) 12 to 19
12P to 19P are when the value of counter 3 is 8 (pitch calculation)
Correspond to the values 12 to 19 of the counter 1.   The flow of FIG. 20A will be described. First, at timing 0,
Envelope flag; EFijIs loaded from RAM7 to S register
I do. Here, the data structure of the envelope flag is
It has become. 1) Lower 3 bits of S register (envelope step)
Envelope plate for ERij(s) is A register
2) Envelope plate change; ERCjThe B Regis
Data is loaded to the upper part (both A and B are loaded with 0 to the lower part),
3) Add them and change the envelope plate, B
Store in register. At the same time the envelope
Load the upper value to the A register upper (lower 0) 4)
Next, the lower part is loaded into the lower part of the A register. 5) Envelope
The current value of the loop to EFFourModified envelope according to
Change the envelope by adding or subtracting at a rate
And store it in the B register. More envelope levels;
ELij(s) to upper register A (lower 0), 6) M register
Envelope level change on star; ELCijAnd load
7) Add or subtract them to change the envelope level,
Store in A register. The Envelope set in F1
8th bit of loop level; ELij(s)7Is a Sustain Point
Flag. At this time, the amplitude register is stored in the M register.
Simulation; AMDj(When calculating modules 0-7)
Is pitch modulation; PMDj(When calculating pitch)
Load it. 8) The next modified envelope preve
Calculates the updated envelope from the
To determine whether the target has reached the target value (at that time A Regis
AMD belowjOr PMDj). D
If the envelope has not reached the target value, F '=
“0”, 9 ▲ ▼) Envelope flag (S register
Is not updated and is stored in the upper part of the A register.
The upper part of the updated envelope is the RAM7 envelope
Higher rank; ▲ EM ijWrite to the address corresponding to ▼. Embe
If the rope has reached the target value, F '= "1"
9F ') Envelope flag 7 (S register)
While updating the lower 3 bits representing the step, (1+
S) The “node” bit is set to “0” and the sustain flag
G; ELij(s)7Is “1”, set the “hold” bit to “1”
Is stored in the upper part of the A register. At that time, it was changed
Using the envelope level value as the envelope value
And load it on the top of the RAM7 envelope.
▲ EM ijWrite to the address corresponding to ▼. 10) Next
In either case, the B register has a lower rank
Contains the lower envelope data to be stored.
This is the lower envelope of RAM7;L ijTo the address of ▼
Write. However, if the bit of the node is “0”
In this case, the above operation is not performed, and the envelope
Envelope by comparing the current and target values of
Judge the direction to go, and set the sign bit.
You. As described above, the basic operation of the envelope is
Judgment of the traveling direction of the envelope is made for each node of the step.
Come a) Change of envelope plate level b) Updating the envelope c) Determining whether or not the target level has been reached d) Store envelope current value It is done by.   Next, 11) The data of the M register is transferred to the upper part of the A register.
And the upper data of the A register is
Envelope flag; EFijIs written to the address. This and
The amplitude modulation is below the A register; AMDjor
Is pitch modulation; PMDjLower data, M cash register
The star contains the high-order data.   First, the operation of modules 0 to 7 (counter 3 = 0 to
Think about 7). 12) Write to RAM7 in B register
Load the loaded envelope data into the A register
And the amplitude modulation below the A register
Lower order; ▲ AMDL jLoad the data of ▼ to the lower register of B register
You. 13) Amplitude sensitivity; MSijTo the S register.
14) From the envelope data in the A register,
AMD below M and B registersjMS dataijSubtract according to
Exponential conversion / phase angle as final envelope data
The data is transferred to the generation circuit 13. At that time, the key is
Higher code: ▲ KCM j▼ is loaded. 15) A cash register
Key code below the star; ▲ KCL jLoad ▼. 16
) B register upper rank, pitch envelope higher rank; ▲ PE
M j▼ 、 17) Lower ▲ PEM jLoad ▼. 18) Key
Add chord and pitch envelopes and store in A register
And frequency ratio higher; ▲ FRM ij▼ B Regis
Loaded on top 19) Lower frequency ratio; ▲ FRL ij▼ to B
Load to lower register. 0) 0 of the next operation cycle
Key code with pitch envelope at timing
Final key with frequency ratio added / subtracted (according to F2)
The exponential conversion / is transferred to the phase angle generation circuit 13 as a code.   Next, consider the pitch calculation (counter 3 = 8)
You. 12P) Envelope written to RAM7 of B register
Pitch modulation in data A register; PM
DjIs added or subtracted (according to F2), and the final pitch envelope
Rope; PEjIn the B register. then,
Amplitude modulation higher in A register higher; ▲ AMDM j
▼ is loaded. 13P) Under amplitude modulation
Rank; ▲ AMDL jLoad ▼ to the lower part of the A register. 14P)
Duration rate; MRjTo the M register
You. 15P) AMDjMRjIs added and subtracted according to F2, and
Juration level; MLjTo the M register
You. 16P) Amplitude modulation; AMDjWith the updated value of
Compare the modulation levels (and when
▲ PE of RAM7 for higher envelopeM j▼). Amplitude moji
Is the target value; MLjIf not reached, 17P
▲ ▼) Lower pitch envelope ▲ PEL j▼ to RAM7
If writing and reaching, 17PF ') target value; MLjTo
Load into A register and ▲ PEL jWrite ▼ to RAM7
Put in. Amplitude modulation that does not exceed the target value of the A register
Write the data of the option to RAM7, 18P) upper, 19P) lower.
20P to 31P are NOPs for adjusting the calculation timing.
You. Here, the amplitude modulation is given by the CPU.
The absolute difference between the detected amount of aftertouch, etc.
Value; MRj, Sign; ▲ MR7 j▼ and this time detection amount; MLjDay of
By interpolation based on the data (see Fig. 21).
Has been established.  FIG. 22 shows the envelope / key code generation circuit of FIG.
12 generates the basic signals to perform the above operations.
FIG. 3 is a detailed diagram of an operation timing signal generation circuit
You. As shown in FIG.
Has a ROMized (firmware) structure.
The operation of the envelope / key code generation
The main operation of the road 12 will be described with reference to FIG. 20B.
You. Inputs BC0-4 are the outputs of counter 1 of counter B303.
Basic timing with power. P is in counter B303
Of the counter 3 MSB, ie, the signal of “1” during the pitch calculation
And F ′ corresponds to the branch flag F ′ of the operation flow.
I have. In the figure, 0, 1, ..., 9F 'and 12P correspond to the timing.
Timing 0, timing 1,..., F ′, respectively.
= 1, timing 9; P = 1
Means twelve. In Fig. 22, `` BW0Is an envelope
Data from the RAM 7 is written from the
Signal on the “data bus D0 to D7” in FIG. 20B.
It is "1" only when the register output is output. LSI has
The LSB of the dress is forcibly set to “1” as described later.
Timing 12,12P, 13P, 17,17P ▲ ▼, 17P
It becomes "1" at F ', 18P and 19P. ▲ ▼ indicates lower address
4th bit (module) is all 0s.
At the timing when the INDEX of i is not attached to the data in the figure
It becomes “1”. OA0 to OA4 are original address signals.
It corresponds to "address". However, at timing 1,
"SSS" of 5 is an envelope instead of original addresses OA0-2
Lower 3 bits (step) of the flag (S register)
It means that it is adopted as an address. a to k
Is the output of the clock generation circuit 304 as shown in FIG.
Clocks, CKAM, CKAL,…, CKE, etc.
At the timing of “Clock” in Figure 20B
It becomes “1”. RA and RB are RA in A register and B register respectively.
This signal is set to “1” when loading data from M7.
Corresponds to "A register input" and "B register input" in the B diagram.
ing. AM, AL, BM, and BL are respectively assigned to data buses D0 to D7.
This signal becomes "1" when outputting the register output.
"Data buses D0 to D7". B0 is the B register
To always mask the output of
"1" when "B" input is the upper "M" and lower "0"
Become. A0 is used to always mask the output of the A register.
Therefore, in the flow of FIG.M← 0 + S, 9
F '; AM← 1 + S, 11; AM← 0 + M, 12; A ← 0 + B, 17
PF '; A ← 0 + M, (0) also corresponds to “1”. M is moderate
"1" when the B input of the arithmetic unit 440 becomes the M register output
The upper side of the “adder / subtractor B input” in FIG. 20B is
It becomes "1" at the timing of "M". SU is addition and subtraction
The operation of the unit 440 is performed in a subtraction form, that is, "AB" or "A-
M ", 8; AB, 14; A- in the flow of FIG. 20A.
M (BL), 16P; A-M (0), which is "1". SF2 is moderate
The code on the B input side of the arithmetic unit 440 is assumed to be the value of F2, which will be described later.
As described above, it becomes "1" at timings 0, 15P, and 16P.   Next, FIG. 24 shows the operation address generation circuit 301.
I will tell. In most cases, the address signals BA0-11 are
It is configured as follows. Further, BA0-3 are the outputs BC8-11 of the counter B303, BA4-
5 is a BC5-7, BA7-11 is an operation timing signal generation circuit
305 address outputs OA0 to OA4. Then special
Think about the case. At timing 1 the signal is 0
is there. OA4 is also “1” from FIG. 20B. then7
If “1” is not high release, inverter 37
1, add by inverter 365-367, buffer 368-370
Les is OA4 OA3S 2 S 1 S 0  BC7 BC6 BC5 BC11 BC10 BC9 BC8 Becomes Therefore indicated by the envelope flag
Step envelope plate; ERij(s) address and
Become. The same applies to timing 5. if,7Is “0”
In other words, if it is a high release,
The dress is0  OA3 STwo S1 S0 BC7 BC6 BC5 BC11 BC10 BC9 BC8 Becomes Here, the high release setting is installed from the CPU.
Row with fraction “flab set”, data “10000111”
For example, the upper 5 bits of the upper address become “00111”,
High release rate; HRijAddress.
Therefore, at the time of high release, normal envelope play
The high release rate is read and used, not the
become. Next, at timings 2, 14, 14P, 15, 15P,
At 16, 16P, ▲ ▼ is “1”, LSI is “0”
Inverter 385, 386, Noah 383, 384, clock Noah
By 382, the address is 0A4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 0 Becomes 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, the inverter 385,
386, clock inverter 381, and 378-380,
The address is 0A4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 ▲0 0 0
▼ Becomes Therefore, the instruction “Pitch module
Pitch module for each channel
7 and 8 during which the calculation data is pitch calculation
And read inside the envelope / key code generation circuit 12.
Channel-independent amplitude modulation data generated by
Data is read at timings 7 and 8 during the operation of modules 0 to 7.
Will be issued. If the mode at timing 7 and 8
If the signal / I is “0” representing the common channel,
372-374, OR 375-377 address 0A4 OA3 OA2 OA1 OA0 ▲0 0 0 0 0 0
▼ Becomes Therefore, the amplitude and pitch
Reading the simulation data. Next time
12, 12P, 13P, 17, 17P ', 17PF', 18P, 19P
In this case, ▲ ▼ and LSI are “1”, so inverter 38
5, 386, Noah 383, 384, Clock Noah 382, and 378 ~
By 380, the address is 0A4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 1 Becomes This corresponds to the address marked with “*” in Fig. 20B.
These data correspond to the top 5
And LSB. Note that “**” is added
The digit address is the data ML by setting LSB to “1”.jNo
Dress and a dummy address.
Register A at timing 12LFrom register BLTo day
Since the data is transferred via tabus D0-7, the write signal of RAM7
Because it will come out). As described above,
The path 301 has address signals B0 to B0 corresponding to the operation flow shown in FIG. 20A.
Generate 11   FIG. 25 shows a detailed diagram of the arithmetic control signal generation circuit 307.
You. a is a condition signal of the clock CKAM, RA is A signal from RAM7.
This is a load control signal to the register. Here from RAM7
When loading data to the upper register,
Nand 387 to enter all 0s in the lower order
▲ ▼ is set to “0” (for example, timing 1). As well
When loading data from RAM7 to the upper register of B
In order to input all 0s to the lower part of the B register,
▼ becomes “0”. AM, AL, BM, BL are their respective regis
Signal for outputting data of the data to the data buses D0 to D7.
Occupies the RAM 7 of the envelope / key code generation circuit 12
Available time is when T2 is “1” and the width of the data output time is
Since ▲ ▼ in Fig. 7 is the width of "0", A as shown in Fig. 26
M ', AL', BM ', and BL' are generated. Also register
Upper 7 bits for both A and B output to data bus MSBD7
Since there is no bit to perform,
When outputting to buses D0 to D7, use OR 394 and AND 393.
The S register MSB is output as the MSB. B0 'is B cash register
This is a signal that masks the output of the
B0 from the raw circuit 305 and timing 5, ie,
Addition / subtraction enable signal for addition / subtraction of bellows plate ▲
▼ (described later), amplitude modulation of timing 14
Signal MO0 whose modulation sensitivity at the time of subtraction is 0 (described later)
And 395, or OR 396 to “1”. A0 ′
Is a signal that masks the output of the A register.
A0 from timing signal generation circuit 305, and timing 5,
That is, the envelope current at the time of adding / subtracting the envelope plate
According to the signal E0 that masks the presence value, AND 397, OR 398
To "1". “▲ ▼” is the output of A register
To 1000000000000, the pitch envelope
According to the signal E0 that masks the current envelope value during
Therefore, it is set to “0” by the NAND 400.   FIG. 27 shows the envelope / key code generation circuit 12,
Load the envelope flag (timing 0) and again
Transferred from CPU before writing (timing 11)
The same module and the same module
Or pitch envelope flag has been rewritten
If the envelope / key code generation circuit 12
Prohibit writing the envelope flag to. writing
FIG. 3 is a detailed diagram of a prohibition circuit 302. Exclusive or 4
08-414, Noah 407 forms a comparison circuit, interface
/ Channel, module or
Are bits AA0 to 6 in charge of the pitch and the envelope /
Operation channel and module in key code generation circuit 12
Or, compare the output with BC5 to BC11 of counter 3 corresponding to the pitch.
If the values match, "1" is output. Figure 28 is write protected
6 is a time chart of a circuit 302. 27 of 406 in FIG.
Output is provided by the interface / control unit 11 for the envelope /
Channels and modules calculated by the key code generation circuit 12
Module or pitch, same channel, same module or pitch
Becomes “0” when the pitch envelope flag is written.
You. FIG. 28 (1) shows an envelope / key code generation circuit.
Immediately after reading the envelope flag in step 12,
Control / control unit 11 is the same channel,
This is the case when the envelope flag of the switch is written.
It becomes 0 from the latter half of the timing 1 to inhibit writing.
Even if the value is “0” before timing 0, OR 404
Flip-flop 403 becomes “1” at timing 0
Writing is not prohibited because it is set. (2) is en
Envelope / key code generation circuit 12 is the envelope flag
Immediately before writing the
Write the envelope flag of the channel, module or pitch.
And it becomes 0 in the latter half of timing 11.
To prohibit writing. Therefore, at timings 1 to 11
The same channel, same module or pitch
The envelope flag is written by the interface / control unit 11.
The envelope / key code generation circuit 12
Inhibits writing of the envelope flag.   FIG. 29 is a detailed diagram of the exponent data address generation circuit 306.
It is. Flip-flops 415-420, inverted output flip
The flop 421 is the final envelope generated by the arithmetic circuit 308.
Exponential conversion / phase angle generation circuit 13
Stores write address when writing to memory after exponential conversion
I do. Clock inverters 425 to 434 write P1 address
And the read addresses C1 to 5 are switched by the timing signal T2.
To generate address signals DA1 to DA5.
(Address DA0 is the same as the write address). Exponential conversion
Envelope and frequency information are
Generated by WEE, WEF, and addresses DA0-5
Each is written to the memory (details will be described later).   Next, the arithmetic circuit 308 will be described with reference to FIG. Above
The operation circuit 308 is controlled by the control signal shown in FIG.
The operation is performed as shown in the operation flow of FIG.   FIG. 31 is a detailed diagram of the A register. The A register is
Input to lower FF485-492, upper FF493-499 and FF
Clock NAND 454 to 461 for selection, clock inverter 46
2 to 483 and FF output clock input for output to buses D0 to D7
Output to A input of inverters 500-514 and adder / subtractor 440
It is composed of a group of changing gates 515-531. signal
RA is input to the FF from the data bus D0-7 and the operation output L0-14.
Force selection, ▲ ▼ low D0-7 to upper FF493-499
Signal to input all 1 to the lower FF485 to 492 when loading
It is. All 1s are loaded in the lower FF485-492
Only when ▲ is “0” and the clock CKAL is output.
You. Also, the signals AL 'and AM' are the lower register or upper register of the A register.
To control whether or not to output the data on the data buses D0 to D7.
Things. Gate group 515-531 is A input of adder / subtractor 440
This is to change the data to force, and if A0 'is "1",
If 0 and ▲ ▼ are 0, then 00000010 ... 0 (Fig. 20A
Update processing of envelope steps in the operation flow 9
F ': AM← corresponds to 1 + s, If "0" is shown in FIG. 25, A0 'is 1, so 10 ... 0 (pip
H), which is equivalent to the start data of the envelope.   FIG. 32 is a detailed diagram of the B register. The B register
Input to lower FF564-571, upper FF572-578, and FF
Clock NAND 532-539 for selection, clock inverter 54
0 to 562, and clock number for output to data bus D0 to D7
Switches 579 to 593 and the output of the shift circuit 438.
594-616. The signal RB is
Input selection to FF from tabus D0 ~ 7 and operation output L0 ~ 14,
▲ ▼ indicates that D0-7 is to be loaded into upper FF572-578
Is a signal for inputting all 1s to the lower FFs 564 to 571.
All 1s are loaded in the lower FF564-571
▲ ▼ is “0” and the clock CKBL is output. Ma
Also, the signals BL 'and BM' are the lower or upper data of the B register.
To control whether data is output to the data buses D0 to D7.
It is. Gate groups 594 to 616 output to shift circuit 438
Change the data. If B is "1", B register upper
Is output. If "0", the M or S register is set to the upper B register.
Is output to the shift circuit 438 instead. B0 'is "1", B
Is "1", outputs BI0-14 are all 0, and B0 '
If “1” and B are “0”, upper 7 bits are M or S register
And the lower 8 bits of the data are all 0. And signal 5
When "1", B is "1", so if B0 is "0", the output is 1,
B010, B09, B08, 0 ... 0. This is an envelope
Data conversion for expanding the range of rate data
Data shift or data converted by 11 to BO14
By performing addition and subtraction thinning, etc.,
The ascending and descending speed of the envelope has been obtained. B Regis in Table 3
Envelope plate at the top of the table; ER6, ERFive......
ER0This shows the conversion of  FIG. 33 is a detailed view of the M register, and has inverted outputs FF617 to 623.
Captures data on data buses D0-6 by clock CKM
No. Clock NORs 624 to 630 use N registers when signal M is "1".
Output M1 data, M is “1” and MO0 is “1”
At this time, all 0s are output.   FIG. 34 shows a shift control circuit 447. Clock inva
Data 643 to 645, clock NOR 634, 637, 640
When signal 14 is "1", that is, the operation flow in FIG.
Of the final envelope in "E ← AM"
(E ← Eij-AMDj) "Only when the lower 3 bits of the S register
Shift control signal SH according to the signal (modulation sensitivity)
1, 2, 4, and 8 are output. Note that the shift circuit 438 is
When signals 1, 2, 4, and 8 are "1", shift left by one each
(× 1/2), 2 left shift (× 1/4), 4 left shift (× 1/1
6) Performs 8 left shifts (× 1/256). For example, SH
If 1, 2, 4, and 8 are 1, 0, 1, 0, respectively, total
5 shifts left (× 1/32)
(Not shown). Therefore, "A ← AM (A ← Eij-AMD
j) ”Indicates modulation sensitivity MSijAccording to each moji
Weighted for each module and amplitude modulation
Can be MSijIs 0, the output MO0 of AND 649 is
Since it becomes “1”, the operation becomes “A ← A−0” and the modulation
It does not take any action. Next, when 12P is “1”,
Fig. 20A Operation of the final pitch envelope in the operation flow
Calculation “B ← ± A + B (B ← ± PMDj+ Epj) ", S
H1, 2, 4, and 8 become 0, 1, 0, 0, respectively, and 2 left
It is shifted (× 1/4) (the operation explanation will be described later). Also, 15P
Is “1”, that is, the amplitude
Interpolation operation "A ← A ± M (A ← ± AMDj+ MRj) "
In the case of, if MT is “0”, SH1, 2, 4, 8 are 0, 0,
1, 0 shifts 4 left (× 1/16), if MT is “1”, SH1,
2, 4, and 8 become 1, 0, 1, 0 and shift left by 5 (× 1/3
2) Here, as described above, MRjIs aftertouch
Because it is the absolute value of the difference between the detected amount of
If MT = "0", the target value ML that is the current detection amountjTo reach
In order, MRj16 additions and subtractions are required. That is, the first
16 × 1.2288 = 19.6608 (msec) from the time chart in Figure 9
Will be reached. This is after every 19.6608 msec.
ML calculated from detection data such as touchj, MRjThe CPU
Transfer the data inside the sound source LSI,
This means generating kana data. MT =
“1” for MRjRequires 32 times of addition and subtraction of
The cycle is 39.3216 msec. Next, at timing 5
Think. Since signal 5 is "1", AND631 to 633, 635,
Since 636, 639 and 641 are valid, SH1, 2, 4, and 8 values
Is determined by ▲ ▼ ~ ▲ ▼ (Table
4) The data is shifted as shown in Table 3.
At timings other than the above, SH1, 2, 4, and 8 are always
0, 0, 0, 0, so no shift is performed.   FIG. 35 is a detailed diagram of the envelope control circuit 448.
The envelope control circuit 448 calculates the
Raise, lower, or stop the envelope
To generate enable signals ▲ ▼
You. The signal ▲ ▼ is changed to ▲ ▼
“0”, that is, while holding or “1”
And the envelope is at the point where the step switches
It is set to “1” when the power direction is being determined, and the envelope is
Fixed. In addition, inverters 651 to 654, counter 65
5, flip-flops 656-659, and 660-663, or 6
64 is to change the envelope slope.
A circuit that generates a thinning-out signal is formed.
When the output of 664 is 0, ▲
▼ becomes “1”. Table 5 shows the top four envelope plates.
B register output which is bit data ▲ ▼ ~ ▲
The value of ▼ and the enable signal ▲ ▼ for operation are “0”
Shows the relationship between the counter values.   Therefore, the operation is thinned out as shown in the lower part of Table 3.
It is.   FIG. 36 is a detailed diagram of the data change circuit 439. Taimi
Signal 12P becomes “1” at the time of switching 12P, so the gate circuit
According to 666-677, the output BI ″ 12-14 is BI ″ 12 = ▲ ▼, BI ″ 13 = ▲ ▼, B
I ″ 14 = BI ″ 12 Becomes The calculation of the timing 12P is based on the operation flow of FIG. 20A.
Is “B ← ± A + B (B ← ± PMDj+ Epj) "And B
I'0 to 14 are obtained by shifting the output of the B register 427 by two to the left.
Therefore, the outputs BI0 to BI14 of the B register are
▲ E0 pj▼-▲ E14 pj▼ If you add, subtractor 440
B inputs BI′0-11 and BI ″ 12-14 of Becomes This is centered on the range of the pitch envelope.
Bell 10 ... means compressed to 1/4 around 0
You. Next, at timing 18, is signal 18 "1"?
Output by the gate circuits 666 to 677 BI ″ 12 = BI ″ 12, BI ″ 13 = BI ″ 13, BI ″ 14 = ▲
▼ Becomes The operation at timing 18 is the operation flow shown in Fig. 20A.
Then, "A ← A + B (A ← KCj+ PEpj) "
▲ PE0 j
▼-▲ PE14 j▼ B input BI'0 ~ 1 of adder / subtractor 440
1, BI ″ 12-14, Becomes This is centered on the final pitch envelope
Positive above level, negative 2's complement below
And That is, this is the key code; KCjAdd to
The final pitch envelope is centered around 10 ... 0
If the difference is larger, add the difference.
Is equivalent to subtracting the difference of
Symmetrical pitch envelope around center level
doing.   FIG. 37 is a detailed diagram of the code generation circuit 449. The signal AS
12P, ▲ ▼ is “1” in the code on the A input side of the adder / subtractor 440
At this time, it becomes “1” by the NANDs 678 and 681. That is,
In the operation flow of FIG. 20A, “B ← ± A + B (B ← ± PMDj+
Epj) "Is F2 (data PMDjMSB) is “1”
Is positive, and “0” is negative. Also, 7.P
“1”, if F2 is “1”, inverter 679, NAND 680, 681
As a result, AS becomes “1”. In other words, the pitch shown in the operation flow
Calculation of target value of chain envelope “A ← A ± M (0) (A ←
ELpj(s) ± ELCpj)), If F2 is “1”, the pitch
Envelope level data is inverted with respect to the center level
Then, the envelope becomes as shown in FIG. 38 (b) ((a)
Is not inverted). Here, F2 is taken at timing 2.
▲ ERC embedded7 j▼ This is the key code change
Direction, that is, the positional relationship between the previous key press and the current key press
It represents. At this time, an error of the LSB of the adder / subtracter appears.
In some cases, there is no problem because it is small enough. Therefore the signal
▲ ▼ indicates that the operation “* ← −A ± *”
It will be "0" when performed. Signal BS is input to B of adder / subtractor 440
The sign of the force value, ▲ ▼ = “0” (timing 8, 14,
16P) is always "1". Also, at timing 5 or
When the signal 5.8 is "1" at 8 and P or ▲ ▼
If “1” is “0”, or 687, Noah 686, Nando 689
Becomes ▲ ▼ = ▲ ▼ (otherwise,
“1”). That is, 5.8; Envelope update or ratio of envelope to target value
Comparison PV ▲ ▼: When calculating pitch or other than step 0 = "0"; when the direction is not determined at the step switching point
(See below) The output ▲ ▼ of Nando 689 becomes ▲ ▼
No. BS is 5 when S4, 8 when “1” (▲ ▼ = “0”
Et al.) SF2 is "1", that is, the timing
In the case of 0, 15P and 16P, the output F2 'of NAND 685 becomes F2
("1" otherwise). That is, “0;
Addition / subtraction ”,“ 15P; Modulation rate addition / subtraction ”,
For "16P; Comparison of amplitude modulation and target value"
Is F2 ', F2, and the code BS is BS. Also, timing
When P = 0 in step 7, the output of NAND 684 is 0 and BS is "1"
Becomes That is, the operation flow “A ← A ± M (0) (A
← ELij(S) ± ELCij) "When not calculating pitch
Is the code BS is "1". When P = 1, the code BS is FA14.
Become. Therefore, as indicated by the arrow in FIG. 38, the pitch
The envelope level of the inverted data is the center level.
Above; subtract when FA14 = "1" (see Fig. 39); lower; FA
When 14 = “0” (see FIG. 39), addition is performed. That's all
The code generation circuit 449 shown in FIG.
Generates input code AS and BS, and the operation flow (Fig. 20A)
Is achieved.   FIG. 39 shows an adder / subtractor 440 and an output clip circuit 441.
It is. Adder / Subtractor 440, OR 691, Exclusive
-OR 692-699 etc., constituted by adder 700, code A
A ± B or ± A + B is executed by S and BS. FA1
4, FB14, CO and S14 are A input MSB and B input M of the adder, respectively.
SB, CARRY OUT, output MSB.   FIG. 40 shows the basis of the branch flag F 'in the operation flow.
FIG. 3 is a detailed diagram of a flag generation circuit 450 that generates a signal F according to the first embodiment.
You. Clock CKF at timing 5, 8, 15P, 16P
Only occur, so consider only that case. First, is “0”
Then, at timing 5, signals 5 and 8 are "1" and
714 is enabled, the output of NAND 714 is S4 ', NAND 71
The output of 5 is ▲ ▼. ▲ ▼ is “1”, so
719 is “1”, so ▲ ▼ is “1”, CO is
If “1” or ▲ ▼ is “0” and CO is “0”, FF720 is
“1” is set. This is enabled when updating the envelope.
-Set flag F when overflow or underflow occurs.
Is equivalent to Is “0” and at timing 8
Similarly, the output of Nand 714 is ▲ ▼, Nand 7
The output of 15 becomes S4 '. At this time, ▲ ▼ is “0”
And if the flag F is set at the timing 5
Set again. When Huag F is not set
Means that S4 'is "0", CO is "0" or S4' is "1" and CO is "1".
If so, FF720 is set to "1". It was updated
When the envelope crosses the target value while rising or falling
If it reaches or exceeds, it is equivalent to setting the flag F.
You. Therefore, when the flag F is "0", the flag F
Set when the target reaches the target value. Next is “1”
Then, from Fig. 37, ▲ ▼ = "1" and BS = "0".
You. Also, from FIG. 35, ▲ = “1”. Therefore
In the imming 5, “B ← A + 0” is performed. At that time,
In FIG. 40, the output of NAND 715 is “1”, CO is “0”, ▲
Since ▼ is “1”, no flag is set. Thailand
In mining 8, the output of NAND 715 is "1", so
Subtract the current value of the envelope from the
If so (CO = “1”), the flag F is set to “1”. You
That is, F = 1 in the + direction and F = 0 in one direction.
Set the rug. Next, except for timings 5 and 8,
At timings 15P and 16P, the output of NAND 715 is
It becomes ▲ ▼. At timing 15P, ▲ ▼
= “0” and CO = “1”, or ▲ ▼ = “1” and CO = “0”,
That is, while updating the amplitude modulation data,
-Set flag F if flow or underflow
You. At timing 16P, ▲ ▼ = “0” and CO =
“1” or ▲ ▼ = “1” and CO = “0”, ie update
Amplitude modulation reaches the target value while rising
Set the flag F if it exceeds or exceeds or descends
You. The flag F is set as described above, and the operation flow
(FIG. 20A).   Fig. 41 shows overflow and unloading in adder / subtractor 440.
Monitor the occurrence of underflow and calculate the output when it occurs.
FIG. 4 is a detailed diagram of an output clip control circuit 451 for controlling to a constant value.
You. Output signals CT, MX, ▲ ▼ are “1”, “1”,
When "0", the output of the adder 700 in FIG.
.., 1, 0... 0. First, timing 18
That is, “A ← A + B (A ← KCj+ P
Ej) ", The shift circuit 43 of FIG.
8. B input to adder / subtractor 440 by data change circuit 439
Is , The calculation at this time is the central level 10... 0
Add data in 2's complement format with the upper part being positive and the lower part being negative.
Calculation. Therefore, the signs AS and B of the adder / subtractor 440
Instead of S, adder B input MSB: FB14 is “0” or “1”
Sometimes you have to watch overflow, underflow
No. When 18 is “1”, AND 728 and 731 are valid
If 18 = “1”, FB14 = “1”, ▲ ▼ = “0”,
A732 output is “0”, AND738 output ▲ ▼ is “0”
(MX = "0", CT = "0"). This adds negative data.
When calculating, if underflow, set to all “0”
Is equivalent to 18 = "1", FB14 = "0", CO = "1"
The output MX of OR729 becomes “1” (▲ ▼ = “1”, CT =
“0”). This is because when adding positive data,
Equivalent to setting all "1" when low. Then, 18
= “0” and 7∧P = “0”, the output of Noah 722
Becomes "0" when BS = "1" or AS0 = "1" ("A-
B "or" -A + B ").
When CO = “0”, the output of NOR 732 is “0”,
The output becomes “0”, and ▲ ▼ becomes “0” (MX = “0”,
CT = "0"). This is all “0” when underflow
Means to do. When BS = "0" and AS0 = "0" (A
+ B), AND 727 becomes effective, and if CO = “1”, OR 729
Is “1” (▲ = “1”, CT = “0”).
This means that all “1” should be set in case of overflow.
To taste. Finally, the case when timing 7 and P = "1" is explained.
I do. EXOR733 output when S14 ≠ FA14 or CO ≠ BS
“1”, so CT = “1”, ▲ ▼ = “0” (MX =
“0”). This changes the pitch envelope level.
When the data exceeds the central level due to changes,
The output of the adder 700 in FIG. 39 is set to the center level 10... 0.
Means that. As described above, FIG.
The output is controlled.   FIG. 42 shows an S register and an envelope flag control circuit.
446 is a detailed view of FIG. The flip-flops 739 to 746 are S
The data buses D0 to D7 are fetched by the clock CKS.
The contents of the S register are from timing 1 of P = 1 or P = 0.
At 13 the envelope flag is
The output of the envelope flag control circuit 446 is significant.
ing. ▲ ▼ indicates that the envelope flag is Nand 74
7. From "* 0 ** 0000", that is, the normal mode
It is a signal that becomes 0 at the time of loop 0. Is a step switch
A signal that becomes “1” when the direction is determined at the intersection
7, 749, OR 748, P = "1" or ▲ by inverter 753
When ▼ = “1” and ▲ ▼ = “1”,
Node flag is 0 except for step 0 of width envelope
If it is, it becomes "1". E0 is calculated at timing 5 “B ←
A ± B [B ← Eij± (ERij(s) + ERCj] "And input A to 0
Signals, NAND 747, NOR 752, inverter 759,
760, or 761, ▲ ▼ = ▲ ▼ = 0
In other words, when the mode is the mask, ▲ ▼ = 0
And ▲ ▼ = 1, that is, “1” at the beginning of step 0
Becomes In the normal mode, A
Since the input is 0, the envelope must start from 0
Will be F 'is the operation flow (Fig. 20A)
Flag for Ki, OR 762, 763, inverter 764,
Due to AND 765, F '= F,
In the case of imming 9, F '= when "0" and S3 = "0"
F, otherwise F '= "0". That is,
In step 9, F '= 0 during direction determination or hold,
Outside, F '= F. Next, the outputs BI8 to BI14 are explained.
I will tell. These are envelopes only at timing 9.
The output of the flag control circuit 446. BI8 ~ 10 is S0 ~ S2
Become. BI11 is “0” and the envelope flag is
It is not "****** 111", and F = "1" and F1 = "1"
The original value ▲ EFThree ijIt becomes ▼.
In other words, the direction of the normal mode is not being determined.
F7 (envelope level 8th bit =
When the stin flag reaches “1”, the hold
Flag ▲ EFThree ij▼ becomes “1”. BI12 = "1"
If F = "0", it becomes "1". That is, when “1”
Sign bit ▲ EF if the judgment result is one-wayFour ij▼ to “1”
I do. When the value is other than “1” and F = “0”,
When the output of C 754 reaches "0",
Sets BI12 to “0”. Also, ▲ ▼ = 1, that is,
BI12 is set to 0 when it is at the switching point. other than that
Then BI12 is the original value ▲ EFFour ijIt becomes ▼. BI13 = “0”,
When ▲ ▼ = 1 and F = 1, ie, the direction
If it is not judged and is not sustained, it reaches “0”
Otherwise, it is set to “1” to indicate step switching.
Flag. Write upper bits of registers A and B to RAM7
At the 8th bit, the 8th bit of the S register is
Write As described above, FIG.
The lag control circuit outputs a signal corresponding to the envelope flag ▲
▼, F ', E0 are output and the envelope
Set the lag. Envelope flag is key on
After that, usually start from step 0 (pitch envelope
The robot starts after the direction is determined.)
Is added, and the node flag ▲ EFFive ij▼ represents a node
The direction is determined by setting it to 0, and the sign flag ▲ EFFour ij
To start the next step. If you reach
Stinflag (envelope level ELij(S) MS
If B) is "1", the envelope is fixed and the envelope is fixed
Is done. Then, when the key-off comes from CPU3, the hold is released.
And start the next step. In addition, loop mode
If the Sustain flag is in the final step 7
The envelope flag is 011 * 0111 → 01101111 + 1 = 101010
000 and return to step 0, is the envelope first?
Will be repeated.   The operation circuit of FIG. 30 has been described above.
The operation circuit of FIG. 20A
Perform operations such as final envelope and synthesis keys.
-Generate code and transfer to exponential conversion / phase angle generation circuit 13
I do.   FIG. 43 is a detailed diagram of the external RAM interface 16.
You. FIG. 44 (a) shows from the interface / control unit 11,
(B) shows the RA from the envelope / key code generation circuit 12;
This is the timing of writing to M. Address signals RA0-11
Are addresses AA0 to AA1 from the interface / control unit 11.
1. Address from envelope / key code generation circuit 12
Based on each RAM occupation time (Fig. 3)
Obtained by switching with clock inverters 777-801
It is. The write enable signal ▲ ▼
Signal ▲ ▼ from the source / control unit 11 becomes “0”
(However, if the signal ID indicating the use of the internal memory is “1”
Or no envelope / key code generator
When the write signal ▲ ▼ from 12 becomes “0”,
Signal becomes “0” in the width of “0”. Also output
Enable signal ▲ ▼ is both ▲ ▼ and ▲ ▼
When it is “1”, the signal CK2 becomes “0” with a width of “0”. Data RD0
7 are signals when ▲ ▼ or ▲ ▼ is “0”.
▼ is the width of “0” and is output from the sound source LSI6.   FIG. 45 is a block diagram of the exponential conversion / phase angle generation circuit 13 shown in FIG.
It is a lock figure. Envelope / key code generation circuit 12
The envelope and keycode generated by
It is taken into the flip-flop (FF) 1000 by CKE. FF100
The output of 0 is converted by the exponent ROM1001 and the envelope register
Data 1002 and the frequency information register 1004. Fig. 46
3 is a detailed diagram of the envelope register 1002. Enbero
Loop register 1002 has two RAMs (ENVERAM, ENVORA
M), FF1014-1019, etc., inverter 1027, clock input
Inverters 102-1026, 1028-1033, etc., and inverters
Consists of 1008, 1010, Nand 1009, 1011, 48th
It operates as shown in the time chart of FIG. counter
1 (FIG. 18) is the envelope / key code generation circuit 12
This shows the basic timing of FF415-421 (Fig. 29).
The data output switches from timing 0. FF415 ~ 420
Data is envelope register 1002, frequency information register
Write channel (DA0-2) to module 1004, module
(DA3 to 5), and when T2 is 0
Only data of DA1 to DA5 (DA0 always matches the value of FF415
Yes. Also, the output of FF1000 switches as shown in Fig. 48,
Since WEE becomes “1” at timing 0, when DA0 is “0”
(Even channel) Nand 1009 becomes “0”, so T2
= “0” and the timing signal W is “1” and ENVERAM1
Data is stored at the specified address of 012 (inversion of FF416 to 420).
Written. When DA0 is “1” (odd channel)
The NAND 1011 becomes “0” and data is stored in the ENVORAM 1013
Written. When T2 is "1", addresses DA1-5 are
The outputs C1 to C5 of the timing signal generation circuit 159 (FIG. 6)
Channels and modes corresponding to the values of C1 to 5
Read data of Joule, buffers 1020 to 1026, 1028
~ 1033, inverter 1027 enables EN when T2 = "1"
When VERAM1012, T2 = "0", ENVORAM1013 to T2 =
Data read with "1" delayed by FF1014 to 1019
Output E0 to E11. Therefore, the envelope cash register
The star 1002 is a timer of the envelope / key code generation circuit 12.
Data is written by the interface, and the interface / control unit
It is read at the timing of 11, and the waveform is generated via FF1003.
Sent to Road 15.   FIG. 47 is a detailed view of the frequency information register 1004.
The operation is exactly the same as that of the rope register 1002. Read
The frequency information FI0 to FI20 via the FF1005
Sent to the accumulator (adder 1006, shift register 1007)
A phase angle is generated.   FIG. 49 is a detailed diagram of the OC register 14. OC register
14 is the envelope register 1002 and frequency information register 10
As in 04, RAM for even-numbered channels (OCERAM), odd-numbered channels
It consists of channel RAM (OCORAM) and reads it alternately.
Register that can always be read and written
You. Address AA0 ~ from interface / control unit 11
2, 4 to 6 are write addresses and C1 to C5 are read addresses
Read when T2 is “1” and write when T2 is “0”
It has become. Flip-flops 1076B-1083B, 1101-
1103, shift register 1104 provides control signals C0-3
The gates 1105-1116 are controlled by control signals C5
9 is produced.   FIG. 50 is a block diagram of the waveform generation circuit 15. Waveform
The generation circuit 15 is disclosed in Japanese Patent Application No. 61-55008 of the present applicant.
It performs almost the same operation as the circuit. First, the phase angles P0-11
FF1119 selected by selector 118, phase angle conversion circuit 112
0, input to sine wave ROM 1122 via shift register 1121
The result is a waveform signal sinX '. Note that the phase conversion circuit 1120 is
Introducing phase distortion into a sine wave according to the value of a control signal
The corresponding waveform is as shown in FIG. Waveform signal sin
X ′ is transmitted through shift register 1136, adder 1137, and FF1138.
(The output of the gate circuit 1135 is assumed to be 0)
E ″ is multiplied by the multiplier 1124 and output through the FF1125.
You. This output is a tone output if it is output as a tone.
Register (selector 1127, FF1128,
The output from the gate circuit 1129) is the selector 1130 and the gate 1131
The passed data is added / subtracted by an adder / subtractor 1126. Fig. 52
5 shows a time chart of the waveform generation circuit 15. C0 to 5 are
The counter output of the timing signal generation circuit 159 in FIG.
Figures 5 to 5 show the envelope register 1002 and frequency information
Register 1004, the read address of the OC register 14
ing. The one-bit delay is caused by the waveform forming circuit.
(Figure 50) The basic timing is 6 bits.
Lower 3 bits for channel, upper 3 bits for module
Is equivalent to the calculation of Signals P, X ', E', E ", E"
sinX ', R', R are module 0, channel 0, respectively
From the calculation of to the calculation of module 7 and channel 7
The timing of the cycle is shown. Control of waveform generation
The selectors 1118, 1127, 1130, 1132,
Gate circuits 1129, 1131, 1135, phase angle changing circuit, 1120,
This is performed by controlling the adder / subtractor 1126. Table 6
Corresponds to the upper 4 bits of OC data input from the CPU
This is shown by calculation (see Fig. 49). A waveform is generated by these arithmetic controls.   The following is an example of waveform generation. Where i is the module N
o and j are channel numbers. 1) Ei + ljsin (EijsinPij)   The operation code is ij ** 000000 (The upper 4 bits may be 0010) i+1j 101 * 0000 i+2j 000 **** Becomes As a result, as shown in Table 6, module i
For the waveform of channel j, P is selected as the phase angle,
Output E ″ sinX ′ is the order of module i + 1, channel j
Become a phase. Module i + 1, channel j waveform output
E ″ sinX ′ is accumulated with the musical sound output.
9 is for a waveform output with a delay of 8 bits from the phase X.
Therefore, for example, the control signal of i + 1, j
For the waveform output of channel i and channel j.
You. 2) Ei + 2jsin (EijsinPij-Ei + 1jsinPi + 1j)   The operation code is ij ** 000000 (The upper 4 bits may be 0010) i+1j 10000000 i+2j 111 * 0000 i+3j 000 **** Becomes As a result, as shown in Table 6, module i and channel
For the waveform of channel j, P is selected as the phase angle, and its output is
E ″ sinX ′ is input to the shift register 1133.
Rule i+1, P is selected as the phase angle for the waveform of channel j
And the waveform is subtracted from the output R of the shift register 1134.
Being a module i+2, Channel j.
And module i+2, The waveform output E ″ s of channel j
inX 'is accumulated with the musical sound output. Operation as above
The generation of various waveforms depends on the
And 9 can generate many musical tones. Output wave
The shape sequentially accumulates the generated waveforms.
When the value of ~ C5 is "9", the waveform of the new operation cycle is FF
Although it is taken into 1128 (the waveform that is not output =
), The output of FF1128 at that time is the accumulation of the waveform of the previous cycle
Because it is a value, take it in latch 1139 (CKL)
Latch 1139 causes waveform final accumulation for each operation cycle
Will output a value. The gate circuit 1140 is connected to the signal OM.
Output is all 0 (center level) when is "0"
After the reset, until the mode data is set,
maintain. That is, external reset by power-on etc.
When a signal is generated, the timing signal generation circuit 159
An internal reset signal is generated, and this is the
Switch 156 to reset its output OM to “0”.
The output of the gate circuit 1140, that is, the signal output sent to DAC8
Power is placed on silence levels all zero. On the other hand, CPU3
Tones, etc. in the external RAM 7 through the interface / control unit 11
Set the required data for
Mode latches 156 to 158.
As a result, OM becomes “1” and the gate circuit 1140 is enabled.
The waveform signal calculated by the waveform generation circuit 15 is sent to the DAC 8
Will be able to In other words, after turning on the power,
When the required data settings are completed, the tone generator LSI 6
Until the signal can be synthesized, the input to DAC8 is silent.
It is maintained at the level. [The invention's effect]   As described above in detail, in the present invention, the envelope
Use envelope flags to control rope progress
Freely write this envelope flag using the CPU.
That can be achieved with the prior art.
Highly flexible envelope control and sound control
Ability to make the performance of the performance input device more dynamic.
Can be reflected in the musical sound. For example, when the pronunciation starts
Different envelope depending on initial touch size
You can start playing the envelope from a step
Wear. In addition, the playing state that can occur at any time during
Envelopes stay sustained in response to changes
Or go to another step.

【図面の簡単な説明】 第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……RAM、
11……インタフェース/制御部、12……エンベロープ/
キーコード生成回路、15……波形生成回路、436……A
レジスタ、437……Bレジスタ、442……Mレジスタ、44
7……シフト制御回路、438……シフト回路、449……符
号生成回路、440……加減算器、441……出力クリップ回
路、451……出力クリップ制御回路、446……エンベロー
プフラグ制御回路、302……書込み禁止回路、213〜226
……キーオフ処理部。
BRIEF DESCRIPTION OF THE DRAWINGS 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 sound source LSI, and FIG. 3 is an interface unit and an envelope / key code of the sound source LSI. 4th time chart showing allocation of external RAM occupation by generation circuit, 4th
FIG. 5 is a time chart of data and a write control signal sent from the CPU to the interface / control unit of the tone generator LSI. FIG. 5 shows a low-speed operation cycle for generating a tone control signal and a high-speed operation cycle for generating a waveform. FIG. 6 is a detailed diagram of an interface / control unit, FIG. 7 is a time chart of a part of a signal generated by a timing signal generation circuit, FIG.
FIG. 9 is a time chart of other signals generated by the timing signal generation circuit, FIG. 9 is a detailed view of the timing signal generation circuit, FIG. 10 is a detailed view of the instruction decoder,
FIG. 11 is a time chart showing the operation of the interface / control unit for the transfer instruction of 1-byte data, FIG. 12 is a time chart showing the operation of the interface / control unit for the transfer instruction of the 2-byte data, and FIG. 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. FIG. 15 is an interface / control diagram 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 the mode setting instruction, 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 an operation timing signal generation circuit, and FIG. The figure is a detailed diagram of a clock generation circuit, FIG. 24 is a detailed diagram of an operation address generation circuit, FIG. 25 is a detailed diagram of an operation control signal generation circuit, FIG. 26 is a time chart of the operation control signal generation circuit, No.
FIG. 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, FIG. 31 is a detailed view of the A register, and FIG. 32 is B
Figure 33 is a detailed view of the register. Figure 33 is a detailed view of the M register.
The figure is a detailed view of the shift control circuit, FIG. 35 is a detailed view of the envelope control circuit, FIG. 36 is a detailed view of the data change circuit, and FIG.
FIG. 37 is a detailed diagram of a code generation circuit, FIG. 38 is a graph showing pitch envelope inversion by a flag, FIG. 39 is a detailed diagram of an adder / subtracter and an output clip circuit, FIG. 40 is a detailed diagram of a flag generator circuit, and FIG. Figure 41 is a detailed diagram of the output clip control circuit,
FIG. 42 is a detailed diagram of an S register and an envelope flag control circuit, FIG. 43 is a detailed diagram of an external RAM interface, and FIG.
The figure is a time chart showing the operation of the external RAM interface, FIG. 45 is a block diagram of the exponential conversion / phase angle generation circuit,
FIG. 46 is a detailed view of the envelope register, FIG. 47 is a detailed view of the frequency information register, FIG. 48 is a time chart of the exponential conversion / phase angle generation circuit, FIG. 49 is a detailed view of the OC register, and FIG. FIG. 51 is a detailed diagram of the waveform generation circuit, FIG. 51 is a waveform diagram showing a set of sine waves in which distortion is generated by a control signal in the waveform generation circuit, and FIG. 52 is a time chart of the waveform generation circuit. 1 ... keyboard, 2 ... switch, 3 ... CPU, 7 ... RAM,
11: Interface / control unit, 12: Envelope /
Key code generation circuit, 15: Waveform generation circuit, 436: A
Register, 437 ... B register, 442 ... M register, 44
7 shift control circuit, 438 shift circuit, 449 code generation circuit, 440 adder / subtractor, 441 output clip circuit, 451 output clip control circuit, 446 envelope flag control circuit, 302 ...... Write-inhibit circuit, 213-226
... Key-off processing unit.

Claims (1)

(57)【特許請求の範囲】 1.演奏状態をモニターするCPU(3)によって制御さ
れ、演奏状態に従って楽音を合成するため、メモリ
(7)と、上記CPUからの命令または命令とその付属デ
ータとに応答して、上記メモリの所定領域にデータを書
き込むインタフェース回路(11)と、上記メモリのデー
タを利用してエンベロープ等の楽音制御信号を生成する
楽音制御信号生成回路(12)と、上記楽音制御信号生成
回路により生成された楽音制御信号に従って楽音波形を
生成する波形生成回路(15)とを備えた楽音合成装置に
おいて、 上記メモリが、その一部として、 (a) 上記インタフェース回路を介して上記CPUによ
り書き込まれる、生成すべきエンベロープ波形の各ステ
ップ毎のエンベロープ演算用パラメータ(ERij、ELij
を記憶するエンベロープ演算用パラメータメモリと、 (b) エンベロープ波形の現在値(Eij)を記憶する
エンベロープ現在値メモリと、 (c) エンベロープ波形のステップ情報を含むエンベ
ロープフラグ(EFij)を記憶するエンベロープフラグメ
モリとを含み、 上記楽音制御信号生成回路が、 (d) 上記エンベロープフラグメモリから、エンベロ
ープフラグを読み出すエンベロープフラグ読み出し回路
と、 (e) 読み出したエンベロープフラグに含まれるステ
ップ情報が示すステップのエンベロープ演算用パラメー
タ(ERij(s)、ELij(s))を、上記エンベロープ演算用パ
ラメータメモリから読み出すパラメータ読み出し回路
と、 (f) 上記エンベロープ現在値メモリからエンベロー
プ現在値を読み出し、読み出したエンベロープ演算用パ
ラメータとの間で演算を行ってエンベロープ現在値を更
新し、更新結果を楽音制御信号として出力するとともに
エンベロープ現在値メモリにセーブするエンベロープ生
成回路と、 (g) 上記エンベロープ生成回路による演算の結果に
従って、読み出したエンベロープフラグを適宜更新し、
更新したエンベロープフラグを上記エンベロープフラグ
メモリにセーブするエンベロープフラグ更新回路とを含
み、 (h) 上記CPUから上記インタフェース回路への命令
のなかにフラグセット命令が含まれ、 (i) 上記インタフェース回路は、当該フラグセット
命令に応答して、その付属データである任意のエンベロ
ープフラグを、上記エンベロープフラグメモリに書き込
むとともに、前記エンベロープフラグ更新回路が、上記
演算の結果に従って更新したエンベロープフラグを、上
記エンベロープフラグメモリに書き込むように構成され
たことを特徴とする楽音合成装置。 2.特許請求の範囲の第1項に記載の楽音合成装置にお
いて、上記楽音制御信号生成回路は、上記CPUのフラグ
セット命令によって上記エンベロープフラグメモリが書
き換えられた場合に、上記エンベロープ更新回路による
上記エンベロープフラグメモリの書換えを一時的に禁止
する禁止回路(302)を有することを特徴とする楽音合
成装置。 3.特許請求の範囲第1項に記載の楽音合成装置におい
て、 上記CPUから上記インターフェース回路への命令のなか
にキーオフ命令が含まれ、上記インタフェース回路は、
このキーオフ命令に対し、上記エンベロープフラグメモ
リからエンベロープフラグを読み出し、その値に従って
エンベロープフラグを変更して上記エンベロープフラグ
メモリに戻すキーオフ処理回路(213〜226)を有するこ
とを特徴とする楽音合成装置。 4.特許請求の範囲第1項に記載の楽音合成装置におい
て、 上記メモリは、更に、エンベロープを高速で減衰させる
ためのハイリリースデータ(HRij)を記憶するハイリリ
ースメモリを含み、 上記CPUから上記フラグセット命令としてハイリリース
のフラグセット命令が与えられた場合に、上記インタフ
ェース回路はハイリリースのフラグセット命令の付属デ
ータである、ハイリリースデータを指示するエンベロー
プフラグを上記エンベロープメモリに書き込み、 上記パラメータ読み出し回路が、読み出したエンベロー
プフラグがハイリリースデータを指示している場合に、
上記エンベロープ演算用パラメータメモリに代え上記ハ
イリリースメモリからハイリリースデータを読み出すこ
とを特徴とする楽音合成装置。 5.特許請求の範囲第1項に記載の楽音合成装置におい
て、 上記エンベロープ演算用パラメータはエンベロープレー
ト(ERij)と目標レベル(ELij)から成ることを特徴と
する楽音合成装置。 6.特許請求の範囲第1項に記載の楽音合成装置におい
て、 上記波形生成回路は、複数の発音チャンネルにおける各
チャンネルの楽音波形を複数のモジュールの時分割動作
で生成するものであり、入力として楽音制御信号生成回
路から与えられるモジュール別のキーコードとエンベロ
ープを受けとることを特徴とする楽音合成装置。 7.特許請求の範囲第6項に記載の楽音合成装置におい
て、 上記エンベロープフラグメモリとエンベロープ現在値メ
モリは、発音チャンネル別、モジュール別にエンベロー
プフラグとエンベロープ現在値をそれぞれ記憶し、 上記エンベロープ演算用パラメータメモリは、発音チャ
ンネル別、モジュール別、エンベロープステップ別にエ
ンベロープ演算用パラメータを記憶することを特徴とす
る楽音合成装置。 8.特許請求の範囲第1項に記載の楽音合成装置におい
て、 上記エンベロープフラグは、 (i) エンベロープのステップ(EF0〜EF2)、およ
び、 (ii) エンベロープがホールド状態かどうかを示すフ
ラグ(EF3)の情報を含むことを特徴とする楽音合成装
置。 9.特許請求の範囲第1項に記載の楽音合成装置におい
て、 上記エンベロープフラグは、 (i) エンベロープのステップ(EF0〜EF2)、 (ii) エンベロープがホールド状態かどうかを示すフ
ラグ(EF3)、 (iii) エンベロープの方向(EF4)、 (iv) エンベロープがステップの節点にいるかどうか
を示すフラグ(EF5)、および、 (v) エンベロープのモード(EF6、EF7) の情報を含むことを特徴とする楽音合成装置。 10.特許請求の範囲第1項に記載の楽音合成装置にお
いて、 上記エンベロープフラグ更新回路は、上記演算の結果と
して、エンベロープ波形のあるステップが完了したと判
定されたときには、エンベロープフラグのステップ情報
であるステップ番号をインクリメントする手段を含むこ
とを特徴とする楽音合成装置。 11.特許請求の範囲第10項に記載の楽音合成装置にお
いて、 上記エンベロープフラグ更新回路は、エンベロープ波形
のステップ完了に際し、エンベロープ波形が節点にいる
ことを表わすノードフラグ(EF5)をエンベロープフラ
グにセットして次のステップのエンベロープ波形の方向
を判定する手段を更に含むことを特徴とする楽音合成装
置。
(57) [Claims] A memory (7), which is controlled by a CPU (3) for monitoring a playing state and synthesizes a musical tone in accordance with the playing state, responds to a command or a command from the CPU and its accompanying data in a predetermined area of the memory. An interface circuit (11) for writing data to the memory, a tone control signal generation circuit (12) for generating a tone control signal such as an envelope using data in the memory, and a tone control signal generated by the tone control signal generation circuit. And a waveform generating circuit (15) for generating a musical tone waveform in accordance with a signal. The memory includes, as a part thereof, (a) an envelope to be written, which is written by the CPU via the interface circuit. Envelope calculation parameters (ER ij , EL ij ) for each step of the waveform
(B) an envelope current value memory for storing the current value (E ij ) of the envelope waveform, and (c) an envelope flag (EF ij ) including the step information of the envelope waveform. An envelope flag memory, wherein the tone control signal generation circuit includes: (d) an envelope flag read circuit for reading an envelope flag from the envelope flag memory; and (e) a step indicated by step information included in the read envelope flag. A parameter readout circuit for reading envelope calculation parameters (ER ij (s), EL ij (s)) from the envelope calculation parameter memory; and (f) reading an envelope current value from the envelope current value memory and reading the read envelope. For calculation An envelope generating circuit for performing an arithmetic operation with the parameter to update the envelope current value, outputting the updated result as a tone control signal, and saving the updated result in an envelope current value memory; and (g) according to the result of the arithmetic operation by the envelope generating circuit. , Update the read envelope flag as appropriate,
An envelope flag updating circuit for saving the updated envelope flag in the envelope flag memory, (h) a flag setting instruction is included in an instruction from the CPU to the interface circuit, and (i) the interface circuit includes: In response to the flag set command, an optional envelope flag, which is data attached thereto, is written to the envelope flag memory, and the envelope flag updating circuit updates the envelope flag updated according to the result of the operation, to the envelope flag memory. A musical sound synthesizer characterized in that it is configured to write in a musical tone. 2. 2. The musical tone synthesizing device according to claim 1, wherein said musical tone control signal generating circuit is configured to execute said envelope flag by said envelope updating circuit when said envelope flag memory is rewritten by a flag setting instruction of said CPU. A tone synthesizer comprising a prohibition circuit (302) for temporarily prohibiting rewriting of a memory. 3. The musical sound synthesizer according to claim 1, wherein a key-off instruction is included in an instruction from said CPU to said interface circuit, and said interface circuit comprises:
In response to the key-off command, a musical sound synthesizer comprising a key-off processing circuit (213 to 226) for reading an envelope flag from the envelope flag memory, changing the envelope flag according to the value, and returning the envelope flag to the envelope flag memory. 4. 2. The musical sound synthesizer according to claim 1, wherein said memory further includes a high release memory for storing high release data (HR ij ) for attenuating an envelope at a high speed. When a high release flag set instruction is given as a set instruction, the interface circuit writes an envelope flag indicating high release data, which is data accompanying the high release flag set instruction, to the envelope memory, and reads the parameter. If the circuit indicates that the read envelope flag indicates high release data,
A musical sound synthesizer for reading high release data from the high release memory in place of the envelope calculation parameter memory. 5. 2. The musical tone synthesizer according to claim 1, wherein said envelope calculation parameters comprise an envelope plate (ER ij ) and a target level (EL ij ). 6. 2. The musical tone synthesizer according to claim 1, wherein said waveform generating circuit generates a musical tone waveform of each of a plurality of tone generation channels by a time-division operation of a plurality of modules. A musical sound synthesizer characterized by receiving a key code and an envelope for each module provided from a signal generation circuit. 7. 7. The tone synthesizer according to claim 6, wherein the envelope flag memory and the envelope current value memory respectively store an envelope flag and an envelope current value for each sounding channel and for each module, and the envelope calculation parameter memory includes: A musical tone synthesizer characterized by storing parameters for envelope calculation for each sound channel, each module, and each envelope step. 8. In tone synthesis apparatus according to paragraph 1 the claims, the envelope flag, (i) an envelope of step (EF 0 ~EF 2), and a flag indicating whether (ii) envelope hold state (EF 3 ) A tone synthesizer characterized by including the information of 3 ). 9. In tone synthesis apparatus according to paragraph 1 the claims, the envelope flag, (i) an envelope of step (EF 0 ~EF 2), ( ii) an envelope a flag indicating whether the hold state (EF 3) , (Iii) the direction of the envelope (EF 4 ), (iv) a flag indicating whether the envelope is at the node of the step (EF 5 ), and (v) the mode of the envelope (EF 6 , EF 7 ). A tone synthesizer characterized by the following. 10. 2. The musical tone synthesizer according to claim 1, wherein the envelope flag updating circuit is a step which is step information of the envelope flag when it is determined that a certain step of the envelope waveform is completed as a result of the calculation. A tone synthesizer comprising means for incrementing a number. 11. In tone synthesis apparatus as claimed in Claims paragraph 10 claims, the envelope flag updating circuit, upon completing step of the envelope waveform, the node flag indicating that the envelope waveform is in the node a (EF 5) set the envelope flag Further comprising means for determining the direction of the envelope waveform in the next step.
JP62249469A 1987-10-02 1987-10-02 Music synthesizer Expired - Fee Related JP2718039B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62249469A JP2718039B2 (en) 1987-10-02 1987-10-02 Music synthesizer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62249469A JP2718039B2 (en) 1987-10-02 1987-10-02 Music synthesizer

Publications (2)

Publication Number Publication Date
JPS6491196A JPS6491196A (en) 1989-04-10
JP2718039B2 true JP2718039B2 (en) 1998-02-25

Family

ID=17193421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62249469A Expired - Fee Related JP2718039B2 (en) 1987-10-02 1987-10-02 Music synthesizer

Country Status (1)

Country Link
JP (1) JP2718039B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6145290A (en) * 1984-08-09 1986-03-05 カシオ計算機株式会社 Electronic musical instrument
JPS61162092A (en) * 1985-01-10 1986-07-22 セイコーインスツルメンツ株式会社 Musical sound generator

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6145290A (en) * 1984-08-09 1986-03-05 カシオ計算機株式会社 Electronic musical instrument
JPS61162092A (en) * 1985-01-10 1986-07-22 セイコーインスツルメンツ株式会社 Musical sound generator

Also Published As

Publication number Publication date
JPS6491196A (en) 1989-04-10

Similar Documents

Publication Publication Date Title
US3844379A (en) Electronic musical instrument with key coding in a key address memory
JPS59220796A (en) Electronic musical instrument
JPS6133199B2 (en)
JPS6254294A (en) Transposition data setter for keyed instrument
JP2718039B2 (en) Music synthesizer
US4562763A (en) Waveform information generating system
JP2527652Y2 (en) Music synthesizer
JP2753511B2 (en) Music synthesizer
JP2722460B2 (en) Music synthesizer
JPH0738956Y2 (en) Music synthesizer
JPH0738955Y2 (en) Music synthesizer
JPS6042955B2 (en) Wave generator for electronic musical instruments
JPS6113239B2 (en)
JPS6048760B2 (en) Note clock generator for electronic musical instruments
JPH0750799Y2 (en) Tone phase synchronizer
JPS5842478B2 (en) Noise removal device for electronic musical instruments
JPS593484A (en) Automatic rhythm performer
JP3116447B2 (en) Digital signal processor
JPS58114098A (en) Electronic musical instrument
JPS6330638B2 (en)
US4936179A (en) Electronic musical instrument
JPS6374100A (en) Electronic musical instrument
JPH02127694A (en) Automatic playing device
JPS6042952B2 (en) Wave generator for electronic musical instruments
JPH0210556Y2 (en)

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees