JPH0230036B2 - - Google Patents
Info
- Publication number
- JPH0230036B2 JPH0230036B2 JP60081452A JP8145285A JPH0230036B2 JP H0230036 B2 JPH0230036 B2 JP H0230036B2 JP 60081452 A JP60081452 A JP 60081452A JP 8145285 A JP8145285 A JP 8145285A JP H0230036 B2 JPH0230036 B2 JP H0230036B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- latch
- bits
- output
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000001514 detection method Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 86
- 238000012545 processing Methods 0.000 description 46
- 101150080661 Ear1 gene Proteins 0.000 description 21
- 101150081376 NR1D1 gene Proteins 0.000 description 21
- 102100023170 Nuclear receptor subfamily 1 group D member 1 Human genes 0.000 description 21
- 238000000034 method Methods 0.000 description 14
- 101100420776 Arabidopsis thaliana SYN1 gene Proteins 0.000 description 12
- VUDQSRFCCHQIIU-UHFFFAOYSA-N DIF1 Natural products CCCCCC(=O)C1=C(O)C(Cl)=C(OC)C(Cl)=C1O VUDQSRFCCHQIIU-UHFFFAOYSA-N 0.000 description 12
- 101150001108 DIF1 gene Proteins 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 101000633516 Homo sapiens Nuclear receptor subfamily 2 group F member 6 Proteins 0.000 description 9
- 102100029528 Nuclear receptor subfamily 2 group F member 6 Human genes 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000003825 pressing Methods 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 5
- 210000004027 cell Anatomy 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 235000021419 vinegar Nutrition 0.000 description 3
- 239000000052 vinegar Substances 0.000 description 3
- 101100462298 Arabidopsis thaliana ORG3 gene Proteins 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005316 response function Methods 0.000 description 2
- BSFODEXXVBBYOC-UHFFFAOYSA-N 8-[4-(dimethylamino)butan-2-ylamino]quinolin-6-ol Chemical compound C1=CN=C2C(NC(CCN(C)C)C)=CC(O)=CC2=C1 BSFODEXXVBBYOC-UHFFFAOYSA-N 0.000 description 1
- 241001501536 Alethe Species 0.000 description 1
- 241001155433 Centrarchus macropterus Species 0.000 description 1
- 210000004899 c-terminal region Anatomy 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000009527 percussion Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
(産業上の利用分野)
本発明は電子楽器に係り、特りノートクロツク
発生に関するものである。 (従来の技術) 近年、電子楽器はデイジタル信号処理技術の導
入により高度な音づくりが行われている。従来の
電子楽器におけるノートクロツクの発生方法を第
3図により説明する。 第3図において、3−1は分周器であり端子
CKに入力されているマスタクロツクを分周し、
8ビツトの分周出力を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をくり返す8ビツトの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となる(例えば特願昭57−83450号)。 (発明が解決しようとする問題点) しかしながら上記のような構成ではノートクロ
ツクのピツチ分解能を上げるには、システム全体
のビツト数を増し、マスタクロツクの周波数を高
くしなければならなず、システム全体に高速動作
が要求される。 本発明は、上記問題点に鑑み、マスタクロツク
の周波数を上げることなく、従つてシステムの動
作速度を上げることなく、より分解能の高いノー
トクロツクを発生しようとするものである。 (問題点を解決するための手段) 上記問題点を解決するために本発明の電子楽器
は、クロツク信号を発生する手段と、前記クロツ
ク信号を分周し、分周出力を発生する手段と、レ
ジスタと、前記分周出力と前記レジスタの内容の
一致を検出し、一致信号を発生する手段と、前記
一致信号が発生される度に前記レジスタの内容に
一定数を加算する手段を備え、前記一致信号を用
いてノートクロツク信号を得るようにした電子楽
器において、前記一致信号を発生する手段が前記
レジスタの少なくとも下位1ビツトを一致検出の
対象から除外するようにしたものである。 (作用) 本発明は上記した構成により、例えばレジスタ
が10ビツトで、上位8ビツトと分周出力との一致
を検出しており、一致検出ごとにレジスタに加算
される一定数が10116であるとすれば、レジスタ
が00016,10116,20216,30316,00416,10516,…
…となるので、分周出力が0016,4016,8016,
C016,0116,4116,……となり、微視的に見れば
マスタクロツクのカウント数が64回,64回,64
回,65回,64回,64回……ごとに一致信号が出力
されるが、巨視的に見れば64.25回に1回の割合
で一致信号が出力されることになり、ピツチ分解
能が0.25きざみになる。また分周比が64から65へ
かわる周期が一定であるのでジツタは発生しな
い。 (実施例) 以下図面に基づき本発明の一実施例を説明す
る。 第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より成つている。その具体
的な内容は第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通り
である。VLDはリリースデータで、キーオフ後
の減衰特性を制御する4bitのデータである。LOL
はボリユームフラグであり、このビツトを“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の2つの状態がある
ため、776×2の1552タイムスロツトを周期とし
てシステムが動作しているものである。 次に、第5表及び第6表に基づいて個々の演算
シーケンスについて説明する。前述のように、楽
音発生部1−5は新たな押鍵によりイニシヤルモ
ードロングシーケンスより開始するようになつて
いるのでイニシヤルモードロングシーケンスより
タイムスロツト別に説明を行う。 加算部 (13) PDD+PED→PDR (15) 0→TR1 (16) 0→TR2 (17) 0→ZR1 (18) 0→ZR2 タイムスロツト(13)の意味するところは、
PDDというレジスタの内容とPEDというレジス
タの内容を加算してPDRというレジスタに格納
するということである。タイムスロツト(15)〜
(18)は、TR1,TR2,ZR1,ZR2というレジス
タに0を書き込むということである。 データバンク読み出し部 (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・;0→ER2/1 (3) ORG+OCT+1→WE2→ΔWAR (4) D.B.+EAR1→EAR2 (6) 0→WR1 (8) 0→ER1 (9) 0→WE2 (10) 0→WE1,WR2 タイムスロツト(1)における0→ER2/1はシヨ
ートシーケンス1回目即ちODD時にはER2,2
回目即ちEVEN時にはER1というレジスタに0を
書き込むことを意味する。また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図ハにおけるタイムス
ロツトを表す信号であり、CECはチヤンネルコ
ードであり、第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−1
2により順次選択されラツチ6−13にラツチさ
れる。ラツチ6−13の出力はANDゲート6−
14に与えられているので、現在セレクタ6−1
2が選択している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は信号処理器であり、
RAM7−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に入力された制御信号に従つ
てシフトし0より出力する。シフトの内容は第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に入力された
制御信号に従つてシフトし0より出力する。シフ
トの内容は第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”にする回路である。10−11はデコーダ
であり、入力Iと出力Dの関係は第13表に示すと
おりである。デコーダ10−11のA入力にはラ
ツチ10−7の出力のビツト12〜ビツト15が与え
られている。10−12はセレクタであり、C入
力に応じてA又はBに与えられている信号のいず
れかを選択してYより出力する。10−13はシ
フタであり、制御端子Cの入力に応じてIからの
入力をシフトして0より出力する。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〜c7を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−1
1に用途に応じて配して選択的に開閉することに
より、任意のバスから他の任意のバスへのデータ
転送が必要なビツト処理を含めて可能となる。例
えば、HAバスからAバスへ、HBバスからBバ
スヘ、CバスからHCバスへ同時にデータを転送
したい時にはSW1,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) ヘツダデータ ヘツダデータは第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とS17がオンして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において
SW33及びSW13がオンする。ST33は第11図ト
のような構成になつており、Cバスに“0”が与
えられる。同時にSW13がオンしているので、C
バスのデータがHCバスに与えられ、第7図に示
すRAM7−3におけるレジスタTR1に“0”が
書き込まれる。 一方データバンク読み出し部においては、次の
ような動作をする。以下第10図を中心に説明す
る。TAB,ND,OCTで構成されたWRDによつ
てヘツダアドレスデータHADが読み出される。
なお、このイニシヤル処理を行うイニシヤルモー
ドにおいては、ラツチ10−3はSQ信号により
111にセツトされている。このデータはI/O
2−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−15を介
してラツチ9−8へ送出されラツチされる。なお
これらの一連の動作において、シフタ9−11、
ビツト処理回路9−12、シフタ9−15はデー
タをスルーさせるように動作する。即ちエンコー
ダ9−10のC入力には“1”が与えられてい
る。ラツチ9−8の値がLバスよりMSW2−1
1の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 ということであり、これは、現在発生しようとし
といる楽音信号の音域と実際に使用しようとして
いる波形データの本来の音域との差、即ちオクタ
ーブシフトの量を示す値である。つまり、原波形
を何オクターブ高い音域の音として読み出すかを
示す。この値は一旦RAM7−4のレジスタWE
2に格納され、次いで、信号処理器7−6でデコ
ードされてRAM7−2のレジスタΔWARに格納
される。ORG+OCT+1の値に対するΔWARの
値は第20表に示すとおりである。 以下、タイムスロツト(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(エンベロープデータH1′のスタートア
ドレス)が読み出され、Dバス→ラツチ10−1
→シフタセレクタ10−9を介してラツチ10−
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の値が入つている。故にデコーダ10
−11はΔTを第13表に従つてデコードし、セレ
クタ10−12へ出力する。セレクタ10−12
においては、この時C=1となつてB入力を選択
しシフタ10−13へ出力する。このセレクタ1
0−12出力はシフタ10−13、ノイズ回路1
0−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図と対比させながら、第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は第6図に示すとおり13ビツトのデー
タであるが、その下位3ビツトを一致検出の対象
から除外し、上位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図RSラツチ3−6の出力がCLRQ
に相当する。 このように、10ビツトの比較器、8MHzのマス
タクロツクを用いていながら、13ビツト相当の分
解能を有することができる。 (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を加え
たもの即ちSTW+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(FF0016)が与
えられる。オクターブシフトが無い場合は
ΔWAR=1であるの、レジスタWARの値は512
を周知としてくり返すことになる。 以上により同じノートを発生する複数チヤンネ
ルの各々のレジスタWARは常に同一となるの
で、異なる複数のチヤンネルの発生する同じノー
トの波形の位相が完全に一致することとなり、位
相合わせが実現される。 次にタイムスロツト(2)における演算STW+
WARを更に新しく説明する。 RAM7−3のレジスタSTWよりデータが読
み出され、MSW2−11に示すところのHCバ
ス、SW11、Aバスを介しクロツクψ3によりFA
2−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バスを介してFA
2−6のラツチ8−2にラツチされる。ここで、
ラツチ8−1の出力はビツト処理回路8−10、
ラツチ8−2の出力はビツト処理回路8−11に
入力されるが双方の出力ともビツト処理を行われ
ることなくラツチ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−1
1によるビツト処理が行われる。 なお、楽音発生部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にラツチされる。まず、ラツチ10−1
の出力がシフタセレクタ10−9、ラツチ10−
4、ビツト処理回路10−10を介してラツチ1
0−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−1
2がラツチされる。次いでRAM7−3のレジス
タWR1のデータがMSW2−11を介して
MPLY2−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−11の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バス、
SW29、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小さくなり、これを音楽用語の強弱名の
各々に割当ててある。またffの強さには華やかな
音色が必要なので高調波の豊富な波形データをタ
ブレツト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の値を示す
フラグT0によつて制御している。今仮にΔT1≠
000816とすると、SW31によりAバスに000016が、
RAM7−1のレジスタEAR1よりHAバス、
MSW2−11のSW2を介してBバスにEAR1の
値が与えられる。これらの値がFA2−6のラツ
チ8−1,ラツチ8−2にラツチされる。ラツチ
8−1の出力はビツト処理回路8−10を介して
ラツチ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 3波形がPCMを有する場合と有しない場合。
(PCM=1/O) 2 ピアノ型エンベロープの場合とオルガン型エ
ンベロープの場合。(P/O=1/O) 3 ダンパフラグをオンした場合とオフした場
合。(DMP=1/O) の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ビツトを一致検出の対象から
除外したことにより、マスタクロツクの周波数を
上げることなく、またシステムの動作速度を上げ
ることなくより分解能の高いノートクロツクを得
ることができるものである。
発生に関するものである。 (従来の技術) 近年、電子楽器はデイジタル信号処理技術の導
入により高度な音づくりが行われている。従来の
電子楽器におけるノートクロツクの発生方法を第
3図により説明する。 第3図において、3−1は分周器であり端子
CKに入力されているマスタクロツクを分周し、
8ビツトの分周出力を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をくり返す8ビツトの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となる(例えば特願昭57−83450号)。 (発明が解決しようとする問題点) しかしながら上記のような構成ではノートクロ
ツクのピツチ分解能を上げるには、システム全体
のビツト数を増し、マスタクロツクの周波数を高
くしなければならなず、システム全体に高速動作
が要求される。 本発明は、上記問題点に鑑み、マスタクロツク
の周波数を上げることなく、従つてシステムの動
作速度を上げることなく、より分解能の高いノー
トクロツクを発生しようとするものである。 (問題点を解決するための手段) 上記問題点を解決するために本発明の電子楽器
は、クロツク信号を発生する手段と、前記クロツ
ク信号を分周し、分周出力を発生する手段と、レ
ジスタと、前記分周出力と前記レジスタの内容の
一致を検出し、一致信号を発生する手段と、前記
一致信号が発生される度に前記レジスタの内容に
一定数を加算する手段を備え、前記一致信号を用
いてノートクロツク信号を得るようにした電子楽
器において、前記一致信号を発生する手段が前記
レジスタの少なくとも下位1ビツトを一致検出の
対象から除外するようにしたものである。 (作用) 本発明は上記した構成により、例えばレジスタ
が10ビツトで、上位8ビツトと分周出力との一致
を検出しており、一致検出ごとにレジスタに加算
される一定数が10116であるとすれば、レジスタ
が00016,10116,20216,30316,00416,10516,…
…となるので、分周出力が0016,4016,8016,
C016,0116,4116,……となり、微視的に見れば
マスタクロツクのカウント数が64回,64回,64
回,65回,64回,64回……ごとに一致信号が出力
されるが、巨視的に見れば64.25回に1回の割合
で一致信号が出力されることになり、ピツチ分解
能が0.25きざみになる。また分周比が64から65へ
かわる周期が一定であるのでジツタは発生しな
い。 (実施例) 以下図面に基づき本発明の一実施例を説明す
る。 第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より成つている。その具体
的な内容は第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通り
である。VLDはリリースデータで、キーオフ後
の減衰特性を制御する4bitのデータである。LOL
はボリユームフラグであり、このビツトを“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の2つの状態がある
ため、776×2の1552タイムスロツトを周期とし
てシステムが動作しているものである。 次に、第5表及び第6表に基づいて個々の演算
シーケンスについて説明する。前述のように、楽
音発生部1−5は新たな押鍵によりイニシヤルモ
ードロングシーケンスより開始するようになつて
いるのでイニシヤルモードロングシーケンスより
タイムスロツト別に説明を行う。 加算部 (13) PDD+PED→PDR (15) 0→TR1 (16) 0→TR2 (17) 0→ZR1 (18) 0→ZR2 タイムスロツト(13)の意味するところは、
PDDというレジスタの内容とPEDというレジス
タの内容を加算してPDRというレジスタに格納
するということである。タイムスロツト(15)〜
(18)は、TR1,TR2,ZR1,ZR2というレジス
タに0を書き込むということである。 データバンク読み出し部 (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・;0→ER2/1 (3) ORG+OCT+1→WE2→ΔWAR (4) D.B.+EAR1→EAR2 (6) 0→WR1 (8) 0→ER1 (9) 0→WE2 (10) 0→WE1,WR2 タイムスロツト(1)における0→ER2/1はシヨ
ートシーケンス1回目即ちODD時にはER2,2
回目即ちEVEN時にはER1というレジスタに0を
書き込むことを意味する。また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図ハにおけるタイムス
ロツトを表す信号であり、CECはチヤンネルコ
ードであり、第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−1
2により順次選択されラツチ6−13にラツチさ
れる。ラツチ6−13の出力はANDゲート6−
14に与えられているので、現在セレクタ6−1
2が選択している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は信号処理器であり、
RAM7−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に入力された制御信号に従つ
てシフトし0より出力する。シフトの内容は第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に入力された
制御信号に従つてシフトし0より出力する。シフ
トの内容は第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”にする回路である。10−11はデコーダ
であり、入力Iと出力Dの関係は第13表に示すと
おりである。デコーダ10−11のA入力にはラ
ツチ10−7の出力のビツト12〜ビツト15が与え
られている。10−12はセレクタであり、C入
力に応じてA又はBに与えられている信号のいず
れかを選択してYより出力する。10−13はシ
フタであり、制御端子Cの入力に応じてIからの
入力をシフトして0より出力する。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〜c7を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−1
1に用途に応じて配して選択的に開閉することに
より、任意のバスから他の任意のバスへのデータ
転送が必要なビツト処理を含めて可能となる。例
えば、HAバスからAバスへ、HBバスからBバ
スヘ、CバスからHCバスへ同時にデータを転送
したい時にはSW1,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) ヘツダデータ ヘツダデータは第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とS17がオンして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において
SW33及びSW13がオンする。ST33は第11図ト
のような構成になつており、Cバスに“0”が与
えられる。同時にSW13がオンしているので、C
バスのデータがHCバスに与えられ、第7図に示
すRAM7−3におけるレジスタTR1に“0”が
書き込まれる。 一方データバンク読み出し部においては、次の
ような動作をする。以下第10図を中心に説明す
る。TAB,ND,OCTで構成されたWRDによつ
てヘツダアドレスデータHADが読み出される。
なお、このイニシヤル処理を行うイニシヤルモー
ドにおいては、ラツチ10−3はSQ信号により
111にセツトされている。このデータはI/O
2−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−15を介
してラツチ9−8へ送出されラツチされる。なお
これらの一連の動作において、シフタ9−11、
ビツト処理回路9−12、シフタ9−15はデー
タをスルーさせるように動作する。即ちエンコー
ダ9−10のC入力には“1”が与えられてい
る。ラツチ9−8の値がLバスよりMSW2−1
1の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 ということであり、これは、現在発生しようとし
といる楽音信号の音域と実際に使用しようとして
いる波形データの本来の音域との差、即ちオクタ
ーブシフトの量を示す値である。つまり、原波形
を何オクターブ高い音域の音として読み出すかを
示す。この値は一旦RAM7−4のレジスタWE
2に格納され、次いで、信号処理器7−6でデコ
ードされてRAM7−2のレジスタΔWARに格納
される。ORG+OCT+1の値に対するΔWARの
値は第20表に示すとおりである。 以下、タイムスロツト(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(エンベロープデータH1′のスタートア
ドレス)が読み出され、Dバス→ラツチ10−1
→シフタセレクタ10−9を介してラツチ10−
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の値が入つている。故にデコーダ10
−11はΔTを第13表に従つてデコードし、セレ
クタ10−12へ出力する。セレクタ10−12
においては、この時C=1となつてB入力を選択
しシフタ10−13へ出力する。このセレクタ1
0−12出力はシフタ10−13、ノイズ回路1
0−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図と対比させながら、第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は第6図に示すとおり13ビツトのデー
タであるが、その下位3ビツトを一致検出の対象
から除外し、上位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図RSラツチ3−6の出力がCLRQ
に相当する。 このように、10ビツトの比較器、8MHzのマス
タクロツクを用いていながら、13ビツト相当の分
解能を有することができる。 (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を加え
たもの即ちSTW+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(FF0016)が与
えられる。オクターブシフトが無い場合は
ΔWAR=1であるの、レジスタWARの値は512
を周知としてくり返すことになる。 以上により同じノートを発生する複数チヤンネ
ルの各々のレジスタWARは常に同一となるの
で、異なる複数のチヤンネルの発生する同じノー
トの波形の位相が完全に一致することとなり、位
相合わせが実現される。 次にタイムスロツト(2)における演算STW+
WARを更に新しく説明する。 RAM7−3のレジスタSTWよりデータが読
み出され、MSW2−11に示すところのHCバ
ス、SW11、Aバスを介しクロツクψ3によりFA
2−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バスを介してFA
2−6のラツチ8−2にラツチされる。ここで、
ラツチ8−1の出力はビツト処理回路8−10、
ラツチ8−2の出力はビツト処理回路8−11に
入力されるが双方の出力ともビツト処理を行われ
ることなくラツチ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−1
1によるビツト処理が行われる。 なお、楽音発生部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にラツチされる。まず、ラツチ10−1
の出力がシフタセレクタ10−9、ラツチ10−
4、ビツト処理回路10−10を介してラツチ1
0−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−1
2がラツチされる。次いでRAM7−3のレジス
タWR1のデータがMSW2−11を介して
MPLY2−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−11の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バス、
SW29、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小さくなり、これを音楽用語の強弱名の
各々に割当ててある。またffの強さには華やかな
音色が必要なので高調波の豊富な波形データをタ
ブレツト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の値を示す
フラグT0によつて制御している。今仮にΔT1≠
000816とすると、SW31によりAバスに000016が、
RAM7−1のレジスタEAR1よりHAバス、
MSW2−11のSW2を介してBバスにEAR1の
値が与えられる。これらの値がFA2−6のラツ
チ8−1,ラツチ8−2にラツチされる。ラツチ
8−1の出力はビツト処理回路8−10を介して
ラツチ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 3波形がPCMを有する場合と有しない場合。
(PCM=1/O) 2 ピアノ型エンベロープの場合とオルガン型エ
ンベロープの場合。(P/O=1/O) 3 ダンパフラグをオンした場合とオフした場
合。(DMP=1/O) の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ビツトを一致検出の対象から
除外したことにより、マスタクロツクの周波数を
上げることなく、またシステムの動作速度を上げ
ることなくより分解能の高いノートクロツクを得
ることができるものである。
【表】
【表】
【表】
【表】
Claims (1)
- 1 クロツク信号を発生する手段と、前記クロツ
ク信号を分周し、分周出力を発生する手段と、レ
ジスタと、前記分周出力と前記レジスタの内容の
一致を検出し、一致信号を発生する一致検出手段
と、前記一致信号が発生される度に前記レジスタ
の内容に一定数を加算する手段を備え、前記一致
信号を用いたノートクロツク信号を得るようにし
た電子楽器において、前記一致検出手段が前記レ
ジスタの少なくとも下位1ビツトを一致検出の対
象から除外していることを特徴とする電子楽器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60081452A JPS61240293A (ja) | 1985-04-18 | 1985-04-18 | 電子楽器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60081452A JPS61240293A (ja) | 1985-04-18 | 1985-04-18 | 電子楽器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS61240293A JPS61240293A (ja) | 1986-10-25 |
| JPH0230036B2 true JPH0230036B2 (ja) | 1990-07-04 |
Family
ID=13746794
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP60081452A Granted JPS61240293A (ja) | 1985-04-18 | 1985-04-18 | 電子楽器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS61240293A (ja) |
-
1985
- 1985-04-18 JP JP60081452A patent/JPS61240293A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS61240293A (ja) | 1986-10-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5340938A (en) | Tone generation apparatus with selective assignment of one of tone generation processing modes to tone generation channels | |
| US5038661A (en) | Waveform generator for electronic musical instrument | |
| JPH0230036B2 (ja) | ||
| EP0201998B1 (en) | Electronic musical instrument | |
| JP2950461B2 (ja) | 楽音発生装置 | |
| JPH0230035B2 (ja) | ||
| JPH0230030B2 (ja) | ||
| JPH0230038B2 (ja) | ||
| JPH0584534B2 (ja) | ||
| JPH028318B2 (ja) | ||
| JPH0230034B2 (ja) | ||
| JPH023199B2 (ja) | ||
| JPH023198B2 (ja) | ||
| JPH079582B2 (ja) | 電子楽器 | |
| JPH0583917B2 (ja) | ||
| JPH0419587B2 (ja) | ||
| JPH0656554B2 (ja) | 電子楽器 | |
| JP2798913B2 (ja) | 楽音波形生成装置及び楽音波形生成方法 | |
| JPH0418343B2 (ja) | ||
| JP3176901B2 (ja) | 楽音情報処理装置及び楽音情報処理方法 | |
| JPS6118559Y2 (ja) | ||
| JPS61255397A (ja) | 電子楽器 | |
| JPS61248095A (ja) | 電子楽器 | |
| JPS6224797B2 (ja) | ||
| JPS61252591A (ja) | 電子楽器 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |