JP2722460B2 - Music synthesizer - Google Patents

Music synthesizer

Info

Publication number
JP2722460B2
JP2722460B2 JP62249470A JP24947087A JP2722460B2 JP 2722460 B2 JP2722460 B2 JP 2722460B2 JP 62249470 A JP62249470 A JP 62249470A JP 24947087 A JP24947087 A JP 24947087A JP 2722460 B2 JP2722460 B2 JP 2722460B2
Authority
JP
Japan
Prior art keywords
circuit
control signal
tone
envelope
generation 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
JP62249470A
Other languages
Japanese (ja)
Other versions
JPS6491197A (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.)
KASHIO KEISANKI KK
Original Assignee
KASHIO KEISANKI KK
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 KASHIO KEISANKI KK filed Critical KASHIO KEISANKI KK
Priority to JP62249470A priority Critical patent/JP2722460B2/en
Publication of JPS6491197A publication Critical patent/JPS6491197A/en
Application granted granted Critical
Publication of JP2722460B2 publication Critical patent/JP2722460B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 [発明の技術分野] この発明は楽音合成装置に関し、特に楽音を合成する
音源部のアーキテクチャー技術に関する。 [発明の背景] 従来の代表的な楽音合成システムでは汎用マイクロコ
ンピュータ等で構成されるCPUに、演奏入力装置の演奏
状態を検出し、音源部に所要データを転送する等の制御
機能をもたせ、音源部にはCPUからの転送データを基に
楽音を合成する合成機能をもたせている。一般に、音源
部は波形の生成に必要なパラメータ(エンベロープや位
相データ等の楽音制御信号)を生成する楽音制御信号生
成部との生成部からのパラメータを使って楽音波形の演
算を実行する波形生成部を備えている。楽音波形は可聴
周波数の範囲を考慮すると、少なくとも40KHz程度のサ
ンプリング速度を必要とする。また、ポリフォニックタ
イプの場合、ポリフォニック倍の速度で1つの楽音波形
のサンプルを生成しなければならない。例えば、8音ポ
リフォニックの場合、1音当りのサンプリング速度は約
320KHzであり、時間にして、約30μsecである。さら
に、1つの音を複数の成分から合成するとすれば、数マ
イクロ秒で各成分を演算しなければならない。この程度
の速度になると、今日の汎用回路技術では処理が不可能
である。このため、従来技術では波形生成回路を専用回
路で構成するとともに、楽音制御信号を生成する回路も
複数の個別メモリと個別の専用回路で実現している。例
えば、エンベロープの生成のためには、CPUから与えら
れるエンベロープレベル(目標値)、レート(傾き)等
のエンベロープデータを記憶する個々のメモリ、エンベ
ロープデータの変更データとしてCPUから与えられるデ
ータを記憶する個々のメモリ、エンベロープデータをエ
ンベロープ変更データにより変更するための専用回路、
変更されたエンベロープデータを使ってエンベロープを
更新するための専用回路、更新されたエンベロープを目
標値と比較してエンベロープのステップの更新条件を検
出するための専用回路などが必要である。一般に、これ
らの専用回路は並列あるえはパイプライン形式で動作
し、これによって所要の速度を達成している。しかしな
がら、多数の専用内部メモリと専用回路とを必要とする
従来アーキテクチャーは、必然的に回路規模の犠牲の上
に成り立っている。そして、楽音合成機能を高めること
が楽音合成装置の一般課題である以上、今後、さらに大
規模化して行くことが避けられない。 従来の楽音合成装置の一例が特公昭60−42955号に示
されている。この公報の装置では、楽音制御信号生成部
が、各エンベロープステップの長さを記憶するための専
用メモリ、ステップの長さの完了を計測するための専用
回路、各ステップのエンベロープレートデータを記憶す
る専用メモリ、エンベロープレートデータを累算してエ
ンベロープを演算するための専用回路とエンベロープを
記憶する専用メモリ、位相データのレートを記憶するた
めの専用メモリ、位相データのレートを累算して位相デ
ータを演算するための専用回路と位相データを記憶する
ための専用メモリ等から構成されており、各専用回路は
同時に並列動作するようになっている。1発音チャンネ
ル当りの時間は1マイクロ秒である。 今後、一層強力な楽音合成能力が求められて行く以
上、回路規模の増大化の問題を解決する必要があるが、
その場合、処理速度の問題をも克服しなければならな
い。 [発明の目的] したがって、この発明の目的は、ハードウェア構成が
小さくて済み、しかも速度上も問題のない新しいアーキ
テクチャーをもつ楽音合成装置を提供することである。 [発明の要点] 本発明によれば、演奏入力装置(1,2)の演奏状態を
モニターするCPU(3)によって制御され、演奏状態に
したがって、楽音を合成するため、メモリ(7)と、上
記CPUから転送されるデータを上記メモリに書き込むイ
ンタフェース回路(11)と、上記メモリを演算バッファ
として利用して楽音制御信号を生成する楽音制御信号生
成回路(12)と、上記楽音制御信号生成回路により生成
された楽音制御信号にしたがって楽音波形を生成する波
形成形回路(15)とを備えた楽音合成装置において、 (A)上記楽音制御信号生成回路の動作速度が、上記波
形生成回路の動作速度より低速であり、 (B)上記楽音制御信号生成回路と上記波形生成回路と
の間に速度調整回路を設け該速度調整回路にて、上記楽
音制御信号生成回路から低速周期で与えられる上記楽音
制御信号を、上記波形生成回路の動作に同期した高速周
期の楽音制御信号に変換し、 (C)上記楽音制御信号生成回路が、共通化された演算
回路(308)と、当該共通化された演算回路の動作、お
よび、演算バッファとしての上記メモリに対するリード
/ライトアクセスを制御するための制御回路(301〜30
5,307)とを有し、上記共通化された演算回路が、上記
制御回路の制御の下で、一連の動作シーケンス(第20A
図)を繰り返し実行し、当該動作シーケンスに含まれる
各演算ステップで、各別の演算を逐次実行し、かつ、所
定のステップ(14P,0)で。上記楽音制御信号を生成出
力するように構成され、 上記速度調整回路が、 (B1)少なくとも波形生成回路の動作速度以上の速度に
対応する周期にて交番するパルス信号を発生するパルス
信号発生回路と、 (B2)前記楽音制御信号生成回路により生成された楽音
制御信号を一時的に記憶する一時記憶メモリと、 (B3)前記楽音制御信号生成回路からの楽音制御信号を
受け入れ、これを前記一時記憶メモリに書き込む書き込
み回路とを備え、 (B4)前記パルス信号が第1の状態のときに、前記書き
込み回路による楽音制御信号の書き込みが許可され、前
記パルス信号が第2の状態のときに、前記波形成形回路
による楽音制御信号の読み出しが許可されることを特徴
とする楽音合成装置が提供される(特許請求の範囲第1
項)。 一構成例において、上記共通化された演算回路手段
は、上記波形生成回路手段におくるエンベロープの生成
のために、 (A)エンベロープレート変更データ(ERCj)によるエ
ンベロープレート(ERij(s))の変更、 (B)変更されたエンベロープレートによるエンベロー
プ値の演算、 (C)エンベロープレベル変更データ(ELCj)による目
標値(ELij(s))の変更、 (D)演算されたエンベロープ値が目標値に到達したか
否かの判別、 (E)演算されたエンベロープ値が目標値に到達した場
合のエンベロープステップ(S)の更新、 を実行する(第2項)。 一構成例において、上記共通化された演算回路手段
は、上記波形生成回路手段に送る合成キーコードの生成
のために、 (A)ピッチエンベロープデータ(ERpj(s),(E
pj(s))によるピッチエンベロープ(PEj)の演算、 (B)演算されたピッチングロープとキーコード(KC
j)とによる合成キーコードの演算、 を実行する(第3項)。 一構成例において、上記インターフェース回路手段と
上記楽音制御信号生成回路手段と上記波形生成回路手段
は音源回路チップ手段上に形成され、上記メモリはこの
音源回路チップ手段上に形成され、上記メモリはこの音
源回路チップ手段の外部に設けられた外部RAMである
(第4項)。 一構成例において、上記波形生成回路手段は、複数の
発音チャンネルにおける各チャンネルの楽音波形を複数
のモジュールの時分割動作で生成するものであり、入力
として上記楽音制御信号生成回路手段から出力されるチ
ャンネル別、モジュール別のキーコードとエンベロープ
を受け取る(第5項)。 一構成例において、上記演算回路手段は一連の動作シ
ーケンス(第20A図)をチャンネル数×モジュール数の
回数だけ繰り返すことで全てのチャンネルの全てのモジ
ュールについてのエンベロープとキーコードのサンプル
を生成する(第6項)。 さらに、本発明によれば、演奏入力装置(1,2)の演
奏状態をモニターするCPU(3)によって制御され、演
奏状態にしたがって、楽音を合成するため、メモリ
(7)と、上記CPUから転送されるデータを上記メモリ
に書き込むインタフェース回路(11)と、上記メモリを
演算バッファとして利用して楽音制御信号を生成する楽
音制御信号生成回路(12)と、上記楽音制御信号生成回
路により生成された楽音制御信号にしたがって楽音波形
を生成する波形生成回路(15)とを備えた楽音合成装置
において、 (A)上記楽音制御信号生成回路の動作速度が、上記波
形生成回路の動作速度より低速であり、 (B)上記楽音制御信号生成回路と上記波形生成回路と
の間に速度調整回路を設け、該速度調整回路にて、上記
楽音制御信号生成回路から低速周期で与えられる上記楽
音制御信号を、上記波形生成回路の動作に同期した高速
周期の楽音制御信号に変換し、 (C)上記楽音制御信号生成回路が、 共通化された演算回路(308)と、 当該共通化された演算回路の動作、および、演算バッ
ファとしての上記メモリに対するリード/ライトアクセ
スを制御するための制御回路(301〜305,307)とを有
し、 上記制御回路が、カウンタ(303)、演算用アドレス
生成回路(301)、および、動作制御信号発生回路(30
5,307,304)を有し、 (a)上記カウンタが、所定の基本クロック(CKQ)を
カウントしてカウンタ出力信号を発生し、 (b)上記動作制御信号発生回路が、上記カウンタから
のカウンタ出力信号の少なくとも一部、および、上記演
算回路からの演算フラグ信号(F′,EO,MO 0,AE)を受
けて動作制御信号を発生し、 (c)上記演算用アドレス生成回路が、上記カウンタ回
路からカウンタ出力信号の一部、および、上記動作制御
信号発生回路からの動作制御信号の一部を受けて上記メ
モリに対するアドレス信号(BA 0〜BA11)を発生し、 (d)上記演算回路が、上記動作制御信号発生回路から
の制御信号の少なくとも一部を受けて一連の演算動作を
逐次実行して上記楽音制御信号を生成出力し、かつ、 上記速度調整回路が、 (B1)少なくとも波形生成回路の動作速度以上の速度に
対応する所定の周期にて交番するパルス信号を発生する
パルス信号発生回路と、 (B2)前記楽音制御信号生成回路により生成された楽音
制御信号を一時的に記憶する一時記憶メモリと、 (B3)前記楽音制御信号生成回路からの楽音制御信号を
受け入れ、これを前記一時記憶メモリに書き込む書き込
み回路とを備え、 (B4)前記パルス信号第1の状態のときに、前記書き込
み回路による楽音制御信号の書き込みが許可され、前記
パルス信号が第2の状態のときに、前記波形成形回路に
よる楽音制御信号の読み出しが許可されることを特徴と
する楽音合成装置が提供される(第7項)。 一構成例において、上記楽音制御信号生成回路手段
(12)は、一連の動作シーケンス(第20A図)を発音チ
ャンネル数×モジュール数の回数だけ繰り返すことです
べての発音チャンネルの全てのモジュールに関する楽音
制御信号のサンプルを時分割で生成し、 上記波形生成回路手段は各発音チャンネルの楽音波形
を上記楽音制御信号生成回路手段からの、当該発音チャ
ンネルに属する各モジュールの楽音制御信号に基づき、
時分割生成する(第8項)。 一構成例において、上記カウンタ手段は、 (a)モジュール番号を表す第1のカウンタ出力部分を
発生する第1カウンタ手段(第18図の311)、 発音チャンネル番号を表わす第2のカウンタ出力部分
を発生する第2カウンタ手段(310)及び、 上記一連の動作シーケンスにおける動作ステップ番号
を表わす第3のカウンタ出力部分を発生する第3カウン
タ手段(309) を含む(第9項)。 ここに、上記第1と第2のカウンタ手段からのモジュ
ール番号を表わす第1のカウンタ出力部分(BC8−BC1
1)とチャンネル番号を表わす第2のカウンタ出力部分
(BC5−BC7)は上記演算用アドレス生成回路手段(30
1)に入力されて当該モジュール、チャンネルデータを
上記メモリにリード/ライトするためのアドレス生成に
利用される(第10項)。また、上記第3カウンタ手段か
らの動作ステップ番号を表わす第3のカウンタ出力部分
(BC0〜BC4)は上記動作制御信号発生回路手段(305)
に入力されて当該動作ステップにおける動作制御信号の
生成に利用される(第11項)。 一構成例において、上記演算回路手段は、一連の動作
シーケンス(第20A図)における第1の動作ステップで
上記演算フラグ信号を発生し、上記動作制御信号発生回
路手段は、上記第1の動作ステップより後の第2の動作
ステップで上記演算フラグ信号を用いてこの第2の動作
ステップのための動作制御信号を発生し、上記演算回路
手段は上記第2の動作ステップのための動作制御信号に
従ってこの第2の動作ステップの演算動作を実行し、上
記第2の動作ステップのための動作制御信号は先行する
上記第1の動作ステップで発生した上記演算フラグの状
態に依存して異なるパターンで発生し、その結果、上記
演算回路手段の第2の動作ステップでの演算動作はその
態様が先行する第1の動作ステップで発生した上記演算
フラグの状態に依存して異なる(第12項) 一構成例において、上記演算フラグ信号は複数の演算
フラグ信号から成り、上記演算回路手段は、個々の演算
フラグ信号を上記メモリからのデータに従って、または
データの演算結果に従って発生する(第13項)。 [発明の作用、展開] エンベロープ信号や位相信号のような楽音制御信号
は、その性質上、比較的低速でしか変化しない。この発
明はこの点に着目したものであり、楽音制御信号を生成
するための楽音制御信号生成回路手段については、制御
信号の生成に必要な各種演算を共通化された演算回路手
段で実行するようにした。楽音制御信号生成回路手段が
共通化された演算回路手段と制御回路手段とで構成され
る本発明にあっては、演算回路手段は制御回路手段の制
御のもとに、1度に1つの処理を基本的に実行する。こ
の逐次形の処理方式は、個別の専用メモリと専用回路に
よる並列処理方式ないしパイプライン方式に比較して、
速度的には低い。しかし、上述したように、エンベロー
プ等の楽音制御信号は高速では変化しない性質をもって
いるため、速度上の問題は基本的に発生しない。これが
本発明の基本原理である。 そして本発明のアーキテクチャーの場合、演算回路手
段が共通化されるので、ハードウェア構成が大幅に削減
されるという効果がもたらされる。 特許請求の範囲第1項では、楽音制御信号生成手段に
設けた、共通化された演算回路手段は、一連の動作シー
ケンスを繰り返し実行し、この動作シーケンスに含まれ
る各演算ステップで各別の演算を逐次実行し、かつ動作
シーケンス上の所定のステップで楽音制御信号(例え
ば、キーコード、エンベロープ)を生成出力する。 後述する実施例において、一連の動作シーケンスは第
20A図に示される。 代表的には、上記制御回路手段は、演算回路手段をマ
イクロプログラム方式で制御する手段を備えており、マ
イクロプログラムは、一種のROM上に置かれる。演算の
各タイミングにおいて各マイクロコードがROMから読み
出され、このマイクロコードが、回路各部のゲートを制
御したり、演算回路手段内の状態を制御したり、演算用
のメモリのアドレス信号を形成したり、メモリのリード
/ライトの制御信号を規定するのに用いられる。後述す
る実施例の場合、このマイクロプログラムROMは、演算
用タイミング信号発生回路305内に置かれている。 上記演算回路手段は必ずしも、楽音制御信号の生成に
必要なすべての演算を実行する構成でなくてもよく、所
望であれば、例えば、第1の楽音制御信号の生成に必要
なすべての演算は第1の汎用的な演算回路手段で実行
し、第2の楽音制御信号の生成に必要なすべての演算は
第2の汎用的な演算回路手段で行うようにしてもよい。
この場合、1つの共通化された演算回路手段とは、楽音
制御信号の生成のために必要な複数の種類の演算を逐次
的に実行する手段を意味する。 特許請求の範囲第2項の演算回路手段は、楽音制御信
号のうち少なくともエンベロープ信号の生成に必要な各
種演算を実行する手段であり、同第3項の演算回路手段
は楽音制御信号のうち少なくとも位相信号(合成キーコ
ード)の生成に必要な各種演算を逐次的に実行する手段
である。 もっとも、ハードウェア構成を最大限に消滅するため
には、すべての楽音制御信号の生成に必要なすべての演
算を単一の演算回路手段で実行させるのが望ましく、後
述する実施例の場合、エンベロープ信号も位相信号も共
通の1つの演算回路308で生成している。 さらに、音源回路チップに実装するハードウェア構成
を減少させるには、演算用のメモリを、チップ上の外部
に設けることが望ましい。このための構成を特許請求の
範囲第4項に示してある。CPUからの転送データを初め
とする演算用のメモリを外部RAMとすることで、チップ
上のスペースを最大限活用することができる。 第5項では、波形生成回路手段は各発音チャンネルの
楽音波形を複数のモジュールの時分割動作(後述する実
施例の第52図に波形生成回路の時分割動作(8チャンネ
ル×8モジュール)の概略タイムチャートを示してあ
る)で生成するタイプであり、かつ波形生成回路手段
は、楽音制御信号生成回路手段から与えられる、各チャ
ンネルのモジュール毎の楽音制御信号(キーコードとエ
ンベロープ)に基づいて各チャンネルの楽音波形を合成
するものである。 これに関連し、第6項には、複数チャンネル×複数モ
ジュールの時分割動作方式の波形生成回路手段に適合す
る演算回路手段の構成を示してある。第6項において、
一連の動作シーケンスはチャンネル別、モジュール別に
実行される。この一連の動作シーケンスをチャンネル数
×モジュール数の回数分繰り返すのに要する時間は、楽
音制御信号セットの演算周期(楽音制御信号生成回路手
段のサンプリング周期)を定めるものであり、後述する
実施例ではその時間は1.2288msecである(第5図、第19
図参照)。 特許請求の範囲第7項では、共通化演算回路手段の動
作を制御するとともに共通の演算バッファ(作業用メモ
リ)をリード/ライトアクセス制御するための、制御回
路手段の望ましい構成を記載している。この制御回路手
段は、カウンタ手段(303)、演算用アドレス生成回路
手段(301)及び動作制御信号発生回路手段(305、30
7、304)を有し、(a)上記カウンタ手段は所定の基本
クロック(CKQ)をカウントしてカウンタ出力信号を発
生し、(b)上記動作制御信号発生回路手段は上記カウ
ンタ手段からのカウンタ出力信号の少なくとも一部と上
記演算回路手段からの演算信号(F′、EO、MOO、AE)
を受けて動作制御信号を発生し、(c)上記演算用アド
レス生成回路手段は上記カウンタ手段からのカウンタ出
力信号の一部と上記動作制御信号発生回路手段からの動
作制御信号の一部を少なくとも受けて上記メモリに対す
るアドレス信号(BA0〜BA11)を発生し、(d)上記演
算回路手段は上記動作制御信号発生回路手段からの動作
制御信号の少なくとも一部を受けて一連の演算動作を逐
次実行して上記楽音制御信号を生成出力する。 制御回路手段をこのように構成することにより、演算
回路手段の演算動作にフレキシベリティをもたせること
ができる。特に、演算回路手段からの演算フラグ信号
(演算回路手段での演算結果(例えばデータの比較結
果)や演算バッファから読んだデータの状態を表わす信
号)が動作制御信号発生回路手段を介して再び演算回路
手段に(動作制御信号形成で)フィードバックされる構
成であるので、演算回路手段は現在の動作ステップの演
算動作の態様を過去の動作ステップで読み取った演算バ
ッファ上のデータ(CPUからのデータまたは演算中のデ
ータ)や、過去の動作ステップでの演算結果に依存して
変えることができ、分岐処理等が実現される。 第8項は第7項の構成において、波形生成回路手段を
複数発音チャンネル×複数モジュールの時分割動作方式
のものとしたときに適用される構成を示したものであ
る。 第9項、第10項、第11項は、それぞれ、カウンタ手段
の好ましい構成例(演算用アドレス生成手段におけるカ
ウンタ出力の利用の態様)、カウンタ手段と動作制御信
号生成手段との関連性(動作制御信号生成手段における
カウンタ出力の利用の態様)を記載したものである。 第12項(第7項に従属)は、演算フラグ信号に関す
る、演算回路手段と動作制御信号発生手段との間のイン
ターアクション構成を記載したものである。このインタ
ーアクション構成によれば、演算回路手段の現在の動作
ステップにおける演算動作の態様は、過去の動作ステッ
プで発生した演算フラグの状態に依存してコントロール
されることになる。 第13項(第7項に従属)は、演算フラグ信号の発生方
式を記載したものである。 第14項と第15項の発明はそれぞれ、第1項の構成、第
7項の構成に、速度調整機能を付加したものである。 即ち、上記楽音制御信号生成回路手段と上記波形生成回
路手段との間に速度調整手段を設け、この速度調整手段
にて上記楽音制御信号生成回路手段から低速周期で与え
られる上記楽音制御信号を上記波形生成回路手段の動作
に同期した高速周期の楽音制御信号に変換する。 後述する実施例では、演算回路手段(楽音制御信号生
成回路手段)と波形生成回路手段との演算周期の比は、
48対1になっている(第5図参照)。指数変換/位相各
生成回路13(第2図、第45図)に速度調整機能が含まれ
ている(特に速度バッファとしてのエンベロープレジス
タ1002、周波数情報レジスタ1004)。 演算回路手段308から楽音制御信号(キーコード、エ
ンベロープ)のサンプルが生成出力される都度、指数変
換されてレジスタ1002、1004の書き込まれ、各レジスタ
から、波形生成回路手段15に同期するサンプリングレー
トで楽音制御信号サンプルが取り出され、波形生成回路
13に送られる。 [実施例] 第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ならばデータバスD
B0〜DB7のデータをインストラクション、/DがHIGEHな
らばそのインストラクションに付属するデータとして取
込む(第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図に示す
ように基本クロックφ(10MHz)を分周し必要なタイ
ミング信号を作り、外部からのリセット信号▲
▼から内部リセット信号を作るものである。第9図
にその一実施例を示す。10MHzの基本クロックはフリッ
プフロップ233、インバータ235で分周されS0が生成さ
れ、更にフリップフロップ234によってT0が生成され
る。更にアンド237によってφが生成され、フリップ
フロップ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レ
ジスタ1に出力される。また、カウンタ出力Q0、Q1から
2相フリップフロップ250、251、フリップフロップ25
2、インバータ253、アンド254−1〜254−4によってタ
イミング信号T2、T3、CKP、CKQ、CKW、CKRが生成される
(第8図)。また、インバータ255−1〜3、オア256、
アンド257から▲▼、CKLが生成される(第52
図)。また、カウンタA:249のCARRY OUT(カウント値12
7のとき“1")からはアンド258でCKBRTが生成され、こ
の信号は外部からのリセット信号をサンプリングするク
ロックとして用いられるる。クロックCKRTによりフリッ
プフロップ260、261でリセット信号をサンプリングし2
度以上外部リセット信号をアンド262で検出したら内部
リセット信号が生成される。したがって内部リセット信
号は第8図のようななる。その時第17図のカウンタB3
03は同期リセットカウンタなので第8図のようにリセッ
ト後の動作を行なう。 次に、CPU3と音源LSI6のデータメモリである外部RAM7
とをインタフェースするインタフェース/制御部11の動
作を説明する。表1にCPUから転送されるインストラク
ション、データ及び、外部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"、かつT2
が“0"のとき“0"となる。その時、インストラクション
デコーダ154の出力▲▼、WBは“1"、“0"なので、
ノア161の出力は▲▼が“0"、▲▼が“0"のと
きだけ“1"となり、バスD0〜7のクロックインバータ12
2〜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"だから、ノア2
04、オア205、207の右入力は“0"、アンド209、211の右
入力は“1"、オア203の左入力は“0"なので、インスト
ラクションのラッチ146〜153の上位5ビットの反転とな
り、インストラクションの上位5ビットそのものとな
る。以上のように各チャンネル各モジュールあたり1バ
イトのデータの書込みの場合、インストラクションと一
致するアドレスに対して第11図のような書込み用の信号
が生成される。ここで各チャンネルの識別はインストラ
クション下位3ビットでなされるが、モジュールの識別
はインストラクション転送後から何番目のデータかとい
うことをカウンタ191で計数することによって行なわれ
ている。したがって、1つのインストラクションに複数
のデータが後続する連続転送フォーマットにおいて、ど
のデータがどのモジュールに対するデータであるかはイ
ンタフェース/制御部11で自動的に識別されるので、CP
U3はモジュール別にインストラクションを送る必要はな
く転送効率が上る。 次に外部RAM7に書込まれるデータのうち各チャンネル
各モジュールあたり2バイトのデータ(周波数比、キー
コード、モジュレーションレベル/レート、ピッチモジ
ュレーション)の書込み動作を説明する(第12図参
照)。CPU3からのインストラクション書込みに応答し、
▲▼が0になり、それによって、インストラクシ
ョンがラッチ146〜153に取込まれるとともに、カウンタ
191、フリップフロップ186、192〜195がリセットされ
る。フリップフロップ176の出力は“0"となっているの
でナンド172の上入力は“1"、インストラクションデコ
ーダ154の出力WBは“1"なのでナンド172の出力は“0"
となっており、また、ノア167の入力は共に“0"なので
オア168、170、アンド169により、CK12はCKQとなる。CP
U3からのデータの書込みにより、▲▼が“0"→
“1"になると、フリップフロップ114〜121がデータを取
込むと共にフリップフロップ175は“1"を出力し、フリ
ップフロップ176は“1"、インバータ171は“0"、ナンド
172の出力は“1"となる。そのとき、ノア167の上入力
は“1"なのでCK12はCKWとなる。再び▲▼が“0"
→“1"になると、フリップフロップ130〜137は前段のデ
ータを、フリップフロップ114〜121はバスのデータを取
込むと共に、フリップフロップ173の出力は“1"とな
り、フリップフロップ174の出力も“1"となる。が
“1"となるとフリップフロップ173、175はリセットされ
るので、はCKRの2区間だけ“1"となる(∵CK12=CK
W)。インストラクションデコーダ154の出力▲▼は
“1"、IDは“0"であるからナンド182の出力▲▼
は、が“1"の時にT2が“0"の時、すなわち2回“0"と
なる。また、WBが“1"となるので、▲▼が、“0"で
T3が“0"のとき▲▼が“0"の幅でクロックインバー
タ122〜129がデータを出力し、▲▼が“0"でT3が
“1"のとき▲▼が“0"の幅でクロックインバータ13
8〜145がデータを出力する。ここでデータは下位(レベ
ル)、上記(レート)の順でCPUから書込まれるので、
バスD0〜7には上位(レート)、下位(レベル)の順で
データが出力され外部RAM7に入力される。カウンタ191
は、インストラクションデコーダ154の出力▲▼が
“0"なので、が“1"のときのCKWがそのクロックCKCと
なり、0、1、2……と歩進されてモジュール番号を表
わすアドレスAA0〜AA3となる。アドレスAA4〜AA6はイン
ストラクションのラッチ146〜153の下位3ビットの反転
であるからチャンネル番号を示す値“jjj"となる。ま
た、アドレスAA7〜AA11は、インストラクションデコー
ダ154のEFが“0"、WBが“1"だから、T3が“0"のときAA7
を“0"にするインストラクション上位5ビットとなり、
T3が“1"のときAA8〜11がインストラクション上位4ビ
ットでAA7が“1"となる。つまり、2バイトデータの第
1バイトアドレスと第2バイトアドレスの区別はAA7を
繰り換えることにより行なわれる。尚、チャンネルの識
別とモジュールの識別に関してはチャンネル、モジュー
ル当り1バイトのデータ書込みの場合と同様である。こ
こまでの説明から明らかなように、本実施例によれば、
インタフェース/制御部11に転送データのバイト構成を
インストラクションに基づいて識別する手段が組み込ま
れているため、CPU3から音源LSI6に対し、インストラク
ションに可変のバイト構成のデータが後続する可変フォ
ーマットでデータ転送を行なうことができ、ダミーデー
タなしの最適の転送効率を達成できる。 次にインストラクション“フラグセット”について延
べる(第13図参照)。“フラグセット”は外部RAM7にエ
ンベロープフラグをセットする命令である。信号の生
成までは1バイトデータの場合と全く同じである。イン
ストラクションデコーダ154の出力EFが“1"なので、
が“0"→“1"になったとき、アンド183の出力が“1"と
なり▲▼が“0"になった時にリセットされていた
フリップフロップ186の出力は“1"となる。また、イ
ンストラクションデコーダ154の出力▲▼は“1"な
のでカウンタ191のクロックCKCはが“1"の間CKQと一
致し、カウンタ191は歩進される。カウンタ191の値が9
になるとCKRに同期してオア184、ナンド185により、フ
リップフロップ186がリセットされるので、は▲
▼〜▲▼が0〜8の間(CKRの9区間)“1"と
なり、ナンド182の出力▲▼は各カウント値毎T2が
“0"のときに“0"となる。その時、インストラクション
デコーダ154の出力▲▼、WBは“1"、“0"なので、
ノア161の出力は▲▼が“0"、▲▼が“0"のと
きだけ“1"となり、バスD0〜7にはクロックドインバー
タ122〜129の出力が出力される。アドレスAA0〜AA3はカ
ウンタ191の値、アドレスAA4〜AA6はインストラクショ
ンの“jjj"、AA7〜AA11はEFが“1"、WBが“0"だから“0
0110"となる。したがって、インストラクション“フラ
グセット”ではモジュール0〜8に同じデータが自動的
に書込まれることになる。 次にインストラクション“キーオーフ”について述べ
る(第14図参照)。信号▲▼が“0"になるとイン
ストラクションがラッチ146〜153に取込まれるととも
に、カウンタ191、フリップフロップ186、192〜195がリ
セットされる。インストラクションデコーダ154の出力W
Bが“0"なのでは“1"、ノア167の出力は“0"、▲
▼が“0"なのでオア168の出力は“0"となり、従ってCK1
2はCKWと一致する。▲▼が“0"→“1"になると、
フリップフロップ114〜121にデータが取込まれるととも
に、フリップフロップ173は“1"を出力し、は“1"と
なる。が“1"となるとフリップフロップ173、175はリ
セットされるので、はCKRの2区間だけ“1"となる。
また、インストラクションデコーダ154の出力EFが“1"
なのでアンド183の出力はが“1"のときに“1"となる
から、フリップフロップ186の出力は“1"となる。▲
▼が“0"なのでカウンタ191のクロックCKCはが
“1"の間CKWと一致し、カウンタ191は歩進される。カウ
ンタ191の値が9になるとCKRに同期してフリップフロッ
プ186がリセットされるので、が▲▼〜▲
▼が0〜8の間(CKRの18区間)“1"となり、=
“1"のもとで、ナンド182の出力▲▲は▲▼が
“0"のため各カウント毎にT2が“0"、T3が“1"のときに
“0"となる。そのとき、EFは“1"なのでアドレスAA0〜A
A11は“00110jjjiiii"となるが、が“1"でT3が“0"、
T2が“0"のときは、RAM7からのデータが読出されてきて
いる。フリップフロップ213〜216はそのデータのうち下
位4ビットをCKPで取込み、その値が“*000"ならば“0
0000111"に、“0***”ならば“00000111"に“1abc"
ならば“00000abc"をT3が“1"、T2が“0"のとき▲
▼が“0"の幅でバスD0〜7に出力する(ただし、a、
b、cは任意2進数)。尚、後述するがインストラクシ
ョン“フラグセット”、“キーオフ”は、RAM7の中のデ
ータ“エンベロープフラグ”を書き替えるものである。
ここでデータ“エンベロープフラグ”はエンベロープの
ステップ等の現在の状態を示すもので、下位3ビットが
ステップ(0〜7)、4ビット目がサスティン中か否か
のビットである。すなわち、インストラクション“フラ
グセット”はエンベロープフラグをCPU3から直接書込む
命令で、データの下位3ビットにより、どのステップか
らでもエンベロープをスタートさせられるものである。
また、4ビット目をサスティンの値“1"にしてエンベロ
ープフラグを再設定することにより、所望の時点からエ
ンベロープをホールドすることができる。インストラク
ション“キーオフ”は現在のエンベロープフラグのデー
タに応じてデータを再セットする命令で、ステップ0
(0000)のとき、又はエンベロープ終了(1000)でなく
サスティンレベルに到達していないのなら最後のステッ
プ7(0111)へ進め、サスティンレベルにいるのなら
(1abc)、サスティンを解除(0abc)するようになって
いる。 次に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レジスタ上位の出力はいずれか一つ
が選択される。第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(〃) ▲PEM j▼;ピッチエンベロープ下位 j=0〜7(〃) ▲FRM ij▼;周波数比上位 j=0〜7(〃)、j=0
〜7(〃) ▲FRL ij▼;周波数比下位 j=0〜7(〃)、j=0
〜7(〃) MRj;モジュレーションレート j=0〜7(〃) MLj;モジュレーションレート j=0〜7(〃) のように対応している。第20A図のフローで、左側にあ
る数字はタイミングを意味しており、0〜11はカウンタ
1の値のもの、1P〜19はカウンタ3の値が8(ピ
ッチの演算)以外のときのカウンタ1の値12〜19、12P
〜19Pはカウンタ3の値が8(ピッチの演算)のときの
カウンタ1の値12〜19に相当する。 第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)はサステ
ィンポイントのフラグである。そのとき、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)が“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レジスタ下位にある振幅モジュレーション
下位;▲AML j▼のデータをBレジスタ下位にロードす
る。13)振幅感度;MSijをSレジスタにロードする。
次に14)Aレジスタのエンベロープのデータから、
M、Bレジスタ下位のAMDjのデータをMSijに応じて減算
し、最終エンベロープデータとして、指数変換/位相角
生成回路13に転送する。その時Aレジスタ上位にはキー
コード上位;▲KCM j▼をロードしておく。15)Aレジ
スタ下位にキーコード下位;▲KCM 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レジスタにあるピッチモジュレーション;PMD
jを加減算(F2に応じて)し、最終的なピッチのエンベ
ロープ;PEjとしてBレジスタに格納する。そのとき、A
レジスタ上位に振幅モジュレーション上位;▲AMDM j
をロードしておく。13P)振幅モジュレーション下位;
▲AMDL j▼をAレジスタ下位にロードする。14P)モジュ
レーションレート;MRjをMレジスタにロードする。15
P)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、17▲▼、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、17P
F′;A←0+M、(0)に対応し“1"となる。Mは加減
算器440のB入力がMレジスタ出力となる場合に“1"と
なるもので、第20B図の“加減算器B入力”の上位側が
“M"となっているタイミングに“1"となる。SUは加減算
器44の演算を減算形式、すなわち“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"である。そのとき
が“1"すなわちハイリリースでないなら、インバータ
371、インバータ365〜367、バッファ368〜370によりア
ドレスは、 となる。したがってエンベロープフラグにより示される
ステップのエンベロープレート;ERij(s)のアドレス
となる。タイミング5も同様である。もし、が“0"
すなわちハイリリースなら、オア363、アンド364により
アドレスは、 となる。ここでハイリリースの設定はCPUからインスト
ラクション“フラグセット”、データ“10000111"で行
なえば、上のアドレス上位5ビットは“00111"となり、
ハイリリースレート;HRijを示す固有アドレスとなる。
したがってハイリリース時には通常のエンベロープレー
トではなくハイリリースレートが読出され使われること
になる。次に、タイミング2、14、14P、15、15P、
16、16Pのとき、▲▼は“1"、LSIは“0"であるか
ら、インバータ385、386、ノア383、384、クロックノア
382により、アドレスは、 OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0000となる。次に
タイミング7、8のとき、7、8は“1"、▲▼は
“1"、LSIは“0"であるから、モード信号/Iがチャン
ネル独立を示す“1"のとき、インバータ385、386、クロ
ックインバータ381、アンド378〜380により、アドレス
は、 となる。したがって、インストラクション“ピッチモジ
ュレーション”で書込まれたチャンネル別のピッチモジ
ュレーションデータがピッチ演算中のタイミング7、8
で読出され、エンベロープ/キーコード生成回路12内部
で生成されたチャンネル独立の振幅モジュレーションデ
ータがモジュール0〜7演算中のタイミング7、8で読
出されることになる。もし、タイミング7、8でモード
信号/Iがチャンネル共通を表わす“0"ならば、アンド
372〜374、オア375〜377によりアドレスは、 となる。従って、全チャンネル共通の振幅、ピッチモジ
ュレーションデータを読出すことになる。次にタイミン
グ12、12P、13P、17、17P′、17PF′、18P、19P
のときは、▲▼、LSIは“1"なので、インバータ38
5、386、ノア383、384、クロックノア382、アンド378〜
380により、アドレスは、 となる。これは第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からのアドレスでチャンネル、モジュール又
はピッチに相当するビットA40〜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ならば000100010……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への出力用クロックナンド57
9〜593、及びシフト回路438への出力を変更するゲート5
94〜616によって構成されている。信号RBは、データバ
スD0〜7と演算出力L0〜14からのFFへの入力選択、▲
▼はD0〜7を上位側FF572〜578にロードする際に下
位側FF564〜571にオール1を入力する信号である。尚、
下位側FF564〜571にオール1がロードされるのは、▲
▼が“0"でクロックCKBLがでた時である。また、信
号BL′、BM′は、Bレジスタの下位又は上位のデータを
データバスD0〜7に出力するか否かを制御するものであ
る。ゲート群594〜616はシフト回路438への出力データ
を変更するもので、Bが“1"ならBレジスタ上位を出
力、“0"ならばM又はSレジスタをBレジスタ上位のか
わりにシフト回路438へ出力する。B0′が“1"、Bが
“1"ならば出力BI0〜14はオール0となり、B0′が
“1"、Bが“0"ならば、上位7ビットはM又はSレジス
タの出力、下位8ビットはオール0となる。又信号5が
“1"のときはBは“1"なのでB0が“0"ならば出力は1、
BO10、BO9、BO8、0……0となる。これはエンベロープ
レートデータのレンジを広げるためのデータ変換で、BO
11〜BO14によって変換されたデータのシフト又はデータ
加減算の間引き等を行なうことによって、所望範囲のエ
ンベロープの上昇下降速度を得ている。表3にBレジス
タ上位に入っているエンベロープレート;ER6、ER5……E
R0の変換を示す。 第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−ANDj)”のときだけ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−AND
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←ANDj±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、カウンタ655、フ
リップフロップ656〜659、アンド660〜663、オア664は
エンベロープの傾きを変えるために、エンベロープ演算
の間引き信号を発生する回路を形成しており、オア664
の出力が0のとき、演算が間引きされるように▲▼
が“1"となる。表5にエンベロープレートの上位4ビッ
トのデータであるBレジスタ出力▲▼〜▲
▼の値と演算のイネーブル信号▲▼が“0"とな
るカウンタ値の関係を示す。 したがって表3の下部のような演算の間引きが行なわ
れる。 第36図はデータ変更回路439の詳細図である。タイミ
ング12Pのとき、信号12Pは“1"となるから、ゲート回路
666〜677により、出力BI″12〜14は BI″12=▲▼、BI″13=▲▼、 BI″14=BI′12 となる。タイミング12Pの演算は第20A図の動作フローで
は、“B←±A+B(B←±PMDj+Epj)”であり、B
I′0〜14は、Bレジスタ427の出力を左2シフトしたも
のであるから、Bレジスタの出力BI0〜14をデータに対
応させて▲E0 pj▼〜▲E14 pj▼とおくと、加減算決440
のB入力BI′0〜11、BI″12〜14は、 となる。これはピッチのエンベロープのレンジを中心レ
ベル10……0のまわりに1/4に圧縮したことを意味す
る。次に、タイミング18のとき信号18は“1"となる
から、ゲート回路666〜677により出力BI12〜14は BI″12=BI′12、BI″13=BI′13、 BI″14=▲▼ となる。タイミング18の演算は20A図の動作フローで
は“A←A+B(A←KCj+PEpj)”であるから、Bレ
ジスタの出力BI0〜14をデータに対応させて▲PE0 j▼〜
▲PE14 j▼とおくと加減算器440のB入力BI′0〜11、B
I″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(データPMDjのMSB)が“1"
なら正、“0"なら負ということになる。また、7.Pが
“1"、F2が“1"ならばインバータ679、ナンド680、681
によりASが“1"となる。すなわち動作フローに示すピッ
チエンベロープの目標値演算“A←A±M(0)(A←
ELpj(s)±ELCpj)”において、F2が“1"ならばピッ
チのエンベロープレベルデータが中心レベルに対して反
転し、第38図(b)のようなエンベロープとなる
((a)は反転しない場合)。ここに、F2はタイミング
2で取り込まれた▲ERC7 j▼であり、これはキーコード
の変化の方向、すなわち、前回の押鍵と今回の押鍵の位
置関係を表わしている。尚、この時加減算器のLSBの誤
差が出る場合があるが十分小さいので問題ない。したが
って信号▲▼は、加減算器440で演算“*←−A
±*”が行なわれる時“0"となる。信号BSは加減算器44
0のB入力側の符号で▲▼=“0"(タイミング8、1
4、16P)のとき常に“1"である。また、タイミング5
又は8のとき信号5.8が“1"のとき、P又は▲▼
が“1"、が“0"ならば、オア687、ノア686、ナンド68
9により▲▼=▲▼となる(それ以外では
“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、CARRYOUT、出力MSBである。 第40図は動作フローにおける分岐フラグF′の基にな
る信号Fを発生するフラグ発生回路450の詳細図であ
る。クロックCKFはタイミング5、8、15P、16Pのとき
のみ発生するのでその場合のみ考える。まず、が“0"
ならばタイミング5のとき信号5、8が“1"なのでナン
ド714が有効になり、ナンド14の出力はS4′、ナンド715
の出力は▲▼となる。▲▼は“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の出力は意味を
もっている。▲▼はエンベロープフラグなナンド
747より“*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、インバータ75
9、アンド760、オア761により、▲▼=▲▼=
0のとき、すなわちモードがマスクのとき、又は▲
▼=0かつ▲▼=1、すなわち、ステップ0の最
初に“1"となる。尚、ノーマルモードではステップ0の
最初にA入力が0となるため、エンベロープは必ず0か
らスタートすることになる。F′は動作フロー(第20A
図)の分岐のためのフラグで、オア762、763、インバー
タ764、アンド765により、タイミング9以外ではF′=
F、タイミング9では=“0"、かつS3=“0"のときに
F′=F、それ以外でF′=“0"となる。すなわち、タ
イミング9では方向判定中、又はホールド中F′=0、
それ以外ではF′=Fとなる。次に出力BI8〜BI14につ
い説明する。これらはタイミング9のときだけ、エンベ
ロープフラグ制御回路446の出力となる。BI8〜10はS0〜
S2となる。BI11は、=“0"、かつエンベロープフラグ
が“*0***111"でなく、かつF=“1"、F1=“1"の
とき“1"となりそれ以外は、もとの値▲EF3 ij▼とな
る。すなわち、方向判定中でなく、ノーマルモードのス
テップ7でなく、F1(エンベロープレベルの8ビット目
=サスティンフラグ)が“1"のとき到達したら、ホール
ドのフラグ▲EF3 ij▼は“1"となる。BI12は、=“1"
のときF=“0"なら“1"となる。すなわち、=“1"の
とき判定結果が一方向ならば符号ビット▲EF4 ij▼を
“1"にする。また、=“1"、かつF=“0"以外の時
は、ナンド754の出力が“0"すなわちサスティンレベル
到達時にはBI12を“0"とする。また、▲▼=1すな
わちステップの切換わり点にいる時はBI12を0とする。
それ以外ではBI12は元の値▲EF4 ij▼となる。BI13は
=“0"、かつ▲▼=1、かつF=1のとき、すなわ
ち、方向判定中でなく、サスティン中でない時到達した
ら“0"となり、それ以外は“1"となって、ステップの切
換りを示すフラグとなる。レジスタA、Bの上位をRAM7
に書込む時8ビット目には、Sレジスタの8ビット目を
SMSBによって書込む。以上説明したように第42図エンベ
ロープフラグ制御回路はエンベロープフラグに応じた信
号▲▼、、F′、E0を出力するとともにエンベ
ロープフラグの設定を行なう。エンベロープフラグはキ
ーオン後、通常、ステップ0からスタートし(ピッチエ
ンベロープは方向判定後スタート)、到達したらステッ
プに1が加算され、ノードフラグ▲EF5 ij▼をノードを
表わす0にして方向判定を行い、符号フラグ▲EF4 ij
をセットして次ステップをスタートする。もし、到達し
た時サクティンフラグ(エンベロープレベルELij(S)
のMSB)が“1"ならホールド状態となりエンベロープは
固定される。その後キーオフがCPU3から来たらホールド
が解除されて次ステップをスタートする。尚、ループモ
ードでサスティングフラグが最終のステップ7にあった
ら、エンベロープフラグは011*0111→01101111+1=0
1010000となりステップ0に戻るためエンベロープが最
初からくり返される。 以上第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
N)、FF1014〜1019など、インバータ1027、クロックイ
ンバータ1020〜1026、1028〜1033など、及びインバータ
1008、1010、ナンド1009、1011によって構成され、第48
図(a)のタイムチャートのように動作する。カウンタ
1(第18図)はエンベロープ/キーコード生成回路12の
基本タイミングを示しており、FF415〜421(第29図)の
データ出力はタイミング0から切替わる。FF415〜420の
データはエンベロープレジスタ1002、周波数情報レジス
タ1004への書込みチャンネル(DA0〜2)、モジュール
(DA3〜5)を示すアドレスに対応し、T2が0のときの
みDA1〜DA5のデータとなる(DA0は常にFF415の値と対
応)。また、FF1000の出力は第48図のように切替わり、
WEEがタイミング0で“1"となるので、DA0が“0"のとき
(偶数チャンネル)にはナンド1009が“0"となるのでT2
=“0"のときにタイミング信号Wが“1"の巾でENVERAM1
012の所定アドレス(FF416〜420の反転)にデータが書
込まれる。またDA0が“1"のとき(奇数チャンネル)に
はナンド1011が“0"となり、ENVORAM1013にデータが書
込まれる、T2が“1"のときは、アドレスDA1〜5は、タ
イミング信号発生回路159(第6図)の出力C1〜5の反
転であるから、C1〜5の値に対応したチャンネル、モジ
ュールのデータを読出す、バッファ1020〜1026、1028〜
1033、インバータ1027により、T2=“1"のときにはENVE
RAM1012、T2=“0"のときにはENVORAM1013からT2=“1"
で読出されたデータをFF1014〜1019で遅らせたデータが
出力E0〜11となる。したがって、エンベロープレジスタ
1002はエンベロープ/キーコード生成回路12のタイミン
グでデータが書込まれ、インタフェース/制御部11のタ
イミングで読出され、FF1003を介して波形生成回路15に
送られる。 第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
がセレクタ1118で選択され、FF1119、位相角変換回路11
20、シフトレジスタ1121を介して正弦波ROM1122に入力
され、波形信号sinX′となる。尚、位相変換回路1120
は、制御信号の値に従って正弦波に位相歪みを導入する
もので、対応する波形は第51図のようになる。波形信号
sinX′は、シフトレジスタ1136、加算器1137、FF1138を
介した(ゲート回路1135の出力は0とする)エンベロー
プE″と乗算器1124で乗算され、FF1125を介して出力さ
れる。この出力は、楽音として出力される場合は楽音出
力を累算するためのレジスタ(セレクタ1127、FF1128、
ゲート回路1129)からの出力がセレクタ1130、ゲート回
路1131を通ったデータと加減算器1126で加減算される。
第52図に波形生成回路15のタイムチャートを示す。C0〜
5は第6図タイミング信号発生回路159のカウンタ出力
で、C1〜5は第45図エンベロープレジスタ1002、周波数
情報レジスタ1004、第2図OCレジスタ14の読出しアドレ
スになっている。また、その1ビット遅れは、波形形成
回路(第50図)の基本タイミングになっており、6ビッ
ト中下位3ビットがチャンネル、上位3ビットがモジュ
ールの演算に相当している。信号P、X′、E′、
E″、E″sinX′、R′、Rは夫々、モジュール0、チ
ャンネル0の演算からモジュール7、チャンネル7の演
算までの1サイクルのタイミングを示している。波形の
生成は制御信号C0〜9によってセレクタ1118、1127、11
30、1132、ゲート回路1129、1131、1135、位相角変更回
路1120、加減算器1126を制御することによって行なわれ
る。表6にCPUから入力されたOCデータ上位4ビットに
対応する演算で示す(第49図参照)。 これらの演算制御によって、波形が生成される。 以下に波形生成例を示す。ただし、iはモジュールN
o、jはチャンネルNoとする。 1)Ej+1jsin(EijsinPij) オペレーションコードは ij **000000(上位4ビットは010でもよい) i+1j 1001*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ビットは010でもよい) 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′は楽音出力として累算される。以上のようにオペ
レーションコードによって、波形生成が様々に行なわれ
ることによって、多くの音色の楽音を発生できる。出力
波形は生成された波形を順次累算していくが、第52図で
C0〜C5の値が“9"のときに新たな演算サイクルの波形が
FF1128に取込まれるが(出力されない波形=位相となる
の)、その時の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への入力は無音状態
のレベルに維持されるようになっている。 [発明の効果] 以上の説明から明らかなように、この発明では、演奏
入力装置(1、2)の演奏状態をモニターするCPU
(3)によって制御され、演奏状態に従って楽音を合成
するため、メモリ(7)と、上記CPUから転送されるデ
ータを上記メモリ(7)に書き込むインターフェース回
路手段(11)と、上記メモリを演算バッファとして利用
して楽音制御信号の生成を行う楽音制御信号生成回路手
段(12)と、上記楽音制御信号生成回路手段により生成
された楽音制御信号に従って楽音波形を生成する波形生
成回路手段(15)とを備える楽音合成装置において、楽
音制御信号生成回路手段を、共通化された演算回路手段
と、メモリ(演算バッファ)のリード/ライトアクセス
制御及び共通化演算回路手段の動作制御用の制御回路手
段とで構成し、共通化演算回路手段にて一連の演算動作
シーケンスを通じて各種の演算を逐次実行して楽音制御
信号を生成出力しているので、従来の個別メモリ、個別
の専用演算回路というアーキテクチャーに比べ、ハード
ウェア構成を大幅に削減することができる。さらに、演
算機能を増加したり、変更したりする場合にも、演算回
路手段自体にはほとんど変更は不要であり、制御回路手
段に若干の変更を行えばよく、演算の種類の増加に対し
て、ハードウェアの規模が、比例的に増大しないという
利点を有している。
DETAILED DESCRIPTION OF THE INVENTION [Technical Field of the Invention]   The present invention relates to a tone synthesizer, and in particular, synthesizes a tone.
It relates to the architecture technology of the sound source section. [Background of the Invention]   Conventional typical music synthesis systems use general-purpose microcontrollers.
The performance of the performance input device is
Controls such as detecting the state and transferring the required data to the sound source
Function, and the sound source section is based on data transferred from the CPU.
It has a synthesis function for synthesizing musical sounds. Generally, sound source
The parameters required for waveform generation (envelope and position)
Tone control signal generator for generating tone control signals such as phase data)
Performance of musical tone waveform using parameters from generator and generator
It has a waveform generator for performing the calculation. The sound waveform is audible
Considering the frequency range, at least 40KHzDegree of sa
Requires sampling speed. Also polyphonic
In the case of Ip, one musical sound waveform at twice the polyphonic speed
Sample must be generated. For example, 8 sound po
For phononics, the sampling rate per note is about
320KHz, Which is about 30 μsec in terms of time. Further
If one sound is synthesized from multiple components,
Each component must be calculated in microseconds. About this
Is not possible with today's general-purpose circuit technology
It is. For this reason, in the prior art, the waveform generation circuit
And a circuit that generates the tone control signal.
It is realized by a plurality of individual memories and individual dedicated circuits. An example
For example, for envelope generation,
Envelope level (target value), rate (slope), etc.
Individual memory for storing the envelope data of
Data provided from the CPU as rope data change data
Data for each memory and envelope data
Dedicated circuit for changing by envelope change data,
Envelope using the modified envelope data
Dedicated circuit for updating, see the updated envelope
Check the update condition of the envelope step by comparing with the standard value.
A dedicated circuit for the output is required. Generally this
These dedicated circuits operate in parallel or in pipeline form
This achieves the required speed. But
However, many dedicated internal memories and dedicated circuits are required
Traditional architectures necessarily come at the expense of circuit size
Holds. And to enhance the sound synthesis function
Is a general issue for musical sound synthesizers,
Increasing the scale is inevitable.   An example of a conventional tone synthesizer is shown in JP-B-60-42955.
Have been. In the device of this publication, a tone control signal generation unit
Dedicated to remember the length of each envelope step
Memory, dedicated for measuring step length completion
Stores the envelope plate data of the circuit and each step
Dedicated memory and envelope plate data
A dedicated circuit and envelope for calculating the envelope
Dedicated memory to store the phase data rate
Dedicated memory for accumulating the phase data rate and phase data
Dedicated circuit for calculating data and storing phase data
The dedicated circuit is composed of
They operate in parallel at the same time. One pronunciation channel
The time per file is 1 microsecond.   In the future, the need for more powerful music synthesis
Above, it is necessary to solve the problem of increasing the circuit scale,
In that case, the problem of processing speed must be overcome.
No. [Object of the invention]   Therefore, the object of the present invention is to
A new arche that can be small and has no speed issues
An object of the present invention is to provide a musical sound synthesizer having a texture. [The gist of the invention]   According to the present invention, the performance state of the performance input device (1, 2) is changed.
Controlled by the CPU (3) to monitor
Therefore, the memory (7) and the upper
Write data transferred from the CPU to the above memory.
An interface buffer (11) and the above memory
Tone control signal generator that generates tone control signals using
Generated by the circuit (12) and the tone control signal generation circuit.
To generate a musical tone waveform in accordance with the generated musical tone control signal
A tone synthesizer comprising a shaping circuit (15); (A) The operation speed of the tone control signal generation circuit is
It is slower than the operation speed of the shape generation circuit, (B) The tone control signal generation circuit and the waveform generation circuit
A speed adjustment circuit is provided between the
The above musical tone given at a low speed cycle from the sound control signal generation circuit
The control signal is transmitted at high speed in synchronization with the operation of the waveform generation circuit.
To the tone control signal of the (C) The tone control signal generation circuit performs a common operation
Circuit (308) and the operation of the shared arithmetic circuit, and
And read from the above memory as an operation buffer
/ Control circuit for controlling write access (301 to 30
5,307), and the common operation circuit is
Under the control of the control circuit, a series of operation sequences (20A
Figure) is repeatedly executed and included in the operation sequence.
In each operation step, each different operation is executed sequentially, and
At a certain step (14P, 0). Generates the above tone control signal
Configured to power The above speed adjustment circuit, (B1) At least higher than the operation speed of the waveform generation circuit
A pulse that generates an alternating pulse signal at the corresponding cycle
A signal generation circuit; (B2) the tone generated by the tone control signal generation circuit
A temporary storage memory for temporarily storing control signals, (B3) The tone control signal from the tone control signal generation circuit is
Accept and write this to the temporary storage memory
Circuit and (B4) when the pulse signal is in the first state,
Writing of the tone control signal by the
When the pulse signal is in the second state, the waveform shaping circuit
Reading of the tone control signal by the
Is provided (claim 1)
Section).   In one configuration example, the common operation circuit means
Is the generation of the envelope to be sent to the waveform generation circuit means.
for, (A) Enhancement using envelope plate change data (ERCj)
Change of Numbello plate (ERij (s)), (B) Envelope with modified envelope plate
Calculation of loop values, (C) Envelope based on envelope level change data (ELCj)
Change of the standard value (ELij (s)), (D) Whether the calculated envelope value has reached the target value
Determination of whether or not (E) When the calculated envelope value reaches the target value
Update of the envelope step (S) in case of   (2).   In one configuration example, the common operation circuit means
Generates a composite key code to be sent to the waveform generation circuit means.
for, (A) Pitch envelope data (ERpj (s), (EL
pj (s)) to calculate the pitch envelope (PEj), (B) Calculated pitching rope and key code (KC
j) Calculation of the composite key code with (3).   In one configuration example, the interface circuit means
The tone control signal generating circuit means and the waveform generating circuit means
Is formed on the sound source circuit chip means, and the memory
The memory is formed on the sound source circuit chip means, and the memory
External RAM provided outside the source circuit chip means
(Section 4).   In one configuration example, the waveform generation 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
Output from the musical tone control signal generation circuit means.
Key codes and envelopes for each channel and module
(Section 5).   In one configuration example, the arithmetic circuit means includes a series of operation sequences.
Sequence (Fig. 20A) by dividing the number of channels x the number of modules
Repeat all times for all channels on all channels
Sample envelope and keycode for the module
Is generated (Section 6).   Further, according to the present invention, the performance of the performance input device (1, 2) is improved.
The performance is controlled by the CPU (3) that monitors the playing state.
Memory for synthesizing musical sounds according to the playing state
(7) and transferring the data transferred from the CPU to the memory
Interface circuit (11) that writes to
A musical tone control signal is generated using the arithmetic buffer.
A sound control signal generation circuit (12);
Tone waveform according to the tone control signal generated by the path
Tone synthesizer provided with a waveform generation circuit (15) for generating a tone
At (A) The operation speed of the tone control signal generation circuit is
It is slower than the operation speed of the shape generation circuit, (B) The tone control signal generation circuit and the waveform generation circuit
A speed adjustment circuit is provided between the
The above-mentioned musical tone given at a low speed cycle from the musical tone control signal generation circuit.
A high-speed sound control signal synchronized with the operation of the waveform generation circuit
Is converted into a periodic tone control signal, (C) The tone control signal generation circuit includes:   A common operation circuit (308),   The operation of the common operation circuit and the operation
Read / write access to the memory
Control circuits (301 to 305, 307) for controlling the
And   The control circuit comprises a counter (303), an operation address
The generation circuit (301) and the operation control signal generation circuit (30
5,307,304), (A) The counter counts a predetermined basic clock (CKQ)
Counts to generate a counter output signal, (B) the operation control signal generating circuit outputs the signal from the counter;
At least part of the counter output signal of
Operation flag signal (F ', EO, MO 0, AE) from the arithmetic circuit
Generates an operation control signal, (C) The operation address generation circuit is configured to operate the counter
Of the counter output signal from the road and the above operation control
When a part of the operation control signal from the signal generation circuit is received,
Generates address signals (BA0 to BA11) for the memory, (D) the operation circuit is provided from the operation control signal generation circuit
Receiving at least a part of the control signal
Generating and outputting the tone control signal by sequentially executing;   The above speed adjustment circuit, (B1) At least higher than the operation speed of the waveform generation circuit
Generate alternating pulse signals at the corresponding predetermined cycle
A pulse signal generation circuit; (B2) the tone generated by the tone control signal generation circuit
A temporary storage memory for temporarily storing control signals, (B3) The tone control signal from the tone control signal generation circuit is
Accept and write this to the temporary storage memory
Circuit and (B4) When the pulse signal is in the first state, the write
Writing of the tone control signal by the
When the pulse signal is in the second state, the waveform shaping circuit
Reading of the tone control signal by the
A musical tone synthesizer is provided (Section 7).   In one configuration example, the musical tone control signal generation circuit means
(12) generates a series of operation sequences (Fig. 20A).
It is to repeat as many times as the number of channels x the number of modules
Musical sounds for all modules of all pronunciation channels
Generate control signal samples in a time-sharing manner,   The waveform generating circuit means includes a tone waveform of each sounding channel.
From the tone control signal generation circuit means.
Based on the tone control signal of each module belonging to the channel,
Time-division generation (section 8).   In one configuration example, the counter means includes: (A) The first counter output part representing the module number is
First counter means (311 in FIG. 18) which is generated,   A second counter output portion representing a sounding channel number
Second counter means (310) for generating   Operation step number in the above series of operation sequence
A third counter for generating a third counter output portion representing
Data means (309)   (Section 9).   Here, the module from the first and second counter means is provided.
The first counter output part (BC8-BC1
1) and the second counter output part representing the channel number
(BC5-BC7) is the address generation circuit means for operation (30
1) Input the relevant module and channel data
For address generation for reading / writing to the above memory
Used (Section 10). In addition, the third counter means
A third counter output part representing the operation step numbers
(BC0 to BC4) are the operation control signal generation circuit means (305)
Of the operation control signal in the operation step
Used for generation (Section 11).   In one configuration example, the arithmetic circuit means performs a series of operations.
In the first operation step of the sequence (Fig. 20A)
Generates the operation flag signal and generates the operation control signal
The road means is configured to perform a second operation after the first operation step.
This second operation is performed by using the operation flag signal in a step.
Generating an operation control signal for the step;
The means includes an operation control signal for the second operation step.
Therefore, the calculation operation of this second operation step is executed,
The operation control signal for the second operation step precedes.
The state of the operation flag generated in the first operation step
Occurs in different patterns depending on the state,
The arithmetic operation in the second operation step of the arithmetic circuit means
The above operation generated in the first operation step preceding the aspect
Differs depending on the status of the flag (Section 12)   In one configuration example, the operation flag signal includes a plurality of operations.
The arithmetic circuit means comprises a flag signal.
The flag signal according to the data from the memory, or
Occurs according to the result of the data operation (Section 13). [Action and Development of the Invention]   Music control signals such as envelope signals and phase signals
Changes by its very nature only at relatively low speeds. This departure
Akira focuses on this point and generates a tone control signal.
The tone control signal generation circuit means for performing
Arithmetic circuit that commonizes various operations required for signal generation
It is executed in stages. The tone control signal generation circuit means
It is composed of common operation circuit means and control circuit means.
In the present invention, the arithmetic circuit means controls the control circuit means.
Basically, one process is executed at a time under your control. This
The sequential processing method uses separate dedicated memories and dedicated circuits.
Compared with the parallel processing method or pipeline method
Low in speed. However, as mentioned above, the envelope
The tone control signal of the loop has the property that it does not change at high speed.
So there is basically no speed problem. This is
It is a basic principle of the present invention.   In the case of the architecture of the present invention,
Hardware configuration is greatly reduced because stages are shared
This has the effect of being performed.   In claim 1, the tone control signal generating means
The provided common operation circuit means is a series of operation sequences.
Sequence is executed repeatedly and included in this operation sequence.
In each operation step, execute different operations sequentially and operate
A tone control signal (e.g.,
Key code, envelope).   In an embodiment described later, a series of operation sequences
It is shown in Figure 20A.   Typically, the control circuit means operates the arithmetic circuit means.
It is equipped with a means for controlling with the microprogram method.
The microprogram is stored on a kind of ROM. Arithmetic
At each timing, each microcode is read from ROM
This microcode controls the gates of each part of the circuit.
Control, control the state in the arithmetic circuit means,
Forming memory address signals or reading memory
/ Used to define the write control signal. See below
In some embodiments, this microprogram ROM is
It is located in the timing signal generator 305.   The arithmetic circuit means is not necessarily used to generate a tone control signal.
The configuration does not need to execute all necessary operations.
If required, for example, required to generate the first tone control signal
All operations are performed by the first general-purpose arithmetic circuit means
However, all the operations required to generate the second tone control signal are
It may be performed by a second general-purpose arithmetic circuit means.
In this case, one common operation circuit means
Multiple types of operations required for control signal generation
Means means to execute it in a targeted manner.   The arithmetic circuit means according to claim 2 includes a tone control signal.
Each of the signals required to generate at least the envelope signal
Means for executing a seed operation;
Is at least the phase signal (synthetic key
Means for sequentially executing various operations required for generating the code
It is.   However, in order to eliminate the hardware configuration to the maximum extent
Contains all the performances required to generate all the tone control signals.
It is desirable that the arithmetic be performed by a single arithmetic circuit means,
In the embodiment described, both the envelope signal and the phase signal are used.
It is generated by one common arithmetic circuit 308.   Furthermore, the hardware configuration implemented on the sound source circuit chip
In order to reduce the
Is desirably provided. Claimed configuration for this
The range is shown in the fourth section. First, transfer data from CPU
By using external RAM as the memory for the calculation, the chip
You can make the most of the space above.   In the fifth term, the waveform generating circuit means is provided for each sound channel.
Time division operation of a musical tone waveform by a plurality of modules
FIG. 52 of the embodiment shows the time division operation of the waveform generation circuit (8 channels).
A schematic time chart of
Waveform generating circuit means.
Each channel provided from the musical tone control signal generation circuit means.
Tone control signals (key code and
The sound waveform of each channel is synthesized based on the envelope
Is what you do.   In this context, item 6 contains multiple channels x multiple modes.
Joule's time division operation type waveform generation circuit means.
2 shows the configuration of the arithmetic circuit means. In paragraph 6,
A series of operation sequences are channel-specific and module-specific.
Be executed. This series of operation sequence is
× The time required to repeat as many times as the number of modules is
Calculation cycle of sound control signal set (music sound control signal generation circuit
(Sampling period of the stage).
In the embodiment, the time is 1.2288 msec (FIG. 5, FIG. 19).
See figure).   Claim 7 describes the operation of the common operation circuit means.
Operation and a common operation buffer (work memo
Control circuit for read / write access control
The preferred configuration of the road means is described. This control circuit hand
The stage is a counter means (303), an address generation circuit for operation.
Means (301) and operation control signal generating circuit means (305, 30)
7, 304), and (a) the counter means has a predetermined basic
Counts clock (CKQ) and generates counter output signal
(B) the operation control signal generation circuit means
At least a part of the counter output signal from the
Operation signals from the operation circuit means (F ', EO, MOO, AE)
Generates an operation control signal in response to the
Address generation circuit means outputs the counter output from the counter means.
Part of the force signal and the operation control signal generation circuit means.
Receiving at least a part of the operation control signal to the memory
Address signals (BA0 to BA11), and (d)
The operation circuit means operates from the operation control signal generation circuit means.
Receiving at least a part of the control signal, a series of arithmetic operations are sequentially performed.
Next, the tone generation control signal is generated and output.   By configuring the control circuit means in this way, the operation
Add flexibility to the operation of circuit means
Can be. In particular, the operation flag signal from the operation circuit means
(Computation results of the computation circuit means (for example, data comparison
Result) and a signal indicating the state of the data read from the operation buffer.
Operation circuit again via the operation control signal generation circuit means.
Feedback to the means (by forming an operation control signal)
Therefore, the arithmetic circuit means performs the operation of the current operation step.
A calculation bar that reads the operation mode in the past operation steps
Data on the buffer (data from the CPU or data being calculated).
Data) and the operation results of past operation steps
It can be changed, and a branching process or the like is realized.   Item 8 is the configuration of item 7, wherein the waveform generating circuit means
Time division operation method of multiple sound channels x multiple modules
It shows the configuration applied when
You.   The ninth, tenth, and eleventh terms are, respectively, counter means
Of the preferred configuration of the
Mode of using the counter output), the counter means and the operation control signal.
Relationship with signal generation means (in operation control signal generation means
(Utilization of counter output).   The twelfth term (subordinate to the seventh term) relates to the operation flag signal.
Between the arithmetic circuit means and the operation control signal generating means.
It describes the action configuration. This interface
-According to the action configuration, the current operation of the arithmetic circuit means
The mode of the calculation operation in the step is based on the past operation steps.
Control depending on the state of the operation flag generated in the
Will be done.   Clause 13 (subordinate to clause 7) is how the operation flag signal is generated.
It is a formula.   The inventions of the fourteenth and fifteenth aspects are the same as in the first aspect,
The speed adjustment function is added to the configuration of the seventh item. That is, the tone control signal generation circuit means and the waveform generation circuit
Speed adjusting means between the road means and the speed adjusting means;
At a low-speed cycle from the tone control signal generation circuit means.
Operation of the waveform generating circuit means
To a high-speed musical tone control signal synchronized with   In an embodiment to be described later, the arithmetic circuit means (musical tone control signal generation)
The ratio of the operation cycle of the waveform generation circuit means to the calculation cycle
The ratio is 48 to 1 (see FIG. 5). Exponential conversion / phase
The speed adjustment function is included in the generation circuit 13 (FIGS. 2 and 45).
(Especially the envelope resist as a speed buffer)
1002, frequency information register 1004).   A tone control signal (key code,
Each time an envelope sample is generated and output,
Is written to registers 1002 and 1004, and each register
From the sampling rate synchronized with the waveform generation circuit means 15.
The tone control signal sample is taken out by the
Sent to 13. [Example]   FIG. 1 is a functional diagram of an electronic musical instrument according to the present invention. CPU3
Is a general-purpose microcomputer.
Operate 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 musical tones by using it as an arithmetic buffer, DAC (digital
To a digital-to-analog converter 8. Music signal is DAC8
It is converted to an analog signal, amplified by the amplifier 9 and
Sound is emitted by mosquito 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 operations such as embedding and envelope
I do.   First, the operation of the interface / control unit 11 will be described.
Tone data or tone control data from the CPU 3 to the tone generator LSI 6
Data is transferred, but in the sound source LSI 6, the data buses DB0 to DB7
The rising edge of ▲ ▼ when ▲ ▼ is LOW
Capture at the edge. At this time, if / D is LOW, data bus D
Instruction of B0 ~ DB7 data, / D
If it is taken as data attached to the instruction
(See FIG. 4). The instruction will continue
This indicates the type of data to be transferred. interface
/ Control unit 11 is the instruction and data from CPU3
Received the instruction of RAM7 corresponding to the instruction.
Generates dress AA0 ~ 11 and write signal ▲ ▼, external RAM
Data transferred to external RAM 7 via 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 frequency
It is temporarily stored in the number information register. These are external RAM7
To generate amplitude envelopes and composite key codes.
And the exponential conversion is performed at low speed.
An interface for performing subsequent arithmetic processing at high speed
Used as a source buffer. FIG. 5 shows two arithmetic operations.
The low-speed operation cycle is the same as the high-speed operation cycle.
48 times. This is an audible change rate of the output waveform
Waveform computation is expensive because it must be at least twice the frequency
Speed (approximately 40 KHz in this embodiment).
Calculation 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) frequency division and required tie
Signal and an external reset signal ▲
The internal reset signal is generated from ▼. Fig. 9
An example is shown in FIG. 10MHz basic clock
Divided by flop 233 and inverter 235 to generate S0
And the flip-flop 234 generates T0.
You. Further by And 2371Generates and flips
V by flop 239, 2401, W1Is generated. Also,
T1 is generated by the flip-flop 243. these
From the inverters 242, 245, and 244, 246-248
Generates W, ▲ ▼, ▲ ▼, CK1, CK2
(FIG. 7). Counter A: 249 divides clock CK2
A binary counter that changes at the rising edge of CK2. counter
Q out of the output1~ QFiveIs the address signal C for reading1~ CFive
Envelope / key code generation circuit 12 and OC
It is output to the register 1. Also, the counter output Q0, Q1From
Two-phase flip-flops 250, 251, 25
2, the inverter 253, and 254-1 to 254-4
Generates imaging signals T2, T3, CKP, CKQ, CKW, CKR
(FIG. 8). In addition, inverters 255-1 to 35-2, OR 256,
CKL is generated from and257 (▲ 52)
Figure). In addition, CARRY OUT (count value 12
From 7 “1”), CKBRT is generated by AND 258.
This signal is used to sample the external reset signal.
Used as a lock. Flicker by clock CKRT
The reset signal is sampled by the flops 260 and 261 and 2
If the external reset signal is detected by AND262
A reset signal is generated. Therefore, the internal reset signal
The numbers are as shown in FIG. Then the counter B3 in Fig. 17
Since 03 is a synchronous reset counter, reset as shown in Fig. 8.
Perform the operation after the start.   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 the CPU.
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, 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 RAM 7 of each unit,
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
Becomes “0”, the output of NAND 172 always becomes “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 T2
Is "0" when is "0". At that time, instructions
Since the outputs ▲ ▼ and WB of the decoder 154 are “1” and “0”,
The output of Noah 161 indicates that ▲ ▼ is “0” and ▲ ▼ is “0”.
Only when the clock inverter 12 of the buses D0 to D7
Outputs of 2 to 129 are output. The counter 191
Since the output ▲ ▼ of the fraction decoder 154 is “1”,
When CKC is “1”, the clock CKC becomes the clock CKC,
Are incremented to 0, 1, 2,...
192-195, inverted twice with inverters 196-199
Address AA0 to AA3 representing the module number. address
AA4 to AA6 are lower order of instruction latches 146 to 153
A value representing the channel number because it is a 3-bit inversion
It becomes “jjj”. Addresses AA7 to AA11 are
No. 2 because the outputs EF and WB of the action decoder 154 are "0".
04, right input of OR 205, 207 is “0”, right of AND 209, 211
The input is “1” and the left input of OR 203 is “0”.
Inversion of the upper 5 bits of the latches 146 to 153
The upper 5 bits of the instruction
You. As described above, one module per module for each channel
When writing data to a site,
Write signal as shown in Fig. 11 for the matching address
Is generated. Here, the identification of each channel is
The lower 3 bits of the action are used to identify the module.
Is the data number after the instruction transfer
Is performed by counting
ing. Therefore, one instruction can have multiple
In a continuous transfer format followed by
Which module is the data for
Automatically identified by the interface / control unit 11, the CP
U3 does not need to send instructions for each module
Transfer efficiency is improved.   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 “0” because the output WB of the leader 154 is “1”.
And the inputs of Noah 167 are both "0"
CK12 becomes CKQ due to ORs 168, 170, and 169. CP
By writing data from U3, ▲ ▼ becomes “0” →
When it becomes “1”, flip-flops 114 to 121 acquire data.
At the same time, the flip-flop 175 outputs “1”,
Flip-flop 176 is “1”, inverter 171 is “0”, NAND
The output of 172 becomes "1". At that time, input on Noah 167
Is "1", so CK12 becomes CKW. Again ▲ ▼ is “0”
→ When it becomes “1”, the flip-flops 130 to 137
Data and the flip-flops 114 to 121 collect bus data.
At the same time, the output of the flip-flop 173 becomes “1”.
As a result, the output of the flip-flop 174 also becomes “1”. But
When it becomes “1”, flip-flops 173 and 175 are reset.
Therefore, it becomes “1” only for two sections of CKR (∵CK12 = CK
W). The output ▲ ▼ of the instruction decoder 154 is
Since the ID is “1” and the ID is “0”, the output of NAND 182 ▲ ▼
Is when T2 is “0” when is “1”, ie, “0” twice
Become. Also, since WB is “1”, ▲ ▼ changes to “0”.
When T3 is “0”, ▲ ▼ is clock invert at width of “0”.
122-129 output data, ▲ ▼ is “0” and T3 is
When “1”, ▲ ▼ is the width of “0” and the clock inverter 13
8-145 output data. Here, the data is
) And the above (rate) are written from the CPU in this order.
The buses D0 to D7 are in the order of higher (rate) and lower (level)
The data is output and input to the external RAM 7. Counter 191
Is the output ▲ ▼ of the instruction decoder 154
Since it is “0”, CKW when “1” is the clock CKC
, And the module numbers are displayed in increments of 0, 1, 2, ...
Address AA0-AA3. Address AA4 ~ AA6 are in
Inversion of the lower 3 bits of the latch 146 to 153 of the structure
Therefore, the value “jjj” indicating the channel number is obtained. Ma
The addresses AA7 to AA11 are
Since EF of DA154 is “0” and WB is “1”, AA7 when T3 is “0”
Becomes the upper 5 bits of the instruction that sets
When T3 is "1", AA8 ~ 11 are the top 4 instructions
AA7 is set to “1” by the unit. In other words, the second byte data
AA7 is used to distinguish between 1 byte address and 2 byte address
It is performed by repeating. In addition, the knowledge of the channel
For channel identification, module identification
This is the same as the case of writing 1 byte of data per file. This
As is clear from the above description, according to the present embodiment,
Byte structure of transfer data in interface / control unit 11
Built-in means of identification based on instructions
Instruction from the CPU3 to the sound source LSI6.
Variable format followed by variable byte data
Data transfer in dummy format
The optimum transfer efficiency without data can be achieved.   Next, the instruction “Flag set” is extended.
(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”.
It was reset when ▲ ▼ became “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”,
Then, the counter 191 is incremented. The value of the counter 191 is 9
In this case, in sync with CKR,
Since lip flop 186 is reset,
▼-▲ ▼ is between 0-8 (9 sections of CKR) “1”
The output ▲ ▼ of NAND 182 is T2 for each count value.
It becomes “0” when it is “0”. At that time, instructions
Since the outputs ▲ ▼ and WB of the decoder 154 are “1” and “0”,
The output of Noah 161 indicates that ▲ ▼ is “0” and ▲ ▼ is “0”.
Only "1", and clocked inverters on buses D0-7
Outputs of the data 122 to 129 are output. Addresses AA0 to AA3 are
The value of the counter 191 and the addresses AA4 to AA6 are
“Jjj” and AA7 to AA11 are “0” because EF is “1” and WB is “0”.
0110 ". Therefore, the instruction"
Same set automatically for modules 0-8
Will be written to.   Next, I will talk about the instruction "Key Orphan"
(See Fig. 14). When the signal ▲ ▼ becomes “0”,
When the traction is taken into the latches 146-153
The counter 191, flip-flops 186, and 192 to 195 are
Set. Output W of instruction decoder 154
If B is “0”, “1”, the output of NOR 167 is “0”, ▲
Since ▼ is “0”, the output of OR 168 becomes “0” and therefore CK1
2 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.
186 is reset, so ▲ ▼ ~ ▲
▼ is “1” between 0 and 8 (18 sections of CKR), and =
Under “1”, the output of Nand 182
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 is “1” and T3 is “0”,
When T2 is “0”, data is read from RAM7.
I have. The flip-flops 213 to 216
The 4th bit is taken in by CKP. If the value is “* 000”, “0”
0000111 ", if" 0 *** "," 00000111 "is" 1abc "
Then, if “00000abc”, T3 is “1” and T2 is “0” ▲
▼ is output to the buses D0 to D7 with the width of “0” (however, a,
b and c are arbitrary binary numbers). As will be described later, the instruction
The options “Flag Set” and “Key Off” are
Data "envelope flag".
Here, the data "envelope flag"
Indicates the current state of the step, etc., with the lower 3 bits
Step (0-7), 4th bit is sustaining or not
Is a bit. In other words, the instruction “
"Gusset" writes envelope flag directly from CPU3
In the instruction, which step depends on the lower 3 bits of data
Anyone can start the envelope.
The 4th bit is set to the sustain value “1” and the envelope
By resetting the loop flag,
The envelope can be held. Instructor
Option “key off” is the data of the current envelope flag.
Command to reset the data according to the data
Not at (0000) or at the end of the envelope (1000)
If you have not reached the sustain level,
Go to step 7 (0111) and if you are at the sustain level
(1abc), release sustain (0abc)
I have.   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,
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 EFij; Envelope flag i = 0-8 (module, pitch), j = 0-7 (ch
Channel) ERij(S); Envelope plate i = 0 to 8 (〃), j = 0 to 7 (〃), s = 0 to 7 (d)
Envelope step) ERCj; Envelope plate change j = 0-7 (〃) ▲ EM ij▼; Envelope upper i-8 (〃), j = 0
~ 7 (〃) ▲ EiL ij▼; lower envelope i = 0 to 8 (〃), 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 amplitude modulation j = 0-7
(〃) ▲ PMDM j▼; higher pitch modulation j = 0-7
(〃) ▲ PMDL j▼; lower pitch modulation j = 0-7
(〃) MSij; Modulation sensitivity i = 0 to 7 (module), j = 0 to 7 (〃) ▲ KCM j▼; key code upper j = 0 to 7 (〃) ▲ KCL j▼; key code lower j = 0 to 7 (〃) ▲ PEM j▼; upper pitch envelope j = 0 to 7 (〃) ▲ PEM j▼; Lower pitch envelope j = 0 to 7 (〃) ▲ FRM ij▼; high frequency ratio j = 0-7 (〃), j = 0
~ 7 (〃) ▲ FRL ij▼; lower frequency ratio j = 0-7 (〃), j = 0
~ 7 (〃) MRj; Modulation rate j = 0 ~ 7 (〃) MLj; Modulation rate j = 0 ~ 7 (〃) It corresponds as follows. In the flow of Fig.
Numbers indicate timing, and 0 to 11 are counters
For the values 1 and 1P to 19, the value of the counter 3 is 8 (pi
Other than the value of counter 1) 12 to 19, 12P
~ 19P when the value of counter 3 is 8 (calculation of pitch)
This corresponds to the value of the counter 1 of 12 to 19.   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) to A Regis
2) Envelope plate change; ERCjB cash register
Load the upper part (lower at 0 for both A and B)
3) Add them and change the envelope plate
And store it in the B register. Envelope at the same time
Load upper value of current value to upper register A (lower 0)
4) Next, the lower part is loaded into the lower part of the A register, and 5)
EF the current value of the envelopeFourEnvelope changed according to
The envelope by adding or subtracting
Newly stored in the B register. Envelope preve
L; ELij(S) to the upper register of A register (0 to lower register),
6) Envelope level change in M register; ELCijThe low
7) Add or subtract them to change the envelope level.
And store it in the A register. Note that the d set in F1
8th bit of envelope level; ELij(S)7Is sustain
This is the flag of the point. Then, the M register
Is amplitude modulation; AMDj(Performance of modules 0-7
Calculation), or pitch modulation; PMDj(Pitch
(When calculating). 8) Next modified envelope
Subtract the updated envelope from the rope level and
Determine whether the envelope has reached the target value (the
AMD is below the time A registerjOr PMDjLoad the subordinate of
deep). If the envelope has not reached the target value
Becomes F '= “0”, and 9 ▲ ▼) the envelope flag
Register (S register) is not updated and is
The upper part of the stored updated envelope is stored in RAM7
Upper envelope; ▲ EM ijWrite to the address corresponding to ▼
No. If the envelope has reached the target value,
F ′ = “1”, and 9F ′) envelope flag 7 (S
Update the lower 3 bits representing the step
(1 + S), the bit of the “node” is set to “0” and the
Tin flag; ELij(S)7Is “hold” if is “1”
Is set to "1" and stored in the upper register A. That
When the envelope level value is changed
The value is loaded into the B register and the RAM7
Upper level of the envelope; ▲ EM ijWrite to the address corresponding to ▼
No. 10) Regardless of whether you arrive next or not,
The lower stage contains the envelope lower data to be stored.
The lower part of the RAM7 envelope;L ij
Write to address ▼. However, the bit of the node is a node
In the case of “0” indicating
By comparing the current value of the envelope with the target value.
To determine the direction in which the envelope should travel, and
Is set. Envelope as explained above
The basic operation is to advance the envelope at each node of the step.
Judge the direction, a) Changing the envelope plate level b) Updating the envelope c) Determining whether or not the target level has been reached d) Envelope current value storage 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; ▲ AML 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; ▲ KCM 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; PMD
jIs added or subtracted (according to F2), and the final pitch envelope
Rope; PEjIn the B register. Then A
Upper amplitude modulation upper register; ▲ AMDM j
Is loaded. 13P) Lower amplitude modulation;
▲ AMDL jLoad ▼ to the lower part of the A register. 14P) Module
Translation rate; MRjInto the M register. Fifteen
P) AMDjMRjAddition and subtraction according to F2
Option level; MLjInto the M register. 16P)
Amplitude modulation; AMDjUpdated values and modula
Compare the level of the envelope (then the envelope of the pitch)
RAM7: PE of RAM7M j▼). Amplitude modulation
Is the target value; MLjIf not, 17P ▲ ▼)
Lower pitch envelope PEL jWrite ▼ to RAM7
If reached, 17PF ') target value; MLjInto the A register
Load and ▲ PEL jWrite ▼ to RAM7. A cash register
Amplitude modulation data that does not exceed the target value of the star
Write to 18P) upper, 19P) lower and RAM7. In addition, 20P ~ 31P
This is a NOP for adjusting the operation timing. here,
Amplitude modulation is provided by the CPU
Absolute value of the difference between the detection amount of the switch and the previous detection amount; MRj, Mark
No .; MR7 j▼ and this time detection amount; MLjData (see Figure 21)
Is generated by interpolation based on
You.   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, 17 ▲ ▼, 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 envelope instead of original address 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, 17P
F '; A ← 0 + M, “1” corresponding to (0). 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 44 is performed in a subtraction form, that is, "AB" or "AM".
20A, 14; A-M in the flow of FIG. 20A.
(BL), 16P; A-M (0) becomes "1". SF2 is an adder / subtractor
The B input side code of 440 is the value of F2, which will be described later.
Thus, 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 outputs BC8-11 of the counter B303, BA4
5 to 5 are BC5 to 7, BA7 to 11 are calculation timing signal generation times.
It corresponds to the address output OA0 to OA4 of the path 305. Then special
Think about the case. At timing 1, the signal is 0
It is. OA4 is also “1” from FIG. 20B. then
7If "1" is not high release, the inverter
371, inverter 365-367, buffer 368-370
The dress is Becomes Therefore indicated by the envelope flag
Step Envelope Plate; ERij(S) address
Becomes The same applies to timing 5. if,7Is “0”
In other words, if it is a high release, OR 363, and 364
The address is Becomes Here, the high release setting is installed from the CPU.
Line with action "flag set" and 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   OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0000 next
At timings 7 and 8, 7 and 8 are “1” and ▲ ▼ is
Since “1” and LSI are “0”, the mode signal / I
When “1” indicating channel independence, inverters 385 and 386
By the inverter 381, and 378-380
Is 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 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 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, register A
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". “▲ ▼” indicates the output of the A register
100000000000000, pitch envelope
According to the signal E0 that masks the current envelope value during operation.
It is set to “0” by NAND400.   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 envelope flag to
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 A40-6 corresponding to 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
-Channels and modules calculated by the code generation circuit 12
The same channel, the same module or
When writing the pitch envelope flag, it becomes “0”.
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, ▲ ▼ is low to upper FF493-499 of D0-7
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, ▲ ▼ is 0, 000100010 ... 0 (Fig. 20A
Update processing of envelope steps in the operation flow 9
F '; AM← 1 + s), if ▲ ▼ is "0",
From Fig. 25, A0 'is 1, so 10 ... 0 (Pitch envelope
Start data).   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
Clock NAND for output 0 to 562 and data D0 to D57
9 to 593, and a gate 5 for changing the output to the shift circuit 438
94-616. The signal RB is
Input to FF from source D0 ~ 7 and operation output L0 ~ 14, ▲
▼ lower when loading D0-7 to upper FF572-578
This is a signal for inputting all 1 to the lower FFs 564 to 571. still,
All 1s are loaded to lower FF564-571 because ▲
▼ is “0” and the clock CKBL is output. Also,
Nos. BL 'and BM' transfer lower or upper data of the B register.
It controls whether or not to output to the data buses D0 to D7.
You. Gate groups 594 to 616 are output data to shift circuit 438
If B is "1", the upper register is output.
If "0", M or S register is higher than B register
Instead, they are output to the shift circuit 438. B0 'is "1", B is
If "1", the 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,
BO10, BO9, BO8, 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…… E
R0This 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−ANDj) "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), 8 shifts left (× 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−AND
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 ← ANDj± 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”, ie during hold, or “1”, ie
Envelope is at the point of step switching and should proceed
“1” when the direction is being determined, and the envelope is fixed
Let it. In addition, inverters 651 to 654, counter 655,
Lip flops 656-659, and 660-663, or 664
Envelope calculation to change the slope of the envelope
Or a circuit that generates a thinning signal.
When the output of is 0, ▲ ▼
Becomes “1”. Table 5 shows the upper 4 bits of the envelope plate.
B register output ▲ ▼ to ▲
The value of ▼ and the enable signal ▲ ▼ for operation become “0”.
FIG.   Therefore, the thinning operation as shown in the lower part of Table 3 is performed.
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 = ▲ ▼,   BI ″ 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▼ Addition / subtraction decision 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, the signal 18 becomes "1".
Output from 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 Figure 20A.
Is "A ← A + B (A ← KCj+ PEpj) "
▲ PE0 j▼ ~
▲ PE14 j▼ B input BI'0-11, B of adder / subtractor 440
I ″ 12-14 is Becomes This is centered on the final pitch envelope
Positive above level, negative 2's complement below
And Ie this is the key code; KCjWhen adding to
And the final pitch envelope around 10 ... 0
And if it is larger, add the difference.
This is equivalent to subtracting the difference, which is reflected in the key code.
Symmetrical pitch envelope around the center level
ing.   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”
If it is positive, "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”,
Of the envelope level data
Roll to form an envelope as shown in Fig. 38 (b).
((A) does not reverse). Where F2 is the timing
▲ ERC captured in 27 j▼ is the key code
Direction of change, i.e., the position of the previous key press and the current key press
It shows the positional relationship. At this time, the LSB of the adder / subtractor is incorrect.
There may be a difference, but there is no problem because it is small enough. But
The signal ▲ ▼ is calculated by the adder / subtracter 440 as “* ← −A
It becomes “0” when ±± is performed.
At the B input side code of 0, ▲ ▼ = “0” (timing 8, 1
It is always "1" at (4, 16P). Timing 5
Or, when the signal 5.8 is "1" at the time of 8, P or ▲ ▼
If “1” and “0”, OR 687, Noah 686, Nand 68
9 makes ▲ ▼ = ▲ ▼ (Otherwise,
“1”). That is,   5.8; Envelope update or between envelope and target value
Comparison   PV ▲ ▼: When calculating pitch or other than step 0   = "0"; The direction cannot be determined at the step switching point.
Time (described later) 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, CARRYOUT, 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
Command 714 is enabled, the output of NAND 14 is S4 ', and the output of NAND 715
Is ▲ ▼. ▲ ▼ is “1” so Nan
The lower input of C 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.
Flag F when overflow or underflow occurs.
It is equivalent to setting. 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 the flag 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 loop reaches the target value. Next
If it is “1”, from FIG. 37, ▲ ▼ = “1”, BS = “0”
Become. Also, from FIG. 35, ▲ = “1”. Therefore
At timing 5, “B ← A + 0” is performed. That
At this time, the output of NAND 715 is “1” in FIG.
The flag is not set because “0” and ▲ ▼ are “1”.
No. At timing 8, the output of NAND 715 is "1"
Subtract the current value of the envelope from the target value to increase the target value.
If they are equal (CO = "1"), set the flag F to "1"
You. That is, F = 1 in the + direction and F = in one direction.
Set 0 and flag. Next, except for timings 5 and 8,
In other words, at timings 15P and 16P, the output of NAND 715
The power is ▲ ▼. At timing 15P, ▲
▼ = “0” and CO = “1” or ▲ ▼ = “1” and CO =
“0”, that is, while updating the amplitude modulation data,
If overflow or underflow occurs, reset flag F.
Cut. At timing 16P, ▲ ▼ = "0"
Indicates that CO = "1" or ▲ ▼ = "1" indicates that CO = "0".
While the updated amplitude modulation is rising to the target value.
Set the flag F if it reaches, exceeds, or exceeds while descending.
To As described above, the flag F is set, and the operation
-(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, the 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.
When 13 is the envelope flag and its timing
Only the output of the envelope flag control circuit 446
I have ▲ ▼ is Nand which is an envelope flag
From “747”, “* 0 ** 0000”, that is, the normal mode
It is a signal that becomes 0 at the time of step 0. Is the step
A signal that becomes “1” when the direction is determined at the switching point
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)] ”To input A
Is set to 0, NAND 747, NOR 752, inverter 75
9, and 760, or or 761, ▲ ▼ = ▲ ▼ =
0, that is, when the mode is mask, or ▲
▼ = 0 and ▲ = 1, that is,
It becomes "1" at first. In the normal mode, step 0
Since the A input becomes 0 first, the envelope must be 0
It will start from. F 'is the operation flow (20A
Figure) Flags for branching, OR 762, 763, Invar
7 ′ and AND 765, F ′ =
F, at timing 9 = "0" and S3 = "0"
F '= F, otherwise F' = "0". That is,
At the time of the imaging 9, during the direction determination or during the hold, F '= 0,
Otherwise, F '= F. Next, output BI8 to BI14
I will explain. These are envelopes only at timing 9.
Output from the rope flag control circuit 446. BI8 ~ 10 is S0 ~
It becomes S2. BI11 == "0" and the envelope flag
Is not "* 0 **** 111", and F = "1" and F1 = "1"
When it becomes “1”, otherwise the original value ▲ EFThree ij
You. That is, the direction of the normal mode is not being determined.
F7 (8th bit of envelope level)
= Sustain flag), the hole is reached when it reaches “1”
C flag ▲ EFThree ij▼ becomes “1”. BI12 = “1”
At this time, if F = "0", it becomes "1". That is, = “1”
If the judgment result is one-way, the sign bit ▲ EFFour ij
Set to “1”. In addition, when "1" and other than F = "0"
Indicates that the output of the NAND 754 is "0", that is, the sustain level
At the time of arrival, BI12 is set to “0”. Also, ▲ ▼ = 1
That is, BI12 is set to 0 when it is at the switching point of the step.
Otherwise, BI12 is the original value ▲ EFFour ijIt becomes ▼. BI13
= “0”, ▲ ▼ = 1, and F = 1
, Reached when not in direction judgment and not sustaining
Is set to “0”, otherwise it is set to “1” and the step
This is a flag indicating a change. RAM7 is higher than registers A and B
When writing the 8th bit, the 8th bit of the S register
Write by SMSB. As described above, FIG.
The rope flag control circuit controls the signal according to the envelope flag.
Signals ▲ ▼, F ', E0
Set the rope flag. The envelope flag is
-After turning on, usually start from step 0 (pitch
The envelope starts after the direction is determined.)
Is added to the node flag and the node flag ▲ EFFive ij▼ to node
The direction is determined by setting it to 0, and the sign flag ▲ EFFour ij
To start the next step. If you reach
Sactin flag (envelope level ELij(S)
If the MSB of "1" is "1", it will be in the hold state and the envelope will be
Fixed. Then hold if key-off comes from CPU3
Is released and the next step is started. In addition, loop model
The sustaining flag was in the final step 7
The envelope flag is 011 * 0111 → 01101111 + 1 = 0
It becomes 1010000, and the envelope returns to Step 0.
It is repeated from the beginning.   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 ▲ ▼
Incoming 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
N), 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 written to the specified address of 012 (inversion of FF416 to 420).
Be included. When DA0 is “1” (odd channel)
Indicates that NAND 1011 is “0” and data is written to ENVORAM 1013.
When T2 is "1", addresses DA1 to DA5 are
The outputs C1 to C5 of the imaging signal generation circuit 159 (FIG. 6)
The channel and module corresponding to the value of C1-5.
Read buffer data, buffers 1020 to 1026, 1028 to
1033 and inverter 1027 enable ENVE when T2 = “1”
When RAM1012 and T2 = "0", T2 = "1" from ENVORAM1013
Data delayed by FF1014 to 1019
The outputs are E0 to E11. Therefore, the envelope register
1002 is the timing of the envelope / key code generation circuit 12.
Data is written in the interface / control unit 11
Read out at the same time and sent to the waveform generation circuit 15 via FF1003.
Sent.   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 generated.   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
Is selected by the selector 1118, the FF 1119, the phase angle conversion circuit 11
20, input to sine wave ROM 1122 via shift register 1121
To be a waveform signal sinX '. The phase conversion circuit 1120
Introduces phase distortion into the sine wave according to the value of the control signal
FIG. 51 shows the corresponding waveform. Waveform signal
sinX 'is obtained by shifting the shift register 1136, adder 1137, and FF1138.
(The output of the gate circuit 1135 is set to 0)
E ″ is multiplied by the multiplier 1124 and output through the FF 1125.
It is. If this output is output as a musical tone,
Register for accumulating force (selector 1127, FF1128,
The output from the gate circuit 1129) is the selector 1130 and the gate circuit
The data passing through the path 1131 is added and subtracted by the adder / subtractor 1126.
FIG. 52 shows a time chart of the waveform generation circuit 15. C0 ~
5 is a counter output of the timing signal generating circuit 159 in FIG.
And C1 ~ 5 are the envelope register 1002, frequency in Fig. 45
The read address of the information register 1004 and the OC register 14 in FIG.
Has become. Also, the one bit delay is
The basic timing of the circuit (Fig. 50) is 6 bits.
The lower 3 bits are the channel and the upper 3 bits are the module.
Rule calculation. The signals P, X ', E',
E ″, E ″ sinX ′, R ′, R are module 0,
Performance of module 7, channel 7 from operation of channel 0
The timing of one cycle up to the calculation is shown. Corrugated
Generation is performed by selectors 1118, 1127, and 11 by control signals C0 to C9.
30, 1132, gate circuits 1129, 1131, 1135, phase angle change
By controlling the path 1120 and the adder / subtractor 1126.
You. Table 6 shows the upper 4 bits of OC data input from the CPU.
The corresponding operation is shown (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) Ej + 1jsin (EijsinPij)   The operation code is   ij ** 000000 (upper 4 bits may be 010)   i+1j 1001 * 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 is a module
i, for the waveform output of channel j
You. 2) Ei + 2jsin (EijsinPij−Ei + 1jsinPi + 1j)   The operation code is   ij ** 000000 (upper 4 bits may be 010)   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 as a tone output. Operation as above
Various waveform generations are performed depending on the
As a result, many musical tones can be generated. output
As for the waveform, the generated waveform is accumulated successively.
When the value of C0 to C5 is “9”, the waveform of a new operation cycle
Captured by FF1128 (No output waveform = phase
), 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 complete, the sound source LSI 6
Until the signal can be synthesized, the input to DAC8 is silent.
Level is maintained. [The invention's effect]   As is clear from the above description, the present invention
CPU for monitoring the playing status of the input devices (1, 2)
Controlled by (3), synthesizes musical tones according to the playing state
Memory (7) and the data transferred from the CPU.
Interface writing data to the memory (7)
Using the path means (11) and the above memory as an arithmetic buffer
Tone control signal generation circuit that generates tone control signals
Generated by the step (12) and the tone control signal generating circuit means.
Waveform generator that generates musical tone waveforms according to the generated musical tone control signal
In the tone synthesizer comprising the circuit means (15),
The arithmetic control circuit means is shared with the sound control signal generation circuit means.
And read / write access to memory (computation buffer)
A control circuit for controlling the operation of the control and common operation circuit means
And a series of stages, and a series of arithmetic operations by common operation circuit means
Tone control by executing various operations sequentially through the sequence
Since signals are generated and output, conventional individual memory and individual
Hardware compared to the dedicated arithmetic circuit architecture
The hardware configuration can be greatly reduced. In addition,
When increasing or changing the calculation function,
There is almost no need to change the route means itself.
You only have to make some changes to the columns,
The size of the hardware does not increase proportionally
Has advantages.

【図面の簡単な説明】 第1図は本発明の一実施例に係る電子楽器の全体構成
図、第2図は音源LSIのブロック図、第3図は音源LSIの
インタフェース部とエンベロープ/キーコード生成回路
による外部RAM占有の割振を示すタイムチャート、第4
図はCPUから音源LSIのインタフェース/制御部に送られ
るデータと書込制御信号のタイムチャート、第5図は楽
音制御信号生成のための低速演算周期と波形生成のため
の高速演算周期とを示すタイムチャート、第6図はイン
タフェース/制御部の詳細図、第7図はタイミング信号
発生回路が発生する信号の一部のタイムチャート、第8
図はタイミング信号発生回路が発生するその他の信号の
タイムチャート、第9図はタイミング信号発生回路の詳
細図、第10図はインストラクションデコーダの詳細図、
第11図は1バイト長のデータの転送インストラクション
に対するインタフェース/制御部の動作を示すタイムチ
ャート、第12図は2バイト長のデータの転送インストラ
クションに対するインタフェース/制御部の動作を示す
タイムチャート、第13図はフラグセットのインストラク
ションに対するインタフェース/制御部の動作を示すタ
イムチャート、第14図はキーオフのインストラクション
に対するインタフエース/制御部の動作を示すタイムチ
ャート、第15図はOCレジスタへの書込みインストラクシ
ョンに対するインタフェース/制御部の動作を示すタイ
ムチャート、第16図はモードの設定インストラクション
に対するインタフェース/制御部の動作を示すタイムチ
ャート、第17図はエンベロープ/キーコード生成回路の
ブロック図、第18図はエンベロープ/キーコード生成回
路の動作サイクルを与えるカウンタBの詳細図、第19図
はカウンタBのタイムチャート、第20A図はエンベロー
プ/キーコード生成回路による演算のフローチャート、
第20B図はエンベロープ/キーコード生成回路の動作を
まとめた図、第21図はCPUから与えられる振幅モジュレ
ーション生成用データを示すグラフ、第22図は演算用タ
イミング信号発生回路の詳細図、第23図はクロック発生
回路の詳細図、第24図は演算用アドレス生成回路の詳細
図、第25図は演算用制御信号発生回路の詳細図、第26図
は演算用制御信号発生回路におけるタイムチャート、第
27図は書込み禁止回路の詳細図、第28図は書込み禁止回
路の動作を示すタイムチャート、第29図は指数データ用
アドレス生成回路の詳細図、第30図は演算回路の詳細な
ブロック図、第31図はAレジスタの詳細図、第32図はB
レジスタの詳細図、第33図はMレジスタの詳細図、第34
図はシフト制御回路の詳細図、第35図はエンベロープ制
御回路の詳細図、第36図はデータ変更回路の詳細図、第
37図は符号生成回路の詳細図、第38図はフラグによるピ
ッチエンベロープの反転を示すグラフ、第39図は加減算
器と出力クリップ回路の詳細図、第40図はフラグ発生回
路の詳細図、第41図は出力クリップ制御回路の詳細図、
第42図はSレジスタとエンベロープフラグ制御回路の詳
細図、第43は外部RAMインタフェースの詳細図、第44図
は外部RAMインタフェースの動作を示すタイムチャー
ト、第45図は指数変換/位相角生成回路のブロック図、
第46図はエンベロープレジスタの詳細図、第47図は周波
数情報レジスタの詳細図、第48図は指数変換/位相角生
成回路のタイムチャート、第49図はOCレジスタの詳細
図、第50図は波形生成回路の詳細図、第51図は波形生成
回路において制御信号により歪みの生じる正弦波のセッ
トを示す波形図、第52図は波形生成回路のタイムチャー
トである。 1……鍵盤、2……スイッチ、3……CPU、7……外部R
AM、11……インタフェース/制御部、12……エンベロー
プ/キーコード生成回路、15……波形生成回路、301…
…演算アドレス生成回路、302……書込み禁止回路、303
……カウンタB、304……クロック発生回路、305……演
算用タイミング信号発生回路、307……演算用制御信号
発生回路、308……演算回路。
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 the interface for the write instruction to the OC register. 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,
42 is a detailed diagram of the S register and the envelope flag control circuit, 43 is a detailed diagram of the external RAM interface, FIG. 44 is a time chart showing the operation of the external RAM interface, and FIG. 45 is an exponential conversion / phase angle generation circuit Block diagram of the
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 ... external R
AM, 11: Interface / control unit, 12: Envelope / key code generation circuit, 15: Waveform generation circuit, 301
… Calculation address generation circuit, 302… write-protection circuit, 303
…… Counter B, 304 …… Clock generation circuit, 305 …… Operation timing signal generation circuit, 307 …… Operation control signal generation circuit, 308 …… Operation circuit.

Claims (1)

(57)【特許請求の範囲】 1.演奏入力装置(1,2)の演奏状態をモニターするCPU
(3)によって制御され、演奏状態にしたがって、楽音
を合成するため、メモリ(7)と、上記CPUから転送さ
れるデータを上記メモリに書き込むインタフェース回路
(11)と、上記メモリを演算バッファとして利用して楽
音制御信号を生成する楽音制御信号生成回路(12)と、
上記楽音制御信号生成回路により生成された楽音制御信
号にしたがって楽音波形を生成する波形生成回路(15)
とを備えた楽音合成装置において、 (A)上記楽音制御信号生成回路の動作速度が、上記波
形生成回路の動作速度より低速であり、 (B)上記楽音制御信号生成回路と上記波形生成回路と
の間に速度調整回路を設け該速度調整回路にて、上記楽
音制御信号生成回路から低速周期で与えられる上記楽音
制御信号を、上記波形生成回路の動作に同期した高速周
期の楽音制御信号に変換し、 (C)上記楽音制御信号生成回路が、共通化された演算
回路(308)と、当該共通化された演算回路の動作、お
よび、演算バッファとしての上記メモリに対するリード
/ライトアクセスを制御するための制御回路(301〜30
5,307)とを有し、上記共通化された演算回路が、上記
制御回路の制御の下で、一連の動作シーケンス(第20A
図)を繰り返し実行し、当該動作シーケンスに含まれる
各演算ステップで、各別の演算を逐次実行し、かつ、所
定のステップ(14P,O)で、上記楽音制御信号を生成出
力するように構成され、 上記速度調整回路が、 (B1)少なくとも波形生成回路の動作速度以上の速度に
対応する周期にて交番するパルス信号を発生するパルス
信号発生回路と、 (B2)前記楽音制御信号生成回路により生成された楽音
制御信号を一時的に記憶する一時記憶メモリと、 (B3)前記楽音制御信号生成回路からの楽音制御信号を
受け入れ、これを前記一時記憶メモリに書き込む書き込
み回路とを備え、 (B4)前記パルス信号が第1の状態のときに、前記書き
込み回路による楽音制御信号の書き込みが許可され、前
記パルス信号が第2の状態のときに、前記波形成形回路
による楽音制御信号の読み出しが許可されることを特徴
とする楽音合成装置。 2.特許請求の範囲第1項に記載の楽音合成装置におい
て、 上記共通化された演算回路は、上記波形生形回路におく
るエンベロープの生成のために、 (A)エンベロープレート変更データ(ERCj)によるエ
ンベロープレート(ERij(s))の変更、 (B)変更されたエンベロープレートによるエンベロー
プ値の演算、 (C)エンベロープレベル変更データ(ELCj)による目
標値(ELij)(s)の変更、 (D)演算されたエンベロープ値が目標値に到達したか
否かの判別、および、 (E)演算されたエンベロープ値が目標値に到達した場
合のエンベロープステップ(s)の更新を実行すること
を特徴とする楽音合成装置。 3.特許請求の範囲第1項に記載の楽音合成装置におい
て、 上記共通化された演算回路は、上記波形生成回路に送る
合成キーコードの生成のために、 (A)ピッチエンベロープデータ(ERpj(s),ELpj
(s)によるピッチエンベロープ(PEj)の演算、およ
び、 (B)演算されたピッチエンベロープとキーコード(KC
j)とによる合成キーコードの演算を実行することを特
徴とする楽音合成装置。 4.特許請求の範囲第1項に記載の楽音合成装置におい
て、 上記インターフェース回路、上記楽音制御信号生成回路
および上記波形生成回路は音源回路チップ上に形成さ
れ、上記メモリはこの音源回路チップ上に形成され、上
記メモリはこの音源回路チップの外部に設けられた外部
RAMであることを特徴とする楽音合成装置。 5.特許請求の範囲第1項に記載の楽音合成装置におい
て、 上記波形生成航路は、複数の発音チャンネルにおける各
チャンネルの楽音波形を複数のモジュールの時分割動作
で生成するものであり、入力として上記楽音制御信号生
成回路から出力されるチャンネル別、モジュール別の、
キーコードおよびエンベロープを受け取ることを特徴と
する楽音合成装置。 6.特許請求の範囲第5項に記載の楽音合成装置におい
て、 上記演算回路は、一連の動作シーケンス(第20A図)を
チャンネル数×モジュール数の回数だけ繰り返すこと
で、全てのチャンネルの全てのモジュールについてのエ
ンベロープおよびキーコードのサンプルを生成すること
を特徴とする楽音合成装置。 7.演奏入力装置(1,2)の演奏状態をモニターするCPU
(3)によって制御され、演奏状態にしたがって、楽音
を合成するため、メモリ(7)と、上記CPUから転送さ
れるデータを上記メモリに書き込むインタフェース回路
(11)と、上記メモリを演算バッファとして利用して楽
音制御信号を生成する楽音制御信号生成回路(12)と、
上記楽音制御信号生成回路により生成された楽音制御信
号にしたがって楽音波形を生成する波形生成回路(15)
とを備えた楽音合成装置において、 (A)上記楽音制御信号生成回路の動作速度が、上記波
形生成回路の動作速度より低速であり、 (B)上記楽音制御信号生成回路と上記波形生成回路と
の間に速度調整回路を設け、該速度調整回路にて、上記
楽音制御信号生成回路から低速周期で与えられる上記楽
音制御信号を、上記波形生成回路の動作に同期した高速
周期の楽音制御信号に変換し、 (C)上記楽音制御信号生成回路が、 共通化された演算回路(308)と、 当該共通化された演算回路の動作、および、演算バッフ
ァとしての上記メモリに対するリード/ライトアクセス
を制御するための制御回路(301〜305,307)とを有し、 上記制御回路が、カウンタ(303)、演算用アドレス生
成回路(301)、および、動作制御信号発生回路(305,3
07,304)を有し、 (a)上記カウンタが、所定の基本クロック(CKQ)を
カウントしてカウンタ出力信号を発生し、 (b)上記動作制御信号発生回路が、上記カウンタから
のカウンタ出力信号の少なくとも一部、および、上記演
算回路からの演算フラグ信号(F′,EO,MO 0,AE)を受
けて動作制御信号を発生し、 (c)上記演算用アドレス生成回路が、上記カウンタ回
路からのカウンタ出力信号の一部、および、上記動作制
御信号発生回路からの動作制御信号の一部を受けて上記
メモリに対するアドレス信号(BA 0〜BA11)を発生し、 (d)上記演算回路が、上記動作制御信号発生回路から
の制御信号の少なくとも一部を受けて一連の演算動作を
逐次実行して上記楽音制御信号を生成出力し、かつ、 上記速度調整回路が、 (B1)少なくとも波形生成回路の動作速度以上の速度に
対応する所定の周期にて交番するパルス信号を発生する
パルス信号発生回路と、 (B2)前記楽音制御信号生成回路により生成された楽音
制御信号を一時的に記憶する一時記憶メモリと、 (B3)前記楽音制御信号生成回路からの楽音制御信号を
受け入れ、これを前記一時記憶メモリに書き込む書き込
み回路とを備え、 (B4)前記パルス信号が第1の状態のときに、前記書き
込み回路による楽音制御信号の書き込みが許可され、前
記パルス信号が第2の状態のときに、前記波形成形回路
による楽音制御信号の読み出しが許可されることを特徴
とする楽音合成装置。 8.特許請求の範囲第7項に記載の楽音合成装置におい
て、 上記楽音制御信号生成回路(12)は、一連の動作シーケ
ンス(第20A図)を発音チャンネル数×モジュール数の
回数だけ繰り返すことで全ての発音チャンネルの全ての
モジュールに関する楽音制御信号のサンプルを時分割で
生成し、 上記波形生成回路は各発音チャンネルの楽音波形を上記
楽音制御信号生成回路からの、当該発音チャンネルに属
する各モジュールの楽音制御信号に基づき、時分割生成
することを特徴とする楽音生成装置。 9.特許請求第8項に記載の楽音合成装置において、 上記カウンタは、 (a)モジュール番号を表す第1のカウンタ出力部分を
発生する第1カウンタ(第18図の311)、 (b)発音チャンネル番号を表わす第2のカウンタ出力
部分を発生する第2カウンタ(3,10)、および、 (c)上記一連の動作シーケンスにおける動作ステップ
番号を表わす第3のカウンタ出力部分を発生する第3カ
ウンタ(309)を含むことを特徴とする楽音合成装置。 10.特許請求の範囲第9項に記載の楽音合成装置にお
いて、 上記第1および第2のカウンタからのモジュール番号を
表わす第1のカウンタ出力部分(BC8−BC11)およびチ
ャンネル番号を表わす第2のカウンタ出力部分(BC5−B
C7)が上記演算用アドレス生成回路(301)に入力され
て当該モジュール、チャンネルデータ、上記メモリにリ
ード/ライトするためのアドレス生成に利用されること
を特徴とする楽音合成装置。 11.特許請求の範囲第10項に記載の楽音合成装置にお
いて、 上記第3カウンタからの動作ステップ番号を表わす第3
のカウンタ出力部分(BC0−BC4)が上記動作制御信号発
生回路(305)に入力されて、当該動作ステップにおけ
る動作制御信号の生成に利用されることを特徴とする楽
音合成装置。 12.特許請求の範囲第9項記載の楽音合成装置におい
て、 上記演算回路は、一連の動作シーケンス(第20A図)に
おける第1の動作ステップで上記演算フラグ信号を発生
し、 上記動作制御信号発生回路は、上記第1の動作ステップ
より後の第2の動作ステップで上記演算フラグ信号を用
いてこの第2の動作ステップのための動作制御信号を発
生し、 上記演算回路は上記第2の動作ステップのための動作制
御信号に従ってこの第2の動作ステップの演算動作を実
行し、 上記第2の動作ステップのための動作制御信号は先行す
る上記第1の動作ステップで発生した上記演算フラグの
状態に依存して異なるパターンで発生し、その結果、上
記演算回路の第2の動作ステップでの演算動作はその態
様が先行する第1の動作ステップで発生した上記演算フ
ラグの状態に依存して異なることを特徴とした楽音合成
装置。 13.特許請求の範囲第7項に記載の楽音合成装置にお
いて、 上記演算フラグ信号は複数の演算フラグ信号から成り、
上記演算回路は、個々の演算フラグ信号を上記メモリか
らのデータに従って、またはデータの演算結果に従って
発生することを特徴とする楽音合成装置。
(57) [Claims] CPU for monitoring the performance status of the performance input devices (1, 2)
The memory (7), an interface circuit (11) for writing data transferred from the CPU to the memory, and the memory as an arithmetic buffer for synthesizing musical tones according to the playing state, controlled by (3). A tone control signal generating circuit (12) for generating a tone control signal
A waveform generating circuit for generating a musical tone waveform in accordance with the musical tone control signal generated by the musical tone control signal generating circuit (15)
(A) the operation speed of the tone control signal generation circuit is lower than the operation speed of the waveform generation circuit; and (B) the tone control signal generation circuit, the waveform generation circuit, And a speed adjusting circuit for converting the tone control signal supplied from the tone control signal generating circuit at a low cycle into a high-speed tone control signal synchronized with the operation of the waveform generating circuit. (C) The tone control signal generation circuit controls the common operation circuit (308), the operation of the common operation circuit, and the read / write access to the memory as the operation buffer. Control circuit (301-30
5,307), and under the control of the control circuit, the common operation circuit performs a series of operation sequences (20A
) Is repeatedly executed, each operation is sequentially executed in each operation step included in the operation sequence, and the tone control signal is generated and output in a predetermined step (14P, O). The speed adjusting circuit comprises: (B1) a pulse signal generating circuit that generates an alternating pulse signal at a cycle corresponding to at least the operation speed of the waveform generating circuit; and (B2) the tone control signal generating circuit. (B3) a temporary storage memory for temporarily storing the generated tone control signal; and (B3) a write circuit for receiving the tone control signal from the tone control signal generation circuit and writing the received tone control signal to the temporary storage memory. When the pulse signal is in the first state, writing of the tone control signal by the writing circuit is permitted, and when the pulse signal is in the second state, the waveform shaping circuit Musical tone synthesizing apparatus characterized by reading the musical tone control signal is permitted with. 2. 2. The musical tone synthesizer according to claim 1, wherein the common operation circuit includes: (A) an envelope based on envelope plate change data (ERCj) for generating an envelope to be included in the waveform raw circuit; Change of rate (ERij (s)), (B) calculation of envelope value by changed envelope plate, (C) change of target value (ELij) (s) by envelope level change data (ELCj), (D) calculation (E) determining whether or not the calculated envelope value has reached the target value, and (E) updating the envelope step (s) when the calculated envelope value has reached the target value. Synthesizer. 3. 2. The musical tone synthesizer according to claim 1, wherein the common operation circuit includes: (A) pitch envelope data (ERpj (s)) for generating a synthesis key code to be sent to the waveform generation circuit; , ELpj
(P) calculating the pitch envelope (PEj), and (B) calculating the calculated pitch envelope and key code (KC
j) performing a calculation of a synthesized key code according to (j). 4. 2. The tone synthesizer according to claim 1, wherein said interface circuit, said tone control signal generation circuit, and said waveform generation circuit are formed on a tone generator circuit chip, and said memory is formed on said tone generator circuit chip. , The memory is an external memory provided outside the sound source circuit chip.
A tone synthesizer characterized by being a RAM. 5. 2. The musical sound synthesizer according to claim 1, wherein said waveform generation route generates a musical tone waveform of each of a plurality of sounding channels by a time-sharing operation of a plurality of modules, and receives said musical sound as an input. For each channel and module output from the control signal generation circuit,
A tone synthesizer for receiving a key code and an envelope. 6. 6. The musical sound synthesizer according to claim 5, wherein the arithmetic circuit repeats a series of operation sequences (FIG. 20A) by the number of channels × the number of modules to obtain all the modules of all the channels. A tone synthesizer for generating a sample of an envelope and a key code. 7. CPU for monitoring the performance status of the performance input devices (1, 2)
The memory (7), an interface circuit (11) for writing data transferred from the CPU to the memory, and the memory as an arithmetic buffer for synthesizing musical tones according to the playing state, controlled by (3). A tone control signal generating circuit (12) for generating a tone control signal
A waveform generating circuit for generating a musical tone waveform in accordance with the musical tone control signal generated by the musical tone control signal generating circuit (15)
(A) the operation speed of the tone control signal generation circuit is lower than the operation speed of the waveform generation circuit; and (B) the tone control signal generation circuit, the waveform generation circuit, A speed adjusting circuit is provided between the two, and the speed adjusting circuit converts the tone control signal given at a low cycle from the tone control signal generating circuit to a high-speed cycle tone controlling signal synchronized with the operation of the waveform generating circuit. (C) the tone control signal generation circuit controls the common operation circuit (308), the operation of the common operation circuit, and the read / write access to the memory as the operation buffer And a control circuit (301 to 305, 307) for performing the operation. The control circuit includes a counter (303), an operation address generation circuit (301), and an operation control signal generation circuit (305, 3).
(A) the counter counts a predetermined basic clock (CKQ) to generate a counter output signal; and (b) the operation control signal generation circuit generates a counter output signal from the counter. Receiving an operation flag signal (F ', EO, MO0, AE) from the operation circuit at least partially and generating an operation control signal; (c) the operation address generation circuit Receiving a part of the counter output signal and a part of the operation control signal from the operation control signal generation circuit to generate an address signal (BA0 to BA11) for the memory; (d) the arithmetic circuit comprises: Upon receiving at least a part of the control signal from the operation control signal generating circuit, a series of arithmetic operations are sequentially performed to generate and output the tone control signal, and the speed adjusting circuit comprises: (B1) at least a waveform generating circuit (B2) a pulse signal generating circuit for generating an alternating pulse signal at a predetermined cycle corresponding to a speed equal to or higher than the operation speed of (B2); and a temporary memory for temporarily storing the tone control signal generated by the tone control signal generating circuit. A storage memory; and (B3) a write circuit that receives the tone control signal from the tone control signal generation circuit and writes the tone control signal into the temporary storage memory. (B4) When the pulse signal is in the first state, A tone synthesizer, wherein writing of a tone control signal by the writing circuit is permitted, and reading of the tone control signal by the waveform shaping circuit is permitted when the pulse signal is in the second state. 8. The musical tone synthesizing apparatus according to claim 7, wherein the musical tone control signal generating circuit (12) repeats a series of operation sequences (FIG. 20A) by the number of sounding channels × the number of modules to thereby obtain all the signals. Samples of tone control signals for all modules of the sound channel are generated in a time-division manner, and the waveform generation circuit converts the tone waveform of each tone channel from the tone control signal generation circuit to the tone control of each module belonging to the tone channel. A tone generator which performs time division generation based on a signal. 9. 9. The tone synthesizer according to claim 8, wherein the counter comprises: (a) a first counter (311 in FIG. 18) for generating a first counter output portion representing a module number; And (c) a third counter (309) for generating a third counter output portion representing an operation step number in the series of operation sequences. ). 10. 10. The tone synthesizer according to claim 9, wherein a first counter output portion (BC8-BC11) representing a module number from said first and second counters and a second counter output representing a channel number. Part (BC5-B
C7) is input to the operation address generation circuit (301) and is used for generating addresses for reading / writing the module, channel data, and the memory. 11. 11. The musical sound synthesizer according to claim 10, wherein the third counter representing the operation step number from the third counter.
Wherein the counter output portion (BC0-BC4) is input to the operation control signal generation circuit (305) and used to generate an operation control signal in the operation step. 12. 10. The musical tone synthesizer according to claim 9, wherein said operation circuit generates said operation flag signal in a first operation step in a series of operation sequences (FIG. 20A), and said operation control signal generation circuit Generating an operation control signal for the second operation step by using the operation flag signal in a second operation step subsequent to the first operation step; The second operation step in accordance with the operation control signal for the second operation step, and the operation control signal for the second operation step depends on the state of the operation flag generated in the preceding first operation step As a result, the arithmetic operation in the second operation step of the arithmetic circuit is performed in a different pattern. A tone synthesizer characterized by being different depending on the state of the sound. 13. The musical sound synthesizer according to claim 7, wherein the operation flag signal comprises a plurality of operation flag signals,
The musical tone synthesizer according to claim 1, wherein the arithmetic circuit generates individual arithmetic flag signals in accordance with data from the memory or in accordance with the arithmetic result of the data.
JP62249470A 1987-10-02 1987-10-02 Music synthesizer Expired - Fee Related JP2722460B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62249470A JP2722460B2 (en) 1987-10-02 1987-10-02 Music synthesizer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62249470A JP2722460B2 (en) 1987-10-02 1987-10-02 Music synthesizer

Publications (2)

Publication Number Publication Date
JPS6491197A JPS6491197A (en) 1989-04-10
JP2722460B2 true JP2722460B2 (en) 1998-03-04

Family

ID=17193437

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP2722460B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5764294A (en) * 1980-10-07 1982-04-19 Kawai Musical Instr Mfg Co Electronic tone generating circuit
JPS58200297A (en) * 1982-05-18 1983-11-21 松下電器産業株式会社 Envelope signal generator
JPS6145296A (en) * 1984-08-09 1986-03-05 カシオ計算機株式会社 Electronic musical instrument
JPS6145290A (en) * 1984-08-09 1986-03-05 カシオ計算機株式会社 Electronic musical instrument
JPS62121498A (en) * 1985-11-22 1987-06-02 カシオ計算機株式会社 Electronic musical apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5764294A (en) * 1980-10-07 1982-04-19 Kawai Musical Instr Mfg Co Electronic tone generating circuit
JPS58200297A (en) * 1982-05-18 1983-11-21 松下電器産業株式会社 Envelope signal generator
JPS6145296A (en) * 1984-08-09 1986-03-05 カシオ計算機株式会社 Electronic musical instrument
JPS6145290A (en) * 1984-08-09 1986-03-05 カシオ計算機株式会社 Electronic musical instrument
JPS62121498A (en) * 1985-11-22 1987-06-02 カシオ計算機株式会社 Electronic musical apparatus

Also Published As

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

Similar Documents

Publication Publication Date Title
US3844379A (en) Electronic musical instrument with key coding in a key address memory
US4133241A (en) Electronic musical instrument utilizing recursive algorithm
US4184403A (en) Method and apparatus for introducing dynamic transient voices in an electronic musical instrument
JPS54121722A (en) Musical tone assignment system in electronic musical instruments
JP2722460B2 (en) Music synthesizer
JPS5862696A (en) Electronic musical instrument
US4562763A (en) Waveform information generating system
JP2753511B2 (en) Music synthesizer
JP2718039B2 (en) Music synthesizer
JPH01179090A (en) Automatic playing device
JP2527652Y2 (en) Music synthesizer
US4528884A (en) Wave reading apparatus
JPH0738956Y2 (en) Music synthesizer
JPS6048760B2 (en) Note clock generator for electronic musical instruments
JPS6113239B2 (en)
JPS6330638B2 (en)
JPH0750799Y2 (en) Tone phase synchronizer
US4936179A (en) Electronic musical instrument
JPS6226478B2 (en)
CA1097105A (en) Electronic musical instrument with device for selecting tone clock numbers
JPS593486A (en) Automatic rhythm performer
JPS6037479B2 (en) Automatic performance device that can play tuplets
JP2707885B2 (en) Bit number converter
JPH02282297A (en) Parameter signal forming device
JPS5839B2 (en) electronic musical instruments

Legal Events

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