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の手段の
各々別個に有しているので、操作子の種類(キ
ー、トーンレバー等)および各操作子の一般的操
作頻度に合わせて効率よく操作状態の検出を行う
ことができる効果がある。
The present invention relates to an electronic musical instrument using program control. FIG. 1 is a block diagram showing an example of the configuration of a conventional electronic organ. In this figure, when a key on a keyboard 1 is operated, a key press detection circuit 2 detects this and outputs the key code of the operated key to a musical tone generator 3. Further, the timbre detection circuit 4 outputs a tone code corresponding to the timbre set by the timbre setting operator section 5 to the musical tone generating section 3. The musical tone generator 3 generates a waveform (timbre) corresponding to the tone code.
A musical tone signal (digital signal) having a frequency corresponding to the key code is formed and output to a D/A (digital/analog) converter 6. The D/A converter 6 converts the supplied musical tone signal into an analog signal and supplies it to the speaker 8 via the amplifier 7. As a result, the musical tone of the operated key is generated from the speaker 8. By the way, each circuit part of such a conventional electronic musical instrument was constructed from hardware. This has the drawback that the overall configuration of the electronic musical instrument is complex and large-scale, which makes it expensive.Also, when it is desired to expand the number of keys or tone setting controls, the configuration of each part of the circuit has to be changed. It also has the disadvantage that it is more complicated and cannot be easily expanded. Therefore, this invention not only simplifies the configuration, but also
To provide an electronic musical instrument in which the number of keys or the number of tone setting operators can be easily changed, and includes a keyboard section,
Each element of the tone setting controller section and the tone generating section is connected to a control means by program control via a common information transmission path, and the control means detects the operation status of the keyboard section and tone setting operator section, respectively. At the same time, based on this detection, a predetermined data signal that determines the frequency and waveform is supplied to the musical tone generator. Embodiments of the present invention will be described below with reference to the drawings. FIG. 2 is a block diagram showing the configuration of an electronic organ (electronic musical instrument) according to the present invention.The electronic organ shown in this diagram can be roughly divided into keyboard circuit 1.
1, an assigner 12, and a tone generator 13. The assigner 12 is the controller 1
4, a calculation control unit 19 including a calculation unit 15, an interrupt control circuit 16, a pulse generator 17, and a data port 18; a ROM (read only memory) 20;
It is composed of a RAM (random access memory) 21 and a first storage section 23 having a register 22, and the musical tone generating section 13 is a wave generator (hereinafter referred to as WG) having 32 channels.
25, an envelope generator 26 that sends envelope information to this WG 25, and a D/A
It is composed of a (digital/analog) conversion circuit 27, an amplifier 28, and a speaker 29. In addition,
The control section 14 and calculation section 15 described above are usually constructed using a microcomputer. Furthermore, the above-mentioned envelope is the envelope of the musical tone signal. That is, a normal musical tone signal has an envelope consisting of three states: a rising state (attack state) B1, a sustaining state B2, and a falling state (decay state) B3, as indicated by the symbol B in FIG. . This electronic organ operates under program control, and its program is composed of a processing program stored in the ROM 20 and various microprograms stored in the microprogram memory 45 in the control section 14. Also,
Various tone data and frequency data necessary for forming musical tone signals (digital signals) in the WG 25 are stored in the ROM 20. Based on the above processing program and microprogram, the system operates as follows. That is, when a key is pressed, the keyboard circuit 11 first
supplies key switch information corresponding to the pressed key to the assigner 12 via the data bus 30. The assigner 12 outputs frequency data and tone data corresponding to the supplied key switch information.
Read from ROM20 and transfer read data to WG25
Assign to multiple channels. WG25
Each channel forms a musical tone signal (digital signal) based on data assigned to the channel and envelope information supplied from the envelope generator 26. The musical tone signals formed by each of these channels are converted into analog signals by the D/A converter 27, and then the amplifier 2
A musical tone is emitted from the speaker 29 via the 8. The outline of this electronic organ has been described above, and now the details of this electronic organ will be explained. First, the keyboard circuit 11 includes an address decoder 34,
Buffer bus driver 35, matrix circuit 3
Consists of 6. The address decoder 34 decodes the switch address signal supplied via the address bus 37.
Each of these output terminals is connected to each column line of the matrix circuit 36, respectively. The matrix circuit 36 is a matrix with 12 rows and 5 columns, and each fulcrum of this matrix has a
The contacts of each switch of the tone lever (a lever for setting tones such as "Violin" and "Flute") 38 and the contacts of each key switch of the keyboard key 39 are connected together with diodes as shown by symbol A in the figure. It is inserted. In this embodiment, for convenience of explanation, it is assumed that the tone lever 38 consists of six tone levers, and each tone lever is capable of adjusting the volume in four stages (therefore, the information regarding each tone lever is 2
The tone lever switches correspond to these 2 bits, 2 for each tone lever, for a total of 12), and the keyboard keys 39 consist of 4 octaves (12 x 4 = 48 keys). shall be carried out. The switches for each tone lever are arranged in one row on the left side of the matrix circuit 36 (in the figure) (the two switches surrounded by broken lines in the figure correspond to one tone lever), and each key switch of the keyboard key 39 is arranged in one row (in the figure). Matrix circuit 36
They are placed in the 4th column on the right. The buffer bus driver 35 is a bus driver for outputting on/off information of each of the switches to the data bus 30, and has 12 input terminals and an output terminal, and each input terminal is connected to each row line of the matrix circuit 36. The output terminal is connected to the data bus 30. The control unit 14 is an instruction register 4
2, an instruction decoder 43, a microprogram/address sequencer 44, a microprogram memory 45 (second storage section), and a pipeline register 46. The instruction register 42 temporarily stores each instruction of the processing program read from the ROM 20, and the instructions temporarily stored in the instruction register 42 are sent to the instruction decoder 4.
3 and supplied to the microprogram address sequencer 44. The microprogram address sequencer 44 specifies the address of the microprogram memory 45 based on the output of the instruction decoder 43, and as a result, the processing program temporarily stored in the instruction register 42 is transferred from the microprogram memory 45. The microprogram corresponding to the instruction is read and the pipeline register 4
6. The calculation unit 15 includes a microfunction decoder (hereinafter abbreviated as MFD) 48 and a calculation circuit 4.
9, etc., and decodes each instruction of the microprogram supplied from the control unit 14 and executes a predetermined process. That is, MFD4
8 decodes each instruction of the microprogram supplied from the pipeline register 46, and based on the decoding result, register group 50, multiplexers 51, 52, arithmetic circuit 49, memory address register 53, data register 54, output Control signals are output to buffers 55 and 56, respectively. The register group 50 is a working register used in the process of processing each instruction of the microprogram, and the output of the arithmetic circuit 49 is read by the control signal from the MFD 48. is supplied to the input end of The multiplexer 51
The input terminal of is connected to the data bus 30, the third input terminal is connected to the output terminal of the data register 54, and the first to third input terminals are connected to the output terminal of the data register 54.
The data obtained at the third input terminal is selectively outputted to the arithmetic circuit 49. multiplexer 5
2 has its first input terminal connected to the data bus 30 and its second input terminal connected to the output terminal of the data register 54, respectively, and selectively transmits data obtained at these first and second input terminals. is output to the arithmetic circuit 49. The arithmetic circuit 49 receives various data supplied from the multiplexers 51 and 52 (this data includes address data specifying the address of each memory in the first storage section 23 and data used when allocating the above-mentioned keys to channels). ) is calculated based on the control signal from the MFD 48, and the calculation result is supplied to the memory address register 53 or data register 54. The memo address register 53 temporarily stores address data supplied from the arithmetic circuit 49.
The output of No. 3 is output to the address bus 37 via the output buffer 55. data register 5
4 temporarily stores data supplied from the arithmetic circuit 49 (data used when assigning keys to channels), and the output of this data register 54 is output to the data bus 30 via an output buffer 56. Ru. The interrupt control circuit 16 performs various processes when an interrupt occurs. Here, the interrupt signal of this electronic organ will be explained. This electronic organ has three interrupt signals INTR1, INTR2, and INTR3. Interrupt signal INTR1 is pulse generator 1
Based on the output of 7, the interrupt control circuit 16
This is an interrupt signal that is periodically generated every sec, and when this interrupt signal INTR1 is generated, on/off information of each key switch of the keyboard keys 39 is read into the RAM 21. The interrupt signal INTR2 is an interrupt signal generated by frequency-dividing the output of the pulse generator 17 by a frequency divider in the interrupt control circuit 16, and has a frequency of several 100 msec.
Occurs periodically. And this interrupt signal
When INTR2 occurs, on/off information for each switch of the tone lever 38 is read into the RAM 21. Note that the period of interrupt signal INTR2 is the interrupt signal
The reason why the cycle is much larger than that of INTR1 is that normally each key is operated frequently, but
This is because each tone lever is not operated as frequently as each key. The interrupt signal INTR3 is an interrupt signal supplied from the WG 25, and is generated when the musical tone signal formed in each channel within the WG 25 becomes 0. Note that this interrupt signal
INTR3 will be described later. And these interrupt signals INTR1 to INTR3
When any of the above occurs, the control unit 14 detects this, reads the interrupt instruction into the instruction register 42, and decodes it when the currently executing microprogram module is completed.
The priority order of interrupt signals INTR1 to INTR3 is as follows:
In the interrupt control circuit 16, INTR3>INTR1>INTR2 is determined. As mentioned above, the ROM 20 stores processing programs, frequency data, tone data, etc., and is supplied with an address signal from the output buffer 55 via the address bus 37, and read out using the same address signal. Each instruction or various data of the processing program is transferred to the data bus 3.
Output to 0. The RAM 21 stores various data tables, data files, etc. used in channel assignment, and is supplied with address signals from the output buffer 55, and its input/output ends are connected to the data bus 30. . The register 22 stores various statuses or commands (described later), and is supplied with an address signal from an output buffer 55, and its input end is connected to the data bus 30. Data port 18 is connected to frequency data, tone data stored in ROM 20, and register 2.
This is a register for outputting various commands stored in WG 25 and envelope generator 26 to WG 25 and envelope generator 26. Addresses are supplied from output buffer 55, and its input end is connected to data bus 30. In addition, the above
The contents stored in the ROM 20, RAM 21, register 22 and data port 18 are shown in FIG. Next, the operation of the electronic organ shown in FIG.
The explanation will be based on the flowchart shown in the figure. In the following description, "1" indicates a binary logic level "1" signal, and "0" indicates a binary logic level "0" signal. FIG. 3A is a flowchart showing the flow of the program, and FIG. 3B is an interrupt processing routine. As shown in this figure, the program of this electronic organ consists of eight main routines R1 to R8 and three interrupt processing routines I1 to I3. Each routine is converted into a plurality of microprogram modules and stored in the microprogram memory 45, and macro instructions for calling these microprogram modules are stored in the ROM 20 as processing programs.
Each of the above routines will be sequentially explained below. (1) Processing Reset Routine R1 When power is turned on in this electronic organ, the program first enters this initial reset routine R1, and initial resets of each part are performed. (2) Tone lever on/off detection routine I1 This interrupt processing routine is executed every time the interrupt signal INTR2 is generated at an interval of several 100 msec, and the keyboard circuit 11 at the time when the interrupt signal INTR2 is generated. The on/off state of each tone lever switch is detected. That is, when the interrupt signal INTR2 is generated in the interrupt control circuit 16, a switch address signal is supplied to the address decoder 34, and based on this switch address signal, the on/off information of each tone lever switch is sent to the buffer bus driver 35 and Read into register 22 via data bus 30. Then, based on the read tone lever switch on/off information, a new tone lever status table (hereinafter referred to as
(abbreviated as NTS) 60 is created. In this case, in this NTS60, the volume setting of each tone lever 1-6 is indicated by a binary number. That is, in the example shown in the figure, tone levers 1, 4, 5, and 6 request a volume of "0", and tone lever 2 requests a volume of "3".
, the tone lever 3 requests a volume of "2". (3) Tone lever position and change detection routine R2 When the above-mentioned initial reset routine R1 is completed, the program advances to this routine R2. This routine R2 detects whether the contents of the current NTS60 are different from the contents of the same NTS60 at the time when this routine R2 was executed last time.
The above detection is performed by comparing the contents of the old tone lever status table (hereinafter abbreviated as OTS; see FIG. 4) 61 created in the RAM 21. In addition
OTS61 indicates the contents of NTS60 at the time this routine R2 was executed last time.
It is created in Routine 3, which will be explained next.
If the result of executing routine R2 is "YES" (change), the program proceeds to routine R3, and if "NO" (no change), the program proceeds to routine R4. (4) Tone Lever Processing Routine R3 This routine R3 creates a tone request file 62 shown in FIG. 4 in the RAM 21 based on the contents of the NTS60.
In this electronic organ, tone data in the ROM 20 is assigned to each channel of the WG 25 based on the tone request file 62 created in this routine R3. That is, as shown in FIG. 4, a volume table 63, a tone lever index table 64, and a tone data bank 65 are provided in the ROM 20 in advance. The volume table 63 stores in advance volume coefficients (each channel of WG 25 sets the volume based on this volume coefficient) corresponding to the volume "1" to "3" set by the tone lever. , the tone data bank 65 contains a plurality of tone data, namely...tone data i-1, tone data i, tone data i+1, tone data i
+2... are stored in the tone lever index table 64, and each tone lever 1 to 6 is stored in the tone lever index table 64.
An address pointer of tone data for configuring a tone corresponding to the tone is stored. In this case, to explain the example shown in the figure, the tone corresponding to tone lever 1
is composed of tone data i-1 and i,
Therefore, the tone data bank 6 is stored in the slot (storage area) 64a corresponding to the tone lever 1 of the tone lever index table 64.
The leading addresses of tone data i-1 and i in 5 are stored, that is, address A and address B, and the tone corresponding to tone lever 2 is constituted by tone data i+2, therefore, address D is stored in slot 64b. is memorized,
Further, the tone corresponding to the tone lever 3 is composed of tone data i and i+1, and therefore an address B and an address C are stored in the slot 64c. In this embodiment, the maximum number of tone data constituting the tone corresponding to each tone lever is two, but it is possible to have a plurality of pieces of tone data, and there is no need to limit the number to two. When the program enters this tone lever processing routine R3 (a flowchart of this routine R3 is shown in FIG. 5), first, the tone lever 1 volume information stored in the NTS60 in the register 22 (FIG. 4) is read into the register group 50 of the arithmetic unit 15. However, since the volume is "0" in this case, no processing is performed. Then, the volume information of the tone lever 2 is read into the register group 50. in this case,
Volume "3" is specified. Therefore, first, the address pointer in the slot 64b of the tone lever index table 64 (i.e.,
address D) is tone request file 62
Then, the volume coefficient "1111111" corresponding to the volume "3" in the volume table 63 is written in the area 62c (see FIG. 4). Next, the volume information of the tone lever 3 is read into the register group 50. In this case, the volume "2" is specified, so first the first address pointer (i.e., address B) in slot 64c of table 64 is written in area 62d of tone request file 62, Next, the volume coefficient ("0100000") corresponding to the volume "2" is written in the same area 62d, and then the second address pointer (i.e., address c) in the slot 64c is written in the area 62e. Next, the volume coefficient ("0100000") corresponding to volume "2" is 62 in the same area.
written in e. In this way, NTS6
The volume information of each tone lever within 0 is sequentially read out and processed. Finally, the number of address pointers written in the tone request file 62, that is, the number of tone data registered in the tone request file 62, is written in the header (i.e., area 62a) of the tone request file 62. Then, the creation of the tone request file 62 is completed. After creating the tone request file 62
The contents of NTS60 are transferred into OTS61 and the program exits this routine R3. In this way, in this electronic organ, a tone request file 62 as shown in FIG. 4 is created in this routine R3. In this case, each tone lever corresponds only to the address pointer of the tone lever index table 64, so by changing the address pointer of this table 64, arbitrary tone data (timbre) can be made to correspond to each tone lever. be able to. Note that in this tone request file 62, information for tone processing common to this file 62, such as vibrato frequency, vibrato depth, decay length, etc., is stored in area 62b. That is, although a detailed explanation will be omitted, information for these tone processing is stored in the ROM 20 in advance, and the tone processing information is stored in accordance with the operation position of the tone processing lever.
By reading out the data from the ROM 20 and registering it in this file 62, it becomes possible to perform timbre processing on the musical tone signals formed in each channel of the WG 25. By the way, in the process of creating the tone request file 62 described above, the number of address pointers written in the header 62a is normally detected by providing a counter called a tone request counter in the register 22, and detecting the number of address pointers written in the header 62a every time an address pointer is written in the file 62. This is done by incrementing this tone request counter and finally referring to the count result of this tone request counter. In addition, in the above process, sequential reading of the contents of the NTS 60, sequential reading of address pointers in each slot of the tone lever index table 64, sequential writing to each area in the tone request file 62, etc. are normally performed by following the corresponding pointers. Each time one process is completed, the contents of this pointer are advanced, and execution is performed based on the contents of this pointer. For example, the tone request file 62
When writing the address pointer to the tone request file pointer, first set the entry address (address E) of the area 62c in the tone request file pointer, write into the area 62c based on this tone request file pointer, and then write the address pointer to the tone request file pointer. The contents are advanced to the entry address (address F) of the area 62d, and written into the area 62d based on this entry address (address F), and so on. However, these treatments are quite common in this industry, and therefore, description of these treatment steps is omitted in this specification. (5) Key on/off detection routine I2 This interrupt processing routine I2 uses the interrupt signal INTR
1 is generated at an interval of several milliseconds, and detects the on/off state of each key switch of the keyboard circuit 11 at the time when the interrupt signal INTR1 is generated. That is, in the interrupt control circuit 16, the interrupt signal
When INTR1 occurs, the address decoder 34
A switch address signal is supplied to the switch address signal, and on/off information of the key switch is read into the register 22 via the buffer bus driver 35 and the data bus 30 based on this switch address signal. New keyboard status table (see below)
(abbreviated as NKS) 70 is created. In the NKS 70 shown in this figure, "1" indicates that the key corresponding to this "1" is pressed down at the time when the interrupt signal INTR1 is generated. That is, in this example, currently the first octave's C note, E note, the second octave's D# note, and the third note.
This indicates that keys corresponding to the F# note of the octave and the A note of the fourth octave are being pressed. Note that in this figure, no mark indicates "0". (6) Pressed key position/change detection routine R4 When the tone lever processing routine R3 is completed, the program advances to this routine R4. This routine R4 detects whether the current state of the NKS 70 is different from the state of the NKS 70 at the time when this routine R4 was executed last time. The above-mentioned detection is performed by comparing the contents of 71 (hereinafter abbreviated as OKS). In this case, OKS71 indicates the state of the key switch at the time when this routine R4 was executed last time, and is created in routine R6, which will be described later. If the result of executing this routine R4 is "YES" (change), the program proceeds to routine R5, and if "NO" (no change), the program returns to routine R2. (7) Key-on request file creation routine R5 This routine R5 detects a key that should generate a new musical tone, in other words, a newly pressed key, and based on this detection result, creates a key-on request as shown in FIG. file (hereinafter referred to as ON・
RQ) 72 is created on the RAM 21. In this routine R5, first OKS7
An exclusive OR is taken between each bit of 1 and each corresponding bit of NKS 70 (OKSNKS). As a result, only the bit corresponding to the key switch whose state has changed becomes "1". Next, the above calculation result and each bit of NKS 70 are ANDed. [(NKS∧
(OKSNKS)]. As a result, only the bit whose key switch is newly turned on becomes "1".
Finally, the result of the AND operation above and ON・RQ7
The OR between each bit of 2 is taken, and the result is newly written to ON.RQ72. ON・RQ =ON・RQ∨{NKS∧(OKSNKS)}
...(1) Here, we will explain the meaning of the last OR operation. In the key-on channel assignment routine R7, which will be explained later, this electronic organ executes a process of assigning a key to generate a musical tone to each channel of WG25 based on the ON-RQ72 created here, and this assignment process is completed. Sequentially ON/RQ72 “1” at the time
It is designed to erase bits. By the way, at the time when this routine R5 is executed, when the routine R5 was executed last time, ON・RQ72
Not all "1" bits written in the channel are necessarily erased, and "1" bits may remain that should be subjected to channel allocation processing. The final OR operation is performed to leave unprocessed "1" bits on the ON.RQ 72. In FIG. 6, the circle marked on the first octave C note indicates this processing bit. (8) Key-off request file creation routine R6 This routine R6 detects a key that should stop generating musical tones, that is, a key that has been released, and based on this detection result, creates a key-off request file (hereinafter referred to as (abbreviated as OF・RQ)
73 on the RAM 21. In this routine R6, first, like routine R5, CKS71, NKS70, OF・RQ
Between each corresponding bit of 3, OF・RQ =OF・RQ∨{∧(OKSNKS)}
...(2) The following calculation is performed, and the result of this calculation is OF・RQ7
Written within 3. Note that in this formula,
NKS means the inversion of each bit of NKS70. Furthermore, the meaning of the OR operation is the same as in routine R5. Next, the contents of NKS70 are OK.
71. That is, by this process, the table used as NKS this time will be used as OKS7 in the next process of routines R4 to R6.
It will be used as 1. (9) Key-on channel assignment routine R7 This routine R7 is based on ON-RQ72 created in routine R5 and tone request file 6 created in routine R3.
Based on WG25, the frequency data and tone data corresponding to the newly pressed key are
This process executes the process of assigning to an empty channel. The execution process of this routine R7 will be explained below with reference to FIGS. 7 to 9. In addition, ON・RQ72 in FIG. 7 is ON・RQ in FIG.
It is the same as 72. When the program enters this routine R7, it first proceeds to step S1 shown in FIG.
A "1" bit on RQ72 is detected. This detection first shifts the slot corresponding to the first octave of ON/RQ 72 to the left (in Fig. 7) one bit at a time, and then shifts the slot corresponding to the first octave to the left (in Fig.
This is done by shifting the slots corresponding to the octave one bit at a time to the left, and then sequentially shifting the slots corresponding to the third and fourth octaves to the left, and when a "1" bit is detected ( Step S2) The program proceeds to step S3. In the example shown in FIG. 7, the "1" bit of the first octave C note is first detected, so at this point the program proceeds to step S3. In step S3,
Frequency data corresponding to the first octave C note is read from the frequency table written in the ROM 20 and transferred to the frequency data area 75 (preset) in the register 22. Next, when proceeding to step S4, the RAM
Busy key table 7 prepared on 21
The entry address (address X) of the slot 76a corresponding to the first octave C note of No. 6 is calculated, and the calculated entry address (address X) is temporarily stored in the register 22. Note that the busy key table 76 is
It is prepared in the RAM 21 and has 48 slots 76a, which are provided corresponding to each key.
It consists of 76b, 76c... next,
When proceeding to step S5, the channel assignment table (hereinafter abbreviated as CAT) 77
Detection of empty areas within is performed. here,
CAT77 will be explained. This CAT77 is prepared in advance in RAM21,
Consists of 15 areas, E 1 , E 2 ...E 15 ,
Furthermore, these areas E 1 , E 2 . . . E 15 each have three slots a1, b1, c1, and 16 bits.
It is composed of a2, b2, c2, . This CAT77 is a table that shows which channel the musical tones currently being produced (including musical tones in decay state) are assigned to.As explained below, the pronunciation of musical tones corresponding to a certain key is assigned. and each area E 1 , E 2 ,...E 15
headers, i.e. slots a1, a2, a
3 Busy key table 7 representing the corresponding key
6 entry addresses are registered, and used channels are registered in slots b1, c1, slots b2, c2, . . . . In this case, each bit in slots b and c is
Compatible with 32 channels of WG25,
Furthermore, it corresponds to the channel to which the pronunciation is assigned, and "1" is registered in the bit corresponding to the channel to which the pronunciation is further assigned. Now, when the program advances to step S5, an empty area is detected by searching the header of each area of CAT77. For example, if area E 2 is detected as an empty area, the entry address (address Y) of area E 2 is stored in the register 22, and the process proceeds to step S6. step
At S6, the number of "0" bits in the busy status register 78 provided in the register 22 is calculated. This busy status register 78 is a 32-bit register, each bit corresponding to 32 channels, and "1" is registered in the bit corresponding to the channel in use. Therefore, this step S6
The number of "0" bits calculated by is equal to the current number of empty channels. When the number of “0” bits (the number of empty channels) of the busy status register 78 is calculated in step S6,
The program proceeds to step S7, where the calculated number of "0" bits and the number of tone data registered in the tone request file 62 (see FIG. 4) (that is, the number stored in the header 62a of the tone request file 62) are calculated. number)
are compared. In this case, if the number of "0" bits is greater than or equal to the number of tone data (YES), the program proceeds to step S8. In step S8, the channel number of the empty channel is detected by searching for the "0" bit in the busy status register 78. In the example of FIG. 7, the second bit of slot 78a is first searched for "0", thereby detecting that the second channel is an empty channel. Note that in the busy status register 78, the first to the first slots of the slot 78a are
The 16 bits correspond to the 1st to 16th channels, respectively, and the 1st to 16th bits of slot 78b correspond to the 17th to 32nd channels, respectively. When an empty channel of the second channel is detected,
The program advances to step S9, and the channel number "2" is stored in the channel register 79. Next, when proceeding to step S10, the tone request file 62 is used.
Tone data in ROM 20 is transferred to tone data area 80 in register 22. That is, to explain the example of FIG. 4, first, the address D stored in the area 62c is read out into the register group 50, and then, based on this address D, the tone data i in the ROM 20 is read out.
+2 is read and transferred to tone data area 80. Next, the volume coefficient in area 62c is transferred to area 80. The program then proceeds to step S11, where the tone data is modified (timbre processing). This modification of the tone data is performed based on the information for timbre processing stored in the area 62b of the tone request file 62, and by this modification, the tone data is subjected to timbre processing (for example, addition of vibrato). Ru. The program then proceeds to step S12. In step S12, the entry address of the area corresponding to the second channel of the data port 18 (FIG. 2) is calculated based on the channel number of the empty channel ("2" in this case) stored in the channel register 79. Ru. Next, proceeding to step S13 (FIG. 9), the frequency data in the frequency data area 75, the tone data in the tone data area 80, and the volume coefficient are output to the corresponding area of the data boat 18 based on the entry address. .
Next, when proceeding to step S14, first, the bit corresponding to the second channel of the 32-bit start command register 81 provided in the register 22 (the second bit of the slot 81a) is set to "1".
The contents of this start command register 81 are then transferred to the data boat 18. In this way, the frequency daughter, tone data, volume coefficient, and start command transferred to the data port 18 are supplied to the corresponding channel (second channel) of the WG 25, so that the corresponding channel (second channel) of the WG 25 is A musical tone signal is formed based on the frequency data, tone data, etc. supplied from the data port 18 in the second channel. The program then steps
Proceeding to S15, based on the channel number "2" stored in the channel register 79, "1" is written in the second bit of slot b2 in area E2 detected in step S5.
(Note that the second bit of this slot b2 is the second
Channel compatible. ) then step
Proceeding to S16, "1" is written into the second bit of the slot 78a of the busy status register 78 based on the channel number "2" in the channel register 79. And step S17
Proceed to. At step S17, it is determined whether all the tone data registered in the tone request file 62 have been allocated to channels.
In this case, since only the tone data registered in area 62c (FIG. 4) has been allocated, the determination result is "NO" and the program returns to step S8. and,
The process of steps S8 to S16 described above is repeated again. That is, the fourth channel is detected as an empty channel in step S8, the channel number "4" is stored in the channel register 79 in step S9, and the fourth channel is detected as an empty channel in step S9.
, the tone data i is sent from the tone data bank 65 based on the address B written in the area 62d of the tone request file 62.
is transferred to the read tone data area 80, the volume coefficient in the area 62d is transferred to the tone data area 80, and the tone data is modified in step S11.
In step S12, the area entry address corresponding to the fourth channel of the data port 18 is calculated, and in step S13, the frequency data in the frequency data area 75 and the tone data and volume coefficient in the tone data area 80 are output to the data port 18. In step S14, "1" is set in the bit corresponding to the fourth channel of the start command register 81, and as a result, the fourth channel of WG 25 is started.
In steps S15 and S16, "1" is written in the fourth bit of slot b2 of the CAT 77 and the fourth bit of slot 78a of the busy status register 78, and then the process advances to step S17. In step S17, it is determined again whether all tone data has been allocated, but in this case, the tone data corresponding to address C stored in area 62e of tone request file 62 has not yet been allocated. Since there is no,
The judgment result is "NO", so the program returns to step S8 again and continues from step S8 to step S8.
The process of S16 is executed again. When steps S8 to S16 are executed, tone data i+1 corresponding to address C stored in area 62e of tone request file 62 is assigned to the fifth channel, and WG2
The 5th channel of 5 has started, and CAT
77 slot b2 and the fifth bit of slot 78a of busy status register 78 are respectively written with "1". In this way, the channel assignment of the first octave/C note is completed, and the speaker 29 outputs three types of tones at the pitch of the C note of the first octave and corresponding to the tone data i, i+1, and i+2, respectively. musical tones are sounded simultaneously. Also, at this point, busy status register 7
8. “1” is registered in the bits corresponding to the 2nd, 4th, and 5th channels of the start command register 81, and also corresponds to the 2nd, 4th, and 5th channels of area E 2 of CAT77. "1" is also registered in the bit. The program then proceeds to step S17, but the determination result at this step is naturally "YES", so the program proceeds to step S18. In this step S18,
Slot 7 of the busy key table 76 corresponding to the first octave/C note that has been assigned
The entry address (address X) of 6a is
CAT77 area E 2 header (i.e.
is written to slot a2). Next, when the process advances to step S19, the entry address (address Y) of area E2 is stored in the busy key table 7.
6 slot 76a. and,
Proceeding to step S20, the "1" bit corresponding to the first octave C note of ON.RQ 72 is set to "0". In this way, the first octave
All assignment processing based on the C sound is completed. Then the program returns to step S1 again and
A "1" bit on ON.RQ 72 is detected. In this case, in the example shown in FIG. 7, the "1" bit corresponding to the second octave D# tone is detected (step S2), and the program therefore proceeds to step S3, and the following is completely different from the case described above. A similar allocation process is performed. Then, when the second octave/D# note assignment process is completed, the "1" bit on the ON/RQ72 is detected again, and the next detected "1" bit (third octave/F# note) is A corresponding allocation process is performed. In this way, ON・RQ72
When all the processing of the above "1" bit is completed, the determination result in step S2 becomes "NO", and all the processing in routine R7 is completed. Next, step S21 in FIG. 8 will be explained. In the above explanation, the steps
The explanation has been given assuming that the judgment result in S7 is "YES", but this may also be "NO". That is, the busy status register 78
If the number of "0" bits in the tone request file 62 is smaller than the number registered in the header 62a of the tone request file 62, in other words, even if tone data is to be assigned to a channel, the number of empty channels is small and cannot be assigned. ,
The determination result at step S7 is "NO", and the program advances to step S21. This step
In S21, the channel number of the channel in the decay state is loaded into the dump command register 85 (see FIG. 10), which will be described later, and the contents of this dump command register 85 are output to the data boat 18, so that the WG 25 enters the decay state. This will force the channel to stop. Then, the routine exits from R7. When such processing is performed, the corresponding "1" bit of the busy status register 78 is set to "0" in the WG termination processing routine I3, thereby increasing the number of empty channels.
It becomes possible to allocate tone data. The meaning of this processing is that the sounding of the musical tone corresponding to the newly pressed key is given priority over the sounding of the musical tone in the decay state. Also,
To perform this process, a decay status register 82 provided within the register 22 and storing the channel number of the decay state is utilized. Next, the sixth bit "1" (marked with a circle) of slot b2 of CAT77 will be explained. The sixth bit "1" is not assigned when the first octave/C key was pressed this time, but was assigned when the same key was pressed last time. In other words, when the previously pressed key is released, the generation of the musical tone signal stops after a predetermined decay time in each channel to which that key is assigned (note that the generation of musical tone signals does not necessarily stop at the same time for each channel). (No), the "1" bit in CAT77 corresponding to the channel where musical tone signal generation has stopped is set to "0", but if the decay time of a certain allocated channel is long, the time when the same key is pressed this time in that channel is set to "0". The previous musical tone signal may continue to be generated until then. In this case, when the same key is pressed anew, the entry address (address Y) of area E 2 of the CAT 77 is registered in slot 76 a of the busy key table 76, and a musical tone signal is not generated in area E 2 . "1" remains in the bit (sixth bit of slot b2) corresponding to the continuing channel. Therefore, the channel assignment for the key pressed this time is registered in area E 2 ,
Furthermore, the sixth bit of slot b2, which is "1", is also left as is in the same area E2 . (For processing when the generation of musical tone signals stops, please refer to interrupt processing routine I3 described later.) In this embodiment, a channel is started for each tone data in the tone request file 62. However, it is also possible to start all channels at the same time. (10) Key-off channel management routine R8 This routine R8 consists of the OF・RQ73 created in routine R6, the busy key table 76 created in routine R7,
Based on CAT77, the musical tone corresponding to the released key (key whose pressed state is released) is erased. The execution process of this routine R6 will be explained below with reference to FIGS. 10 and 11. Note that OF·RQ 73 in FIG. 10 is the same as OF·RQ 73 in FIG. 6. When the program enters this routine R8, it first proceeds to step S1 shown in FIG.
A "1" bit on RQ73 is detected. This detection is based on ON・RQ72 mentioned above.
Detection of the upper “1” bit (step in Figure 8)
This is done in exactly the same way as in case S1). and,
In the example shown in FIG. 10, the "1" bit of the first octave A# note is first detected (step S2), and the program proceeds to step S3. In step S3, based on the position of the detected "1" bit (position on the OF/RQ 73), the entry address (address V) of the slot 76m corresponding to the first octave/A# note of the busy key table 76 is determined. ) is calculated. Next, in step S4, the contents of the slot 76m are read out based on the calculated entry address (address V) and transferred into the register group 50. In this case, slot 76
The content of m is the entry address (assumed to be address U) of area En, assuming that the channel assignment for the first octave/A# note is registered in area En of CAT77. Next, in step S5, the contents of slots bn and cn of area En are read out based on the contents of slot 76m (address U), and loaded into either Decay command register 84 or dump command register 85. Note that which one is loaded is controlled by a changeover switch provided in the operating section of this electronic organ. Then, when proceeding to step S6, the contents of the register (84 or 85) into which the contents of area En were loaded in step S5 are output to the data port 18, thereby producing the musical tone corresponding to the A# note in the first octave. The generation of musical tone signals of the channels to which are assigned (in the example shown in FIG. 10, the first, seventh, and eighth channels) is stopped. In this case, if the musical tone is loaded into the decay command register 84 in step S5, the musical tone is gradually erased as it decays, and if it is loaded into the dump command register 85, the musical tone is erased immediately. Next, when proceeding to step S7, the first octave A on OF RQ73
#The “1” bit of the note is erased and the step starts again.
Return to S1. Then, in step S1, the third
When the “1” bit of the octave/F note is detected, the judgment result in step S2 becomes “YES”.
As in the case described above, steps S3 to S6 are executed, and the musical tone signal of the channel to which the third octave/F note is assigned is stopped or put into a decay state. And step
At S7, the "1" bit of the third octave F note is deleted, and the process returns to step S1. In this way, when all the "1" bits on the OF.RQ 73 are processed, the determination result at step S2 becomes "NO" and the processing in this routine R8 is completed. (11) WG end processing routine I3 This interrupt processing routine I3 is executed when the generation of musical tone signals in the channel of WG25 has completely stopped (when the decay state has ended).
The main purpose is to set the bit corresponding to the channel in the busy status register 78 (Figs. 7 and 12) to "0". To make the same channel an empty channel, it is possible to newly assign the generation of a musical tone corresponding to another key. In other words, in response to one pressed key, multiple channels (see FIGS. 4 and 7 above)
Musical sound signals generated in three channels (in the example shown in the figure) do not necessarily stop at the same timing; for example, in the case of percussive sounds, they may stop even though a key is pressed. Sometimes. In such a case, if the channel whose musical tone generation has already stopped is made to wait until all musical tone signals of other channels corresponding to the same key have stopped, then
Channel usage becomes very inefficient. Taking these points into consideration, this electronic organ is provided with this interrupt processing routine I3 so that the channel in which musical tone generation has stopped can be immediately released to other keys. The execution process of this interrupt processing routine I3 will be explained below with reference to FIGS. 12 and 13. In the following explanation, it is assumed that the generation of musical tone signals has now stopped in the seventh channel, and that this seventh channel is registered in area E6 of the CAT77. The generation of the musical tone signal stops in the seventh channel, and as a result, the interrupt signal INTR is sent from WG25.
3 occurs, the program first proceeds to step S1 shown in FIG. Then, in this step S1, the seventh bit (corresponding to the seventh channel) of the slot 78a of the busy status register 78 is set to "0", and the process then proceeds to step S2. This step S2 and the next step S3 are the 7th step registered in CAT77.
Erase a channel, specifically an area
Slot b6 corresponding to the 7th channel of E 6
This is for erasing the 7th bit of "1". The reason why this process must be performed is as follows. For example, the musical tone signal that has been generated until now in the seventh channel is a percussive musical tone signal, and at the time when the generation of the musical tone signal has stopped, the key corresponding to the musical tone signal (referred to as the first key) is still Assume that the button remains pressed down. Then, when the musical tone signal stops, the busy status register 78
By setting the bit corresponding to the seventh channel to "0" (step S1), the musical tone corresponding to the newly pressed key (referred to as the next key) is generated before the first key is released. There is a possibility that it will be assigned to this seventh channel. If the above-mentioned process is not performed in such a case, when the first key is released, the contents of the CAT77 area corresponding to the first key are transferred to, for example, the Decay command register 84, and
Furthermore, the contents of this Decay command register 84 are output to the data port 18, and the seventh key is assigned to generate a musical tone corresponding to the next key.
This will also cause the channel to enter the day-care state. In order to eliminate such inconvenience, processing in steps S2 and S3 is required. Now, when the program advances to step S2, it is determined whether the header (slot a1) of area E1 of CAT77 is "0". In this case, for example, if the answer is "NO" (not "0"), the program proceeds to step S3. In step S3, first slot b1 in area E1 ,
Each bit of c1 and busy status register 7
A logical AND is performed with the corresponding bits of
stored within. As a result, if "1" is found in the seventh bit of slot b1, that "1" is erased. Note that in this example, the area
Since the 7th bit of slot b6 in area E6 has a "1", there is no "1" in the 7th bit of slot b1 in area E6 . Therefore, the result of the above AND operation is the same as the content of area E1 before the operation. When the execution of step S3 is finished, step S4
Proceed to. In this step S4, area E 1
It is determined whether the contents of (the contents of slots b1 and c1) are all "0" or not. In this case, the area
Since " 1 " remains in E1, the judgment result is "NO" and the program proceeds to step S6. In this step S6, the above-mentioned step S3
It is determined whether the processing in step 1 has been performed in all areas (E 1 to E 15 ) whose headers are not "0". In this case, since only area E 1 has been processed, the judgment result is "NO" and the program returns to step S2.
Return to In step S2, it is determined whether the header (slot a2) of area E2 is "0" or not. In this case, if the header is set to "0"("YES"), the program proceeds to step S6. The judgment result at step S6 is "NO", and the program proceeds to step S2 again.
The header in Area E 3 can be examined. Assume that the areas E 1 , E 2 , . . . are examined in this way, and the processing at step S3 is performed, and the header (slot a6) of area E 6 is examined at step S2. In this case, the determination result in step S2 is "NO" and the process advances to step S3. Then, in this step S3, the busy status register 7
By logically ANDing the contents of 8 and the contents of slots b6 and c6 of area E6 , the seventh bit "1" of slot b6 is erased (set to "0"). Next, when the program advances to step S4, it is determined whether or not the contents of slots b6 and c6 in area E6 are all "0". In this case, if "1" remains, the program advances to step S6. proceed. In this way, when the processing for all areas E1 to E15 is completed, the program exits from this interrupt processing routine I3. Next, for example, the 8th channel has just ended,
Also, this 8th channel is the CAT77 area.
A case will be described in which the decay time of the musical tone signal registered in channel E 7 and generated in the eighth channel is relatively long. When the interrupt signal INTR3 is generated and the program proceeds to step S1, "1" in the eighth bit (corresponding to the eighth channel) of the slot 78a of the busy status register 78 is erased.
Then, in the same way as above, area E 1
~ E6 is processed, the 8th bit of slot b7 in area E7 is set to “1” in step S3.
is erased, and the process advances to step S4. Here, it is assumed that because the decay time of the musical tone signal of the eighth channel was relatively long, all other "1" bits in area E7 had been erased by the time the eighth channel ended. In this case, by executing step S3, the determination result in step S4 becomes "YES", and the program proceeds to step S5. Then, in this step S5,
First, based on the entry address of the busy key table 76 (see FIG. 10) stored in the header of area E 7 , the busy key table 7 specified by the entry address is
The contents of slot 6 are erased, and then the area
E 7 header is deleted. In other words, the connection between the area and the busy key table is released.
Through this process, area E7 is released for other keys. For reference, the ROMs explained so far
20, RAM 21 The contents of the register 22 are summarized in FIG. 14. Finally, the encoder switch used as the tone lever 38 shown in FIG. 2 will be explained using the principle diagram shown in FIG. 15. On the substrate 38a, there is a contact point 38b in which a conductor (indicated by diagonal lines in the figure) is formed continuously between the four regions a, b, c, and d shown in the figure, a conductor is formed in the regions a and c, and a conductor is formed in the region b. , a contact 38c in which an insulator (shown as a white part in the figure) is formed, and a contact 38d in which a conductor is formed in areas a and b and an insulator is formed in areas c and d are provided, respectively. Each area a, b on each of these contact points 38b, 38c, 38d,
A contact slider 38 made of a conductor can be slid in the direction of the arrow e or f in the figure while contacting these contacts 38b to 38d on c and d.
e is arranged. In addition, each of the contacts 38b,
38c and 38d are the corresponding terminals 38
It is connected to f, 38g, and 38h. Further, a scan strobe signal is applied to the terminal 38f. On the other hand, the terminals 38g and 38h are connected to the cathodes of the corresponding diodes D 0 and D 1 , respectively, and the anodes of the diodes D 0 and D 1 are connected to the corresponding buffer amplifiers B 0 and D 1 , respectively.
Connected to the input end of B1 . Furthermore, the anodes of the diodes D 0 and D 1 are also connected to the other ends of the resistors R 0 and R 1 whose one end is connected to the power supply +Vcc, and the output terminals of the buffer amplifiers B 0 and B 1 are connected to the signal. BIT<0> or BIT<1>
is configured so that it is output. The scan strobe signal is a signal for scanning the encoder switch described above, and in this embodiment is output from the address decoder 34 of FIG. 2 when the switch address signal is supplied to the address decoder 34 of FIG. Since the encoder switch is constructed as described above, for example, when the encoder switch shown in FIG. 15 is used as the tone lever 1 in FIG. It is set at the position of area d shown by. In other words, since the contacts 38c and 38d are electrically disconnected from the contact 38b in each region d, even if a scan strobe signal is input to the terminal 38f, the anodes of the diodes D 0 and D 1 are at the voltage level of the power supply +Vcc. Therefore, the output signal BIT<0> of each buffer amplifier B0 , B1 ,
Both output levels of BIT<1> are binary logic level "0". Therefore, the tone lever 1 is in the request line with a volume of 0. Although the encoder switch described above is used for changing the volume in four stages using a 2-bit binary code, it can easily be used for changing the volume in multiple stages using a binary code such as 3-bit or 4-bit. Furthermore, as an encoder switch, not only binary code but also other codes such as Gray code can be used. As described in detail above, according to the present invention, each element of the keyboard section, tone setting operator section, and musical tone generating section is connected to the control means by program control via a common information transmission path, and the control means is controlled. The means detects the operating states of the keyboard section and the tone setting operator section, respectively, and supplies a predetermined data signal determining the frequency and waveform to the musical tone generating section based on this detection.
Compared to conventional electronic musical instruments, it has the advantage of being simpler in configuration, and when converting the number of keys or tone levers, it can be handled simply by changing the program. This has the advantage that the number of can be easily changed.
Furthermore, since the present invention has the first means and the second means separately, it can be operated efficiently according to the type of operator (key, tone lever, etc.) and the general operation frequency of each operator. This has the effect of being able to detect the state.
第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の記憶部
(マイクロプログラムメモリ)。
FIG. 1 is a diagram showing a schematic configuration of a conventional digital electronic organ, FIGS. 2 to 14 are diagrams showing an embodiment of an electronic organ according to the present invention, and FIG. 2 is a diagram showing the overall configuration. 3A is a flowchart showing the flow of the program, FIG. 3B is a diagram showing the interrupt processing routine, and FIG. , the memory contents of the RAM 21 and the register 22, FIG. 5 is a flowchart of the above routine R3, and FIG. 6 is the key-on request file creation routine R shown in FIG. 3.
5. A diagram showing the stored contents of the RAM 21 and register 22 that are involved when executing the key-off request file creation routine R6. FIG. 7 shows the RAM 21 that is involved when executing the key-on channel assignment routine R7 shown in FIG. 3. FIGS. 8 and 9 are diagrams showing the contents of the register 22, and FIGS. 8 and 9 are flowcharts of the routine R7, and FIG.
21, a diagram showing the contents of the register 22, FIG. 11 is a flowchart of the above routine R8, and FIG. 12 is a diagram showing the contents of the RAM 21 and register 22 related to the execution of the WG termination processing routine I3 shown in FIG. 3. , FIG. 13 is a flowchart of the above routine I3, and FIG. 14 is a flowchart of the ROM 20, RAM 21,
FIG. 15 is a diagram illustrating the contents of the register 22 and data port 18, and is a diagram illustrating the configuration of an encoder switch used as a tone lever. 12... Assigner, 13... Musical sound generation section, 14
...control section, 15 ... calculation section, 19 ... calculation control section, 23 ... first storage section, 30 ... data bus, 37 ... address bus, 38 ... tone lever, 39 ... keyboard key , 45...Second storage unit (microprogram memory).
Claims (1)
する音色設定操作子部と、 それぞれに与えられる周波数および波形に関す
るデータに基づいて、当該周波数および波形に対
応する楽音信号を発生する複数の楽音発生チヤン
ネルを有する楽音発生部と、 波形を定めるデータを記憶するデータメモリ
と、 前記音色設定操作子部の音色設定操作子に割り
当てる前記データメモリに記憶された波形を定め
るデータを指示するインデツクス情報を記憶する
音色設定記憶手段と、 前記音色設定記憶手段、前記データメモリ、前
記楽音発生部、前記鍵盤部および前記音色設定操
作子部がそれぞれ接続される共通の情報伝送路
と、 前記共通の情報伝送路に接続され、プログラム
制御により動作する制御手段と、 を備え、かつ 前記制御手段は、 前記共通の情報伝送路を介して前記鍵盤部にお
ける各鍵を走査して各鍵の状態を示す信号を取り
込み押圧された鍵を検出する第1の手段と、 前記共通の情報伝送路を介して前記音色設定操
作子部における音色設定操作子を走査して音色設
定操作子の操作状態を検出する第2の手段と、 前記第1および第2の手段の検出結果に基づ
き、前記各楽音発生チヤンネルで発生すべき楽音
信号を指定するための前記周波数および波形に関
するデータを該各楽音発生チヤンネル別に前記共
通の情報伝送路を介して前記楽音発生部に供給す
るものであつて、前記第2の手段によつて検出さ
れる操作状態に応じて参照される前記音色設定記
憶手段に記憶されたインデツクス情報に基づき前
記波形を定めるデータを前記データメモリから読
み出すことにより該波形に関するデータを形成す
る第3の手段とを具備し、 これによつて、前記鍵盤部で押圧された鍵およ
び操作された音色設定操作子に対応した周波数お
よび音色の楽音を発生するようにしたことを特徴
とする電子楽器。[Claims] 1. A keyboard having a plurality of keys; a timbre setting operator section having a timbre setting operator for selecting and setting a timbre; and a musical tone generator having a plurality of musical tone generation channels that generate musical tone signals corresponding to the waveforms; a data memory that stores data defining the waveform; and the data memory that is assigned to the tone setting operator of the tone setting operator section. A timbre setting storage means for storing index information indicative of data defining the stored waveform, and the timbre setting storage means, the data memory, the musical tone generation section, the keyboard section, and the timbre setting operator section are respectively connected. a common information transmission path; and a control means that is connected to the common information transmission path and operates under program control; a first means for scanning a key to capture a signal indicating the state of each key and detecting a pressed key; a second means for detecting the operation state of the tone setting controller; and a second means for detecting the operating state of the tone setting operator; Data regarding the waveform is supplied to the musical tone generating section via the common information transmission path for each musical tone generation channel, and is referenced according to the operating state detected by the second means. and third means for forming data regarding the waveform by reading data defining the waveform from the data memory based on the index information stored in the tone color setting storage means, whereby the keyboard section An electronic musical instrument, characterized in that it generates a musical tone with a frequency and tone corresponding to a key pressed and a tone setting operator operated.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58071862A JPS58214198A (en) | 1983-04-23 | 1983-04-23 | Electronic musical instrument |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58071862A JPS58214198A (en) | 1983-04-23 | 1983-04-23 | Electronic musical instrument |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS58214198A JPS58214198A (en) | 1983-12-13 |
| JPH0474718B2 true JPH0474718B2 (en) | 1992-11-26 |
Family
ID=13472749
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58071862A Granted JPS58214198A (en) | 1983-04-23 | 1983-04-23 | Electronic musical instrument |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS58214198A (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6113295A (en) * | 1984-06-29 | 1986-01-21 | カシオ計算機株式会社 | Electronic musical instrument |
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/en active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS58214198A (en) | 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 (en) | Assigner for electronic musical instruments | |
| JP2629891B2 (en) | Music signal generator | |
| JPH0474718B2 (en) | ||
| JPS6113599B2 (en) | ||
| JPS6252317B2 (en) | ||
| JPS6339074B2 (en) | ||
| JPS6339075B2 (en) | ||
| JPS6339073B2 (en) | ||
| JPS6252316B2 (en) | ||
| JPS62208099A (en) | Musical sound generator | |
| JPH0572596B2 (en) | ||
| JPH11202866A (en) | Method and device for musical sound generation | |
| JPS61173297A (en) | Electronic musical instrument | |
| JP2900457B2 (en) | Electronic musical instrument | |
| JP3278857B2 (en) | Musical tone generator | |
| JPS61175692A (en) | Electronic musical instrument | |
| JPH0584919B2 (en) | ||
| JPH0515279B2 (en) | ||
| JP2513014B2 (en) | Electronic musical instrument automatic performance device | |
| JPH0631981B2 (en) | Automatic rhythm playing device |