JPH0738955Y2 - 楽音合成装置 - Google Patents

楽音合成装置

Info

Publication number
JPH0738955Y2
JPH0738955Y2 JP1987151604U JP15160487U JPH0738955Y2 JP H0738955 Y2 JPH0738955 Y2 JP H0738955Y2 JP 1987151604 U JP1987151604 U JP 1987151604U JP 15160487 U JP15160487 U JP 15160487U JP H0738955 Y2 JPH0738955 Y2 JP H0738955Y2
Authority
JP
Japan
Prior art keywords
envelope
data
level
pitch
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1987151604U
Other languages
English (en)
Other versions
JPS6455992U (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 JP1987151604U priority Critical patent/JPH0738955Y2/ja
Publication of JPS6455992U publication Critical patent/JPS6455992U/ja
Application granted granted Critical
Publication of JPH0738955Y2 publication Critical patent/JPH0738955Y2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【考案の詳細な説明】 [考案の技術分野] この考案は楽音合成装置に関し、特に、ピッチエンベロ
ープ(周波数エンベロープ)の制御技術に関する。
[考案の背景] 楽音合成装置におけるピッチエンベロープは、生成され
る楽音について、その音高の時間変動特性を基本的に決
定するパラメータである。
最近の技術として、このようなピッチエンベロープに、
タッチレスポンスや、キースケーリング等を反映させる
試みがある。すなわち、タッチレスポンス等のデータを
ピッチエンベロープの目標値の変更データとして使用す
るわけである。ここにおいて、目標値ないしピッチエン
ベロープレベルをELで表わし、レベルの変更データをEL
Cで表わすと、変更後のピッチエンベロープレベルEL
(変更)は、 EL(変更)=EL−ELC (式1) で演算されている。
ELCをタッチレスポンスデータとすると、タッチの強い
ときほどELCは小さな値をとる。当初、ピッチは中心レ
ベル、すなわち、鍵に割り当てた基準の音高にあるとす
ると、ELがこの中心レベルより高いときには、(式1)
によるとタッチの強いときほど、高い目標値EL(変更)
が設定されるため、タッチの強いときほど音高の変動幅
が広くなる。一方、ELが中心レベルより低いとすると、
タッチの弱いときほど低い目標値EL(変更)が設定さ
れ、タッチの強いときほど、音高の低下量が少なくな
る。これは、感覚的にいって、不自然であり、タッチで
ピッチを振らせる場合に、操作しずらいという問題があ
った。
[考案の目的] この考案は上述の背景に鑑みてなされたもので、タッチ
レスポンス等によるピッチエンベロープへの反映が自然
に行われる楽音合成装置を提供することを目的とする。
[考案の要点] この考案は上記の目的を達成するために、CPUから音源
側に与えられたピッチエンベロープレベルが中心レベル
より低いときには、タッチレスポンス等のピッチエンベ
ロープ変更データにより、ピッチエンベロープを増大さ
せる方向に変更し、ピッチエンベロープレベルが中心レ
ベルより高いときにはピッチエンベロープレベル変更デ
ータによりピッチエンベロープレベルを減少させる方向
に変更するレベル変更回路手段を設けたことを特徴とす
る。
[考案の作用、展開] この考案によれば、ピッチの目標値であるピッチエンベ
ロープレベルが、中心レベルを対称軸として、ピッチエ
ンベロープ変更データにより、中心レベルに近づく方向
に変更される。したがって、ピッチエンベロープ変更デ
ータがタッチレスポンスデータである場合、タッチの強
いときほど、鍵の基準音高レベルである中心レベルから
隔ったピッチが目標値として設定されることになり、自
然な感覚でタッチ操作を行うことができる。
なお、実用新案登録請求の範囲には、第1項を初めとし
て、各構成要素の後にかっこ入りで符号を記入してある
が、これは、後述する図示実施例における対応要素の参
照符号を示している。もちろん、このことは、本考案が
実施例に限定されるという意味ではなく、単に対応関係
を示したにすぎない。
例えば、第1項におけるELpj(S)←ELpj(S)+ELC
pjと、ELpj(S)←ELpj(S)−ELCpjの式は例示であ
り、この代りに、例えば、変更データELCpjの代りに、
重み係数の付いた変更データを使用してもよい。
第2項は、変更後のピッチエンベロープレベルが中心レ
ベルをクロスしたときに中心レベルに制限する回路手段
について述べている。この制限回路手段は、音高に変動
を加えない通常の演奏の場合に特に有効な手段である。
この場合、CPUから中心レベルのピッチエンベロープレ
ベルを与えておけば、変更データによる変更後のピッチ
エンベロープは中心レベルをクロスすることになるが、
この制限回路手段の働きにより、中心レベルに固定さ
れ、鍵の基準音高が保たれることになる。
第3項の構成は、擬似ポルタメント効果をもたらすこと
ができる。すなわち、同項記載のフラグに、鍵の押し替
えの方向の値をセットすれば、例えば、前回の押鍵の際
に、ピッチを中心レベルから上昇させ、今回の高い鍵の
押鍵の際に、ピッチを中心レベルに向けて上昇させるこ
とにより、ポルタメント効果がかかることになる。
[実施例] 第1図は本考案に係る電子楽器の機能図である。CPU3は
汎用マイコンで、制御プログラムに従って、鍵盤1、ス
イッチ2を走査して押鍵、音色選択等を検出し、バス上
に配置されたROM4、RAM5等を使って音色データ、発音制
御データを生成して音源LSIの発音を制御する。音源LSI
6は、後で詳述するが外付けRAM7を楽音生成のための演
算用バッファとして利用して楽音を生成し、DAC(デジ
タルアナログ変換器)8に転送する。楽音信号はDAC8で
アナログ信号に変換され、アンプ9で増幅されてスピー
カ10によって報音される。
第2図は、本考案を適用する音源LSI6の動作を説明する
ためのブロック図である。音源LSI6は、振幅エンベロー
プ及びピッチ変動を含んだキーコード等の生成のため
に、RAM7を音色データ用メモリ、又は演算経過データ用
メモリとして使う。尚、RAM7は第3図に示すように、40
0nsec毎にインタフェース/制御部11(インタフェース
占有時間)とエンベロープ/キーコード生成回路(演算
回路占有時間)に交代で占有され、CPUからのデータ書
込み及びエンベロープ等の演算のためのアクセスに対処
する。
まず、インタフェース/制御部11の動作を説明する。CP
U3からは音源LSI6に対して音色データ又は発音制御デー
タが転送されるが、音源LSI6ではデータバスDB0〜7に
あるデータを▲▼がLOWのとき▲▼の立上りエ
ッジで取込む。その際、/DがLOWならばデータバスDB0
〜DB7のデータをインストラクション、/DがHIGHなら
ばそのインストラクションに付属するデータとして取込
む(第4図参照)。尚、インストラクションは続いて転
送されるデータの種類を示している。インタフェース/
制御部11はCPU3からのインストラクション及びデータを
受けて、そのインストラクションに対応するRAM7のアド
レスAA0〜11と書込み信号▲▼を生成し、外部RAMイ
ンターフェース16を介して外部RAM7に転送されたデータ
を格納する。ただし、CPU3から転送されたデータが特殊
なものの場合は内部メモリに格納する。例えば転送され
たデータがオペレーションコード(波形生成のための制
御データ)の場合には、外部RAM7への書込みは禁止さ
れ、OCレジスタ14への書込み信号WOが発生することによ
り、OCレジスタに書込まれる。
エンベロープ/キーコード生成回路12は、外部RAM7に書
込まれたデータをアクセスするためにアドレスBA0〜11
及びエンベロープの演算経過データ等の書込み信号▲
▼を発生する。それによって外部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が生成され、フリップフロップ23
9、240によってV1、W1が生成される。また、フリップフ
ロップ243によってT1が生成される。これらの信号から
インバータ242、245、アンド244、246〜248によって
W、▲▼、▲▼、CK1、CK2が生成される(第7
図)。カウンタA:249はクロックCK2を分周するバイナリ
カウンタで、CK2の立上りで変化する。カウンタ出力の
うちQ1〜Q5は読出しのためのアドレス信号C1〜C5として
エンベロープ/キーコード生成回路12、及びOCレジスタ
14に出力される。また、カウンタ出力Q0、Q1から2相フ
リップフロップ250、251、フリップフロップ252、イン
バータ253、アンド254−1〜254−4によってタイミン
グ信号T2、T3、CKP、CKQ、CKW、CKRが生成される(第8
図)。また、インバータ255−1〜3、オア256、アンド
257から▲▼、CKLが生成される(第52図)。ま
た、カウンタA:249のCARRY OUT(カウント値127のとき
“1")からはアンド258でCKRTが生成され、この信号は
外部からのリセット信号をサンプリングするクロックと
して用いられる。クロックCKRTによりフリップフロップ
260、261でリセット信号をサンプリングし2度以上外部
リセット信号をアンド262で検出したら内部リセット信
号が生成される。したがって内部リセット信号は第8図
のようになる。その時第17図のカウンタB303は同期リ
セットカウンタなので第8図のようにリセット後の動作
を行なう。
次に、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にはCPU3
からの信号が入るわけだが、第4図のように信号が入っ
た時インバータ100〜103、ナンド104、105によって▲
▼、▲▼が発生する。信号▲▼が発生
するとバスDB0〜7のデータがインバータ106〜113を介
してラッチ146〜153に▲▼の立上りで取込まれると
ともにカウンタ191、フリップフロップ186、192〜195を
リセットする。ラッチ149〜153の出力はインストララク
ションデコーダ154に入力され、それによって必要な制
御信号が発生する。インストラクションデコーダは第10
図のようにインバータ265〜267、ナンド269〜277、アン
ド278で構成されており、各信号は表2のようになる。
例えば、周波数比のインストラクションに対しては、WB
とWTが論理“1"となる(WB=“1"、▲▼=“0") まず、外部RAM7に書込まれるデータのうち、各チャンネ
ルの各モジュールあたり1バイトのデータ(ハイリリー
スレート、モジュレーション感度、エンベロープレート
変化、エンベロープレベル変化、エンベロープレート、
エンベロープレベル)の書込み動作を説明する(第11図
参照)、CPU3からのインストラクション書込みに応答し
て、信号▲▼が“0"になる。そのとき、バスDB0
〜7のインストラクションはインバータ106〜113で反転
されてラッチ146〜153に取込まれるとともに、カウンタ
191、フリップフロップ192〜195、186がリセットされ
る。そしてインストラクションデコーダ154の出力WBが
“0"となるのでナンド172の出力は常に“1"となり、
▲▼が“1"なのでオア168、170、アンド169によっ
てCK12はCKQとなる。次にCPU3からのデータ書込により
信号▲▼が“0"→“1"になると、フリップフロッ
プ173は▲▼の立上りで“1"を出力し、フリップ
フロップ174の出力は“1"となる。その後、フリップ
フロップ173、175はCKRに同期してリセットされるので
はCKRの1区間だけ“1"となる。また、インストラク
ションデコーダ154の出力▲▼、IDは“1"、“0"、
は“0"なのでオア178、179、インバータ180、181、ナ
ンド182により信号▲▼はが“1"、かつT2が“0"
のとき“0"となる。その時、インストラクションデコー
ダ154の出力▲▼、WBは“1"、“0"なので、ノア161
の出力は▲▼が“0"、▲▼が“0"のときだけ
“1"となり、バスD0〜7のクロックインバータ122〜129
の出力が出力される。カウンタ191は、インストラクシ
ョンデコーダ154の出力▲▼が“1"なので、が
“1"のときのCKQがそのクロックCKCとなり、CKC毎に
0、1、2、……と歩進され、その値はフリップフロッ
プ192〜195、インバータ196〜199で2度反転してモジュ
ール番号を表わすアドレスAA0〜AA3となる。アドレスAA
4〜AA6はインストラクションのラッチ146〜153の下位3
ビットの反転であるからチャンネル番号を表わす値“jj
j"となる。また、アドレスAA7〜AA11はインストラクシ
ョンデコーダ154の出力EF、WBが“0"だから、ノア204、
オア205、207の右入力は“0"、アンド209、211の右入力
は“1"、オア203の左入力は“0"なので、インストラク
ションのラッチ146〜153の上位5ビットの反転となり、
インストラクションの上位5ビットそのものとなる。以
上のように各チャンネル各モジュールあたり1バイトの
データの書込みの場合、インストラクションと一致する
アドレスに対して第11図のような書込み用の信号が生成
される。ここで各チャンネルの識別はインストラクショ
ン下位3ビットでなされるが、モジュールの識別はイン
ストラクション転送後から何番目のデータかということ
をカウンタ191で係数することによって行なわれてい
る。したがって、1つのインストラクションに複数のデ
ータが後続する連続転送フォーマットにおいて、どのデ
ータがどのモジュールに対するデータであるかはインタ
フェース/制御部11で自動的に識別されるので、CPU3は
モジュール別にインストラクションを送る必要はなく転
送効率が上る。
次に外部RAM7に書込まれるデータのうち各チャンネル各
モジュールあたり2バイトのデータ(周波数比、キーコ
ード、モジュレーションレベル/レート、ピッチモジュ
レーション)の書込み動作を説明する(第12図参照)。
CPU3からのインストラクション書込みに応答し、▲
▼が0になり、それによって、インストラクションが
ラッチ146〜153に取込まれるとともに、カウンタ191、
フリップフロップ186、192〜195がリセットされる。フ
リップフロップ176の出力は“0"となっているのでナン
ド172の上入力は“1"、インストラクションデコーダ154
の出力WBは“1"なのでナンド172の出力は“0"となっ
ており、また、ノア167の入力は共に“0"なのでオア16
8、170、アンド169により、CK12はCKQとなる。CPU3から
のデータの書込みにより、▲▼が“0"→“1"にな
ると、フリップフロップ114〜121がデータを取込むと共
にフリップフロップ175は“1"を出力し、フリップフロ
ップ176は“1"、インバータ171は“0"、ナンド172の出
力は“1"となる。そのとき、ノア167の上入力は“1"
なのでCK12はCKWとなる。再び▲▼が“0"→“1"
になると、フリップフロップ130〜137は前段のデータ
を、フリップフロップ114〜121はバスのデータを取込む
と共に、フリップフロップ173の出力は“1"となり、フ
リップフロップ174の出力も“1"となる。が“1"と
なるとフリップフロップ173、175はリセットされるの
で、はCKRの2区間だけ“1"となる(∵CK12=CKW)。
インストラクションデコーダ154の出力▲▼は
“1"、IDは“0"であるからナンド182の出力▲▼
は、が“1"の時にT2が“0"の時、すなわち2回“0"と
なる。また、WBが“1"となるので、▲▼が“0"でT3
が“0"のとき▲▼が“0"の幅でクロックインバータ
122〜129がデータを出力し、▲▼が“0"でT3が“1"
のとき▲▼が“0"の幅でクロックインバータ138〜1
45がデータを出力する。ここでデータは下位(レベ
ル)、上位(レート)の順でCPUから書込まれるので、
バスD0〜7には上位(レート)、下位(レベル)の順で
データが出力され外部RAM7に入力される。カウンタ191
は、インストラクションデコーダ154の出力▲▼が
“0"なのでが“1"のときのCKWがそのクロックCKCとな
り、0、1、2……と歩進されてモジュール番号を表わ
すアドレスAA0〜AA3となる。アドレスAA4〜AA6はインス
トラクションのラッチ146〜153の下位3ビットの反転で
あるからチャンネル番号を示す値“jjj"となる。また、
アドレスAA7〜AA11は、インストラクションデコーダ154
のEFが“0"、WBが“1"だから、T3が“0"のときAA7を
“0"にするインストラクション上位5ビットとなり、T3
が“1"のときAA8〜11がインストラクション上位4ビッ
トでAA7が“1"となる。つまり、2バイトデータの第1
バイトアドレスと第2バイトアドレスの区別はAA7を切
り換えることにより行なわれる。尚、チャンネルの識別
とモジュールの識別に関してはチャンネル、モジュール
当り1バイトのデータ書込みの場合と同様である。ここ
までの説明から明らかなように、本実施例によれば、イ
ンタフェース/制御部11に転送データのバイト構成をイ
ンストラクションに基づいて識別する手段が組み込まれ
ているため、CPU3から音源LSI6に対し、インストラクシ
ョンに可変のバイト構成のデータが後続する可変フォー
マットでデータ転送を行なうことができ、ダミーデータ
なしの最適の転送効率を達成できる。
次にインストラクション“フラグセット”について述べ
る(第13図参照)。“フラグセット”は外部RAM7にエン
ベロープフラグをセットする命令である。信号の生成
までは1バイトデータの場合と全く同じである。インス
トラクションデコーダ154の出力EFが“1"なので、が
“0"→“1"になったとき、アンド183の出力が“1"とな
り、▲▼が“0"になった時にリセットされていた
フリップフロップ186の出力は“1"となる。また、イ
ンストラクションデコーダ154の出力▲▼は“1"な
のでカウンタ191のクロックCKCはが“1"の間CKQと一
致し、カウンタ191は歩進される。カウンタ191の値が9
になるとCKRに同期してオア184、ナンド185により、フ
リップフロップ186がリセットされるので、は▲
▼〜▲▼が0〜8の間(CKRの9区間)“1"と
なり、ナンド182の出力▲▼は各カウント値毎T2が
“0"のときに“0"となる。その時、インストラクション
デコーダ154の出力▲▼、WBは“1"、“0"なので、
ノア161の出力は▲▼“0"、▲▼が“0"のとき
だけ“1"となり、バスD0〜7にはクロックドインバータ
122〜129の出力が出力される。アドレスAA0〜AA3はカウ
ンタ191の値、アドレスAA4〜AA6はインストラクション
の“jjj"、AA7〜AA11はEFが“1"、WBが“0"だから“001
10"となる。したがって、インストラクション“フラグ
セット”ではモジュール0〜8に同じデータが自動的に
書込まれることになる。
次にインストラクション“キーオフ”について述べる
(第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"となるためRAM7
への書込みは発生せず、▲▼が“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(〃) ▲PEL j▼; 〃 下位 j=0〜7(〃) ▲FRM ij▼;周波数比上位 i=0〜7(〃)、j=0
〜7(〃) ▲FRL ij▼; 〃 下位 i=0〜7(〃)、j=0
〜7(〃) ▲MRj▼;モジュレーションレート j=0〜7(〃) ▲MLj▼;モジュレーションレベル j=0〜7(〃) のように対応している。第20A図のフローで、左側にあ
る数字はタイミングを意味しており、0〜11はカウンタ
1の値そのもの、1P〜19はカウンタ3の値が8
(ピッチの演算)以外のときのカウンタ1の値12〜19、
12P〜19Pはカウンタ3の値が8(ピッチの演算)のとき
のカウンタ1の値12〜19に相当する。
第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▼に対応するアドレスに書込む。1
0)次に到達、未到達のいずれの場合にも、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レジスタにあるピッチモジュレーション;PMDj
加減算(F2に応じて)し、最終的なピッチのエンベロー
プ;PEjとしてBレジスタに格納する。そのとき、Aレ
ジスタ上位に振幅モジュレーション上位;▲AMDM j▼を
ロードしておく。13P)振幅モジュレーション下位;▲A
MDL j▼をAレジスタ下位にロードする。14P)モジュレ
ーションレート;MRjをMレジスタにロードする。15P)
AMDjをMRjをF2に応じて加減算するとともにモジュレー
ションレベル;MLjをMレジスタにロードする。16P)振
幅モジュレーション;AMDjを更新した値とモジュレーシ
ョンレベルを比較する(その時ピッチのエンベロープ上
位をRAM7の▲PEM j▼に書込む)。振幅モジュレーション
が目標値;MLjに到達していないなら、17P▲▼)ピ
ッチのエンベロープ下位▲PEL j▼をRAM7に書込み、到達
しているのなら、17PF′)目標値;MLjをAレジスタに
ロードするとともに、▲PEL j▼をRAM7に書込む。Aレジ
スタの目標値を越えない振幅モジュレーションのデータ
を18P)上位、19P)下位とRAM7に書込む。尚、20P〜31P
は演算タイミングの調整のためのNOPである。ここで、
振幅モジュレーションはCPUから与えられるアフタータ
ッチ等の検出量の前回検出量との差の絶対値;MRj、符
号;▲MR7 j▼、及び今回検出量;MLjのデータ(第21図
参照)を基にして、補間することによって生成されてい
る。
MR(1)=ML(0)−ML(1)、MR(1)7=0 MR(2)=ML(1)−ML(2)、MR(2)7=0 MR(3)=ML(2)−ML(3)、MR(3)7=0 MR(4)=ML(4)−ML(3)、MR(4)7=1 : : : : : : : : 第22図は第17図のエンベロープ/キーコード生成回路12
が上述の動作を行なうための基本的信号を発生するため
の演算用タイミング信号発生回路305の詳細図である。
図示のように、演算用タイミング信号発生回路305はROM
化(ファームウェア)化された構造をもっており、その
動作についてエンベロープ/キーコード生成回路12の主
な動作をまとめた第20B図を参照して説明する。入力BC0
〜4はカウンタB303の中のカウンタ1の出力で基本タイ
ミングである。又、PはカウンタB303の中のカウンタ3
のMSBすなわちピッチの演算中“1"の信号であり、F′
ば動作フローの分枝フラグF′に対応している。図中
0、1、……、9F′、12Pはタイミングに相当し、夫
々、タイミング0、タイミング1、……、F′=1のと
きのタイミング9、P=1のときのタイミング12を意味
している。第22図の中で「BW0」はエンベロープ/キー
コード生成回路12からRAM7のデータが書込まれるための
原信号で、第20B図の“データバスD0〜7"にレジスタ出
力が出る時のみ“1"となっている。LSIにはアドレスのL
SBを強制的に“1"とするもので後述するようにタイミン
グ12、12P、13P、17、17P▲▼、17PF′、18P、
19Pで“1"となる。▲▼はアドレス下位4ビット
(モジュール)をオール0にするもので第20B図のデー
タにiのINDEXがついていないタイミングで“1"とな
る。OA0〜4は原アドレス信号で、第20B図の“アドレ
ス”に対応している。ただし、タイミング1、5の“SS
S"は原アドレスOA0〜2のかわりのエンベロープフラグ
(Sレジスタ)の下位3ビット(ステップ)がアドレス
として採用されることを意味している。a〜kは第23図
に示すようにクロック発生回路304の出力である各種ク
ロック、CKAM、CKAL、……、CKE等を生成するための信
号で、第20B図“クロック”のタイミングで“1"とな
る。RA、RBは夫々Aレジスタ、BレジスタるRAM7からの
データをロードする時“1"となる信号で、第20B図“A
レジスタ入力”、“Bレジスタ入力”に対応している。
AM、AL、BM、BLはデータバスD0〜7に夫々のレジスタ出
力を出力する時に“1"となる信号で、第20B図の“デー
タバスD0〜7"に対応している。B0はBレジスタの出力を
常にマスクするためのもので第20B図の“加減算器B入
力”が上位側“M"、下位側“0"のときに“1"となる。A0
はAレジスタの出力を常にマスクするためのもので、第
20A図のフローで9▲▼;AM←0+S、9F′;AM
1+S、11;AM←0+M、12;A←0+B、17PF′;A←
0+M、(0)に対応し“1"となる。Mは加減算器440
のB入力がMレジスタ出力となる場合に“1"となるもの
で、第20B図の“加減算器B入力”の上位側が“M"とな
っているタイミングに“1"となる。SUは加減算器440の
演算を減算形式、すなわち“A−B"又は“A−M"とする
信号で、第20A図のフローの8;A−B、14;A−M
(BL)、16P;A−M(0)で“1"となる。SF2は加減算器
440のB入力側符号をF2の値とするもので、後述するよ
うにタイミング0、15P、16Pで“1"となる。
次に、第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により
アドレスは、 0A3 S2 S1 S0 BC7 BC6 BC5 BC11 BC10
BC9 BC8 となる。ここでハイリリースの設定はCPUからインスト
ラクション“フラグセット”、データ“10000111"で行
なえば、上のアドレス上位5ビットは“00111"となり、
ハイリリースレート;HRijを示す固有アドレスとなる。
したがってハイリリース時には通常のエンベロープレー
トではなくハイリリースレートが読出され使われること
になる。次に、タイミング2、14、14P、15、15P、
16、16Pのとき、▲▼は“1"、LSIは“0"であるか
ら、インバータ385、386、ノア383、384、クロックノア
382により、アドレスは、 OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 0 となる。次にタイミング7、8のとき、7、8は“1"、
▲▼は“1"、LSIは“0"であるから、モード信号/
Iがチャンネル独立を示す“1"のとき、インバータ385、
386、クロックインバータ381、アンド378〜380により、
アドレスは、 OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 ▲
となる。したがって、インストラクション“ピッチモジ
ュレーション”で書込まれたチャンネル別のピッチモジ
ュレーションデータがピッチ演算中のタイミング7、8
で読出され、エンベロープ/キーコード生成回路12内部
で生成されたチャンネル独立の振幅モジュレーションデ
ータがモジュール0〜7演算中のタイミング7、8で読
出されることになる。もし、タイミング7、8でモード
信号/Iがチャンネル共通を表わす“0"ならば、アンド
372〜374、オア375〜377によりアドレスは、 OA4 OA3 OA2 OA1 OA0 0 0 0 0 0 0 ▲▼ となる。従って、全チャンネル共通の振幅、ピッチモジ
ュレーションデータを読出すことになる。次にタイミン
グ12、12P、13P、17、17P′、17PF′、18P、19P
のときは▲▼、LSIは“1"なので、インバータ385、
386、ノア383、384、クロックノア382、アンド378〜380
により、アドレスは、 OA4 OA3 OA2 OA1 OA0 BC7 BC6 BC5 0 0 0 1 となる。これは第20B図の“*”を付けたアドレスに対
応するものでこれらのデータは、データ識別を上位5ビ
ットとLSBを使っているものである。尚、“**”を付
けたアドレスは、LSBを“1"とすることでデータMLjのア
ドレスと区別し、そこをダミーアドレスとしている(こ
のタイミング12ではレジスタALからレジスタBLにデー
タバスD0〜7を介して転送するのでRAM7の書込み信号が
出てしまうため)。以上のように演算用アドレス生成回
路301は動作フロー第20A図に対応するアドレス信号B0〜
11を発生する。
第25図に演算用制御信号発生回路307の詳細図を示す。
aは、クロックCKAMの条件信号、RAはRAM7からAレジス
タへのロード制御信号である。ここでRAM7からAレジス
タ上位にデータをロードするときには、Aレジスタ下位
にはオール0を入力するためにナンド387によって▲
▼を“0"にする(例えばタイミング1)。同時に、
Bレジスタ上位にRAM7からデータをロードするときに
は、Bレジスタ下位にオール0を入力するために▲
▼が“0"となる。AM、AL、BM、BLは、夫々のレジスタ
のデータをデータバスD0〜7に出力するための条件信号
で、エンベロープ/キーコード生成回路12のRAM7の占有
時間は、T2が“1"のときでそのデータ出力時間の巾は第
7図の▲▼が“0"の巾だから第26図のようにAM′、
AL′、BM′、BL′が生成される。また、レジスタ上位は
A、Bとも7ビットでデータバスのMSBD7に出力するビ
ットがないので、A又はBレジスタ上位をデータバスD0
〜7に出力する場合にはオア394、アンド393によりMSB
として、SレジスタMSBを出力する。B0′はBレジスタ
出力をマスクする信号で、演算用タイミング信号発生回
路305からのB0、及びタイミング5、すなわちエンベロ
ープレートの加減算時の加減算イネーブル信号▲▼
(後述)、タイミング14の振幅モジュレーション減算
時のモジュレーション感度が0の信号MO0(後述)に従
ってアンド395、オア396により“1"となる。A0′は、A
レジスタの出力をマスクする信号で、演算用タイミング
信号発生回路305からのA0、及びタイミング5、すなわ
ちエンベロープレート加減算時のエンベロープ現在値を
マスクする信号E0に従って、アンド397、オア398により
“1"となる。“▲▼”は、Aレジスタの出力を1000
00000000000とするもので、ピッチのエンベロープ演算
中にエンベロープ現在値をマスクする信号E0に従ってナ
ンド400により“0"となる。
第27図は、エンベロープ/キーコード生成回路12で、エ
ンベロープフラグをロードし(タイミング0)、再び書
込む(タイミング11)までの間にCPUから転送されたイ
ンストラクションによって同一チャンネル同一モジュー
ル又はピッチのエンベロープフラグが書き替えられた場
合に、エンベロープ/キーコード生成回路12からRAM7に
エンベロープフラグを書き込むのを禁止する、書込み禁
止回路302の詳細図である。エクスクルーシブ・オア408
〜414、ノア407は比較回路を形成し、インタフェース/
制御部11からのアドレスでチャンネル、モジュール又は
ピッチに相当するビットAA0〜6と、エンベロープ/キ
ーコード生成回路12での演算チャンネル、モジュール又
はピッチに相当するカウンタ3の出力BC5〜11とを比較
し、一致したら“1"を出力する。第28図は書込み禁止回
路302のタイムチャートである。第27図のナンド406の出
力はインタフェース/制御部11がエンベロープ/キー
コード生成回路12で演算しているチャンネル、モジュー
ル又はピッチと同じチャンネル、同じモジュール又はピ
ッチのエンベロープフラグを書込んだ時に“0"となる。
第18図(1)はエンベロープ/キーコード生成回路12で
エンベロープフラグを読出した直後にインタフェース/
制御部11が同一チャンネル、同一モジュール又はピッチ
のエンベロープフラグを書込んだ場合であり、はタイ
ミング1の後半から0となって書込みを禁止する。尚タ
イミング0以前にが“0"となっていもオア404によっ
てタイミング0でフリップフロップ403は“1"にセット
されるので書込みは禁止されない。(2)はエンベロー
プ/キーコード生成回路12がエンベロープフラグを書込
む直前にインタフェース/制御部11が同一チャンネル、
モジュール又はピッチのエンベロープフラグを書込んだ
場合であり、はタイミング11の後半で0となって書込
みを禁止する。したがって、タイミング1〜11の間に同
一チャンネル、同一モジュール又はピッチのエンベロー
プフラグが、インタフェース/制御部11で書込まれたら
エンベロープ/キーコード生成回路12からのエンベロー
プフラグの書込みを禁止する。
第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、クロックインバータ462
〜483、及びFF出力のバスD0〜7への出力用クロックイ
ンバータ500〜514、及び加減算器440のA入力への出力
変更用ゲート群515〜531によって構成されている。信号
RAはデータバスD0〜7と演算出力L0〜14からのFFへの入
力選択、▲▼はD0〜7を上位側FF493〜499にロー
ドする際に下位側FF485〜492にオール1を入力する信号
である。尚、下位側FF485〜492にオール1がロードされ
るのは▲▼が“0"でクロックCKALが出た時であ
る。また、信号AL′、AM′は、Aレジスタ下位又は上位
のデータをデータバスD0〜7に出力するか否かを制御す
るものである。ゲート群515〜531は加減算器440のA入
力へのデータを変更するもので、A0′が“1"ならばオー
ル0、▲▼が0ならば00000010……0(第20A図
動作フローにおけるエンベロープステップの更新処理9
F′;AM←1+sに対応)、 が“0"ならば第25図よりA0′は1なので10……0(ピッ
チのエンベロープのスタートデータに相当)。
第32図は、Bレジスタの詳細図である。Bレジスタは下
位側FF564〜571、上位側FF572〜578、及びFFへの入力選
択用クロックナンド532〜539、クロックインバータ540
〜562、及びデータバスD0〜7への出力用クロックナン
ド579〜593、及びシフト回路438への出力を変更するゲ
ート594〜616によって構成されている。信号RBは、デー
タバスD0〜7と演算出力L0〜14からのFFへの入力選択、
▲▼はD0〜7を上位側FF572〜578にロードする際
に下位側FF564〜571にオール1を入力する信号である。
尚、下位側FF564〜571にオール1がロードされるのは、
▲▼が“0"でクロックCKBLがでた時である。ま
た、信号BL′、BM′は、Bレジスタの下位又は上位のデ
ータをデータバスD0〜7に出力するか否かを制御するも
のである。ゲート群594〜616はシフト回路438への出力
データを変更するもので、Bが“1"ならBレジスタ上位
を出力、“0"ならばM又はSレジスタをBレジスタ上位
のかわりにシフト回路438へ出力するB0′が“1"、Bが
“1"ならば出力BI0〜14はオール0となり、B0′が
“1"、Bが“0"ならば、上位7ビットはM又はSレジス
タの出力、下位8ビットはオール0となる。又信号5が
“1"のときはBは“1"なのでB0が“0"ならば出力は1、
BO10、BO9、BO8、0……0となる。これはエンベロープ
レートデータのレンジを広げるためのデータ変換で、BO
11〜BO14によって変換されたデータのシフト又はデータ
加減算の間引き等を行なうことによって、所望範囲のエ
ンベロープの上昇下降速度を得ている。第3にBレジス
タ上位に入っているエンベロープレート;ER6、ER5……
ER0の変換を示す。
第33図はMレジスタの詳細図で、反転出力FF617〜623は
クロックCKMによりデータバスD0〜6のデータを取込
む。クロックノア624〜630は信号Mが“1"のときNレジ
スタのデータを出力するものでMが“1"、MO0が“1"の
ときオール0を出力する。
第34図にシフト制御回路447を示す。クロックインバー
タ643〜645、クロックノア664、637、640の制御入力に
より信号14が“1"のときすなわち第20A図動作フロー
における最終エンベロープの演算処理“E←A−M(E
←Eij−AMDj)”のときだけSレジスタ下位3ビット
(モジュレーション感度)に応じたシフト制御信号SH
1、2、4、8を出力する。尚、シフト回路438は、SH
1、2、4、8の信号が“1"のときそれぞれ1左シフト
(×1/2)、2左シフト(×1/4)、4左ヒフト(×1/1
6)、8左シフト(×1/256)を行うもので、例えばSH
1、2、4、8がそれぞれ1、0、1、0ならばトータ
ルで5左シフト(×1/32)のシフトを行なうものである
(図示せず)。したがって“A←A−M(A←Eij−AMD
j)”の時はモジュレーション感度MSijに応じて各モジ
ュール毎に重み付けされ、振幅モジュレーションがかけ
られる。尚、MSijが0のときはアンド649の出力MO0が
“1"となるため、演算は“A←A−0"となりモジュレー
ションはかからない。次に12Pが“1"のとき、すなわち
第20A図動作フローにおける最終ピッチエンベロープの
計算“B←±A+B(B←±PMDj+Epj)”のときは、S
H1、2、4、8がそれぞれ0、1、0、0となり2左シ
フト(×1/4)される(演算説明は後述)。また、15Pが
“1"のときすなわち動作フローにおける振幅モジュレー
ションの補間演算“A←A±M(A←AMDj±MRj)”の
ときは、MTが“0"なら、SH1、2、4、8は0、0、
1、0で4左シフト(×1/16)、MTが“1"ならSH1、
2、4、8は1、0、1、0となり5左シフト(×1/3
2)となる。ここで、前述したようにMRjはアフタータッ
チ等の検出量の前回検出量との差の絶対値であるから、
MT=“0"なら今回検出量である目標値MLjに到達するた
めには、MRjの加減算が16回必要となる。すなわち、第1
9図のタイムチャートから16×1.2288=19.6608(msec)
で到達することになる。これはmin19.6608msec毎にアフ
タータッチ等の検出データから算出したMLj、MRjをCPU
が転送すれば、音源LSI内部でデータを補間し、なめら
かなデータを生成することを意味している。また、MT=
“1"ならばMRjの加減算が32回必要となり、補間演算の
周期は、39.3216msecとなる。次にタイミング5につい
て考える。信号5が“1"であるからAND631〜633、635、
636、639、641が有効になるため、SH1、2、4、8の値
が▲▼〜▲▼によって決まり(表
4)、表3に示すようなデータのシフトが行なわれる。
尚、上記以外のタイミングでは、SH1、2、4、8は常
に0、0、0、0となるため、シフトは行なわれない。
第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"となるから、ゲート回路66
6〜677により、出力BI″12〜14は BI″12=▲▼、BI″13=▲▼、 BI″14=BI′12 となる。タイミング12Pの演算は第20A図の動作フローで
は、“B←±A+B(B←±PMDj+Epj)”であり、B
I′0〜14は、Bレジスタ427の出力を左2シフトしたも
のであるから、Bレジスタの出力BI0〜14をデータに対
応させて▲E0 pj▼〜▲E14 pj▼とおくと、加減算器440
のB入力BI′0〜11、BI″12〜14は、 となる。これはピッチのエンベロープのレンジを中心レ
ベル10……0のまわりに1/4に圧縮したことを意味す
る。次に、タイミング18のとき信号18は“1"となる
から、ゲート回路666〜677により出力BI12〜14は BI″12=BI′12、BI″13=BI′13、 BI″14=▲▼ となる。タイミング18の演算は第20A図の動作フロー
では“A←A+B(A←KCj+PEpj)”であるから、B
レジスタの出力BI0〜14をデータに対応させて▲PE0 j
〜▲PE14 j▼とおくと加減算器440のB入力BI′0〜11、
BI″12〜14は、 となる。これは、最終的なピッチのエンベロープを中心
レベルより上なら正、下なら負の2の補数表示にしたこ
とになる。すなわちこれをキーコード;KCjに加算する
際に、最終的なピッチのエンベロープを10……0を中心
にしてそれより大きければその差を加算、小さければそ
の差を減算することに相当しており、キーコードに反映
されるピッチエンベロープを中心レベルに対して対称化
している。
第37図は符号生成回路449の詳細図である。信号ASは加
減算器440のA入力側の符号で、12P、▲▼が“1"の
とき、ナンド678、681により“1"となる。すなわち、第
20A図動作フローの“B←±A+B(B←±PMDj
Epj)”のA側の符号は、F2(データPMDjのMSB)が“1"
なら正、“0"なら負ということになる。また、7.Pが
“1"、F2が“1"ならばインバータ679、ナンド680、681
によりASが“1"となる。すなわち動作フローに示すピッ
チエンベロープの目標値演算“A←A±M(0)(A←
ELpj(s)±ELCpj)”において、F2が“1"ならばピッ
チのエンベロープレベルデータが中心レベルに対して反
転し、第38図(b)のようなエンベロープとなる
((a)は反転しない場合)。ここに、F2はタイミング
2で取り込まれた▲ERC7 j▼であり、これはキーコード
の変化の方向、すなわち、前回の押鍵と今回の押鍵の位
置関係を表わしている。尚、この時加減算器のLSBの誤
差が出る場合があるが十分小さいので問題ない。したが
って信号▲▼は、加減算器440で演算“*←−A
±*”が行なわれる時“0"となる。信号BSは加減算器44
0のB入力側の符号で、▲▼=“0"(タイミング
8、14、16P)のとき常に“1"である。また、タイミ
ング5又は8のとき信号5.8が“1"のとき、P又は▲
▼が“1"、が“0"ならば、オア687、ノア686、ナ
ンド689により▲▼=▲▼となる(それ以外
では“1")。すなわち、 5.8;エンベロープ更新又はエンベロープと目標値との比
較 PV▲▼;ピッチの演算又はステップ0以外の時 =“0";ステップの切換わり点での方向判定でない時
(後述) にはナンド689の出力▲▼は▲▼となり、符
号BSは5のときS4、8のとき“1"(▲▼=0だか
ら)となる。また、SF2が“1"、つまり、タイミング
0、15P、16Pのときはナンド685の出力F2′はF2となる
(それ以外では“1")。すなわち、“0";周波数レート
の加減算”、“15P;モジュレーションレートとの加減
算”、“16P;振幅モジュレーションと目標値の比較”の
ときにはF2′はF2、符号BSは▲▼となる。また、タ
イミング7でP=0のとき、ナンド684の出力は0、BS
は“1"となる。すなわち、動作フロー“A←A±M
(0)(A←ELij(S)±ELCij)”でピッチの演算で
ないときには符号BSは“1"となる。P=1のときは符号
BSはFA14となる。したがって、第38図の矢印で示すよう
に、ピッチのエンベロープレベルは反転後のデータが中
心レベルよりも上;FA14=“1"のとき(第39図参照)は
減算、下;FA14=“0"のとき(第39図参照)は加算とな
る。以上のように第37図の符号生成回路449は加減算器4
40における各入力の符号AS、BSを生成し、動作フロー
(第20A図)が実現される。
第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"なのでナンド71
4が有効になり、ナンド714の出力はS4′、ナンド715の
出力は▲▼となる。▲▼は“1"なのでナンド
719の下入力は“1"だから▲▼が“1"、COが“1"
又は▲▼が“0"、COが“0"ならばFF720は“1"が
セットされる。これは、エンベロープ更新時にオーバー
フロー又はアンダーフローをしたらフラグFをセットす
ることに相当する。が“0"でタイミング8のとき、同
様にしてナンド714の出力は▲▼、ナンド715の出
力はS4′となる。このとき▲▼は“0"なので、タイ
ミング5でフラグFがセットされているならば再度セッ
トされる。フラグFがセットされていない時は、S4′が
“0"、COが“0"又はS4′が“1"、COが“1"ならばFF720
は“1"にセットされる。これは、更新されたエンベロー
プが目標値を上昇中に越えるか、下降中に到達するか越
えたらフラグFをセットすることに相当する。したがっ
てが“0"のときフラグFは、エンベロープが目標値に
到達した時にセットされる。次にが“1"ならば、第37
図より▲▼=“1"、BS=“0"となる。また、第35
図より▲▼=“1"となる。従ってタイミング5で
は、“B←A+0"が行なわれる。その時、第40図でナン
ド715の出力は“1"であり、COは“0"、▲▼は“1"
であるからフラグはセットされない。タイミング8で
は、ナンド715の出力は“1"なので目標値からエンベロ
ープの現在値を引いて目標値が大きいか等しければ(CO
=“1")フラグFを“1"にセットする。すなわち、+方
向のときF=1、−方向のときF=0とフラグをセット
する。次にタイミング5、8以外、つまり、タイミング
15P、16Pのときは、ナンド715の出力は▲▼とな
る。タイミング15Pのとき、▲▼=“0"でCO=
“1"又は▲▼=“1"でCO=“0"、すなわち振幅モ
ジュレーションデータを更新中、オーバーフロー又はア
ンダーフローしたらフラグFをセットする。タイミング
16Pのときは、▲▼=“0"でCO=“1"、又は▲
▼=“1"でCO=“0"、すなわち更新された振幅モジ
ュレーションが目標値に上昇中に到達するか越えるか、
下降中に越えたらフラグFをセットする。以上のように
フラグFはセットされ、動作フロー(第20A図)の分岐
条件となる。
第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レジスタ及びエンベロープフラグ制御回路44
6の詳細図である。フリップフロップ739〜746はSレジ
スタで、データバスD0〜7をクロックCKSで取込む。S
レジスタの内容はP=1又はP=0のタイミング1〜13
のときエンベロープフラグであり、そのタイミングの
みでエンベロープフラグ制御回路446の出力は意味をも
っている。▲▼はエンベロープフラグがナンド74
7より“*0**0000"すなわちノーマルモードのステッ
プ0のとき0となる信号である。は、ステップの切換
わり点で方向判定する時に“1"となる信号でナンド74
7、749、オア748、インバータ753によりP=“1"又は▲
▼=“1"で▲▼=“1"のとき、すなわち、振
幅エンベロープのステップ0以外でノードフラグが0だ
ったら=“1"となる。E0はタイミング5の演算“5←
A±B[B←Eij±(ERij(s)+ERCj)]”でA入力
を0とする信号で、ナンド747、ノア752、インバータ75
9、アンド760、オア761により、▲▼=▲▼=
0のとき、すなわちモードがマスクのとき、又は▲
▼=0かつ▲▼=1、すなわち、ステップ0の最
初に“1"となる。尚、ノーマルモードではステップ0の
最初にA入力が0となるため、エンベロープは必ず0か
らスタートすることになる。F′は動作フロー(第20A
図)の分岐のためのフラグで、オア762、763、インバー
タ764、アンド765により、タイミング9以外ではF′=
F、タイミング9では=“0"、かつS3=“0"のときに
F′=F、それ以外でF′=“0"となる。すなわち、タ
イミング9では方向判定中、又はホールド中F′=0、
それ以外ではF′=Fとなる。次に出力BI8〜BI14につ
いて説明する。これらはタイミング9のときだけ、エン
ベロープフラグ制御回路446の出力となる。BI8〜10はS0
〜S2となる。BI11は、=“0"、かつエンベロープフラ
グが“*0***111"でなく、かつF=“1"、F1=“1"
のとき“1"となりそれ以外は、もとの値▲EF3 ij▼とな
る。すなわち、方向判定中でなく、ノーマルモードのス
テップ7でなく、F1(エンベロープレベルの8ビット目
=サスティンフラグ)が“1"のとき到達したら、ホール
ドのフラグ▲EF3 ij▼は“1"となる。BI12は、=“1"
のときF=“0"なら“1"となる。すなわち、=“1"の
とき判定結果が−方向ならば符号ビット▲EF4 ij▼を
“1"にする。また、=“1"、かつF=“0"以外の時
は、ナンド754の出力が“0"すなわちサスティンレベル
到達時にBI12を“0"とする。また、▲▼=1すなわ
ちステップの切換わり点にいる時はBI12を0とする。そ
れ以外ではBI12は元の値▲EF4 ij▼となる。BI13は=
“0"、かつ▲▼=1、かつF=1のとき、すなわ
ち、方向判定中でなく、サスティン中でない時到達した
ら“0"となり、それ以外は“1"となって、ステップの切
換りを示すフラグとなる。レジスタA、Bの上位をRAM7
に書込む時8ビット目には、Sレジスタの8ビット目を
SMSBによって書込む。以上説明したように第42図エンベ
ロープフラグ制御回路はエンベロープフラグに応じた信
号▲▼、、F′、E0を出力するとともにエンベ
ロープフラグの設定を行なう。エンベロープフラグはキ
ーオン後、通常、ステップ0からスタートし(ピッチエ
ンベロープは方向判定後スタート)、到達したらステッ
プに1が加算され、ノードフラグ▲EF5 ij▼をノードを
表わす0にして方向判定を行い、符号フラグ▲EF4 ij
をセットして次ステップをスタートする。もし、到達し
た時サスティンフラグ(エンベロープレベルELij(S)
のMSB)が“1"ならホールド状態となりエンベロープは
固定される。その後キーオフがCPU3から来たらホールド
が解除されて次ステップをスタートする。尚、ループモ
ードでサスティンフラグが最終のステップ7にあった
ら、エンベロープフラグは011*0111←01101111+1=0
1010000となりステップ0に戻るためエンベロープが最
初からくり返される。
以上第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で
生成されたエンベロープ及びキーコードは、クロックCK
Eでフリップフロップ(FF)1000に取込まれる。FF1000
の出力は指数ROM1001で変換されてエンベロープレジス
タ1002、周波数情報レジスタ1004に入力される。第46図
はエンベロープレジスタ1002の詳細図である。エンベロ
ープレジスタ1002は、2つのRAM(ENVERAM、ENVORA
M)、FF1014〜1019など、インバータ1027、クロックイ
ンバータ1020〜1026、1028〜1033など、及びインバータ
1008、1010、ナンド1009、1011によって構成され、第48
図(a)のタイムチャートのように動作する。カウンタ
1(第18図)はエンベロープ/キーコード生成回路12の
基本タイミングを示しており、FF415〜421(第29図)の
データ出力はタイミング0から切替わる。FF415〜420の
データはエンベロープレジスタ1002、周波数情報レジス
タ1004への書込みチャンネル(DA0〜2)、モジュール
(DA3〜5)を示すアドレスに対応し、T2が0のときの
みDA1〜DA5のデータとなる(DA0は常にFF415の値と対
応)。また、FF1000の出力は第48図のように切替わり、
WEEがタイミング0で“1"となるので、DA0が“0"のとき
(偶数チャンネル)にはナンド1009が“0"となるのでT2
=“0"のときにタイミング信号Wが“1"の巾でENVERAM1
012の所定アドレス(FF416〜420の反転)にデータが書
込まれる。またDA0が“1"のとき(奇数チャンネル)に
はナンド1011が“0"となり、ENVORAM1013にデータが書
込まれる。T2が“1"のときは、アドレスDA1〜5は、タ
イミング信号発生回路159(第6図)の出力C1〜5の反
転であるから、C1〜5の値に対応したチャンネル、モジ
ュールのデータを読出す、バッファ1020〜1026、1028〜
1033、インバータ1027により、T2=“1"のときにはENVE
RAM1012、T2=“0"のときにはENVORAM1013からT2=“1"
で読出されたデータをFF1014〜1019で遅らせたデータが
出力E0〜11となる。したがって、エンベロープレジスタ
1002はエンベロープ/キーコード生成回路12のタイミン
グでデータが書込まれ、インタフェース/制御部11のタ
イミングで読出され、FF1003を介して波形生成回路15に
送られる。
第47図は周波数情報レジスタ1004の詳細図で、エンベロ
ープレジスタ1002と全く同様の動作をする。読出された
周波数情報FI0〜20はFF1005を介し、位相角生成用の累
算器(加算器1006、シフトレジスタ1007)へ送られ、位
相角が生成される。
第49図は、OCレジスタ14の詳細図である。OCレジスタ14
はエンベロープレジスタ1002や周波数情報レジスタ1004
と同様に偶数チャンネル用RAM(OCERAM)、奇数チャン
ネル用RAM(OCORAM)からなり、それを交互にREADする
ことによって常に読出しながら書込めるレジスタであ
る。インタフェース/制御部11からのアドレスAA0〜
2、4〜6が書込み用アドレス、C1〜C5が読出し用アド
レスでT2が“1"の時が読出し、“0"のときが書込み可能
となっている。フリップフロップ1076B〜1083B、1101〜
1103、シフトレジスタ1104は制御信号C0〜3をタイミン
グ遅延させるもの、ゲート1105〜1116は、制御信号C5〜
9を生成するためのものである。
第50図は、波形生成回路15のブロック図である。波形生
成回路15は本件出願人に係る特願昭61-55008号に示す回
路とほぼ同様な動作を行なう。まず、位相角P0〜11がセ
レクタ1118で選択され、FF1119、位相角変換回路1120、
シフトレジスタ1121を介して正弦波ROM1122に入力さ
れ、波形信号sinX′となる。尚、位相変換回路1120は、
制御信号の値に従って正弦波に位相歪みを導入するもの
で、対応する波形は第51図のようになる。波形信号sin
X′は、シフトレジスタ1136、加算器1137、FF1138を介
した(ゲート回路1135の出力は0とする)エンベロープ
E″と乗算器1124で乗算され、FF1125を介して出力され
る。この出力は、楽音として出力される場合は楽音出力
を累算するためのレジスタ(セレクタ1127、FF1128、ゲ
ート回路1129)からの出力がセレクタ1130、ゲート回路
1131を通ったデータを加減算器1126で加減算される。第
52図に波形生成回路15のタイムチャートを示す。C0〜5
は第6図タイミング信号発生回路159のカウンタ出力
で、C1〜5は第45図エンベロープレジスタ1002、周波数
情報レジスタ1004、第2図OCレジスタ14の読出しアドレ
スになっている。また、その1ビット遅れは、波形形成
回路(第50図)の基本タイミングになっており、6ビッ
ト中下位3ビットがチャンネル、上位3ビットがモジュ
ールの演算に相当している。信号P、X′、E′、
E″、E″sinX′、R′、Rは夫々、モジュール0、チ
ャンネル0の演算からモジュール7、チャンネル7の演
算までの1サイクルのタイミングを示している。波形の
生成は制御信号C0〜9によってセレクタ1118、1127、11
30、1132、ゲート回路1129、1131、1135、位相角変更回
路1120、加減算器1126を制御することによって行なわれ
る。表6にCPUから入力されたOCデータ上位4ビットに
対応する演算で示す(第49図参照)。
これらの演算制御によって、波形が生成される。
以下に波形生成例を示す。ただし、iはモジュールNo、
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″siX′はシフトレジスタ1133に入力される。モジュ
ールi+1、チャンネルjの波形は位相角としてPが選択
され、その波形はシフトレジスタ1134の出力Rから減算
されてモジュールi+2、チャンネルjの位相角となる。
そして、モジュールi+2、チャンネルjの波形出力E″s
inX′は楽音出力として累算される。以上のようにオペ
レーションコードによって、波形生成が様々に行なわれ
ることによって、多くの音色の楽音を発生できる。出力
波形は生成された波形を順次累算していくが、第52図で
C0〜C5の値が“9"のときに新たな演算サイクルの波形が
FF1128に取込まれるが(出力されない波形=位相となる
もの)、その時のFF1128の出力が前サイクルの波形の累
算値であるので、それをラッチ1139で取込む(CKL)こ
とによってラッチ1139は各演算サイクル毎の波形最終累
算値を出力することになる。尚、ゲート回路1140は信号
OMが“0"のとき出力をオール0(中心レベル)にするも
ので、リセット後モードデータがセットされるまでそれ
を維持する。すなわち、パワーオン等により外部リセッ
ト信号が発生すると、タイミング信号発生回路159によ
り内部リセット信号が発生し、これが第6図のモードの
ラッチ156をリセットし、その出力OMを“0"にするた
め、ゲート回路1140の出力、すなわちDAC8に送られる信
号出力は無音レベルのオールゼロに置かれる。一方、CP
U3はインタフェース/制御部11を通じて、外部RAM7に音
色等の所要データを設定し、最後にインストラクション
“モード”を送ってモードラッチ156〜158をセットす
る。これによりOMは“1"となり、ゲート回路1140はイネ
ーブルされ、波形生成回路15で演算した波形信号がDAC8
に送られるようになる。つまり、電源投入後、外部RAM7
における所要データの設定が完了し、音源LSI6が正規の
楽音信号を合成可能になるまでの間、DAC8への入力は無
音状態のレベルに維持されるようになっている。
[考案の効果] 以上詳細に説明したように、この考案によれば、タッチ
レスポンス等のピッチエンベロープレベル変更データに
より、音高の目標値であるピッチエンベロープレベルを
変更する際に、変更前のピッチエンベロープレベルと中
心レベルとの差が小さくなるようにピッチエンベロープ
レベルを変更しているで、タッチレスポンス等によるピ
ッチへの反映の度合を自然に制御することができ、ユー
ザーの感覚にもマッチしやすい利点を有している。
【図面の簡単な説明】
第1図は本考案の一実施例に係る電子楽器の全体構成
図、第2図は音源LSIのブロック図、第3図は音源LSIの
インタフェース部とエンベロープ/キーコード生成回路
による外部RAM占有の割振を示すタイムチャート、第4
図はCPUから音源LSIのインタフェース/制御部に送られ
るデータと書込制御信号のタイムチャート、第5図は楽
音制御信号生成のための低速演算周期と波形生成のため
の高速演算周期とを示すタイムチャート、第6図はイン
タフェース/制御部の詳細図、第7図はタイミング信号
発生回路が発生する信号の一部のタイムチャート、第8
図はタイミング信号発生回路が発生するその他の信号の
タイムチャート、第9図はタイミング信号発生回路の詳
細図、第10図はインストラクションデコーダの詳細図、
第11図は1バイト長のデータの転送インストラクション
に対するインタフェース/制御部の動作を示すタイムチ
ャート、第12図は2バイト長のデータの転送インストラ
クションに対するインタフェース/制御部の動作を示す
タイムチャート、第13図はフラグセットのインストラク
ションに対するインタフェース/制御部の動作を示すタ
イムチャート、第14図はキーオフのインストラクション
に対するインタフェース/制御部の動作を示すタイムチ
ャート、第15図はOCレジスタへの書込みインストラクシ
ョンに対するインタフェース/制御部の動作を示すタイ
ムチャート、第16図はモードの設定インストラクション
に対するインタフェース/制御部の動作を示すタイムチ
ャート、第17図はエンベロープ/キーコード生成回路の
ブロック図、第18図はエンベロープ/キーコード生成回
路の動作サイクルを与えるカウンタBの詳細図、第19図
はカウンタBのタイムチャート、第20A図はエンベロー
プ/キーコード生成回路による演算のフローチャート、
第20B図はエンベロープ/キーコード生成回路の動作を
まとめた図、第21図はCPUから与えられる振幅モジュレ
ーション生成用データを示すグラフ、第22図は演算用タ
イミング信号発生回路の詳細図、第23図はクロック発生
回路の詳細図、第24図は演算用アドレス生成回路の詳細
図、第25図は演算用制御信号発生回路の詳細図、第26図
は演算用制御信号発生回路におけるタイムチャート、第
27図は書込み禁止回路の詳細図、第28図は書込み禁止回
路の動作を示すタイムチャート、第29図は指数データ用
アドレス生成回路の詳細図、第30図は演算回路の詳細な
ブロック図、第31図はAレジスタの詳細図、第32図はB
レジスタの詳細図、第33図はMレジスタの詳細図、第34
図はシフト制御回路の詳細図、第35図はエンベロープ制
御回路の詳細図、第36図はデータ変更回路の詳細図、第
37図は符号生成回路の詳細図、第38図はフラグによるピ
ッチエンベロープの反転を示すグラフ、第39図は加減算
器と出力クリップ回路の詳細図、第40図はフラグ発生回
路の詳細図、第41図は出力クリップ制御回路の詳細図、
第42図はSレジスタとエンベロープフラグ制御回路の詳
細図、第43図は外部RAMインタフェースの詳細図、第44
図は外部RAMインタフェースの動作を示すタイムチャー
ト、第45図は指数変換/位相角生成回路のブロック図、
第46図はエンベロープレジスタの詳細図、第47図は周波
数情報レジスタの詳細図、第48図は指数変換/位相角生
成回路のタイムチャート、第49図はOCレジスタの詳細
図、第50図は波形生成回路の詳細図、第51図は波形生成
回路において制御信号により歪みの生じる正弦波のセッ
トを示す波形図、第52図は波形生成回路のタイムチャー
トである。 1……鍵盤、2……スイッチ、3……CPU、7……外部R
AM、11……インタフェース/制御部、12……エンベロー
プ/キーコード生成回路、15……波形生成回路、436、4
42、440、449、437、447、450、438、448……ピッチエ
ンベロープ演算回路。

Claims (3)

    【実用新案登録請求の範囲】
  1. 【請求項1】少なくとも発生すべき楽音の音高を指定す
    る演奏入力装置(1、2)の演奏状態をモニターするCP
    U(3)によって制御され、演奏状態に従って楽音を合
    成するため、メモリ(7)と、上記CPUから転送される
    少なくとも音高を含むデータを上記メモリに書き込むイ
    ンターフェース回路手段(11)と、上記メモリを利用し
    て楽音制御信号を生成する楽音制御信号生成回路手段
    (12)と、上記楽音制御信号生成回路手段により生成さ
    れた楽音制御信号に従って楽音波形を生成する波形生成
    手段を備え、上記楽音制御信号生成回路手段には、上記
    波形生成回路手段の生成する楽音波形に周波数変動を与
    えるためのピッチエンベロープを生成するピッチエンベ
    ロープ生成回路手段(308)が含まれ、このピッチエン
    ベロープ生成回路手段が、上記CPUから与えられたピッ
    チエンベロープレベル変更データ(ELCpj)とピッチエ
    ンベロープレベルデータ(ELpj(s))とを使って、ピ
    ッチエンベロープレベルデータを変更するレベル変更回
    路手段(436、442、440、449)と、上記レベル変更回路
    手段により変更されたピッチエンベロープレベルデータ
    とピッチエンベロープレートデータとに従って上記ピッ
    チエンベロープを演算するピッチエンベロープ演算回路
    手段(436、437、440、449、450、447、438、448)とか
    ら構成される楽音合成装置において、 上記レベル変更手段は、上記CPUから与えられたピッチ
    エンベロープレベルが上記演奏入力装置が指定した音高
    に対応するピッチレベルである中心レベルより低いとき
    には、上記ピッチエンベロープレベル変更データによ
    り、ピッチエンベロープレベルを増大させ(ELpj(s)
    ←ELpj(s)+ELCpj)、上記CPUから与えられたピッチ
    エンベロープレベルが上記中心レベルより高いときに
    は、上記ピッチエンベロープレベル変更データによりピ
    ッチエンベロープレベルを減少させる(ELpj(s)←EL
    pj(s)+ELCpj)ことを特徴とする楽音合成装置。
  2. 【請求項2】実用新案登録請求の範囲第1項記載の楽音
    合成装置において、 上記レベル変更回路手段は、変更されたピッチエンベロ
    ープレベルデータが上記中心レベルをクロスしたとき
    は、変更されたピッチエンベロープレベルデータを上記
    中心レベルに制限する制限回路手段(451、441)を有す
    ることを特徴とする楽音合成装置。
  3. 【請求項3】実用新案登録請求の範囲第1項記載の楽音
    合成装置において、 上記メモリは上記CPUから与えられるピッチエンベロー
    プの反転の有無を指示するフラグ(ERCj 7)を記憶する
    部分を有し、上記レベル変更回路手段は、上記フラグに
    従って、上記CPUから与えられたピッチエンベロープレ
    ベルデータを上記中心レベルに対して選択的に反転し、
    この選択的に反転されたデータを上記ピッチエンベロー
    プレベル変更データにより変更することを特徴とする楽
    音合成装置。
JP1987151604U 1987-10-02 1987-10-02 楽音合成装置 Expired - Lifetime JPH0738955Y2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

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

Family

ID=31425793

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH0738955Y2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61188593A (ja) * 1985-02-18 1986-08-22 カシオ計算機株式会社 タツチレスポンス装置

Also Published As

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

Similar Documents

Publication Publication Date Title
JPS5865493A (ja) 波形発生装置
JPH0738955Y2 (ja) 楽音合成装置
JPH0738956Y2 (ja) 楽音合成装置
JP2527652Y2 (ja) 楽音合成装置
JP2950461B2 (ja) 楽音発生装置
JP2997470B2 (ja) 楽音情報処理装置
JPH0750799Y2 (ja) 楽音位相同期装置
JP2718039B2 (ja) 楽音合成装置
JP2753511B2 (ja) 楽音合成装置
JPH0331273B2 (ja)
JP2722460B2 (ja) 楽音合成装置
JPS6042955B2 (ja) 電子楽器用ウエイブジエネレ−タ
JPS6374100A (ja) 波形読出装置
JPH0746960Y2 (ja) 楽音合成装置
JP2968320B2 (ja) ディストーション装置
JP2798913B2 (ja) 楽音波形生成装置及び楽音波形生成方法
JP3116447B2 (ja) デジタル信号処理プロセッサ
JPH0740195B2 (ja) 電子楽器
JPS5839B2 (ja) 電子楽器
JPS6118559Y2 (ja)
JP3180351B2 (ja) エフェクト装置
JPS6343760B2 (ja)
JPH02125296A (ja) 電子楽器
JPH0460725A (ja) デジタルマイクロコンピュータ
JPH0460595A (ja) 電子楽器用処理装置