JPH028318B2 - - Google Patents

Info

Publication number
JPH028318B2
JPH028318B2 JP60074183A JP7418385A JPH028318B2 JP H028318 B2 JPH028318 B2 JP H028318B2 JP 60074183 A JP60074183 A JP 60074183A JP 7418385 A JP7418385 A JP 7418385A JP H028318 B2 JPH028318 B2 JP H028318B2
Authority
JP
Japan
Prior art keywords
data
latch
envelope
output
bits
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
JP60074183A
Other languages
English (en)
Other versions
JPS61233787A (ja
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 JP60074183A priority Critical patent/JPS61233787A/ja
Publication of JPS61233787A publication Critical patent/JPS61233787A/ja
Publication of JPH028318B2 publication Critical patent/JPH028318B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
(産業上の利用分野) 本発明は電子楽器に関し、特にメモリを読み出
しながら楽音を発生するものに関する。 (従来の技術) 近年、電子楽器はデジタル信号処理技術の導入
により、より高度な音づくりが行われるようにな
つた。従来例を第14図および第15図により説
明する。 周波数制御装置1が押鍵等により所定の周波数
のタイミング信号を発生し、正弦波発生器2へ入
力する。正弦波発生器2はタイミング信号に基づ
き正弦波を発生する。一方、エンベロープ発生器
3はパラメータROM4よりエンベロープデータ
を読み出し、エンベロープを発生する。乗算器5
が正弦波とエンベロープの乗算を行い、タイムス
ロツト制御装置6が時分割多重化されている乗算
結果より所定のものを加え合わせたり、時分割多
重の順序を入れかえる等の処理を施こし、DAC
7より出力する。第15図はエンベロープ発生器
3を詳細に示すものである。TABIF8および鍵
IF9によつて音色、鍵に応じてサンプル演算器
10の制御を行う。サンプル演算器10はパラメ
ータROM4よりエンベロープデータを読み出
し、時系列のエンベロープを出力する。補間計算
器11がサンプル演算器10より出力されるエン
ベロープを更にきめ細かくなめらかなエンベロー
プとなるように補間計算を行い、エンベロープと
して出力する(例えば特願昭57−84234号参照)。 (発明が解決しようとする問題点) しかしながら、上記のような構成では、なめら
かなエンベロープを得るために補間計算器を用い
ているが、通常、補間計算器には乗算器が必要で
あり、回路規模が著しく増大することとなる。ま
た、補間計算を行うかわりに、エンベロープの増
減分δを毎回累算するという方法もあるが、この
場合は増減分δの値を小さくするのに限界があ
り、徐々に変化するエンベロープを作る場合には
適さないという問題点があつた。 本発明は、上記問題点に鑑み、補間計算器を用
いることなく、ゆるやかな傾きのエンベロープを
得られる電子楽器を提供するものである。 (問題点を解決するための手段) 上記問題点を解決するために本発明は、演奏操
作部の送出する演奏情報に基づいて、データバン
クより所定の波形データと所定のエンベロープデ
ータを読み出す手段と、該エンベロープデータに
基づいてエンベロープを作成するエンベロープ発
生器と、前記エンベロープと前記波形データを乗
算して楽音信号を作成する楽音発生部を有し、且
つ、前記エンベロープ発生器が、第1データと第
2のデータを有し、前記エンベロープデータに基
づいて発生される値との加減算を上記第1データ
と上記第2のデータの少なくとも一方に対して行
い、上記第1のデータがオーバーフローした際に
上記第2のデータに対して所定の値を加算するよ
うにし、上記第2のデータをエンベロープとして
用いるものである。 (作用) 本発明は、上記した構成よつて、ゆるやかな傾
きエンベロープが必要な場合においては、上記第
1のデータにエンベロープデータにより示される
値を累算し、急な傾のエンベロープが必要な場合
には上記第2のデータにエンベロープデータに示
される値を累算するようにして補間計算器を使わ
ずして種々の傾きのなめらかなエンベロープを得
るものである。 (実施例) 以下図面に基づき本発明の一実施例を説明す
る。 第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通り
である。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の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→EF2/1 (3) ORG+OCT+1→WE2→ΔWAR (4) D.B.+EAR1→EAR2 (6) 0→WR1 (8) 0→ER1 (9) 0→WE2 (10) O→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、ΔZ
1/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、ΔE
2/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は
EVEN、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は信号処理器であり、
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に入力された制御信号に従つ
てシフトし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”にする回路である。10−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〜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) ヘツダデータ(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が与えられ、第11図イにおいて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においてSW33及びSW13が
オンする。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−1
3によつて第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−1
1に接続されているので第14表に示す真理値表
に従つて16ビツトのデータが得られる。但し、
この時にデコーダ10−11のC入力は“1”
となつている。セレクタ10−12がこのデコ
ーダ出力をセレクトし、シフタ10−13が6
ビツト右シフトして出力する。ここで、このシ
フタ10−13の出力について考えると、ラツ
チ10−7よりデコーダ10−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−1
3、ノイズ回路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バスに与えられる。この値がMSW
2−11におけるSW19を介してLバスに与
えられ、MPLY2−7のラツチ9−3にラツ
チされる。ラツチ9−1の出力はシフタ9−1
1を介してラツチ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−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 ということであり、これは現在発生しようとし
ている楽音信号の音域と実際に使用しようとし
ている波形データの本来の音域との差、即ちオ
クターブシフトの量を示す値である。つまり、
原波形を何オクターブ高い音域の音として読み
出すかを示す。この値は一旦RAM7−4のレ
ジスタWE2に格納され、次いで、信号処理器
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にラツチし、ビツト
処理回路10−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を介してラツチ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−1
3へ出力する。このセレクタ10−12出力は
シフタ10−13、ノイズ回路10−14にお
いては何らビツト操作が行われることなくラツ
チ10−2を介してDバスに与えられ、MSW
2−11においてSW10、HBバスを介して
RAM7−2のレジスタΔT1に格納される。 ΔE1、ΔZ1、ΔE2、ΔZ2は、第19表に示され
るところのZ、S、DATAに応じてシフタ1
0−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に相当し、NR/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を加えたもの即ち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)に演算結果としてRAM8−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により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バス、SW
2、Bバスを介してFA2−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−11によるビツト処理が行
われる。 なお、楽音発生部1−5におけるアドレス
演算は16ビツトであるが、16ビツトのアドレ
ス信号では充分でない場合が当然考えられ
る。そこで、本楽音発生部1−5において
は、タブレツトデータTABの上位3ビツト
を用いてアドレス空間が拡張できるようにな
つている。I/O2−10におけるラツチ1
0−3がアドレス空間拡張用のラツチであ
り、ラツチ10−3にタブレツトデータ
TABの上位3ビツトがラツチされる。即
ち: 押鍵によりイニシヤルモードになると、
RAM5−4に格納されたタブレツトデータ
がMSW2−11を介してRAM7−3のレ
ジスタTAB′に格納される。次いでノーマル
モードに入ると、RAM7−3のレジスタ
TAB′の値が読み出され、MSW2−11を
介してI/O2−10におけるラツチ10−
3にラツチされる。このようにして内部演算
は16ビツトでありながら19ビツトのアドレス
空間をアクセスすることができる。 波形読み出し 波形読み出しはタイムスロツト(2)、(4)にて
行われたアドレスに基づいて行われる。タイ
ムスロツト(2)による演算結果はCバス、SW
28、HLバス、SW30、Dバスを介して
I/O2−10のラツチ10−1にラツチさ
れる。まず、ラツチ10−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−1
3に与えられ、上位8ビツトは4ビツト右に
シフトされ、ラツチ10−1の出力のLSB
=0ならば下位8ビツトも4ビツト右シフト
され、LSB=1ならば下位4ビツトがシフ
トされずにシフタ10−13より出力され
る。ここで、コントロールデータCONTに
おいてW8=1即ち8ビツト波形の指定があ
る場合には、シフタ10−13は下位ビツト
を“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のデータが
MSW2−11を介してMPLY2−7のラツ
チ9−3及びラツチ9−5にラツチされる。
ここで、ラツチ9−3にはレジスタER1の下
位10ビツトが、ラツチ9−5にはレジスタ
ER1のビツト9−12がラツチされる。次い
で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−1
0の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−14を介してシフタ9−15に制
御信号として与えられる。故に、ラツチ9−
7の出力はエンベロープの指数部によつてシ
フトされ、ラツチ9−8にてラツチされる。
このようにして、固定小数点の波形データと
浮動小数点のエンベロープの乗算が行われ
る。ラツチ9−8の出力はLバスよりMSW
2−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の値にROM
7−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−10によつてビツト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バスに与え、MSW
2−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−1
0ではデータの変換は行われないようになつ
ている。同時に、ラツチ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、Δ2、ΔE1、
ΔE2に格納していく。 エンベロープ計算 エンベロープデータの読み出しにより、
ΔZ1、ΔZ2、ΔE1、Δ2にデータが格納されて
おり、またイニシヤル処理により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、第2の2
個のデータを持つようにし、第2のデータのみ用
いて波形データに対して乗算を行なうようにした
ので、これにより、非常に緩やかに変化するエン
ベロープ信号が得られ、しかも乗算器も小型のも
ので済むという格別の効果を発揮したものであ
る。
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】 〓

Claims (1)

  1. 【特許請求の範囲】 1 演奏操作部の送出する演奏情報に基づいて、
    データバンクより所定の波形データと所定のエン
    ベロープデータを読み出す手段と、 該エンベロープデータに基づいてエンベロープ
    を作成するエンベロープ発生器と、 前記エンベロープと前記波形データを乗算して
    楽音信号を作成する楽音発生部を有し、且つ、 前記エンベロープ発生器が、第1のデータと第
    2のデータを有し、前記エンベロープデータに基
    づいて発生される値との加減算を上記第1のデー
    タと上記第2のデータの少なくとも一方に対して
    行い、上記第1のデータがオーバーフローした際
    に上記第2のデータに対して所定の値を加算する
    ようにし、上記第2のデータをエンベロープとし
    て用いることを特徴とする電子楽器。
JP60074183A 1985-04-10 1985-04-10 電子楽器 Granted JPS61233787A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60074183A JPS61233787A (ja) 1985-04-10 1985-04-10 電子楽器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60074183A JPS61233787A (ja) 1985-04-10 1985-04-10 電子楽器

Publications (2)

Publication Number Publication Date
JPS61233787A JPS61233787A (ja) 1986-10-18
JPH028318B2 true JPH028318B2 (ja) 1990-02-23

Family

ID=13539798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60074183A Granted JPS61233787A (ja) 1985-04-10 1985-04-10 電子楽器

Country Status (1)

Country Link
JP (1) JPS61233787A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025032644A1 (ja) * 2023-08-04 2025-02-13 Vie株式会社 情報処理方法、記録媒体及び情報処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55105295A (en) * 1979-02-05 1980-08-12 Kawai Musical Instr Mfg Co Envelope waveform formation circuit
JPS5732495A (en) * 1980-08-06 1982-02-22 Casio Computer Co Ltd Envelope control system for electronic musical instrument
JPS58200296A (ja) * 1982-05-18 1983-11-21 松下電器産業株式会社 包絡線信号発生方法

Also Published As

Publication number Publication date
JPS61233787A (ja) 1986-10-18

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
EP0235538A2 (en) Waveform generator for electronic musical instrument
EP0154888B1 (en) Tone signal generation device for an electronic musical instrument
EP0201998B1 (en) Electronic musical instrument
JPH028318B2 (ja)
JPH0584534B2 (ja)
JPH0230035B2 (ja)
JPH0230036B2 (ja)
JPH0230038B2 (ja)
JPH023198B2 (ja)
JPH023199B2 (ja)
JPH0230030B2 (ja)
JPH0230034B2 (ja)
JPH079582B2 (ja) 電子楽器
JPH0419587B2 (ja)
JPH0656554B2 (ja) 電子楽器
JP2728243B2 (ja) 電子楽器
JPS61255397A (ja) 電子楽器
JPS61252591A (ja) 電子楽器
JPS6224797B2 (ja)
JPH0418343B2 (ja)
JPS61248095A (ja) 電子楽器
JPS61233789A (ja) 電子楽器
JPS61233788A (ja) 電子楽器
JPH0122632B2 (ja)