JPS6339073B2 - - Google Patents

Info

Publication number
JPS6339073B2
JPS6339073B2 JP59029910A JP2991084A JPS6339073B2 JP S6339073 B2 JPS6339073 B2 JP S6339073B2 JP 59029910 A JP59029910 A JP 59029910A JP 2991084 A JP2991084 A JP 2991084A JP S6339073 B2 JPS6339073 B2 JP S6339073B2
Authority
JP
Japan
Prior art keywords
key
tone
channel
data
key switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP59029910A
Other languages
English (en)
Other versions
JPS60149090A (ja
Inventor
Hirokazu Kato
Akinori Endo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP59029910A priority Critical patent/JPS60149090A/ja
Publication of JPS60149090A publication Critical patent/JPS60149090A/ja
Publication of JPS6339073B2 publication Critical patent/JPS6339073B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
この発明は、プログラム制御を適用した電子楽
器に関する。 従来のデイジタル式電子楽器においては、鍵操
作検出用のキースイツチの走査をハードウエアに
よる走査回路によつて行うとともに、押鍵操作さ
れた鍵を楽音発生装置に設けられた複数の楽音発
生用のチヤンネルに割り当てるチヤンネル割当て
をハードウエアによる割当て回路によつて行つて
おり、このため、鍵数やチヤンネル数が異なる機
種毎に、別固の走査回路および割当て回路を作成
しなければならないという欠点があつた。また、
上記走査回路は各キースイツチを1個づつ順次走
査するようになつており、このため、走査に時間
がかかる欠点があつた。 そこでこの発明は、簡単な構成で、機種(鍵
数)が異なつた場合においても簡単な変更で容易
に対処することができ、しかもキースイツチの走
査を効率よく行うことができる電子楽器を提供す
るもので、 鍵情報を処理するためのプログラムを記憶した
プログラムメモリと、 多数の鍵スイツチを、所定数の鍵スイツチを1
つのグループとして複数の鍵スイツチグループに
分割した鍵スイツチ部と、 上記各鍵スイツチのオン/オフ情報を記憶する
書込み可能なメモリからなる記憶部と、 演算処理部と、 それぞれ割り当てられた鍵に対応する楽音を発
生する複数の楽音発生用のチヤンネルを有する楽
音発生手段と、 上記プログラムメモリと上記鍵スイツチ部と上
記記憶部と上記演算処理部と上記楽音発生手段が
接続されたバスラインと を備え、 上記演算処理部は、上記プログラムメモリに記
憶されたプログラムの内容に従つて、 (a) 上記複数の各鍵スイツチグループを順次指定
する情報を上記バスラインを介して上記鍵スイ
ツチ部に供給するとともに、該情報により指定
された鍵スイツチグループ内に属する各鍵スイ
ツチのオン/オフ情報を上記バスラインを介し
て取り込む第1の処理、 (b) 各鍵スイツチごとに上記第1の処理で取り込
んだオン/オフ情報と上記記憶部に記憶されて
いるオン/オフ情報とを比較して各鍵スイツチ
の操作状態の変化をオンイベント、オフイベン
トとして検出する第2の処理、 (c) 上記第1の処理で取り込んだ各鍵スイツチの
オン/オフ情報を上記記憶部に書き込むことに
より該記憶部の記憶情報を更新する第3の処理
と、 (d) 上記第2の処理でオンイベントが検出された
鍵スイツチに対応する鍵を上記複数のチヤンネ
ルのうちいずれかのチヤンネルに割り当て、上
記バスラインを介して上記楽音発生手段の該割
当てチヤンネルに対して該割当てた鍵に対応す
る楽音を発生するための楽音情報を供給すると
ともに、上記第2の処理でオフイベントが検出
された鍵スイツチに対応する鍵が割り当てられ
ているチヤンネルを検出し、上記バスラインを
介して上記楽音発生手段の該検出チヤンネルに
対して鍵が離鍵されたことを示す情報を供給す
る第4の処理、 を実行することを特徴とするものである。 以下、図面を参照しこの発明の実施例について
説明する。 第1図は、この発明による電子オルガン(電子
楽器)の構成を示すブロツク図であり、この図に
示す電子オルガンは大きく分けると鍵盤回路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は通常マイ
クロコンピユータを用いて構成される。また、上
述したエンベロープとは楽音信号の包絡線のこと
である。すなわち、通常の楽音信号は第1図にお
いて符号Bにて示すように、立上り状態(アタツ
ク状態)B1、持続状態B2、立下り状態(デイ
ケイ状態)B3の3状態からなるエンベロープを
有している。 この電子オルガンはプログラムコントロールで
動作するもので、そのプログラムはROM20に
記憶されている処理プログラムと制御部14内の
マイクロプログラムメモリ45に記憶されている
各種マイクロプログラムから構成される。また、
WG25において楽音信号(デジタル信号)を形
成するために必要な各種トーンデータおよび周波
数データはROM20に記憶されている。そし
て、上記処理プログラムおよびマイクロプログラ
ムに基づいて、次の様に動作するものである。す
なわち、キーが押下されると、まず鍵盤回路11
が押下されたキーに対応するキースイツチ情報を
データバス30を介してアサイナ12に供給す
る。アサイナ12は供給されたキースイツチ情報
に対応する周波数データおよびトーンデータを
ROM20から読出し、読出したデータをWG2
5の複数のチヤンネルに対して割当てる。WG2
5の各チヤンネルは当該チヤンネルに割当てられ
たデータおよびエンベロープジエネレータ26か
ら供給されるエンベロープ情報に基づいて楽音信
号(デジタル信号)を形成する。そして、これら
各チヤンネルで形成された楽音信号がD/A変換
器27においてアナログ信号に変換され、増幅器
28を介してスピーカ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
つのトーンレバーに対応する)、また鍵盤キー3
9の各キースイツチがマトリツクス回路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の各記憶内容を第13図に示す。 次に、第1図に示す電子オルガンの動作を第2
図に示す流れ図に基づいて説明する。なお、以下
の説明において“1”とあるのは二値論理レベル
の“1”信号を示し、“0”とあるのは二値論理
レベルの“0”信号を示すものとする。 第2図イはプログラムの流れを示す流れ図であ
り、また第2図ロは割込処理ルーチンである。こ
の図に示すように、この電子オルガンのプログラ
ムはR1〜R8なる8個のメインルーチンおよび
I1〜I3なる3個の割込処理ルーチンから構成
される。そして、各ルーチンが複数のマイクロプ
ログラムモジユール化されマイクロプログラムメ
モリ45内に記憶され、またこれらのマイクロプ
ログラムモジユールを呼出すマクロ命令が処理プ
ログラムとしてROM20内に記憶されている。
以下、上記各ルーチンについて順次説明する。 (1) 初期リセツトルーチンR1 この電子オルガンにおいて電源が投入される
と、プログラムはまずこの初期リセツトルーチン
R1に入り、各部の初期リセツトが行なわれる。 (2) トーンレバー・オン/オフ検出ルーチンI1 この割込処理ルーチンは割込信号INTR2が数
100msecのインターバルで発生するたびに実行さ
れるもので、割込信号INTR2が発生した時点に
おける鍵盤回路11の各トーンレバースイツチの
オン/オフ状態を検出するものである。すなわ
ち、割込制御回路16において割込信号INTR2
が発生すると、アドレスデコーダ34にスイツチ
アドレス信号が供給され、このスイツチアドレス
信号に基づいて各トーンレバースイツチのオン/
オフ情報がバツフアバスドライバ35およびデー
タバス30を介してレジスタ22内に読込まれ
る。そして、この読込まれたトーンレバースイツ
チのオン/オフ情報に基づいて、レジスタ22内
に第3図に示すニユートーンレバー・ステイタス
テーブル(以下、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と略称する;第3図参
照)61の内容とを比較することにより上記検出
が行なわれる。なおOTS61は前回このルーチ
ンR2を実行した時点におけるNTS60の内容
を示すもので、次に説明するルーチンR3におい
て作成される。そして、ルーチンR2を実行した
結果が「YES」(変化あり)の場合は、プログラ
ムがルーチンR3に進行し、また「NO」(変化
なし)の場合はルーチンR4に進行する。 (4) トーンレバー処理ルーチンR3 このルーチンR3は上記NTS60の内容に基
づいて第3図に示すトーンリクエストフアイル6
2をRAM21内に作成するものである。そし
て、この電子オルガンにおいては、このルーチン
R3において作成されるトーンリクエストフアイ
ル62に基づいてROM20内のトーンデータが
WG25の各チヤンネルに割当てられるようにな
つている。 すなわち、ROM20内には第3図に示すよう
に予め音量テーブル63、トーンレバー・インデ
ツクステーブル64およびトーンデータバンク6
5が設けられている。そして、音量テーブル63
には、トーンレバーによつて設定される音量
「1」〜「3」に対応する音量係数(WG25の
各チヤンネルはこの音量係数に基づいて音量設定
を行なう)が予め記憶され、トーンデータバンク
65には複数のトーンデータ、すなわち……トー
ンデータi―1、トーンデータi、トーンデータ
i+1、トーンデータi+2……が記憶され、ま
たトーンレバーインデツクステーブル64には、
各トーンレバー1〜6に対応するトーン(音色)
を構成するためのトーンデータのアドレスポイン
タが記憶されている。この場合、図に示す例につ
いて説明すると、トーンレバー1に対応するトー
ン(音色)はトーンデータi―1およびiから構
成され、したがつてトーンレバーインデツクステ
ーブル64のトーンレバー1に対応するスロツト
(記憶エリア)64aには、トーンデータバンク
65におけるトーンデータi―1、iの各先頭番
地、すなわちアドレスAおよびアドレスBが記憶
され、トーンレバー2に対応するトーンはトーン
データi+2によつて構成され、したがつてスロ
ツト64bにはアドレスDが記憶され、またトー
ンレバー3に対応するトーンはトーンデータi、
i+1から構成され、したがつてスロツト64c
にはアドレスB、アドレスCが記憶されている。
なお、この実施例においては各トーンレバーに対
応するトーンを構成するトーンデータの数を最大
2としたが、これは複数個可能であり、最大2に
制限する必要はない。 そして、プログラムがこのトーンレバー処理ル
ーチンR3(第4図にこのルーチンR3のフロー
チヤートを示す)に入ると、まずレジスタ22内
のNTS60(第3図)に記憶されているトーン
レバー1の音量情報が演算部15のレジスタ群5
0内に読出される。しかし、この場合音量が
「0」であるので、何らの処理も行なわれない。
次いで、トーンレバー2の音量情報がレジスタ群
50内に読出される。この場合、音量「3」が指
定されている。したがつてまずトーンレバーイン
デツクステーブル64のスロツト64b内のアド
レスポインタ(すなわち、アドレスD)がトーン
リクエストフアイル62のエリア62c内に書込
まれ、次いで音量テーブル63内の音量「3」に
対応する音量係数「1111111」が上記エリア62
c内に書込まれる(第3図参照)。次に、トーン
レバー3の音量情報がレジスタ群50内に読出さ
れる。この場合、音量「2」が指定されており、
したがつて、まずテーブル64のスロツト64c
内の第1のアドレスポインタ(すなわち、アドレ
スB)がトーンリクエストフアイル62のエリア
62d内に書込まれ、次に音量「2」に対応する
音量係数(「0100000」)が同エリア62d内に書
込まれ、次にスロツト64c内の第2のアドレス
ポインタ(すなわち、アドレスc)がエリア62
e内に書込まれ、次に音量「2」に対応する音量
係数(「0100000」)が同エリア62e内に書込ま
れる。このようにして、NTS60内のトーンレ
バーの音量情報が順次読出され、処理される。そ
して、最後にトーンリクエストフアイル62内に
書込まれたアドレスポインタの数、すなわちトー
ンリクエストフアイル62に登録されたトーンデ
ータの数が同トーンリクエストフアイル62のヘ
ツダー(すなわち、エリア62a)に書込まれ、
トーンリクエストフアイル62の作成が終了す
る。トーンリクエストフアイル62の作成が終了
した後NTS60の内容をOTS61内に転送し、
プログラムはこのルーチンR3を出る。 このように、この電子オルガンにおいてはこの
ルーチンR3において第3図に示すようなトーン
リクエストフアイル62が作成される。この場
合、各トーンレバーはトーンレバーインデツクス
テーブル64のアドレスポインタのみと対応して
いるので、このテーブル64のアドレスポインタ
を変更することにより各トーンレバーに対し任意
のトーンデータ(音色)を対応させることができ
る。 なお、このトーンリクエストフアイル62にお
いて、エリア62bにはこのフアイル62に共通
する音色加工のための情報、例えばビブラート周
波数、ビブラート深さ、デイケイ長さ等が記憶さ
れている。すなわち、詳細な説明は省略するが、
予めこれらの音色加工のための情報をROM20
内に記憶しておき、音色加工用レバーの操作位置
にしたがつて音色加工情報をROM20から読出
しこのフアイル62に登録することにより、WG
25の各チヤンネルにおいて形成される楽音信号
に音色加工を施すことが可能になる。 ところで、上述したトーンリクエストフアイル
62作成の過程において、ヘツダー62aに記入
されるアドレスポインタ数の検出は、通常レジス
タ22内にトーンリクエストカウンタなるカウン
タを設け、アドレスポインタをフアイル62内に
書込むたびにこのトーンリクエストカウンタをイ
ンクリメントし、最後にこのトーンリクエストカ
ウンタのカウント結果を参照することにより行な
われる。また、上記過程おけるNTS60の内容
の順次読出し、トーンレバーインデツクステーブ
ル64の各スロツト内のアドレスポインタの順次
読出し、トーンリクエストフアイル62内の各エ
リアへの順次書込み等は、通常対応するポインタ
をたて、1つの処理が済むたびにこのポインタの
内容を進め、このポインタの内容に基づいて実行
されるものである。例えば、トーンリクエストフ
アイル62ヘアドレスポインタを書込む場合は、
まずトーンリクエストフアイルポインタなるポイ
ンタにエリア62cのエントリイアドレス(アド
レスE)をセツトし、このトーンリクエストフア
イルポインタに基づいてエリア62c内に書込
み、次いでトーンリクエストフアイルポインタの
内容をエリア62dのエントリイアドレス(アド
レスF)に進め、このエントリイアドレス(アド
レスF)に基づいてエリア62d内に書込み……
の如く行なわれる。しかしながら、これらの処理
はこの業界においては極く当然に行なわれる処理
であり、したがつてこの明細書においてはこれら
の処理過程の記載を省略している。 (5) キー・オン/オフ検出ルーチンI2 この割込処理ルーチンI2は割込信号INTR1
が数msecのインターバルで発生するたびに実行
されるもので、割込信号INTR1が発生した時点
における鍵盤回路11の各キースイツチのオン/
オフ状態を検出するものである。すなわち、割込
制御回路16において割込信号INTR1が発生す
ると、アドレスデコーダ34にスイツチアドレス
信号が供給され、このスイツチアドレス信号に基
づいてキースイツチのオン/オフ情報がバツフア
バスドライバ35およびデータバス30を介して
レジスタ22内に読込まれ、このレジスタ22内
に第5図に示すニユーキーボード・ステイタステ
ーブル(以下NKSと略称する)70が作成され
る。この図に示すNKS70において、“1”とあ
るのはこの“1”に対応するキーが割込信号
INTR1発生時点において押下されていることを
示している。すなわち、この例では現在第1オク
ターブのC音、E音、第2オクターブのD#音、
第3オクターブのF#音、第4オクターブのA音
に各々対応するキーが押下されていることを示し
ている。なお、この図において無印は“0”を示
している。 (6) 押下キー位置・変化検出ルーチンR4 トーンレバー処理ルーチンR3が終了すると、
プログラムはこのルーチンR4に進行する。この
ルーチンR4は、現在のNKS70の状態が前回
のルーチンR4を実行した時点におけるNKS7
0の状態と異なつているか否かを検出するもの
で、NKS70の内容と第5図に示すオールドキ
ーボード・ステイタステーブル(以下OSKと略
称する)71の内容とを比較することにより上記
検出が行なわれる。この場合、OKS71は前回
のルーチンR4を実行した時点におけるキースイ
ツチの状態を示すもので、後述するルーチンR6
において作成される。そして、このルーチンR4
を実行した結果が「YES」(変化あり)の場合
は、プログラムがルーチンR5に進行し、また
「NO」(変化なし)の場合はルーチンR2へ戻
る。 (7) キーオン・リクエストフアイル作成ルーチン
R5 このルーチンR5は新たに楽音発生をすべきキ
ー、言い換えれば新たに押下されたキーを検出
し、この検出結果に基づいて、第5図に示すキー
オン・リクエストフアイル(以下ON・RQと略
称する)72をRAM21上に作成するものであ
る。 このルーチンR5においては、まずOKS71
の各ビツトとNKS70の対応する各ビツトとの
間のエクスクルーシブオアがとられる(OKS
NKS)。この結果、状態が変化したキースイツチ
に対応するビツトのみ“1”となる。次いで、上
記演算結果とNKS70の各ビツトとの間のアン
ドがとられる。〔(NKS∧(OKSNKS)〕。この
結果、キースイツチが新たにオンとなつたビツト
のみ“1”となる。最後に、上記アンド演算の結
果とON・RQ72の各ビツトとの間のオアがと
られ、その結果が新たに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上に残すた
めに行なわれるものである。第5図において第1
オクターブ・C音に丸印が付してあるのはこの処
理ビツトを示している。 (8) キーオフ・リクエストフアイル作成ルーチン
R6 このルーチンR6は楽音発生を停止すべきキ
ー、すなわち離鍵されたキーを検出し、この検出
結果に基づいて第5図に示すキーオフ・リクエス
トフアイル(以下、OF・RQと略称する)73を
RAM21上に作成するものである。 このルーチンR6においては、まずルーチンR
5と同様にOKS71、NKS70、OF・RQ3の
対応する各ビツト間で、 OF・RQ=OF・RQ∨ {∧(OKSNKS)} ……(2) なる演算がなされ、この演算結果がOF・RQ73
内に書込まれる。なおこの式において、は
NKS70の各ビツトの反転を意味している。ま
たオア演算の意味はルーチンR5の場合と同じで
ある。次にNKS70の内容がOKS71内に書込
まれる。すなわち、この処理により今回NKSと
して用いられたテーブルが次回のルーチンR4〜
R6の処理においてはOKS71として用いられ
ることになる。 (9) キーオン・チヤンネルアサインメントルーチ
ンR7 このルーチンR7はルーチンR5において作成
されたON・RQ72およびルーチンR3におい
て作成されたトーンリクエストフアイル62に基
づいて、新たに押下されたキーに対応する周波数
データおよびトーンデータをWG25の空チヤン
ネルに割当てる処理を実行するものである。 以下、第6図〜第8図を参照しこのルーチンR
7の実行過程を説明する。なお、第6図における
ON・RQ72は第5図におけるON・RQ72と
同一である。 プログラムがこのルーチンR7に入ると、まず
第7図に示すステツプS1に進行し、ON・RQ
72上の“1”ビツトの検出が行なわれる。この
検出は、ON・RQ72のまず第1オクターブに
対応するスロツトを左方(第6図において)へ1
ビツトずつシフトし、次いで第2オクターブに対
応するスロツトを左方へ1ビツトずつシフトし、
次いで第3、第4オクターブに対応するスロツト
を順次左方へシフトすることにより行なわれるも
ので、“1”ビツトを検出した時点で(ステツプ
S2)プログラムはステツプS3に進行する。第
6図に示す例においては、まず第1オクターブ・
C音の“1”ビツト検出されるので、この時点で
プログラムがステツプS3に進行する。ステツプ
S3では、ROM20内に記載されている周波数
テーブルから第1オクターブ・C音に対応する周
波数データが読出され、レジスタ22内の周波数
データエリア75(予め設定されている)に転送
される。次いでステツプS4に進行すると、
RAM21上に用意されているビジイキーテーブ
ル76の第1オクターブ・C音に対応するスロツ
ト76aのエントリイアドレス(アドレスX)が
算出され、算出されたエントリイアドレス(アド
レスX)がレジスタ22内に一時記憶される。な
お、ビジイキーテーブル76とは予めRAM21
内に用意されているもので、各キーに対応して設
けられた48個のスロツト76a,76b,76c
……からなるものである。次に、ステツプS5に
進行すると、チヤンネルアサイメントテーブル
(以下CATと略称する)77内の空エリアの検出
が行なわれる。ここで、CAT77について説明
する。このCAT77は予めRAM21内に用意さ
れているもので、E1,E2,…E15なる15個
のエリアから構成され、またこれらのエリアE
1,E2…E15は各々16ビツトからなる3個の
スロツトa1,b1,c1,a2,b2,c2,
…から構成されている。このCAT77は、現在
発音中の楽音(デイケイ状態にある楽音も含む)
がどのチヤンネルに割当てられているかを示すテ
ーブルであり、以下に説明するように、あるキー
に対応する楽音の発音が割当てられると各エリア
E1,E2,……E15のヘツダー、すなわちス
ロツトa1,a2,a3……に該当キーを表わす
ビジイキーテーブル76のエントリイアドレスが
登録され、またスロツトb1,c1、スロツトb
2,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(第3図参照)内に登録されて
いるトーンデータ数(すなわちトーンリクエスト
フアイル62のヘツダー62a内に記憶されてい
る数)とが比較される。この場合、“0”ビツト
の数がトーンデータ数より大きいかあるいは等し
いとすると(YES)、プログラムはステツプS8
に進行する。ステツプS8では、ビジイステイタ
スレジスタ78内の“0”ビツトを検索すること
により空チヤンネルのチヤンネル番号が検出され
る。第6図の例においては、まずスロツト78a
の第2ビツトの“0”が検索され、これにより第
2チヤンネルが空チヤンネルであることが検出さ
れる。なお、ビジイステイタスレジスタ78にお
いて、スロツト78aの第1〜第16ビツトが各々
第1〜第16チヤンネルに対応し、またスロツト7
8bの第1〜第16ビツトが各々第17〜第32チヤン
ネルに対応している。第2チヤンネルの空チヤン
ネルが検出されると、プログラムはステツプS9
に進行し、同チヤンネル番号「2」がチヤンネル
レジスタ79内に格納される。次いで、ステツプ
S10に進行すると、トーンリクエストフアイル
62に基づいてROM20内のドーンデータがレ
ジスタ22内のトーンデータエリア80に転送さ
れる。すなわち、第3図の例について説明する
と、まずエリア62c内に記憶されているアドレ
スDがレジスタ群50内に読出され、次いでこの
アドレスDに基づいてROM20内のトーンデー
タi+2が読出され、トーンデータエリア80に
転送される。次に、エリア62c内の音量係数が
エリア80に転送される。 そして、プログラムはステツプS11に進行
し、トーンデータの修飾(音色加工)が行なわれ
る。このトーンデータの修飾はトーンリクエスト
フアイル62のエリア62bに記憶されている音
色加工のための情報に基づいて行なわれるもの
で、この修飾によりトーンデータに音色加工(例
えば、ビブラートの付加)が施される。そして、
プログラムはステツプS12に進行する。ステツ
プS12では、チヤンネルレジスタ79に記憶さ
れている空チヤンネルのチヤンネル番号(この場
合、「2」)に基づいてデータポート18(第1
図)の第2チヤンネルに対応する領域のエントリ
イアドレスが算出される。次いでステツプS13
(第8図)に進行すると、周波数データエリア7
5内の周波数データおよびトーンデータエリア8
0内のトーンデータ、音量係数が上記エントリイ
アドレスに基づいてデータポート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(第3図)に登録されている
トーンデータの割当てのみしか済んでいないの
で、判断結果は「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へ出力され、ステツプS
14においてスタートコマンドレジスタ81の第
4チヤンネルに対応するビツトに“1”がたてら
れ、これによりWG25の第4チヤンネルがスタ
ートし、ステツプS15、S16においてCAT
77のスロツトb2の第4ビツトおよびビジイス
テイタスレジスタ78のスロツト78aの第4ビ
ツトに“1”が書込まれ、そして、ステツプS1
7へ進行する。 ステツプS17では、再度全トーンデータの割
当てが終了したか否かが判断されるが、この場合
まだトーンリクエストフアイル62のエリア62
eに記憶されているアドレスCに対応するトーン
データの割当てが終了していないので、判断結果
は「NO」であり、したがつてプログラムは再度
ステツプS8へ戻り、ステツプS8〜S16の過
程が再度実行される。そして、このステツプS8
〜S16の過程が実行されると、トーンリクエス
トフアイル62のエリア62eに記憶されている
アドレスCに対応するトーンデータi+1が第5
チヤンネルに割当てられ、WG25の第5チヤン
ネルがスタートし、またCAT77のスロツトb
2の第5ビツトおよびビジイステイタスレジスタ
78のスロツト78aの第5ビツトに各々“1”
が書込まれる。 このようにして、第1オクターブ・C音のチヤ
ンネル割当てが終了し、スピーカ29からは、第
1オクターブのC音の音高で、かつそれぞれトー
ンデータi,i+1,i+2に対応する音色の3
種類の楽音が同時に発音される。また、この時点
でビジイステイタスレジスタ78、スタートコマ
ンドレジスタ81の第2、第4、第5チヤンネル
に対応するビツトには各々“1”が登録されてお
り、さらにCAT77のエリアE2の第2、第4、
第5チヤンネルに対応するビツトにも“1”が登
録されている。 そして、プログラムはステツプS17へ進行す
るが、このステツプでの判断結果は当然「YES」
であり、したがつてプログラムはステツプS18
へ進行する。このステツプS18では、割当処理
がなされた第1オクターブ・C音に対応するビジ
イーキーテーブル76のスロツト76aのエント
リイアドレス(アドレスX)が、CAT77のエ
リアE2のヘツダー(すなわち、スロツトa2)
に書込まれる。次いで、ステツプS19に進行す
ると、エリアE2のエントリイアドレス(アドレ
スY)がビジイキーテーブル76のスロツト76
a内に書込まれる。そして、ステツプS20に進
行し、ON・RQ72の第1オクターブ・C音に
対応する“1”ビツトが“0”とされる。こうし
て、第1オクターブ・C音に基づく割当処理が全
て終了する。 次に、プログラムは再びステツプS1に戻り、
ON・RQ72上の“1”ビツトの検出が行なわ
れる。この場合、第6図に示す例においては第2
オクターブ・D#音に対応する“1”にビツトが
検出され(ステツプS2)、したがつてプログラ
ムはステツプS3に進行し、以下上述した場合と
全く同様の割当処理がなされる。そして、第2オ
クターブ・D#音の割当処理が終了すると再び
ON・RQ72上の“1”ビツトの検出が行なわ
れ、次に検出された“1”ビツト(第3オクター
ブ・F#音)に対応する割当処理がなされる。こ
のようにしてON・RQ72上の“1”ビツトの
処理が全て終了すると、ステツプS2での判断結
果は「NO」となり、ルーチンR7における処理
が全て終了する。 次に、第7図におけるステツプS21について
説明する。上述した説明においてはステツプS7
における判断結果を「YES」として説明を進め
たが、これは「NO」となる場合もあり得る。す
なわち、ビジイステイタスレジスタ78の“0”
ビツトの数がトーンリクエストフアイル62のヘ
ツダー62a内に登録されている数より少ない場
合、言い換えればトーンデータをチヤンネルに割
当てたくとも、空チヤンネルの数が少なく、割当
てることができない場合は、ステツプS7の判断
結果は「NO」となり、プログラムはステツプS
21へ進む。このステツプS21では、デイケイ
状態にあるチヤンネルのチヤンネル番号を後述す
るダンプコマンドレジスタ85(第9図参照)へ
ロードし、さらにこのダンプコマンドレジスタ8
5の内容をデータポート18へ出力することによ
り、WG25においてデイケイ状態にあるチヤン
ネルを強制的に停止させてしまう。そして、ルー
チンR7を出る。このような処理をしておくと、
WG終了処理ルーチンI3においてビジイステイ
タスレジスタ78の対応する“1”ビツトが
“0”とされ、これにより空チヤンネルの数が増
加し、トーンデータの割当てが可能となる。な
お、この処理の意味は、デイケイ状態にある楽音
の発音より新たに押下されたキーに対応する楽音
の発音の方を優先するということである。また、
この処理を行なうために、レジスタ22内に設け
られたデイケイ状態のチヤンネル番号を記憶する
デイケイステイタスレジスタ82が利用される。 次に、CAT77のスロツトb2の第6ビツト
の“1”(丸印を付してある)について説明する。
この第6ビツトの“1”は今回第1オクターブ・
C音のキーが押下されたことにより割当てられた
ものではなく、前回同キーが押下された際割当て
られたものである。すなわち、前回押下されたキ
ーが離されると該キーが割当てられた各チヤンネ
ルにおいて所定のデイケイ時間を経た後楽音信号
の発生が停止し(なお、この楽音信号発生の停止
は各チヤンネル同時とは限らない)、楽音信号の
発生が停止したたチヤンネルに対応するCAT7
7内の“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、CAT7
7に基づいて、離されたキー(押下状態が解除さ
れたキー)に対応する楽音を消去するものであ
る。以下、このルーチンR6の実行過程を第9
図、第10図を参照し説明する。なお、第9図に
おけるOF・RQ73は第5図におけるOF・RQ7
3と同一である。 プログラムがこのルーチンR8に入ると、まず
第10図に示すステツプS1に進行し、OF・RQ
73上の“1”ビツトの検出が行なわれる。な
お、この検出は前述したON・RQ72上の“1”
ビツトの検出(第7図のステツプS1)の場合と
全く同様に行なわれる。そして、第9図に示す例
においては、まず第1オクターブ・A#音の
“1”ビツトが検出され(ステツプS2)、プログ
ラムがステツプS3に進行する。ステツプS3で
は、検出された“1”ビツトの位置(OF・RQ7
3上の位置)に基づいて、ビジイキーテーブル7
6の第1オクターブ・A#音に対応するスロツト
76mのエントリイアドレス(アドレスVとする)
が算出される。 次にステツプS4に進行すると、算出されたエ
ントリイアドレス(アドレスV)に基づいてスロ
ツト76mの内容が続出され、レジスタ群50内に
転送される。この場合、スロツト76mの内容は、
第1オクターブ・A#音に関するチヤンネル割当
てがCAT77のエリアEnに登録されているとす
ると、エリアEnのエントリイアドレス(アドレ
スUとする)である。次にステツプS5に進行す
ると、スロツト76mの内容(アドレスU)に基
づいてエリアEnのスロツトbnおよびcnの内容が
続出され、デイケイコマンドレジスタ84はたは
ダンプコマンドレジスタ85のいずれかにロード
される。 なお、いずれにロードされかはこの電子オルガ
ンの操作部に設けられた切替スイツチによつて制
御される。そして、ステツプS6に進行すると、
ステツプS5においてエリアEnの内容がロード
されたレジスタ(84はたは85)の内容がデー
タポート18に出力され、これにより第1オクタ
ーブ・A#音に対応する楽音の発音が割当てられ
ているチヤンネル(第9図に示す例についていえ
ば、第1、第7、第8チヤンネル)の楽音信号の
発生が停止される。この場合、ステツプS5にお
いてデイケイコマンドレジスタ84にロードされ
た場合は、楽音がデイケイをもつて徐々に消去さ
れ、ダンプコマンドレジスタ85にロードされた
場合は、楽音が即座に消去される。次いでステツ
プS7へ進行すると、OF・RQ73上の第1オク
ターブ・A#音の“1”ビツトが消去され、再び
ステツプS1に戻る。そして、ステツプS1にお
いて第3オクターブ・F音の“1”ビツトが検出
されると、ステツプS2の判断結果が「YES」
となり、上述した場合と同様にステツプS3〜S
6の過程が実行され、第3オクターブ・F音が割
当てられているチヤンネルの楽音信号が停止さ
れ、またはデイケイ状態とされる。そして、ステ
ツプS7において第3オクターブ・F音の“1”
ビツトが消去され、再びステツプS1に戻る。こ
のようにして、OF・RQ73上の“1”ビツトの
処理が全て終了するとステツプS2での判断結果
が「NO」となり、このルーチンR8における処
理が終了する。 (11) WG終了処理ルーチンI3 この割込処理ルーチンI3は、WG25のチヤ
ンネルにおける楽音信号の発生が完全に停止した
時(デイケイ状態が終了した時)WG25から発
生する割込信号INTR3に基づいて実行されるも
ので、その主な目的はビジイステイタスレジスタ
78(第6図、第11図)の当該チヤンネルに対
応するビツトを“0”とし、これにより同チヤン
ネルを空チヤンネルとして新たに他のキーに対応
する楽音の発生を割当て得るようにすることであ
る。 すなわち、1個の押下されたキーに対応して、
複数のチヤンネル(上述した第3図、第6図等の
例においては3個のチヤンネル)において発生す
る楽音信号は、必ずしも同一タイミングで停止す
るとは限らず、例えばパーカツシブ系の音の場合
はキーが押下されているにもかかわらず停止して
しまうことがある。このような場合に、同一キー
に対応する他のチヤンネルの楽音信号が全て停止
するまで、すでに楽音信号が停止したチヤンネル
を待機させるとすると、チヤンネル使用の効率が
非常に悪いものになる。この電子オルガンはこの
ような点を考慮し、楽音発生が停止したチヤンネ
ルを即座に他のキーに解放し得るように、この割
込処理ルーチンI3を設けている。 以下、第11図、第12図を参照しこの割込処
理ルーチンI3の実行過程について説明する。な
お以下の説明においては、いま第7チヤンネルに
おいて楽音信号の発生が停止し、またこの第7チ
ヤンネルがCAT77のエリアE6に登録されて
いるものとする。 第7チヤンネルにおいて楽音信号の発生が停止
し、これによりWG25から割込信号INTR3が
発生すると、プログラムは先ず第12図に示すス
テツプS1に進行する。そして、このステツプS
1においてビジイステイタスレジスタ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のヘツダー(スロツトa
1)が“0”であるか否かが判断される。この場
合、例えば「NO」(“0”でない)とすると、プ
ログラムはステツプS3に進行する。ステツプS
3では、まずエリアE1のスロツトb1,c1の
各ビツトとビジイステイタスレジスタ78の対応
するビツトとの間で論理ANDがとられ、次いで
この演算結果がスロツトb1,c1内に格納され
る。これによりスロツトb1の第7ビツトに
“1”があつた場合はその“1”が消去される。
なお、この例においてはエリアE6のスロツトb
6の第7ビツトに“1”があるので、エリアE6
のスロツトb1の第7ビツトに“1”はない。し
たがつて、上記AND演算の結果は、演算前のエ
リアE1の内容と同一となる。 ステツプS3の実行が終了するとステツプS4
へ進行する。このステツプS4では、エリアE1
の内容(スロツトb1,c1の内容)が全て
“0”か否かが判断される。この場合、エリアE
1には“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に
おいてビジイステイタスレジスタ78の内容とエ
リア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(第
9図参照)のエントリイアドレスに基づいて、同
エントリイアドレスによつて指示されるビジイキ
ーテーブル76のスロツトの内容が消去され、次
にエリアE7のヘツダーが消去される。すなわ
ち、エリアとビジイキーテーブルとの結合が解か
れる。そして、この処理によりエリアE7が他の
キーに対して解放されることになる。 なお、参考までにこれまでに説明したROM2
0、RAM21レジスタ22の各内容をまとめて
第13図に示す。 最後に、第1図に示すトーンレバー38として
用いられるエンコーダスイツチを第14図に示す
原理図を用いて説明する。基板38aには、図示
する4つの領域a,b,c,d間に連続して導体
(図中斜線で示す)が形成された接点38b、領
域a,cに導体が形成され且つ領域b,dに絶縁
体(図中白い部分で示す)が形成された接点38
c、領域a,bに導体が形成され且つ領域c,d
に絶縁体が形成された接点38dがそれぞれ配設
され、更にこれら各接点38b,38c,38d
上の各領域a,b,c,d上をこれら接点38b
〜38dに接触しながら図中の矢印方向eまたは
fにスライドできるようにした導体からなる接点
スライダ38eが配設されている。また上記各接
点38b,38c,38dはそれぞれ対応する端
子38f,38g,38hに接続されている。更
に上記端子38fにはスキヤンストローブ信号が
加えられている。他方、端子38g,38hはそ
れぞれ対応するダイオードD0,D1のカソードに
接続され、上記ダイオードD0,D1の各アノード
はそれぞれ対応するバツフアアンプB0,B1の入
力端に接続されている。更にまた上記ダイオード
D0,D1の各アノードは一端が電源+Vccに接続
された抵抗R0,R1の各他端にも接続され、また
上記バツフアアンプB0,B1の出力端からは信号
BIT〈0〉またはBIT〈1〉が出力されるように構
成されている。 上記スキヤンストローブ信号は、上述したエン
コーダスイツチをスキヤンするための信号で、こ
の実施例の場合前述した第1図のアドレスデコー
ダ34にスイツチアドレス信号が供給されたとき
に該デコーダ34から出力される。 エンコーダスイツチが上記のように構成されて
いるので、たとえば第14図に示すエンコーダス
イツチが第3図におけるトーンレバー1として使
用されているときには、このエンコーダスイツチ
の接点スライダ38eは第14図に想像線で示す
領域dの位置に設定されていることになる。つま
り、接点38c,38dの各領域dは接点38b
と電気的に遮断されているから、端子38fにス
キヤンストローブ信号が入力されても各ダイオー
ドD0,D1のアノードは電源+Vcc電圧レベルに
あり、したがつて各バツフアアンプB0,B1の出
力信号BIT〈0〉、BIT〈1〉の出力レベルはとも
に2値論理レベル“0”である。したがつてトー
ンレバー1は音量0のリクエスト状態にあること
になる。 なお、上記エンコーダスイツチは2ビツトのバ
イナリコードによる4段階の音量切換え用とした
が、更に3ビツト、4ビツトのようなバイナリコ
ードによる多数段階の音量切換え用にすることも
容易である。またエンコーダスイツチとしてはバ
イナリコードのみならずグレイコードのような他
のコードによるものでも使用できる。 以上説明したように、この発明によればプログ
ラム制御を用いているので、構成が簡単であり、
鍵数やチヤンネル数の変更等各種の仕様変更に対
し、プログラムを変更することにより容易に対処
することができる。また、この発明によれば複数
の鍵スイツチ走査の際各グループ内の鍵スイツチ
を同時にチエツクするようにしたので、従来のも
のに比較し鍵スイツチの走査を効率よく行うこと
ができる利点がある。さらに、プログラムメモリ
と鍵スイツチ部と記憶部と演算処理部と楽音発生
手段とを共通のバスラインによつて接続するよう
にしたので、各種情報の転送を共通のバスライン
によつて行なうことができ、各部間の接続線が大
幅に減少して構成が小規模かつ簡単となる利点も
ある。さらにまた、各処理(特に、鍵操作状態の
検出と楽音の発生制御)に対する同期が不要なの
で、設計が容易になる利点もある。
【図面の簡単な説明】
第1図ないし第13図はこの発明による電子オ
ルガンの一実施例を示す図であり、第1図は全体
の構成を示す図、第2図イはプログラムの流れを
示すフローチヤート、第2図ロは割込処理ルーチ
ンを示す図、第3図は第2図に示すトーンレバー
処理ルーチンR3の実行時において関係する
ROM20、RAM21、レジスタ22の記憶内
容を示す図、第4図は上記ルーチンR3のフロー
チヤート、第5図は第2図に示すキーオン・リク
エストフアイル作成ルーチンR5、キーオフ・リ
クエストフアイル作成ルーチンR6の実行時にお
いて関係するRAM21、レジスタ22の記憶内
容を示す図、第6図は第2図に示すキーオン・チ
ヤンネルアサインメントルーチンR7の実行時に
おいて関係するRAM21、レジスタ22の内容
を示す図、第7図、第8図は共に上記ルーチンR
7のフローチヤート、第9図は第2図に示すキー
オフ・チヤンネルマネジメントルーチンR8の実
行時において関係するRAM21、レジスタ22
の内容を示す図、第10図は上記ルーチンR8の
フローチヤート、第11図は第2図に示すWG終
了処理ルーチンI3の実行時において関係する
RAM21、レジスタ22の内容を示す図、第1
2図は上記ルーチンI3のフローチヤート、第1
3図はROM20、RAM21、レジスタ22、
データポート18の各記憶内容をまとめて示した
図、第14図はトーンレバーとして用いられるエ
ンコーダスイツチの構成を示す図である。 11……鍵盤回路、15……演算部、13……
楽音発生部、16……割込制御回路、20……
ROM、21……RAM、22……レジスタ、3
0……データバス、34……アドレスデータ、3
5……バツハアバスドライバ、37……アドレス
バス、39……鍵盤キー、44……マイクロプロ
グラムアドレスシーケンサ、45……マイクロプ
ログラムメモリ。

Claims (1)

  1. 【特許請求の範囲】 1 鍵情報を処理するためのプログラムを記憶し
    たプログラムメモリと、 多数の鍵スイツチを、所定数の鍵スイツチを1
    つのグループとして複数の鍵スイツチグループに
    分割した鍵スイツチ部と、 上記各鍵スイツチのオン/オフ情報を記憶する
    書込み可能なメモリからなる記憶部と、 演算処理部と、 それぞれ割り当てられた鍵に対応する楽音を発
    生する複数の楽音発生用のチヤンネルを有する楽
    音発生手段と、 上記プログラムメモリと上記鍵スイツチ部と上
    記記憶部と上記演算処理部と上記楽音発生手段が
    接続されたバスラインと を備え、 上記演算処理部は、上記プログラムメモリに記
    憶されたプログラムの内容に従つて、 (a) 上記複数の各鍵スイツチクループを順次指定
    する情報を上記バスラインを介して上記鍵スイ
    ツチ部に供給するとともに、該情報により指定
    された鍵スイツチグループ内に属する各鍵スイ
    ツチのオン/オフ情報を上記バスラインを介し
    て取り込む第1の処理、 (b) 各鍵スイツチごとに上記第1の処理で取り込
    んだオン/オフ情報と上記記憶部に記憶されて
    いるオン/オフ情報とを比較して各鍵スイツチ
    の操作状態の変化をオンイベント、オフイベン
    トとして検出する第2の処理、 (c) 上記第1の処理で取り込んだ各鍵スイツチの
    オン/オフ情報を上記記憶部に書き込むことに
    より該記憶部の記憶情報を更新する第3の処理
    と、 (d) 上記第2の処理でオンイベントが検出された
    鍵スイツチに対応する鍵を上記複数のチヤンネ
    ルのうちいずれかのチヤンネルに割り当て、上
    記バスラインを介して上記楽音発生手段の該割
    当てチヤンネルに対して該割当てた鍵に対応す
    る楽音を発生するための楽音情報を供給すると
    ともに、上記第2の処理でオフイベントが検出
    された鍵スイツチに対応する鍵が割り当てられ
    ているチヤンネルを検出し、上記バスラインを
    介して上記楽音発生手段の該検出チヤンネルに
    対して鍵が離鍵されたことを示す情報を供給す
    る第4の処理、 を実行することを特徴とする電子楽器。
JP59029910A 1984-02-20 1984-02-20 電子楽器 Granted JPS60149090A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59029910A JPS60149090A (ja) 1984-02-20 1984-02-20 電子楽器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59029910A JPS60149090A (ja) 1984-02-20 1984-02-20 電子楽器

Publications (2)

Publication Number Publication Date
JPS60149090A JPS60149090A (ja) 1985-08-06
JPS6339073B2 true JPS6339073B2 (ja) 1988-08-03

Family

ID=12289143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59029910A Granted JPS60149090A (ja) 1984-02-20 1984-02-20 電子楽器

Country Status (1)

Country Link
JP (1) JPS60149090A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS49130213A (ja) * 1973-04-13 1974-12-13
JPS5120816A (ja) * 1974-08-12 1976-02-19 Nippon Musical Instruments Mfg
JPS5120815A (ja) * 1974-08-12 1976-02-19 Nippon Musical Instruments Mfg
JPS51131623A (en) * 1975-05-12 1976-11-16 Kawai Musical Instr Mfg Co Ltd Circuit for electric instrument key

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS49130213A (ja) * 1973-04-13 1974-12-13
JPS5120816A (ja) * 1974-08-12 1976-02-19 Nippon Musical Instruments Mfg
JPS5120815A (ja) * 1974-08-12 1976-02-19 Nippon Musical Instruments Mfg
JPS51131623A (en) * 1975-05-12 1976-11-16 Kawai Musical Instr Mfg Co Ltd Circuit for electric instrument key

Also Published As

Publication number Publication date
JPS60149090A (ja) 1985-08-06

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
US4387617A (en) Assigner for electronic musical instrument
US4724736A (en) Keyboard musical instruments with transpositional function
US5321198A (en) Tone signal generator utilizing ancillary memories for electronic musical instrument
JPS5943758B2 (ja) 電子楽器用アサイナ
US5382749A (en) Waveform data processing system and method of waveform data processing for electronic musical instrument
JP2629891B2 (ja) 楽音信号発生装置
US4248118A (en) Harmony recognition technique application
JPS6222157B2 (ja)
JPS6252317B2 (ja)
JPS6113599B2 (ja)
JPS6339073B2 (ja)
JPS6339075B2 (ja)
JPS6339074B2 (ja)
JPH0474718B2 (ja)
JPS6252316B2 (ja)
JP2522337B2 (ja) 自動演奏装置
JPS6365496A (ja) キ−アサイナ方式
GB2091470A (en) Electronic Musical Instrument
JPS62208099A (ja) 楽音発生装置
JPH11202866A (ja) 楽音発生方法および楽音発生装置
JPS61173297A (ja) 電子楽器
JPH0460698A (ja) 楽音波形発生装置
JPH0827624B2 (ja) 自動演奏装置