JPH0230035B2 - - Google Patents

Info

Publication number
JPH0230035B2
JPH0230035B2 JP60080333A JP8033385A JPH0230035B2 JP H0230035 B2 JPH0230035 B2 JP H0230035B2 JP 60080333 A JP60080333 A JP 60080333A JP 8033385 A JP8033385 A JP 8033385A JP H0230035 B2 JPH0230035 B2 JP H0230035B2
Authority
JP
Japan
Prior art keywords
data
latch
waveform
bits
output
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
JP60080333A
Other languages
Japanese (ja)
Other versions
JPS61240294A (en
Inventor
Tetsuhiko Kaneaki
Yoshuki Takagi
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP60080333A priority Critical patent/JPS61240294A/en
Publication of JPS61240294A publication Critical patent/JPS61240294A/en
Publication of JPH0230035B2 publication Critical patent/JPH0230035B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】[Detailed description of the invention]

(産業上の利用分野) 本発明は電子楽器に係り、特に波形メモリを読
み出し、メモリの内容に基づいて楽音を発生する
ものに関する。 (従来の技術) 近年、電子楽器はデジタル信号処理技術の導入
により高度な音づくりが行われている。特に波形
メモリを読み出して楽音を発生する方法は種々の
形状の波形を自由に発生できるためよく用いられ
ている。このような電子楽器の一例として特公昭
58−42479号に示されているものがある。この従
来例について第14図のブロツク図により説明す
る。 押鍵によりノートデータがFナンバーメモリ1
に与えられ、10ビツトのFナンバーが読み出され
る。Fナンバーはマシンサイクルに従つて累算器
2で累算される。累算器2は18ビツト構成となつ
ており、18ビツトの累算結果はシフタ3へ送出さ
れる。シフタ3は3ビツトのオクターブデータを
入力とするデコーダ4により制御され、入力され
た累算結果はデコーダ4の出力に応じて、即ちオ
オクターブデータに応じて左シフトされ、上位11
ビツトが出力される。シフタ3の出力によつて波
形メモリ5より波形データが読み出される。 ここで、最低オクターブ(第0オクターブ)と
その1オクターブ上(第1オクターブ)の楽音の
発生について考えると、先ず、音域が最低オクタ
ーブの場合はシフタ3は累算器2の出力をシフト
せずそのまま出力する。このシフタ出力で波形メ
モリ5より波形データを読み出す。また、音域が
1オクターブ高い場合(第1オクターブ)は、シ
フタ3は累算器2の出力を1ビツト左へシフト
し、このシフタ出力で波形メモリ5より波形デー
タを読み出す。累算器2の出力を1ビツト左へシ
フトするということは即ち2倍するということな
ので、波形メモリ5の読み出し周期が2倍にな
り、1オクターブ高い楽音を出力することにな
る。 このようにして音域ごとに波形メモリを用意す
ることなくすべての音域の楽音を発生することが
できるものである。 (発明が解決しようとする問題点) しかしながら上記の従来例の構成では、完結し
た一波をくり返し読み出すという場合には問題な
いが、例えばPCM波形を読み出すといつたよう
に、数波を一度だけ読み出す場合には用いること
ができない。また、音域によつて音色を変えたい
場合で、例えば第0オクターブ〜第3オクターブ
にはそれぞれ別の波形メモリを読み出し、第4オ
クターブ以上は第3オクターブと同じ音色を用い
るという場合には、周期的な波形であるにもかか
らわず、周期が短い波形であつても最低オクター
ブと同じ量(本従来例では2048ワード)のメモリ
が必要となり、メモリが増大するために適さない
という問題点がある。 本発明は上記問題点に鑑み、一波をくり返し読
み出す場合は言うに及ばず、PCM波形を読み出
す場合においても音域ごとにデータを用意する必
要がなく、また、音域ごとに波形を変えたい場合
においてもメモリ冗長度が増えないようにした電
子楽器を提供するものである。 (問題点を解決するための手段) 上記問題点を解決するために、本発明の電子楽
器は、波形データと、該波形データのスタートア
ドレスと、該波形データの属するオクターブ値と
を含む第1のデータと、該第1のデータのアドレ
スを含む第2のデータとを格納するデータバンク
と;少なくとも音色選択データと音程データを含
む演奏情報を受取り、上記データバンクから該音
色選択データと該音程データの一部または全部を
アドレスとして該当する第2のデータを読み出す
手段と;上記データバンクから該第2のデータの
一部または全部をアドレスとして該当する第1の
データを読み出す手段と;上記音程データの属す
るオクターブ値から該当する第1のデータ中の波
形データの属するオクターブ値を減じた数値を2
のべき数として数値Aを作成する手段と;該第1
のデータ中のスタートアドレスに上記数値Aを順
次加算したものをアドレスとして上記データバン
クから該当する波形データを読み出す手段を備え
たものである。 (作用) 本発明は上記した構成によつて、押鍵によつて
先ずこれより読み出すべき波形データのスタート
アドレス及びその波形データの属する音域(オク
ターブ値)を読み取り、これより発生しようとす
る音域のオクターブ値と波形データのオクターブ
値の差をとり2のべき数の数値Aを得る。次いで
スタートアドレスに数値Aを順次加算していき、
この値でもつて波形データを読み出す。シフトで
なく順次加算する値を変化させることによつて発
生される音域を変えているので、PCM波形のご
とき波形も容易に読み出せ、また、一旦波形デー
タの属するオクターブ値とこれより発生しようと
するオクターブ値の差をとり、これに基づいて値
Aを決定しているので、どの音域の波形をどの音
域で発生する場合も問題ない。更に、押鍵により
スタートアドレスを読み込み、この値に基づいて
波形データを読み出すようにしているので、音域
ごとに音色を変化させたい場合においても無理な
く対応できる。 (実施例) 以下図面に基づき本発明の一実施例を説明す
る。 第1図は本発明による情報処理装置を電子楽器
に用いた場合のブロツク図である。この第1図を
説明すると、1−1は鍵盤である。1−2はタブ
レツトであり、本電子楽器より出力される楽音の
音色の選択を指示する操作部である。1−3は効
果スイツチであり、楽音に対する各種の効果の制
御、例えばヴイブラート、トレモロ等の効果のオ
ン・オフを指示するスイツチである。1−4はマ
イコン(マイクロコンピユータ)であり、例えば
インテル社のマイコン8049等が相当する。1−5
は楽音発生部であり、マイコン1−4より与えら
れた制御信号に基づいて波形演算、周波数演算を
行う。1−6はデータバンクであり、楽音発生部
1−5にて使用する波形データやエンベロープデ
ータが格納されているROM(読出専用メモリ)
である。1−7はフイルタであり、楽音発生部1
−5より出力される楽音信号の折り返しノイズを
除去する。1−8はスピーカである。 次に第1図イに示す電子楽器の動作を説明す
る。マイコン1−4は内部に予め書き込まれた命
令に従つて、鍵盤1−1、タブレツト1−2、効
果スイツチ1−3の状態を順次検索する。またマ
イコン1−4は鍵盤1−1における鍵のON/
OFFの状態に基づいて押圧されている鍵のコー
ドを楽音発生部1−5の複数のチヤンネルに割り
当てる割り当て信号を送出するとともに、タブレ
ツト1−2、効果スイツチ1−3の状態に応じて
制御データを送出する。楽音発生部1−5におい
ては、マイコン1−4より送出される割り当て信
号及びその他の制御信号を内部のレジスタに取り
込み、これらの信号に基づいてデータバンク1−
6より必要な波形データ、エンベロープデータを
読み出しながら楽音信号の合成を行う。この楽音
発生部1−5において合成された楽音信号は、フ
イルタ1−7を通してスピーカ1−8へと送られ
楽音を発生する。 第1図ロにマイコン1−4より楽音発生部1−
5へデータを転送する場合のタイミング図を示
す。また、第1表にマイコン1−4より楽音発生
部1−5へ送出するデータの内容を示す。第1表
において、NODは音程データを示すノートオク
ターブデータであり、ノートデータNDとオクタ
ーブデータOCT及びキーオンデータKonより成
つている。無論オクターブデータOCTは音程デ
ータの属するオクターブ値を意味する。その具体
的な内容は第2表にNODのビツト構成が示して
あり、第3表にノートデータNDと音名との対応
が示してあり、第4表にオクターブデータOCT
と音域との対応が示してある。即ち仮に楽音発生
部1−5に対しG#というノートの第6オクター
ブの音(以下G#6と略す)をチヤンネル1より
出力したい時には第1図ロにおけるアドレスとし
て00000001、データとして10011110をマイコン1
−4より送出することになる。次に、PDDはピ
ツチデチユーンデータであり調律をずらすための
8bitのデータである。PDDは2の補数表示にて表
されており、可変範囲は−128〜+127の256通り
である。RLDはリリースデータで、キーオフ後
の減衰特性を制御する4bitのデータである。
VOLはボリユームフラグであり、このビツトを
“1”にすると後述のボリユームデータVLDに応
じて楽音発生部1−5からの楽音信号の出力レベ
ル制御を可能にするものである。DMPはダンパ
フラグであり、ピアノタイプエンベロープの場合
のキーオフ後の減衰を急速な減衰にせしめるフラ
グであり、DMP=1の時に機能する。SOLはソ
ロフラグであり、他のチヤンネルと同音名の楽音
がアサインされた時にそのチヤンネルの発生して
いる楽音とこれから発生しようとしている楽音の
位相特性を合わすか否かを選択するフラグであ
り、SOL=1の時には位相合わせをキヤンセル
する。TABはタブレツトデータであり、第1図
におけるタブレツト1−2により指定されるデー
タがこの5bitに入る。PEはピツチエクステンド
フラグで、このビツトを“1”にしたチヤンネル
にはピツチエクステンドがかかる。VLDはボリ
ユームデータであり、前述のボリユームフラグ
VOLとともにチヤンネルから出力される楽音の
レベルを8bitの細かさで制御する。なお、これら
一連のデータはすべてチヤンネルごとに独立に設
定できるものである。 次に、楽音発生部1−5における演算シーケン
スについて説明する。 第5表及び第6表に楽音発生部1−5の演算シ
ーケンスを示す。本楽音発生部1−5において
は、短い演算サイクルでより多くのデータ処理を
行うために演算シーケンスがイニシヤルモード、
ノーマルモードの2つのモードを有し、更に上記
両モードがそれぞれロングシーケンス、シヨート
シーケンスに分かれている。また、イニシヤルモ
ードシヨートシーケンス及びノーマルモードロン
グシーケンスはそれぞれEVEN,ODDの2つの
状態を有している。 イニシヤルモードはマイコン1−4が楽音発生
部1−5に対して新たな楽音の発生を命令した際
に楽音発生部1−5におけるマイコン1−4より
指定されたチヤンネルについて種々のレジスタ等
の初期設定を行うモードでありロングシーケンス
より開始され、シヨートシーケンスを2回行つた
後ノーマルモードに入る。このイニシヤルモード
における2回のシヨートシーケンスについて1回
目がODD、2回目がEVENのシヨートシーケン
スとなる。このイニシヤルモード終了後、ノーマ
ルモードに移るが、シヨートシーケンス6回の後
ロングシーケンス1回がくることになる。 本実施例では各チヤンネル毎に、独立した2系
統の波形と独立した2系統のエンベロープとを掛
け合わせるようになつており、更にピツチの細か
な調整機能をも有しているが、これらの演算処理
を時分割で8チヤンネル分行うためには多大な演
算ステツプが必要となる。そこで短いサイクルで
演算しないといけないものをシヨートシーケンス
とし、演算頻度の低いもの、つまり長いサイクル
で演算してもよいものをロングシーケンスとす
る。そしてシヨートシーケンスの間にロングシー
ケンスを挿入することにより演算の効率化を図つ
ている。 第1図ハにシヨートシーケンス、ロングシーケ
ンスのタイミング図を示す。第1図ハに示すとお
り、シヨートシーケンス(0)〜(10)の11のタイム
スロツトより成つており、ロングシーケンスは(11)
〜(19)の9のタイムスロツトより成つている。
個々のタイムスロツトは250nsであり、4分割さ
れてφ1,φ3のノンオーバーラツプの2相クロツ
クとともに全体のシステムが動作している。シヨ
ートシーケンスとロングシーケンスの関係は、シ
ヨートシーケンスがチヤンネル0からチヤンネル
7まで8回くり返されるごとに1チヤンネル分の
ロングシーケンスが入る。故に、例えばチヤンネ
ル3のシヨートシーケンスは11×8+9の97タイ
ムスロツトごとに1回、ロングシーケンスは97×
8の776タイムスロツトごとに1回の割で現われ
ることになる。更に、ノーマルモードのロングシ
ーケンスにはEVENとODDのつの状態があるた
め、776×2の1552タイムスロツトを周期として
システムが動作しているものである。 次に、第5表及び第6表に基づいて個々の演算
シーケンスについて説明する。前述のように、楽
音発生部1−5は新たな押鍵によりイニシヤルモ
ードロングシーケンスより開始するようになつて
いるのでイニシヤルモードロングシーケンスより
タイムスロツト別に説明を行う。 加算部 (13)PDD+PED→PDR (15) O →TR1 (16) O →TR2 (17) O →ZR1 (18) O →ZR2 タイムスロツト(13)の意味するところは、PDD
というレジスタの内容をPEDというレジスタの
内容を加算してPDRというレジスタに格納する
ということである。タイムスロツト(15)〜(18)は、
TR1,TR2,ZR1,ZR2というレジスタにOを書
き込むということである。 データバンク読み出し部 (12) WTD→HAD→HAD (14) HAD→CONT→CONT,DIF1 (16)〜(17)HAD→STE→EAR1 これらの意味するところは、左端にあるデータ
(例えばタイムスロツト(14)ならばHADというデ
ータ)をアドレスとしてデータバンク1−6より
中央に記載のCONTというデータを読み出し、
右端にある名前のレジスタCONT及びDIF1に格
納するということである。 イニシヤルモードシーケンス 加算部 (1) PDR+JD L.B.;O→ER2/1 (3) CRG+OCT+1→WE2→ΔWAR (4) D.B.+EAR1→EAR2 (6) O →WR1 (8) O →ER1 (9) O →WE2 (10) O →WE1,WR2 タイムスロツト(1)におけるO→ER2/1はシヨ
ートシーケンス1回目即ちODD時にはER2、2
回目即ちEVEN時にはER1というレジスタにOを
書き込むことを意味する。またL.B.とは、PDR
+JDの演算結果をレジスタに格納せずに、Lバ
ス(後述)を介して乗算部(後述)に送出するこ
とを意味する。タイムスロツト(3)においては、演
算結果を一度WE2というレジスタに格納した後
デコードしてΔWARに格納することを意味する。
タイムスロツト(4)におけるD.B.は、後述のデー
タバンク読み出し部によつて得られる値をレジス
タ等を介さずDバス(後述)を介して加算器に送
出することを意味する。 乗算部 (4)〜(6) C.B.×CN1→FR 上記のC.B.は、加算部にて得られた結果をレジス
タを介さずに乗算部に直接入力することを意味し
この場合においてタイムスロツト(1)にて得られた
PDR+JDの演算結果を意味する。 データバンク読み出し部 (1) HAD→ΔSTE→A.B. (3)〜(4) EAR1/2→E1/2→ΔT1/2,ΔE1/
2,ΔZ1/2 (6)〜(7) HAD→STW/ΔSTW→STW/WAR ここでタイムスロツト(1)のA.B.は、データバ
ンク読み出しによつて得られた値をレジスタ等を
介さずに直接加算部のA入力へ入力することを意
味する。また、タイムスロツト(6)〜(7)の STW/ΔSTW→STW/WARは、シヨートシ
ーケンス1回目即ちODD時にはSTWというデー
タを読み出してSTWというレジスタに格納し、
2回目即ちEVEN時にはΔSTWというデータを
読み出してWARというレジスタに格納すること
を意味する。 次にノーマルモードについて説明する。 ノーマルモードシヨートシーケンス 第6表において*印のついている箇所は、ノー
トクロツクが発生した後の最初のシヨートシーケ
ンスのみでその演算が行われるものであり、この
動作を制御するフラグを計算要求フラグCLRQと
呼ぶことにする。 加算部 (1) WE2+WE1 →L.B. (2) STW+WAR →D.B.,B.B. (3) ZR1+ΔZ1 →ZR1 (4) DIF1+C.B. →D.B. (5) ER1+ΔE1+Ci →ER1 (6) ZR2+ΔZ2 →ZR2 (7) WAR+ΔWAR →WAR* (8) ER2+ΔE2+Ci →ER2 (9) FR+CDR →CDR* ここで、タイムスロツト(1)のL.B.は、演算結果
をレジスタを介さず直接乗算部へ入力することを
意味する。タイムスロツト(2)のD.B.,B.B.は同
様に演算結果を直接データバンク読み出し部及び
加算部のB入力へ入力することを意味する。タイ
ムスロツト(4)におけるC.B.は、加算部の演算結果
をレジスタを介さずに直接入力することを意味
し、この場合はタイムスロツト(2)におけるSTW
+WARの演算結果が入力される。また、D.B.は
その演算結果を直接データバンク読み出し部へ入
力することを意味する。タイムスロツト(5)及び(8)
のCiは、それぞれタイムスロツト(3)及び(6)におけ
る演算のくり上り(キヤリー)を加えるという意
味である。 乗算部 (1)〜(3) WR2+ER2→WE2* (4)〜(6) C.B.×CN→(DAC) (7)〜(9) WR1×ER1→WE1* ここで、タイムスロツト(4)〜(6)のC.B.とは加算
部の出力をレジスタ等を介さず直接乗算部へ入力
することを意味する。この場合は、タイムスロツ
ト(1)のWE2+WE1の演算結果に相当する。また
(DAC)とあるのは、この演算結果をDAC(DA
コンバータ;後述)に入力することを表す。 データバンク読み出し部 (4)〜(5) C.B.→W1→WR1* (7)〜(8) C.B.→W1→WR2* ここで、タイムスロツト(4)〜(5)のC.B.は加算部
の演算結果を直接データバンク読み出し部へ入力
してデータバンク1−6のアドレスとすることを
意味し、この場合は加算部におけるタイムスロツ
ト(2)のSTW+WARの演算結果に相当する。タ
イムスロツト(7)〜(8)のC.B.も同様にタイムスロツ
ト(4)のDIF1+(STW+WAR)の演算結果に相当
する。 ロングシーケンス 加算部 (13) ΔT1/2+TR1/2 →TR1/2 (14) PDR+JD →L.B. (15) ΔEAR1/2+EAR1/2+Ci →EAR1/2 (16) PDD+PED →PDR ここで、タイムスロツト(14)のL.B.は、加算部
の演算結果即ちPDR+JDの値をレジスタを介さ
ず直接乗算部へ入力することを意味する。タイム
スロツト(15)のCiはタイムスロツト(13)の演算を
行つた結果生じるくり上り(キヤリー)を意味す
る。 乗算部 (16)〜(18) CN+C.B. →FR ここで、C.B.は加算部における演算結果をレジ
スタを介さず直接乗算部へ入力することを意味
し、この場合は加算部タイムスロツト(14)におけ
るPDR+JDの演算結果が入力される。 データバンク読み出し部 (14)〜(15) EAR2/1→E2/1→ΔT2/1,
ΔE2/1,ΔZ2/1 ここで、2/1というのは、奇数回目、即ち
ODD時には2(例えばE2/1ならばE2)、偶数回
目、即ちEVEN時には1(同E1)となることを意
味し、EVEN、ODDで別のデータを読み出し、
別のレジスタへ格納することを意味する。 第2図は第1図イにおける楽音発生部1−5の
詳細な図である。まずこの図を用いて各ブロツク
の機能の概略を説明すると、2−1はマスタクロ
ツクであり、ここではf=8.00096MHzのものを
用いている。2−2はシーケンサ(以下SEQと
称す)であり、マスタクロツク2−1によるクロ
ツク信号を分周し、楽音発生部1−5全体におけ
るシーケンス信号(以下SQ信号と称す)及び各
種制御信号を発生する。2−3はマイコンインタ
ーフエース部(以下UCIFと称す)であり、第1
表にて示される各種データをマイコン1−4が楽
音発生部1−5とは非同期で送出しているが、こ
のデータを取り込み、SEQにより発生されるSQ
信号との同期をとる回路である。更にフラグKon
によりイニシヤルモード、ノーマルモードのモー
ド切りかえを指示するフラグINIを発生する。2
−4は比較レジスタ部(以下CDRと称す)であ
り、前記演算シーケンスで示したレジスタCDR8
チヤンネル分とマスタクロツクを順次分周して得
た10ビツトの分周信号とを比較し、8チヤンネル
分のノートクロツクと計算要求フラグCLRQを発
生する。2−5はランダムアクセスメモリ部(以
下メモリと称す)で、楽音発生部1−5内で行わ
れる種々の演算結果を記憶する。2−6はフルア
ダー部(以下FAと称す)であり、各種データの
加算を行う16ビツトのフルアダーを内蔵してい
る。2−7は乗算部(以下MPLYと称す)であ
り、 (2の補数の12bit)×(絶対値10bit) の演算を行う乗算器を有している。2−8はデジ
タルアナログコンバータ(以下DACと称す)で
あり、MPLY2−7より出力されるデジタルの
楽音データをアナログの楽音データに変換する。
2−9はアナログバツフアメモリ部(以下ABM
と称す)で、DAC2−8よりマシンサイクル周
期で発生される楽音データをCDR2−4により
発生されるノートクロツクによる音程同期への変
換を行う。ABM2−9の機能及び構成は特開昭
59−214091号公報に示されているアナログバツフ
アメモリと同様のものである。2−10は入出力
回路部(以下I/Oと称す)であり、データバン
ク1−6へアドレス信号を送出し、そのアドレス
信号に対応した波形データ、エンベロープデータ
の読み出しを行い、必要に応じて読み出したデー
タのデータ変換を行う。2−11はマトリツクス
スイツチ部(以下MSWと称す)であり、UCIF
2−3、CDR2−4、メモリ2−5に接続され
た横方向のバスライン(HA,HB,HC,HD,
HE,HLの各バス)とFA2−6、MPLY2−
7、I/O2−10へ接続されている縦方向のバ
スライン(A,B,C,D,Lの各バス)とを、
SQ信号に応じて接続する回路である。これらの
回路により第5表及び第6表に示す演算シーケン
スを実行するものである。 次に個々のブロツクについて説明する。 第4図は第2図におけるSEQ2−2の詳細図
である。4−1はカウンタであり、マスタクロツ
クを分周し、第1図ハに示す種々のタイミング信
号を発生する。TSは第1図ハにおけるタイムス
ロツトを表す信号であり、CHCはチヤンネルコ
ードであり、第1図ハにおけるチヤンネルの番号
を表わす信号である。EVは演算シーケンスにお
けるODD、EVENを表す信号であり、EV=0は
ODD、EV=1はEVENを意味する。4−2は
SQROM(シーケンスROM)である。SQROM4
−2のアドレス入力にはタイムスロツトを表す信
号TSとフラグINIが入力されており、これらの
入力に基づいて各々のタイムスロツトにおける各
種制御命令を発生している。4−3は論理ゲート
であり、SQROM4−2による出力を各種フラグ
及び計算要求フラグCLRQ等で更に制御して、
SQ信号(演奏情報、効果スイツチ1−3等の指
示に従つて、各機能ブロツクが各タイムスロツト
毎にどのように動作すべきかを指示する信号;図
中ではSQと略記)を発生する。 第5図はUCIF2−3の詳細図である。第5図
において、5−1はラツチであり、第1図におけ
るマイコン1−4より与えられるA/D0〜7を
ALEによりラツチする。A/D0〜7とALEの
関係は第1図ロに示すとおりであるので、ラツチ
5−1には第1表に示すところのアドレスがラツ
チされる。5−2はラツチであり、マイコン1−
4より与えられるA/D0〜7をによりラツ
チする。A/D0〜7との関係は第1図ロに
示すとおりであるのでラツチ5−2には第1表に
示すところのデータがラツチされる。5−3はラ
ツチであり、によつて制御されラツチ5−1
の出力をラツチする。このようにアドレスを2段
でラツチするのは、ALEがに無関係に周期的
に“1”になるからであり、このようにアドレス
を2段でラツチすることによりによる新たな
データの書き込みを行うまでラツチ5−3、ラツ
チ5−2にはそれぞれアドレス及びデータが格納
されることになる。5−4は1ワード8ビツトの
RAMであり、Aはアドレス入力、OEは出力制
御端子であり、データ端子DはHEバスに接続さ
れている。ここで、OE=1となるとA入力で与
えられたアドレスのデータをD端子より出力す
る。またWEは書き込み制御端子で、WE=1の
時にD端子に与えられているデータをA入力で与
えられたアドレスに書き込む。OE、WEはSQ信
号により制御されている。RAM5−4には第1
表にて示した各種データ(NOD,PDD,RLD・
VOL.DMP・SOL,TAB・PE,VLD)及びコ
ントロールデータCONT(データバンクより書き
込む。詳細は後述)、ピツチデータレジスタのデ
ータPDRがそれぞれ8チヤンネル分格納されて
いる。5−5はセレクタであり、マイコン1−4
の指定するアドレスと、SQ信号で指定するアド
レスを、別のSQ信号を用いて選択出力し、RAM
5−4のA入力に与えるものである。5−6は信
号処理器であり、HEバスに接続され、バス上の
データを取り込み各種フラグ信号を発生する。ま
た、マイコン1−4より送出されたリリースデー
タRLD4ビツトに応じた16とおりのリリース用エ
ンベロープデータを発生してHEバスに送出す
る。5−7はゲートであり、SQ信号に応じてラ
ツチ5−2の出力、つまりマイコン1−4からの
データをHEバス上に送出する。 次にUCIF2−3の動作を説明する。 第1表に示すようなデータが第1図ロに示すタ
イミングでマイコン1−4より与えられたとし、
仮にアドレスが0516、データが8916即ちチヤンネ
ル5にF#1の押鍵を指示したとすると、先ず
ALE信号によりラツチ5−1にアドレスがラツ
チされ、次いで信号によりラツチ5−2にデ
ータがラツチされると同時に、ラツチ5−3にア
ドレスがラツチされる。次いで所定のタイミング
でセレクタ5−5がラツチ5−3の出力をセレク
トし、同時にゲート5−7が開き、RAM5−4
のWEに書き込み信号が与えられる。この書き込
み信号によりHEバスにはラツチ5−2にラツチ
されたデータ即ちマイコン1−4が書き込もうと
したデータ即ち8916が与えられ、RAM5−4の
A入力にはラツチ5−3の出力である0516が与え
られるので、RAM5−4のアドレス0516番地に
8916というデータが書き込まれる。このようにし
て第1表に示した各種データがRAM5−4に書
き込まれる。第1表に示すとおり、RAM5−4
にはVOLフラグ、PEフラグ等のフラグ類が書き
込まれているが、これらのフラグ類はHEバスを
介して信号処理器5−6へ送出し、ここで一旦ラ
ツチした後使用している。 第6図はCDR2−4の詳細図である。6−1
はマスタクロツクを入力とした10ビツトの分周器
である。6−2は比較器付RAM(以下CDRAM
と称す。)であり、1ワード13ビツトで8ワード
を有する。各ワードのうち上位10ビツトには比較
器が設けてあり、端子Tより入力される分周器6
−1による分周データとの比較が行われ、10ビツ
トすべてが一致すると端子Cより一致パルスが出
力される。OE,WE,A,Dの機能は前述の
RAM5−4と同じである。6−3はデコーダで
あり、A入力、EN入力とD出力の関係は第8表
に示すとおりである。6−4〜6−11はRSラ
ツチであり、S入力に正のパルスが加わるとQ出
力が“1”に、R入力に正のパルスが加わるとQ
出力が“0”になる。RSラツチ6−4はチヤン
ネル0、RSラツチ6−5はチヤンネル1,……
の一致パルスがSに与えられる。6−12はセレ
クタであり、A入力に与えられた8信号からチヤ
ンネルコードCHC3ビツトによりそのうちの1信
号を選択してDより出力する。6−13はラツチ
であり、SQ信号に従つてセレクタ6−12の出
力をラツチする。6−14はANDゲートである。 次に第6図に示すCDR2−4の動作について
説明する。分周器6−1がマスタクロツクを分周
して10ビツトの分周出力をCDRAM6−2のT
入力へ与える。CDRAM6−2の各ワードには
任意の値が入つているが、これらの値の上位10ビ
ツトが分周器6−1の出力値と一致するごとに一
致パルスをC端子より出力する。CDRAM6−
2のA入力にはCHC即ちチヤンネルを表す信号
が入力してあるので、各ワードはそれぞれのチヤ
ンネルに対応しているので、チヤンネルごとに一
致パルスを発生する。この一致パルスはそれぞれ
をRSラツチ6−4〜6−11へ入力されている
ので、一致パルスが発生したチヤンネルに対応す
るRSラツチのQ出力が“1”にセツトされる。
RSラツチ6−4〜6−11のQ出力のうちの1
つがチヤンネルコードCHCに応じてセレクタ6
−12により順次選択されラツチ6−13にラツ
チされる。ラツチ6−13の出力はANDゲート
6−14に与えられているので、現在セレクタ6
−12が選択しているRSラツチのQ出力が“1”
ならば、ANDゲート6−14に加えられたSQ信
号によつてデコーダ6−3のD出力の該当チヤン
ネルが“1”になり上記のRSラツチのQ出力は
“0”にリセツトされる。 第7図はメモリ2−5の詳細図である。第7図
において、7−1〜7−4はRAMであり、OE,
WE,A,Dの各機能は前述のRAM5−4と同
じである。ここで、RAM7−1にはWAR,
EAR1,ΔZ1,ΔE1,WE1,EAR2,ΔZ2,ΔE2
の各レジスタが、RAM7−2にはWR2,ZR1,
ΔT1,FR,ΔWAR,ZR2,ΔT2の各レジスタ
が、RAM7−3にはER1,TR1,DIF1,DW1,
ER2,TR2,STW,TAB′,HADの各レジスタ
が、RAM7−4にはNOD′,WE2,VLD′の各レ
ジスタがそれぞれを8チヤンネル分格納されてい
る。なお、NOD′,TAB′,VLD′は前述のRAM
5−4におけるNOD,TAB,VLDのデータを
書き込んだものである。7−5は1ワード10ビツ
ト13ワードのROMであり、第5表、第6表で示
した演算シーケンスにおけるノート係数CNが記
憶されている。ここでQは出力、Aはアドレス入
力、OEは出力制御端子であり、OE=1でQに
ROMの内容が出力され、OE=0時はQ=ハイ・
インピーダンスである。ノート係数CNの値は第
7表に示すとおりである。なお、ROM7−5の
10ビツトの出力はHDバスの下位10ビツトに接続
されている。7−6は信号処理器であり、RAM
7−4に格納されたNOD′よりND(ノートデー
タ)とOCT(オクターブデータ)を読み出しこれ
らのデータ及びPEフラグに基づいてピツチデチ
ユーンデータPEDを発生する回路、並びにレジ
スタWE2のデータを読み出してデコードするデ
コード回路が備えてある。 第8図はFA2−6の詳細図である。第8図に
おいて、8−1〜8−8はラツチであり、SEQ
2−2が発生するφ1,φ3の信号で動作している。
8−9は加算器であり、A入力に与えられた値と
B入力に与えられた値(共に16ビツト)とキヤリ
ー入力Ciに与えられた値の加算を行い、C及び
Coより出する。Coは演算の結果生じるキヤリー
出力である。8−10,8−11はビツト処理回
路であり、ラツチ8−1、ラツチ8−2による出
力のビツト操作を行う回路である。8−12は論
理ゲートであり、SQ信号に応じてラツチ8−6
の出力を強制的に“1”または“0”にする。或
いはそのまま出力するといつた動作を行う。8−
13はRAMであり、そのサイズは1ワード9ビ
ツトで12ワードのものである。A.D,WE,OEの
各機能は前述のRAM5−4と同じである。D出
力9ビツトはCバスの下位9ビツトに接続されて
いる。 RAM8−13は位相合わせ(後述)用の位相
レジスタで、12音のノートの個々の波形データ読
み出し用アドレス(WAR)の位相管理を行う。 第9図イはMPLY2−7の詳細図である。第
9図において9−1〜9−9はラツチである。こ
こでラツチ9−3にはLバスのビツト0〜ビツト
9が、ラツチ9−5にはLバスのビツト9〜ビツ
ト12が接続されている。9−10はエンコーダ
である。入出力の関係は第9表に示すとおりであ
る。9−11はシフタであり、Iから入力される
16ビツトの信号をCに入力された制御信号に従つ
てシフトしOより出力する。シフトの内容は第10
表に示すとおりである。9−12はビツト処理回
路でありSQ信号に応じてラツチ9−3が出力す
る信号のビツト処理を行う。9−13はデコーダ
であり入力Aと出力Dとし関係は第11表に示すと
おりである。9−14はセレクタであり、Cに入
力されているSQ信号に応じてC=1ならばA、
C=0ならばBに入力されている16本の信号を選
択してYより出力する。なお、A入力の下位11ビ
ツトはGND(接地電位)に接続されている(即ち
“0”が与えられている)。9−15はシフタでI
から入力される14ビツトの信号をCに入力された
制御信号に従つてシフトしOより出力する。シフ
トの内容は第12表に示すとおりである。9−16
は乗算器であり、A入力がこの補数表示による12
ビツト、B入力が絶対値の10ビツトで出力が2の
補数表示による14ビツトである。通常12ビツト×
10ビツトの演算を行うと22ビツトの結果が得られ
るが、無論乗算器9−16の出力14ビツトは22ビ
ツトのうちの上位14ビツトである。故に、乗算器
9−16における入出力の関係は、次式のとおり
になる。 C=A×B/256 なお、MPLY2−7における乗算器9−16
は、回路をより簡略化するために以下の手法を用
いている。 通常乗算器を構成する際に、2の補数値12ビツ
ト×絶対値10ビツトの乗算器は116個の加算器セ
ルにより22ビツトの正確な演算結果が得られる。
しかし、本システムにおいては本来得られる22ビ
ツトのうちの上位14ビツトのみを使用する。即ち
下位8ビツトの出力は使用しないので本実施例で
は加算器セル省略による演算誤差が上位14ビツト
のLSBに影響しない下位7ビツト演算用の加算
器セルを全部省略している。そこで、本乗算器9
−16では、下位ビツト演算用の加算器セル28セ
ルを省略し第9図ロに示すような構成になつてい
る。第9図ロにおいて、破線内は同様のセルを略
記した。また、各ブロツクはすべて全加算器であ
り、入力がA,B,Ci(キヤリー入力)、出力が和
S及びキヤリーCoである。 第10図はI/O2−10の詳細図である。第
10図において10−1〜10−8はラツチであ
る。ここで、ラツチ10−3はセツト付のラツチ
でラツチの入力はDバスのビツト7〜ビツト9に
接続されている。10−9はシフタセレクタで、
C入力によりA入力とB入力の切換及びA入力の
1ビツトシフトを行う。10−10はビツト処理
回路であり、SQ信号に応じて下位3ビツトを強
制的に“1”或いは“0”にする回路である。1
0−11はデコーダであり、入力Iと出力Dの関
係は第13表に示すとおりである。デコーダ10−
11のA入力にはラツチ10−7の出力のビツト
12〜ビツト15が与えられる。10−12はセ
レクタであり、C入力に応じてA又はBに与えら
れている信号のいずれかを選択してYより出力す
る。10−13はシフタであり、制御端子Cの入
力に応じてIからの入力をシフトしてOより出力
する。10−14はノイズ回路であり、ノイズフ
ラグNAに応じて入力データにノイズを混入す
る。 第11図イはMSW2−11の詳細図である。
円で囲つた部分がスイツチであり、具体的には第
11図ロに示すようにNchのMOSFETで構成さ
れており、SQ信号が“1”になるとMOSFETが
オンして縦方向のラインと横方向のラインが導通
しデータが転送される。このMSW2−11にお
いては高速化のためにデータの転送の直前にすべ
てのバスラインに各タイムスロツト毎にφ1信号
によりプリチヤージを行つた後データの転送を行
なつている。これはスイツチがNch MOSFETで
構成されているので、転送されたデータの“1”
のレベルがMOSFETのしきい値電圧分だけ降下
するのを防ぐためである。第11図ハ〜第11図
リはMSW2−11にて使用されているスイツチ
パターンの例であり、円で囲つた交点の箇所がス
イツチを介して接続されている。この例では便宜
上各バスが8ビツトのものについて説明する。第
11図ハは、スイツチによつてbnとan(n=0〜
7)とを接続したものである。第11図ニはb0
〜b3の4本の値と“0”をスイツチによつて縦
方向のバスに書き込むようにしたものである。第
11図ホはb0〜b3をa0〜a3へ、c4〜c
7をa4〜a7へ書き込むようにしたものであ
り、これにより、2組のバスに別々に表れている
データを混合して他のバスに転送することができ
るようにしたものである。第11図ヘはビツト位
置を変換してバスからバスへ転送するようにした
もので、このようにスイツチを配することにより
横方向のバスのデータの上下各4ビツトを位置を
変更して縦方向のバスに転送する。第11図ト〜
第11図リは定数をバスに設定するための回路例
であり、第11図トはバスにオール“0”を設定
する回路、第11図チはバスに10101010即ち
AA16を設定する回路である。これは、スイツチ
のない部分であるa7,a5,a3,a1はこの
スイツチが開く直前にプリチヤージによつて
“1”が書き込まれたものがそのまま保持される
ことによる。第11図リはフラグTOによつて定
数の値を変えるようにしたもので、TO=0なら
ば0016がバスに書き込まれ、TO=1ならばEB16
がバスに書き込まれる。第11図ハ〜第11図リ
に示すスイツチをMSW2−11に用途に応じて
配して選択的に開閉することにより、任意のバス
から他の任意のバスへのデータ転送が必要なビツ
ト処理を含めて可能となる。例えば、HAバスか
らAバスへ、HBバスからBバスへ、Cバスから
HCバスへ同時にデータを転送したい時にはSW
1,SW7,SW13を同時にオンすればよい。
また、CバスのデータをLバスとDバスに転送し
たい時にはSW28,SW29,SW30をオンす
れば、Cバス→HLバス→Lバス及びDバスの経
路でデータが転送される。 なお、MSW2−11において、データの転送
は第11図ヌに示すタイミングで行われている。
即ち、φ1=1の区間で縦方向、横方向のバスラ
インのプリチヤージを行い、φ1の立ち下りより
φ3の立ち下りまでの区間でデータの転送を行い、
φ3の立ち下りでラツチする。ここで、φ3の立ち
下りからφ1の立ち上りまでの区間はラツチ動作
を安定に行うための余裕である。 次にデータバンク1−6について説明する。デ
ータバンク1−6には4種類のデータが格納され
ている。それは、(1)ヘツダアドレスデータ、(2)ヘ
ツダデータ、(3)波形データ、(4)エンベロープデー
タである。ここで、ヘツダアドレスデータはヘツ
ダデータがどのアドレスに格納してあるかを示す
8ビツトのデータであり、ヘツダデータは波形デ
ータ、エンベロープデータの格納してあるアドレ
ス及びそれらの属性を表わした8バイトのデータ
である。次に上記4種類のデータを更に詳しく説
明する。 (1) ヘツダアドレスデータ(HAD) このデータは各タブレツト、各オクターブ、各
3鍵ごとに割り当てられたノートデータをアドレ
スとしてヘツダデータのアドレスを示すデータで
ある。ヘツダアドレスデータの格納場所は第14表
に示すとおりであり、ビツト9〜ビツト5にタブ
レツトデータTAB、ビツト4〜ビツト2にオク
ターブデータOCT、ビツト1〜ビツト0にノー
トデータNDの上位2ビツト、残りのビツトには
すべて“1”が入つている。ここでTAB、
OCT、NDで構成される10ビツトをWTDと呼び、
その各々は第1表に示したものであることは言う
までもない。ヘツダアドレスデータによるヘツダ
データのアドレスは第15表のように示され、ビツ
ト10〜ビツト3にヘツダアドレスデータが入
り、上位ビツトはすべて“1”である。また、下
位3ビツトには000〜111のデータを入れる。 (2) ヘツダデータ(HD) ヘツダデータは第15表に示されるアドレスに格
納されている1ワード8ビツトで8ワードのデー
タであり、8ワードの各内容は第16表に示すとお
りである。第16表において、CONTはコントロ
ールデータであり、このヘツダデータにて示され
る波形データ、エンベロープデータの属性を表
す。E1′は2種類あるエンベロープデータのうち
の一方である。他方のエンベロープデータE2′の
スタートアドレスはSTE+ΔSTEで与えられる。
W1,W2は2種類ある波形データであり、W1の
スタートアドレスはSTW+ΔSTWで与えられ
る。 なおCONTは第17表に示すとおりの構成にな
つており、その意味するところは次のとおりであ
る。 P/O: このヘツダデータによる楽音がピアノ
型エンベロープを有するかオルガン型エンベロ
ープを有するかを示すフラグであり、P/O=
1ならばピアノ型であることを意味する。 ORG: 当該の楽音データが本来どの音域に属
していたかを示す3ビツトの情報であり、
ORGと音域の対応は第18表に示すとおりであ
る。故に波形データが実際に一周期分として有
するサンプル数がいくつであるかを示す情報で
もある。 W8: 波形データが12ビツト精度であるか8ビ
ツト精度であるかを示す。W8=1ならば8ビ
ツト精度である。W8=1の時には波形データ
の下位に4ビツトの“0”が追加され、波形の
振幅レベルは保たれるようになつている。 PCM: PCM=1で波形データW1の立ち上り
部がPCMであることを示す。 NA: ノイズ信号を楽音信号に重畳する場合に
使用する2ビツトの信号である。 (3) 波形データ(W1,W2) 前述のように、楽音発生部1−5においては波
形データとして12ビツトのものと8ビツトのもの
と2種類を使いわけている。ここで市販されてい
るROMについて考えるとそのほとんどが1ワー
ド8ビツト或いはそれ以下のものであり、1ワー
ド12ビツトものは希である。そこで本発明におい
ては次のように波形をROMに格納している。即
ち、 8ビツトの場合には、STW及びΔSTWによつ
て定まるアドレスより順次1ワードずつ格納して
いるが、1ワード12ビツトの波形データの場合は
第12図に示すとおり、上位8ビツトはSTW+
ΔSTWによつて示されるアドレスから順次格納
しているが、下位4ビツトはSTW+ΔSTWの値
を1ビツト右シフトしてMSBに1を入れたアド
レスより下位4ビツト上位4ビツトに2ワード分
ずつ順次格納してある。例えば、仮にアドレス
044416にある波形データの上位8ビツトの下位4
ビツトの場所は、アドレス122216の上位4ビツト
ということになり、アドレス044516についてはア
ドレス122216の下位4ビツトということになる。 (4) エンベロープデータ(E1′,E2′) エンベロープデータは16ビツトで1ワードを構
成し、そのデータフオーマツトは第19表に示すと
おりである。ΔTはエンベロープアドレスの更新
間隔を決めるデータである。Sはエンベロープの
斜き(増加または減少)を示すフラグである。Z
はエンベロープの傾きの大小を示すフラグであ
り、DATAはその大きさである。第19表に示す
データが第16表に示すSTE、ΔSTEによつて定め
られたアドレスに従つてデータバンクに格納され
ている。 以上のようにデータバンクが構成されているの
で、となり合つた3鍵ごとに音色の変化を与える
ことができる一方、逆に同一オクターブ内にては
同じヘツダアドレスデータを有するようにすれば
波形データ、エンベロープデータ、ヘツダデータ
を増すことなく同じ音色の楽音が得られる。ま
た、各ヘツダデータにおいて任意の波形データ、
エンベロープデータが指定できるので、少ない波
形データ及びエンベロープデータであつてもその
組み合わせ方で様々な楽音を発生することも可能
である。 次に楽音発生部1−5における押鍵時のイニシ
ヤル処理、ノートクロツクの発生方法、エンベロ
ープ発生方法波形の発生方法について述べる。 (1) イニシヤル処理 イニシヤル処理においては、押鍵により楽音が
発生される際の各種レジスタの初期設定が行われ
る。押鍵により、演算シーケンスはイニシヤルモ
ードのロングシーケンスより開始されるので、加
算部において、タイムスロツト13でPDRが初
期設定される。この演算を更に詳しく述べると、
第5図RAM5−4よりPDDが読み出されてHE
バスにデータが乗る。同時に第7図信号処理器7
−6よりHDバスに対してPEDが与えられ、第1
1図イにおいてSW21とSW17がオンして
PDDがAバス、PEDがBバスに乗る。このデー
タが第8図に示すところのFA2−6にて加算さ
れてCバスに演算結果が乗る。この演算結果が
SW23を介してHEバスに乗り、RAM5−4に
あるレジスタPDRに格納される。なお、この演
算において、PDD、PEDをFA2−6への転送は
実際にPDD+PEDの演算が行われるタイムスロ
ツトの1タイムスロツト前に、また演算結果の
PDRへの格納はPDD+PED演算が行われる1タ
イムスロツト後に行われる。以下加算演算につい
てはすべて同様である。次いで、タイムスロツト
(15)〜(18)にてTR1,TR2,ZR1,ZR2に“0”
が書き込まれる。この動作は、TR1に“0”を
書き込む場合について述べると、タイムスロツト
(15)にて第11図イのMSW2−11においてSW
33及びSW31がオンする。SW33は第11
図トのような構成になつており、Cバスに“0”
が与えられる。同時にSW13がオンしているの
で、CバスのデータがHCバスに与えられ、第7
図に示すRAM7−3におけるレジスタTR1に
“0”が書き込まれる。 一方データバンク読み出し部においては、次の
ような動作をする。以下第10図を中心に説明す
る。TAB,ND,OCTで構成されたWRDによつ
てヘツダアドレスデータHADが読み出される。
なお、このイニシヤル処理を行うイニシヤルモー
ドにおいては、ラツチ10−3はSQ信号により
111にセツトされている。このデータはI/O2
−10におけるシフタ10−13によつて第15表
に示されるフオーマツトにデータが変換されDバ
スSW15、HCバスを介してRAM7−3のレジ
スタHADに格納される。この動作と同時に、デ
ータバンクより読み出されたヘツダアドレスデー
タHADは、ラツチ10−8、ラツチ10−6で
次々とラツチされ、シフタセレクタ10−9にて
第15表に示すとおりのフオーマツトにデータが変
換されてラツチ10−4にラツチされる。ラツチ
10−4の出力に対し、先ずビツト処理回路10
−10で下位3ビツトに対して000が与えられて
コントロールデータCONTがデータバンク1−
6より読み出されラツチ10−8を介してラツチ
10−7の上位8ビツトにラツチされる。コント
ロールデータCONTはセレクタ10−12、シ
フタ10−13、ノイズ回路10−14、ラツチ
10−2を介し、DバスよりRAM5−4のレジ
スタCONTに格納される。一方、ラツチ10−
7の上位4ビツトはデコーダ10−11に接続さ
れているので第14表に示す真理値表に従つて16ビ
ツトのデータが得られる。但し、この時にデコー
ダ10−11のC入力は“1”となつている。セ
レクタ10−12がこのデコーダ出力をセレクト
し、シフタ10−13が6ビツト右シフトして出
力する。ここで、このシフタ10−13の出力に
ついて考えると、ラツチ10−7よりデコーダ1
0−11へ入力されているデータはP/O及び
ORG3ビツトである。今デコーダ10−11のC
入力は“1”であるので、デコーダ10−11の
出力はORG3ビツトのみによつて定まる。故にデ
コーダ10−11の出力をシフタ10−13で6
ビツト右シフトした値は第18表に示した値とな
る。この値がノイズ回路10−14、ラツチ10
−2を介してDバスに与えられ、MSW2−11
においてSW15を介してRAM7−3のレジス
タDIF1に格納される。 次にラツチ10−4の出力に対し、ビツト処理
回路10−10が下位3ビツトに対し、001、次
いで010を与え、ヘツダデータのSTEの上位、下
位の各8ビツトを読み出す。このSTEの値がセ
レクタ10−12、シフタ10−13、ノイズ回
路10−14、ラツチ10−2を介してDバスに
与えられ、MSW2−11においてSW5を介し
てRAM7−1のレジスタEAR1へ格納される。 次にシヨートシーケンスに入る。シヨートシー
ケンスは2回実行される。タイムスロツト(1)で
PDRとJDが加算されが、ここでJDは定数であり
MSW2−11においてSW32をオンすること
により得られる。SW32は第11図チに示すよ
うな構成になつており、JD=45B16となつてい
る。この加算結果に対してノート係数CNを掛け
合わせてFRを得る。この一連の円算を詳しく述
べると、PDR+JDがタイムスロツト(1)で演算さ
れ、その結果が前述のとおりタイムスロツト(2)に
てCバスに与えられる。ここでMSW2−11に
おいてSW28,SW29がオンし、Cバス→HL
バス→Lバスの順でデータが転送され、第9図イ
におけるMPLY2−7のラツチ9−1ににラツ
チされる。次のタイムスロツト(3)において、第7
図のROM7−5よりノートデータNDに応じた
CNの値が読み出され、HDバスに与えられる。
この値がMSW2−11におけるSW19を介し
てLバスに与えられ、MPLY2−7のラツチ9
−3にラツチされる。ラツチ9−1の出力はシフ
タ9−11を介してラツチ9−2へ、ラツチ9−
3の出力はビツト処理回路を介してラツチ9−4
へ送られラツチされる。故にラツチ9−2には
PDR+JDの値が、ラツチ9−4には、CNの値
がラツチされている。次いで乗算器9−16が
(PDR+JD)とCNの積を算出し、シフタ9−1
5を介してラツチ9−8へ送出されラツチされ
る。なおこれらの一連の動作において、シフタ9
−11、ビツト処理回路9−12、シフタ9−1
5はデータをスルーさせるように動作する。即ち
エンコーダ9−10のC入力には“1”が与えら
れている。ラツチ9−8の値がLバスよりMSW
2−11のSW9を介してRAM7−2のレジス
タFRに格納される。故に、タイムスロツト(2)に
おいて、ORG+OCT+1が演算される。この演
算において、+1の動作は第8図のFA2−6にお
ける論理ゲート8−12によつて行われる。即ち
該当のタイムスロツトで論理ゲート8−12が強
制的に“1”を出力すればラツチ8−5が“1”
をラツチし、加算器のCi入力に“1”を与えるも
のである。この演算の意味するところは次のとお
りである。即ち、ORGは波形データが本来どの
音域に属するかを示す値(これを仮にNとする)
をオクターブデータOCTの逆論理をとつた形で
示すものである。OCTとORGと、波形サンプル
数の関係を第18表と第22表に示す。故にORG+
1は−Nを表わすことになる。つまり、 ORG+OCT+1=OCT−N ……(1−1) ということであり、これは、現在発生しようとし
ている楽音信号の音域(つまり音程データの属す
るオクターブ値)と実際に使用しようとしている
波形データ本来の音域(つまり波形データの属す
るオクターブ値)との差、即ちオクターブシフト
の量を示す値である。つまり、原波形を何オクタ
ーブ高い音域の音として読み出すかを示す。この
値は一旦RAM7−4のレジスタWE2に格納さ
れ、次いで、信号処理器7−6でデコードされて
RAM7−2のレジスタΔWARに格納される。
ORG+OCT+1の値に対するΔWARの値は第20
表に示すとおりである。つまり音程データの属す
るオクターブ値と波形データの属するオクターブ
値の差である(ORG+OCT+1)を2のべき数
としてΔWARを得るようにしたものである。数
式で示すと(1−2)式の通りとなる。 ΔWAR=2(ORG+OCT+1)
……(1−2) 以下、タイムスロツト(4)でEAR2、同(6),(8),
(9),(10)でWR1,ER1,WE2,WE1,WR2
の各レジスタの初期設定を行つている。 一方データバンク読み出し部においては、前述
のロングシーケンスでRAM7−3に格納したヘ
ツダアドレスデータHADを読み出し、Dバス→
ラツチ10−1→シフタセレクタ10−9を介し
てラツチ10−4にラツチし、ビツト処理回路1
0−10で下位3ビツトに001を入力してデータ
バンクよりヘツダデータのΔSTEを読み出す。こ
の値はラツチ10−7→セレクタ10−12→シ
フタ10−13→ノイズ回路10−14→ラツチ
10−2を介してDバスへ与えられ、MSW2−
11においてSW26,SW30を介してAバス
へ入力されてFA2−6にてEAR1と加算され
る。次いでRAM7−1のレジスタEAR1に格納
してあるSTE(エンベロープデータE1′のスター
トアドレス)が読み出され、Dバス→ラツチ10
−1→シフタセレクタ10−9を介してラツチ1
0−4にラツチされる。ラツチ10−4の出力は
ビツト処理回路10−10によつてLSBに“0”
次いで“1”が入力されて、第19表に示されてい
るとおりの2バイトのエンベロープデータを読み
出す。この値16ビツトがラツチ10−7にラツチ
される。ラツチ10−7の出力に従つて、初回の
シヨートシーケンスでΔT1,ΔE1,ΔZ1、2回目
のシヨートシーケンスでΔT2,ΔE2,ΔZ2、の値
を発生する。先ず、デコーダ10−11にはラツ
チ10−7の上位4ビツトが入力されているが、
ラツチ10−7の上位4ビツトには第19表に示す
ところのΔTの値が入つている。故にデコーダ1
0−11はΔTを第13表に従つてデコードし、セ
レクタ10−12へ出力する。セレクタ10−1
2においては、この時C=1となつてB入力を選
択しシフタ10−13へ出力する。このセレクタ
10−12出力はシフタ10−13、ノイズ回路
10−14においては何らビツト操作が行われる
ことなくラツチ10−2を介してDバスに与えら
れ、MSW2−11においてSW10、HBバスを
介してRAM7−2のレジスタΔT1に格納され
る。ΔE1,ΔZ1,ΔE2,ΔZ2は、第19表に示され
るところのZ,S,DATAに応じてシフタ10
−13にてビツト操作が行われて各レジスタへ格
納される。どのようなビツト操作が行われるかに
ついては第13図に示すとおりである。第19表に
おけるZの値に応じて、データフオーマツトが異
なる事を示している。 次に、データバンク1−6よりΔSTEを読み出
す時と同様にRAM7−3よりレジスタHADの
値を読み出してラツチ10−4にラツチし、ビツ
ト処理回路10−10にてヘツダアドレスデータ
HADの下位3ビツトに対し初回のイニシヤルモ
ードでは100、次いで101、2回目のイニシヤルモ
ードでは110、次いで111を与えることによりデー
タバンク1−6よりSTW,ΔSTWを読み出し、
STWをRAM7−3のレジスタSTW,ΔSTWを
RAM7−1のレジスタWARに格納する。 以上により、すべてのレジスタの初期設定が完
了する。 (2) ノートクロツクの発生方法 先ず楽音発生部1−5で用いているノートクロ
ツク発生法の原理について第3図とともに説明す
る。第3図において、3−1は分周器であり端子
CKに入力されているマスタクロツクを分周し、
10ビツトの分周出力をQより出力する。3−2は
比較器で、A入力及びB入力の比較を行い、A=
Bとなつた時にQより“1”を出力する。3−3
はフリツプフロツプであり、CK入力の立上りで
D入力に与えられた信号をとり込みQより出力す
る。3−4は加算器であり、A入力とB入力の和
をCより出力する。3−5は加算器3−4のB入
力に対して定数Mを入力する定数回路である。3
−6はRSラツチであり、S入力に正のパルスが
入るとQ=1となり、R入力に正のパルスが入る
とQ=0となる。3−7はデイレイ回路であり、
入力信号を遅延させて出力する。3−8はAND
ゲートである。 次に第3図の動作を説明する。まず、RSラツ
チ3−6のQ出力が“0”であるとすると、
ANDゲート3−8の出力は常時“0”であるの
でフリツプフロツプ3−3のQ出力は一定であ
る。一方分周器はマスタクロツクの分周より、
00016から3FF16をくり返す10ビツトのQを出力す
る。仮にフリツプフロツプ3−3の出力がNであ
つたとすると、当然00016≦N≦3FF16であるので
必ずいつか分周器3−1のQ出力=Nとなる瞬間
が存在し、この時は比較器3−2のQ出力より一
致パルスが出力される。すると、この一致パルス
RSラツチ3−6のS入力に入つているためにRS
ラツチ3−6のQ出力は“1”となり書き込みパ
ルスがANDゲート3−8より出力される。フリ
ツプフロツプ3−3のD入力には加算器3−4の
C出力が与えられているのでN+Mの値が書き込
まれる。と同時に、書き込みパルスはデイレイ回
路3−7で遅延された後RSラツチ3−6のQ出
力を“0”にする。このため、再びフリツプフロ
ツプ3−3のQ出力は一定となるが、値はNから
N+Mに変化している。故に次は分周器3−1の
Q出力がN+Mになつた時に一致パルスを発生す
ることになる。これをくり返すことにより、比較
器3−2は分周器3−1の出力値がN,N+M,
N+2M……となつた時にパルスを発生する。つ
まり分周器3−1がマスタクロツクをM回カウン
トするごとに一致パルスを発生することになる。
また、 N+nM>3FF16となる場合においては、加算器
3−4の出力はオーバフローの後N+nM−
3FF16となるためにやはりマスタクロツクをM回
カウントした時に一致パルスが発生されることは
言うまでもない。つまり、この比較器3−2の一
致パルスをノートクロツクとし、定数Mを変化さ
せれば種々の周期のノートクロツクが得られるこ
とになり、その周波数は(マスタクロツクの周波
数)÷Mとなる。また、SRラツチ3−6のQ出力
が計算要求フラグCLRQに相当する。 以上が本発明におけるノートクロツク発生法の
原理である。 次に、第1図に示す楽音発生部1−5における
ノートクロツクの発生の演算シーケンスの詳細に
ついて説明する。 鍵盤1−1にて鍵が押圧され、マイコン1−4
が楽音発生部1−5に対して楽音の発生を指示す
ると、前述のように演算シーケンスがイニシヤル
モードロングシーケンスより開始する。先ずタイ
ムスロツト(13)で、 PDD+PED→PDR ……(2−1) 次いで、シヨートシーケンスに入りタイムスロ
ツト(1)……(6)で PDR+JD→L.B. ……(2−2) C.B.×CN→FR ……(2−3) の演算が行われる。次いでノーマルモードにな
り、シヨートシーケンスのタイムスロツト(9)で FR+CDR→FR (2−4) ロングシーケンスのタイムスロツト(14)〜(18)
で PDR+JD→L.B. ……(2−5) C.B.×CN→FR ……(2−6) PDD+PED→PDR ……(2−7) の演算が行われる。ここで、PDDは第1表に示
したPDD即ちピツチデチユーンデータであり、
PEDは前述のピツチエクステンドデータである。
JDは定数であり111510(16進数では45B)という
値がセツトしてある。ノート係数CNはアサイン
された音名による定まる値であり、音名とCNの
関係は第7表に示してある。第5表、第6表の説
明にて述べたとおり、演算(2−2),(2−3)
及び演算(2−5),(2−6)は下式のとおりに
表せる。 (PDR+JD)×CN→FR ……(2−8) ここで、PDRはPDD+PEDであるので演算
(2−8)は、 (PDD+PED+JD)×CN→FR
……(2−9) となる。このFRの値を演算(2−4)で示すよ
うにCDRに累算する。前述のようにこの累算は
ノートクロツクが発生するごとに一回行われる。
故にCDRの初期値をNとすると、CDRの値はN,
N+FR+N+2×FR,……と変化する。この
CDRの上位10ビツトの値とマスタクロツクを順
次分周して得た10ビツトの分周信号とを比較し、
一致パルスを発生するようにしているので、実際
には、 N/8,N+FR/8,N+2×FR/8,……との比較 を行うことになり、CDRの上位10ビツトが第3
図のフリツプフロツプ3−3に相当し、FR/8
が第3図の定数回路3−5の値Mに相当する。故
に上記(2−1)〜(2−7)の演算を行えば一
定周期のノートクロツクが得られ、その周波数は (マスタクロツク周波数)÷FR/8となる。 (3) 波形発生方法 第1図楽音発生部1−5にすところの波形発生
方法は大別して次の5ステツプに分けられる。即
ち: アドレス発生 データバンク1−6より波形データを読み出す
際のアドレスを発生させる。 波形読み出し 上記のアドレスで指定された波形データをデー
タバンク1−6より読み出し、コントロールデー
タCONTに応じたビツト処理を行う。 エンベロープ乗算 2波混合 CN乗算 以下各ステツプを詳しく説明する。 アドレス発生 押鍵によるイニシヤル設定にてヘツダーデータ
のSTW(W2のスタートアドレス)、ΔSTW(W1
のワード数)、DIF1(1波形に含まれるサンプル
数)がレジスタSTW、WAR、DIF1に格納され、
また演算によつてレジスタΔWARが定まる。こ
れらのデータに基づきノーマルモードにてアドレ
ス発生を行うわけであるが、以下の処理において
波形データにPCM部がある場合(PCM=1)と
ない場合(PCM=0)でアドレス発生が異なる
のでPCM部がある場合とPCMがない場合に分け
て説明する。 PCM部がない場合 第6表に示すとおり、タイムスロツト(2)にて、
STWとWARの和を求め、この和でもつてデー
タバンク1−6から波形1の読み出しを行い、タ
イムスロツト(4)にて上記の和に更にDIF1を加え
たもの即ちSW+WAR+DIF1の値でデータバン
ク1−6から波形2の読み出しを行つている。こ
こで、STWは波形2の先頭アドレスであり、レ
ジスタWARには初期値としてΔSTW即ち波形1
に含まれるワード数の負数が入つており、タイム
スロツト(7)にてΔWARを累算していく。故に
STW+WARの値は、波形1の先頭アドレスよ
り順次ΔWARの値ごとに増加する値となる。ま
た、ST+WAR+DIF1の値はこの値にDIF1を加
えたものであるので、波形2の先頭アドレスより
ΔWARおきに増加する値となる。ここで、
ΔWARは、波形の読みとばしを表わす値である
ので、以上のようにして波形1及び波形2に対す
るアドレスを発生することができる。 また、本楽音発生部1−5においては、PCM
部が無しで、且つソロフラグSOL=0で且つオ
クターブシフトが行われない場合に位相合わせを
行う。位相合わせの方法は、演算シーケンスがイ
ニシヤルモードからノーマルモードに転じた時の
初回のタイムスロツト(7)に演算結果としてRAM
8−13における同音名をアドレスとするデータ
9ビツトをレジスタWARに格納する。RAM8
−13の出力は9ビツトであるが、Cバスはプリ
チヤージされているので全16ビツトの前述の9ビ
ツトより上位7ビツトには“1”が入る。2回目
以降のタイムスロツト(7)の演算結果は、第6表に
示すとおりレジスタWARに格納されるとともに
RAM8−13における同音名をアドレスとする
レジスタ(位相レジスタ)に更新される。このよ
うにすることにより、他のチヤンネルで同音名の
楽音を既に発生している場合であつても、そのチ
ヤンネルにおけるレジスタWARの値がRAM8
−13を介してこれから楽音を発生しようとして
いるチヤンネルのレジスタWARに与えられるた
めにこれら2チヤンネル間での位相を合わせるこ
とが可能となる。 ここで、タイムスロツト(7)の演算WAR+
ΔWARについて述べる。 WAR+ΔWAR≧0となると音域とは無関係に
演算結果としてCバスには−51210(FFOO16)が
与えられる。オクターブシフトが無い場合は
ΔWAR=1であるので、レジスタWARの値は
512を周期としてくり返すことになる。 以上により同じノートを発生する複数チヤンネ
ルの各々のレジスタWARは常に同一となるの
で、異なる複数チヤンネルの発生する同じノート
の波形の位相が完全に一致することとなり、位相
合わせが実現される。 次にタイムスロツト(2)における演算STW+
WARを更に詳しく説明する。 RAM7−3のレジスタSTWよりデータが読
み出され、MSW2−11に示すところのHCバ
ス、SW11、Aバスを介しクロツクφ3により
FA2−6のラツチ8−1にラツチされる。同時
にRAM7−1のレジスタWARの値がHAバス、
SW2、Bバスを介しクロツクφ3によりFA2−
6のラツチ8−2にラツチれる。ラツチ8−1の
出力は、ビツト処理回路8−10では何らのビツ
ト処理を受けずにクロツクφ1よつてラツチ8−
3にラツチされる。一方、ラツチ8−2の出力
は、ビツト処理回路8−11においてORGを入
力として第21表に示すとおりのビツト処理が行わ
れた後クロツクφ1でラツチ8−4にラツチされ
る。加算器8−9がラツチ8−3、ラツチ8−4
の出力を加算し、ラツチ8−7、ラツチ8−8を
介してCバスへ与えられる。ビツト処理回路8−
11において上記のようなビツト処理を行うこと
により、レジスタWARが512を周期として変化
しているにもかかわらず、各オクターブに応じた
周期で変化していくことになる。例えば、ORG
=5,OCT=2の場合はオクターブシフトはな
くイニシヤル処理の項で述べたとおりΔWAR=
1である。また第21表より、レジスタWARのビ
ツト7,8が常に1になるので、タイムスロツト
(2)の演算結果は仮にSTW′=0とすると −10,−9,……−1,−128,−127,…… −1,−128…… となつて128の周期でくり返すことになる。また、
ORG=4、OCT=5の場合は2オクターブシフ
トとなりΔWAR=4となる。また第21表により
レジスタWARのビツト6,7,8が常に1にな
るので同様に −40,……−8,−4,−64,−60,−56…… −4,−64,…… となつて16の周期でくり返すことになる。 OCT=2の時くり返し周期が128であり、 OCT=5の時くり返し周期が16であることは、
第22表により所望の波形ポイントが得られている
ことを示している。 またORG=4,OCT=5の際、レジスタ
WARが4ずつ歩進していることは、第18表に示
される通り波形サンプル数64のデータを4サンプ
ルに1点ずつ得ることにより本来の波形データの
オクターブを2オクターブ上げることができるこ
とを示している。 PCM部がある場合 PCM部がある場合のアドレス発生はPCM部が
ない場合と比較してタイムスロツト(2)における演
算が異なり、他は同様である。 タイムスロツト(2)においてはSTR+WARの演
算が行われる。即ち: RAM7−3のレジスタSTWよりデータが読
み出され、HCバス、SW11、Aバスを介して
クロツクφ3によりFA2−6のラツチ8−1にラ
ツチされる。同時に、RAM7−1のレジスタ
WARの値がHAバス、SW2、Bバスを介して
FA2−6のラツチ8−2にラツチされる。ここ
で、ラツチ8−1の出力はビツト処理回路8−1
0、ラツチ8−2の出力はビツト処理回路8−1
1に入力されるが双方の出力ともビツト処理を行
われることなくラツチ8−3、ラツチ8−4へ送
られ、加算器8−9にて加算される。 ここで、レジスタWARの値について考える
と、PCM部がない場合にはレジスタWARには初
期値として波形一周期に含まれるサンプル数の負
数が書き込まれるが、PCM部がある場合には、
レジスタWARの初期値としてPCM部として用い
る波形すべてのサンプル数の負数が書き込まれ
る。故に、タイムスロツト(2)の演算結果はデータ
バンク1−6における波形1のPCM部先頭アド
レスから順次ΔWARずつ増加した値となる。
PCM部終了の検出はタイムスロツト(7)における
演算においてWAR+ΔWAR≧0となることを検
出して行い、PCM部終了後のアドレス発生は
PCM部がない場合と全く同じであり、ビツト処
理回路8−11によるビツト処理が行われる。 なお、楽音発生部1−5におけるアドレス演算
は16ビツトであるが、16ビツトのアドレス信号で
は充分でない場合が当然考えられる。そこで、本
楽音発生部1−5においては、タブレツトデータ
TABの上位3ビツトを用いてアドレス空間が拡
張できるようになつている。I/O2−10にお
けるラツチ10−3がアドレス空間拡張用のラツ
チであり、ラツチ10−3にタブレツトデータ
TABの上位3ビツトがラツチされる。即ち: 押鍵によりイニシヤルモードになると、RAM
5−4に格納されたタブレツトデータがMSW2
−11を介してRAM7−3のレジスタTAB′に
格納される。次いでノーマルモードに入ると、
RAM7−3のレジスタTAB′の値が読み出され、
MSW2−11を介してI/O2−10における
ラツチ10−3にラツチされる。このようにして
内部演算は16ビツトでありながら19ビツトのアド
レス空間をアクセスすることができる。 波形読み出し 波形読み出しはタイムスロツト(2),(4)にて行わ
れたアドレスに基づいて行われる。タイムスロツ
ト(2)による演算結果はCバス、SW28、HLバ
ス、SW30、Dバスを介してI/O2−10の
ラツチ10−1にラツチされる。まず、ラツチ1
0−1の出力がシフタセレクタ10−9、ラツチ
10−4、ビツト処理回路10−10を介してラ
ツチ10−5にラツチされてラツチ10−3によ
るデータとともにデータバンク1−6を読み出
し、データバンク1−6の出力がラツチ10−8
にラツチされる。次いで、ラツチ10−1の出力
がシフタセレクタ10−9にて1ビツト右シフト
され、MSBに“1”が加えられてラツチ10−
4でラツチされる。ラツチ10−4の出力がビツ
ト処理回路10−10を介してラツチ10−5に
ラツチされ、ラツチ10−3によるデータととも
にデータバンク1−6を読み出し、データバンク
1−6の出力がラツチ10−7にラツチされる。
この時ラツチ10−7の上位8ビツトにはラツチ
10−8の出力が与えられているので、前回のデ
ータバンク1−6の値とともにラツチされる。こ
こで、ラツチ10−7の下位8ビツトにラツチさ
れたデータは、データバンクの項で述べたとおり
12ビツト波形の下位4ビツト2ワード分に相当す
る。ラツチ10−7の出力はセレクタ10−12
を介してシフタ10−13に与えられ、上位8ビ
ツトは4ビツト右にシフトされ、ラツチ10−1
の出力のLSB=0ならば下位8ビツトも4ビツ
ト右シフトされ、LSB=1ならば下位4ビツト
がシフトされずにシフタ10−13より出力され
る。ここで、コントロールデータCONTにおい
てW8=1即ち8ビツト波形の指定がある場合に
は、シフタ10−13は下位4ビツトを“0”に
して出力する。シフタ10−13の出力はノイズ
回路10−14、ラツチ10−2を介してDバス
に与えられ、MSW2−11を介してRAM7−
3のレジスタWR1に格納される。この値が波形
1の波形データである。 タイムスロツト(4)によつて得られたアドレスに
ついても同様の処理が行われる。ただし、コント
ロールデータCONTにおいてNA=00でない場合
はノイズ回路10−14においてノイズ信号が加
えられる。AN=01の時にはビツト9が、NA=
10の時にはビツト10が、NA=11の時にはビツ
ト9及び10がノイズ信号におきかえられる。こ
のようにして、加算器を用いずにノイズ信号を重
畳している。これが波形2の波形データとして
RAM7−2のレジスタWR2に格納される。 エンベロープ乗算 上記のようにして波形1、波形2の2種類の波
形データが得られたが、この波形データに対して
エンベロープの乗算を行う。波形1に対するエン
ベロープはRAM7−3のレジスタER1に、波形
2に対するエンベロープはRAM7−3のレジス
タER2に入つている。ここで、エンベロープにつ
いて述べると、エンベロープは指数部4ビツト仮
数部9ビツトの13ビツト浮動小数点表示になつて
いる。エンベロープ乗算は各チヤンネル2回行わ
れるがそれぞれの動作は同様であるので、タイム
スロツト(7)〜(9)におけるWR1×ER1の演算につ
いて説明する。 RAM7−3のレジスタER1のデータがMSW
2−11を介してMPLY2−7のラツチ9−3
及びラツチ9−5にラツチされる。ここで、ラツ
チ9−3にはレジスタER1の下位10ビツトが、ラ
ツチ9−5にはレジスタER1のビツト9−12が
ラツチされる。次いでRAM7−3のレジスタ
WR1のデータがMSW2−11を介してMPLY
2−7のラツチ9−1にラツチされる。ラツチ9
−3の出力はビツト処理回路9−12においてそ
のMSBが“1”にされてラツチ9−4にラツチ
される。即ち、ラツチ9−4にはエンベロープの
仮定部がラツチされる。ラツチ9−1の出力はシ
フタ9−11を介してラツチ9−2にラツチされ
る。この際エンコーダ9−10のC入力にはSQ
信号によつて1が与えられており、シフタ9−1
1のC入力には00001が与えられる。故にシフタ
9−11はラツチ9−1の下位12ビツト即ちデー
タバンク1−6より読み出した波形1の波形デー
タ12ビツトをラツチ9−2へ送出する。乗算器9
−16がラツチ9−2及びラツチ9−4のデータ
の乗算を行い、積14ビツトがラツチ9−7にラツ
チされ、シフタ9−15へ送出される。 一方、ラツチ9−5にはエンベロープの指数部
がラツチされており、ラツチ9−6を介してデゴ
ーダ9−13にてデコードされ、セレクタ9−1
4を介してシフタ9−15に制御信号として与え
られる。故に、ラツチ9−7の出力はエンベロー
プの指数部によつてシフトされ、ラツチ9−8に
てラツチされる。このようにして、固定小数点の
波形データと浮動小数点のエンベロープの乗算が
行われる。ラツチ9−8の出力はLバスより
MSW2−11を介してRAM7−1のレジスタ
WE1に格納される。波形2の波形データとエン
ベロープの乗算も同様にして行われRAM7−4
のレジスタWE2に格納される。 2波混合 上記のようにして、レジスタWE1,WE2に波
形が格納された。このステツプではWE1とWE2
の和を求める。タイムスロツト(1)における演算が
これに相当する。 CN乗算 タイムスロツト(1)で2波混合を行うが、本楽音
発生部1−5においては、ABM2−9及びフイ
ルタ1−7の特性によつては音名に応じて発生さ
れる音圧レベルが異なる場合がある。このための
補正を行うのがCN乗算である。ここでは補正の
為の係数としてノート係数CNをそのまま用いて
いる。タイムスロツト(1)におけるWE2+WE1の
演算結果が、CバスよりSW28、HLバス、SW
29、Lバスを介してMPLY2−7のラツチ9
−1にラツチされる。一方メモリ2−5のROM
7−5よりノートデータNDに応じてノート係数
CNが読み出され、HDバス、SW24、Lバスを
介してMPLY2−7のラツチ9−3にラツチさ
れる。 ここで、WE1+WE2は16ビツトのデータであ
るが乗算器9−16のA入力は12ビツトであるの
でMPLY2−7では次のような処理を行つてい
る。即ち、ラツチ9−1の上位5ビツトがエンコ
ーダ9−10に入力され、エンコーダ9−10が
第9表に示すとおりのデータをA,B両端子より
出力する。つまり、ラツチ9−1におけるデータ
が実質何ビツトであるかを求め、この結果に応じ
てシフタ9−11によつてラツチ9−1より12ビ
ツトをとり出す。例えば、ラツチ9−1の値が
3A2616の場合は、このデータは実質15ビツトの
データであるのでシフタ9−11はラツチ9−1
のビツト14以下の12ビツトをとり出し、シフタ9
−11の出力は74416となる。このようにして
WE2+WE1の実質の部分とノート係数との乗算
を行い、シフタ9−15によつて元のビツト数に
もどし、ラツチ9−9でラツチする。 以上のようにして少ないビツト数の乗算器を用
いて大きなビツト数のデータの乗算を行つてい
る。このようにして得られた値をDAC2−8へ
出力し、ABM2−9で所定の周期に補正されて
楽音信号として出力される。 ところで、本楽音発生部1−5においては、先
に述べたようにマイコンの指示により第1表のフ
ラグVOLにより、CN乗算をVLD乗算に切換え
ることができる。即ち、ロングシーケンスにおい
て、RAM5−6のレジスタVLD8ビツトが、
MSW2−11を介してRAM7−4のレジスタ
LVD′に送られる。送出の際にMSW2−11に
おいてビツトシフトがなされ、8ビツトのデータ
を2ビツト左シフトし更に下位2ビツトに“0”
を追加し、10ビツトのデータに変換される。この
ことによりVLDのビツト数はCNのビツト数と同
一となる。WE2+WE1の値にROM7−5の値を
掛けるか、レジスタVLD′の値を掛け合わせるか
は第1表におけるフラグVOLで決まり、VOL=
0ならばROM7−5がHDバスにデータを送出
し、VOL=1ならばRAM7−4がHDバスにデ
ータを送出する。 上記のように構成することにより、マイコン1
−4によつて楽音発生部1−5の出力する楽音信
号のレベルを変えることが可能となり、第1表の
VLDの値を順次変えることにより振幅変調をか
けることが可能となる。 鍵盤を押下する速さと圧力の少なくとも一方に
基づきVLDを作成すると、タツチレスポンス機
能が実現する。 タツチレスポンス機能は鍵盤の操作の速さ・強
さ等によつて音量・音色等が変化することであ
る。例えばピアノは、強く打鍵すると音量が大き
いだけでなく音色も華やかなものになり、弱く打
鍵すると音量が小さいだけでなく音色もこもつた
ものとなる。打鍵の強さに応じて音量も音色も自
在に変化するが、ピアノの場合は打鍵の後、鍵盤
を押す強さを変化させても、減衰しつつある音質
には変化を加えることができない。このようにピ
アノは打鍵の強さのみがタツチレスポンス機能と
なつていて、このような機能を特にイニシヤルタ
ツチコントロールと呼ぶ。一般に打楽器がこれに
属する。 一方、トランペツトは息の強さにより持続して
いる音質をも変化することができるので、この音
を模倣して電子楽器の鍵盤操作で演奏する場合
も、押鍵によりトランペツト音を発生中に押鍵の
強さを増減することで音量・音色に変化を与える
ことが必要となる。このような機能を特にアフタ
ータツチコントロールと呼ぶ。一般に、弦楽器と
管楽器がこれに属する。 本発明の実施例では先に述べたよに、VOLフ
ラグによりVLD乗算を行うことにより、各チヤ
ンネル独立に音量を制御することができる。 応用例として、打鍵の強さを計測して、強さに
応じてVLDの値を作成してマイコンから転送す
ることにより、打鍵毎に転送された異なるVLD
に応じて各音の音量が変化することになる。 マイコンがVLDを転送する際、VLDの値に応
じてタブレツトデータを切換えて転送すると、本
実施例の楽音発生部はVLDの値に応じて音量と
共に音色をも変化させられることは、先に掲げた
機能説明で明らかである。 この音色の切換について、VLDが8ビツトの
例で説明する。 第23表に、VLDの値の範囲と、それに対応す
る強弱名とタブレツト名の一例を示す。 VLDが1ビツト小さくなる毎に、音量は1/2つ
まり6dB小さくなり、これを音楽用語の強弱名の
各々に割当ててある。またの強さには華やかな
音色が必要なので高調波の豊富な波形データをタ
ブレツト0に割当て、mpより小さい音量ではこ
もつた音色が必要なので正弦波に近い波形データ
をタブレツト3に割当てるように、複数種類の波
形データをデータバンクに準備しておく。 このようにすると、打鍵の強さによつてVLD
の数値範囲で音色が4通り切換えられると同時に
8ビツトのVLDに応じて256通りの音量が指定で
きる。 以上はイニシヤルタツチコントロールであつた
が、同様に打鍵後の押鍵圧の大小に応じて、刻々
と変化するVLDと、VLDの値に応じて刻々と変
化するタブレツトデータとをマイコンが送出する
と、本実施例の楽音発生部は打鍵後の押鍵圧の変
化に応じて刻々と、音色と音量とを変化させるこ
とができる。 以上がアフタータツチコントロールである。 (4) エンベロープ発生方法 楽音発生部1−5におけるエンベロープの発生
方法は次の3ステツプに分けられる。即ち、 アドレス発生 エンベロープデータの読み出し エンベロープ計算 以下各ステツプを詳しく説明する。 アドレス発生 押鍵によるイニシヤル設定にて、ヘツダデータ
のSTE(エンベロープデータE1′のスタートアド
レス)、ΔSTE(エンベロープデータE1′のワード
数)に基づいてレジスタEAR1,EAR2,TR1,
TR2,ΔT1,ΔT2が初基設定されている。これ
らのデータをもとにアドレスの演算が行われる。
アドレスの演算は演算頻度が少なくてもよいので
演算シーケンスのロングシーケンスにて行つてい
る。更に、ロングシーケンスの奇数回目でエンベ
ロープデータE1′のアドレス演算を、偶数回目で
エンベロープデータE2′のアドレス演算を行つて
いる。 奇数回目のロングシーケンスにおいて、タイム
スロツト(13)で ΔT1+TR1→TR1 ……(4−1) タイムスロツト(15)で ΔEAR1+EAR1+Ci→EAR1 ……(4−2) の演算が行われEAR1の値を用いてデータバンク
1−6の読み出しを行う。タイムスロツト(15)の
Ciはタイムスロツト(13)にて行われるΔT1の累算
によつて生じたオーバーフローに当る。ここで演
算(4−1)を詳しく説明する。 先ず、RAM7−2のレジスタΔT1の値がHB
バス、MSW2−11を介してFA2−6のラツ
チ8−1にラツチされる。同時に、RAM7−3
のレジスタTR1の値がHCバス、MSW2−11
を介してFA2−6のラツチ8−2にラツチされ
る。ラツチ8−1の出力はビツト処理回路8−1
0によつてビツト3が強制的に“0”にされ(ビ
ツト3を“0”にする理由は後で述べる。)、ラツ
チ8−3でラツチされる。ラツチ8−2の出力は
ビツト処理回路8−11を介してラツチ8−4で
ラツチされる。ここでビツト処理回路8−11に
おいてはビツトの変換等の処理は施されない。ラ
ツチ8−3及びラツチ8−4の出力を加算器8−
9にて加算し、ラツチ8−7、ラツチ8−8を介
してCバスに与え、MSW2−11を介して
RAM7−3のレジスタTR1に加算結果を格納す
る。ここで加算結果にオーバーフローが生じた場
合は、加算器8−9のCoより“1”が出力され
る。この出力をラツチ8−6にてラツチし、タイ
ムスロツト(15)の演算の際に使用する。但し、こ
れは波形データにPCM部がない場合についてで
あり、波形データにPCM部がある場合(フラグ
PCM=1)にはPCM部を読み終えるまでレジス
タTR1に対し演算結果として強制的に“0”が
入力される。故にΔT1の累算によるオーバーフ
ローが生じることがない為PCMを読み終えるま
ではEAR1の値が更新されることはない。ΔT1は
イニシヤル処理の項で述べたとおり第13表におけ
るC=0時のD出力の値であり、レジスタTR1
は16ビツトのレジスタであるので、例えばΔT1
=400016であれば演算(4−1)は4回行われる
とレジスタTR1はオーバーフローし、演算(4
−2)のCi=1となりアドレスの更新が行れる。
ここで、演算(4−1),(4−2)はロングシー
ケンスの2回に1回行われる。第1図ハで示すと
おり、同じチヤンネルのロングシーケンスは388
タイムスロツトの周期、即ち1タイムスロツトは
250nsであるので97μsの周期に現われる。故に演
算(4−1),(4−2)は194μs毎に行われ、
ΔT1=400016である場合には776μsでアドレスの
更新が行われることになる。 ところで、エンベロープデータは2バイトで構
成されているので、アドレスの更新の際は2ずつ
更新されなければならない。タイムスロツト(15)
においては次のようにしてアドレスの更新を行つ
ている。 先ず、ΔEAR1はΔT1によつて定まる値であ
り、ΔT1≠000816の時にはΔEAR1=000016であ
り、ΔT1=000816の時にはΔEAR1=FFEB16=−
2110である。この操作はMSW2−11における
SW31にて行われる。SW31は第11図リに
示すようになつており、ΔT1のビツト3の値を
示すフラグTOによつて制御している。今仮に
ΔT1≠000816とすると、SW31によりAバスに
000016が、RAM7−1のレジスタEAR1よりHA
バス、MSW2−11のSW2を介してBバスに
EAR1の値が与えられる。これらの値がFA2−
6のラツチ8−1、ラツチ8−2にラツチされ
る。ラツチ8−1の出力はビツト処理回路8−1
0を介してラツチ8−3へ送られる。ここで、ビ
ツト処理回路8−10ではデータの変換は行われ
ないようになつている。同時に、ラツチ8−2の
出力はビツト処理回路8−11に与えられ、デー
タのLSBが強制的に“1”にされてラツチ8−
4へ送られる。即ちビツト処理回路8−11にて
予め1が加えられる。また、先に述べたラツチ8
−6に格納されている演算(4−1)によるオー
バーフローがラツチ8−5にラツチされる。故に
ラツチ8−3、ラツチ8−4及びラツチ8−5の
値の加算を行うと、ラツチ8−5の値が“1”で
あればEAR1の値に“2”が加えられることにな
る。一方、ラツチ8−5の値が“0”の場合は
EAR1の値は1増加されたままとなるが、イニシ
ヤル処理の項で述べたように、I/O2−10に
おいてLSBに強制的に“0”,“1”を与えるの
で不都合は生じない。 ところでΔT1=000816の場合には、ΔEAR1が
FFEB16(−2110)となる。故にEAR1の値から
2110引かれることになり、10ワード前のエンベロ
ープデータが読まれることになる。これにより、
エンベロープデータのアドレスがループすること
になり、マンドリンのようなくり返しエンベロー
プを発生することができる。先に演算(4−1)
にて、ビツト処理回路8−10にてビツト3を
“0”にすると述べたが、その理由はビツト3が
EAR1=FFEB16とするビツトであり、この演算
を行う際にレジスタTR1に000816を加えないよう
にする為である。 ロングシーケンスの偶数回目におけるΔT2,
TR2,ΔEAR2,EAR2の演算も同様にして行わ
れる。 なお、EAR1,EAR2に関する演算は全く独立
に行われる為、波形1、波形2対して全く異なつ
たエンベロープ信号を発生させることができるの
は言うまでもない。また、EAR1又はEAR2のく
り返しについてもくり返しの周期を異ならしめる
ことが容易であるので種々の効果を得ることがで
きる。 エンベロープデータの読み出し エンベロープデータの読み出しはロングシーケ
ンスにおいて行い、偶数回目に波形1のエンベロ
ープデータを、奇数回目に波形2のエンベロープ
データの読み出しを行う。 レジスタEAR1,EAR2の値に基づいて行うエ
ンベロープデータの読み出し方についてはイニシ
ヤル処理の項で述べたものと全く同じであり、
I/O2−10にてデータバンク1−6より読み
とつたデータのフオーマツト変換を行いながらレ
ジスタΔT1,ΔT2,ΔZ1,ΔZ2,ΔE1,ΔE2に格
納していく。 エンベロープ計算 エンベロープデータの読み出しにより、ΔZ1,
ΔZ2,ΔE1,ΔE2にデータが格納されており、ま
たイニシヤル処理によりER1,ER2,ZR1,ZR2
に初期値が与えられている。これらの値に応じて
エンベロープ計算を行う。 エンベロープ計算の基本は加算部のタイムスロ
ツト(3),(5),(6),(8)である。タイムスロツト(3),
(5)によつて波形1のエンベロープを計算し、タイ
ムスロツト(6),(8)によつて波形2のエンベロープ
を計算する。ここで、タイムスロツト(5),(8)のCi
はタイムスロツト(3),(6)による演算で生じたオー
バーフローであるが、タイムスロツト(3),(6)にて
生じたオーバーフローがどのようにしてタイムス
ロツト(5),(8)で加えられるかについては、アドレ
ス発生のタイムスロツト(13),(15)で述べたもの
と同様である。このようにして得られたER1,
ER2の値がエンベロープデータである。 なお、“(3) 波形発生方法”の“エンベロー
プ乗算”の項で述べたとおり、ER1,ER2とも13
ビツトのデータで上位4ビツトが指数部、下位9
ビツトが仮数部となつている。故に本楽音発生部
1−5にて得られるエンベロープは次に示される
形となる。 エンベロープ1=1.(ER1の下位9ビツト)×2
(ER1の上位4ビツト) エンベロープ2=1.(ER2の下位9ビツト)×2
(ER2の上位4ビツト) このように示されるため、エンベロープのレベ
ルとは無関係に常に9ビツトの分解能を有するこ
とになる。 ところで、エンベロープ計算は各種モードによ
つて異なる。各種モードとは、 1 波形がPCMを有する場合と有しない場合。
(PCM=1/0) 2 ピアノ型エンベロープの場合とオルガン型エ
ンベロープの場合。(P/O=1/0) 3 ダンパフラグをオンした場合とオフした場
合。(DMP=1/0) の3種である。以下個々の場合について説明す
る。 PCM=0かつP/O=0 初期設定はER1,ER2,ZR1,ZR2とも“0”
であり、鍵が押圧されている時はレジスタΔE1,
ΔE2,ΔZ1,ΔZ2の値に従つてエンベロープの演
算を行う。鍵が離されると、タイムスロツト(3),
(5),(6),(8)のΔZ1,ΔE1,ΔZ2,ΔE2の値とし
て、UCIF2−3の信号処理器5−6よりリリー
スデータが発生され、レジスタΔZ1,ΔE1,
ΔZ2,ΔE2の値のかわりに用いられる。 なお、このモードにおいてはダンパフラグ
DMPによつて演算は何ら影響はされない。 PCM=0かつP/O=1 初期設定はER1,ER2,ZR1,ZR2とも“0”
であり、鍵が押圧されている時はレジスタΔE1,
ΔE2,ΔZ1,ΔZ2の値に従つてエンベロープの演
算を行う。鍵が離されると、ダンパフラグDMP
=1の場合は引き続きレジスタΔE1,ΔE2,
ΔZ1,ΔZ2の値に従つてエンベロープの演算を行
い、ダンパフラグDMP=0の時はPCM=0かつ
P/O=0の場合と同じである。 PCM=1かつP/O=0 初期設定は、EA1=1FFF16,ER2=0,ZR1
=0,ZR2=0である。鍵が押圧されており、波
形1がPCM部を読み出している時は初期値が保
持され、PCM部を読み終えると、レジスタΔE1,
ΔE2,ΔZ1,ΔZ2の値に従つてエンベロープの演
算を行う。鍵が離されると、波形1がPCM部を
読み出しているいないに関係なくUCIF2−3の
信号処理器5−6によるリリースデータに基づい
て演算が行われる。即ちPCM=0かつP/O=
0の場合に帰着する。 なお、このモードにおいてはダンパフラグ
DMPによつて演算は何ら影響を受けない。 PCM=1かつP/O=1 初期設定は、ER1=1FFF16,ER2=0,ZR1
=0,ZR2=0である。ダンパフラグDMP=0
の場合は、1度鍵が押圧されると離鍵のタイミン
グには無関係に演算が行われる。即ち、波形1が
PCM部を読み出している時にはレジスタER1,
ER2,ZR1,ZR2は初期値が保持され、PCM部
を読み終えるとレジスタΔE1,ΔE2,ΔZ1,ΔZ2
の値に従つて演算が開始される。ダンパフラグ
DMP=1の場合は、PCM=1かつP/O=0の
場合と全く同じである。 以上述べたように、種々のモードに応じて自由
にエンベロープ信号を発生することができる。ま
た、ΔE1,ΔZ1とΔE2,ΔZ2は全く独立に設定で
き、そのデータはアドレス発生の項にて明らかな
とおりΔT1,ΔT2によつて定まる時間で更新さ
れるので前述の2種類の波形データと相俟つて
種々の楽音が発生できる。 (発明の効果) 以上のように本発明は、波形データ、該波形デ
ータのスタートアドレスおよび該波形データの属
するオクターブ値を含む第1のデータと、該第1
のデータのアドレスを含む第2のデータとを格納
するデータバンクを有し、また、少なくとも音色
選択データと音程データを含む演奏情報を受取
り、上記データバンクから該音色選択データと該
音程データの一部または全部をアドレスとして該
当する第2のデータを読み出す手段と、上記デー
タバンクから該第2のデータの一部または全部を
アドレスとして該当する第1のデータを読み出す
手段と、上記音程データの属するオクターブ値か
ら該当する第1のデータ中の波形データの属する
オクターブ値を減じた数値を2のべき数として数
値Aを作成する手段と、該第1のデータ中のスタ
ートアドレスに上記数値Aを順次加算したものを
アドレスとして上記データバンクから該当する波
形データを読み出す手段を備えたことにより、音
域ごとに波形データを用意せずとも所望の音域の
楽音を発生できるのは無論のこと、波形データが
PCM波形であつても音域も変えて楽音を発生さ
せることができる。更には、音域ごと或は一部の
音域ごとに読み出す波形データを変えるといつた
場合においても、波形データの冗長度を増すこと
なく対応できる。
(Industrial application field) The present invention relates to electronic musical instruments, and particularly to reading waveform memories.
generate musical tones based on the contents of memory
related to things. (Conventional technology) In recent years, electronic musical instruments have introduced digital signal processing technology.
This allows for more advanced sound creation. especially the waveform
There are various ways to read memory and generate musical tones.
It is often used because it can freely generate waveforms of any shape.
ing. Tokkosho is an example of such an electronic musical instrument.
There is one shown in No. 58-42479. This servant
The next example will be explained using the block diagram in Figure 14.
Ru. Note data is transferred to F number memory 1 by pressing the key.
is given and the 10-bit F number is read out.
Ru. F number is accumulator according to machine cycle
It is accumulated by 2. Accumulator 2 has an 18-bit configuration.
The 18-bit accumulated result is sent to shifter 3.
It will be done. Shifter 3 receives 3-bit octave data.
The input signal is controlled by the decoder 4 which receives the input signal.
The accumulated results are calculated according to the output of the decoder 4, that is,
Shifted left according to octave data, top 11
Bits are output. wave by the output of shifter 3
Waveform data is read from the shape memory 5. Here, the lowest octave (0th octave) and
the musical note one octave above (first octave)
When considering the occurrence, first, the lowest octave range
shifter 3 shifts the output of accumulator 2.
Output as is. This shifter output allows the waveform to be
Read the waveform data from memory 5. Also, the range is
If it is one octave higher (first octave), the
Lid 3 shifts the output of accumulator 2 to the left by 1 bit.
The waveform data is stored in the waveform memory 5 using this shifter output.
Read the data. Shifts the output of accumulator 2 one bit to the left.
To ft means to double
Therefore, the readout period of waveform memory 5 is doubled.
This results in the output of a musical tone one octave higher.
Ru. In this way, you can prepare a waveform memory for each range.
It is possible to generate musical tones in all ranges without
It is possible. (Problem to be solved by the invention) However, with the configuration of the conventional example above, the
This is a problem when reading out one wave repeatedly.
However, for example, if you read out the PCM waveform,
It should be used when reading out several waves only once.
I can't. Also, I want to change the tone depending on the range.
For example, from the 0th octave to the 3rd octave
For each, separate waveform memories are read and the fourth waveform memory is read.
Above the octave, use the same tone as the third octave.
In this case, even if the waveform is periodic,
Even if the waveform has a short period, the lowest octave
The same amount of memory as the memory block (2048 words in this conventional example)
is not suitable as it requires more memory.
There is a problem. In view of the above problems, the present invention has been developed by repeatedly reading one wave.
Needless to say, it is necessary to read out the PCM waveform.
Even in cases where it is necessary to prepare data for each range
If you don't need it and want to change the waveform for each range
A power supply system that prevents memory redundancy from increasing even in
It provides child instruments. (Means for solving problems) In order to solve the above problems, the electronic music of the present invention
The device receives waveform data and a start point for the waveform data.
address, and the octave value to which the waveform data belongs.
and an address of the first data.
a data bank that stores the second data including the second data;
and; includes at least timbre selection data and pitch data.
Receives performance information from the above data bank and retrieves the corresponding sound from the data bank.
Part or all of the color selection data and the pitch data
Read the second data corresponding to the address
and means for acquiring said second data from said data bank.
Part or all of the applicable first address
means for reading data;
wave in the first data corresponding to the octave value
The value obtained by subtracting the octave value to which the shape data belongs is 2
means for creating a numerical value A as an exponent of;
Add the above value A to the start address in the data of
Use the added value as the address in the data bank above.
Equipped with a means to read out the corresponding waveform data from the
It is something that (effect) With the above-described configuration, the present invention enables
This is the start of the waveform data that should be read out.
Address and the range to which the waveform data belongs (octave)
terb value) and try to generate from this
The octave value of the range and the octave of the waveform data
The difference between the values is taken to obtain the numerical value A, which is a power of 2. then
Sequentially add the number A to the start address,
The waveform data is read even with this value. on shift
generated by changing the values that are added sequentially.
Since the range of sound produced is changed, it is similar to the PCM waveform.
Waveforms can be easily read out, and waveform data can be read out easily.
The octave value to which the data belongs and the attempt to occur from this value.
Take the difference between the octave values and calculate the value based on this.
Since A has been determined, the waveform of which range should be assigned to which sound.
There is no problem even if it occurs in the area. Furthermore, by pressing the key
Read the start address and based on this value
Since the waveform data is read out, the range
Even if you want to change the tone for each
I can handle it very well. (Example) An embodiment of the present invention will be explained below based on the drawings.
Ru. FIG. 1 shows an information processing device according to the present invention as an electronic musical instrument.
FIG. This first figure
To explain, 1-1 is a keyboard. 1-2 is a tab
of the musical tones output from this electronic musical instrument.
This is an operation section for instructing tone selection. 1-3 is effective
It is a switch that controls various effects on musical sounds.
For example, you can control effects such as vibrato and tremolo.
This is a switch that instructs to turn on and off. 1-4 is ma
It is an icon (microcomputer), for example
Equivalent to Intel's microcontroller 8049. 1-5
is a musical tone generating section, and is given by microcontroller 1-4.
Waveform calculation and frequency calculation are performed based on the control signal
conduct. 1-6 is a data bank, which is a musical tone generator.
Waveform data and envelope data used in 1-5
ROM (read-only memory) where the data is stored
It is. 1-7 is a filter, which is a musical tone generator 1
-5 to suppress the aliasing noise of the musical tone signal output from
Remove. 1-8 are speakers. Next, we will explain the operation of the electronic musical instrument shown in Figure 1A.
Ru. Microcontrollers 1-4 have instructions pre-written internally.
In accordance with the order, keyboard 1-1, tablet 1-2,
The status of the output switches 1-3 is sequentially searched. Also ma
Icon 1-4 is the ON/OFF key on keyboard 1-1.
The code of the key being pressed based on the OFF state
divided into multiple channels of musical tone generators 1-5.
At the same time, the tablet
depending on the status of switch 1-2 and effect switch 1-3.
Send control data. Musical tone generator 1-5 smell
In this case, the assignment signal sent from microcontroller 1-4 is
and other control signals to internal registers.
data bank 1- based on these signals.
6. Enter the necessary waveform data and envelope data.
Musical tone signals are synthesized while being read. this musical tone
The musical tone signal synthesized in the generating section 1-5 is
is sent to speakers 1-8 through routers 1-7.
Generates musical sounds. Figure 1 (b) shows the musical tone generator 1- from the microcomputer 1-4.
The timing diagram for transferring data to 5 is shown below.
vinegar. Also, Table 1 shows musical sounds generated from microcontrollers 1-4.
The contents of data sent to section 1-5 are shown. Table 1
In this case, NOD is a note octagon that indicates pitch data.
Turb data, note data ND and octa
Constructed from key-on data OCT and key-on data Kon.
It's on. Of course, octave data OCT is based on pitch data.
means the octave value to which the data belongs. The specifics
Table 2 shows the bit configuration of NOD.
Yes, Table 3 shows the correspondence between note data ND and note names.
is shown, and Table 4 shows the octave data OCT
The correspondence between the range and the range is shown. In other words, if a musical tone is generated
6th octare of note G# for parts 1-5
B sound (hereinafter abbreviated as G#6) from channel 1
When you want to output, use the address in Figure 1 B.
00000001 and 10011110 as data to microcontroller 1
-4 will be sent. Then the PDD
This is data that is used to shift the tuning.
It is 8bit data. PDD is displayed in two's complement notation.
The variable range is -128 to +127, 256 ways.
It is. RLD is release data, after key off
This is 4-bit data that controls the attenuation characteristics of .
VOL is the volume flag, and this bit
When set to “1”, it corresponds to the volume data VLD described later.
The output level of the musical tone signal from the musical tone generating section 1-5
This makes it possible to control the DMP is a damper
flag and for piano type envelopes
A flag that causes the decay after key-off to be rapid.
function, and functions when DMP=1. SOL is SO
This is a low flag and has the same note name as other channels.
occurs when the channel is assigned.
the current musical tone and the musical tone about to occur.
This flag is used to select whether or not to match the phase characteristics.
When SOL=1, phase matching is canceled.
do. TAB is tablet data, as shown in Figure 1.
The data specified by tablet 1-2 in
data is included in this 5 bit. PE is pitch extend
Channels that set this bit to “1” with flags
requires pitch extend. VLD is boli
Youum data, and the volume flag mentioned above.
The musical sound output from the channel along with the VOL
Control the level with 8bit precision. Furthermore, these
All series of data are set independently for each channel.
It can be determined. Next, the calculation sequence in the musical tone generator 1-5 is
Let me explain about this. Tables 5 and 6 show the calculation system of musical tone generator 1-5.
- indicates the sequence. In the main musical tone generating section 1-5
processes more data in shorter computational cycles
In order to perform the operation sequence is the initial mode,
It has two modes: normal mode, and the above
Both modes are long sequence and short, respectively.
Divided into sequences. Also, the initial
Doshoto sequence and normal moderon
There are two sequences, EVEN and ODD, respectively.
It has a state. In the initial mode, microcontrollers 1-4 generate musical sounds.
When commanding section 1-5 to generate a new musical tone
From the microcomputer 1-4 in the musical tone generator 1-5
Various registers etc. for the specified channel
This mode is used to perform initial settings and is a long sequence.
The shot sequence was started twice.
Then enter normal mode. This initial mode
Once for two shot sequences in
Shooting sequence where the first eye is ODD and the second time is EVEN.
It becomes After this initial mode ends, the normal
After 6 shoot sequences
There will be one long sequence. In this embodiment, two independent systems are provided for each channel.
Multiplies a standard waveform and two independent envelopes.
It has become possible to match it, and it has become even more precise.
It also has various adjustment functions, but these calculation processing
A large amount of performance is required to time-share eight channels.
Calculation steps are required. So in a short cycle
Short sequence of things that need to be calculated
and those with low calculation frequency, that is, long cycles.
A long sequence is one that can be operated on by
Ru. and long sea during shoot sequence
Improving the efficiency of calculations by inserting sequences
ing. Short sequence, long sequence in Figure 1
The timing diagram is shown below. As shown in Figure 1 C.
11 times of shot sequence (0) to (10)
The long sequence consists of (11) slots.
It consists of nine time slots (19).
Each time slot is 250ns, divided into four
Non-overlap two-phase crossover of φ1 and φ3
The whole system is working together with the system. Shyo
The relationship between short sequence and long sequence is
Yoto sequence changes from channel 0 to channel
Each time up to 7 is repeated 8 times, one channel's worth of
Contains a long sequence. Therefore, for example, Chiyanne
The shot sequence for Le 3 is 11 x 8 + 9, 97 ties.
Once per muslot, long sequence 97×
Appears once every 776 timeslots of 8
That will happen. In addition, the long series in normal mode
-Kens has two states: EVEN and ODD.
Therefore, the period is 776 x 2, 1552 time slots.
The system is working. Next, perform individual calculations based on Tables 5 and 6.
Explain the sequence. As mentioned above, easy
The sound generating section 1-5 is activated by pressing a new key.
Now it starts with a long sequence.
From the initial mode long sequence
Explanation will be provided for each time slot. Addition section (13)PDD+PED→PDR (15) O →TR1 (16) O →TR2 (17) O →ZR1 (18) O →ZR2 Time slot (13) means PDD
The contents of the register called PED are
Add the contents and store it in a register called PDR
That's what it means. Time slots (15) to (18) are
Write O to registers TR1, TR2, ZR1, and ZR2.
It means getting into it. Data bank reading section (12) WTD→HAD→HAD (14) HAD→CONT→CONT, DIF1 (16)〜(17)HAD→STE→EAR1 What these mean is that the data on the far left
(For example, if it is time slot (14), the device called HAD is
data) from data bank 1-6 as the address
Read the data CONT written in the center,
Stored in the registers CONT and DIF1 with the names on the far right.
It means paying. Initial mode sequence Addition section (1) PDR+JD L.B.;O→ER2/1 (3) CRG+OCT+1→WE2→ΔWAR (4) D.B.+EAR1→EAR2 (6) O →WR1 (8) O →ER1 (9) O →WE2 (10) O →WE1,WR2 O→ER2/1 in time slot (1) is a
ER2, 2 at the first time of the start sequence, that is, ODD.
At the time of EVEN, set O to the register ER1.
means to write. Also, L.B. means PDR
+JD operation result is stored in the L buffer without storing it in the register.
It is sent to the multiplier (described later) via the
means. In time slot (3),
After storing the calculation result in a register called WE2,
This means to decode and store it in ΔWAR.
D.B. in time slot (4) is the data described below.
The value obtained by the data bank readout section is stored in the register.
The data is sent to the adder via the D bus (described later) without going through the data processor, etc.
It means to put out. Multiplication section (4)~(6) C.B.×CN1→FR The above C.B. registers the result obtained in the addition section.
This means inputting directly to the multiplication section without going through the data.
In this case, the value obtained at time slot (1) is
It means the calculation result of PDR + JD. Data bank reading section (1) HAD→ΔSTE→A.B. (3)~(4) EAR1/2→E1/2→ΔT1/2, ΔE1/
2, ΔZ1/2 (6)〜(7) HAD→STW/ΔSTW→STW/WAR Here, A.B. of time slot (1) is the data base
The value obtained by reading the link is stored in a register, etc.
It is meant to be input directly to the A input of the adder without going through the
Taste. Also, time slots (6) to (7) STW/ΔSTW→STW/WAR is
- During the first test, that is, ODD, there is a date called STW.
Read the data and store it in a register called STW,
At the second time, that is, EVEN, the data ΔSTW is
Read and store in a register called WAR
means. Next, the normal mode will be explained. Normal mode shot sequence In Table 6, the places marked with * are no
The first shoot after a toklock occurs
The calculation is performed only by the
The flags that control the operation are the calculation request flag CLRQ and
I'll call you. Addition section (1) WE2+WE1 →L.B. (2) STW+WAR →D.B., B.B. (3) ZR1+ΔZ1 →ZR1 (4) DIF1+C.B.→D.B. (5) ER1+ΔE1+Ci →ER1 (6) ZR2+ΔZ2 →ZR2 (7) WAR+ΔWAR →WAR* (8) ER2+ΔE2+Ci →ER2 (9) FR+CDR →CDR* Here, L.B. of time slot (1) is the calculation result
is input directly to the multiplier without going through a register.
means. D.B. and B.B. of time slot (2) are the same.
The calculation results are directly transferred to the data bank reading section and
This means inputting to the B input of the adder. Thailand
C.B. in Muslot (4) is the calculation result of the addition section
This means inputting directly without going through a register.
In this case, STW at time slot (2)
The calculation result of +WAR is input. Also, D.B.
The calculation result is directly input to the data bank reading section.
It means to force. Time slots (5) and (8)
Ci at time slots (3) and (6), respectively.
It means to add the carry of the operation
It's the taste. Multiplication section (1)~(3) WR2+ER2→WE2* (4)~(6) C.B.×CN→(DAC) (7)~(9) WR1×ER1→WE1* Here, the C.B. of time slots (4) to (6) are additions.
Input the output of the section directly to the multiplier section without going through a register etc.
It means to do. In this case, the time slot
This corresponds to the calculation result of WE2+WE1 in (1). Also
(DAC) means that the calculation result is DAC (DA
Indicates input to a converter (described later). Data bank reading section (4)~(5) C.B.→W1→WR1* (7)~(8) C.B.→W1→WR2* Here, C.B. of time slots (4) to (5) is the addition section.
Input the calculation results directly to the data bank reading section.
and set it as the address of data bank 1-6.
In this case, the time slot in the adder is
This corresponds to the calculation result of STW + WAR in (2). Ta
Time slots (7) to (8) C.B. are also time slots.
Corresponds to the calculation result of DIF1 + (STW + WAR) in (4)
do. long sequence Addition section (13) ΔT1/2 + TR1/2 →TR1/2 (14) PDR+JD →L.B. (15) ΔEAR1/2+EAR1/2+Ci →EAR1/2 (16) PDD+PED →PDR Here, L.B. of time slot (14) is
The calculation result, that is, the value of PDR + JD, is sent through the register.
This means that it is directly input to the multiplication section. time
Ci of slot (15) is the calculation of time slot (13).
It means the uphill climb (carry) that occurs as a result of going.
Ru. Multiplication section (16)〜(18) CN+C.B.→FR Here, C.B. registers the operation result in the addition section.
This means inputting directly to the multiplication section without going through the star.
However, in this case, in the adder time slot (14)
The calculation result of PDR + JD is input. Data bank reading section (14)~(15) EAR2/1→E2/1→ΔT2/1,
ΔE2/1, ΔZ2/1 Here, 2/1 means the odd number of times, i.e.
2 for ODD (e.g. E2 for E2/1), even number of times
In other words, it becomes 1 (E1) at EVEN.
Taste, read different data with EVEN, ODD,
It means storing to another register. Figure 2 shows the musical tone generator 1-5 in Figure 1A.
FIG. First, use this diagram to create each block.
To explain the outline of the function, 2-1 is the master clock.
Here, we use f=8.00096MHz.
I am using it. 2-2 is a sequencer (hereinafter referred to as SEQ)
), and the clock is clocked by master clock 2-1.
The frequency of the tsuku signal is divided, and the entire musical tone generating section 1-5
sequence signal (hereinafter referred to as SQ signal) and each
Generates seed control signals. 2-3 is microcomputer interface
-FACE Department (hereinafter referred to as UCIF), and the
Microcontrollers 1-4 can easily process the various data shown in the table.
The sound is transmitted asynchronously with the sound generator 1-5, but this
SQ generated by SEQ
This is a circuit that synchronizes with the signal. Further flag Kon
Initial mode, normal mode
Generates a flag INI that instructs mode switching. 2
-4 is the comparison register section (hereinafter referred to as CDR).
register CDR8 shown in the above calculation sequence.
Obtained by sequentially dividing the channel and master clock.
8 channels are compared with the 10-bit frequency divided signal.
Issues minute note clock and calculation request flag CLRQ.
live. 2-5 is a random access memory section (hereinafter referred to as
(referred to as lower memory) and is performed in the musical tone generator 1-5.
The results of various calculations are stored. 2-6 is flua
This is the FA section (hereinafter referred to as FA), which stores various data.
Built-in 16-bit full adder for addition.
Ru. 2-7 is a multiplication unit (hereinafter referred to as MPLY).
the law of nature, (2's complement 12 bits) x (absolute value 10 bits) It has a multiplier that performs calculations. 2-8 is digital
A digital analog converter (hereinafter referred to as DAC)
Yes, the digital output from MPLY2-7
Convert musical sound data to analog musical sound data.
2-9 is an analog buffer memory section (hereinafter referred to as ABM).
), the machine cycle frequency is calculated from DAC2-8.
The musical sound data generated in the period is processed by CDR2-4.
Changes to pitch synchronization due to generated note clocks
exchange. The functions and configuration of ABM2-9 are published in Japanese Patent Publication No.
Analog buffer shown in Publication No. 59-214091
It is similar to Amemory. 2-10 is input/output
It is a circuit section (hereinafter referred to as I/O) and is a data bank.
Sends an address signal to blocks 1-6, and
Waveform data and envelope data corresponding to the signal
Read the read data as necessary.
data conversion. 2-11 is the matrix
The switch section (hereinafter referred to as MSW) is the UCIF
Connected to 2-3, CDR2-4, memory 2-5
horizontal bus lines (HA, HB, HC, HD,
HE, HL buses), FA2-6, MPLY2-
7. Vertical bar connected to I/O2-10
line (A, B, C, D, L buses) and
This is a circuit that connects according to the SQ signal. these
The calculation sequence shown in Tables 5 and 6 depending on the circuit.
It is the one that executes the steps. Next, each block will be explained. Figure 4 is a detailed diagram of SEQ2-2 in Figure 2.
It is. 4-1 is a counter and a master clock
The various timing signals shown in Figure 1C are
generate a number. TS is the time in Figure 1 C
This is a signal representing the lot, and CHC is the channel control signal.
channel number in Figure 1 C.
This is a signal representing EV is in the calculation sequence.
This is a signal representing ODD and EVEN, and EV=0 is
ODD, EV=1 means EVEN. 4-2 is
It is SQROM (sequence ROM). SQROM4
-2 address input has a signal representing the time slot.
No. TS and flag INI are input, and these
each time slot based on the input.
Generating seed control commands. 4-3 is a logic gate
The output from SQROM4-2 is converted into various flags.
And further control with calculation request flag CLRQ etc.
SQ signal (performance information, effect switches 1-3, etc.)
As shown, each functional block is assigned to each time slot.
A signal that instructs how to operate in each case;
Inside, abbreviated as SQ) is generated. FIG. 5 is a detailed diagram of UCIF2-3. Figure 5
5-1 is a latch, and in Fig. 1, 5-1 is a latch.
A/D0-7 given by microcomputer 1-4
Latch by ALE. A/D0~7 and ALE
Since the relationship is as shown in Figure 1B, the latch
5-1 contains the addresses shown in Table 1.
be touched. 5-2 is a latch, and microcomputer 1-
A/D0~7 given by 4 is made easier.
Chi. The relationship with A/D0 to 7 is shown in Figure 1B.
As shown in Table 1 for latch 5-2.
The data shown is latched. 5-3 is la
latch 5-1, controlled by latch 5-1
Latch the output of Enter the address in two stages like this
The reason why ALE latches is periodic regardless of
This is because the address becomes “1” in this way.
By latching in two steps, a new
Latch 5-3 until data is written.
Address and data are stored in each chip 5-2.
will be done. 5-4 is 8 bits per word.
RAM, A is address input, OE is output control
control terminal, and data terminal D is connected to the HE bus.
It is. Here, when OE=1, given by A input,
Outputs the data of the received address from the D terminal.
Ru. Also, WE is a write control terminal, and when WE=1
At the same time, the data given to the D terminal is given to the A input.
Write to the given address. OE, WE are SQ credit
It is controlled by the number. RAM5-4 has the first
Various data shown in the table (NOD, PDD, RLD,
VOL.DMP/SOL, TAB/PE, VLD) and CO
control data CONT (written from data bank)
It's crowded. (details will be described later), pitch data register data
Each data PDR is stored for 8 channels.
There is. 5-5 is a selector, and microcomputer 1-4
and the address specified by the SQ signal.
selectively outputs the response using another SQ signal, and
This is given to the A input of 5-4. 5-6 is faith
It is a signal processor, connected to the HE bus, and
It takes in data and generates various flag signals. Ma
Release date sent from microcontroller 1-4
16 types of release errors depending on the data RLD4 bits.
Generates envelope data and sends it to the HE bus
Ru. 5-7 is a gate, which responds to the SQ signal.
The output of Tsuchi 5-2, that is, the output from microcomputer 1-4.
Send data onto the HE bus. Next, the operation of UCIF2-3 will be explained. The data shown in Table 1 is the type shown in Figure 1 B.
Assuming that it is given from microcontrollers 1-4 at the timing,
If the address is 0516, the data is 8916In other words, Chiyanne
If you instruct key 5 to press key F#1, first
The address is locked in latch 5-1 by the ALE signal.
The latch 5-2 is then connected to the latch 5-2 by a signal.
At the same time as the data is latched, the latch 5-3 is connected.
The dress is latched. Then at a predetermined timing
selector 5-5 selects the output of latch 5-3.
At the same time, gate 5-7 opens and RAM 5-4
A write signal is given to the WE of. this write
The HE bus is latched to latch 5-2 by the signal.
The data that was written, that is, the data that microcontrollers 1-4 try to write
data i.e. 8916is given, RAM5-4
The A input is 05, which is the output of latch 5-3.16gave
Therefore, address 05 of RAM5-416to the address
8916The data will be written. Do it like this
The various data shown in Table 1 are written to RAM5-4.
It gets sucked in. As shown in Table 1, RAM5-4
Flags such as VOL flag and PE flag are written in
These flags are included in the HE bus.
It is sent to the signal processor 5-6 via the
I've been using it since I got it. FIG. 6 is a detailed diagram of CDR2-4. 6-1
is a 10-bit frequency divider that uses the master clock as input.
It is. 6-2 is RAM with comparator (hereinafter referred to as CDRAM)
It is called. ), 8 words with 13 bits per word
has. The top 10 bits of each word are compared.
A frequency divider 6 is provided with a frequency divider and is input from terminal T.
A comparison is made with the frequency division data by -1, and the 10-bit
When all matches, a match pulse is output from terminal C.
Powered. The functions of OE, WE, A, and D are as described above.
It is the same as RAM5-4. 6-3 is a decoder
Yes, the relationship between A input, EN input and D output is shown in Table 8.
As shown below. 6-4 to 6-11 are RS La
When a positive pulse is applied to the S input, the Q output
When the force becomes “1” and a positive pulse is applied to the R input, Q
Output becomes “0”. RS latch 6-4 is a change
channel 0, RS latch 6-5 is channel 1,...
A coincidence pulse of is applied to S. 6-12 is sele
It is a controller, and the channels are
One of them is transmitted by the channel code CHC3 bit.
Select the number and output from D. 6-13 is latch
According to the SQ signal, the output of selector 6-12 is
Latch power. 6-14 is an AND gate. Next, regarding the operation of CDR2-4 shown in Figure 6.
explain. Frequency divider 6-1 divides the master clock
and sends the 10-bit frequency divided output to T of CDRAM6-2.
give to input. Each word of CDRAM6-2 has
Contains arbitrary values, but the top 10 bits of these values
When the output value matches the output value of the frequency divider 6-1,
Output the matching pulse from the C terminal. CDRAM6-
The A input of 2 is a signal representing CHC, that is, a channel.
has been entered, so each word has its own channel.
Since it is compatible with all channels, it is possible to
generates a pulse. This coincidence pulse is
is input to RS latches 6-4 to 6-11.
Therefore, the channel corresponding to the coincident pulse is
The Q output of the RS latch is set to "1".
One of the Q outputs of RS latches 6-4 to 6-11
Selector 6 according to channel code CHC
-12 are sequentially selected and locked in latch 6-13.
be touched. The output of latch 6-13 is an AND gate
6-14, so currently selector 6
The Q output of the RS latch selected by -12 is “1”
Then, the SQ signal applied to AND gate 6-14
Depending on the number, the corresponding channel of the D output of the decoder 6-3
When the channel becomes “1”, the Q output of the above RS latch becomes
Reset to “0”. FIG. 7 is a detailed diagram of the memory 2-5. Figure 7
In, 7-1 to 7-4 are RAM, OE,
Each function of WE, A, and D is the same as RAM5-4 mentioned above.
It is the same. Here, RAM7-1 has WAR,
EAR1, ΔZ1, ΔE1, WE1, EAR2, ΔZ2, ΔE2
Each register is in RAM7-2, WR2, ZR1,
ΔT1, FR, ΔWAR, ZR2, ΔT2 registers
However, RAM7-3 has ER1, TR1, DIF1, DW1,
ER2, TR2, STW, TAB′, HAD registers
However, RAM7-4 has NOD', WE2, and VLD' records.
Each register is stored for 8 channels.
Ru. Note that NOD′, TAB′, and VLD′ are the RAMs mentioned above.
NOD, TAB, VLD data in 5-4
This is what I wrote. 7-5 is 1 word 10 bits
It is a ROM of 13 words and is shown in Tables 5 and 6.
The note coefficient CN in the calculated operation sequence is recorded.
It is remembered. Here, Q is the output and A is the address input.
power, OE is the output control terminal, and when OE = 1, it is connected to Q.
The contents of the ROM are output, and when OE = 0, Q = high.
It is impedance. The value of note coefficient CN is
As shown in Table 7. In addition, ROM7-5
10-bit output connects to lower 10 bits of HD bus
has been done. 7-6 is a signal processor, RAM
ND (note data) from NOD′ stored in 7-4.
read out data) and OCT (octave data).
Based on the data and PE flag
The circuit that generates the Yune data PED and the register
A decoder that reads and decodes the data of star WE2.
A code circuit is provided. FIG. 8 is a detailed diagram of FA2-6. In Figure 8
, 8-1 to 8-8 are latches, and SEQ
It operates using the φ1 and φ3 signals generated by 2-2.
8-9 is an adder, and the value given to the A input and
The value given to the B input (both 16 bits) and the
-Adds the value given to input Ci, and calculates C and
Take out from Co. Co is the carry resulting from the operation
This is the output. 8-10, 8-11 are bit processing times
output by latch 8-1 and latch 8-2.
This is a circuit that performs power bit manipulation. 8-12 is an argument.
control gate, and latches 8-6 according to the SQ signal.
force the output to “1” or “0”. Some
Otherwise, if you output it as is, it will perform the same operation. 8-
13 is RAM, its size is 1 word, 9 bits.
It is 12 words long. A.D, WE, OE
Each function is the same as the RAM 5-4 described above. D out
The 9 bits of power are connected to the lower 9 bits of the C bus.
There is. RAM8-13 is for phase matching (described later)
Individual waveform data readings for 12 notes can be performed in registers.
Performs phase management of the protruding address (WAR). Figure 9A is a detailed diagram of MPLY2-7. No.
In Fig. 9, 9-1 to 9-9 are latches. child
Here, latch 9-3 contains bits 0 to 3 of the L bus.
9, but latch 9-5 has bits 9 to 9 of the L bus.
port 12 is connected. 9-10 is encoder
It is. The input/output relationship is as shown in Table 9.
Ru. 9-11 is a shifter, input from I
The 16-bit signal follows the control signal input to C.
Shift and output from O. The contents of the shift are the 10th
As shown in the table. 9-12 are bit processing times
The latch 9-3 outputs in response to the SQ signal.
Performs bit processing of the signal. 9-13 is a decoder
Assuming input A and output D, the relationship is shown in Table 11.
It is a cage. 9-14 is a selector and enters C.
If C=1, then A, depending on the input SQ signal.
If C=0, select the 16 signals input to B.
Select and output from Y. Note that the lower 11 bits of A input
is connected to GND (ground potential) (i.e.
“0” is given). 9-15 is shifter I
The 14-bit signal input from C is input to C.
It is shifted according to the control signal and output from O. Schiff
The contents of the list are shown in Table 12. 9-16
is a multiplier, and the A input is 12 according to this complement representation.
Bit, B input is 10 bits of absolute value and output is 2 bits.
It is 14 bits with complement representation. Normally 12 bits
Performing a 10-bit operation yields a 22-bit result.
However, the 14-bit output of multiplier 9-16 is of course 22-bit.
These are the top 14 bits of the total. Therefore, the multiplier
The input/output relationship in 9-16 is as follows:
become. C=A×B/256 In addition, multiplier 9-16 in MPLY2-7
uses the following technique to further simplify the circuit.
I'm there. Normally, when configuring a multiplier, a 2's complement value of 12 bits is used.
A multiplier with bits x absolute value of 10 bits has 116 adder sets.
22-bit accurate arithmetic results can be obtained.
However, in this system, the 22-bit
Only the top 14 bits of the bits are used. That is,
In this example, the output of the lower 8 bits is not used.
The calculation error due to the omission of the adder cell is in the upper 14 bits.
Addition for lower 7-bit operations that does not affect the LSB of
All cell cells are omitted. Therefore, this multiplier 9
-16 has 28 adder cells for lower bit operations.
The configuration is as shown in Figure 9 (b), with the main part omitted.
Ru. In Figure 9B, similar cells are omitted within the broken line.
I wrote it down. Also, each block is a full adder.
input is A, B, Ci (carry input), output is sum
S and Cary Co. FIG. 10 is a detailed diagram of I/O2-10. No.
In Figure 10, 10-1 to 10-8 are latches.
Ru. Here, the latch 10-3 is a latch with a set
The latch input is connected to bits 7 to 9 of the D bus.
It is connected. 10-9 is the shifter selector,
Switching between A input and B input using C input, and switching between A input and
Performs a 1-bit shift. 10-10 is bit processing
This is a circuit that strengthens the lower 3 bits according to the SQ signal.
This is a circuit that legally sets it to "1" or "0". 1
0-11 is a decoder, and the relationship between input I and output D is
The personnel in charge are as shown in Table 13. Decoder 10-
The A input of latch 11 has the bit of the output of latch 10-7.
Bits 12 to 15 are given. 10-12 is set
which is given to A or B depending on the C input.
Select one of the signals and output it from Y.
Ru. 10-13 is a shifter, which is connected to the input of control terminal C.
Shift the input from I according to the force and output from O
do. 10-14 is a noise circuit,
Add noise to input data according to lag NA
Ru. FIG. 11A is a detailed diagram of MSW2-11.
The part surrounded by a circle is the switch, and specifically the part
As shown in Figure 11B, it is composed of Nch MOSFETs.
When the SQ signal becomes “1”, the MOSFET is
When turned on, the vertical line and horizontal line become conductive.
data is transferred. In this MSW2-11
In order to speed up the data transfer,
φ1 signal for each time slot on all bus lines
Data transfer is performed after precharging.
It's summery. This switch is an Nch MOSFET.
Since it is configured, “1” of the transferred data
level drops by the threshold voltage of the MOSFET
This is to prevent this from happening. Figure 11 C~Figure 11
This is the switch used in MSW2-11.
This is an example of a pattern, and the points of intersection surrounded by circles are
It is connected through it. For convenience in this example
The case where each bus is 8 bits will be explained below. No.
Figure 11C shows bn and an (n=0~
7) is connected. Figure 11 D is b0
~ Change the four values of b3 and “0” vertically using the switch.
It is designed to write to the direction bus. No.
In Figure 11 E, b0 to b3 to a0 to a3, c4 to c
7 is written to a4 to a7.
This causes the two sets of buses to appear separately.
Data can be mixed and transferred to other buses
It was designed so that Figure 11 is the bit position.
The location was converted and transferred from bus to bus.
By arranging the switch like this,
Position the upper and lower 4 bits of the horizontal bus data.
Change and transfer to vertical bus. Figure 11
Figure 11 is an example of a circuit for setting constants on the bus.
, and in Figure 11, all “0” is set on the bus.
The circuit shown in Figure 11 is connected to the bus 10101010, i.e.
A.A.16This is a circuit to set. This is a switch
The parts without , a7, a5, a3, a1 are like this
By precharging just before the switch opens
Anything with “1” written is retained as is.
It depends. Figure 11 is determined by the flag TO.
It is designed to change the value of a number, and if TO=0
ba0016is written to the bus and if TO=1 then EB16
is written to the bus. Figure 11 C - Figure 11 Li
Install the switch shown in MSW2-11 according to the application.
By placing and selectively opening and closing, any bus
Bits that require data transfer from to any other bus
This makes it possible to include For example, HA bus?
to A bus, from HB bus to B bus, from C bus
SW when you want to transfer data to the HC bus at the same time
1, SW7, and SW13 should be turned on at the same time.
Also, data on the C bus is transferred to the L bus and D bus.
When necessary, turn on SW28, SW29, and SW30.
If so, C bus → HL bus → L bus and D bus
Data is transferred over the road. In addition, in MSW2-11, data transfer
is carried out at the timing shown in FIG.
In other words, in the section of φ1=1, the vertical and horizontal bass lines are
After pre-charging the in, from the falling edge of φ1.
Data is transferred in the section up to the falling edge of φ3,
It latches at the falling edge of φ3. Here, the standing position of φ3
The section from the descent to the rise of φ1 is a latch operation.
This is the margin for stable operation. Next, data banks 1-6 will be explained. de
Data banks 1-6 store four types of data.
ing. They are (1) header address data, (2) header address data,
Tsuda data, (3) waveform data, (4) envelope data
It is ta. Here, the header address data is
Indicates at which address the data is stored
The data is 8 bits, and the header data is the waveform data.
address where the data and envelope data are stored.
8 bytes of data representing the resources and their attributes
It is. Next, we will explain the above four types of data in more detail.
I will clarify. (1) Header address data (HAD) This data is stored in each tablet, each octave, each
Address the note data assigned to each 3 keys.
Data that indicates the address of the header data as a
be. Table 14 shows the storage location of header address data.
As shown in
Set data TAB, bit 4 to bit 2
Turb data OCT, bit 1 to bit 0 are no.
The upper 2 bits of the data ND, the remaining bits are
All contain "1". TAB here,
The 10 bits consisting of OCT and ND are called WTD.
Each of them is shown in Table 1.
Not even. Header by header address data
The data address is shown in Table 15 and the bit
Header address data is entered in bits 10 to 3.
The upper bits are all "1". Also, below
Enter data from 000 to 111 in the 3rd place bit. (2) Header data (HD) Header data is stored at the addresses shown in Table 15.
One word is 8 bits stored, so 8 words of data are stored.
The contents of each of the 8 words are shown in Table 16.
It is. In Table 16, CONT is the control
This is the header data and is indicated by this header data.
Displays the attributes of waveform data and envelope data.
vinegar. E1′ is one of the two types of envelope data.
On the other hand. The other envelope data E2′
The start address is given by STE+ΔSTE.
W1 and W2 are two types of waveform data, and W1's
The start address is given by STW + ΔSTW.
Ru. Note that CONT is configured as shown in Table 17.
The meaning is as follows.
Ru. P/O: The musical tone based on this header data is a piano.
with type envelope or organ type envelope
This is a flag indicating whether the P/O=
If it is 1, it means that it is a piano type. ORG: Indicates which range the musical sound data originally belongs to.
This is 3-bit information that indicates whether the
The correspondence between ORG and range is shown in Table 18.
Ru. Therefore, the waveform data actually exists as one period.
information indicating how many samples to
There is also. W8: Is the waveform data 12-bit precision or 8-bit precision?
Indicates whether the test is accurate or not. If W8=1, 8 bits
accuracy. When W8=1, waveform data
4-bit “0” is added to the lower part of the waveform.
The amplitude level is maintained. PCM: Rise of waveform data W1 when PCM=1
Indicates that the part is PCM. NA: When superimposing a noise signal on a musical tone signal.
This is a 2-bit signal used. (3) Waveform data (W1, W2) As mentioned above, the musical tone generator 1-5 generates waves.
12-bit and 8-bit format data
Two types are used. sold here
When you think about ROMs, most of them are 1 word.
8 bits or less, 1 word
12 bits are rare. Therefore, the present invention
The waveform is stored in ROM as shown below. Immediately
Chi, In the case of 8 bits, it depends on STW and ΔSTW.
Store one word at a time sequentially from the address determined by
However, in the case of waveform data of 1 word and 12 bits,
As shown in Figure 12, the upper 8 bits are STW+
Store sequentially from the address indicated by ΔSTW
However, the lower 4 bits are the value of STW + ΔSTW
Add by shifting 1 bit to the right and putting 1 in the MSB.
2 words in the lower 4 bits and upper 4 bits from the address
They are stored sequentially. For example, if the address
044416The lower 4 of the upper 8 bits of the waveform data in
Bit location is address 122216top 4 bits of
So, address 044516About a
dress 122216This means that the lower 4 bits of (4) Envelope data (E1′, E2′) Envelope data consists of 1 word with 16 bits.
The data format is shown in Table 19.
It is a cage. ΔT is envelope address update
This is the data that determines the interval. S is for envelope
This is a flag indicating the slope (increase or decrease). Z
is a flag indicating the magnitude of the slope of the envelope.
and DATA is its size. Shown in Table 19
The data is determined by STE and ΔSTE shown in Table 16.
stored in the data bank according to the specified address.
ing. The data bank is structured as described above.
gives a change in tone for every three keys next to each other.
On the other hand, within the same octave,
If you have the same header address data
Waveform data, envelope data, header data
You can obtain musical tones with the same timbre without increasing the timbre. Ma
In addition, arbitrary waveform data in each header data,
Envelope data can be specified, so fewer waves can be created.
Even if it is shape data and envelope data,
It is also possible to generate various musical tones by combining them.
It is. Next, the initial sound when the key is pressed in the musical tone generator 1-5 is
dial processing, note clock generation method, envelope
Waveform generation method We will now explain how to generate waveforms. (1) Initial processing During initial processing, musical tones are generated by pressing keys.
Initial settings of various registers are performed when generated.
Ru. The calculation sequence starts from the initial mode by pressing the key.
It starts with a long sequence of codes, so
In the accounting department, PDR first appeared in time slot 13.
period is set. To explain this operation in more detail,
Figure 5: PDD is read from RAM5-4 and HE
Data gets on the bus. At the same time, Fig. 7 signal processor 7
-6, the PED is given to the HD bus, and the first
In Figure 1 A, SW21 and SW17 are turned on.
PDD takes the A bus and PED takes the B bus. this day
The data is added at FA2-6 as shown in Figure 8.
The calculation results are placed on the C bus. The result of this calculation is
Take the HE bus via SW23 and go to RAM5-4.
Stored in a certain register PDR. Furthermore, this performance
In calculation, transferring PDD and PED to FA2-6 is
Time slot where PDD + PED calculation is actually performed
One time slot before the calculation, the calculation result is
Storing to PDR is one data point where PDD + PED calculation is performed.
This is done after imslot. Regarding the addition operation below,
are all the same. Then the time slot
“0” in TR1, TR2, ZR1, ZR2 in (15) to (18)
is written. This operation requires setting “0” to TR1.
When writing, the time slot
(15) SW in MSW2-11 of Figure 11 A
33 and SW31 are turned on. SW33 is the 11th
The configuration is as shown in the figure, and there is a “0” on the C bus.
is given. SW13 is on at the same time
Then, the data on the C bus is given to the HC bus, and the seventh
In register TR1 in RAM7-3 shown in the figure
“0” is written. On the other hand, in the data bank reading section, the following
It behaves like this. The following explanation focuses on Figure 10.
Ru. By WRD composed of TAB, ND, OCT
The header address data HAD is read out.
Note that the initial mode that performs this initial processing is
In the mode, latch 10-3 is activated by the SQ signal.
It is set to 111. This data is I/O2
Table 15 by shifter 10-13 in -10
The data is converted to the format shown in
RAM7-3 register via bus SW15 and HC bus.
stored in the star HAD. At the same time as this operation,
Header address data read from data bank
Data HAD is latch 10-8, latch 10-6.
They are latched one after another and the shifter selector 10-9
The data is formatted as shown in Table 15.
is switched and latched in latch 10-4. Latsuchi
10-4, first the bit processing circuit 10
-10 gives 000 to the lower 3 bits.
Control data CONT is data bank 1-
6 and latched via latch 10-8.
It is latched to the upper 8 bits of 10-7. Conte
Roll data CONT is selected by selector 10-12,
Lid 10-13, noise circuit 10-14, latch
The register of RAM5-4 is accessed from the D bus via 10-2.
Stored in star CONT. On the other hand, latch 10-
The upper 4 bits of 7 are connected to decoders 10-11.
16 bits according to the truth table shown in Table 14.
You can obtain the following data. However, at this time, decoding
The C input of the data card 10-11 is "1". Se
Rectors 10-12 select this decoder output
Then, shifters 10-13 shift 6 bits to the right and output
Strengthen. Here, the output of this shifter 10-13 is
Considering this, decoder 1 from latch 10-7
The data input to 0-11 is P/O and
ORG3 bits. Now decoder 10-11 C
Since the input is “1”, the decoder 10-11
Output is determined by ORG3 bit only. Therefore de
The output of coder 10-11 is transferred to 6 by shifter 10-13.
The values shifted to the right by bits are the values shown in Table 18.
Ru. This value is the noise circuit 10-14, latch 10
-2 to the D bus, MSW2-11
In the RAM7-3 register via SW15
data is stored in data DIF1. Next, bit processing is performed on the output of latch 10-4.
Circuit 10-10 sets 001 to the lower 3 bits, then
Give 010 to the upper and lower STE of the header data.
8 bits of each position are read out. This STE value is
Rector 10-12, shifter 10-13, noise times
route 10-14, to D bus via latch 10-2
given, through SW5 in MSW2-11
and stored in register EAR1 of RAM7-1. Next, enter the shot sequence. Shyoto Sea
The kens are executed twice. in time slot (1)
PDR and JD are added, where JD is a constant
Turn on SW32 in MSW2-11
It is obtained by SW32 is shown in Figure 11
It has a eel configuration, JD = 45B16Tonatsutei
Ru. Multiply this addition result by the note coefficient CN.
Combine them to get FR. Explain this series of yen calculations in detail.
Then, PDR + JD is calculated at time slot (1).
The result is placed in time slot (2) as described above.
and is given to the C bus. Now to MSW2-11
SW28 and SW29 turn on, and C bus → HL
Data is transferred in the order of bus → L bus, and
MPLY2-7 latch 9-1
be touched. In the next time slot (3), the 7th
According to the note data ND from ROM7-5 in the figure
The value of CN is read and applied to the HD bus.
This value is passed through SW19 in MSW2-11.
Latch 9 of MPLY2-7
-3 is latched. The output of latch 9-1 is shifted
to latch 9-2 via data 9-11 to latch 9-2.
The output of 3 is passed through the bit processing circuit to the latch 9-4.
sent to and latched. Therefore, Latch 9-2
The value of PDR + JD is the value of CN in latch 9-4.
is latched. Then multiplier 9-16
Calculate the product of (PDR + JD) and CN, and shifter 9-1
5 to latch 9-8 and latched.
Ru. In addition, in these series of operations, the shifter 9
-11, bit processing circuit 9-12, shifter 9-1
5 operates to pass data. That is,
“1” is given to the C input of encoder 9-10.
It is. The value of latch 9-8 is MSW from L bus.
RAM7-2 register via SW9 of 2-11
stored in the data FR. Therefore, in time slot (2)
Then, ORG+OCT+1 is calculated. This performance
In the calculation, the +1 operation is shown in FA2-6 in Figure 8.
This is done by logic gates 8-12. That is,
Logic gate 8-12 is strong in the corresponding time slot.
If a “1” is outputted, the latch 8-5 becomes “1”.
latches and gives “1” to the Ci input of the adder.
It is. The meaning of this operation is as follows.
It is. In other words, ORG is
Value indicating whether it belongs to the range (temporarily assume this is N)
is the inverse logic of octave data OCT.
It shows. OCT, ORG, and waveform samples
The numerical relationships are shown in Tables 18 and 22. Therefore ORG+
1 would represent -N. In other words, ORG+OCT+1=OCT-N...(1-1) That is, this is currently trying to occur.
The range of the musical tone signal (that is, the range to which the pitch data belongs)
octave value) and what you are actually trying to use.
The original range of the waveform data (that is, the range to which the waveform data belongs)
octave shift)
This is a value indicating the amount of In other words, how many octaves is the original waveform?
Indicates whether the tone will be read as a high pitched sound. this
The value is temporarily stored in register WE2 of RAM7-4.
The signal is then decoded by the signal processor 7-6.
It is stored in the register ΔWAR of RAM7-2.
The value of ΔWAR for the value of ORG + OCT + 1 is the 20th
As shown in the table. In other words, the pitch data belongs to
Octave value and octave to which the waveform data belongs
The difference between the values (ORG + OCT + 1) is a power of 2
ΔWAR is obtained as follows. number
Expressed as a formula, it is as shown in formula (1-2). ΔWAR=2(ORG+OCT+1)
...(1-2) Below, time slot (4) is EAR2, time slot (6), (8),
(9), (10) WR1, ER1, WE2, WE1, WR2
The initial settings for each register are performed. On the other hand, in the data bank reading section,
The header stored in RAM7-3 with the long sequence
Read the Tsuda address data HAD, D bus →
Through latch 10-1 → shifter selector 10-9
bit processing circuit 1.
Enter 001 in the lower 3 bits of 0-10 to enter the data.
Read the ΔSTE of header data from the bank. child
The value is latch 10-7 → selector 10-12 → switch.
Lid 10-13 → Noise circuit 10-14 → Latch
10-2 to the D bus, MSW2-
A bus via SW26 and SW30 at 11
is input to FA2-6 and added to EAR1.
Ru. Then store in register EAR1 of RAM7-1
STE (envelope data E1′ star)
address) is read out, and the D bus → latch 10
-1→Latch 1 via shifter selector 10-9
Latched at 0-4. The output of latch 10-4 is
“0” is set to LSB by bit processing circuit 10-10.
Then “1” is entered and shown in Table 19.
Read the 2-byte envelope data exactly as shown.
put out. This value of 16 bits latches to latch 10-7.
be done. According to the output of latch 10-7, the first
ΔT1, ΔE1, ΔZ1, second time in shot sequence
The values of ΔT2, ΔE2, ΔZ2 in the shot sequence of
occurs. First, the decoder 10-11 has a
The upper 4 bits of 10-7 are input, but
The upper 4 bits of latch 10-7 are shown in Table 19.
However, the value of ΔT is included. Therefore decoder 1
0-11 decode ΔT according to Table 13 and set
output to the director 10-12. Selector 10-1
2, at this time C=1 and B input is selected.
The selected signal is output to the shifter 10-13. this selector
10-12 output is shifter 10-13, noise circuit
No bit manipulation is performed in 10-14.
is applied to the D bus through latch 10-2 without
Then, in MSW2-11, switch SW10 and HB bus.
stored in register ΔT1 of RAM7-2 via
Ru. ΔE1, ΔZ1, ΔE2, ΔZ2 are shown in Table 19.
shifter 10 according to Z, S, DATA where
Bit operations are performed at -13 and stored in each register.
will be paid. What bit operations are performed
The details are as shown in FIG. In Table 19
The data format differs depending on the Z value in
It shows what will happen. Next, read ΔSTE from data bank 1-6.
As in the case of register HAD from RAM7-3.
Read the value, latch it to latch 10-4, and set the bit.
The header address data is processed by the address processing circuit 10-10.
The first initial mode for the lower 3 bits of HAD.
100, then 101, second initial mode
In the code, set the data by giving 110 and then 111.
Read STW and ΔSTW from tabank 1-6,
STW is the register STW of RAM7-3, ΔSTW is
Store in register WAR of RAM7-1. The above completes the initial settings for all registers.
Complete. (2) How to generate a note clock First, note clock used in musical tone generator 1-5.
The principle of the Tsuk generation method will be explained with reference to Figure 3.
Ru. In Figure 3, 3-1 is a frequency divider and a terminal
Divide the master clock input to CK,
A 10-bit frequency divided output is output from Q. 3-2 is
The comparator compares the A input and B input, and A=
When it becomes B, Q outputs "1". 3-3
is a flip-flop, and at the rising edge of the CK input
It takes in the signal given to the D input and outputs it from the Q.
Ru. 3-4 is an adder, which calculates the sum of A input and B input.
is output from C. 3-5 is the B input of adder 3-4.
This is a constant circuit that inputs a constant M for force. 3
-6 is an RS latch, and a positive pulse is applied to the S input.
When it enters, Q=1 and a positive pulse enters the R input.
and Q=0. 3-7 is a delay circuit,
Delays the input signal and outputs it. 3-8 is AND
It is a gate. Next, the operation shown in FIG. 3 will be explained. First, RS Ratu
Assuming that the Q output of Q3-6 is "0",
The output of AND gate 3-8 is always “0”.
The Q output of flip-flop 3-3 is constant.
Ru. On the other hand, the frequency divider uses the frequency division of the master clock.
00016from 3FF16Outputs a 10-bit Q that repeats
Ru. Suppose that the output of flip-flop 3-3 is N.
Of course, if it is 00016≦N≦3FF16Because it is
There will always be a moment when the Q output of frequency divider 3-1 becomes N.
exists, and in this case, the Q output of comparator 3-2 is
A matching pulse is output. Then this matching pulse
RS is connected to the S input of RS latch 3-6.
The Q output of latch 3-6 becomes “1” and the write pulse
signal is output from AND gate 3-8. pretend
The D input of the pop-flop 3-3 is connected to the adder 3-4.
Since C output is given, the value of N+M is written.
be caught. At the same time, the write pulse is delayed
Q output of RS latch 3-6 after being delayed by circuit 3-7.
Set the force to “0”. For this reason, the flip-flop again
The Q output of 3-3 is constant, but the value varies from N to
It has changed to N+M. Therefore, next is the frequency divider 3-1.
Generates a match pulse when the Q output becomes N+M.
That will happen. By repeating this, the comparison
The output value of the frequency divider 3-1 is N, N+M,
A pulse is generated when N+2M... Two
Therefore, the frequency divider 3-1 counts the master clock M times.
A match pulse will be generated each time the signal is hit.
Also, N+nM>3FF16In this case, the adder
The output of 3-4 is N+nM- after overflow.
3FF16To achieve this, the master clock must be turned M times.
A coincidence pulse is generated when counting
Needless to say. In other words, one of the comparator 3-2
The target pulse is used as a note clock, and the constant M is changed.
Note clocks with various periods can be obtained by
and its frequency is (master clock frequency
number) ÷M. Also, the Q output of SR latch 3-6
corresponds to the calculation request flag CLRQ. The above is the notebook clock generation method according to the present invention.
It is the principle. Next, in the musical tone generating section 1-5 shown in FIG.
Details of the calculation sequence for generating a note clock
explain about. A key is pressed on the keyboard 1-1, and the microcomputer 1-4
instructs the musical tone generator 1-5 to generate a musical tone.
, the operation sequence is initialized as described above.
Start with mode long sequence. Thailand first
In Muslot (13), PDD+PED→PDR……(2-1) Next, enter the shoot sequence and time slot.
Tsuto(1)……(6) PDR+JD→L.B.……(2-2) C.B.×CN→FR……(2-3) calculations are performed. Then switch to normal mode
and in the time slot (9) of the short sequence. FR+CDR→FR (2-4) Long sequence time slots (14) to (18)
in PDR+JD→L.B.……(2-5) C.B.×CN→FR……(2-6) PDD+PED→PDR……(2-7) calculations are performed. Here, PDD is shown in Table 1.
PDD, that is, pitch detune data,
PED is the aforementioned pitch extend data.
JD is a constant and 1115Ten(45B in hexadecimal)
The value has been set. Note coefficient CN is assigned
It is a value determined by the pitch name, and the value is determined by the pitch name and CN.
The relationships are shown in Table 7. Theory of Tables 5 and 6
As mentioned above, operations (2-2), (2-3)
And calculations (2-5) and (2-6) are as shown below.
Can be expressed. (PDR+JD)×CN→FR……(2-8) Here, PDR is PDD + PED, so it is calculated
(2-8) is (PDD+PED+JD)×CN→FR
...(2-9) becomes. The value of this FR is shown by calculation (2-4).
Accumulate in CDR. As mentioned above, this accumulation is
Occurs once every time a note clock occurs.
Therefore, if the initial value of CDR is N, the value of CDR is N,
It changes as N+FR+N+2×FR,... this
The upper 10 bits of CDR and the master clock are
Compare the 10-bit frequency-divided signal obtained by the next frequency division,
Since we are trying to generate a matching pulse, the actual
for, Comparison with N/8, N+FR/8, N+2×FR/8,... The top 10 bits of the CDR are the third
Corresponds to flip-flop 3-3 in the figure, FR/8
corresponds to the value M of constant circuit 3-5 in FIG. late
If you perform the calculations (2-1) to (2-7) above on
A fixed-period notebook clock is obtained, and its frequency is (Master clock frequency)÷FR/8. (3) Waveform generation method Figure 1 Waveform generation in musical tone generator 1-5
The method can be roughly divided into the following five steps. Immediately
Chi: Address generation Read waveform data from data bank 1-6
generate the actual address. Waveform readout Data the waveform data specified by the address above.
Control data is read from data banks 1-6.
Performs bit processing according to the data CONT. envelope multiplication 2 wave mixing CN multiplication Each step will be explained in detail below. Address generation Header data is initialized by pressing a key.
STW (start address of W2), ΔSTW (W1
number of words), DIF1 (number of samples included in one waveform)
number) is stored in registers STW, WAR, DIF1,
Further, the register ΔWAR is determined by the calculation. child
The address is set in normal mode based on these data.
In the following process,
When the waveform data has a PCM part (PCM=1)
If not (PCM=0), the address generation will be different.
Therefore, it is divided into cases with a PCM part and cases without a PCM part.
I will explain. If there is no PCM section As shown in Table 6, at time slot (2),
Find the sum of STW and WAR, and use this sum to
Read waveform 1 from data bank 1-6 and
Add DIF1 to the above sum at imslot (4)
data bank with the value of SW + WAR + DIF1.
Waveform 2 is being read out from block 1-6. child
Here, STW is the start address of waveform 2, and
The register WAR has an initial value of ΔSTW, that is, waveform 1.
Contains the negative number of words contained in the time
Accumulate ΔWAR in slot (7). Therefore
The value of STW + WAR is the start address of waveform 1.
The value increases sequentially for each value of ΔWAR. Ma
In addition, the value of ST + WAR + DIF1 is calculated by adding DIF1 to this value.
Therefore, from the start address of waveform 2,
It is a value that increases every ΔWAR. here,
ΔWAR is a value representing the reading skip of the waveform
Therefore, as described above, for waveform 1 and waveform 2,
address can be generated. In addition, in the main musical tone generating section 1-5, the PCM
section is absent, solo flag SOL = 0, and
Phase alignment when no quarter shift is performed
conduct. The phase matching method is based on the calculation sequence
When changing from normal mode to normal mode
RAM as the calculation result in the first time slot (7)
Data whose address is the homophone name in 8-13
Store 9 bits in register WAR. RAM8
-13 output is 9 bits, but the C bus is
Since it is charged, the aforementioned 9 bits of the total 16 bits are
“1” is entered in the upper 7 bits. 2nd time
The calculation results for subsequent time slots (7) are shown in Table 6.
As shown, it is stored in the register WAR and
Use the homophone name in RAM8-13 as the address
Updated in register (phase register). This way
By setting the
Even if a musical tone has already been generated, the chi
The value of register WAR in Yannel is RAM8
I am trying to generate a musical tone through -13.
To be given to the register WAR of the channel
In order to match the phase between these two channels,
becomes possible. Here, the time slot (7) calculation WAR+
Let's talk about ΔWAR. When WAR+ΔWAR≧0, it has nothing to do with the range.
As a result of the operation, -512 is sent to the C bus.Ten(FFOO16)but
Given. If there is no octave shift
Since ΔWAR=1, the value of register WAR is
It will repeat with a period of 512. Multiple channels that generate the same note due to the above
The register WAR for each file is always the same.
The same note occurring in different channels
The phases of the waveforms match perfectly, and the phase
alignment is achieved. Next, the calculation STW + in time slot (2)
Let's explain WAR in more detail. Data is read from register STW of RAM7-3.
The HC bar as shown in MSW2-11
by clock φ3 via bus, SW11, and A bus.
It is latched by latch 8-1 of FA2-6. simultaneous
The value of register WAR in RAM7-1 is set to HA bus,
FA2- by clock φ3 via SW2 and B bus.
It is latched to the latch 8-2 of 6. latch 8-1
The output is determined by the bit processing circuit 8-10.
Latch 8- by clock φ1 without receiving
It is latched at 3. On the other hand, the output of latch 8-2
inputs ORG in the bit processing circuit 8-11.
Bit processing is performed as shown in Table 21.
After that, it is latched to latch 8-4 by clock φ1.
Ru. Adder 8-9 is latch 8-3, latch 8-4
Add the outputs of latch 8-7 and latch 8-8.
to the C bus. Bit processing circuit 8-
In step 11, perform the bit processing as described above.
As a result, the register WAR changes with a period of 512
However, depending on each octave
It will change periodically. For example, ORG
= 5, OCT = 2, there is no octave shift.
As mentioned in the initial processing section, ΔWAR=
It is 1. Also, from Table 21, the register WAR bit
Since slots 7 and 8 are always 1, the time slot
Assuming STW′=0, the calculation result of (2) is −10, −9, ...−1, −128, −127, ... -1, -128... Thus, it repeats in 128 cycles. Also,
2 octave shift when ORG=4 and OCT=5
Therefore, ΔWAR=4. Also, according to Table 21
Bits 6, 7, and 8 of register WAR are always 1.
Similarly, -40,...-8,-4,-64,-60,-56... -4, -64,... Thus, it repeats in 16 cycles. When OCT=2, the repetition period is 128, The repetition period is 16 when OCT=5.
The desired waveform points are obtained from Table 22.
It is shown that. Also, when ORG=4, OCT=5, the register
Table 18 shows that WAR increases by 4.
4 samples of data with 64 waveform samples as shown
The original waveform data can be obtained by acquiring one point at a time for each waveform.
Being able to raise the octave by two octaves
It shows. If there is a PCM section If there is a PCM section, address generation is done by the PCM section.
performance in time slot (2) compared to the case without
The calculation is different, but the other things are the same. In time slot (2), the performance of STR + WAR is
calculation is performed. Namely: Data is read from register STW of RAM7-3.
Extracted, via HC bus, SW11, A bus
The clock φ3 locks the latch 8-1 of FA2-6.
be hit. At the same time, the RAM7-1 register
The value of WAR is transmitted via the HA bus, SW2, and B bus.
It is latched by latch 8-2 of FA2-6. here
The output of the latch 8-1 is sent to the bit processing circuit 8-1.
0, the output of latch 8-2 is sent to bit processing circuit 8-1.
1, but both outputs undergo bit processing.
sent to latch 8-3 and latch 8-4 without being
and are added by an adder 8-9. Now, consider the value of register WAR
If there is no PCM section, register WAR will contain the first
The negative number of samples included in one period of the waveform as a period value.
number is written, but if there is a PCM part,
Used as the PCM part as the initial value of register WAR
The negative number of samples for all waveforms will be written.
Ru. Therefore, the calculation result of time slot (2) is data
PCM part start address of waveform 1 in banks 1-6
The value increases sequentially by ΔWAR from the response.
The end of the PCM section is detected at the time slot (7).
Check that WAR+ΔWAR≧0 in the calculation.
The address is generated after the PCM section is completed.
It is exactly the same as without the PCM section, and the bit processing
Bit processing is performed by the logic circuit 8-11. In addition, the address calculation in the musical tone generator 1-5
is 16 bits, but the address signal is 16 bits.
Of course, there may be cases where this is not sufficient. So, the book
In the musical sound generation section 1-5, the tablet data
The address space is expanded using the upper 3 bits of TAB.
It is now possible to stretch. to I/O2-10
The latch 10-3 is the latch for address space expansion.
and the tablet data is stored in latch 10-3.
The upper 3 bits of TAB are latched. Namely: When you enter the initial mode by pressing a key, the RAM
The tablet data stored in 5-4 is MSW2
-11 to register TAB' of RAM7-3.
Stored. Then when you enter normal mode,
The value of register TAB' of RAM7-3 is read,
In I/O2-10 via MSW2-11
It is latched by latch 10-3. In this way
Although the internal calculation is 16 bits, the address is 19 bits.
access space. Waveform readout Waveform readout is performed at time slots (2) and (4).
This is done based on the address given. time slot
The calculation result from step (2) is sent to the C bus, SW28, and HL bus.
I/O2-10 via bus, SW30, and D bus.
It is latched by latch 10-1. First, latch 1
0-1 output is shifter selector 10-9, latch
10-4, the bit processing circuit 10-10
Latched by 10-5 and then latched by 10-3
Read data banks 1-6 along with the data
Then, the output of data bank 1-6 is latched 10-8.
is latched to. Then, the output of latch 10-1
is shifted to the right by 1 bit using shifter selector 10-9.
is added, “1” is added to the MSB, and the latch 10-
It is latched at 4. The output of latch 10-4 is bit
to latch 10-5 via gate processing circuit 10-10.
latched, and with the data by latch 10-3.
Read data banks 1-6 to
The output of 1-6 is latched into latch 10-7.
At this time, the upper 8 bits of latch 10-7 are
Since the output of 10-8 is given, the previous data
It is latched with the values in data banks 1-6. child
Now, the lower 8 bits of latch 10-7 are latched.
The data is as described in the data bank section.
Equivalent to 2 words of the lower 4 bits of a 12-bit waveform.
Ru. The output of latch 10-7 is output to selector 10-12.
is applied to shifters 10-13 via
The latch is shifted 4 bits to the right and the latch 10-1
If the LSB of the output is 0, the lower 8 bits are also 4 bits.
If LSB = 1, the lower 4 bits are shifted to the right.
is output from shifter 10-13 without being shifted.
Ru. Here, in the control data CONT
When W8=1, that is, 8-bit waveform is specified,
In this case, shifters 10-13 set the lower 4 bits to “0”.
and output it. The output of shifters 10-13 is noise
D bus via circuit 10-14, latch 10-2
RAM7- through MSW2-11
3 is stored in register WR1. This value is the waveform
1 waveform data. to the address obtained by time slot (4)
The same process will be performed in any case. However, control
If NA=00 in role data CONT
The noise signal is added in the noise circuit 10-14.
available. When AN=01, bit 9, NA=
When NA=10, bit 10, when NA=11, bit
9 and 10 are replaced with noise signals. child
The noise signal can be superimposed without using an adder as in
It's folded. This is the waveform data of waveform 2
It is stored in register WR2 of RAM7-2. envelope multiplication Create two types of waves, waveform 1 and waveform 2, as described above.
The waveform data was obtained, but for this waveform data
Perform envelope multiplication. En for waveform 1
The envelope is stored in register ER1 of RAM7-3 as a waveform.
The envelope for 2 is in the register of RAM7-3.
It is included in TAER2. Now, let's talk about the envelope.
In other words, the envelope is a 4-bit exponent part.
13-bit floating point display with 9-bit fraction
There is. Envelope multiplication is performed twice for each channel.
However, each operation is similar, so the time
Regarding the calculation of WR1×ER1 in slots (7) to (9)
I will explain. The data in register ER1 of RAM7-3 is MSW
Latch 9-3 of MPLY2-7 via 2-11
and is latched by latch 9-5. Here, Ratsu
The lower 10 bits of register ER1 are stored in chip 9-3.
Bits 9-12 of register ER1 are set to bits 9-5.
Latched. Next, register of RAM7-3
WR1 data is MPLY via MSW2-11
It is latched by latch 9-1 of 2-7. Latch 9
The output of -3 is sent to the bit processing circuit 9-12.
The MSB of is set to “1” and latched to latch 9-4.
be done. That is, the latch 9-4 has the envelope
Hypothesis is latched. The output of latch 9-1 is
It is latched to latch 9-2 via lid 9-11.
Ru. At this time, SQ is input to the C input of encoder 9-10.
1 is given by the signal, and the shifter 9-1
00001 is given to the C input of 1. Therefore shifter
9-11 is the lower 12 bits of latch 9-1, that is, data.
Waveform data of waveform 1 read from data bank 1-6
12 bits are sent to latch 9-2. Multiplier 9
-16 is the data of latch 9-2 and latch 9-4
The 14-bit product is held in latch 9-7.
is selected and sent to shifter 9-15. On the other hand, latch 9-5 contains the exponent part of the envelope.
is latched, and dego is connected via latch 9-6.
The selector 9-1 decodes the
4 to the shifter 9-15 as a control signal.
It will be done. Therefore, the output of latch 9-7 is the envelope
shifted by the exponent of the
It will be latched. In this way, fixed-point
Multiplication of waveform data and floating point envelope
It will be done. The output of latch 9-8 is from the L bus.
RAM7-1 register via MSW2-11
Stored in WE1. Waveform data of waveform 2 and encoder
Multiplication of the envelope is done in the same way, RAM7-4
is stored in register WE2. 2 wave mixing As described above, the waveforms are applied to registers WE1 and WE2.
The shape is stored. In this step, WE1 and WE2
Find the sum of The calculation in time slot (1) is
This corresponds to this. CN multiplication Two-wave mixing is performed in time slot (1), but the main musical tone
In the generation part 1-5, ABM2-9 and fiber
Depending on the characteristics of routers 1-7, it may occur depending on the note name.
The sound pressure level generated may differ. for this
CN multiplication performs the correction. Here, the correction
Using the note coefficient CN as it is as a coefficient for
There is. WE2+WE1 at time slot (1)
The calculation result is sent from C bus to SW28, HL bus, SW
29. Latch 9 of MPLY2-7 via L bus
-1. On the other hand, ROM of memory 2-5
Note coefficient according to note data ND from 7-5
CN is read and HD bus, SW24, L bus
Latch to latch 9-3 of MPLY2-7 through
It will be done. Here, WE1+WE2 is 16-bit data.
However, the A input of multiplier 9-16 is 12 bits.
In MPLY2-7, the following processing is performed.
Ru. That is, the upper 5 bits of latch 9-1 are encoded.
input to the encoder 9-10, and the encoder 9-10
Data as shown in Table 9 is input from both terminals A and B.
Output. In other words, the data at latch 9-1
Find the actual number of bits, and depending on this result,
12 bits from latch 9-1 by shifter 9-11.
Take out the tube. For example, if the value of latch 9-1 is
3A2616, this data is effectively 15 bits
Since it is data, shifter 9-11 is latch 9-1.
Take out the 12 bits below bit 14 and use shifter 9.
-11 output is 74416becomes. In this way
Multiplying the real part of WE2 + WE1 by the note coefficient
and return to the original number of bits using shifter 9-15.
Return and latch with latch 9-9. As described above, a multiplier with a small number of bits can be used.
When performing multiplication on data with a large number of bits.
Ru. The value obtained in this way is sent to DAC2-8.
Output and corrected to the specified cycle by ABM2-9
Output as a musical tone signal. By the way, in the main musical tone generating section 1-5,
As mentioned in Table 1, the instructions from the microcomputer
Switch CN multiplication to VLD multiplication by lag VOL
can be done. That is, in a long sequence
Therefore, the register VLD8 bit of RAM5-6 is
RAM7-4 registers via MSW2-11
Sent to LVD′. MSW2-11 when sending
Bit shift is performed at 8-bit data.
Shifted to the left by 2 bits and further set “0” to the lower 2 bits.
is added and converted to 10-bit data. this
Therefore, the number of bits in VLD is the same as the number of bits in CN.
Become one. Add the value of ROM7-5 to the value of WE2+WE1
Multiply or multiply by the value of register VLD′
is determined by the flag VOL in Table 1, and VOL=
If 0, ROM7-5 sends data to HD bus
However, if VOL=1, RAM7-4 is connected to the HD bus.
Send data. By configuring as above, microcontroller 1
-4, the musical tone generator 1-5 outputs the musical tone signal.
It is now possible to change the level of the issue, and as shown in Table 1.
Amplitude modulation is achieved by sequentially changing the value of VLD.
It becomes possible to At least one of the speed and pressure with which you press the keys.
If you create a VLD based on the touch response device
Noh is realized. The touch response function increases the speed and strength of keyboard operations.
The volume, tone, etc. change depending on the pitch.
Ru. For example, on a piano, the harder you press the keys, the louder the volume.
Not only will the sound be brighter, but the tone will also be brighter, making it easier to hit weakly.
When I key the key, not only is the volume low, but the tone is also muffled.
Become something. The volume and tone change automatically depending on the strength of the keystrokes.
However, in the case of a piano, the keyboard changes after the key is pressed.
Even if you change the force with which you press the button, the sound quality is decreasing
cannot make any changes. Pi like this
In that case, only the strength of the keystrokes is the touch response function.
This feature is especially useful at the initial stage.
It's called Tutsi control. Generally, percussion instruments fall into this category.
belong to On the other hand, the trumpet is sustained depending on the strength of the breath.
This sound quality can also be changed.
When playing by imitating the keyboard of an electronic musical instrument
Also, when a key is pressed while a trumpet sound is being generated,
Change the volume and tone by increasing or decreasing the strength
This is necessary. This feature is especially useful after-sales service.
-It's called touch control. Generally, stringed instruments
Wind instruments belong to this category. In the embodiment of the present invention, as described above, the VOL file
By performing VLD multiplication by the lag, each channel
The volume can be controlled independently for each channel. As an application example, measuring the strength of keystrokes and
Create VLD values accordingly and transfer them from the microcontroller.
Different VLDs transferred for each keystroke
The volume of each sound will change accordingly. When the microcontroller transfers VLD, it responds to the value of VLD.
If you change the tablet data and transfer it, the book
The musical tone generator of the embodiment changes the volume according to the value of VLD.
As mentioned earlier, you can also change the tone.
This is clear from the functional description. Regarding this tone switching, VLD is 8-bit
Let's explain with an example. Table 23 shows the range of VLD values and their corresponding
An example of the strength and weakness name and tablet name is shown below. Every time VLD decreases by 1 bit, the volume decreases by 1/2.
It is 6 dB lower, which is the name of the musical term for dynamics.
assigned to each. Also, the strength is gorgeous
Since we need a tone, we need to tap waveform data rich in harmonics.
Assign this to bullet 0, and at a volume lower than MP.
Waveform data close to a sine wave is required because a mellow tone is required.
to assign multiple types of waves to Tablet 3.
Prepare shape data in a data bank. By doing this, the VLD will change depending on the strength of the keystroke.
At the same time, the tone is switched in four ways within the numerical range of
256 different volumes can be specified depending on the 8-bit VLD.
Wear. The above was the initial touch control.
However, similarly, depending on the amount of pressure on the key after the key is pressed,
and VLD that changes from moment to moment according to the value of VLD.
The microcontroller sends the tablet data to be converted into
The musical tone generator of this embodiment changes the key press pressure after the key is pressed.
The tone and volume can be changed moment by moment according to the
I can do it. The above is aftertouch control. (4) Envelope generation method Envelope generation in musical tone generator 1-5
The method can be divided into the following three steps. That is, Address generation Reading envelope data envelope calculation Each step will be explained in detail below. Address generation Header data is set by initial setting by pressing the key.
STE (start address of envelope data E1′)
), ΔSTE (word of envelope data E1′)
registers EAR1, EAR2, TR1,
TR2, ΔT1, and ΔT2 are initially set. this
Address calculations are performed based on these data.
Address calculations do not need to be performed frequently, so
This is done in a long sequence of calculation sequences.
Ru. Furthermore, the embedding is performed at the odd numbered times of the long sequence.
Perform address calculation of rope data E1′ on even numbered times.
Perform address calculation on envelope data E2′
There is. In the odd numbered long sequence, the time
in slot (13) ΔT1+TR1→TR1……(4-1) in time slot (15) ΔEAR1+EAR1+Ci→EAR1...(4-2) The calculation is performed and the data bank is created using the value of EAR1.
1-6 is read. Time slot (15)
Ci is the accumulation of ΔT1 performed in time slot (13)
This corresponds to the overflow caused by. play here
Calculation (4-1) will be explained in detail. First, the value of register ΔT1 of RAM7-2 is HB
bus, FA2-6 via MSW2-11
It is latched to the lock 8-1. At the same time, RAM7-3
The value of register TR1 is HC bus, MSW2-11
is latched to latch 8-2 of FA2-6 via
Ru. The output of latch 8-1 is sent to bit processing circuit 8-1.
0 forces bit 3 to “0” (bit
The reason why bit 3 is set to "0" will be explained later. ), Ratu
It is latched at 8-3. The output of latch 8-2 is
latch 8-4 via bit processing circuit 8-11.
Latched. Here, the bit processing circuit 8-11
In this case, processing such as bit conversion is not performed. La
The outputs of the latch 8-3 and the latch 8-4 are sent to the adder 8-
9 and added through latch 8-7 and latch 8-8.
and give it to the C bus via MSW2-11.
Store the addition result in register TR1 of RAM7-3.
Ru. If an overflow occurs in the addition result,
If so, “1” is output from Co of adder 8-9.
Ru. This output is latched with latch 8-6 and tied.
Used when calculating Muslot (15). However, this
This applies when there is no PCM part in the waveform data.
Yes, if there is a PCM part in the waveform data (flag
PCM = 1), there is no register until the PCM part is read.
“0” is forcibly set as the calculation result for data TR1.
is input. Therefore, the overflow due to the accumulation of ΔT1
Since no low occurs, it is necessary to read the PCM until
In this case, the value of EAR1 will not be updated. ΔT1 is
As mentioned in the initial processing section, in Table 13
This is the value of D output when C=0, and register TR1
is a 16-bit register, so for example ΔT1
=400016Then operation (4-1) is performed 4 times
and register TR1 overflows, and the operation (4
-2) Ci=1 and the address can be updated.
Here, operations (4-1) and (4-2) are long seams.
It is held once every two Kens. As shown in Figure 1 C
and the long sequence of the same channel is 388
The period of the time slot, that is, one time slot is
Since it is 250ns, it appears in a period of 97μs. Therefore performance
Calculations (4-1) and (4-2) are performed every 194 μs,
ΔT1=400016If the address is 776μs,
An update will be made. By the way, envelope data consists of 2 bytes.
Since the address has been updated, please update the address by 2.
Must be updated. Time slot(15)
, update the address as follows:
ing. First, ΔEAR1 is a value determined by ΔT1.
ΔT1≠000816When ΔEAR1=000016And
ΔT1=000816When ΔEAR1=FFEB16=-
twenty oneTenIt is. This operation is in MSW2-11.
It will be held at SW31. SW31 is shown in Figure 11
The value of bit 3 of ΔT1 is
It is controlled by the flag TO shown. Now temporarily
ΔT1≠000816Then, SW31 connects to the A bus.
000016However, from register EAR1 of RAM7-1, HA
bus, to B bus via SW2 of MSW2-11
The value of EAR1 is given. These values are FA2−
It is latched by latch 8-1 and latch 8-2 of 6.
Ru. The output of latch 8-1 is sent to bit processing circuit 8-1.
0 to latch 8-3. Here,
Data conversion is performed in the output processing circuit 8-10.
It seems like there is no such thing. At the same time, latch 8-2
The output is given to the bit processing circuit 8-11, and the data
LSB of data is forced to “1” and latch 8-
Sent to 4. That is, in the bit processing circuit 8-11
1 is added in advance. In addition, the latch 8 mentioned earlier
-6 is stored in operation (4-1).
The bar flow is latched in latch 8-5. Therefore
Latch 8-3, latch 8-4 and latch 8-5
When the values are added, the value of latch 8-5 is “1”.
If so, “2” will be added to the value of EAR1.
Ru. On the other hand, if the value of latch 8-5 is "0",
The value of EAR1 remains incremented by 1, but
As mentioned in the section on file processing, I/O2-10
Force the LSB to be “0” or “1”
There will be no inconvenience. By the way, ΔT1=000816If ΔEAR1 is
FFEB16(-21Ten). Therefore, from the value of EAR1
twenty oneTenWill be drawn, envelope 10 words ago
data will be read. This results in
Envelope data address loops
It becomes a repeating envelope like a mandolin.
can generate a drop. Calculate first (4-1)
Then, bit 3 is processed by bit processing circuit 8-10.
I mentioned setting it to “0”, but the reason is that bit 3 is
EAR1=FFEB16, and this operation
0008 in register TR1 when doing16do not add
This is for the purpose of ΔT2 at even numbered times of long sequence,
Calculations for TR2, ΔEAR2, and EAR2 are performed in the same way.
It will be done. Note that calculations related to EAR1 and EAR2 are completely independent.
waveform 1 and waveform 2.
can generate envelope signals.
Needless to say. In addition, EAR1 or EAR2
Regarding repetition, the repetition period is also different.
Since it is easy to use, various effects can be obtained.
Wear. Reading envelope data Reading envelope data is a long sequence.
the envelope of waveform 1 on even-numbered times.
the envelope data of waveform 2 at odd-numbered times.
Read data. An error is performed based on the values of registers EAR1 and EAR2.
For instructions on how to read envelope data, please refer to the initial
This is exactly the same as described in the section on processing
Read from data bank 1-6 at I/O2-10
While converting the format of the captured data,
Registers ΔT1, ΔT2, ΔZ1, ΔZ2, ΔE1, ΔE2
I will pay it. envelope calculation By reading the envelope data, ΔZ1,
Data is stored in ΔZ2, ΔE1, ΔE2, and
ER1, ER2, ZR1, ZR2 by initial processing
is given an initial value. depending on these values
Perform envelope calculations. The basis of envelope calculation is the time slot of the addition section.
(3), (5), (6), and (8). Time slot (3),
Calculate the envelope of waveform 1 using (5), and
The envelope of waveform 2 is determined by Muslot (6) and (8).
Calculate. Here, Ci of time slots (5) and (8)
is the overflow caused by the operations using time slots (3) and (6).
Although it is a bar flow, at time slots (3) and (6)
How the resulting overflow is time-stamped
Regarding whether it is added by lot (5) or (8), the address
The time slot for occurrence of
It is similar to ER1 obtained in this way,
The value of ER2 is envelope data. Note that the “envelope” in “(3) Waveform generation method”
As mentioned in the section ``Multiplication'', both ER1 and ER2 are 13
In bit data, the top 4 bits are the exponent part and the bottom 9 bits are the exponent part.
The bit is the mantissa. Therefore, the main musical tone generator
The envelope obtained in step 1-5 is shown below.
It takes shape. Envelope 1 = 1. (lower 9 bits of ER1) x 2
(upper 4 bits of ER1) Envelope 2 = 1. (lower 9 bits of ER2) x 2
(upper 4 bits of ER2) Because it is shown in this way, the level of the envelope
Always has 9-bit resolution regardless of the file size.
It becomes. By the way, envelope calculation can be done in various modes.
It's different. What are the various modes? 1 When the waveform has PCM and when it does not.
(PCM=1/0) 2 Case of piano-type envelope and organ-type envelope
For envelopes. (P/O=1/0) 3 When the damper flag is turned on and when it is turned off.
If. (DMP=1/0) There are three types. Each case will be explained below.
Ru. PCM=0 and P/O=0 The initial setting is “0” for ER1, ER2, ZR1, and ZR2.
, and when the key is pressed, register ΔE1,
The envelope is expressed according to the values of ΔE2, ΔZ1, and ΔZ2.
Do calculations. When the key is released, the time slot (3),
As the values of ΔZ1, ΔE1, ΔZ2, and ΔE2 in (5), (6), and (8),
Released from signal processor 5-6 of UCIF2-3.
data is generated and registers ΔZ1, ΔE1,
Used instead of the values of ΔZ2 and ΔE2. In addition, in this mode, the damper flag
The calculations are not affected in any way by DMP. PCM=0 and P/O=1 The initial setting is “0” for ER1, ER2, ZR1, and ZR2.
, and when the key is pressed, register ΔE1,
The envelope is expressed according to the values of ΔE2, ΔZ1, and ΔZ2.
Do calculations. When the key is released, the damper flag DMP
If = 1, registers ΔE1, ΔE2,
Perform envelope calculation according to the values of ΔZ1 and ΔZ2.
Yes, when damper flag DMP=0, PCM=0 and
This is the same as when P/O=0. PCM=1 and P/O=0 Initial setting is EA1=1FFF16, ER2=0, ZR1
=0, ZR2=0. The key is pressed and the wave
When Type 1 is reading the PCM section, the initial value is retained.
After reading the PCM part, register ΔE1,
The envelope is expressed according to the values of ΔE2, ΔZ1, and ΔZ2.
Do calculations. When the key is released, waveform 1 moves to the PCM section.
UCIF2-3 regardless of whether it is read or not.
Based on release data by signal processor 5-6
calculation is performed. That is, PCM=0 and P/O=
The result is 0. In addition, in this mode, the damper flag
Operations are not affected by DMP. PCM=1 and P/O=1 Initial setting is ER1=1FFF16, ER2=0, ZR1
=0, ZR2=0. Damper flag DMP=0
In this case, once the key is pressed, the key release timing is
The calculation is performed regardless of the program. That is, waveform 1 is
When reading the PCM section, register ER1,
ER2, ZR1, and ZR2 retain their initial values, and the PCM section
After reading registers ΔE1, ΔE2, ΔZ1, ΔZ2
The calculation is started according to the value of . damper flag
When DMP=1, PCM=1 and P/O=0
The case is exactly the same. As mentioned above, you can use it freely depending on the various modes.
can generate an envelope signal. Ma
In addition, ΔE1, ΔZ1 and ΔE2, ΔZ2 can be set completely independently.
The data is clear in the address generation section.
It is updated at the time determined by ΔT1 and ΔT2.
Therefore, in conjunction with the two types of waveform data mentioned above,
Various musical tones can be generated. (Effect of the invention) As described above, the present invention provides waveform data,
start address of the data and the attribute of the waveform data.
first data including an octave value to
and second data containing the address of the data of
It has a data bank that also has at least a timbre
Receive performance information including selection data and pitch data
and the corresponding tone selection data from the above data bank.
Part or all of the pitch data can be used as an address.
a means for reading second data corresponding to the data;
Part or all of the second data from the data bank
Read the first data corresponding to the address
means and the octave value to which the above pitch data belongs.
to which the waveform data in the corresponding first data belongs.
The number obtained by subtracting the octave value is expressed as a power of 2.
a means for creating a value A and a star in the first data;
Add the above value A to the root address in order.
The corresponding wave from the above data bank as the address
By providing a means to read shape data, sound
A desired range of sounds can be created without having to prepare waveform data for each range.
Not only can musical tones be generated, but waveform data can also be generated.
Even if it is a PCM waveform, musical tones can be generated by changing the range.
can be set. Furthermore, each range or part of the range
I heard that you can change the waveform data read out for each range.
Increasing the redundancy of waveform data even in cases where
I can handle it without any problems.

【表】【table】

【表】【table】

【表】【table】

Claims (1)

【特許請求の範囲】 1 波形データ、該波形データのスタートアドレ
スおよび該波形データの属するオクターブ値を含
む第1のデータと、該第1のデータのアドレスを
含む第2のデータとを格納するデータバンクと、 少なくとも音色選択データと音程データを含む
演奏情報を受取り、上記データバンクから上記演
奏情報に基づき該当する第2のデータを読み出す
手段と、 上記データバンクから該第2のデータに基づき
該当する第1のデータを読み出し、上記音程デー
タの属するオクターブ値から該当する第1のデー
タ中の波形データの属するオクターブ値を減じた
数値を2のべき数として数値Aを作成する手段
と、 該第1のデータ中のスタートアドレスに上記数
値Aを順次加算したものをアドレスとして上記デ
ータバンクから該当する波形データを読み出す手
段を有することを特徴とする電子楽器。
[Claims] 1. Data that stores waveform data, first data including a start address of the waveform data, and an octave value to which the waveform data belongs, and second data including the address of the first data. means for receiving performance information including at least timbre selection data and pitch data, and reading out corresponding second data from the data bank based on the performance information; means for reading first data and creating a numerical value A by subtracting the octave value to which the waveform data in the corresponding first data belongs from the octave value to which the pitch data belongs as a power of 2; An electronic musical instrument characterized in that the electronic musical instrument has means for reading out corresponding waveform data from the data bank using an address obtained by sequentially adding the numerical value A to the start address in the data.
JP60080333A 1985-04-17 1985-04-17 Electronic musical instrument Granted JPS61240294A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60080333A JPS61240294A (en) 1985-04-17 1985-04-17 Electronic musical instrument

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60080333A JPS61240294A (en) 1985-04-17 1985-04-17 Electronic musical instrument

Publications (2)

Publication Number Publication Date
JPS61240294A JPS61240294A (en) 1986-10-25
JPH0230035B2 true JPH0230035B2 (en) 1990-07-04

Family

ID=13715329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60080333A Granted JPS61240294A (en) 1985-04-17 1985-04-17 Electronic musical instrument

Country Status (1)

Country Link
JP (1) JPS61240294A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2605387B2 (en) * 1988-12-29 1997-04-30 ヤマハ株式会社 Music signal generator

Also Published As

Publication number Publication date
JPS61240294A (en) 1986-10-25

Similar Documents

Publication Publication Date Title
US5038661A (en) Waveform generator for electronic musical instrument
JPH0230035B2 (en)
EP0201998B1 (en) Electronic musical instrument
JPH0230030B2 (en)
JPH0230038B2 (en)
JPH0230036B2 (en)
JP2950461B2 (en) Tone generator
JPH0230034B2 (en)
JPH023199B2 (en)
JPH0584534B2 (en)
JPH023198B2 (en)
JPH028318B2 (en)
JPH0583917B2 (en)
JPH079582B2 (en) Electronic musical instrument
JPH0419587B2 (en)
JPH0418343B2 (en)
JPH0656554B2 (en) Electronic musical instrument
JPH03204697A (en) Musical sound signal generating device
JPH04161994A (en) Musical sound generation device
JPS6334475B2 (en)
JPS61255397A (en) Electronic musical instrument
JPS61252591A (en) Electronic musical instrument
JPS61248095A (en) Electronic musical instrument
JPS6118559Y2 (en)
JP2705042B2 (en) Envelope waveform generation method

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term