JP2527652Y2 - 楽音合成装置 - Google Patents

楽音合成装置

Info

Publication number
JP2527652Y2
JP2527652Y2 JP1987151606U JP15160687U JP2527652Y2 JP 2527652 Y2 JP2527652 Y2 JP 2527652Y2 JP 1987151606 U JP1987151606 U JP 1987151606U JP 15160687 U JP15160687 U JP 15160687U JP 2527652 Y2 JP2527652 Y2 JP 2527652Y2
Authority
JP
Japan
Prior art keywords
data
envelope
modulation
channel
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1987151606U
Other languages
English (en)
Other versions
JPS6455994U (ja
Inventor
洋二 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP1987151606U priority Critical patent/JP2527652Y2/ja
Publication of JPS6455994U publication Critical patent/JPS6455994U/ja
Application granted granted Critical
Publication of JP2527652Y2 publication Critical patent/JP2527652Y2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【考案の詳細な説明】 [考案の技術分野] この考案は楽音合成装置に関し、特に、アフタータッ
チ等のモジュレーションを制御する技術に関する。
[考案の背景] 従来の代表的な電子楽器は、演奏入力装置(鍵盤、自
動伴奏装置など)と、演奏入力装置の演奏状態をモニタ
ーするCPU(汎用マイクロプロセッサ等)と、CPUにより
制御され演奏状態に応じた楽音を合成する複数のチャン
ネルを有する楽音合成装置と、合成された楽音を音響信
号に変換する変換装置を備えている。楽音合成装置(音
源)には、アフタータッチやベンダー等のモジュレーシ
ョン効果を付加する構成として、チャンネル独立型とチ
ャンネル共通型がある。チャンネル独立型の場合、各チ
ャンネルは、チャンネル固有のアドレスに記憶されたモ
ジュレーションデータを参照してモジュレーション効果
を付ける。チャンネル共通型では全てのチャンネルが共
通のアドレスに格納されたモジュレーションデータを参
照してモジュレーション効果を付加する。したがって、
チャンネル独立型のモジュレーション付加機能をもつ音
源に対しては、楽音制御装置であるCPUは、チャンネル
別にモジュレーションデータを転送しなければならな
い。一方、チャンネル共通型のモジュレーション付加機
能を有する音源に対しては、CPUは共通の記憶番地にモ
ジュレーションデータを書き込む。
電子楽器のシステムを構築する際、使用する演奏入力
装置を1つに限定する場合にはアフタータッチやベンダ
ー等のモジュレーション操作子は1個であるので、音源
として、チャンネル共通型のモジュレーション付加機能
を有する音源が使用できる。しかし、2つ以上の演奏入
力装置(例えば、1台は鍵盤、もう1つは自動伴奏装
置)を使用する場合に、音源としてチャンネル共通型を
使ったとすると、鍵盤側のモジュレーションが、伴奏ラ
インにもかかってしまうことになり好ましくない。一
方、1台の演奏入力装置が付く電子楽器にチャンネル独
立型の音源を組み込むと、CPUは転送すべきモジュレー
ションデータの種類は1つなのに、チャンネル別にモジ
ュレーションデータを転送しなければならず、効率が悪
い。
[考案の目的] したがってこの考案は、CPUにシステムバスを介して
接続され当該システムバスを介して与えられるCPUから
の制御信号にしたがって複数の発音チャンネル(ポリフ
ォニック)の楽音信号を電子的に合成する楽音合成装置
に係るものであって、その目的はこの種のシステムにお
けるCPUから楽音合成装置へのデータ転送効率を改善す
ることであり、更にCPUが取り扱う演奏系の数が1つで
あっても複数であっても問題のないモジュレーションが
付けられる楽音合成装置を提供することである。
[考案の要点] この考案は上記の目的を達成するため、CPU(3)に
システムバス(▲▼、/D、▲▼、DBO−7)
を介して接続され、CPU(3)から当該システムバスを
介して与えられる入力に従って複数の発音チャンネルの
楽音信号を電子的に合成する楽音合成装置において、上
記CPUから上記システムバスを介して与えられるモジュ
レーションデータ(AMD、PMD)に従って、合成する楽音
信号にモジュレーション効果を付加するモジュレーショ
ン付加回路手段(308)と、上記モジュレーション付加
回路手段を制御する制御回路手段と、を有し、上記制御
回路手段は、CPUから上記システムバスを介して与えら
れるモジュレーションデータが発音チャンネル独立の転
送形式、即ち該当する発音チャンネルの数分のデータ転
送回数を要する転送形式でチャンネル別に転送される場
合には、上記モジュレーション付加回路手段が、該当す
る発音チャンネルで合成する楽音信号について、互にチ
ャンネル独立のモジュレーションデータに従ってモジュ
レーション効果を付与し、CPUから上記システムバスを
介して与えられるモジュレーションデータが発音チャン
ネル共通の転送形式、即ち1発音チャンネル分のデータ
転送回数しか要しない転送形式でチャンネル共通に転送
される場合には、上記モジュレーション付加回路手段
が、全ての発音チャンネルで合成する楽音について、共
通、即ち同一のモジュレーションデータに従ってモジュ
レーション効果を付与するように当該モジュレーション
付加回路手段を制御する、ことを特徴とする楽音合成装
置を提供する。
[考案の作用、展開] この考案の上記構成によれば、CPUから楽音合成装置
へのモジュレーションデータのデータ転送効率を改善す
ることができると共に、CPUの取り扱う演奏系が複数あ
って演奏系毎に独自のモジュレーションを付けたいよう
な場合には、チャンネル独立のデータ転送方式を用いる
ことによりその目的を達成することができる。
一構成例において、CPUから上記システムバスを介し
て与えられるデータ(モジュレーションデータを含む)
を記憶するための記憶手段を更に有し、この記憶手段に
は発音チャンネル独立の転送形式で転送されるモジュレ
ーションデータについては、該当する発音チャンネル毎
に固有のチャンネル値を含むチャンネル固有アドレスに
当該モジュレーションデータが書き込まれ、発音チャン
ネル共通の転送形式で転送されるモジュレーションデー
タについては、全ての発音チャンネルに共通の特定値を
含むチャンネル共通アドレスに当該モジュレーションデ
ータが書き込まれ、上記モジュレーション付加回路手段
を制御する上記制御回路手段は、上記モジュレーション
効果付与手段が任意の発音チャンネルについてモジュレ
ーション効果を付与するための演奏処理を実行する際
に、モジュレーションデータの転送形式が発音チャンネ
ル独立の転送形式である場合には、当該発音チャンネル
のためのモジュレーションデータを上記チャンネル固有
アドレスを指定して読み出してモジュレーション効果付
与手段に供給し、一方、モジュレーションデータの転送
形式が発音チャンネル共通の転送形式である場合には、
当該発音チャンネルのためのモジュレーションデータ
を、上記チャンネル共通アドレスを指定して読み出して
モジュレーション効果付与手段に供給する。
好ましい構成例において、上記制御回路手段は、CPU
から上記システムバスを介して与えられる、モジュレー
ションデータの転送形式をチャンネル独立かチャンネル
共通のいずれにするかを指定する転送形式指定信号(
/I)を受け、それを記憶するフラグ手段(157)を含
む。
[実施例] 第1図は本考案に係る電子楽器の機能図である。CPU3
は汎用マイコンで、制御プログラムに従って、鍵盤1、
スイッチ2を走査して押鍵、音色選択等を検出し、バス
上に配置されたROM4、RAM5等を使って音色データ、発音
制御データを生成して音源LSIの発音を制御する。音源L
SI6は、後で詳述するが外付けRAM7を楽音生成のための
演算用バッファとして利用して楽音を生成し、DAC(デ
ジタルアナログ変換器)8に転送する。楽音信号はDAC8
でアナログ信号に変換され、アンプ9で増幅されてスピ
ーカ10によって放音される。
第2図は、本考案を適用する音源LSI6の動作を説明す
るためのブロック図である。音源LSI6は、振幅エンベロ
ープ及びピッチ変動を含んだキーコード等の生成のため
に、RAM7を音色データ用メモリ、又は演算経過データ用
メモリとして使う。尚、RAM7は第3図に示すように、40
0nsec毎にインタフェース/制御部11(インタフェース
占有時間)とエンベロープ/キーコード生成回路(演算
回路占有時間)に交代で占有され、CPUからのデータ書
込み及びエンベロープ等の演算のためのアクセスに対処
する。
まず、インタフェース/制御部11の動作を説明する。
CPU3からは音源LSI6に対して音色データ又は発音制御デ
ータが転送されるが、音源LSI6はデータバスDB0〜7に
あるデータを▲▼がLOWのとき▲▼の立上りエ
ッジで取込む。その際、/DがLOWならばデータバスDB0
〜DB7のデータをインストラクション、/DがHIGHなら
ばそのインストラクションに付属するデータとして取込
む(第4図参照)。尚、インストラクションは続いて転
送されるデータの種類を示している。インタフェース/
制御部11はCPU3からのインストラクション及びデータを
受けて、そのインストラクションに対応するRAM7のアド
レスAA0〜11と書込み信号▲▼を生成し、外部RAMイ
ンターフェース16を介して外部RAM7に転送されたデータ
を格納する。ただし、CPU3から転送されたデータが特殊
なものの場合は内部メモリに格納する。例えば転送され
たデータがオペレーションコード(波形生成のための制
御データ)の場合には、外部RAM7への書込みは禁止さ
れ、OCレジスタ14への書込み信号WOが発生することによ
り、OCレジスタに書込まれる。
エンベロープ/キーコード生成回路12は、外部RAM7に
書込まれたデータをアクセスするためにアドレスBA0〜1
1及びエンベロープの演算経過データ等の書込み信号▲
▼を発生する。それによって外部RAM7の音色データ
(エンベロープレート/レベルなど)に基づき、発音制
御データ(キーコード、モジュレーションなど)に従っ
て、振幅エンベロープ又はピッチ変動を含んだキーコー
ド(以下では合成キーコードと呼ぶ)を生成し、バスL2
〜14を介して指数変換/位相角生成回路13に時分割に転
送する。
指数変換/位相角生成回路13はエンベロープ/キーコ
ード生成回路12からの振幅エンベロープ、合成キーコー
ドを1つの指数変換器を時分割的に共用することによっ
て指数変換する。指数変換された振幅エンベロープ(指
数エンベロープ)、及び指数変換された合成キーコード
(周波数情報)は夫々、エンベロープレジスタ、周波数
情報レジスタに一旦格納される。これらは、外部RAM7を
アクセスして振幅エンベロープ、合成キーコードを生成
し、指数変換するという演算処理が低速で行なわれ、そ
の後の演算処理が高速で行なわれるためのインタフェー
ス用バッファとして使われる。第5図に2つの演算処理
の時間関係を示すが、低速演算周期は高速演算周期の48
倍になっている。これは出力波形の変化レートが可聴周
波数の2倍以上でないといけないために波形演算は高速
で行なわれ(本実施例では約40KHz)、それ以外の演算
は外部RAM7のアクセスに合わせて低速で行っているから
である。
エンベロープレジスタに格納された指数エンベロープ
は高速演算に対応して読出され、波形合成回路15にエン
ベロープE0〜11として転送される。周波数情報レジスタ
に格納された周波数情報は、高速演算に対応して読出さ
れ、累算されて位相角データP0〜11として波形生成回路
15に転送される。
波形生成回路15はOCレジスタ14から読出されたオペレ
ーションコードOC0〜7に基づいて、指数変換/位相角
生成回路13から転送されるエンベロープE0〜11、位相角
データP0〜11に従って楽音波形O0〜15を生成し、DAC8へ
出力する。
第6図はインタフェース/制御部11の回路図である。
まず、タイミング信号発生回路159について説明する。
タイミング信号発生回路159は、第7図、第8図に示す
ように基本クロックφM(10MHz)を分周し必要なタイミ
ング信号を作り、外部からのリセット信号▲
▼から内部リセット信号を作るものである。第9図に
その一実施例を示す。10MHzの基本クロックはフリップ
フロップ233、インバータ235で分周されS0が生成され、
更にフリップフロップ234によってT0が生成される。更
にアンド237によってφ1が生成され、フリップフロップ
239、240によってV1、W1が生成される。また、フリップ
フロップ243によってT1が生成される。これらの信号か
らインバータ242、245、アンド244、246〜248によって
W、▲▼、▲▼、CK1、CK2が生成される(第7
図)。カウンタA:249はクロックCK2を分周するバイナリ
カウンタで、CK2の立上りで変化する。カウンタ出力の
うちQ1〜Q5は読出しのためのアドレス信号C1〜C5として
エンベロープ/キーコード生成回路12、及びOCレジスタ
14に出力される。また、カウンタ出力Q0、Q1から2相フ
リップフロップ250、251、フリップフロップ252、イン
バータ253、アンド254−1〜254−4によってタイミン
グ信号T2、T3、CKP、CKQ、CKW、CKRが生成される(第8
図)。また、インバータ255−1〜3、オア256、アンド
257から▲▼、CKLが生成される(第52図)。ま
た、カウンタA:249のCARRYOUT(カウント値127のとき
“1")からはアンド258でCKRTが生成され、この信号は
外部からのリセット信号をサンプリングするクロックと
して用いられる。クロックCKRTによりフリップフロップ
260、261でリセット信号をサンプリングし2度以上外部
リセット信号をアンド262で検出したら内部リセット信
号が生成される。したがって内部リセット信号は第8図
のようになる。その時第17図のカウンタB303は同期リ
セットカウントなので第8図のようにリセット後の動作
を行なう。
次に、CPU3と音源LSI6のデータメモリである外部RAM7
とをインタフェースするインタフェース/制御部11の動
作を説明する。表1にCPU3から転送されるインストラク
ション、データ及び、外部RAM7の対応するアドレスを示
す。
ここで、音源LSI6は8つの発音チャンネルを持ち各発
音チャンネル毎に8つの正弦波生成モジュールを持つの
で、エンベロープ/キーコード生成回路12では、各発音
チャンネル毎のピッチエンベロープを含めて72個の振幅
エンベロープ、64個の合成キーコードを生成しなければ
ならない。そのため、、データは各チャンネル毎(jjj
=0〜7)に各モジュール(0iii=0〜7)のデータを
転送しなければならない。ただしエンベロープに関係す
るデータはピッチも含めて9個(jjjj=0〜8)転送す
る。尚、データを1個しか送らないものは各モジュール
共通のものである。
第6図で▲▼、/D、▲▼、DB0〜7にはCPU
3からの信号が入るわけだか、第4図のように信号が入
った時インバータ100〜103、ナンド104、105によって▲
▼、▲▲が発生する。信号▲▼が発
生するとバスDB0〜7のデータがインバータ106〜113を
介してラッチ146〜153に▲▼の立上りで取込まれる
とともにカウンタ191、フリップフロップ186、192〜195
をリセットする。ラッチ149〜153の出力はインストララ
クションデコーダ154に入力され、それによって必要な
制御信号が発生する。インストラクションデコーダは第
10図のようにインバータ265〜267、ナンド269〜277、ア
ンド278で構成されており、各信号は表2のようにな
る。
例えば、周波数比のインストラクションに対しては、
WBとWTが論理“1"となる(WB=“1"、▲▼=“0") まず、外部RAM7に書込まれるデータのうち、各チャン
ネルの各モジュールあたり1バイトのデータ(ハイリリ
ースレース、モジュレーション感度、エンベロープレー
ト変化、エンベロープレベル変化、エンベロープレー
ト、エンベロープレベル)の書込み動作を説明する(第
11図参照)、CPU3からのインストラクション書込みに応
答して、信号▲▼が“0"になる。そのとき、バス
DB0〜7のインストラクションはインバータ106〜113で
反転されてラッチ146〜153に取込まれるとともに、カウ
ンタ191、フリップフロップ192〜195、186がリセットさ
れる。そしてインストラクションデコーダ154の出力WB
が“0"となるのでナンド172の出力は常に“1"とな
り、▲▼が“1"なのでオア168、170、アンド169に
よってCK12はCKQとなる。次にCPU3からのデータ書込に
より信号▲▼が“0"→“1"になると、フリップフ
ロップ173は▲▼の立上りで“1"を出力し、フリ
ップフロップ174の出力は“1"となる。その後、フリ
ップフロップ173、175はCKRに同期してリセットされる
のではCKRの1区間だけ“1"となる。また、インスト
ラクションデコーダ154の出力▲▼、IDは“1"、
“0"、は“0"なのでオア178、179、インバータ180、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"の幅でクロックインバータ138〜1
45がデータを出力する。ここでデータは下位(レベ
ル)、上位(レート)の順でCPUから書込まれるので、
バスD0〜7には上位(レート)、下位(レベル)の順で
データが出力され外部RAM7に入力される。カウンタ191
は、インストラクションデコーダ154の出力▲▼が
“0"なので、が“1"のときのCKWがそのクロックCKCと
なり、0、1、2……と歩進されてモジュール番号を表
わすアドレスAA0〜AA3となる。アドレスAA4〜AA6はイン
ストラクションのラッチ146〜153の下位3ビットの反転
であるからチャンネル番号を示す値“jjj"となる。ま
た、アドレスAA7〜AA11は、インストラクションデコー
ダ154のEFが“0"、WBが“1"だから、T3が“0"のときAA7
を“0"にするインストラクション上位5ビットとなり、
T3が“1"のときAA8〜11がインストラクション上位4ビ
ットでAA7が“1"となる。つまり、2バイトデータの第
1バイトアドレスと第2バイトアドレスの区別はAA7を
切り換えることにより行なわれる。尚、チャンネルの識
別とモジュールの識別に関してはチャンネル、モジュー
ル当り1バイトのデータ書込みの場合と同様である。こ
こまでの説明から明らかなように、本実施例によれば、
インタフェース/制御部11に転送データのバイト構成を
インストラクションに基づいて識別する手段が組み込ま
れているため、CPU3から音源LSI6に対し、インストラク
ションに可変のバイト構成のデータが後続する可変フォ
ーマットでデータ転送を行なうことができ、ダミーデー
タなしの最適の転送効率を達成できる。
次にインストラクション“フラグセット”について述
べる(第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"だか
ら“00110"となる。したがって、インストラクション
“フラグセット”ではモジュール0〜8に同じデータが
自動的に書込まれることになる。
次にインストラクション“キーオフ”について述べる
(第14図参照)。信号▲▼が“0"になるとインス
トラクションがラッチ146〜153に取込まれるとともに、
カウンタ191、フリップフロップ186、192〜195がリセッ
トされる。インストラクションデコーダ154の出力WBが
“0"なのでは“1"、ノア167の出力は“0"、▲▼
が“0"なのでオア168の出力は“0"となり、従ってCK12
はCKWと一致する。▲▼が“0"→“1"になると、
フリップフロップ114〜121にデータが取込まれるととも
に、フリップフロップ173は“1"を出力し、は“1"と
なる。が“1"となるとフリップフロップ173、175はリ
セットされるので、はCKRの2区間だけ“1"となる。
また、インストラクションデコーダ154の出力EFが“1"
なのでアンド183の出力はが“1"のときに“1"となる
から、フリップフロップ186の出力は“1"となる。▲
▼が“0"なのでカウンタ191のクロックCKCはが
“1"の間CKWと一致し、カウンタ191は歩進される。カウ
ンタ191の値が9になるとCKRに同期してフリップフロッ
プ186がリセットされるので、は▲▼〜▲
▼が0〜8の間(CKRの18区間)“1"となり、=
“1"のもとで、ナンド182の出力▲▼は▲▼が
“0"のため各カウント毎にT2が“0"、T3が“1"のときに
“0"となる。そのとき、EFは“1"なのでアドレスAA0〜A
A11は“00110jjjiiii"となるが、が“1"でT3が“0"、
T2が“0"のときは、RAM7からのデータが読出されてきて
いる。フリップフロップ213〜216はそのデータのうち下
位4ビットをCKPで取込み、その値が“*000"ならば“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で取込むフリップフロップである。ま
た、 のように対応している。第20A図のフローで、左側にあ
る数字はタイミングを意味しており、0〜11はカウンタ
1の値そのもの、1P〜19はカウンタ3の値が8
(ピッチの演算)以外のときのカウンタ1の値12〜19、
12P〜19Pはカウンタ3の値が8(ピッチの演算)のとき
のカウンタ1の値12〜19に相当する。
第20A図のフローを説明する。まずタイミング0でエ
ンベロープフラグ;EFijをRAM7からSレジスタにロード
する。ここで、エンベロープフラグのデータ構成は下の
ようになっている。
1)Sレジスタ下位3ビット(エンベロープステップ)
に対応するエンベロープレート;ERij(s)をAレジス
タ上位に、2)エンベロープレート変化;ERCjをBレジ
スタ上位にロードし(A、Bとも下位には0でロー
ド)、3)それらを加算してエンベロープレートを変更
し、Bレジスタに格納する。そのとき同時にエンベロー
プ現在値の上位をAレジスタ上位(下位は0)にロード
し4)次に下位をAレジスタ下位にロードして、5)エ
ンベロープの現在値をEF4に応じて、変更されたエンベ
ロープレートで加減算することによってエンベロープを
更新し、Bレジスタに格納する。更にエンベロープレベ
ル;ELij(s)をAレジスタ上位に(下位には0)、
6)Mレジスタにエンベロープレベル変化;ELCijをロ
ードし、7)それらを加減算してエンベロープレベルを
変更し、Aレジスタに格納する。尚、F1にセットされる
エンベロープレベルの8ビット目;ELij(s)7はサスティ
ンポイントのフラグである。そのとき、Mレジスタには
振幅モジュレーション;AMDj(モジュール0〜7の演算
時)、又はピッチモジュレーション;PMDj(ピッチの演
算時)をロードしておく。8)次に変更されたエンベロ
ープレベルから更新されたエンベロープを減算し、エン
ベロープが目標値に到達したか否かを判定する(その時
Aレジスタ下位にはAMDj又はPMDjの下位をロードしてお
く)。エンベロープが目標値に到達していない場合に
は、F′=“0"となり、9▲▼)エンベロープフラ
グ(Sレジスタ)は更新されず、Aレジスタの上位に格
納されている更新されたエンベロープの上位をRAM7のエ
ンベロープ上位;EM ijに対応するアドレスに書込む。エ
ンベロープが目標値に到達している場合には、F′=
“1"となり、9F′)エンベロープフラグ7(Sレジス
タ)のステップを表す下位3ビットを更新するとともに
(1+S)、“ノード”のビットを“0"とし、サスティ
ンフラグ;ELij(s)7が“1"ならば“ホールド”のビット
を“1"としてAレジスタ上位に格納する。その時、変更
されたエンベロープレベルの値をエンベロープ値として
Bレジスタにロードするとともに、RAM7のエンベロープ
上位;▲EM ij▼に対応するアドレスに書込む。10)次に
到達、未到達のいずれの場合にも、Bレジスタ下位には
格納すべきエンベロープ下位データが入っているので、
それをRAM7のエンベロープ下位;▲EL ij▼のアドレスに
書込む。ただし、ノードのビットが節点を表わす“0"の
場合には、上記のような演算を行なわず、エンベロープ
の現在値と目標値を比較することによってエンベロープ
の進むべき方向を判定して符号のビットをセットしてい
る。以上説明したようにエンベロープの基本演算は、ス
テップの節点毎にエンベロープの進行方向を判定してお
き、 a)エンベロープレートレベルの変更 b)エンベロープの更新 c)目標レベルへの到達か否かの判定 d)エンベロープ現在値格納 によって行なわれている。
次に、11)Aレジスタ上位にMレジスタのデータが転
送されるとともにAレジスタ上位のデータがRAM7のエン
ベロープフラグ;EFijのアドレスに書込まれる。このと
き、Aレジスタ下位には振幅モジュレーション;AMDj
はピッチモジュレーション;PMDjの下位データ、Mレジ
スタにはその上位データが入っている。
まず、モジュール0〜7の演算(カウンタ3=0〜
7)について考える。12)BレジスタにあるRAM7に書
込んだエンベロープのデータをAレジスタにロードする
とともに、Aレジスタ下位にある振幅モジュレーション
下位;▲AMDL j▼のデータをBレジスタ下位にロードす
る。13)振幅感度;MSijをSレジスタにロードする。
次に14)Aレジスタのエンベロープのデータから、
M、Bレジスタ下位のAMDjのデータをMSijに応じて減算
し、最終エンベロープデータとして、指数変換/位相角
生成回路13に転送する。その時Aレジスタ上位にはキー
コード上位;▲KCM j▼をロードしておく。15)Aレジ
スタ下位にキーコード下位;▲KCL j▼をロードする。16
)Bレジスタ上位にピッチのエンベロープ上位;▲PE
M j▼、17)下位に▲PEM j▼をロードする。18)キー
コードとピッチのエンベロープを加算しAレジスタに格
納するとともに、周波数比上位;▲FRM ij▼をBレジス
タ上位にロード。19)周波数比下位;▲FRL ij▼をB
レジスタ下位にロードする。0)次の演算サイクルの0
のタイミングでピッチのエンベロープ付きのキーコード
に周波数比を加減算(F2に応じて)した最終的なキーコ
ードとして指数変換/を位相角生成回路13に転送する。
次にピッチの演算(カウンタ3=8)について考え
る。12P)BレジスタのRAM7に書込んだエンベロープの
データにAレジスタにあるピッチモジュレーション;PM
Djを加減算(F2に応じて)し、最終的なピッチのエンベ
ロープ;PEjとしてBレジスタに格納する。そのとき、
Aレジスタ上位に振幅モジュレーション上位;▲AMDM j
▼をロードしておく。13P)振幅モジュレーション下
位;▲AMDL j▼をAレジスタ下位にロードする。14P)モ
ジュレーションレート;MRjをMレジスタにロードす
る。15P)AMDjをMRjをF2に応じて加減算するとともにモ
ジュレーションレベル;MLjをMレジスタにロードす
る。16P)振幅モジュレーション;AMDjを更新した値と
モジュレーションレベルを比較する(その時ピッチのエ
ンベロープ上位をRAM7の▲PEM j▼に書込む)。振幅モジ
ュレーションが目標値;MLjに到達していないなら、17P
▲▼)ピッチのエンベロープ下位▲PEL j▼をRAM7に
書込み、到達しているのなら、17PF′)目標値;MLj
Aレジスタにロードするとともに、▲PEL j▼をRAM7に書
込む。Aレジスタの目標値を越えない振幅モジュレーシ
ョンのデータを18P)上位、19P)下位とRAM7に書込む。
尚、20P〜31Pは演算タイミングの調整のためのNOPであ
る。ここで、振幅モジュレーションはCPUから与えられ
るアフタータッチ等の検出量の前回検出量との差の絶対
値;MRj、符号;▲MR7 j▼、及び今回検出量;MLjのデー
タ(第21図参照)を基にして、補間することによって生
成されている。
第22図は第17図のエンベロープ/キーコード生成回路
12が上述の動作を行なうための基本的信号を発生するた
めの演算用タイミング信号発生回路305の詳細図であ
る。図示のように、演算用タイミング信号発生回路305
はROM化(ファームウェア)化された構造をもってお
り、その動作についてエンベロープ/キーコード生成回
路12の主な動作をまとめた第20B図を参照して説明す
る。入力BC0〜4はカウンタB303の中のカンウタ1の出
力で基本タイミングである。又、PはカウンタB303の中
のカウンタ3のMSBすなわちピッチの演算中“1"の信号
であり、F′は動作フローの分枝フラグF′に対応して
いる。図中0、1、……、9F′、12Pはタイミングに相
当し、夫々、タイミング0、タイミング1、……、F′
=1のときのタイミング9、P=1のときのタイミング
12を意味している。第22図の中で「BW0」はエンベロー
プ/キーコード生成回路12からRAM7のデータが書込まれ
るための原信号で、第20B図の“データバスD0〜7"にレ
ジスタ出力が出る時のみ“1"となっている。LSIにはア
ドレスのLSBを強制的に“1"とするもので後述するよう
にタイミング12、12P、13P、17、17P▲▼、17P
F′、18P、19Pで“1"となる。▲▼はアドレス下位
4ビット(モジュール)をオール0にするもので第20B
図のデータにiのINDEXがついていないタイミングで
“1"となる。OA0〜4は原アドレス信号で、第20B図の
“アドレス”に対応している。ただし、タイミング1、
5の“SSS"は原アドレスOA0〜2のかわりのエンベロー
プフラグ(Sレジスタ)の下位3ビット(ステップ)が
アドレスとして採用されることを意味している。a〜k
は第23図に示すようにクロック発生回路304の出力であ
る各種クロック、CKAM、CKAL、……、CKE等を生成する
ための信号で、第20B図“クロック”のタイミングで
“1"となる。RA、RBは夫々Aレジスタ、BレジスタにRA
M7からのデータをロードする時“1"となる信号で、第20
B図“Aレジスタ入力”、“Bレジスタ入力”に対応し
ている。AM、AL、BM、BLはデータバスD0〜7に夫々のレ
ジスタ出力を出力する時に“1"となる信号で、第20B図
の“データバスD0〜7"に対応している。B0はBレジスタ
の出力を常にマスクするためのもので第20B図の“加減
算器B入力”が上位側“M"、下位側“0"のときに“1"と
なる。A0はAレジスタの出力を常にマスクするためのも
ので、第20A図のフローで9▲▼;AM←0+S、9
F′;AM←1+S、11;AM←0+M、12;A←0+B、17
PF′;A←0+M、(0)に対応し“1"となる。Mは加減
算器440のB入力がMレジスタ出力となる場合に“1"と
なるもので、第20B図の“加減算器B入力”の上位側が
“M"となっているタイミングに“1"となる。SUは加減算
器440の演算を減算形式、すなわち“A−B"又は“A−
M"とする信号で、第20A図のフローの8;A−B、14;A−
M(BL)、16P;A−M(0)で“1"となる。SF2は加減算
器440のB入力側符号をF2の値とするもので、後述する
ようにタイミング0、15P、16Pで“1"となる。
次に、第24図演算用アドレス生成回路301について説
明する。大抵の場合アドレス信号BA0〜11は、以下のよ
うに構成されている。
さらに、BA0〜3はカウンタB303の出力BC8〜11、BA4〜
5はBC5〜7、BA7〜11は演算用タイミング信号発生回路
305のアドレス出力OA0〜4に対応している。次に特殊な
場合について考える。タイミング1のとき信号は0で
ある。またOA4も第20B図から“1"である。そのとき7
が“1"すなわちハイリリースでないから、インバータ37
1、インバータ365〜367、バッファ368〜370によりアド
レスは、 OA4 OA3 S2 S1 S0 BC7 BC6 BC5 BC11 BC10 BC9 BC8 となる。したがってエンベロープフラグにより示される
ステップのエンベロープレート;ERij(s)のアドレス
となる。タイミング5も同様である。もし、7が“0"
すなわちハイリリースなら、オア363、アンド364により
アドレスは、0 OA3 S2 S1 S0 BC7 BC6 BC5 BC10 BC11 BC9 BC8 となる。ここでハイリリースの設定はCPUからインスト
ラクション“フラグセット”、データ“10000111"で行
なえば、上のアドレス上位5ビットは“00111"となり、
ハイリリースレート;HRijを示す固有アドレスとなる。
したがってハイリリース時には通常のエンベロープレー
トではなくハイリリースレートが読出され使われること
になる。次に、タイミング2、14、14P、15、15P、
16、16Pのとき、▲▼は“1"、LSIは“0"であるか
ら、インバータ385、386、ノア383、384、クロックノア
382により、アドレスは、 OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 0 となる。次にタイミング7、8のとき、7、8は“1"、
▲▼は“1"、LSIは“0"であるから、モード信号/
Iがチャンネル独立を示す“1"のとき、インバータ385、
386、クロックインバータ381、アンド378〜380により、
アドレスは、 OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 ▲
▼ となる。したがって、インストラクション“ピッチモジ
ュレーション”で書込まれたチャンネル別のピッチモジ
ュレーションデータがピッチ演算中のタイミング7、8
で読出され、エンベロープ/キーコード生成回路12内部
で生成されたチャンネル独立の振幅モジュレーションデ
ータがモジュール0〜7演算中のタイミング7、8で読
出されることになる。もし、タイミング7、8でモード
信号/Iがチャンネル共通を表わす“0"ならば、アンド
372〜374、オア375〜377によりアドレスは、 OA4 OA3 OA2 OA1 OA0 0 0 0 0 0 0 ▲▼ となる。従って、全チャンネル共通の振幅、ピッチモジ
ュレーションデータを読出すことになる。次にタイミン
グ12、12P、13P、17、17P′、17PF′、18P、19P
のときは、▲▼、LSIは“1"なので、インバータ38
5、386、ノア383、384、クロックノア382、アンド378〜
380により、アドレスは、 OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 1 となる。これは第20B図の“*”を付けたアドレスに対
応するものでこれらのデータは、データ識別を上位5ビ
ットとLSBを使っているものである。尚、“**”を付
けたアドレスは、LSBを“1"とすることでデータMLjのア
ドレスと区別し、そこをダミーアドレスとしている(こ
のタイミング12ではレジスタALからレジスタBLにデー
タバスD0〜7を介して転送するのでRAM7の書込み信号が
出てしまうため)。以上のように演算用アドレス生成回
路301は動作フロー第20A図に対応するアドレス信号B0〜
11を発生する。
第25図に演算用制御信号発生回路307の詳細図を示
す。aは、クロックCKAMの条件信号、RAはRAM7からAレ
ジスタへのロード制御信号である。ここでRAM7からAレ
ジスタ上位にデータをロードするときには、Aレジスタ
下位にはオール0を入力するためにナンド387によって
▲▼を“0"にする(例えばタイミング1)。同様
に、Bレジスタ上位にRAM7からデータをロードするとき
には、Bレジスタ下位にオール0を入力するために▲
▼が“0"となる。AM、AL、BM、BLは、夫々のレジス
タのデータをデータバスD0〜7に出力するための条件信
号で、エンベロープ/キーコード生成回路12のRAM7の占
有時間は、T2が“1"のときでそのデータ出力時間の巾は
第7図の▲▼が“0"の巾だから第26図のようにA
M′、AL′、BM′、BL′が生成される。また、レジスタ
上位はA、Bとも7ビットでデータバスのMSBD7に出力
するビットがないので、A又はBレジスタ上位をデータ
バスD0〜7に出力する場合にはオア394、アンド393によ
りMSBとして、SレジスタMSBを出力する。B0′はBレジ
スタ出力をマスクする信号で、演算用タイミング信号発
生回路305からのB0、及びタイミング5、すなわちエン
ベロープレートの加減算時の加減算イネーブル信号▲
▼(後述)、タイミング14の振幅モジュレーション
減算時のモジュレーション感度が0の信号MO0(後述)
に従ってアンド395、オア396により“1"となる。A0′
は、Aレジスタの出力をマスクする信号で、演算用タイ
ミング信号発生回路305からのA0、及びタイミング5、
すなわちエンベロープレート加減算時のエンベロープ現
在値をマスクする信号E0に従って、アンド397、オア398
により“1"となる。“▲▼”は、Aレジスタの出力
を100000000000000とするもので、ピッチのエンベロー
プ演算中にエンベロープ現在値をマスクする信号E0に従
ってナンド400により“0"となる。
第27図は、エンベロープ/キーコード生成回路12で、
エンベロープフラグをロードし(タイミング0)、再び
書込む(タイミング11)までの間にCPUから転送された
インストラクションによって同一チャンネル同一モジュ
ール又はピッチのエンベロープフラグが書き替えられた
場合に、エンベロープ/キーコード生成回路12からRAM7
にエンベロープフラグを書き込むのを禁止する、書込み
禁止回路302の詳細図である。エクスクルーシブ・オア4
08〜414、ノア407は比較回路を形成し、インタフェース
/制御部11からのアドレスでチャンネル、モジュール又
はピッチに担当するビットAA0〜6と、エンベロープ/
キーコード生成回路12での演算チャンネル、モジュール
又はピッチに相当するカウンタ3の出力BC5〜11とを比
較し、一致したら“1"を出力する。第28図は書込み禁止
回路302のタイムチャートである。第27図のナンド406の
出力はインタフェース/制御部11がエンベロープ/キ
ーコード生成回路12で演算しているチャンネル、モジュ
ール又はピッチと同じチャンネル、同じモジュール又は
ピッチのエンベロープフラグを書込んだ時に“0"とな
る。第28図(1)はエンベロープ/キーコード生成回路
12でエンベロープフラグを読出した直後にインタフェー
ス/制御部11が同一チャンネル、同一モジュール又はピ
ッチのエンベロープフラグを書込んだ場合であり、は
タイミング1の後半から0となって書込みを禁止する。
尚タイミング0以前にが“0"となっていてもアオ404
によってタイミング0でフリップフロップ403は“1"に
セットされるので書込みは禁止されない。(2)はエン
ベロープ/キーコード生成回路12がエンベロープフラグ
を書込む直前にインタフェース/制御部11が同一チャン
ネル、モジュール又はピッチのエンベロープフラグを書
込んだ場合であり、はタイミング11の後半で0となっ
て書込みを禁止する。したがって、タイミング1〜11の
間に同一チャンネル、同一モジュール又はピッチのエン
ベロープフラグが、インタフェース/制御部11で書込ま
れたらエンベロープ/キーコード生成回路12からのエン
ベロープフラグの書込みを禁止する。
第29図は指数データ用アドレス生成回路306の詳細図
である。フリップフロップ415〜420、反転出力フリップ
フロップ421は演算回路308で生成された最終エンペロー
プ及び最終キーコードを指数変換/位相角生成回路13で
指数変換してメモリに書込む際の書込みアドレスを記憶
する。クロックインバータ425〜434は書込みP1アドレス
と読出しアドレスC1〜5をタイミング信号T2によって切
換えることにより、アドレス信号DA1〜5を生成する
(アドレスDA0は書込みアドレスと同じ)。指数変換さ
れたエンベロープ、及び周波数情報は、アンド422、423
によって生成されたWEE、WEF、アドレスDA0〜5によっ
て夫々メモリに書込まれる(詳細は後述)。
次に演算回路308を第30図を用いて説明する。上述し
たような第17図の制御信号によって演算回路308は第20A
図の動作フローのように動作を行っている。
第31図はAレジスタの詳細図である。Aレジスタは、
下位側FF485〜492、上位側FF493〜499およびFFへの入力
選択用クロックナンド454〜461、クロックインバータ46
2〜483、及びFF出力のバスD0〜7への出力用クロックイ
ンバータ500〜514、及び加減算器440のA入力への出力
変更用ゲート群515〜531によって構成されている。信号
RAはデータバスD0〜7と演算出力L0〜14からのFFへの入
力選択、▲▼はD0〜7を上位側FF493〜499にロー
ドする際に下位側FF485〜492にオール1を入力する信号
である。尚、下位側FF485〜492にオール1がロードされ
るのは▲▼が“0"でクロックCKALが出た時であ
る。また、信号AL′、AM′は、Aレジスタ下位又は上位
のデータをデータバスD0〜7に出力するか否かを制御す
るものである。ゲート群515〜531は加減算器440のA入
力へのデータを変更するもので、A0′が“1"ならばオー
ル0、▲▼が0ならば00000010……0(第20A図
動作フローにおけるエンベロープステップの更新処理9
F′;AM←1+sに対応)、▲▼が“0"ならば
第25図よりA0′は1なので10……0(ピッチのエンベロ
ープのスタートデータに相当)。
第32図は、Bレジスタの詳細図である。Bレジスタは
下位側FF564〜571、上位側FF572〜578、及びFFへの入力
選択用クロックナンド532〜539、クロックインバータ54
0〜562、及びデータバスD0〜7への出力用クロックナン
ド579〜593、及びシフト回路438への出力を変更するゲ
ート594〜616によって構成されている。信号RBは、デー
タバスD0〜7と演算出力L0〜14からのFFへの入力選択、
▲▼はD0〜7を上位側FF572〜578にロードする際
に下位側FF564〜571にオール1を入力する信号である。
尚、下位側FF564〜571にオール1がロードされるのは、
▲▼が“0"でクロックCKBLがでた時である。ま
た、信号BL′、BM′は、Bレジスタの下位又は上位のデ
ータをデータバスD0〜7に出力するか否かを制御するも
のである。ゲート群594〜616はシフト回路438への出力
データを変更するもので、Bが“1"ならBレジスタ上位
を出力、“0"ならばM又はSレジスタをBレジスタ上位
のかわりにシフト回路438へ出力する。B0′が“1"、B
が“1"ならば出力BI0〜14はオール0となり、B0′が
“1"、Bが“0"ならば、上位7ビットはM又はSレジス
タの出力、下位8ビットはオール0となる。又信号5が
“1"のときはBは“1"なのでB0が“0"ならば出力は1、
BO10、BO9、BO8、0……0となる。これはエンベロープ
レートデータのレンジを広げるためのデータ変換で、BO
11〜BO14によって変換されたデータのシフト又はデータ
加減算の間引き等を行なうことによって、所望範囲のエ
ンベロープの上昇下降速度を得ている。表3にBレジス
タ上位に入っているエンベロープレート;ER6、ER5……
ER0の変換を示す。
第33図はMレジスタの詳細図で、反転出力FF617〜623
はクロックCKMによりデータバスD0〜6のデータを取込
む。クロックノア624〜630は信号Mが“1"のときNレジ
スタのデータを出力するものでMが“1"、MO0が“1"の
ときオール0を出力する。
第34図にシフト制御回路447を示す。クロックインバ
ータ643〜645、クロックノア634、637、640の制御入力
により信号14が“1"のときすなわち第20A図動作フロ
ーにおける最終エンベロープの演算処理“E←A−M
(E←Eij−AMDj)”のときだけSレジスタ下位3ビッ
ト(モジュレーション感度)に応じたシフト制御信号SH
1、2、4、8を出力する。尚、シフト回路438は、SH
1、2、4、8の信号が“1"のときそれぞれ1左シフト
(×1/2)、2左シフト(×1/4)、4左シフト(×1/1
6)、8左シフト(×1/256)を行うもので、例えばSH
1、2、4、8がそれぞれ1、0、1、0ならばトータ
ルで5左シフト(×1/32)のシフトを行なうものである
(図示せず)。したがって“A←A−M(A←Eij−AMD
j)”の時はモジュレーション感度MSijに応じて各モジ
ュール毎に重み付けされ、振幅モジュレーションがかけ
られる。尚、MSijが0のときはアンド649の出力MO0が
“1"となるため、演算は“A←A−0"となりモジュレー
ションはかからない。次に12Pが“1"のとき、すなわち
第20A図動作フローにおける最終ピッチエンベロープの
計算“B←±A+B(B←±PMDj+Epj)”のときは、S
H1、2、4、8がそれぞれ、0、1、0、0となり2左
シフト(×1/4)される(演算説明は後述)。また、15P
が“1"のときすなわち動作フローにおける振幅モジュレ
ーションの補間演算“A←A±M(A←AMDj±MRj)”
のときは、MTが“0"なら、SH1、2、4、8は0、0、
1、0で4左シフト(×1/16)、MTが“1"ならSH1、
2、4、8は1、0、1、0となり5左シフト(×1/3
2)となる。ここで、前述したようにMRjはアフタータッ
チ等の検出量の前回検出量との差の絶対値であるから、
MT=“0"なら今回検出量である目標値MLjに到達するた
めには、MRjの加減算が16回必要となる。すなわち、第1
9図のタイムチャートから16×1.2288=19.6608(msec)
で到達することになる。これはmin19.6608msec毎にアフ
タータッチ等の検出データから算出したMLj、MRjをCPU
が転送すれば、音源LSI内部でデータを補間し、なめら
かなデータを生成することを意味している。また、MT=
“1"ならばMRjの加減算が32回必要となり、補間演算の
周期は、39.3216msecとなる。次にタイミング5につい
て考える。信号5が“1"であるからAND631〜633、635、
636、639、641が有効になるため、SH1、2、4、8の値
が▲▼〜▲▼によって決まり(表
4)、表3に示すようなデータのシフトが行なわれる。
尚、上記以外のタイミングでは、SH1、2、4、8は常
に0、0、0、0となるため、シフトは行なわれない。
第35図はエンベロープ制御回路448の詳細図である。
エンベロープ制御回路448は、タイミング5の演算でエ
ンベロープを上昇、下降させるか、または停止させてお
くかを制御するイネーブル信号▲▼を作るものであ
る。信号▲▼は、ナンド665により、▲▼が
“0"すなわち、ホールド中、またはが“1"すなわち、
エンベロープがステップの切替わり点におり、進むべき
方向を判定中のときは“1"となり、エンベロープを固定
させる。また、インバータ651〜654、カウンタ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〜PE
14 jとおくと加減算器440のB入力BI′0〜11、BI″12〜
14は、 ▲ ▼、▲PE13 j▼、▲PE12 j、▼……▲PE0 j▼ となる。これは、最終的なピッチのエンベロープを中心
レベルより上なら正、下なら負の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は加減算器440のB入
力側の符号で、▲▼=“0"(タイミング8、14、
16P)のとき常に“1"である。また、タイミング5又は
8のとき信号5.8が“1"のとき、P又は▲▼が
“1"、が“0"ならば、オア687、ノア686、ナンド689
により▲▼=▲▼となる(それ以外では
“1")。すなわち、 5.8;エンベロープ更新又はエンベロープと目標値との比
較 PV▲▼;ピッチの演算又はステップ0以外の時 =“0";ステップの切換わり点での方向判定でない時
(後述) にはナンド689の出力▲▼は▲▼となり、符
号BSは5のときS4、8のとき“1"(▲▼=0だか
ら)となる。また、SF2が“1"、つまり、タイミング
0、15P、16Pのときはナンド685の出力F2′はF2となる
(それ以外では“1")。すなわち、“0;周波数レートの
加減算”、“15P;モジュレーションレートの加減算”、
“16P;振幅モジュレーションと目標値の比較”のときに
はF2′はF2、符号BSは▲▼となる。また、タイミン
グ7でP=0のとき、ナンド684の出力は0、BSは“1"
となる。すなわち、動作フロー“A←A±M(0)(A
←ELij(S)±ELCij)”でピッチの演算でないときには符
号BSは“1"となる。P=1のときは符号BSはFA14とな
る。したがって、第38図の矢印で示すように、ピッチの
エンベロープレベルは反転後のデータが中心レベルより
も上;FA14=“1"のとき(第39図参照)は減算、下;FA14
=“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が有効になり、ナンド714の出力はS4′、ナンド71
5の出力は▲▼となる。▲▼は“1"なのでナ
ンド719の下入力は“1"だから▲▼が“1"、COが
“1"又は▲▼が“0"、COが“0"ならばFF720は
“0"がセットされく。これは、エンベロープ更新時にオ
ーバーフロー又はアンダーフローをしたらフラグ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、インバータ759、
アンド760、オア761により、▲▼=▲▼=0の
とき、すなわちモードがマスクのとき、又は▲▼
=0かつ▲▼=1、すなわち、ステップ0の最初に
“1"となる。尚、ノーマルモードではステップ0の最初
にA入力が0となるため、エンベロープは必ず0からス
タートすることになる。F′は動作フロー(第20A図)
の分岐のためのフラグで、オア762、763、インバータ76
4、アンド765により、タイミング9以外ではF′=F、
タイミング9では=“0"、かつS3=“0"のときにF′
=F、それ以外でF′=“0"となる。すなわち、タイミ
ング9では方向判定中、又はホールド中F′=0、それ
以外ではF′=Fとなる。次に出力BI8〜BI14について
説明する。これらはタイミング9のときだけ、エンベロ
ープフラグ制御回路446の出力となる。BI8〜10はS0〜S2
となる。BI11は、=“0"、かつエンベロープフラグが
“*0***111"でなく、かつF=“1"、F1=“1"のと
き“1"となりそれ以外は、もとの値▲EF3 ij▼となる。
すなわち、方向判定中でなく、ノーマルモードのステッ
プ7でなく、F1(エンベロープレベルの8ビット目=サ
スティンフラグ)が“1"のとき到達したら、ホールドの
フラグ▲EF3 ij▼は“1"となる。BI12は、=“1"のと
きF=“0"なら“1"となる。すなわち、=“1"のとき
判定結果が−方向ならば符号ビット▲EF4 ij▼を“1"に
する。また、=“1"、かつF=“0"以外の時は、ナン
ド754の出力が“0"すなわちサスティンレベル到達時に
はBI12を“0"とする。また、▲▼=1すなわちステ
ップの切換わり点にいる時はBI12を0とする。それ以外
ではBI12は元の値▲EF4 ij▼となる。BI13は=“0"、
かつ▲▼=1、かつF=1のとき、すなわち、方向
判定中でなく、サスティン中でない時到達したら“0"と
なり、それ以外は“1"となって、ステップの切換りを示
すフラグとなる。レジスタA、Bの上位をRAM7に書込む
時8ビット目には、Sレジスタの8ビット目をSMSBによ
って書込む。以上説明したように第42図エンベロープフ
ラグ制御回路はエンベロープフラグに応じた信号▲
▼、、F′、E0を出力するとともにエンベロープフ
ラグの設定を行なう。エンベロープフラグはキーオン
後、通常、ステップ0からスタートし(ピッチエンベロ
ープは方向判定後スタート)、到達したらステップに1
が加算され、ノードフラグ▲EF5 ij▼をノードに表わす
0にして方向判定を行い、符号フラグ▲EF4 ij▼をセッ
トして次ステップをスタートする。もし、到達した時サ
スティンフラグ(エンベロープレベル ELij(S)のMS
B)が“1"ならホールド状態となりエンベロープは固定
される。その後キーオフがCPU3から来たらホールドが解
除されて次ステップをスタートする。尚、ループモード
でサスティンフラグが最後のステップ7にあったら、エ
ンベロープフラグは011*0111←01101111+1=0101000
0となりステップ0に戻るためエンベロープが最初から
くり返される。
以上第30図の演算回路を説明したが、このような動作
を行なうことによって、演算回路は第20A図の動作フロ
ーのような演算を実行し、最終エンベロープ及び合成キ
ーコードを生成し、指数変換/位相角生成回路13に転送
する。
第43図は、外部RAMインタフェース16の詳細図であ
る。第44図(a)はインターフェース/制御部11から、
(b)はエンベロープ/キーコード生成回路12からのRA
Mへの書込みタイミングである。アドレス信号RA0〜11
は、インタフェース/制御部11からのアドレスAA0〜1
1、エンベロープ/キーコード生成回路12からのアドレ
スBA0〜11を、夫々のRAM占有時間(第3図)に基づいて
クロックインバータ777〜801で切換えることにより得ら
れる。書込みイネーブル信号▲▼は、インタフェ
ース/制御部11からの書込み信号▲▼が“0"となっ
た時(ただし、内部メモリの使用を示す信号IDが“1"で
ない時)、または、エンベロープ/キーコード生成回路
12からの書込み信号▲▼が“0"となった時、タイミ
ング信号▲▼が“0"の巾で“0"となる。また、出力
イネーブル信号▲▼は▲▼、▲▼が共に
“1"のとき信号CK2が“0"の巾で“0"となる。データRD0
〜7は▲▼又は▲▼が“0"のとき、信号▲
▼が“0"の巾で、音源LSI6からの出力となる。
第45図は、第2図の指数変換/位相角生成回路13のブ
ロック図である。エンベロープ/キーコード生成回路12
で生成されたエンベロープ及びキーコードは、クロック
CKEでフリップフロップ(FF)1000に取込まれる。FF100
0の出力は指数ROM1001で変換されてエンベロープレジス
タ1002、周波数情報レジスタ1004に入力される。第46図
はエンベロープレジスタ1002の詳細図である。エンベロ
ープレジスタ1002は、2つのRAM(ENVERAM、ENVORA
M)、FF1014〜1019など、インバータ1027、クロックイ
ンバータ1020〜1026、1028〜1033など、及びインバータ
1008、1010、ナンド1009、1011によって構成され、第48
図(a)のタイムチャートのように動作する。カウンタ
1(第18図)はエンベロープ/キーコード生成回路12の
基本タイミングを示しており、FF415〜421(第29図)の
データ出力はタイミング0から切替わる。FF415〜420の
データはエンベロープレジスタ1002、周波数情報レジス
タ1004への書込みチャンネル(DA0〜2)、モジュール
(DA3〜5)を示すアドレスに対応し、T2が0のときの
みDA1〜DA5のデータとなる(DA0は常にFF415の値と対
応)。また、FF1000の出力は第48図のように切替わり、
WEEがタイミング0で“1"となるので、DA0が“0"のとき
(偶数チャンネル)にはナンド1009が“0"となるのでT2
=“0"のときにタイミング信号Wが“1"の巾でENVERAM1
012の所定アドレス(FF416〜420の反転)にデータが書
込まれる。またDA0が“1"のとき(奇数チャンネル)に
はナンド1011が“0"となり、ENVORAM1013にデータが書
込まれる。T2が“1"のときは、アドレスDA1〜5は、タ
イミング信号発生回路159(第6図)の出力C1〜5の反
転であるから、C1〜5の値に対応したチャンネル、モジ
ュールのデータを読出す、バッファ1020〜1026、1028〜
1033、インバータ1027により、T2=“1"のときには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)Ei+1jsin(EijsinPij) オペレーションコードは ij **000000(上位4ビットは0010でもよい) i+1j 101*0000 i+2j 000***** となる。これにより、表6のように、モジュールi、チ
ャンネルjの波形は、位相角としてPが選択され、その
出力E″sinX′はモジュールi+1、チャンネルjの位
相となる。モジュールi+1、チャンネルjの波形出力
E″sinX′は楽音出力と累算される。尚、制御信号C6〜
9は位相Xから8ビット遅れで出力される波形に対する
ものだから、例えば、i+1、jの制御信号はモジュー
ルi、チャンネルjの波形出力に対するものとなってい
る。
2)Ei+2jsin(EijsinPij-Ei+1jsinPi+1j) オペレーションコードは、 ij **000000(上位4ビットは0010でもよい) i+1j 10000000 i+2j 111*0000 i+3j 000***** となる。これにより、表6のようにモジュールi、チャ
ンネルjの波形は位相角としてPが選択され、その出力
E″sinX′はシフトレジスタ1133に入力される。モジュ
ールi+1、チャンネルjの波形は位相角としてPが選択
され、その波形はシフトレジスタ1134の出力Rから減算
されてモジュールi+2、チャンネルjの位相角となる。
そして、モジュールi+2、チャンネルjの波形出力E″s
inX′は楽音出力として累算される。以上のようにオペ
レーションコードによって、波形生成が様々に行なわれ
ることによって、多くの音色の楽音を発生できる。出力
波形は生成された波形を順次累算していくが、第52図で
C0〜C5の値が“9"のときに新たな演算サイクルの波形が
FF1128に取込まれるが(出力されない波形=位相となる
もの)、その時のFF1128の出力が前サイクルの波形の累
算値であるので、それをラッチ1139で取込む(CKL)こ
とによってラッチ1139は各演算サイクル毎の波形最終累
算値を出力することになる。尚、ゲート回路1140は信号
OMが“0"のとき出力をオール0(中心レベル)にするも
ので、リセット後モードデータがセットされるまでそれ
を維持する。すなわち、パワーオン等により外部リセッ
ト信号が発生すると、タイミング信号発生回路159によ
り内部リセット信号が発生し、これが第6図のモードの
ラッチ156をリセットし、その出力OMを“0"にするた
め、ゲート回路1140の出力、すなわちDAC8に送られる信
号出力は無音レベルのオールゼロに置かれる。一方、CP
U3はインタフェース/制御部11を通じて、外部RAM7に音
色等の所要データを設定し、最後にインストラクション
“モード”を送ってモードラッチ156〜158をセットす
る。これによりOMは“1"となり、ゲート回路1140はイネ
ーブルされ、波形生成回路15で演算した波形信号がDAC8
に送られるようになる。つまり、電源投入後、外部RAM7
における所要データの設定が完了し、音源LSI6が正規の
楽音信号を合成可能になるまでの間、DAC8への入力は無
音状態のレベルに維持されるようになっている。
[考案の効果] この考案によれば、CPUからポリフォニックの楽音合
成装置へのデータの転送効率、特にモジュレーションデ
ータのデータ転送効率を改善することができる。またCP
Uが取り扱う演奏系が複数系統あって系統別にモジュレ
ーションを付けたいような場合には、CPUから楽音合成
装置へのデータ転送の転送形式をチャンネル独立のモジ
ュレーションデータ転送方式とすることによりその目的
を達成できる。この考案は一方ではモジュレーションデ
ータのデータ転送効率を良くすると共に、CPU側の演奏
処理の形態、事情(1つの演奏系を使用するのか複数の
演奏系をするか等の事情)に合わせてそれに対応できる
機能を楽音合成装置に持たせたものである。
【図面の簡単な説明】
第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、6……音源L
SI、7……外部RAM、8……デジタルアナログ変換器、
9……アンプ、10……スピーカ、308……演算回路、301
……演算用アドレス生成回路、157……ラッチ。

Claims (3)

    (57)【実用新案登録請求の範囲】
  1. 【請求項1】CPU(3)にシステムバス(▲▼、/
    D、▲▼、DBO−7)を介して接続され、CPU(3)
    から当該システムバスを介して与えられる入力に従って
    複数の発音チャンネルの楽音信号を電子的に合成する楽
    音合成装置において、 上記CPUから上記システムバスを介して与えられるモジ
    ュレーションデータ(AMD、PMD)に従って、合成する楽
    音信号にモジュレーション効果を付加するモジュレーシ
    ョン付加回路手段(308)と、 上記モジュレーション付加回路手段を制御する制御回路
    手段と、 を有し、 上記制御回路手段は、CPUから上記システムバスを介し
    て与えられるモジュレーションデータが発音チャンネル
    独立の転送形式、即ち該当する発音チャンネルの数分の
    データ転送回数を要する転送形式でチャンネル別に転送
    される場合には、上記モジュレーション付加回路手段
    が、該当する発音チャンネルで合成する楽音信号につい
    て、互にチャンネル独立のモジュレーションデータに従
    ってモジュレーション効果を付与し、CPUから上記シス
    テムバスを介して与えられるモジュレーションデータが
    発音チャンネル共通の転送形式、即ち1発音チャンネル
    分のデータ転送回数しか要しない転送形式でチャンネル
    共通に転送される場合には、上記モジュレーション付加
    回路手段が、全ての発音チャンネルで合成する楽音につ
    いて、共通、即ち同一のモジュレーションデータに従っ
    てモジュレーション効果を付与するように当該モジュレ
    ーション付加回路手段を制御する、 ことを特徴とする楽音合成装置。
  2. 【請求項2】実用新案登録請求の範囲第1項記載の楽音
    合成装置において、 CPUから上記システムバスを介して与えられるデータ
    (モジュレーションデータを含む)を記憶するための記
    憶手段を更に有し、 この記憶手段には発音チャンネル独立の転送形式で転送
    されるモジュレーションデータについては、該当する発
    音チャンネル毎に固有のチャンネル値を含むチャンネル
    固有アドレスに当該モジュレーションデータが書き込ま
    れ、発音チャンネル共通の転送形式で転送されるモジュ
    レーションデータについては、全ての発音チャンネルに
    共通の特定値を含むチャンネル共通アドレスに当該モジ
    ュレーションデータが書き込まれ、 上記モジュレーション付加回路手段を制御する上記制御
    回路手段は、上記モジュレーション効果付与手段が任意
    の発音チャンネルについてモジュレーション効果を付与
    するための演算処理を実行する際に、モジュレーション
    データの転送形式が発音チャンネル独立の転送形式であ
    る場合には、当該発音チャンネルのためのモジュレーシ
    ョンデータを上記チャンネル固有アドレスを指定して読
    み出してモジュレーション効果付与手段に供給し、一
    方、モジュレーションデータの転送形式が発音チャンネ
    ル共通の転送形式である場合には、当該発音チャンネル
    のためのモジュレーションデータを、上記チャンネル共
    通アドレスを指定して読み出してモジュレーション効果
    付与手段に供給する、ことを特徴とする楽音合成装置。
  3. 【請求項3】実用新案登録請求の範囲第1項または第2
    項記載の楽音合成装置において、 上記制御回路手段は、CPUから上記システムバスを介し
    て与えられる、モジュレーションデータの転送形式をチ
    ャンネル独立かチャンネル共通のいずれにするかを指定
    する転送形式指定信号(/I)を受け、それを記憶する
    フラグ手段(157)を含む、 ことを特徴とする楽音合成装置。
JP1987151606U 1987-10-02 1987-10-02 楽音合成装置 Expired - Lifetime JP2527652Y2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1987151606U JP2527652Y2 (ja) 1987-10-02 1987-10-02 楽音合成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1987151606U JP2527652Y2 (ja) 1987-10-02 1987-10-02 楽音合成装置

Publications (2)

Publication Number Publication Date
JPS6455994U JPS6455994U (ja) 1989-04-06
JP2527652Y2 true JP2527652Y2 (ja) 1997-03-05

Family

ID=31425797

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1987151606U Expired - Lifetime JP2527652Y2 (ja) 1987-10-02 1987-10-02 楽音合成装置

Country Status (1)

Country Link
JP (1) JP2527652Y2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2734148B2 (ja) * 1989-12-20 1998-03-30 ヤマハ株式会社 楽音制御パラメータ供給装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56793A (en) * 1979-06-15 1981-01-07 Fujitsu Ltd Line exchange system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56793A (en) * 1979-06-15 1981-01-07 Fujitsu Ltd Line exchange system

Also Published As

Publication number Publication date
JPS6455994U (ja) 1989-04-06

Similar Documents

Publication Publication Date Title
US4882963A (en) Electronic musical instrument with editing of tone data
JP2527652Y2 (ja) 楽音合成装置
US4833963A (en) Electronic musical instrument using addition of independent partials with digital data bit truncation
JPH0738956Y2 (ja) 楽音合成装置
JP2718039B2 (ja) 楽音合成装置
JP2753511B2 (ja) 楽音合成装置
JPH0738955Y2 (ja) 楽音合成装置
JP2722460B2 (ja) 楽音合成装置
JPS6042953B2 (ja) 電子楽器用ウエイブジエネレ−タ
JPS6042955B2 (ja) 電子楽器用ウエイブジエネレ−タ
JPS5842478B2 (ja) 電子楽器におけるノイズ除去装置
US4936179A (en) Electronic musical instrument
JPS6042952B2 (ja) 電子楽器用ウエイブジエネレ−タ
JPH04161994A (ja) 楽音発生装置
JP2707885B2 (ja) ビット数変換装置
JPS59123887A (ja) 楽音発生装置
JPS5839B2 (ja) 電子楽器
JP2798913B2 (ja) 楽音波形生成装置及び楽音波形生成方法
JP3116447B2 (ja) デジタル信号処理プロセッサ
JP3684078B2 (ja) 楽音波形データ記憶装置、楽音波形データ記憶方法、楽音波形データ再生装置及び楽音波形データ再生方法
JPS5846036B2 (ja) 電子楽器
JPS583237B2 (ja) デンシガツキ
JPH02125296A (ja) 電子楽器
JP2950893B2 (ja) 楽音信号発生装置
JPS6034757B2 (ja) 電子楽器