JPH0474718B2 - - Google Patents
Info
- Publication number
- JPH0474718B2 JPH0474718B2 JP58071862A JP7186283A JPH0474718B2 JP H0474718 B2 JPH0474718 B2 JP H0474718B2 JP 58071862 A JP58071862 A JP 58071862A JP 7186283 A JP7186283 A JP 7186283A JP H0474718 B2 JPH0474718 B2 JP H0474718B2
- Authority
- JP
- Japan
- Prior art keywords
- tone
- data
- key
- channel
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
この発明はプログラムコントロールによる電子
楽器に関する。 第1図は、従来の電子オルガンの構成例を示す
ブロツク図である。この図において、鍵盤1のキ
ー(鍵)が操作されると、押鍵検出回路2がこれ
を検出し、操作されたキーのキーコードを楽音発
生部3へ出力する。また、音色検出回路4は音色
設定操作子部5において設定された音色に対応す
るトーンコードを楽音発生部3へ出力する。楽音
発生部3はトーンコードに対応する波形(音色)
で、かつキーコードに対応する周波数の楽音信号
(デイジタル信号)を形成し、D/A(デイジタ
ル/アナログ)変換器6へ出力する。D/A変換
器6は供給された楽音信号をアナログ信号に変換
し、増幅器7を介してスピーカ8へ供給する。こ
れにより、スピーカ8から操作されたキーの楽音
が発生する。 ところで、このような従来の電子楽器は回路各
部がいずれもハードウエアによつて構成されてい
た。このため、電子楽器全体の構成が複雑かつ大
規模となり、したがつて価格も高価になる欠点が
あり、また、キーの数あるいは音色設定操作子の
数を拡張したい場合に、回路各部の構成がさらに
複雑化し、このため容易に拡張を行い得ない欠点
があつた。 そこでこの発明は、構成が簡単になると共に、
鍵の数あるいは音色設定操作子の数の変更を容易
に行い得る電子楽器を提供するもので、鍵盤部、
音色設定操作子部および楽音発生部の各要素を共
通の情報伝送路を介してプログラムコントロール
による制御手段にそれぞれ接続し、制御手段によ
つて鍵盤部および音色設定操作子部の操作状態を
それぞれ検出するとともに、この検出に基づいて
楽音発生部に対し周波数および波形を定める所定
のデータ信号を供給するようにしたものである。 以下、図面を参照しこの発明の実施例について
説明する。 第2図は、この発明による電子オルガン(電子
楽器)の構成を示すブロツク図であり、この図に
示す電子オルガンは大きく分けると鍵盤回路1
1、アサイナ12および楽音発生部13から構成
される。そして、上記アサイナ12は制御部1
4、演算部15、割込制御回路16、パルス発生
器17、データポート18を具備する演算制御部
19と、ROM(リードオンリーメモリ)20、
RAM(ランダムアクセスメモリ)21、レジス
タ22を具備する第1の記憶部23とから構成さ
れ、また楽音発生部13は、32個のチヤンネルを
有するウエイブジエネレータ(以下WGと称す)
25と、このWG25にエンベロープ情報を送出
するエンベロープジエネレータ26と、D/A
(デジタル/アナログ)変換回路27と、増幅器
28と、スピーカ29とから構成される。なお、
上述した制御部14および演算部15は通常マイ
クロコンピユータを用いて構成される。また、上
述したエンベロープとは楽音信号の包絡線のこと
である。すなわち、通常の楽音信号は第2図にお
いて符号Bにて示すように、立上り状態(アタツ
ク状態)B1、持続状態B2、立下り状態(デイケ
イ状態)B3の3状態からなるエンベロープを有
している。 この電子オルガンはプログラムコントロールで
動作するもので、そのプログラムはROM20に
記憶されている処理プログラムと制御部14内の
マイクロプログラムメモリ45に記憶されている
各種マイクロプログラムから構成される。また、
WG25において楽音信号(デジタル信号)を形
成するために必要な各種トーンデータおよび周波
数データはROM20に記憶されている。そし
て、上記処理プログラムおよびマイクロプログラ
ムに基づいて、次の様に動作するものである。す
なわち、キーが押下されると、まず鍵盤回路11
が押下されたキーに対応するキースイツチ情報を
データバス30を介してアサイナ12に供給す
る。アサイナ12は供給されたキースイツチ情報
に対応する周波数データおよびトーンデータを
ROM20から読出し、読出しデータをWG25
の複数のチヤンネルに対して割当てる。WG25
の各チヤンネルは当該チヤンネルに割当てられた
データおよびエンベロープジエネレータ26から
供給されるエンベロープ情報に基づいて楽音信号
(デジタル信号)を形成する。そして、これら各
チヤンネルで形成された楽音信号がD/A変換器
27においてアナログ信号に変換され、増幅器2
8を介してスピーカ29から楽音として放音され
る。 以上、この電子オルガンの概略を述べたが、次
にこの電子オルガンの詳細を説明する。 まず、鍵盤回路11はアドレスデコーダ34、
バツフアバスドライバ35、マトリツクス回路3
6から構成される。アドレスデコーダ34はアド
レスバス37を介して供給されるスイツチアドレ
ス信号をデコードするもので、この実施例では5
個の出力端を有し、またこれらの各出力端がマト
リツクス回路36の各列線にそれぞれ接続されて
いる。マトリツクス回路36は12行5列のマトリ
ツクスであり、このマトリツクスの各支点には、
トーンレバー(「ヴアイオリン」、「フルート」等
の音色を設定するためのレバー)38の各スイツ
チの接点および鍵盤キー39の各キースイツチの
接点が、図において符号Aにて示すように、ダイ
オードと共に介挿されている。なおこの実施例に
おいては、説明の便宜上トーンレバー38が6個
のトーンレバーからなり、また各トーンレバーは
いずれも4段階で音量を調整可能にものとして
(したがつて、各トーンレバーに関する情報は2
ビツトで現わされ、この2ビツトに対応してトー
ンレバースイツチは各トーンレバーに対し2個ず
つ、合計12個となる)、また鍵盤キー39は4オ
クターブ(12×4=48キー)から構成されるもの
とする。そして、各トーンレバーのスイツチがマ
トリツクス回路36の左側(図において)1列に
配置され(図において破線で囲んだスイツチ2個
が1つのトーンレバーに対応する)、また鍵盤キ
ー39の各キースイツチがマトリツクス回路36
の右側4列に配置されている。 バツフアバスドライバ35は上記各スイツチの
オン・オフ情報をデータバス30に出力するため
のバスドライであり、12個の入力端および出力端
を有し、入力端は各々マトリツクス回路36の各
行線に接続されているとともに、出力端はデータ
バス30に接続されている。 制御部14はインストラクシヨンレジスタ4
2、インストラクシヨンデコーダ43、マイクロ
プログラム・アドレスシーケンサ44、マイクロ
プログラムメモリ45(第2の記憶部)、パイプ
ラインレジスタ46から構成される。インストラ
クジヨンレジスタ42はROM20から読出され
る処理プログラムの各命令を一時記憶するもの
で、このインストラクシヨンレジスタ42に一時
記憶された命令はインストラクシヨンデコーダ4
3によつて解読され、マイクロプログラム・アド
レスシーケンサ44に供給される。マイクロプロ
グラムアドレスシーケンサ44はインストラクシ
ヨンデコーダ43の出力に基づいてマイクロプロ
グラムメモリ45のアドレスを指定し、この結
果、マイクロプログラムメモリ45から前述した
インストラクシヨンレジスタ42に一時記憶され
ている処理プログラムの命令に対応するマイクロ
プログラムが読出され、パイプラインレジスタ4
6に供給される。 演算部15はマイクロフアンクシヨン・デコー
ダ(以下、MFDと略称する)48、演算回路4
9等を有して構成され、制御部14から供給され
るマイクロプログラムの各命令を解読して所定の
処理を実行するものである。すなわち、MFD4
8はパイプラインレジスタ46から供給される上
記マイクロプログラムの各命令を解読し、この解
読結果に基づいて、レジスタ群50、マルチプレ
クサ51,52、演算回路49、メモリアドレス
レジスタ53、データレジスタ54、アウトプツ
トバツフア55,56へ各々制御信号を出力す
る。レジスタ群50はマイクロプログラムの各命
令を処理する過程で使用されるワーキングレジス
タであり、演算回路49の出力がMFD48から
の制御信号により読込まれ、またこのレジスタ群
50の出力はマルチプレクサ51の第2の入力端
に供給される。マルチプレクサ51は、その第1
の入力端がデータバス30に、第3の入力端がデ
ータレジスタ54の出力端に各々接続されてお
り、MFD48からの制御信号に基づいて第1〜
第3の入力端に得られるデータを選択的に演算回
路49へ出力するものである。マルチプレクサ5
2は、その第1の入力端がデータバス30に、第
2の入力端がデータレジスタ54の出力端に各々
接続されており、これら第1、第2の入力端に得
られるデータを選択的に演算回路49へ出力す
る。 演算回路49はマルチプレクサ51,52から
供給される各種データ(このデータには第1の記
憶部23の各メモリのアドレスを指定するアドレ
スデータおよび前述したキーをチヤンネルに割当
てる際使用されるデータがある)をMFD48か
らの制御信号に基づいて演算し、演算結果をメモ
リアドレスレジスタ53あるいはデータレジスタ
54へ供給する。メモアドレスレジスタ53は演
算回路49から供給されるアドレスデータを一時
記憶するもので、このメモリアドレスレジスタ5
3の出力はアウトプツトバツフア55を介してア
ドレスバス37へ出力される。データレジスタ5
4は演算回路49から供給されるデータ(キーを
チヤンネルに割当てる際使用されるデータ)を一
時記憶するもので、このデータレジスタ54の出
力はアウトプツトバツフア56を介してデータバ
ス30に出力される。 割込制御回路16は割込発生の際の各種処理を
行なうものである。ここで、この電子オルガンの
割込信号について説明する。この電子オルガンは
3個の割込信号INTR1,INTR2,INTR3を
有している。割込信号INTR1はパルス発生器1
7の出力に基づいて、割込制御回路16内で数m
sec毎に周期的に発生する割込信号であり、この
割込信号INTR1が発生すると、鍵盤キー39の
各キースイツチのオン/オフ情報がRAM21内
に読込まれる。割込信号INTR2はパルス発生器
17の出力を割込制御回路16内の分周器によつ
て分周して作られる割込信号であり、数100msec
毎に周期的に発生する。そして、この割込信号
INTR2が発生すると、トーンレバー38の各ス
イツチのオン/オフ情報がRAM21内に読込ま
れる。なお、割込信号INTR2の周期が割込信号
INTR1の周期よりはるかに大となつている理由
は、通常各キーが頻繁に操作されるのに対して、
各トーンレバーは各キーほど頻繁には操作されな
いからである。割込信号INTR3はWG25から
供給される割込信号であり、WG25内の各チヤ
ンネルにおいて形成された楽音信号が0となつた
時点で発生するものである。なお、この割込信号
INTR3については後述する。 そして、これらの割込信号INTR1〜INTR3
のいずれかが発生すると、制御部14がこれを検
知し、現在実行中のマイクロプログラムモジユー
ルが終了した時点で割込命令をインストラクシヨ
ンレジスタ42内に読込み、その解読を行なう。
なお割込信号INTR1〜INTR3の優先順位は、
割込制御回路16において、 INTR3>INTR1>INTR2 の如く定められる。 ROM20は、前述したように処理プログラ
ム、周波数データおよびトーンデータ等を記憶す
るもので、アウトプツトバツフア55からアドレ
スバス37を介してアドレス信号が供給され、ま
た同アドレス信号によつて読出された処理プログ
ラムの各命令あるいは各種データがデータバス3
0に出力される。RAM21は、チヤンネル割当
ての際使用される各種データテーブル、データフ
アイル等が記憶されるもので、アウトプツトバツ
フア55からアドレス信号が供給され、またその
入出力端がデータバス30に接続されている。レ
ジスタ22は各種ステイタスあるいはコマンド
(後述)等が記憶されるもので、アウトプツトバ
ツフア55からアドレス信号が供給され、またそ
の入力端はデータバス30に接続されている。 データポート18はROM20に記憶されてい
る周波数データ、トーンデータおよびレジスタ2
2に記憶されている各種コマンドをWG25およ
びエンベロープジエネレータ26へ出力するため
のレジスタであり、アウトプツトバツフア55か
らアドレスが供給され、また、その入力端はデー
タバス30に接続されている。なお、上述した
ROM20、RAM21、レジスタ22およびデ
ータポート18の各記憶内容を第14図に示す。 次に、第2図に示す電子オルガンの動作を第3
図に示す流れ図に基づいて説明する。なお、以下
の説明において“1”とあるのは二値論理レベル
の“1”信号を示し、“0”とあるのは二値論理
レベルの“0”信号を示すものとする。 第3図イはプログラムの流れを示す流れ図であ
り、また第3図ロは割込処理ルーチンである。こ
の図に示すように、この電子オルガンのプログラ
ムはR1〜R8なる8個のメインルーチンおよび
I1〜I3なる3個の割込処理ルーチンから構成
される。そして、各ルーチンが複数のマイクロプ
ログラムモジユール化されマイクロプログラムメ
モリ45内に記憶され、またこれらのマイクロプ
ログラムモジユールを呼出すマクロ命令が処理プ
ログラムとしてROM20内に記憶されている。
以下、上記各ルーチンについて順次説明する。 (1) 処理リセツトルーチンR1 この電子オルガンにおいて電源が投入される
と、プログラムはまずこの初期リセツトルーチ
ンR1に入り、各部の初期リセツトが行なわれ
る。 (2) トーンレバー・オン/オフ検出ルーチンI1 この割込処理ルーチンは割込信号INTR2が
数100msecのインターバルで発生するたびに実
行されるもので、割込信号INTR2が発生した
時点における鍵盤回路11の各トーンレバース
イツチのオン/オフ状態を検出するものであ
る。すなわち、割込制御回路16において割込
信号INTR2が発生すると、アドレスデコーダ
34にスイツチアドレス信号が供給され、この
スイツチアドレス信号に基づいて各トーンレバ
ースイツチのオン/オフ情報がバツフアバスド
ライバ35およびデータバス30を介してレジ
スタ22内に読込まれる。そして、この読込ま
れたトーンレバースイツチのオン/オフ情報に
基づいて、レジスタ22内に第4図に示すニユ
ートーンレバー・ステイタステーブル(以下、
NTSと略称する)60が作成される。この場
合、このNTS60においては、各トーンレバ
ー1〜6の音量設定が2進数によつて示される
ようになつている。すなわち、図に示す例にお
いてはトーンレバー1,4,5,6が音量
「0」を要求し、トーンレバー2が音量「3」
を、トーンレバー3が音量「2」を要求してい
る。 (3) トーンレバー位置、変化検出ルーチンR2前
述した初期リセツトルーチンR1が終了する
と、プログラムはこのルーチンR2に進行す
る。このルーチンR2は、現在のNTS60の
内容が前回このルーチンR2を実行した時点に
おける同NTS60の内容と異なつているか否
かを検出するもので、このNTS60の内容と
RAM21内に作成されているオールドトーン
レバー・ステイタステーブル(以下、OTSと
略称する;第4図参照)61の内容とを比較す
ることにより上記検出が行なわれる。なお
OTS61は前回このルーチンR2を実行した
時点におけるNTS60の内容を示すもので、
次に説明するルーチン3において作成される。
そして、ルーチンR2を実行した結果が
「YES」(変化あり)の場合は、プログラムが
ルーチンR3に進行し、また「NO」(変化な
し)の場合はルーチンR4に進行する。 (4) トーンレバー処理ルーチンR3 このルーチンR3は上記NTS60の内容に
基づいて第4図に示すトーンリクエストフアイ
ル62をRAM21内に作成するものである。
そして、この電子オルガンにおいては、このル
ーチンR3において作成されるトーンリクエス
トフアイル62に基づいてROM20内のトー
ンデータがWG25の各チヤンネルに割当てら
れるようになつている。 すなわち、ROM20内には第4図に示すよ
うに予め音量テーブル63、トーンレバー・イ
ンデツクステーブル64およびトーンデータバ
ンク65が設けられている。そして、音量テー
ブル63には、トーンレバーによつて設定され
る音量「1」〜「3」に対応する音量係数
(WG25の各チヤンネルはこの音量係数に基
づいて音量設定を行なう)が予め記憶され、ト
ーンデータバンク65には複数のトーンデー
タ、すなわち…トーンデータi−1、トーンデ
ータi、トーンデータi+1、トーンデータi
+2…が記憶され、またトーンレバーインデツ
クステーブル64には、各トーンレバー1〜6
に対応するトーン(音色)を構成するためのト
ーンデータのアドレスポインタが記憶されてい
る。この場合、図に示す例について説明する
と、トーンレバー1に対応するトーン(音色)
はトーンデータi−1およびiから構成され、
したがつてトーンレバーインデツクステーブル
64のトーンレバー1に対応するスロツト(記
憶エリア)64aには、トーンデータバンク6
5におけるトーンデータi−1、iの各先頭番
地、すなわちアドレスAおよびアドレスBが記
憶され、トーンレバー2に対応するトーンはト
ーンデータi+2によつて構成され、したがつ
てスロツト64bにはアドレスDが記憶され、
またトーンレバー3に対応するトーンはトーン
データi、i+1から構成され、したがつてス
ロツト64cにはアドレスB、アドレスCが記
憶されている。なお、この実施例においては各
トーンレバーに対応するトーンを構成するトー
ンデータの数を最大2としたが、これは複数個
可能であり、最大2に制限する必要はない。 そして、プログラムがこのトーンレバー処理
ルーチンR3(第5図にこのルーチンR3のフ
ローチヤートを示す)に入ると、まずレジスタ
22内のNTS60(第4図)に記憶されてい
るトーンレバー1の音量情報が演算部15のレ
ジスタ群50内に読出される。しかし、この場
合音量が「0」であるので、何らの処理も行な
われない。次いで、トーンレバー2の音量情報
がレジスタ群50内に読出される。この場合、
音量「3」が指定されている。したがつてまず
トーンレバーインデツクステーブル64のスロ
ツト64b内のアドレスポインタ(すなわち、
アドレスD)がトーンリクエストフアイル62
のエリア62c内に書込まれ、次いで音量テー
ブル63内の音量「3」に対応する音量係数
「1111111」が上記エリア62c内に書込まれる
(第4図参照)。次に、トーンレバー3の音量情
報がレジスタ群50内に読出される。この場
合、音量「2」が指定されており、したがつ
て、まずテーブル64のスロツト64c内の第
1のアドレスポインタ(すなわち、アドレス
B)がトーンリクエストフアイル62のエリア
62d内に書込まれ、次に音量「2」に対応す
る音量係数(「0100000」)が同エリア62d内
に書込まれ、次にスロツト64c内の第2のア
ドレスポインタ(すなわち、アドレスc)がエ
リア62e内に書込まれ、次に音量「2」に対
応する音量係数(「0100000」)が同エリア62
e内に書込まれる。このようにして、NTS6
0内の各トーンレバーの音量情報が順次読出さ
れ、処理される。そして、最後にトーンリクエ
ストフアイル62内に書込まれたアドレスポイ
ンタの数、すなわちトーンリクエストフアイル
62内に登録されたトーンデータの数が同トー
ンリクエストフアイル62のヘツダー(すなわ
ち、エリア62a)に書込まれ、トーンリクエ
ストフアイル62の作成が終了する。トーンリ
クエストフアイル62の作成が終了した後
NTS60の内容をOTS61内に転送し、プロ
グラムはこのルーチンR3を出る。 このように、この電子オルガンにおいてはこ
のルーチンR3において第4図に示すようなト
ーンリクエストフアイル62が作成される。こ
の場合、各トーンレバーはトーンレバーインデ
ツクステーブル64のアドレスポインタのみと
対応しているので、このテーブル64のアドレ
スポインタを変更することにより各トーンレバ
ーに対し任意のトーンデータ(音色)を対応さ
せることができる。 なお、このトーンリクエストフアイル62に
おいて、エリア62bにはこのフアイル62に
共通する音色加工のための情報、例えばビブラ
ート周波数、ビブラート深さ、デイケイ長さ等
が記憶されている。すなわち、詳細な説明は省
略するが、予めこれらの音色加工のための情報
をROM20内に記憶しておき、音色加工用レ
バーの操作位置にしたがつて音色加工情報を
ROM20から読出しこのフアイル62に登録
することにより、WG25の各チヤンネルにお
いて形成される楽音信号に音色加工を施すこと
が可能になる。 ところで、上述したトーンリクエストフアイ
ル62作成の過程において、ヘツダー62aに
記入されるアドレスポインタ数の検出は、通常
レジスタ22内にトーンリクエストカウンタな
るカウンタを設け、アドレスポインタをフアイ
ル62内に書込むたびにこのトーンリクエスト
カウンタをインクリメントし、最後にこのトー
ンリクエストカウンタのカウント結果を参照す
ることにより行なわれる。また、上記過程おけ
るNTS60の内容の順次読出し、トーンレバ
ーインデツクステーブル64の各スロツト内の
アドレスポインタの順次読出し、トーンリクエ
ストフアイル62内の各エリアへの順次書込み
等は、通常対応するポインタをたて、1つの処
理が済むたびにこのポインタの内容を進め、こ
のポインタの内容に基づいて実行されるもので
ある。例えば、トーンリクエストフアイル62
へアドレスポインタを書込む場合は、まずトー
ンリクエストフアイルポインタなるポインタに
エリア62cのエントリイアドレス(アドレス
E)をセツトし、このトーンリクエストフアイ
ルポインタに基づいてエリア62c内に書込
み、次いでトーンリクエストフアイルポインタ
の内容をエリア62dのエントリイアドレス
(アドレスF)に進め、このエントリイアドレ
ス(アドレスF)に基づいてエリア62d内に
書込み…の如く行なわれる。しかしながら、こ
れらの処理はこの業界においては極く当然に行
なわれる処理であり、したがつてこの明細書に
おいてはこれらの処理過程の記載を省略してい
る。 (5) キー・オン/オフ検出ルーチンI2 この割込処理ルーチンI2は割込信号INTR
1が数msecのインターバルで発生するたびに
実行されるもので、割込信号INTR1が発生し
た時点における鍵盤回路11の各キースイツチ
のオン/オフ状態を検出するものである。すな
わち、割込制御回路16において割込信号
INTR1が発生すると、アドレスデコーダ34
にスイツチアドレス信号が供給され、このスイ
ツチアドレス信号に基づいてキースイツチのオ
ン/オフ情報がバツフアバスドライバ35およ
びデータバス30を介してレジスタ22内に読
込まれ、このレジスタ22内に第6図に示すニ
ユーキーボード・ステイタス・テーブル(以下
NKSと略称する)70が作成される。この図
に示すNKS70において、“1”とあるのはこ
の“1”に対応するキーが割込信号INTR1発
生時点において押下されていることを示してい
る。すなわち、この例では現在第1オクターブ
のC音、E音、第2オクターブのD#音、第3
オクターブのF#音、第4オクターブのA音に
各々対応するキーが押下されていることを示し
ている。なお、この図において無印は“0”を
示している。 (6) 押下キー位置・変化検出ルーチンR4 トーンレバー処理ルーチンR3が終了する
と、プログラムはこのルーチンR4に進行す
る。このルーチンR4は、現在のNKS70の
状態が前回このルーチンR4を実行した時点に
おけるNKS70の状態と異なつているか否か
を検出するもので、NKS70の内容と第6図
に示すオールドキーボード・ステイタステーブ
ル(以下OKSと略称する)71の内容とを比
較することにより上記検出が行なわれる。この
場合、OKS71は前回このルーチンR4を実
行した時点におけるキースイツチの状態を示す
もので、後述するルーチンR6において作成さ
れる。そして、このルーチンR4を実行した結
果が「YES」(変化あり)の場合は、プログラ
ムがルーチンR5に進行し、また「NO」(変
化なし)の場合はルーチンR2へ戻る。 (7) キーオン・リクエストフアイル作成ルーチン
R5 このルーチンR5は新たに楽音発生をすべき
キー、言い換えれば新たに押下されたキーを検
出し、この検出結果に基づいて、第6図に示す
キーオン・リクエストフアイル(以下ON・
RQと略称する)72をRAM21上に作成す
るものである。 このルーチンR5においては、まずOKS7
1の各ビツトとNKS70の対応する各ビツト
との間のエクスクルーシブオアがとられる
(OKSNKS)。この結果、状態が変化したキ
ースイツチに対応するビツトのみ“1”とな
る。次いで、上記演算結果とNKS70の各ビ
ツトとの間のアンドがとられる。〔(NKS∧
(OKSNKS)〕。この結果、キースイツチが
新たにオンとなつたビツトのみ“1”となる。
最後に、上記アンド演算の結果とON・RQ7
2の各ビツトとの間のオアがとられ、その結果
が新たにON・RQ72に書込まれる。 ON・RQ =ON・RQ∨{NKS∧(OKSNKS)}
……(1) ここで、最後のオア演算の意味について説明
する。この電子オルガンは後に説明するキーオ
ン・チヤンネルアサインメントルーチンR7に
おいて、ここで作られたON・RQ72に基づ
いて楽音発生すべきキーをWG25の各チヤン
ネルに割当てる処理を実行し、この割当て処理
が終了した時点で順次ON・RQ72の“1”
ビツトを消去するようになつている。ところ
で、このルーチンR5が実行される時点で、前
回ルーチンR5が実行された際ON・RQ72
に記入された“1”ビツトが全て消去されてい
るとは限らず、チヤンネル割当処理をすべき
“1”ビツトが残つている場合がある。最後の
オア演算は、この処理が済んでいない“1”ビ
ツトをON・RQ72上に残すために行なわれ
るものである。第6図において第1オクター
ブ・C音に丸印が付してあるのはこの処理ビツ
トを示している。 (8) キーオフ・リクエストフアイル作成ルーチン
R6 このルーチンR6は楽音発生を停止すべきキ
ー、すなわち離鍵されたキーを検出し、この検
出結果に基づいて第6図に示すキーオフ・リク
エストフアイル(以下、OF・RQと略称する)
73をRAM21上に作成するものである。 このルーチンR6においては、まずルーチン
R5と同様にCKS71、NKS70、OF・RQ
3の対応する各ビツト間で、 OF・RQ =OF・RQ∨{∧(OKSNKS)}
……(2) なる演算がなされ、この演算結果がOF・RQ7
3内に書込まれる。なおこの式において、
NKSはNKS70の各ビツトの反転を意味して
いる。またオア演算の意味はルーチンR5の場
合と同じである。次にNKS70の内容がOKS
71内に書込まれる。すなわち、この処理によ
り今回NKSとして用いられたテーブルが次回
のルーチンR4〜R6の処理においてOKS7
1として用いられることになる。 (9) キーオン・チヤンネルアサインメントルーチ
ンR7 このルーチンR7はルーチンR5において作
成されたON・RQ72およびルーチンR3に
おいて作成されたトーンリクエストフアイル6
2に基づいて、新たに押下されたキーに対応す
る周波数データおよびトーンデータをWG25
の空チヤンネルに割当てる処理を実行するもの
である。 以下、第7図〜第9図を参照しこのルーチン
R7の実行過程を説明する。なお、第7図にお
けるON・RQ72は第6図におけるON・RQ
72と同一である。 プログラムがこのルーチンR7に入ると、ま
ず第8図に示すステツプS1に進行し、ON・
RQ72上の“1”ビツトの検出が行なわれ
る。この検出は、ON・RQ72のまず第1オ
クターブに対応するスロツトを左方(第7図に
おいて)へ1ビツトずつシフトし、次いで第2
オクターブに対応するスロツトを左方へ1ビツ
トずつシフトし、次いで第3、第4オクターブ
に対応するスロツトを順次左方へシフトするこ
とにより行なわれるもので、“1”ビツトを検
出した時点で(ステツプS2)プログラムはス
テツプS3に進行する。第7図に示す例におい
ては、まず第1オクターブ・C音の“1”ビツ
トが検出されるので、この時点でプログラムが
ステツプS3に進行する。ステツプS3では、
ROM20内に記載されている周波数テーブル
から第1オクターブ・C音に対応する周波数デ
ータが読出され、レジスタ22内の周波数デー
タエリア75(予め設定されている)に転送さ
れる。次いでステツプS4に進行すると、RAM
21上に用意されているビジイキーテーブル7
6の第1オクターブ・C音に対応するスロツト
76aのエントリイアドレス(アドレスX)が
算出され、算出されたエントリイアドレス(ア
ドレスX)がレジスタ22内に一時記憶され
る。なお、ビジイキーテーブル76とは予め
RAM21内に用意されているもので、各キー
に対応して設けられた48個のスロツト76a,
76b,76c…からなるものである。次に、
ステツプS5に進行すると、チヤンネルアサイ
メントテーブル(以下CATと略称する)77
内の空エリアの検出が行なわれる。ここで、
CAT77について説明する。このCAT77は
予めRAM21内に用意されているもので、
E1,E2…E15なる15個のエリアから構成され、
またこれらのエリアE1,E2…E15は各々16ビツ
トからなる3個のスロツトa1,b1,c1,
a2,b2,c2,…から構成されている。こ
のCAT77は、現在発音中の楽音(デイケイ
状態にある楽音も含む)がどのチヤンネルに割
当てられているかを示すテーブルであり、以下
に説明するように、あるキーに対応する楽音の
発音が割当てられると各エリアE1,E2,…E15
のヘツダー、すなわちスロツトa1,a2,a
3…に該当キーを表わすビジイキーテーブル7
6のエントリイアドレスが登録され、またスロ
ツトb1,c1、スロツトb2,c2…に使用
チヤンネルが登録されるようになつている。こ
の場合、スロツトb,cの各ビツトがそれぞれ
WG25の32個のチヤンネルに対応しており、
さらに発音が割当てられたチヤンネルに対応し
ており、さらに発音が割当てられたチヤンネル
に対応するビツトに“1”が登録される。 さて、プログラムがステツプS5に進行する
と、CAT77の各エリアのヘツダーを検索す
ることにより空エリアの検出が行なわれる。そ
して、例えばエリアE2が空エリアとして検出
されたとすると、エリアE2のエントリイアド
レス(アドレスY)がレジスタ22内に記憶さ
れ、そしてステツプS6に進行する。ステツプ
S6では、レジスタ22内に設けられているビ
ジイステイタスレジスタ78内の“0”ビツト
の数が算出される。このビジイステイタスレジ
スタ78は32ビツトのレジスタであり、各ビツ
トが各々32個のチヤンネルに対応し、また使用
中のチヤンネルに対応するビツトに“1”が登
録されている。したがつて、このステツプS6
で算出される“0”ビツトの数は現在の空チヤ
ンネルの数に等しくなる。ステツプS6におい
てビジイステイタスレジスタ78の“0”ビツ
トの数(空チヤンネルの数)が算出されると、
プログラムはステツプS7へ進み、算出された
“0”ビツトの数とトーンリクエストフアイル
62(第4図参照)内に登録されているトーン
データ数(すなわちトーンリクエストフアイル
62のヘツダー62a内に記憶されている数)
とが比較される。この場合、“0”ビツトの数
がトーンデータ数より大きいかあるいは等しい
とすると(YES)、プログラムはステツプS8に
進行する。ステツプS8では、ビジイステイタ
スレジスタ78内の“0”ビツトを検索するこ
とにより空チヤンネルのチヤンネル番号が検出
される。第7図の例においては、まずスロツト
78aの第2ビツトの“0”が検索され、これ
により第2チヤンネルが空チヤンネルであるこ
とが検出される。なお、ビジイステイタスレジ
スタ78において、スロツト78aの第1〜第
16ビツトが各々第1〜第16チヤンネルに対応
し、またスロツト78bの第1〜第16ビツトが
各々第17〜第32チヤンネルに対応している。第
2チヤンネルの空チヤンネルが検出されると、
プログラムはステツプS9に進行し、同チヤン
ネル番号「2」がチヤンネルレジスタ79内に
格納される。次いで、ステツプS10に進行する
と、トーンリクエストフアイル62に基づいて
ROM20内のトーンデータがレジスタ22内
のトーンデータエリア80に転送される。すな
わち、第4図の例について説明すると、まずエ
リア62c内に記憶されているアドレスDがレ
ジスタ群50内に読出され、次いでこのアドレ
スDに基づいてROM20内のトーンデータi
+2が読出され、トーンデータエリア80に転
送される。次に、エリア62c内の音量係数が
エリア80に転送される。 そして、プログラムはステツプS11に進行
し、トーンデータの修飾(音色加工)が行なわ
れる。このトーンデータの修飾はトーンリクエ
ストフアイル62のエリア62bに記憶されて
いる音色加工のための情報に基づいて行なわれ
るもので、この修飾によりトーンデータに音色
加工(例えば、ビブラートの付加)が施され
る。そして、プログラムはステツプS12に進行
する。ステツプS12では、チヤンネルレジスタ
79に記憶されている空チヤンネルのチヤンネ
ル番号(この場合、「2」)に基づいてデータポ
ート18(第2図)の第2チヤンネルに対応す
る領域のエントリイアドレスが算出される。次
いでステツプS13(第9図)に進行すると、周
波数データエリア75内の周波数データおよび
トーンデータエリア80内のトーンデータ、音
量係数が上記エントリイアドレスに基づいてデ
ータボート18の対応する領域に出力される。
次にステツプS14に進行すると、まずレジスタ
22内に設けられた32ビツトのスタートコマン
ドレジスタ81の第2チヤンネルに対応するビ
ツト(スロツト81aの第2ビツト)に“1”
がたてられ、次いでこのスタートコマンドレジ
スタ81の内容がデータボート18に転送され
る。このようにして、データポート18に転送
された周波数ドータ、トーンデータ、音量係数
およびスタートコマンドはWG25の対応する
チヤンネル(第2チヤンネル)に供給され、こ
れによりWG25の当該チヤンネル(第2チヤ
ンネル)がスタートし、同第2チヤンネルにお
いてデータポート18から供給されている周波
数データ、トーンデータ等に基づいて楽音信号
が形成される。次に、プログラムはステツプ
S15に進み、チヤンネルレジスタ79に記憶さ
れているチヤンネル番号「2」に基づいて、ス
テツプS5において検出されたエリアE2内のス
ロツトb2の第2ビツトに“1”を書込む。
(なお、このスロツトb2の第2ビツトが第2
チヤンネルに対応している。)次いでステツプ
S16に進行し、チヤンネルレジスタ79内のチ
ヤンネル番号「2」に基づいてビジイステイタ
スレジスタ78のスロツト78aの第2ビツト
に“1”が書込まれる。そして、ステツプS17
へ進行する。 ステツタS17では、トーンリクエストフアイ
ル62に登録されている全てのトーンデータが
チヤンネル割当てされたか否かが判断される。
この場合、エリア62c(第4図)に登録され
ているトーンデータの割当てのみしか済んでい
ないので、判断結果は「NO」であり、したが
つてプログラムはステツプS8に戻る。そして、
上述したステツプS8〜S16の過程が再度繰返さ
れる。すなわち、ステツプS8において空チヤ
ンネルとして第4チヤンネルが検出され、ステ
ツプS9においてチヤンネル番号「4」がチヤ
ンネルレジスタ79に格納され、ステツプS10
においてトーンリクエストフアイル62のエリ
ア62dに記載されているアドレスBに基づい
てトーンデータバンク65からトーンデータi
が読出されたトーンデータエリア80に転送さ
れ、またエリア62d内の音量係数がトーンデ
ータエリア80に転送され、ステツプS11にお
いてトーンデータの修飾が行なわれ、ステツプ
S12においてデータポート18の第4チヤンネ
ルに対応する領域エントリイアドレスが算出さ
れ、ステツプS13において周波数データエリア
75内の周波数データおよびトーンデータエリ
ア80内のトーンデータ、音量係数がデータポ
ート18へ出力され、ステツプS14においてス
タートコマンドレジスタ81の第4チヤンネル
に対応するビツトに“1”がたてられ、これに
よりWG25の第4チヤンネルがスタートし、
ステツプS15、S16においてCAT77のスロツ
ドb2の第4ビツトおよびビジイステイタスレ
ジスタ78のスロツト78aの第4ビツトに
“1”が書込まれ、そして、ステツプS17へ進
行する。 ステツプS17では、再度全トーンデータの割
当てが終了したか否かが判断されるが、この場
合まだトーンリクエストフアイル62のエリア
62eに記憶されているアドレスCに対応する
トーンデータの割当てが終了していないので、
判断結果は「NO」であり、したがつてプログ
ラムは再度ステツプS8へ戻り、ステツプS8〜
S16の過程が再度実行される。そして、このス
テツプS8〜S16の過程が実行されると、トーン
リクエストフアイル62のエリア62eに記憶
されているアドレスCに対応するトーンデータ
i+1が第5チヤンネルに割当てられ、WG2
5の第5チヤンネルがスタートし、またCAT
77のスロツトb2が第5ビツトおよびビジイ
ステイタスレジスタ78のスロツト78aの第
5ビツトに各々“1”が書込まれる。 このようにして、第1オクターブ・C音のチ
ヤンネル割当てが終了し、スピーカ29から
は、第1オクターブのC音の音高で、かつそれ
ぞれトーンデータi、i+1、i+2に対応す
る音色の3種類の楽音が同時に発音される。ま
た、この時点でビジイステイタスレジスタ7
8、スタートコマンドレジスタ81の第2、第
4、第5チヤンネルに対応するビツトには各々
“1”が登録されており、さらにCAT77のエ
リアE2の第2、第4、第5チヤンネルに対応
するビツトにも“1”が登録されている。 そして、プログラムはステツプS17へ進行す
るが、このステツプでの判断結果は当然
「YES」であり、したがつてプログラムはステ
ツプS18へ進行する。このステツプS18では、
割当処理がなされた第1オクターブ・C音に対
応するビジイーキーテーブル76のスロツト7
6aのエントリイアドレス(アドレスX)が、
CAT77のエリアE2のヘツダー(すなわち、
スロツトa2)に書込まれる。次いで、ステツ
プS19に進行すると、エリアE2のエントリイア
ドレス(アドレスY)がビジイキーテーブル7
6のスロツト76a内に書込まれる。そして、
ステツプS20に進行し、ON・RQ72の第1オ
クターブ・C音に対応する“1”ビツトが
“0”とされる。こうして、第1オクターブ・
C音に基づく割当処理が全て終了する。 次に、プログラムは再びステツプS1に戻り、
ON・RQ72上の“1”ビツトの検出が行な
われる。この場合、第7図に示す例においては
第2オクターブ・D#音に対応する“1”ビツ
トが検出され(ステツプS2)、したがつてプロ
グラムはステツプS3に進行し、以下上述した
場合と全く同様の割当処理がなされる。そし
て、第2オクターブ・D#音の割当処理が終了
すると再びON・RQ72上の“1”ビツトの
検出が行なわれ、次に検出された“1”ビツト
(第3オクターブ・F#音)に対応する割当処
理がなされる。このようにしてON・RQ72
上の“1”ビツトの処理が全て終了すると、ス
テツプS2での判断結果は「NO」となり、ルー
チンR7における処理が全て終了する。 次に、第8図におけるステツプS21について
説明する。上述した説明においてはステツプ
S7における判断結果を「YES」として説明を
進めたが、これは「NO」となる場合もあり得
る。すなわち、ビジイステイタスレジスタ78
の“0”ビツトの数がトーンリクエストフアイ
ル62のヘツダー62a内に登録されている数
より少ない場合、言い換えればトーンデータを
チヤンネルに割当てたくとも、空チヤンネルの
数が少なく、割当てることができない場合は、
ステツプS7の判断結果は「NO」となり、プロ
グラムはステツプS21へ進む。このステツプ
S21では、デイケイ状態にあるチヤンネルのチ
ヤンネル番号を後述するダンプコマンドレジス
タ85(第10図参照)へロードし、さらにこ
のダンプコマンドレジスタ85の内容をデータ
ボート18へ出力することにより、WG25に
おいてデイケイ状態にあるチヤンネルを強制的
に停止させてしまう。そして、ルーチンR7を
出る。このような処理をしておくと、WG終了
処理ルーチンI3においてビジイステイタスレ
ジスタ78の対応する“1”ビツトが“0”と
され、これにより空チヤンネルの数が増加し、
トーンデータの割当てが可能となる。なお、こ
の処理の意味は、デイケイ状態にある楽音の発
音より新たに押下されたキーに対応する楽音の
発音の方を優先するということである。また、
この処理を行なうために、レジスタ22内に設
けられたデイケイ状態のチヤンネル番号を記憶
するデイケイステイタスレジスタ82が利用さ
れる。 次に、CAT77のスロツトb2の第6ビツ
トの“1”(丸印を付してある)について説明
する。この第6ビツトの“1”は今回第1オク
ターブ・C音のキーが押下されたことにより割
当てられたものではなく、前回同キーが押下さ
れた際割当てられたものである。すなわち、前
回押下されたキーが離されると該キーが割当て
られた各チヤンネルにおいて所定のデイケイ時
間を経た後楽音信号の発生が停止し(なお、こ
の楽音信号発生の停止は各ヤンネル同時とは限
らない)、楽音信号の発生が停止したチヤンネ
ルに対応するCAT77内の“1”ビツトが
“0”とされるが、ある割当てチヤンネルのデ
イケイ時間が長い場合は該チヤンネルにおいて
今回同キーを押下した時点まで前回の楽音信号
が発生し続けていることがある。この場合、同
キーを新たに押下した時点でビジイキーテーブ
ル76のスロツト76aにはCAT77のエリ
アE2のエントリイアドレス(アドレスY)が
登録されており、またエリアE2には楽音信号
が発生し続けているチヤンネルに対応するビツ
ト(スロツトb2の第6ビツト)に“1”が残
つている。したがつて、今回の押下キーに対す
るチヤンネル割当てはエリアE2に登録され、
さらにスロツトb2の第6ビツトの“1”も同
エリアE2にそのまま残されることになる。(な
お、楽音信号の発生が停止した場合の処理につ
いては後述する割込処理ルーチンI3を参照の
こと。) なお、この実施例においてはトーンリクエス
トフアイル62内の各トーンデータ毎にチヤン
ネルをスタートされているが、各チヤンネルを
まとめて同時にスタートさせることも可能であ
る。 (10) キーオフ・チヤンネルマネジメントルーチン
R8 このルーチンR8は、ルーチンR6において
作成されたOF・RQ73およびルーチンR7に
おいて作成されたビジイキーテーブル76、
CAT77に基づいて、離されキー(押下状態
が解除されたキー)に対応する楽音を消去する
ものである。以下、このルーチンR6の実行過
程を第10図、第11図を参照し説明する。な
お、第10図におけるOF・RQ73は第6図に
おけるOF・RQ73と同一である。 プログラムがこのルーチンR8に入ると、ま
ず第11図に示すステツプS1に進行し、OF・
RQ73上の“1”ビツトの検出が行なわれ
る。なお、この検出は前述したON・RQ72
上の“1”ビツトの検出(第8図のステツプ
S1)の場合と全く同様に行なわれる。そして、
第10図に示す例においては、まず第1オクタ
ーブ・A#音の“1”ビツトが検出され(ステ
ツプS2)、プログラムがステツプS3に進行す
る。ステツプS3では、検出された“1”ビツ
トの位置(OF・RQ73上の位置)に基づい
て、ビジイキーテーブル76の第1オクター
ブ・A#音に対応するスロツト76mのエント
リイアドレス(アドレスVとする)が算出され
る。 次にステツプS4に進行すると、算出された
エントリイアドレス(アドレスV)に基づいて
スロツト76mの内容が読出され、レジスタ群
50内に転送される。この場合、スロツト76
mの内容は、第1オクターブ・A#音に関する
チヤンネル割当てがCAT77のエリアEnに登
録されているとすると、エリアEnのエントリ
イアドレス(アドレスUとする)である。次に
ステツプS5に進行すると、スロツト76mの
内容(アドレスU)に基づいてエリアEnのス
ロツトbnおよびcnの内容が読出され、デイケ
イコマンドレジスタ84またはダンプコマンド
レジスタ85のいずれかにロードされる。 なお、いずれにロードされかはこの電子オル
ガンの操作部に設けられた切替スイツチによつ
て制御される。そして、ステツプS6に進行す
ると、ステツプS5においてエリアEnの内容が
ロードされたレジスタ(84または85)の内
容がデータポート18に出力され、これにより
第1オクターブ・A#音に対応する楽音の発音
が割当てられているチヤンネル(第10図に示
す例についていえば、第1、第7、第8チヤン
ネル)の楽音信号の発生が停止される。この場
合、ステツプS5においてデイケイコマンドレ
ジスタ84にロードされた場合は、楽音がデイ
ケイをもつて徐々に消去され、ダンプコマンド
レジスタ85にロードされた場合は、楽音が即
座に消去される。次いでステツプS7へ進行す
ると、OF・RQ73上の第1オクターブ・A
#音の“1”ビツトが消去され、再びステツプ
S1に戻る。そして、ステツプS1において第3
オクターブ・F音の“1”ビツトが検出される
と、ステツプS2の判断結果が「YES」となり、
上述した場合と同様にステツプS3〜S6の過程
が実行され、第3オクターブ・F音が割当てら
れているチヤンネルの楽音信号が停止され、ま
たはデイケイ状態とされる。そして、ステツプ
S7において第3オクターブ・F音の“1”ビ
ツトが消去され、再びステツプS1に戻る。こ
のようにして、OF・RQ73上の“1”ビツト
の処理が全て終了するとステツプS2での判断
結果が「NO」となり、このルーチンR8にお
ける処理が終了する。 (11) WG終了処理ルーチンI3 この割込処理ルーチンI3は、WG25のチ
ヤンネルにおける楽音信号の発生が完全に停止
した時(デイケイ状態が終了した時)WG25
から発生する割込信号INTR3に基づいて実行
されるもので、その主な目的はビジイステイタ
スレジスタ78(第7図、第12図)の当該チ
ヤンネルに対応するビツトを“0”とし、これ
により同チヤンネルを空チヤンネルとして新た
に他のキーに対応する楽音の発生を割当て得る
ようにすることである。 すなわち、1個の押下されたキーに対応し
て、複数のチヤンネル(上述した第4図、第7
図等の例においては3個のチヤンネル)におい
て発生する楽音信号は、必ずしも同一タイミン
グで停止するとは限らず、例えばパーカツシブ
系の音の場合はキーが押下されているにもかか
わらず停止してしまうことがある。このような
場合に、同一キーに対応する他のチヤンネルの
楽音信号が全て停止するまで、すでに楽音発生
が停止したチヤンネルを待期させるとすると、
チヤンネル使用の効率が非常に悪いものにな
る。この電子オルガンはこのような点を考慮
し、楽音発生が停止したチヤンネルを即座に他
のキーに解放し得るように、この割込処理ルー
チンI3を設けている。 以下、第12図、第13図を参照しこの割込
処理ルーチンI3の実行過程について説明す
る。なお以下の説明においては、いま第7チヤ
ンネルにおいて楽音信号の発生が停止し、また
この第7チヤンネルがCAT77のエリアE6に
登録されているものとする。 第7チヤンネルにおいて楽音信号の発生が停
止し、これによりWG25から割込信号INTR
3が発生すると、プログラムは先ず第13図に
示すステツプS1に進行する。そして、このス
テツプS1においてビジイステイタスレジスタ
78のスロツト78aの第7ビツト(第7チヤ
ンネルに対応)が“0”とされ、次いでステツ
プS2に進行する。このステツプS2および次の
ステツプS3はCAT77に登録されている第7
チヤンネルを消去する、具体的にいえばエリア
E6の第7チヤンネルに対応するスロツトb6
の第7ビツトの“1”の消去するためのもので
ある。そしてこの処理を行なわれなければなら
ない理由は次の通りである。例えば、第7チヤ
ンネルにおいて今まで発生していた楽音信号が
パーカツシブ系の楽音信号であり、また同楽音
信号の発生が停止した時点で同楽音信号に対応
するキー(最初のキーと称す)がまだ押下され
たままであつたとする。そして、同楽音信号が
停止した時点でビジイステイタスレジスタ78
の第7チヤンネルに対応するビツトが“0”と
されることにより(ステツプS1)、最初のキー
が離される前に新たに押下されたキー(次のキ
ーと称す)に対応する楽音の発生がこの第7チ
ヤンネルに割当てられる可能性がある。このよ
うな場合に上述した処理を行なつていないとす
ると、最初のキーが離された時点で同最初のキ
ーに対応するCAT77のエリアの内容が例え
ばデイケイコマンドレジスタ84に転送され、
さらにこのデイケイコマンドレジスタ84の内
容がデータポート18に出力されて、次のキー
に対応する楽音の発生が割当てられている第7
チヤンネルをもデイケイ状態に移行させてしま
うことになる。このような不都合を除くために
ステツプS2およびS3による処理が必要となる。 さて、プログラムがステツプS2に進行する
とCAT77のエリアE1のヘツダー(スロツト
a1)が“0”であるか否かが判断される。こ
の場合、例えば「NO」(“0”でない)とする
と、プログラムはステツプS3に進行する。ス
テツプS3では、まずエリアE1のスロツトb1,
c1の各ビツトとビジイステイタスレジスタ7
8の対応するビツトとの間で論理ANDがとら
れ、次いでこの演算結果がスロツトb1,c1
内に格納される。これによりスロツトb1の第
7ビツトに“1”があつた場合はその“1”が
消去される。なお、この例においてはエリア
E6のスロツトb6の第7ビツトに“1”があ
るので、エリアE6のスロツトb1の第7ビツ
トに“1”はない。したがつて、上記AND演
算の結果は、演算前のエリアE1の内容と同一
となる。 ステツプS3の実行が終了するとステツプS4
へ進行する。このステツプS4では、エリアE1
の内容(スロツトb1,c1の内容)が全て
“0”が否かが判断される。この場合、エリア
E1には“1”が残つているので判断結果は
「NO」となり、プログラムはステツプS6へ進
む。このステツプS6では上述したステツプS3
における処理がヘツダーが“0”でない全ての
エリア(E1〜E15)においてなされたか否かが
判断される。この場合、エリアE1の処理しか
なされていないので、判断結果は「NO」であ
り、したがつてプログラムは再びステツプS2
に戻る。ステツプS2では、今度はエリアE2の
ヘツダー(スロツトa2)が“0”か否かが判
断される。この場合、ヘツダーが“0”とする
と(「YES」)、プログラムはステツプS6に進
む。このステツプS6での判断結果は「NO」で
あり、プログラムは再びステツプS2に進み、
エリアE3のヘツダーが調べられる。このうに
してエリアE1,E2,…と順次各エリアが調べ
られ、またステツプS3の処理がなされ、そし
てステツプS2においてエリアE6のヘツダー
(スロツトa6)が調べられたとする。この場
合、ステツプS2における判断結果は「NO」と
なり、ステツプS3に進む。そして、このステ
ツプS3においてビジイステイタスレジスタ7
8の内容とエリアE6のスロツトb6,c6の
内容との論理ANDがとられることにより、ス
ロツトb6の第7ビツト“1”が消去される
(“0”とされる)。次いで、ステツプS4へ進行
すると、エリアE6のスロツトb6,c6の内
容が全て“0”であるか否かが判断され、この
場合、まだ“1”が残つているとするとプログ
ラムはステツプS6へ進行する。こうして、全
エリアE1〜E15について処理が終了するとプロ
グラムはこの割込処理ルーチンI3を出る。 次に、例えばいま第8チヤンネルが終了し、
またこの第8チヤンネルがCAT77のエリア
E7に登録されており、さらにこの第8チヤン
ネルで発生していた楽音信号のデイケイ時間が
比較的長かつた場合について説明する。 割込信号INTR3が発生し、プログラムがス
テツプS1に進行すると、ビジイステイタスレ
ジスタ78のスロツト78aの第8ビツト(第
8チヤンネルに対応)の“1”が消去される。
次いで、前述した場合と同様にしてエリアE1
〜E6が処理された後、ステツプS3においてエ
リアE7のスロツトb7の第8ビツトの“1”
が消去され、そしてステツプS4へ進む。ここ
で、第8チヤンネルの楽音信号のデイケイ時間
が比較的長かつたため、第8チヤンネルが終了
した時点ではエリアE7の他の“1”ビツトが
全て消去されていたとする。この場合、ステツ
プS3の実行によつてステツプS4の判断結果は
「YES」となり、プログラムはステツプS5へ進
行する。そして、このステツプS5において、
まずエリアE7のヘツダーに記憶されているビ
ジイキーテーブル76(第10図参照)のエン
トリイアドレスに基づいて、同エントリイアド
レスによつて指示されるビジイキーテーブル7
6のスロツトの内容が消去され、次にエリア
E7のヘツダーが消去される。すなわち、エリ
アとビジイキーテーブルとの結合が解かれる。
そして、この処理によりエリアE7が他のキー
に対して解放されることになる。 なお、参考までにこれまでに説明したROM
20、RAM21レジスタ22の各内容をまと
めて第14図に示す。 最後に、第2図に示すトーンレバー38とし
て用いられるエンコーダスイツチを第15図に
示す原理図を用いて説明する。基板38a上に
は、図示する4つの領域a、b、c、d間に連
続して導体(図中斜線で示す)が形成された接
点38b、領域a、cに導体が形成され且つ領
域b、dに絶縁体(図中白い部分で示す)が形
成された接点38c、領域a、bに導体が形成
され且つ領域c、dに絶縁体が形成された接点
38dがそれぞれ配設され、更にこれら各接点
38b,38c,38d上の各領域a、b、
c、d上をこれら接点38b〜38dに接触し
ながら図中の矢印方向eまたはfにスライドで
きるようにした導体からなる接点スライダ38
eが配設されている。また上記各接点38b,
38c,38dはそれぞれ対応する端子38
f,38g,38hに接続されている。更に上
記端子38fにはスキヤンストローブ信号が加
えられている。他方、端子38g,38hはそ
れぞれ対応するダイオードD0,D1のカソード
に接続され、上記ダイオードD0,D1の各アノ
ードはそれぞれ対応するバツフアアンプB0,
B1の入力端に接続されている。更にまた上記
ダイオードD0,D1の各アノードは一端が電源
+Vccに接続された抵抗R0,R1の各他端にも
接続され、また上記バツフアアンプB0,B1の
出力端からは信号BIT<0>またはBIT<1>
が出力されるように構成されている。 上記スキヤンストローブ信号は、上述したエ
ンコーダスイツチをスキヤンするための信号
で、この実施例の場合前述した第2図のアドレ
スデコーダ34にスイツチアドレス信号が供給
されたときに該デコーダ34から出力される。 エンコーダスイツチが上記のように構成され
ているので、たとえば第15図に示すエンコー
ダスイツチが第4図におけるトーンレバー1と
して使用されているときには、このエンコーダ
スイツチの接点スライダ38eは第15図に想
像線で示す領域dの位置に設定されていること
になる。つまり、接点38c,38dの各領域
dの接点38bと電気的に遮断されているか
ら、端子38fにスキヤンストローブ信号が入
力されても各ダイオードD0,D1のアノードは
電源+Vccの電圧レベルにあり、したがつて各
バツフアアンプB0,B1の出力信号BIT<0>、
BIT<1>の出力レベルはともに2値論理レベ
ル“0”である。したがつてトーンレバー1は
音量0のリクエスト条体にあることになる。 なお、上記エンコーダスイツチは2ビツトの
バイナリコードによる4段階の音量切換え用と
したが、更に3ビツト、4ビツトのようなバイ
ナリコードによる多数段階の音量切換え用にす
ることも容易である。またエンコーダスイツチ
としてはバイナリコードのみならずグレイコー
ドのような他のコードによるものでも使用でき
る。 以上詳述したように、この発明によれば、鍵盤
部、音色設定操作子部および楽音発生部の各要素
を共通の情報伝送路を介してプログラムコントロ
ールによつて制御手段にそれぞれ接続し、制御手
段によつて鍵盤部および音色設定操作子部の操作
状態をそれぞれ検出するとともに、この検出に基
づいて楽音発生部に対し周波数および波形を定め
る所定のデータ信号を供給するようにしたので、
従来の電子楽器に比較し構成が簡単になる利点が
得られ、また、キーの数あるいはトーンレバーの
数の変換に際しプログラムを変更するだけで対処
することができ、したがつて、キー、トーンレバ
ーの数の変更を容易に行い得る利点が得られる。
また、本願発明は第1の手段および第2の手段の
各々別個に有しているので、操作子の種類(キ
ー、トーンレバー等)および各操作子の一般的操
作頻度に合わせて効率よく操作状態の検出を行う
ことができる効果がある。
楽器に関する。 第1図は、従来の電子オルガンの構成例を示す
ブロツク図である。この図において、鍵盤1のキ
ー(鍵)が操作されると、押鍵検出回路2がこれ
を検出し、操作されたキーのキーコードを楽音発
生部3へ出力する。また、音色検出回路4は音色
設定操作子部5において設定された音色に対応す
るトーンコードを楽音発生部3へ出力する。楽音
発生部3はトーンコードに対応する波形(音色)
で、かつキーコードに対応する周波数の楽音信号
(デイジタル信号)を形成し、D/A(デイジタ
ル/アナログ)変換器6へ出力する。D/A変換
器6は供給された楽音信号をアナログ信号に変換
し、増幅器7を介してスピーカ8へ供給する。こ
れにより、スピーカ8から操作されたキーの楽音
が発生する。 ところで、このような従来の電子楽器は回路各
部がいずれもハードウエアによつて構成されてい
た。このため、電子楽器全体の構成が複雑かつ大
規模となり、したがつて価格も高価になる欠点が
あり、また、キーの数あるいは音色設定操作子の
数を拡張したい場合に、回路各部の構成がさらに
複雑化し、このため容易に拡張を行い得ない欠点
があつた。 そこでこの発明は、構成が簡単になると共に、
鍵の数あるいは音色設定操作子の数の変更を容易
に行い得る電子楽器を提供するもので、鍵盤部、
音色設定操作子部および楽音発生部の各要素を共
通の情報伝送路を介してプログラムコントロール
による制御手段にそれぞれ接続し、制御手段によ
つて鍵盤部および音色設定操作子部の操作状態を
それぞれ検出するとともに、この検出に基づいて
楽音発生部に対し周波数および波形を定める所定
のデータ信号を供給するようにしたものである。 以下、図面を参照しこの発明の実施例について
説明する。 第2図は、この発明による電子オルガン(電子
楽器)の構成を示すブロツク図であり、この図に
示す電子オルガンは大きく分けると鍵盤回路1
1、アサイナ12および楽音発生部13から構成
される。そして、上記アサイナ12は制御部1
4、演算部15、割込制御回路16、パルス発生
器17、データポート18を具備する演算制御部
19と、ROM(リードオンリーメモリ)20、
RAM(ランダムアクセスメモリ)21、レジス
タ22を具備する第1の記憶部23とから構成さ
れ、また楽音発生部13は、32個のチヤンネルを
有するウエイブジエネレータ(以下WGと称す)
25と、このWG25にエンベロープ情報を送出
するエンベロープジエネレータ26と、D/A
(デジタル/アナログ)変換回路27と、増幅器
28と、スピーカ29とから構成される。なお、
上述した制御部14および演算部15は通常マイ
クロコンピユータを用いて構成される。また、上
述したエンベロープとは楽音信号の包絡線のこと
である。すなわち、通常の楽音信号は第2図にお
いて符号Bにて示すように、立上り状態(アタツ
ク状態)B1、持続状態B2、立下り状態(デイケ
イ状態)B3の3状態からなるエンベロープを有
している。 この電子オルガンはプログラムコントロールで
動作するもので、そのプログラムはROM20に
記憶されている処理プログラムと制御部14内の
マイクロプログラムメモリ45に記憶されている
各種マイクロプログラムから構成される。また、
WG25において楽音信号(デジタル信号)を形
成するために必要な各種トーンデータおよび周波
数データはROM20に記憶されている。そし
て、上記処理プログラムおよびマイクロプログラ
ムに基づいて、次の様に動作するものである。す
なわち、キーが押下されると、まず鍵盤回路11
が押下されたキーに対応するキースイツチ情報を
データバス30を介してアサイナ12に供給す
る。アサイナ12は供給されたキースイツチ情報
に対応する周波数データおよびトーンデータを
ROM20から読出し、読出しデータをWG25
の複数のチヤンネルに対して割当てる。WG25
の各チヤンネルは当該チヤンネルに割当てられた
データおよびエンベロープジエネレータ26から
供給されるエンベロープ情報に基づいて楽音信号
(デジタル信号)を形成する。そして、これら各
チヤンネルで形成された楽音信号がD/A変換器
27においてアナログ信号に変換され、増幅器2
8を介してスピーカ29から楽音として放音され
る。 以上、この電子オルガンの概略を述べたが、次
にこの電子オルガンの詳細を説明する。 まず、鍵盤回路11はアドレスデコーダ34、
バツフアバスドライバ35、マトリツクス回路3
6から構成される。アドレスデコーダ34はアド
レスバス37を介して供給されるスイツチアドレ
ス信号をデコードするもので、この実施例では5
個の出力端を有し、またこれらの各出力端がマト
リツクス回路36の各列線にそれぞれ接続されて
いる。マトリツクス回路36は12行5列のマトリ
ツクスであり、このマトリツクスの各支点には、
トーンレバー(「ヴアイオリン」、「フルート」等
の音色を設定するためのレバー)38の各スイツ
チの接点および鍵盤キー39の各キースイツチの
接点が、図において符号Aにて示すように、ダイ
オードと共に介挿されている。なおこの実施例に
おいては、説明の便宜上トーンレバー38が6個
のトーンレバーからなり、また各トーンレバーは
いずれも4段階で音量を調整可能にものとして
(したがつて、各トーンレバーに関する情報は2
ビツトで現わされ、この2ビツトに対応してトー
ンレバースイツチは各トーンレバーに対し2個ず
つ、合計12個となる)、また鍵盤キー39は4オ
クターブ(12×4=48キー)から構成されるもの
とする。そして、各トーンレバーのスイツチがマ
トリツクス回路36の左側(図において)1列に
配置され(図において破線で囲んだスイツチ2個
が1つのトーンレバーに対応する)、また鍵盤キ
ー39の各キースイツチがマトリツクス回路36
の右側4列に配置されている。 バツフアバスドライバ35は上記各スイツチの
オン・オフ情報をデータバス30に出力するため
のバスドライであり、12個の入力端および出力端
を有し、入力端は各々マトリツクス回路36の各
行線に接続されているとともに、出力端はデータ
バス30に接続されている。 制御部14はインストラクシヨンレジスタ4
2、インストラクシヨンデコーダ43、マイクロ
プログラム・アドレスシーケンサ44、マイクロ
プログラムメモリ45(第2の記憶部)、パイプ
ラインレジスタ46から構成される。インストラ
クジヨンレジスタ42はROM20から読出され
る処理プログラムの各命令を一時記憶するもの
で、このインストラクシヨンレジスタ42に一時
記憶された命令はインストラクシヨンデコーダ4
3によつて解読され、マイクロプログラム・アド
レスシーケンサ44に供給される。マイクロプロ
グラムアドレスシーケンサ44はインストラクシ
ヨンデコーダ43の出力に基づいてマイクロプロ
グラムメモリ45のアドレスを指定し、この結
果、マイクロプログラムメモリ45から前述した
インストラクシヨンレジスタ42に一時記憶され
ている処理プログラムの命令に対応するマイクロ
プログラムが読出され、パイプラインレジスタ4
6に供給される。 演算部15はマイクロフアンクシヨン・デコー
ダ(以下、MFDと略称する)48、演算回路4
9等を有して構成され、制御部14から供給され
るマイクロプログラムの各命令を解読して所定の
処理を実行するものである。すなわち、MFD4
8はパイプラインレジスタ46から供給される上
記マイクロプログラムの各命令を解読し、この解
読結果に基づいて、レジスタ群50、マルチプレ
クサ51,52、演算回路49、メモリアドレス
レジスタ53、データレジスタ54、アウトプツ
トバツフア55,56へ各々制御信号を出力す
る。レジスタ群50はマイクロプログラムの各命
令を処理する過程で使用されるワーキングレジス
タであり、演算回路49の出力がMFD48から
の制御信号により読込まれ、またこのレジスタ群
50の出力はマルチプレクサ51の第2の入力端
に供給される。マルチプレクサ51は、その第1
の入力端がデータバス30に、第3の入力端がデ
ータレジスタ54の出力端に各々接続されてお
り、MFD48からの制御信号に基づいて第1〜
第3の入力端に得られるデータを選択的に演算回
路49へ出力するものである。マルチプレクサ5
2は、その第1の入力端がデータバス30に、第
2の入力端がデータレジスタ54の出力端に各々
接続されており、これら第1、第2の入力端に得
られるデータを選択的に演算回路49へ出力す
る。 演算回路49はマルチプレクサ51,52から
供給される各種データ(このデータには第1の記
憶部23の各メモリのアドレスを指定するアドレ
スデータおよび前述したキーをチヤンネルに割当
てる際使用されるデータがある)をMFD48か
らの制御信号に基づいて演算し、演算結果をメモ
リアドレスレジスタ53あるいはデータレジスタ
54へ供給する。メモアドレスレジスタ53は演
算回路49から供給されるアドレスデータを一時
記憶するもので、このメモリアドレスレジスタ5
3の出力はアウトプツトバツフア55を介してア
ドレスバス37へ出力される。データレジスタ5
4は演算回路49から供給されるデータ(キーを
チヤンネルに割当てる際使用されるデータ)を一
時記憶するもので、このデータレジスタ54の出
力はアウトプツトバツフア56を介してデータバ
ス30に出力される。 割込制御回路16は割込発生の際の各種処理を
行なうものである。ここで、この電子オルガンの
割込信号について説明する。この電子オルガンは
3個の割込信号INTR1,INTR2,INTR3を
有している。割込信号INTR1はパルス発生器1
7の出力に基づいて、割込制御回路16内で数m
sec毎に周期的に発生する割込信号であり、この
割込信号INTR1が発生すると、鍵盤キー39の
各キースイツチのオン/オフ情報がRAM21内
に読込まれる。割込信号INTR2はパルス発生器
17の出力を割込制御回路16内の分周器によつ
て分周して作られる割込信号であり、数100msec
毎に周期的に発生する。そして、この割込信号
INTR2が発生すると、トーンレバー38の各ス
イツチのオン/オフ情報がRAM21内に読込ま
れる。なお、割込信号INTR2の周期が割込信号
INTR1の周期よりはるかに大となつている理由
は、通常各キーが頻繁に操作されるのに対して、
各トーンレバーは各キーほど頻繁には操作されな
いからである。割込信号INTR3はWG25から
供給される割込信号であり、WG25内の各チヤ
ンネルにおいて形成された楽音信号が0となつた
時点で発生するものである。なお、この割込信号
INTR3については後述する。 そして、これらの割込信号INTR1〜INTR3
のいずれかが発生すると、制御部14がこれを検
知し、現在実行中のマイクロプログラムモジユー
ルが終了した時点で割込命令をインストラクシヨ
ンレジスタ42内に読込み、その解読を行なう。
なお割込信号INTR1〜INTR3の優先順位は、
割込制御回路16において、 INTR3>INTR1>INTR2 の如く定められる。 ROM20は、前述したように処理プログラ
ム、周波数データおよびトーンデータ等を記憶す
るもので、アウトプツトバツフア55からアドレ
スバス37を介してアドレス信号が供給され、ま
た同アドレス信号によつて読出された処理プログ
ラムの各命令あるいは各種データがデータバス3
0に出力される。RAM21は、チヤンネル割当
ての際使用される各種データテーブル、データフ
アイル等が記憶されるもので、アウトプツトバツ
フア55からアドレス信号が供給され、またその
入出力端がデータバス30に接続されている。レ
ジスタ22は各種ステイタスあるいはコマンド
(後述)等が記憶されるもので、アウトプツトバ
ツフア55からアドレス信号が供給され、またそ
の入力端はデータバス30に接続されている。 データポート18はROM20に記憶されてい
る周波数データ、トーンデータおよびレジスタ2
2に記憶されている各種コマンドをWG25およ
びエンベロープジエネレータ26へ出力するため
のレジスタであり、アウトプツトバツフア55か
らアドレスが供給され、また、その入力端はデー
タバス30に接続されている。なお、上述した
ROM20、RAM21、レジスタ22およびデ
ータポート18の各記憶内容を第14図に示す。 次に、第2図に示す電子オルガンの動作を第3
図に示す流れ図に基づいて説明する。なお、以下
の説明において“1”とあるのは二値論理レベル
の“1”信号を示し、“0”とあるのは二値論理
レベルの“0”信号を示すものとする。 第3図イはプログラムの流れを示す流れ図であ
り、また第3図ロは割込処理ルーチンである。こ
の図に示すように、この電子オルガンのプログラ
ムはR1〜R8なる8個のメインルーチンおよび
I1〜I3なる3個の割込処理ルーチンから構成
される。そして、各ルーチンが複数のマイクロプ
ログラムモジユール化されマイクロプログラムメ
モリ45内に記憶され、またこれらのマイクロプ
ログラムモジユールを呼出すマクロ命令が処理プ
ログラムとしてROM20内に記憶されている。
以下、上記各ルーチンについて順次説明する。 (1) 処理リセツトルーチンR1 この電子オルガンにおいて電源が投入される
と、プログラムはまずこの初期リセツトルーチ
ンR1に入り、各部の初期リセツトが行なわれ
る。 (2) トーンレバー・オン/オフ検出ルーチンI1 この割込処理ルーチンは割込信号INTR2が
数100msecのインターバルで発生するたびに実
行されるもので、割込信号INTR2が発生した
時点における鍵盤回路11の各トーンレバース
イツチのオン/オフ状態を検出するものであ
る。すなわち、割込制御回路16において割込
信号INTR2が発生すると、アドレスデコーダ
34にスイツチアドレス信号が供給され、この
スイツチアドレス信号に基づいて各トーンレバ
ースイツチのオン/オフ情報がバツフアバスド
ライバ35およびデータバス30を介してレジ
スタ22内に読込まれる。そして、この読込ま
れたトーンレバースイツチのオン/オフ情報に
基づいて、レジスタ22内に第4図に示すニユ
ートーンレバー・ステイタステーブル(以下、
NTSと略称する)60が作成される。この場
合、このNTS60においては、各トーンレバ
ー1〜6の音量設定が2進数によつて示される
ようになつている。すなわち、図に示す例にお
いてはトーンレバー1,4,5,6が音量
「0」を要求し、トーンレバー2が音量「3」
を、トーンレバー3が音量「2」を要求してい
る。 (3) トーンレバー位置、変化検出ルーチンR2前
述した初期リセツトルーチンR1が終了する
と、プログラムはこのルーチンR2に進行す
る。このルーチンR2は、現在のNTS60の
内容が前回このルーチンR2を実行した時点に
おける同NTS60の内容と異なつているか否
かを検出するもので、このNTS60の内容と
RAM21内に作成されているオールドトーン
レバー・ステイタステーブル(以下、OTSと
略称する;第4図参照)61の内容とを比較す
ることにより上記検出が行なわれる。なお
OTS61は前回このルーチンR2を実行した
時点におけるNTS60の内容を示すもので、
次に説明するルーチン3において作成される。
そして、ルーチンR2を実行した結果が
「YES」(変化あり)の場合は、プログラムが
ルーチンR3に進行し、また「NO」(変化な
し)の場合はルーチンR4に進行する。 (4) トーンレバー処理ルーチンR3 このルーチンR3は上記NTS60の内容に
基づいて第4図に示すトーンリクエストフアイ
ル62をRAM21内に作成するものである。
そして、この電子オルガンにおいては、このル
ーチンR3において作成されるトーンリクエス
トフアイル62に基づいてROM20内のトー
ンデータがWG25の各チヤンネルに割当てら
れるようになつている。 すなわち、ROM20内には第4図に示すよ
うに予め音量テーブル63、トーンレバー・イ
ンデツクステーブル64およびトーンデータバ
ンク65が設けられている。そして、音量テー
ブル63には、トーンレバーによつて設定され
る音量「1」〜「3」に対応する音量係数
(WG25の各チヤンネルはこの音量係数に基
づいて音量設定を行なう)が予め記憶され、ト
ーンデータバンク65には複数のトーンデー
タ、すなわち…トーンデータi−1、トーンデ
ータi、トーンデータi+1、トーンデータi
+2…が記憶され、またトーンレバーインデツ
クステーブル64には、各トーンレバー1〜6
に対応するトーン(音色)を構成するためのト
ーンデータのアドレスポインタが記憶されてい
る。この場合、図に示す例について説明する
と、トーンレバー1に対応するトーン(音色)
はトーンデータi−1およびiから構成され、
したがつてトーンレバーインデツクステーブル
64のトーンレバー1に対応するスロツト(記
憶エリア)64aには、トーンデータバンク6
5におけるトーンデータi−1、iの各先頭番
地、すなわちアドレスAおよびアドレスBが記
憶され、トーンレバー2に対応するトーンはト
ーンデータi+2によつて構成され、したがつ
てスロツト64bにはアドレスDが記憶され、
またトーンレバー3に対応するトーンはトーン
データi、i+1から構成され、したがつてス
ロツト64cにはアドレスB、アドレスCが記
憶されている。なお、この実施例においては各
トーンレバーに対応するトーンを構成するトー
ンデータの数を最大2としたが、これは複数個
可能であり、最大2に制限する必要はない。 そして、プログラムがこのトーンレバー処理
ルーチンR3(第5図にこのルーチンR3のフ
ローチヤートを示す)に入ると、まずレジスタ
22内のNTS60(第4図)に記憶されてい
るトーンレバー1の音量情報が演算部15のレ
ジスタ群50内に読出される。しかし、この場
合音量が「0」であるので、何らの処理も行な
われない。次いで、トーンレバー2の音量情報
がレジスタ群50内に読出される。この場合、
音量「3」が指定されている。したがつてまず
トーンレバーインデツクステーブル64のスロ
ツト64b内のアドレスポインタ(すなわち、
アドレスD)がトーンリクエストフアイル62
のエリア62c内に書込まれ、次いで音量テー
ブル63内の音量「3」に対応する音量係数
「1111111」が上記エリア62c内に書込まれる
(第4図参照)。次に、トーンレバー3の音量情
報がレジスタ群50内に読出される。この場
合、音量「2」が指定されており、したがつ
て、まずテーブル64のスロツト64c内の第
1のアドレスポインタ(すなわち、アドレス
B)がトーンリクエストフアイル62のエリア
62d内に書込まれ、次に音量「2」に対応す
る音量係数(「0100000」)が同エリア62d内
に書込まれ、次にスロツト64c内の第2のア
ドレスポインタ(すなわち、アドレスc)がエ
リア62e内に書込まれ、次に音量「2」に対
応する音量係数(「0100000」)が同エリア62
e内に書込まれる。このようにして、NTS6
0内の各トーンレバーの音量情報が順次読出さ
れ、処理される。そして、最後にトーンリクエ
ストフアイル62内に書込まれたアドレスポイ
ンタの数、すなわちトーンリクエストフアイル
62内に登録されたトーンデータの数が同トー
ンリクエストフアイル62のヘツダー(すなわ
ち、エリア62a)に書込まれ、トーンリクエ
ストフアイル62の作成が終了する。トーンリ
クエストフアイル62の作成が終了した後
NTS60の内容をOTS61内に転送し、プロ
グラムはこのルーチンR3を出る。 このように、この電子オルガンにおいてはこ
のルーチンR3において第4図に示すようなト
ーンリクエストフアイル62が作成される。こ
の場合、各トーンレバーはトーンレバーインデ
ツクステーブル64のアドレスポインタのみと
対応しているので、このテーブル64のアドレ
スポインタを変更することにより各トーンレバ
ーに対し任意のトーンデータ(音色)を対応さ
せることができる。 なお、このトーンリクエストフアイル62に
おいて、エリア62bにはこのフアイル62に
共通する音色加工のための情報、例えばビブラ
ート周波数、ビブラート深さ、デイケイ長さ等
が記憶されている。すなわち、詳細な説明は省
略するが、予めこれらの音色加工のための情報
をROM20内に記憶しておき、音色加工用レ
バーの操作位置にしたがつて音色加工情報を
ROM20から読出しこのフアイル62に登録
することにより、WG25の各チヤンネルにお
いて形成される楽音信号に音色加工を施すこと
が可能になる。 ところで、上述したトーンリクエストフアイ
ル62作成の過程において、ヘツダー62aに
記入されるアドレスポインタ数の検出は、通常
レジスタ22内にトーンリクエストカウンタな
るカウンタを設け、アドレスポインタをフアイ
ル62内に書込むたびにこのトーンリクエスト
カウンタをインクリメントし、最後にこのトー
ンリクエストカウンタのカウント結果を参照す
ることにより行なわれる。また、上記過程おけ
るNTS60の内容の順次読出し、トーンレバ
ーインデツクステーブル64の各スロツト内の
アドレスポインタの順次読出し、トーンリクエ
ストフアイル62内の各エリアへの順次書込み
等は、通常対応するポインタをたて、1つの処
理が済むたびにこのポインタの内容を進め、こ
のポインタの内容に基づいて実行されるもので
ある。例えば、トーンリクエストフアイル62
へアドレスポインタを書込む場合は、まずトー
ンリクエストフアイルポインタなるポインタに
エリア62cのエントリイアドレス(アドレス
E)をセツトし、このトーンリクエストフアイ
ルポインタに基づいてエリア62c内に書込
み、次いでトーンリクエストフアイルポインタ
の内容をエリア62dのエントリイアドレス
(アドレスF)に進め、このエントリイアドレ
ス(アドレスF)に基づいてエリア62d内に
書込み…の如く行なわれる。しかしながら、こ
れらの処理はこの業界においては極く当然に行
なわれる処理であり、したがつてこの明細書に
おいてはこれらの処理過程の記載を省略してい
る。 (5) キー・オン/オフ検出ルーチンI2 この割込処理ルーチンI2は割込信号INTR
1が数msecのインターバルで発生するたびに
実行されるもので、割込信号INTR1が発生し
た時点における鍵盤回路11の各キースイツチ
のオン/オフ状態を検出するものである。すな
わち、割込制御回路16において割込信号
INTR1が発生すると、アドレスデコーダ34
にスイツチアドレス信号が供給され、このスイ
ツチアドレス信号に基づいてキースイツチのオ
ン/オフ情報がバツフアバスドライバ35およ
びデータバス30を介してレジスタ22内に読
込まれ、このレジスタ22内に第6図に示すニ
ユーキーボード・ステイタス・テーブル(以下
NKSと略称する)70が作成される。この図
に示すNKS70において、“1”とあるのはこ
の“1”に対応するキーが割込信号INTR1発
生時点において押下されていることを示してい
る。すなわち、この例では現在第1オクターブ
のC音、E音、第2オクターブのD#音、第3
オクターブのF#音、第4オクターブのA音に
各々対応するキーが押下されていることを示し
ている。なお、この図において無印は“0”を
示している。 (6) 押下キー位置・変化検出ルーチンR4 トーンレバー処理ルーチンR3が終了する
と、プログラムはこのルーチンR4に進行す
る。このルーチンR4は、現在のNKS70の
状態が前回このルーチンR4を実行した時点に
おけるNKS70の状態と異なつているか否か
を検出するもので、NKS70の内容と第6図
に示すオールドキーボード・ステイタステーブ
ル(以下OKSと略称する)71の内容とを比
較することにより上記検出が行なわれる。この
場合、OKS71は前回このルーチンR4を実
行した時点におけるキースイツチの状態を示す
もので、後述するルーチンR6において作成さ
れる。そして、このルーチンR4を実行した結
果が「YES」(変化あり)の場合は、プログラ
ムがルーチンR5に進行し、また「NO」(変
化なし)の場合はルーチンR2へ戻る。 (7) キーオン・リクエストフアイル作成ルーチン
R5 このルーチンR5は新たに楽音発生をすべき
キー、言い換えれば新たに押下されたキーを検
出し、この検出結果に基づいて、第6図に示す
キーオン・リクエストフアイル(以下ON・
RQと略称する)72をRAM21上に作成す
るものである。 このルーチンR5においては、まずOKS7
1の各ビツトとNKS70の対応する各ビツト
との間のエクスクルーシブオアがとられる
(OKSNKS)。この結果、状態が変化したキ
ースイツチに対応するビツトのみ“1”とな
る。次いで、上記演算結果とNKS70の各ビ
ツトとの間のアンドがとられる。〔(NKS∧
(OKSNKS)〕。この結果、キースイツチが
新たにオンとなつたビツトのみ“1”となる。
最後に、上記アンド演算の結果とON・RQ7
2の各ビツトとの間のオアがとられ、その結果
が新たにON・RQ72に書込まれる。 ON・RQ =ON・RQ∨{NKS∧(OKSNKS)}
……(1) ここで、最後のオア演算の意味について説明
する。この電子オルガンは後に説明するキーオ
ン・チヤンネルアサインメントルーチンR7に
おいて、ここで作られたON・RQ72に基づ
いて楽音発生すべきキーをWG25の各チヤン
ネルに割当てる処理を実行し、この割当て処理
が終了した時点で順次ON・RQ72の“1”
ビツトを消去するようになつている。ところ
で、このルーチンR5が実行される時点で、前
回ルーチンR5が実行された際ON・RQ72
に記入された“1”ビツトが全て消去されてい
るとは限らず、チヤンネル割当処理をすべき
“1”ビツトが残つている場合がある。最後の
オア演算は、この処理が済んでいない“1”ビ
ツトをON・RQ72上に残すために行なわれ
るものである。第6図において第1オクター
ブ・C音に丸印が付してあるのはこの処理ビツ
トを示している。 (8) キーオフ・リクエストフアイル作成ルーチン
R6 このルーチンR6は楽音発生を停止すべきキ
ー、すなわち離鍵されたキーを検出し、この検
出結果に基づいて第6図に示すキーオフ・リク
エストフアイル(以下、OF・RQと略称する)
73をRAM21上に作成するものである。 このルーチンR6においては、まずルーチン
R5と同様にCKS71、NKS70、OF・RQ
3の対応する各ビツト間で、 OF・RQ =OF・RQ∨{∧(OKSNKS)}
……(2) なる演算がなされ、この演算結果がOF・RQ7
3内に書込まれる。なおこの式において、
NKSはNKS70の各ビツトの反転を意味して
いる。またオア演算の意味はルーチンR5の場
合と同じである。次にNKS70の内容がOKS
71内に書込まれる。すなわち、この処理によ
り今回NKSとして用いられたテーブルが次回
のルーチンR4〜R6の処理においてOKS7
1として用いられることになる。 (9) キーオン・チヤンネルアサインメントルーチ
ンR7 このルーチンR7はルーチンR5において作
成されたON・RQ72およびルーチンR3に
おいて作成されたトーンリクエストフアイル6
2に基づいて、新たに押下されたキーに対応す
る周波数データおよびトーンデータをWG25
の空チヤンネルに割当てる処理を実行するもの
である。 以下、第7図〜第9図を参照しこのルーチン
R7の実行過程を説明する。なお、第7図にお
けるON・RQ72は第6図におけるON・RQ
72と同一である。 プログラムがこのルーチンR7に入ると、ま
ず第8図に示すステツプS1に進行し、ON・
RQ72上の“1”ビツトの検出が行なわれ
る。この検出は、ON・RQ72のまず第1オ
クターブに対応するスロツトを左方(第7図に
おいて)へ1ビツトずつシフトし、次いで第2
オクターブに対応するスロツトを左方へ1ビツ
トずつシフトし、次いで第3、第4オクターブ
に対応するスロツトを順次左方へシフトするこ
とにより行なわれるもので、“1”ビツトを検
出した時点で(ステツプS2)プログラムはス
テツプS3に進行する。第7図に示す例におい
ては、まず第1オクターブ・C音の“1”ビツ
トが検出されるので、この時点でプログラムが
ステツプS3に進行する。ステツプS3では、
ROM20内に記載されている周波数テーブル
から第1オクターブ・C音に対応する周波数デ
ータが読出され、レジスタ22内の周波数デー
タエリア75(予め設定されている)に転送さ
れる。次いでステツプS4に進行すると、RAM
21上に用意されているビジイキーテーブル7
6の第1オクターブ・C音に対応するスロツト
76aのエントリイアドレス(アドレスX)が
算出され、算出されたエントリイアドレス(ア
ドレスX)がレジスタ22内に一時記憶され
る。なお、ビジイキーテーブル76とは予め
RAM21内に用意されているもので、各キー
に対応して設けられた48個のスロツト76a,
76b,76c…からなるものである。次に、
ステツプS5に進行すると、チヤンネルアサイ
メントテーブル(以下CATと略称する)77
内の空エリアの検出が行なわれる。ここで、
CAT77について説明する。このCAT77は
予めRAM21内に用意されているもので、
E1,E2…E15なる15個のエリアから構成され、
またこれらのエリアE1,E2…E15は各々16ビツ
トからなる3個のスロツトa1,b1,c1,
a2,b2,c2,…から構成されている。こ
のCAT77は、現在発音中の楽音(デイケイ
状態にある楽音も含む)がどのチヤンネルに割
当てられているかを示すテーブルであり、以下
に説明するように、あるキーに対応する楽音の
発音が割当てられると各エリアE1,E2,…E15
のヘツダー、すなわちスロツトa1,a2,a
3…に該当キーを表わすビジイキーテーブル7
6のエントリイアドレスが登録され、またスロ
ツトb1,c1、スロツトb2,c2…に使用
チヤンネルが登録されるようになつている。こ
の場合、スロツトb,cの各ビツトがそれぞれ
WG25の32個のチヤンネルに対応しており、
さらに発音が割当てられたチヤンネルに対応し
ており、さらに発音が割当てられたチヤンネル
に対応するビツトに“1”が登録される。 さて、プログラムがステツプS5に進行する
と、CAT77の各エリアのヘツダーを検索す
ることにより空エリアの検出が行なわれる。そ
して、例えばエリアE2が空エリアとして検出
されたとすると、エリアE2のエントリイアド
レス(アドレスY)がレジスタ22内に記憶さ
れ、そしてステツプS6に進行する。ステツプ
S6では、レジスタ22内に設けられているビ
ジイステイタスレジスタ78内の“0”ビツト
の数が算出される。このビジイステイタスレジ
スタ78は32ビツトのレジスタであり、各ビツ
トが各々32個のチヤンネルに対応し、また使用
中のチヤンネルに対応するビツトに“1”が登
録されている。したがつて、このステツプS6
で算出される“0”ビツトの数は現在の空チヤ
ンネルの数に等しくなる。ステツプS6におい
てビジイステイタスレジスタ78の“0”ビツ
トの数(空チヤンネルの数)が算出されると、
プログラムはステツプS7へ進み、算出された
“0”ビツトの数とトーンリクエストフアイル
62(第4図参照)内に登録されているトーン
データ数(すなわちトーンリクエストフアイル
62のヘツダー62a内に記憶されている数)
とが比較される。この場合、“0”ビツトの数
がトーンデータ数より大きいかあるいは等しい
とすると(YES)、プログラムはステツプS8に
進行する。ステツプS8では、ビジイステイタ
スレジスタ78内の“0”ビツトを検索するこ
とにより空チヤンネルのチヤンネル番号が検出
される。第7図の例においては、まずスロツト
78aの第2ビツトの“0”が検索され、これ
により第2チヤンネルが空チヤンネルであるこ
とが検出される。なお、ビジイステイタスレジ
スタ78において、スロツト78aの第1〜第
16ビツトが各々第1〜第16チヤンネルに対応
し、またスロツト78bの第1〜第16ビツトが
各々第17〜第32チヤンネルに対応している。第
2チヤンネルの空チヤンネルが検出されると、
プログラムはステツプS9に進行し、同チヤン
ネル番号「2」がチヤンネルレジスタ79内に
格納される。次いで、ステツプS10に進行する
と、トーンリクエストフアイル62に基づいて
ROM20内のトーンデータがレジスタ22内
のトーンデータエリア80に転送される。すな
わち、第4図の例について説明すると、まずエ
リア62c内に記憶されているアドレスDがレ
ジスタ群50内に読出され、次いでこのアドレ
スDに基づいてROM20内のトーンデータi
+2が読出され、トーンデータエリア80に転
送される。次に、エリア62c内の音量係数が
エリア80に転送される。 そして、プログラムはステツプS11に進行
し、トーンデータの修飾(音色加工)が行なわ
れる。このトーンデータの修飾はトーンリクエ
ストフアイル62のエリア62bに記憶されて
いる音色加工のための情報に基づいて行なわれ
るもので、この修飾によりトーンデータに音色
加工(例えば、ビブラートの付加)が施され
る。そして、プログラムはステツプS12に進行
する。ステツプS12では、チヤンネルレジスタ
79に記憶されている空チヤンネルのチヤンネ
ル番号(この場合、「2」)に基づいてデータポ
ート18(第2図)の第2チヤンネルに対応す
る領域のエントリイアドレスが算出される。次
いでステツプS13(第9図)に進行すると、周
波数データエリア75内の周波数データおよび
トーンデータエリア80内のトーンデータ、音
量係数が上記エントリイアドレスに基づいてデ
ータボート18の対応する領域に出力される。
次にステツプS14に進行すると、まずレジスタ
22内に設けられた32ビツトのスタートコマン
ドレジスタ81の第2チヤンネルに対応するビ
ツト(スロツト81aの第2ビツト)に“1”
がたてられ、次いでこのスタートコマンドレジ
スタ81の内容がデータボート18に転送され
る。このようにして、データポート18に転送
された周波数ドータ、トーンデータ、音量係数
およびスタートコマンドはWG25の対応する
チヤンネル(第2チヤンネル)に供給され、こ
れによりWG25の当該チヤンネル(第2チヤ
ンネル)がスタートし、同第2チヤンネルにお
いてデータポート18から供給されている周波
数データ、トーンデータ等に基づいて楽音信号
が形成される。次に、プログラムはステツプ
S15に進み、チヤンネルレジスタ79に記憶さ
れているチヤンネル番号「2」に基づいて、ス
テツプS5において検出されたエリアE2内のス
ロツトb2の第2ビツトに“1”を書込む。
(なお、このスロツトb2の第2ビツトが第2
チヤンネルに対応している。)次いでステツプ
S16に進行し、チヤンネルレジスタ79内のチ
ヤンネル番号「2」に基づいてビジイステイタ
スレジスタ78のスロツト78aの第2ビツト
に“1”が書込まれる。そして、ステツプS17
へ進行する。 ステツタS17では、トーンリクエストフアイ
ル62に登録されている全てのトーンデータが
チヤンネル割当てされたか否かが判断される。
この場合、エリア62c(第4図)に登録され
ているトーンデータの割当てのみしか済んでい
ないので、判断結果は「NO」であり、したが
つてプログラムはステツプS8に戻る。そして、
上述したステツプS8〜S16の過程が再度繰返さ
れる。すなわち、ステツプS8において空チヤ
ンネルとして第4チヤンネルが検出され、ステ
ツプS9においてチヤンネル番号「4」がチヤ
ンネルレジスタ79に格納され、ステツプS10
においてトーンリクエストフアイル62のエリ
ア62dに記載されているアドレスBに基づい
てトーンデータバンク65からトーンデータi
が読出されたトーンデータエリア80に転送さ
れ、またエリア62d内の音量係数がトーンデ
ータエリア80に転送され、ステツプS11にお
いてトーンデータの修飾が行なわれ、ステツプ
S12においてデータポート18の第4チヤンネ
ルに対応する領域エントリイアドレスが算出さ
れ、ステツプS13において周波数データエリア
75内の周波数データおよびトーンデータエリ
ア80内のトーンデータ、音量係数がデータポ
ート18へ出力され、ステツプS14においてス
タートコマンドレジスタ81の第4チヤンネル
に対応するビツトに“1”がたてられ、これに
よりWG25の第4チヤンネルがスタートし、
ステツプS15、S16においてCAT77のスロツ
ドb2の第4ビツトおよびビジイステイタスレ
ジスタ78のスロツト78aの第4ビツトに
“1”が書込まれ、そして、ステツプS17へ進
行する。 ステツプS17では、再度全トーンデータの割
当てが終了したか否かが判断されるが、この場
合まだトーンリクエストフアイル62のエリア
62eに記憶されているアドレスCに対応する
トーンデータの割当てが終了していないので、
判断結果は「NO」であり、したがつてプログ
ラムは再度ステツプS8へ戻り、ステツプS8〜
S16の過程が再度実行される。そして、このス
テツプS8〜S16の過程が実行されると、トーン
リクエストフアイル62のエリア62eに記憶
されているアドレスCに対応するトーンデータ
i+1が第5チヤンネルに割当てられ、WG2
5の第5チヤンネルがスタートし、またCAT
77のスロツトb2が第5ビツトおよびビジイ
ステイタスレジスタ78のスロツト78aの第
5ビツトに各々“1”が書込まれる。 このようにして、第1オクターブ・C音のチ
ヤンネル割当てが終了し、スピーカ29から
は、第1オクターブのC音の音高で、かつそれ
ぞれトーンデータi、i+1、i+2に対応す
る音色の3種類の楽音が同時に発音される。ま
た、この時点でビジイステイタスレジスタ7
8、スタートコマンドレジスタ81の第2、第
4、第5チヤンネルに対応するビツトには各々
“1”が登録されており、さらにCAT77のエ
リアE2の第2、第4、第5チヤンネルに対応
するビツトにも“1”が登録されている。 そして、プログラムはステツプS17へ進行す
るが、このステツプでの判断結果は当然
「YES」であり、したがつてプログラムはステ
ツプS18へ進行する。このステツプS18では、
割当処理がなされた第1オクターブ・C音に対
応するビジイーキーテーブル76のスロツト7
6aのエントリイアドレス(アドレスX)が、
CAT77のエリアE2のヘツダー(すなわち、
スロツトa2)に書込まれる。次いで、ステツ
プS19に進行すると、エリアE2のエントリイア
ドレス(アドレスY)がビジイキーテーブル7
6のスロツト76a内に書込まれる。そして、
ステツプS20に進行し、ON・RQ72の第1オ
クターブ・C音に対応する“1”ビツトが
“0”とされる。こうして、第1オクターブ・
C音に基づく割当処理が全て終了する。 次に、プログラムは再びステツプS1に戻り、
ON・RQ72上の“1”ビツトの検出が行な
われる。この場合、第7図に示す例においては
第2オクターブ・D#音に対応する“1”ビツ
トが検出され(ステツプS2)、したがつてプロ
グラムはステツプS3に進行し、以下上述した
場合と全く同様の割当処理がなされる。そし
て、第2オクターブ・D#音の割当処理が終了
すると再びON・RQ72上の“1”ビツトの
検出が行なわれ、次に検出された“1”ビツト
(第3オクターブ・F#音)に対応する割当処
理がなされる。このようにしてON・RQ72
上の“1”ビツトの処理が全て終了すると、ス
テツプS2での判断結果は「NO」となり、ルー
チンR7における処理が全て終了する。 次に、第8図におけるステツプS21について
説明する。上述した説明においてはステツプ
S7における判断結果を「YES」として説明を
進めたが、これは「NO」となる場合もあり得
る。すなわち、ビジイステイタスレジスタ78
の“0”ビツトの数がトーンリクエストフアイ
ル62のヘツダー62a内に登録されている数
より少ない場合、言い換えればトーンデータを
チヤンネルに割当てたくとも、空チヤンネルの
数が少なく、割当てることができない場合は、
ステツプS7の判断結果は「NO」となり、プロ
グラムはステツプS21へ進む。このステツプ
S21では、デイケイ状態にあるチヤンネルのチ
ヤンネル番号を後述するダンプコマンドレジス
タ85(第10図参照)へロードし、さらにこ
のダンプコマンドレジスタ85の内容をデータ
ボート18へ出力することにより、WG25に
おいてデイケイ状態にあるチヤンネルを強制的
に停止させてしまう。そして、ルーチンR7を
出る。このような処理をしておくと、WG終了
処理ルーチンI3においてビジイステイタスレ
ジスタ78の対応する“1”ビツトが“0”と
され、これにより空チヤンネルの数が増加し、
トーンデータの割当てが可能となる。なお、こ
の処理の意味は、デイケイ状態にある楽音の発
音より新たに押下されたキーに対応する楽音の
発音の方を優先するということである。また、
この処理を行なうために、レジスタ22内に設
けられたデイケイ状態のチヤンネル番号を記憶
するデイケイステイタスレジスタ82が利用さ
れる。 次に、CAT77のスロツトb2の第6ビツ
トの“1”(丸印を付してある)について説明
する。この第6ビツトの“1”は今回第1オク
ターブ・C音のキーが押下されたことにより割
当てられたものではなく、前回同キーが押下さ
れた際割当てられたものである。すなわち、前
回押下されたキーが離されると該キーが割当て
られた各チヤンネルにおいて所定のデイケイ時
間を経た後楽音信号の発生が停止し(なお、こ
の楽音信号発生の停止は各ヤンネル同時とは限
らない)、楽音信号の発生が停止したチヤンネ
ルに対応するCAT77内の“1”ビツトが
“0”とされるが、ある割当てチヤンネルのデ
イケイ時間が長い場合は該チヤンネルにおいて
今回同キーを押下した時点まで前回の楽音信号
が発生し続けていることがある。この場合、同
キーを新たに押下した時点でビジイキーテーブ
ル76のスロツト76aにはCAT77のエリ
アE2のエントリイアドレス(アドレスY)が
登録されており、またエリアE2には楽音信号
が発生し続けているチヤンネルに対応するビツ
ト(スロツトb2の第6ビツト)に“1”が残
つている。したがつて、今回の押下キーに対す
るチヤンネル割当てはエリアE2に登録され、
さらにスロツトb2の第6ビツトの“1”も同
エリアE2にそのまま残されることになる。(な
お、楽音信号の発生が停止した場合の処理につ
いては後述する割込処理ルーチンI3を参照の
こと。) なお、この実施例においてはトーンリクエス
トフアイル62内の各トーンデータ毎にチヤン
ネルをスタートされているが、各チヤンネルを
まとめて同時にスタートさせることも可能であ
る。 (10) キーオフ・チヤンネルマネジメントルーチン
R8 このルーチンR8は、ルーチンR6において
作成されたOF・RQ73およびルーチンR7に
おいて作成されたビジイキーテーブル76、
CAT77に基づいて、離されキー(押下状態
が解除されたキー)に対応する楽音を消去する
ものである。以下、このルーチンR6の実行過
程を第10図、第11図を参照し説明する。な
お、第10図におけるOF・RQ73は第6図に
おけるOF・RQ73と同一である。 プログラムがこのルーチンR8に入ると、ま
ず第11図に示すステツプS1に進行し、OF・
RQ73上の“1”ビツトの検出が行なわれ
る。なお、この検出は前述したON・RQ72
上の“1”ビツトの検出(第8図のステツプ
S1)の場合と全く同様に行なわれる。そして、
第10図に示す例においては、まず第1オクタ
ーブ・A#音の“1”ビツトが検出され(ステ
ツプS2)、プログラムがステツプS3に進行す
る。ステツプS3では、検出された“1”ビツ
トの位置(OF・RQ73上の位置)に基づい
て、ビジイキーテーブル76の第1オクター
ブ・A#音に対応するスロツト76mのエント
リイアドレス(アドレスVとする)が算出され
る。 次にステツプS4に進行すると、算出された
エントリイアドレス(アドレスV)に基づいて
スロツト76mの内容が読出され、レジスタ群
50内に転送される。この場合、スロツト76
mの内容は、第1オクターブ・A#音に関する
チヤンネル割当てがCAT77のエリアEnに登
録されているとすると、エリアEnのエントリ
イアドレス(アドレスUとする)である。次に
ステツプS5に進行すると、スロツト76mの
内容(アドレスU)に基づいてエリアEnのス
ロツトbnおよびcnの内容が読出され、デイケ
イコマンドレジスタ84またはダンプコマンド
レジスタ85のいずれかにロードされる。 なお、いずれにロードされかはこの電子オル
ガンの操作部に設けられた切替スイツチによつ
て制御される。そして、ステツプS6に進行す
ると、ステツプS5においてエリアEnの内容が
ロードされたレジスタ(84または85)の内
容がデータポート18に出力され、これにより
第1オクターブ・A#音に対応する楽音の発音
が割当てられているチヤンネル(第10図に示
す例についていえば、第1、第7、第8チヤン
ネル)の楽音信号の発生が停止される。この場
合、ステツプS5においてデイケイコマンドレ
ジスタ84にロードされた場合は、楽音がデイ
ケイをもつて徐々に消去され、ダンプコマンド
レジスタ85にロードされた場合は、楽音が即
座に消去される。次いでステツプS7へ進行す
ると、OF・RQ73上の第1オクターブ・A
#音の“1”ビツトが消去され、再びステツプ
S1に戻る。そして、ステツプS1において第3
オクターブ・F音の“1”ビツトが検出される
と、ステツプS2の判断結果が「YES」となり、
上述した場合と同様にステツプS3〜S6の過程
が実行され、第3オクターブ・F音が割当てら
れているチヤンネルの楽音信号が停止され、ま
たはデイケイ状態とされる。そして、ステツプ
S7において第3オクターブ・F音の“1”ビ
ツトが消去され、再びステツプS1に戻る。こ
のようにして、OF・RQ73上の“1”ビツト
の処理が全て終了するとステツプS2での判断
結果が「NO」となり、このルーチンR8にお
ける処理が終了する。 (11) WG終了処理ルーチンI3 この割込処理ルーチンI3は、WG25のチ
ヤンネルにおける楽音信号の発生が完全に停止
した時(デイケイ状態が終了した時)WG25
から発生する割込信号INTR3に基づいて実行
されるもので、その主な目的はビジイステイタ
スレジスタ78(第7図、第12図)の当該チ
ヤンネルに対応するビツトを“0”とし、これ
により同チヤンネルを空チヤンネルとして新た
に他のキーに対応する楽音の発生を割当て得る
ようにすることである。 すなわち、1個の押下されたキーに対応し
て、複数のチヤンネル(上述した第4図、第7
図等の例においては3個のチヤンネル)におい
て発生する楽音信号は、必ずしも同一タイミン
グで停止するとは限らず、例えばパーカツシブ
系の音の場合はキーが押下されているにもかか
わらず停止してしまうことがある。このような
場合に、同一キーに対応する他のチヤンネルの
楽音信号が全て停止するまで、すでに楽音発生
が停止したチヤンネルを待期させるとすると、
チヤンネル使用の効率が非常に悪いものにな
る。この電子オルガンはこのような点を考慮
し、楽音発生が停止したチヤンネルを即座に他
のキーに解放し得るように、この割込処理ルー
チンI3を設けている。 以下、第12図、第13図を参照しこの割込
処理ルーチンI3の実行過程について説明す
る。なお以下の説明においては、いま第7チヤ
ンネルにおいて楽音信号の発生が停止し、また
この第7チヤンネルがCAT77のエリアE6に
登録されているものとする。 第7チヤンネルにおいて楽音信号の発生が停
止し、これによりWG25から割込信号INTR
3が発生すると、プログラムは先ず第13図に
示すステツプS1に進行する。そして、このス
テツプS1においてビジイステイタスレジスタ
78のスロツト78aの第7ビツト(第7チヤ
ンネルに対応)が“0”とされ、次いでステツ
プS2に進行する。このステツプS2および次の
ステツプS3はCAT77に登録されている第7
チヤンネルを消去する、具体的にいえばエリア
E6の第7チヤンネルに対応するスロツトb6
の第7ビツトの“1”の消去するためのもので
ある。そしてこの処理を行なわれなければなら
ない理由は次の通りである。例えば、第7チヤ
ンネルにおいて今まで発生していた楽音信号が
パーカツシブ系の楽音信号であり、また同楽音
信号の発生が停止した時点で同楽音信号に対応
するキー(最初のキーと称す)がまだ押下され
たままであつたとする。そして、同楽音信号が
停止した時点でビジイステイタスレジスタ78
の第7チヤンネルに対応するビツトが“0”と
されることにより(ステツプS1)、最初のキー
が離される前に新たに押下されたキー(次のキ
ーと称す)に対応する楽音の発生がこの第7チ
ヤンネルに割当てられる可能性がある。このよ
うな場合に上述した処理を行なつていないとす
ると、最初のキーが離された時点で同最初のキ
ーに対応するCAT77のエリアの内容が例え
ばデイケイコマンドレジスタ84に転送され、
さらにこのデイケイコマンドレジスタ84の内
容がデータポート18に出力されて、次のキー
に対応する楽音の発生が割当てられている第7
チヤンネルをもデイケイ状態に移行させてしま
うことになる。このような不都合を除くために
ステツプS2およびS3による処理が必要となる。 さて、プログラムがステツプS2に進行する
とCAT77のエリアE1のヘツダー(スロツト
a1)が“0”であるか否かが判断される。こ
の場合、例えば「NO」(“0”でない)とする
と、プログラムはステツプS3に進行する。ス
テツプS3では、まずエリアE1のスロツトb1,
c1の各ビツトとビジイステイタスレジスタ7
8の対応するビツトとの間で論理ANDがとら
れ、次いでこの演算結果がスロツトb1,c1
内に格納される。これによりスロツトb1の第
7ビツトに“1”があつた場合はその“1”が
消去される。なお、この例においてはエリア
E6のスロツトb6の第7ビツトに“1”があ
るので、エリアE6のスロツトb1の第7ビツ
トに“1”はない。したがつて、上記AND演
算の結果は、演算前のエリアE1の内容と同一
となる。 ステツプS3の実行が終了するとステツプS4
へ進行する。このステツプS4では、エリアE1
の内容(スロツトb1,c1の内容)が全て
“0”が否かが判断される。この場合、エリア
E1には“1”が残つているので判断結果は
「NO」となり、プログラムはステツプS6へ進
む。このステツプS6では上述したステツプS3
における処理がヘツダーが“0”でない全ての
エリア(E1〜E15)においてなされたか否かが
判断される。この場合、エリアE1の処理しか
なされていないので、判断結果は「NO」であ
り、したがつてプログラムは再びステツプS2
に戻る。ステツプS2では、今度はエリアE2の
ヘツダー(スロツトa2)が“0”か否かが判
断される。この場合、ヘツダーが“0”とする
と(「YES」)、プログラムはステツプS6に進
む。このステツプS6での判断結果は「NO」で
あり、プログラムは再びステツプS2に進み、
エリアE3のヘツダーが調べられる。このうに
してエリアE1,E2,…と順次各エリアが調べ
られ、またステツプS3の処理がなされ、そし
てステツプS2においてエリアE6のヘツダー
(スロツトa6)が調べられたとする。この場
合、ステツプS2における判断結果は「NO」と
なり、ステツプS3に進む。そして、このステ
ツプS3においてビジイステイタスレジスタ7
8の内容とエリアE6のスロツトb6,c6の
内容との論理ANDがとられることにより、ス
ロツトb6の第7ビツト“1”が消去される
(“0”とされる)。次いで、ステツプS4へ進行
すると、エリアE6のスロツトb6,c6の内
容が全て“0”であるか否かが判断され、この
場合、まだ“1”が残つているとするとプログ
ラムはステツプS6へ進行する。こうして、全
エリアE1〜E15について処理が終了するとプロ
グラムはこの割込処理ルーチンI3を出る。 次に、例えばいま第8チヤンネルが終了し、
またこの第8チヤンネルがCAT77のエリア
E7に登録されており、さらにこの第8チヤン
ネルで発生していた楽音信号のデイケイ時間が
比較的長かつた場合について説明する。 割込信号INTR3が発生し、プログラムがス
テツプS1に進行すると、ビジイステイタスレ
ジスタ78のスロツト78aの第8ビツト(第
8チヤンネルに対応)の“1”が消去される。
次いで、前述した場合と同様にしてエリアE1
〜E6が処理された後、ステツプS3においてエ
リアE7のスロツトb7の第8ビツトの“1”
が消去され、そしてステツプS4へ進む。ここ
で、第8チヤンネルの楽音信号のデイケイ時間
が比較的長かつたため、第8チヤンネルが終了
した時点ではエリアE7の他の“1”ビツトが
全て消去されていたとする。この場合、ステツ
プS3の実行によつてステツプS4の判断結果は
「YES」となり、プログラムはステツプS5へ進
行する。そして、このステツプS5において、
まずエリアE7のヘツダーに記憶されているビ
ジイキーテーブル76(第10図参照)のエン
トリイアドレスに基づいて、同エントリイアド
レスによつて指示されるビジイキーテーブル7
6のスロツトの内容が消去され、次にエリア
E7のヘツダーが消去される。すなわち、エリ
アとビジイキーテーブルとの結合が解かれる。
そして、この処理によりエリアE7が他のキー
に対して解放されることになる。 なお、参考までにこれまでに説明したROM
20、RAM21レジスタ22の各内容をまと
めて第14図に示す。 最後に、第2図に示すトーンレバー38とし
て用いられるエンコーダスイツチを第15図に
示す原理図を用いて説明する。基板38a上に
は、図示する4つの領域a、b、c、d間に連
続して導体(図中斜線で示す)が形成された接
点38b、領域a、cに導体が形成され且つ領
域b、dに絶縁体(図中白い部分で示す)が形
成された接点38c、領域a、bに導体が形成
され且つ領域c、dに絶縁体が形成された接点
38dがそれぞれ配設され、更にこれら各接点
38b,38c,38d上の各領域a、b、
c、d上をこれら接点38b〜38dに接触し
ながら図中の矢印方向eまたはfにスライドで
きるようにした導体からなる接点スライダ38
eが配設されている。また上記各接点38b,
38c,38dはそれぞれ対応する端子38
f,38g,38hに接続されている。更に上
記端子38fにはスキヤンストローブ信号が加
えられている。他方、端子38g,38hはそ
れぞれ対応するダイオードD0,D1のカソード
に接続され、上記ダイオードD0,D1の各アノ
ードはそれぞれ対応するバツフアアンプB0,
B1の入力端に接続されている。更にまた上記
ダイオードD0,D1の各アノードは一端が電源
+Vccに接続された抵抗R0,R1の各他端にも
接続され、また上記バツフアアンプB0,B1の
出力端からは信号BIT<0>またはBIT<1>
が出力されるように構成されている。 上記スキヤンストローブ信号は、上述したエ
ンコーダスイツチをスキヤンするための信号
で、この実施例の場合前述した第2図のアドレ
スデコーダ34にスイツチアドレス信号が供給
されたときに該デコーダ34から出力される。 エンコーダスイツチが上記のように構成され
ているので、たとえば第15図に示すエンコー
ダスイツチが第4図におけるトーンレバー1と
して使用されているときには、このエンコーダ
スイツチの接点スライダ38eは第15図に想
像線で示す領域dの位置に設定されていること
になる。つまり、接点38c,38dの各領域
dの接点38bと電気的に遮断されているか
ら、端子38fにスキヤンストローブ信号が入
力されても各ダイオードD0,D1のアノードは
電源+Vccの電圧レベルにあり、したがつて各
バツフアアンプB0,B1の出力信号BIT<0>、
BIT<1>の出力レベルはともに2値論理レベ
ル“0”である。したがつてトーンレバー1は
音量0のリクエスト条体にあることになる。 なお、上記エンコーダスイツチは2ビツトの
バイナリコードによる4段階の音量切換え用と
したが、更に3ビツト、4ビツトのようなバイ
ナリコードによる多数段階の音量切換え用にす
ることも容易である。またエンコーダスイツチ
としてはバイナリコードのみならずグレイコー
ドのような他のコードによるものでも使用でき
る。 以上詳述したように、この発明によれば、鍵盤
部、音色設定操作子部および楽音発生部の各要素
を共通の情報伝送路を介してプログラムコントロ
ールによつて制御手段にそれぞれ接続し、制御手
段によつて鍵盤部および音色設定操作子部の操作
状態をそれぞれ検出するとともに、この検出に基
づいて楽音発生部に対し周波数および波形を定め
る所定のデータ信号を供給するようにしたので、
従来の電子楽器に比較し構成が簡単になる利点が
得られ、また、キーの数あるいはトーンレバーの
数の変換に際しプログラムを変更するだけで対処
することができ、したがつて、キー、トーンレバ
ーの数の変更を容易に行い得る利点が得られる。
また、本願発明は第1の手段および第2の手段の
各々別個に有しているので、操作子の種類(キ
ー、トーンレバー等)および各操作子の一般的操
作頻度に合わせて効率よく操作状態の検出を行う
ことができる効果がある。
第1図は従来のデイジタル式電子オルガンの概
略的な構成を示す図、第2図ないし第14図はこ
の発明による電子オルガンの一実施例を示す図で
あり、第2図は全体の構成を示す図、第3図イは
プログラムの流れを示すフローチヤート、第3図
ロは割込処理ルーチンを示す図、第4図は第3図
に示すトーンレバー処理ルーチンR3の実行時に
おいて関係するROM20、RAM21、レジス
タ22の記憶内容を示す図、第5図は上記ルーチ
ンR3のフローチヤート、第6図は第3図に示す
キーオン・リクエストフアイル作成ルーチンR
5、キーオフ・リクエストフアイル作成ルーチン
R6の実行時において関係するRAM21、レジ
スタ22の記憶内容を示す図、第7図は第3図に
示すキーオン・チヤンネルアサインメントルーチ
ンR7の実行時において関係するRAM21、レ
ジスタ22の内容を示す図、第8図、第9図は共
に上記ルーチンR7のフローチヤート、第10図
は第3図に示すキーオフ・チヤンネルマネジメン
トルーチンR8の実行時において関係するRAM
21、レジスタ22の内容を示す図、第11図は
上記ルーチンR8のフローチヤート、第12図は
第3図に示すWG終了処理ルーチンI3の実行時
において関係するRAM21、レジスタ22の内
容を示す図、第13図は上記ルーチンI3のフロ
ーチヤート、第14図はROM20、RAM21、
レジスタ22、データポート18の各記憶内容を
まとめて示した図、第15図はトーンレバーとし
て用いられるエンコーダスイツチの構成を示す図
である。 12……アサイナ、13……楽音発生部、14
……制御部、15……演算部、19……演算制御
部、23……第1の記憶部、30……データバ
ス、37……アドレスバス、38……トーンレバ
ー、39……鍵盤キー、45……第2の記憶部
(マイクロプログラムメモリ)。
略的な構成を示す図、第2図ないし第14図はこ
の発明による電子オルガンの一実施例を示す図で
あり、第2図は全体の構成を示す図、第3図イは
プログラムの流れを示すフローチヤート、第3図
ロは割込処理ルーチンを示す図、第4図は第3図
に示すトーンレバー処理ルーチンR3の実行時に
おいて関係するROM20、RAM21、レジス
タ22の記憶内容を示す図、第5図は上記ルーチ
ンR3のフローチヤート、第6図は第3図に示す
キーオン・リクエストフアイル作成ルーチンR
5、キーオフ・リクエストフアイル作成ルーチン
R6の実行時において関係するRAM21、レジ
スタ22の記憶内容を示す図、第7図は第3図に
示すキーオン・チヤンネルアサインメントルーチ
ンR7の実行時において関係するRAM21、レ
ジスタ22の内容を示す図、第8図、第9図は共
に上記ルーチンR7のフローチヤート、第10図
は第3図に示すキーオフ・チヤンネルマネジメン
トルーチンR8の実行時において関係するRAM
21、レジスタ22の内容を示す図、第11図は
上記ルーチンR8のフローチヤート、第12図は
第3図に示すWG終了処理ルーチンI3の実行時
において関係するRAM21、レジスタ22の内
容を示す図、第13図は上記ルーチンI3のフロ
ーチヤート、第14図はROM20、RAM21、
レジスタ22、データポート18の各記憶内容を
まとめて示した図、第15図はトーンレバーとし
て用いられるエンコーダスイツチの構成を示す図
である。 12……アサイナ、13……楽音発生部、14
……制御部、15……演算部、19……演算制御
部、23……第1の記憶部、30……データバ
ス、37……アドレスバス、38……トーンレバ
ー、39……鍵盤キー、45……第2の記憶部
(マイクロプログラムメモリ)。
Claims (1)
- 【特許請求の範囲】 1 複数の鍵を有する鍵盤と、 音色を選択設定するための音色設定操作子を有
する音色設定操作子部と、 それぞれに与えられる周波数および波形に関す
るデータに基づいて、当該周波数および波形に対
応する楽音信号を発生する複数の楽音発生チヤン
ネルを有する楽音発生部と、 波形を定めるデータを記憶するデータメモリ
と、 前記音色設定操作子部の音色設定操作子に割り
当てる前記データメモリに記憶された波形を定め
るデータを指示するインデツクス情報を記憶する
音色設定記憶手段と、 前記音色設定記憶手段、前記データメモリ、前
記楽音発生部、前記鍵盤部および前記音色設定操
作子部がそれぞれ接続される共通の情報伝送路
と、 前記共通の情報伝送路に接続され、プログラム
制御により動作する制御手段と、 を備え、かつ 前記制御手段は、 前記共通の情報伝送路を介して前記鍵盤部にお
ける各鍵を走査して各鍵の状態を示す信号を取り
込み押圧された鍵を検出する第1の手段と、 前記共通の情報伝送路を介して前記音色設定操
作子部における音色設定操作子を走査して音色設
定操作子の操作状態を検出する第2の手段と、 前記第1および第2の手段の検出結果に基づ
き、前記各楽音発生チヤンネルで発生すべき楽音
信号を指定するための前記周波数および波形に関
するデータを該各楽音発生チヤンネル別に前記共
通の情報伝送路を介して前記楽音発生部に供給す
るものであつて、前記第2の手段によつて検出さ
れる操作状態に応じて参照される前記音色設定記
憶手段に記憶されたインデツクス情報に基づき前
記波形を定めるデータを前記データメモリから読
み出すことにより該波形に関するデータを形成す
る第3の手段とを具備し、 これによつて、前記鍵盤部で押圧された鍵およ
び操作された音色設定操作子に対応した周波数お
よび音色の楽音を発生するようにしたことを特徴
とする電子楽器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58071862A JPS58214198A (ja) | 1983-04-23 | 1983-04-23 | 電子楽器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58071862A JPS58214198A (ja) | 1983-04-23 | 1983-04-23 | 電子楽器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS58214198A JPS58214198A (ja) | 1983-12-13 |
| JPH0474718B2 true JPH0474718B2 (ja) | 1992-11-26 |
Family
ID=13472749
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58071862A Granted JPS58214198A (ja) | 1983-04-23 | 1983-04-23 | 電子楽器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS58214198A (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6113295A (ja) * | 1984-06-29 | 1986-01-21 | カシオ計算機株式会社 | 電子楽器 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3899951A (en) * | 1973-08-09 | 1975-08-19 | Nippon Musical Instruments Mfg | Key switch scanning and encoding system |
-
1983
- 1983-04-23 JP JP58071862A patent/JPS58214198A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS58214198A (ja) | 1983-12-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5717153A (en) | Tone information processing device for an electronic musical instrument for generating sounds | |
| US4981066A (en) | Electronic musical instrument capable of editing chord performance style | |
| US5119710A (en) | Musical tone generator | |
| US4387617A (en) | Assigner for electronic musical instrument | |
| US4724736A (en) | Keyboard musical instruments with transpositional function | |
| JPS5943758B2 (ja) | 電子楽器用アサイナ | |
| JP2629891B2 (ja) | 楽音信号発生装置 | |
| JPH0474718B2 (ja) | ||
| JPS6113599B2 (ja) | ||
| JPS6252317B2 (ja) | ||
| JPS6339074B2 (ja) | ||
| JPS6339075B2 (ja) | ||
| JPS6339073B2 (ja) | ||
| JPS6252316B2 (ja) | ||
| JPS62208099A (ja) | 楽音発生装置 | |
| JPH0572596B2 (ja) | ||
| JPH11202866A (ja) | 楽音発生方法および楽音発生装置 | |
| JPS61173297A (ja) | 電子楽器 | |
| JP2900457B2 (ja) | 電子楽器 | |
| JP3278857B2 (ja) | 楽音形成装置 | |
| JPS61175692A (ja) | 電子楽器 | |
| JPH0584919B2 (ja) | ||
| JPH0515279B2 (ja) | ||
| JP2513014B2 (ja) | 電子楽器の自動演奏装置 | |
| JPH0631981B2 (ja) | 自動リズム演奏装置 |