JPS6143720B2 - - Google Patents

Info

Publication number
JPS6143720B2
JPS6143720B2 JP54072195A JP7219579A JPS6143720B2 JP S6143720 B2 JPS6143720 B2 JP S6143720B2 JP 54072195 A JP54072195 A JP 54072195A JP 7219579 A JP7219579 A JP 7219579A JP S6143720 B2 JPS6143720 B2 JP S6143720B2
Authority
JP
Japan
Prior art keywords
key
parameter
calculation
channel
musical tone
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
Application number
JP54072195A
Other languages
Japanese (ja)
Other versions
JPS55164898A (en
Inventor
Shuhei Kono
Atsumi Kato
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.)
Nippon Gakki Co Ltd
Original Assignee
Nippon Gakki 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 Nippon Gakki Co Ltd filed Critical Nippon Gakki Co Ltd
Priority to JP7219579A priority Critical patent/JPS55164898A/en
Publication of JPS55164898A publication Critical patent/JPS55164898A/en
Publication of JPS6143720B2 publication Critical patent/JPS6143720B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

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

この発明は、楽音信号発生のために用いられる
楽音パラメータを形成する電子楽器の楽音パラメ
ータ形成装置に関し、特に時間経過に従つて変化
する楽音パラメータを演算により形成するように
した楽音パラメータ形成装置に関する。 A 従来技術の説明 時間経過に従つて変化する楽音パラメータを演
算により形成する楽音パラメータ形成装置として
は、例えば特開昭51−78219号公報に示されたも
のがある。この従来の装置は、楽音パラメータ
(上記公報に示されたものでは楽音波形データか
らなる)のパラメータ値を演算により形成する演
算回路(CPU)と、楽音パラメータの切替えを
指示する切換クロツク発振器(クロツク発生器
AC,DC)とを具え、演算回路ではクロツク発振
器から出力されるクロツクの周期で楽音パラメー
タの新たなパラメータ値を形成する演算を繰返し
行うようになつている。したがつて、楽音パラメ
ータの時間変化はクロツク発振器からのクロツク
の周期によつて決まつてしまうものであり、楽音
パラメータの時間変化における時間条件(楽音パ
ラメータを変更する速度)を変えるためにはクロ
ツク発振器の発振周波数を変える必要がある。 しかしながら、発振周波数可変型のクロツク発
振器は構成が複雑になるとともに、発振周波数の
安定度の点で問題になり、楽音パラメータの時間
変化(パラメータを変更する速度)を精度よく任
意に制御することが困難になる。 B 発明の目的と概要説明 この発明は、上述の点に鑑みてなされたもの
で、簡単な構成により、形成される楽音パラメー
タの時間変化を時間軸上において精度よく任意に
かつ容易に制御できるようにした楽音パラメータ
形成装置を提供することを目的とする。 この目的を達成するために、この発明による楽
音パラメータ形成装置は、楽音パラメータの新た
なパラメータ値を形成するためのパラメータ形成
演算を、当該楽音パラメータに対応した所定値を
用いて実行するパラメータ形成演算手段と、この
演算手段に対して予め設定された所定の時間間隔
で上記パラメータ形成演算のタイミングを指示す
るタイマ手段と、上記演算手段における上記パラ
メータ形成演算の実行の頻度Nを設定する手段と
を備え、上記演算手段は、上記タイマ手段による
所定時間間隔毎の演算タイミングの指示に対して
上記頻度Nに従つてN回に1回の割合で上記パラ
メータ形成演算を実行し、上記所定値と上記所定
時間間隔と上記頻度とに応じて順次変化する楽音
パラメータを形成するようになつている。 このように構成することにより、タイマ手段に
より指示される所定時間間隔を単位とし頻度Nに
応じた割合で(N個の所定時間間隔毎に)新たな
楽音パラメータの形成演算が実行される。この結
果、タイマ手段の時間は一定にしても頻度Nを適
宜設定することにより、楽音パラメータの変化速
度を任意に制御できる。 また、この発明では、複数の楽音パラメータに
ついてのパラメータ形成演算を1つの演算手段を
用いて時分割的に行うにつき、上記頻度Nを各楽
音パラメータ毎にそれぞれ独立して指定すること
により、共通の演算手段およびタイマ手段を用い
ながらも各楽音パラメータの変化速度をそれぞれ
独立して任意に制御できる。 C 実施例の説明 以下、図示する実施例に基づきこの発明を詳細
に説明する。 第1図はこの発明による楽音パラメータ形成装
置を用いた電子楽器の一実施例を示す全体構成図
である。この実施例に示す電子楽器は、鍵盤部と
して上鍵盤UK(音高C1〜C6の合計61鍵)、下鍵
盤LK(音高C1〜C6の合計61鍵)、ペダル鍵盤PK
(音高C0〜C2の合計25鍵)を備え、これら上鍵盤
UK、下鍵盤LK、ペダル鍵盤PKに対しては楽音
発生のための発音系列がそれぞれ2系列設けられ
ている。この場合、上鍵盤UK、下鍵盤LKについ
ては音色設定操作子によつて発音系列数を「1」
または「2」のいずれかに切換選択できるように
構成されている。また、ペダル鍵盤PKについて
は、発音系列数を切換選択することができず、常
時2系列となつている。そして、発音チヤンネル
は全体として「16」用意されており、この16の発
音チヤンネルのうち14についてはマニユアル鍵盤
(UK,LK)の楽音発生用に使用され、残りの2
つのチヤンネルについてはペダル鍵盤PKの楽音
発生用に使用され、ペダル鍵盤PKについては、
複数の押下鍵のうち最も新しく押鍵された最後着
鍵のみに基づく楽音が優先的に発音され、もしこ
の最後着鍵が解放された場合には次位後着鍵に基
づく楽音が優先的に発音されるようになつてい
る。従つて、上鍵盤UKおよび下鍵盤LKについて
は、これら両鍵盤で最大14個の押下鍵に関する楽
音を同時に発音できる。ただし、上鍵盤UKおよ
び下鍵盤LKの発音系列数を「2」に設定した場
合には両鍵盤で最大で7個の押下鍵に関する発音
しか発音できなくなる。また、ペダル鍵盤PKに
ついては、常時2つの発音チヤンネルが使用され
るが、この2つの発音チヤンネルで発音される楽
音は前記優先制御によつて選択された単一の押下
鍵に関するものである。 次に、この実施例に示す電子楽器の楽音信号の
形成原理について簡単に説明する。(楽音信号の
形成原理) この実施例に示す電子楽器における楽音信号は
基本的には波形メモリ読み出し方式の電子楽器と
同様な原理で形成される。すなわち、波形メモリ
読み出し方式の電子楽器とは、鍵盤部の各鍵に対
応した周波数情報Fを記憶した周波数情報メモリ
を設け、この周波数情報メモリを押下鍵を表わす
鍵情報によつてアドレスして対応する周波数情報
Fを読み出し、この読み出された周波数情報Fを
一定速度で累算して累算値qF(q=1,2,3
……)を形成し、この累算値qFで所望の楽音波
形1周期の各サンプル点振幅値を記憶している波
形メモリをアドレスすることにより各サンプル点
振幅値を読み出して楽音信号を得るものである。 ところが、この方式では波形メモリの記憶波形
を一旦固定してしまうと、読み出される楽音波形
の形状は常に同じとなり音色の変更が行なえなく
なるという不具合がある。そこで、このような問
題点を解決するための手段として、○イ波形メモリ
をアドレスするための累算値qFを形成する基と
なる周波数情報Fを累算途中から別の周波数情報
F′に切換え、これによつて1つの波形メモリか
ら種々の楽音波形を得るようにしたもの(特願昭
52−127633、名称:電子楽器)と、○ロ波形メモリ
を、累算値qFとこの累算値qFに設定音色に対応
した補正値ΔLを加算した加算値〔qF+ΔL〕
とで交互に時分割的にアドレスし、これによつて
波形メモリから得られる2つの位相の異なる波形
振幅値P(qF)とP(qF+ΔL)を合成し、こ
の合成値を1サンプル点における波形振幅値とし
て複雑な楽音波形を形成するようにしたもの(特
開昭54−28118、名称:電子楽器の楽音信号発生
回路)とがこの発明と同一出願人によつて提案さ
れている。 今仮りに、前者の○イによるものを読み出し速度
切換え方式、後者の○ロによるものを読み出し位相
切換え方式と呼ぶことにする。この実施例では、
これら両方式を結合することにより、種々の複雑
な楽音波形を得るようにしている。つまり、この
実施例では次に述べるような段階で波形メモリを
アドレスするアドレス情報A1,A2が作られる。 (a) まず、楽音パラメータG〔CA〕,G〔CT〕,
G〔LA〕,G〔Pi〕,G〔M1〕,G〔M2〕が算出
される。 楽音パラメータG〔CA〕は、波形メモリに
対するアドレス情報A1の切換えアドレスを定
めるパラメータであり、G〔CT〕はアドレス
情報A1の切換え時刻を定めるパラメータであ
る。また、G〔LA〕は波形メモリに対する正
規のアドレス情報A1とこれと若干位相のずれ
た第2アドレス情報A2とのアドレス差(前記
ΔLに相当する)を定めるパラメータであり、
G〔P1〕は発生楽音の基準ピツチを定めるパラ
メータである。また、G〔M1〕,G〔M2〕は、
前記2つのアドレス情報A1,A2により波形メ
モリから読み出した2つの波形振幅値の重み付
けを行うパラメータであり、デジタル値で表わ
されている。 これら各種の楽音パラメータG〔CA〕〜G
〔M2〕は、音色設定情報に対応し、かつ前記楽
音パラメータの種類に対応してメモリに記憶さ
れている演算パラメータIZm,BLm,Δm,
Tmと、押鍵時におけるイニシヤルタツチ信号
を前記楽音パラメータの種類に対応して分解す
ることによつて得た演算パラメータIZs
〔CA〕,IZs〔LA〕,IZs〔CT〕,IZs〔Pi〕,IZs
〔M1〕,IZs〔M2〕(これらを総称してイニシヤ
ルタツチデータという)と、押鍵圧力に対応し
たアフタタツチ信号に効果変調用信号等によつ
て変調を加えた変調アフタタツチ信号を前記楽
音パラメータの種類に対応して分解することに
よつて得た演算パラメータMDs〔CA〕,MDs
〔LA〕,MDs〔CT〕,MDs〔PI〕,MDs〔M1〕,
MDs〔M2〕(これらを総称してモジユレーシヨ
ンデータという)とによつて楽音パラメータの
種類毎に時分割的に算出される。なお、これに
ついては後で詳細に説明する。 (b) 次に、このようのにして得られた楽音パラメ
ータG〔CA〕〜G〔M2〕に基づき、第2図の
R1およびR2で示すように変化する周波数パラ
メータR1,R2が算出される。つまり、楽音パ
ラメータG〔CA〕および〔CT〕の可変範囲を
「0〜1023」とした場合、周波数パラメータR1
およびR2は次の第1式および第2式によつて
求められる。 R1=CA/CT …(1) R2=1023−CA/1023−CT …(2) (c) 次に、このようにして得られた周波数パラメ
ータR1,R2に対し、楽音パラメータG〔Pi〕、
音色設定操作子によつて設定された各鍵盤毎の
レジストレーシヨンピツチデータR〔Pi〕およ
びレジストレーシヨンフイートデータR
〔Fe〕、押下鍵音高に比例したデータKDが加味
され、音色設定情報に対応し、かつ押下鍵音高
に対応した周波数パラメータR1′およびR2′が次
の第3式〜第4式に基づいて算出される。 R1′=R1×2{A(KD+GPi+RPi)+RFe〕} …(3) R2′=R2×2{A(KD+GPi+RPi)+RFe〕} …(4) 但し、Aは定数である。 (d) 次に、このようにして得られた周波数パラメ
ータR1′,R2′を累算し、その累算値qR1′,
qR2′(q=1,2,3……)と楽音パラメー
タG〔CA〕とが比較され、その比較結果によ
つていずれか一方の累算値(qR1′または
qR2′)が選択され、この選択された累算値に
対し、楽音パラメータG〔LA〕が加味され、
これらが波形メモリに対する2つのアドレス情
報A1,A2として出力される。つまり、qR1′<
CAの条件のもとでは、 A1=qR1′ …(5) A2=qR1′+G〔LA〕 …(6) また、qR1′<CA≦qR2′の条件のもとでは、 A1=qR2′ …(7) A2=qR2′+G〔LA〕 …(8) によつて示されるアドレス情報A1,A2が出力
される。 (e) 次に、このようにして得られたアドレス情報
A1とA2とによつて変形メモリをアドレスし、
2つの異つた位相のサンプル点振幅値Pv1
Pv2が読み出される。そして、この読み出され
た2つのサンプル点振幅値Pv1,Pv2に対し重
み付けに関する楽音パラメータG〔M1〕,G
〔M2〕を乗算した後これら各乗算値を合成しそ
の合成値を楽音波形の1サンプル点振幅値とす
る。従つて、波形メモリの記憶内容が、例えば
純粋な正弦波形に関する波形振幅値である場
合、最終的に得られる楽音波形の瞬時値(サン
プル点振幅値)Gvi(t)次の第9式〜10式に
よつて表わされる。 qR1′<CAのとき Gvi(t)=M1・SinA1+M2・SinA2 =M1・SinqR1′+M2・Sin(qR1′+LA) …(9) qR1′≦qR2′のとき =M1・SinA1+M2・SinA2 =M1・SinqR2′+M2・Sin(qR2′+LA) …(10) この場合、楽音波形の振幅エンベロープは、
前記各種の楽音パラメータのうち振幅値に関す
る楽音パラメータG〔M1〕,G〔M2〕が音色設
定情報に対応したものとなる。 次に、第1図に示す電子楽器の全体構成および
動作の概略を説明する。 (全体構成とその動作) 第1図の実施例に示す電子楽器は、大別する
と、第1プロセツサ部100と、第2プロセツサ
部200および第3プロセツサ部300と、サウ
ンドシステム400とから構成されている。 第1プロセツサ部100は、鍵盤部における各
鍵の押鍵状態および音色設定操作子による音色設
定状態を検出すると共に、この押下鍵状態に対応
した鍵情報や鍵タツチ情報(イニシヤルタツチデ
ータ、アフタタツチデータ)および音色設定状態
に対応した音色設定情報を第2プロセツサ部20
0に対しFIFO1を介して出力する部分であり、
所定のプログラムに従つて各種の演算処理あるい
は検出処理を実行する第1演算装置(マイクロプ
ロセツサ)101と、第1演算装置101が実行
すべき所定のプログラムを記憶しているプログラ
ムメモリ102と、鍵盤部(UK,LK,PK)の
各鍵に対応して設けられたキースイツチがマトリ
クス状に接続されているキースイツチ回路110
と、押鍵速度に対応したイニシヤルタツチ信号お
よび押鍵圧力に対応したアフタタツチ信号を得る
ためのタツチセンサ回路120と、上鍵盤UKお
よび下鍵盤LKの楽音に対しビブラート効果を付
与するための効果変調用発振器130と、発生楽
音の総合音量を制御するためのエクスプレツシヨ
ンペダルスイツチ回路(EXPペダルスイツチ回
路)140と、ダツチセンサ回路120から出力
されるイニシヤルタツチ信号を可変抵抗器などに
よつて異重み付けして各種の演算パラメータ
(IZs〔CA〕〜IZs〔M2〕)に分解し、各演算パラ
メータ毎のイニシヤルタツチ信号として出力する
と共に、アフタタツチ信号と効果変調用発振器1
30から出力される効果変調用信号ならびに
EXPペダルスイツチ回路140から出力される
音量制御信号とを可変抵抗器によつて異重み付け
合成して各種の演算パラメータに分解し、これを
変調アフタタツチ信号として出力する変調回路1
50と、変調回路150から出力されるアナログ
のイニシヤルタツチ信号および変調アフタタツチ
信号をデジタルのイニシヤルタツチデータおよび
モジユレーシヨンデータに変換するAD変換器
(AD・C)160と、各鍵盤(UK,LK,PK)
の音色ナンバ(ピアノ、フルートなどの音色を指
定するナンバ)、ピツチ、音量、リリース時間な
ど発生楽音の基本的な音色を設定するためのレジ
ストレーシヨンスイツチ回路(以下、REG′N・
CCTと略記する)170と、発生楽音のリリー
ス時間を制御するためのフツトスイツチ回路18
0と、第1演算装置101と上記各回路間あるい
は第2プロセツサ部200との間で各種データを
送受する場合においてこの各種データを一時記憶
するワーキングメモリ(以下、WRKメモリと略
記する)190とを備え、効果変調用発振器13
0およびEXPペダルスイツチ回路140を除く
他の回路は第1演算装置101のI/Oデバイス
の1つとしてそれぞれフアーストバス(以下、
1stバスという)を構成するアドレスバスADB1
データバスDB1に結合され、これによつて第1演
算装置101との間の情報伝達が行なわれるよう
に構成されている。 但し、第1プロセツサ部100においては、全
ての押下鍵に関する各種情報を第2プロセツサ部
200に対して転送するものではなく、予備登録
された押下鍵に関する情報のみが転送される。 ここで、予備登録の意味について簡単に説明す
る。この実施例では、前述した発音チヤンネルに
対する押下鍵の発音割当てを後述するように第2
プロセツサ部200において実行するようにして
いるが、この場合発音チヤンネル数が所定数(こ
の実施例は16)に限られているため、第2プロ
セツサ部200においては発音チヤンネル数を越
える押下鍵の情報が転送されてきても発音割当て
することができず、無視せざるを得なくなる。す
なわち、第1プロセツサ部100から発音チヤン
ネル数を越える押下鍵の情報を送ることは無意味
であると同時に、さらにはこの情報を作るための
処理時間や転送時間が無駄になつてしまう。そこ
で、第1プロセツサ部100から第2プロセツサ
部200に対し転送する押下鍵の情報の数を制限
する必要が生じる。この制限のために、第1プロ
セツサ部100では押下鍵の予備登録という処理
を実行し、予備登録された押下鍵に関する情報の
み第2プロセツサ部200へ転送するようにして
いる。 予備登録される押下鍵の総数は発音チヤンネル
数に対応するものであり、この実施例ではマニユ
アル鍵盤(UK,LK)については14個まで登録可
能とし、ペダル鍵盤PKについては2個まで登録
可能としている。従つて、第1プロセツサ部10
0から第2プロセツサ部200に転送される押下
鍵情報の数は最大で16個となる。 第2プロセツサ部200は、FIFOを介して第
1プロセツサ部100から供給される予備登録さ
れた押下鍵に対する発音割当てあるいは発音割当
て解除を行うと共に、この発音割当てされた押下
鍵に関する鍵情報、各種演算パラメータ毎のイニ
シヤルタツチデータやモジユレーシヨンレータお
よび音色設定情報に基づき、発音すべき楽音の各
種楽音パラメータG〔CA〕〜G〔M2〕等や周波
数パラメータR(R1,R2)を発音チヤンネル毎
に、かつ各パラメータ毎に時分割演算する部分で
あり、所定のプログラムに従つて各種の演算処理
を実行する第2演算装置201と、第2演算装置
201が実行すべき所定のプログラムを記憶して
いるプログラムメモリ202と、各種の楽音パラ
メータG〔CA〕〜G〔M2〕を算出するための演
算周期に関する演算パラメータTm、各楽音パラ
メータの初期値に関する演算パラメータIZmや、
後述のノートスケーリング用テーブル220、Δ
テーブル230、aテーブル240から各楽音パ
ラメータの初期値に対するノートスケーリング用
の演算パラメータBLm、演算周期毎の増減値に
関する演算パラメータΔmおよび演算回数に関す
る演算パラメータnnを読み出すためのアドレス
情報(インダイレクト演算パラメータ)を記憶し
ている音色制御情報テーブル(以下、TCTとい
う)210と、各楽音パラメータの初期値に対す
るノートスケーリング用の演算パラメータBLm
(係数値)を複数種類記憶しているノートスケー
リング用テーブル(以下、NSTという)220
と、楽音パラメータG〔CA〕〜G〔M2〕の演算
周期毎の増減値に関する演算パラメータΔを各楽
音パラメータの種類毎に記憶しているΔテーブル
230と、前記演算パラメータΔの演算回数に関
する演算パラメータnを各楽音パラメータの種類
毎に記憶しているnテーブル240と、前述の周
波数パラメータR(R1,R2)を対数演算によつて
算出するための対数テーブル250と、対数演算
によつて算出した周波数パラメータlogRを自然
数に変換するためのRテーブル260と、全発音
チヤンネルに関する楽音パラメータG〔GA〕〜
G〔M2〕などの演算処理時間を規制するためのタ
イマ270と、演算処理の過程で必要な各種デー
タを一時記憶するワーキングメモリ(WRKメモ
リ)280とを備え、これらの全回路はセカンド
バス(以下、2ndバスという)を構成するアドレ
スバスADB2、データバスDB2に結合され、これ
によつて情報伝達が行なわれるように構成されて
いる。 第3プロセツサ部300は、FIFO2を介して
第2プロセツサ部200から供給される各発音チ
ヤンネル毎の各種楽音パラメータG〔CA〕,G
〔LA〕,G〔M1〕,G〔M2〕や周波数パラメータR
に基づき対応する楽音信号を形成する部分であ
り、第3演算装置や波形メモリ等を備え、ここに
おいて形成された楽音信号はサウンドシステム4
00から楽音として発音される。なお、この第3
プロセツサ部300については後で詳細構成を説
明する。 次に、このように構成された電子楽器の全体動
作を簡単に説明する。 まず、演奏者によつて所望の音色情報が
REG′Nの・CCT170に設定される。この状態
において第1演算装置101はプログラムメモリ
102に記憶された所定のプログラムをフエツチ
し、このフエツチしたプログラムに従つて
REG′N・CCT170に設定された初期状態にお
ける音色設定情報をWRKメモリ190の予め割
当てられたレジストレーシヨンデータエリアにス
トアし、このストアされたレジストレーシヨンデ
ータのうちいくつかは所定の演算処理を行つて加
工する。そして、この加工したレジストレーシヨ
ンデータと加工しない残りのレジストレーシヨン
データを固有の判別コードJCを付し、第2プロ
セツサ部200に転送する。 初期状態におけるレジストレーシヨンデータの
転送処理が終了すると、第1演算装置101によ
る演算処理はキースイツチ回路110における押
鍵状態の検出処理、すなわちプレイイベントサー
チルーチンに移行し、このプレイイベントサーチ
ルーチンにおいて鍵盤部(UK,LK,PK)の鍵
状態の変化を検出する。つまり、前回のプレイイ
ベントサーチルーチンにおける鍵状態と今回のプ
レイイベントサーチルーチンにおける鍵状態とを
比較し、変化があればその変化の種類および変化
を発生させた鍵の検出を行う。 鍵状態の変化が新たな押鍵操作に起因するもの
である場合、新たな押下鍵に対する予備登録を行
うと共に、鍵盤部において新たな押鍵操作が行な
われたことを示すオンイベントメツセージ、すな
わちオンイベントを示す判別コードJCと新たな
押下鍵に対応する鍵情報および当該押下鍵のイニ
シヤルタツチデータとが1対となつたオンイベン
トメツセージを第2プロセツサ部200に転送す
る。つまり、鍵状態の変化がオンイベントに関す
るものであつた場合、第1演算装置101はまず
第1段階においてこのオンイベントの発生原因と
なつた押下鍵のイニシヤルタツチ信号を取込むた
めのアドレス情報をタツチセンサ回路120に送
る。すると、タツチセンサ回路120からは当該
押下鍵のイニシヤルタツチ信号が出力される。そ
して、このイニシヤルタツチ信号は変調回路15
0において可変抵抗器などによつて異重み付けさ
れて各演算パラメータ(IZs〔CA〕,IZs〔CT〕,
IZs〔LA〕,IZs〔Pi〕,IZs〔M1〕,IZs〔M2〕)に
分解され、この後AD・C160においてデイジ
タル信号に変換されて各演算パラメータ毎のイニ
シヤルタツチデータとしてデータバスDB1に送出
される。そして、第1演算装置101は、このよ
うにして得た当該押下鍵に関するイニシヤルタツ
チデータを当該押下鍵の鍵情報と共に固有の判別
コードJCを付してオンイベントメツセージとし
て第2プロセツサ部200に転送する。そして一
定時間後において、第1演算装置101はオンイ
ベントの発生原因となつた押下鍵のアフタタツチ
信号を取込むためアドレス情報をタツチセンサ回
路120に送る。すると、タツチセンサ回路12
0からは当該押下鍵のアフタタツチ信号が送出さ
れる。このアフタタツチ信号は変調回路150に
おいて効果変調用発振器130の出力信号および
EXPペダルスイツチ回路140の出力信号と異
重み付け合成され、これによつて各演算パラメー
タ(MDs〔CA〕,MDs〔LA〕,MDs〔CT〕,
MDs〔PI〕,MDs〔M1〕,MDs〔M2〕)に分解され
る。そして、この各演算パラメータに分解された
変調アフタタツチ信号は、イニシヤルタツチ信号
と同様にしてAD・C160においてデイジタル
信号に変換さ、各演算パラメータ毎のモジユレー
シヨンデータとしてデータバスDB1に送出され
る。そして、第1演算装置101はこのようにし
て得た押下鍵に関するモジユレーシヨンデータを
当該押下鍵の鍵情報と共に固有の判別コードJC
を付し、モジユレーシヨンメツセージとして第2
プロセツサ部200に転送する。 一方、鍵状態の変化が離鍵操作に起因するもの
である場合、その解放鍵に対する予備登録の解除
を行なうと共に、鍵盤部において離鍵操作が行な
われたことを示すオフイベントメツセージ、すな
わちオフイベントを示す固有の判別コードJCと
解放鍵に対応する鍵情報とが1対となつたオフイ
ベントメツセージを第2プロセツサ部200に転
送する。 なお、上記モジユレーシヨンデータの検出処理
および転送処理は、前述のプレイイベントサーチ
ルーチンによる処理が終了した後、これに引き続
くモジユレーシヨンデータゲツトルーチンと呼ば
れるサブルーチンによつて実行される。 従つて、この第1プロセツサ部100における
演算処理プログラムは、大別すると、REG′N・
CCT170における音色設定情報を取り込み、
これを第2プロセツサ部200に転送するレジス
トレーシヨンデータゲツトルーチンと、鍵盤部
(UK,LK,PK)における鍵状態の変化を検出す
ると共に、押下鍵に対する予備登録あるいは解放
鍵に対する予備登録の解除を行い、押鍵状態に対
応したオンイベントメツセージあるいはオフイベ
ントメツセージを第2プロセツサ部200に転送
するプレイイベントサーチルーチンと、オンイベ
ントに関するモジユレーシヨンデータを取込み、
これを第2プロセツサ部200に転送するモジユ
レーシヨンデータゲツトルーチンとから構成され
ている。そして、これら3つのサブルーチンは、
1つの循環プログラムとして互に結合されてい
る。つまり、演算処理プログラムは、電源投入後
においてまずレジストレーシヨンデータゲツトル
ーチンの実行に移り、次にプレイイベントサーチ
ルーチンの実行に移り、次にモジユレーシヨンデ
ータゲツトルーチンの実行に移る。そして、プレ
イイベントサーチルーチンおよびモジユレーシヨ
ンデータゲツトルーチンの実行回数が一定回数に
達すると、再びレジストレーシヨンデータゲツト
ルーチンへ復帰するように構成されている。従つ
て、REG′N・CCT170における音色設定情
報、すなわちレジストレーシヨンデータは一定時
間周期毎に新たなものが取込まれていることにな
る。この場合、フツトスイツチ回路180におけ
るフツトスイツチのオン・オフ状態もレジストレ
ーシヨンデータゲツトルーチンにおいて検出され
る。 以上の説明から明らかなように、この第1プロ
セツサ部100は、第1演算装置101のI/O
デバイスの1つとして各々1stパスに結合された
キースイツチ回路110、タツチセンサ回路12
0、REG′N・CCT170、フツトスイツチ回路
130など演奏者によつて操作される部分におけ
る設定情報や演奏情報を検出し、この検出情報を
適宜加工した後第2プロセツサ部200に対して
転送する処理を行う状態検出装置であると考える
ことができる。 以上のようにして第1プロセツサ部100から
第2プロセツサ部200に対して各種の音色設定
情報、鍵情報、鍵タツチ情報が転送されてくる
と、第2プロセツサ部200はこれらの情報に基
づいて押下鍵の発音割当てを行うと共に、押下鍵
に対応する楽音信号を作るための楽音パラメータ
G〔CA〕〜G〔M2〕、周波数パラメータRを発
音チヤンネル毎に、かつパラメータ毎に時分割的
に算出する。つまり、第2演算装置201は、第
1プロセツサ部100から所定の判別コードJC
が付された各種のデータが供給されると、その判
別コードJCの内容によりプログラムメモリ20
2に予め記憶されたプログラムに従つて次のよう
な処理を実行する。 (a) 判別コードJCが鍵のオンイベントに関する
ものであつた場合、16の発音チヤンネルにお
ける発音割当て状況を検出し、空発音チヤンネ
ルがあればこの空発音チヤンネルに当該オンイ
ベントに関する鍵情報に対応する楽音の発音割
当てを実行し、この後、この発音割当てした鍵
情報に対応する楽音信号を作るための各種楽音
パラメータG〔CA〕〜G〔M2〕などの算出処
理に移行する。 (a)′ 判別コードJCが鍵のオフイベントに関する
ものである場合、当該オフイベントに関する鍵
情報に対応する楽音の発音が割当てられている
発音チヤンネルの割当て解除を行うと共に、該
当発音チヤンネルで発音されている楽音が以降
において順次減衰状態へと移行するためのリリ
ースコントロールを実行する。この場合のリリ
ースコントロールはREG′N・CCTに設定され
ている各鍵盤毎のリリースデータとフツトスイ
ツチのオン・オフ状態に基づいたデータ等によ
つてリリースタイムやリリースレベルが決定さ
れる。 (b) 判別コードJCがフツトスイツチのオンまた
はオフイベントに関するものであつた場合、電
子オルガンタイプまたはピアノタイプに選択さ
れている発生楽音のリリース部特性をそのオ
ン・オフ状態によつて制御する処理を行なう。
これについては後述する。 (c) 判別コードJCがモジユレーシヨンデータに
関するものであつた場合、この判別コードに付
随して転送されてくるモジユレーシヨンデータ
を発音割当てされた鍵情報と対応づけてWRK
メモリ280のモジユレーシヨンデータエリア
にストアする。 (d) 判別コードJCがレジストレーシヨンデータ
に関するものであつた場合、このレジストレー
シヨンデータを所定順序でWRKメモリ280
のレジストレーシヨンデータエリアにストアす
る。 以上が第1プロセツサ部100から各種のデー
タが転送されてきた場合における第2プロセツサ
部200の応答処理であるが、前述の判別コード
JCが鍵のオンまたはオフイベントに関するもの
であつた場合の処理はチヤンネルアサインルーチ
ンにおいて実行される。このチヤンネルアサイン
ルーチンにおいては、鍵情報の発音チヤンネルへ
の割当て、あるいは割当て解除処理の他に、2段
構えのトランケート順位の設定制御が実行され
る。すなわち、鍵盤部の押下鍵が解放された場
合、まず第1段階において鍵解放の順に従つて各
発音チヤンネルのトランケート順位を設定してお
く。そして、解放鍵に対応する楽音のリリース部
分が終つた段階において、前の第1段階で設定し
たトランケート順位を楽音のリリース部分が終了
した順に設定変更する。このトランケート制御の
うち、第1段階目の処理はチヤンネルアサインル
ーチンにおいて実行され、第2段階目の処理は後
述のパラメータ計算ルーチンにおいて実行され
る。ここのように2段構えのトランケート順位の
設定制御を行うことにより発音チヤンネルを効率
良く使用することができる。つまり、トランケー
ト順位の設定を鍵解放の順にのみ基づいて行つた
場合、各発音チヤンネルの減衰時間がそれぞれ異
なる条件下において、最も古く解放された鍵が割
当てられた発音チヤンネル(トランケート順位が
最も高い発音チヤンネル)における楽音の減衰発
音が終了しておらず、一方後から解放された鍵が
割当てられた発音チヤンネル(トランケート順位
が低い発音チヤンネル)における楽音の減衰発音
が終了して当該発音チヤンネルが完全な空発音チ
ヤンネルとなつている時、新たな押鍵操作がある
とこの新たな押下鍵は空発音チヤンネルがあるに
もかかわらず、上記減衰発音が終了していないト
ランケート順位の最も高い発音チヤンネルに対し
て割当てられることになり、この発音チヤンネル
の減衰発音が強制的に消されてしまうという不具
合が生じる。 また、トランケート順位の設定をリリースエン
ドの順にのみ基づいて行なつた場合、全ての発音
チヤンネルが楽音発生中の条件下において、さら
に新たな押下鍵が加わつた時、この新たな押下鍵
に対応する楽音の発音を各発音チヤンネルの中で
鍵がすでに解放されて楽音の発音が減衰状態とな
つている発音チヤンネルのいずれかに割当てるよ
うにしたい場合、その割当てをいずれかの発音チ
ヤンネルで発音が終了するまで待機させなければ
ならないという不具合が生じる。いずれの場合に
しても発音チヤンネルの使用効率が低下するとい
う欠点がある。 しかし、この実施例のように、2段構えのトラ
ンケート順位の設定制御を行うようにしておくこ
と、このような欠点を除去し、発音チヤンネルを
効率的に使用できる。 一方、第2演算装置201は、第1プロセツサ
部100から転送されてくる鍵情報、レジストレ
ーシヨンデータ、モジユレーシヨンデータ等に基
づき各発音チヤンネルで発音すべき楽音に関する
各種の楽音パラメータG〔CA〕〜G〔M2〕およ
び周波数パラメータRを算出する。つまり、レジ
ストレーシヨンデータのうちピアノトーンやフル
ートトーンなど基本的な音色に関するデータ(以
下、このデータを他と区別するために音色ナンバ
データという)によりTCT210からこの音色
ナンバデータに対応する演算パラメータIZm,
Tm,BL,ADRm,Δ,ADRm,n・ADRmを
各楽音パラメータの種類毎に読み出す。TCT2
10には、演算パラメータとして直接使用できる
ダイレクト演算パラメータ(演算周期データ
Tm、初期値IZm)と、演算パラメータをメモリ
から引き出すためのアドレスポインタとしてのイ
ンダイレクト演算パラメータ(Δアドレスポイン
タΔ・ADRm,nアドレスポインタn・
ADRm,BLアドレスポインタBL・ADRm)が各
楽音パラメータの種類毎に記憶され、音色ナンバ
データによつてアドレスされることにより音色ナ
ンバデータに対応したこれらダイレクト演算パラ
メータTm,IZmおよびインダイレクト演算パラ
メータΔ・ADRm,n・ADRm,BL・ADRmが
各楽音パラメータ毎に読み出される。そして、上
記インダイレクト演算パラメータのうち、BLア
ドレスポインタBL・ADRmによつてNST220
からノートスケーリング用の係数値に関する演算
パラメータBLmが読み出され、またΔアドレス
ポインタΔ・ADRmによつてΔテーブル230
から演算周期毎の増減値に関する演算パラメータ
Δmが読み出され、さらにnアドレスポインタ
n・ADRmによつてnテーブル240から演算
パラメータΔmの演算回数に関する演算パラメー
タnnが読み出される。そしてこのようにして
TCT210およびNST220、Δテーブル23
0、nテーブル240から読み出されたダイレク
ト演算パラメータIZm,Tm,BLm,Δm,nn
と、イニシヤルタツチ信号を分解して得たイニシ
ヤルタツチデータIZa〔CA〕〜IZs〔M2〕と、変
調アフタタツチ信号を分解して得たモジユレーシ
ヨンデータMDs〔CA〕〜IZs〔M2〕と、REG′N・
CCT170に設定されているレジストレーシヨ
ンレベルデータR〔Lv〕、レジストレーシヨンリ
リースデータR〔Re〕とによつて押下鍵に対応
する各楽音パラメータΔG〔CA〕〜G〔M2〕が
発音チヤンネル別に、かつ楽音パラメータ毎に時
分割的に算出される。そして、この算出した楽音
パラメータG〔CA〕〜G〔M2〕のうちG〔CA〕
およびG〔CT〕と、REG′N・CCT170に設定
されているレジストレーシヨンフイートデータR
〔Fe〕およびレジストレーシヨンピツチデータR
〔Pi〕と、押下鍵に対応したキーコードKCによつ
て周波数パラメータR1,R2が算出される。この
ようにして算出された楽音パラメータG〔CA〕,
G〔LA〕,G〔M1〕,G〔M′2〕および周波数パラ
メータR1,R2は、判別コードJCに相当する発音
チヤンネル番号を先頭情報として1組の楽音パラ
メータメツセージとして第3プロセツサ部300
に転送される。 この場合、周波数パラメータR1およびR2は前
述した第1式および第2式に基づいて各々算出さ
れるものであるが、ここでは除算処理を対数演算
によつて行なつている。この対数演算は、対数テ
ーブル250およびRテーブル260を利用して
実行される。つまり、前述の第1式および第2式
は次の第1′式および第2′式に示す対数演算式と当
価である。 logR1=logCA/logCT=logCA〜logCT…(1
′) logR2=log(1023−CA)/log(102
3−CT) =log(1023−CA)−log(1023−CT) …(2′) 従つて、例えば周波数パラメータR1を算出す
る場合には、まず対数テーブル250から楽音パ
ラメータG〔CA〕,G〔CT〕に対応した対数値
logCA,logCTを引き出し、この引き出した対数
値に基づき〔logCA−logCT〕の減算処理を行
い、対数化された周波数パラメータlogR1を求め
る。そして、次の段階においてこのlogR1によつ
てRテーブル260から自然数の周波数パラメー
タR1を引き出す。このような演算処理によつて
周波数パラメータR1,R2が短時間でで算出され
る。 従つて、この第2プロセツサ部200における
演算処理プログラムは、大別すると、発音チヤン
ネルに対する割当ておよび割当て解除処理を行う
チヤンネルアサインルーチンと、第1プロセツサ
部100からのモジユレーシヨンデータを取込む
モジユレーシヨンデータゲツトルーチンと、第1
プロセツサ部100からのレジストレーシヨンデ
ータを取込むレジストレーシヨンデータゲツトル
ーチンと、フツトスイツチのオン・オフ状態に対
応して楽音のリリース部分のコントロールを行う
リリースコントロールルーチンと、楽音パラメー
タG〔CA〕〜G〔M2〕および周波数パラメータ
R(R1,R2)を算出するパラメータ計算ルーチン
とから構成されていることになる。そして、これ
らの全ルーチンはタイマ270のタイマフラグに
よつて処理時間がほぼ一定間隔となるように規制
される。 以上のようにして第2プロセツサ部200から
第3プロセツサ部3000に対して楽音パラメー
タG〔CA〕,G〔LA〕,G〔M1〕,G〔M2〕およ
び周波数パラメータR1,R2が転送されると、第
3プロセツサ部300はこれらの楽音パラメータ
に基づき前述の第5式〜第10式で示したような演
算処理を各発音チヤンネル毎に実行し、最高で16
種類の楽音信号Gv1〜Gv16を形成する。そして、
この形成された楽音信号Gv1〜Gv16はサウンドシ
ステム400から楽音として発音される。従つ
て、この第3プロセツサ部300は、与えられた
パラメータに対応した楽音信号を形成するトーン
ジエネレータであると考えることができる。な
お、この第3プロセツサ部300については後で
詳細構成を示し説明する。 以上が第1図の実施例に示す電子楽器の全体構
成と概略の動作説明である。 以下、順に各部の詳細構成および動作を説明す
る。 第1演算装置101 第1演算装置101は汎用のマイクロプロセツ
サで構成されるものであるが、次の第2表に示す
ようなアキユムレータ、レジスタ、カウンタ等を
内蔵している。なお、この第2表には後で演算処
理内容を説明する上で必要なものだけが記載され
ている。
The present invention relates to a musical tone parameter forming device for an electronic musical instrument that forms musical tone parameters used for generating musical tone signals, and more particularly to a musical tone parameter forming device that uses calculations to form musical tone parameters that change over time. A. Description of the Prior Art An example of a musical tone parameter forming apparatus for calculating musical tone parameters that change over time is disclosed in Japanese Patent Application Laid-Open No. 78219/1983. This conventional device consists of a calculation circuit (CPU) that calculates parameter values of musical tone parameters (consisting of musical waveform data in the case shown in the above publication), and a switching clock oscillator (CPU) that instructs switching of musical tone parameters. generator
AC, DC), and the arithmetic circuit repeatedly performs arithmetic operations to form new parameter values of musical tone parameters at the cycle of the clock output from the clock oscillator. Therefore, the time change of musical tone parameters is determined by the period of the clock from the clock oscillator, and in order to change the time conditions (speed at which the musical tone parameters are changed) for the time change of musical tone parameters, the clock frequency is determined by the clock cycle from the clock oscillator. It is necessary to change the oscillation frequency of the oscillator. However, a clock oscillator with a variable oscillation frequency has a complicated configuration and has problems with the stability of the oscillation frequency, making it difficult to arbitrarily and precisely control the temporal changes in musical tone parameters (the speed at which the parameters are changed). It becomes difficult. B. Purpose and General Description of the Invention The present invention has been made in view of the above points, and it is possible to easily and precisely control the temporal change of the musical tone parameters formed on the time axis with a simple configuration. The object of the present invention is to provide a musical tone parameter forming device that has the following characteristics. In order to achieve this object, a musical tone parameter forming device according to the present invention provides a parameter forming operation that executes a parameter forming operation for forming a new parameter value of a musical tone parameter using a predetermined value corresponding to the musical tone parameter. timer means for instructing the calculation means to perform the parameter formation calculation at predetermined time intervals; and means for setting a frequency N of execution of the parameter formation calculation in the calculation means. The calculation means executes the parameter formation calculation once every N times according to the frequency N in response to the calculation timing instruction at each predetermined time interval by the timer means, and calculates the predetermined value and the Musical tone parameters that sequentially change according to predetermined time intervals and the frequency are formed. With this configuration, calculations for forming new musical tone parameters are executed at a rate corresponding to the frequency N (every N predetermined time intervals) in units of predetermined time intervals instructed by the timer means. As a result, even if the time of the timer means is kept constant, by appropriately setting the frequency N, the rate of change of musical tone parameters can be arbitrarily controlled. Furthermore, in this invention, when performing parameter formation calculations for a plurality of musical tone parameters in a time-sharing manner using one calculation means, by independently specifying the frequency N for each musical tone parameter, a common Even though the calculation means and timer means are used, the rate of change of each musical tone parameter can be arbitrarily controlled independently. C. DESCRIPTION OF EMBODIMENTS The present invention will be described in detail below based on illustrated embodiments. FIG. 1 is an overall configuration diagram showing an embodiment of an electronic musical instrument using a tone parameter forming device according to the present invention. The electronic musical instrument shown in this example has an upper keyboard UK (total of 61 keys with pitches C 1 to C 6 ), a lower keyboard LK (total of 61 keys with pitches C 1 to C 6 ), and a pedal keyboard PK.
(total of 25 keys with pitches C 0 to C 2 ), these upper keyboards
For the UK, lower keyboard LK, and pedal keyboard PK, there are two pronunciation series each for generating musical tones. In this case, for the upper keyboard UK and lower keyboard LK, set the number of sound series to "1" using the tone setting controller.
or "2" can be selected. Furthermore, regarding the pedal keyboard PK, it is not possible to switch and select the number of sound generation series, and there are always two series. A total of 16 sounding channels are prepared, and 14 of these 16 sounding channels are used for generating musical tones on the manual keyboard (UK, LK), and the remaining 2
The two channels are used to generate musical sounds for the pedal keyboard PK, and for the pedal keyboard PK,
The musical tone based only on the most recently pressed last key among the multiple pressed keys is given priority, and if this last pressed key is released, the musical tone based on the next last pressed key is given priority. It's starting to be pronounced. Therefore, the upper keyboard UK and the lower keyboard LK can simultaneously produce tones related to up to 14 pressed keys. However, if the number of sound series for the upper keyboard UK and lower keyboard LK is set to "2", only the sounds associated with a maximum of seven pressed keys can be produced on both keyboards. Regarding the pedal keyboard PK, two sounding channels are always used, but the musical tones produced by these two sounding channels relate to a single pressed key selected by the priority control. Next, the principle of forming musical tone signals of the electronic musical instrument shown in this embodiment will be briefly explained. (Principle of Formation of Musical Sound Signal) The musical sound signal in the electronic musical instrument shown in this embodiment is basically formed on the same principle as that of an electronic musical instrument of the waveform memory read-out method. In other words, an electronic musical instrument using the waveform memory read method is equipped with a frequency information memory that stores frequency information F corresponding to each key on the keyboard, and this frequency information memory is addressed by key information representing the pressed key. The frequency information F is read out, and the read frequency information F is accumulated at a constant speed to obtain an accumulated value qF (q=1, 2, 3
...), and by addressing the waveform memory that stores the amplitude values of each sample point of one cycle of the desired musical waveform with this cumulative value qF, the amplitude value of each sample point is read out to obtain a musical tone signal. It is. However, this method has a problem in that once the waveform stored in the waveform memory is fixed, the shape of the musical sound waveform read out will always be the same, making it impossible to change the timbre. Therefore, as a means to solve such problems, the frequency information F, which is the basis for forming the accumulated value qF for addressing the waveform memory (A), is changed from the middle of the accumulation to another frequency information.
F', thereby obtaining various tone waveforms from one waveform memory (patent application
52-127633, name: electronic musical instrument) and ○B waveform memory, the cumulative value qF and the cumulative value qF plus the correction value ΔL corresponding to the set tone [qF + ΔL]
By this, two waveform amplitude values P(qF) and P(qF+ΔL) with different phases obtained from the waveform memory are synthesized, and this synthesized value is used as the waveform at one sample point. A device which forms a complex musical sound waveform as an amplitude value (Japanese Unexamined Patent Publication No. 54-28118, title: musical tone signal generation circuit for electronic musical instrument) has been proposed by the same applicant as the present invention. For now, we will temporarily call the former method based on ○B the readout speed switching method, and the latter method based on ○B the readout phase switching method. In this example,
By combining both of these equations, various complex tone waveforms can be obtained. That is, in this embodiment, address information A 1 and A 2 for addressing the waveform memory is created in the steps described below. (a) First, musical tone parameters G [CA], G [CT],
G[LA], G[Pi], G[M 1 ], and G[M 2 ] are calculated. The musical tone parameter G[CA] is a parameter that determines the switching address of the address information A1 to the waveform memory, and G[CT] is a parameter that determines the switching time of the address information A1 . Further, G [LA] is a parameter that determines the address difference (corresponding to the above ΔL) between the regular address information A 1 for the waveform memory and the second address information A 2 whose phase is slightly shifted from this,
G[P 1 ] is a parameter that determines the reference pitch of the generated musical tone. Also, G[M 1 ] and G[M 2 ] are
This is a parameter that weights the two waveform amplitude values read from the waveform memory using the two address information A 1 and A 2 and is expressed as a digital value. These various musical tone parameters G [CA] ~ G
[M 2 ] is the calculation parameters IZm, BLm, Δm, which correspond to the tone setting information and are stored in the memory in correspondence with the type of musical tone parameters.
Tm and the calculation parameter IZs obtained by decomposing the initial touch signal at the time of key depression according to the type of musical tone parameter.
[CA], IZs [LA], IZs [CT], IZs [Pi], IZs
[M 1 ], IZs [M 2 ] (these are collectively referred to as initial touch data), and a modulated aftertouch signal obtained by modulating the aftertouch signal corresponding to the key press pressure with an effect modulation signal, etc. Calculation parameters MDs [CA], MDs obtained by decomposing them according to the type of musical tone parameters
[LA], MDs[CT], MDs[PI], MDs[M 1 ],
MDs [M 2 ] (these are collectively referred to as modulation data) are calculated in a time-sharing manner for each type of musical tone parameter. Note that this will be explained in detail later. (b) Next, based on the musical tone parameters G [CA] to G [M 2 ] obtained in this way, the
Frequency parameters R 1 and R 2 that change as shown by R 1 and R 2 are calculated. In other words, if the variable range of musical tone parameters G [CA] and [CT] is "0 to 1023", the frequency parameter R 1
and R 2 are determined by the following first and second equations. R 1 = CA/CT...(1) R 2 = 1023-CA/1023-CT...(2) (c) Next, for the frequency parameters R 1 and R 2 obtained in this way, the musical tone parameter G [Pi],
Registration pitch data R [Pi] and registration foot data R for each keyboard set by the tone setting controller
[Fe], the data KD proportional to the pitch of the pressed key is taken into consideration, and the frequency parameters R 1 ′ and R 2 ′ corresponding to the tone setting information and the pitch of the pressed key are expressed by the following equations 3 to 4. Calculated based on the formula. R 1 ′=R 1 ×2{ A(KD+G [ Pi ] +R [ Pi ] )+R [ Fe ]} …(3) R 2 ′=R 2 ×2{ A(KD+G [ Pi ] +R [ Pi ] )+R [ Fe ]} …(4) However, A is a constant. (d) Next, the frequency parameters R 1 ′ and R 2 ′ obtained in this way are accumulated, and the accumulated values qR 1 ′,
qR 2 ′ (q=1, 2, 3...) is compared with the musical tone parameter G [CA], and depending on the comparison result, one of the accumulated values (qR 1 ′ or
qR 2 ′) is selected, and the musical tone parameter G [LA] is added to this selected cumulative value,
These are output as two pieces of address information A 1 and A 2 for the waveform memory. In other words, qR 1 ′<
Under the condition of CA, A 1 = qR 1 ′ …(5) A 2 = qR 1 ′+G[LA] …(6) Also, under the condition of qR 1 ′<CA≦qR 2 ′, Address information A 1 and A 2 shown by A 1 =qR 2 ′ (7) A 2 =qR 2 ′+G[LA] ( 8 ) are output. (e) Next, the address information obtained in this way
Address the transformation memory by A 1 and A 2 ,
Sample point amplitude values Pv 1 of two different phases,
Pv 2 is read. Then, musical tone parameters G [M 1 ], G regarding weighting are applied to the two sample point amplitude values Pv 1 and Pv 2 that have been read out.
After multiplying by [M 2 ], these multiplied values are combined, and the combined value is used as the one-sample point amplitude value of the musical sound waveform. Therefore, if the stored content of the waveform memory is, for example, a waveform amplitude value related to a pure sine waveform, the instantaneous value (sample point amplitude value) of the finally obtained musical sound waveform Gvi(t) is expressed by the following equations 9 to 10. It is expressed by the formula. When qR 1 ′<CA Gvi(t)=M 1・SinA 1 +M 2・SinA 2 =M 1・SinqR 1 ′+M 2・Sin(qR 1 ′+LA) …(9) qR 1 ′≦qR 2 ′ When =M 1・SinA 1 +M 2・SinA 2 =M 1・SinqR 2 ′+M 2・Sin(qR 2 ′+LA) …(10) In this case, the amplitude envelope of the musical sound waveform is
Among the various musical tone parameters, the musical tone parameters G[M 1 ] and G[M 2 ] relating to amplitude values correspond to the timbre setting information. Next, an overview of the overall configuration and operation of the electronic musical instrument shown in FIG. 1 will be explained. (Overall configuration and operation) The electronic musical instrument shown in the embodiment shown in FIG. ing. The first processor section 100 detects the pressed state of each key on the keyboard section and the tone setting state by the tone setting operator, and also generates key information and key touch information (initial touch data, after-touch data, etc.) corresponding to the pressed key state. touch data) and tone setting information corresponding to the tone setting state to the second processor section 20.
This is the part that outputs via FIFO1 for 0,
A first arithmetic unit (microprocessor) 101 that executes various arithmetic processing or detection processes according to a predetermined program; a program memory 102 that stores a predetermined program to be executed by the first arithmetic unit 101; A key switch circuit 110 in which key switches provided corresponding to each key of the keyboard section (UK, LK, PK) are connected in a matrix.
, a touch sensor circuit 120 for obtaining an initial touch signal corresponding to the key pressing speed and an after touch signal corresponding to the key pressing pressure, and an effect modulation oscillator for imparting a vibrato effect to the musical tones of the upper keyboard UK and lower keyboard LK. 130, an expression pedal switch circuit (EXP pedal switch circuit) 140 for controlling the total volume of the generated musical tones, and an initial touch signal output from the Dutch sensor circuit 120, which is weighted differently using a variable resistor or the like, to generate various signals. It is divided into calculation parameters (IZs [CA] to IZs [M 2 ]) and output as an initial touch signal for each calculation parameter, as well as an after touch signal and effect modulation oscillator 1.
The effect modulation signal output from 30 and
A modulation circuit 1 that combines the volume control signal output from the EXP pedal switch circuit 140 with different weights using a variable resistor, decomposes it into various calculation parameters, and outputs this as a modulated aftertouch signal.
50, an AD converter (AD/C) 160 that converts the analog initial touch signal and modulated aftertouch signal output from the modulation circuit 150 into digital initial touch data and modulation data, and each keyboard (UK, LK, PK)
Registration switch circuit (hereinafter referred to as REG′N・
(abbreviated as CCT) 170, and a foot switch circuit 18 for controlling the release time of the generated musical tone.
0, and a working memory (hereinafter abbreviated as WRK memory) 190 that temporarily stores various data when transmitting and receiving various data between the first arithmetic unit 101 and each of the above-mentioned circuits or the second processor section 200. , an effect modulation oscillator 13
0 and EXP pedal switch circuits 140 are each connected to a first bus (hereinafter referred to as
Address bus ADB 1 , which constitutes the 1st bus)
The data bus DB 1 is coupled to the data bus DB 1 so that information is transmitted to and from the first arithmetic unit 101 . However, the first processor section 100 does not transfer various information regarding all pressed keys to the second processor section 200, but only information regarding pre-registered pressed keys. Here, the meaning of preliminary registration will be briefly explained. In this embodiment, the sound generation assignment of the pressed key to the sound generation channel described above is performed in the second
This is executed in the processor section 200, but in this case, the number of sound channels is limited to a predetermined number (16 in this embodiment), so in the second processor section 200, information on pressed keys exceeding the number of sound channels is processed. Even if a message is forwarded to me, I cannot assign a pronunciation to it and have no choice but to ignore it. That is, it is meaningless to send information on pressed keys exceeding the number of sound generation channels from the first processor section 100, and furthermore, the processing time and transfer time for creating this information is wasted. Therefore, it is necessary to limit the number of pressed key information transferred from the first processor section 100 to the second processor section 200. Due to this restriction, the first processor section 100 executes a process of preliminary registration of pressed keys, and only information regarding the pre-registered pressed keys is transferred to the second processor section 200. The total number of pressed keys to be pre-registered corresponds to the number of sounding channels, and in this embodiment, up to 14 keys can be registered for manual keyboards (UK, LK), and up to 2 keys can be registered for pedal keyboard PK. There is. Therefore, the first processor section 10
The number of pressed key information transferred from 0 to the second processor section 200 is 16 at maximum. The second processor section 200 assigns or cancels the sound assignment to the pre-registered pressed keys supplied from the first processor section 100 via the FIFO, and also processes key information regarding the pressed keys to which the sounds are assigned, and performs various calculations. Based on the initial touch data, modulation rate, and tone setting information for each parameter, various musical tone parameters G[CA] to G[ M2 ], etc., and frequency parameters R ( R1 , R2 ) of the musical tone to be generated are determined. This part performs time-sharing calculations for each sound channel and each parameter, and includes a second calculation unit 201 that executes various calculation processes according to a predetermined program, and a part that performs a predetermined calculation process that the second calculation unit 201 should execute. A program memory 202 that stores programs, a calculation parameter Tm related to the calculation cycle for calculating various musical tone parameters G[CA] to G[M 2 ], a calculation parameter IZm related to the initial value of each musical tone parameter,
Note scaling table 220, Δ, which will be described later
Address information (indirect calculation a timbre control information table (hereinafter referred to as TCT) 210 that stores parameters), and calculation parameters BLm for note scaling for the initial values of each musical tone parameter.
Note scaling table (hereinafter referred to as NST) 220 that stores multiple types of (coefficient values)
, a Δ table 230 that stores calculation parameters Δ for each type of musical tone parameter regarding the increase/decrease values of the musical tone parameters G[CA] to G[M 2 ] for each calculation cycle, and information regarding the number of calculations of the calculation parameter Δ. An n table 240 that stores calculation parameters n for each type of musical tone parameter, a logarithm table 250 for calculating the frequency parameters R (R 1 , R 2 ) mentioned above by logarithmic calculation, and An R table 260 for converting the frequency parameter logR thus calculated into a natural number, and musical tone parameters G [GA] for all sound generation channels.
Equipped with a timer 270 for regulating calculation processing time such as G [M 2 ], and a working memory (WRK memory) 280 for temporarily storing various data necessary in the process of calculation processing, all these circuits are connected to the second bus. The bus is connected to an address bus ADB 2 and a data bus DB 2 that constitute a 2nd bus (hereinafter referred to as a 2nd bus), and is configured to transmit information. The third processor section 300 processes various tone parameters G[CA], G for each sound generation channel supplied from the second processor section 200 via the FIFO2.
[LA], G[M 1 ], G[M 2 ] and frequency parameter R
This part forms a corresponding musical tone signal based on the sound system 4, and is equipped with a third arithmetic unit, a waveform memory, etc., and the musical tone signal formed here is sent to the sound system 4.
Starting from 00, musical tones are pronounced. Furthermore, this third
The detailed configuration of the processor section 300 will be explained later. Next, the overall operation of the electronic musical instrument configured as described above will be briefly explained. First, the desired tone information is determined by the performer.
It is set to ・CCT170 of REG′N. In this state, the first arithmetic unit 101 fetches a predetermined program stored in the program memory 102, and executes the program according to the fetched program.
The tone setting information in the initial state set in the REG'N/CCT 170 is stored in a registration data area allocated in advance of the WRK memory 190, and some of this stored registration data is subjected to predetermined arithmetic processing. and process it. Then, the processed registration data and the remaining unprocessed registration data are assigned a unique discrimination code JC and transferred to the second processor section 200. When the registration data transfer process in the initial state is completed, the arithmetic process by the first arithmetic unit 101 shifts to the key press state detection process in the key switch circuit 110, that is, the play event search routine. Detects changes in the key status of the parts (UK, LK, PK). That is, the key state in the previous play event search routine and the key state in the current play event search routine are compared, and if there is a change, the type of change and the key that caused the change are detected. If the change in key state is due to a new key press operation, preliminary registration for the newly pressed key is performed, and an on-event message indicating that a new key press operation has been performed on the keyboard section, that is, an on-event message is sent. An on-event message containing a pair of discrimination code JC indicating an event, key information corresponding to a new pressed key, and initial touch data of the pressed key is transferred to the second processor section 200. In other words, when the change in the key state is related to an on event, the first arithmetic unit 101 first processes the address information from the touch sensor to capture the initial touch signal of the pressed key that caused the on event to occur. to circuit 120. Then, the touch sensor circuit 120 outputs an initial touch signal of the pressed key. This initial touch signal is then sent to the modulation circuit 15.
0, each calculation parameter (IZs [CA], IZs [CT],
IZs [LA], IZs [Pi], IZs [M 1 ], IZs [M 2 ]), and then converted into digital signals in AD・C160 and sent to the data bus as initial touch data for each calculation parameter. Sent to DB 1 . Then, the first arithmetic unit 101 sends the initial touch data regarding the pressed key obtained in this way to the second processor unit 200 as an on-event message along with the key information of the pressed key. Forward. After a certain period of time, the first arithmetic unit 101 sends address information to the touch sensor circuit 120 in order to capture the aftertouch signal of the pressed key that caused the ON event. Then, the touch sensor circuit 12
From 0, an aftertouch signal of the pressed key is sent. This aftertouch signal is used in the modulation circuit 150 as the output signal of the effect modulation oscillator 130 and
It is combined with the output signal of the EXP pedal switch circuit 140 with different weights, and thereby each calculation parameter (MDs [CA], MDs [LA], MDs [CT],
It is decomposed into MDs [PI], MDs [M 1 ], MDs [M 2 ]). The modulated aftertouch signal decomposed into each calculation parameter is converted into a digital signal in the AD/C 160 in the same manner as the initial touch signal, and sent to the data bus DB 1 as modulation data for each calculation parameter. . Then, the first arithmetic unit 101 uses the modulation data regarding the pressed key obtained in this way together with the key information of the pressed key and a unique discrimination code JC.
with the second modulation message.
The data is transferred to the processor section 200. On the other hand, if the change in key status is due to a key release operation, the preliminary registration for that release key is canceled and an off event message indicating that a key release operation was performed on the keyboard section, that is, an off event message is sent. An off-event message containing a pair of unique discrimination code JC indicating the release key and key information corresponding to the release key is transferred to the second processor section 200. The above-mentioned modulation data detection processing and transfer processing are executed by a subroutine called a modulation data get routine, which follows the completion of the processing by the play event search routine described above. Therefore, the arithmetic processing programs in the first processor section 100 can be roughly divided into REG'N,
Import tone setting information in CCT170,
A registration data get routine that transfers this to the second processor section 200, detects changes in key states in the keyboard section (UK, LK, PK), and cancels preliminary registration for pressed keys or preliminary registration for released keys. a play event search routine that transfers an on-event message or an off-event message corresponding to the key depression state to the second processor section 200, and a play event search routine that takes in modulation data related to the on-event;
It consists of a modulation data get routine that transfers this data to the second processor section 200. And these three subroutines are
They are linked together as one circular program. That is, after the power is turned on, the arithmetic processing program first moves to execute a registration data get routine, then moves to execute a play event search routine, and then moves to execute a modulation data get routine. When the play event search routine and the modulation data get routine have been executed a certain number of times, the routine returns to the registration data get routine. Therefore, new timbre setting information, ie, registration data, in the REG'N/CCT 170 is taken in at regular time intervals. In this case, the on/off state of the footswitch in the footswitch circuit 180 is also detected in the registration data get routine. As is clear from the above description, this first processor section 100 is an I/O processor of the first arithmetic unit 101.
A key switch circuit 110 and a touch sensor circuit 12 each coupled to the 1st path as one of the devices.
0. A process of detecting setting information and performance information in the parts operated by the performer such as the REG'N/CCT 170 and the foot switch circuit 130, processing this detected information as appropriate, and then transmitting it to the second processor section 200. It can be thought of as a state detection device that performs As described above, when various tone setting information, key information, and key touch information are transferred from the first processor section 100 to the second processor section 200, the second processor section 200 performs processing based on these information. In addition to assigning the sound to the pressed keys, the musical tone parameters G [CA] to G [M 2 ] and the frequency parameter R for creating musical tone signals corresponding to the pressed keys are time-divided for each sound channel and for each parameter. calculate. That is, the second arithmetic unit 201 receives the predetermined discrimination code JC from the first processor section 100.
When various types of data are supplied, the program memory 20 is
The following processing is executed according to a program stored in advance in 2. (a) If the discrimination code JC is related to a key on-event, detect the pronunciation assignment status in the 16 pronunciation channels, and if there is an empty pronunciation channel, correspond to the key information related to the on-event in this empty pronunciation channel. The tone assignment is executed, and then the process moves on to calculation processing of various musical tone parameters G[CA] to G[M 2 ], etc., for creating a musical tone signal corresponding to the key information to which the tone generation has been assigned. (a)′ If the discrimination code JC is related to a key off event, the pronunciation channel to which the sound corresponding to the key information related to the off event is assigned is released, and the sound is generated in the corresponding sound channel. A release control is executed so that the musical tones that are being played sequentially transition to an attenuated state thereafter. In this case, the release control determines the release time and release level based on the release data for each key set in REG'N/CCT and data based on the on/off status of the foot switch. (b) If the discrimination code JC is related to an on or off event of a footswitch, perform processing to control the release part characteristics of the generated musical tone selected for the electronic organ type or piano type according to its on/off state. Let's do it.
This will be discussed later. (c) If the discrimination code JC is related to modulation data, the modulation data transferred along with this discrimination code is associated with the key information assigned to the pronunciation, and the WRK is executed.
It is stored in the modulation data area of memory 280. (d) If the discrimination code JC is related to registration data, this registration data is stored in the WRK memory 280 in a predetermined order.
Store it in the registration data area. The above is the response processing of the second processor section 200 when various data are transferred from the first processor section 100.
If the JC is related to a key on or off event, processing is performed in the channel assignment routine. In this channel assignment routine, in addition to the process of assigning or canceling the assignment of key information to a sounding channel, a two-step truncation order setting control is executed. That is, when a pressed key on the keyboard section is released, in the first step, the truncation order of each sound generation channel is set in accordance with the order of key release. Then, at the stage when the release part of the musical tone corresponding to the release key is finished, the truncation order set in the previous first stage is changed to the order in which the release part of the musical tone is finished. Of this truncate control, the first stage processing is executed in the channel assignment routine, and the second stage processing is executed in the parameter calculation routine described later. By controlling the setting of the truncation order in two stages as shown here, the sound generation channels can be used efficiently. In other words, if the truncation order is set only based on the order of key release, the pronunciation channel to which the oldest released key is assigned (the pronunciation with the highest truncation order) will be On the other hand, the attenuation pronunciation of the musical tone in the pronunciation channel to which the key released later was assigned (the pronunciation channel with a lower truncation order) has not finished, and the pronunciation channel has completed. When a new key is pressed when the channel is set to a blank sound channel, this newly pressed key will be applied to the highest truncation channel for which the attenuation sound has not been completed, even though there is a blank sound channel. This causes a problem in that the attenuated sound of this sound channel is forcibly erased. Also, if the truncation order is set only based on the release end order, when a new pressed key is added under the condition that all sound channels are generating musical sounds, the truncation order will be set based only on the release end order. If you want to assign the sound of a musical note to one of the sound channels in which the key has already been released and the sound of the musical sound is in an attenuated state, the assignment ends in one of the sound channels. The problem arises that you have to wait until the In either case, there is a drawback that the efficiency in using the sound generation channels is reduced. However, by controlling the setting of the truncation order in two stages as in this embodiment, this drawback can be eliminated and the sound generation channels can be used efficiently. On the other hand, the second arithmetic unit 201 calculates various musical tone parameters G regarding musical tones to be generated in each sound generation channel based on the key information, registration data, modulation data, etc. transferred from the first processor section 100. CA] to G[M 2 ] and the frequency parameter R are calculated. In other words, data related to basic timbres such as piano tones and flute tones (hereinafter referred to as timbre number data to distinguish this data from others) among the registration data are used to send calculation parameters IZm corresponding to this timbre number data from the TCT210. ,
Tm, BL, ADRm, Δ, ADRm, n・ADRm are read out for each type of tone parameter. TCT2
10 includes direct calculation parameters (calculation cycle data) that can be used directly as calculation parameters.
Tm, initial value IZm) and indirect calculation parameters (Δaddress pointer Δ・ADRm,n address pointer n・
ADRm, BL address pointer BL/ADRm) is stored for each type of musical tone parameter, and by being addressed by the tone number data, these direct calculation parameters Tm, IZm and indirect calculation parameter Δ corresponding to the tone number data are stored.・ADRm, n・ADRm, BL・ADRm are read for each tone parameter. Then, among the indirect calculation parameters mentioned above, NST220 is determined by the BL address pointer BL・ADRm.
The calculation parameter BLm regarding the coefficient value for note scaling is read from Δ table 230 using the Δ address pointer Δ・ADRm.
The calculation parameter Δm regarding the increase/decrease value for each calculation cycle is read from the n address pointer n·ADRm, and the calculation parameter n n regarding the number of calculations of the calculation parameter Δm is read from the n table 240. and in this way
TCT210 and NST220, Δ table 23
Direct calculation parameters IZm, Tm, BLm, Δm, n n read out from the 0, n table 240
, initial touch data IZa [CA] ~ IZs [M 2 ] obtained by decomposing the initial touch signal, and modulation data MDs [CA] ~ IZs [M 2 ] obtained by decomposing the modulated aftertouch signal. and REG′N・
Depending on the registration level data R [Lv] and registration release data R [Re] set in the CCT 170, each tone parameter ΔG [CA] to G [M 2 ] corresponding to the pressed key is set to a sound channel. It is calculated separately and time-divisionally for each tone parameter. Then, out of the calculated musical tone parameters G[CA] to G[M 2 ], G[CA]
and G [CT], and the registration foot data R set in REG'N/CCT170.
[Fe] and registration pitch data R
Frequency parameters R 1 and R 2 are calculated using [Pi] and the key code KC corresponding to the pressed key. The musical tone parameter G [CA] calculated in this way,
G[LA], G[ M1 ], G[ M'2 ] and frequency parameters R1 , R2 are processed by the third processor as a set of musical tone parameter messages with the pronunciation channel number corresponding to the discrimination code JC as the leading information. Part 300
will be forwarded to. In this case, the frequency parameters R 1 and R 2 are calculated based on the first equation and the second equation, respectively, but here, the division process is performed by logarithmic operation. This logarithm operation is performed using logarithm table 250 and R table 260. In other words, the first and second equations described above are equivalent to the logarithmic expressions shown in the following equations 1' and 2'. logR 1 = logCA/logCT = logCA~logCT…(1
') logR 2 =log(1023-CA)/log(102
3-CT) =log(1023-CA)-log(1023-CT)...(2') Therefore, for example, when calculating the frequency parameter R1 , first calculate the musical tone parameter G[CA], from the logarithm table 250. Logarithmic value corresponding to G [CT]
LogCA and logCT are extracted, and a subtraction process of [logCA−logCT] is performed based on the extracted logarithmic values to obtain a logarithmized frequency parameter logR 1 . Then, in the next step, a natural number frequency parameter R1 is extracted from the R table 260 using this logR1 . Through such arithmetic processing, the frequency parameters R 1 and R 2 are calculated in a short time. Therefore, the arithmetic processing program in the second processor section 200 can be roughly divided into a channel assignment routine that performs allocation and release processing for sound channels, and a module that takes in modulation data from the first processor section 100. The vibration data get routine and the first
A registration data get routine that takes in registration data from the processor section 100, a release control routine that controls the release part of a musical tone in response to the on/off state of the foot switch, and a musical tone parameter G [CA] ~ It consists of a parameter calculation routine that calculates G[M 2 ] and frequency parameters R (R 1 , R 2 ). All of these routines are regulated by the timer flag of the timer 270 so that the processing time is approximately constant. As described above, musical tone parameters G[CA], G[LA], G[M 1 ], G[M 2 ] and frequency parameters R 1 , R 2 are transmitted from the second processor section 200 to the third processor section 3000. is transferred, the third processor unit 300 executes the calculation processing shown in the above-mentioned equations 5 to 10 for each sound channel based on these tone parameters, and processes up to 16
Various types of musical tone signals Gv 1 to Gv 16 are formed. and,
The formed musical tone signals Gv 1 to Gv 16 are produced as musical tones by the sound system 400. Therefore, this third processor section 300 can be considered to be a tone generator that forms a musical tone signal corresponding to given parameters. The detailed configuration of the third processor section 300 will be shown and explained later. The above is an explanation of the overall structure and general operation of the electronic musical instrument shown in the embodiment of FIG. The detailed configuration and operation of each part will be explained below in order. First Arithmetic Device 101 The first arithmetic device 101 is composed of a general-purpose microprocessor, and has built-in accumulators, registers, counters, etc. as shown in Table 2 below. Note that this second table only lists what is necessary to explain the details of the arithmetic processing later.

【表】 プログラムカウンタPGCは、周知のように、
予め特定のアドレスが割当てられたI/Oデバイ
スやメモリ等からその内容を読み取つたり、ある
いは第1演算装置101から各I/Oデバイスや
メモリ等に各種情報を転送する場合におけるアド
レス情報を出力するものである。 インデツクスレジスタIXrは、プログラムカウ
ンタPGCから出力されるアドレス情報ADRiを修
飾するためのオフセツト値がセツトされるレジス
タであつて、このインデツクスレジスタIXrにあ
るオフセツト値Xiをセツトするとプログラムカ
ウンタPGCから出力されるアドレス情報ADRiは
このオフセツト値Xiを加算したアドレス情報と
なる。 AアキユムレータAccAおよびBアキユムレー
タAccBは所定の演算プログラムによる演算結果
がそれぞれ独立に格納されるものであり、データ
の転送処理以外の演算処理はこれらアキユムレー
タAccAおよびAccBのいずれか一方との組合せで
実行される。 パラメータカウンタPCは変調回路150から
演算パラメータ毎のイニシヤルタツチデータおよ
びモジユレーシヨンデータを読み取るために用い
られるもので、下位3ビツトB2〜B0は演算パラ
メータの種類に対応し、上位3ビツトB5〜B9
イニシヤルタツチデータおよびモジユレーシヨン
データの区別に対応している。 キースイツチ回路110 キースイツチ回路110は、例えば第3図aに
その詳細回路例を示すように、鍵盤部(UK,
LK,PK)の各鍵に対応して設けられたキースイ
ツチをマトリツクス状に接続したキースイツチマ
トリクス110aの各ラインl0〜l35を1ラインず
つ順次選択することによつてどの音高に該当する
キースイツチが動作中であるかを示すキーボード
ステータス情報KBSがデータバスDB1の各ビツト
D0〜D7に得られるように構成されている。この
場合、キースイツチマトリクス110aは、第3
図bに音高C1に対応するキースイツチ1101
の拡大接続図を代表して示すように、キースイツ
チ1101の可動端子側が逆流防止用ダイオード
1102を介して「行」のラインl0に接続され、
固定端子側が「列」のラインL0に接続されるこ
とによつて構成される。そして、このキースイツ
チマトリクス110aは、第1演算装置101か
らのアドレス情報のうち下位ビツト情報をデコー
ダ110bでデコードして得たインデツクスナン
バix0〜ix35をドライバ(オープンコレクタ型)1
10i0〜110i35で反転した信号によつて各ライ
ンl0〜l35のうち1つがセレクトされ、このセレク
トされたライン(l0〜l35のいずれか1つ)におい
て動作中(閉成中))のキースイツチがあればそ
の動作キースイツチの固定端子側が接続されてい
る「列」のラインL0〜L7に“0”信号が表わ
れ、この“0”信号が当該インデツクスナンバ
(ix0〜ix35)に対応するライン(l0〜l35)に所属す
るキースイツチの動作状態を表わすキーボードス
テータス情報KBSとしてビツト毎(D0〜D7)に3
ステートバツフア110cに一時記憶される。例
えば、ラインl0に所属するキースイツチのうち音
高C1および音高G1に対応するキースイツチが動
作中である場合において、デコーダ110bから
出力されるインデツクスナンバix0が“1”にな
ると、3ステートバツフア110cには「D7
“0”、D6〜D1=“1”、D0=“0”」のキーボード
ステータス情報KBSが一時記憶される。この3
ステートバツフア110cに一時記憶されたキー
ボードステータス情報KBSは、3ステートバス
バツフア110cの内部において反転された後、
第1演算装置101からのアドレス情報のうち上
位ビツトをデコードするデコーダ110dから出
力されるイネーブル信号E2が“1”の期間にお
いてデータバスDB1に送出される。なお、デコー
ダ110bは、デコーダ110dから出力される
イネーブル信号E1が“1”の状態においてイネ
ーブル状態となり、インデツクスナンバix0〜ix35
を出力する。 ところで、この電子楽器における各鍵を表わす
キーコードKC(鍵情報KC)は次の第3表(a)〜(b)
に示すように9ビツト情報で表現されるように構
成され、この9ビツト情報のうち上位の2ビツト
S8〜B7は鍵盤の区別(UK,LK,PKの区別)を
表わすキーボードコードKBCとして定義づけら
れ、次位の3ビツトB6〜B4はオクターブを表わ
すオクターブコードOCとして定義づけられ、ま
た下位の4ビツトB3〜B0はノート(音名)を表
わすノートコードNCとして定義づけられてい
る。
[Table] As is well known, the program counter PGC is
Outputs address information when reading the contents from an I/O device, memory, etc. to which a specific address has been assigned in advance, or when transferring various information from the first arithmetic unit 101 to each I/O device, memory, etc. It is something to do. The index register IXr is a register in which an offset value is set to modify the address information ADRi output from the program counter PGC. When the offset value Xi in this index register IXr is set, the address information ADRi output from the program counter PGC is set. The address information ADRi to be added becomes the address information obtained by adding this offset value Xi. The A accumulator AccA and the B accumulator AccB each independently store the calculation results of a predetermined calculation program, and calculation processing other than data transfer processing is executed in combination with either one of these accumulators AccA and AccB. Ru. The parameter counter PC is used to read initial touch data and modulation data for each calculation parameter from the modulation circuit 150. The lower 3 bits B2 to B0 correspond to the type of calculation parameter, and the upper 3 bits correspond to the type of calculation parameter. Bits B5 to B9 correspond to the distinction between initial touch data and modulation data. Key switch circuit 110 The key switch circuit 110 is connected to a keyboard section (UK,
By sequentially selecting each line l0 to l35 of the key switch matrix 110a in which key switches provided corresponding to each key (LK, PK) are connected in a matrix, it is possible to determine which pitch corresponds to the pitch. Keyboard status information KBS indicates whether the key switch is operating or not. Each bit of the data bus DB 1
It is configured to be obtained from D 0 to D 7 . In this case, the key switch matrix 110a is
Key switch 1101 corresponding to pitch C 1 is shown in figure b.
As shown in the enlarged connection diagram as a representative, the movable terminal side of the key switch 1101 is connected to the line l0 of the "row" via a backflow prevention diode 1102,
It is constructed by connecting the fixed terminal side to the line L0 of the "column". The key switch matrix 110a outputs the index numbers ix 0 to ix 35 obtained by decoding the lower bit information of the address information from the first arithmetic unit 101 with the decoder 110b to the driver (open collector type) 1.
One of each line l 0 to l 35 is selected by the signal inverted at 10i 0 to 110i 35 , and this selected line (any one of l 0 to l 35 ) is in operation (closed). )), a "0" signal appears on lines L0 to L7 of the "column" to which the fixed terminal side of the key switch is connected, and this " 0 " signal 3 for each bit (D 0 to D 7 ) as keyboard status information KBS representing the operating status of the key switch belonging to the line (l 0 to l 35 ) corresponding to the line ( l 0 to l 35 ) corresponding to
It is temporarily stored in the state buffer 110c. For example, when the key switches corresponding to pitch C 1 and pitch G 1 among the key switches belonging to line l 0 are in operation, when the index number ix 0 output from the decoder 110b becomes "1", The 3-state buffer 110c has “D 7 =
Keyboard status information KBS of “0”, D 6 to D 1 = “1”, and D 0 = “0” is temporarily stored. This 3
After the keyboard status information KBS temporarily stored in the state buffer 110c is inverted inside the 3-state bus buffer 110c,
The enable signal E2 output from the decoder 110d that decodes the upper bits of the address information from the first arithmetic unit 101 is sent to the data bus DB1 during a period of "1". Note that the decoder 110b is enabled when the enable signal E1 output from the decoder 110d is "1", and the decoder 110b is enabled when the enable signal E1 output from the decoder 110d is " 1 ", and the
Output. By the way, the key code KC (key information KC) representing each key in this electronic musical instrument is shown in Table 3 (a) to (b) below.
It is configured to be expressed as 9-bit information as shown in the figure, and the upper 2 bits of this 9-bit information are
S8 to B7 are defined as a keyboard code KBC that represents the distinction between keys (UK, LK, and PK), and the next three bits B6 to B4 are defined as an octave code OC that represents an octave. The lower 4 bits B3 to B0 are defined as a note code NC representing a note (pitch name).

【表】【table】

【表】 この場合、ノートコードNCのうち下位ビツト
B2〜B0は、次の第4表に示すように同一コード
に対し2つのノートが割当てられており、その上
位ビツトB3との組合せによつて特定の単一のノ
ートが表現されるようになつている。すなわち、
ノートC〜Gを表現する場合、ノートコードNC
のビツトB3は“0”となり、ノートG#〜Bを
表現する場合、ビツトB3は“1”として表わさ
れる。従つて、各ノート鍵C〜Bに対応する鍵ノ
ートC〜Gに関するグループとノートG#〜Bに
関するグループの2グループに分割し、これら各
グループをキースイツチマトリクス110aの
「行」のラインl0〜l35に対応させておくと、キー
コードKCの上位から6ビツトB8〜B3で「行」の
各ラインl0〜l35を順次セレクトできることにな
る。インデツクスナンバix0〜ix35は、このような
関係のもとにおけるキーコードKCの上位6ビツ
トB8〜B3で表現される情報である。
[Table] In this case, the lower bit of the note code NC
B 2 to B 0 are two notes assigned to the same chord as shown in Table 4 below, and a specific single note is expressed by the combination with the upper bit B 3 . It's becoming like that. That is,
When expressing notes C to G, note code NC
Bit B3 is "0", and when representing notes G# to B, bit B3 is represented as "1". Therefore, it is divided into two groups: a group related to key notes C to G corresponding to each note key C to B, and a group related to notes G# to B, and each of these groups is divided into two groups: a group related to key notes C to G corresponding to each note key C to B ; .about.l35 , each line l0 to l35 of the "row" can be sequentially selected using the upper 6 bits B8 to B3 of the key code KC. The index numbers ix 0 to ix 35 are information expressed by the upper six bits B 8 to B 3 of the key code KC under such a relationship.

【表】 ところで、この場合、キーボードコードKBC
は、上鍵盤UKに関して“00”が割当てられ、下
鍵盤LKに関して“01”が割当てられ、ペダル鍵
盤PKに関して“10”が割当てられている。従つ
て、インデツクスナンバix0〜ix35は、第3表(a)〜
(b)の「10進表示」欄からも明らかなように、上鍵
盤UKに関してix0〜ix9,下鍵盤LKに関してix16
〜ix25、ペダル鍵盤PKに関してix32〜ix35という
具合に不連続なナンバとなる。しかし、キーボー
ドコードKBCを上述したように割当てておくこ
とにより、キーコードKCがいずれの鍵盤に所属
するものなのかを判断する場合においてキーコー
ドKCの上位2ビツト(B8およびB7)のみの判断
処理を行なうのみでよく、プログラムの実行時間
を短縮できる利点がある。なお、この実施例にお
ける各鍵盤の鍵数は、上鍵盤UKおよび下鍵盤LK
がそれぞれ音高C1〜C6の合計61鍵、ペダル鍵盤
PKが音高C6〜C2の合計25鍵である。従つて、上
述したように1オクターブの各鍵を2グループに
分割すると、最高オクターブの音高C6の鍵
(UK,LK)、C2の鍵(PK)が残つてしまう。こ
のため、このC6鍵(UKおよびLK)は第5オク
ターブに所属させるようにし、またC2鍵(PK)
は第2オクターブに所属させるようにしている。
第4表における(C)は、このC6鍵あるいはC2
鍵を表わしている。 タツチセンサ回路120 次に、タツチセンサ回路120は、ある1つの
鍵に関するタツチセンサ回路の詳細回路例を第4
図に示すように、押鍵速度の変化に応じてレベル
が変化するイニシヤルタツチ信号ITと、押鍵後
の押鍵圧力の変化に応じてレベルが変化するアフ
タタツチ信号ATとを混合し、この混合した信号
TSを異つた2つのタイミングでサンプリングす
ることにより、イニシヤルタツチ信号ITとアフ
タタツチ信号ATとを区別して1つの出力端子1
20aから得られるように構成されている。つま
り、第4図において、KSWはキースイツチマト
リクス110aにおけるキースイツチとは独立し
て各鍵毎(但し、ペダル鍵盤PKには設けられて
いない)に設けられ、かつ押鍵速度によつて接点
NCから接点NOへ切換わる時間が変化するキース
イツチであり、押鍵操作によつてコモン接点Cと
接点NOが接続されると、コンデンサC1の充電電
圧がこのキースイツチKSWおよびダイオードD1
を介して出力コンデンサC2に移される。この場
合、押鍵速度が早く、キースイツチKSWのコモ
ン接点Cが接点NCから接点NOへ移動する時間が
短い場合、コンデンサC1の充電電圧は抵抗R1
よる放電作用の影響を受けずに高レベルの充電電
圧として出力コンデンサC2に移される。しか
し、押鍵速度が遅く、コモン接点Cが接点NCか
ら接点NOへ移動する時間が長い場合、コンデン
サC1の充電電圧は抵抗R1による放電作用の影響
を受けて低レベルの充電電圧として出力コンデン
サC2に移される。そして、この後、鍵が完全に
押下された状態になると、押鍵圧力によつてイン
ピーダンスが変化する圧力・インピーダンス変換
素子(圧電ゴム等)Zpと抵抗R3の接続点電圧、
すなわちアフタタツチ信号ATがダイオードD2
介して出力コンデンサC2に加重されるようにな
る。従つて、コンデンサC1の充電電圧の出力コ
ンデンサC2への転送が開始されてからアフタタ
ツチ信号ATが加重するまでの時間帯t1における
出力コンデンサC2の充電電圧はイニシヤルタツ
チに対応したものとなり、これ以降の時間帯t2
おける出力コンデンサC2の充電電圧はアフタタ
ツチに対応したものとなる。第5図はこのタツチ
センサ回路120における各部出力波形を示す波
形図であり、同図aにはキースイツチKSWのオ
ン・オフ状態を示し、同図bにはイニシヤルタツ
チ信号ITを示し、同図cにはアフタタツチ信号
ATを示し、同図dには出力信号、すなわちタツ
チセンス信号TSを示している。従つて、このよ
うに構成されたタツチセンサ回路120において
は、出力端子120aの出力電圧を異つたタイミ
ング、すなわち上記の時間帯t1とt2とで別々にサ
ンプリングすることにより、1つの出力端子から
2種のタツチレスポンス信号、すなわちイニシヤ
ルタツチレスポンス信号とアフタタツチレスポン
ス信号が得られ、出力端子数の節約、これに伴う
配線作業の簡略化および出力コンデンサC2、出
力抵抗R2の共用化を計れ、経済的で小型化され
たタツチセンサ回路とすることができる。これ
は、この実施例における電子楽器のように鍵盤部
の鍵数が多い程有利な効果を発揮する。 ところでこの場合、キースイツチKSWの押鍵
開始からコンデンサC1の充電電圧がコンデンサ
C2へ転送され始められるまでの時間、すなわ
ち、第5図に示す時間帯t0は通常の演奏態様にお
いて、300μ・sec〜1m・sec程度となつており、
また上記時間帯t1は約2m・sec程度となつてい
る。従つて、第1演算装置101は、鍵盤部
(UK,LK)のうちいずれかの鍵が押鍵されたこ
とを検出したら当該鍵に関するイニシヤルタツチ
レスボンスおよびアフタタツチレスボンスを
2m・sec以内に取込むようにプログラムを作成し
ておけばよいことになる。 効果変調用発振器130、EXPペダルスイツチ
回路140、変調回路150 第6図は効果変調用発振器130およびEXP
ペダルスイツチ回路140ならびに変調回路15
0の一実施例を示す詳細回路図であつて、効果変
調用発振器130は上鍵盤UKおよび下鍵盤LKの
押下鍵に対するビブラート効果をそれぞれ個別に
与えるための2個の電圧制御型可変周波数発振器
(以下、VCOという)い130a,130bから
構成されている。このVCO130a,130b
は、それぞれ可変抵抗器1301,1303によ
つて発振周波数が可変できるようになつており、
これによつてビブラート効果の速度が可変制御さ
れる。また、可変抵抗器1302,1304によ
つてそれぞれの出力信号レベルが可変できるよう
になつており、これによつてビブラート効果の深
さが可変制御される。そして、VCO130aの
出力信号、すなわち上鍵盤UKに関する効果変調
用信号UKfはスイツチ1501を介して変調回路
150の上鍵盤アフタタツチ用重み付け回路15
0cに供給され、また、VCO130bの出力信
号、すなわち下鍵盤LKに関する効果変調用信号
LKfはスイツチ1502を介して変調回路150
の下鍵盤アフタタツチ用重み付け回路150dに
供給されている。スイツチ1501および150
2は、上鍵盤UKおよび下鍵盤LKの押下鍵の楽音
に対してビブラート効果を付与するか否かをそれ
ぞれ制御するためのものであり、ビブラート効果
を付与する場合には閉成される。 EXPペダルスイツチ回路140は周知のもの
であるので特にその詳細回路を示していないが、
EXPペダルの動作角度に応じてその出力レベル
が変化する音量制御信号VEXが出力される。この
音量制御信号VEXは、上鍵盤UKおよび下鍵盤LK
の押下鍵の楽音に対してEXPペダルによる音量
制御効果を付与するか否かを制御するスイツチ1
503,1504を介して変調回路150の上鍵
盤および下鍵盤アフタタツチ用重み付け回路15
0c,150dに並列的に供給される。なお、ス
イツチ1503および1504は、EXPペダル
による音量制御効果を付与する場合には閉成され
る。 変調回路150は、タツチセンサ回路120か
ら出力される上鍵盤UKおよび下鍵盤LKの各鍵に
関するタツチセンス信号TSu1〜TSu61,TSl1
TSl61のうち押下鍵に対応する信号を順次1つづ
つセレクトし、このセレクトした信号からイニシ
ヤルタツチ信号ITとアフタタツチ信号ATとを時
分割的に抽出し、この抽出した信号のうちイニシ
ヤルタツチ信号ITは対応する鍵盤の上鍵盤イニ
シヤルタツチ用重み付け回路150aまたは下鍵
盤イニシヤルタツチ用重み付け回路150bで異
種み付けすることによつて楽音パラメータG
〔CA〕〜G〔M2〕の種類に対応した演算パラメー
タに分解し、この分解した演算パラメータを
AD・C160によつて時分割的にデジタル信号
に変換し、これを各演算パラメータ毎のイニシヤ
ルタツチデータとしてデータバスDB1に送出する
と共に、アフタタツチ信号ATは対応する鍵盤の
上鍵盤アフタタツチ用重み付け回路150cまた
は下鍵盤アフタタツチ用重み付け回路150dに
おいて対応する鍵盤の効果変調用信号UKfまたは
LKfと音量制御信号Vexとで異重み付け合成する
ことによつて楽音パラメータG〔CA〕〜G
〔M2〕の種類に対応した演算パラメータに分解
し、この分解した演算パラメータをAD・C18
0によつて時分割的にデイジタル信号に変換し、
これをモジユレーシヨンデータとしてデータバス
DB1に送出するように構成されている。つまり、
タツチセンサ回路120から出力される上鍵盤
UKおよび下鍵盤LKの各鍵毎のタツチセンス信号
TSu1〜TSu61,TSl1〜TSls1はアナログマルチプ
レクサ150cに入力され、このアナログマルチ
プレレクサ150eにおいてこれらの入力信号の
うち1つが異なつた2つのタイミングでセレクト
される。すなわち、イニシヤルタツチ信号ゲツト
サイクルIGCYにおいて、演算装置101はラツ
チ150fのI/Oデバイスアドレスを上位ビツ
ト情報とし、タツチセンス信号を得ようとする
鍵、すなわち押下鍵に対応するタツチセンス回路
(第4図で示したもの)のI/Oデバイスアドレ
スを下位ビツト情報とするアドレス情報を出力す
る。この場合、各鍵毎のタツチセンス回路のI/
Oデバイスアドレスは当該鍵の鍵情報に対応して
割当てられている。従つて、演算装置101は、
例えばC1鍵(UK)に関するイニシヤルタツチ信
号およびアフタタツチ信号を抽出しようとする場
合、まずイニシヤルタツチ信号ゲツトサイクル
IGCYにおいてラツチ150fのI/Oデバイス
としてのアドレスを上位ビツト情報とし、C1
(UK)の鍵情報〔000000000〕(第3表(a),(b)お
よび第4表参照)を下位ビツト情報とするアドレ
ス情報を出力する。すると、アドレスバスADB1
に送出されるアドレス情報のうち上位ビツト情報
はデコーダ150gにおいてデコードされ、この
デコーダ150gからラツチ150ffをイネーブ
ル状態とするためのイネーブル信号E1が出力さ
れる。これによつてラツチ150fはイネーブル
状態となり、アドレスバスADB1に送出されるア
ドレス情報のうち下位ビツト情報をアナログマル
チプレクサ150eに供給する。すると、アナロ
グマルチプレクサ150eは「000000000」に対
応するアドレスに割当てられているC1鍵(UK)
に関するタツチセンス信号をセレクトして出力す
る。このようにしてアナログマルチプレクサ15
0eにおいてセレクトされたC1鍵(UK)に関す
るタツチセンス信号は上鍵盤および下鍵盤イニシ
ヤルタツチ用重み付け回路150a,150bに
供給され、これらの重み付け回路150a,15
0b内部に設けられた可変抵抗器VR1〜VR6によ
つて異重み付けされることによつて各演算パラメ
ータに分解され、次段のアナログマルチプレクサ
150hに供給される。また、初段のアナログマ
ルチプレクサ150eによつてセレクトされた
C1鍵(UK)に関するタツチセンス信号はスイツ
チ1505,1506を介して上鍵盤および下鍵
盤アフタタツチ用重み付け回路150c,150
dにも並列的に供給され、ここにおいて各鍵盤
(UK,LK)に対応する効果変調用信号UKf,
LKfおよび音量制御信号VEXと異重み付け合成さ
れて各演算パラメータに分解された後、次段のア
ナログマルチプレクサ150hに供給される。し
かし、第1演算装置101は次の段階において
C1鍵(UK)が所属する上鍵盤UKのイニシヤル
タツチ信号を各演算パラメータ毎に時分割的に読
み取るためのアドレス情報を出力する。このた
め、アナログマルチプレクサ150hは入力信号
のうち上鍵盤UKに関するイニシヤルタツチ信号
群UIGに所属する各演算パラメータ毎のイニシヤ
ルタツチ信号のみをセレクトして出力する。つま
り、第1演算装置101は、ラツチ150iの
I/Oデバイスアドレスを上位ビツトとし、C1
鍵(UK)の鍵情報の上位ビツトB8,B7、すなわ
ちC1鍵(UK)のキーボードコードKBC(=
“00”)を次位ビツト情報とし、各演算パラメータ
毎のイニシヤルタツチ信号を順次時分割的に読み
取るためのパラメータカウンタPCの出力を下位
ビツト情報とする次の第5表に示すようなアドレ
ス情報をアドレスバスADB1に送出する。
[Table] By the way, in this case, the keyboard code KBC
is assigned "00" for the upper keyboard UK, "01" for the lower keyboard LK, and "10" for the pedal keyboard PK. Therefore, index numbers ix 0 to ix 35 are as shown in Table 3 (a) to
As is clear from the "Decimal Display" column in (b), ix 0 to ix 9 for the upper keyboard UK and ix 16 for the lower keyboard LK.
~ix 25 and ix 32 ~ ix 35 for the pedal keyboard PK, which are discontinuous numbers. However, by assigning the keyboard code KBC as described above, only the upper two bits (B 8 and B 7 ) of the key code KC are used when determining which keyboard the key code KC belongs to. This method has the advantage of reducing program execution time since it is only necessary to perform judgment processing. In addition, the number of keys on each keyboard in this example is the upper keyboard UK and the lower keyboard LK.
A total of 61 keys, each with pitch C 1 to C 6 , pedal keyboard
PK is a total of 25 keys with pitches C 6 to C 2 . Therefore, if each key of one octave is divided into two groups as described above, the keys of the highest octave pitch C6 (UK, LK) and C2 key (PK) remain. Therefore, the C 6 key (UK and LK) should belong to the 5th octave, and the C 2 key (PK) should belong to the 5th octave.
is made to belong to the second octave.
(C) in Table 4 is this C 6 key or C 2
It represents a key. Touch sensor circuit 120 Next, the touch sensor circuit 120 describes a detailed circuit example of a touch sensor circuit related to a certain key in a fourth example.
As shown in the figure, an initial touch signal IT whose level changes according to the change in the key pressing speed and an after touch signal AT whose level changes according to the change in the key pressing pressure after the key is pressed are mixed. signal
By sampling TS at two different timings, the initial touch signal IT and the after touch signal AT can be distinguished and output to one output terminal 1.
20a. In other words, in FIG. 4, the KSW is provided for each key independently of the key switch in the key switch matrix 110a (however, it is not provided for the pedal keyboard PK), and the contact point is determined depending on the key pressing speed.
This is a key switch whose switching time from NC to contact NO changes. When common contact C and contact NO are connected by key press operation, the charging voltage of capacitor C1 is transferred to this key switch KSW and diode D1.
to the output capacitor C2 . In this case, if the key pressing speed is fast and the time for the common contact C of the key switch KSW to move from contact NC to contact NO is short, the charging voltage of capacitor C 1 will be at a high level without being affected by the discharging effect of resistor R 1 . is transferred to the output capacitor C2 as a charging voltage. However, if the key pressing speed is slow and it takes a long time for common contact C to move from contact NC to contact NO, the charging voltage of capacitor C 1 will be affected by the discharging action of resistor R 1 and will be output as a low-level charging voltage. Transferred to capacitor C 2 . After this, when the key is completely pressed down, the voltage at the connection point between the pressure/impedance conversion element (piezoelectric rubber, etc.) Zp and the resistor R 3 whose impedance changes depending on the key pressing pressure,
In other words, the aftertouch signal AT is applied to the output capacitor C2 via the diode D2 . Therefore, the charging voltage of the output capacitor C 2 in the time period t 1 from the start of transfer of the charging voltage of the capacitor C 1 to the output capacitor C 2 until the aftertouch signal AT is applied corresponds to the initial touch, The charging voltage of the output capacitor C 2 in the subsequent time period t 2 corresponds to aftertouch. FIG. 5 is a waveform diagram showing the output waveforms of each part in this touch sensor circuit 120. FIG. 5 a shows the on/off state of the key switch KSW, FIG. Aftertouch signal
AT is shown, and d of the figure shows an output signal, that is, a touch sense signal TS. Therefore, in the touch sensor circuit 120 configured as described above, by sampling the output voltage of the output terminal 120a at different timings, that is, at the above-mentioned time periods t 1 and t 2 , the output voltage can be obtained from one output terminal. Two types of touch response signals, an initial touch response signal and an after touch response signal, can be obtained, saving the number of output terminals, simplifying the wiring work, and sharing the output capacitor C 2 and output resistor R 2 . It is possible to create a touch sensor circuit that is economical and compact. This effect is more advantageous as the number of keys in the keyboard section increases, as in the case of the electronic musical instrument in this embodiment. By the way, in this case, the charging voltage of capacitor C1 increases from the start of pressing the key switch KSW.
The time until the transfer to C 2 begins, that is, the time period t 0 shown in FIG. 5, is approximately 300 μ·sec to 1 m·sec in a normal performance mode.
Further, the above time period t 1 is about 2 m·sec. Therefore, when the first arithmetic unit 101 detects that any key of the keyboard section (UK, LK) is pressed, it outputs an initial touch response and an after touch response regarding that key.
All you have to do is create a program to capture data within 2m・sec. Effect modulation oscillator 130, EXP pedal switch circuit 140, modulation circuit 150 Figure 6 shows the effect modulation oscillator 130 and EXP pedal switch circuit 140.
Pedal switch circuit 140 and modulation circuit 15
0 is a detailed circuit diagram showing an embodiment of the present invention, in which the effect modulation oscillator 130 includes two voltage-controlled variable frequency oscillators ( 130a and 130b (hereinafter referred to as VCO). This VCO130a, 130b
The oscillation frequency can be varied by variable resistors 1301 and 1303, respectively.
This allows the speed of the vibrato effect to be variably controlled. Further, the respective output signal levels can be varied by variable resistors 1302 and 1304, thereby variably controlling the depth of the vibrato effect. The output signal of the VCO 130a, that is, the effect modulation signal UKf for the upper keyboard UK is sent to the upper keyboard aftertouch weighting circuit 15 of the modulation circuit 150 via the switch 1501.
0c, and also the output signal of the VCO 130b, that is, the effect modulation signal for the lower keyboard LK.
LKf is connected to the modulation circuit 150 via the switch 1502.
The lower keyboard aftertouch weighting circuit 150d is supplied. Switch 1501 and 150
2 is for controlling whether or not to apply a vibrato effect to the musical tones of the pressed keys of the upper keyboard UK and lower keyboard LK, and is closed when a vibrato effect is to be applied. Since the EXP pedal switch circuit 140 is well known, its detailed circuit is not shown.
A volume control signal V EX whose output level changes according to the operating angle of the EXP pedal is output. This volume control signal V EX is used for the upper keyboard UK and lower keyboard LK.
Switch 1 that controls whether or not to apply the volume control effect of the EXP pedal to the musical sound of the pressed key.
Weighting circuit 15 for upper and lower keyboard aftertouches of modulation circuit 150 via 503 and 1504
0c and 150d in parallel. Note that the switches 1503 and 1504 are closed when the EXP pedal provides a volume control effect. The modulation circuit 150 receives touch sense signals TSu 1 to TSu 61 , TSu 1 to TSl 1 to each key of the upper keyboard UK and lower keyboard LK output from the touch sensor circuit 120.
The signals corresponding to the pressed keys are selected one by one among the TSl 61 , and the initial touch signal IT and after touch signal AT are time-divisionally extracted from the selected signals, and among these extracted signals, the initial touch signal IT corresponds to The musical tone parameter
[CA] to G[M 2 ] are decomposed into calculation parameters corresponding to the types, and these decomposed calculation parameters are
The AD・C160 converts it into a digital signal in a time-divisional manner and sends it to the data bus DB 1 as initial touch data for each calculation parameter, and the aftertouch signal AT is weighted for the upper keyboard aftertouch of the corresponding keyboard. The corresponding keyboard effect modulation signal UKf or
Musical tone parameters G[CA] to G are obtained by different weighting synthesis of LKf and volume control signal Vex.
[M 2 ] is decomposed into calculation parameters corresponding to the type, and these decomposed calculation parameters are used in AD/C18.
0 to time-divisionally convert it into a digital signal,
This is used as modulation data on the data bus.
Configured to send to DB 1 . In other words,
Upper keyboard output from touch sensor circuit 120
Touch sense signal for each key of UK and lower keyboard LK
TSu 1 to TSu 61 and TSl 1 to TSls 1 are input to an analog multiplexer 150c, and one of these input signals is selected by the analog multiplexer 150e at two different timings. That is, in the initial touch signal get cycle IG CY , the arithmetic unit 101 uses the I/O device address of the latch 150f as the upper bit information, and uses the touch sense circuit (see FIG. 4) corresponding to the key from which the touch sense signal is to be obtained, that is, the pressed key. Outputs address information whose lower bit information is the I/O device address (shown). In this case, the I/O of the touch sense circuit for each key is
The O device address is assigned corresponding to the key information of the key. Therefore, the arithmetic device 101
For example, when trying to extract the initial touch signal and after touch signal for the C1 key (UK), first the initial touch signal get cycle
In IG CY , the address of the latch 150f as an I/O device is used as the upper bit information, and the key information [000000000] of the C1 key (UK) (see Table 3 (a), (b) and Table 4) is used as the lower bit information. Outputs address information as bit information. Then address bus ADB 1
The upper bit information of the address information sent to is decoded by a decoder 150g, and an enable signal E1 for enabling the latch 150ff is output from the decoder 150g. This enables latch 150f and supplies the lower bit information of the address information sent to address bus ADB1 to analog multiplexer 150e. Then, the analog multiplexer 150e selects the C1 key (UK) assigned to the address corresponding to "000000000".
selects and outputs touch sense signals related to In this way, the analog multiplexer 15
The touch sense signal related to the C1 key (UK) selected at 0e is supplied to the upper and lower keyboard initial touch weighting circuits 150a and 150b, and these weighting circuits 150a and 15
By being differently weighted by variable resistors VR 1 to VR 6 provided inside 0b, it is decomposed into each calculation parameter, and is supplied to the next stage analog multiplexer 150h. In addition, the data selected by the first-stage analog multiplexer 150e
The touch sense signal for the C1 key (UK) is sent to the upper and lower keyboard aftertouch weighting circuits 150c and 150 via switches 1505 and 1506.
d is also supplied in parallel, where effect modulation signals UKf, corresponding to each keyboard (UK, LK) are supplied in parallel.
After being differently weighted and combined with LKf and the volume control signal V EX and decomposed into each calculation parameter, it is supplied to the next-stage analog multiplexer 150h. However, in the next step, the first arithmetic unit 101
C Outputs address information for reading the initial touch signal of the upper keyboard UK to which the 1st key (UK) belongs in a time-sharing manner for each calculation parameter. Therefore, the analog multiplexer 150h selects and outputs only the initial touch signal for each calculation parameter belonging to the initial touch signal group UIG related to the upper keyboard UK from among the input signals. In other words, the first arithmetic unit 101 uses the I/O device address of the latch 150i as the upper bit, and uses C 1
Keyboard code KBC (=
Address information as shown in Table 5 below, where "00") is the next bit information and the output of the parameter counter PC for sequentially reading the initial touch signal for each calculation parameter in a time-sharing manner is the lower bit information. Send to address bus ADB 1 .

【表】 ところで、パラメータカウンタPCのカウント
値と各演算パラメータとは次の第6表に示すよう
に関係付けられている。
[Table] Incidentally, the count value of the parameter counter PC and each calculation parameter are related as shown in Table 6 below.

【表】 この場合、パラメータカウンタPCのカウント
出力のうちビツトB8〜B5はイニシヤルタツチ信
号群およびモジユレーシヨン信号群の信号群選択
用の情報を表わしている。従つて、ラツチ150
iのI/Oデバイスアドレスおよびキーボードコ
ードKBCを固定したままの状態でパラメータカ
ウンタPCのカウント値を順次1〜6(10進表
示)へ変化させると、アドレス情報の上位ビツト
をデコードするデコーダ150gからラツチ15
0iにイネーブル信号E2が供給され、これによ
つてラツチ150iはイネーブル状態となり、こ
のラツチ回路150iからアナログマルチプレク
サ150hに対してキーボードコードKBCと順
次変化するパラメータカウンタPCの出力がアド
レス情報として供給され、これによつてアナログ
マルチプレクサ150hの出力から上鍵盤UKの
C1鍵に関する各演算パラメータ毎のイニシヤル
タツチ信号が時分割的に抽出される。 一方、C1鍵(UK)に関するモジユレーシヨン
信号の抽出は、当該C1鍵に関するイニシヤルタ
ツチ信号が抽出された後一定時間経過したモジユ
レーシヨン信号ゲツトサイクルMGCYにおいてイ
ニシヤルタツチ信号の抽出動作と同様にして行な
われるが、このモジユレーシヨン信号ゲツトサイ
クルMGCYの第1段階においてアナログマルチプ
レクサ150eから抽出されたC1鍵のアフタタ
ツチ信号ATは上鍵盤アフタタツチ用重み付け回
路150cの内部で次のようにして上鍵盤UKに
関する効果変調用信号UKfおよび音量制御信号V
EXと異重み付け合成されて各演算パラメータ毎の
モジユレーシヨン信号として出力される。 まず、アナログマルチプレクサ150eによつ
て抽出されたC1鍵(UK)に関するアフタタツチ
信号ATはスイツチ1505を介して上鍵盤アフ
タタツチ用重み付け回路150cの入力可変抵抗
VRi1によつて適当な振幅レベルに調整された
後、増幅器A1で増幅されて各楽音パラメータG
〔CA〕,G〔LA〕,G〔CT〕,G〔Pi〕,G
〔M1〕,G〔M2〕にそれぞれ対応して設けられた重
み付け回路1511〜1516に並列的に供給さ
れる。同様に、効果変調用信号UKfも入力可変抵
抗VRi2によつて適当な振幅レベルに調整された
後、増幅器A2で増幅されて各重み付け回路15
11〜1516に並列的に供給される。また、
EXPペダルスイツチ回路140から出力される
音量制御信号VEXも同様にして、入力可変抵抗
VRi3によつて適当な振幅レベルに調整された
後、増幅器A3で増幅されて各重み付け回路15
11〜1516に並列的に供給される。すると、
各重み付け回路1511〜1516においてはこ
れらの入力信号が可変抵抗VR1〜VR3によつて異
重み付けされた後、増幅器AMによつて合成され
る。そして、この増幅器AMの出力は出力可変抵
抗VR4によつて振幅レベルが調整され、各演算パ
ラメータ毎のモジユレーシヨン信号としてアナロ
グマルチプレクサ150hに供給される。アナロ
グマルチプレクサ150hにおいてはこの各演算
パラメータ毎のモジユレーシヨン信号がイニシヤ
ルタツチ信号ゲツトサイクルIGCYの場合と同様
にして順次1つづつ時分割的に抽出されて出力さ
れる。モジユレーシヨン信号をアナログマルチプ
レクサ150hにおいて抽出する場合におけるア
ドレス情報の下位ビツト情報は、第6表下欄に示
すものである。 以上のようにして時分割的に抽出された各演算
パラメータ毎のイニシヤルタツチ信号およびモジ
ユレーシヨン信号はAD・C160において対応
するデイジタル信号にそれぞれ変換されるが、
AD.C160は変換処理が終了するとその出力か
ら変換終了信号EOC(1ビツト)を出力する。
この変換終了信号EOCは、デコーダ150gか
ら出力されるイネーブル信号E4によつてイネー
ブル状態となる3ステートバスバツフア162を
介してデータバスDB1の最上位ビツトMSBのに送
出される。すると、第1演算装置101はデータ
バスDB1の最上位ビツトMSBにアナログ・デイジ
タル変換が終了したことを表わす“1”信号が現
われたことを検出し、次の段階において3ステー
トバスバツフア161をイネーブル状態とするた
めのアドレス情報をアドレスバスADB1に送出す
る。これによつてデコーダ150gからイネーブ
ル信号E5が出力され3ステートバスバツフア1
61はイネーブル状態となり、AD・C160に
おいてデイジタル信号に変換されたイニシヤルタ
ツチ信号およびモジユレーシヨン信号はこの3ス
テートバスバツフア161を介してデータバス
DB1にイニシヤルタツチデータおよびモジユレー
シヨンデータとして送出される。なお、AD・C
160もI/Oデバイスの1つとして固有のI/
Oデバイスアドレスが割当てられており、デコー
ダ150gから出力されるイネーブル信号E3
よつてイネーブル状態となりアナログ・デイジタ
ル変換処理を実行する。 レジストレーシヨンスイツチ回路(REG′・
CCT)170 REG′N・CCT170については特にその内部
の詳細回路例を図示しないが、第7図に示すよう
な各種の音色設定操作子(押ボタン、調整つま
み)を備えたレジストレーシヨンパネル171が
設けられており、押ボタンによる各種音色設定情
報は固有の情報にコード化されて3ステートバス
バツフアを介してデータバスDB1に送出され、調
整つまみによるアナログ的な各種音色設定情報は
デイジタル信号に変換された後固有の情報にコー
ド化され、この後3ステートバスバツフアを介し
てデータバスDB1に送出されるように構成されて
いる。 第7図はこの実施例における電子楽器において
使用される各種の音色設定情報を設定するための
レジストレーシヨンパネル171の一例を示すも
のであつて、発生楽音の基本的な音色、例えばピ
アノとかフルートとかの基本音色を各鍵盤
(UK,LK,PK)毎に、かつそれぞれの鍵盤にお
ける発音系列毎に押ボタンPBを用いて設定する
トーンカラーセレクト部171aと、各鍵盤
(UK,LK,PK)における発生楽音の中心ピツチ
および発音系列間におけるピツチ差を調整ツマミ
RBを用いて設定するピツチセレクト部171b
と、各鍵盤の発音系列UK1,UK2,LK1,LK
2,PK1,PK2における発生楽音のフイート
(例えば16フイート、8フイート、4フイート…
…)を押ボタンPBを用いて設定するフイートセ
レクト部171cと、各鍵盤の発音系列の音量
(レベル)および発音系列間の音量バランス(第
1発音系列と第2発音系列との間の音量混合比)
ならびに上鍵盤UKと下鍵盤LK間の音量バランス
を調整つまみRBで設定するレベルセツト部17
1dと、各鍵盤における発生楽音のリリースデー
タを設定するリリースデータセツト部171eと
を備えている。 トーンカラーセレクト部171aのうち上鍵盤
UKおよび下鍵盤LKに関してはクリア押ボタン
CLRを用いて第2発音系列の音色設定をキヤン
セルすることができ、結果的に発音系列数を1系
列か2系列かのいずれでも選択できるようになつ
ている。 リリースデータセツト部171eでは、各鍵盤
毎に2つの押ボタンPBと、1つの調整つまみRB
が設けられており、この2つの押ボタンPBで発
生楽音のリリース部特性をピアノタイプにする
か、あるいは電子オルガンタイプにするかのいず
れかが選択される。そして、押ボタンPBを操作
して電子オルガンタイプを選択した場合には調整
つまみRBを用いて所望の楽音のリリース時間を
決定するリリースタイムデータ△V〔Re〕アナ
ログ的に設定される。この場合、押ボタンPBに
より電子オルガンタイプを選択していても、調整
つまみRBをPで示す位置に設定しておくと、リ
リースタイムデータ△V〔Re〕はピアノタイプ
と同一データが使用される。 従つて、発生楽音のリリース部をコントロール
するために設定されるリリースデータR〔Re〕
は、下記の(a)〜(c)に示すように3種のデータパタ
ーンを有する。
[Table] In this case, bits B8 to B5 of the count output of the parameter counter PC represent information for selecting the initial touch signal group and the modulation signal group. Therefore, latch 150
When the count value of the parameter counter PC is sequentially changed from 1 to 6 (in decimal notation) while the I/O device address and keyboard code KBC of i are fixed, the decoder 150g that decodes the upper bits of the address information Latch 15
An enable signal E2 is supplied to 0i, thereby enabling the latch 150i, and the latch circuit 150i supplies the keyboard code KBC and the sequentially changing output of the parameter counter PC as address information to the analog multiplexer 150h. , this allows the output of the analog multiplexer 150h to be output from the upper keyboard UK.
The initial touch signal for each calculation parameter regarding the C1 key is extracted in a time-sharing manner. On the other hand, the extraction of the modulation signal for the C1 key (UK) is performed in the same way as the initial touch signal extraction operation in the modulation signal get cycle MG CY , which is a certain period of time after the initial touch signal for the C1 key is extracted. , the aftertouch signal AT of the C1 key extracted from the analog multiplexer 150e in the first stage of this modulation signal get cycle MG CY is used for effect modulation regarding the upper keyboard UK within the upper keyboard aftertouch weighting circuit 150c as follows. Signal UKf and volume control signal V
It is combined with EX with different weights and output as a modulation signal for each calculation parameter. First, the aftertouch signal AT related to the C1 key (UK) extracted by the analog multiplexer 150e is transmitted to the input variable resistor of the upper keyboard aftertouch weighting circuit 150c via the switch 1505.
After being adjusted to an appropriate amplitude level by VRi 1 , it is amplified by amplifier A 1 and each musical tone parameter G
[CA], G [LA], G [CT], G [Pi], G
[M 1 ] and G[M 2 ] are supplied in parallel to weighting circuits 1511 to 1516 provided corresponding to each other. Similarly, the effect modulation signal UKf is also adjusted to an appropriate amplitude level by the input variable resistor VRi 2 , and then amplified by the amplifier A 2 and sent to each weighting circuit 15.
11 to 1516 in parallel. Also,
Similarly, the volume control signal V EX output from the EXP pedal switch circuit 140 is connected to the input variable resistor.
After being adjusted to an appropriate amplitude level by VRi 3 , it is amplified by amplifier A 3 and sent to each weighting circuit 15.
11 to 1516 in parallel. Then,
In each of the weighting circuits 1511 to 1516, these input signals are differently weighted by variable resistors VR 1 to VR 3 and then combined by an amplifier AM . The amplitude level of the output of this amplifier A M is adjusted by an output variable resistor VR 4 , and the output is supplied to an analog multiplexer 150h as a modulation signal for each calculation parameter. In the analog multiplexer 150h, the modulation signals for each calculation parameter are sequentially extracted one by one in a time-sharing manner and outputted in the same manner as in the case of the initial touch signal get cycle IG_CY . The lower bit information of the address information when the modulation signal is extracted by the analog multiplexer 150h is shown in the lower column of Table 6. The initial touch signal and modulation signal for each calculation parameter extracted in a time-division manner as described above are converted into corresponding digital signals in the AD/C 160.
When the conversion process is completed, the AD.C 160 outputs a conversion end signal EOC (1 bit) from its output.
This conversion end signal EOC is sent to the most significant bit MSB of data bus DB1 via 3-state bus buffer 162 which is enabled by enable signal E4 output from decoder 150g. Then, the first arithmetic unit 101 detects that a "1" signal indicating that the analog-to-digital conversion has been completed appears in the most significant bit MSB of the data bus DB 1 , and in the next step, the 3-state bus buffer 161 Sends address information to enable the address bus ADB 1 . As a result, the enable signal E5 is output from the decoder 150g, and the 3-state bus buffer 1
61 is enabled, and the initial touch signal and modulation signal converted into digital signals in the AD/C 160 are transferred to the data bus via this 3-state bus buffer 161.
Sent to DB 1 as initial touch data and modulation data. In addition, AD・C
160 also has its own I/O device as one of the I/O devices.
O device address is assigned to it, and it is enabled by the enable signal E3 output from the decoder 150g and executes analog-to-digital conversion processing. Registration switch circuit (REG′・
CCT) 170 REG'N/CCT 170 has a registration panel 171 equipped with various tone setting operators (push buttons, adjustment knobs) as shown in Fig. 7, although a detailed internal circuit example is not particularly shown. Various tone setting information from the pushbuttons is encoded into unique information and sent to data bus DB 1 via the 3-state bus buffer, and various analog tone setting information from the adjustment knobs is encoded into unique information and sent to the data bus DB 1 via the 3-state bus buffer. After being converted into a signal, it is encoded into unique information and is then sent to the data bus DB 1 via a three-state bus buffer. FIG. 7 shows an example of a registration panel 171 for setting various tone setting information used in the electronic musical instrument of this embodiment. A tone color select section 171a for setting basic tones such as for each keyboard (UK, LK, PK) and for each pronunciation series on each keyboard using the push button PB, and each keyboard (UK, LK, PK). Knob to adjust the center pitch of the musical tone generated in and the pitch difference between the pronunciation series.
Pitch select section 171b set using RB
and the pronunciation series UK1, UK2, LK1, LK for each keyboard.
2. Feet of musical notes generated in PK1 and PK2 (e.g. 16 feet, 8 feet, 4 feet...
) is set using the pushbutton PB, and the volume (level) of the sound series of each keyboard and the volume balance between the sound series (volume mixture between the first sound series and the second sound series). ratio)
and a level set section 17 where the volume balance between the upper keyboard UK and lower keyboard LK is set using the adjustment knob RB.
1d, and a release data setting section 171e for setting release data of musical tones generated on each keyboard. Upper keyboard of tone color selection section 171a
Clear pushbutton for UK and lower manual LK
The CLR can be used to cancel the timbre setting of the second sound generation series, and as a result, the number of sound generation series can be selected as either one or two series. The release data set section 171e has two pushbuttons PB and one adjustment knob RB for each keyboard.
are provided, and these two pushbuttons PB select whether the release section characteristics of the generated musical tones will be piano type or electronic organ type. When the electronic organ type is selected by operating the pushbutton PB, the release time data ΔV[Re] for determining the release time of a desired musical tone is set in an analog manner using the adjustment knob RB. In this case, even if the electronic organ type is selected using the pushbutton PB, if the adjustment knob RB is set to the position indicated by P, the release time data △V [Re] will use the same data as the piano type. . Therefore, the release data R [Re] is set to control the release part of the generated musical tone.
has three types of data patterns as shown in (a) to (c) below.

【表】 つまり、電子オルガンタイプを選択した場合、
最上位ビツトMSBが“0”のとなり、その下位
ビツトで調整つまみRBを用いて手動設定された
リリースタイムデータ△V〔Re〕が表わされ
る。この場合、調整つまみがPの位置に設定され
ていると、最上位ビツトLSBを含めて全ビツトが
“0”となり、、Pの位置でなく0以上の場合には
最下位ビツトLSBが必ず“1”となるように構成
されている。 一方、ピアノタイプを選択した場合、最上位ビ
ツトMSBが常時“1”となり、他のビツトは有
効な意味が与えられず、全体としては負の値を示
すものとなる。 なお、上記データパターンが(b)と(c)で示される
場合、すなわちピアノタイプの場合、リリースタ
イムデータ△V〔Re〕はメモリ内部に予め記憶
されている固定のデータが使用される。 ところで、ピアノタイプまたは電子オルガンタ
イプに選択されたリリース部特性は、鍵解放時に
おけるフツトスイツチのオン・オフ状態によつて
さらに制御される。つまり、下記のリリース部特
性表に示すように、ピアノタイプが選択されてい
て、かつフツトスイツチがオン状態の時には解放
鍵に対応する楽音はあたかも鍵が解放されていな
いかのように鍵解放時におけるレベルを保持し、
その後においてフツトスイツチがオフ状態になつ
た時、固定のリリースタイムデータ△V〔Re〕
に基づき順次減衰する。また、ピアノタイプに選
択されていて、かつフツトスイツチかつオフ状態
の時には、解放鍵に対応する楽音は固定のリリー
スタイムデータ△V〔Re〕に基づき順次減衰す
る。 一方、リリース部特性が電子オルガンタイプに
選択されていて、かつ調整つまみRBによりリリ
ースタイムデータ△V〔Re〕が設定されてお
り、フツトスイツチがオン状態の時には、解放鍵
に対応する楽音は上記調整つまみRBで設定され
たリリースタイムデータ△V〔Re〕に基づき順
次減衰する。しかしこの場合、調整つまみRBが
Pの位置に設定さている時には固定のリリースタ
イムデータ△V〔Re〕に基づき順次減衰する。 また、リリース部特性が電子オルガンタイプに
選択されていて、かつフツトスツチがオフ状態の
時には、解放鍵に対応する楽音は固定のリリース
タイムデータ△V〔Re〕に基づき順次減衰す
る。
[Table] In other words, if you select the electronic organ type,
The most significant bit MSB is "0", and its lower bits represent release time data ΔV[Re] manually set using the adjustment knob RB. In this case, if the adjustment knob is set to the P position, all bits including the most significant bit LSB will be "0", and if it is not in the P position and the value is 0 or more, the least significant bit LSB will always be "0". 1”. On the other hand, when the piano type is selected, the most significant bit MSB is always "1", the other bits are not given any valid meaning, and the overall value is negative. In addition, when the above-mentioned data patterns are shown in (b) and (c), that is, in the case of a piano type, fixed data stored in advance in the memory is used as the release time data ΔV[Re]. Incidentally, the characteristics of the release section selected for the piano type or electronic organ type are further controlled by the on/off state of the foot switch when the key is released. In other words, as shown in the release section characteristics table below, when the piano type is selected and the foot switch is on, the musical tone corresponding to the released key will be played as if the key had not been released. hold the level,
After that, when the foot switch turns off, the fixed release time data △V [Re]
It is sequentially attenuated based on Further, when the piano type is selected and the foot switch is in the OFF state, musical tones corresponding to the release key are attenuated sequentially based on fixed release time data ΔV[Re]. On the other hand, when the release section characteristic is selected as electronic organ type, the release time data △V [Re] is set with the adjustment knob RB, and the foot switch is on, the musical tone corresponding to the release key will be adjusted as described above. Attenuates sequentially based on release time data △V [Re] set with knob RB. However, in this case, when the adjustment knob RB is set at position P, the release time is sequentially attenuated based on the fixed release time data ΔV[Re]. Further, when the release section characteristic is selected as electronic organ type and the foot switch is in the OFF state, musical tones corresponding to the release key are attenuated sequentially based on fixed release time data ΔV[Re].

【表】 フツトスイツチ回路180 フツトスイツチ回路180については、周知で
あるので特に詳細回路を図示しないが、このフツ
トスイツチ回路180からはフツトスイツチのオ
ン・オフに対応したオン・オフ情報(1ビツト:
オン“1”、オフ=“0”)が3ステートバスバツ
フアを介してデータバスDB1に送出される。 ワーキングメモリ(WRKメモリ)190 次に、WRKメモリ190は周知のRAMなどの
メモリ素子で構成されるものであるが、その一部
のメモリエリアを利用して次の第7表に示すよう
なレジスタが確保されている。
[Table] Footswitch Circuit 180 Since the footswitch circuit 180 is well known, a detailed circuit is not shown, but the footswitch circuit 180 provides on/off information (1 bit:
(ON = "1", OFF = "0") is sent to the data bus DB 1 via the 3-state bus buffer. Working memory (WRK memory) 190 Next, the WRK memory 190 is composed of well-known memory elements such as RAM, and a part of the memory area is used to store registers as shown in Table 7 below. is ensured.

【表】【table】

【表】 レジストレーシヨンレジスタRGNr1〜RGNr35
は、REG′N・CCT170から読み込まれた各種
のレジストレーシヨデータを一時記憶しておくた
めのレジスタであつて、これら各レジスタRGNr1
〜RGNr35に一時記憶されるレジストレーシヨン
データは次の第8表に示すように割当てられてい
る。なお、第8表において、各鍵盤(UK,LK,
PK)のピツチに関するレジストレーシヨンピツ
チデータとレベルに関するレジストレーシヨンレ
ベルデータに関するレジストレーシヨンレベルデ
ータについては、それぞれ2つのエリア(RGNr1
〜RGNr12とRGNr13〜RGNr25)が確保されている
が、レジスタRGNr1〜RGNr12は所定の加工が施
されたレジストレーシヨンピツチデータおよびレ
ジストレーシヨンレベルデータを一時記憶するた
めのものであり、レジスタRGNr13〜RGNr25
REG′N・CCT170から読み込まれた生のレジ
ストレーシヨンピツチデータおよびレジストレー
シヨンレベルデータを一時記憶するためのものあ
る。レジストレーシヨンピチデータおよびレジス
トレーシヨンレベルデータの加工内容については
後述する。
[Table] Registration register RGNr 1 to RGNr 35
is a register for temporarily storing various registration data read from REG'N/CCT170, and each of these registers RGNr 1
~RGNr The registration data temporarily stored in 35 is allocated as shown in Table 8 below. In addition, in Table 8, each keyboard (UK, LK,
Registration level data regarding the pitch and registration level data regarding the pitch of the PK) are stored in two areas (RGNr 1
~RGNr 12 and RGNr 13 ~RGNr 25 ) are reserved, but registers RGNr 1 to RGNr 12 are for temporarily storing registration pitch data and registration level data that have been subjected to predetermined processing. Yes, registers RGNr 13 to RGNr 25 are
There is a device for temporarily storing raw registration pitch data and registration level data read from the REG'N/CCT 170. Details of processing the registration pitch data and registration level data will be described later.

【表】【table】

【表】 フツトスイツチフラグレジスタFFGrは、フツ
トスイツチのオン・オフ状態を一時記憶するため
のものである。 レジストレーシヨンサーチカウンタRSCは、
REG′N・CCT170から一定周期毎にレジスト
レーシヨンデータを読み込むための一種のタイマ
として機能するカウンタである。 キーオンフアイルKOF1〜KOF14は、上鍵盤
UKおよびLKに関するキーコードKCが予備登録
処理によつて記憶されるレジスタである。 ペダルキーオンフアイルPKFaおよびPKFb
は、ペダル鍵盤に関するキーコードKCが予備登
録処理によつて記憶されるレジスタであつて、上
記14個のキーオンフアイルKOF1〜KOF14と合計
して第1プロセツサ部100には16個のキーオン
フアイルKOFが設けられている。これは、同時
発音数16と対応している。 キーオンフアイルサーチカウンタKFCは、上
鍵盤UKおよび下鍵盤LKに関するる予備登録処理
を実行する際、14個のキーオンフアイルKOF1
KOF14の記憶内容を検出したり、新たなキーコー
ドKCを登録したりするために用いられる。 プライオリテイフラグレジスタPFGrは、ペダ
ル鍵盤PKに関する予備登録処理を実行する際、
その優先制御のための優先状態を示すフラグが記
憶されるレジスタである。 キーボードオールドステータスレジスタ
KBOSr0〜KBOSr35は、前回のプレイイベントサ
ーチルーチンにおいて検出した鍵盤部における鍵
状態を前述したインデツクスナンバix0〜ix35に対
応して記憶しているレジスタである。インデツク
スナンバix0〜ix35の種類は前述の第3表(a)〜(b)に
示すように合計で24種類である。従つて、このキ
ーボードオールドステータスレジスタKBOSr0
KBOSr35もこの24種類のインデツクスナンバix0
〜ix35に対応して24個のレジスタから構成されて
いる。 キーボードニユーステータスレジスタKBNSr
は、前記インデツクスナンバix0〜ix35のうちの1
つにより指定されたキースイツチマトリクス11
0aの行のライン(l0〜l35)における最も新しい
鍵状態、すなわちキーボードニユーステータスを
一時記憶するレジスタである。 ノートナンバレジスタNNrは、押下鍵のノート
コードNCを作るために用いられる3ビツトのレ
ジスタであり、このノートナンバレジスタNNrの
内容を下位ビツトとし、前記インデツクスナンバ
ixを上位ビツトとして結合することによりキーコ
ードKCが作られる。このようにして作られたキ
ーコードKCはキーコードレジスタKCrに一時記
憶される。 以上が第1プロセツサ部100を構成する各部
の詳細構成説明である。以下、プログラムメモリ
102に記憶されている演算プログラムに従つて
この第1プロセツサ部100の動作を詳細に説明
する。 第8図a〜第14図は、第1プロセツサ部10
0における演算プログラムの一例を示すフローチ
ヤートである。 なお、この実施例における各フロチヤートで使
用される略記号等についての説明は次の第9表に
示している。
[Table] The foot switch flag register FFGr is used to temporarily store the on/off state of the foot switch. Registration search counter RSC is
This counter functions as a type of timer for reading registration data from the REG'N/CCT 170 at regular intervals. Key-on files KOF 1 to KOF 14 are for the upper keyboard.
This is a register in which the key codes KC for UK and LK are stored by the pre-registration process. Pedal key-on file PKFa and PKFb
is a register in which the key code KC related to the pedal keyboard is stored through preliminary registration processing, and in total, there are 16 key-on files in the first processor section 100, including the 14 key-on files KOF 1 to KOF 14 described above. KOF is set up. This corresponds to a simultaneous polyphony of 16. The key-on file search counter KFC selects the 14 key-on files KOF 1 to
It is used to detect the memory contents of KOF 14 and to register a new key code KC. Priority flag register PFGr is used when performing preliminary registration processing regarding pedal keyboard PK.
This is a register in which a flag indicating a priority state for priority control is stored. keyboard old status register
KBOSr 0 to KBOSr 35 are registers that store key states in the keyboard section detected in the previous play event search routine in correspondence with the above-mentioned index numbers ix 0 to ix 35 . There are a total of 24 types of index numbers ix 0 to ix 35 as shown in Table 3 (a) to (b) above. Therefore, this keyboard old status register KBOSR 0 ~
KBOSr 35 also has these 24 types of index numbers ix 0
It consists of 24 registers corresponding to ~ix 35 . Keyboard new status register KBNSr
is one of the index numbers ix 0 to ix 35
key switch matrix 11 specified by
This is a register that temporarily stores the newest key state in the line (l 0 to l 35 ) of the row 0a, that is, the keyboard new status. The note number register NNr is a 3-bit register used to create the note code NC of the pressed key.The contents of this note number register NNr are used as the lower bits, and the index number is
Key code KC is created by combining ix as the upper bit. The key code KC created in this way is temporarily stored in the key code register KCr. The above is a detailed description of the configuration of each part constituting the first processor section 100. The operation of the first processor unit 100 will be described in detail below in accordance with the calculation program stored in the program memory 102. 8a to 14 show the first processor section 10.
2 is a flowchart showing an example of an arithmetic program in 0. Note that explanations of the abbreviations used in each frochart in this example are shown in Table 9 below.

【表】 はじめに、第8図a〜bに示すメインルーチン
について説明する。このメインルーチンは、前述
したように、大別してレジストレーシヨンデータ
ゲツトルーチン、プレイイベントサーチルーチ
ン、モジユレーシヨンデータゲツトルーチンとか
ら構成されている。以下、各ステツプ毎に動作を
説明する。 (ステツプ1000) 演奏者によつて電子楽器の電源が投入される
と、まず、このステツプ1000で全回路におけ
るメモリ、レジスタ等の記憶内容がクリアされ、
第1プロセツサ部100は初期状態となる。この
後、演奏者はREG′N・CCT170における各種
の音色設定操作子によつて所望の発生楽音を得る
ための音色設定操作を行う。 (ステツプ1001) 演奏者の音色設定操作に対応してREG′N・
CCT170から出力されるレジストレーシヨン
ンデータの初期状態およびフツトスイツチ回路1
80から出力されるオン・オフ状態を表わすデー
タをWRKメモリ190にストアする。この場合
の各種レジストレーシヨンデータは、生のデータ
として前述した第8表に示したようレジストレー
シヨンレジスタRGNr13〜RGNr35に記憶される。
この全体として28種類のレジストレーシヨンデー
タを取込むための処理は、具体的には第1演算装
置101のプログラムカウンタPGCから各レス
トレーシヨンデータの種類に対応したI/Oデバ
イスアドレス情報を順次送ることによつて実行さ
れる。従つて、このステツプ1001は複数の命
令群から構成される。 (ステツプ1002) このステツプ1002では前記ステツプ100
1で各レジストレーシヨンンレジスタRGNr13
RGNr35に一時記憶された生のレジストレーシヨ
ンデータのうち、ピツチに関するデータ、すなわ
ち各鍵盤毎の中心ピツチデータ(P〔Piu〕,R
〔Pil〕,R〔Pip〕)および各鍵盤における発音系
列相互間のピツチ差データ(R〔DTu〕,R
〔DTl〕,R〔DTp〕)に基づき各鍵盤の発音系列
毎のレジストレーシヨンピツチデータR
〔〔Piu1〕,R〔〔Piu2〕,R〔〔Pil1〕,R〔〔Pil2
〕,
R〔〔Pip1〕,R〔〔Pip2〕が算出される。この各鍵
盤の発音系列毎のレジストレーシヨンピツチデー
タR〔〔Piu1〕〜R〔〔Pip2〕は、次の第13式〜第18
式によつて算出される。 R〔Piu1〕=R〔Piu〕+R〔DTu〕 …(13) R〔Piu2〕=R〔Piu〕−R〔DTu〕 …(14) R〔Pil1〕=R〔Pil〕+R〔DTl〕 …(15) R〔Pil2〕=R〔Pil〕−R〔DTl〕 …(16) R〔Pip1〕=R〔Pip〕+R〔DTp〕 …(17) R〔Pip2〕=R〔Pip〕−R〔DTp〕 …(18) このようにして算出された各鍵盤の発音系列毎
のレジストレーシヨンピツチデータは、予め格納
エリアが定められているレジストレーシヨンレジ
スタRGNr1〜RGNr6のそれぞれに記憶される(第
8表参照)。 (ステツプ1003) このステツプ1003では、前記ステツプ10
02と同様にして各鍵盤の発音系列毎のレジスト
レーシヨンレベルデータR〔Miu1〕,R
〔Miu2〕,R〔Mil1〕,R〔Mil2〕,R〔Mip1〕,R
〔Mip2〕が算出される。 つまり、各鍵盤の発音系列毎のレジストレーシ
ヨンレベルデータR〔Miu1〕〜R〔〔Mip2〕は、各
鍵盤毎のレジストレーシヨンレベルデータR
〔Miu〕,R〔Mil〕,R〔Mip〕および上鍵盤UK
の発音系列間混合レベルデータR〔MXu〕、下鍵
盤LKの発音系列間混合レベルデータR〔MXl〕、
ペダル鍵盤PKの発音系列間混合レベルデータR
〔Mxp〕、上鍵盤UKと下鍵盤LK相互間のバランス
データR〔BL〕に基づいて次の第19式〜第24式
によつて算出される。 R〔Miu1〕 =R〔Miu〕+R〔Mxu〕+R〔BL〕 …(19) R〔Miu2〕 =R〔Miu〕−R〔Mxu〕+R〔BL〕 …(20) R〔Mil1〕 =R〔Mil〕+R〔Mxl〕−R〔BL〕 …(21) R〔Mil2〕 =R〔Mil〕−R〔Mxl〕−R〔BL〕 …(22) R〔Mip1〕=R〔Mip〕+R〔Mxp〕 …(23) R〔Mip2〕=R〔Mip〕−R〔Mxp〕 …(24) このようにして算出された各鍵盤の発音系列毎
のレジストレーシヨンレベルデータR〔Miu1〕〜
R〔Mip2〕は、予め格納エリアが定められている
レジストレーシヨンレジスタRGNr7〜RGNr12
それぞれに記憶される(第8表参照)。 (ステツプ1004) このステツプ1004では、REG′N・CCT1
70から読み込まれてレジストレーシヨンレジス
タRGNr26〜RGNr35に記憶されている生の各種レ
ジストレーシヨンデータおよび前記ステツプ10
02,1003において加工したレジストレーシ
ヨンピツチデータR〔Piu1〕〜R〔Pip2〕、レジス
トレーシヨンレベルデータR〔Miu1〕〜R
〔Mip2〕を初期状態におけるレジストレーシヨン
データとして固有の判別コードJCを付し、1連
のレジストレーシヨンメツセージとしてFIFO1
を介して第2プロセツサ部200に転送する。 ここで、この実施例における判別コードJCは
8ビツトの情報で表現され、各ビツト情報のもつ
意味については次の第10表に示すように定義づけ
られている。従つて、このステツプ1004にお
いては、先頭情報として以下順次後続するデータ
がレジストレーシヨンデータであることを示す
「10010000」の判別コードJCがまず転送され、こ
れに続いて各種レジストレーシヨンデータが順次
転送される。 この場合、各種レジストレーシヨンデータは次
の第11表(その1〜その3)に示すように所定の
転送順位に従つて転送される。
[Table] First, the main routine shown in FIGS. 8a to 8b will be explained. As described above, this main routine is broadly divided into a registration data get routine, a play event search routine, and a modulation data get routine. The operation of each step will be explained below. (Step 1000) When the electronic musical instrument is powered on by the performer, first, in step 1000, the stored contents of the memory, registers, etc. in all circuits are cleared.
The first processor section 100 is in an initial state. Thereafter, the performer performs tone setting operations using various tone setting operators in the REG'N/CCT 170 to obtain a desired musical tone. (Step 1001) In response to the performer's tone setting operation, REG'N.
Initial state of registration data output from CCT170 and foot switch circuit 1
Data representing the on/off state outputted from 80 is stored in WRK memory 190. The various registration data in this case are stored as raw data in the registration registers RGNr 13 to RGNr 35 as shown in Table 8 above.
Specifically, the process for importing 28 types of registration data as a whole involves sequentially acquiring I/O device address information corresponding to each type of registration data from the program counter PGC of the first processing unit 101. This is done by sending. Therefore, this step 1001 is composed of a plurality of instruction groups. (Step 1002) In this step 1002, step 1002
1 for each registration register RGNr 13 ~
Among the raw registration data temporarily stored in the RGNr 35 , pitch-related data, that is, center pitch data for each key (P [Piu], R
[Pil], R[Pip]) and pitch difference data between the pronunciation series on each keyboard (R[DTu], R
[DTl], R[DTp]) Registration pitch data R for each tone sequence of each keyboard
[[Piu 1 ], R[[Piu 2 ], R[[Pil 1 ], R[[Pil 2]
],
R[[Pip 1 ] and R[[Pip 2 ] are calculated. The registration pitch data R [[Piu 1 ] to R[[Pip 2 ]] for each tone series of each keyboard are calculated using the following equations 13 to 18.
Calculated by the formula. R[Piu 1 ]=R[Piu]+R[DTu]…(13) R[Piu 2 ]=R[Piu]−R[DTu]…(14) R[Pil 1 ]=R[Pil]+R[DTl] ] …(15) R[Pil 2 ]=R[Pil]−R[DTl]…(16) R[Pip 1 ]=R[Pip]+R[DTp]…(17) R[Pip 2 ]=R[ Pip]-R[DTp]...(18) The registration pitch data for each tone series of each keyboard calculated in this way is stored in the registration registers RGNr 1 to RGNr 6 whose storage areas are determined in advance. (See Table 8). (Step 1003) In this step 1003, step 10
In the same way as 02, the registration level data R [Miu 1 ], R for each tone series of each keyboard
[Miu 2 ], R[Mil 1 ], R[Mil 2 ], R[Mip 1 ], R
[Mip 2 ] is calculated. In other words, the registration level data R[Miu 1 ] to R[[Mip 2 ] for each sound series of each keyboard are the registration level data R for each keyboard.
[Miu], R [Mil], R [Mip] and upper keyboard UK
Mixed level data between pronunciation series R [MXu], Mixed level data R [MXl] between pronunciation series of lower keyboard LK,
Pedal keyboard PK sound series mixed level data R
[Mxp] is calculated by the following equations 19 to 24 based on the balance data R [BL] between the upper keyboard UK and the lower keyboard LK. R[Miu 1 ] =R[Miu]+R[Mxu]+R[BL]…(19) R[Miu 2 ] =R[Miu]−R[Mxu]+R[BL]…(20) R[Mil 1 ] =R[Mil]+R[Mxl]-R[BL]...(21) R[Mil 2 ] =R[Mil]-R[Mxl]-R[BL]...(22) R[Mip 1 ]=R[ Mip]+R[Mxp]...(23) R[Mip 2 ]=R[Mip]-R[Mxp]...(24) Registration level data R for each tone series of each keyboard calculated in this way Miu 1 〕〜
R [Mip 2 ] is stored in each of the registration registers RGNr 7 to RGNr 12 whose storage areas are determined in advance (see Table 8). (Step 1004) In this step 1004, REG'N・CCT1
Various raw registration data read from 70 and stored in registration registers RGNr 26 to RGNr 35 and the step 10
Registration pitch data R [Piu 1 ] ~ R [Pip 2 ], registration level data R [Miu 1 ] ~ R processed in 02, 1003
[Mip 2 ] is assigned a unique identification code JC as registration data in the initial state, and is stored in FIFO 1 as a series of registration messages.
The data is transferred to the second processor section 200 via the. Here, the discrimination code JC in this embodiment is expressed by 8-bit information, and the meaning of each bit information is defined as shown in Table 10 below. Therefore, in step 1004, a determination code JC of "10010000" indicating that the data that follows in sequence is registration data is first transferred as the head information, and then various registration data are sequentially transferred. be transferred. In this case, various types of registration data are transferred in accordance with a predetermined transfer order as shown in Table 11 (Parts 1 to 3) below.

【表】【table】

【表】【table】

【表】【table】

【表】【table】

【表】 (ステツプ1005) 以上のようにしてREG′N・CCT170の初期
状態におけるレジストレーシヨンデータの転送処
理が終了すると、プログラムは以降においてプレ
イイベントサーチルーチンおよびモジユレーシヨ
ンデータゲツトルーチンへと移行するわけである
が、これらのルーチンへ移行する前に、
REG′N・CCT170におけるレジストレーシヨ
ン状態を一定周期毎に読み込むための周期データ
がこのステツプ1005においてレジストレーシ
ヨンサーチカウンタRSCにセツトされる。この
実施例では周期データとして「140」をレジスト
レーシヨンカウンタRSCにセツトしている。こ
のレジストレーシヨンカウンタRSCにセツトさ
れた周期データ「140」は、後述するプレイイベ
ントサーチルーチン1008およびモジユレーシ
ヨンデータゲツトルーチン1009が1回実行さ
れる毎に順次1カウント値ずつ減算される。 (ステツプ1006〜1007) このステツプ1006では、REG′N・CCT1
70におけるレジストレーシヨンがその後におい
て変化していないかどうかが検出される。もし、
レジストレーシヨンが変化している場合、ステツ
プ1007の分岐によりプログラムは端子2を介
してステツプ1012(第8図b)の実行に移
り、レジストレーシヨンの新規状態の更新処理に
移行する。逆に、レジストレーシヨンに変化がな
い場合、ステツプ1007の分岐によりプログラ
ムはステツプ1008で示すプレイイベントルー
チンに移行する。このレジストレーシヨンの変化
を検出する処理は、レジストレーシヨンレジスタ
RGNr13〜RGNr35に記憶されている各レジストレ
ーシヨンデータと、当該ステツプ1006のマイ
クロステツプによりREG′N・CCT170から順
次読み込まれる対応する種類の各レジストレーシ
ヨンデータとの排他的論理和を求めることによつ
て実現される。すなわち、対応する種類の比較デ
ータが異なつている場合、排他的論理和の実行結
果は“1”となり、逆の場合は“0”となる。従
つて、ステツプ1007によるプログラムの分岐
はこの排他的論理和の実行結果に基づいて実行さ
れる。 (ステツプ1008) 前記ステツプ1006によるプログラムを実行
した結果、その後においてレジストレーシヨンの
内容に変化がなければ、プログラムはステツプ1
008のプレイイベントサーチルサーチンの実行
に移行する。 このプレイイベントサーチルーチンは、前述し
たように、鍵盤部における鍵状態の変化を検出
し、新たな押下鍵に対する予備登録処理および解
放鍵に対する予備登録の解除処理を実行すると共
に、鍵状態の変化に対応したオンイベントメツセ
ージあるいはオフイベントメツセージを第2プロ
セツサ部200に対して転送する処理を行うルー
チンである。このプレイイベントサーチルーチン
は、大別して、マニユアル鍵盤(上鍵盤UK、下
鍵盤LK)における上記各種の処理を実行するマ
ニユアルイベントサーチルーチンと、ペダル鍵盤
PKにおける上記各種の処理を実行するペダルイ
ベントサーチルーチンと、フツトスイツチのオ
ン・オフ状態を検出するフツトスイツチサーチル
ーチンとから構成されている。この場合、フツト
スイツチのオン・オフ状態をレジストレーシヨン
データゲツトルーチンとは別に改めて検出してい
るのはフツトスイツチの操作が頻繁に行なわれる
からである。 なお、このプレイイベントサーチルーチンにつ
いては第9図〜第13図eに示すフローチヤート
に基づき後で詳細に説明する。 (ステツプ1009) このステツプ1009のモジユレーシヨンデー
タゲツトルーチンでは、前記ステツプ1008の
プレイイベントサーチルーチンにおいて予備登録
を行つた押下鍵に関するモジユレーシヨンデータ
を変調回路150から抽出する処理が実行され
る。そして、この抽出された新たな押下鍵に関す
るモジユレーシヨンデータは、固有の判別コード
(「10100000」:第10表)が付され、一連のモジユ
レーシヨンメツセージとして第2プロセツサ部2
00に転送される。 (ステツプ1010〜1011) このようにしてプレイイベントサーチルーチン
およびモジユレーシヨンデータゲツトルーチンの
処理が終了すると、このステツプ1010におい
てレジストレーシヨンサーチカウンタRSCの内
容が1カウント値だけ減算される。つまり、プロ
グラムの実行がこのステツプ1010に移行する
毎にレジストレーシヨンサーチカウンタRSCの
内容は順次デクレメントされる。そして、レジス
トレーシヨンサーチカウンタRSCの新たな内容
が“0”であれば、ステツプ1011の分岐によ
りプログラムはステツプ1005に戻る。もし、
レジストレーシヨンサーチカウンタRSCの新た
な内容が“0”でなければ、すなわちステツプ1
008〜1009の実行回数が初期値としての
「140」に達していなければ、プログラムはステツ
プ1011の分岐によりステツプ1008に戻
る。従つて、この実施例では、プレイイベントサ
ーチルーチンおよびモジユレーシヨンデータゲツ
トルーチンの実行回数「140」に対し1回の割合
でレジストレーシヨンデータのサンプリングが実
行されていることになる。そして、ステツプ10
06のプログラムを実行した結果、レジストレー
シヨンに変化があれば第8図bに示すステツプ1
012〜1015のレジストレーシヨン更新処理
に移行する。 (ステツプ1012〜1015) このステツプ1012〜1015は、レジスト
レーシヨンの更新処理、すなわちステツプ100
6のプログラムを実行した結果、レジストレーシ
ヨンデータに変化があることが検出されるとレジ
ストレーシヨンレジスタRGNr13〜RGNr25の記憶
内容を新たな状態に更新すると共に、新たな状態
におけるレジストレーシヨンデータを第2プロセ
ツサ部200に対して転送する処理を行うプログ
ラムである。すなわち、ステツプ1012におい
てレジストレーシヨンの新規状態をレジストレー
シヨンレジスタRGNr13〜RGNr35にストアする。
次に、ステツプ1013において、前述のステツ
プ1002と同様、ピツチデータの演算を行い、
さらに次のステツプ1014においてレベルデー
タの演算を行い、これらの演算処理したレジスト
レーシヨンピツチデータおよびレジストレーシヨ
ンレベルデータを予め定められたレジストレーシ
ヨンレジスタRGNr1〜RGNr12に一時記憶させ
る。そして、これらのレジストレーシヨンデータ
を前述のステツプ1004と同様にして第2プロ
セツサ部200に転送する。そして、このような
レジストレーシヨン更新処理が終了すると、プロ
グラムは端子3を介してステツプ1008のプレ
イイベントルーチンの実行に移行する。 なお、プレイイベントサーチルーチンおよびモ
ジユレーシヨンデータゲツトルーチンにおいて第
1プロセツサ部100から第2プロセツサ部20
0に対して転送される各鍵盤のオンイベントメツ
セージ,オフイベントメツセージおよびモジユレ
ーシヨンメツセージは、第12表の転送メツセージ
例に示すように各種のデータが所定の転送順序で
送られるようになつている。すなわち、上鍵盤
UKおよび下鍵盤LKのオンイベントメツセージに
ついては、固有の判別コードJCを先頭データと
し以後キーコードKC、各演算パラメータ毎のイ
ニシヤルタツチデータの順に転送される。また、
上鍵盤UK、下鍵盤LKのオフイベントメツセージ
と、ペダル鍵盤PKのオンイベントメツセージお
よびオフイベントメツセージについては、固有の
判別コードJCを先頭データとし、次に該当鍵の
キーコードKCが順に転送される。また、上鍵盤
UKおよび下鍵盤LKのモジユレーシヨンメツセー
ジについては、固有の判別コードJCを先頭デー
タとし、以後キーコードKC、各演算パラメータ
毎のモジユレーシヨンデータが順に転送される。
また、フツトスイツチのオンイベントメツセージ
およびオフイベントメツセージについては、固有
の判別コードJCのみが転送される。
[Table] (Step 1005) When the registration data transfer process in the initial state of the REG'N/CCT 170 is completed as described above, the program then proceeds to the play event search routine and the modulation data get routine. However, before transitioning to these routines,
Periodic data for reading the registration state in the REG'N.CCT 170 at regular intervals is set in the registration search counter RSC in step 1005. In this embodiment, "140" is set as periodic data in the registration counter RSC. The periodic data "140" set in the registration counter RSC is sequentially decremented by one count each time a play event search routine 1008 and a modulation data get routine 1009, which will be described later, are executed once. (Steps 1006-1007) In this step 1006, REG'N・CCT1
It is detected whether the registration at 70 has subsequently changed. if,
If the registration has changed, the program branches to step 1007 and proceeds to step 1012 (FIG. 8b) via terminal 2 to update the new state of the registration. Conversely, if there is no change in the registration, the program branches at step 1007 to a play event routine shown at step 1008. The process of detecting this registration change is the registration register
Find the exclusive OR of each registration data stored in RGNr 13 to RGNr 35 and each corresponding type of registration data sequentially read from REG'N/CCT 170 by the microstep of step 1006. This is achieved by That is, when the corresponding types of comparison data are different, the execution result of the exclusive OR is "1", and in the opposite case, it is "0". Therefore, the program branching at step 1007 is executed based on the execution result of this exclusive OR. (Step 1008) As a result of executing the program in step 1006, if there is no change in the content of the registration, the program returns to step 1.
The process moves to the execution of play event search 008. As described above, this play event search routine detects a change in the key state in the keyboard section, executes preliminary registration processing for a newly pressed key and deregistration processing for a released key, and also performs preliminary registration processing for a newly pressed key and cancellation processing for a released key. This routine performs a process of transferring a corresponding on-event message or off-event message to the second processor section 200. This play event search routine can be roughly divided into a manual event search routine that executes the above various processes on the manual keyboard (upper keyboard UK, lower keyboard LK), and a manual event search routine that executes the various processes described above for the manual keyboard (upper keyboard UK, lower keyboard LK), and a manual event search routine that executes the various processes described above for the manual keyboard (upper keyboard UK, lower keyboard LK)
It consists of a pedal event search routine that executes the above-mentioned various processes in PK, and a foot switch search routine that detects the on/off state of the foot switch. In this case, the on/off state of the foot switch is detected separately from the registration data get routine because the foot switch is frequently operated. This play event search routine will be explained in detail later based on the flowcharts shown in FIGS. 9 to 13e. (Step 1009) In the modulation data get routine of step 1009, a process is executed to extract from the modulation circuit 150 the modulation data related to the pressed key that was preliminarily registered in the play event search routine of step 1008. Ru. The extracted modulation data regarding the newly pressed key is attached with a unique discrimination code ("10100000": Table 10), and is sent to the second processor section 2 as a series of modulation messages.
Transferred to 00. (Steps 1010-1011) When the play event search routine and the modulation data get routine are completed in this way, in step 1010 the contents of the registration search counter RSC are decremented by one count value. That is, each time the program execution moves to step 1010, the contents of the registration search counter RSC are sequentially decremented. If the new content of the registration search counter RSC is "0", the program returns to step 1005 by branching from step 1011. if,
If the new content of the registration search counter RSC is not “0”, that is, step 1
If the number of executions of steps 008 to 1009 has not reached the initial value of "140", the program branches to step 1011 and returns to step 1008. Therefore, in this embodiment, the registration data is sampled once for every 140 executions of the play event search routine and the modulation data get routine. And step 10
As a result of executing the program 06, if there is a change in the registration, proceed to step 1 shown in Figure 8b.
The process moves to registration update processing from 012 to 1015. (Steps 1012 to 1015) These steps 1012 to 1015 are registration update processing, that is, step 100.
As a result of executing the program in step 6, if a change in the registration data is detected, the memory contents of registration registers RGNr 13 to RGNr 25 are updated to a new state, and the registration data in the new state is updated. This is a program that performs processing to transfer data to the second processor section 200. That is, in step 1012, the new registration state is stored in registration registers RGNr 13 to RGNr 35 .
Next, in step 1013, similar to step 1002 described above, the pitch data is calculated,
Further, in the next step 1014, level data is calculated, and the processed registration pitch data and registration level data are temporarily stored in predetermined registration registers RGNr 1 to RGNr 12 . These registration data are then transferred to the second processor section 200 in the same manner as in step 1004 described above. When such registration update processing is completed, the program shifts to execution of the play event routine at step 1008 via terminal 3. Note that in the play event search routine and the modulation data get routine, the first processor section 100 to the second processor section 20
The on-event messages, off-event messages, and modulation messages for each key that are transferred to 0 are such that various types of data are sent in a predetermined transfer order, as shown in the transfer message examples in Table 12. ing. i.e. upper keyboard
Regarding on-event messages for the UK and lower keyboard LK, the unique discrimination code JC is the first data, and then the key code KC and the initial touch data for each calculation parameter are transferred in this order. Also,
For the off-event messages of the upper keyboard UK and lower keyboard LK, and the on-event messages and off-event messages of the pedal keyboard PK, the unique discrimination code JC is used as the first data, and then the key code KC of the corresponding key is transferred in order. . Also, the upper keyboard
For modulation messages for UK and lower keyboard LK, the unique discrimination code JC is used as the first data, and thereafter the key code KC and the modulation data for each calculation parameter are transferred in order.
Further, for the foot switch on-event message and off-event message, only the unique discrimination code JC is transferred.

【表】 (プレイイベントサーチルーチン) 次に、プレイイベントサーチルーチンについて
第9図〜第13図cに示すフローチヤートに基づ
き詳細に説明する。 メインルーチンにおけるプログラムの実行がプ
レイイベントサーチルーチンに移行すると、まず
第9図のステツプ1020において第1演算装置
101の内部に設けられているインデツクスレジ
スタIXrに初期値として「0」がセツトされる。
つまり、インデツクスレジスタIXrには、キース
イツチ回路110(第3図a)のデコーダ110
bからインデツクスナンバix0〜ix35を順次出力す
るための初期値として「0」がセツトされる。こ
の後、第1演算装置101はプログラムカウンタ
PGCの出力を上位アドレス情報、インデツクス
レジスタIXrの出力を下位アドレス情報としてア
ドレスバスADB1に送出する。すると、デコーダ
110bからインデツクスナンバix0が出力さ
れ、これによつて上鍵盤UKの第1オクターブに
おけるノートC〜Gの鍵状態を示すキーボードス
テータス情報KBSが3ステートバスバツフア1
10cに一時記憶される。 3ステートバスバツフア110eに一時記憶さ
れたキーボードステータス情報KBSは、次のス
テツプ1021のマニユアルイベントサーチルー
チンの第1ステツプにおいてキーボードニユース
テータス情報KBNSとしてAアキユムレータ
AccAにロードされ、この後キーボードオールド
ステータス情報KBOSと比較される。そして、そ
の比較結果において、インデツクスレジスタIXr
の内容で指定された当該オクターブにおける鍵状
態が前回のプレイイベントサーチルーチンにおけ
る鍵状態と相違しているならば、その相違がいず
れの鍵の状態変化に起因するものなのかが検出さ
れ、新たな押鍵操作に判う鍵状態の変化である場
合にはこの押下鍵に対応するキーコードKCの作
成およびこのキーコードKCのキーオンフアイル
KOF1〜KOF14への登録などの処理が実行された
後、この押下鍵に関するオンイベントメツセージ
が第2プロセツサ部200に転送される。一方、
鍵状態の変化が新たな離鍵操作に伴うものである
場合には、この離鍵に対応するキーコードKCの
キーオンフアイルKOF1〜KOF14からの登録解除
処理が実行され、この後当該離鍵に関するオフイ
ベントメツセージが第2プロセツサ部200に転
送される。なお、このマニユアルイベントサーチ
ルーチンについては第10図a〜bに示す詳細フ
ローチヤートを用いて後述する。 このようにしてインデツクスナンバix0のグル
ープに所属する上鍵盤UKの第1オクターブのノ
ートC〜Gの鍵に関する検出処理が終了すると、
プログラムの実行は次のステツプ1022に移行
し、このステツプ1022においてインデツクス
レジスタIXrの内容がインクリメントされる。つ
まり、命令「(Ixr)←(IXr)+1」によつてイン
デツクスレジスタIXrの内容「0」に「1」が加
算され、この加算値「1」が新たなインデツクス
レジスタIXrの内容となる。 このようにして、インデツクスレジスタIXrの
内容が更新され、これにより更新されたインデツ
クスレジスタIXrの内容で指定されるオクターブ
(グループ)に所属する鍵の状態が検出される。
この場合、更新されたインデツクスレジスタIXr
の内容「ix1」は、次のステツプ1023におい
て上鍵盤UKにおける鍵状態の検出処理を坦当す
るインデツクスナンバ「ix0〜ix9」の範囲内にあ
るか範囲外にあるかが判断される。つまり、ステ
ツプ1023において命令「(IXr)−10=0?」
が実行され、ステツプ1022において更新した
インデツクスレジスタIXrの内容「ix1」が「ix1
10」の場合、、すなわち「ix1=ix0〜ix9」の場
合、プログラムの実行はステツプ1023の分岐
により上鍵盤UKにおける鍵状態の検出処理は末
だ全て終了していないものとして再びステツプ1
021のマニユアルイベントサーチルーチンに復
帰させられる。逆に、ステツプ1022において
更新したインデツクスレジスタIXrの内容「ix1
が「ix1=10」の場合、ステツプ1023の分岐
により上鍵盤UKにおける鍵状態の検出処理が全
て完了したものとして次のステツプ1024の実
行に移行する。 プログラムの実行がステツプ1024に移行す
ると、このステツプ1024においてインデツク
スレジスタIXrには、下鍵盤LKにおける鍵状態の
検出処理を坦当するインデツクスナンバix16
ix25のうち「ix16」に相当する初期値「16」が命
令「(IXr)←16」によつてセツトされる。この
後、プログラムの実行は次のステツプ1025の
マニユアルイベントサーチルーチンに移り、ここ
において下鍵盤LKにおける各鍵の鍵状態の検出
処理が上鍵盤UKの場合と同様にして実行され
る。そして、ある1つのインデツクスナンバ
「ix1」による検出処理が終了すると、プログラム
の実行は次のステツプ1026に移り、このステ
ツプ1026のインクリメント命令「(IXr)←
(IXr)+1」が実行され、これによつてインデツ
クスナンバix1は更新される。 更新されたインデツクスレジスタIXrの内容
「ix1」は、次のステツプ1027において下鍵盤
LKにおける鍵状態の検出処理を坦当するインデ
ツクスナンバ「ix16〜ix25」の範囲内にあるか範
囲外に闘あるかが判断される。つまり、上鍵盤
UKの場合と同様、ステツ1027において命令
「(IXr)−26=0?〕が実行され、ステツプ10
26において更新したインデツクスレジスタIXr
の内容「ix1」が「ix1<26」の場合、すなわち
「ix1=ix16〜ix25」の場合、プログラムの実行はス
テツプ1027の分岐により下鍵盤LKにおける
鍵状態の検出処理は未だ全て終了していないもの
として再びステツプ1025のマニユアルイベン
トサーチルーチンに復帰させられる。逆に、ステ
ツプ1026において更新したインデツクスレジ
スタIXrの内容「ix1」が「ix1=26」の場合、プロ
グラムの実行はステツプ1027の分岐により下
鍵盤LKにおける鍵状態の検出処理が全て完了し
たものとして次のステツプ1028に移行する。 プログラムの実行がステツプ1028に移行す
ると、このステツプ1028においてインデツク
スレジスタIXrには、ペダル鍵PKにおける鍵状態
の検出処理を坦当するインデツクスナンバix32
ix35のうち「ix32」に相当する初期値「32」が命
令「(IXr)←32」によつてセツトされる。この
後、プログラムの実行は次のステツプ1029の
ペダルイベントサーチルーチンに移り、ここにお
いてペダル鍵盤PKにおける各鍵の鍵状態の検出
処理が上鍵盤UKおよび下鍵盤LKの場合と同様に
して実行される。そして、ある1つのインデツク
スナンバ「ix1」による検出処理が終了すると、
プログラムの実行は次のステツプ1030に移
り、このステツプ1030のインクリメント命令
「(IXr)←(IXr)+1」が実行され、これによつ
てインデツクスナンバix1は更新される。 更新されたインデツクスレジスタIXrの内容
「ix1」は、次のステツプ1031においてペダル
鍵盤PKにおける鍵状態の検出処理を坦当するイ
ンデツクスナンバ「ix32〜ix35」の範囲内にある
か範囲外にあるかが判断される。つまり、上鍵盤
UKおよび下鍵盤LKの場合と同様、ステツプ10
31において命令「(IXr)−36=0?」が実行さ
れ、ステツプ1030において更新したインデツ
クスレジスタIXrの内容「ix1」が「ix1<36」の場
合、すなわち「ix1=ix32〜ix35」の場合、プログ
ラムの実行はステツプ1031の分岐によりペダ
ル鍵盤PKにおける鍵状態の検出処理は末だ全て
終了していないものとして再びステツプ1029
のペダルイベントサーチルーチンに復帰させられ
る。逆に、ステツプ1030において更新したイ
ンデツクスレジスタIXrの内容「ix1」が「ix1
36」の場合、プログラムの実行はステツプ103
1の分岐によりペダル鍵盤PKにおける鍵状態の
検出処理が全て完了したものとして次のステツプ
1032のフツトスイツチサーチルーチンに移行
する。なお、ステツプ1029のペダルイベント
サーチルーチンについては、第13図a〜cに示
す詳細フローチヤートに基づいて後述する。 以上のようにしてプログラムの実行がステツプ
1032のフツトスイツチサーチルーチンに移行
すると、このフツトスイツチサーチルーチンにお
いては、現時点におけるフツトスイツチのオン・
オフ状態がフツトスイツチ回路180から読み込
まれ、この現時点におけるフツトスイツチのオ
ン・オフ状態と、レジストレーシヨンデータゲツ
トルーチンにおいて読み込まれフツトスイツチフ
ラグレジスタFFGrに記憶されているフツトスイ
ツチのオン・オフ状態様を表わすフラグとが比較
される。そして、その比較の結果、フツトスイツ
チのオン・オフ状態が変化しているならば、フツ
トスイツチフラグレジスタFFGrの内容が新しく
読み込んだ現時点のオン・オフ状態を現わすフラ
グに更新される。逆に、フツトスイツチのオン・
オフ状態に変化がなければ、フツトスイツチフラ
グレジスタFFGrの内容は更新する必要がないの
で、プログラムはプレイイベントサーチルーチン
からメインルーチンへ復帰する。なお、フツトス
イツチフラグレジスタFFGrの内容が更新された
場合、新たな状態に対応するフツトスイツチのオ
ンイベントメツセージあるいはオフイベントメツ
セージが第2プロセツサ部200に転送される。 (マニユアルイベントサーチルーチン) 次に、マニユアルイベントサーチルーチンにつ
いて説明する。第10図a〜bは、マニユアルイ
ベントサーチルーチンの一実施例を示す詳細フロ
ーチヤートである。 このマニユアルイベントサーチルーチンは、前
述したように上鍵盤UKあるいは下鍵盤LKにおけ
る鍵状態の検出処理および予備登録処理を行う際
に実行される。つまり、前述したプレイイベント
サーチルーチンのステツプ1020あるいは10
24の命令の実行が終了すると、プログラムの実
行はこの第10図aおよびbに示すマニユアルイ
ベントサーチルーチンに移行する。 プログラムの実行がマニユアルイベントサーチ
ルーチンに移行すると、まず、ステツプ1040
において命令「AccA)←KBNS<IXr>」が実行
される。つまり、インデツクスレジスタIXrの内
容で指定されているオクターブのキーボードニユ
ーステータス情報KBNSがキースイツチ回路11
0(第3図aの3ステートバスバツフア110c
からAアキユムレータAccAに読み込まれる。今
仮りに、前回のマニユアルイベントサーチルーチ
ンにおいてインデツクスナンバixrが「ixi」の時
読み込まれキーボードオールドステータスレジス
タKBOSrに記憶されているキーボードオールド
ステータス情報KBOSおよび今回のマニユアルイ
ベントサーチルーチンにおいてインデツクスナン
バixrが「ixi」の時AアキユムレータAccAに読み
込まれたキーボードニユーステータス情報KBNS
の内容がそれぞれ次の第13表に示すようなもので
あつたとする。
[Table] (Play Event Search Routine) Next, the play event search routine will be explained in detail based on the flowcharts shown in FIGS. 9 to 13c. When the execution of the program in the main routine shifts to the play event search routine, first, in step 1020 in FIG. 9, "0" is set as an initial value in the index register IXr provided inside the first arithmetic unit 101. .
That is, the index register IXr contains the decoder 110 of the key switch circuit 110 (FIG. 3a).
"0" is set as an initial value for sequentially outputting index numbers ix 0 to ix 35 from index number b. After this, the first arithmetic unit 101 starts the program counter.
The output of PGC is sent to address bus ADB 1 as upper address information and the output of index register IXr as lower address information. Then, the index number ix 0 is output from the decoder 110b, and the keyboard status information KBS indicating the key states of notes C to G in the first octave of the upper keyboard UK is transferred to the 3-state bus buffer 1.
It is temporarily stored in 10c. The keyboard status information KBS temporarily stored in the 3-state bus buffer 110e is stored in the A accumulator as the keyboard new status information KBNS in the first step of the manual event search routine in step 1021.
It is loaded into AccA and then compared with the keyboard old status information KBOS. Then, in the comparison result, index register IXr
If the key state in the octave specified by the content of is different from the key state in the previous play event search routine, it is detected which key state change the difference is caused by, and a new key state is detected. If the key state changes due to a key press, create a key code KC corresponding to the pressed key and create a key-on file for this key code KC.
After processing such as registration to KOF 1 to KOF 14 is executed, an on-event message regarding this pressed key is transferred to the second processor section 200. on the other hand,
If the change in key status is due to a new key release operation, the key code KC corresponding to this key release is deregistered from key-on files KOF 1 to KOF 14 , and then the key release operation is The related off-event message is transferred to the second processor unit 200. This manual event search routine will be described later using detailed flowcharts shown in FIGS. 10a and 10b. In this way, when the detection process for the keys of notes C to G in the first octave of the upper keyboard UK belonging to the group with index number ix 0 is completed,
Execution of the program moves to the next step 1022, where the contents of index register IXr are incremented. In other words, "1" is added to the content "0" of index register IXr by the instruction "(Ixr)←(IXr)+1", and this added value "1" becomes the new content of index register IXr. . In this way, the contents of index register IXr are updated, and the state of the key belonging to the octave (group) specified by the updated contents of index register IXr is detected.
In this case, the updated index register IXr
In the next step 1023, it is determined whether the content "ix 1 " is within or outside the range of index numbers "ix 0 to ix 9 " which correspond to the key state detection process in the upper keyboard UK. Ru. That is, in step 1023, the command "(IXr)-10=0?"
is executed, and the content "ix 1 " of the index register IXr updated in step 1022 becomes "ix 1 <
10'', that is, when ix 1 = ix 0 to ix 9 , the program execution branches to step 1023, and the process of detecting the key status in the upper keyboard UK is assumed to have not been completed, and the program returns to step 1023. 1
The process returns to the manual event search routine of 021. Conversely, the content of index register IXr updated in step 1022 is “ix 1 ”.
If ix 1 =10, the process branches to step 1023, assuming that all key state detection processing in the upper keyboard UK has been completed, and the process moves to the next step 1024. When the execution of the program moves to step 1024, the index register IXr contains index numbers ix 16 to ix, which are responsible for detecting the key state on the lower keyboard LK.
The initial value "16" corresponding to "ix 16 " of ix 25 is set by the instruction "(IXr)←16". Thereafter, the program execution moves to the next step 1025, a manual event search routine, where the key state detection process for each key in the lower keyboard LK is executed in the same manner as in the case of the upper keyboard UK. When the detection process using a certain index number "ix 1 " is completed, the execution of the program moves to the next step 1026, and the increment instruction "(IXr) ←
(IXr)+1" is executed, thereby updating the index number ix 1 . The updated content ``ix 1 '' of index register IXr is updated to the lower keyboard in the next step 1027.
It is determined whether the index number is within or outside the range of the index number "ix 16 to ix 25 " which corresponds to the key state detection process in LK. In other words, the upper keyboard
As in the UK case, the instruction "(IXr)-26=0?" is executed in step 1027, and step 10
Index register IXr updated in 26
If the content ``ix 1 '' is ``ix 1 <26'', that is, ``ix 1 = ix 16 ~ ix 25 '', the program execution branches to step 1027 and the key state detection process for the lower keyboard LK has not yet been performed. Assuming that all the steps have not been completed, the process returns to step 1025, the manual event search routine. Conversely, if the content ``ix 1 '' of the index register IXr updated in step 1026 is ``ix 1 = 26'', the program execution branches to step 1027, indicating that all key state detection processing for the lower keyboard LK has been completed. As such, the process moves to the next step 1028. When the program execution moves to step 1028, in this step 1028, index register IXr contains index numbers ix32 to ix32 , which are responsible for detecting the key state of the pedal key PK.
The initial value "32" corresponding to "ix 32 " of ix 35 is set by the instruction "(IXr)←32". After this, the program execution moves to the next step 1029, a pedal event search routine, where the key state detection process for each key in the pedal keyboard PK is executed in the same way as in the case of the upper keyboard UK and lower keyboard LK. . Then, when the detection process using a certain index number "ix 1 " is completed,
Execution of the program moves to the next step 1030, where the increment instruction "(IXr)←(IXr)+1" is executed, thereby updating the index number ix1 . In the next step 1031, it is determined whether the updated content "ix 1 " of the index register IXr is within the range of index numbers "ix 32 to ix 35 " which corresponds to the key state detection process in the pedal keyboard PK. It is determined whether it is outside. In other words, the upper keyboard
Step 10 as for UK and lower manual LK
In step 1030, the instruction "(IXr)-36=0?" is executed, and if the content "ix 1 " of the index register IXr updated in step 1030 is "ix 1 <36", that is, "ix 1 = ix 32 ~ ix 35 '', the program execution branches to step 1031, and the process of detecting the key status in the pedal keyboard PK is at the end.It is assumed that the process of detecting the key state in the pedal keyboard PK has not yet been completed, and the program execution returns to step 1029.
The pedal event search routine is returned to. Conversely, the content "ix 1 " of index register IXr updated in step 1030 becomes "ix 1 =
36", the program is executed at step 103.
1 branch, it is assumed that all key state detection processing on the pedal keyboard PK has been completed, and the process moves to the next step 1032, a foot switch search routine. The pedal event search routine of step 1029 will be described later based on the detailed flowchart shown in FIGS. 13a to 13c. When the program execution moves to the foot switch search routine in step 1032 as described above, in this foot switch search routine, the current foot switch
The off state is read from the foot switch circuit 180, and the current on/off state of the foot switch is read, and the flag indicating the on/off state of the foot switch is read in the registration data get routine and stored in the foot switch flag register FFGr. are compared. As a result of the comparison, if the on/off state of the footswitch has changed, the contents of the footswitch flag register FFGr are updated to the newly read flag representing the current on/off state. Conversely, if the foot switch is turned on or
If there is no change in the off state, there is no need to update the contents of the foot switch flag register FFGr, and the program returns from the play event search routine to the main routine. Note that when the contents of the footswitch flag register FFGr are updated, an on-event message or an off-event message of the footswitch corresponding to the new state is transferred to the second processor section 200. (Manual Event Search Routine) Next, the manual event search routine will be explained. Figures 10a-b are detailed flowcharts illustrating one embodiment of the manual event search routine. This manual event search routine is executed when performing the key state detection process and preliminary registration process on the upper keyboard UK or lower keyboard LK, as described above. That is, step 1020 or 10 of the play event search routine described above.
When the execution of the instruction No. 24 is completed, the execution of the program shifts to the manual event search routine shown in FIGS. 10a and 10b. When the program execution moves to the manual event search routine, first, step 1040 is executed.
The instruction “AccA)←KBNS<IXr>” is executed. In other words, the keyboard new status information KBNS of the octave specified by the contents of index register IXr is stored in the key switch circuit 11.
0 (3-state bus buffer 110c in Figure 3a)
is read into the A accumulator AccA. Now, let's assume that the keyboard old status information KBOS that was read when the index number ixr was "ix i " in the previous manual event search routine and is stored in the keyboard old status register KBOSr, and the index number in the current manual event search routine. Keyboard new status information read into A accumulator AccA when ix r is “ix i ” KBNS
Assume that the contents of each are as shown in Table 13 below.

【表】 次に、インデツクスナンバixiで指定されてい
るオクターブに関するキーボードオールドステー
タス情報KBOSとキーボードニユーステータス情
報KBNSを比較し、鍵状態の変化を検出するた
め、次のステツプ1041においてキーボードオ
ールドステータスレジスタKBOSrのインデツク
スナンバixiに対応する内容がBアキユムレータ
AccBにロードされる。そして、次のステツプ1
042においてAアキユムレータAccAの内容と
BアキユムレータAccBの内容との排他的論理和
処理が実行され、その比較結果はBアキユムレー
タAccBに格納される。つまり、キーボードオー
ルドステータス情報KBOSおよびキーボードニユ
ーステータス情報KBNSが前記第13表に示すよう
なものであつた場合、ステツプ1042における
排他的論理和処理が実行されると、Bアキユムレ
ータAccBには次の第14表に示すような比較結果
情報が格納される。
[Table] Next, in the next step 1041, the keyboard old status information KBOS and the keyboard new status information KBNS regarding the octave specified by index number ix i are compared to detect a change in the key status. The contents corresponding to index number ix i of register KBOSr are stored in B accumulator.
Loaded into AccB. And next step 1
At 042, exclusive OR processing is performed between the contents of the A accumulator AccA and the contents of the B accumulator AccB, and the comparison result is stored in the B accumulator AccB. In other words, if the keyboard old status information KBOS and the keyboard new status information KBNS are as shown in Table 13 above, when the exclusive OR processing in step 1042 is executed, the B accumulator AccB has the following information. Comparison result information as shown in Table 14 is stored.

【表】 排他的論理和処理の実行によるBアキユムレー
タAccBの内容が正の値を示すということは当該
オクターブの鍵状態が変化していることを表わし
ている。 逆に、排他的論理和処理の実行によるBアキユ
ムレータAccBの内容が「0」の値を示すという
ことは当該オクターブの鍵状態が変化していない
ことを表わしている。 このようにしてインデツクスナンバixiで指定
されているオクターブにおける鍵状態の変化が検
出されるわけであるが、鍵状態に変化がある場合
には次のステツプ1043の分岐命令「(AccB)
=0?」によりプログラムの実行はステツプ10
44に移行する。逆に、鍵状態の変化がなけれ
ば、ステツプ1043の分岐命令「(AccB)=
0?」によりプログラムはプレイイベントサーチ
ルーチン(第9図)のステツプ1022に進む。 ステツプ1042の排他的論理和処理の結果、
インデツクスナンバ1xiで指定されたオクターブ
における鍵状態に変化があつた場合、すなわちイ
ベントありの場合、プログラムの実行はステツプ
1044に移行し、まず、このステツプ1044
において当該オクターブに対応するキーボードオ
ールドステータスレジスタKBOSrの内容が更新
される。当該オクターブに関する最も新しいキー
ボードニユーステータス情報KBNSは、前記ステ
ツプ1040の実行によりAアキユムレータ
AccAに記憶保持されている。従つて、キーボー
ドオールドステータスレジスタKBOSrの内容の
更新処理は、AアキユムレータAccAの内容をイ
ンデツクスナンバixiで指定されているキーボー
ドオールドステータスレジスタKBOSrに転送す
る転送命令「(KBOSr)<IXr>←(AccA)」を実
行することによつて実現される。そして、Aアキ
ユムレータAccAに記憶保持されているキーボー
ドニユーステータス情報KBNSは、次のステツプ
1045の転送命令「(KBNSr)←(AccA)」に
よつてキーボードオールドステータスレジスタ
KBNSrにも転送されて記憶保持される。Aアキ
ユムレータAccAの内容をキーボードニユーステ
ータスレジスタKBNSrに転送しているのは、後
述する処理において鍵状態の変化が新たな押下鍵
によるオンイベントなのか、あるいは新たな離鍵
操作に伴うオフイベントなのかを判断するために
必要とするからである。 次に、以上のようにして得られた「イベントあ
り」の結果に関するキーコードKCを検出するた
め、まずステツプ1046において3ビツトのノ
ートナンバレジスタNNrや命令「(NNr)←0」
によつてクリアされる。そして、次のステツプ1
047においてBアキユムレータAccBの内容が
1ビツトだけ右シフト(MSB→LSB)され、こ
の右シフトの結果、BアキユムレータAccBから
ボロ−(桁下げ)が出力されるかどうかが次のス
テツプ1048において判断される。右シフトの
結果、BアキユムレータAccBからボローが発生
した場合には、「イベントあり」として判断さ
れ、プログラムの実行はステツプ1051へと移
行し、逆にボローが発生しなかつた場合には、
「イベントなし」として判断され、プログラムの
実行はステツプ1049へと移行する。つまり、
BアキユムレータAccBに、前記ステツプ104
2の排他的論理和処理の実行結果として第14表に
示すような内容が記憶保持されている場合、この
BアキユムレータAccBの内容を1ビツトだけ右
シフトすると、その結果は次の第15表に示すよう
なものとなり、ボローは発生しない。
[Table] When the contents of the B accumulator AccB indicate a positive value after executing the exclusive OR process, this indicates that the key state of the octave has changed. Conversely, the fact that the contents of the B accumulator AccB after executing the exclusive OR process indicates a value of "0" indicates that the key state of the octave has not changed. In this way, a change in the key state in the octave specified by index number ix i is detected, but if there is a change in the key state, the next step 1043 branch instruction ``(AccB)
=0? ” to execute the program at step 10.
44. Conversely, if there is no change in the key state, the branch instruction "(AccB)=
0? '' causes the program to proceed to step 1022 of the play event search routine (FIG. 9). As a result of the exclusive OR processing in step 1042,
If there is a change in the key state in the octave specified by index number 1x i , that is, if there is an event, program execution moves to step 1044.
In this step, the contents of the keyboard old status register KBOSr corresponding to the octave are updated. The latest keyboard news status information KBNS regarding the octave is stored in the A accumulator by executing step 1040.
Stored in AccA. Therefore, the process of updating the contents of the keyboard old status register KBOSr is performed by executing the transfer instruction "(KBOSr)<IXr>←( This is achieved by executing ``AccA)''. Then, the keyboard new status information KBNS stored in the A accumulator AccA is transferred to the keyboard old status register by the transfer command "(KBNSr)←(AccA)" in the next step 1045.
It is also transferred to KBNSr and stored there. The reason why the contents of the A accumulator AccA are transferred to the keyboard new status register KBNSr is whether the change in key state is an on event due to a new pressed key in the process described later, or an off event due to a new key release operation. This is because it is necessary to make a judgment. Next, in order to detect the key code KC related to the "event present" result obtained as described above, first, in step 1046, the 3-bit note number register NNr and the instruction "(NNr)←0" are detected.
Cleared by . And next step 1
In step 047, the contents of the B accumulator AccB are shifted to the right by one bit (MSB→LSB), and it is determined in the next step 1048 whether or not a BORO is output from the B accumulator AccB as a result of this right shift. Ru. If a borrow occurs from the B accumulator AccB as a result of the right shift, it is determined that an "event has occurred" and the program execution moves to step 1051; conversely, if a borrow does not occur,
It is determined that there is no event, and the program execution moves to step 1049. In other words,
The step 104 is applied to the B accumulator AccB.
If the contents shown in Table 14 are stored as a result of the exclusive OR processing in step 2, then if the contents of this B accumulator AccB are shifted to the right by 1 bit, the results are shown in the following Table 15. The result will be as shown below, and no borrow will occur.

【表】 従つて、プログラムの実行は、分岐命令「ボロ
ー?」によりステツプ1049へ移行する。そし
て、このステツプ1049においては、前述の第
13表で示したような内容を比較しているキーボー
ドニユーステータスレジスタKBNSrの内容が1
ビツトだけ右シフトされる。このステツプ104
9の右シフト命令の実行によりキーボードニユー
ステータスレジスタKBNSrの内容は次の第16表
に示すようなものとなる。
[Table] Therefore, the execution of the program moves to step 1049 by the branch instruction "Borrow?". Then, in this step 1049, the above-mentioned
The contents of the keyboard new status register KBNSr, which compares the contents shown in Table 13, are 1.
Shifted to the right by one bit. This step 104
By executing the right shift command 9, the contents of the keyboard new status register KBNSr become as shown in Table 16 below.

【表】 次に、ステツプ1050のインクリメント命令
「(NNr)←(NNr)+1」により、ノートナンバ
レジスタNNrの内容がインクリメントされてその
内容は「1」となる。ノートナンバレジスタNNr
の内容を「0」から「1」に変化させるというこ
とは、ステツプ1043の「イベントあり」とい
う結果が当該インデツクスナンバixi(なお、以
下では説明の便宜上、このixiを「ix0」(i=0)
の場合に特定して説明する)で指定されているキ
ースイツチマトリツクス110aの行のラインl0
と列のラインL1との交点に配置されているC
#鍵の状態変化を一要因とするものなのかどう
かを検出する処理に入つたことを意味している。
そこで、プログラムの実行は、再びステツプ10
47に移行し、BアキユムレータAccBの内容を
1ビツトだけ右シフトする。ところが、Bアキユ
ムレータAccBの内容は、第15表に示したように
「00000100」となつているため、ボローは発生せ
ず、ステツプ1043の「イベントあり」という
結果がC#鍵の状態変化に起因するものでない
ことがわかる。このため、プログラムの実行は再
びステツプ1049,1050へと移行し、ステ
ツプ1049においてキーボードニユーステータ
スレジスタKBNSrの内容を1ビツトだけ右シフ
トしてその内容を「00000011」とすると共に、ス
テツプ1050においてノートナンバレジスタ
NNrの内容をインクリメントしてその内容を
「2」とする。これによつてプログラムは、ステ
ツプ1043の「イベントあり」という結果がキ
ースイツチマトリクス110aの行のラインl0
列のラインL2との交点に配置されているD1鍵の
状態変化を一要因とするものなのかどうかを検出
する処理に入る。つまり、C#鍵の場合と同
様、ステツプ1047においてBアキユムレータ
AccBの内容を1ビツトだけ右シフトし、右シフ
トの結果、ボローが発生するかどうかをステツプ
1048で判断する。ところが、前回の右シフト
処理によりBアキユムレータAccBの内容は、
「00000010」となつているため、ボローは発生せ
ず、プログラムの実行は分岐命令「ボロー?」に
より三たびステツプ1049,1050へ移行す
る。 そして、ステツプ1049においてキーボードニ
ユーステータスレジスタKBNSrの内容を1ビツ
トだけ右シフトしてその内容を「00000001」とす
ると共に、ステツプ1050においてノートナン
バレジスタNNrの内容をインクリメントしてその
内容を「3」とする。 これによつてプログラムは、ステツプ1043
の「イベントあり」という結果がキースイツチマ
トリクス110aの行のラインl0と列のラインL2
との交点に配置されているD#鍵の状態変化を
一要因とするものなのかどうかを検出する処理に
入る。つまり、前回の処理と同様、Bアキユムレ
ータAccBの内容をステツプ1047の右シフト
命令により右シフトし、この右シフトの結果、ボ
ローが発生するかどうかをステツプ1048で判
断する。すると、BアキユムレータAccBの内容
は、前回までの右シフト処理により「00000001」
となつているため、ボローが発生し、「イベント
あり」として判断され次のステツプ1051へ移
行する。すなわち、ステツプ1043の「イベン
トあり」という結果に対してD#鍵の状態変化
も関与しているということがわかる。このため、
プログラムの実行はステツプ1051へ移行し、
この時のインデツクスレジスタIXrの内容「ix0
0」と、ノートナンバレジスタNNrの内容「3」
に基づきD#鍵に関するキーコードKCが作ら
れる。すなわち、6ビツト構成のインデツクスレ
ジスタIXrの内容「000000」を上位ビツトB8〜B3
とし、3ビツト構成のノートナンバレジスタNNr
の内容「011」を下位ビツトB2〜B0としてこれら
両者を結合することにより、D#鍵に関するキ
ーコードKC「000000011」が作られ、キーコード
レジスタKCrに記憶される。この後、プログラム
は端子M2を介して第10図bに示すステツプ1
052,1053……へと移行し、D#鍵の状
態変化が新たな押鍵操作によるものなのか、ある
いは新たな離鍵操作によるものなのかが判断され
る。つまり、ステツプ1052において、キーボ
ードニユーステータスレジスタKBNSrの内容が
1ビツトだけ右シフトされ、この右シフトの結
果、ボローが発生すればD1鍵の状態変化は新た
な押鍵操作に起因するものとしてステツプ105
3の分岐命令「ボロー?」によつて判断され、逆
にボローが発生しなければD#鍵の状態変化は
新たな離鍵操作に起因するものとしてステツプ1
053の分岐命令「ボロー?」によつて判断され
る。つまり、この例の場合におけるキーボードニ
ユーステータスレジスタKBNSrの内容は、ステ
ツプ1049の右シフト命令により「00000001」
となつている。このため、ステツプ1052の右
シフト命令を実行すると、ボローが発生し、D
#鍵の状態変化は新たな押鍵操作によるるもの
として判断され、すなわちオンイベントとして判
断される。そして、プログラムの実行は、ステツ
プ1054のキーオンルーチンに移行し、ここに
おいてD#鍵のキーコードKCはキーオンフア
イルKOF1〜KOF14のいずれかに登録された後、
当該D#鍵に関するイニシヤルタツチデータと
共に一連のオンイベントメツセージとして送出さ
れる。なお、このステツプ1054のキーオンル
ーチンについては、第11図に示す詳細フローチ
ヤートを用いて後述する。 このようにしてD#鍵に関するオンイベント
メツセージの送出が終了すると、プログラムの実
行はステツプ1056に移行し、インデツクスナ
ンバix0で指定されているオクターブにおいてス
テツプ1043の「イベントあり」という結果に
対して関与している鍵がまだ残つているかどうか
を判断する。この判断処理は、Bアキユムレータ
AccBの内容が「0」であるか否かによつて実現
できる。この例の場合におけるBアキユムレータ
AccBの内容は、プログラムの実行がステツプ1
043から1051へ移行する際に「00000000」
となつている。このため、このステツプ1056
の分岐命令が実行されると、ステツプ1043の
「イベントあり」という結果に対して関与してい
る鍵は残つていないものと判断され、プログラム
の実行はプレイイベントルーチンに復帰する。こ
の場合、BアキユムレータAccBの内容が「0」
でなければ、ステツプ1043の「イベントあ
り」という結果に対して関与している鍵がまだ残
つているものとして判断され、次のステツプ10
57のインクリメント命令「(NNr)←(NNr)+
1)によつてノートナンバレジスタNNrがインク
リメントされ、この後プログラムは端子M3を介
してステツプ1047に復帰する。これによつ
て、ステツプ1043の「イベントあり」という
結果に関与している残りの鍵が上記と同様にして
検出され、この検出鍵に関するキーコードKCが
作られた後、この検出鍵に関するオンイベントメ
ツセージあるいはオフイベントメツセージが送出
される。 ここで、ステツプ1052(第10図b)の右
シフト命令を実行した結果、キーボードニユース
テータスレジスタKBNSrからボローが発生しな
かつた場合、ステツプ1053の分岐命令「ボロ
ー?」により、プログラムはステツプ1055の
キーオフルーチンの実行に移行し、キーオンフア
イルKOF1〜KOF14のいずれかに登録されている
当該キーコードKCの登録解除処理および当該キ
ーコードKCに関するオフイベントメツセージの
送出処理を行う。この場合、当該キーコードKC
がキーオンフアイルKOF1〜KOF14のいずれにも
登録されていなければ、当該キーコードKCは発
音チヤンネルに割当られていない鍵に関するもの
として判断され、無視される。すなわち、このよ
うな場合オフイベントメツセージは送出されな
い。 (キーオンルーチン) 次に、キーオンルーチンについて説明する。第
11図はキーオンルーチンの一実施例を示す詳細
フローチヤートである。 このキーオンルーチンは、前述のマニユアルイ
ベントサーチルーチンにおいて、インデツクスナ
ンバixiで指定されたオクターブにおける鍵状態
の変化が新たな押下鍵に起因するものであつた場
合に実行されるプログラムであり、新たな押下鍵
に対応するキーコードKCの登録処理およびこれ
に関するオンイベントメツセージの送出処理が行
なわれる。 プログラムの実行がキーオンルーチンに移行す
ると、まずステツプ1060のロード命令
「(KFC)←14」によつてキーオンフアイルサー
チカウンタKFCに初期値としての「14」がセツ
トされる。つまり、上鍵盤UKと下鍵盤LKに関す
る14個(上鍵盤UKおよび下鍵盤LKに関する発音
チヤンネル数14に対応する)のキーオンフアイ
ルKOF1〜KOF14の中から空白フアイルを検出す
るため、キーオンフアイルサーチカウンタKFC
に「14」がセツトされる。この後、プログラムの
実行はステツプ1061に移行し、ここにおいて
第1演算装置101はプログラムカウンタPGC
の内容を上位アドレス情報、キーオンフアイルサ
ーチカウンタKFCの内容を下位アドレス情報と
してアドレスバスADB1に送出する。すると、
WRKメモリ190内に設けられたキーオンフア
イルKOF1〜KOF14のうち、キーオンフアイルサ
ーチカウンタKFCの内容「14」で指定されたキ
ーオンフアイルKOF14の記憶内容がデータバス
DB1を介して第1演算装置101に読み込まれ
る。そして、この読み込まれたキーオンフアイル
KOF14の内容が空白となつているかどうかを判断
する。つまり、キーオンフアイルサーチカウンタ
KFCの内容「14」で指定されたキーオンフアイ
ルKOF14に何らかのキーコードKCが登録されて
いるか、あるいはキーコードKCは登録されてお
らず当該キーオンフアイルKOF14いは空白フアイ
ルとなつているかどうかを判断する。そして、こ
の判断処理により当該キーオンフアイルKOF14
空白フアイルとなつている場合、この空白フアイ
ルKOF14に対し新たな押下鍵に関するキーコード
KCを登録する。この新たな押下鍵に関するキー
コードKCは、前述のマニユアルイベントサーチ
ルーチンにおけるステツプ1051のロード命令
「(KCr)←(IXr)+(NNr)」によつてキーコード
レジスタKCrに記憶されている。そこで、空白フ
アイルに対するキーコードの登録処理は、キーコ
ードレジスタKCrの内容をキーオンフアイルサー
チカウンタKFCで指定されているキーオンフア
イルKOF14にコードするステツプ1062のロー
ド命令「(KOF)<FC>←(KCr)」によつて行
なわれる。 一方、キーオンフアイルサーチカウンタKFC
の内容「14」で指定されたキーオンフアイル
KOF14が空白フアイルでない場合、プログラムの
実行はステツプ1061の分岐命令からステツプ
1065の分岐命令「(KFC)=1?」へ移行
し、ここにおいてキーオンフアイルサーチカウン
タKFCの内容が「1」に達しているかどうか判
断される。そして、この判断処理の結果、キーオ
ンフアイルサーチカウンタKFCの内容は「14」
で「1」に達していないので、プログラムの実行
はステツプ1066のデクレメント命令に移行
し、ここにおいてキーオンフアイルサーチカウン
タKFCの内容はデクレメントされる。そして、
新たなキーオンフアイルサーチカウンタKFCの
内容は「13」になり、対応するキーオンフアイル
KOF13が空白フアイルになつているかどうかをス
テツプ1061で判断する。この判断処理の結
果、当該キーオンフアイルKOF13が空白フアイル
となつていなければ、プログラムの実行は再度ス
テツプ1065へ移行し上記と同様の処理が行な
われる。そてこのような処理が繰り返され、ステ
ツプ1073においてキーオンフアイルサーチカ
ウンタKFCの内容が「1」になつていることが
判断されると、14個のキーオンフアイルKOF1
KOF14には全て何らかのキーコードKCがすでに
登録されており、この時の新たな押下鍵に関する
キーコードKCを登録可能なキーオンフアイルは
存在しないものとして判断され、すなわち、新た
な押下鍵に対する楽音を発音割当てすべき発音チ
ヤンネルは存在しないものとして判断され、プロ
グラムの実行はマニユアルイベントサーチルーチ
ンに復帰する。つまり、空白フアイルが存在しな
い場合、新たな押下鍵に関するキーコードKCは
無視され、この結果この押下鍵に対応する楽音は
発生されない。 一方、キーオンフアイヲKOF1〜KOF14のいず
れかが空白フアイルとなつている場合、新たな押
下鍵に関するキーコードKCは、ステツプ106
2においてキーオンフアイルサーチカウンタ
KFCで指定されているキーオンフアイルKOFに
登録されるが、次のステツプ1063において当
該押下鍵に関する各演算パラメータ毎のイニシヤ
ルタツチデータITDがWRKレジスタWRKr1
WRKr6に時分割的に読み込まれる。このイニシ
ヤルタツチデータITDの読み込み処理は、前述し
たように当該押下鍵に関するキーコードKCとパ
ラメータカウンタPCの内容に基づき実行され
る。この後、プログラムの実行は次のステツプ1
064に移行し、ここにおいてキーオンフアイル
KOF1〜KOF14のいずれかに登録処理された新た
な押下鍵に関するオンイベントメツセージが送出
される。このオンイベントメツセージは、前述し
たように、オンイベントを表わす固有の判別コー
ドJCを先頭データとし、次に新たな押下鍵を突
表わすキーコードKC、次に新たな押下鍵に関す
る各演算パラメータ毎のイニシヤルタツチデータ
ITDの順にFIFO1を介して第2プロセツサ部2
00に対して送出される。そして、このステツプ
1064の処理が終了すると、プログラムの実行
はマニユアルイベントサーチルーチンに復帰す
る。 (キーオフルーチン) 次に、キーオフルーチンについて説明する。第
12図はキーオフルーチンの一実施例を示す詳細
フローチヤートである。 このキーオフルーチンは、前述のマニユアルイ
ベントサーチルーチンにおいて、インデツクスナ
ンバixiで指定されたオクターブにおける鍵状態
の変化が新たな離鍵操作に起因するものであつた
場合に実行されるプログラムであり、キーオンフ
アイルKOF1〜KOF14のいずれかに登録されてい
る解放鍵に対応するキーコードKCの登録解除処
理および解放鍵に関するオフイベントメツセージ
の送出処理が行なわれる。 プログラムの実行がキーオフルーチンに移行す
ると、まずステツプ1070のロード命令
「(KFC)←14」によつてキーオンフアイルサー
チカウンタKFCに初期値としての「14」がセツ
トされる。つまり、上鍵盤UKと下鍵盤LKに関す
る14個のキーオンフアイルKOF1〜KOF14から解
放鍵に対応するキーコードKCが登録されている
キーオンフアイルKOFを検出するため、まずキ
ーオンフアイルサーチカウンタKFCに「14」が
セツトされる。この後、プログラムの実行はステ
ツプ1071に移行し、ここにおいて第1演算装
置101はプログラムカウンタPGCの内容を上
位アドレス情報、キーオンフアイルサーチカウン
タKFCの内容を下位アドレス情報としてアドレ
スバスADB1に送出する。すると、WRKメモリ1
90内に設けられたキーオンフアイルKOF1
KOF14のうち、キーオンフアイルサーチカウンタ
KFCの内容「14」で指定されたキーオンフアイ
ルKOF14の記憶内容がデータバスDB1を介して第
1演算装置101に読み込まれる。次いで、この
読み込んだキーオンフアイルKOF14の内容とキー
コードレジスタKCrに記憶されている解放鍵に対
応するキーコードKCとが排他的論理和命令
「(KCr)V(KOF)<KFC>」によつて比較さ
れる。そしてこの比較処理の結果、キーオンフア
イルサーチカウンタKFCの内容で指定されてい
るキーオンフアイルKOF14の内容とキーコードレ
ジスタKCrの内容とが同一でない場合、ステツプ
1072の分岐命令「同一か?」によつてプログ
ラムの実行はステツプ1073の分岐命令
「(KFC)=1?」へ移行し、ここにおいてキー
オンフアイルサーチカウンタKFCの内容が
「1」に達しているかどうかが判断される。そし
て、この判断処理の結果、キーオンフアイルサー
チカウンタKFCの内容は「14」で「1」に達し
ていないので、プログラムの実行はステツプ10
74のデクレメント命令「(KFC)←(KFC)−
1」に移行し、ここにおいてキーオンフアイルサ
ーチカウンタKFCの内容はデクレメントされ
る。これによつて、キーオンフアイルサーチカウ
ンタKFCの内容は「13」となり、プログラムの
実行はステツプ1071へ復帰し、ここにおいて
新たなキーオンフアイルサーチカウンタKFCの
内容「13」に基づき対応するキーオンフアイル
KOF13の記憶内容を読し出し、この後当該キーオ
ンフアイルKOF13の内容とキーコードレジスタ
KCrとの内容を比較する。この比較処理の結果、
当該キーオンフアイルKOF13の内容がキーコード
レジスタKCrの記憶内容と同一でなければ、プロ
グラムの実行は再度ステツプ1072からステツ
プ1073の分岐命令「(KFC)=1?」へ移行
する。以後、このような処理が繰り返えされ、ス
テツプ1073においてキーオンフアイルサーチ
カウンタKFCの内容が「1」になつていること
が判断されると、14個のキーオンフアイルKOF1
〜KOF14のいずれにも解放鍵に対応するキーコー
ドKCは登録されていないものと判断され、プロ
グラムの実行はマニユアルイベントサーチルーチ
ンへ復帰する。つまり、この時のオフイベントは
キーオンフアイルKOF1〜KOF14のいずれにも登
録されていない鍵の離鍵操作に起因するものとし
て判断され、プログラムの実行はマニユアルイベ
ントサーチルーチンへ復帰する。 一方、キーオンフアイルサーチカウンタKFC
で指定されているキーオンフアイルKOFの内容
とキーコードレジスタKCrの記憶内容とが同一の
場合、当該キーオンフアイルKOFはこの新たな
解放鍵に対応するキーコードKCが登録されてい
たキーオンフアイルとして判断され、プログラム
の実行はステツプ1072の分岐命令「同一
か?」により、ステツプ1075へ移行する。そ
して、このステツプ1075においてこの解放鍵
に関するオフイベントメツセージが送出される。
つまり、第1プロセツサ部100からオフイベン
トを表わす判別コードJCと解放鍵に対応するキ
ーコードKCとが1連のオフイベントメツセージ
として送出される。 この後、プログラムの実行はステツプ1076
へ移行し、ここにおいて解放鍵に対応するキーコ
ードKCが記憶されているキーオンフアイルKOF
をクリアする。そして、このステツプ1076の
処理が終了すると、プログラムの実行はマニユア
ルイベントサーチルーチンへ復帰する。 以上の説明から明らかなように、第11図で示
したキーオンルーチンと、第12図で示したキー
オンルーチンは上鍵盤UKおよび下鍵盤LKに関す
る押下鍵に対する予備登録、あるいは解放鍵に対
する予備登録の解除を行うチヤンネルプロセツサ
として考えることができる。 (ペダルイベントサーチルーチン) 次に、ペダルイベントサーチルーチンについて
説明する。 第13図a〜cはペダルイベントサーチルーチ
ンの一実施例を示す詳細フローチヤートである。 このペダルイベントサーチルーチンは、前述し
たように、ペダル鍵盤PKにおける鍵状態の検出
処理および予備登録処理を行う際に実行される。
つまり、前述した上鍵盤UKおよび下鍵盤LKに関
するマニユアルイベントサーチルーチンの実行が
終了すると、プログラムの実行はこの第13図a
〜cに示すペダルイベントサーチルーチンに移行
する(第9図参照)。 ところで、このペダルイベントサーチルーチン
は、前述のマニユアルイベントサーチルーチンと
同様、その処理内容を大別すると、鍵状態の変化
を検出し、その変化の起因となつた鍵を検出する
部分と、この検出鍵の予備登録もしくは予備登録
の解除を行う部分とから構成されるが、前者の部
分についてはマニユアルイベントサーチルーチン
と同様のプログラムで構成されている。つまり、
第13図a,bに示すステツプ1080〜109
3と、前述の第10図a,bに示したステツプ1
040〜1053とは同一内容のプログラムとな
つている。従つて、プログラムの実行がマニユア
ルイベントサーチルーチンからこの第13図a〜
cに示すペダルイベントサーチルーチンに移行す
ると、ステツプ1080〜1083においてペダ
ル鍵盤PKにおける鍵状態の変化があるかどうか
が検出され、ステツプ1084〜1091におい
て鍵状態の変化に関与した鍵の検出およびキーコ
ードKCの作成が行なわれ、さらにステツプ10
92,1093において鍵状態の変化に関与した
鍵が新たに押下されたものなのかあるいは離鍵さ
れたものなのかが検出される。そして、鍵状態の
変化がオンイベントであれば、プログラムの実行
はこのペダルイベントサーチルーチンの予備登録
部を構成するステツプ1094(第13図b)へ
移行する。逆に、鍵状態の変化がオフイベントで
あれば、プログラムの実行はこのペダルイベント
サーチルーチンの予備登録解除部を構成するステ
ツプ1110(第13図c)へ移行する。 はじめに、鍵状態の変化がオンイベントとして
検出された場合のプログラムについて説明する。 ステツプ1093の分岐命令「ボロー?」の実
行によつて鍵状態の変化がオンイベントとして検
出された場合、プログラムはステツプ1094の
分岐命令「(PFGr)=0?」の実行に移行し、こ
こにおいてペダル鍵盤PKの予備登録の優先制御
を実行するプライオリテイフラグレジスタPFGr
(第7表)の内容が「0」または「1」のいずれ
になつているかを検出する。つまり、この実施例
に示す電子楽器では、前述したようにペダル鍵盤
PKについては常時2つの発音チヤンネルが割当
てられているが、最も新しく押鍵された最後着鍵
のみを優先してこの2つの発音チヤンネルにチヤ
ンネル割当てするようにし、もしこの優先鍵が解
放されていれば次位の後着鍵を優先して2つの発
音チヤンネルにチヤンネル割当てするように優先
制御を行なつている。尚、同時に複数の新たな押
下鍵が検出された場合には、低音優先により低音
側の押下鍵のみが選択され最後着鍵として処理さ
れるようになつている。従つて、ペダル鍵盤PK
における押下鍵に対応するキーコードKCを登録
しておくためのペダルキーオンフアイルPKF
は、優先鍵と次位優先鍵のための2つのペダルキ
ーオンフアイルPKFaおよびペダルキーオンフア
イルPKFbとが設けられており(第7表参照)、
この2つのペダルキーオンフアイルPKFa,
PKFbに登録されたキーコードKCのうちいずれ
か一方のキーコードKCのみに基づく楽音が2つ
の発音チヤンネルから発音される。従つて、この
ペダル鍵盤PKに関する楽音は常時単一の押下鍵
に関するものであり単音である。 プライオリテイフラグレジスタPFGrは、この
ような優先制御を行うために設けられているもの
であり、その内容が“0”のときにはペダルキー
オンフアイルPKFaに登録されているキーコード
KCに対応する楽音がすでに発音されている状態
あるいは発音されるべき状態を表わし、すなわち
A側優先状態を表わし、“1”のときにはペダル
キーオンフアイルPKFbに登録されているキーコ
ードKCに対応する楽音がすでに発音されている
状態あるいは発音されるべき状態を表わし、すな
わちB側優先状態を表わしている。換言すると、
プライオリテイフラグPFGが“0”の状態にお
いて新たなオンイベントが発生した場合、ペダル
キーオンフアイルPKFaに登録されているキーコ
ードKCが次位後着鍵に関するものとなつて対応
する楽音は消滅させられると共に、新たなオンベ
ントに関するキーコードKCは届当該時点の最後
着鍵に関するものとしてペダルキーオンフアイル
PKFbに登録されて対応する楽音が発音される。
一方、プライオリテイフラグPFGが“1“の状
態において新たなオンイベントが発生した場合
合、ペダルキーオンフアイルPKFbに登録されて
いるキーコードKCが次位後着鍵に関するものと
なつて対応する楽音は消滅させられると共に、新
たなオンイベントに関するキーコードKCは当該
時点の最後着鍵に関するものとしてペダルキーオ
ンフアイルPKFaに登録されて対応する楽音が発
音される。 このため、プログラムの実行はステツプ109
4に移行し、このステツプ1094の分岐命令
「(PFGr)=0?」を実行する。この結果、プライ
オリテイフラグPFGが“0”であれば当該時点
における優先状態はA側優先状態、すなわちペダ
ルキーオンフアイルPKFaに登録されているキー
コードKCに基づく楽音が発音されている状態あ
るいは発音されるべき状態であつたとして判断さ
れる。この後、プログラムの実行は次のステツプ
1095へ移行し、ペダルキーオンフアイル
PKFaにキーコードKCが登録されているのか、
あるいは空白フアイルとなつているのかを判断す
る。この判断処理の結果、ペダルキーオンフアイ
ルPKFaにキーコードKCがすでに登録されてい
ることがわかると、プログラムの実行は次のステ
ツプ1098へ移行し、ここにおいてペダルキー
オンフアイルPKFaに登録されているキーコード
KCに対応する楽音は消滅すべきであることを示
すオフイベントメツセージを送出する。一方、ス
テツプ1095の判断処理の結果、ペダルキーオ
ンフアイルPKFaが空白フアイルとなつているこ
とがわかると、プログラムの実行はステツプ10
97へ移行する。優先状態がA側優先状態である
にもかかわらず、ペダルキーオンフアイルPKFa
が空白フアイルであるということは、当該時点に
おいてペダル鍵盤PKに関する楽音が何ら発音さ
れていない状態であることを意味する。従つて、
この場合にはプログラムの実行は直ちにステツプ
1097へ移行し、ここにおいて当該時点のオン
イベントに関するキーコードKCをペダルキーオ
ンフアイルPKFbに登録する。この後、プログラ
ムはステツプ1098に移行し、ペダルキーオン
フアイルPKFbに登録した新たなキーコードKC
に関するオンイベントメツセージを固有の判別コ
ードJCを付して送出する。これによつて、ペダ
ルキーオンフアイルPKFbに登録されたキーコー
ドKCが現時点における最後着鍵に該当するもの
となり、これに対応する楽音が発音される。この
ステツプ1093の処理が終了すると、プログラ
ムの実行は次の突ステツプ1099へ移行し、こ
こにおいてプライオリテイフラグPFGを“1”
に更新し、すなわち現在の優先状態をB側優先状
態に更新し、この後前述のプレイイベントサーチ
ルーチンに復帰する。 以上がA側優先状態において新たなオンイベン
トが発生した時の処理内容であるが、B側優先状
態において新たなオンイベントが発生した時にも
同様な処理が実行される。つまり、ステツプ10
94の判断命令「(PFGr)=0?」を実行した結
果、プライオリテイフラグPFGが“1”であれ
ば、当該時点における優先状態はB側優先状態、
すなわちペダルキーオンフアイルPKFbに登録さ
れているキーコードKCに基づく楽音が発音され
ている状態あるいは発音されるべき状態であつた
ものとして判断し、次のステツプ1100におい
てペダルキーオンフアイルPKFbの内容が空白か
否かを判断する。ステツプ1100の判断命令
「(PKFr)=空7」を実行した結果、ペダルキー
オンフアイルPKFbにキーコードKCが登録され
ていることがわかると、次のステツプ1101に
おいてペダルキーオンフアイルPKFbに登録され
ているキーコードKCに基づく楽音は消滅すべき
であることを示すオフイベントメツセージを送出
する。 逆に、ペダルキーオンフアイルPKFbの内容が
空白であるということがわかると、プログラムの
実行はステツプ1100からステツプ1102へ
直ちに移行し、ここにおいて当該時点のオンイベ
ントに関するキーコードKCをペダルキーオンフ
アイルPKFaに登録する。この後、次のステツプ
1103において、ペダルキーオンフアイル
PKFaに登録した新たなキーコードKCに関する
オンイベントメツセージを固有の判別コードJC
を付して送出する。これによつて、ペダルキーオ
ンフアイルPKFaに登録されたキーコードKCが
現時点における最後着鍵に該当するものとなり、
これに対応する楽音が発音される。このステツプ
1103の処理が終了すると、プログラムの実行
は次のステツプ1104へ移行し、ここにおいて
プライオリテイフラグPFGを“0”に更新し、
すなわち現在の優先状態をA側優先状態に更新
し、この後前述のプレイイベントサーチルーチン
(第9図)のステツプ1030に復帰する。 次に、ステツプ1093の判断命令「ボロ
ー?」によつてペダル鍵盤PKにおける鍵状態の
変化がオフイベントとして検出された場合のプロ
グラムについて説明する。 鍵状態の変化がオフイベントとして検出された
場合、、プログラムの実行はステツプ1093か
ら第13図cのステツプ1110へ移行する。そ
して、このステツプ1110においてオフイベン
トに関するキーコードKCがペダルキーオンフア
イルPKFaに登録されているキーコードKCと同
一かどうかを比較する。この比較処理は、キーコ
ードレジスタKCrの記憶内容とペダルキーオンフ
アイルPKFaの記憶内容との排他的論理和処理を
実行することによつて実現される。この排他的論
理和処理を実行した結果、得られた値が“0”で
あれば、キーコードレジスタKCrの記憶内容とペ
ダルキーオンフアイルPKFaの記憶内容とは同一
であることになり、ステツプ1111の分岐によ
りプログロムの実行はステツプ1112へ移行す
る。 逆に、ステツプ1110の排他的論理和処理に
よつて得られた値が正の値であれば、キーコード
レジスタKCrの記憶内容とペダルキーオンフアイ
ルPKFaの記憶内容とは相異していることにな
り、ステツプ1111の分岐によりプログラムの
実行はステツプ1119に移行し、このステツプ
1119において今度はキーコードレジスタKCr
の記憶内容とペダルキーオンフアイルPKF6の記
憶内容を比較する。このような比較処理は、オフ
イベントに関するキーコードKCがペダルキーオ
ンフアイルPKFa,PKFbのいずれに登録されて
いるものなのかを検出していることを意味する。
従つて、オフイベントに関するキーコードKCが
ペダルキーオンフアイルPKFaに登録されている
ものである場合、プログラムの実行はステツプ1
111の分岐によりステツプ1112へ移行し、
ここにおいてペダルキーオンフアイルPKFaに登
録されている鍵がいずれの優先状態の時に解放さ
れたものなのかを判断する。つまり、この時のオ
フイベントがいずれの優先状態にあるときに発生
したものなのかを判断し、これによつてペダルキ
ーオンフアイルPKFaに登録されている鍵が最後
着鍵に該当するものなのかどうかを判断する。例
えば、この時プライオリテイフラグPFGが
“0”を示し、A側優先状態を表わしている時に
は、ペダルキーオンフアイルPKFaに登録されて
いる鍵はこの時点における最後着鍵であり、この
時のオフイベントは最後着鍵の解放によるオフイ
ベントであることがわかる。このようにしてペダ
ルキーオンフアイルPKFaに登録されているキー
コードKCが最後着鍵に関するものであるという
ことがわかると、プログラムの実行はステツプ1
114へ移行し、ここにおいてペダルキーオンフ
アイルPKFaの内容(キーコードKC)に関する
オフイベントメツセージを送出し、この後次のス
テツ1115においてペダルキーオンフアイル
PKFaの内容をクリアする。これによつて、ペダ
ルキーオンフアイルPKFaに登録されて発音され
ていた最後着鍵に対応する楽音は消滅させられ
る。この処理が終了すると、プログラムの実行は
ステツプ1116へ移行し、判断命令
「(PKFa)=空?」によつてペダルキーオンフア
イルPKFbの内容が空白となつているのか否かを
判断する。つまり、A側優先状態において次位後
着鍵に該当するキーコードKCがペダルキーオン
フアイルPKFbに登録されているかどうかを判断
する。この判断処理の結果、ペダルキーオンフア
イルPKFbの内容が空白であれば、プログラムは
端子PD4を介してプレイイベントサーチルーチン
(第9図)のステツプ1030に復帰する。しか
し、ペダルキーオンフアイルPKFbに何らかのキ
ーコードKCが登録されている場合、プログラム
の実行はステツプ1116からステツプ1117
へ移行し、ペダルキーオンフアイルPKFbに登録
されているキーコードKCが次位後着鍵に対応す
るものであるとし、ここにおいて当該次位後着鍵
に関するオンイベントメツセージを送出する。こ
れによつて、ペダルキーオンフアイルPKFbに登
録されている次位後着鍵に対応する楽音が発音さ
れる。この処理が終了すると、プログラムの実行
はステツプ1118へ移行し、プライオリテイフ
ラグPFG“1”に更新して優先状態をB側優先
状態とし、この後プレイイベントサーチルーチン
に復帰する。 一方、ステツプ1112の判断命令「(PFGr)
=0?」によつてペダルキーオンフアイルPKFa
に登録されていた鍵が次位後着鍵に関するもので
あることがわかると、プログラムはステツプ11
13の命令「(PKFa):クリア」を実行し、ペ
ダルキーオンフアイルPKFaの内容をクリアし、
この後プレイイベントサーチルーチンへ復帰す
る。 以上がペダルキーオンフアイルPKFaに登録さ
れているキーコードKCと同一キーコードに関す
るオフイベントが発生した場合の処理内容である
が、ペダルキーオンフアイルPKFbに登録されて
いるキーコードKCと同一キーコードに関するオ
フイベントが発生した場合にも同様な処理が実行
される。つまり、ステツプ1119においてキー
コードレジスタKCrの記憶内容とペダルキーオン
フアイルPKFbとの排他的論理和処理を実行した
結果、得られた値が“0”であればキーコードレ
ジスタKCrの記憶内容とペダルキーオンフアイル
PKFbの記憶内容とは同一であることになり、プ
ログラムの実行はステツプ1120の分岐により
ステツプ1121へ移行する。しかし、排他的論
理和処理を実行した結果、得られた値が正の値で
あれば、キーコードレジスタKCrの記憶内容はペ
ダルキーオンフアイルPKFbおよびPKFaの記憶
内容とは相異し、この時のオフイベントは2つの
ペダルキーオンフアイルPKFa,PKFbのいずれ
にも登録されていない鍵の解放によるものである
ということがわかり、プログラムの実行は直ちに
プレイイベントサーチルーチンへ復帰する。 プログラムの実行がステツプ1120からステ
ツプ1121へ移行した場合、ペダルキーオンフ
アイルPKFaの場合と同様、このステツプ112
1においてプライオリテイフラグPFGの内容を
判断することよつてペダルキーオンフアイル
PKFbに割当てられている鍵が最後着鍵に該当す
るのか、あるいは次位後着鍵に該当するのかが判
断される。 つまり、プライオリテイフラグPFGが“0”
であれば、ペダルキーオンフアイルPKFbに登録
されている鍵は次位後着鍵に該当するものとして
判断され、プログラムの実行はステツプ1121
の分岐によりステツプ1122へ移行し、ここに
おいてペダルキーオンフアイルPKFbの内容をク
リアした後、プレイイベントサーチルーチンへ復
帰する。 逆に、プライオリテイフラグPFGが“1”で
あれば、ペダルキーオンフアイルPKFbに登録さ
れている鍵は最後着鍵に該当するものとして判断
され、プログラムの実行はステツプ1121の分
岐によりステツプ1123へ移行する。そして、
ステツプ1123においてペダルキーオンフアイ
ルPKFbの内容に関するオフイベントメツセージ
を送出した後、次のステツプ1124においてペ
ダルキーオンフアイルPKFbの内容をクリアす
る。これによつて、ペダルキーオンフアイル
PKFbに登録されて発音されていた楽音は消滅さ
せられる。この処理が終了すると、プログラムの
実行はステツプ1125に移行し、ここにおいて
ペダルキーオンフアイルPKFaに次位後着鍵に対
応するキーコードKCが登録されているかどうか
を判断する。もし、ペダルキーオンフアイル
PKFaに次位後着鍵に対応するキーコードKCが
登録されていなければ、プログラムの実行はプレ
イイベントサーチルーチンへ復帰する。しかし、
ペダルキーオンフアイルPKFaに次位後着鍵に対
応するキーコードKCが登録されていることがわ
かると、プログラムの実行は次のステツプ112
6へ移行し、ここにおいてペダルキーオンフアイ
ルPKFaの内容に関するオンイベントメツセージ
を出力する。これによつて、ペダルキーオンフア
イルPKFaに登録されている次位後着鍵に対応す
る楽音が発音される。この処理が終了すると、プ
ログラムの実行はステツプ1127へ移行し、プ
ライオリテイフラグPFGを“0”に更新して優
先状態をA側優先状態とし、この後プレイイベン
トサーチルーチンに復帰する。 以上説明したとから明らかなように、ペダル鍵
盤PKにおいては、複数の押下鍵のうち最も新し
く押鍵された最後着鍵のみに対応する楽音が優先
的に発音され、しかも最後着鍵が解放された場合
には次位後着鍵に対応する楽音が発音される。こ
のため、楽音が切れ目なく連続的に変化するレガ
ート演奏を行う場合には極めて便利なものとな
る。 (モジユレーシヨンデータゲツトルーチン) 次に、モジユレーシヨンデータゲツトルーチン
について説明する。 第14図にはモジユレーシヨンデータゲツトル
ーチンの一実施例を示す詳細フローチヤートであ
る。 このモジユレーシヨンデータゲツトルーチン
は、前述したプレイイベントサーチルーチンの実
行が終了した後それに続いて実行されるプログラ
ムであつて、前記プレイイベントサーチルーチン
において各キーオンフアイルKOF1〜KOF14に登
録された押下鍵(ペダル鍵盤PKについては除
く)に関するモジユレーシヨンデータを変調回路
150から抽出する処理が実行される。 プログラムの実行がプレイイベントサーチルー
チンからモジユレーシヨンデータゲツトルーチン
に移行すると、まずステツプ1130のロード命
令「(KFC)←14」によつてキーオンフアイルサ
ーチカウンタKFCに初期値としての「14」がセ
ツトされる。つまり、上鍵盤UKと下鍵盤LKに関
する14個のキーオンフアイルKOF1〜KOF14のう
ちキーコードKCが登録されているキーオンフア
イルKOFを検出するため、キーオンフアイルサ
ーチカウンタKFCに「14」がセツトされる。こ
の後、プログラムの実行は次のステツプ1131
へ移行し、ここにおいて第1演算装置101はプ
ログラムカウンタPGCの内容を上位アドレス情
報、キーオンフアイルサーチカウンタKFCの内
容を下位アドレス情報としてアドレスバスADB1
に送出し、これによつてキーオンフアイルサーチ
カウンタKFCの内容で指定されたキーオンフア
イルKOFの内容を読し出し、これをAアキユム
レータAccAにロードする。そして、次のステツ
プ1132において、AアキユムレータAccAの
内容が“0”であるか否かを判断することによ
り、キーオンフアイルサーチカウンタKFCの内
容で指定されたキーオンフアイルKOFにはキコ
ードKCが登録されいるかどうかを判断する。こ
の判断処理の結果、AアキユムレータAccAの内
容が“0”であれば、当該キーオンフアイル
KOFにはキーコードKCは登録されていないもの
として判断し、すなわち当該キーオンフアイル
KOFは空白フアイルであるとして判断し、端子
MG3を村介してステツプ1142へ移行する。そ
して、このステツプ1142において、キーオン
フアイルサーチカウンタKFCの内容が「1」に
達していればメインルーチン(第8図a)へ復帰
する。すなわち、全てのキーオンフアイルKOF1
〜KOF14に登録されているキーコードKCに関す
るモジユレーシヨンデータの抽出処理は完了した
ものとしてメインルーチンへ復帰する。しかし、
ステツプ1142において、キーオンフアイルサ
ーチカウンタKFCの内容が「1」に達していな
ければ、プログラムの実行はステツプ1143へ
移行し、このステツプ1143のデクレメント命
令「(KFC)←(KFC)−1」を実行し、キーオ
ンフアイルサーチカウンタKFCの内容をデクレ
メントした後端子MG2を介してステツプ1131
に戻り、新たなキーオンフアイルサーチカウンタ
KFCの内容でいずれか1つのキーオンフアイル
KOFを指定し、その内容を読み出してAアキユ
ムレータAccAにロードする。そして、ステツプ
1132の判断命令「(AccA)=0?」を実行し
た結果、AアキユムレータAccAの内容が“0”
でなければ、当該キーオンフアイルKOFにはキ
ーコードKCが登録されているものとして判断
し、次のステツプ1133に移行する。そして、
このステツプ1133において、第1演算装置1
01は変調回路150(第6図)のラツチ150
1のI/Oデバイスアドレスを上位アドレス情
報、当該キーオンフアイルKOFに登録されてい
るキーコードKCを下位アドレス情報としてアド
レスバスADB1に送出し、これによつて当該キー
オンフアイルKOFに登録されているキーコード
KCに関するアフタタツチ信号(アナログ信号)
を抽出する。この抽出されたアフタタツチ信号
は、前述したように対応する鍵盤のアフタタツチ
用重み付け回路150cまたは150dで可変抵
抗器などによつて効果変調用発振器130などの
出力信号と異重み付け合成されることによつて各
種の演算パラメータ毎のモジユレーシヨン信号に
分解され、変調回路150のアナログマルチプレ
クサ150hに供給される。この間、プログラム
の実行はステツプ1134に移行し、モジユレー
シヨンデータに関する判別コードJCおよび当該
キーオンフアイルKOFに登録されているキーコ
ードKCを第2プロセツサ部200に対して送出
する。そして、この処理が終了するとステツプ1
135に移行し、ここにおいて当該キーオンフア
イルKOFに登録されているキーコードKCに関す
るモジユレーシヨンデータを各演算パラメータ毎
に読み取るため、パラメータカウンタPCに初期
値としての「9」をロード命令「(PC)←9」に
よつてロードする(第6表参照)。次いでステツ
プ1136に移行し、第1演算装置101は、前
述の第5表で示したようにラツチ1501のI/
Oデバイスアドレスを上位アドレス情報、当該キ
ーコードKCのキーボードコードKBCを次位アド
レス情報、パラメータカウンタPCの内容を下位
アドレス情報としてアドレスバスADB1に送出す
る。すると、アナログマルチプレクサ150hか
ら当該キーコードKCに関するモジユレーシヨン
信号のうち、パラメータカウンタPCの内容に対
応するモジユレーシヨン信号が抽出されてAD・
C160に供給される。これによつて次のステツ
プ1137におけるAD変換処理がスタートす
る。この後、プログラムの実行はステツプ113
8に移行し、変換終了信号EOCがデータバスに
現われるまでに待機状態に入る。そして、変換終
了信号EOCが現われると、次のステツプ113
9に移行し、AD.C160によつてデイジタル化
されたモジユレーシヨン信号を読み取つてモジユ
レーシヨンデータとしてFIFO1に送出する。こ
のようにしてパラメータカウンタPCの内容によ
つて指定されたある1つの演算パラメータに関す
るモジユレーシヨンデータの読み取り処理が終了
すると、プログラムの実行は次のステツプ114
0に移行し、ここにおいてパラメータカウンタ
PCの内容が「14」に達しているかどうかを判断
する。つまり、当該鍵の全ての演算パラメータに
関するモジユレーシヨンデータの読み取り処理が
終了したかどうかを判断する(第6表参照)。こ
の判断処理の結果、パラメータカウンタPCの内
容が「14」に達していなければ、パラメータカウ
ンタPCの内容を次のステツプ1141のインク
リメント命令「(PC)←(PC)+1」によつてイ
ンクリメントし、新たなパラメータカウンタPC
の内容に対応するモジユレーシヨンデータを前述
の場合と同様にして読み取る。このような処理を
繰り返し行なうことはより、パラメータカウンタ
PCの内容が「14」になると、プログラムの実行
はステツプ1140の分岐によりステツプ114
2へ移行する。そして、ステツプ1142の判断
命令によつてキーオンフアイルサーチカウンタ
KFCの内容が「1」に達していれば、キーオン
フアイルKOF1〜KOF14に登録されている押下鍵
に関するモジユレーシヨンデータの読み取り処理
は全て終了したものとして判断し、プログラムの
実行はメインルーチンへ復帰する。なお、パラメ
ータカウンタPCの内容と各演算パラメータ
(CA,LA,CT,Pi,M1,M2)との関係について
は第6表に示した通りである。 以上が第1プロセツサ部100における各種の
処理を行うプログラムの詳細説明図である。 次に、第2プロセツサ部200における各部の
詳細構成および動作について説明する。 第2演算装置201 第2演算装置201は汎用のマイクロプロセツ
サで構成されるものであるが、次の第17表に示す
ようなアキユムレータ、レジスタ、カウンタ等を
内蔵している。なお、この第17表には後で演算処
理内容を説明する上で必要なものだけが記載され
ている。
[Table] Next, the contents of the note number register NNr are incremented to "1" by the increment command "(NNr)←(NNr)+1" in step 1050. Note number register NNr
Changing the contents of ``0'' to ``1'' means that the result of ``Event exists'' in step 1043 corresponds to the index number ix i (for convenience of explanation, this ix i will be referred to as ``ix 0' '). (i=0)
The line l 0 of the row of the key switch matrix 110a specified in
C located at the intersection of and column line L 1
# This means that the process has started to detect whether a change in the state of one key is a factor.
Therefore, the program execution starts again at step 10.
47, the contents of the B accumulator AccB are shifted to the right by one bit. However, since the contents of the B accumulator AccB are "00000100" as shown in Table 15, no borrow occurs, and the result of "Event" in step 1043 corresponds to the state change of the C# 1 key. It turns out that this is not the cause. Therefore, the program execution moves to steps 1049 and 1050 again, and in step 1049, the contents of the keyboard new status register KBNSr are shifted to the right by 1 bit to become "00000011", and in step 1050, the contents of the keyboard new status register KBNSr are shifted to the right. register
Increment the contents of NNr and set the contents to "2". As a result, the program determines that the result of "Event" in step 1043 is caused by the state change of the D1 key located at the intersection of the row line L0 and the column line L2 of the key switch matrix 110a. The process begins to detect whether or not it is the same. In other words, as in the case of the C# 1 key, the B accumulator is stored in step 1047.
The contents of AccB are shifted to the right by one bit, and it is determined in step 1048 whether a borrow occurs as a result of the right shift. However, due to the previous right shift process, the contents of B accumulator AccB are
Since it is "00000010", no borrow occurs, and the execution of the program shifts to steps 1049 and 1050 three times by the branch instruction "Borrow?". Then, in step 1049, the contents of the keyboard new status register KBNSr are shifted to the right by one bit to make the contents "00000001", and in step 1050, the contents of the note number register NNr are incremented to make the contents "3". do. This causes the program to step 1043.
The result that "event exists" is the row line l 0 and the column line L 2 of the key switch matrix 110a.
A process is started to detect whether or not a change in the state of the D# 1 key located at the intersection with the D#1 key is one of the factors. That is, as in the previous process, the contents of the B accumulator AccB are shifted to the right by the right shift command in step 1047, and it is determined in step 1048 whether or not a borrow occurs as a result of this right shift. Then, the contents of the B accumulator AccB are changed to "00000001" by the right shift process up to the previous time.
Therefore, a borrow occurs, and it is determined that an "event has occurred", and the process moves to the next step 1051. That is, it can be seen that the change in the state of the D# 1 key is also involved in the result of "event occurred" in step 1043. For this reason,
Program execution moves to step 1051,
At this time, the contents of index register IXr “ix 0 =
0” and the content of note number register NNr is “3”.
A key code KC for the D# 1 key is created based on the following. In other words, the content "000000" of the 6-bit index register IXr is transferred to the upper bits B8 to B3.
and note number register NNr with 3-bit configuration.
The key code KC "000000011" related to the D# 1 key is created by combining the contents "011" as the lower bits B2 to B0 and stored in the key code register KCr. After this, the program enters step 1 via terminal M2 as shown in FIG. 10b.
052, 1053, etc., and it is determined whether the change in the state of the D# 1 key is due to a new key depression operation or a new key release operation. That is, in step 1052, the contents of the keyboard new status register KBNSr are shifted to the right by one bit, and if a borrow occurs as a result of this right shift, the change in the state of the D1 key is assumed to be caused by a new key press operation, and the step is started. 105
It is determined by the branch instruction ``Borrow?'' in step 3, and if no borrow occurs, the state change of the D# 1 key is assumed to be caused by a new key release operation, and step 1 is executed.
This is determined by the branch instruction 053 "Borrow?". In other words, in this example, the contents of the keyboard new status register KBNSr are changed to "00000001" by the right shift command in step 1049.
It is becoming. Therefore, when the right shift instruction in step 1052 is executed, a borrow occurs and D
# A change in the state of the 1st key is determined to be due to a new key press operation, that is, it is determined to be an on event. Then, the program execution moves to the key-on routine of step 1054, where the key code KC of the D# 1 key is registered in any of the key-on files KOF 1 to KOF 14 , and then
It is sent as a series of on-event messages along with the initial touch data for the D# 1 key. The key-on routine of step 1054 will be described later using the detailed flowchart shown in FIG. When the sending of the on-event message regarding the D# 1 key is completed in this way, the program execution moves to step 1056, and the result of step 1043 is that there is an event in the octave specified by index number ix 0 . Determine whether there are any keys still involved. This judgment process is performed by the B accumulator.
This can be achieved depending on whether the contents of AccB are "0" or not. B accumulator in this example case
The content of AccB is that program execution is step 1.
"00000000" when moving from 043 to 1051
It is becoming. Therefore, this step 1056
When the branch instruction in step 1043 is executed, it is determined that there are no keys remaining that are related to the "event present" result in step 1043, and the program execution returns to the play event routine. In this case, the content of B accumulator AccB is “0”.
If not, it is determined that the key involved in the result of "Event exists" in step 1043 still remains, and the next step 1043 is performed.
57 increment instruction “(NNr)←(NNr)+
1), the note number register NNr is incremented, and the program then returns to step 1047 via the terminal M3 . As a result, the remaining keys that are involved in the result of "event" in step 1043 are detected in the same way as above, and after the key code KC for this detected key is created, the on event related to this detected key is detected. A message or an off-event message is sent. Here, if no borrow occurs from the keyboard new status register KBNSr as a result of executing the right shift instruction in step 1052 (FIG. 10b), the program proceeds to step 1055 by the branch instruction "Borrow?" in step 1053. Shifting to execution of a key-off routine, processing is performed to cancel the registration of the key code KC registered in any of the key-on files KOF 1 to KOF 14 and to send an off-event message regarding the key code KC. In this case, the relevant key code KC
If the key code KC is not registered in any of the key-on files KOF 1 to KOF 14 , the key code KC is determined to be related to a key that is not assigned to a pronunciation channel, and is ignored. That is, in such a case, the off-event message is not sent. (Key-on Routine) Next, the key-on routine will be explained. FIG. 11 is a detailed flowchart showing one embodiment of the key-on routine. This key-on routine is a program that is executed when the change in key state in the octave specified by index number ix i is caused by a newly pressed key in the manual event search routine described above. A process for registering a key code KC corresponding to the pressed key and a process for sending an on-event message related thereto are performed. When the execution of the program shifts to the key-on routine, the initial value "14" is set in the key-on file search counter KFC by the load instruction "(KFC)←14" at step 1060. In other words, in order to detect a blank file among the 14 key-on files KOF 1 to KOF 14 for the upper keyboard UK and lower keyboard LK (corresponding to the 14 sounding channels for the upper keyboard UK and lower keyboard LK), the key-on file search is performed. counter kfc
is set to ``14''. After this, the execution of the program moves to step 1061, where the first arithmetic unit 101 uses the program counter PGC.
The contents of the key-on-file search counter KFC are sent to the address bus ADB 1 as upper address information and the contents of the key-on-file search counter KFC as lower address information. Then,
Among the key-on-files KOF 1 to KOF 14 provided in the WRK memory 190, the memory contents of the key-on-file KOF 14 specified by the content "14" of the key-on-file search counter KFC are stored in the data bus.
It is read into the first arithmetic unit 101 via DB 1 . And this loaded key-on file
Determine whether the contents of KOF 14 are blank. That is, the key-on file search counter
Check whether some key code KC is registered in the key-on file KOF 14 specified by KFC content "14", or whether the key code KC is not registered and the key-on file KOF 14 or blank file is set. to decide. If the key-on file KOF 14 is found to be a blank file by this judgment process, a new key code related to the pressed key is assigned to this blank file KOF 14 .
Register KC. The key code KC related to this newly pressed key is stored in the key code register KCr by the load command "(KCr)←(IXr)+(NNr)" in step 1051 in the manual event search routine described above. Therefore, the process of registering a key code for a blank file starts with the load instruction "(KOF)<FC>←( KCr). On the other hand, key-on file search counter KFC
Key-on file specified by content "14"
If KOF 14 is not a blank file, program execution moves from the branch instruction at step 1061 to the branch instruction "(KFC) = 1?" at step 1065, where the content of the key-on file search counter KFC reaches "1". It is determined whether the As a result of this judgment process, the content of the key-on file search counter KFC is "14".
Since this has not reached "1", program execution moves to step 1066, a decrement instruction, where the contents of the key-on-file search counter KFC are decremented. and,
The content of the new key-on-file search counter KFC is “13”, and the corresponding key-on-file search counter
It is determined in step 1061 whether KOF 13 has become a blank file. As a result of this judgment process, if the key-on file KOF 13 is not a blank file, the program execution returns to step 1065 and the same process as above is performed. Then, such processing is repeated, and when it is determined in step 1073 that the content of the key-on-file search counter KFC is "1", the 14 key-on-files KOF 1 to
All KOF 14s have some kind of key code KC already registered, and it is determined that there is no key-on file in which the key code KC for the newly pressed key can be registered. It is determined that the sound channel to which the sound generation should be assigned does not exist, and the program execution returns to the manual event search routine. That is, if a blank file does not exist, the key code KC associated with the newly pressed key is ignored, and as a result, no musical tone corresponding to this pressed key is generated. On the other hand, if any of the key-on files KOF 1 to KOF 14 is a blank file, the key code KC for the newly pressed key is entered in step 106.
2, key-on file search counter
It is registered in the key-on-file KOF specified by KFC, but in the next step 1063, the initial touch data ITD for each calculation parameter regarding the pressed key is stored in the WRK register WRKr 1 ~
Loaded into WRKr 6 in a time-sharing manner. As described above, this initial touch data ITD reading process is executed based on the key code KC and the contents of the parameter counter PC regarding the pressed key. After this, the program execution will proceed to the next step 1.
064, and here the key-on file
An on-event message regarding a new pressed key registered in any of KOF 1 to KOF 14 is sent. As mentioned above, this on-event message starts with a unique discrimination code JC representing an on-event, followed by a key code KC that indicates a newly pressed key, and then a code for each calculation parameter related to the newly pressed key. Initial touch data
2nd processor section 2 via FIFO 1 in the order of ITD.
Sent for 00. When the process of step 1064 is completed, the program execution returns to the manual event search routine. (Key-off Routine) Next, the key-off routine will be explained. FIG. 12 is a detailed flowchart showing one embodiment of the key-off routine. This key-off routine is a program that is executed when the change in key state in the octave specified by index number ix i is caused by a new key release operation in the manual event search routine described above. A process for deregistering a key code KC corresponding to a release key registered in any of the key-on files KOF 1 to KOF 14 and a process for sending an off-event message regarding the release key are performed. When the execution of the program shifts to the key-off routine, the initial value "14" is set in the key-on file search counter KFC by the load command "(KFC)←14" at step 1070. In other words, in order to detect the key-on-file KOF in which the key code KC corresponding to the release key is registered from the 14 key-on files KOF 1 to KOF 14 related to the upper keyboard UK and lower keyboard LK, the key-on file search counter KFC is first entered with "14" is set. After this, the program execution moves to step 1071, where the first arithmetic unit 101 sends the contents of the program counter PGC as upper address information and the contents of the key-on-file search counter KFC as lower address information to the address bus ADB 1 . . Then, WRK memory 1
Key-on file KOF 1 installed in 90
Of KOF 14 , key-on file search counter
The stored contents of the key-on file KOF 14 designated by the KFC contents "14" are read into the first arithmetic unit 101 via the data bus DB 1 . Next, the content of the read key-on-file KOF 14 and the key code KC corresponding to the release key stored in the key code register KCr are combined using the exclusive OR instruction “(KCr)V(KOF)<KFC>”. compared. As a result of this comparison process, if the contents of the key-on-file KOF 14 specified by the contents of the key-on-file search counter KFC and the contents of the key code register KCr are not the same, the branch instruction "Are they the same?" in step 1072 is executed. The program execution then moves to step 1073, a branch instruction "(KFC)=1?", where it is determined whether the content of the key-on-file search counter KFC has reached "1". As a result of this judgment process, the content of the key-on-file search counter KFC is "14" and has not reached "1", so the program execution continues at step 10.
74 decrement instruction “(KFC)←(KFC)−
1", where the contents of the key-on-file search counter KFC are decremented. As a result, the content of the key-on-file search counter KFC becomes "13", and the program execution returns to step 1071, where the corresponding key-on-file search counter KFC becomes "13".
Read the memory contents of KOF 13 , and then read the contents of the key-on file KOF 13 and the key code register.
Compare the contents with KCr. As a result of this comparison process,
If the contents of the key-on-file KOF 13 are not the same as the contents stored in the key code register KCr, the program execution again shifts from step 1072 to step 1073, the branch instruction "(KFC)=1?". Thereafter, such processing is repeated, and when it is determined in step 1073 that the content of the key-on-file search counter KFC is "1", the 14 key-on-file search counters KOF 1
It is determined that the key code KC corresponding to the release key is not registered in any of ~KOF 14 , and the program execution returns to the manual event search routine. That is, the off-event at this time is determined to be caused by a key release operation of a key that is not registered in any of the key-on files KOF 1 to KOF 14 , and the program execution returns to the manual event search routine. On the other hand, key-on file search counter KFC
If the contents of the key-on file KOF specified in and the contents stored in the key code register KCr are the same, the key-on file KOF is determined to be the key-on file in which the key code KC corresponding to this new release key was registered. , the execution of the program moves to step 1075 in response to the branch instruction "Is it the same?" at step 1072. Then, in step 1075, an off-event message regarding this release key is sent.
That is, the first processor section 100 sends out a determination code JC representing an off event and a key code KC corresponding to a release key as a series of off event messages. After this, the program execution continues at step 1076.
The key-on file KOF in which the key code KC corresponding to the release key is stored is transferred to KOF.
Clear. When the process of step 1076 is completed, the program execution returns to the manual event search routine. As is clear from the above explanation, the key-on routine shown in FIG. 11 and the key-on routine shown in FIG. It can be thought of as a channel processor that performs (Pedal Event Search Routine) Next, the pedal event search routine will be explained. FIGS. 13a-13c are detailed flowcharts illustrating one embodiment of the pedal event search routine. As described above, this pedal event search routine is executed when performing key state detection processing and preliminary registration processing on the pedal keyboard PK.
In other words, when the execution of the manual event search routine for the upper keyboard UK and lower keyboard LK described above is completed, the program execution starts from this FIG.
The process moves to the pedal event search routine shown in ~c (see FIG. 9). By the way, this pedal event search routine, like the aforementioned manual event search routine, can be roughly divided into two parts: detecting a change in key status and detecting the key that caused the change; It consists of a part for pre-registering keys or canceling pre-registration, and the former part is made up of a program similar to the manual event search routine. In other words,
Steps 1080 to 109 shown in FIGS. 13a and 13b
3 and step 1 shown in Figures 10a and b above.
Programs 040 to 1053 have the same content. Therefore, the program execution starts from the manual event search routine to FIG.
When the routine moves to the pedal event search routine shown in c, it is detected in steps 1080 to 1083 whether there is a change in the key state on the pedal keyboard PK, and in steps 1084 to 1091, the key involved in the change in key state is detected and the key code is detected. KC is created, and then step 10
At 92 and 1093, it is detected whether the key involved in the change in key state has been newly pressed or released. If the change in key state is an on-event, the program execution proceeds to step 1094 (FIG. 13b), which constitutes the preliminary registration portion of this pedal event search routine. Conversely, if the change in key state is an off event, program execution proceeds to step 1110 (FIG. 13c), which constitutes the preliminary deregistration portion of this pedal event search routine. First, a program for when a change in key state is detected as an on event will be described. If a change in the key state is detected as an on event by executing the branch instruction ``Borrow?'' in step 1093, the program moves to the execution of the branch instruction ``(PFGr) = 0?'' in step 1094. Priority flag register PFGr that executes priority control for preliminary registration of pedal keyboard PK
It is detected whether the contents of (Table 7) are "0" or "1". In other words, the electronic musical instrument shown in this example has a pedal keyboard as described above.
For PK, two pronunciation channels are always assigned, but only the most recently pressed last key is prioritized and channel assigned to these two pronunciation channels, and if this priority key is released. Priority control is performed so that the next most recently arrived key is prioritized and assigned to the two sound generation channels. If a plurality of new pressed keys are detected at the same time, priority is given to low tones, so that only the lowest pressed key is selected and processed as the last key to arrive. Therefore, the pedal keyboard PK
Pedal key-on file PKF for registering the key code KC corresponding to the key pressed in
is provided with two pedal key-on files PKFa and PKFb for the priority key and the next priority key (see Table 7),
These two pedal key-on file PKFa,
A musical tone based only on one of the key codes KC registered in PKFb is produced from two pronunciation channels. Therefore, musical tones related to this pedal keyboard PK are always related to a single pressed key and are single notes. The priority flag register PFGr is provided to perform such priority control, and when its content is "0", the key code registered in the pedal key-on file PKFa is set.
Indicates the state in which the musical tone corresponding to KC has already been sounded or should be sounded, that is, indicates the A-side priority state, and when it is "1", the musical tone corresponding to the key code KC registered in the pedal key on file PKFb. represents a state in which the sound has already been produced or a state in which the sound should be produced, that is, a state in which side B has priority. In other words,
If a new on event occurs while the priority flag PFG is "0", the key code KC registered in the pedal key on file PKFa will be associated with the next last arriving key, and the corresponding musical tone will disappear. At the same time, the key code KC related to the new on-vent will be added to the pedal key-on file as it relates to the last key at the time of notification.
It is registered in PKFb and the corresponding musical tone is played.
On the other hand, if a new on event occurs while the priority flag PFG is "1", the key code KC registered in the pedal key on file PKFb will be related to the next last arriving key, and the corresponding musical tone will be At the same time, the key code KC related to the new on event is registered in the pedal key on file PKFa as the key code related to the last key at the time, and the corresponding musical tone is produced. Therefore, the program execution starts at step 109.
4, the branch instruction "(PFGr)=0?" of step 1094 is executed. As a result, if the priority flag PFG is "0", the priority state at that point in time is the A side priority state, that is, the state where the musical tone based on the key code KC registered in the pedal key-on file PKFa is being sounded or is not being sounded. It is determined that the situation was as it should have been. After this, program execution moves to the next step 1095, where the pedal key on file is
Is the key code KC registered in PKFa?
Or determine whether it is a blank file. As a result of this judgment process, if it is found that the key code KC has already been registered in the pedal key on file PKFa, the program execution moves to the next step 1098, where the key code registered in the pedal key on file PKFa is registered.
An off-event message is sent indicating that the musical tone corresponding to KC should disappear. On the other hand, as a result of the judgment processing in step 1095, if it is found that the pedal key on file PKFa is a blank file, the program execution proceeds to step 10.
Move to 97. Pedal key on file PKFa even though the priority status is A side priority status
The fact that is a blank file means that no musical tone related to the pedal keyboard PK is being produced at that point in time. Therefore,
In this case, the program execution immediately moves to step 1097, where the key code KC related to the on event at that point in time is registered in the pedal key on file PKFb. After this, the program moves to step 1098, and the new key code KC registered in the pedal key on file PKFb is entered.
Sends an on-event message with a unique identification code JC. As a result, the key code KC registered in the pedal key-on file PKFb corresponds to the last key arrived at the present time, and the corresponding musical tone is generated. When the process of step 1093 is completed, the program execution moves to the next step 1099, where the priority flag PFG is set to "1".
In other words, the current priority state is updated to the B-side priority state, and then the process returns to the play event search routine described above. The above is the processing content when a new on-event occurs in the A-side priority state, but similar processing is executed when a new on-event occurs in the B-side priority state. In other words, step 10
If the priority flag PFG is “1” as a result of executing the judgment instruction “(PFGr)=0?” in No.94, the priority state at that time is the B-side priority state,
In other words, it is determined that the musical tone based on the key code KC registered in the pedal key on file PKFb is being sounded or should be sounded, and in the next step 1100, it is determined whether the contents of the pedal key on file PKFb are blank or not. Decide whether or not. As a result of executing the judgment command "(PKFr)=empty 7" in step 1100, if it is found that the key code KC is registered in the pedal key on file PKFb, the key code KC is registered in the pedal key on file PKFb in the next step 1101. An off event message is sent indicating that the musical tone based on the key code KC should disappear. Conversely, if it is found that the contents of the pedal key on file PKFb are blank, the program execution immediately moves from step 1100 to step 1102, where the key code KC related to the on event at that point in time is stored in the pedal key on file PKFa. register. After this, in the next step 1103, the pedal key on file is
The on-event message regarding the new key code KC registered in PKFa is sent to the unique identification code JC.
Send with . As a result, the key code KC registered in the pedal key on file PKFa corresponds to the last key received at this time.
A musical tone corresponding to this is produced. When the process of step 1103 is completed, the program execution moves to the next step 1104, where the priority flag PFG is updated to "0",
That is, the current priority state is updated to the A side priority state, and thereafter the process returns to step 1030 of the play event search routine (FIG. 9) described above. Next, a program will be described in which a change in the key state on the pedal keyboard PK is detected as an off event by the judgment command "Borrow?" in step 1093. If a change in key state is detected as an off event, program execution moves from step 1093 to step 1110 of FIG. 13c. Then, in step 1110, it is compared whether the key code KC related to the off event is the same as the key code KC registered in the pedal key on file PKFa. This comparison process is realized by executing an exclusive OR process between the memory contents of the key code register KCr and the memory contents of the pedal key-on file PKFa. If the value obtained as a result of executing this exclusive OR processing is "0", it means that the memory contents of the key code register KCr and the memory contents of the pedal key-on file PKFa are the same, and the process in step 1111 is performed. The branch causes program execution to proceed to step 1112. Conversely, if the value obtained by the exclusive OR processing in step 1110 is a positive value, it means that the stored contents of the key code register KCr and the stored contents of the pedal key-on file PKFa are different. By branching at step 1111, the program execution moves to step 1119, and in this step 1119, the key code register KCr is set.
Compare the memory contents of the pedal key-on file PKF 6 with the memory contents of the pedal key-on file PKF 6 . Such a comparison process means that it is detected whether the key code KC related to the off event is registered in the pedal key on file PKFa or PKFb.
Therefore, if the key code KC related to the off event is registered in the pedal key on file PKFa, the program is executed in step 1.
By branching at step 111, the process moves to step 1112.
Here, it is determined in which priority state the key registered in the pedal key on file PKFa was released. In other words, it is determined in which priority state the off event occurred at this time, and from this it is determined whether the key registered in the pedal key on file PKFa corresponds to the last arrived key. to judge. For example, when the priority flag PFG shows "0" at this time, indicating the A side priority state, the key registered in the pedal key on file PKFa is the last key arrived at this time, and the off event at this time It can be seen that this is an off event due to the release of the last arrived key. In this way, when it is known that the key code KC registered in the pedal key on file PKFa is related to the last key received, the program execution proceeds to step 1.
114, where an off event message regarding the contents of the pedal key on file PKFa (key code KC) is sent, and then in the next step 1115, the pedal key on file is sent.
Clear the contents of PKFa. As a result, the musical tone corresponding to the last key that was registered and sounded in the pedal key on file PKFa is erased. When this processing is completed, the execution of the program moves to step 1116, where it is determined whether the contents of the pedal key-on file PKFb are blank based on the determination command "(PKFa)=empty?". That is, in the A-side priority state, it is determined whether the key code KC corresponding to the next last arriving key is registered in the pedal key-on file PKFb. As a result of this judgment process, if the contents of the pedal key-on file PKFb are blank, the program returns to step 1030 of the play event search routine (FIG. 9) via the terminal PD4 . However, if some key code KC is registered in the pedal key on file PKFb, the program execution will proceed from step 1116 to step 1117.
It is assumed that the key code KC registered in the pedal key-on file PKFb corresponds to the next succeeding key, and an on-event message regarding the next succeeding key is sent here. As a result, a musical tone corresponding to the next succeeding key registered in the pedal key-on file PKFb is produced. When this process is completed, the program execution moves to step 1118, updates the priority flag PFG to "1", sets the priority state to the B-side priority state, and then returns to the play event search routine. On the other hand, the judgment instruction in step 1112 is “(PFGr)
=0? Pedal key on file by PKFa
If it is found that the key registered in
Execute command 13 “(PKFa):Clear” to clear the contents of the pedal key-on file PKFa,
After this, the process returns to the play event search routine. The above is the processing content when an off event occurs regarding the same key code as the key code KC registered in the pedal key on file PKFa. Similar processing is performed when an event occurs. In other words, in step 1119, as a result of executing the exclusive OR processing of the memory contents of the key code register KCr and the pedal key-on file PKFb, if the obtained value is "0", the memory contents of the key code register KCr and the pedal key-on file PKFb are executed. file
The stored contents of PKFb are the same, and the execution of the program shifts to step 1121 by branching from step 1120. However, if the value obtained as a result of executing the exclusive OR process is a positive value, the memory contents of the key code register KCr are different from the memory contents of the pedal key-on files PKFb and PKFa, and at this time It is determined that the off event is due to the release of a key that is not registered in either of the two pedal key on files PKFa and PKFb, and the program execution immediately returns to the play event search routine. When the program execution moves from step 1120 to step 1121, this step 112 is executed as in the case of the pedal key on file PKFa.
Pedal key on file is determined by determining the contents of the priority flag PFG in step 1.
It is determined whether the key assigned to PKFb corresponds to the last arriving key or the next succeeding arriving key. In other words, the priority flag PFG is “0”
If so, the key registered in the pedal key on file PKFb is determined to correspond to the next succeeding key, and the program execution proceeds to step 1121.
The process moves to step 1122, where the contents of the pedal key on file PKFb are cleared, and then the process returns to the play event search routine. Conversely, if the priority flag PFG is "1", the key registered in the pedal key on file PKFb is determined to be the last key received, and the program execution branches from step 1121 to step 1123. do. and,
After sending an off event message regarding the contents of the pedal key on file PKFb in step 1123, the contents of the pedal key on file PKFb are cleared in the next step 1124. This allows the pedal key-on file to be
The musical tones registered and sounded in PKFb will be deleted. When this process is completed, the program execution moves to step 1125, where it is determined whether the key code KC corresponding to the next succeeding key is registered in the pedal key on file PKFa. If the pedal key on file
If the key code KC corresponding to the next most recently arrived key is not registered in PKFa, the program execution returns to the play event search routine. but,
When it is found that the key code KC corresponding to the next succeeding key is registered in the pedal key on file PKFa, the program execution proceeds to the next step 112.
6, where an on-event message regarding the contents of the pedal key-on file PKFa is output. As a result, a musical tone corresponding to the next succeeding key registered in the pedal key on file PKFa is produced. When this processing is completed, the program execution moves to step 1127, updates the priority flag PFG to "0", sets the priority state to the A side priority state, and then returns to the play event search routine. As is clear from the above explanation, in the pedal keyboard PK, the musical tone corresponding to only the most recently pressed last key among the plurality of pressed keys is sounded preferentially, and the last pressed key is not released. In this case, a musical tone corresponding to the next succeeding key is produced. This makes it extremely convenient for legato performances in which musical tones change continuously without any breaks. (Modulation Data Get Routine) Next, the modulation data get routine will be explained. FIG. 14 is a detailed flowchart showing one embodiment of the modulation data get routine. This modulation data get routine is a program that is executed after the execution of the play event search routine described above is completed, and is a program that is executed after the execution of the play event search routine described above is completed . Processing is executed to extract modulation data regarding the pressed keys (excluding pedal keyboard PK) from the modulation circuit 150. When the execution of the program shifts from the play event search routine to the modulation data get routine, first, the initial value "14" is set in the key-on-file search counter KFC by the load command "(KFC)←14" in step 1130. is set. In other words, in order to detect the key-on-file KOF in which the key code KC is registered among the 14 key-on files KOF 1 to KOF 14 related to the upper keyboard UK and lower keyboard LK, the key-on-file search counter KFC is set to "14." Ru. After this, the program execution proceeds to the next step 1131.
Here, the first arithmetic unit 101 uses the contents of the program counter PGC as upper address information and the contents of the key-on-file search counter KFC as lower address information to the address bus ADB 1 .
As a result, the contents of the key-on-file KOF specified by the contents of the key-on-file search counter KFC are read out and loaded into the A accumulator AccA. Then, in the next step 1132, by determining whether the contents of the A accumulator AccA are "0", it is determined whether the key code KC is registered in the key-on-file KOF specified by the contents of the key-on-file search counter KFC. judge whether As a result of this judgment process, if the content of the A accumulator AccA is “0”, the key-on file is
It is determined that the key code KC is not registered in KOF, that is, the key code KC is not registered in the KOF.
KOF is determined to be a blank file and the terminal
The process moves to step 1142 via MG 3 . If the content of the key-on-file search counter KFC reaches "1" in step 1142, the process returns to the main routine (FIG. 8a). i.e. all key-on file KOF 1
It is assumed that the extraction process of the modulation data related to the key code KC registered in ~KOF 14 is completed, and the process returns to the main routine. but,
If the content of the key-on file search counter KFC has not reached "1" in step 1142, the program execution moves to step 1143, and the decrement command "(KFC)←(KFC)-1" in step 1143 is executed. Step 1131 via terminal MG 2 after executing and decrementing the contents of the key-on file search counter KFC.
Return to new key-on file search counter
Any one key-on file with KFC contents
Specify KOF, read its contents, and load it into A accumulator AccA. Then, as a result of executing the judgment instruction "(AccA)=0?" in step 1132, the content of the A accumulator AccA is "0".
If not, it is determined that the key code KC is registered in the key-on file KOF, and the process moves to the next step 1133. and,
In this step 1133, the first arithmetic unit 1
01 is the latch 150 of the modulation circuit 150 (FIG. 6)
Sends the I/O device address of 1 to address bus ADB 1 as upper address information and the key code KC registered in the relevant key-on-file KOF as lower-order address information, thereby registering it in the relevant key-on-file KOF. key code
Aftertouch signal related to KC (analog signal)
Extract. As described above, this extracted aftertouch signal is combined with the output signal of the effect modulation oscillator 130 using a variable resistor or the like in the aftertouch weighting circuit 150c or 150d of the corresponding keyboard in a different weighted manner. The signal is decomposed into modulation signals for each type of calculation parameter, and is supplied to the analog multiplexer 150h of the modulation circuit 150. During this time, the program execution moves to step 1134, and the determination code JC regarding the modulation data and the key code KC registered in the key-on file KOF are sent to the second processor section 200. When this process is completed, step 1
135, and here, in order to read the modulation data related to the key code KC registered in the relevant key-on-file KOF for each calculation parameter, a load command "9" as an initial value is sent to the parameter counter PC "( PC)←9” (see Table 6). Next, the process moves to step 1136, where the first arithmetic unit 101 connects the I/O of the latch 1501 as shown in Table 5 above.
The O device address is sent to the address bus ADB 1 as upper address information, the keyboard code KBC of the key code KC as next address information, and the contents of the parameter counter PC as lower address information. Then, among the modulation signals related to the key code KC, the analog multiplexer 150h extracts the modulation signal corresponding to the contents of the parameter counter PC and outputs the modulation signal to the AD.
Supplied to C160. This starts the AD conversion process in the next step 1137. After this, the program execution continues at step 113.
8 and enters a standby state until the conversion end signal EOC appears on the data bus. Then, when the conversion end signal EOC appears, the next step 113
9, the modulation signal digitized by the AD.C 160 is read and sent to the FIFO 1 as modulation data. When the reading process of the modulation data regarding one calculation parameter specified by the contents of the parameter counter PC is completed in this way, the program execution proceeds to the next step 114.
0, and here the parameter counter
Determine whether the contents of the PC have reached "14". That is, it is determined whether reading processing of modulation data regarding all calculation parameters of the key has been completed (see Table 6). As a result of this judgment process, if the content of the parameter counter PC has not reached "14", the content of the parameter counter PC is incremented by the increment command "(PC)←(PC)+1" in the next step 1141, New parameter counter PC
Modulation data corresponding to the content of is read in the same manner as in the previous case. Repeating this process will cause the parameter counter to
When the contents of the PC become "14", the program execution branches to step 1140.
Move to 2. Then, the key-on-file search counter is activated by the judgment command in step 1142.
If the content of KFC has reached "1", it is assumed that the reading process of the modulation data related to the pressed keys registered in the key-on files KOF 1 to KOF 14 has been completed, and the program execution is started as the main one. Return to routine. The relationship between the contents of the parameter counter PC and each calculation parameter (CA, LA, CT, Pi, M 1 , M 2 ) is shown in Table 6. The above is a detailed explanatory diagram of the program that performs various processes in the first processor section 100. Next, the detailed configuration and operation of each part in the second processor section 200 will be explained. Second Arithmetic Device 201 The second arithmetic device 201 is composed of a general-purpose microprocessor, and has built-in accumulators, registers, counters, etc. as shown in Table 17 below. It should be noted that this Table 17 only lists what is necessary to explain the contents of the calculation process later.

【表】 プログラムカウンタPGCは、周知のように予
め特定のアドレスが割当てられたI/Oデバイス
やメモリ等からその内容を読み取つたり、あるい
は第2演算装置201からI/Oデバイスやメモ
リ等に各種情報を転送する場合におけるアドレス
情報を出力するものである。 AアキユムレータAccは所定の演算プログラム
による演算結果を格納するものであり、データの
転送処理以外の演算処理はこのAアキユムレータ
Accとの組合せで実行される。 チヤンネルカウンタCCは楽音パラメータG
〔CA〕〜G〔M2〕および周波数パラメータR
(R1,R2)を算出すべきチヤンネル指定や、キー
コードKCのチヤンネル割当てあるいはチヤンネ
ル割当ての解除を行うときのチヤンネル指定を行
うカウンタであり、その内容「0〜15」により対
応する発音チヤンネルが指定される。 パラメータカウンタPCおよびサブパラメータ
カウンタSPCは、後述するTCT210から楽音
パラメータの種類毎の演算パラメータIZm,
BL・ADRmなどを読み出したり、あるいは各種
類毎の楽音パラメータを算出する場合において楽
音パラメータの種類の指定および演算パラメータ
の種類の指定を行うカウンタである。なお、楽音
パラメータの種類とパラメータカウンタPCの内
容との対応関係および演算パラメータの種類とサ
ブパラメータカウンタSPCの内容との対応関係に
ついては後述する。 第1系列チヤンネルナンバレジスタCNr1は後
述するトランケート制御において第1系列に関す
るキーコードKCが割当てられていたチヤンネル
ナンバを一時記憶するレジスタであり、第2系列
チヤンネルナンバレジスタCNr2は第2系列に関
するキーコードKCが割当てられていたチヤンネ
ルナンバを一時記憶するレジスタである。 プライオリテイセツトレジスタPRSrは、後述
せるトランケート制御において各発音チヤンネル
のトランケート順位値の最低値を検出するために
用いられるレジスタである。 系列数セツトレジスタDNrは、第1プロセツサ
部100からレジストレーシヨンデータの1部と
して転送されてくる上鍵盤UK、下鍵盤LKの発音
系列数データを一時記憶するレジスタであり、系
列数が1系列の場合その内容は「0」、系列数が
2系列の場合その内容は「10」となる。 音色制御情報テーブル(TCT)210 TCT210は周知のROMなどのメモリ素子で
構成されるものであるが、次の第18表に示すよう
に、各鍵盤における8種類の音色ナンバに対応し
たメモリブロツクMB1〜MB24を備え、さらにこ
の各メモリブロツクMB1〜MB24は楽音パラメー
タG〔CA〕〜G〔〔M2〕および発生楽音のリリー
ス部コントロール用のリリースデータ用〔Re〕
に対応したサブメモリブロツクSMB0〜SMB6
備え、さらにこの各サブメモリブロツクSMB0
SMB6は次の第19表に示すようにマイナメモリグ
ループMMG0〜MMG7を備えている。そして、サ
ブメモリブロツクSMB0〜SMB6のうちSMB1
SMB6のマイナメモリグループMMG0〜MMG7
は、各鍵盤の音色ナンバに対応した楽音パラメー
タG〔CA〕〜G〔M2〕を算出するためのダイレ
クト演算パラメータIZm,Tmやアドレスポイン
タとしてのインダイレクト演算パラメータΔ・
ADRm,n・ADRm,BL・ADRmが第19表に示
すようにして記憶されている。
[Table] As is well known, the program counter PGC reads the contents from an I/O device, memory, etc. to which a specific address has been assigned in advance, or reads the contents from the second arithmetic unit 201 to an I/O device, memory, etc. It outputs address information when transferring various information. The A accumulator Acc stores the calculation results of a predetermined calculation program, and calculation processing other than data transfer processing is performed in this A accumulator.
Executed in combination with Acc. Channel counter CC is musical tone parameter G
[CA] ~ G [M 2 ] and frequency parameter R
This is a counter that specifies the channel for which (R 1 , R 2 ) should be calculated, and the channel when assigning or canceling the channel assignment of the key code KC, and the corresponding pronunciation channel is specified by the contents "0 to 15". is specified. The parameter counter PC and sub-parameter counter SPC receive calculation parameters IZm,
This is a counter that specifies the type of musical tone parameter and the type of calculation parameter when reading BL, ADRm, etc., or calculating musical tone parameters for each type. Note that the correspondence between the types of musical tone parameters and the contents of the parameter counter PC and the correspondence between the types of calculation parameters and the contents of the sub-parameter counter SPC will be described later. The first series channel number register CNr 1 is a register that temporarily stores the channel number to which the key code KC related to the first series is assigned in the truncate control described later, and the second series channel number register CNr 2 is a register that stores the key code KC related to the second series. This register temporarily stores the channel number to which the code KC has been assigned. The priority set register PRSr is a register used to detect the lowest truncate order value of each sound channel in truncate control to be described later. The sequence number set register DNr is a register that temporarily stores the sound sequence number data for the upper keyboard UK and lower keyboard LK, which is transferred as part of the registration data from the first processor section 100, and is a register that temporarily stores the sound sequence number data of the upper keyboard UK and lower keyboard LK, which is transferred as part of the registration data from the first processor section 100. In the case of , the content is ``0'', and if the number of sequences is 2, the content is ``10''. Tone control information table (TCT) 210 The TCT 210 is composed of a well-known memory element such as a ROM, and as shown in Table 18 below, it has a memory block MB corresponding to eight types of tone numbers for each keyboard. 1 to MB 24 , and each memory block MB 1 to MB 24 is used for musical tone parameters G [CA] to G [[M 2 ] and release data [Re] for controlling the release section of the generated musical tone.
It is equipped with sub-memory blocks SMB 0 to SMB 6 that correspond to
SMB 6 includes minor memory groups MMG 0 to MMG 7 as shown in Table 19 below. And out of submemory blocks SMB 0 to SMB 6 , SMB 1 to
The minor memory groups MMG 0 to MMG 7 of SMB 6 contain direct calculation parameters IZm and Tm for calculating musical tone parameters G[CA] to G[ M2 ] corresponding to each keyboard tone number and address pointers. Indirect calculation parameter Δ・
ADRm, n.ADRm, and BL.ADRm are stored as shown in Table 19.

【表】【table】

【表】 この場合、楽音パラメータG〔CA〕〜G
〔M2〕のダイレクト演算パラメータTmおよびイン
ダイレクト演算パラメータn・ADRm,Δ・
ADRmについては、アタツク部分用のダイレク
ト演算パラメータT・Imおよびインダイレクト
演算パラメータn・ADR・Im,Δ・ADR・Im
と、デイケイ部分用のダイレクト演算パラメータ
T・mおよびインダイレクト演算パラメータ
n・ADR・m,Δ・ADR・mとが2種類記
憶されている。 また、発生楽音のリリース部分のコントロール
用のリリースデータD〔Re〕については、演算
周期に関するダイレクト演算パラメータTmと、
演算周期毎の増減値Δmを読み出すためのインダ
イレクト演算パラメータΔ・ADRmのみが記憶
されており、他のマイナメモリグループは空白と
なつている。これは、リリース部分についてはリ
リースレベルとリリースタイムを制御するのみで
よく、ピツチに関連する制御を行う必要がないか
らである。 このTCT210は、各鍵盤の音色ナンバに対
応したアドレス情報でメモリブロツクMB1〜MB8
のうちの1つ、MB9〜MB16のうちの1つ、MB17
〜MB24のうちの1つがそれぞれ指定され、さら
に第2演算装置201内に設けられたパラメータ
カウンタPCの内容に対応したアドレス情報でサ
ブメモリブロツクSMB0〜SMB6のうち1つが指
定され、(第19表参照)さらに第2演算装置20
1内に設けられたサブパラメータカウンタSPCの
内容に対応したアドレス情報でマイナメモリグル
ープMMG0〜MMG7のうち1つが指定される(第
19表参照)ことにより各演算パラメータIZm,
Tm,Δ・ADRm,n・ADRm,BL・ADRmが
読み出される。 ノートスケーリングテーブル(NST)220 NST220は周知のROMなどのメモリ素子で
構成されるものであるが、例えば第15図に示す
特性カーブ〜に対応する各楽音パラメータの
初期値に対するノートスケーリング用の演算パラ
メータBLを記憶しており、前述のTCT210か
ら読み出されたインダイレクト演算パラメータ
BL・ADRmによつて特性カーブの1つが指定さ
れ、さらに押下鍵音高に対応したキーコードKC
によつてアドレスされることによりノートスケー
リング用の係数値としての演算パラメータBLが
読み出される。 例えば、インダイレクト演算パラメータBL・
ADRmの内容とノートスケーリングとは、次の
第20表に示すように関係づけられ、パラメータ
BL・ADRmの内容を選ぶことにより自由なノー
トスケーリングを行うことができる。
[Table] In this case, musical tone parameters G [CA] ~ G
[M 2 ] Direct calculation parameter Tm and indirect calculation parameter n・ADRm,Δ・
For ADRm, the direct calculation parameter T・Im for the attack part and the indirect calculation parameter n・ADR・Im, Δ・ADR・Im
Two types of direct calculation parameters T·m and indirect calculation parameters n·ADR·m and Δ·ADR·m for the decay part are stored. In addition, regarding the release data D [Re] for controlling the release part of the generated musical tone, the direct calculation parameter Tm regarding the calculation cycle,
Only the indirect calculation parameter Δ·ADRm for reading the increase/decrease value Δm for each calculation cycle is stored, and the other minor memory groups are blank. This is because for the release part, it is only necessary to control the release level and release time, and there is no need to perform pitch-related control. This TCT210 stores memory blocks MB 1 to MB 8 with address information corresponding to each keyboard tone number.
One of MB 9 to MB 16 , MB 17
One of the submemory blocks SMB 0 to SMB 24 is specified, and one of the submemory blocks SMB 0 to SMB 6 is specified using address information corresponding to the contents of the parameter counter PC provided in the second arithmetic unit 201. (See Table 19) Furthermore, the second arithmetic unit 20
One of the minor memory groups MMG 0 to MMG 7 is specified by the address information corresponding to the contents of the subparameter counter SPC provided in the subparameter counter SPC provided in the subparameter counter SPC.
(see table 19), each calculation parameter IZm,
Tm, Δ·ADRm, n·ADRm, and BL·ADRm are read. Note Scaling Table (NST) 220 The NST 220 is composed of a well-known memory element such as a ROM, and contains calculation parameters for note scaling for the initial values of each tone parameter corresponding to the characteristic curves shown in FIG. 15, for example. BL is stored and the indirect calculation parameters read from the TCT210 mentioned above.
One of the characteristic curves is specified by BL/ADRm, and a key code KC corresponding to the pitch of the pressed key is specified.
By being addressed by , the calculation parameter BL as a coefficient value for note scaling is read out. For example, indirect calculation parameter BL・
The contents of ADRm and note scaling are related as shown in Table 20 below, and the parameters
Free note scaling can be performed by selecting the contents of BL/ADRm.

【表】 Δテーブル230、nテーブル240 Δテーブル230およびnテーブル240は、
周知のROMなどのメモリ素子で構成される。 Δテーブル230は、前述したように楽音パラ
メータG〔CA〕〜G〔M2〕,D〔Re〕の演算周
期毎の増減値に相当する演算パラメータΔmを記
憶しており、TCT210から読み出されたイン
ダイレクト演算パラメータΔ・ADRmによつて
アドレスされ、これによつてその記憶内容Δmが
読み出される。 nテーブル240は、前述したように楽音パラ
メータG〔CA〕〜G〔M2〕の演算回数に相当す
る演算パラメータnnを記憶しており、TCT21
0から読み出出されたインダイレクト演算パラメ
ータn・ADRmによつてアドレスされ、これに
よつてその記憶内容nnが読み出される。 対数テーブル250、Rテーブル(RNT)26
0 対数テーブル250およびRテーブル260
は、周知のROMなどのメモリ素子で構成され
る。 対数テーブル250は、次の第21表に示すよう
に特殊な値α=21/252=1.002754370を底とした
対 数値logαxが各アドレスに記憶されていて、自
然数のある値xをアドレス情報xとして入力する
と、xを対数化した値logαxが読み出される。
[Table] Δ table 230, n table 240 Δ table 230 and n table 240 are
It is composed of well-known memory elements such as ROM. As mentioned above, the Δ table 230 stores the calculation parameter Δm corresponding to the increase/decrease value for each calculation cycle of the musical tone parameters G[CA] to G[M 2 ], D[Re], and is read out from the TCT 210. The memory content Δm is read out by the indirect calculation parameter Δ·ADRm. As mentioned above, the n table 240 stores calculation parameters n corresponding to the number of calculations of musical tone parameters G[CA] to G[M 2 ], and TCT21
It is addressed by the indirect calculation parameter n·ADRm read from 0, and its memory content n n is thereby read out. Logarithm table 250, R table (RNT) 26
0 Logarithm table 250 and R table 260
is composed of a well-known memory element such as ROM. In the logarithm table 250, as shown in Table 21 below, a logarithm value logαx with a special value α=21/252=1.002754370 as the base is stored in each address, and a certain natural number value x is used as address information x. When input, the value logαx obtained by logarithmizing x is read out.

【表】 ところで、底α=21/252の指数部の分母「252
」 は、1オクターブのノートC〜Bの各音相互間を
21分割した場合の値「12×21=252」に相当し、
これにより底α=21/252は1オクターブを252分
割 したときの隣接する音のピツチ差4.762セントに
相当する値となる。 RNT260は、次の第22表に実すように、log
αR=yとしてR=αyで示される値が各アドレ
スに記憶されていて、対数表現されたある値yを
アドレス情報として入力すると、自数数で表現さ
れた値Rが読み出される。
[Table] By the way, the denominator of the exponent part of base α = 21/252 is ``252
” is the interval between notes C and B in one octave.
Corresponds to the value "12 x 21 = 252" when divided into 21,
As a result, the base α=21/252 becomes a value corresponding to the pitch difference of 4.762 cents between adjacent tones when one octave is divided into 252. RNT260 is log
A value represented by R=αy, where αR=y, is stored at each address, and when a certain value y expressed in logarithm is input as address information, a value R expressed as a natural number is read out.

【表】 タイマ270 全発音チヤンネルに関する楽音パラメータG
〔CA〕〜G〔M2〕の演算処理時間を規制するため
のタイマ270は、例えば第16図に示すように
構成されている。 第16図において、カウンタ270aは3ステ
ートバスバツフア270bを介してデータバス
DB2から供給されるリセツト信号RSTによつてク
リアされる。この後、カウンタ270aはアンド
ゲート270cを介して発振器270dから供給
されるクロツク信号をカウントする。そして、カ
ウンタ270aのカウント値が最大値(全ビツト
が“1”)になると、アンドゲート270eのア
ンド条件が成立し、その出力からタイマフラグ信
号TFGが出力される。このタイマフラグ信号
TFGが出力される。このタイマフラグ信号TFG
は、インバー270fで反転されてアンドゲート
270cの禁止入力となり、これによつてカウン
タ270aに対するクロツク信号の供給は停止さ
れ、カウンタ270aのカウント動作は停止す
る。一方、タイマフラグ信号TFGは、3ステー
トバスバツフア270gを介して第2演算装置2
01に読み込まれる。そして、この読み込まれた
タイマフラグ信号TFGに基づき演算処理時間の
制御が行なわれる。 ワーキングメモリ(WRKメモリ)280 ワーキングメモリ280は周知のRAMなどの
メモリ素子で構成されるものであるが、その一部
のメモリエリアを利用して次の第23表に示すよう
なレジスタ等が確保されている。
[Table] Timer 270 Tone parameters G related to all sound channels
A timer 270 for regulating the calculation processing time of [CA] to G[M 2 ] is configured as shown in FIG. 16, for example. In FIG. 16, a counter 270a is connected to a data bus via a 3-state bus buffer 270b.
Cleared by reset signal RST supplied from DB2 . Thereafter, counter 270a counts the clock signal supplied from oscillator 270d via AND gate 270c. When the count value of the counter 270a reaches the maximum value (all bits are "1"), the AND condition of the AND gate 270e is satisfied, and the timer flag signal TFG is output from its output. This timer flag signal
TFG is output. This timer flag signal TFG
is inverted by inverter 270f and becomes an inhibit input to AND gate 270c, thereby stopping the supply of the clock signal to counter 270a and stopping the counting operation of counter 270a. On the other hand, the timer flag signal TFG is transmitted to the second arithmetic unit 2 via the 3-state bus buffer 270g.
01. Then, the calculation processing time is controlled based on the read timer flag signal TFG. Working memory (WRK memory) 280 The working memory 280 is composed of well-known memory elements such as RAM, but some of the memory areas are used to secure registers as shown in Table 23 below. has been done.

【表】【table】

【表】 チヤンネルアサインテーブルCAT1〜CAT16
は、各発音チヤンネルで発音されるべき押下鍵の
キーコードKCおよび当該キーコードKCが第1ま
たは第2系列のいずれに関するものなのかを示す
系列フラグがチヤンネル割当て処理により次の第
24表(その1)に示すように登録され、またチヤ
ンンネル割当てされていたキーコードKCが解放
されるとその鍵解放の順番に相当するトランケー
ト順位値TRiがチヤンネル割当て解除処理により
次の第24表(その2)に示すように登録されるテ
ーブルである。
[Table] Channel assignment tables CAT 1 to CAT 16 contain the key code KC of the pressed key to be sounded in each sound channel and a series flag indicating whether the key code KC relates to the first or second series. is assigned to the next
When a key code KC that is registered and assigned to a channel as shown in Table 24 (Part 1) is released, the truncate ranking value TRi corresponding to the key release order is changed to the one shown in Table 24 below through channel assignment release processing. This is a table registered as shown in (Part 2).

【表】 ところで、第24表(その1)において、「*」
印は系列フラグのビツト位置を示し、ビツトB11
が“1”の場合、当該チヤンネルアサインテーブ
ルCATに記憶されているキーコードKC(=KBC
+OC+NC)は第2系列に関するものであること
を示し、ビツトB11が“0”の場合には第1系列
に関するキーコードKCであることを示してい
る。 また、最上位ビツトB15には、キーコードKCが
割当てられる時にはこれと同時に“1”のビツト
フラグBSY FGがセツトされ、この最上位ビツト
B15により当該チヤンネルがビジイ(BUSY)で
あることを表わす。 一方、鍵が解放された場合、第24表(その2)
で示したようにトランケート順位値TRiがビツト
B3〜B0にセツトされるが、こトランケート順位
値TRiは次の第25表に示すように、最も古く解放
された鍵に関するものが「0000」、次に古く解放
された鍵に関するものが「0001」という具合にセ
ツトされる。そして、新たな押下鍵に対応するキ
ーコードKCをチヤンネル割当てする場合、トラ
ンケート順位値が「0000」を示しているチヤンネ
ルアサインテーブルCATに対し第1系列に関す
るキーコードKCが登録され、トランケート順位
値が「0001」を示しているチヤンネルアサインテ
ーブルCATに対し第2系列に関するキーコード
KCが登録される。
[Table] By the way, in Table 24 (Part 1), "*"
The mark indicates the bit position of the series flag, bit B 11
is “1”, the key code KC (=KBC) stored in the corresponding channel assignment table CAT
+OC+NC) indicates that the key code is related to the second series, and when bit B11 is "0", it indicates that the key code KC is related to the first series. Furthermore, when the key code KC is assigned to the most significant bit B15 , a bit flag BSY FG of "1" is set at the same time.
B 15 indicates that the channel is busy. On the other hand, if the key is released, Table 24 (Part 2)
As shown in , the truncate rank value TRi is
As shown in Table 25 below, the truncate rank value TRi is set to " 0000 " for the oldest released key, and "0000" for the next oldest released key. It is set as "0001". Then, when assigning the key code KC corresponding to the newly pressed key to a channel, the key code KC related to the first series is registered in the channel assignment table CAT whose truncate rank value indicates "0000", and the truncate rank value is Key code related to the second series for channel assignment table CAT showing "0001"
KC is registered.

【表】 以上のことからわかるように、チヤンネルアサ
インテーブルCAT1〜CAT16の内容は、何等かり
押下鍵がチヤンネル割当てされている場合には最
上位ビツトB15が“1”となり、全体として負の
値を示し、空白チヤンネルとなつている場合には
0〜15(10進表示)の正の値を示していることに
なる。従つて、空白チヤンネルを検出する場合に
は、このチヤンネルアサインテーブルCAT1
CAT16の最上位ビツトB15が“1”となつている
か、“0”となつているかの検出を行うのみで実
現できる。 次に、キーコードテーブルKCT1〜KCT16は、
チヤンネル割当てされたキーコードKCをチヤン
ネル別に記憶するテーブルである。チヤンネル割
当てされたキーコードKCは前述のチヤンネルア
サインテーブルCAT1〜CAT16にも記憶される
が、チヤンネルアサインテーブルCAT1〜CAT16
の内容は各チヤンネルに割当てられている鍵が解
放された時点でクリアされる。このため、当該解
放鍵に対応する楽音のリリース部分に関する楽音
パラメータの演算処理ができなくなる。キーコー
ドテーブルKCT1〜KCT16はこのような必要性か
ら設けられている。レジストレーシヨンレジスタ
RGNr1〜RGNr22は第1プロセツサ部100から
転送されてくるレジストレーシヨンデータを記憶
しておくレジスタである。 フツトスイツチフラグレジスタFFGrは第1プ
ロセツサ部100から転送されてくるフツトスイ
ツチのオン・オフ状態を示すフツトスイツチフラ
グFFGを記憶しておくレジスタである。 モジユレーシヨンデータレジスタMDDr1
MDDr16およびイニシヤルデータレジスタIZDr1
IZDr16は、第1プロセツサ部100から転送され
てくる各演算パラメータ毎のモジユレーシヨンデ
ータおよびイニシヤルデータをそれぞれ記憶して
おくレジスタであつて、これら各レジスタは「8
×6」ビツトの記憶容量を有し、各演算パラメー
タはチヤンネル割当てされているキーコードKC
と対応づけて8ビツト単位で記憶される。パラメ
ータ計算用レジスタPRG1〜PRG16は、各発音チ
ヤンネルの楽音パラメータをその種類毎に、かつ
チヤンネル別に算出するときに用いられる合計96
ワード(16チヤンネル×6パラメータ)のレジス
タであつて、各パラメータの種類に対応する単位
ワード(48ビツト)は次の第26表に示すようにさ
らに8ビツトずつ6分割され、演算周期に関する
演算パラメータTを格納するTエリアと、アタツ
ク部計算ルーチンやデイケイ部計算ルーチンなど
次に実行すべき計算ルー童チンのジヤンプアドレ
スJAを格納するJAエリアと、TCT210に上位
アドレス情報として供給する音色ナンバに対応し
たアドレス情報TCT・ADRを格納するTCT・
ADRエリアと、演算回数に関する演算パラメー
タnを格納するnエリアと、増減値に関する演算
パラメータΔを格納するΔエリアと、演算パラメ
ータΔの累算値VALUEを格納するVALUEエリ
アとが確保されている。そして、このパラメータ
計算用レジスタPRG1〜PRG16は、第2演算装置
201内に設けられたチヤンネルカウンタCCに
より、PRG1〜PRG16のうち1つが指定され、パ
ラメータカウンタPCの内容により各パラメータ
の種類に対応する単位ワードが指定され、これに
よつて各種データの送受が行なわれる。
[Table] As can be seen from the above, the contents of channel assignment tables CAT 1 to CAT 16 are such that if the pressed key is assigned to a channel, the most significant bit B 15 becomes "1", and the overall result is negative. If it is a blank channel, it indicates a positive value from 0 to 15 (in decimal notation). Therefore, when detecting a blank channel, use this channel assignment table CAT 1 ~
This can be achieved by simply detecting whether the most significant bit B15 of CAT 16 is "1" or "0". Next, key code tables KCT 1 to KCT 16 are
This is a table that stores key codes KC assigned to channels for each channel. The key code KC assigned to the channel is also stored in the channel assignment tables CAT 1 to CAT 16 mentioned above;
The contents of are cleared when the key assigned to each channel is released. Therefore, it becomes impossible to perform arithmetic processing on musical tone parameters regarding the release portion of the musical tone corresponding to the release key. The key code tables KCT 1 to KCT 16 are provided for this purpose. registration register
RGNr 1 to RGNr 22 are registers that store registration data transferred from the first processor section 100. The footswitch flag register FFGr is a register that stores the footswitch flag FFG transferred from the first processor section 100 and indicating the on/off state of the footswitch. Modulation data register MDDr 1 ~
MDDr 16 and initial data register IZDr 1 ~
The IZDr 16 is a register that stores the modulation data and initial data for each calculation parameter transferred from the first processor section 100, and each of these registers is "8".
It has a memory capacity of 6" bits, and each calculation parameter is assigned a key code KC to the channel.
It is stored in 8-bit units in association with Parameter calculation registers PRG 1 to PRG 16 contain a total of 96 registers used to calculate tone parameters for each sound channel for each type and channel.
It is a word (16 channels x 6 parameters) register, and the unit word (48 bits) corresponding to each parameter type is further divided into 6 pieces of 8 bits as shown in Table 26 below, and the calculation parameters related to the calculation cycle are The T area stores T, the JA area stores the jump address JA of the calculation routine to be executed next, such as the attack part calculation routine and the decay part calculation routine, and the tone number supplied to the TCT 210 as upper address information. TCT/ADR that stores the address information TCT/ADR
An ADR area, an n area for storing a computation parameter n related to the number of computations, a Δ area for storing a computation parameter Δ for an increase/decrease value, and a VALUE area for storing an accumulated value VALUE of the computation parameter Δ are secured. One of the parameter calculation registers PRG 1 to PRG 16 is specified by the channel counter CC provided in the second arithmetic unit 201, and each parameter is calculated according to the contents of the parameter counter PC. A unit word corresponding to the type is designated, and various data are transmitted and received using this unit word.

【表】【table】

【表】 テンポラリパラメータメモリTPM1〜TPM16
次の第27表に示すように、前述したパラメータ計
算用レジスタPRG1〜PRG16のそれぞれの単位ワ
ードに得られた各楽音パラメータのVALUE値と
演算パラメータ毎のモジユレーシヨンデータとを
加算した結果を楽音パラメータ毎にかつチヤンネ
ル別に、一時記憶する96ワード(16チヤンネル×
6パラメータ)のメモリであつて、チヤンネルカ
ウンタCCの内容によりTPM1〜TPM16のうち1
が指定され、パラメータカウンタPCの内容によ
り楽音パラメータの種類に対応した単位ワードが
指定されてその記憶内容のVALUE値+モジユレ
ーシヨンデータが読み出される。
[Table] As shown in the following Table 27, the temporary parameter memories TPM 1 to TPM 16 calculate the VALUE value of each musical tone parameter obtained in each unit word of the parameter calculation registers PRG 1 to PRG 16 described above. The result of adding the modulation data for each parameter is temporarily stored in 96 words (16 channels x
6 parameters), and one of TPM 1 to TPM 16 depending on the contents of channel counter CC.
is specified, a unit word corresponding to the type of tone parameter is specified according to the contents of the parameter counter PC, and the VALUE value + modulation data of the stored contents is read out.

【表】 第2系列セツトフラグレジスタF2Srは、発音
系列数が「2」に設定されている鍵盤に関するキ
ーコードKCをチヤンネル割当てあるいはチヤン
ネル割当ての解除を行う場合において、第2系列
目のキーコードKCをチヤンネル割当てあるいは
チヤンネル割当ての解除を行う時に“1”がセツ
トされるレジスタであつて、この“1”の第2系
列セツトフラグF2Sは以降において実行されるチ
ヤンネル割当てあるいはチヤンネル割当ての解除
処理が第2系列に関するものであることを示して
いる。パラメータ変換指示フラグレジスタCFGr
は、現在において算出しようとしているパラメー
タはその後において新たなパラメータに変換され
るべきであることを一時記憶しておくレジスタで
あつて、このパラメータ変換指示フラグレジスタ
CFGrから“1”のパラメータ変換指示フラグ
CFGが出力されていると、楽音パラメータG
〔CA〕〜G〔M2〕のうち発生楽音のピツチに関連
する楽音パラメータG〔CA〕,G〔CT〕,G
〔Pi〕に基づき後述するパラメータ変換ルーチン
において周波数パラメータR(R1,R2)が算出さ
れる。 logCAレジスタLCArおよびlogCTレジスタ
LCTrは、前述の対数テーブル250を楽音パラ
メータG〔CA〕,G〔CT〕でアドレスすること
によつて読み出したこれらのパラメータG
〔CA〕,G〔CT〕に対応する対数値logαCAおよ
びlogαCTをそれぞれ一時記憶するレジスタであ
る。 yレジスタyrは、対数演算によつて算出された
周波数パラメータlogαRを一時記憶するレジス
タであつて、このyレジスタyrの内容y=logα
Rを前述のRNT260にアドレス情報として与
えると、RNT260から自然数の周波数パラメ
ータRが読み出される。 JレジスタJrは、前述のRNT260に対しア
ドレス情報として与えるyレジスタyrの内容yが
「y<0」の場合、あるいは「y>251」の場
合にこれを「0≦y≦251」に補正して与える
ときの補正値Jを一時記憶するレジスタである。 KレジスタKrは周波数パラメータ,R2のう
ち次に算出すべき周波数パラメータを指示する指
示フラグK(K=0のときR1の算出、K=1の
ときR2の算出)を一時記憶するレジスタであ
る。 CATサーチカウンタRCCは、ある発音チヤン
ネルの楽音がリリースエンドになつたとき、全楽
音チヤンネルのチヤンネルアサインテーブル
CAT1〜CAT16に設定されているトランケート順
位値を更新するために用いられるカウンタであ
る。 以上が第2プロセツサ部200を構成する各部
の詳細構成説明である。以下、プログラムメモリ
202に記憶されている演算プログラムに従つて
この第2プロセツサ部200の動作を詳細に説明
する。 第17図〜第27図は、第2プロセツサ部20
0における演算プログラムの一例を示すフローチ
ヤートである。 はじめに、第17図に示すメインルーチンにつ
いて説明する。このメインルーチンは、前述した
ように、大別してチヤンネルサインルーチンと、
モジユレーシヨンデータゲツトルーチンと、レジ
ストレーシヨンデータゲツトルーチンと、リリー
スコントロールルーチンと、パラメータ計算ルー
チンとから構成されている。 第17図のメインルーチンにおいて、演奏者に
よつて電源が投入されると、まずステツプ2000で
全回路のメモリ、レジスタ等の記憶内容がクリア
され、これによつて第2プロセツサ部200は初
期状態となる。 この後、第2プロセツサ部200は第1プロセ
ツサ部100からのデータ転送をまつている待機
状態に入るが、第1プロセツサ部100から判別
コードJCが付されたメッセージが転送されてく
ると、その判別コードJCに基づき転送メツセー
ジの種別をステツプ2001において判別する。 判別コードJCが鍵のオンイベントまたはオフ
インベントに関するものであつた場合、ステツプ
2002のチヤンネルアサインルーチンへ移行
し、ここにおいてチヤンネル割当て処理あるいは
チヤンネル割当ての解除処理などを実行する。そ
してこの後、ステツプ2003へ移行し、ここに
おいて各チヤンネルの押下鍵に対応する各種の楽
音パラメータG〔CA〕〜G〔M2〕、周波数パラ
メータR(R1,R2)の演算処理を実行し、この結
果を第3プロセツサ部300に対して転送する。 次に、判別コードJCがフツトスイツチのオン
またはオフイベントに関するものであつた場合、
プログラムの実行はステツプ2001からステツ
プ2006のリリースコントロールルーチンへ移
行し、ここにおいて鍵がすでに離されている発音
チヤンネルを検出し、このチヤンネルにおける楽
音を所定のリリースレベルへと移行させる処理を
行う。 次に、判別コードJCがモジユレーシヨンデー
タに関するものであつた場合、プログラムの実行
はステツプ2001からステツプ2007へ移行
し、ここにおいて第1プロセツサ部100から転
送されてくるモジユレーシヨンデータをチヤンネ
ル割当てされてきたキーコードKCと対応づけて
モジユレーシヨンデータMDDr1〜MDDr14にスト
アする。 次に、判別コードJCがレジストレーシヨンデ
ータに関するものであつた場合、プログラムの実
行はステツプ2001からステツプ2008のレ
ジストレーシヨンデータゲツトルーチンに移行
し、ここにおいて第1プロセツサ部100から転
送されてくるレジストレーシヨンデータを順にレ
ジストレーシヨンデータRGNr1〜RGNr22にスト
アする。 ステツプ2006〜2008の各ルーチンにお
ける所定の処理が終了すると、プログラムの実行
はステツプ2003のパラメータ計算ルーチンに
移行し、ここにおいて各種の楽音パラメータG
〔CA〕〜G〔M2〕および周波数パラメータR1,R2
の演算を行う。 このようにして各チヤンネルに割当てられてい
る押下鍵に関する各種のパラメータの算出処理が
終了すると、プログラムの実行はステツプ200
4へ移行し、ここにおいてタイマ270から出力
されるタイマフラグ信号TFGが“1”になつて
いるかどうかを判断する。この判断処理の結果、
タイマフラグ信号TFGが“0”のときは全チヤ
ンネルに関する各種パラメータの算出処理時間が
一定時間に達していないものとして判断され、タ
イマフラグ信号TFGが“1”になるまでプログ
ラムはこのステツプ2004で待機させられる。
その後、タイマフラグ信号TFGが“1”になる
と、プログラムの実行はステツプ2004の分岐
によりステツプ2005へ移行し、ここにおいて
タイマ270をリセツトする。この後、プログラ
ムの実行はステツプ2005からステツプ200
1へ戻り、ここにおいて再び判別コードJCのチ
エツクを行う。この時、第1プロセツサ部100
から何等のメツセージも転送されてこなければ、
「Nothing」の分岐によりステツプ2003のパ
ラメータ計算ルーチンに移行する。 以上の説明からわかるように、このメインルー
チンはチヤンネルアサインルーチン、リリースコ
ントロールルーチン、モジユレーシヨンデータゲ
ツトルーチン、レジストレーシヨンデータゲツト
ルーチン、パラメータ計算ルーチンの各種のサブ
ルーチンが循環プログラムとして結合され、これ
らのサブルーチンによる全ての処理時間はタイマ
270に設定された設定時間で規制されるように
なつている。従つて、第2プロセツサ部200に
おいては、タイマ270の設定時間間隔で全発音
チヤンネルの各種のパラメータが作られているこ
とになり、その結果として第3プロセツサ部30
0に対してはタイマ270の設定時間間隔で新た
な時刻における各種の楽音パラメータが送出され
るようになる。このように、各種の楽音パラメー
タの全処理時間をタイマ270の設定時間で規制
するようにしたのは、各種フローの廻り方によつ
て各楽音パラメータの現在値から新たな値へ移行
するまでの時間がランダムになり、一定時間間隔
で振幅値を制御する必要があるエンペロープ制御
等が不可能になるのを防止するためである。 (チヤンネルアサインルーチン) 次に、チヤンネルアサインルーチンについ第1
8図a、第18図bに示すフローチヤートに基づ
き詳細に説明する。 メインルーチンにおけるプログラムの実行がチ
ヤンネルアサインルーチンに移行すると、まず第
18図aのステツプ2010において第1プロセ
ツサ部100から転送されてきたメツセージが鍵
のオンイベントに関するものなのか、あるいはオ
フイベントに関するものなのかが判断される。こ
の判断処理は、判別コードJCの最下位ビツト情
報B0(LSB)が“1”になつているか、あるいは
“0”になつているかによつて判断される。(第10
表参照)。つまり、判別コードJCの最下位ビツト
情報B0が“1”であれば、第1プロセツサ部1
00から転送されてきたメツセージは鍵のオンイ
ベントに関するものとして判断され、逆に最下位
ビツト情報B0が“0”であれば鍵のオフイベン
ト関するものとして判断される。このステツプ2
010における判断処理の結果、第1プロセツサ
部100から転送されてきたメツセージが鍵のオ
ンイベントに関するものであつた場合、プログラ
ムの実行は次のステツプ2011へ移行し、この
ステツプ2011以降のプログラムにより押下鍵
に対するチヤンネル割当てが実行されるが、転送
メツセジが鍵のオフイベントに関するものであつ
た場合、プログラムの実行は端子CA1を介して
第18図bに示すステツプ2030へ移行し、こ
のステツプ2030以降のプログラムにより押下
鍵に対するチヤンネル割当ての解除が行なわれ
る。従つて、このチヤンネルアサインルーチン
は、大別すると、チヤンネル割当てを行うチヤン
ネル割当てフローと、チヤンネル割当ての解除を
行うチヤンネル割当て解除フローとに分かれる。 (チヤンネル割当てフロー) はじめに、第18図aに示す届ステツプ201
1以降のチヤンネル割当てフローについて説明す
る。 まず、前述のステツプ2010において第1プ
ロセツサ部100から転送メツセージが鍵のオン
イベントに関するものであることがわかると、プ
ログラムの実行はステツプ2011に移行し、こ
こにおいてオンイベントメツセージがいずれの鍵
盤(UK,LK,PKに関するものなのかが判別コ
ードJCの下位から2ビツト目のビツト情報B1
よつて判断される(第10表参照)。この判断処理
の結果、ペダル鍵盤PKに関するオンイベントメ
ツセージであるということがわかると、プログラ
ムはステツプ2012へ移行し、このステツプ2
012において第2演算装置内201内に設けら
れた系列数セツトレジスタDNrにペダル鍵盤PK
の発音系列数である「2」をロードする。一方、
上鍵盤UKまたは下鍵盤LKに関するオンイベント
メツセージであることがわかると、プログラムの
実行はステツプ2013へ移行し、ここにおいて
まずWRKメモリ280内のレジストレーシヨン
レジスタRGNr1〜RGNr22(第23表)の1つに記
憶されている発音系列数データ(第11表その1参
照)を読み出し、この後該当鍵盤に関する設定系
列数が「1系列」なのか、あるいは「2系列」な
のかを検出する。この検出処理の結果、該当鍵盤
の設定系列数が「1系列」であれば、プログラム
の実行はステツプ2014へ移行し、ここにおい
て系列数セツトレジスタDNrに「1」をロードす
る。また、該当鍵盤の設定系列数が「2系列」で
あれば、プログラムの実行はステツプ2015に
移行し、ここにおいて系列数セツトレジスタDNr
に「2」をロードする。 以上の処理が終了すると、当該オンイベントメ
ツセージの1部として送られてきたキーコード
KCのチヤンネル割当て処理に移行する。そこ
で、まずステツプ2016において、チヤンネル
カウンタCCに初期値として第16チヤンネルに対
応する数値「16」がロードされる。この後、プロ
グラムの実行は次のステツプ2017に移行し、
ここにおいてチヤンネルカウンタCCの内容
「(CC)=16」で指定されたチヤンネルに対応す
るチヤンネルアサインテーブルCAT16の内容を読
み出し、その内容(CAT16)が「(CAT16)=0」
なのか、「(CAT16)>0」なのか、「(CAT16)>
0」なのかを判断する。 各発音チヤンネルに対応して設けられたチヤン
ネルアサインテーブルCAT1〜CAT16は、前述の
第24表(その1)〜(その2)を用いて説明した
ように、何等からの押下鍵がチヤンネル割当てさ
れている場合にはその内容は負の値を示し、空白
チヤンネルとなつている場合にはその内容は「0
〜15」(10進表示)の正の値を示している。この
正の値は、トランケート順位値に相当し「0」を
示しているチヤンネルには最も古く解放された鍵
がチヤンネル割当てされていたことを示してい
る。従つて、新たな押下鍵に対するパラメータ割
当ては、チヤンネルアサインテーブルCAT1
CAT16のうち、その内容が「0」を示しているチ
ヤンネルのチヤンネルアサインテーブルCATに
割当てればよい。この実施例では、設定系列数が
2系列の場合、チヤンネルアサインテーブル
CAT1〜CAT16のうち、その内容が「0」を示し
ているチヤンネルアサインテーブルCAT1
CAT16のうち、その内容が「0」を示しているチ
ヤンネルアサインテーブルCATに対し第1系列
音を割当て、「1」を示しているチヤンネルアサ
インテーブルCATに対し第2系列音を割当てる
ようにしている。 今仮りに、上鍵盤UKおよび下鍵盤LKともに設
定系列数が2系列であるものとし、各発音チヤン
ネルに対応するチヤンネルアサインテーブル
CAT1〜CAT16の内容は次の第28表その1〜その
2に示すようなものであつたとする。すなわち、
現在第16、第13、第7、第5、第3、第2チヤン
ネルが空白パラメータとなつており、これら各チ
ヤンネルのトランケート順位値TRiはそれぞれ
「2」,「0」,「1」,「3」,「4」,「5」とな
つて
いる。 また、第15チヤンネルおよび第14チヤンネルに
はペダル鍵盤PKの音高「F1」に対応する第1系
列音および第2系列音がそれぞれ割当てられ、第
12チヤンネルおよび第10チヤンネルには上鍵盤
UKの音高「D3」に対応する第2系列音および第
1系列音がそれぞれ割当てられている。 また、第11チヤンネルおよび第9チヤンネルに
は上鍵盤UKの音高「G3」に対応する第1系列音
および第2系列音がそれぞれ割当てられ、第8チ
ヤンネルおよび第6チヤンネルには下鍵盤LKの
音高「C2」に対応する第2系列音および第1系
列音がそれぞれ割当てられている。
[Table] The second series set flag register F2Sr is used to set the key code KC of the second series when assigning or canceling the channel assignment of the key code KC for a keyboard whose sound series number is set to "2". This is a register that is set to "1" when performing channel assignment or channel assignment cancellation. Indicates that it is related to a series. Parameter conversion instruction flag register CFGr
is a register that temporarily stores that the parameter currently being calculated should be converted to a new parameter later, and this parameter conversion instruction flag register
Parameter conversion instruction flag of “1” from CFGr
If CFG is output, musical tone parameter G
Among [CA] to G[M 2 ], musical tone parameters G[CA], G[CT], and G related to the pitch of the generated musical tone
Based on [Pi], frequency parameters R (R 1 , R 2 ) are calculated in a parameter conversion routine to be described later. logCA register LCAr and logCT register
LCTr reads out these parameters G by addressing the aforementioned logarithm table 250 with musical tone parameters G[CA] and G[CT].
These registers temporarily store logarithmic values logαCA and logαCT corresponding to [CA] and G[CT], respectively. The y register yr is a register that temporarily stores the frequency parameter logαR calculated by logarithmic operation, and the content of this y register yr is y=logα
When R is given as address information to the RNT 260, a natural number frequency parameter R is read out from the RNT 260. J register Jr corrects the content y of y register yr given as address information to the RNT260 described above to ``0≦y≦251'' when ``y<0'' or ``y>251''. This is a register that temporarily stores the correction value J when given. The K register Kr temporarily stores an instruction flag K (calculation of R 1 when K= 0, calculation of R 2 when K= 1 ) which instructs which frequency parameter should be calculated next among frequency parameters 1 and R 2. It is a register. The CAT search counter RCC displays the channel assignment table of all musical tone channels when the musical tone of a certain tone channel reaches the release end.
This is a counter used to update the truncate ranking values set for CAT 1 to CAT 16 . The above is a detailed description of the configuration of each part constituting the second processor section 200. The operation of the second processor section 200 will be described in detail below in accordance with the calculation program stored in the program memory 202. 17 to 27 show the second processor section 20
2 is a flowchart showing an example of an arithmetic program in 0. First, the main routine shown in FIG. 17 will be explained. As mentioned above, this main routine can be roughly divided into the channel sign routine,
It consists of a modulation data get routine, a registration data get routine, a release control routine, and a parameter calculation routine. In the main routine shown in FIG. 17, when the power is turned on by the performer, first, in step 2000, the memory contents of all the circuits' memories, registers, etc. are cleared, so that the second processor section 200 returns to the initial state. becomes. After this, the second processor section 200 enters a standby state waiting for data transfer from the first processor section 100, but when a message with the discrimination code JC is transferred from the first processor section 100, it The type of forwarded message is determined in step 2001 based on the determination code JC. If the determination code JC is related to a key on event or off event, the process moves to a channel assignment routine in step 2002, where channel assignment processing or channel assignment cancellation processing is executed. After this, the process moves to step 2003, where calculation processing of various tone parameters G[CA] to G[ M2 ] and frequency parameters R( R1 , R2 ) corresponding to the pressed keys of each channel is executed. Then, this result is transferred to the third processor section 300. Next, if the discrimination code JC is related to a foot switch on or off event,
Execution of the program moves from step 2001 to a release control routine in step 2006, in which a tone generation channel in which the key has already been released is detected, and processing is performed to shift the tone in this channel to a predetermined release level. Next, if the discrimination code JC is related to modulation data, the program execution moves from step 2001 to step 2007, where the modulation data transferred from the first processor section 100 is processed. Store the modulation data MDDr 1 to MDDr 14 in association with the key code KC assigned to the channel. Next, if the determination code JC is related to registration data, the program execution moves from step 2001 to step 2008, a registration data get routine, where the registration data transferred from the first processor section 100 is transferred. The registration data is stored in the registration data RGNr 1 to RGNr 22 in order. When the predetermined processing in each routine of steps 2006 to 2008 is completed, the execution of the program shifts to the parameter calculation routine of step 2003, where various musical tone parameters G
[CA] ~ G [M 2 ] and frequency parameters R 1 , R 2
Perform the calculation. When the calculation process of various parameters related to the pressed keys assigned to each channel is completed in this way, the program execution proceeds to step 200.
4, where it is determined whether the timer flag signal TFG output from the timer 270 has become "1". As a result of this judgment process,
When the timer flag signal TFG is "0", it is determined that the calculation processing time for various parameters regarding all channels has not reached a certain period of time, and the program waits at step 2004 until the timer flag signal TFG becomes "1". I am made to do so.
Thereafter, when the timer flag signal TFG becomes "1", the program execution branches from step 2004 to step 2005, where the timer 270 is reset. After this, the program execution starts from step 2005 to step 200.
Return to step 1 and check the discrimination code JC again here. At this time, the first processor section 100
If no messages are forwarded from
By branching to "Nothing", the process moves to step 2003, a parameter calculation routine. As can be seen from the above explanation, this main routine consists of various subroutines such as a channel assignment routine, a release control routine, a modulation data get routine, a registration data get routine, and a parameter calculation routine, which are combined as a circular program. The processing time of all subroutines is regulated by the set time set in the timer 270. Therefore, in the second processor section 200, various parameters of all the sound channels are created at the time interval set by the timer 270, and as a result, the parameters of the third processor section 30 are created.
0, various musical tone parameters at new times are transmitted at the time intervals set by the timer 270. The reason why the total processing time of various musical tone parameters is regulated by the set time of the timer 270 is that it is possible to control the total processing time of each musical tone parameter by the time set in the timer 270. This is to prevent time from becoming random and envelope control, which requires controlling the amplitude value at regular time intervals, to become impossible. (Channel Assign Routine) Next, the first
This will be explained in detail based on the flowcharts shown in FIG. 8a and FIG. 18b. When the execution of the program in the main routine shifts to the channel assignment routine, it is first determined in step 2010 of FIG. 18a whether the message transferred from the first processor section 100 is related to a key on event or a key off event. It is judged whether This judgment process is determined based on whether the least significant bit information B 0 (LSB) of the discrimination code JC is "1" or "0". (No. 10
(see table). In other words, if the lowest bit information B0 of the discrimination code JC is "1", the first processor section 1
The message transferred from 00 is determined to be related to a key on event, and conversely, if the least significant bit information B0 is "0", it is determined to be related to a key off event. This step 2
As a result of the judgment process in step 010, if the message transferred from the first processor section 100 is related to a key on event, the program execution moves to the next step 2011, and the program after this step 2011 is pressed. If the channel assignment for the key is performed and the transferred message is for a key off event, the program execution moves via terminal CA1 to step 2030 shown in FIG. The channel assignment to the pressed key is canceled by the program. Therefore, this channel assignment routine can be roughly divided into a channel assignment flow for channel assignment and a channel assignment release flow for canceling channel assignment. (Channel allocation flow) First, the notification step 201 shown in Figure 18a
The channel allocation flow from 1 onwards will be explained. First, in step 2010 described above, when it is determined from the first processor unit 100 that the transferred message is related to a key on event, the program execution moves to step 2011, where the on event message is transmitted to any key (UK). , LK, or PK is determined based on bit information B1 of the second lowest bit of the discrimination code JC (see Table 10).As a result of this determination process, the on-event message related to pedal keyboard PK If it is found that there is, the program moves to step 2012,
At 012, the pedal keyboard PK is stored in the sequence number set register DNr provided in the second arithmetic unit 201.
Load "2", which is the number of pronunciation series. on the other hand,
If it is determined that the on-event message is related to the upper keyboard UK or lower keyboard LK, the program execution moves to step 2013, where the registration registers RGNr 1 to RGNr 22 in the WRK memory 280 are first read (Table 23). The number of pronunciation series data (see Table 11 Part 1) stored in one of the keys is read out, and then it is detected whether the set number of series for the relevant keyboard is "1 series" or "2 series". As a result of this detection process, if the set number of series for the corresponding keyboard is "1 series", the program execution moves to step 2014, where "1" is loaded into the series number set register DNr. Furthermore, if the set number of series for the corresponding keyboard is "2 series", the program execution moves to step 2015, where the number of series set register DNr is set.
Load "2" into. When the above processing is completed, the key code sent as part of the on-event message
Shift to KC channel allocation processing. Therefore, first in step 2016, a numerical value "16" corresponding to the 16th channel is loaded into the channel counter CC as an initial value. After this, the program execution moves to the next step 2017,
Here, the content of the channel assignment table CAT 16 corresponding to the channel specified by the channel counter CC content "(CC) = 16" is read, and the content (CAT 16 ) is "(CAT 16 ) = 0".
Is it "(CAT 16 ) >0" or "(CAT 16 ) >
0". Channel assignment tables CAT 1 to CAT 16 provided corresponding to each pronunciation channel are used to assign channels to keys that are pressed, as explained using Table 24 (Part 1) to (Part 2) above. If it is a blank channel, its content will be a negative value, and if it is a blank channel, its content will be "0".
~15'' (in decimal notation) indicates a positive value. This positive value corresponds to the truncate rank value and indicates that the oldest released key was assigned to the channel indicating "0". Therefore, the parameter assignment for the newly pressed key is done in the channel assignment table CAT 1 ~
It is only necessary to allocate it to the channel assignment table CAT of the channel whose contents indicate "0" among CAT 16 . In this example, if the number of set series is 2 series, the channel assignment table
Among CAT 1 to CAT 16 , channel assignment table whose contents indicate "0" CAT 1 to CAT 1
Among CAT 16 , the first series sound is assigned to the channel assignment table CAT whose contents indicate "0", and the second series sound is assigned to the channel assignment table CAT whose contents indicate "1". There is. Assume now that the number of series set for both the upper keyboard UK and lower keyboard LK is 2 series, and the channel assignment table corresponding to each sound channel.
It is assumed that the contents of CAT 1 to CAT 16 are as shown in Table 28 Part 1 to Part 2 below. That is,
Currently, the 16th, 13th, 7th, 5th, 3rd, and 2nd channels are blank parameters, and the truncation ranking values TRi of these channels are "2", "0", "1", and "2", respectively. 3,” “4,” and “5.” In addition, the 1st and 2nd series tones corresponding to the pitch "F 1 " of the pedal keyboard PK are assigned to the 15th channel and the 14th channel, respectively, and
Upper keyboard for channel 12 and channel 10
The second series tones and the first series tones corresponding to the UK pitch "D 3 " are respectively assigned. In addition, the 11th channel and the 9th channel are respectively assigned the 1st and 2nd series tones corresponding to the pitch "G 3 " of the upper keyboard UK, and the 8th and 6th channels are assigned the lower keyboard LK pitch. A second series of tones and a first series of tones corresponding to pitch "C 2 " are respectively assigned.

【表】 また、第4チヤンネルおよび第1チヤンネルに
は下鍵盤LKの音高「E2」に対応する第1系列音
および第2系列音がそれぞれ割当てられている。 このような状態において、新たに上鍵盤UKの
音高「C3」に関するオンイベントメツセージが
第1プロセツサ部100から転送されてきたもの
とすると、この音高「C3」に対応するキーコー
ドKC(000100000)をいずれかのチヤンネルに割
当てるため、まずステツプ2017において第16
チヤンネルに対応するチヤンネルアサインテーブ
ルCAT16の内容が検査される。この例では、第16
チヤンネルは空チヤンネルとなつており、トラン
ケート順位値TRiは「TRi=2」となつている。
すなわち、第16チヤンネルのチヤンネルアサイン
テーブルCAT16の内容は「(CAT)=2」となつ
ている。このため、プログラムの実行はステツプ
2017の分岐によりステツプ2018へ移行
し、ここにおいて減算命令「(CAT)←(CAT)
−(DNr)」を実行する。すると、第16チヤンネル
のチヤンネルアサインテーブルCAT16の内容
(CAT16)は、今現在までの値「2」から系列数セ
ツトレジスタDNrに記憶されている上鍵盤UKの
系列数「2」が減算されることにより
「(CAT16)=0」となる。この処理が完了する
と、プログラムの実行はステツプ2019へ移行
し、ここにおいてチヤンネルカウンタCCの内容
で指定されているチヤンネルアサインテーブル
CAT16の内容(CAT16)が「(CAT16)≧0」なの
か、あるいは「(CAT16)<0」なのかを判断す
る。この判断処理の結果、チヤンネルアサインテ
ーブルCAT16の内容(CAT16)が「(CAT16)<
0」であれば、ステツプ2018の減算命令を実
行する前のチヤンネルアサインテーブルCAT16
内容(CAT16)は「0<(CAT16)<2」の値、す
なわち「(CAT16)=1」であることがわかり、こ
の第16チヤンネルに新たな押下鍵である上鍵盤
UKのC3盤の第2系列音を割当てればよいことが
わかる。しかし、この例のように、ステツプ20
18の減算命令を実行する前のチヤンネルアサイ
ンテーブルCAT16の内容が「(CAT16)=2」とな
つている場合、ステツプ2019の判断結果は
「(CAT16)≧0」となり、優先度の高いトランケ
ート順位、値をもつチヤンネルは他にあるという
ことがわかり、プログラムの実行はステツプ20
21へ移行し、ここにおいてチヤンネルカウンタ
CCの内容をデクレメントして「(CC)=15」とす
る。この後、ステツプ2022へ移行し、ここに
おいてチヤンネルカウンタCCの内容が「正」
か、あるいは「0」になつているかを判断する。
つまり、全チヤンネルのチヤンネルアサインテー
ブルCAT16〜CAT1の内容を検査し終つているか
どうかを判断する。この場合、チヤンネルカウン
タCCの内容は「15」であり、全チヤンネルの処
理が終了していないので、プログラムの実行はス
テツプ2022の分岐によりステツプ2017へ
戻り、今度はチヤンネルカウンタCCの新たな内
容「(CC)=15」に基づき第15チヤンネルのチヤ
ンネルアサインテーブルCAT15の内容の検査に移
る。 この例では、第15チヤンネルにはペダル鍵盤
PKの音高「F1」に対応する第1系列音が割当て
られているため、ステツプ2017の判断結果は
「(CAT15)<0」となり、プログラムの実行はス
テツプ2021のデクレメント命令「(CC)←
(CC)−1」に移行して「(CC)=14」とする。そ
して、再びステツプ2022の判断命令「(CC)
=0?」の分岐によりプログラムの実行はステツ
プ2017へ戻り、チヤンネルカウンタCCの新
たな内容「(CC)=14」に基づき、第14チヤンネ
ルのチヤンネルアサインテーブルCAT14の内容を
検査する。 このような処理を繰り返した結果、第13チヤン
ネルのチヤンネルアサインテーブルCAT13の内容
が「(CAT13)=0」であることがわかると、プロ
グラムの実行はステツプ2017の分岐によりス
テツプ2023へ移行し、チヤンネルアサインテ
ーブルCAT13に対して新たな押下鍵である上鍵盤
UKの音高C3に対応する第1系列音を割当てる処
理を行う。つまり、ステツプ2023において、
チヤンネルアサインテーブルCAT13に対し上鍵盤
UKのC3鍵に対応するキーコードKC
「000100000」と、ビシイフラグBSYGがロードさ
れると共に、第13チヤンネルに対応するキーコー
ドテーブルKCT12に対してもC3鍵に対応するキ
ーコードKC「000100000」がロードされる。この
処理が終了するとプログラムの実行はステツプ2
024のPRGオンセツトルーチンに移行し、こ
こにおいてC3鍵に関する一連の第1次楽音パラ
メータのG1〔CA〕〜G1〔M2〕を算出するための
初期設定を行う。 このPRGオンセツトルーチンは、第19図に
その詳細フローチヤートを示している。 第19図において、プログラムの実行がチヤン
ネルアサインルーチンのステツプ2023からこ
のPRGオンセツトルーチンのステツプ2050
へ移行すると、このステツプ2050において第
2演算装置201内に設けられたパラメータカウ
ンタPCに初期値として「6」が設定される。そ
して、次のステツプ2051において、この時の
チヤンネルカウンタCCの内容「(CC)=13」で指
定された第13チヤンネルに対応し、かつパラメー
タカウンタPCの内容「(PC)=6」に対応するパ
ラメータ計算用レジスタPRG13の単位ワードのう
ち、演算周期に関する演算パラメータTmを記憶
するTエリアに「0」がロードされてクリアされ
ると共にジヤンプアドレスJAを記憶するJAエリ
アにデータ「A」がロードされる。このデータ
「A」は、各種の楽音パラメータG〔CA〕〜G
〔M2〕を順次時分割的に算出するための初期設定
を行うイニシヤルルーチンの先頭番地に相当する
アドレス情報である。この処理が完了すると、プ
ログラムはチヤンネルアサインルーチンに戻り、
ステツプ2025のロード命令を実行する。すな
わち、FIPO1に一時記憶されている各演算パラ
メータ毎のイニシヤルタツチデータITD(IZs
〔CA〕,IZs〔LA〕,IZs〔CT〕,IZs〔Pi〕,IZs
〔MI〕,IZa〔M2〕)を第13チヤンネルに対応するイ
ニシヤルデータレジスタIZDr13に演算パラメータ
毎にロードする。これによつて、上鍵盤UKの音
高C3に対応する第1系列音のチヤンネル割当て
およびこのチヤンネル割当てした音高C3に対応
する楽音パラメータを算出するための初期設定が
完了する。そして、この後プログラムの実行はス
テツプ2026へ移行し、ここにおいて第2系列
セツトフラグレジスタF2Srの内容をクリアす
る。このステツプ2026による処理は、いずれ
かのチヤンネルに第2系列音を割当てした時に有
効な意味をもつている。この後、プログラムの実
行はステツプ2021へ移行し、ここにおいてチ
ヤンネルカウンタCCの内容をデクレメントして
その内容を「(CC)=12」とする。そして、この
後プログラムの実行はステツプ2022の分岐に
よりステツプ2017へ戻り、今度はC3鍵に対
応する第2系列音のチヤンネル割当てのために処
理を行う。つまり、今度はチヤンネルアサインテ
ーブルCAT1〜CAT16のうち、CAT12〜CAT1
中からその内容が「1」のテーブルを検出し、こ
のテーブルに対し音高C3に対応する第2系列音
を割当てるための処理を行う。 そこで、再びステツプ2017の判断命令
「(CAT)?」によりチヤンネルカウンタCCの
内容「(CC)=12」で指定されているチヤンネル
アサインテーブルCAT12の内容が正か、負かを判
断する。ところがこの例の場合、第12チヤンネル
〜第8チヤンネルまではすでに他の鍵が割当てら
れているため、ステツプ2017による判断結果
は第12チヤンネル〜第8チヤンネルまで「ビジ
イ」となる。そして、同様な処理を繰り返した結
果、第7チヤンネルのチヤンネルアサインテーブ
ルCAT7の内容が「(CAT7)>0」であることが
わかると、プログラムの実行はステツプ2018
へ移行し、ここにおいて減算命令「(CAT)←
(CAT)−(DNr)」を実行する。すると、チヤン
ネルアサインテーブルCAT7の内容(CAT7)は、
今現在までの値「1」から系列数セツトレジスタ
DNrの記憶内容「2」が減算されることにより
「(CAT7)<0」となる。そして、次のステツプ
2019においてチヤンネルアサインテーブル
CAT7の内容が正か、負かを判断する。の判断処
理の結果、第7チヤンネルのチヤンネルアサイン
テーブルCAT7に対し音高C3に対応する第2系列
音を割当てるべきであることがわかると、プログ
ラムの実行は次のステツプ2020に移行し、こ
れからチヤンネル割当てするキーコードKCは第
2系列音に関するものであることを示すため第2
系列セツトフラグレジスタF2Srに“1”のフラ
グをセツトする。この後、プログラムの実行はス
テツプ2023へ移行し、ここにおいて音高C3
に対応する第1系列音の場合と同様、チヤンネル
カウンタCCの内容「(CC)=7」で指定されてい
るチヤンネルアサインテーブルCAT7に対し、C3
鍵に対応するキーコードKC「000100000」と、ビ
ジイフラグBSYFGおよび第2系列セツトフラグ
レジスタF2Sr内容で指示される第2系列フラグ
F2Sが所定のビツト位置にロードされる。同時
に、第7チヤンネルに対応するキーコードテーブ
ルKCT7に対してもC3鍵に対応するキーコード
KC「000100000」がロードされる。 この処理が終了すると、プログラムの実行は順
次ステツプ2014〜2026へ移行し、音高
C3の第1系列音に関する処理と同様の処理が実
行される。但し、第2系列音に関する処理では、
ステツプ2026のロード命令「(F2Sr)←0」
が有効な意味をもち、これによつて第2系列セツ
トフラグレジスタF2Srの内容はクリアされる。 以上のようなプログラムによつて上鍵盤UKの
音高C3に対応する第1系列音および第2系列音
のチヤンネル割当ては完了したわけであるが、こ
の後プログラムの実行はステツプ2021へ移行
してチヤンネルカウンタCCの内容をデクレメン
トする。そして、ステツプ2022の判断命令に
よつてチヤンネルカウンタCCの内容が「(CC)=
0」になつているかどうかを判断する。この判断
処理の結果、チヤンネルカウンタCCの内容が
「(CC)>0」であれば、再度ステツプ2017
へ戻り、前述の場合と同様な処理を行う。つま
り、チヤンネルカウンタCCの新たな内容
「(CC)=6」で指定されたチヤンネルアサインテ
ーブルCAT6の内容をステツプ2017において
判断する。この例の場合、第6チヤンネルにはす
でに下鍵盤LKの音高C2に対応する第1系列音が
割当てられているため、この時のステツプ201
7の判断結果はビジイとなり、プログラムはステ
ツプ2021へ移行し、チヤンネルカウンタCC
の内容をデクレメントして「(CC)=5」とし、
この後ステツプ2022の分岐を介して再度ステ
ツプ2017へ戻る。そして、チヤンネルカウン
タCCの新たな内容「(CC)=5」で指定されたチ
ヤンネルアサインテーブルCAT5の内容をステツ
プ2017において判断する。すると、この例の
場合、チヤンネルアサインテーブルCAT5の内容
は「(CAT5)=3」となつているため、プログラ
ムの実行はステツプ2018へ移行し、ここにお
いて減算命令「(CAT)←(CAT)−(DNr)」を
実行する。すると、第5チヤンネルのチヤンネル
アサインテーブルCAT5の内容は「(CAT5)=
1」に更新される。この処理が終了すると、次の
ステツプ2019においてチヤンネルアサインテ
ーブルCAT5の内容が正なのか、あるいは負なの
かが判断される。この判断処理の結果、更新され
たチヤンネルアサインテーブルCAT5の内容が
「(CAT5)≧0」であることがわかるのでプログ
ラムの実行はステツプ2021へ移行し、ここに
おいてチヤンネルカウンタCCの内容をデクレメ
ントして「(CC)=4」とした後、ステツプ20
22の分岐を介して再びステツプ2017に戻
る。以降、第4チヤンネル〜第1チヤンネルに関
しても前述の場合と同様な処理が行なわれるが、
第3チヤンネルおよび第2チヤンネルについて
は、チヤンネルアサインテーブルCAT3および
CAT2の内容が双方ともに「正」であるため、ス
テツプ2018の減算命令によつて内容が更新さ
れる。つまり、チヤンネルアサインテーブル
CAT3の内容は「(CAT2)=2」,チヤンネルアサ
インテーブルCAT2の内容は「(CAT2)=3」に
それぞれ更新される。そして、その後チヤンネル
カウンタCCの内容が「(CC)=0」となることに
よりプログラムの実行はステツプ2022からメ
インルーチンへ復帰する。 以上のことから明らかなように、ステツプ20
18の減算命令「(CAT)←(CAT)−(DNr)」
およびステツプ2019の判断命令
「(CAT)?」は、チヤンネルカウンタCCの内容
で指定されている空白チヤンネルが押下鍵の第1
系列音を割当てるべきチヤンネルであるかどうか
の検出を行うものであると同時に、空白チヤンネ
ルのうち設定系列数以上のトランケート順位値
TRiをもつチヤンネルのトランケート順位値TRi
を順次大きい数値から小さい数値へ更新する機能
も兼用していることになる。これによつて、その
後における新たな押下鍵に対するチヤンネル割当
てはこの更新されたトランケート順位値TRiに基
づいて実行される。この例の場合、その後におい
て例えば上鍵盤UKのC4鍵が新たに押鍵された場
合、第16チヤンネルに対して音高C4に対応する
第1系列音が割当てられ、第5チヤンネルに対し
て音高C4に対応する第2系列音が割当てられ
る。 ところで、上述した説明は、上鍵盤UKおよび
下鍵盤LKの設定系列数がともに「2系列」であ
る場合についてのものであるが、設定系列数が
「1系列」の場合にはトランケート順位値TRiが
「0」のチヤンネルに対し新たな押下鍵のチヤン
ネル割当てが行なわれると共に、空白チヤンネル
のトランケート順位値TRiの更新量は「1」とな
る。従つて、この実施例における電子楽器では発
音系列数の設定値によつてチヤンネル割当ての仕
方が異なり、複雑なトランケート制御を実現でき
る。なお、このチヤンネルアサインルーチンにお
いて更新された空チヤンネルのトランケート順位
値TRiは、解放鍵のリリースエンドが検出された
時点でも更新される。これについては後述する。 (チヤンネル割当て解除フロー) 次に、第18図bに示すステツプ2030以降
のチヤンネル割当て解除フローについて説明す
る。 まず、前述のステツプ2010において第1プ
ロセツサ部100からの転送メツセージが鍵のオ
フイベントに関するものであることがわかると、
プログラムの実行はステツプ2030に移行し、
このステツプ2030のロード命令群によつてチ
ヤンネルカウンタCCに初期値として「16」がロ
ードされ、パラメータカウンタPCに初期値とし
て「6」がロードされ、プライオリテイセツトレ
ジスタPRSrに初期値として「0」がロードさ
れ、第1系列および第2系列チヤンネルナンバー
レジスタCNr1,CNr2に「−1」がロードされ
る。 この処理が終了すると、プログラムの実行はス
テツプ2031に移行し、ここにおいてチヤンネ
ルカウンタCCの内容で指定されたチヤンネルア
サインテーブルCATに割当てられているキーコ
ードKCが解放鍵に対応するキーコードKCと同一
であり、かつ当該解放鍵の第1系列音に関するチ
ヤンネルアサインテーブルCATに該当するのか
どうかを判断する。もし、チヤンネルアサインテ
ーブルCATに割当てられているキーコードKCと
解放鍵のキーコードKCとが同一であり、かつ当
該チヤンネルアサインテーブルCATはその第1
系列音に関するものであることがわかると、プロ
グラムの実行はステツプ2032へ移行し、ここ
においてロード命令「(ONr1)←(CC)」を実行
し、当該解放鍵の第1系列音が割り当てられてい
るチヤンネルナンバ(チヤンネルカウンタの内
容)を第1系列チヤンネルナンバレジスタCNr1
に一時記憶させる。この後、ステツプ2033の
PRGオフセツトルーチンへ移行し、ここにおい
て当該解放鍵の第1系列音に関するリリースコン
トロールのための処理を行う。なお、このPRG
オフセツトルーチンについては後で詳細に説明す
る。 一方、ステツプ2031の判断命令により、チ
ヤンネルカウンタCCの内容で指定されたチヤン
ネルアサインテーブルCATに割当てられている
キーコードKCが解放鍵に対応するキーコードKC
と同一であるけれども第1系列音に関するもので
ないが、あるいはチヤンネルアサインテーブルに
割当てられているキーコードKCと解放鍵に対応
するキーコードKCとが異なる場合、プログラム
の実行はステツプ2034へ移行し、ここにおい
て第2系列セツトフラグレジスタF2Srに“1”
をロードする。第2系列セツトフラグレジスタ
F2Srに“1”をロードするのはチヤンネルアサ
インテーブルCATに割当てられているキーコー
ドKCが第2系列音に関するものであるかどうか
を次のステツプ2035において判断するためで
ある。 この処理が終了すると、プログラムの実行は次
のステツプ2035へ移行し、ここにおいてチヤ
ンネルカウンタCCの内容で指定されたチヤンネ
ルアサインテーブルCATに割当てられているキ
ーコードKCが解放鍵に対応するキーコードと同
一であり、かつ当該テーブルはその第2系列音に
関するものであるかどうかを判断する。この判断
処理の結果、当該チヤンネルアサインテーブル
CATに割当てられているキーコードKCは解放鍵
に対応するキーコードKCと同一であり、当該チ
ヤンネルアサインテーブルCATはその第2系列
音に関するものであることがわかると、プログラ
ムの実行はステツプ2036へ移行し、ここにお
いて当該解放鍵の第2系列音が割当てられている
チヤンネルナンバを第2系列チヤンネルナンバレ
ジスタCNr2に一時記憶させる。この後、ステツ
プ2033のPRGオフセツトルーチンへ移行
し、ここにおいて当該解放鍵の第2系列音に関す
るリリースコントロールのための処理を行う。 しかし、ステツプ2036の判断処理の結果、
チヤンネルカウンタCCの内容で指定されたチヤ
ンネルアサインテーブルCATに割当てられてい
るキーコードKCと解放鍵に対応するキーコード
KCとが異なる場合、プログラムはステツプ20
35から2037へ移行する。そしてこのステツ
プ2037において、プライオリテイセツトレジ
スタPRSrの内容(PRSr)とチヤンネルアサイン
テーブルCATの内容(CAT)とを比較し、
(CAT)>(PRSr)であれが当該チヤンネルアサ
インテーブルCATは空白チヤンネルに相当し、
かつ当該チヤンネルはプライオリテイセツトレジ
スタPRSrに初期設定した最高優先度のトランケ
ート順位値「0」より低い優先度(大きい値)の
トランケート順位値TRiであることがわかり、こ
の低優先度のトランケート順位値TRiは次のステ
ツプ2038のロード命令「(PRSr)←
(CAT)」によりプライオリテイセツトレジスタ
PRSrな転送記憶される。逆にステツプ2037
の比較処理の結果、(CAT)<(PRSr)であるこ
とがわかると、当該チヤンネルアサインテーブル
CATは、 解放鍵とは別の押下鍵がすでに割当てられて
いるチヤンネル この時のトランケート順位値TRiで示される
トランケート優先度より高優先度の空白チヤン
ネル のいずれかに該当するものとして判断され、プロ
グラムの実行はステツプ2039へ移行する。 ここで、チヤンネル割当てフローの場合と同様
に一例をあげてこのチヤンネル割当て解除フロー
を説明する。 例えば、鍵のオフイベントメツセージが第1プ
ロセツサ部100から転送されてくる前のチヤン
ネルアサインテーブルCAT1〜CAT16の内容は前
述の第28表その1〜その2に示すようなものであ
り、今現在第12チヤンネルおよび第10チヤンネル
にチヤンネル割当てされている上鍵盤UKのD3
が解放されたものとする。 まず、ステツプ2031において、チヤンネル
カウンタCCの内容「(CC)=16」で指定されてい
るチヤンネルアサインテーブルCAT16に割当てら
れているのは解放鍵D3の第1系列音に該当する
ものかどうかを検査する。この例では、第16チヤ
ンネルのチヤンネルアサインテーブルCAT16は空
白となつており、その内容(CAT16)は
「(CAT16)=2」となつている。このためプログ
ラムの実行はステツプ2034へ移行し、ここに
おいて第2系列セツトフラグレジスタF2Srに
“1”をロードする。そして、次のステツプ20
35において、第16チヤンネルのチヤンネルアサ
インテーブルCAT16に割当てられているのは解放
鍵D3の第2系列音に該当するのかどうかを検査
する。ところが、第16チヤンネルは空白チヤンネ
ルとなつているため、プログラムの実行はステツ
プ2037へ移行し、ここにおいてチヤンネルア
サインテーブルCAT16の内容とプライオリテイセ
ツトレジスタPRSrの内容とを比較する。する
と、「(CAT16)=2」であるため、プログラムの
実行はステツプ2038へ移行し、ここにおいて
チヤンネルアサインテーブルCAT16の内容、すな
わちトランケート順位値TRi(「2」)をプライオ
リテイセツトレジスタPRSrに転送記憶させる。
従つて、ここまでの過程において、解放鍵D3
第16チヤンネルには割当てられていないというこ
とがわかり、プログラムの実行はステツプ203
9へ移行し、このステツプ2039のデクレメン
ト命令「(CC)←(CC)−1」を実行してチヤン
ネルカウンタCCの内容を「(CC)=15」に更新す
る。この後、ステツプ2040に移行し、ここに
おいて先のステツプ2034で“1”をロードし
た第2系列セツトフラグレジスタF2Srをクリア
する。この処理が終了すると、次のステツプ20
41においてチヤンネルカウンタCCの内容が
「(CC)=0」になつているかどうかを判断する
が、この場合「(CC)=0」でないのでステツプ
2031へ戻り、ステツプ2039において更新
されたチヤンネルカウンタCCの内容「15」に基
づき次のチヤンネルアサインテーブルCAT15の内
容の検査を行う。 つまり、ステツプ2041の判断処理の結果、
「(CC)=15」であるためにプログラムの実行はス
テツプ2031へ戻り、このステツプ2031に
おいて第15チヤンネルのチヤンネルアサインテー
ブルCAT15に割当てられているのは解放鍵D3
第1系列音に該当するかどうかを検査する。とこ
ろが、この例では第15チヤンネルにはペダル鍵盤
PKの音高F1に対応する第1系列音が割当てられ
ているため、プログラムの実行はステツプ203
1から2034へ移行し、このステツプ2034
において第2系列セツトフラグレジスタF2Srに
“1”をロードした後、ステツプ2035→ステ
ツプ2037→ステツプ2039→ステツプ20
40→ステツプ2041→ステツプ2031とい
う具合に順次移行する。そして、更新されたチヤ
ンネルカウンタCCの内容「(CC)=14」に基づ
き、第14チヤンネルに割当てられているのは解放
鍵D2の第1系列音か、あるいは第2系列音に該
当するのかどうかを検査する。ところが、この例
では第14チヤンネルにはペダル鍵盤PKの音高F1
に対応する第2系列音が割当てられている。この
ため、プログラムの実行は第15チヤンネルの場合
と同様、ステツプ2031→ステツプ2034→
ステツプ2035→ステツプ2037→ステツプ
2039→ステツプ2040→ステツプ2041
→ステツプ2031という具合に順次移行する。
そして、再び、更新されたチヤンネルカウンタ
CCの内容「(CC)=13」に基づき、第13チヤンネ
ルに割当てられているのは解放鍵D3の第1系列
音か、あるいは第2系列音に該当するかどうかを
検査する。 ところが、この例では第13チヤンネルは空白チ
ヤンネルとなつており、チヤンネルアサインテー
ブルCAT13の内容は「(CAT13)=0」となつてい
る。このため、プログラムの実行は第16チヤンネ
ルの場合と同様、ステツプ2031→ステツプ2
034→ステツプ2035→ステツプ2037へ
と順次移行する。そして、ステツプ2037にお
いてチヤンネルアサインテーブルCAT13の内容
「(CAT13)=0」とプライオリテイセツトレジス
タPRSrの内容「(PRSr)=2」とを比較する。こ
の比較処理の結果、「(CAT)>(PRSr)」でない
ことがわかると、プログラムの実行はステツプ2
037からステツプ2039へ直接移行し、この
後ステツプ2039→ステツプ2040→ステツ
プ2041へと移行し、再びステツプ2031へ
戻る。そして、再び更新されたチヤンネルカウン
タCCの内容「(CC)=12」に基づき、第12チヤン
ネルに割当てられているのは解放鍵C3の第1系
列音か、あるいは第2系列音に該当するのかどう
かを検査する。すると、この例では、第12チヤン
ネルには解放鍵D3の第2系列音が割当てられて
いるため、プログラムの実行はステツプ2034
→ステツプ2035→ステツプ2036へと移行
し、ステツプ2036において解放鍵D3の第2
系列音が割当てられているチヤンネルナンバ
「12」を第2系列チヤンネルナンバレジスタCNr2
に一時記憶させる。この後、ステツプ2033に
おいて、第12チヤンネルの発生楽音に関するリリ
ースコントロールのための処理を行う。そして、
この処理が終了すると、プログラムの実行はステ
ツプ2039→ステツプ2040→ステツプ20
41へと順次移行し、再びステツプ2031へ戻
る。そして今後は、第11チヤンネルに関する処理
を行うが、第11チヤンネルには上鍵盤UKの音高
G3に対応する第1系列音が割当てられているた
め、プログラムは前述の第15チヤンネルの場合と
同様なステツプで移行し、再びステツプ2031
へ戻る。そして今後は、第10チヤンネルに関する
処理を行うが、第10チヤンネルには解放鍵D3
第1系列音が割当てられているため、プログラム
の実行はステツプ2031→ステツプ2032へ
と移行し、このステツプ2032において解放鍵
D3の第1系列音が割当てられているチヤンネル
ナンバ「10」を第1系列チヤンネルナンバレジス
タCNr1に一時記憶させる。この後、ステツプ2
033において、第10チヤンネルの発生楽音に関
するリリースコントロールの処理を行う。この処
理が終了すると、プログラムの実行はステツプ2
039→ステツプ2040→ステツプ2041へ
と順次移行し、再びステツプ2031へ戻る。そ
して、これ以降において第9チヤンネルから第1
チヤンネルに至るまで同様の処理を行うわけであ
るが、この中で重要な意味をもつ処理はステツプ
2037とステツプ2038によるプライオリテ
イセツトレジスタPRSrの内容の更新処理であ
る。つまり、プライオリテイセツトレジスタ
PRSrの内容(PRSr)は、第16チヤンネルに関す
る処理を実行する過程で「(PRSr)=2」に更新
され、第5チヤンネルに関する処理を実行する過
程で「(PRSr)=3」に更新される。この後、第
3チヤンネルに関する処理を実行する過程で
「(PRSr)=4」に更新され、さらに第2チヤン
ネルに関する処理を実行する過程で「(PRSr)=
5」に更新され、最終的には全空白チヤンネルの
トランケート順位値TRiのうち最低優先度に相当
するトランケート順位値TRiを記憶保持してい
る。 そして、第1チヤンネルに関する処理が終了
し、チヤンネルカウンタCCの内容が「(CC)=
0」になると、プログラムの実行はステツプ20
41からステツプ2042へと移行し、ここにお
いて、第1系列チヤンネルナンバレジスタCNr1
の内容が正か、あるいは負かを判断する。第1系
列チヤンネルナンバレジスタCNr1および第2系
列チヤンネルナンバレジスタCNr2にはステツプ
2030において初期値として「−1」がそれぞ
れロードされ、その後ステツプ2031→ステツ
プ2041に至る全チヤンネルに関する処理の過
程で解放鍵D3の第1系列音および第2系列音が
割当てられていたチヤンネルナンバがそれぞれロ
ードされ、「(CNr1)=10」,「(CNr2)=12」となつ
ている。このため、プログラムの実行はステツプ
2043へ移行し、ここにおいて第1系列チヤン
ネルナンバレジスタCNr1の内容「(CNr1)=10」
で指定される第10チヤンネルのチヤンネルアサイ
ンテーブルCAT10に対し、プライオリテイセツト
レジスタPRSrの内容(PRSr)に「+1」を加算
した値、すなわち「(PRSr)+1=5+1=6」
をロードする。つまり、第10チヤンネルを空白チ
ヤンネルとし、チヤンネルアサインテーブル
CAT10の内容を「(CAT10)=6」とする。この
後、ステツプ2044の判断命令「(CNr2)?」
を実行し、第2系列チヤンネルナンバレジスタ
CNr2の内容が正か、負かを判断する。すると、
「(CNr2)=12」となつているためにプログラムの
実行はステツプ2045へ移行し、ここにおいて
第2系列チヤンネルナンバレジスタCNr2の内容
「(CNr2)=12」で指定される第12チヤンネルのチ
ヤンネルアサインテーブルCAT12に対し、プライ
オリテイセツトレジスタPRSrの内容(PRSr)に
「+2」を加算した値、すなわち「(PRSr)+2=
5+2=7」をロードする。つまり、第12チヤン
ネルを空白チヤンネルとし、チヤンネルアサイン
テーブルCAT12の内容を「(CAT12)=7」とす
る。 ところでこの場合、第1プロセツサ部100か
らはチヤンネルアサインテーブルCAT1〜CAT14
のいずれにも割当てられていないオフイベントメ
ツセージが転送されてくることもある。このよう
な状態は次のような条件のときに起る。つまり、
第1プロセツサ部のキーオンフアイルKOFには
登録されているが、上鍵盤UKあるいは下鍵盤LK
の発音系列数が「2」に設定されており、かつ上
鍵盤UKおよび下鍵盤LKにおける押鍵数が多く、
必要とする発音チヤンネル数が電子楽器に設定さ
れた実際の発音チヤンネル数を越えたときであ
る。例えば、16個のチヤンネルアサインテーブル
CAT1〜CAT16のうち1チヤンネル分しか空白チ
ヤンネルがない場合において、2系列分の発音チ
ヤンネルを必要とするオンイベントが発生する
と、第1系列音しかチヤンネルアサインテーブル
CATに割当てられないことが起る。また、新た
なオンイベントが発生した場合、チヤンネルアサ
インテーブルCAT1〜CAT10がすべてビジイチヤ
ンネルになつていると、この新たなオンイベント
に関する楽音を割当てるべきチヤンネルは存在し
ないことになり、押鍵されていてもチヤンネル割
当てが行なわれないことが起る。 前者の例の条件において発生したオフイベント
については、第1系列音のみが割当てられている
ため、そのチヤンネルナンバがステツプ2032
において第1系列チヤンネルナンバCNr1にロー
ドされ、この後、ステツプ2042およびステツ
プ2043の命令を実行することにより該当する
チヤンネルアサインテーブルCATが空白にされ
ると共に、所定のトランケート順位値TRiがロー
ドされる。しかし、第2系列音については割当て
られていないため、ステツプ2044の判断結果
は「CNr2<0」となり、プログラムの実行はス
テツプ2045を経由せずに直接メインルーチン
へ復帰する。 また、後者の例の条件において発生したオフイ
ベントについては、第1系列音および第2系列音
ともに割当てられていないものであるため、ステ
ツプ2042およびステツプ2044の判断結果
はそれぞれ「(CNr1)<0」,「(CNr2)<0」とな
り、プログラムはステツプ2043の処理を実行
せず、ステツプ2042から直接メインルーチン
へ復帰する。 従つて、チヤンネルアサインテーブルCAT1
CAT16の内容が第28表その1〜その2で示すもの
であつたとき、第12チヤンネルと第10チヤンネル
に割当てられている上鍵盤UKのD3鍵が解放され
た結果、第12チヤンネルおよび第10チヤンネルを
含む空白チヤンネルに対応するチヤンネルアサイ
ンテーブルCAT16,CAT13,CAT12,CAT10
CAT7,CAT5,CAT3,CAT2の内容は次の第29
表に示すようなものとなる。
[Table] Furthermore, the first series of tones and the second series of tones corresponding to the pitch "E 2 " of the lower keyboard LK are assigned to the fourth channel and the first channel, respectively. In this state, if an on-event message regarding the pitch "C 3 " of the upper keyboard UK is newly transferred from the first processor section 100, the key code KC corresponding to this pitch "C 3 " is (000100000) to any channel, first in step 2017 the 16th
The contents of the channel assignment table CAT 16 corresponding to the channel are examined. In this example, the 16th
The channel is an empty channel, and the truncation ranking value TRi is "TRi=2".
That is, the content of the channel assignment table CAT 16 for the 16th channel is "(CAT)=2". Therefore, the program execution branches from step 2017 to step 2018, where the subtraction instruction "(CAT)←(CAT)" is executed.
- (DNr)”. Then, the content of the channel assignment table CAT 16 for the 16th channel (CAT 16 ) is obtained by subtracting the number of upper keyboard UK series "2" stored in the series number set register DNr from the current value "2". By doing so, “(CAT 16 )=0”. When this process is completed, the program execution moves to step 2019, where the channel assignment table specified by the contents of the channel counter CC is entered.
Determine whether the content of CAT 16 (CAT 16 ) is "(CAT 16 ) ≧ 0" or "(CAT 16 ) <0". As a result of this judgment process, the contents of the channel assignment table CAT 16 (CAT 16 ) become “(CAT 16 ) <
0”, the contents of the channel assignment table CAT 16 (CAT 16 ) before executing the subtraction instruction in step 2018 are the values of “0<(CAT 16 )<2”, that is, “(CAT 16 )=1”. It turns out that this channel 16 has a new key to press, the upper keyboard.
It turns out that all you have to do is assign the second series of sounds from UK's C 3rd edition. However, as in this example, step 20
If the content of the channel assignment table CAT 16 before executing the subtraction instruction in step 18 is "(CAT 16 ) = 2", the judgment result in step 2019 is "(CAT 16 ) ≧ 0", and the priority is It is found that there are other channels with higher truncation ranks and values, and the program execution continues at step 20.
21, and here the channel counter
Decrement the contents of CC to make "(CC) = 15". After this, the process moves to step 2022, where the content of the channel counter CC is "correct".
or whether it is "0".
That is, it is determined whether the contents of channel assignment tables CAT 16 to CAT 1 of all channels have been inspected. In this case, the content of the channel counter CC is "15" and the processing of all channels has not been completed, so the program execution returns to step 2017 by branching from step 2022, and this time the new content of the channel counter CC is "15". (CC) = 15'', we move on to inspecting the contents of channel assignment table CAT 15 for the 15th channel. In this example, channel 15 has a pedal keyboard.
Since the first series tone corresponding to the pitch “F 1 ” of PK is assigned, the judgment result in step 2017 is “(CAT 15 ) < 0”, and the program execution is executed using the decrement command “(CAT 15 ) < 0” in step 2021. CC)←
(CC)-1” and set “(CC)=14”. Then, again at step 2022, the judgment command “(CC)
=0? ”, the program execution returns to step 2017, and the contents of the channel assignment table CAT 14 of the 14th channel are checked based on the new contents of the channel counter CC, “(CC)=14”. As a result of repeating such processing, when it is found that the contents of the channel assignment table CAT 13 of the 13th channel is "(CAT 13 ) = 0", the program execution branches to step 2023 from step 2017. , the upper keyboard is a new key to press for channel assignment table CAT 13 .
Processing is performed to allocate the first series of tones corresponding to pitch C 3 in the UK. That is, in step 2023,
Upper keyboard for channel assignment table CAT 13
Key code KC corresponding to UK C 3 key
"000100000" and the BSYG flag are loaded, and the key code KC "000100000" corresponding to the C3 key is also loaded into the key code table KCT 12 corresponding to the 13th channel. Once this process is complete, program execution will proceed to step 2.
024, where initial settings are made to calculate a series of primary tone parameters G 1 [CA] to G 1 [M 2 ] regarding the C3 key. A detailed flowchart of this PRG onset routine is shown in FIG. In FIG. 19, program execution progresses from step 2023 of the channel assignment routine to step 2050 of the PRG onset routine.
At step 2050, the parameter counter PC provided in the second arithmetic unit 201 is set to "6" as an initial value. Then, in the next step 2051, the channel counter CC at this time corresponds to the 13th channel specified by the content "(CC) = 13" and the parameter counter PC content "(PC) = 6". Among the unit words of the parameter calculation register PRG 13 , "0" is loaded and cleared in the T area that stores the calculation parameter Tm related to the calculation cycle, and data "A" is loaded in the JA area that stores the jump address JA. be done. This data “A” includes various musical tone parameters G [CA] to G
This is address information corresponding to the starting address of an initial routine that performs initial settings for calculating [M 2 ] sequentially and time-divisionally. Once this process is complete, the program returns to the channel assignment routine and
Execute the load instruction in step 2025. In other words, the initial touch data ITD (IZs) for each calculation parameter temporarily stored in FIPO1
[CA], IZs [LA], IZs [CT], IZs [Pi], IZs
[MI], IZa[M 2 ]) is loaded for each calculation parameter into the initial data register IZDr 13 corresponding to the 13th channel. This completes the channel assignment of the first series of tones corresponding to the pitch C 3 of the upper keyboard UK and the initial settings for calculating the tone parameters corresponding to the pitch C 3 assigned to this channel. Thereafter, the program execution moves to step 2026, where the contents of the second series set flag register F2Sr are cleared. The processing in step 2026 has an effective meaning when the second sequence sound is assigned to any channel. After this, the program execution moves to step 2021, where the contents of the channel counter CC are decremented to make the contents "(CC)=12". Thereafter, execution of the program returns to step 2017 by branching to step 2022, and this time processing is performed to assign a channel to the second series of tones corresponding to the C3 key. In other words, this time, among the channel assignment tables CAT 1 to CAT 16 , a table whose content is "1" is detected from CAT 12 to CAT 1 , and the second series tone corresponding to pitch C 3 is assigned to this table. Perform processing to allocate. Therefore, again in step 2017, the determination command "(CAT)?" is used to determine whether the content of the channel assignment table CAT 12 specified by the content of the channel counter CC "(CC)=12" is positive or negative. However, in this example, other keys have already been assigned to the 12th to 8th channels, so the determination result in step 2017 is "busy" for the 12th to 8th channels. Then, as a result of repeating the same process, if it is found that the content of the channel assignment table CAT 7 of the 7th channel is "(CAT 7 ) >0", the program execution will proceed to step 2018.
, and here the subtraction instruction “(CAT) ←
(CAT)-(DNr)”. Then, the contents of channel assignment table CAT 7 (CAT 7 ) are as follows:
Series number set register from current value “1”
By subtracting the memory content “2” of DNr, “(CAT 7 )<0” is obtained. Then, in the next step 2019, the channel assignment table
Determine whether the content of CAT 7 is positive or negative. As a result of the judgment process, if it is found that the second series tone corresponding to pitch C 3 should be assigned to the channel assignment table CAT 7 of the seventh channel, the program execution moves to the next step 2020, The key code KC that will be assigned to the channel from now on is the second key code to indicate that it is related to the second series of sounds.
A flag of "1" is set in the series set flag register F2Sr. After this, the program execution moves to step 2023, where the pitch C 3
As in the case of the first series sound corresponding to
The key code KC "000100000" corresponding to the key, the busy flag BSYFG and the second series flag specified by the contents of the second series set flag register F2Sr
F2S is loaded into a given bit position. At the same time, the key code corresponding to the C 3 key is also added to the key code table KCT 7 corresponding to the 7th channel.
KC "000100000" is loaded. When this process is completed, the program execution sequentially moves to steps 2014 to 2026, and the pitch
Processing similar to the processing regarding the first series of sounds of C3 is executed. However, in the processing related to the second series of sounds,
Load command of step 2026 “(F2Sr)←0”
has a valid meaning, and the contents of the second series set flag register F2Sr are thereby cleared. With the above program, channel assignment of the first and second series notes corresponding to the pitch C 3 of the upper keyboard UK has been completed, but after this the program execution moves to step 2021. decrements the contents of channel counter CC. Then, according to the judgment command in step 2022, the contents of the channel counter CC are changed to "(CC)=
0”. As a result of this judgment process, if the content of the channel counter CC is "(CC)>0", step 2017 is executed again.
Go back and perform the same process as above. That is, in step 2017, the content of the channel assignment table CAT 6 specified by the new content "(CC)=6" of the channel counter CC is determined. In this example, the first series of tones corresponding to pitch C2 of the lower keyboard LK has already been assigned to the sixth channel, so step 201 at this time
The judgment result in step 7 is busy, the program moves to step 2021, and the channel counter CC
Decrement the content of and make it "(CC) = 5",
Thereafter, the process returns to step 2017 via the branch of step 2022. Then, in step 2017, the content of the channel assignment table CAT 5 specified by the new content "(CC)=5" of the channel counter CC is determined. Then, in this example, the content of channel assignment table CAT 5 is "(CAT 5 ) = 3", so the program execution moves to step 2018, where the subtraction instruction "(CAT) ← (CAT )−(DNr)”. Then, the contents of the channel assignment table CAT 5 for the 5th channel are "(CAT 5 ) =
1”. When this process is completed, in the next step 2019, it is determined whether the contents of the channel assignment table CAT5 are positive or negative. As a result of this judgment process, it is found that the contents of the updated channel assignment table CAT 5 are "(CAT 5 ) ≧ 0", so the program execution moves to step 2021, where the contents of the channel counter CC are downloaded. Clement and set "(CC) = 4", then step 20
The process returns to step 2017 via branch 22. Thereafter, the same processing as in the above case is performed for the fourth channel to the first channel.
For the 3rd channel and 2nd channel, channel assignment table CAT 3 and
Since the contents of CAT 2 are both "positive," the contents are updated by the subtraction instruction in step 2018. In other words, the channel assignment table
The contents of CAT 3 are updated to "(CAT 2 )=2" and the contents of channel assignment table CAT 2 are updated to "(CAT 2 )=3". Thereafter, the content of the channel counter CC becomes "(CC)=0", and the program execution returns from step 2022 to the main routine. As is clear from the above, Step 20
18 subtraction instruction “(CAT)←(CAT)−(DNr)”
The judgment command "(CAT)?" in step 2019 indicates that the blank channel specified by the contents of the channel counter CC is the first key pressed.
This function detects whether a channel should be assigned a sequenced sound or not, and at the same time detects the truncation ranking value of blank channels that have a set number of sequences or more.
Truncate rank value TRi of channel with TRi
It also has the function of sequentially updating from a larger number to a smaller number. As a result, channel assignment to a new key to be pressed thereafter is executed based on this updated truncate rank value TRi. In this example, if the C 4 key of the upper keyboard UK is subsequently pressed, the first series note corresponding to the pitch C 4 will be assigned to the 16th channel, and the 5th channel will be assigned the first series tone corresponding to the pitch C 4 . A second series of tones corresponding to pitch C4 is assigned. By the way, the above explanation is for the case where the set number of series for both the upper keyboard UK and the lower keyboard LK is "2 series", but when the set number of series is "1 series", the truncate rank value TRi A new pressed key is assigned to the channel whose value is "0", and the update amount of the truncation ranking value TRi of the blank channel becomes "1". Therefore, in the electronic musical instrument of this embodiment, the method of channel assignment differs depending on the set value of the number of tone sequences, and complex truncation control can be realized. Note that the empty channel truncation ranking value TRi updated in this channel assignment routine is also updated when the release end of the release key is detected. This will be discussed later. (Channel Allocation Release Flow) Next, the channel allocation release flow from step 2030 shown in FIG. 18b will be described. First, when it is found in step 2010 that the forwarded message from the first processor unit 100 is related to a key off event,
Program execution moves to step 2030,
The load instructions in step 2030 load the channel counter CC with an initial value of ``16'', the parameter counter PC with an initial value of 6, and the priority set register PRSr with an initial value of 0. is loaded, and "-1" is loaded into the first series and second series channel number registers CNr 1 and CNr 2 . When this process is completed, the program execution moves to step 2031, where the key code KC assigned to the channel assignment table CAT specified by the contents of the channel counter CC is the same as the key code KC corresponding to the release key. And it is determined whether or not it corresponds to the channel assignment table CAT regarding the first series of sounds of the release key. If the key code KC assigned to the channel assignment table CAT and the key code KC of the release key are the same, and the channel assignment table CAT is
If it is determined that the key is related to a series note, the program execution moves to step 2032, where the load command "(ONr 1 )←(CC)" is executed, and the first series note of the release key is assigned. The channel number (contents of the channel counter) is stored in the first series channel number register CNr 1.
temporarily memorize it. After this, step 2033
The process moves to the PRG offset routine, where processing for release control regarding the first series of tones of the release key is performed. Furthermore, this PRG
The offset routine will be explained in detail later. On the other hand, the judgment command in step 2031 determines that the key code KC assigned to the channel assignment table CAT specified by the contents of the channel counter CC is the key code KC corresponding to the release key.
If the key code KC assigned to the channel assignment table is different from the key code KC corresponding to the release key, the program execution moves to step 2034. Here, the second series set flag register F2Sr is set to “1”.
Load. 2nd series set flag register
The reason why "1" is loaded into F2Sr is to determine in the next step 2035 whether the key code KC assigned to the channel assignment table CAT relates to the second series of sounds. When this process is completed, the program execution moves to the next step 2035, where the key code KC assigned to the channel assignment table CAT specified by the contents of the channel counter CC is the key code corresponding to the release key. It is determined whether they are the same and the table relates to the second series of sounds. As a result of this judgment process, the corresponding channel assignment table
If it is found that the key code KC assigned to CAT is the same as the key code KC corresponding to the release key, and that the channel assignment table CAT is related to the second series of sounds, the program execution proceeds to step 2036. Here, the channel number to which the second series tone of the release key is assigned is temporarily stored in the second series channel number register CNr2 . Thereafter, the process moves to step 2033, the PRG offset routine, where processing for release control regarding the second series of tones of the release key is performed. However, as a result of the judgment process in step 2036,
The key code corresponding to the key code KC and release key assigned to the channel assignment table CAT specified by the contents of the channel counter CC.
If KC is different, the program goes to step 20.
35 to 2037. In step 2037, the contents of the priority set register PRSr (PRSr) and the contents of the channel assignment table CAT (CAT) are compared,
If (CAT) > (PRSr), the channel assignment table CAT corresponds to a blank channel.
It is also found that the channel has a truncate order value TRi that is a lower priority (larger value) than the highest priority truncate order value "0" initially set in the priority set register PRSr, and this low priority truncate order value is TRi is the next step 2038 load instruction “(PRSr)←
(CAT)” to set the priority register.
PRSR transfers are stored. Conversely, step 2037
As a result of the comparison process, if it is found that (CAT) < (PRSr), the corresponding channel assignment table
CAT is determined to correspond to either a channel to which a pressed key other than the release key has already been assigned, or a blank channel with a higher priority than the truncate priority indicated by the truncate order value TRi at this time, and the program The execution moves to step 2039. Here, similar to the channel allocation flow, this channel allocation release flow will be explained using an example. For example, the contents of the channel assignment tables CAT 1 to CAT 16 before the key off event message is transferred from the first processor unit 100 are as shown in Table 28 Parts 1 to 2 above, and now Assume that the D 3 key of the upper keyboard UK, which is currently assigned to the 12th channel and the 10th channel, has been released. First, in step 2031, it is determined whether the note assigned to the channel assignment table CAT 16 specified by the content of the channel counter CC "(CC) = 16" corresponds to the first series note of the release key D 3 . Inspect. In this example, the channel assignment table CAT 16 for the 16th channel is blank, and its contents (CAT 16 ) are "(CAT 16 )=2". Therefore, the program execution moves to step 2034, where "1" is loaded into the second series set flag register F2Sr. And next step 20
In step 35, it is checked whether the sound assigned to the channel assignment table CAT 16 of the 16th channel corresponds to the second series of sounds of the release key D3 . However, since the 16th channel is a blank channel, the program execution moves to step 2037, where the contents of the channel assignment table CAT16 and the contents of the priority set register PRSr are compared. Then, since "(CAT 16 ) = 2", the program execution moves to step 2038, where the contents of the channel assignment table CAT 16 , that is, the truncate rank value TRi ("2") are stored in the priority set register PRSr. Transfer to and store.
Therefore, in the process up to this point, it has been found that the release key D3 is not assigned to the 16th channel, and the program execution continues at step 203.
9, the decrement instruction "(CC)←(CC)-1" of this step 2039 is executed to update the contents of the channel counter CC to "(CC)=15". Thereafter, the process moves to step 2040, where the second series set flag register F2Sr loaded with "1" in step 2034 is cleared. When this process is completed, the next step 20
In step 41, it is determined whether the contents of the channel counter CC are "(CC) = 0", but in this case, since "(CC) = 0" is not determined, the process returns to step 2031, and in step 2039, the updated channel counter CC is determined. The contents of the following channel assignment table CAT 15 will be inspected based on the contents "15" of . In other words, as a result of the judgment process in step 2041,
Since "(CC) = 15", the program execution returns to step 2031, and in this step 2031, the first series note of release key D 3 is assigned to the channel assignment table CAT 15 of the 15th channel. Check whether it is applicable. However, in this example, the 15th channel has a pedal keyboard.
Since the first series note corresponding to the pitch F1 of PK is assigned, the program execution starts at step 203.
1 to 2034, and this step 2034
After loading "1" into the second series set flag register F2Sr, step 2035 → step 2037 → step 2039 → step 20
40→Step 2041→Step 2031. Based on the updated content of channel counter CC "(CC) = 14", does it correspond to the first series note of release key D 2 or the second series note assigned to the 14th channel? Inspect whether However, in this example, the 14th channel has the pitch F 1 of the pedal keyboard PK.
A second series of sounds corresponding to is assigned. Therefore, the program execution is the same as in the case of the 15th channel, from step 2031 → step 2034 →
Step 2035 → Step 2037 → Step 2039 → Step 2040 → Step 2041
→ Step 2031, and so on.
And again, the updated channel counter
Based on the content of CC "(CC)=13", it is checked whether the 13th channel is assigned to the first series of sounds or the second series of sounds of release key D3 . However, in this example, the 13th channel is a blank channel, and the contents of the channel assignment table CAT 13 are "(CAT 13 )=0". Therefore, the program execution is the same as in the case of the 16th channel, from step 2031 to step 2.
Step 034→Step 2035→Step 2037 is sequentially executed. Then, in step 2037, the content "(CAT 13 )=0" of the channel assignment table CAT 13 is compared with the content "(PRSr)=2" of the priority set register PRSr. As a result of this comparison process, if it is found that "(CAT) >(PRSr)" is not true, the program execution will proceed to step 2.
The process moves directly from step 037 to step 2039, then moves to step 2039→step 2040→step 2041, and returns to step 2031 again. Then, based on the updated channel counter CC content "(CC) = 12", the 12th channel is assigned to the first series note or the second series note of release key C 3 . Inspect whether or not. Then, in this example, since the second series of sounds of release key D 3 is assigned to the 12th channel, the program execution will proceed to step 2034.
→ Step 2035 → Step 2036, and in Step 2036, the second release key D 3 is
Set the channel number "12" to which the series sound is assigned to the second series channel number register CNr 2
temporarily memorize it. Thereafter, in step 2033, processing for release control regarding the musical tone generated in the 12th channel is performed. and,
When this process is completed, the program execution proceeds from step 2039 → step 2040 → step 20.
41, and returns to step 2031 again. From now on, we will process the 11th channel, but the 11th channel will contain the upper keyboard UK pitch.
Since the first series sound corresponding to G 3 is assigned, the program moves through the same steps as for the 15th channel described above, and then returns to step 2031.
Return to From now on, processing will be performed regarding the 10th channel, but since the 1st series of sounds of the release key D 3 is assigned to the 10th channel, the program execution will move from step 2031 to step 2032, and this step Release key at 2032
The channel number "10" to which the first series sound of D 3 is assigned is temporarily stored in the first series channel number register CNr 1 . After this, step 2
At step 033, release control processing regarding the generated musical tone of the 10th channel is performed. When this process is completed, the program execution will proceed to step 2.
039→Step 2040→Step 2041, and then return to Step 2031 again. From then on, from the 9th channel to the 1st
The same process is performed up to the channel, but the most important process is the process of updating the contents of the priority set register PRSr in steps 2037 and 2038. That is, the priority set register
The contents of PRSr (PRSr) are updated to "(PRSr) = 2" in the process of executing processing related to the 16th channel, and updated to "(PRSr) = 3" in the process of executing processing related to the 5th channel. . After that, in the process of executing the process related to the third channel, it is updated to "(PRSr)=4", and further, in the process of executing the process related to the second channel, "(PRSr)=4" is updated.
5'' and finally stores and holds the truncate order value TRi corresponding to the lowest priority among the truncate order values TRi of all blank channels. Then, the processing related to the first channel is completed, and the contents of the channel counter CC are changed to “(CC)=
0, the program execution will proceed to step 20.
41 to step 2042, where the first series channel number register CNr 1
Determine whether the content of is positive or negative. The first channel number register CNr 1 and the second channel number register CNr 2 are each loaded with "-1" as an initial value in step 2030, and then released in the process of processing for all channels from step 2031 to step 2041. The channel numbers to which the first series tones and the second series tones of key D 3 were assigned are respectively loaded and become "(CNr 1 )=10" and "(CNr 2 )=12". Therefore, the program execution moves to step 2043, where the content of the first channel number register CNr 1 is changed to "(CNr 1 ) = 10".
For the channel assignment table CAT 10 of the 10th channel specified by , the value obtained by adding "+1" to the contents of the priority set register PRSr (PRSr), that is, "(PRSr)+1=5+1=6"
Load. In other words, the 10th channel is a blank channel, and the channel assignment table is
Let the content of CAT 10 be "(CAT 10 ) = 6". After this, the judgment command in step 2044 is "(CNr 2 )?"
Execute 2nd series channel number register
Determine whether the contents of CNr 2 are positive or negative. Then,
Since "(CNr 2 ) = 12", the program execution moves to step 2045, where the 12th channel number specified by the content "(CNr 2 ) = 12" of the second channel number register CNr 2 is For the channel assignment table CAT 12 of the channel, the value obtained by adding "+2" to the contents of the priority set register PRSr (PRSr), that is, "(PRSr)+2=
5+2=7” is loaded. That is, the 12th channel is set as a blank channel, and the contents of the channel assignment table CAT 12 are set as "(CAT 12 )=7". By the way, in this case, the first processor section 100 outputs channel assignment tables CAT 1 to CAT 14.
Off-event messages that are not assigned to any of these may be forwarded. Such a situation occurs under the following conditions. In other words,
Although it is registered in the key-on file KOF of the 1st processor section, the upper keyboard UK or lower keyboard LK
The number of pronunciation series is set to "2", and the number of keys pressed in the upper keyboard UK and lower keyboard LK is large,
This occurs when the required number of sounding channels exceeds the actual number of sounding channels set for the electronic musical instrument. For example, a 16 channel assignment table
If there is only one blank channel among CAT 1 to CAT 16 , and an on event that requires two channels of sound occurs, only the first series of sounds will be used in the channel assignment table.
It happens that it is not assigned to CAT. Also, when a new on-event occurs, if all channel assignment tables CAT 1 to CAT 10 are set to busy channels, there is no channel to which the musical tone related to this new on-event should be assigned, and the key press Channel allocation may not be performed even if the Regarding the off event that occurs under the conditions of the former example, only the first series sound is assigned, so its channel number is set to step 2032.
Then, by executing the instructions in steps 2042 and 2043 , the corresponding channel assignment table CAT is made blank and a predetermined truncation order value TRi is loaded. . However, since the second series of sounds has not been assigned, the determination result in step 2044 is "CNr 2 <0", and the program execution directly returns to the main routine without passing through step 2045. Furthermore, regarding the off event that occurs under the conditions of the latter example, since neither the first series sound nor the second series sound is assigned, the judgment results in step 2042 and step 2044 are respectively "(CNr 1 ) <0" and "(CNr 2 )<0", and the program returns directly to the main routine from step 2042 without executing the process of step 2043. Therefore, channel assignment table CAT 1 ~
When the contents of CAT 16 are as shown in Table 28 Parts 1 and 2, as a result of the release of the D 3 key of the upper keyboard UK assigned to the 12th channel and the 10th channel, the 12th channel and Channel assignment table corresponding to blank channels including channel 10 CAT 16 , CAT 13 , CAT 12 , CAT 10 ,
The contents of CAT 7 , CAT 5 , CAT 3 , and CAT 2 are as follows:
The result will be as shown in the table.

【表】 次に、前述のチヤンネル割当てフローによつて
チヤンネル割当てられた新たな押下鍵に関する各
種の楽音パラメータおよび周波数パラメータを算
出するパラメータ計算ルーチンについて説明す
る。なお、前述のチヤンネル割当て解除フローの
中のPRGオフセツトルーチンについてはパラメ
ータ計算ルーチンの説明を終つてから説明する。 (パラメータ計算ルーチン) 第20図〜第27図はパラメータ計算ルーチン
の一実施例を示す詳細フローチヤートである。 はじめに、このパラメータ計算ルーチンで算出
される楽音パラメータG〔CA〕,G〔LA〕,G
〔CT〕,G〔Pi〕,G〔M1〕,G〔M2〕の計算式に
ついて説明する。 発生楽音のアタツク部分,デイケイ部分,サス
テイン部分に関する前記楽音パラメータG
〔CA〕〜G〔M2〕は、次の第25式〜第42式によつ
て算出され、リリース部分については振幅に関係
する楽音パラメータG〔M1〕,G〔M2〕のみが第
43式〜第44式に基づき算出される。 (a) アタツク部分 G〔CA〕at={Zs〔CA〕+Zm〔CA〕+
Zm〔BL〕}+MDs〔CA〕+
n・m〔CA〕×Δ・m
〔CA〕 ……(25) G〔LA〕at={Zs〔LA〕+Zm〔LA〕+
Zm〔BL〕}+MDs〔CA〕+
n・m〔LA〕×Δ・m
〔LA〕 ……(26) G〔CT〕at={Zs〔CT〕+Zm〔LA〕+
Zm〔BL〕}+MDs〔CA〕+
n・m〔CT〕×Δ・m
〔LA〕 ……(27) G〔Pi〕at={Zs〔Pi〕+Zm〔LA〕+Zm
〔BL〕}+MDs〔CA〕+n・
m〔Pi〕×Δ・m〔Pi〕
……(28) G〔M1〕at={Zs〔M1〕+Zm〔M1〕+Zm
〔BL〕+R〔Mi〕}+MDs
〔CA〕+n・m〔M1〕×
Δ・m〔M1〕 ……(29) G〔M2〕at={Zs〔M2〕+Zm〔M2〕+Zm
〔BL〕+R〔Mi〕}+MDs
〔CA〕+n・m〔M1〕×
Δ・m〔M1〕 ……(30) (b) デイケイ部分 G〔CA〕dc=G〔CA〕at+MDs〔CA〕+n・
m〔CA〕×Δ・m
〔CA〕 ……(31) G〔LA〕dc=G〔LA〕at+MDs〔LA〕+n・
m〔LA〕×Δ・m
〔LA〕 ……(32) G〔CT〕dc=G〔CT〕at+MDs〔CT〕+n・
m〔CT〕×Δ・m
〔LA〕 ……(33) G〔Pi〕dc=G〔Pi〕at+MDs〔Pi〕+n・
m〔Pi〕×Δ・m〔Pi〕
……(34) G〔M1〕dc=G〔M1〕at+MDs〔M1〕+n・
m〔M1〕×Δ・m〔M1
……(35) G〔M3〕dc=G〔M2〕at+MDs〔M3〕+n・
m〔M2〕×Δ・m〔M2
……(36) (c) サステイン部分 G〔CA〕st=G〔CA〕dc
+MDs〔CA〕……(37) G〔LA〕st=G〔LA〕dc
+MDs〔LA〕……(38) G〔CT〕st=G〔CT〕dc
+MDs〔CT〕……(39) G〔Pi〕st=G〔Pi〕dc
+MDs〔Pi〕……(40) G〔M1〕st=G〔M1〕dc
+MDs〔M1〕……(41) G〔M2〕st=G〔M2〕dc
+MDs〔M2〕……(42) (d) リリース部分 G〔M1〕re=G〔M1〕st+Δm〔Re〕
……(43) G〔M2〕re=G〔M3〕st+Δm〔Re〕
……(44) ここで、G〔CA〕at〜G〔M2〕atの「at」は
アタツク部分に関する各楽音パラメータの
「VALUE値」を表わし、G〔CA〕dc〜G〔M2
dcの「dc」はデイケイ部分に関する各楽音パラ
メータの「VALUE値」を表わし、G〔CA〕st〜
G〔M2〕stの「st」はサステイン部分に関する各
楽音パラメータの「VALUE値」を表わし、G
〔M1〕re〜G〔M2〕reの「re」はリリース部分に
関する各楽音パラメータの「VALUE値」を表わ
している。 また、Zm〔BL〕は、各楽音パラメータに対
応したインダイレクト演算パラメータBL・
ADRmとキーコードKCとを加算した値「BL・
ADRm+KC」でNST220をアドレスし、これ
によつてNST220から読み出した各楽音パラ
メータの初期値に対するノートスケーリング用の
演算パラメータを表わしている。 また、n・m〔CA〕〜n・m〔M2〕は、
各楽音パラメータに対応したインダイレクト演算
パラメータn・ADR・mとキーコードKCとを
加算した値「n・ADR・m+KC」でnテーブ
ル240をアドレスし、これによつてnテーブル
240から読み出したアタツク部分における演算
回路に関する演算パラメータを表わしている。 また、n・m〔CA〕〜n・m〔M2〕は、
各楽音パラメータに対応したインダイレクト演算
パラメータn・ADR・mとキーコードKCとを
加算した値「n・ADR・m+KC」でnテーブ
ル240をアドレスし、これによつてnテーブル
240から読み出したデイケイ部分における演算
回数に関する演算パラメータを表わしている。 また、Δ・m〔CA〕〜Δ・m〔M2〕は、
各楽音パラメータに対応したインダイレクト演算
パラメータΔ・ADR・mとキーコードKCとを
加算した値「Δ・ADR・m+KC」でΔテーブ
ル230をアドレスし、これによつてΔテーブル
230から読み出したアタツク部分における演算
周期毎の増減値に関する演算パラメータを表わし
ている。 また、Δ・m〔CA〕〜Δ・m〔M2〕は各
楽音パラメータに対応したインダイレクト演算パ
ラメータΔ・ADR・mとキーコードKCとを加
算した値「Δ・ADR・m+KC」でΔテーブル
230をアドレスし、これによつてΔテーブル2
30から読み出したデイケイ部分における演算周
期毎の増減値に関する演算パラメータを表わして
いる。 また、Δm〔Re〕は、リリースデータD
〔Re〕に対応したインダイレクト演算パラメータ
Δ・ADRとキーコードKCとを加算した値「Δ・
ADR+KD」でΔテーブル230をアドレスし、
これによつてΔテーブル230から読み出したリ
リース部分における楽音パラメータG〔M1〕,G
〔M2〕の演算周期毎の増減値に関する演算パラメ
ータである。 ところで、上述した計算式(25)〜(44)にお
いて、各楽音パラメータに対応する増減値Δm
(Δ・m,Δ・m,Δm〔Re〕)は、各楽音
パラメータに対応する演算周期に関する演算パラ
メータTm(Tm〔CA〕,Tm〔LA〕……Tm
〔Re〕)によつて定まる周期で、かつ演算パラメ
ータnn(n・mなど)で指定される回数だけ
加算されるものである。 従つて、例えば、楽音パラメータG〔CA〕の
アタツク部分における「VALUE値」は、第28
図のに示すように演算パラメータTmの周期で
変化する時間関数となり、その最終値は前述の第
25式で求められる。この場合、インダイレクト演
算パラメータΔ・ADRとn・ADRによつてΔテ
ーブル230およびnテーブル240から各々得
られる演算パラメータΔmおよびnnを乗算した
乗算値「Δm×nn」と、「Δ・ADR+KC」と
「n・ADR+KC」によつてΔテーブル230お
よびnテーブル240から各々得られる演算パラ
メータΔmおよびnnを乗算した乗算値「Δm×
n」とが常にほぼ等しくなるようにΔテーブル
230の記憶内容Δmおよびnテーブル240の
記憶内容nnを定めておくと、つまりΔテーブル
230の記憶内容Δmとnテーブル240の記憶
内容nnとの関係を第29図に示すように設定し
ておくと、キーコードKCが変化することにより
最終値「nn×Δm」に至るまでの傾きが第28
図のに示すように変化する。すなわち、キーコ
ードKCが変化することにより、最終の
「VALUE値」が同一で、これに至るまでの時間
が変化する楽音パラメータG〔CA〕が得られ
る。もちろん、この場合の変化速度は、演算パラ
メータTmによつて変化する。 この実施例では、このような原理を用いて各楽
音パラメータG〔CA〕〜G〔M2〕の時間変化に
対するノートスケーリングを行つている。 次に、上述した計算式(1)〜(4)および計算式
(25)〜(44)式に基づいて周波数パラメータR
および楽音パラメータG〔CA〕〜G〔M2〕を算
出するパラメータ計算ルーチンについて説明す
る。 第2プロセツサ部200のメインルーチンにお
けるプログラムの実行がパラメータ計算ルーチン
に移行すると、まず、第20図のステツプ210
0において各チヤンネルの楽音パラメータG
〔CA〕,G〔LA〕,G〔CT〕,G〔Pi〕,G
〔M1〕,G〔M2〕および周波数パラメータR
(R1,R2)を第16チヤンネルから第1チヤンネル
まで順に時分割的に算出するため、チヤンネルカ
ウンタCCに初期値として「16」がロードされ
る。 次にステツプ2101において、前記チヤンネ
ルカウンタCCの内容で指定されたチヤンネルに
おける前記各種のパラメータをその種類毎に順に
時分割的に算出するため、パラメータカウンタ
PCに対し初期値として「6」がロードされると
共に、パラメータ変換指示フラグCFGrの内容が
クリアされる。 この場合、パラメータカウンタPCの内容と各
チヤンネルの楽音パラメータG〔CA〕〜G
〔M2〕の演算内容とは次の第30表に示すような関
係になつており、
[Table] Next, a parameter calculation routine for calculating various musical tone parameters and frequency parameters regarding a new pressed key assigned to a channel by the channel assignment flow described above will be described. The PRG offset routine in the above channel allocation flow will be explained after the parameter calculation routine has been explained. (Parameter Calculation Routine) FIGS. 20 to 27 are detailed flowcharts showing one embodiment of the parameter calculation routine. First, the musical tone parameters G [CA], G [LA], G calculated by this parameter calculation routine.
The calculation formulas for [CT], G[Pi], G[M 1 ], and G[M 2 ] will be explained. The musical tone parameters G regarding the attack part, decay part, and sustain part of the generated musical tone
[CA] to G[M 2 ] are calculated by the following Equations 25 to 42, and for the release part, only the tone parameters G[M 1 ] and G[M 2 ] related to the amplitude are calculated.
Calculated based on formulas 43 to 44. (a) Attack part G [CA] at = {Zs [CA] + Zm [CA] +
Zm〔BL〕}+MDs〔CA〕+
n・m [CA]×Δ・m
[CA] ...(25) G[LA]at={Zs[LA]+Zm[LA]+
Zm〔BL〕}+MDs〔CA〕+
n・m [LA]×Δ・m
[LA] ...(26) G[CT]at={Zs[CT]+Zm[LA]+
Zm〔BL〕}+MDs〔CA〕+
n・m [CT]×Δ・m
[LA] ...(27) G[Pi]at={Zs[Pi]+Zm[LA]+Zm
[BL]}+MDs[CA]+n・
m [Pi] × Δ・m [Pi]
...(28) G[M 1 ]at={Zs[M 1 ]+Zm[M 1 ]+Zm
[BL]+R[Mi]}+MDs
[CA]+n・m[M 1
Δ・m [M 1 ] ... (29) G [M 2 ] at = {Zs [M 2 ] + Zm [M 2 ] + Zm
[BL]+R[Mi]}+MDs
[CA]+n・m[M 1
Δ・m [M 1 ] ...(30) (b) Decay part G[CA]dc=G[CA]at+MDs[CA]+n・
m [CA] x Δ・m
[CA] ...(31) G[LA]dc=G[LA]at+MDs[LA]+n・
m [LA] x Δ・m
[LA] ...(32) G[CT]dc=G[CT]at+MDs[CT]+n・
m[CT]×Δ・m
[LA] ...(33) G[Pi]dc=G[Pi]at+MDs[Pi]+n・
m [Pi] × Δ・m [Pi]
...(34) G[M 1 ]dc=G[M 1 ]at+MDs[M 1 ]+n・
m [M 1 ]×Δ・m [M 1 ]
...(35) G [M 3 ] dc = G [M 2 ] at + MDs [M 3 ] + n・
m [M 2 ]×Δ・m [M 2 ]
...(36) (c) Sustain part G[CA]st=G[CA]dc
+MDs[CA]...(37) G[LA]st=G[LA]dc
+MDs[LA]...(38) G[CT]st=G[CT]dc
+MDs[CT]...(39) G[Pi]st=G[Pi]dc
+MDs〔Pi〕……(40) G〔M 1 〕st=G〔M 1 〕dc
+MDs〔M 1 〕……(41) G〔M 2 〕st=G〔M 2 〕dc
+MDs〔M 2 〕……(42) (d) Release part G〔M 1 〕re=G〔M 1 〕st+Δm〔Re〕
...(43) G[M 2 ]re=G[M 3 ]st+Δm[Re]
...(44) Here, "at" in G[CA]at~G[ M2 ]at represents the "VALUE value" of each tone parameter regarding the attack part, and G[CA]dc~G[ M2 ]
"dc" in dc represents the "VALUE value" of each musical tone parameter regarding the decay part, and G[CA]st~
“st” in G [M 2 ] st represents the “VALUE value” of each tone parameter regarding the sustain part, and
"re" in [M 1 ] re to G [M 2 ] re represents the "VALUE value" of each tone parameter regarding the release part. In addition, Zm [BL] is the indirect calculation parameter BL and corresponding to each musical tone parameter.
The sum of ADRm and key code KC is “BL・
ADRm+KC'' addresses the NST 220, thereby representing calculation parameters for note scaling for the initial values of each tone parameter read from the NST 220. Also, n・m [CA] ~ n・m [M 2 ] is
Address the n table 240 with the value "n・ADR・m+KC", which is the sum of the indirect calculation parameter n・ADR・m corresponding to each musical tone parameter and the key code KC, and thereby perform the attack read from the n table 240. It represents the calculation parameters regarding the calculation circuit in the section. Also, n・m [CA] ~ n・m [M 2 ] is
The n-table 240 is addressed with the value "n-ADR-m+KC", which is the sum of the indirect calculation parameter n・ADR・m corresponding to each musical tone parameter and the key code KC. It represents calculation parameters related to the number of calculations in a portion. Also, Δ・m [CA] ~ Δ・m [M 2 ] is
The Δ table 230 is addressed with the value "Δ·ADR·m+KC" which is the sum of the indirect calculation parameter Δ·ADR·m corresponding to each musical tone parameter and the key code KC, and the attack read from the Δ table 230 is thereby It represents the calculation parameters regarding the increase/decrease value for each calculation cycle in the part. In addition, Δ・m [CA] to Δ・m [M 2 ] is the value "Δ・ADR・m+KC" which is the sum of the indirect calculation parameter Δ・ADR・m corresponding to each musical tone parameter and the key code KC. Address table 230, thereby addressing Δ table 2
30 represents the calculation parameters regarding the increase/decrease value for each calculation cycle in the Decay portion read from 30. In addition, Δm [Re] is the release data D
The value “Δ・ADR” corresponding to [Re] and the key code KC is added.
ADR+KD” to address the Δ table 230,
As a result, the musical tone parameters G [M 1 ], G in the release part read from the Δ table 230
This is a calculation parameter regarding the increase/decrease value of [M 2 ] for each calculation cycle. By the way, in the calculation formulas (25) to (44) mentioned above, the increase/decrease value Δm corresponding to each musical tone parameter
(Δ・m, Δ・m, Δm[Re]) is the calculation parameter Tm (Tm[CA], Tm[LA]...Tm
[Re]) and is added the number of times specified by the calculation parameter n n (n·m, etc.). Therefore, for example, the "VALUE value" in the attack part of musical tone parameter G [CA] is the 28th
As shown in the figure, it becomes a time function that changes with the cycle of the calculation parameter Tm, and its final value is determined by the above-mentioned
It can be found using formula 25. In this case, the multiplication value “Δm×n n ” obtained by multiplying the calculation parameters Δm and n n obtained from the Δ table 230 and the n table 240 by the indirect calculation parameters Δ・ADR and n・ADR, respectively, and “Δ・ADR + KC" and "n・ADR+KC" are the multiplication values "Δm×
If the stored content Δm of the Δ table 230 and the stored content n n of the n table 240 are determined so that the stored content Δm of the Δ table 230 and the stored content n n of the n table 240 are always approximately equal, that is, the stored content Δm of the Δ table 230 and the stored content n n of the n table 240 If the relationship is set as shown in Fig. 29, the slope up to the final value "n n
Changes as shown in the figure. That is, by changing the key code KC, a musical tone parameter G [CA] whose final "VALUE value" is the same and the time required to reach this value changes can be obtained. Of course, the rate of change in this case changes depending on the calculation parameter Tm. In this embodiment, such a principle is used to perform note scaling with respect to time changes in each musical tone parameter G[CA] to G[ M2 ]. Next, the frequency parameter R is calculated based on the calculation formulas (1) to (4) and calculation formulas (25) to (44) described above.
A parameter calculation routine for calculating the musical tone parameters G[CA] to G[M 2 ] will be explained. When the program execution in the main routine of the second processor unit 200 shifts to the parameter calculation routine, first, step 210 in FIG.
At 0, the musical tone parameter G of each channel
[CA], G [LA], G [CT], G [Pi], G
[M 1 ], G [M 2 ] and frequency parameter R
In order to calculate (R 1 , R 2 ) sequentially and time-divisionally from the 16th channel to the 1st channel, "16" is loaded as an initial value into the channel counter CC. Next, in step 2101, the parameter counter
"6" is loaded into the PC as an initial value, and the contents of the parameter conversion instruction flag CFGr are cleared. In this case, the contents of the parameter counter PC and the musical tone parameters G[CA] to G of each channel
The calculation contents of [M 2 ] have a relationship as shown in Table 30 below,

【表】 これらの楽音パラメータG〔CA〕〜G〔M2
はアタツク部,デイケイ部など楽音信号の各部分
毎に独自の計算ルーチンで算出され、どの部分に
関する計算を実行すべきかは当該楽音パラメータ
に対応するパラメータ計算用レジスタPRGの単
位ワードのうちJAエリアの内容で指定される。
例えば、パラメータカウンタPCの内容が
「(PC)=6」の場合、楽音パラメータG〔CA〕
に対応するパラメータ計算用レジスタPRGの単
位ワードのうちJAエリアの内容「(JA)=A〜
E」によつて次の第31表に示すような計算ルーチ
ンが実行される。
[Table] These musical tone parameters G [CA] ~ G [M 2 ]
is calculated by a unique calculation routine for each part of the musical tone signal, such as the attack part and the decay part, and which part should be calculated is determined by the JA area of the unit word of the parameter calculation register PRG corresponding to the musical tone parameter. Specified by content.
For example, if the content of the parameter counter PC is "(PC) = 6", the musical tone parameter G [CA]
The contents of the JA area among the unit words of the parameter calculation register PRG corresponding to "(JA) = A ~
E'' executes a calculation routine as shown in Table 31 below.

【表】 これは、他の楽音パラメータG〔LA〕〜G
〔Pi〕についても同様であるが、楽音パラメータ
G〔M1〕およびG〔M2〕についてはリリース部計
算ルーチンにおいても所定の演算が実行される。 ステツプ2101の処理が終了すると、以降の
ステツプにおいてチヤンネルカウンタCCの内容
で指定されたチヤンネルにおける前記各種パラメ
ータの算出処理がG〔CA〕からG〔M2〕へと順
に実行される。 つまり、ステツプ2101においてパラメータ
カウンタPCに初期値として「(PC)=6」がロー
ドされると、プログラムの実行は次のステツプ2
102に移行し、ここにおいてチヤンネルカウン
タCCの内容「(CC)=16」で指定された第16チヤ
ンネルに対応するパラメータ計算用レジスタ
PRG16の中からパラメータカウンタPCの内容で
指定される楽音パラメータG〔CA〕に対応する
Tエリアの内容(T)〔CA〕読み出し、この内容
(T)〔CA〕が「(T)〔CA〕=0」か、あるいは
「(T)〔CA〕>0」か、あるいは「(T)〔CA〕<
0」かを判断する。この判断処理の結果が
「(T)〔CA〕=0」であれば、プログラムの実行
はステツプ2102からステツプ2103へ移行
し、これ以降のステツプにおいて当該楽音パラメ
ータG〔CA〕に対応するJAエリアの内容によつ
て指定される計算ルーチンを実行する。 ステツプ2102の判断処理結果が「Tm
〔CA〕>0」であれば、楽音パラメータG〔CA〕
の増減値Δm〔CA〕を加算すべき演算周期に達
していないものとし、プログラムの実行はステツ
プ2102からステツプ2114へ移行し、ここ
において演算周期に関するTエリアの内容(T)
〔CA〕をデクレメントする。 一方、ステツプ2102の判断処理結果が
「(T)〔CA〕<0」であれば、当該チヤンネルは
空白チヤンネルとして判断し、プログラムの実行
はステツプ2102からステツプ2120へ移行
し、ここにおいてチヤンネルカウンタCCの内容
をデクレメントし、この後ステツプ2121の判
断命令「(CC)=0?」の分岐によりステツプ2
101へ戻り、新たなチヤンネルにおける各楽音
パラメータG〔CA〕〜G〔〔M2〕の算出を実行す
る。 今ここで、第16チヤンネルに対し上鍵盤UKに
所属する新たな押下鍵が前述のチヤンネル割当て
フローによつて割当てられたものとすると、この
第16チヤンネルにおける各楽音パラメータG
〔CA〕〜G〔M2〕の算出処理は次のようにして行
なわれる。 この場合、第16チヤンネルのパラメータカウン
タPCの内容「(PC)=6」で指定される単位ワー
ドのTエリアの内容(T)〔CA〕は、前述の
PRGオンセツトルーチンにおいてクリアされて
いる。このため、ステツプ2102による判断処
理結果は、「(T)〔CA〕=0」となり、プログラ
ムの実行はステツプ2103へ移行し、ここにお
いてパラメータカウンタPCの内容が「(PC)≧
3」であるかどうかを判断する。プログラムカウ
ンタPCの内容が「(PC)≧3」であれば、発生楽
音のピツチに関係する楽音パラメータG〔CA〕,
G〔LA〕,G〔CT〕,G〔Pi〕を算出しようとし
ているわけであるから、後述するパラメータ変換
ルーチン(楽音パラメータG〔CA〕〜G〔Pi〕
に基づき周波数パラメータR1,R2を作るルーチ
ン)の処理を実行すべきことを指示するため、次
のステツプ2104においてパラメータ変換指示
フラグレジスタCFGrに“1”をロードしてお
く。逆に、パラメータカウンタPCの内容が
「(PC)<3」であれば、以降においては発生楽
音の振幅値に関係する楽音パラメータG〔M1〕,
G〔M2〕を算出しようとしているわけであるか
ら、プログラムの実行はステツプ2103からス
テツプ2105へ直接移行する。 この後、ステツプ2105〜2108の判断命
令「(JA)=A?」,「(JA)=B?」,「(JA)=
E?」,「(JA)=D?」により、パラメータ計算
用レジスタPRG16の単位ワードのうち「(PC)=
6」で指定される単位ワードにおけるJAエリア
の内容が(JA)=A〜(JA)=Dのいずれになつ
ているかどうか判断される。 JAエリアの内容(JA)は、前述したように各
楽音パラメータG〔CA〕〜G〔M2〕のアタツク
部計算ルーチンやデイケイ部計算ルーチンなど次
に実行すべき計算ルーチンを指定する情報である
が、楽音パラメータG〔CA〕に対応するパラメ
ータ計算用レジスタPRG16のJAエリアの内容
は、前述のPRGオンセツトルーチンにおいてロ
ードされた「A」となつている。このためプログ
ラムの実行はステツプ2105からステツプ21
09のイニシアルルーチンへ移行する。 ステツプ2109のイニシヤルルーチンにおい
ては、パラメータカウンタPCの内容「(PC)=
6」で指定される楽音パラメータG〔CA〕のア
タツク部分に関する「VALUE」を算出するため
の演算パラメータの初期設定が行なわれると共
に、このイニシヤルルーチンの中でパラメータカ
ウンタPCの内容が(PC)=5〜1へと順次変化
され他の楽音パラメータG〔LA〕〜G〔M2〕の
アタツク部分に関する「VALUE値」を算出する
ための演算パラメータの初期設定も行なわれる。 (イニシヤルルーチン) イニシヤルルーチンは第21図にその詳細フロ
ーチヤートを示している。 プログラムの実行が第21図に示すイニシヤル
ルーチンのステツプ2130へ移行すると、まず
ステツプ2130においてレジストレーシヨンレ
ジスタRGNr(第23表)の中から第16チヤンネル
に割当てられた押下鍵に関する音色ナンバデータ
TCNをパラメータ計算用レジスタPGR16の単位ワ
ードのうちパラメータカウンタPCの内容
「(PC)=6」で指定される単位ワードのTCT・
ADRエリアにロードする。そして次のステツプ
2131において、前記TCT・ADRエリアにロ
ードされた音色ナンバデータTCNとパラメータ
カウンタPCの内容「(PC)=6」およびサブパラ
メータカウンタSPCの内容「(SPC)=2」によつ
てTCT210をアドレスし、TCT210から音
色ナンバデータTCNに対応した楽音パラメータ
G〔CA〕のアタツク部演算用の演算パラメータ
T・m〔CA〕を読み出し、この演算パラメー
タT・m〔CA〕をパラメータ計算用レジスタ
PRG16の単位ワードのうち「(PC)=6」で指定
される単位ワードのTエリアにロードする。つま
り、楽音パラメータG〔CA〕のアタツク部演算
用の演算周期に関する演算パラメータT・m
〔CA〕を初期設定する。 次に、ステツプ2132において、パラメータ
計算用レジスタPRG16の前記TCT・ADRエリア
にロードされた音色ナンバデータTCNとパラメ
ータカウンタPCの内容「(PC)=6」およびサブ
パラメータカウンタSPCの内容「(SPC)=0」に
よつてTCT210をアドレスし、TCT210か
ら音色ナンバデータTCNに対応した楽音パラメ
ータG〔CA〕のアタツク部演算用の初期値に関
する演算パラメータZm〔CA〕を読み出し、こ
の演算パラメータZm〔CA〕をパラメータ計算
用レジスタPRG16の単位ワードのうち「(PC)=
6」で指定される単位ワードの「VALUE」エリ
アにロードする。つまり、このステツプ2132
において、楽音パラメータG〔CA〕のアタツク
部分演算用の初期値が設定される。 次に、ステツプ2133において、イニシヤル
データレジスタZD16(第23表)から第16チヤ
ンネルに割当てられた押下鍵に関するイニシヤル
タツチデータのうち楽音パラメータG〔CA〕に
対応するイニシヤルタツチデータZs〔CA〕を
演算パラメータZs〔CA〕として読み出し、こ
の演算パラメータZs〔CA〕とパラメータ計算
用レジスタPRG16の「(PC)=6」で指定される
単位ワードの「VALUE」エリアに前記ステツプ
2132でロードした演算パラメータZm
〔CA〕とを加算し、この加算値「Zm〔CA〕+
Zs〔CA〕」を再びPRG16の前記「VALUE」エ
リアにロードする。 この処理が終了すると、プログラムの実行は次
のステツプ2134へ移行し、ここにおいてパラ
メータカウンタPCの内容が「(PC)≧3」かどう
かを判断する。これは、楽音パラメータG
〔M1〕,G〔M2〕を算出する場合において、レジス
トレーシヨンデータの中の系列別レベルデータR
〔Mi〕を初期値として加重するためのもので、
「(PC)<3」のときにはステツプ2135にお
いて系列別レベルデータR〔Mi〕が初期値とし
て加重される(前記第29式および第30式参照)。 パラメータカウンタPCの内容が「(PC)≧3」
のときには、プログラムの実行はステツプ213
4からステツプ2136へ移行し、ここにおいて
パラメータ計算用レジスタPRG16の前記TCT・
ADRエリアにロードされた音色ナンバデータ
TCNとパラメータカウンタPCの内容「(PC)=
6」およびサブパラメータカウンタSPCの内容
「(SPC)=1」によつてTCT210をアドレス
し、TCT210から音色ナンバデータTCNに対
応した楽音パラメータG〔CA〕のインダイレク
ト演算パラメータBL・ADRm〔CA〕を読み出
し、このインダイレクト演算パラメータBL・
ADRm〔CA〕の内容が「0」か、「0」でない
かを判断する。「BL・ADRm〔CA〕=0」のとき
には、前述の第20表で示したように鍵盤内バラン
スはフラツトでよいから、プログラムの実行はス
テツプ2139へ移行する。しかし、「BL・
ADRm〔CA〕≠0」のときには、「BL・ADRm
〔CA〕」で指定される特性カーブ(第15図参
照)に基づいて鍵盤内のノートスケーリング(初
期値に対する)を行うため、次のステツプ213
7においてインダイレクト演算パラメータBL・
ADRm〔CA〕と第16チヤンネルに割当てられて
いる押下鍵のキーコードKCとの加算値「BL・
ADRm〔CA〕+KC」でNST220をアドレス
し、NST220から楽音パラメータG〔CA〕の
初期値に対するノートスケーリング用の演算パラ
メータBL〔CA〕を読み出し、これをAアキユム
レータAccAにロードする。 次に、ステツプ2138において、Aアキユム
レータAccAの内容と、パラメータ計算用レジス
タPRG16の「(PC)=6」で指定される単位ワー
ドにおける「VALUE」エリアの内容とを加算
し、この加算値を再び前記「VALUE」エリアに
ロードする。従つて、この段階までの前記
「VALUE」エリアの内容、すなわち楽音パラメ
ータG〔CA〕のVALUE値は次のようになる。 (i) BL・ADRm=0のとき、 G〔CA〕のVALUE値=Zm〔CA〕+Zs
〔CA〕 ……(45) (ii) BL・ADRm≠のとき、 G〔CA〕のVALUE値=Zm〔CA〕+Zs
〔CA〕+Zm〔BL〕 ……(46) 次に、ステツプ2140のn・Δセツトルーチ
ンにおいて、楽音パラメータG〔CA〕のアタツ
ク部分における演算回数に関する演算パラメータ
n・m〔CA〕および演算パラメータT・m
〔CA〕で指定される演算周期毎の増減値Δ・m
〔CA〕の初期設定を行う。このn・Δセツトルー
チンは第22図に詳細フローチヤートを示してい
る。 第22図において、プログラムの実行がこの
n・Δセツトルーチンに移行すると、まず215
0においてnテーブル240から演算パラメータ
n・m〔CA〕を読み出すためのnテーブルア
ドレス情報を得る。このnテーブルアドレス情報
は、パラメータ計算用レジスタPRG16の「(PC)
=6」に対応する単位ワードにおけるTCT・
ADRエリアに記憶されている音色ナンバデータ
TCNとパラメータカウンタPCの内容「(PC)=
6」およびサブパラメータカウンタSPCの内容
「(SPC)=3」によつてTCT210をアドレスし
て読み出したインダイレクト演算パラメータn・
ADR・Lmと、キーコードテーブルKCT16に記憶
されているキーコードKCとを加算することによ
つて作られる。そして、このようにして作成した
nテーブルアドレス情報「n・ADR・m+
KC」でnテーブル240をアドレスし、音色ナ
ンバTCNとキーコードKCに対応した演算パラメ
ータn・m〔CA〕を読み出す。 そして、次のステツプ2151において、nテ
ーブル240から読み出した演算パラメータn・
m〔CA〕をパラメータ計算用レジスタPRG16
の「(PC)=6」に対応する単位ワードにおける
nエリアにロードする。この2つのステツプ21
50と2151によつて演算パラメータn・m
〔CA〕の初期設定は終了し、次にステツプ215
2と2153によつて演算パラメータΔ・m
〔CA〕の初期設定が行行なわれる。つまり、ステ
ツプ2152においてΔテーブル230から演算
パラメータΔ・m〔CA〕を読み出すためのΔ
テーブルアドレス情報が作られる。このΔテーブ
ルアドレス情報は、nテーブルアドレス情報を作
成した場合と同様、パラメータ計算用レジスタ
PRG16の「(PC)=6」に対応する単位ワードに
おけるTCT・ADRエリアに記憶されている音色
ナンバデータTCNとパラメータカウンタPCの内
容「(PC)=6」およびサブパラメータカウンタ
SPCの内容「(SPC)=4」によつてTCT210
をアドレスして読み出したインダイレクト演算パ
ラメータΔ・ADR・mと、キーコードテーブ
ルKCT16に記憶されているキーコードKCとを加
算することによつて作られる。そして、このよう
にして作成したΔテーブルアドレス情報「Δ・
ADR・m+KC」でΔテーブル230をアドレ
スし、音色ナンバTCNとキーコードKCに対応し
た演算パラメータΔ・m〔CA〕を読み出す。
そして次のステツプ2153において、Δテーブ
ル230から読み出した演算パラメータΔ・m
〔CA〕をパラメータ計算用レジスタPRG16
「(PC)=16」に対応する単位ワードにおけるΔ
エリアにロードする。これによつてn・Δセツト
ルーチンの処理は終了し、プログラムの実行は第
21図イニシヤルルーチンに戻り、イニシヤルル
ーチンのステツプ2141においてパラメータ計
算用レジスタPRG16の「(PC)=6」で指定され
る単位ワードにおけるJAエリアの内容を「A」
から「B」に変更する。これは、楽音パラメータ
G〔CA〕を算出するための初期設定処理が終了
し、次にはアタツク部分の算出処理に移行すべき
ことを意味している。 次に、プログラムの実行はステツプ2142に
移行し、ここにおいてパラメータカウンタPCの
内容が「(PC)=1」であるかどうかを判断す
る。もし、「(PC)=1」ならば第16チヤンネルの
楽音パラメータG〔CA〕〜G〔M2〕のイニシヤ
ルルーチン処理は全て完了したものとしてプログ
ラムの実行は第20図のパラメータ計算ルーチン
へ戻る。 しかし、「(PC)≠1」ならば、第16チヤンネ
ルに関する楽音パラメータG〔CA〕〜G〔M2
のイニシヤルルーチン処理が未完了であるものと
してステツプ2143へ移行し、このステツプ2
143においてパラメータカウンタPCの内容を
デクレメントして「(PC)=5」とする。そし
て、この後プログラムの実行はステツプ2130
へ戻り、更新されたパラメータカウンタPCの内
容「(PC)=5」により、楽音パラメータG
〔LA〕のイニシヤルルーチン処理を行う。 パラメータカウンタPCの内容が「(PC)=5」
〜「(PC)=1」の場合における楽音パラメータ
G〔LA〕〜G〔M2〕のイニシヤルルーチン処理
は、楽音パラメータG〔CA〕のイニシヤルルー
チン処理と同様であるのでその説明は省略する。 このようにして第16チヤンネルにおける各楽音
パラメータG〔CA〕〜G〔M2〕のイニシヤルル
ーチン処理が終了すると、プログラムの実行は第
20図のステツプ2115へ移行し、ここにおい
てパラメータカウンタPCの内容をデクレメント
する。次に、ステツプ2116においてデクレメ
ントしたパラメータカウンタPCの内容を判断
し、「(PC)>0」であれば現在時刻における当該
チヤンネルの楽音パラメータG〔CA〕〜G
〔M2〕の時分割演算処理は未終了であるとし、プ
ログラムの実行はステツプ2116からステツプ
2102へ戻り、新たなパラメータカウンタPC
の内容に基づき対応する楽音パラメータの演算を
行う。 しかし、デクレメントしたパラメータカウンタ
PCの内容が「(PC)=0」であれば、現在時刻に
おける当該チヤンネルの楽音パラメータG
〔CA〕〜G〔M2〕の時分割算出処理は全て終了し
たものとし、プログラムの実行はステツプ211
6からステツプ2117へ移行し、ここにおいて
パラメータ変換指示フラグレジスタCFGrの内容
を判断する。この場合、新たな押下鍵に関するイ
ニシヤルルーチン処理が終了したときのパラメー
タカウンタPCの内容は「(PC)=1」となつてお
り、これがステツプ2115のデクレメント命令
により「(PC)=0」となる。このため、イニシ
ヤルルーチン処理が終了した場合には、プログラ
ムの実行はステツプ2115→ステツプ2116
→ステツプ2117へと移行する。また、新たな
押下鍵に関するパラメータ計算の開始時には、パ
ラメータ変換指示フラグレジスタCFGrに“1”
のパラメータ変換指示フラグCFGがロードされ
ている。このため、プログラムの実行はステツプ
2117からステツプ2118のパラメータ変換
ルーチンへ移行し、ここにおいて前述のイニシヤ
ルルーチンで初期設定した楽音パラメータG
〔CA〕〜G〔M2〕のうちG〔CA〕,G〔CT〕,G
〔Pi〕と、第16チヤンネルに割当てられている押
下鍵に対応するレジストレーシヨンピツチデータ
R〔Pi〕およびレジストレーシヨンフイートデー
タR〔Fe〕とに基づき周波数パラメータR1,R2
が算出されると共に、この算出された周波数パラ
メータR1,R2および楽音パラメータG〔CA〕,
G〔LA〕が第3プロセツサ部300に対して送
出される。この後、次のステツプ2119におい
てイニシヤルルーチンで算出した楽音パラメータ
G〔M1〕,G〔M2〕が第3プロセツサ部300に
対して送出される。 以上のプログラムにより第16チヤンネルに割当
てられた新たな押下鍵に関する初期設定処理は終
了する。そこで、今後は第15チヤンネルに関する
楽音パラメータG〔CA〕〜G〔M2〕の算出を行
うため、次のステツプ2120においてチヤンネ
ルカウンタCCの内容をデクレメントして
「(CC)=15」とする。そして、次のステツプ21
21の判断命令「(CC)=0?」によりチヤンネ
ルカウンタCCの内容が「(CC)>0」であると判
断されると、プログラムの実行はステツプ212
1からステツプ2101へ戻り、第15チヤンネル
に関する楽音パラメータG〔CA〕〜G〔M2〕の
算出処理を行う。説明の便宜上、第16チヤンネル
のみしか押下鍵の割当てがないものとすると、チ
ヤンネルカウンタCCの内容が「(CC)=15」にな
つた場合のプログラムの実行は、ステツプ210
1におけるパラメータカウンタPCの初期設定お
よびパラメータ変換指示フラグレジスタCFGrの
クリア処理を行つた後、ステツプ2102へ移行
し、ここにおいてパラメータ計算用レジスタ
PRG15の「(PC)=6」で指定される単位ワード
におけるTエリアの内容が(T)〔CA〕が
「(T)〔CA〕=0」か、あるいは「(T)〔CA〕>
0」か、あるいは「(T)〔CA〕<0」かを判断す
る。押下鍵の割当てがないチヤンネルについて
は、前記Tエリアの内容(T)〔CA〕は「(T)
〔CA〕<0」となつている。このためプログラム
の実行はステツプ2102からステツプ2120
へ移行し、ここにおいてチヤンネルカウンタCC
の内容をデクレメントして「(CC)=14」とす
る。これは、第14チヤンネルから第1チヤンネル
についても同様な流れであり、その後において第
1チヤンネルに関する処理が終了した段階でチヤ
ンネルカウンタCCの内容が「(CC)=0」となる
と、ステツプ2121の判断命令「(CC)=
0?」によりプログラムの実行は第17図のメイ
ンルーチンへ戻る。そして全チヤンネルに関する
チヤンネル割当ておよび各種パラメータの算出処
理に要した時間が一定時間に達していなければ、
タイマ270からタイマフラグ信号TFGが出力
されるまでプログラムの実行は待機状態となる。
その後、タイマ270からタイマフラグ信号
TFGが出力されると、プログラムの実行はメイ
ンルーチン(第17図)におけるステツプ200
5→ステツプ2001→ステツプ2003の経路
により再びパラメータ計算ルーチンに移行する。
そして、新たな時刻における第16チヤンネルの各
種パラメータの算出処理を行う。 このようにチヤンネルカウンタCCの内容が1
巡するたびに同一チヤンネルに関する新たな時刻
における各種パラメータの時分割算出処理が行な
われるわけであるが、パラメータ計算用レジスタ
PRG16の「(PC)=6」〜「(PC)=1」で指定さ
れる単位ワードの各々におけるTエリアにはイニ
シヤルルーチン処理によつて正の値を示す演算周
期に関する演算パラメータT・m〔CA〕〜
T・m〔M2〕が記憶されている。このため、イ
ニシヤルルーチン処理を終了した直後における演
算内容としては、ステツプ2114による演算パ
ラメータT・m〔CA〕〜T・m〔M3〕のデ
クレメント処理のみが実行される。つまり、プロ
グラムの実行がステツプ2101からステツプ2
102へ移行し、ここにおいてパラメータカウン
タPCの内容「(PC)=6」で指定されるパラメー
タ計算用レジスタPRG16の単位ワードの中のTエ
リアの内容に対する判断が行なわれるが、その内
容「(T)〔CA〕」は「(T)〔CA〕>0」となつて
いるため、プログラムの実行はステツプ2102
からステツプ2114へ移行する。そして、ステ
ツプ2114のデクレメント命令によりT・m
〔CA〕の値がデクレメントされる。この処理が終
了すると、プログラムの実行はステツプ2115
へ移行し、ここにおいてパラメータカウンタPC
の内容をデクレメントして「(PC)=5」としス
テツプ2116の判断命令による判断を受けて再
びステツプ2102へ戻る。そして、今度は更新
されたパラメータカウンタPCの内容「(PC)=
5」により楽音パラメータG〔LA〕に対応する
Tエリアの内部を読み出し、この読み出したTエ
リアの内容(T)〔LA〕の判断処理をステツプ2
102で行う。しかし、楽音パラメータG
〔LA〕に対応するTエリアにはイニシヤルルーチ
ン処理によつて正の値を示す演算パラメータT・
m〔LA〕が記憶されているため、ステツプ2
102による判断処理結果は「(T)〔LA〕>0」
となり、プログラムの実行はステツプ2102か
らステツプ2114へ移行し、ここにおいて演算
パラメータT・m〔CA〕のデクレメント処理
をした後次のステツプ2115においてパラメー
タカウンタPCの内容をデクレメントして
「(PC)=4」とし、ステツプ2116の判断命令
による判断を受けて再びステツプ2102へ戻
る。以降同様にしてパラメータカウンタPCの内
容「(PC)=4〜1」で指定される楽音パラメー
タG〔CT〕〜G〔M2〕の各々に対応する演算パ
ラメータT・m〔CT〕〜T・m〔M2〕のデ
クレメント処理が実行される。そして、パラメー
タカウンタPCの内容が「(PC)=0」となると、
ステツプ2116の判断命令による分岐によつて
プログラムの実行はステツプ2116からステツ
プ2117へ移行し、ここにおいてパラメータ変
換指示フラグレジスタCFGrの内容が「(CFGr)
=1」か、あるいは「(CFGr)=0」かを判断す
る。ところが、これ以前のステツプにおいてはパ
ラメータカウンタPCの内容で指定されるTエリ
アの内容(T)〔CA〕〜(T)〔M2〕のデクレメ
ント処理のみしか実行されず、楽音パラメータG
〔CA〕〜G〔M2〕の演算は何ら実行されていない
ため、(ステツプ2104を通過していないた
め)、パラメータ変換指示フラグレジスタCFGr
の内容は「(CFGr)=0」となつている。このた
めプログラムの実行はステツプ2117からステ
ツプ2119へ移行し、ここにおいて振幅値に関
係する当該第16チヤンネルの楽音パラメータG
〔M1〕およびG〔M2〕のみを第3プロセツサ部30
0に対して送出する処理を行う。そして、この
後、ステツプ2120においてチヤンネルカウン
タCCの内容をデクレメントして「(CC=15」と
し、第15チヤンネルの各種パラメータの算出処理
に移行する。 以上のことから明らかなように、チヤンネルカ
ウンタCCの内容が1巡するたびに同一チヤンネ
ルに関する新たな時刻における各種パラメータの
時分割算出処理が行なわれるわけであるが、各楽
音パラメータG〔CA〕〜G〔M2〕に対応するT
エリアの内容(T)〔CA〕〜(T)〔M2〕が正の
値を示していれば、ピツチに関係する演算は何等
実行されず、前回の時刻において算出した振幅値
に関係する楽音パラメータG〔M1〕およびG
〔M2〕のみが第3プロセツサ部300に対して送
出される。このことを換言すれば、振幅値に関係
する楽音パラメータG〔M1〕およびG〔M2〕は前
回時刻におけるものと現在時刻におけるものとで
変化がなくてもチヤンネルカウンタCCの内容が
1巡するたびに毎回第3プロセツサ部300に対
して送出されることを意味し、ピツチに関係する
楽音パラメータG〔CA〕〜G〔Pi〕はこれに対
応する演算パラメータTm〔CA〕〜Tm〔Pi〕が
ステツプ2114のデクレメント処理によつてデ
クレメントされ、その値が「0」となつたときは
じめて所定の演算処理(アタツク部計算ルーチン
などによる演算処理)が実行され、これによつて
前回時刻におけるVALUE値と今回時刻における
VALUE値とに変化があつた場合にのみ第3プロ
セツサ部300に対して送出されることを意味す
る。 (アタツク部計算ルーチン) 次に、一定時間後においてチヤンネルカウンタ
CCの内容が一巡して「(CC)=16」となり、かつ
第16チヤンネルの楽音パラメータG〔CA〕〜G
〔M2〕に対応するTエリアの内容(T)〔CA〕〜
(T)〔M2〕の値が全て「0」になつたものとする
と、プログラムの実行はステツプ2101→ステ
ツプ2102→ステツプ2103→ステツプ21
04→ステツプ2105→ステツプ2106へと
移行する。そして、ステツプ2106においてパ
ラメータカウンタPCの内容で指定されたJAエリ
アの内容を読み出すと、その内容は「B」となつ
ている(イニシヤルルーチンのステツプ2141
参照)。このため、プログラムの実行はステツプ
2106からステツプ2110のアタツク部計算
ルーチンに移行し、ここにおいてパラメータカウ
ンタPCの内容で指定された楽音パラメータのア
タツク部に関する演算を行う。 なお、各楽音パラメータG〔CA〕〜G〔M2
に対応するTエリアの内容(T)〔CA〕〜(T)
〔M2〕が「0」になる時点は、演算パラメータ
T・m〔CA〕〜T・m〔M2〕の値によつて
それぞれ異なるものであり、このアタツク部計算
ルーチンはTエリアの内容が「0」となつた楽音
パラメータに対してのみ行なわれることになる。
しかし以下では説明の便宜上、上記(T)〔CA〕
〜(T)〔M2〕が同時に「0」になつたものとし
て説明する。 第23図はアタツク部計算ルーチンおよびデイ
ケイ部計算ルーチンならびにサステイン部計算ル
ーチンの詳細フローチヤートを示す図であつて、
この例ではアタツク部計算ルーチンおよびデイケ
イ部計算ルーチンとが共用されるようになつてお
り、「(JA)=B」あるいは「(JA)=C」のとき
第23図に示すこのアタツク部およびデイケイ部
計算ルーチンが実行される。 従つて、第20図のパラメータ計算ルーチンの
ステツプ2016において「(JA)=B」という
判断結果が得られると、プログラムの実行は第2
3図のアタツク部およびデイケイ部計算ルーチン
に移行する。そして、まずパラメータカウンタ
PCの内容「(PC)=6」で指定されたnエリアの
内容(n)〔CA〕がパラメータ計算用レジスタ
PRG16から読み出され、このnエリアの内容
(n)〔CA〕の値が「(n)〔CA〕>0」か、ある
いは「(n)〔CA〕=0」かが判断される。 (n)〔CA〕の値が「(n)〔CA〕>0」なら
ば、増減値に関する演算パラメータΔ・m
〔CA〕の加算回数が演算パラメータn・m
〔CA〕で指定される回数に達していないものと
し、すなわち楽音パラメータG〔CA〕のアタツ
ク部に関するVALUE値が最終目標値「n・m
×Δ・m」に達していないものとし、次のステ
ツプ2161においてnエリアの内容(n)
〔CA〕をデクレメントし、この後ステツプ216
2において楽音パラメータG〔CA〕のVALUE
値と演算パラメータΔ・m〔CA〕とを加算
し、この加算値〔VALUE+Δ・m〔CA〕」を
再びパラメータ計算用レジスタPRG16に楽音パラ
メータG〔CA〕に関するVALUE値として格納
しておく。 そして、次のステツプ2163において演算周
期に関する演算パラメータT・m〔CA〕をパ
ラメータ計算用レジスタPRG16の単位ワードのう
ち「(PC)=6」で指定される単位ワードのTエ
リアに再セツトする。この演算パラメータT・
m〔CA〕は前述したように、音色ナンバデータ
TCNとパラメータカウンタPCの内容「(PC)=
6」およびサブパラメータカウンタSPCの内容
「(SPC)=2」によつてTCT210から読み出さ
れるものである。 演算周期に関する演算パラメータT・m
〔CA〕の再セツト処理が終了すると、プログラム
の実行はステツプ2164へ移行し、ここにおい
てパラメータ計算用レジスタPRG16のG〔CA〕
に関するVALUE値に対しさらにモジユレーシヨ
ンデータMDs〔CA〕が加算され、その加算値
「VALUE+MDs〔CA〕」がテンポラリパラメー
タメモリTPM16のパラメータカウンタPCの内容
「(PC)=6」で指定される単位ワードにおける
VALUE値として格納される。従つて、この時点
における演算パラメータG〔CA〕のVALUE値
は演算パラメータΔ・m〔CA〕の加算回数が
1回だけであるため、次の第47式で表わされる。 G〔CA〕のVALUE値={Zm〔CA〕+Zs
〔CA〕+Zm〔BL〕}+Δ・m〔CA〕
+MDs〔CA〕 ……(47) この後、プログラムの実行は第20図のパラメ
ータ計算ルーチンへ戻り、ステツプ2115にお
いてパラメータカウンタPCの内容をデクレメン
トして「(PC)=5」とし、この後ステツプ21
16の判断命令の分岐によりステツプ2101へ
戻り、今度はパラメータカウンタPCの内容
「(PC)=5」で指定される楽音パラメータG
〔LA〕に関する演算を行う。すなわち、パラメー
タカウンタPCの内容が「(PC)=5」となると、
楽音パラメータG〔LA〕に対応するTエリアの
内容(T)〔LA〕が「0」になつていることを条
件にプログラムの実行はステツプ2102→ステ
ツプ2103→ステツプ2104→ステツプ21
05→ステツプ2106→ステツプ2110とい
う具合に移行し再びアタツク部計算ルーチンに入
り、ここにおいてパラメータカウンタPCの内容
「(PC)=5」で指定される楽音パラメータG
〔LA〕のアタツク部に関する演算を楽音パラメー
タG〔CA〕の演算と同様に行う。この結果、テ
ンポラリパラメータメモリTPM16のパラメータ
カウンタPCの内容「(PC)=5」で指定される単
位ワードには次の第48式で示される楽音パラメー
タG〔LA〕のアタツク部に関するVALUE値が
格納される。 G〔LA〕のVALUE値={Zm〔LA〕+Zs
〔LA〕+Zm〔BL〕}+Δ・m〔LA〕
+MDs〔LA〕 ……(48) このようにしてパラメータカウンタPCの内容
「(PC)=5」で指定される楽音パラメータG
〔LA〕のアタツク部に属する第1回目の演算処理
が終了すると、プログラムの実行は第20図のパ
ラメータ計算ルーチンへ戻り、ステツプ2115
においてパラメータカウンタPCの内容をデクレ
メントして「(PC)=4」とし、今度はパラメー
タカウンタPCの内容「(PC)=4」で指定される
楽音パラメータG〔CT〕のアタツク部分に関す
る演算を前述の「(PC)=5」の場合と同様に行
う。そして、これ以降においても、パラメータカ
ウンタPCの内容を「(PC)=4」→「(PC)=
3」,「(PC)=3」→「(PC)=2」,「(PC)=
2」→「(PC)=1」という具合に順次変化さ
せ、これに対応する楽音パラメータG〔Pi〕,G
〔M1〕,G〔M2〕のアタツク部に関する演算を前述
の場合と同様に実行する。 そして、当該第16チヤンネルにおける全ての楽
音パラメータG〔CA〕〜G〔M2〕のアタツク部
に関する第1回目の演算が終了し、パラメータカ
ウンタPCの内容がステツプ2115(第20
図)のデクレメント命令により「(PC)=0」と
なると、プログラムの実行はステツプ2116→
ステツプ2117→ステツプ2118へ移行しス
テツプ2118において周波数パラメータR1
よびR2を算出すると共に、この算出した周波数
パラメータR1およびR2ならびに楽音パラメータ
G〔CA〕およびG〔LA〕の転送処理を行う。こ
の後、次のステツプ2119においてアタツク部
に関する第1回目の演算処理によつて得られた楽
音パラメータG〔M1〕およびG〔M2〕の転送処理
を行う。 以上のような処理によつて楽音パラメータG
〔CA〕〜G〔M2〕のアタツク部に関する第1回目
の演算処理は全く終了するわけであるが、今度は
第15チヤンネルに関する演算を実行するため次の
ステツプ2120においてチヤンネルカウンタ
CCの内容をデクレメントして「(CC)=15」とす
る。この場合、第15チヤンネルから第1チヤンネ
ルにおいて押下鍵の割当てがないとすれば、プロ
グラムの実行はステツプ2121→ステツプ21
01→ステツプ2102→ステツプ2120→ス
テツプ2121の繰り返しとなり、その後におい
て第1チヤンネルに関する処理が終了した段階で
チヤンネルカウンタCCの内容が「(CC)=0」と
なると、ステツプ2121の判断命令「(CC)=
0?」の分岐により第17図のメインルーチンへ
戻る。 そして、全チヤンネルに関するチヤンネル割当
ておよび各種パラメータの算出処理に要した時間
が一定時間に達していなければ、タイマ270か
らタイマフラグ信号TFGが出力されるまでプロ
グラムの実行は待機状態となる。その際、タイマ
270からタイマフラグ信号TFGが出力される
と、プログラムの実行はメインルーチンにおける
ステツプ2005→ステツプ2001→ステツプ
2003の経路により再びパラメータ計算ルーチ
ンに移行する。そして、このパラメータ計算ルー
チン(第20図)において新たな時刻における第
16チヤンネルの各種パラメータの算出処理を行
う。この場合パラメータ計算用レジスタPRG16
楽音パラメータG〔CA〕〜G〔M2〕に対応する
Tエリアの内容(T)〔CA〕〜T〔M2〕が
[Table] This is the other musical tone parameters G [LA] ~ G
The same is true for [Pi], but predetermined calculations are also performed in the release section calculation routine for musical tone parameters G[M 1 ] and G[M 2 ]. When the processing in step 2101 is completed, in subsequent steps, the calculation processing of the various parameters for the channel specified by the contents of the channel counter CC is executed in order from G[CA] to G[M 2 ]. In other words, when "(PC)=6" is loaded as an initial value to the parameter counter PC in step 2101, the program execution starts at the next step 2.
102, where the parameter calculation register corresponding to the 16th channel specified by the content of the channel counter CC "(CC) = 16" is entered.
The contents (T) [CA] of the T area corresponding to the musical tone parameter G [CA] specified by the contents of the parameter counter PC from PRG 16 are read out, and the contents (T) [CA] are changed to "(T) [CA]. ]=0” or “(T)[CA]>0” or “(T)[CA]<
0". If the result of this judgment process is "(T)[CA]=0", the program execution moves from step 2102 to step 2103, and in the subsequent steps, the JA area corresponding to the musical tone parameter G[CA] is Execute the calculation routine specified by the contents of . The judgment processing result in step 2102 is “Tm
[CA] > 0”, musical tone parameter G [CA]
It is assumed that the calculation cycle to which the increase/decrease value Δm [CA] of .
Decrement [CA]. On the other hand, if the determination processing result in step 2102 is "(T)[CA]<0", the channel is determined to be a blank channel, and the program execution moves from step 2102 to step 2120, where the channel counter CC is decrements the contents of , and then branches to step 2121 with the judgment instruction "(CC) = 0?"
Returning to step 101, calculation of each tone parameter G[CA] to G[[ M2 ] in the new channel is executed. Now, assuming that a new pressed key belonging to the upper keyboard UK is assigned to the 16th channel using the channel assignment flow described above, each tone parameter G in this 16th channel is
The calculation process of [CA] to G[M 2 ] is performed as follows. In this case, the content (T) [CA] of the T area of the unit word specified by the content of the parameter counter PC of the 16th channel "(PC) = 6" is
Cleared in the PRG onset routine. Therefore, the judgment processing result in step 2102 is "(T) [CA] = 0", and the program execution moves to step 2103, where the content of the parameter counter PC is "(PC) ≧
3". If the content of the program counter PC is “(PC)≧3”, the musical tone parameter G[CA] related to the pitch of the generated musical tone,
Since we are trying to calculate G[LA], G[CT], and G[Pi], we will use the parameter conversion routine (musical tone parameters G[CA] to G[Pi], which will be described later).
In the next step 2104, "1" is loaded into the parameter conversion instruction flag register CFGr in order to instruct that the processing of the routine for creating frequency parameters R 1 and R 2 based on the frequency parameters R 1 and R 2 is executed. Conversely, if the content of the parameter counter PC is "(PC) <3", the musical tone parameters G[M 1 ], which are related to the amplitude value of the generated musical tone, are
Since we are trying to calculate G[M 2 ], the program execution moves directly from step 2103 to step 2105. After this, the judgment commands in steps 2105 to 2108 are "(JA)=A?", "(JA)=B?", "(JA)=
E? ", "(JA) = D?", "(PC) = among the unit words of parameter calculation register PRG 16 .
It is determined whether the contents of the JA area in the unit word specified by "6" are among (JA)=A to (JA)=D. As mentioned above, the contents of the JA area (JA) are information that specifies the calculation routine to be executed next, such as the attack part calculation routine and decay part calculation routine for each tone parameter G[CA] to G[ M2 ]. However, the contents of the JA area of the parameter calculation register PRG 16 corresponding to the tone parameter G [CA] are "A", which was loaded in the PRG onset routine described above. Therefore, the program execution starts from step 2105 to step 21.
The process moves to the initial routine of 09. In the initial routine of step 2109, the contents of the parameter counter PC “(PC)=
In this initial routine, the contents of the parameter counter PC are set to (PC). Initial setting of calculation parameters for calculating the "VALUE value" regarding the attack portion of other tone parameters G[LA] to G[M 2 ] is also performed. (Initial Routine) The detailed flowchart of the initial routine is shown in FIG. When the program execution moves to step 2130 of the initial routine shown in FIG. 21, first, in step 2130, the tone number data regarding the pressed key assigned to the 16th channel is retrieved from the registration register RGNr (Table 23).
TCN is the parameter calculation register PGR. Among the 16 unit words, the TCT of the unit word specified by the content of the parameter counter PC "(PC) = 6".
Load into ADR area. Then, in the next step 2131, the tone number data TCN loaded into the TCT/ADR area, the content of the parameter counter PC "(PC)=6", and the content of the subparameter counter SPC "(SPC)=2" are used. Addresses TCT210, reads out calculation parameter T・m [CA] for attack part calculation of musical tone parameter G [CA] corresponding to tone number data TCN from TCT210, and uses this calculation parameter T・m [CA] for parameter calculation. register
Load into the T area of the unit word specified by "(PC) = 6" among the unit words of PRG 16 . In other words, the calculation parameter T・m regarding the calculation cycle for the attack part calculation of the musical tone parameter G [CA]
Initialize [CA]. Next, in step 2132, the tone number data TCN loaded into the TCT/ADR area of the parameter calculation register PRG 16 , the content of the parameter counter PC "(PC)=6", and the content of the subparameter counter SPC "(SPC ) = 0'', the calculation parameter Zm [CA] regarding the initial value for the attack part calculation of the musical tone parameter G [CA] corresponding to the tone number data TCN is read from the TCT 210, and this calculation parameter Zm [ CA] among the unit words of parameter calculation register PRG 16 , “(PC)=
6" is loaded into the "VALUE" area of the unit word specified. In other words, this step 2132
In this step, an initial value for attack portion calculation of musical tone parameter G [CA] is set. Next, in step 2133, the initial touch data Zs[corresponding to the musical tone parameter G[CA] among the initial touch data related to the pressed keys assigned to the 16th channel is retrieved from the initial data register ZD16 (Table 23). CA] is read out as the calculation parameter Zs [CA], and the calculation parameter Zs [CA] is stored in the "VALUE" area of the unit word specified by "(PC) = 6" of the parameter calculation register PRG 16 in step 2132. Loaded calculation parameter Zm
[CA] and this added value “Zm [CA] +
Zs [CA]” is loaded into the “VALUE” area of PRG 16 again. When this process is completed, the program execution moves to the next step 2134, where it is determined whether the content of the parameter counter PC is "(PC)≧3". This is the musical tone parameter G
When calculating [M 1 ], G [M 2 ], level data R by series in the registration data
This is to weight [Mi] as the initial value,
When "(PC)<3", the series-specific level data R[Mi] is weighted as an initial value in step 2135 (see equations 29 and 30 above). Contents of parameter counter PC is “(PC)≧3”
, the program execution starts at step 213.
4 to step 2136, where the TCT/TCT of the parameter calculation register PRG 16 is
Tone number data loaded into the ADR area
Contents of TCN and parameter counter PC “(PC)=
6" and the content of the sub-parameter counter SPC "(SPC) = 1" to address the TCT210, and from the TCT210, the indirect calculation parameter BL・ADRm[CA] of the musical tone parameter G[CA] corresponding to the tone number data TCN. This indirect calculation parameter BL・
Determine whether the content of ADRm[CA] is "0" or not. When "BL·ADRm[CA]=0", the balance within the keyboard may be flat as shown in Table 20 above, so the program execution moves to step 2139. However, “BL・
When “ADRm[CA]≠0”, “BL・ADRm
The next step 213 is to perform note scaling within the keyboard (relative to the initial value) based on the characteristic curve specified by [CA] (see Figure 15).
In 7, the indirect calculation parameter BL・
The sum of ADRm [CA] and the key code KC of the pressed key assigned to the 16th channel is "BL.
ADRm [CA] + KC" to address the NST 220, read out from the NST 220 the calculation parameter BL [CA] for note scaling for the initial value of the musical tone parameter G [CA], and load this into the A accumulator AccA. Next, in step 2138, the contents of the A accumulator AccA and the contents of the "VALUE" area in the unit word specified by "(PC) = 6" of the parameter calculation register PRG 16 are added, and this added value is Load it into the "VALUE" area again. Therefore, the contents of the "VALUE" area up to this stage, ie, the VALUE value of musical tone parameter G[CA], are as follows. (i) When BL・ADRm=0, VALUE value of G[CA]=Zm[CA]+Zs
[CA] ...(45) (ii) When BL・ADRm≠, VALUE value of G [CA] = Zm [CA] + Zs
[CA] + Zm [BL] ... (46) Next, in the n・Δ set routine of step 2140, the calculation parameter n・m [CA] and the calculation parameter T regarding the number of calculations in the attack part of the musical tone parameter G [CA] are set.・m
Increase/decrease value Δ・m for each calculation cycle specified by [CA]
Perform initial settings for [CA]. A detailed flowchart of this n·Δ set routine is shown in FIG. In FIG. 22, when the program execution moves to this n・Δ set routine, first 215
0, n table address information for reading out the calculation parameter n·m [CA] from the n table 240 is obtained. This n table address information is stored in parameter calculation register PRG 16 “(PC)
TCT・in the unit word corresponding to “=6”
Tone number data stored in the ADR area
Contents of TCN and parameter counter PC “(PC)=
6” and the contents of the sub-parameter counter SPC “(SPC)=3” to address the TCT210 and read out the indirect calculation parameter n.
It is created by adding ADR・Lm and the key code KC stored in the key code table KCT 16 . Then, the n table address information created in this way “n・ADR・m+
KC'' to address the n table 240 and read out the calculation parameter n·m [CA] corresponding to the tone number TCN and key code KC. Then, in the next step 2151, the calculation parameter n·read out from the n table 240 is
m [CA] to parameter calculation register PRG 16
is loaded into the n area in the unit word corresponding to "(PC)=6". These two steps 21
50 and 2151 calculate the calculation parameter n・m
The initial setting of [CA] is completed, and then step 215
2 and 2153, the calculation parameter Δ・m
Initial settings for [CA] are performed. In other words, in step 2152, the Δ
Table address information is created. This Δ table address information is stored in the parameter calculation register as in the case of creating n table address information.
Tone number data TCN stored in the TCT/ADR area in the unit word corresponding to "(PC)=6" of PRG 16 , contents of parameter counter PC "(PC)=6" and sub-parameter counter
TCT210 by SPC content “(SPC)=4”
It is created by adding the indirect calculation parameter Δ・ADR・m read out by addressing , and the key code KC stored in the key code table KCT 16 . Then, the Δ table address information created in this way “Δ・
Address the Δ table 230 with "ADR・m+KC" and read out the calculation parameter Δ・m [CA] corresponding to the tone number TCN and key code KC.
Then, in the next step 2153, the calculation parameter Δ·m read from the Δ table 230
[CA] is the Δ in the unit word corresponding to “(PC)=16” in parameter calculation register PRG 16 .
Load into area. As a result, the processing of the n/Δ set routine is completed, and the program execution returns to the initial routine in FIG . The contents of the JA area in the specified unit word are "A"
to "B". This means that the initial setting process for calculating the musical tone parameter G [CA] has been completed, and that the next step should be to move on to the attack part calculation process. Next, program execution moves to step 2142, where it is determined whether the content of the parameter counter PC is "(PC)=1". If "(PC) = 1", it is assumed that the initial routine processing of the musical tone parameters G [CA] to G [M 2 ] of the 16th channel has been completed, and the program execution proceeds to the parameter calculation routine shown in Figure 20. return. However, if "(PC)≠1", musical tone parameters G[CA] to G[M 2 ] regarding the 16th channel
The process proceeds to step 2143 assuming that the initial routine processing has not yet been completed.
At step 143, the contents of the parameter counter PC are decremented to "(PC)=5". After this, the program is executed at step 2130.
Returning to the parameter counter PC, the updated content “(PC) = 5” allows the tone parameter G
Performs initial routine processing for [LA]. The content of parameter counter PC is "(PC) = 5"
The initial routine processing of the musical tone parameters G[LA] to G[M 2 ] in the case of ~ "(PC) = 1" is the same as the initial routine processing of the musical tone parameter G[CA], so the explanation thereof will be omitted. do. When the initial routine processing of each tone parameter G[CA] to G[ M2 ] in the 16th channel is completed in this way, the program execution moves to step 2115 in FIG. 20, where the parameter counter PC is Decrement the contents. Next, the content of the parameter counter PC decremented in step 2116 is determined, and if "(PC)>0", the tone parameters G[CA] to G of the channel at the current time are determined.
It is assumed that the time-division calculation process of [M 2 ] has not been completed, and the program execution returns from step 2116 to step 2102, where a new parameter counter PC is
The corresponding tone parameters are calculated based on the contents of . But the decremented parameter counter
If the content of the PC is "(PC) = 0", the musical tone parameter G of the channel at the current time
It is assumed that all the time-sharing calculation processes from [CA] to G[M 2 ] have been completed, and the program execution continues at step 211.
6 to step 2117, where the contents of the parameter conversion instruction flag register CFGr are determined. In this case, the content of the parameter counter PC when the initial routine processing regarding the newly pressed key is completed is "(PC) = 1", and this is changed to "(PC) = 0" by the decrement instruction in step 2115. becomes. Therefore, when the initial routine processing is completed, the program execution proceeds from step 2115 to step 2116.
→Proceed to step 2117. Also, at the start of parameter calculation for a new pressed key, "1" is set in the parameter conversion instruction flag register CFGr.
The parameter conversion instruction flag CFG is loaded. Therefore, the execution of the program moves from step 2117 to the parameter conversion routine of step 2118, where the musical tone parameter G initialized in the above-mentioned initial routine is changed.
Among [CA] to G[M 2 ], G[CA], G[CT], G
Frequency parameters R 1 , R 2 are calculated based on [Pi], registration pitch data R [Pi] and registration foot data R [Fe] corresponding to the pressed key assigned to the 16th channel.
are calculated, and the calculated frequency parameters R 1 , R 2 and musical tone parameters G [CA],
G[LA] is sent to the third processor section 300. Thereafter, in the next step 2119, musical tone parameters G[M 1 ] and G[M 2 ] calculated in the initial routine are sent to the third processor section 300. The above program completes the initial setting process regarding the new pressed key assigned to the 16th channel. Therefore, in order to calculate the tone parameters G[CA] to G[M 2 ] regarding the 15th channel from now on, in the next step 2120, the contents of the channel counter CC are decremented to "(CC) = 15". . And next step 21
When the content of the channel counter CC is determined to be "(CC)>0" by the judgment instruction "(CC)=0?" in step 21, the program execution proceeds to step 212.
1 returns to step 2101, and calculation processing of musical tone parameters G[CA] to G[M 2 ] regarding the 15th channel is performed. For convenience of explanation, it is assumed that only the 16th channel is assigned the key to be pressed. When the content of the channel counter CC becomes "(CC) = 15", the program is executed in step 210.
After initializing the parameter counter PC and clearing the parameter conversion instruction flag register CFGr in step 1, the process moves to step 2102, where the parameter calculation register is cleared.
The contents of the T area in the unit word specified by "(PC)=6" in PRG 15 is "(T)[CA]=0" or "(T)[CA]>
0” or “(T)[CA]<0”. For channels that have no assigned keys, the contents of the T area (T) [CA] will be "(T)
[CA]<0”. Therefore, the program execution is from step 2102 to step 2120.
and here channel counter CC
Decrement the content of and make it "(CC) = 14". This is the same flow from the 14th channel to the 1st channel, and if the content of the channel counter CC becomes "(CC) = 0" after the processing related to the 1st channel is completed, the judgment in step 2121 is made. Command “(CC)=
0? ”, the program execution returns to the main routine of FIG. 17. If the time required to allocate channels and calculate various parameters for all channels does not reach a certain time,
Execution of the program is in a standby state until the timer flag signal TFG is output from the timer 270.
After that, the timer flag signal from the timer 270
When the TFG is output, the program execution starts at step 200 in the main routine (Figure 17).
5→Step 2001→Step 2003 to proceed to the parameter calculation routine again.
Then, various parameters of the 16th channel at the new time are calculated. In this way, the content of channel counter CC is 1.
Each time a cycle is made, time-division calculation processing of various parameters at a new time for the same channel is performed, but the parameter calculation register
In the T area of each unit word specified by "(PC)=6" to "(PC)=1" of PRG 16 , the calculation parameter T・ related to the calculation period which shows a positive value by the initial routine processing is stored. m [CA] ~
T·m [M 2 ] is stored. Therefore, immediately after the initial routine processing is completed, only the decrement processing of the calculation parameters T.m[CA] to T.m[ M.sub.3 ] in step 2114 is executed. In other words, the execution of the program moves from step 2101 to step 2.
The process moves to step 102, where the content of the T area in the unit word of the parameter calculation register PRG 16 specified by the content of the parameter counter PC "(PC) = 6" is judged. T) [CA]" is "(T) [CA] >0", so the program is executed at step 2102.
Then, the process moves to step 2114. Then, by the decrement command in step 2114, T.m
The value of [CA] is decremented. When this process is completed, the program execution proceeds to step 2115.
and here the parameter counter PC
decrements the contents of ``(PC)=5'' and returns to step 2102 again after receiving the judgment based on the judgment command in step 2116. Then, this time, the contents of the updated parameter counter PC “(PC)=
5", the inside of the T area corresponding to the musical tone parameter G [LA] is read out, and the content (T) [LA] of the read T area is judged in step 2.
102. However, musical tone parameter G
In the T area corresponding to [LA], the calculation parameter T.
Since m [LA] is memorized, step 2
The judgment processing result by 102 is “(T) [LA] > 0”
Therefore, the program execution moves from step 2102 to step 2114, where the calculation parameter T・m [CA] is decremented, and then in the next step 2115, the contents of the parameter counter PC are decremented and "(PC )=4'', and the process returns to step 2102 again after receiving the judgment based on the judgment command in step 2116. Thereafter, in the same way, the calculation parameters T・m[CT] to T・corresponding to each of the musical tone parameters G[CT] to G[M 2 ] specified by the contents of the parameter counter PC "(PC)=4 to 1" are calculated. Decrement processing of m [M 2 ] is executed. Then, when the content of the parameter counter PC becomes "(PC) = 0",
The execution of the program moves from step 2116 to step 2117 due to the branch caused by the judgment instruction in step 2116, where the content of the parameter conversion instruction flag register CFGr is changed to "(CFGr)".
= 1" or "(CFGr) = 0". However, in the steps before this, only the decrement processing of the contents of the T area (T) [CA] to (T) [M 2 ] specified by the contents of the parameter counter PC is executed, and the tone parameter G
Since no calculations from [CA] to G[M 2 ] have been executed (step 2104 has not been passed), the parameter conversion instruction flag register CFGr
The content of is "(CFGr)=0". Therefore, the execution of the program moves from step 2117 to step 2119, where the musical tone parameter G of the 16th channel related to the amplitude value is selected.
Only [M 1 ] and G [M 2 ] are processed by the third processor section 30.
Perform processing to send to 0. After this, in step 2120, the contents of the channel counter CC are decremented to "(CC=15"), and the process moves on to calculation processing of various parameters of the 15th channel. Each time the contents of CC go through one round, time-division calculation processing of various parameters at a new time regarding the same channel is performed.
If the contents of the area (T) [CA] to (T) [M 2 ] indicate positive values, no calculations related to pitch will be performed, and the musical tone related to the amplitude value calculated at the previous time will not be executed. Parameters G [M 1 ] and G
Only [M 2 ] is sent to the third processor section 300. In other words, even if the musical tone parameters G [M 1 ] and G [M 2 ] related to the amplitude value do not change between the previous time and the current time, the contents of the channel counter CC will change once. This means that musical tone parameters G[CA] to G[Pi] related to pitch are sent to the third processor unit 300 each time ] is decremented by the decrement process in step 2114, and only when the value becomes "0" is a predetermined calculation process (calculation process by an attack part calculation routine, etc.) executed, and thereby the previous time is VALUE value at and at this time
This means that the data is sent to the third processor section 300 only when there is a change in the VALUE value. (Attack section calculation routine) Next, after a certain period of time, the channel counter
The contents of CC have gone through a cycle and become "(CC) = 16", and the tone parameters of the 16th channel G [CA] ~ G
Contents of T area corresponding to [M 2 ] (T) [CA] ~
(T) Assuming that all the values of [M 2 ] have become "0", the program execution is as follows: Step 2101 → Step 2102 → Step 2103 → Step 21
04→Step 2105→Step 2106. Then, when the contents of the JA area specified by the contents of the parameter counter PC are read out in step 2106, the contents are "B" (step 2141 of the initial routine).
reference). Therefore, the execution of the program moves from step 2106 to an attack section calculation routine at step 2110, where calculations are performed regarding the attack section of the tone parameter specified by the contents of the parameter counter PC. In addition, each musical tone parameter G [CA] ~ G [M 2 ]
Contents of T area corresponding to (T) [CA] ~ (T)
The point at which [M 2 ] becomes "0" differs depending on the values of calculation parameters T・m [CA] to T・m [M 2 ], and this attack part calculation routine is based on the contents of the T area. This is performed only for musical tone parameters for which the value is "0".
However, below, for convenience of explanation, the above (T) [CA]
The explanation will be made assuming that ~(T) [M 2 ] become "0" at the same time. FIG. 23 is a diagram showing a detailed flowchart of an attack part calculation routine, a decay part calculation routine, and a sustain part calculation routine,
In this example, the attack part calculation routine and the decay part calculation routine are shared, and when "(JA)=B" or "(JA)=C", the attack part and decay part calculation routine shown in FIG. A partial calculation routine is executed. Therefore, if the judgment result "(JA)=B" is obtained in step 2016 of the parameter calculation routine in FIG.
The process moves to the attack part and decay part calculation routine shown in FIG. And first, the parameter counter
The content (n) [CA] of the n area specified by the PC content “(PC) = 6” is the register for parameter calculation.
It is read from PRG 16 , and it is determined whether the value of the content (n)[CA] of this n area is "(n)[CA]>0" or "(n)[CA]=0". If the value of (n) [CA] is “(n) [CA] > 0”, the calculation parameter Δ・m regarding the increase/decrease value
The number of additions of [CA] is the calculation parameter n・m
It is assumed that the number of times specified by [CA] has not been reached, that is, the VALUE value regarding the attack part of musical tone parameter G [CA] has reached the final target value "n m
×Δ・m” has not been reached, and in the next step 2161, the contents of area n (n) are
Decrement [CA] and then proceed to step 216.
In 2, the VALUE of musical tone parameter G [CA]
The value and the calculation parameter Δ·m [CA] are added, and this added value [VALUE+Δ·m [CA]” is stored again in the parameter calculation register PRG 16 as the VALUE value regarding the musical tone parameter G [CA]. Then, in the next step 2163, the calculation parameter T·m [CA] regarding the calculation cycle is reset to the T area of the unit word specified by "(PC)=6" among the unit words of the parameter calculation register PRG 16 . . This calculation parameter T・
m [CA] is the tone number data as mentioned above.
Contents of TCN and parameter counter PC “(PC)=
6” and the content of the sub-parameter counter SPC “(SPC)=2” is read from the TCT 210. Calculation parameter T・m regarding calculation cycle
When the [CA] reset process is completed, the program execution moves to step 2164, where G[CA] of the parameter calculation register PRG 16 is reset.
Modulation data MDs [CA] is further added to the VALUE value for in the unit word
Stored as a VALUE value. Therefore, since the calculation parameter Δ·m[CA] is added only once, the VALUE value of the calculation parameter G[CA] at this point is expressed by the following equation 47. VALUE value of G [CA] = {Zm [CA] + Zs
[CA]+Zm[BL]}+Δ・m[CA]
+MDs [CA] ... (47) After this, the program execution returns to the parameter calculation routine shown in Fig. 20, and in step 2115, the contents of the parameter counter PC are decremented to "(PC) = 5", and after this, Step 21
16, the process returns to step 2101, and this time the musical tone parameter G specified by the content of the parameter counter PC "(PC)=5" is returned.
Perform calculations regarding [LA]. In other words, when the content of the parameter counter PC becomes "(PC) = 5",
On the condition that the content of the T area (T) [LA] corresponding to the musical tone parameter G [LA] is "0", the program is executed as follows: Step 2102 → Step 2103 → Step 2104 → Step 21
05→Step 2106→Step 2110, and enters the attack section calculation routine again, where the musical tone parameter G specified by the content of the parameter counter PC "(PC)=5" is entered.
The calculation regarding the attack part of [LA] is performed in the same way as the calculation of musical tone parameter G [CA]. As a result, the unit word specified by the content "(PC) = 5" of the parameter counter PC in the temporary parameter memory TPM 16 has the VALUE value related to the attack part of the musical tone parameter G [LA] shown by the following equation 48. Stored. VALUE value of G [LA] = {Zm [LA] + Zs
[LA]+Zm[BL]}+Δ・m[LA]
+MDs [LA] ... (48) In this way, the musical tone parameter G specified by the content of the parameter counter PC "(PC) = 5"
When the first calculation process belonging to the attack part of [LA] is completed, the program execution returns to the parameter calculation routine shown in FIG. 20, and proceeds to step 2115.
decrement the contents of the parameter counter PC to "(PC) = 4", and then calculate the attack part of the musical tone parameter G [CT] specified by the contents of the parameter counter PC "(PC) = 4". This is done in the same way as in the case of "(PC)=5" described above. From now on, the contents of the parameter counter PC will be changed from "(PC)=4" to "(PC)=
3”, “(PC)=3” → “(PC)=2”, “(PC)=
2" → "(PC) = 1", and the corresponding musical tone parameters G [Pi], G
The calculations regarding the attack portions of [M 1 ] and G[M 2 ] are performed in the same manner as in the previous case. Then, the first calculation regarding the attack part of all tone parameters G[CA] to G[M 2 ] in the 16th channel is completed, and the contents of the parameter counter PC are changed to step 2115 (the 20th
When “(PC)=0” is obtained by the decrement instruction shown in the figure), the program execution starts at step 2116→
The process moves from step 2117 to step 2118, and in step 2118, frequency parameters R 1 and R 2 are calculated, and the calculated frequency parameters R 1 and R 2 and musical tone parameters G [CA] and G [LA] are transferred. . Thereafter, in the next step 2119, the musical tone parameters G[M 1 ] and G[M 2 ] obtained by the first calculation process regarding the attack section are transferred. Through the above processing, the musical tone parameter G
The first calculation process regarding the attack part of [CA] to G[M 2 ] is completely completed, but in order to execute the calculation regarding the 15th channel, the channel counter is started in the next step 2120.
Decrement the contents of CC to make "(CC) = 15". In this case, if there are no keys to press from the 15th channel to the 1st channel, the program execution will proceed from step 2121 to step 21.
01→Step 2102→Step 2120→Step 2121 are repeated, and when the content of the channel counter CC becomes "(CC)=0" at the stage where the processing related to the first channel is completed, the judgment command "(CC)" of step 2121 is repeated. )=
0? '', the program returns to the main routine shown in FIG. If the time required to allocate channels and calculate various parameters for all channels has not reached a certain time, execution of the program will be in a standby state until the timer flag signal TFG is output from the timer 270. At this time, when the timer flag signal TFG is output from the timer 270, the execution of the program shifts to the parameter calculation routine again through the path of step 2005→step 2001→step 2003 in the main routine. Then, in this parameter calculation routine (Fig. 20), the
Performs calculation processing of various parameters for 16 channels. In this case, the contents of the T area (T) [CA] to T [M 2 ] corresponding to the musical tone parameters G [CA] to G [M 2 ] of the parameter calculation register PRG 16 are

〔0〕
であるときのみステツプ2110のアタツク部計
算ルーチンにおいて第2回目の演算が行なわれる
が、上記Tエリアの内容(T)〔CA〕〜(T)
〔M2〕が正の値を示している場合にはこれらの
(T)〔CA〕〜(T)〔M2〕の値がステツプ211
4のデクレメント命令によりデクレメントされる
のみである。 その後、このような処理が繰り返された結果、
ステツプ2110のアタツク部計算ルーチンによ
る楽音パラメータG〔CA〕〜G〔M2〕の演算処
理が演算パラメータn・m〔CA〕〜n・m
〔M2〕で示される回数だけ実行され、この後チヤ
ンネルカウンタCCの内容が一巡して「(CC)=
16」となり、かつ第16チヤンネルの楽音パラメー
タG〔CA〕〜G〔M2〕に対応するTエリアの内
容(T)〔CA〕〜(T)〔M2〕が「0」になつた
ものとすると、プログラムの実行はステツプ21
02→ステツプ2103→ステツプ2104→ス
テツプ2105→ステツプ2106→ステツプ2
110の経路により再びアタツク部計算ルーチン
へ移行する。 すると、今度はパラメータカウンタPCの内容
で指定される楽音パラメータG〔CA〕〜G
〔M2〕にそれぞれ対応するnエリアの内容(n)
〔CA〕〜(n)〔M2〕が「0」になつていること
を条件として、プログラムの実行はステツプ21
60の判断命令の分岐によりステツプ2165へ
移行する。 なお、楽音パラメータG〔CA〕〜G〔M2〕に
対応する各nエリアの内容(n)〔CA〕〜(n)
〔M2〕が「0」になる時点は演算パラメータn・
m〔CA〕〜n・m〔M2〕の値によつて各パ
ラメータ毎に異なるものであり、このアタツク部
計算ルーチンはnエリアの内容が「0」となつた
楽音パラメータに対してのみ行なわれることにな
る。しかし、以下では説明の便宜上、上記(n)
〔CA〕〜(n)〔M2〕が同時に「0」になつたも
のとして説明する。 プログラムの実行がステツプ2165へ移行す
ることは、楽音パラメータG〔CA〕〜G〔M2
のアタツク部に関する演算処理が演算パラメータ
n・m〔CA〕〜n・m〔M2〕によつて指定
される回数だけ実行されたことを意味し、次には
デイケイ部に関する演算処理に移行すべきである
ことを意味する。 従つて、プログラムの実行がステツプ2160
からステツプ2165へ移行すると、これ以降の
各ステツプにおいてデイケイ部に関する楽音パラ
メータG〔CA〕〜G〔M2〕を算出するための準
備処理が行なわれる。 つまり、ステツプ2165においてTCT21
0からデイケイ部の演算周期に関する演算パラメ
ータT・m〔CA〕を読み出し、これをパラメ
ータ計算用レジスタPRG16のG〔CA〕に対応す
る単位ワードのTエリアに格納する。この場合演
算パラメータT・m〔CA〕は、音色ナンバデ
ータTCNとパラメータカウンタPCの内容
「(PC)=6」およびサブパラメータカウンタSPC
の内容「(SPC)=5」(第19表参照)に基づき
TCT210をアドレスすることによつて読み出
される。 次に、ステツプ2166においてパラメータカ
ウンタPCの内容「(PC)=6」で指定されるパラ
メータ計算用レジスタPRG1(C)の単位ワードのJA
エリアの内容を読み出し、「(JA)=B」か、ある
いは「(JA)≠B」かを判断する。「(JA)=B」
ならばこれを次のステツプ2167において
「(JA)=C」と置換える。これは、次にはデイ
ケイ部に関する演算を実行すべきであることを示
している。また、「(JA)≠B」ならばこれを次
のステツプ2168において「(JA)=D」と置
換える。これは次にはサステイン部に関する演算
を実行すべきであることを示している。この場
合、「(JA)=D」と置換えるのはこの第23図の
プログラムがアタツク部とデイケイ部の演算に共
用されているからである。 一応ここではアタツク部に関する演算が終了し
たものとし、「(JA)=0」となつたものとする。 次にステツプ2169においてnテーブル24
0からデイケイ部に関する演算パラメータn・
m〔CA〕を読み出すためのnテーブルアドレス
情報を作る。このnテーブルアドレス情報は、音
色ナンバデータTCNとパラメータカウンタPCの
内容「(PC)=6」およびサブパラメータカウン
タSPCの内容「(SPC)=6」(第19表参照)によ
つてTCT210をアドレスして読み出したイン
ダイレクト演算パラメータn・ADR・m
(CA)と、キーコードテーブルKCT16に記憶され
ているキーコードKCとを加算することによつて
作られる。そして、このようにして作成したnテ
ーブルアドレス情報「n・ADR・m〔CA〕+
KC」でnテーブル240をアドレスし、音色ナ
ンバデータTCNとキーコードKCに対応した演算
パラメータn・m〔CA〕を読み出す。楽音パ
ラメータG〔LA〕〜G〔M2〕に対応する演算パ
ラメータn・m〔LA〕〜n・m〔M2〕も同
様にして読み出される。そして、次のステツプ2
170において、nテーブル240から読み出し
た演算パラメータn・m〔CA〕をパラメータ
計算用レジスタPRG16の「(PC)=6」に対応す
る単位ワードのnエリアにロードする。この2つ
のステツプ2169と2170によつて演算パラ
メータn・m〔CA〕の設定処理は終了し、次
にステツプ2171と2172によつて演算パラ
メータΔ・m〔CA〕の設定処理が実行され
る。つまり、ステツプ2171においてΔテーブ
ル230から演算パラメータΔ・m〔CA〕を
読み出すためのΔテーブルアドレス情報が作られ
る。このΔテーブルアドレス情報は、前述のnテ
ーブルアドレス情報を作成した場合と同様、音色
ナンバデータTCNとパラメータカウンタPCの内
容「(PC)=6」およびアブパラメータカウンタ
SPCの内容「(SPC)=7」によつてTCT210
をアドレスして読み出したインダイレクト演算パ
ラメータΔ・ADR・m〔CA〕と、キーコード
テーブルKCT16に記憶されているキーコードKC
とを加算することによつて作られる。そして、こ
のようにして作成したΔテーブルアドレス情報
「(Δ・ADR・m〔CA〕+KC」でΔテーブル2
30をアドレスし、音色ナンバデータTCNとキ
ーコードKCに対応した演算パラメータΔ・m
〔CA〕を読み出す。楽音パラメータG〔LA〕〜
G〔M2〕に対応する演算パラメータΔ・m
〔LA〕〜Δ・m〔M2〕も同様にして読み出され
る。そして、次のステツプ2172においてΔテ
ーブル230から読み出した演算パラメータΔ・
m〔CA〕をパラメータ計算用レジスタPRG16
の「(PC)=6」に対応する単位ワードのΔエリ
アに格納する。このような処理によつてデイケイ
部分に関する楽音パラメータG〔CA〕を算出す
るための準備処理は終了し、プログラムの実行は
第20図のパラメータ計算ルーチンへ戻り、ステ
ツプ2115のデクレメント命令によつてパラメ
ータカウンタPCの内容を更新して「(PC)=5」
とし、新たなパラメータカウンタPCの内容
「(PC)=5」で指定される楽音パラメータG
〔LA〕のデイケイ部に関する演算を行うための準
備処理を前述の「(PC)=6」の場合と同様に行
う。その後、「(PC)=5」〜「PC)=1」で指定
される楽音パラメータG〔CT〕〜G〔M2〕のデ
イケイ部に関する演算を実行するための準備処理
も同様にして行なわれる。 そして、当該第16チヤンネルにおける楽音パラ
メータG〔CA〕〜G〔M2〕のアタツク部に関す
る演算、そしてデイケイ部の演算を行うための準
備処理が終了し、パラメータカウンタPCの内容
がステツプ2115(第20図)のデクレメント
命令により「(PC)=0」となると、プログラム
の実行はステツプ2116→ステツプ2117→
ステツプ2118へ移行し、ステツプ2118に
おいてアタツク部における最後の周波数パラメー
タR1およびR2を算出すると共に、この算出した
周波数パラメータR1およびR2ならびに楽音パラ
メータG〔CA〕およびG〔LA〕の転送処理を行
う。この後、次のステツプ2119においてアタ
ツク部における最後の演算処理によつて得られた
楽音パラメータG〔M1〕およびG〔M2〕の転送処
理を行う。 以上のような処理によつて第16チヤンネルにお
けるアタツク部に関する処理は全て終了するわけ
であるが、今度は第15チヤンネルに関する演算を
実行するため、次のステツプ2120においてチ
ヤンネルカウンタCCの内容をデクレメントして
「(CC)=15」とする。この場合第15チヤンネルか
ら第1チヤンネルについては押下鍵の割当てがな
いとすれば、プログラムの実行はステツプ212
1→ステツプ2101→ステツプ2102→ステ
ツプ2120→ステツプ2121の繰り返しとな
り、その後において第1チヤンネルに関する処理
が終了した段階でチヤンネルカウンタCCの内容
が「(CC)=0」となると、ステツプ2121の
判断命令「(CC)=0?」の分岐により第17図
のメインルーチンへ戻る。そして、全チヤンネル
に関するチヤンネル割当ておよび各種パラメータ
の算出処理に要した時間が一定時間に達していな
ければ、タイマ270からタイマフラグ信号
TFGが出力されるまでプログラムの実行は待機
状態となる。その後、タイマ270からタイマフ
ラグ信号TFGが出力されると、プログラムの実
行はメインルーチンにおけるステツプ2005→
ステツプ2001→ステツプ2003の経路によ
り再びパラメータ計算ルーチンに移行する。そし
て、このパラメータ計算ルーチンにおいてデイケ
イ部に関する楽音パラメータG〔CA〕〜G
〔M2〕の算出処理を行う。この場合、デイケイ部
に関する楽音パラメータG〔CA〕〜G〔M2〕の
演算は、アタツク部の場合と同様、楽音パラメー
タG〔CA〕〜G〔M2〕にそれぞれ対応するTエ
リアの内容(T)〔CA〕〜(T)〔M2〕が「0」
であることを条件としてステツプ2111のデイ
ケイ部計算ルーチンにおいて実行されるが、Tエ
リアの内容(T)〔CA〕〜(T)〔M2〕が正の値
を示している場合には、このTエリアの内容がス
テツプ2114のデクレメント命令によりデクレ
メントされるのみである。このTエリアの内容
(T)〔CA〕〜(T)〔M2〕のデクレメント処理
は、チヤンネルカウンタCCの内容が一巡する毎
に実行される。 (デイケイ部計算ルーチン) 次に、一定時間後においてチヤンネルカウンタ
CCの内容が一巡して「(CC)=16」となり、かつ
第16チヤンネルの楽音パラメータG〔CA〕〜G
〔M2〕に対応するTエリアの内容(T)〔CA〕〜
(T)〔M2〕が「0」になつたものとすると、まず
「(PC)=6」で指定される楽音パラメータG
〔CA〕のデイケイ部に関する演算は次のようにし
て実行される。この場合、「(PC)=6」で指定さ
れる楽音パラメータG〔CA〕に対応するJAエリ
ア(第26表)の内容は「(JA)=C」となつてい
る(第23図のステツプ2167参照)。このた
め、プログラムの実行は第20図に示すステツプ
2101→ステツプ2102→ステツプ2103
→ステツプ2104→ステツプ2105→ステツ
プ2106→ステツプ2107→ステツプ210
8→ステツプ2111という具合に移行し、ステ
ツプ2111のデイケイ部演算ルーチンにおいて
パラメータカウンタPCの内容「(PC)=6」で指
定された楽音パラメータG〔CA〕のデイケイ部
に関する演算処理を行う。 デイケイ部演算ルーチンは前述のようにアタツ
ク部計算ルーチンと共用されており、第23図に
その詳細フローチヤートを示している。 プログラムの実行が第23図のデイケイ部計算
ルーチンに移行すると、まずパラメータカウンタ
PCの内容「(PC)=6」で指定された楽音パラメ
ータG〔CA〕に対応するnエリアの内容(n)
〔CA〕がパラメータ計算用レジスタPRG16から読
み出され、このnエリアの内容(n)〔CA〕が
「(n)〔CA〕>0」か、あるいは「(n)〔CA〕=
0」かが判断される。 nエリアの内容(n)〔CA〕が「(n)〔CA〕>
0」ならば、増減値に関する演算パラメータΔ・
m〔CA〕の加算回数が演算パラメータn・
m〔CA〕で指定される回数に達していないもの
とし、すなわち楽音パラメータG〔CA〕のデイ
ケイ部に関するVALUE値が最終目標値「n・
m×Δ・m」に達していないものとし、次のス
テツプ2161においてこのnエリアの内容
(n)〔CA〕をデクレメントし、この後ステツプ
2162において楽音パラメータG〔CA〕の
VALUE値と演算パラメータΔ・m〔CA〕と
を加算し、この加算値「VALUE+Δ・m
〔CA〕」を再びパラメータ計算用レジスタPRG16
にG〔CA〕に関するVALUE値として格納して
おく。 そして、次のステツプ2163において演算周
期に関する演算パラメータT・m〔CA〕をパ
ラメータ計算用レジスタPRG16の単位ワードのう
ち「(PC)=6」で指定される単位ワードのTエ
リアに再セツトする。 演算周期に関する演算パラメータT・m
〔CA〕の再セツト処理が終了すると、プログラム
の実行はステツプ2164へ移行し、ここにおい
てパラメータ計算用レジスタPRG16のG〔CA〕
に関するVALUE値に対しさらにモジユレーシヨ
ンデータMDs〔CA〕が加算され、その加算値
「VALUE+MDs〔CA〕」がテンポラリパラメー
タメモリTPM16のパラメータカウンタPCの内容
「(PC)=6」で指定される単位ワードにおける
VALUE値として格納される。従つて、この時点
における演算パラメータG〔CA〕のVALUE値
は、演算パラメータΔ・m〔CA〕の加算回数
が1回だけであるため次の第49式によつて表わさ
れる。 G〔CA〕のVALUE値=G〔CA〕at+Δ・
m〔CA〕+MDs〔CA〕 ……(49) なお、第49式においてG〔CA〕atはアタツク
部計算ルーチンにおいて算出した楽音パラメータ
G〔CA〕のVALUE値である。 この後、プログラムの実行は第20図のパラメ
ータ計算ルーチンへ戻り、ステツプ2115にお
いてパラメータカウンタPCの内容をデクレメン
トして「(PC)=5」とし、この後ステツプ21
16の判断命令の分岐によりステツプ2101へ
戻り、今度はパラメータカウンタPCの内容
「(PC)=5」で指定される楽音パラメータG
〔LA〕のデイケイ部に関する演算を行う。すなわ
ち、パラメータカウンタPCの内容が「(PC)=
5」となると、楽音パラメータG〔LA〕に対応
するTエリアの内容(T)〔LA〕が「0」になつ
ていることを条件としてプログラムの実行はステ
ツプ2102→ステツプ2103→ステツプ21
04→ステツプ2105→ステツプ2106→ス
テツプ2107→ステツプ2108→ステツプ2
111という具合に移行し、再びデイケイ部計算
ルーチンに入り、ここにおいてパラメータカウン
タPCの内容「(PC)=5」で指定される楽音パラ
メータG〔LA〕のデイケイ部に関する演算を楽
音パラメータG〔CA〕の演算と同様に行う。こ
の結果、テンポラリパラメータメモリTPM16
パラメータカウンタPCの内容「(PC)=5」で指
定される単位ワードには次の第50式で示される楽
音パラメータG〔LA〕のデイケイ部に関する
VALUE値が格納される。 G〔LA〕のVALUE値=G〔LA〕at+Δ・
m〔LA〕+MDs〔LA〕 ……(50) このようにしてパラメータカウンタPCの内容
「(PC)=5」で指定される楽音パラメータG
〔LA〕のデイケイ部に関する第1回目の演算処理
が終了すると、プログラムの実行は第20図のパ
ラメータ計算ルーチンへ戻り、ステツプ2115
においてパラメータカウンタPCの内容をデクレ
メントして「(PC)=4」とし、今度はパラメー
タカウンタPCの内容「(PC)=4」で指定される
楽音パラメータG〔CT〕のデイケイ部分に関す
る演算を前述の「(PC)=5」の場合と同様に行
う。そして、これ以降においても、パラメータカ
ウンタPCの内容を「(PC)=4」→「(PC)=
3」,「(PC)=3」→「(PC)=2」,「(PC)=
2」→「(PC)=1」という具合に順次変化さ
せ、これに対応する楽音パラメータG〔P1〕,G
〔M1〕,G〔M2〕のデイケイ部に関する演算を前述
の場合と同様に実行する。 なお、デイケイ部における楽音パラメータG
〔M1〕,G〔M2〕に対応する演算パラメータΔ・
m〔M1〕,Δ・m〔M2〕は、デイケイ部におけ
る楽音信号レベルが一般的に順次小さくなるため
に負の値である。そして、当該第16チヤンネルに
おける楽音パラメータG〔CA〕〜〔M2〕のデイ
ケイ部に関する第1回目の演算が終了し、パラメ
ータカウンタPCの内容がステツプ2115(第
20図)のデクレメント命令により「(FC)=
0」となると、プログラムの実行はステツプ21
16→ステツプ2117→ステツプ2118へ移
行し、ステツプ2118において周波数パラメー
タR1およびR2を算出すると共にこの算出した周
波数パラメータR1およびR2ならびに楽音パラメ
ータG〔CA〕および〔LA〕の転送処理を行う。
この後、次のステツプ2119においてデイケイ
部に関する第1回目の演算処理によつて得られた
楽音パラメータG〔M1〕およびG〔M2〕の転送処
理を行う。 以上のような処理によつて第16チヤンネルにお
ける楽音パラメータG〔CA〕〜G〔M2〕のデイ
ケイ部に関する第1回目の演算処理は全て終了す
るわけであるが、今度は第15チヤンネルに関する
演算を実行するため、次のステツプ2120にお
いてチヤンネルカウンタCCの内容をデクレメン
トして「(CC)=15」とする。この場合、第15チ
ヤンネルから第1チヤンネルにおいては押下鍵の
割当てがないとすれば、プログラムの実行はステ
ツプ2121→ステツプ2101→ステツプ21
02→ステツプ2120→ステツプ2121の繰
り返しとなり、その後において第1チヤンネルに
関する処理が終了した段階でチヤンネルカウンタ
CCの内容が「(CC)=0」となると、ステツプ2
121の判断命令「(CC)=0?」の分岐により
第17図のメインルーチンへ戻る。そして、全チ
ヤンネルに関するチヤンネル割当ておよび各種パ
ラメータの算出処理に要した時間が一定時間に達
していなければ、タイマ270からタイマフラグ
信号TFGが出力されるまでプログラムの実行は
待機状態となる(第17図に示すメインルーチン
のステツプ2004参照)。その後タイマ270
からタイマフラグ信号TFGが出力されると、プ
ログラムの実行はメインルーチンにおけるステツ
プ2005→ステツプ2001→ステツプ200
3の経路により再びパラメータ計算ルーチンに移
行する。そして、このパラメータ計算ルーチン
(第20図)において、新たな時刻における第16
チヤンネルの各種パラメータの算出処理を行う。
この場合、楽音パラメータG〔CA〕〜G〔M2
にそれぞれ対応するTエリアの内容(T)〔CA〕
〜(T)〔M2〕が「0」であることを条件にステ
ツプ2111のデイケイ部計算ルーチンにおいて
第2回目の演算が行なわれるが、Tエリアの内容
(T)〔CA〕〜(T)〔M2〕が正の値を示している
場合にはこのTエリアの内容がステツプ2114
のデクレメント命令によりデクレメントされるの
みである。 その後、このような処理が繰り返された結果ス
テツプ2111のデイケイ部計算ルーチンによる
楽音パラメータG〔CA〕〜G〔M2〕の演算処理
が演算パラメータn・m〔CA〕〜n・m
〔M2〕で示される回数だけ実行され、この後チヤ
ンネルカウンタCCの内容が一巡して「(CC)=
16」となり、かつ第16チヤンネルの楽音パラメー
タG〔CA〕〜G〔M2〕にそれぞれ対応するTエ
リアの内容(T)〔CA〕〜(T)〔M2〕が「0」
になつたものとすると、プログラムの実行はステ
ツプ2102→ステツプ2103→ステツプ21
04→ステツプ2105→ステツプ2106→ス
テツプ2107→ステツプ2108→ステツプ2
111の経路により再びデイケイ部計算ルーチン
へ移行する。すると、今度はパラメータカウンタ
PCの内容で指定される楽音パラメータG〔CA〕
〜G〔M2〕にそれぞれ対応するnエリアの内容
(n)〔CA〕〜(n)〔M2〕が「0」になつている
ことを条件として、プログラムの実行はステツプ
2160の判断命令の分岐によりステツプ216
5へ移行する。これは楽音パラメータG〔CA〕
〜G〔M2〕のデイケイ部に関する演算処理が演算
パラメータn・m〔CA〕〜n・m〔M2〕に
よつて指定される回数だけ実行されたことを意味
し、次にはサステイン部に関する演算処理に移行
すべきであることを意味する。 従つて、プログラムの実行がステツプ2160
からステツプ2165へ移行すると、これ以降の
各ステツプにおいてサステイン部に関する楽音パ
ラメータG〔CA〕〜G〔M2〕を算出するための
準備処理が行なわれる。このサステイン部に関す
る楽音パラメータG〔CA〕〜G〔M2〕を算出す
るための準備処理についてはデイケイ部に関する
準備処理の場合と同様であるのでその説明は省略
する。この場合、サステイン部における処理で
は、デイケイ部の演算処理で得られた各楽音パラ
メータG〔CA〕〜G〔M2〕のVALUE値に対しこ
れら楽音パラメータにそれぞれ対応したモジユレ
ーシヨンデータMDs〔CA〕〜MDs〔M2〕が加算
されているのみであるため、ステツプ2165〜
ステツプ2172の準備処理において有効な処理
はステツプ2165における演算パラメータT・
m〔CA〕〜T・m〔M2〕の設定処理および
ステツプ2168における各楽音パラメータに対
応したJAエリアの内容を「(JA)=D」とする置
換処理のみである。 そして、当該第16チヤンネルにおける楽音パラ
メータG〔CA〕〜G〔M2〕のデイケイ部に関す
る演算、そしてサステイン部の演算を行うための
準備処理が終了し、パラメータカウンタPCの内
容がステツプ2115(第20図)のデクレメン
ト命令により「(PC)=0」となると、プログラ
ムの実行はステツプ2116→ステツプ2117
→ステツプ2118へ移行し、ステツプ2118
においてデイケイ部における最後の周波数パラメ
ータR1およびR2を算出すると共に、この算出し
た周波数パラメータR1およびR2ならびに楽音パ
ラメータG〔CA〕およびG〔LA〕の転送処理を
行う。この後、次のステツプ2119においてデ
イケイ部における最後の演算処理によつて得られ
た楽音パラメータG〔M1〕およびG〔M2〕の転送
処理を行う。 以上のような処理によつて第16チヤンネルにお
けるデイケイ部に関する処理は全て終了するわけ
であるが、今度は第15チヤンネルに関する演算を
実行するため、次のステツプ2120においてチ
ヤンネルカウンタCCの内容をデクレメントして
「(CC)=15」とする。この場合、第15チヤンネル
から第1チヤンネルについては押下鍵の割当てが
ないとすれば、プログラムの実行はステツプ21
21→ステツプ2101→ステツプ2102→ス
テツプ2120→ステツプ2121の繰り返しと
なり、その後において第1チヤンネルに関する処
理が終了した段階でチヤンネルカウンタCCの内
容が「(CC)=0」となると、ステツプ2121
の判断命令「(CC)=0?」の分岐により第17
図のメインルーチンへ戻る。 そして、アタツク部に関する演算処理からデイ
ケイ部に関する演算処理へと移行する場合と同
様、タイマ270からタイマフラグ信号TFGが
出力されると、プログラムの実行は再びパラメー
タ計算ルーチンに移行し、ここにおいて今後はサ
ステイン部に関する楽音パラメータG〔CA〕〜
G〔M2〕の算出処理を行う。この場合、サステイ
ン部に関する楽音パラメータG〔CA〕〜G
〔M2〕の演算は、デイケイ部の場合と同様、楽音
パラメータG〔CA〕〜G〔M2〕にそれぞれ対応
するTエリアの内容(T)〔CA〕〜(T)〔M2
が「0」になつていることを条件として、ステツ
プ2112のサステイン部計算ルーチンにおいて
実行されるが、このTエリアの内容(T)〔CA〕
〜(T)〔M2〕が正の値を示している場合にはこ
のTエリアの内容がステツプ2114のデクレメ
ント命令によりデクレメントされるのみである。
このTエリアの内容のデクレメント処理は、チヤ
ンネルカウンタCCの内容が一巡する毎に実行さ
れる。 (サステイン部計算ルーチン) 次に、一定時間後においてチヤンネルカウンタ
CCの内容が一巡して「(CC)=16」となり、かつ
第16チヤンネルの楽音パラメータG〔CA〕〜G
〔M2〕にそれぞれ対応するTエリアの内容(T)
〔CA〕〜(T)〔M2〕が「0」になつたものとす
ると、まず「(PC)=6」で指定される楽音パラ
メータG〔CA〕のサステイン部に関する演算は
次のようにして実行される。この場合、「(PC)=
6」で指定される楽音パラメータG〔CA〕に対
応するJAエリアの内容は「(JA)=D」となつて
いる(第23図のステツプ2168参照)。 このため、プログラムの実行はステツプ210
1→ステツプ2102→ステツプ2103→ステ
ツプ2104→ステツプ2105→ステツプ21
06→ステツプ2107→ステツプ2108→ス
テツプ2112という具合に移行し、ステツプ2
112のサステイン部演算ルーチンにおいてパラ
メータカウンタPCの内容「(PC)=6」で指定さ
れた楽音パラメータG〔CA〕のサステイン部に
関する演算処理を行う。 サステイン部計算ルーチンは、前述のアタツク
部計算ルーチンおよびデイケイ部計算ルーチンと
その一部のステツプが共用されており、第23図
にその詳細フローチヤートを示している。 このサステイン部計算ルーチンにおける演算処
理については、前述のアタツク部およびデイケイ
部における演算処理と同様、チヤンネル毎の楽音
パラメータG〔CA〕〜G〔M2〕がパラメータ毎
に時分割的に、かつ演算パラメータT・m
〔CA〕〜T・m〔M2〕で定まる周期で算出され
るものであるが、T・m〔CA〕〜T・m
〔M2〕で定まる演算周期毎の増減値としては各楽
音パラメータG〔CA〕〜G〔M2〕に対応したモ
ジユレーシヨンデータMDs〔CA〕〜MDs〔M2
のみである。 このモジユレーシヨンデータMDs〔CA〕〜
MDs〔M2〕の加算処理は第23図のステツプ21
64によつて実行される。この結果、第16チヤン
ネルポラリパラメータメモリTPM16の各単位ワ
ードには、前述の第37式〜第42式で示したような
各楽音パラメータG〔CA〕〜G〔M2〕のVALUE
値が格納される。これ以外の処理、すなわちパラ
メータ変換処理および楽音パラメータG〔M1〕,
G〔M2〕の転送処理についてはアタツク部および
デイケイ部の場合の処理と同様であるのでその説
明は省略する。 以上が第16チヤンネルに新たな押下鍵が割当て
られた場合のアタツク部からサステイン部に至る
までの楽音パラメータG〔CA〕〜G〔M2〕の演
算処理内容についての説明である。 次に、この第16チヤンネルに割当てられている
押下鍵が解放された場合のリリース部における楽
音パラメータG〔CA〕〜G〔M2〕の演算処理内
容について説明する。 なお、前述したアタツク部からサステイン部に
至る演算処理において、各楽音パラメータG
〔CA〕〜G〔M2〕に対応する演算パラメータT・
m〔CA〕〜T・m〔M2〕,T・m〔CA〕
〜T・m〔M2〕およびn・m〔CA〕〜n・
m〔M2〕,n・m〔CA〕〜n・m〔M2〕は
説明の便宜上全て同一値として説明したが、実際
には各楽音パラメータ毎に固有の値が設定される
ものである。 従つて、この実施例においては、各楽音パラメ
ータG〔CA〕〜G〔M2〕の時間変化速度や単位
時間当りの変化幅ならびにアタツク部の初期値を
個々に独立して制御でき、結果として複雑な楽音
波形を容易に発生できるものとなる。 また、以上の説明は、第16チヤンネルのみに新
たな押下鍵が割当てられた場合についてのもので
あるが、他のチヤンネルに押下鍵の割当てがあつ
た場合にも同様にチヤンネル毎に独立して処理さ
れるのはもちろんである。 (PRGオフセツトルーチン) 例えば、第16チヤンネルに割当てられている押
下鍵が解放されると、前述の第18図bで示した
チヤンネル割当て解除フローによつてチヤンネル
割当ての解除処理が実行されると共に、この解放
鍵に対応する楽音のリリース部に関する楽音パラ
メータG〔M1〕およびG〔M2〕を算出するための
準備処理が実行される。この場合、発生楽音のリ
リース部については、ピツチに関係する楽音パラ
メータG〔CA〕〜G〔Pi〕の演算処理は実行さ
れず、振幅値に関係する楽音パラメータG
〔M1〕およびG〔M2〕のみの演算処理が実行され
る。 第24図は、第18図bで示したチヤンネル割
当て解除フローのうちステツプ2033のPRG
オフセツトルーチンの詳細フローチヤートを示す
図であつて、このPRGオフセツトルーチンにお
いて解放鍵に対応する楽音のリリース部に関する
楽音パラメータG〔M1〕およびG〔M2〕を算出す
るための準備処理が行なわれる。すなわち、前述
のアタツク部およびデイケイ部に関する楽音パラ
メータG〔CA〕〜G〔M2〕を算出する場合の準
備処理と同様、このPRGオフセツトルーチンに
おいてはリリース部分に関する楽音パラメータG
〔M1〕およびG〔M2〕を算出するための演算周期に
関する演算パラメータT〔Re〕および増減値に
関する演算パラメータΔ〔Re〕の設定処理が実
行される。この場合、設定される演算パラメータ
T〔Re〕およびΔ〔Re〕の値はフツトスイツチ
のオン・オフ状態によつて異なる。以下、第24
図のフローチヤートに沿つて説明する。 プログラムの実行が第24図のPRGオフセツ
トルーチンに移行すると、まずチヤンネル218
0においてフツトスイツチのオン・オフ状態の検
査が行なわれる。 フツトスイツチがオフ状態になつていると、プ
ログラムの実行はステツプ2181に移行し、こ
こにおいてパラメータ計算用レジスタPRG16
「(PC)=6」で指定される単位ワードのJAエリ
ア(第26表)の内容を「(JA)=E」に置換す
る。 この場合、パラメータ計算用レジスタPRG16
「(PC)=6」で指定される単位ワードは楽音パラ
メータG〔CA〕に対応するものであるが、リリ
ース部に関する楽音パラメータG〔M1〕およびG
〔M2〕を算出する場合には、楽音パラメータG
〔CA〕に対応するパラメータ計算用レジスタ
PRG16のTエリアおよびJAエリアならびにTCT
−ADRエリアが兼用されている。これは、前述
のパラメータ計算ルーチン(第20図)における
演算処理が、まずパラメータカウンタPCの内容
「(PC)=6」で指定される楽音パラメータG
〔CA〕から開始されるようになつているため、前
記エリアを使用しない場合には「(PC)=6」〜
「(PC)=3」に至るまで無駄な処理を行う結果と
なるからである。 JAエリアの置換処理が終了すると、次のステ
ツプ2182においてパラメータカウンタPCの
内容を「(PC)=0」とし、次のステツプ218
3においてTCT210からリリース部分の演算
周期に関する演算パラメータTm〔Re〕を読み出
し、これをワーキングレジスタWRKr1に一時記
憶させる。 この演算パラメータTm〔Re〕は、音色ナンバ
データTCNとパラメータカウンタPCの内容
「(PC)=0」およびサブパラメータカウンタ
SPCの内容「(SPC)=2」によつてTCT210
のリリースデータエリアから読み出される(第18
表および第19表参照)。 そして、次のステツプ2184において、リリ
ース部分の増減値に関するインダイレクト演算パ
ラメータΔ・ADRm〔Re〕を読み出し、これを
ワーキングレジスタWRKr2に一時記憶させる。
このインダイレクト演算パラメータΔ・ADRm
〔Re〕は、音色ナンバデータTCNとパラメータカ
ウンタPCの内容「(PC)=0」およびサブパラメ
ータカウンタSPCの内容「(SPC)=4」によつて
TCT210のリリースデータエリアから読み出
される。 以上の処理が終了すると、次のステツプ218
5においてパラメータカウンタPCの内容を
「(PC)=6」とし、この後、次のステツプ21
86においてワーキングレジスタWRKr1に一時
記憶されている演算パラメータTm〔Re〕を楽音
パラメータG〔CA〕に対応するパラメータ計算
用レジスタPRG16の単位ワードのTエリアにロー
ドする。 次に、ステツプ2187においてリリース部に
関する演算パラメータΔ〔Re〕をΔテーブル2
30から読み出すためのΔテーブルアドレス情報
が作られる。このΔテーブルアドレス情報は、ワ
ーキングレジスタWRKr2に記憶されているイン
ダイレクト演算パラメータΔ・ADRm〔Re〕
と、キーコードテーブルKCT16に記憶されている
キーコードKCとを加算することによつて作られ
る。この後、このようにして作成したΔテーブル
アドレス情報「Δ・ADRm+KC」でΔテーブル
230をアドレスし、これによつて読み出した演
算パラメータΔm〔Re〕をワーキングレジスタ
WRKr3に一時記憶させる。 次に、ステツプ2188においてパラメータカ
ウンタPCの内容を「(PC)=2」とし、次のステ
ツプ2189において前記ワーキングレジスタ
WRKr3に記憶されている演算パラメータΔm
〔Re〕をパラメータ計算用レジスタPRG16の楽音
パラメータG〔M1〕に対応する単位ワードのΔエ
リアにロードする。この後、次のステツプ219
0においてパラメータカウンタPCの内容を
「(PC)=1」とし、次のステツプ2191にお
いて前記ワーキングレジスタWRKr3に記憶され
ている演算パラメータΔm〔Re〕をパラメータ
計算用レジスタPRG16の楽音パラメータG
〔M2〕に対応する単位ワードのΔエリアにロード
する。 以上の各ステツプを実行することにより、フツ
トスイツチがオフ状態にある時の準備処理は終了
するが、この準備処理が終了するとプログラムの
実行は第20図で示したパラメータ計算ルーチン
に移行し、ここにおいてリリース部に関する楽音
パラメータG〔M1〕,G〔M2〕の演算を行う。こ
の楽音パラメータG〔M1〕,G〔M2〕の演算は、
パラメータ計算用レジスタPRG16の「(PC)=
6」で指定される単位ワードに記憶されている演
算パラメータTm〔Re〕と、「(PC)=2」および
「(PC)=1」で指定される楽音パラメータG
〔M1〕,G〔M2〕に対応する単位ワードにそれぞれ
記憶されている演算パラメータΔm〔Re〕とに
基づいて実行され、その実行結果は楽音パラメー
タG〔M1〕,G〔M2〕に対応する単位ワードの
VALUEエリアに逐次格納される。 次に、フツトスイツチがオン状態となつている
場合の準備処理ついて説明する。 まず、ステツプ2180においてフツトスイツ
チがオン状態となつていることがわかると、プロ
グラムの実行は次のステツプ2192に移行し、
ここにおいて解放鍵のキーボードコードKBCが
上鍵盤UK,下鍵盤LK,ペダル鍵盤PKのいずれ
かに該当するかが検査される。解放鍵のキーボー
ドコードNKBCが上鍵盤UKに該当するものであ
れば、次のステツプ2195において上鍵盤UK
に関するレジストレーシヨンリリースデータR
〔Re〕uをレジストレーシヨンレジスタRGNrか
ら読み出し、これをAアキユムレータAccAにロ
ードする。 解放鍵のキーボードコードKBCが下鍵盤LKに
該当するものであれば、次のステツプ2194に
おいて下鍵盤LKに関するレジストレーシヨンリ
リースデータR〔Re〕lをレジストレーシヨン
レジセタRGNrから読み出し、これをAアキユム
レータAccAにロードする。 また、解放鍵のキーボードコードKBCがペダ
ル鍵盤PKに該当するものであれば、次のステツ
プ2193においてペダル鍵盤PKに関するレジ
ストレーシヨンリリースデータR〔Re〕pをレ
ジストレーシヨンレジスタRGNrから読み出し、
これをAアキユムレータにロードする。 このようにして解放鍵が所属する鍵盤のレジス
トレーシヨンリリースデータR〔Re〕をAアキ
ユムレータにロードする処理が終了すると、次の
ステツプ2196において当該リリースデータR
〔Re〕の値が「R〔Re〕>0」か、あるいは「R
〔Re〕<0」か、あるいは「R〔Re〕=0」かを判
断する。 レジストレーシヨンリリースデータR〔Re〕
の値が「R〔Re〕=0」であれば、プログラムの
実行はステツプ2181へ移行し、これ以降のス
テツプにおいてフツトスイツチがオフ状態の時と
同様の準備処理を行う。レジストレーシヨンリリ
ースデータR〔Re〕の値が「R〔Re〕>0」であ
れば、プログラムの実行はステツプ2196から
ステツプ2197へ移行し、ステツプ2197に
おいてパラメータ計算用レジスタPGR16
「(PC)=6」で指定される単位ワードのJAエリ
アの内容を「(JA)=E」に置換し、この後次の
ステツプ2198においてパラメータカウンタ
PCの内容を「(PC)=2」とする。 次に、ステツプ2199においてAアキユムレ
ータAccAに記憶されているレジストレーシヨン
リリースデータR〔Re〕のうちリリースタイム
データΔV〔Re〕をパラメータ計算用レジスタ
PRG16の「(PC)=2」で指定される単位ワード
のΔエリアにロードする。この後、次のステツプ
2200においてパラメータカウンタPCの内容
を「(PC)=1」とし、次のステツプ2201に
おいてAアキユムレータAccAに記憶されている
リリースタイムデータΔV〔Re〕をパラメータ
計算用レジスタPRG16の「(PC)=1」で指定さ
れる単位ワードのΔエリアにロードする。ステツ
プ2199および2201の処理は、前述のフツ
トスイツチがオフ状態の時におけるステツプ21
89およびステツプ2191の処理に対応するも
のである。ステツプ2201の処理が終了する
と、プログラムの実行は第20図で示したパラメ
ータ計算ルーチンに移行し、ここにおいてリリー
ス部に関する楽音パラメータG〔M1〕,G〔M2
の演算を行う。この楽音パラメータG〔M1〕,G
〔M2〕の演算は、後述するリリース部計算ルーチ
ンにおいてパラメータ計算用レジスタPRG16
「(PC)=6」で指定される単位ワードのTエリア
に記憶された演算パラメータTm〔Re〕と、楽音
パラメータG〔M1〕およびG〔M2〕に対応する単
位ワードのΔエリアに記憶されているリリースタ
イムデータΔV〔Re〕とに基づいて実行され、
その実行結果は楽音パラメータG〔M1〕,G
〔M2〕に対応する単位ワードのVALUEエリアに逐
次格納される。 次に、フツトスイツチがオン状態であり、解放
鍵が所属する鍵盤のレジストレーシヨンリリース
データR〔Re〕が「R〔Re〕<0」の場合、すな
わちレジストレーシヨンリリースデータの設定押
ボタンのうちピアノ型の設定押ボタンがオンとな
つている場合、このPRGオフセツトルーチンに
おいては何等の処理も実行されず、プログラムの
実行は「(JA)=D」のままの状態でステツプ2
196からパラメータ計算ルーチンに移行する。
この結果、発生楽音のリリース部特性は、ピアノ
におけるサステインペダルを操作したのと同様に
鍵が押されている状態と同様の状態となり、その
後においてフツトスイツチがオフ状態になると、
前述のPRGオフセツトルーチンにおけるステツ
プ2181〜2191による準備処理が行なわれ
る。 以上が、第16チヤンネルに割当てられている押
下鍵が解放された場合におけるリリース部に関す
る楽音パラメータG〔M1〕〜G〔M2〕を算出する
ための準備処理である。 次に、このPRGオフセツトルーチンの実行直
後において実行されるパラメータ計算ルーチン
(第20図)のうちリリース部計算ルーチンにつ
いて説明する。 (リリース部計算ルーチン) 第25図は、第20図に示したパラメータ計算
ルーチンのうちステツプ2113のリリース部計
算ルーチンを示す詳細フローチヤートである。 このリリース部計算ルーチンは、パラメータ計
算用レジスタPRG16の「(PC)=6」で指定される
単位ワードのTエリアの内容(T)〔CA〕が初期
値の「(T)〔CA〕=Tm〔Re〕」から順次デクレメ
ントされて「0」となつたとき、第20図ステツプ
2102→ステツプ2103→ステツプ2104
→ステツプ2105→ステツプ2106→ステツ
プ2107→ステツプ2113の経路によりプロ
グラムの実行が移行した場合に実行される。 ところで、前述のPRGオフセツトルーチンの
説明からも明らかなように、フツトスイツチがオ
フ状態の時には、パラメータ計算用レジスタ
PRG16の「(PC)=6」で指定される単位ワード
のTエリアに演算周期に関する演算パラメータ
Tm〔Re〕がロードされるが、フツトスイツチが
オン状態で、かつレジストレーシヨンリリースデ
ータR〔Re〕が正の値を示している時には、パ
ラメータ計算用レジスタPRG16の「(PC)=6」
で指定される単位ワードのTエリアに対しては何
等の演算パラメータもロードされず、その内容は
サステイン部に関する演算処理を終了した段階に
おける内容のままの「(T)=0」となつている。
従つて、前述のPRGオフセツトルーチンの最終
ステツプから第20図のパラメータ計算ルーチン
のステツプ2103に至る経路は、次のように2
種類ある。 まず第1の経路は、フツトスイツチがオン状態
で、かつリリースデータR〔Re〕が正の値を示
している時のもので(前述のデータパターン(a)に
相当)第24図のステツプ2201(又は219
6)→第20図のステツプ2100→ステツプ2
101→ステツプ2102→ステツプ2103と
いう経路である。 第2の経路は、フツトスイツチがオフ状態の時
のものであり、第24図のステツプ2191→第
20図のステツプ2100→ステツプ2101→
ステツプ2102→ステツプ2114という具合
に演算パラメータTm〔Re〕のデクレメント処理
を実行し、その後チヤンネルカウンタCCの内容
が一巡し、かつ前記ステツプ2114のデクレメ
ント処理によつて「(PC)=6」で指定される単
位ワードのTエリアの内容(T)〔CA〕が「0」
となつた時にステツプ2101→ステツプ210
2→ステツプ2103という具合に移行する経路
である。 まず、後者の第2の経路を通つてプログラムの
実行が第25図のリリース部計算ルーチンに移行
した時の処理を説明する。 この場合、まず、ステツプ2210においてパ
ラメータカウンタPCの内容を「(PC)=2」と
し、この次のステツプ2211においてパラメー
タ計算用レジスタPRG16の「(PC)=2」で指定
される単位ワード(楽音パラメータG〔M1〕に対
応する単位ワード)のVALUE値とΔエリアの内
容Δm〔Re〕を加算し、その加算値「VALUE+
Δm〔Re〕」を再び当該単位ワードのVALUE値
として格納しておく。 次に、ステツプ2212において、前記ステツ
プ2211で得た新たなVALUE値をテンポラリ
パラメータメモリTPM16の「(PC)=2」で指定
される単位ワードにロードすると共に、ワーキン
グレジスタWRKr1にも一時記憶させる。この
後、次のステツプ2213においてパラメータカ
ウンタPCの内容を「(PC)=1」とし、この次の
ステツプ2214においてパラメータ計算用レジ
スタPRG16の「(PC)=1」で指定される単位ワ
ード(楽音パラメータG〔M2〕に対応する単位ワ
ード)のVALUE値とΔエリアの内容Δm〔Re〕
を加算し、その加算値「VALUE+Δm〔Re〕」
を再び当該単位ワードのVALUE値として格納し
ておく。次に、ステツプ2215において、前記
ステツプ2214で得た新たなVALUE値をテン
ポラリパラメータメモリTPM16の「(PC)=1」
で指定される単位ワードにロードすると共に、ワ
ーキングレジスタWRKr2も一時記憶させる。 従つて、この段階において得られる楽音パラメ
ータG〔M1〕およびG〔M2〕のVALUE値は、演
算パラメータΔm〔Re〕の加算回数が1回であ
るため、次の第51式および第52式によつて表わさ
れる。 G〔M1〕のVALUE値=G〔M1〕st+Δm
〔Re〕 ……(51) G〔M2〕のVALUE値=G〔M2〕st+Δm
〔Re〕 ……(52) なお、Δm〔Re〕は一般には負の数値である。 次に、ステツプ2216において、ワーキング
レジスタWRKr1に記憶されている楽音パラメー
タG〔M1〕のVALUE値と、ワーキングレジスタ
WRKr2に記憶されている楽音パラメータの
VALUE値を加算し、その加算値をAアキユムレ
ータAccAにロードする。そして、次のステツプ
2217において、AアキユムレータAccAの内
容が「(AccA)=0」であるか否かを判断し、
「(AccA)=0」であればリリースエンドとして
次のステツプ2118以降においてチヤンネルア
サインテーブルCAT1〜CAT16のトランスケート
順位値TRiを書換える処理を行う。逆に、ステツ
プ2217における判断処理結果が「(AccA)
≠0」であれば、次のステツプ2228以降にお
いて引き続きリリース部分に関する演算を行うた
めの処理を行う。 ステツプ2217による判断処理結果が
「AccA=0」であれば、プログラムの実行は端
子RL1を介してステツプ2228へ移行し、ここ
においてパラメータカウンタPCの内容を
「(PC)=0」とする。そして、次のステツプ22
29においてリリース部の演算周期に関する演算
パラメータTm〔Re〕をTCT210から読み出
し、これをワーキングレジスタWRKr1に一時記
憶しておく。この後、ステツプ2230において
パラメータカウンタPCの内容を「(PC)=6」と
し、次のステツプ2231においてワーキングレ
ジスタWRKr1に一時記憶されている演算パラメ
ータTm〔Re〕をパラメータ計算用レジスタ
PRG16の「(PC)=6」で指定される単位ワード
のTエリアにロードする。これによつて、リリー
ス部分に関する第2回目の楽音パラメータG
〔M1〕,G〔M2〕を算出するための演算周期に関す
る演算パラメータTm〔Re〕が設定されたことに
なる。 この処理が終了すると、プログラムの実行は次
のステツプ2227へ移行し、ここにおいてパラ
メータカウンタPCの内容を「(PC)=1」とする
と共に、パラメータ変換指示フラグレジスタ
CFGrをクリアする。パラメータ変換表示フラグ
レジスタCFGrには、プログラムの実行がリリー
ス部計算ルーチンに移行する前のステツプ210
4(第20図)において“1”のパラメータ変換
指示フラグCFGがセツトされるが、リリース部
における演算処理では振幅値に関する演算パラメ
ータG〔M1〕,G〔M2〕を算出するのみであるか
ら、ステツプ2218(第20図)のパラメータ
変換ルーチンの処理を実行する必要がないため、
前記ステツプ2227でパラメータ変換指示フラ
グレジスタCFGrの内容がクリアされる。 以上のステツプによつてリリース部計算ルーチ
ンの処理は終了するが、この後、プログラムの実
行は第20図のパラメータ変換ルーチンへ戻り、
ステツプ2115においてパラメータカウンタの
内容をデクレメントして「(PC)=0」とする。
すると、ステツプ2116の判断命令によつてプ
ログラムの実行はステツプ2117へ移行し、こ
こにおいてパラメータ変換指示フラグレジスタ
CFGrの内容が「(CFGr)=1」か、あるいは
「(CFGr)=0」かを判断する。パラメータ変換
指示フラグレジスタCFGrは、リリース部計算ル
ーチンのステツプ2227(第25図)において
クリアされている。このため、プログラムの実行
はステツプ2117(第20図)からステツプ2
119へ移行し、ここにおいて振幅値に関係する
楽音パラメータG〔M1〕,G〔M2〕を第3プロセ
ツサ部300に対して送出する。 これによつて、第16チヤンネルの発生楽音のリ
リース部に関する楽音パラメータG〔M1〕,G
〔M2〕の第1回目の算出処理および転送処理は終
了する。そこで、プログラムの実行は次のステツ
プ2120へ移行し、ここにおいてチヤンネルカ
ウンタCCの内容をデクレメントして「(CC)=
15」とし、今度は第15チヤンネルに関する各種パ
ラメータの算出処理に移行する。この場合、第15
チヤンネルから第1チヤンネルには押下鍵の割当
てがないとすれば、プログラムの実行はステツプ
2120→ステツプ2121→ステツプ2101
→ステツプ2102→ステツプ2120の繰り返
しとなり、第1チヤンネルに関するステツプ21
20における処理を終了した段階でチヤンネルカ
ウンタCCの内容は「(CC)=0」となり、次のス
テツプ2121の判断命令によりプログラムの実
行はメインルーチン(第17図)へ戻る。その
後、タイマ270からタイマフラグ信号TFGが
出力されると、プログラムの実行は第17図のス
テツプ2005→ステツプ2001→ステツプ2
003の経路により再びパラメータ計算ルーチン
へ戻る。そして、このパラメータ計算ルーチンに
おいて、「(PC)=6」で指定される単位ワードの
Tエリアの内容(T)〔CA〕が「(T)〔CA〕>
0」であれば、ステツプ2114のデクレメント
命令によりこのTエリアの内容(T)〔CA〕がチ
ヤンネルカウンタCCの一巡動作毎にデクレメン
トされる。 その後、このTエリアの内容(T)〔CA〕がス
テツプ2114のデクレメント命令により順次デ
クレメントされて「(T)〔CA〕=0」となり、か
つチヤンネルカウンタCCの内容が一巡して
「(CC)=16」になると、プログラムの実行はス
テツプ2102→ステツプ2103→ステツプ2
104→ステツプ2105→ステツプ2106→
ステツプ2107→ステツプ2113という経路
を通つて再びリリース部計算ルーチンへ移行す
る。 そして、第25図のリリース部計算ルーチンに
おけるステツプ2211および2214において
楽音パラメータG〔M1〕,G〔M2〕のVALUE値
に再び演算パラメータΔm〔Re〕が加算され、
(Δm〔Re〕は一般的には負の値)、これによつ
て新たな時刻における楽音パラメータG〔M1〕,
G〔M2〕のVALUE値が形成されるが、この時形
成された楽音パラメータG〔M1〕,G〔M2〕の新
たなVALUE値の合計値が「0」になつていれ
ば、ステツプ2217の判断命令によりリリース
エンドとして判断され、プログラムの実行は次の
ステツプ2218へ移行し、これ以降のステツプ
においてチヤンネルアサインテーブルCAT1
CAT16のトランケート順位値TRiを書換える処理
を行う。 チヤンネルアサインテーブルCAT1〜CAT16
トランケート順位値TRiは、前述した第18図b
のチヤンネル割当て解除フローによつて押下鍵が
解放された順にトランケートすべき優先度が高い
値として1次的に設定されている。 今、仮りに、第16チヤンネルに割当てられてい
る押下鍵に対応する楽音がリリースエンドとなる
前のチヤンネルアサインテーブルCAT1〜CAT16
の内容が次の第32表であつたものとすると、第16
チヤンネルに割当てられている押下鍵に対応する
楽音がリリースエンドとして検出されたことによ
り、プログラムの実行はステツプ2217からス
テツプ2218へ移行し、ここにおいてパラメー
タカウンタPCの内容を「(PC)=6」とし、この
次のステツプ2219においてパラメータ計算用
レジスタPRG16の「(PC)=6」で指定される単
位ワードのTエリアの内容に「−1」をロードす
る。すなわち、Tエリアの内容を負にする。これ
によつて、当該第16チヤンネルはパラメータ計算
ルーチンにおいて空チヤンネルとして判断される
ようになる。 また、このステツプ2219において、チヤン
ネルカウンタCCの内容「(CC)=16」で指定され
ているチヤンネルアサインテーブルCAT16の内容
「TRi〕2」をリリースエンドチヤンネルナンバ
レジスタRECrにロードしておく。
[0]
The second calculation is performed in the attack part calculation routine in step 2110 only when .
If [M 2 ] is a positive value, the values of these (T) [CA] to (T) [M 2 ] are calculated in step 211.
It is only decremented by the decrement instruction of 4. After that, as a result of repeating this process,
The arithmetic processing of musical tone parameters G[CA] to G[M 2 ] by the attack part calculation routine in step 2110 results in calculation parameters n・m[CA] to n・m.
It is executed the number of times indicated by [M 2 ], and then the contents of the channel counter CC go through a cycle and become “(CC)=
16" and the contents of the T area (T) [CA] to (T) [M 2 ] corresponding to the musical tone parameters G [CA] to G [M 2 ] of the 16th channel become "0". Then, the program execution is at step 21.
02 → Step 2103 → Step 2104 → Step 2105 → Step 2106 → Step 2
The flow returns to the attack portion calculation routine via the path 110. Then, the musical tone parameters G [CA] to G specified by the contents of the parameter counter PC
Contents of n areas (n) corresponding to [M 2 ] respectively
On the condition that [CA] ~ (n) [M 2 ] is "0", the program execution starts at step 21.
60, the process moves to step 2165. In addition, the contents of each n area (n) [CA] to (n) corresponding to musical tone parameters G[CA] to G[M 2 ]
When [M 2 ] becomes “0”, the calculation parameter n・
It differs for each parameter depending on the value of m [CA] to n・m [M 2 ], and this attack part calculation routine is performed only for musical tone parameters for which the content of the n area is "0". It will be. However, below, for convenience of explanation, the above (n)
The explanation will be made assuming that [CA] to (n) [M 2 ] become "0" at the same time. The transition of the program execution to step 2165 means that musical tone parameters G[CA] to G[M 2 ]
This means that the calculation process for the attack part has been executed the number of times specified by the calculation parameters n・m [CA] to n・m [M 2 ], and then the calculation process for the decay part is started. It means should. Therefore, the execution of the program starts at step 2160.
When the process moves to step 2165, preparation processing for calculating tone parameters G[CA] to G[M 2 ] relating to the decay section is performed in each subsequent step. In other words, in step 2165, TCT21
The calculation parameter T·m [CA] relating to the calculation cycle of the decay section is read from 0 and stored in the T area of the unit word corresponding to G [CA] of the parameter calculation register PRG 16 . In this case, the calculation parameter T・m [CA] is the tone number data TCN, the content of the parameter counter PC "(PC) = 6", and the subparameter counter SPC.
Based on the content “(SPC) = 5” (see Table 19)
Read by addressing TCT 210. Next, in step 2166, JA of the unit word of the parameter calculation register PRG 1 (C) specified by the content of the parameter counter PC "(PC) = 6".
The contents of the area are read and it is determined whether "(JA)=B" or "(JA)≠B". "(JA)=B"
If so, this is replaced with "(JA)=C" in the next step 2167. This indicates that the calculation regarding the decay part should be performed next. Further, if "(JA)≠B", this is replaced with "(JA)=D" in the next step 2168. This indicates that the operation related to the sustain section should be executed next. In this case, the reason for replacing it with "(JA)=D" is that the program shown in FIG. 23 is commonly used for calculations in the attack section and the decay section. Here, it is assumed that the calculation regarding the attack part has been completed, and that "(JA)=0" has been obtained. Next, in step 2169, the n table 24
Calculation parameter n for the decay part from 0
Create n table address information for reading m[CA]. This n table address information addresses the TCT210 using the tone number data TCN, the content of the parameter counter PC "(PC) = 6", and the content of the subparameter counter SPC "(SPC) = 6" (see Table 19). Indirect calculation parameters n・ADR・m read out
(CA) and the key code KC stored in the key code table KCT 16 . Then, the n table address information created in this way “n・ADR・m[CA]+
KC'' to address the n table 240 and read out the calculation parameter n·m [CA] corresponding to the tone number data TCN and key code KC. The calculation parameters n·m[LA] to n·m[ M2 ] corresponding to the musical tone parameters G[LA] to G[ M2 ] are also read out in the same manner. And next step 2
At step 170, the calculation parameter n·m [CA] read from the n table 240 is loaded into the n area of the unit word corresponding to "(PC)=6" of the parameter calculation register PRG 16 . These two steps 2169 and 2170 complete the process of setting the calculation parameter n·m [CA], and then the process of setting the calculation parameter Δ·m [CA] is executed in steps 2171 and 2172. That is, in step 2171, Δ table address information for reading out the calculation parameter Δ·m [CA] from the Δ table 230 is created. This Δ table address information includes the tone number data TCN, the content of the parameter counter PC "(PC) = 6", and the ab parameter counter, as in the case of creating the n table address information described above.
TCT210 by SPC content “(SPC)=7”
The indirect calculation parameter Δ・ADR・m [CA] read by addressing , and the key code KC stored in the key code table KCT 16 .
It is created by adding . Then, with the Δ table address information “(Δ・ADR・m[CA]+KC”) created in this way, Δ table 2
30, and the calculation parameter Δ・m corresponding to the tone number data TCN and key code KC.
Read [CA]. Musical tone parameter G [LA] ~
Calculation parameter Δ・m corresponding to G [M 2 ]
[LA] to Δ·m [M 2 ] are also read out in the same manner. Then, in the next step 2172, the calculation parameters Δ・
m [CA] to parameter calculation register PRG 16
is stored in the Δ area of the unit word corresponding to "(PC)=6". Through such processing, the preparation process for calculating the musical tone parameter G [CA] regarding the decay part is completed, and the program execution returns to the parameter calculation routine shown in FIG. Update the contents of the parameter counter PC to “(PC) = 5”
Then, the tone parameter G specified by the new parameter counter PC content "(PC) = 5"
Preparation processing for calculating the decay part of [LA] is performed in the same way as in the case of "(PC)=6" described above. Thereafter, preparation processing for executing calculations regarding the decay part of musical tone parameters G[CT] to G[ M2 ] specified by "(PC)=5" to "PC)=1" is performed in the same manner. . Then, the preparation process for performing the calculations regarding the attack part and the calculation of the decay part of musical tone parameters G[CA] to G[ M2 ] in the 16th channel is completed, and the contents of the parameter counter PC are changed to step 2115 (step 2115). When "(PC) = 0" is obtained by the decrement instruction in Figure 20), the program execution proceeds from step 2116 → step 2117 →
The process moves to step 2118, in which the final frequency parameters R 1 and R 2 in the attack section are calculated, and the calculated frequency parameters R 1 and R 2 and musical tone parameters G [CA] and G [LA] are transferred. Perform processing. Thereafter, in the next step 2119, the tone parameters G[M 1 ] and G[M 2 ] obtained by the last arithmetic processing in the attack section are transferred. Through the above processing, all processing related to the attack part in the 16th channel is completed, but in order to execute calculations related to the 15th channel, the contents of the channel counter CC are decremented in the next step 2120. and set "(CC) = 15". In this case, if there are no keys to press for the 15th channel to the 1st channel, the program is executed at step 212.
1→Step 2101→Step 2102→Step 2120→Step 2121 are repeated, and when the content of the channel counter CC becomes "(CC)=0" after the processing regarding the first channel is completed, the judgment command of step 2121 is executed. The process returns to the main routine of FIG. 17 by branching to "(CC)=0?". If the time required to allocate channels and calculate various parameters for all channels has not reached a certain time, the timer 270 sends a timer flag signal.
Program execution is in a standby state until TFG is output. After that, when the timer flag signal TFG is output from the timer 270, the program execution starts from step 2005 in the main routine.
The process returns to the parameter calculation routine via the path from step 2001 to step 2003. In this parameter calculation routine, musical tone parameters G[CA] to G regarding the decay section are
[M 2 ] is calculated. In this case, the calculation of the musical tone parameters G[CA] to G[M 2 ] regarding the decay section is the same as in the case of the attack section, the contents of the T area corresponding to the musical tone parameters G[CA] to G[M 2 ], respectively ( T) [CA] ~ (T) [M 2 ] is “0”
This is executed in the Decay part calculation routine in step 2111 on the condition that The contents of the T area are only decremented by the decrement command in step 2114. This decrement processing of the contents (T) [CA] to (T) [M 2 ] of the T area is executed every time the contents of the channel counter CC go around. (Decary section calculation routine) Next, after a certain period of time, the channel counter
The contents of CC have gone through a cycle and become "(CC) = 16", and the tone parameters of the 16th channel G [CA] ~ G
Contents of T area corresponding to [M 2 ] (T) [CA] ~
Assuming that (T) [M 2 ] has become "0", first the tone parameter G specified by "(PC) = 6"
The calculation regarding the decay part of [CA] is executed as follows. In this case, the contents of the JA area (Table 26) corresponding to the musical tone parameter G [CA] specified by "(PC) = 6" are "(JA) = C" (steps in Figure 23). 2167). Therefore, the execution of the program starts from step 2101→step 2102→step 2103 shown in FIG.
→ Step 2104 → Step 2105 → Step 2106 → Step 2107 → Step 210
8→Step 2111, and in the Decay part calculation routine of Step 2111, calculation processing regarding the Decay part of the musical tone parameter G [CA] specified by the content "(PC)=6" of the parameter counter PC is performed. As mentioned above, the Decay section calculation routine is shared with the attack section calculation routine, and a detailed flowchart thereof is shown in FIG. When the program execution moves to the Decay part calculation routine shown in Fig. 23, the parameter counter is first
Contents of n area (n) corresponding to musical tone parameter G [CA] specified by PC content “(PC) = 6”
[CA] is read from the parameter calculation register PRG 16 , and the contents of this n area (n) [CA] are either “(n) [CA] > 0” or “(n) [CA] =
0" is determined. The content of n area (n) [CA] is “(n) [CA]>
0”, the calculation parameter Δ・
The number of additions of m [CA] is the calculation parameter n・
It is assumed that the number of times specified by m [CA] has not been reached, that is, the VALUE value regarding the decay part of musical tone parameter G [CA] has reached the final target value "n.
It is assumed that the content (n) [CA] of this n area has not been reached in the next step 2161, and then in step 2162 the musical tone parameter G [CA] is decremented.
Add the VALUE value and the calculation parameter Δ・m [CA], and this added value “VALUE + Δ・m
[CA]” again to the parameter calculation register PRG 16.
is stored as a VALUE value related to G[CA]. Then, in the next step 2163, the calculation parameter T·m [CA] regarding the calculation cycle is reset to the T area of the unit word specified by "(PC)=6" among the unit words of the parameter calculation register PRG 16 . . Calculation parameter T・m regarding calculation cycle
When the [CA] reset process is completed, the program execution moves to step 2164, where G[CA] of the parameter calculation register PRG 16 is reset.
Modulation data MDs [CA] is further added to the VALUE value for in the unit word
Stored as a VALUE value. Therefore, the VALUE value of the calculation parameter G[CA] at this point is expressed by the following equation 49 since the calculation parameter Δ·m[CA] is added only once. VALUE value of G [CA] = G [CA] at + Δ・
m[CA]+MDs[CA] (49) In Equation 49, G[CA]at is the VALUE value of the musical tone parameter G[CA] calculated in the attack section calculation routine. After this, the execution of the program returns to the parameter calculation routine shown in FIG.
16, the process returns to step 2101, and this time the musical tone parameter G specified by the content of the parameter counter PC "(PC)=5" is returned.
Perform calculations regarding the decay part of [LA]. In other words, the contents of the parameter counter PC are “(PC)=
5", the program is executed from step 2102 → step 2103 → step 21 on the condition that the contents of the T area (T) [LA] corresponding to the musical tone parameter G [LA] is "0".
04 → Step 2105 → Step 2106 → Step 2107 → Step 2108 → Step 2
111, and enters the decay part calculation routine again, where the calculation regarding the decay part of the musical tone parameter G [LA] specified by the content of the parameter counter PC "(PC) = 5" is calculated as the musical tone parameter G [CA ] is performed in the same way as the calculation. As a result, the unit word specified by the content of the parameter counter PC in the temporary parameter memory TPM 16 "(PC) = 5" contains the decay part of the musical tone parameter G[LA] shown by the following equation 50.
VALUE value is stored. VALUE value of G [LA] = G [LA] at + Δ・
m [LA] + MDs [LA] ... (50) In this way, the musical tone parameter G specified by the content of the parameter counter PC "(PC) = 5"
When the first calculation process regarding the decay part of [LA] is completed, the program execution returns to the parameter calculation routine shown in FIG. 20, and proceeds to step 2115.
decrement the contents of the parameter counter PC to ``(PC) = 4'', and then calculate the decay part of the musical tone parameter G [CT] specified by the contents of the parameter counter PC ``(PC) = 4''. This is done in the same way as in the case of "(PC)=5" described above. From now on, the contents of the parameter counter PC will be changed from "(PC)=4" to "(PC)=
3”, “(PC)=3” → “(PC)=2”, “(PC)=
2"→"(PC)=1", and the corresponding musical tone parameters G[P 1 ], G
The calculations regarding the decay parts of [M 1 ] and G[M 2 ] are performed in the same manner as in the above case. In addition, the musical tone parameter G in the Decay section
Calculation parameters Δ・corresponding to [M 1 ], G [M 2 ]
m[M 1 ] and Δ·m[M 2 ] are negative values because the musical tone signal level in the decay section generally decreases sequentially. Then, the first calculation regarding the decay part of the musical tone parameters G [CA] to [M 2 ] in the 16th channel is completed, and the contents of the parameter counter PC are changed to " (FC)=
0”, the program execution goes to step 21.
16→Step 2117→Step 2118, and in Step 2118, the frequency parameters R 1 and R 2 are calculated and the transfer processing of the calculated frequency parameters R 1 and R 2 and musical tone parameters G [CA] and [LA] is performed. conduct.
Thereafter, in the next step 2119, the tone parameters G[M 1 ] and G[M 2 ] obtained by the first calculation process regarding the decay section are transferred. Through the above processing, the first calculation processing regarding the decay part of musical tone parameters G[CA] to G[M 2 ] in the 16th channel is completed, but now the calculation processing regarding the 15th channel is completed. In order to execute this, in the next step 2120, the contents of the channel counter CC are decremented to "(CC)=15". In this case, assuming that there are no keys to press from the 15th channel to the 1st channel, the program execution will proceed from step 2121 to step 2101 to step 21.
02→Step 2120→Step 2121 are repeated, and after that, when the processing for the first channel is completed, the channel counter is
When the content of CC becomes "(CC) = 0", step 2
The process returns to the main routine of FIG. 17 by branching to the judgment instruction "(CC)=0?" at step 121. If the time required to allocate channels and calculate various parameters for all channels has not reached a certain time, execution of the program will be in a standby state until the timer flag signal TFG is output from the timer 270 (see Fig. 17). (See step 2004 of the main routine shown in Figure 1). Then timer 270
When the timer flag signal TFG is output from the main routine, the program execution proceeds from step 2005 to step 2001 to step 200 in the main routine.
The process returns to the parameter calculation routine via route 3. Then, in this parameter calculation routine (Fig. 20), the 16th
Performs calculation processing of various parameters of the channel.
In this case, musical tone parameters G [CA] ~ G [M 2 ]
Contents of T area corresponding to each (T) [CA]
The second calculation is performed in the decay part calculation routine of step 2111 on the condition that ~(T) [M 2 ] is "0", but the contents of the T area (T) [CA] ~ (T) If [M 2 ] indicates a positive value, the contents of this T area are transferred to step 2114.
It is only decremented by the decrement instruction. Thereafter, as a result of repeating such processing, the calculation processing of musical tone parameters G[CA] to G[M 2 ] by the decay part calculation routine in step 2111 results in calculation parameters n・m[CA] to n・m.
It is executed the number of times indicated by [M 2 ], and then the contents of the channel counter CC go through a cycle and become “(CC)=
16'', and the contents of the T area (T) [CA] to (T) [M 2 ] corresponding to the musical tone parameters G [CA] to G [M 2 ] of the 16th channel are "0".
Assuming that
04 → Step 2105 → Step 2106 → Step 2107 → Step 2108 → Step 2
The process returns to the decay part calculation routine via path 111. Then, the parameter counter
Musical tone parameter G [CA] specified by the contents of the PC
On the condition that the contents of n areas (n) [CA] to (n) [M 2 ] corresponding to ~G [M 2 ] are "0", the program is executed according to the judgment command in step 2160. The branch of step 216
Move to 5. This is the musical tone parameter G [CA]
This means that the calculation process for the decay part of ~G [M 2 ] has been executed the number of times specified by the calculation parameters n・m [CA] ~ n・m [M 2 ], and then the sustain part This means that we should move on to arithmetic processing related to Therefore, the execution of the program starts at step 2160.
When the process moves from step 2165 to step 2165, preparation processing for calculating tone parameters G[CA] to G[M 2 ] related to the sustain section is performed in each subsequent step. The preparation process for calculating the musical tone parameters G[CA] to G[M 2 ] regarding the sustain section is the same as the preparation process regarding the decay section, so a description thereof will be omitted. In this case, in the processing in the sustain section, modulation data MDs[ Since only CA] to MDs[M 2 ] are added, steps 2165 to
Effective processing in the preparation process in step 2172 is based on the calculation parameters T and T in step 2165.
The only steps are the setting process of m[CA] to T.m[M 2 ] and the replacement process of changing the contents of the JA area corresponding to each tone parameter to "(JA)=D" in step 2168. Then, the preparation process for calculating the decay part and the sustain part of musical tone parameters G[CA] to G[M 2 ] in the 16th channel is completed, and the contents of the parameter counter PC are changed to step 2115 (step 2115). When "(PC) = 0" is obtained by the decrement instruction in Figure 20), the program execution proceeds from step 2116 to step 2117.
→Proceed to step 2118, and step 2118
In this step, the final frequency parameters R 1 and R 2 in the decay section are calculated, and the calculated frequency parameters R 1 and R 2 and tone parameters G[CA] and G[LA] are transferred. Thereafter, in the next step 2119, the musical tone parameters G[M 1 ] and G[M 2 ] obtained by the last arithmetic processing in the decay section are transferred. Through the above processing, all processing related to the decay section in the 16th channel is completed, but in order to execute calculations related to the 15th channel, the contents of the channel counter CC are decremented in the next step 2120. and set "(CC) = 15". In this case, if there are no keys to press for the 15th channel to the 1st channel, the program execution will proceed to step 21.
21 -> Step 2101 -> Step 2102 -> Step 2120 -> Step 2121 are repeated, and after that, when the content of the channel counter CC becomes "(CC) = 0" at the stage when the processing related to the first channel is completed, the process returns to Step 2121.
Due to the branch of the judgment instruction “(CC)=0?”, the 17th
Return to the main routine shown in the figure. Then, when the timer flag signal TFG is output from the timer 270, the execution of the program shifts to the parameter calculation routine again, as in the case of transitioning from the arithmetic processing related to the attack section to the arithmetic processing related to the decay section. Musical tone parameters related to the sustain section G [CA] ~
Calculation processing of G [M 2 ] is performed. In this case, musical tone parameters G [CA] to G related to the sustain section
[M 2 ] is calculated using the contents of the T area (T) [CA] to (T) [M 2 ] corresponding to the tone parameters G[CA] to G[M 2 ], respectively, as in the case of the Decay section.
The content of this T area (T) [CA] is executed in the sustain part calculation routine in step 2112 on the condition that the value is "0".
If ~(T) [M 2 ] indicates a positive value, the contents of this T area are only decremented by the decrement command in step 2114.
This decrementing process of the contents of the T area is executed every time the contents of the channel counter CC go around. (Sustain part calculation routine) Next, after a certain period of time, the channel counter
The contents of CC have gone through a cycle and become "(CC) = 16", and the tone parameters of the 16th channel G[CA]~G
Contents of T area (T) corresponding to [M 2 ]
Assuming that [CA] to (T) [M 2 ] have become "0", first calculate the sustain part of the musical tone parameter G [CA] specified by "(PC) = 6" as follows. is executed. In this case, “(PC)=
The content of the JA area corresponding to the musical tone parameter G[CA] specified by "6" is "(JA)=D" (see step 2168 in FIG. 23). Therefore, the program execution starts at step 210.
1 → Step 2102 → Step 2103 → Step 2104 → Step 2105 → Step 21
06 → Step 2107 → Step 2108 → Step 2112, and then Step 2
In the sustain part calculation routine 112, calculation processing regarding the sustain part of the musical tone parameter G[CA] specified by the content "(PC)=6" of the parameter counter PC is performed. The sustain section calculation routine shares some steps with the attack section calculation routine and decay section calculation routine described above, and a detailed flowchart thereof is shown in FIG. Regarding the calculation processing in this sustain section calculation routine, similar to the calculation processing in the attack section and decay section described above, the tone parameters G[CA] to G[M 2 ] for each channel are calculated in a time-sharing manner and for each parameter. Parameter T・m
It is calculated with a period determined by [CA] ~ T・m [M 2 ], but T・m [CA] ~ T・m
The increase/decrease value for each calculation cycle determined by [M 2 ] is the modulation data MDs [CA] to MDs [M 2 ] corresponding to each musical tone parameter G [CA] to G [M 2 ] .
Only. This modulation data MDs [CA] ~
The addition process of MDs [M 2 ] is performed in step 21 in Fig. 23.
64. As a result, each unit word of the 16th channel polar parameter memory TPM 16 contains the VALUE of each tone parameter G[CA] to G[M 2 ] as shown in the above-mentioned equations 37 to 42.
The value is stored. Processing other than this, namely parameter conversion processing and musical tone parameter G [M 1 ],
The transfer process of G[M 2 ] is the same as the process in the attack section and the decay section, so a description thereof will be omitted. The above is an explanation of the arithmetic processing contents of musical tone parameters G[CA] to G[ M2 ] from the attack section to the sustain section when a new pressed key is assigned to the 16th channel. Next, a description will be given of the calculation processing of musical tone parameters G[CA] to G[ M2 ] in the release section when the pressed key assigned to the 16th channel is released. In addition, in the arithmetic processing from the attack section to the sustain section mentioned above, each tone parameter G
Calculation parameters T・corresponding to [CA] to G[M 2 ]
m [CA] ~ T・m [M 2 ], T・m [CA]
~T・m [M 2 ] and n・m [CA] ~n・
m [M 2 ], n・m [CA] to n・m [M 2 ] are all explained as the same value for convenience of explanation, but in reality, a unique value is set for each musical tone parameter. . Therefore, in this embodiment, the time change speed and change width per unit time of each musical tone parameter G[CA] to G[M 2 ] and the initial value of the attack part can be individually controlled, and as a result, Complex musical sound waveforms can be easily generated. Also, the above explanation is for the case where a new key to press is assigned only to the 16th channel, but when a key to press is assigned to other channels, the same applies to each channel independently. Of course, it is processed. (PRG Offset Routine) For example, when the pressed key assigned to the 16th channel is released, the channel assignment release process is executed according to the channel assignment release flow shown in FIG. , a preparatory process for calculating tone parameters G[M 1 ] and G[M 2 ] regarding the release part of the tone corresponding to this release key is executed. In this case, for the release part of the generated musical tone, the calculation processing of musical tone parameters G[CA] to G[Pi] related to pitch is not performed, and the musical tone parameter G related to the amplitude value is not executed.
Arithmetic processing is performed only for [M 1 ] and G [M 2 ]. FIG. 24 shows the PRG of step 2033 in the channel allocation flow shown in FIG. 18b.
This is a diagram showing a detailed flowchart of the offset routine, which shows the preparation process for calculating the musical tone parameters G[M 1 ] and G[M 2 ] regarding the release part of the musical tone corresponding to the release key in this PRG offset routine. will be carried out. That is, similar to the preparatory process for calculating the musical tone parameters G[CA] to G[ M2 ] for the attack and decay sections described above, this PRG offset routine calculates the musical tone parameters G for the release section.
A process for setting the calculation parameter T[Re] regarding the calculation cycle for calculating [M 1 ] and G[M 2 ] and the calculation parameter Δ[Re] regarding the increase/decrease value is executed. In this case, the values of the calculation parameters T[Re] and Δ[Re] to be set differ depending on the on/off state of the foot switch. Below, the 24th
This will be explained along the flowchart shown in the figure. When the program execution moves to the PRG offset routine shown in FIG.
At 0, the on/off state of the footswitch is checked. If the foot switch is in the OFF state, program execution moves to step 2181, where the JA area of the unit word specified by "(PC) = 6" in parameter calculation register PRG 16 (Table 26) Replace the contents of with "(JA)=E". In this case, the unit word specified by "(PC) = 6" in the parameter calculation register PRG 16 corresponds to the musical tone parameter G [CA], but the musical tone parameters G [M 1 ] and G related to the release part
When calculating [M 2 ], the tone parameter G
Parameter calculation register corresponding to [CA]
PRG 16 T area and JA area and TCT
-The ADR area is also used. This means that the arithmetic processing in the parameter calculation routine (Fig. 20) described above first starts with the musical tone parameter G specified by the content of the parameter counter PC "(PC) = 6".
Since it starts from [CA], if you do not use the above area, "(PC) = 6" ~
This is because the result is that unnecessary processing is performed until "(PC)=3" is reached. When the JA area replacement processing is completed, the content of the parameter counter PC is set to "(PC) = 0" in the next step 2182, and the next step 218
3, the calculation parameter Tm[Re] regarding the calculation cycle of the release portion is read from the TCT 210 and temporarily stored in the working register WRKr1 . This calculation parameter Tm [Re] is based on the tone number data TCN, the content of the parameter counter PC "(PC) = 0", and the subparameter counter
TCT210 by SPC content “(SPC)=2”
read from the release data area (18th
(see Table and Table 19). Then, in the next step 2184, the indirect calculation parameter Δ·ADRm[Re] regarding the increase/decrease value of the release portion is read out and temporarily stored in the working register WRKr2 .
This indirect calculation parameter Δ・ADRm
[Re] is determined by the tone number data TCN, the contents of the parameter counter PC “(PC) = 0” and the contents of the sub-parameter counter SPC “(SPC) = 4”.
It is read from the release data area of TCT210. When the above processing is completed, the next step 218
In step 5, the content of the parameter counter PC is set to "(PC) = 6", and after this, the next step 21
At step 86, the calculation parameter Tm [Re] temporarily stored in the working register WRKr 1 is loaded into the T area of the unit word of the parameter calculation register PRG 16 corresponding to the musical tone parameter G [CA]. Next, in step 2187, the calculation parameter Δ[Re] regarding the release part is set in the Δ table 2.
Δ table address information for reading from 30 is created. This Δ table address information is the indirect calculation parameter Δ・ADRm[Re] stored in working register WRKr 2 .
and the key code KC stored in the key code table KCT 16 . After this, the Δ table 230 is addressed with the Δ table address information "Δ・ADRm+KC" created in this way, and the calculation parameter Δm[Re] read out is stored in the working register.
Store it temporarily in WRKr 3 . Next, in step 2188, the content of the parameter counter PC is set to "(PC)=2", and in the next step 2189, the content of the working register is set to "(PC)=2".
Calculation parameter Δm stored in WRKr 3
[Re] is loaded into the Δ area of the unit word corresponding to the tone parameter G[M 1 ] of the parameter calculation register PRG 16 . After this, the next step 219
0, the content of the parameter counter PC is set to "(PC) = 1", and in the next step 2191, the calculation parameter Δm[Re] stored in the working register WRKr 3 is set to the tone parameter G of the parameter calculation register PRG 16 .
Load into the Δ area of the unit word corresponding to [M 2 ]. By executing each of the above steps, the preparation process when the foot switch is in the OFF state is completed, but when this preparation process is completed, the program execution shifts to the parameter calculation routine shown in FIG. The musical tone parameters G[M 1 ] and G[M 2 ] related to the release part are calculated. The calculation of these tone parameters G[M 1 ] and G[M 2 ] is as follows:
Parameter calculation register PRG 16 “(PC) =
The calculation parameter Tm [Re] stored in the unit word specified by ``6'' and the musical tone parameter G specified by ``(PC) = 2'' and ``(PC) = 1''.
It is executed based on the calculation parameters Δm[Re] stored in the unit words corresponding to [M 1 ] and G[M 2 ], respectively, and the execution results are the musical tone parameters G[M 1 ] and G[M 2 ]. ] of the unit word corresponding to
Stored sequentially in the VALUE area. Next, the preparation process when the foot switch is in the on state will be explained. First, when it is determined in step 2180 that the foot switch is in the on state, the program execution moves to the next step 2192.
Here, it is checked whether the keyboard code KBC of the released key corresponds to one of the upper keyboard UK, lower keyboard LK, and pedal keyboard PK. If the keyboard code NKBC of the release key corresponds to the upper keyboard UK, in the next step 2195, the upper keyboard code NKBC corresponds to the upper keyboard UK.
Registration release data for R
[Re]u is read from the registration register RGNr and loaded into the A accumulator AccA. If the keyboard code KBC of the release key corresponds to the lower keyboard LK, in the next step 2194, the registration release data R[Re]l regarding the lower keyboard LK is read from the registration register RGNr, and this is set to A. Load into accumulator AccA. Further, if the keyboard code KBC of the release key corresponds to the pedal keyboard PK, in the next step 2193, the registration release data R[Re]p regarding the pedal keyboard PK is read from the registration register RGNr,
Load this into the A storage unit. When the process of loading the registration release data R [Re] of the keyboard to which the release key belongs in this way into the A accumulator is completed, the release data R [Re] is loaded in the next step 2196.
The value of [Re] is “R[Re]>0” or “R
It is determined whether [Re]<0" or "R[Re]=0". Registration release data R [Re]
If the value is "R[Re]=0", the program execution moves to step 2181, and in the subsequent steps, the same preparation process as when the foot switch is in the OFF state is performed. If the value of the registration release data R[Re] is "R[Re]>0", the program execution moves from step 2196 to step 2197, and in step 2197 the parameter calculation register PGR 16 is set to "(PC )=6" is replaced with "(JA)=E", and then in the next step 2198, the parameter counter is
Let the contents of PC be "(PC)=2". Next, in step 2199, the release time data ΔV[Re] of the registration release data R[Re] stored in the A accumulator AccA is transferred to the parameter calculation register.
Load into the Δ area of the unit word specified by "(PC)=2" in PRG 16 . After this, in the next step 2200, the content of the parameter counter PC is set to "(PC)=1", and in the next step 2201, the release time data ΔV[Re] stored in the A accumulator AccA is set to the parameter calculation register PRG16. Load into the Δ area of the unit word specified by "(PC) = 1". The processing in steps 2199 and 2201 is the same as in step 21 when the foot switch is in the OFF state.
This corresponds to the processing in step 89 and step 2191. When the process of step 2201 is completed, the program execution shifts to the parameter calculation routine shown in FIG .
Perform the calculation. This musical tone parameter G [M 1 ], G
The calculation of [M 2 ] is performed using the calculation parameter Tm [Re] stored in the T area of the unit word specified by "(PC) = 6" of the parameter calculation register PRG 16 in the release section calculation routine described later. It is executed based on the release time data ΔV [Re] stored in the Δ area of the unit word corresponding to the musical tone parameters G [M 1 ] and G [M 2 ],
The execution results are musical tone parameters G [M 1 ], G
It is sequentially stored in the VALUE area of the unit word corresponding to [M 2 ]. Next, if the foot switch is in the on state and the registration release data R[Re] of the keyboard to which the release key belongs is "R[Re]<0", that is, if the registration release data setting pushbutton If the piano-shaped setting pushbutton is turned on, no processing is executed in this PRG offset routine, and the program execution continues at step 2 with "(JA) = D".
From 196, the process moves to a parameter calculation routine.
As a result, the release part characteristics of the generated musical sound will be in a state similar to the state in which the key is pressed, similar to operating the sustain pedal on a piano, and after that, when the foot switch is turned off,
Preparation processing is performed in steps 2181 to 2191 in the PRG offset routine described above. The above is the preparation process for calculating the tone parameters G[M 1 ] to G[M 2 ] regarding the release section when the pressed key assigned to the 16th channel is released. Next, the release portion calculation routine of the parameter calculation routine (FIG. 20) executed immediately after the execution of the PRG offset routine will be described. (Release Portion Calculation Routine) FIG. 25 is a detailed flowchart showing the release portion calculation routine in step 2113 of the parameter calculation routine shown in FIG. In this release part calculation routine, the content (T) [CA] of the T area of the unit word specified by "(PC) = 6" in the parameter calculation register PRG 16 is the initial value "(T) [CA] = When the value is sequentially decremented from ``Tm[Re]'' to ``0'', step 2102 → step 2103 → step 2104 in FIG.
This is executed when the execution of the program shifts according to the path of → step 2105 → step 2106 → step 2107 → step 2113. By the way, as is clear from the explanation of the PRG offset routine above, when the foot switch is off, the parameter calculation register is
The calculation parameters related to the calculation cycle are stored in the T area of the unit word specified by "(PC) = 6" in PRG 16 .
Tm[Re] is loaded, but when the foot switch is on and the registration release data R[Re] shows a positive value, "(PC) = 6" in the parameter calculation register PRG 16 .
No calculation parameters are loaded into the T area of the unit word specified by , and its contents remain the same as they were at the stage when the calculation processing related to the sustain section was completed, which is ``(T) = 0''. .
Therefore, the path from the final step of the PRG offset routine described above to step 2103 of the parameter calculation routine in FIG. 20 is as follows:
There are different types. The first route is when the foot switch is in the on state and the release data R [Re] shows a positive value (corresponding to the data pattern (a) described above), and is the one at step 2201 ( or 219
6) → Step 2100 in Figure 20 → Step 2
The route is 101→step 2102→step 2103. The second path is when the footswitch is in the OFF state, from step 2191 in FIG. 24 to step 2100 in FIG. 20 to step 2101.
The calculation parameter Tm[Re] is decremented from step 2102 to step 2114, and then the contents of the channel counter CC complete one cycle, and the decrement processing at step 2114 results in "(PC)=6". The contents of the T area (T) [CA] of the unit word specified by is "0"
When , step 2101 → step 210
2→step 2103. First, a description will be given of the processing when the execution of the program shifts to the release section calculation routine of FIG. 25 through the latter second path. In this case, first, in step 2210, the content of the parameter counter PC is set to "(PC)=2", and in the next step 2211 , the unit word ( The VALUE value of the unit word corresponding to the musical tone parameter G [M 1 ] and the content Δm [Re] of the Δ area are added, and the added value "VALUE +
Δm[Re]' is stored again as the VALUE value of the unit word. Next, in step 2212, the new VALUE value obtained in step 2211 is loaded into the unit word specified by "(PC) = 2" in the temporary parameter memory TPM 16 , and is also temporarily stored in the working register WRKr 1 . let After this, in the next step 2213, the content of the parameter counter PC is set to "(PC)=1", and in the next step 2214 , the unit word ( VALUE value of unit word corresponding to musical tone parameter G [M 2 ] and contents of Δ area Δm [Re]
and the added value "VALUE + Δm [Re]"
is stored again as the VALUE value of the unit word. Next, in step 2215, the new VALUE value obtained in step 2214 is set to "(PC)=1" in the temporary parameter memory TPM 16 .
At the same time, the working register WRKr 2 is also temporarily stored. Therefore, the VALUE values of musical tone parameters G[M 1 ] and G[M 2 ] obtained at this stage are calculated using the following equations 51 and 52, since the calculation parameter Δm[Re] is added once. It is expressed by the formula. VALUE value of G [M 1 ] = G [M 1 ] st + Δm
[Re] ... (51) VALUE value of G [M 2 ] = G [M 2 ] st + Δm
[Re] ...(52) Note that Δm[Re] is generally a negative value. Next, in step 2216, the VALUE value of the musical tone parameter G [M 1 ] stored in the working register WRKr 1 and the working register
The musical tone parameters stored in WRKr 2
Add the VALUE values and load the added value into the A accumulator AccA. Then, in the next step 2217, it is determined whether the content of the A accumulator AccA is "(AccA) = 0",
If "(AccA)=0", it is considered as a release end, and in the next step 2118 and subsequent steps, processing is performed to rewrite the transkate ranking values TRi of channel assignment tables CAT 1 to CAT 16 . Conversely, the judgment processing result in step 2217 is "(AccA)".
≠0”, processing for performing calculations regarding the release portion continues in the next step 2228 and subsequent steps. If the result of the judgment process in step 2217 is "AccA=0", the execution of the program moves to step 2228 via the terminal RL1 , where the content of the parameter counter PC is set to "(PC)=0". And next step 22
At step 29, the calculation parameter Tm[Re] regarding the calculation cycle of the release section is read from the TCT 210 and temporarily stored in the working register WRKr1 . After this, in step 2230, the content of the parameter counter PC is set to "(PC) = 6", and in the next step 2231, the calculation parameter Tm [Re] temporarily stored in the working register WRKr 1 is set to the parameter calculation register.
Load into the T area of the unit word specified by "(PC)=6" in PRG 16 . As a result, the second musical tone parameter G regarding the release part
This means that the calculation parameter Tm [Re] related to the calculation cycle for calculating [M 1 ] and G [M 2 ] has been set. When this process is completed, the program execution moves to the next step 2227, where the content of the parameter counter PC is set to "(PC) = 1", and the parameter conversion instruction flag register is set to "(PC) = 1".
Clear CFGr. The parameter conversion display flag register CFGr contains information about step 210 before the program execution moves to the release part calculation routine.
4 (FIG. 20), the parameter conversion instruction flag CFG is set to "1", but the calculation processing in the release section only calculates the calculation parameters G[M 1 ] and G[M 2 ] regarding the amplitude value. Therefore, there is no need to execute the parameter conversion routine processing in step 2218 (FIG. 20).
In step 2227, the contents of the parameter conversion instruction flag register CFGr are cleared. The process of the release part calculation routine is completed by the above steps, but after this, the program execution returns to the parameter conversion routine of FIG.
In step 2115, the contents of the parameter counter are decremented to "(PC)=0".
Then, the execution of the program moves to step 2117 according to the judgment instruction in step 2116, where the parameter conversion instruction flag register is set.
It is determined whether the contents of CFGr are "(CFGr)=1" or "(CFGr)=0". The parameter conversion instruction flag register CFGr is cleared in step 2227 (FIG. 25) of the release section calculation routine. Therefore, the program execution starts from step 2117 (FIG. 20) to step 2.
119, where musical tone parameters G[M 1 ] and G[M 2 ] related to the amplitude value are sent to the third processor section 300. As a result, the musical tone parameters G [M 1 ], G regarding the release part of the generated musical tone of the 16th channel
The first calculation process and transfer process for [M 2 ] are completed. Therefore, the program execution moves to the next step 2120, where the contents of the channel counter CC are decremented and "(CC)=
15'', and the process moves on to calculation processing of various parameters related to the 15th channel. In this case, the 15th
Assuming that there is no assigned key to be pressed from channel to channel 1, the program execution is from step 2120 to step 2121 to step 2101.
→ Step 2102 → Step 2120 are repeated, and Step 21 regarding the first channel is repeated.
When the process at step 2120 is completed, the content of the channel counter CC becomes "(CC)=0", and the execution of the program returns to the main routine (FIG. 17) by the judgment command at the next step 2121. After that, when the timer flag signal TFG is outputted from the timer 270, the program execution starts from step 2005 → step 2001 → step 2 in FIG.
The process returns to the parameter calculation routine via route 003. In this parameter calculation routine, the content (T) [CA] of the T area of the unit word specified by "(PC) = 6" is "(T) [CA]>
0'', the contents (T) [CA] of this T area are decremented by the decrement command in step 2114 every time the channel counter CC goes through the cycle. After that, the contents of this T area (T) [CA] are sequentially decremented by the decrement command in step 2114 to become "(T) [CA] = 0", and the contents of the channel counter CC have gone through the cycle to "( CC) = 16'', the program execution goes from step 2102 to step 2103 to step 2.
104→Step 2105→Step 2106→
The process returns to the release section calculation routine via the path from step 2107 to step 2113. Then, in steps 2211 and 2214 in the release section calculation routine of FIG. 25, the calculation parameter Δm[Re] is added again to the VALUE values of the musical tone parameters G[M 1 ] and G[M 2 ].
(Δm[Re] is generally a negative value), so that the musical tone parameter G[M 1 ] at the new time,
The VALUE value of G[M 2 ] is formed, but if the sum of the new VALUE values of the musical tone parameters G[M 1 ] and G[M 2 ] formed at this time is "0", The release end is determined by the judgment command in step 2217, and the program execution moves to the next step 2218. In the subsequent steps, channel assignment tables CAT 1 to
Performs processing to rewrite the CAT 16 truncation ranking value TRi. The truncate ranking values TRi of channel assignment tables CAT 1 to CAT 16 are shown in Figure 18b described above.
The priority to be truncated in the order in which the pressed keys are released by the channel allocation release flow is primarily set as a high value. Now, hypothetically, the channel assignment table CAT 1 to CAT 16 before the musical tone corresponding to the pressed key assigned to the 16th channel becomes the release end.
Assuming that the contents of Table 32 are as shown below, then Table 16
Since the musical tone corresponding to the pressed key assigned to the channel is detected as the release end, the program execution moves from step 2217 to step 2218, where the content of the parameter counter PC is set to "(PC) = 6". Then, in the next step 2219, "-1" is loaded into the contents of the T area of the unit word specified by "(PC)=6" in the parameter calculation register PRG16 . That is, the contents of the T area are made negative. As a result, the 16th channel is determined to be an empty channel in the parameter calculation routine. Also, in step 2219, the content "TRi]2" of the channel assignment table CAT 16 specified by the content "(CC)=16" of the channel counter CC is loaded into the release end channel number register RECr.

【表】【table】

【表】 この処理が終了すると、次のステツプ2220
において全てのチヤンネルアサインテーブル
CAT1〜CAT16の中から当該チヤンネルカウンタ
CCの内容「(CC)=16」で指定されている第16チ
ヤンネルのチヤンネルアサインテーブルCAT16
トランケート順位値TRiに比べ小さな値(高位の
トランケート順位値)のチヤンネルアサインテー
ブルCATを検出するため、CATサーチカウンタ
RCCに初期値として「16」をセツトする。そし
て、次のステツプ2221において、CATサー
チカウンタRCCの内容「(RCC)=16」で指定さ
れるチヤンネルアサインテーブルCAT16の内容を
読み出し、この内容が「0」より大きいかどうか
を判断する。 「(CAT16)<0」であれば、当該第16チヤンネ
ルはビジイチヤンネル、すなわち現在において押
下鍵が割当てられこれに対応する楽音が発音中で
あるチヤンネルとして判断され、プログラムの実
行はステツプ2225へ移行し、ここにおいて
CATサーチカウンタRCCの内容をデクレメント
して次のチヤンネルにおけるチヤンネルアサイン
テーブルの内容の判断処理に移る。 第32表の例のように、第16チヤンネルのチヤン
ネルアサインテーブルCAT16の内容が
「(CAT16)≧0」であれば、プログラムの実行は
次のステツプ2222へ移行し、ここにおいてリ
リースエンドチヤンネルナンバレジスタRECrの
記憶内容と、CATサーチカウンタRCCの内容
「(RCC)=16」で指定されたチヤンネルアサイ
ンテーブルCAT16の内容との差をとり、その差値
が正か、負か、あるいは「0」であるかを判断す
る。 この第31表の例のように、ステツプ2222に
よる差値が「0」であれば、当該「(RCC)=
16」で指定される第16チヤンネルがリリースエン
ドとなつたチヤンネルであると判断され、次のス
テツプ2223において当該第16チヤンネルのト
ランケート順位値「TRi=2」から「TRi=0」
に書換えられる。 この処理が終了すると、プログラムの実行はス
テツプ2225へ移行し、ここにおいてCATサ
ーチカウンタRCCの内容をデクレメントして
「(RCC)=15」とする。そして、次のステツプ
2226の判断処理において「(RCC)>0」で
あことを条件として、プログラムの実行はステツ
プ2226の分岐によりステツプ2221へ戻
り、今度は新たなCATサーチカウンタの内容
「(RCC)=15」で指定されるチヤンネルアサイ
ンテーブルCAT15の内容(CAT15)を読み出し、
この内容が「0」より大きいかどうかを判断す
る。 この第32表の例のように、第15チヤンネルのチ
ヤンネルアサインテーブルCAT15の内容が
「(CAT15)=0」であれば、プログラムの実行は
ステツプ2221からステツプ2222へ移行
し、ここにおいてリリースエンドチヤンネルナン
バレジスタRECrの内容と、「(RCC)=15」で指
定されたチヤンネルアサインテーブルCAT15の内
容との差をとり、その差値が正か、負か、あるい
は「0」であるかを判断する。 この第32表の例の場合、「(REC)r=2」
で、かつ「(CAT15)=0」であるため、その差値
「(CAT15)−(REC)r」は負となり、CATサー
チカウンタRCCの内容で指定されるチヤンネル
はリリースエンドチヤンネルナンバレジスタ
RECrに記憶されているCAT16のトランケート順
位値TRiに比べ高位のトランケート順位値をもつ
チヤンネルとして判断される。つまり、CATサ
ーチカウンタRCCの内容「(RCC)=15」で指定
される第15チヤンネルは、チヤンネルカウンタ
CCの内容「(CC)=16」で指定される第16チヤン
ネルに比べ高位のトランケート順位値TRiをもつ
チヤンネルとして判断され、次のステツプ222
4において当該CATサーチカウンタRCCの内容
「(RCC)=15」で指定されるチヤンネルアサイン
テーブルCAT15の内容が「+1」される。つま
り、第15チヤンネルのチヤンネルアサインテーブ
ルCAT15のトランケート順位値「TRi=0」が
「1」だけ大きな値「TRi=1」に書換えられ
る。 このようにしてチヤンネルカウンタCCの内容
で指定される発音チヤンネルのトランケート順位
値に比べ高いトランケート順位値TRiをもつ発音
チヤンネルにおけるトランケート順位値TRiの書
換え処置が終了すると、プログラムの実行はステ
ツプ2225へ移行し、ここにおいてCATサー
チカウンタRCCの内容をデクレメントして
「(RCC)=14」とし、この新たな内容「(RCC)
14」で指定されるチヤンネルアサインテーブル
CAT14の内容の判断処理に移る。 この第32表の例の場合、第14チヤンネルにおけ
るトランケート順位値は「TRi=1」となつてい
るため、前述の第15チヤンネルの場合と同様な処
理により、第14チヤンネルのトランケート順位値
には「+1」が加算されて「TRi=2」に書換え
られる。 この処理が終了すると、ステツプ2225にお
いてCATサーチカウンタRCCの内容をデクレメ
ントして「(RCC)=13」とし、今度は第13チヤ
ンネルに対応するチヤンネルアサインテーブル
CAT13の内容の判断処理に移る。 この第32表の例の場合、第13チヤンネルにおけ
るCAT13の内容、すなわちトランケート順位値は
「TRi=3」となつている。このため、ステツプ
2222においてリリースエンドチヤンネルナン
バレジスタRECrの内容「(RECr)=2」と、こ
の第13チヤンネルにおけるトランケート順位値
「TRi=3」との差値を計算すると、その差値は
正となり、この第13チヤンネルはチヤンネルカウ
ンタCCの内容で指定される第16チヤンネルに比
べて低位のトランケート順位値TRiをもつチヤン
ネルとして判断され、プログラムの実行はステツ
プ2222からステツプ2225へ移行する。つ
まり、チヤンネルカウンタCCの内容で指定され
る発音チヤンネルに比べて低位のトランケート順
位値TRiをもつ発音チヤンネルは、そのトランケ
ート順位値TRiは何等変更されない。 以上のような処理はCATサーチカウンタRCC
の内容が「(RCC)=0」となるまで繰り返し実
行される。そして、「(RCC)=0」となると、ス
テツプ2226の判断命令により、プログラムの
実行はステツプ2227へ移行し、ここにおいて
所定の処理を行つた後、第20図のパラメータ計
算ルーチンへ戻る。このように、ステツプ222
0ステツプ2226に至る処理は、最も新しくリ
リースエンドとなつたチヤンネルのトランケート
順位値TRiを最高位の「0」とすると共に、当該
リリースエンドとなつたチヤンネルのトランケー
ト順位値TRiより高位のトランケート順位値TRi
をもつチヤンネルを検出し、この検出したチヤン
ネルのトランケート順位値TRiを「1」だけ低位
方向へ繰り下げる処理、すなわちTRiに「+1」
する処理である。このようにすることによつて、
リリース部の途中にある楽音を発音しているチヤ
ンネルに対して新たな押下鍵の発音割当てを行う
ことがなくなり、真にリリースエンドとなつたチ
ヤンネルに対して新たな押下鍵の発音割当てを行
うことができ、効率良く発音チヤンネルを使用す
ることができる。従つて、このようなトランケー
ト順位値TRiの書換え処理によつて、前述した第
32表の例におけるトランケート順位値TRiは次の
第33表に示すような結果となる。
[Table] When this process is completed, the next step 2220
All channel assignment tables in
The corresponding channel counter from CAT 1 to CAT 16
To detect a channel assignment table CAT with a smaller value (higher truncate rank value) than the truncate rank value TRi of channel assignment table CAT 16 of the 16th channel specified by the CC content "(CC) = 16", CAT search counter
Set "16" as the initial value in RCC. Then, in the next step 2221, the content of the channel assignment table CAT 16 specified by the content "(RCC)=16" of the CAT search counter RCC is read out, and it is determined whether this content is greater than "0". If "(CAT 16 ) <0", the 16th channel is determined to be a busy channel, that is, the channel to which the pressed key is currently assigned and the corresponding musical tone is being produced, and the program execution proceeds to step 2225. and here
The contents of the CAT search counter RCC are decremented and the process moves on to determining the contents of the channel assignment table for the next channel. As in the example in Table 32, if the content of the channel assignment table CAT 16 of the 16th channel is "(CAT 16 ) ≧ 0", the program execution moves to the next step 2222, where the release end channel is The difference between the stored contents of the number register RECr and the contents of the channel assignment table CAT 16 specified by the contents of the CAT search counter RCC "(RCC) = 16" is calculated, and whether the difference value is positive, negative, or "0". As in the example in Table 31, if the difference value at step 2222 is “0”, then the “(RCC)=
The 16th channel specified by "16" is determined to be the channel that has become the release end, and in the next step 2223, the truncation ranking value of the 16th channel is changed from "TRi=2" to "TRi=0".
can be rewritten as When this process is completed, the program execution moves to step 2225, where the content of the CAT search counter RCC is decremented to "(RCC)=15". Then, in the judgment processing at the next step 2226, if "(RCC)>0" is satisfied, the execution of the program returns to step 2221 by branching at step 2226, and this time, the new CAT search counter content "(RCC) ) = 15'', reads the contents of the channel assignment table CAT 15 (CAT 15 ), and
Determine whether this content is greater than "0". As in the example in Table 32, if the content of the channel assignment table CAT 15 for the 15th channel is "(CAT 15 ) = 0", the program execution moves from step 2221 to step 2222, where the release is performed. Calculates the difference between the contents of the end channel number register RECr and the contents of the channel assignment table CAT 15 specified by "(RCC) = 15", and determines whether the difference value is positive, negative, or "0". to judge. In the case of this example in Table 32, “(REC)r=2”
And since "(CAT 15 ) = 0", the difference value "(CAT 15 ) - (REC) r" is negative, and the channel specified by the contents of the CAT search counter RCC is the release end channel number register.
This channel is determined to have a higher truncate rank value than the CAT 16 truncate rank value TRi stored in RECr. In other words, the 15th channel specified by the content of the CAT search counter RCC "(RCC) = 15" is the channel counter
It is determined that the channel has a higher truncation ranking value TRi than the 16th channel specified by the CC content "(CC) = 16", and the next step 222 is performed.
In step 4, the content of the channel assignment table CAT 15 specified by the content of the CAT search counter RCC "(RCC)=15" is incremented by "+1". That is, the truncate order value "TRi=0" of the channel assignment table CAT 15 of the 15th channel is rewritten to a value "TRi=1" which is larger by "1". When the rewriting of the truncate rank value TRi of the sounding channel having the higher truncate rank value TRi than the truncate rank value of the sounding channel specified by the contents of the channel counter CC is completed in this way, the program execution moves to step 2225. Here, the content of the CAT search counter RCC is decremented to "(RCC) = 14", and this new content "(RCC)
Channel assignment table specified by "14"
Let's move on to determining the content of CAT 14 . In the case of this example in Table 32, the truncate rank value for the 14th channel is "TRi = 1", so the truncate rank value for the 14th channel is “+1” is added and rewritten as “TRi=2”. When this process is completed, the contents of the CAT search counter RCC are decremented to "(RCC)=13" in step 2225, and the channel assignment table corresponding to the 13th channel is now
Let's move on to determining the content of CAT 13 . In the case of this example in Table 32, the content of CAT 13 in the 13th channel, that is, the truncate ranking value is "TRi=3". Therefore, when the difference value between the contents of the release end channel number register RECr "(RECr) = 2" and the truncation ranking value "TRi = 3" for this 13th channel is calculated in step 2222, the difference value is positive. , this 13th channel is determined to be a channel with a lower truncation rank value TRi than the 16th channel specified by the contents of the channel counter CC, and the program execution moves from step 2222 to step 2225. In other words, the truncate ranking value TRi of a sounding channel having a lower truncate ranking value TRi than the sounding channel specified by the contents of the channel counter CC is not changed in any way. The above processing is performed using the CAT search counter RCC.
is repeatedly executed until the content becomes "(RCC)=0". When "(RCC)=0", the execution of the program moves to step 2227 in response to the judgment command in step 2226, where predetermined processing is performed, and then the process returns to the parameter calculation routine of FIG. 20. Thus, step 222
The process leading to the 0 step 2226 sets the truncate rank value TRi of the channel that has become the latest release end to the highest "0", and also sets the truncate rank value TRi that is higher than the truncate rank value TRi of the channel that has become the release end. TRi
Detects a channel with , and lowers the truncation rank value TRi of this detected channel by "1", that is, adds "+1" to TRi.
This is the process of By doing this,
A new pressed key is no longer assigned to a channel that is producing a musical note in the middle of the release section, and a new pressed key is assigned to a channel that has truly reached the release end. This allows you to use pronunciation channels efficiently. Therefore, by rewriting the truncate order value TRi as described above, the above-mentioned
The truncation ranking value TRi in the example of Table 32 results in the results shown in Table 33 below.

【表】 次に、フツトスイツチがオン状態で、かつレジ
ストレーシヨンリリースデータR〔Re〕が「R
〔Re〕>0」の場合、前述のPRGオフセツトルー
チンにおいて楽音パラメータG〔M1〕,G〔M2
に対応するΔエリアにレジストレーシヨンリリー
スデータR〔Re〕のリリースタイムデータΔV
〔Re〕が増減値に関する演算パラメータとして設
定されるが、演算周期に関する演算パラメータ
Tm〔Re〕は設定されない。従つて、リリース部
計算ルーチンのステツプ2211〜2215の演
算処理を実行すると、第1回目の演算処理による
楽音パラメータG〔M1〕,G〔M2〕のVALUE値
は次の第53式〜第54式で表わされる。 G〔M1〕のVALUE値=G〔M1〕st+ΔV
〔Re〕 ……(53) G〔M2〕のVALUE値=G〔M2〕st+ΔV
〔Re〕 ……(54) そして、これらの楽音パラメータG〔M1〕,G
〔M2〕のVALUE値の合計がリリースエンドに相当
するVALUE値であれば、リリース部計算ルーチ
ンのステツプ2218以降においてトランケート
順位値TRiの書換え処理が行なわれ、これによつ
てリリース部計算ルーチンの処理が終了する。し
かし、楽音パラメータG〔M1〕,G〔M2〕の
VALUE値の合計がリリースエンドに相当する
VALUE値でなければ、プログラムの実行はステ
ツプ2228(第25図)へ移行し、これ以降の
ステツプ2229〜2231において演算パラメ
ータTm〔Re〕の設定処理を行う。つまり、
「(PC)=6」で指定されたTエリアに初期値と
してTm〔Re〕をロードする。ここにおいて初期
設定された演算パラメータTm〔Re〕は、その後
においてチヤンネルカウンタCCが一巡するたび
にデクレメントされる。そして、この「(PC)=
6」で指定される単位ワードのTエリアの内容
(T)〔CA〕が初期値「(T)〔CA〕=Tm〔Re〕」
から順次デクレメントされて「0」になり、か
つ、チヤンネルカウンタCCの内容が一巡してく
ると、プログラムの実行は再びリリース部計算ル
ーチンへ戻り、ここにおいて楽音パラメータG
〔M1〕,G〔M2〕の算出処理を行う。この算出処理
は楽音パラメータG〔M1〕,G〔M2〕のVALUE
値の合計がリリーンエンドに相当するVALUE値
になるまで繰り返し実行される。従つて、この場
合のリリースエンドに至るまでの楽音パラメータ
G〔M1〕,G〔M2〕のVALUE値は次の第55式〜
第56式で表わされ、 G〔M1〕のVALUE値=G〔M1〕st+n×ΔV
〔Re〕 ……(55) G〔M2〕のVALUE値=G〔M2〕st+n×ΔV
〔Re〕 ……(56) (但し、n:演算回数を表わす整数) 演算パラメータTm〔Re〕によつて定まる周期毎
に、ΔV〔Re〕で示される値づつ変化する時間
関数となる。この結果、発生楽音のリリース部特
性は、前記パラメータTm〔Re〕とΔV〔Re〕
とによつて定まる電子オルガンタイプのリリース
部特性となる。 以上が新たな押下鍵がチヤンネル割当てされ、
これに対応する楽音のアタツク部,デイケイ部,
サステイン部,リリース部に至る楽音パラメータ
G〔CA〕〜G〔M2〕を算出する各種プログラム
の説明であるが、次に、これらの楽音パラメータ
G〔CA〕〜G〔M2〕を算出している途中におい
て第1プロセツサ部100からフツトスイツチの
オンイベントまたはオフイベントに関するメツセ
ツジが転送されてきた場合の処理について説明す
る。 (リリースコントロールルーチン) 全チヤンネルの楽音パラメータG〔CA〕〜G
〔M2〕を算出している途中において、第1プロセ
ツサ部100からフツトスイツチのオンイベント
メツセージまたはオフイベントメツセージが転送
されてくると、第17図のメインルーチンにおけ
るステツプ2006のリリースコントロールルー
チンが実行される。 第26図はリリースコントロールルーチンの詳
細フローチヤートを示す図であつて、プログラム
の実行がメインルーチンのステツプ2001から
このリリースコントロールルーチンへ移行する
と、まずステツプ2240においてフツトスイツ
チに関する転送メツセージがオンイベントメツセ
ージなのか、あるいはオフイベントメツセージな
のかが判断される。 フツトスイツチに関する転送メツセージがオン
イベントメツセージである場合、プログラムはス
テツプ2241へ移行し、ここにおいてフツトス
イツチフラグレジスタFFGrに“1”のフツトス
イツチフラグFFGをセツトする。この後、パラ
メータ計算ルーチンへ移行し、この時点において
解放鍵があればこの解放鍵に関するリリースコン
トロールをフツトスイツチのオン状態に対応して
行う。 一方、フツトスイツチに関するメツセージがオ
フイベントメツセージであつた場合、プログラム
の実行はステツプ2242へ移行し、これ以降の
ステツプにおいて鍵の割当てがすでに解除され、
かつパラメータ計算用レジスタPRGの「(PC)=
6」で指定される単位ワードのJAエリアの内容
が「(JA)=E」となつていないチヤンネルを検
出し、このチヤンネルの前記JAエリアの内容を
「(JA)=E」に置換する処理を行うと共に、前述
のPRGオフセツトルーチンにおけるフツトスイ
ツチのオフ状態の時と同様の処理を行う。つま
り、ステツプ2242においてチヤンネルカウン
タCCに初期値として「16」をロードし、この後
次のステツプ2243においてパラメータカウン
タPCの内容を「(PC)=6」とする。そして、次
のステツプ2244において、チヤンネルカウン
タCCの内容で指定されたチヤンネルアサインテ
ーブルCATの内容を読み出し、この内容が
「(CAT)<0」か、あるいは「(CAT)≧0」か
を判断する。「(CAT)<0」であれば、何等かの
押下鍵が現在割当てられているものとして判断
し、プログラムの実行はステツプ2257のデク
レメント命令へ移行し、ここにおいてチヤンネル
カウンタCCの内容をデクレメントして「(CC)=
15」とする。逆に「(CAT)≧0」であれば、当
該チヤンネルは空白チヤンネルであるものとして
判断し、次のステツプ2245において当該空白
チヤンネルに対応するパラメータ計算用レジスタ
の「(PC)=6」で指定される単位ワードのJAエ
リアの内容を読み出し、その内容が「(JA)=
E」か、あるいは「(JA)≠E」かを判断する。
「(JA)=E」となつていればプログラムの実行は
ステツプ2257へ移行し、ここにおいてチヤン
ネルカウンタCCの内容をデクレメントする。し
かし、「(JA)≠E」であれば、当該チヤンネル
は解放鍵に関するチヤンネル割当て解除がすでに
実行されているにもかかわらず、前記「(PC)=
6」で指定される単位ワードのJAエリアにはリ
リース部に関する演算を指示するための内容
「E」が設定されていないことになるため、次の
ステツプ2246において前記JAエリアの内容
を「(JA)=E」と置換する。次に、ステツプ2
247においてパラメータカウンタPCの内容を
「(PC)=0」とし、次のステツプ2248におい
てTCT210からリリース部分の演算周期に関
する演算パラメータTm〔Re〕を読み出し、これ
をワーキングレジスタWRKr1に一時記憶させ
る。この演算パラメータTm〔Re〕は、音色ナン
バデータTCNとパラメータカウンタPCの内容
「(PC)=0」およびサブパラメータカウンタSPC
の内容「(SPC)=2」によつてTCT210から
読み出される。 そして、次のステツプ2249において、リリ
ース部分の増減値に関するインダイレクト演算パ
ラメータΔ・ADRm〔Re〕を読み出し、これを
ワーキングレジスタWRKr2に一時記憶させる。
このインダイレクト演算パラメータΔ・ADRm
〔Re〕は、音色ナンバデータTCNとパラメータカ
ウンタPCの内容「(PC)=0」およびサブパラメ
ータカウンタSPCの内容「(SPC)=4」によつて
TCT210から読み出される。 以上の処理が終了すると、次のステツプ225
0においてパラメータカウンタPCの内容を
「(PC)=6」とし、この後、次のステツプ22
51においてワーキングレジスタWRKr1に一時
記憶されている演算パラメータTm〔Re〕を楽音
パラメータG〔CA〕に対応するパラメータ計算
用レジスタPRG16の単位ワードのTエリアにロー
ドする。 次に、ステツプ2252においてリリース部に
関する演算パラメータΔm〔Re〕をΔテーブル
230から読み出すためのΔテーブルアドレス情
報が作られる。このΔテーブルアドレス情報は、
ワーキングレジスタWRKr2に記憶されているイ
ンダイレクト演算パラメータΔ・ADRm〔Re〕
と、キーコードテーブルKCT16に記憶されている
キーコードKCとを加算することによつて作られ
る。この後、このようにして作成したΔテーブル
アドレス情報「Δ・ADRm+KC」でΔテーブル
230をアドレスし、これによつて読み出した演
算パラメータΔm〔Re〕をワーキングレジスタ
WRKr3に一時記憶させる。 次に、ステツプ2253においてパラメータカ
ウンタPCの内容を「(PC)=2」とし、次のステ
ツプ2254において前記ワーキングレジスタ
WRKr3に記憶されている演算パラメータΔm
〔Re〕をパラメータ計算用レジスタPRG16の楽音
パラメータG〔M1〕に対応する単位ワードのΔエ
リアにロードする。この後、次のステツプ225
5においてパラメータカウンタPCの内容を
「(PC)=1」とし、次のステツプ2256にお
いて前記ワーキングレジスタWRKr3に記憶され
ている演算パラメータΔm〔Re〕をパラメータ
計算用レジスタPRG16の楽音パラメータG
〔M2〕に対応する単位ワードのΔエリアにロード
する。この処理が終了すると、プログラムの実行
は次のステツプ2257へ移行し、ここにおいて
チヤンネルカウンタCCの内容をデクレメント
し、このデクレメントしたチヤンネルカウンタ
CCの内容が「(CC)=0」でなければステツプ2
258の分岐によりステツプ2244へ戻り、再
び前述の場合と同様の処理を行う。そして、チヤ
ンネルカウンタCCの内容が「(CC)=0」になる
と、プログラムの実行はパラメータ計算ルーチン
へ移行する。以上の説明から明らかなように、こ
のリリースコントロールルーチンのステツプ22
42〜2258による処理は、前述のPRGオフ
セツトルーチン(第24図)における「フツトス
イツチがオフ状態、またはレジストレーシヨンリ
リースデータR〔Re〕が負の場合」の後処理に
相当するものである。 (パラメータ変換ルーチン) 次に、第20図のパラメータ計算ルーチンにお
けるステツプ2118のパラメータ変換ルーチン
について説明する。 第27図はパラメータ変換ルーチンの詳細フロ
ーチヤートを示す図であつて、このパラメータ変
換ルーチンはパラメータ変換指示フラグレジスタ
CFGrの内容が「(CFGr)=1」の時実行され、
前述のパラメータ計算ルーチンで得られた楽音パ
ラメータG〔CA〕,G〔CT〕,G〔Pi〕,R
〔Pi〕に基づき周波数パラメータR1,R2が対数演
算によつて求められる。 周波数パラメータR1およびR2の算出処理は、
前述の第1′式〜第2′式および第3式〜第4式に基
づいて行なわれる。 以下、フローチヤートに沿つて説明する。 まず、ステツプ2270においてKレジスタ
Krに“0”をセツトする。これは、最初に周波
数パラメータR1〜R2のうちR1を算出すべきこと
を表わしている。 そして、次のステツプ2271においてパラメ
ータ計算ルーチンで算出した楽音パラメータG
〔CA〕をアドレス情報として対数テーブル250
(第1図)に供給し、これによつて対数テーブル
250から楽音パラメータG〔CA〕に対応する
対数楽音パラメータlogαCAを読み出し、これを
logCAレジスタLCAr(第23表)に一時記憶させ
る。同様に、次のステツプ2272においてパラ
メータ計算ルーチンで算出した楽音パラメータG
〔CT〕をアドレス情報として対数テーブル250
に供給し、これによつて対数テーブル250から
楽音パラメータG〔CT〕に対応する対数楽音パ
ラメータlogαCTを読み出し、これをlogCTレジ
スタLCTr(第23表)に一時記憶させる。 この処理が終了すると、次のステツプ2273
において次の第57式で表わされる演算を行い、こ
の実行結果をyレジスタyr(第23表)に一時記憶
させる。 y=(logαCA−logαCT)+21−NC+G2
〔Pi〕+R〔Pi〕 ……(57) なお、第57式において、NCを21倍しているの
は各ノート間を21分割しているためである。 これによつて音色ナンバデータTCN,レジス
トレーシヨンピツチデータ,イニシヤルタツチデ
ータ,モジユレーシヨンデータおよび押下鍵音高
に対応し、かつ対数表現された周波数パラメータ
yが求められたわけである。 ところで、このステツプ2273により算出さ
れた周波数パラメータyの値は、前記各種データ
の値の与え方によつては「y<0」となつたり
「y≧252」となつたりする。周波数パラメータy
の値が「y<0」あるいは「y≧252」であれ
ば、RNT260のアドレスが0〜251までの範囲
のみであるため、RNT260から自然数で表現
された周波数パラメータyを読み出すことが不可
能となる。 そこで、周波数パラメータyの値が「y<0」
あるいは「y≧252」である場合にはこれを「0
≦y≦251」となるように補正するための処理が
ステツプ2274〜2282において実行され
る。つまり、ステツプ2274において、補正値
Jが記憶されるJレジスタJr(第23表)をクリア
し、次のステツプ2275においてyレジスタyr
の内容が「y<0」か、あるいは「y≧0」かを
判断する。 yレジスタyrの内容が「y≧0」の場合、プロ
グラムの実行は次のステツプ2276へ移行し、
ここにおいて今度はyレジスタyrの内容が「y≦
250」か、あるいは「y>251」かを判断する。こ
の判断処理の結果、「y≦251」でかつ「y≧
0」,すなわち「0≦y≦251」であるということ
がわかると、プログラムの実行はステツプ228
3へ移行し、ここにおいてyレジスタyrの内容を
アドレス情報としてRNT260(第1図)に供
給し、これによつてRNT260から自然数で表
現された周波数パラメータR′を読み出す。 yレジスタyrの内容が「y<0」の場合、プロ
グラムの実行はステツプ2277へ移行し、ここ
においてyレジスタyrの内容に「252」を加え、
これを新たなyレジスタyrの内容とする。yレジ
スタyrの内容に「252」を加算するということ
は、yレジスタyrの内容を1オクターブ分に相当
する音域だけシフトしたことになる。この場合、
yレジスタyrの内容は「y<0」であるから、高
音域の方向へ1オクターブ分だけシフトされたこ
とになる。従つて、この処理を行つたことを記憶
しておくため、次のステツプ2278においてJ
レジスタJrの内容を「1」だけデクレメントす
る。そして、次のステツプ2279において1オ
クターブ分だけその内容をシフトしたyレジスタ
yrの内容が「y≧0」か、あるいは「y<0」か
を判断する。この判断処理の結果、yレジスタyr
の内容が「y≧0」であることがわかると、プロ
グラムの実行は次のステツプ2283へ移行し、
ここにおいて1オクターブ分だけその内容がシフ
トされているyレジスタyrの内容をアドレス情報
としてRNT260に供給し、これによつてRNT
260から自然数で表現された周波数パラメータ
R′を読み出す。この後、次のステツプ2284
において、RNT260から読み出された周波数
パラメータR′に対し、JレジスタJrの内容
「(Jr)=−1」に基づき1オクターブ分だけの補
正を行うと共に、レジストレーシヨンフイートデ
ータR〔Fe〕による補正を行う。この補正処理
は、次に示す第58式によつて表わされ、「OC+J
+R〔Fe〕」の値に相当する分 R=R′×20C+J+R〔Fe〕 ……(58) だけ周波数パラメータR′のビツト位置を最上位
ビツト方向へシフトすることによつて実現され
る。 一方、ステツプ2279による判断処理の結
果、yレジスタyrの内容が「y<0」であること
がわかると、プログラムの実行は再びステツプ2
277へ戻り、ここにおいてyレジスタyrの内容
をさらに1オクターブ分だけシフトする。この補
正処理は、yレジスタyrの内容が「0≦y≦
251」になるまで繰り返し行なわれる。 また、yレジスタyrの内容が「y>251」の場
合の補正処理も同様にして行なわれる。 つまり、yレジスタyrの内容が「y>251」で
あることがステツプ2276の判断処理によつて
わかると、プログラムの実行はステツプ2280
へ移行し、ここにおいてyレジスタyrの内容から
「252」を減算して1オクターブ分だけ低音域側へ
シフトする。そして、次のステツプ2281にお
いてJレジスタJrの内容を「+1」だけインクリ
メントする。次に、ステツプ2282において再
びレジスタyrの内容を検査し、「y≦251」であれ
ば次のステツプ2283の命令を実行し、「y>
251」であればステツプ2282からステツプ2
280へ戻り、再びyレジスタyrの内容の補正処
理を行う。 以上のような演算処理によつて算出された周波
数パラメータR1は、ステツプ2285において
FIFO2を介して第3プロセツサ部300に対し
て転送される。この後、プログラムの実行はステ
ツプ2286へ移行し、ここにおいてKレジスタ
Krの内容が「(Kr)=1」かどうかを判断する。
KレジスタKrの内容が「(Kr)≠1」ならば次の
ステツプ2288へ移行し、ここにおいてKレジ
スタKrの内容を「(Kr)=1」とした後、次のス
テツプ2289において「G〔CA〕=1024−G
〔CA〕」および「G〔CT〕=1024−G〔CT〕」の
演算処理を行い、この新たに算出された楽音パラ
メータG〔CA〕,G〔CT〕に基づきステツプ2
271〜2284において周波数パラメータR2
の算出処理を行う。そして、周波数パラメータ
R2の転送処理が終了すると、プログラムの実行
はKレジスタKrの内容が「(Kr)=1」となつて
いるため、ステツプ2286から2287へ移行
し、ここにおいて楽音パラメータG〔CA〕およ
びG〔LA〕を第3プロセツサ部300に対して
転送する。この転送処理が終了すると、プログラ
ムの実行はパラメータ計算ルーチン(第20図)
のステツプ2119へ移行し、ここにおいて振幅
値に関係する楽音パラメータG〔M1〕およびG
〔M2〕を第3プロセツサ部300に対して転送す
る。 第3プロセツサ部300に転送される周波数パ
ラメータR1およびR2は、それぞれ整数部と小数
部からなる2ワード構成のデータR1H(整数
部),R1LおよびR2H(整数部),R2Lとして各々
送られる。そして、これら周波数パラメータR1
,R1LおよびR2H,R2Lならびに楽音パラメー
タG〔CA〕,G〔LA〕,G〔M1〕,G〔M2〕は、
次の第34表に示すように、各々のパラメータに対
応する識別符号が付され、かつ先頭データとして
判別コードに相当する発音チヤンネルのチヤンネ
ル番号が付されて転送される。これは、振幅値に
関する楽音パラメータG〔M1〕,G〔M2〕のみを
転送する場合も同様である。
[Table] Next, when the foot switch is on and the registration release data R [Re] is
[Re] > 0”, tone parameters G[M 1 ], G[M 2 ] are set in the PRG offset routine described above.
The release time data ΔV of the registration release data R [Re] is in the Δ area corresponding to
[Re] is set as the calculation parameter related to the increase/decrease value, but the calculation parameter related to the calculation cycle is
Tm[Re] is not set. Therefore, when the arithmetic processing in steps 2211 to 2215 of the release section calculation routine is executed, the VALUE values of the musical tone parameters G[M 1 ] and G[M 2 ] obtained by the first arithmetic processing are determined by the following equations 53 to 2215. It is expressed by the formula 54. VALUE value of G [M 1 ] = G [M 1 ] st + ΔV
[Re] ... (53) VALUE value of G [M 2 ] = G [M 2 ] st + ΔV
[Re] ...(54) And these tone parameters G[M 1 ], G
If the sum of the VALUE values of [M 2 ] is a VALUE value corresponding to the release end, the truncate order value TRi is rewritten from step 2218 onwards in the release part calculation routine. Processing ends. However, the musical tone parameters G[M 1 ] and G[M 2 ]
The sum of VALUE values corresponds to the release end
If it is not the VALUE value, the program execution moves to step 2228 (FIG. 25), and in subsequent steps 2229 to 2231, the calculation parameter Tm[Re] is set. In other words,
Load Tm[Re] as an initial value into the T area specified by "(PC) = 6". The calculation parameter Tm[Re] initialized here is then decremented each time the channel counter CC makes one round. And this “(PC)=
The contents of the T area of the unit word specified by "6" (T) [CA] is the initial value "(T) [CA] = Tm [Re]"
When the value of the channel counter CC is sequentially decremented to "0" and the contents of the channel counter CC have completed one cycle, the program execution returns to the release section calculation routine, where the tone parameter G is
[M 1 ] and G [M 2 ] are calculated. This calculation process is performed using the VALUE of musical tone parameters G [M 1 ] and G [M 2 ].
It is executed repeatedly until the sum of the values reaches the VALUE value corresponding to the relean end. Therefore, in this case, the VALUE values of musical tone parameters G[M 1 ] and G[M 2 ] up to the release end are expressed by the following formula 55 ~
It is expressed by the formula 56, and the VALUE value of G[M 1 ]=G[M 1 ]st+n×ΔV
[Re] ... (55) VALUE value of G [M 2 ] = G [M 2 ] st + n x ΔV
[Re] ... (56) (where n: an integer representing the number of calculations) It is a time function that changes by a value indicated by ΔV [Re] at each period determined by the calculation parameter Tm [Re]. As a result, the release part characteristics of the generated musical tone are determined by the parameters Tm[Re] and ΔV[Re]
The release part characteristics of the electronic organ type are determined by The new key to be pressed is assigned to the channel,
The attack part, decay part, and
This is an explanation of various programs that calculate the musical tone parameters G[CA] to G[M 2 ] leading to the sustain section and the release section. The processing to be performed when a message regarding an on event or an off event of the foot switch is transferred from the first processor section 100 during the operation will be described. (Release control routine) Musical tone parameters of all channels G [CA] ~ G
During the calculation of [M 2 ], when a foot switch on-event message or off-event message is transferred from the first processor section 100, the release control routine of step 2006 in the main routine of FIG. 17 is executed. Ru. FIG. 26 is a diagram showing a detailed flowchart of the release control routine. When the program execution moves from step 2001 of the main routine to this release control routine, first, in step 2240, it is determined whether the transfer message regarding the foot switch is an on-event message. , or is an off-event message. If the transfer message regarding the footswitch is an on-event message, the program moves to step 2241, where the footswitch flag FFG of "1" is set in the footswitch flag register FFGr. Thereafter, the process moves to a parameter calculation routine, and if there is a release key at this point, release control regarding this release key is performed in response to the ON state of the foot switch. On the other hand, if the message regarding the foot switch is an off-event message, the program execution moves to step 2242, and in subsequent steps the key assignment has already been canceled.
And the parameter calculation register PRG "(PC) =
A process of detecting a channel in which the contents of the JA area of the unit word specified in "6" are not "(JA) = E" and replacing the contents of the JA area of this channel with "(JA) = E". At the same time, the same processing as when the foot switch is in the OFF state in the PRG offset routine described above is performed. That is, in step 2242, the channel counter CC is loaded with "16" as an initial value, and then in the next step 2243, the content of the parameter counter PC is set to "(PC)=6". Then, in the next step 2244, the contents of the channel assignment table CAT specified by the contents of the channel counter CC are read, and it is determined whether the contents are "(CAT)<0" or "(CAT)≧0". . If “(CAT) Clement and “(CC) =
15". Conversely, if "(CAT)≧0", the channel is judged to be a blank channel, and in the next step 2245, the parameter calculation register corresponding to the blank channel is specified by "(PC)=6". Read the contents of the JA area of the unit word to be
E” or “(JA)≠E”.
If "(JA)=E", the program execution moves to step 2257, where the contents of the channel counter CC are decremented. However, if "(JA)≠E", even though the channel has already been deallocated regarding the release key, the "(PC)=
Since the content "E" for instructing the operation related to the release part is not set in the JA area of the unit word specified by "6", the content of the JA area is changed to "(JA )=E”. Next, step 2
In step 247, the content of the parameter counter PC is set to "(PC)=0", and in the next step 2248, the calculation parameter Tm[Re] regarding the calculation cycle of the release portion is read from the TCT 210, and is temporarily stored in the working register WRKr1 . This calculation parameter Tm [Re] is based on the tone number data TCN, the content of the parameter counter PC "(PC) = 0", and the subparameter counter SPC.
is read out from the TCT 210 with the content "(SPC)=2". Then, in the next step 2249, the indirect calculation parameter Δ·ADRm[Re] regarding the increase/decrease value of the release portion is read out and temporarily stored in the working register WRKr2 .
This indirect calculation parameter Δ・ADRm
[Re] is determined by the tone number data TCN, the contents of the parameter counter PC “(PC) = 0” and the contents of the sub-parameter counter SPC “(SPC) = 4”.
Read from TCT210. When the above processing is completed, the next step 225
0, the content of the parameter counter PC is set to "(PC) = 6", and after this, the next step 22
In step 51, the calculation parameter Tm [Re] temporarily stored in the working register WRKr 1 is loaded into the T area of the unit word of the parameter calculation register PRG 16 corresponding to the musical tone parameter G [CA]. Next, in step 2252, Δ table address information for reading out the calculation parameter Δm[Re] regarding the release portion from the Δ table 230 is created. This Δ table address information is
Indirect calculation parameter Δ・ADRm [Re] stored in working register WRKr 2
and the key code KC stored in the key code table KCT 16 . After this, the Δ table 230 is addressed with the Δ table address information "Δ・ADRm+KC" created in this way, and the calculation parameter Δm[Re] read out is stored in the working register.
Store it temporarily in WRKr 3 . Next, in step 2253, the content of the parameter counter PC is set to "(PC)=2", and in the next step 2254, the content of the working register is set to "(PC)=2".
Calculation parameter Δm stored in WRKr 3
[Re] is loaded into the Δ area of the unit word corresponding to the tone parameter G[M 1 ] of the parameter calculation register PRG 16 . After this, the next step 225
In step 5, the content of the parameter counter PC is set to "(PC) = 1", and in the next step 2256, the calculation parameter Δm[Re] stored in the working register WRKr 3 is set as the musical tone parameter G in the parameter calculation register PRG 16 .
Load into the Δ area of the unit word corresponding to [M 2 ]. When this process is completed, program execution moves to the next step 2257, where the contents of the channel counter CC are decremented, and the decremented channel counter is
If the content of CC is "(CC) = 0", step 2
By branching at step 258, the process returns to step 2244, and the same processing as described above is performed again. Then, when the content of the channel counter CC becomes "(CC)=0", the program execution shifts to a parameter calculation routine. As is clear from the above explanation, step 22 of this release control routine
The processes 42 to 2258 correspond to the post-processing ``when the foot switch is in the OFF state or the registration release data R[Re] is negative'' in the aforementioned PRG offset routine (FIG. 24). (Parameter Conversion Routine) Next, the parameter conversion routine of step 2118 in the parameter calculation routine of FIG. 20 will be described. FIG. 27 is a diagram showing a detailed flowchart of the parameter conversion routine.
Executed when the content of CFGr is "(CFGr) = 1",
Musical tone parameters G [CA], G [CT], G [Pi], R obtained by the above parameter calculation routine
Based on [Pi], frequency parameters R 1 and R 2 are obtained by logarithmic operation. The calculation process of frequency parameters R 1 and R 2 is as follows:
This is carried out based on the above-mentioned equations 1' to 2' and equations 3 to 4. The process will be explained below along with a flowchart. First, in step 2270, the K register is
Set Kr to “0”. This indicates that R 1 among the frequency parameters R 1 to R 2 should be calculated first. Then, in the next step 2271, the tone parameter G calculated by the parameter calculation routine is
Logarithm table 250 with [CA] as address information
(Fig. 1), thereby reading out the logarithmic tone parameter logαCA corresponding to the tone parameter G [CA] from the logarithm table 250, and
Temporarily stored in the logCA register LCAr (Table 23). Similarly, in the next step 2272, the tone parameter G calculated by the parameter calculation routine is
Logarithm table 250 with [CT] as address information
As a result, the logarithmic tone parameter logαCT corresponding to the tone parameter G[CT] is read out from the logarithm table 250 and temporarily stored in the logCT register LCTr (Table 23). When this process is completed, the next step 2273
The operation expressed by the following equation 57 is performed in , and the execution result is temporarily stored in the y register yr (Table 23). y=(logαCA−logαCT)+21−NC+G 2
[Pi] + R[Pi] ... (57) In equation 57, NC is multiplied by 21 because the space between each note is divided into 21. As a result, a logarithmically expressed frequency parameter y corresponding to the timbre number data TCN, registration pitch data, initial touch data, modulation data, and pressed key pitch is obtained. By the way, the value of the frequency parameter y calculated in step 2273 may be ``y<0'' or ``y≧252'' depending on how the values of the various data are given. frequency parameter y
If the value of is "y <0" or "y ≥ 252", it is impossible to read the frequency parameter y expressed as a natural number from the RNT 260 because the address of the RNT 260 is only in the range from 0 to 251. Become. Therefore, the value of the frequency parameter y is "y<0"
Or if “y≧252”, set it to “0”
Processing for correcting so that y≦251 is satisfied is executed in steps 2274 to 2282. That is, in step 2274, the J register Jr (Table 23) in which the correction value J is stored is cleared, and in the next step 2275, the y register Jr is cleared.
It is determined whether the content of is “y<0” or “y≧0”. If the content of the y register yr is “y≧0”, program execution moves to the next step 2276,
Here, the content of the y register yr is “y≦
250” or “y>251”. As a result of this judgment process, “y≦251” and “y≧
0'', that is, 0≦y≦251, the program execution proceeds to step 228.
3, where the contents of the y register yr are supplied to the RNT 260 (FIG. 1) as address information, and thereby the frequency parameter R' expressed as a natural number is read from the RNT 260. If the content of the y register yr is "y<0", program execution moves to step 2277, where "252" is added to the content of the y register yr, and
This is set as the content of the new y register yr. Adding "252" to the contents of the y register yr means shifting the contents of the y register yr by a range corresponding to one octave. in this case,
Since the content of the y register yr is "y<0", this means that the pitch has been shifted by one octave toward the treble range. Therefore, in order to remember that this process has been performed, in the next step 2278, J
Decrement the contents of register Jr by "1". Then, in the next step 2279, the contents of the y register are shifted by one octave.
Determine whether the content of yr is "y≧0" or "y<0". As a result of this judgment process, y register yr
If it is found that the content of is "y≧0", the program execution moves to the next step 2283,
Here, the contents of the y register yr, whose contents have been shifted by one octave, are supplied to the RNT 260 as address information, and thereby the RNT
Frequency parameter expressed as a natural number from 260
Read R′. After this, the next step 2284
, the frequency parameter R' read out from the RNT260 is corrected by one octave based on the content "(Jr) = -1" of the J register Jr, and the frequency parameter R' read out from the RNT260 is corrected by one octave based on the registration foot data R [Fe]. Make corrections. This correction process is expressed by Equation 58 below, and is expressed as "OC+J
This is realized by shifting the bit position of the frequency parameter R' toward the most significant bit by an amount corresponding to the value of "+R[Fe]"R=R'×20C+J+R[Fe] (58). On the other hand, as a result of the judgment process in step 2279, if it is found that the content of the y register yr is "y<0", the program execution returns to step 2.
277, where the contents of the y register yr are further shifted by one octave. This correction process is performed so that the contents of the y register yr are “0≦y≦
This process is repeated until the number reaches 251. Further, the correction process when the contents of the y register yr is "y>251" is performed in the same way. In other words, if it is found through the judgment process in step 2276 that the contents of the y register yr are "y>251", the program execution proceeds to step 2280.
Then, "252" is subtracted from the contents of the y register yr to shift it to the lower range by one octave. Then, in the next step 2281, the contents of the J register Jr are incremented by "+1". Next, in step 2282, the contents of register yr are checked again, and if "y≦251", the next instruction in step 2283 is executed, and "y>
251”, step 2282 to step 2
Returning to step 280, the content of the y register yr is corrected again. The frequency parameter R 1 calculated by the above calculation process is calculated in step 2285.
The data is transferred to the third processor section 300 via FIFO2. After this, program execution moves to step 2286, where the K register
Determine whether the content of Kr is "(Kr) = 1".
If the content of K register Kr is "(Kr)≠1", the process moves to the next step 2288, where the content of K register Kr is set to "(Kr)=1", and then in the next step 2289, "G[ CA〕=1024−G
[CA]" and "G[CT]=1024-G[CT]", and based on these newly calculated musical tone parameters G[CA] and G[CT], step 2 is performed.
Frequency parameter R 2 at 271-2284
Performs the calculation process. And the frequency parameter
When the transfer processing of R2 is completed, the program execution moves from step 2286 to step 2287 because the content of the K register Kr is "(Kr) = 1", where the tone parameters G[CA] and G [LA] is transferred to the third processor section 300. When this transfer process is completed, the program executes the parameter calculation routine (Figure 20).
The process moves to step 2119, where musical tone parameters G[M 1 ] and G
[M 2 ] is transferred to the third processor section 300. The frequency parameters R 1 and R 2 transferred to the third processor unit 300 are two-word data R 1H (integer part), R 1L and R 2H (integer part), R 2L each consisting of an integer part and a decimal part. Each is sent as . And these frequency parameters R 1
H , R 1L and R 2H , R 2L and musical tone parameters G [CA], G [LA], G [M 1 ], G [M 2 ] are as follows:
As shown in Table 34 below, identification codes corresponding to each parameter are attached, and the channel number of the pronunciation channel corresponding to the discrimination code is attached as the leading data and transferred. This also applies to the case where only musical tone parameters G[M 1 ] and G[M 2 ] relating to amplitude values are transferred.

【表】 ところで、第3プロセツサ部300に対する転
送データは、第2プロセツサ部における全ての処
理がタイマ270の設定周期によつて規制されて
いるたみ、タイマ270の設定周期で転送される
ものとなる。このため、発生楽音に対する振幅エ
ンベロープの制御が容易となる利点がある。 以上が第2プロセツサ部200の詳細構成およ
び各種の処理を行うプログラムの詳細説明であ
る。 次に第3プロセツサ部300における詳細構成
および動作について説明する。 第3プロセツサ部300 (構成説明) 第30図は第2プロセツサ部200からFIFO
2を介して転送されてくる楽音パラメータG
〔CA〕,G〔LA〕,G〔M1〕,G〔M2〕および周波
数パラメータR1(R1H,R1L),R2(R2H,R2
)に基づき対応する楽音信号を発生する第3プ
ロセツサ部300の一実施例を示す全体構成ブロ
ツク図である。 この第3プロセツサ部300もマイクロプロセ
ツサ形式の回路構成となつており、各チヤンネル
の楽音信号Gv1〜Gv16が上記各種パラメータに基
づき時分割的に形成される。つまり、第3図のタ
イムチヤートに示すように、合計20個のタイムス
ロツトからなるDACタイムと呼ばれる楽音信号
変換時間DAC・Tのうち、16の発音チヤンネル
に対応して16個のタイムスロツトからなるジエネ
レーシヨンリージヨンGEN・Rにおいて各チヤ
ンネルの楽音信号Gv1〜Gv16が形成されると共
に、4個のタイムスロツトからなるフエツチリー
ジヨンFCH・RにおいてFIFO2に一時記憶され
ているいずれかのチヤンネルの上記各種パラメー
タのうち4個が取込まれるようになつている。こ
の場合、ジエネレーシヨンリージヨンGEN・R
およびフエツチリージヨンFCH・Rにおける各
タイムスロツトは後述するCLU301内に設け
られたチヤンネルカウンタCCの内容で指定され
る。そして、ジエネレーシヨンリージヨン
GEN・Rの各タイムスロツト内においては、そ
の前半部分において波形メモリの第1位相に対応
するサンプル点振幅値が算出され、後半部分にお
いては波形メモリの第2位相に対応するサンプル
点振幅値が算出される。このような処理が繰り返
されることによつて形成された各チヤンネルの楽
音信号Gv1〜Gv16はその後アキユムレータにおい
て累算され、楽音信号変換時間DAC・Tの周期
で発生するフエツチ信号FCH5でアナログの楽音
信号に変換される。なお、上記波形メモリの第1
位相および第2位相に対応するサンプル点振幅値
の算出時間はクロツクパルスφccによつて決定さ
れている。 第30図において、第3プロセツサ300はプ
ログラムメモリPGMに予め記憶された所定のプ
ログラムに従つて各種の演算処理を実行するため
の制御を行うコントロールロジツクユニツト(以
下、CLUという)301と、FIFO2から転送さ
れるチヤンネル毎の各種パラメータG〔CA〕へ
R2がCLU301の制御によりチヤンネル別に書
込まれるパラメータメモリ302(従つて、16チ
ヤンネル×8パラメータに相当するメモリ領域を
有する)と、パラメータメモリ302から読み出
されたチヤンネル毎の各種パラメータを1個づつ
(1パラメータ単位で)記憶保持するパラメータ
レジスタ303と、周波数パラメータR1,R2
累積値qR1,qR2(q=1,2,3…)の算出お
よびこの累積値qR1,qR2と位相差に関する楽音
パラメータG〔LA〕とによつて波形メモリに対
するアドレス情報A(A1,A2)の算出ならびに楽
音パラメータG〔CA〕と前記累算値qR1,qR2
の比較処理を行うアリスメテイツクロジツクユニ
ツト(以下、ALUという)304と、ALU30
4において算出された累算値qR1,qR2およびア
ドレス情報Aを各チヤンネル毎に一時記憶するワ
ーキングメモリ305と、CLU301の制御に
よりワーキングメモリ305から読み出されたア
ドレス情報Aを一時記憶する出力レジスタ306
と、出力レジスタ306から出力されるアドレス
情報Aを取込み一時記憶するフエースレジスタ
(PH・REG)307と、パラメータレジスタ3
03から出力される各種パラメータのうち振幅値
に関する楽音パラメータG〔M1〕,G〔M2〕を1
パラメータ単位で記憶するマグニチユードレジス
タ(MG・REG)308と、各アドレスに所望の
楽音波形のサンプル点振幅値が対数化されて記憶
され、フエーズレジスタ307から出力されるア
ドレス情報Aでアドレスされることによりその記
憶内容が読み出される波形メモリ309と、波形
メモリ309から出力されるサンプル点振幅値と
マグニチユードレジスタ308から出力される楽
音パラメータG〔M1〕またはG〔M2〕との加算を
行う加算器310と、加算器310の出力を自然
数のサンプル点振幅データに変換する対数・自然
数変換器(以下、LLCという)311と、LLC
311から出力される各チヤンネルのサンプル点
振幅値をクロツクパルスφccの周期で累算するア
キユムレータ312と、アキユムレータ312か
ら出力される各チヤンネルのサンプル点振幅値の
累算値をラツチし、記憶保持する出力レジスタ3
13と、出力レジスタ313の出力を対応するア
ナログの楽音信号Gに変換するDA変換器(以
下、DACという)314とから構成され、DAC
314の出力はサウンドシステム400から楽音
として発音される。 この場合、波形メモリ309に対するアドレス
情報A(A1,A2)は前述した第5式〜第6式でに
基づき時分割的に算出される。 従つて、波形メモリ309に記憶される楽音波
形のサンプル点振幅値が純粋な正弦波形に対応す
るものである場合、LLC311の出力から得ら
れるある1つのチヤンネルの楽音信号の瞬時値
Gvi(t)は前述の第9式および第10式で表わさ
れる。 なお、波形メモリ309から出力されるサンプ
ル点振数幅値logSinA1(またはlogSinA2)と楽音
パラメータG〔M1〕(またはG〔M2〕)を加算器3
10で加算しているのは、楽音パラメータG
〔M1〕,G〔M2〕が前述のように対数表現(デジタ
ル値で表現)されたものであり、加算処理を行う
ことにより各サンプル点振幅値に対する振幅設定
が行なわれる。 また、フエツチリージヨンFCH・Rにおける
処理タイミングはクロツク発振器3010から出
力されるクロツクパルスφによつて定められ、
ジエネレーシヨンリージヨンにおける処理タイミ
ングはクロツク発振器3010から出力されるク
ロツクパルスφcc(φの1/2周期)によつて定
められている。 以上が、第3プロセツサ部300の全体構成の
簡単な説明であるが、第30図に図示されている
各種信号の意味は次の第35表に示す通りである。
[Table] Incidentally, since all processing in the second processor section is regulated by the set cycle of the timer 270, the data transferred to the third processor section 300 is assumed to be transferred at the set cycle of the timer 270. Become. Therefore, there is an advantage that the amplitude envelope of the generated musical tone can be easily controlled. The above is a detailed explanation of the detailed configuration of the second processor section 200 and the programs that perform various processes. Next, the detailed configuration and operation of the third processor section 300 will be explained. Third processor section 300 (Configuration explanation) Figure 30 shows the FIFO from the second processor section 200.
Musical tone parameters G transferred via 2
[CA], G[LA], G[M 1 ], G[M 2 ] and frequency parameters R 1 (R 1H , R 1L ), R 2 (R 2H , R 2
FIG . 3 is a block diagram showing the overall configuration of an embodiment of a third processor section 300 that generates a corresponding musical tone signal based on a musical tone signal. This third processor section 300 also has a microprocessor type circuit configuration, and musical tone signals Gv 1 to Gv 16 of each channel are formed in a time-sharing manner based on the various parameters described above. In other words, as shown in the time chart in Figure 3, out of the musical tone signal conversion time DAC・T called DAC time, which consists of a total of 20 time slots, there are 16 time slots corresponding to 16 sound generation channels. Musical tone signals Gv 1 to Gv 16 of each channel are formed in the generation region GEN・R, and one of them is temporarily stored in FIFO 2 in the frequency region FCH・R, which consists of four time slots. Four of the above-mentioned various parameters of the channel are imported. In this case, Generation Region GEN・R
Each time slot in the fetch region FCH.R is specified by the contents of a channel counter CC provided in the CLU 301, which will be described later. And the Generation Legion
In each time slot of GEN・R, the sample point amplitude value corresponding to the first phase of the waveform memory is calculated in the first half, and the sample point amplitude value corresponding to the second phase of the waveform memory is calculated in the second half. Calculated. The musical tone signals Gv 1 to Gv 16 of each channel, which are formed by repeating such processing, are then accumulated in an accumulator and converted into analog signals using the fetch signal FCH 5 generated at the period of the musical tone signal conversion time DAC·T. is converted into a musical tone signal. Note that the first waveform memory
The calculation time of the sample point amplitude value corresponding to the phase and the second phase is determined by the clock pulse φcc. In FIG. 30, a third processor 300 includes a control logic unit (hereinafter referred to as CLU) 301 that performs control to execute various arithmetic processing according to a predetermined program stored in advance in a program memory PGM, and a FIFO 2. Various parameters for each channel transferred from G [CA]
A parameter memory 302 in which R 2 is written for each channel under the control of the CLU 301 (therefore, it has a memory area corresponding to 16 channels x 8 parameters) and various parameters for each channel read from the parameter memory 302. Parameter register 303 that stores and holds the frequency parameters R 1 and R 2 (q= 1 , 2 , 3...) and the cumulative values qR 1 and qR Calculation of address information A (A 1 , A 2 ) for the waveform memory using 2 and musical tone parameter G [LA] related to phase difference, and comparison of musical tone parameter G [CA] with the accumulated values qR 1 , qR 2 An arithmetic logic unit (hereinafter referred to as ALU) 304 that performs processing, and an ALU 30
A working memory 305 that temporarily stores the cumulative values qR 1 and qR 2 calculated in step 4 and address information A for each channel, and an output that temporarily stores the address information A read from the working memory 305 under the control of the CLU 301. register 306
, a phase register (PH/REG) 307 that captures and temporarily stores address information A output from the output register 306, and a parameter register 3.
Among the various parameters output from 03, the musical tone parameters G[M 1 ] and G[M 2 ] related to the amplitude value are set to 1.
A magnitude register (MG/REG) 308 stores parameters in units of parameters, and a sample point amplitude value of a desired musical sound waveform is logarithmized and stored at each address.Address information A is output from a phase register 307. the sample point amplitude value output from the waveform memory 309 and the musical tone parameter G [M 1 ] or G [M 2 ] output from the magnitude register 308. an adder 310 that adds
an accumulator 312 that accumulates the sample point amplitude values of each channel output from the accumulator 311 in the period of the clock pulse φcc; and an output that latches and stores the accumulated value of the sample point amplitude values of each channel output from the accumulator 312. register 3
13, and a DA converter (hereinafter referred to as DAC) 314 that converts the output of the output register 313 into a corresponding analog musical tone signal G.
The output of 314 is produced by the sound system 400 as a musical tone. In this case, address information A (A 1 , A 2 ) for the waveform memory 309 is calculated in a time-sharing manner based on the above-mentioned equations 5 to 6. Therefore, if the sample point amplitude value of the musical sound waveform stored in the waveform memory 309 corresponds to a pure sine waveform, the instantaneous value of the musical sound signal of one channel obtained from the output of the LLC 311
Gvi(t) is expressed by the above-mentioned equations 9 and 10. Note that the sample point amplitude width value logSinA 1 (or logSinA 2 ) output from the waveform memory 309 and the musical tone parameter G [M 1 ] (or G [M 2 ]) are added to the adder 3.
What is added at 10 is the musical tone parameter G
[M 1 ] and G[M 2 ] are expressed logarithmically (expressed as digital values) as described above, and the amplitude setting for each sample point amplitude value is performed by performing addition processing. Furthermore, the processing timing in the fetch region FCH-R is determined by the clock pulse φ1 output from the clock oscillator 3010.
The processing timing in the generation region is determined by the clock pulse φcc (1/2 period of φ1 ) output from the clock oscillator 3010. The above is a brief explanation of the overall configuration of the third processor section 300, and the meanings of the various signals shown in FIG. 30 are as shown in Table 35 below.

【表】【table】

【表】【table】

【表】 第31図はCLU301の内部の詳細構成を示
すブロツク図であり、ジエネレーシヨンリージヨ
ンGEN・RおよびフエツチリージヨンFCH・R
における各タイムスロツトを指定するチヤンネル
データCHを出力するチヤンネルカウンタCCと、
プログラムカウンタPGCのシーケンス制御を行
うコンデイシヨンセレクタCNSと、各種演算処
理を実行する上でパラメータメモリ302,
ALU304,ワーキングメモリ305などに対
する制御信号や制御データを出力するプログラム
メモリPGMと、プログラムメモリPGMに対して
アドレス情報を出力するプログラムカウンタ
PGCと、パラメータメモリ302に対するアド
レス情報ADR・IをフエツチリージヨンFCH・
Rとジエネレーシヨンリージヨンとで切換えるた
めのアドレスセレクタADRSとから構成されてい
る。 プログラムメモリPGMの各アドレスには、次
の第36表に示すようなワード構成で各種の制御デ
ータや制御信号が記憶される。
[Table] Figure 31 is a block diagram showing the detailed internal configuration of the CLU301.
a channel counter CC that outputs channel data CH specifying each time slot in the
A condition selector CNS performs sequence control of the program counter PGC, and a parameter memory 302 performs various arithmetic operations.
A program memory PGM that outputs control signals and control data to the ALU 304, working memory 305, etc., and a program counter that outputs address information to the program memory PGM.
The PGC and the address information ADR/I for the parameter memory 302 are transferred to the FCH region.
It consists of an address selector ADRS for switching between R and generation regions. Various control data and control signals are stored in each address of the program memory PGM in a word structure as shown in Table 36 below.

【表】 そして、これらの制御信号や制御データによつ
てチヤンネルカウンタCC,コンデイシヨンセレ
クタCNS,プログラムカウンタPGC,アドレス
セレクタADRS,プログラムメモリPGM相互間
の制御が行なわれる。 この場合、プログラムカウンタPGCはクロツ
クパルスφの周期で順次インクリメントされる
が、コンデイシヨンセレクタCNSに入力される
コンデイシヨン入力(ALL,NEV,FLG,
OPT,RQ,BOR)の状態がブランチコンデイシ
ヨンコードBCCで指定されるブランチ条件と合
致すると、プログラムメモリPGMから出力され
るブランチアドレス情報B・ADRがコンデイシ
ヨンセレクタCNSから出力されるブランチアド
レスロード信号B・LDによつてロードされ、こ
の結果プログラムはブランチアドレスB・ADR
で示されるアドレスへジヤンプする。 なお、コンデイシヨンセレクタCNSに入力さ
れているコンデイシヨン入力のうちALLは、「ブ
ランチアドレス情報B・ADRで指定されたアド
レスへ常時ジヤンプせよ」というブランチコマン
ドであり、NEVは「プログラムカウンタPGCの
内容で指定される通りにプログラムを実行せよ」
というブランチコマンドであり、BORはチヤン
ネルカウンタCCの内容が「1」から「0」へ変
化する時のボロー信号である。 (動作説明) 以上のように構成された第3プロセツサ部30
0の動作を第32図に示すフローチヤートに基づ
いて説明する。 まず、ステツプ3020において波形メモリ3
09から第16チヤンネルに関する楽音信号Gvr6
のサンプル点振幅値を読み出すためのアドレス情
報A16を作るため、チヤンネルカウンタCCに
初期値として「16」がロードされる。これによつ
てチヤンネルカウンタCCの内容は「(CC)=16」
となり、次のステツプ3021において第16チヤ
ンネルの現時点における整数部アドレス情報AH
と楽音パラメータG〔CA〕とが比較され、「AH
<G〔CA〕」であれば次のステツプ3022にお
いて周波数パラメータR1LおよびR1Hに基づき新
たな整数部アドレス情報AHが算出される。ま
た、「AH>G〔CA〕」であれば、次のステツプ
3023において周波数パラメータR2LおよびR
2Hに基づき新たな整数部アドレス情報AHが算出
される。 この場合、整数部アドレス情報AHとは、周波
数パラメータR1,R2の整数部R1H,R2Hの累算値
qR1H,qR2Hに相当するもので、周波数パラメー
タR1,R2の小数部R1L,R2Lの累算値qR1L
qR2Lに相当する小数部アドレス情報ALからキア
リイ信号があればこの整数部アドレス情報AH
加算される。そして、この実施例では整数部アド
レス情報AHのみが波形メモリ309に対してア
ドレス情報Aとして供給される。小数部アドレス
情報ALのキヤリイ信号は、ステツプ3022お
よび3023において□Cとして表示している。 このようにして新たな整数部アドレス情報AH
が算出されると、次のステツプ3024〜302
5の処理によつてチヤンネルカウンタCCの内容
「(CC)=16」で指定された第16チヤンネルに関す
る楽音波形Gv16の瞬時振幅値Gv16(t)が形成
される。つまり、ステツプ3024において整数
部アドレス情報AHをPH・REG307に送出し
て記憶保持させると共に、楽音パラメータG
〔M1〕をMG,REG308に送出して記憶保持させ
る。これによつて波形メモリ309からアドレス
情報AHに対応した第1位相のサンプル点振幅値
logPv1(=logSinAH)が読み出され、この第1位
相のサンプル点振幅値logPv1と楽音パラメータG
〔M1〕とが加算器310において加算されて第1
位相のサンプル点振幅値logPv1に対する振幅設定
が行なわれる。 加算器310の出力logPv1′(=logPv1・G
〔CA〕)は、LLC311において自然数の信号
Pv1に変換された後、アキユムレータ312に供
給される。 次にステツプ3025において、整数部アドレ
ス情報AHと楽音パラメータG〔LA〕を加算し、
その加算値「AH+G〔LA〕」をPH・REG307
に送出して記憶保持させると共に、楽音パラメー
タG〔M2〕をMG・REG308に送出して記憶保
持させる。これによつて波形メモリ309からア
ドレス情報「AH+G〔LA〕」に対応した第2位
相のサンプル点振幅値logPv2(=logSin(AH
G〔LA〕)が読み出され、この第2位相のサンプ
ル点振幅値logPv2と楽音パラメータG〔M2〕とが
加算器310において加算されて第2位相のサン
プル点振幅値logPv2に対する振幅設定が行なわれ
る。加算器310の出力logPv2′(=logPv2・G
〔M2〕)は、LLC311において自然数の信号Pv2
に変換される。そして、LLC311から出力さ
れる第2位相のサンプル点振幅値Pv2はアキユム
レータ312に供給され、このアキユムレータ3
12において第1位相のサンプル点振幅値Pv1
加算され、これによつて第16チヤンネルに関する
楽音波形Gv16の瞬時振幅値Gv16(t)が形成さ
れる。 の場合、ステツプ3024による第1位相サン
プル点振幅値Pv1の形成処理と、ステツプ302
5による第2位相サンプル点振幅値Pv2の形成処
理とはジエネレーシヨンリージヨンGEN・Rの
「(CC)=16」で指定されるタイムスロツトの中の
前半部分と後半部分とで時分割的に行なわれる。 このようにして第16チヤンネルに関する楽音波
形Gv16の瞬時振幅値Gv16(t)の形成処理が終
了すると、プログラムの実行は次のステツプ30
26へ移行し、ここにおいてチヤンネルカウンタ
CCの内容をデクレメントして「(CC)=15」とす
る。ステツプ3026のデクレメント処理を行つ
た結果、チヤンネルカウンタCCからボロー信号
BORが出力されなければ、プログラムの実行は
次のステツプ3027の判断命令「BOR?」に
より分岐してステツプ3021へ戻り、今度はチ
ヤンネルカウンタCCの新たな内容で指定される
チヤンネルに関する楽音信号Gviを形成するため
の処理を行う。 そして、第1チヤンネルの楽音信号Gv1の形成
処理が終了する段階において、ステツプ3026
のデクレメント処理を実行した結果、チヤンネル
カウンタCCからボロー信号が出力されると、プ
ログラムの実行はステツプ3027の判断命令に
より分岐してステツプ3028へ移行する。そし
て、このステツプ3028においてチヤンネルカ
ウンタCCの内容を「(CC)=4」とし、この後次
のステツプ3029においてFIFO2から出力さ
れるアウトプツトリクエスト信号OPT・RQが
“1”になつているかどうかを判断する。 もし、FIFO2から“1”のアウトプツトリク
エスト信号OPT・RQが出力されていれば、プロ
グラムの実行はステツプ3030へ移行し、ここ
においてシフトアウト信号SFToをFIFO2に対
して出力し、FIFO2から各種パラメータのうち
1つをパラメータメモリ302に読込む。逆に、
アウトプツトリクエスト信号OPT・RQが“0”
ならば、プログラムの実行はステツプ3031へ
移行し、ここにおいて「ノンオペレーシヨン」命
令を実行する。この「ノンオペレーシヨン」命令
は、文字通り実効的な処理が行なわれない命令で
ある。このステツプ3031の「ノンオペレーシ
ヨン」命令を行うのは、アウトプツトリクエスト
信号OPT・RQが“1”の場合でも“0”の場合
でもジエネレーシヨンリージヨンGEN・Rおよ
びフエツチ・リージヨンFCH・Rにおける各タ
イムスロツトが同一時間幅になるようにするため
である。 ステツプ3030またはステツプ3031の処
理が終了すると、次にステツプ3032のデクレ
メント命令「(CC)←(CC)−1」を実行し、チ
ヤンネルカウンタCCの内容を「(CC)=3」とす
る。この後、次のステツプ3033においてチヤ
ンネルカウンタCCからボロー信号BORが出力さ
れているかどうかを判断する。もし、ボロー信号
BORが出力されていなければ、プログラムの実
行はステツプ3029へ戻り、2個目のパラメー
タを読込むための処理を行う。逆に、ボロ信号
BORが出力されていれば、フエツチリージヨン
FCH・Rは終了したことになり、プログラムの
実行はステツプ3021へ戻り、再びジエネレー
シヨンリージヨンGEN・Rにおける処理を行
う。 以上のような処理を行うことにより、アキユム
レータ312には1DACのタイム当り最大で16種
類の楽音波形瞬時振幅値Gv16(t)〜Gv1(t)
が供給され、ここにおいてその合成値
[Table] These control signals and control data control the channel counter CC, condition selector CNS, program counter PGC, address selector ADRS, and program memory PGM. In this case, the program counter PGC is sequentially incremented at the cycle of clock pulse φ1 , but the condition inputs (ALL, NEV, FLG,
OPT, RQ, BOR) matches the branch condition specified by the branch condition code BCC, the branch address information B/ADR output from the program memory PGM becomes the branch address output from the condition selector CNS. It is loaded by the load signal B/LD, and as a result, the program is loaded at the branch address B/ADR.
Jump to the address indicated by . Of the condition inputs input to the condition selector CNS, ALL is a branch command that says "always jump to the address specified by branch address information B/ADR," and NEV is a branch command that says "jump to the address specified by branch address information B/ADR." Execute the program as specified in
BOR is a borrow signal when the content of channel counter CC changes from "1" to "0". (Operation explanation) Third processor section 30 configured as above
The operation of 0 will be explained based on the flowchart shown in FIG. First, in step 3020, the waveform memory 3
Musical tone signal G vr6 for channels 09 to 16
In order to create address information A16 for reading the sample point amplitude value of , "16" is loaded into the channel counter CC as an initial value. As a result, the content of channel counter CC is "(CC) = 16"
Then, in the next step 3021, the current integer part address information AH of the 16th channel is
and musical tone parameter G [CA] are compared, and “AH
<G[CA]'', in the next step 3022 new integer part address information A H is calculated based on the frequency parameters R 1L and R 1H . Moreover, if "AH>G[CA]", in the next step 3023, the frequency parameters R 2L and R
New integer part address information A H is calculated based on 2H . In this case, the integer part address information A H is the cumulative value of the integer parts R 1H and R 2H of the frequency parameters R 1 and R 2 .
It corresponds to qR 1H and qR 2H , and is the cumulative value qR 1L of the decimal parts R 1L and R 2L of the frequency parameters R 1 and R 2 .
If there is a signal from the decimal part address information A L corresponding to qR 2L , it is added to this integer part address information A H. In this embodiment, only the integer part address information A H is supplied to the waveform memory 309 as the address information A. The carry signal of the decimal part address information A L is displayed as □C in steps 3022 and 3023. In this way, new integer part address information A H
Once calculated, the next steps 3024-302
Through the processing in step 5, the instantaneous amplitude value Gv 16 (t) of the musical sound waveform Gv 16 related to the 16th channel designated by the content "(CC)=16" of the channel counter CC is formed. That is, in step 3024, the integer part address information A H is sent to the PH/REG 307 to be stored and held, and the tone parameter G
[M 1 ] is sent to M G and REG 308 to be stored and held. As a result, the sample point amplitude value of the first phase corresponding to the address information A H is obtained from the waveform memory 309.
logPv 1 (=logSinA H ) is read out, and this first phase sample point amplitude value logPv 1 and musical tone parameter G
[M 1 ] are added in the adder 310 to obtain the first
Amplitude setting is performed for the phase sample point amplitude value logPv1 . The output of the adder 310 logPv 1 ′ (=logPv 1・G
[CA]) is a natural number signal in LLC311
After being converted to Pv 1 , it is supplied to the accumulator 312. Next, in step 3025, the integer part address information A H and musical tone parameter G [LA] are added,
The added value “A H + G [LA]” is PH・REG307
At the same time, the musical tone parameter G [M 2 ] is sent to the MG/REG 308 to be stored and held. As a result, the second phase sample point amplitude value logPv 2 (=logSin(A H +
G[LA]) is read out, and the second phase sample point amplitude value logPv 2 and musical tone parameter G[M 2 ] are added in an adder 310 to obtain the amplitude for the second phase sample point amplitude value logPv 2 Settings are made. The output of the adder 310 logPv 2 ′ (=logPv 2・G
[M 2 ]) is a natural number signal Pv 2 in LLC311
is converted to The sample point amplitude value Pv 2 of the second phase output from the LLC 311 is supplied to the accumulator 312.
12, it is added to the sample point amplitude value Pv 1 of the first phase, thereby forming the instantaneous amplitude value Gv 16 (t) of the musical sound waveform Gv 16 for the 16th channel. In this case, step 3024 forms the first phase sample point amplitude value Pv1 , and step 302
5 is the process of forming the second phase sample point amplitude value Pv 2 in the first half and second half of the time slot specified by "(CC) = 16" of the energy generation region GEN・R. It is done in parts. When the process of forming the instantaneous amplitude value Gv 16 (t) of the musical sound waveform Gv 16 for the 16th channel is completed in this way, the program execution proceeds to the next step 30.
26, where the channel counter
Decrement the contents of CC to make "(CC) = 15". As a result of the decrement processing in step 3026, a borrow signal is generated from the channel counter CC.
If BOR is not output, the execution of the program is branched by the judgment command "BOR?" at the next step 3027 and returns to step 3021, where the musical tone signal Gvi related to the channel specified by the new contents of the channel counter CC is output. Perform processing to form. Then, at the stage when the process of forming the musical tone signal Gv 1 of the first channel is completed, step 3026 is performed.
As a result of executing the decrement process, when a borrow signal is output from the channel counter CC, the execution of the program branches according to the judgment instruction at step 3027 and proceeds to step 3028. Then, in this step 3028, the content of the channel counter CC is set to "(CC) = 4", and after this, in the next step 3029, it is checked whether the output request signal OPT/RQ output from FIFO2 is "1". to decide. If the output request signal OPT/RQ of "1" is output from FIFO 2, the program execution moves to step 3030, where the shift out signal SFTo is output to FIFO 2, and various parameters are output from FIFO 2. One of them is read into the parameter memory 302. vice versa,
Output request signal OPT/RQ is “0”
If so, program execution moves to step 3031 where a "non-operation" instruction is executed. This "non-operation" instruction is literally an instruction for which no effective processing is performed. This "non-operation" command in step 3031 is executed by the energy region GEN/R and the fetish region FCH/R, regardless of whether the output request signal OPT/RQ is "1" or "0". This is to ensure that each time slot in R has the same time width. When the processing in step 3030 or step 3031 is completed, the decrement instruction "(CC)←(CC)-1" in step 3032 is executed to set the content of the channel counter CC to "(CC)=3". After this, in the next step 3033, it is determined whether or not the borrow signal BOR is output from the channel counter CC. If the borrow signal
If BOR is not output, the program execution returns to step 3029 and performs processing to read the second parameter. On the contrary, the boro signal
If BOR is output, fetish region
FCH.R has ended, and the program execution returns to step 3021 to perform processing in the generation region GEN.R again. By performing the above processing, the accumulator 312 has a maximum of 16 types of musical sound waveform instantaneous amplitude values Gv 16 (t) to Gv 1 (t) per 1 DAC time.
is supplied, and here its composite value

【式】が得られる。そして、この合成振 幅値[Formula] is obtained. Then, this synthetic vibration width value

【式】は出力レジスタ313を介し てDAC314に供給され、このDAC314にお
いて対応するアナログの楽音波形瞬時振幅値Gv
(t)に変換されてサウンドシステム400に供
給される。 このような処理を繰り返し行うことにより、サ
ウンドシステム400からは最大で16種類の楽音
が同時に発音されるものとなる。 この場合、サウンドシステム400に供給され
る楽音信号Gvは、第2プロセツサ部200にお
いて算出された時間変化する楽音パラメータG
〔CA〕〜G〔M2〕に基づき形成され、かつまた第
3プロセツサ部300において波形メモリ309
に対するアドレス信号Aが時間経過に伴つて切換
えられるため、その波形形状が時間的に複雑に変
化するものとなる。また、第2プロセツサ部20
0において算出された楽音パラメータG〔CA〕
〜G〔M2〕にはイニシヤルタツチデータおよびア
フタタツチデータがすでに加味されているため、
楽音信号Gvは演奏状態に対応してその波形形状
が変化するものとなる。この結果、サウンドシス
テム400から発音される楽音は、時間的にその
音色が変化し、また演奏状態によつてもその音色
が変化するものとなる。 以上説明したようにこの実施例による電子楽音
は、押下鍵の検出,押下鍵のチヤンネル割当てお
よびこれに対応する楽音の発音割当て、発生楽音
のトランケート制御,各種楽音パラメータの算
出,波形メモリに対するアドレス情報の算出など
全ての処理を汎用のマイクロプロセツサを用いて
行つている。このため、前記各種検出処理,割当
て処理,パラメータの算出処理など処理内容の変
更が極めて容易で、所望の楽音信号を自由に形成
でき、かつ複雑で変化に富んだ豊かな音色の楽音
を発音できる。また、複雑多岐に亘る各種のパラ
メータを考慮した楽音を小規模構成で形成するこ
とができる。 また、第1プロセツサ部100,第2プロセツ
サ部200,第3プロセツサ部300相互間は、
非同期バツフアメモリFIFOによつて結合され、
転送データには固有の判別コードJCが付されて
転送されるようになつている。このため、これら
第1プロセツサ100〜第3プロセツサ部300
における各々の処理を互に非同期とすることがで
き、システム全体としての処理速度のみ所定の関
係に設定されていればよいから各プロセツサ内部
の処理内容の決定や変更が別々に行なえるという
利点がある。 また、発生楽音のトランケート制御を押下鍵が
解放された時点と当該解放鍵に関する楽音がリリ
ースエンドとなつた時点との2つの時点で行つて
いるため、リリースエンドに至らない発生楽音が
リリース部の途中で強制的に消されたり、あるい
は発音割当てが不可能になるということがなくな
り、押鍵状態と発生楽音の違和感を除去すること
ができる。 また、押下鍵に対応する楽音の発音割当てを鍵
盤部の発音系列設定数によつて異ならせているた
め、押下鍵数と同時に発音される楽音の種類とを
異ならせることができる。 また、第2プロセツサ部200において算出さ
れる楽音パラメータG〔CA〕〜G〔M2〕には、
押鍵状態に対応したイニシヤルタツチデータやア
フタタツチデータを加味しているため、発生楽音
の音色は音色設定情報に対応し、かつイニシヤル
タツチ信号やアフタタツチ信号に対応して変化す
るものとなる。この場合、イニシヤルタツチデー
タおよびアフタタツチデータは、アナログのイニ
シヤルタツチ信号およびアフタタツチ信号を混合
し、この混合出力を異つたタイミングでサンプリ
ングすることによりこれらタツチ信号を1つの出
力端子から区別して取出し、この後これら2つの
タツチ信号を楽音パラメータの種類に対応して異
なる重み付け分解し、この後デイジタルのイニシ
ヤルタツチデータおよびアフタタツチデータに変
換して取出すようにしている。このため、イニシ
ヤルタツチデータおよびアフタタツチデータを得
るためのタツチセンス回路が簡略化されて経済化
を計れる。 また、楽音パラメータG〔CA〕〜G〔M2〕を
算出するための演算パラメータを音色設定情報だ
けでなく押下鍵の音域によつても変化させるよう
にしているため、同一ノートの押下鍵でも音域が
異なることによつて音色が若干異なるものとな
る。 また、第2プロセツサ部200における楽音パ
ラメータG〔CA〕〜G〔M2〕の算出処理は、押
下鍵数の変化に伴つてプログラムフローの廻り方
が変化し、楽音パラメータG〔CA〕〜G〔M2
の算出処理時間がランダムになるのを防止するた
め、タイマによつてその算出処理が一定時間間隔
で行なわれるように時間規制を行つている。この
ため、発生楽音に対するエンベロープ制御を一定
時間間隔で精密に行うことができる。 また、第2プロセツサ部200において算出さ
れる周波数パラメータR1,R2は、対数演算によ
つて算出され、かつその対数演算に利用される対
数テーブルには特殊な底の対数値が記憶されてい
る。このため、周波数パラメータR1,R2の算出
時間が短縮されると共に、対数テーブルを記憶す
るメモリ素子には汎用のメモリ素子を効率良く使
用できる利点がある。 (第1図の実施例の応用例) 第1図の実施例で示した電子楽器は、第1プロ
セツサ部100において検出した押下鍵情報およ
びイニシヤルタツチ信号,アフタタツチ信号なら
びに音色設定情報を第2プロセツサ部200に転
送し、この第2プロセツサ部200において所定
の楽音パラメータG〔CA〕〜G〔M2〕を算出す
るようにしたものであるが、この応用例として第
34図に示すような電子楽器の構成が可能であ
る。 つまり、第34図において、第1プロセツサ部
100から第2プロセツサ部200に対するデー
タの出力ポートPo1の他に出力ポートPo2および入
力ポートPi1を設け、第2プロセツサ部200に
対するデータ転送時に同一データを出力ポート
Po2を介して外部機器側へ転送する。この場合、
入力ポートPi1には、外部機器から第1プロセツ
サ部100に対して割込み要求も可能なように割
込要求信号INTを入力するようにしておき、割込
み要求が発生したときには第1プロセツサ部10
0には入力ポートPi1からのデータ(DB)を取込
み、そのデータがあたかもキースイツチ回路のタ
ツチセンサ回路あるいはレジストレーシヨンスイ
ツチ回路から実時間で入力されてくる演奏情報で
あるかのように処理を行う。または、入力ポート
Pi1からのデータを何等加工せずにそのまま出力
ポートPo1へ転送するようにする。 一方、外部機器側においては、上記第1プロセ
ツサ部100の入出力ポートPi1,Po2に対応して
入出力ポートPi1′,Po2′を設けると共に、各種デ
ータの一時記憶用のバツフアメモリRAM・A〜
RAM・Cおよびデータの記憶保存用のメモリFM
を設けておく。さらに、第1プロセツサ部100
とのデータ転送やバツフアメモリRAM・A〜
RAM・CおよびメモリFMに対するデータ転送の
制御を行うためのマイクロプロセツサCPUと、
制御プログラムを記憶するプログラムメモリ
PGMと、第1プロセツサ部100とのデータ転
送形態等を指示するためのコマンド設定パネル
CMD・Pと、各種イベントの発生時刻あるいは
経過時間をイベントに関連するデータと共に記憶
させておくための時間情報を発生するタイマTM
とを設けておく。 そして、コマンド設定パネルCMD・Pにおい
て次の様なモードを指定できるようにしておく。 (a) ノーマルモード 外部機器側と第1プロセツサ部100とでは
データの送受を行なわないモード。 (b) ゲツトモード 外部機器側が第1プロセツサ部100からの
転送データのみを取込み、バツフアメモリ
RAM・A〜RAM・CあるいはメモリFMに記
憶するだけのモード。 (c) リプレイモード ゲツトモードと逆の処理を行うモードであ
り、第1プロセツサ部100が外部機器側から
の転送データのみを取込むモード。 (d) シンクモード 外部機器側と第1プロセツサ部100との間
で相互にデータの交換を行うモード。 このようなモードを選択できるようにしておく
ことにより、次のようなことを実現できる。つま
り、前述のゲートモードでは、第1プロセツサ部
100からの転送データをタイマTMの時刻信号
と共にメモリFMに記憶させることができ、例え
ば著名な演奏者による演奏情報をデイジタルデー
タとして保存し、これをその後において再生する
ことができる。この場合、演奏情報にはイニシヤ
ルタツチデータやアフタタツチデータも加味され
ているので、これをその後において再生した場合
にはあたかも著名な演奏者による演奏が行なわれ
ているような効果が得られる。 また、前述のリプレイモードでは、メモリFM
に記憶された演奏情報を読み出し、この演奏情報
と共に記憶されている時間情報に従つて当該演奏
情報を第1プロセツサ部100に対して転送する
ことができ、このリプレイモードを利用すればあ
たかも協奏演奏が行なわれているような楽音を発
音できる。この場合、タイマTMの基準クロツク
パルスの周波数を高くすると、再生楽音のテンポ
を速くすることができる。 また、シンクモードでは、例えばバツフアメモ
リRAM・Aに記憶された演奏情報を再生しつ
つ、演奏者によつて同期演奏された演奏情報をバ
ツフアメモリRAM・Bに同時に記憶させること
ができる。 この場合、外部機器側の内部に第1プロセツサ
部100から転送されてくる演奏情報と出力ポー
トPo2から出力される演奏情報とのミキシング回
路を設けておけば、これら両演奏情報を合成した
合成液奏情報の記録も行うことができる。 このようにこの第34図で示した応用例によれ
ば、単に鍵盤部からの押鍵情報だけでなく他の外
部機器からの情報によつても同様の演奏者を発音
できる。 D 発明の効果 以上説明したように、この発明によれば、タイ
マ手段による所定時間間隔毎の演算タイミングの
指示に対して適宜設定された頻度に応じてN回に
1回の割合で楽音パラメータ形成演算を繰返し行
うようにしたので、頻度の設定により簡単な構成
で、形成される楽音パラメータの時間変化を時間
軸上において精度よく任意にかつ容易に制御でき
るようになる。 また、この発明によれば、複数の楽音パラメー
タについてのパラメータ形成演算を1つの演算手
段を用いて時分割的に行うようにし、かつ各楽音
パラメータ毎に頻度をそれぞれ設定するようにし
たので、共通の演算手段を用いた簡単な構成で、
それぞれ独立して変化速度(変化タイミング)が
制御される複数の楽音パラメータを同時に形成で
きる。
[Formula] is supplied to the DAC 314 via the output register 313, and in this DAC 314, the corresponding analog musical sound waveform instantaneous amplitude value Gv
(t) and supplied to the sound system 400. By repeating such processing, up to 16 types of musical tones can be produced simultaneously from the sound system 400. In this case, the musical tone signal Gv supplied to the sound system 400 is the time-varying musical tone parameter G calculated in the second processor section 200.
[CA] to G[M 2 ], and is also formed based on the waveform memory 309 in the third processor section 300.
Since the address signal A corresponding to the address signal A is switched over time, its waveform shape changes complicatedly over time. In addition, the second processor section 20
Musical tone parameter G [CA] calculated at 0
Since initial touch data and after touch data have already been added to ~G [M 2 ],
The waveform of the musical tone signal Gv changes depending on the performance state. As a result, the tone of the musical tones produced by the sound system 400 changes over time, and also changes depending on the performance state. As explained above, the electronic musical tones according to this embodiment include detection of pressed keys, channel assignment of pressed keys and corresponding tone generation assignment, truncation control of generated musical tones, calculation of various musical tone parameters, and address information for waveform memory. All processing, including calculations, is performed using a general-purpose microprocessor. Therefore, it is extremely easy to change the processing contents such as the various detection processing, assignment processing, parameter calculation processing, etc., and it is possible to freely form desired musical tone signals and produce complex, varied, and rich musical tones. . Furthermore, musical tones can be created with a small-scale configuration that takes into consideration a wide variety of complex parameters. Furthermore, the relationship between the first processor section 100, the second processor section 200, and the third processor section 300 is as follows.
combined by an asynchronous buffer memory FIFO,
Transfer data is attached with a unique identification code JC before being transferred. For this reason, these first processor 100 to third processor section 300
Each process in the processor can be made asynchronous with each other, and only the processing speed of the entire system needs to be set in a predetermined relationship, which has the advantage that the processing contents within each processor can be determined and changed separately. be. In addition, since the truncation control of the generated musical tone is performed at two points: when the pressed key is released and when the musical tone related to the released key reaches the release end, the generated musical tone that does not reach the release end is This eliminates the problem of being forcibly erased mid-way or making it impossible to allocate a sound, and it is possible to eliminate the sense of incongruity between the pressed key state and the generated musical sound. Furthermore, since the tone generation assignments for the musical tones corresponding to the pressed keys are varied depending on the number of tone generation sequences set on the keyboard section, the types of musical tones that are generated simultaneously with the number of pressed keys can be made different. Furthermore, the musical tone parameters G[CA] to G[M 2 ] calculated in the second processor section 200 include:
Since the initial touch data and aftertouch data corresponding to the key depression state are taken into account, the tone of the generated musical tone corresponds to the tone setting information and changes in response to the initial touch signal and aftertouch signal. In this case, the initial touch data and after touch data are obtained by mixing analog initial touch signals and after touch signals, sampling this mixed output at different timings, and extracting these touch signals separately from one output terminal. These two touch signals are then decomposed with different weights depending on the type of tone parameter, and then converted into digital initial touch data and aftertouch data and extracted. Therefore, the touch sense circuit for obtaining initial touch data and after touch data can be simplified and economicalization can be achieved. In addition, the calculation parameters for calculating the musical tone parameters G [CA] to G [M 2 ] are changed not only by the tone setting information but also by the range of the pressed key, so even if the pressed keys of the same note are The tones differ slightly due to the different ranges. In addition, in the process of calculating the musical tone parameters G[CA] to G[M 2 ] in the second processor section 200, the program flow changes as the number of pressed keys changes, and the musical tone parameters G[CA] to G [ M2 ]
In order to prevent the calculation processing time from becoming random, a timer is used to regulate the calculation processing so that it is performed at fixed time intervals. Therefore, envelope control of the generated musical tones can be precisely performed at regular time intervals. Further, the frequency parameters R 1 and R 2 calculated in the second processor section 200 are calculated by logarithmic operation, and a logarithm table used for the logarithm operation stores a special base logarithm value. There is. Therefore, the calculation time for the frequency parameters R 1 and R 2 is shortened, and there is an advantage that a general-purpose memory element can be used efficiently as the memory element for storing the logarithm table. (Application example of the embodiment shown in FIG. 1) The electronic musical instrument shown in the embodiment shown in FIG. 200, and predetermined musical tone parameters G[CA] to G[ M2 ] are calculated in the second processor section 200.As an example of this application, an electronic musical instrument as shown in FIG. configuration is possible. That is, in FIG. 34, in addition to the output port Po 1 for data from the first processor section 100 to the second processor section 200, an output port Po 2 and an input port Pi 1 are provided, and when data is transferred to the second processor section 200, the same Data output port
Transfer to external device via Po 2 . in this case,
The input port Pi 1 is configured to input an interrupt request signal INT so that an interrupt request can be made to the first processor section 100 from an external device, and when an interrupt request occurs, the first processor section 10
0 receives data (DB) from input port Pi 1 , and processes the data as if it were performance information input in real time from the touch sensor circuit of the key switch circuit or the registration switch circuit. . Or input port
Transfer the data from Pi 1 as is to output port Po 1 without any processing. On the other hand, on the external device side, input/output ports Pi 1 ′, Po 2 ′ are provided corresponding to the input/output ports Pi 1 , Po 2 of the first processor section 100, and a buffer memory RAM for temporary storage of various data is provided.・A~
RAM・C and memory FM for data storage
Set it up. Furthermore, the first processor section 100
Data transfer and buffer memory RAM・A~
a microprocessor CPU for controlling data transfer to RAM/C and memory FM;
Program memory that stores control programs
Command setting panel for instructing the data transfer format between the PGM and the first processor unit 100
CMD/P and a timer TM that generates time information for storing the occurrence time or elapsed time of various events together with event-related data.
Let's set this. Then, make it possible to specify the following modes on the command setting panel CMD/P. (a) Normal mode A mode in which no data is exchanged between the external device and the first processor section 100. (b) Get mode The external device side takes in only the transfer data from the first processor section 100 and stores it in the buffer memory.
Mode that only stores data in RAM・A~RAM・C or memory FM. (c) Replay mode This is a mode in which processing is the opposite of the get mode, in which the first processor unit 100 captures only transfer data from the external device side. (d) Sink mode A mode in which data is exchanged between the external device and the first processor section 100. By making such a mode selectable, the following can be achieved. That is, in the gate mode described above, the data transferred from the first processor section 100 can be stored in the memory FM together with the time signal of the timer TM. For example, performance information by a famous performer can be stored as digital data and this can be stored in the memory FM. It can then be played back. In this case, since the performance information includes initial touch data and aftertouch data, when this is subsequently played back, an effect can be obtained as if the performance was being performed by a famous performer. In addition, in the aforementioned replay mode, the memory FM
The performance information stored in the replay mode can be read, and the performance information can be transferred to the first processor section 100 according to the time information stored together with the performance information.Using this replay mode, the performance information can be read as if it were a concert performance. can produce musical tones that sound like a musical instrument being played. In this case, by increasing the frequency of the reference clock pulse of the timer TM, the tempo of the reproduced musical tone can be increased. Further, in the sync mode, for example, while playing the performance information stored in the buffer memory RAM-A, performance information performed synchronously by the performer can be simultaneously stored in the buffer memory RAM-B. In this case, if a mixing circuit for the performance information transferred from the first processor section 100 and the performance information output from the output port Po 2 is provided inside the external device, a synthesis circuit that combines both performance information can be created. It is also possible to record liquid performance information. As described above, according to the application example shown in FIG. 34, the same player can be sounded not only based on key press information from the keyboard section but also based on information from other external devices. D. Effects of the Invention As explained above, according to the present invention, musical tone parameters are formed once every N times in accordance with an appropriately set frequency in response to an instruction of calculation timing at each predetermined time interval by the timer means. Since the calculations are repeated, it becomes possible to arbitrarily and easily control the temporal change of the musical tone parameters to be formed with high precision on the time axis with a simple configuration by setting the frequency. Further, according to the present invention, the parameter formation calculations for a plurality of musical tone parameters are performed in a time-sharing manner using one calculation means, and the frequency is set for each musical tone parameter. With a simple configuration using the calculation means of
A plurality of musical tone parameters whose change speeds (change timings) are independently controlled can be created simultaneously.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図はこの発明を適用した電子楽器の一実施
例を示す全体構成図、第2図は第1図に示す電子
楽器の楽音信号形成原理を説明するための図、第
3図a,bは第1図に示す電子楽器におけるキー
スイツチ回路の一実施例を示す詳細回路図、第4
図は第1図に示す電子楽器におけるタツチセンサ
回路の1実施例を示す詳細回路図、第5図は第4
図に示したタツチセンサ回路の動作を説明するた
めの各部波形図、第6図は第1図に示した電子楽
器における効果変調用発振器,EXPペダルスイ
ツチ回路,変調回路の一実施例を示す詳細回路
図、第7図は第1図に示した電子楽器におけるレ
ジストレーシヨンパネルの一例を示す図、第8図
a,bは第1プロセツサ部におけるメインルーチ
ンプログラムの一例を示すフローチヤート、第9
図は第1プロセツサ部におけるプレイイベントサ
ーチルーチンプログラムの一例を示すフローチヤ
ート、第10図a,bは第1プロセツサ部におけ
るマニユアルイベントサーチルーチンプログラム
の一例を示すフローチヤート、第11図は第1プ
ロセツサ部におけるキーオンルーチンプログラム
の一例を示すフローチヤート、第12図は第1プ
ロセツサ部におけるキーオフルーチンプログラム
の一例を示すフローチヤート、第13図a〜cは
第1プロセツサ部におけるペダルイベントサーチ
ルーチンプログラムの一例を示すフローチヤー
ト、第14図は第1プロセツサ部におけるモジユ
レーシヨンデータゲツトルーチンプログラムの一
例を示すフローチヤート、第15図は第1図に示
した電子楽器におけるノートスケーリング用テー
ブルの記憶データの一例を示す図、第16は第1
図に示した電子楽器におけるタイマの一実施例を
示す詳細回路図、第17図は第2プロセツサ部に
おけるメインルーチンプログラムの一例を示すフ
ローチヤート、第18図a,bは第2プロセツサ
部におけるチヤンネルアサインルーチンプログラ
ムの一例を示すフローチヤート、第19図は第2
プロセツサ部におけるPRGオンセツトルーチン
の一例を示すフローチヤート、第20図は第2プ
ロセツサ部におけるパラメータ計算ルーチンプロ
グラムの一例を示すフローチヤート、第21図は
第2プロセツサ部におけるイニシヤルルーチンプ
ログラムの一例を示すフローチヤート、第22図
は第2プロセツサ部におけるn・Δセツトルーチ
ンプログラムの一例を示すフローチヤート、第2
3図は第2プロセツサ部におけるアタツク部計算
ルーチンプログラム,デイケイ部計算ルーチンプ
ログラム,サステイン部計算ルーチンプログラム
の一例を示すフローチヤート、第24図は第2プ
ロセツサ部におけるPRGオフセツトルーチンプ
ログラムの一例を示すフローチヤート、第25図
は第2プロセツサ部におけるリリース部計算ルー
チンプログラムの一例を示すフローチヤート、第
26図は第2プロセツサ部におけるリリースコン
トロールルーチンプログラムの一例を示すフロー
チヤート、第27図は第2プロセツサ部における
パラメータ変換ルーチンプログラムの一例を示す
フローチヤート、第28図は第2プロセツサ部に
おける楽音パラメータの算出原理を説明するため
の図、第29図は第2プロセツサ部におけるΔテ
ーブルとnテーブルの記憶内容の関係を説明する
ための図、第30図は第3プロセツサ部の一実施
例を示す詳細ブロツク図、第31図は第30図で
示したコントロールロジツクユニツト(CLU)
の詳細回路例を示す図、第32図は第3プロセツ
サ部における処理プログラムの一例を示すフロー
チヤート、第33図は第3プロセツサ部の動作を
説明するためのタイムチヤート、第34図は第1
図で示した電子楽器の応用例を示すブロツク図で
ある。 1,2……FIFO、100……第1プロセツサ
部、101……第1演算装置、110……キース
イツチ回路、120……タツチセンサ回路、13
0……効果変調用発振器、140……EXPペダ
ルスイツチ回路、150……変調回路、170…
…レジストレーシヨンスイツチ回路、180……
ワツトスイツチ回路、201……第2演算装置、
210……音色制御情報テーブル、220……ノ
ートスケーリング用テーブル、230……Δテー
ブル、240……nテーブル、250……対数テ
ーブル、260……Rテーブル、300……第3
プロセツサ部、301……コントロールロジツク
ユニツト、302……パラメータメモリ、304
……アリスメテイツクロジツクユニツト、305
……ワーキングメモリ、307……フエーズレジ
スタ、308……マグニチユードレジスタ、30
9……波形メモリ、311……対数・自然数変換
器、312……アキユムレータ、DAC……D・
A変換器、400……サウンドシステム。
FIG. 1 is an overall configuration diagram showing an embodiment of an electronic musical instrument to which the present invention is applied, FIG. 2 is a diagram for explaining the principle of musical tone signal formation of the electronic musical instrument shown in FIG. 1, and FIGS. 3 a and b. 4 is a detailed circuit diagram showing an embodiment of the key switch circuit in the electronic musical instrument shown in FIG.
The figure is a detailed circuit diagram showing one embodiment of the touch sensor circuit in the electronic musical instrument shown in Figure 1.
6 is a detailed circuit diagram showing an example of the effect modulation oscillator, EXP pedal switch circuit, and modulation circuit in the electronic musical instrument shown in FIG. 1. 7 is a diagram showing an example of the registration panel in the electronic musical instrument shown in FIG. 1, FIGS. 8a and 8b are flow charts showing an example of the main routine program in the first processor section,
10 is a flowchart showing an example of a play event search routine program in the first processor section. FIGS. 10a and 10b are flowcharts showing an example of a manual event search routine program in the first processor section. FIG. FIG. 12 is a flowchart showing an example of a key-off routine program in the first processor section; FIGS. 13 a to c are examples of a pedal event search routine program in the first processor section. FIG. 14 is a flowchart showing an example of a modulation data get routine program in the first processor section, and FIG. 15 is a flowchart showing an example of a modulation data get routine program in the first processor section. A diagram showing an example, No. 16 is the first
17 is a flowchart showing an example of the main routine program in the second processor section, and FIGS. 18a and b are channels in the second processor section. A flowchart showing an example of an assignment routine program, FIG.
FIG. 20 is a flowchart showing an example of the PRG onset routine in the processor section. FIG. 20 is a flowchart showing an example of the parameter calculation routine program in the second processor section. FIG. 21 is a flowchart showing an example of the initial routine program in the second processor section. FIG. 22 is a flowchart showing an example of the n.Δ set routine program in the second processor section.
FIG. 3 is a flowchart showing an example of an attack part calculation routine program, a decay part calculation routine program, and a sustain part calculation routine program in the second processor part, and FIG. 24 shows an example of a PRG offset routine program in the second processor part. Flowchart: FIG. 25 is a flowchart showing an example of the release section calculation routine program in the second processor section; FIG. 26 is a flowchart showing an example of the release control routine program in the second processor section; FIG. 27 is a flowchart showing an example of the release control routine program in the second processor section. A flowchart showing an example of a parameter conversion routine program in the processor section, FIG. 28 is a diagram for explaining the principle of calculation of musical tone parameters in the second processor section, and FIG. 30 is a detailed block diagram showing an embodiment of the third processor section, and FIG. 31 is a control logic unit (CLU) shown in FIG. 30.
32 is a flowchart showing an example of a processing program in the third processor section, FIG. 33 is a time chart for explaining the operation of the third processor section, and FIG. 34 is a flowchart showing an example of the processing program in the third processor section.
FIG. 2 is a block diagram showing an example of application of the electronic musical instrument shown in the figure. 1, 2...FIFO, 100...first processor section, 101...first arithmetic unit, 110...key switch circuit, 120...touch sensor circuit, 13
0...Effect modulation oscillator, 140...EXP pedal switch circuit, 150...Modulation circuit, 170...
...Registration switch circuit, 180...
Wattswitch circuit, 201... second arithmetic unit,
210... Tone control information table, 220... Note scaling table, 230... Δ table, 240... n table, 250... logarithmic table, 260... R table, 300... third
Processor section, 301... Control logic unit, 302... Parameter memory, 304
...Arithmetic logic unit, 305
... Working memory, 307 ... Phase register, 308 ... Magnitude register, 30
9... Waveform memory, 311... Logarithm/natural number converter, 312... Accumulator, DAC...D.
A converter, 400...sound system.

Claims (1)

【特許請求の範囲】 1 楽音信号発生のために用いられ、時間ととも
に順次変化する楽音パラメータを形成する電子楽
器の楽音パラメータ形成装置において、 上記楽音パラメータの新たなパラメータ値を形
成するためのパラメータ形成演算を、当該楽音パ
ラメータに対応した所定値を用いて実行するパラ
メータ形成演算手段と、 上記演算手段に対して予め設定された所定の時
間間隔で上記パラメータ形成演算のタイミングを
指示するタイマ手段と、 上記演算手段における上記パラメータ形成演算
の実行の頻度を設定する手段と を備え、 上記演算手段は、上記タイマ手段による所定時
間間隔毎の演算タイミングの指示に対して上記頻
度に従つた割合で上記パラメータ形成演算を実行
し、上記所定値と上記所定時間間隔と上記頻度と
に応じて順次変化する楽音パラメータを形成する
ことを特徴とする電子楽器の楽音パラメータ形成
装置。 2 楽音信号発生のために用いられ、時間ととも
に順次変化する複数の楽音パラメータを形成する
電子楽器の楽音パラメータ形成装置において、 上記各楽音パラメータの新たなパラメータ値を
それぞれ形成するためのパラメータ形成演算を、
当該楽音パラメータに対応した所定値を用いて各
楽音パラメータ毎に時分割で実行可能なパラメー
タ形成演算手段と、 上記演算手段に対して、予め設定された所定の
時間間隔で上記パラメータ形成演算のタイミング
を上記各楽音パラメータに対し共通に指示するタ
イマ手段と、 上記演算手段における上記パラメータ形成演算
の実行の頻度を、上記各楽音パラメータ毎にそれ
ぞれ独立して決定する手段と を備え、 上記演算手段は、上記タイマ手段による所定時
間間隔毎の演算タイミングの指示に対して上記各
楽音パラメータ毎にそれぞれ上記頻度に従つた割
合で当該楽音パラメータについての上記パラメー
タ形成演算を実行し、上記各楽音パラメータ毎に
それぞれ上記所定値と上記所定時間間隔と上記頻
度とに応じて順次変化するパラメータ値を形成す
ることを特徴とする電子楽器の楽音パラメータ形
成装置。
[Scope of Claims] 1. In a musical tone parameter forming device for an electronic musical instrument that is used for generating musical tone signals and forms musical tone parameters that change sequentially over time, a parameter formation device for forming new parameter values of the musical tone parameters. parameter formation calculation means for performing calculations using predetermined values corresponding to the musical tone parameters; timer means for instructing the timing of the parameter formation calculations at predetermined time intervals set in advance for the calculation means; and means for setting the frequency of execution of the parameter formation operation in the calculation means, wherein the calculation means sets the parameter at a rate according to the frequency with respect to the instruction of calculation timing at each predetermined time interval by the timer means. A musical tone parameter forming device for an electronic musical instrument, characterized in that a musical tone parameter forming device for an electronic musical instrument is configured to execute a forming operation to form musical tone parameters that sequentially change according to the predetermined value, the predetermined time interval, and the frequency. 2. In a musical tone parameter forming device for an electronic musical instrument that is used for generating musical tone signals and forms a plurality of musical tone parameters that change sequentially over time, a parameter forming operation is performed to form new parameter values for each of the musical tone parameters. ,
parameter formation calculation means that can be executed on a time-sharing basis for each musical tone parameter using a predetermined value corresponding to the musical tone parameter; and timing of the parameter formation calculation at predetermined time intervals set in advance for the calculation means. timer means for commonly instructing each of the musical tone parameters, and means for independently determining the frequency of execution of the parameter forming operation in the calculation means for each of the musical tone parameters, the calculation means , in response to the instruction of the calculation timing at each predetermined time interval by the timer means, the parameter forming calculation for each of the musical tone parameters is executed at a rate according to the frequency, and for each of the musical tone parameters. A musical tone parameter forming device for an electronic musical instrument, characterized in that a parameter value is formed that sequentially changes according to the predetermined value, the predetermined time interval, and the frequency, respectively.
JP7219579A 1979-06-11 1979-06-11 Electronic musical instrument Granted JPS55164898A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7219579A JPS55164898A (en) 1979-06-11 1979-06-11 Electronic musical instrument

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7219579A JPS55164898A (en) 1979-06-11 1979-06-11 Electronic musical instrument

Publications (2)

Publication Number Publication Date
JPS55164898A JPS55164898A (en) 1980-12-22
JPS6143720B2 true JPS6143720B2 (en) 1986-09-29

Family

ID=13482186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7219579A Granted JPS55164898A (en) 1979-06-11 1979-06-11 Electronic musical instrument

Country Status (1)

Country Link
JP (1) JPS55164898A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59111515A (en) * 1982-12-17 1984-06-27 Casio Comput Co Ltd Waveform generating system
JPH079584B2 (en) * 1993-08-24 1995-02-01 株式会社河合楽器製作所 Performance information detection method for electronic musical instruments

Also Published As

Publication number Publication date
JPS55164898A (en) 1980-12-22

Similar Documents

Publication Publication Date Title
US5119710A (en) Musical tone generator
CA1147994A (en) Electronic music instrument
US5081898A (en) Apparatus for generating musical sound control parameters
US4202234A (en) Digital generator for musical notes
JPH07261762A (en) Automatic accompaniment information generator
JPS6367193B2 (en)
US5354948A (en) Tone signal generation device for generating complex tones by combining different tone sources
US4387618A (en) Harmony generator for electronic organ
JPS6143720B2 (en)
US5281756A (en) Electronic musical instrument capable of assigning desired tones to a performance operator
US5220120A (en) Automatic play device having controllable tempo settings
US5214993A (en) Automatic duet tones generation apparatus in an electronic musical instrument
JPH0654434B2 (en) Automatic rhythm playing device
JP2538809B2 (en) Musical sound generator
US4619176A (en) Automatic accompaniment apparatus for electronic musical instrument
JPH0584919B2 (en)
JPH071430B2 (en) Electronic musical instrument
JP3721789B2 (en) Mixing equipment
JP2701177B2 (en) Tone generator
JPS6220554B2 (en)
JPS6227713B2 (en)
JPH10124053A (en) Musical information inputting device
JP3578103B2 (en) Integrated circuit for sound source
JPH055357B2 (en)
JPH0642146B2 (en) Musical sound generator