JPH05232958A - 電子楽器 - Google Patents
電子楽器Info
- Publication number
- JPH05232958A JPH05232958A JP4035420A JP3542092A JPH05232958A JP H05232958 A JPH05232958 A JP H05232958A JP 4035420 A JP4035420 A JP 4035420A JP 3542092 A JP3542092 A JP 3542092A JP H05232958 A JPH05232958 A JP H05232958A
- Authority
- JP
- Japan
- Prior art keywords
- envelope
- signal
- key
- circuit
- channel
- 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.)
- Pending
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】
【目的】 多くの同時発音チャンネル数を備えても容易
にトランケート処理を行うことができる電子楽器を実現
する。 【構成】 楽音合成手段が複数の発音チャンネルのエン
ベロープに関するデータ圧縮されたエンベロープ情報を
出力し、制御手段がエンベロープ情報に基づき楽音合成
手段に出力する楽音情報を制御する。これにより、従来
のように、エンベロープ値という比較的情報量の多いエ
ンベロープ値を用いることなく、トランケート処理を行
うことが可能になる。
にトランケート処理を行うことができる電子楽器を実現
する。 【構成】 楽音合成手段が複数の発音チャンネルのエン
ベロープに関するデータ圧縮されたエンベロープ情報を
出力し、制御手段がエンベロープ情報に基づき楽音合成
手段に出力する楽音情報を制御する。これにより、従来
のように、エンベロープ値という比較的情報量の多いエ
ンベロープ値を用いることなく、トランケート処理を行
うことが可能になる。
Description
【0001】この発明は、例えば電子ピアノ等、複数の
楽音を同時に発音し得る電子楽器に関する。
楽音を同時に発音し得る電子楽器に関する。
【0002】
【従来の技術】周知のように、電子ピアノ等の電子楽器
では、複数の発音チャンネルを備えており、複数の楽音
を同時に発音させるように構成されている。この種の電
子楽器においては、全ての発音チャンネルが発音中であ
る時に押鍵がなされ、これにより新たな発音要求が発生
した場合、いずれかの発音チャンネルの楽音発生を停止
させると共に、その発音チャンネルを開放して新たな発
音を割り当てるトランケート処理が行われる。
では、複数の発音チャンネルを備えており、複数の楽音
を同時に発音させるように構成されている。この種の電
子楽器においては、全ての発音チャンネルが発音中であ
る時に押鍵がなされ、これにより新たな発音要求が発生
した場合、いずれかの発音チャンネルの楽音発生を停止
させると共に、その発音チャンネルを開放して新たな発
音を割り当てるトランケート処理が行われる。
【0003】こうしたトランケート処理には、全発音チ
ャンネルの内、最も古く押鍵状態にされたチャンネルを
検出し、これに新たな発音を割り当てる方式や、最も古
く離鍵状態にされたチャンネルに割り当てる方式などが
実現されている。また、特公昭53−1654号公報に
は、エンベロープ信号レベルの減衰が最も進んでいる発
音チャンネルを検出し、このチャンネルに新たな発音を
割り当てる技術が開示されている。
ャンネルの内、最も古く押鍵状態にされたチャンネルを
検出し、これに新たな発音を割り当てる方式や、最も古
く離鍵状態にされたチャンネルに割り当てる方式などが
実現されている。また、特公昭53−1654号公報に
は、エンベロープ信号レベルの減衰が最も進んでいる発
音チャンネルを検出し、このチャンネルに新たな発音を
割り当てる技術が開示されている。
【0004】
【発明が解決しようとする課題】さて、近年の電子楽器
においては、楽器各部を制御するCPUと、このCPU
から供給される演奏情報、例えば、押離鍵操作に応じた
キーオン/オフ信号、キーコード、タッチ情報や音色情
報等に基づいて所望の楽音を合成する楽音合成回路とが
分割して設けられている場合が多い。この種の電子楽器
において、上述した特公昭53−1654号公報に開示
のトランケート処理を行うには、全発音チャンネルのエ
ンベロープレベルを所定周期(例えば、10msec)
毎に検出し、これをCPU側に供給する構成が要求され
る。
においては、楽器各部を制御するCPUと、このCPU
から供給される演奏情報、例えば、押離鍵操作に応じた
キーオン/オフ信号、キーコード、タッチ情報や音色情
報等に基づいて所望の楽音を合成する楽音合成回路とが
分割して設けられている場合が多い。この種の電子楽器
において、上述した特公昭53−1654号公報に開示
のトランケート処理を行うには、全発音チャンネルのエ
ンベロープレベルを所定周期(例えば、10msec)
毎に検出し、これをCPU側に供給する構成が要求され
る。
【0005】ところで、上記構成において、楽音合成回
路側が多くの同時発音チャンネルを備えている場合、楽
音合成回路側からCPU側へ、エンベロープ値という比
較的情報量の多いデータを全発音チャンネル分転送し、
CPUは各発音チャンネルのエンベロープ値を検出して
トランケートすべき発音チャンネルを決定することにな
る。このため、CPU側ではこれに多くの処理時間を費
やすことになる。加えて、CPU側はこれ以外にも楽器
各部を制御する各種タスクを有しており、多チャンネル
のトランケート処理は多大な負荷となっている。
路側が多くの同時発音チャンネルを備えている場合、楽
音合成回路側からCPU側へ、エンベロープ値という比
較的情報量の多いデータを全発音チャンネル分転送し、
CPUは各発音チャンネルのエンベロープ値を検出して
トランケートすべき発音チャンネルを決定することにな
る。このため、CPU側ではこれに多くの処理時間を費
やすことになる。加えて、CPU側はこれ以外にも楽器
各部を制御する各種タスクを有しており、多チャンネル
のトランケート処理は多大な負荷となっている。
【0006】そして、こうしたCPUに与える多大な負
荷が、例えば、発音タイミングの遅れ等として表れた場
合には、楽器として重大なデメリットになり得る。した
がって、発音チャンネル数の多い楽音合成回路は、実
際、ハードウェア的には構成可能であっても、処理時間
の関係からソフトウェア的に実現困難となってしまう訳
である。このような問題は、主に、楽音合成回路側から
CPU側へ、エンベロープ値という比較的情報量の多い
データを送出することに起因している。この発明は上述
した事情に鑑みてなされたもので、多くの同時発音チャ
ンネル数を備えても、時間的制約を受けずに楽音制御を
行うことができる電子楽器に関する。
荷が、例えば、発音タイミングの遅れ等として表れた場
合には、楽器として重大なデメリットになり得る。した
がって、発音チャンネル数の多い楽音合成回路は、実
際、ハードウェア的には構成可能であっても、処理時間
の関係からソフトウェア的に実現困難となってしまう訳
である。このような問題は、主に、楽音合成回路側から
CPU側へ、エンベロープ値という比較的情報量の多い
データを送出することに起因している。この発明は上述
した事情に鑑みてなされたもので、多くの同時発音チャ
ンネル数を備えても、時間的制約を受けずに楽音制御を
行うことができる電子楽器に関する。
【0007】
【課題を解決するための手段】この発明は、入力される
楽音情報に基づき所定のエンベロープが付与された楽音
信号を出力する複数の発音チャンネルを有するととも
に、前記複数の発音チャンネルのエンベロープに関する
データ圧縮されたエンベロープ情報を出力する楽音合成
手段と、入力される演奏データに基づき前記楽音情報を
出力するとともに、前記楽音合成手段から出力されたエ
ンベロープ情報に基づき前記楽音情報を制御する制御手
段とを具備することを特徴としている。
楽音情報に基づき所定のエンベロープが付与された楽音
信号を出力する複数の発音チャンネルを有するととも
に、前記複数の発音チャンネルのエンベロープに関する
データ圧縮されたエンベロープ情報を出力する楽音合成
手段と、入力される演奏データに基づき前記楽音情報を
出力するとともに、前記楽音合成手段から出力されたエ
ンベロープ情報に基づき前記楽音情報を制御する制御手
段とを具備することを特徴としている。
【0008】
【作用】上記構成によれば、楽音合成手段が複数の発音
チャンネルのエンベロープに関するデータ圧縮されたエ
ンベロープ情報を出力し、制御手段がエンベロープ情報
に基づき楽音合成手段に出力する楽音情報を制御する。
したがって、従来のように、エンベロープ値という比較
的情報量の多いデータを用いないため、時間的制約を受
けずに楽音制御を行うことが可能になる。
チャンネルのエンベロープに関するデータ圧縮されたエ
ンベロープ情報を出力し、制御手段がエンベロープ情報
に基づき楽音合成手段に出力する楽音情報を制御する。
したがって、従来のように、エンベロープ値という比較
的情報量の多いデータを用いないため、時間的制約を受
けずに楽音制御を行うことが可能になる。
【0009】
【実施例】以下、図面を参照してこの発明の実施例につ
いて説明する。 A.実施例の全体構成 図1はこの発明の一実施例である電子ピアノの全体構成
を示すブロック図である。この図において、1は鍵盤で
ある。この鍵盤1は、各鍵毎の押離鍵操作および押鍵速
度を検出し、これらに対応した各種信号を発生する。1
aは鍵盤インターフェイスであり、鍵盤1から供給され
る各種信号に基づき、キーオン信号KON、キーオフ信
号KOF、キーコードKCおよび押鍵速度信号KVを出
力する。2はこの電子ピアノ各部を制御するCPUであ
り、その動作の詳細に関しては後述する。
いて説明する。 A.実施例の全体構成 図1はこの発明の一実施例である電子ピアノの全体構成
を示すブロック図である。この図において、1は鍵盤で
ある。この鍵盤1は、各鍵毎の押離鍵操作および押鍵速
度を検出し、これらに対応した各種信号を発生する。1
aは鍵盤インターフェイスであり、鍵盤1から供給され
る各種信号に基づき、キーオン信号KON、キーオフ信
号KOF、キーコードKCおよび押鍵速度信号KVを出
力する。2はこの電子ピアノ各部を制御するCPUであ
り、その動作の詳細に関しては後述する。
【0010】3はCPU2によってロードされる各種制
御プログラムや、これら制御プログラムにおいて用いら
れる各種データテーブル、あるいは音色データなどが記
憶されるROMである。4はCPU2においてなされる
各種演算結果や、レジスタ値が一時記憶されるRAMで
ある。5は、例えばダンパペダルやエクスプレションペ
ダル等の電子ピアノに配設される操作子である。この操
作子5の内、ダンパペダルは操作量に応じて楽音の減衰
量を制御するものである。5aは操作子インターフェイ
スであり、操作子5から供給される各種信号をもとに、
操作量に応じた信号や、操作速度を表す信号を発生す
る。
御プログラムや、これら制御プログラムにおいて用いら
れる各種データテーブル、あるいは音色データなどが記
憶されるROMである。4はCPU2においてなされる
各種演算結果や、レジスタ値が一時記憶されるRAMで
ある。5は、例えばダンパペダルやエクスプレションペ
ダル等の電子ピアノに配設される操作子である。この操
作子5の内、ダンパペダルは操作量に応じて楽音の減衰
量を制御するものである。5aは操作子インターフェイ
スであり、操作子5から供給される各種信号をもとに、
操作量に応じた信号や、操作速度を表す信号を発生す
る。
【0011】6はこの電子ピアノのパネル面に各種配設
されるパネルスイッチである。このパネルスイッチ6の
内には、エンベロープジェネレータの動作モードを切換
えるモードスイッチや、発生する楽音の音色を決める音
色スイッチ等がある。6aはパネルインタフェースであ
り、各パネルスイッチ6の操作に対応した操作信号を発
生する。なお、このパネルインタフェース6aは、上述
したモードスイッチが操作された場合、動作モードを指
定するデータTYPEを発生する。また、音色スイッチ
が操作された場合には、音色を指定する音色番号TCを
発生する。
されるパネルスイッチである。このパネルスイッチ6の
内には、エンベロープジェネレータの動作モードを切換
えるモードスイッチや、発生する楽音の音色を決める音
色スイッチ等がある。6aはパネルインタフェースであ
り、各パネルスイッチ6の操作に対応した操作信号を発
生する。なお、このパネルインタフェース6aは、上述
したモードスイッチが操作された場合、動作モードを指
定するデータTYPEを発生する。また、音色スイッチ
が操作された場合には、音色を指定する音色番号TCを
発生する。
【0012】次に、7はCPU2よりバスを介して供給
される各種信号に基づき楽音合成を行い、これにより形
成される楽音信号Wを出力する楽音合成回路である。な
お、この楽音合成回路7の構成については後述する。S
Sはサウンドシステムである。このサウンドシステムS
Sは、楽音信号Wに対してフィルタリングを施して不要
ノイズの除去、あるいは効果音処理などを施した後、こ
れを増幅してスピーカSPから楽音として発音させる。
このような構成による実施例は、特に、楽音合成回路7
に多くの同時発音チャンネルを備え、これら全ての発音
チャンネルのエンベロープ値をモニタし、この内の発音
終了と見做せる発音チャンネルを表す情報を非時分割で
CPU2に与え、これに基づく発音割り当てがなされる
ことを特徴としている。以下、上述した各部の構成につ
いて詳述する。
される各種信号に基づき楽音合成を行い、これにより形
成される楽音信号Wを出力する楽音合成回路である。な
お、この楽音合成回路7の構成については後述する。S
Sはサウンドシステムである。このサウンドシステムS
Sは、楽音信号Wに対してフィルタリングを施して不要
ノイズの除去、あるいは効果音処理などを施した後、こ
れを増幅してスピーカSPから楽音として発音させる。
このような構成による実施例は、特に、楽音合成回路7
に多くの同時発音チャンネルを備え、これら全ての発音
チャンネルのエンベロープ値をモニタし、この内の発音
終了と見做せる発音チャンネルを表す情報を非時分割で
CPU2に与え、これに基づく発音割り当てがなされる
ことを特徴としている。以下、上述した各部の構成につ
いて詳述する。
【0013】B.楽音合成回路7の構成 次に、図2は、楽音合成回路7の構成を示すブロック図
である。この図において、8はアドレス設定回路であ
り、後述するインタフェース回路16から供給される各
種信号に基づいて波形読み出しアドレスを設定する。す
なわち、このアドレス設定回路8は、インターフェイス
回路16から供給されるキーオンパルス信号KONP、
キーオフパルス信号KOFP、キーコードKCおよび押
鍵速度信号KVに従って、波形記憶回路10のATTA
CK部テーブルおよびLOOP部テーブル(後述する)
をADDR/DATA BUSを介して参照し、アタッ
ク部読出開始アドレスSTART.ADおよび、アタッ
ク部読出終了アドレスEND.ADを発生して、これを
アドレス生成回路9に供給する。
である。この図において、8はアドレス設定回路であ
り、後述するインタフェース回路16から供給される各
種信号に基づいて波形読み出しアドレスを設定する。す
なわち、このアドレス設定回路8は、インターフェイス
回路16から供給されるキーオンパルス信号KONP、
キーオフパルス信号KOFP、キーコードKCおよび押
鍵速度信号KVに従って、波形記憶回路10のATTA
CK部テーブルおよびLOOP部テーブル(後述する)
をADDR/DATA BUSを介して参照し、アタッ
ク部読出開始アドレスSTART.ADおよび、アタッ
ク部読出終了アドレスEND.ADを発生して、これを
アドレス生成回路9に供給する。
【0014】このキーオンパルス信号KONP/キーオ
フパルス信号KOFPは、鍵盤1における押離鍵操作に
応じて発生する信号であり、キーコードKCは、押鍵操
作に対応した音高を表す情報である。また、このアドレ
ス設定回路8にあっては、波形記憶回路10からアタッ
ク波形を読み出させるため、読み出しモードを表す信号
MODEを発生する。ここで、アタック波形を読み出さ
せる場合、該アタック波形は繰り返し読出する必要がな
いので、信号MODEは1回の読み出しを指示する「M
ODE=0」として出力される。
フパルス信号KOFPは、鍵盤1における押離鍵操作に
応じて発生する信号であり、キーコードKCは、押鍵操
作に対応した音高を表す情報である。また、このアドレ
ス設定回路8にあっては、波形記憶回路10からアタッ
ク波形を読み出させるため、読み出しモードを表す信号
MODEを発生する。ここで、アタック波形を読み出さ
せる場合、該アタック波形は繰り返し読出する必要がな
いので、信号MODEは1回の読み出しを指示する「M
ODE=0」として出力される。
【0015】11は位相発生回路であり、上述したキー
オン信号KONPが与えられた場合、キーコードKCに
対応した位相情報を発生する。この位相情報は、発生楽
音のピッチ(音高)を指示するものであり、整数部Iと
小数部Fとから構成されている。アドレス生成回路9
は、アドレス設定回路8から供給されるアタック部読出
開始アドレスSTART.ADに対して位相発生回路1
1から供給される位相情報の整数部Iを順次累算し、波
形情報の読み出しアドレスADを出力する。
オン信号KONPが与えられた場合、キーコードKCに
対応した位相情報を発生する。この位相情報は、発生楽
音のピッチ(音高)を指示するものであり、整数部Iと
小数部Fとから構成されている。アドレス生成回路9
は、アドレス設定回路8から供給されるアタック部読出
開始アドレスSTART.ADに対して位相発生回路1
1から供給される位相情報の整数部Iを順次累算し、波
形情報の読み出しアドレスADを出力する。
【0016】また、アドレス生成回路9は、その出力す
る読み出しアドレスADが、アタック部読み出し波形の
終了アドレスEND.ADと同一になると、上述したア
ドレス設定回路8に対して、ループ波形要求信号LOO
P.REQを出力する。また、この場合には、位相発生
回路11に対して、生成している位相情報をリセットす
るためのリセット要求信号RESET.REQを出力す
る。
る読み出しアドレスADが、アタック部読み出し波形の
終了アドレスEND.ADと同一になると、上述したア
ドレス設定回路8に対して、ループ波形要求信号LOO
P.REQを出力する。また、この場合には、位相発生
回路11に対して、生成している位相情報をリセットす
るためのリセット要求信号RESET.REQを出力す
る。
【0017】上記ループ波形要求信号LOOP.REQ
が供給されたアドレス設定回路8は、波形記憶回路10
よりループ部波形読出開始アドレスSTART.AD
と、ループ部波形読出終了アドレスEND.ADとを読
出し、これをアドレス生成回路9に供給する。この場
合、ループ部波形は、繰り返し読み出しする必要がある
ので、信号MODEが繰り返し読出を指示する「MOD
E=1」として出力される。このように、読み出し開始
アドレスSTART.ADに対して順次累算される位相
情報の整数部Iにより得られるアドレス信号ADが、波
形記憶回路10に与えられる。これにより、波形記憶回
路10に記憶される波形情報が読み出され、波形信号W
1として出力される。
が供給されたアドレス設定回路8は、波形記憶回路10
よりループ部波形読出開始アドレスSTART.AD
と、ループ部波形読出終了アドレスEND.ADとを読
出し、これをアドレス生成回路9に供給する。この場
合、ループ部波形は、繰り返し読み出しする必要がある
ので、信号MODEが繰り返し読出を指示する「MOD
E=1」として出力される。このように、読み出し開始
アドレスSTART.ADに対して順次累算される位相
情報の整数部Iにより得られるアドレス信号ADが、波
形記憶回路10に与えられる。これにより、波形記憶回
路10に記憶される波形情報が読み出され、波形信号W
1として出力される。
【0018】次に、12は補間回路である。この補間回
路12は、波形信号W1を前述した位相情報の小数部F
に基づいて補間演算を行い、この結果得られる信号W2
を出力する。ここで行われる補間演算は、隣接するサン
プル間、すなわち、2つの波形情報を小数部Fによって
一次直線補間しても良いし、2以上の波形情報を一時記
憶して高次の補間を行っても良い。
路12は、波形信号W1を前述した位相情報の小数部F
に基づいて補間演算を行い、この結果得られる信号W2
を出力する。ここで行われる補間演算は、隣接するサン
プル間、すなわち、2つの波形情報を小数部Fによって
一次直線補間しても良いし、2以上の波形情報を一時記
憶して高次の補間を行っても良い。
【0019】13はエンベロープ生成回路(エンベロー
プジェネレータ)である。このエンベロープ生成回路1
3は、インターフェイス回路16から供給されるキーオ
ンパルス信号KONP、キーオフパルス信号KOFP、
キーコードKC、押鍵速度信号KVおよび音色番号TC
に対応した波形形状のエンベロープ信号ENVを生成す
る。また、このエンベロープ生成回路13にあっては、
各発音チャンネル(この例では、8チャンネル同時発
音)の発音状態を表すエンベロープ情報EN(後述す
る)を発生する。さらに、この回路13にあっては、後
述するように、他の実施例(図17参照)において示す
構成により、各発音チャンネルの内、トランケートすべ
き発音チャンネルを表すトランケート信号TRC(後述
する)を発生する。
プジェネレータ)である。このエンベロープ生成回路1
3は、インターフェイス回路16から供給されるキーオ
ンパルス信号KONP、キーオフパルス信号KOFP、
キーコードKC、押鍵速度信号KVおよび音色番号TC
に対応した波形形状のエンベロープ信号ENVを生成す
る。また、このエンベロープ生成回路13にあっては、
各発音チャンネル(この例では、8チャンネル同時発
音)の発音状態を表すエンベロープ情報EN(後述す
る)を発生する。さらに、この回路13にあっては、後
述するように、他の実施例(図17参照)において示す
構成により、各発音チャンネルの内、トランケートすべ
き発音チャンネルを表すトランケート信号TRC(後述
する)を発生する。
【0020】このエンベロープ生成回路13では、ま
ず、外部から供給される音色番号TC(図示略)によっ
て所定波形を有するエンベロープ信号ENVが規定さ
れ、押鍵速度信号KVに基づき、該信号ENVの最大振
幅レベル(アタックレベル)が設定される。さらに、キ
ーコードKCに応じてエンベロープ信号ENVのレート
(進み具合)が制御される。なお、この信号ENVのレ
ートの内、減衰レートは異なる2つのレートによる2段
減衰過程(後述する)、あるいは通常の1段減衰過程を
とる。また、キーオンパルス信号KONP及びキーオフ
パルス信号KOFPは、エンベロープ信号ENVを形成
する際のタイミング制御に用いられる。14は乗算回路
であり、エンベロープ生成回路13から出力されるエン
ベロープ信号ENVを反転した信号と補間回路12から
出力される信号W2とを乗算し、この乗算結果を上述し
た楽音信号Wとして出力する。
ず、外部から供給される音色番号TC(図示略)によっ
て所定波形を有するエンベロープ信号ENVが規定さ
れ、押鍵速度信号KVに基づき、該信号ENVの最大振
幅レベル(アタックレベル)が設定される。さらに、キ
ーコードKCに応じてエンベロープ信号ENVのレート
(進み具合)が制御される。なお、この信号ENVのレ
ートの内、減衰レートは異なる2つのレートによる2段
減衰過程(後述する)、あるいは通常の1段減衰過程を
とる。また、キーオンパルス信号KONP及びキーオフ
パルス信号KOFPは、エンベロープ信号ENVを形成
する際のタイミング制御に用いられる。14は乗算回路
であり、エンベロープ生成回路13から出力されるエン
ベロープ信号ENVを反転した信号と補間回路12から
出力される信号W2とを乗算し、この乗算結果を上述し
た楽音信号Wとして出力する。
【0021】C.波形記憶回路10の構成 次に、図3は、前述した波形記憶回路10(図2参照)
に具備される波形メモリの記憶形態を示すメモリマップ
図である。この波形メモリには、楽音立上がりの際に用
いられるアタック波形部と、このアタック波形部から発
生楽音を維持するのに用いられるループ波形部とがそれ
ぞれ独立して記憶されている。楽音立上がり部分のアタ
ック波形は、楽器固有の音色を決める非常に特徴的な波
形であるため、その情報量を圧縮するのが難しい。一
方、これに対し、定常部となるループ波形は、変化が少
なく、同一波形にエンベロープを付与し、これを繰り返
し読み出しするため、その情報量を圧縮することができ
る。
に具備される波形メモリの記憶形態を示すメモリマップ
図である。この波形メモリには、楽音立上がりの際に用
いられるアタック波形部と、このアタック波形部から発
生楽音を維持するのに用いられるループ波形部とがそれ
ぞれ独立して記憶されている。楽音立上がり部分のアタ
ック波形は、楽器固有の音色を決める非常に特徴的な波
形であるため、その情報量を圧縮するのが難しい。一
方、これに対し、定常部となるループ波形は、変化が少
なく、同一波形にエンベロープを付与し、これを繰り返
し読み出しするため、その情報量を圧縮することができ
る。
【0022】図3では、それらの内、アタック波形部の
記憶形態の概念を示している。すなわち、この波形メモ
リでは、押鍵速度およびその押鍵された鍵域に対応させ
てアタック波形部の記憶領域を分割し、これに基づいて
異なった波形が得られるようにしている。なお、この図
に示すWA(M,N)は、記憶領域の配列要素を表して
いる。このような記憶領域の分割は、各押鍵速度、各音
高毎にするのが理想的である。しかしながら、このよう
にすると、メモリ占有領域が増すため、それぞれに代表
的な波形を具備させる場合が多い。
記憶形態の概念を示している。すなわち、この波形メモ
リでは、押鍵速度およびその押鍵された鍵域に対応させ
てアタック波形部の記憶領域を分割し、これに基づいて
異なった波形が得られるようにしている。なお、この図
に示すWA(M,N)は、記憶領域の配列要素を表して
いる。このような記憶領域の分割は、各押鍵速度、各音
高毎にするのが理想的である。しかしながら、このよう
にすると、メモリ占有領域が増すため、それぞれに代表
的な波形を具備させる場合が多い。
【0023】次に、図4は、上述した波形メモリの概念
に基づき、実際のメモリ上で配置された場合の具体例を
示すメモリ配置図である。すなわち、図4(a)は波形
メモリ全体の構成を示すメモリマップであり、同図
(b)はアタック部テーブルの内容を示すメモリマップ
である。これらメモリマップにおいて、ITレンジおよ
びKCレンジは、図3に示す押鍵速度とキーバンク(音
高)とを幾つに分割するかを示す数値である。これらレ
ンジに続いて、分割された各領域毎の波形情報の読み出
し開始アドレスおよび読み出し終了アドレスが登録され
る。
に基づき、実際のメモリ上で配置された場合の具体例を
示すメモリ配置図である。すなわち、図4(a)は波形
メモリ全体の構成を示すメモリマップであり、同図
(b)はアタック部テーブルの内容を示すメモリマップ
である。これらメモリマップにおいて、ITレンジおよ
びKCレンジは、図3に示す押鍵速度とキーバンク(音
高)とを幾つに分割するかを示す数値である。これらレ
ンジに続いて、分割された各領域毎の波形情報の読み出
し開始アドレスおよび読み出し終了アドレスが登録され
る。
【0024】次いで、同図(c)は、ループ部テーブル
の内容を示すメモリマップであり、その構成については
上述のアタック部のものと同等である。なお、このルー
プ部テーブルでは、アタック部波形と同様にその記憶領
域が分割されているが、それぞれのITレンジおよびK
Cレンジを異ならせることにより、分割形態を異ならせ
ることもできる。次に、同図(d)は、波形記憶部の内
容を示すメモリマップである。ここでは、上記アタック
部テーブルとループ部テーブルとによって指定されたア
ドレスに、各波形情報が記憶されている。なお、それぞ
れの波形情報は、各波形間の接続を容易にするため、ア
タック波形では読み出し終了アドレスにおいて0位相が
補償され、また、ループ波形では読み出し開始アドレス
と読み出し終了アドレスとの双方において0位相が補償
されている。
の内容を示すメモリマップであり、その構成については
上述のアタック部のものと同等である。なお、このルー
プ部テーブルでは、アタック部波形と同様にその記憶領
域が分割されているが、それぞれのITレンジおよびK
Cレンジを異ならせることにより、分割形態を異ならせ
ることもできる。次に、同図(d)は、波形記憶部の内
容を示すメモリマップである。ここでは、上記アタック
部テーブルとループ部テーブルとによって指定されたア
ドレスに、各波形情報が記憶されている。なお、それぞ
れの波形情報は、各波形間の接続を容易にするため、ア
タック波形では読み出し終了アドレスにおいて0位相が
補償され、また、ループ波形では読み出し開始アドレス
と読み出し終了アドレスとの双方において0位相が補償
されている。
【0025】D.インタフェース回路16の構成 図5は、前述したインタフェース回路16の構成を示す
ブロック図である。この図に示すように、インタフェー
ス回路16は、CPU2から供給される各種信号から楽
音合成に必要な各種動作パラメータを発生する。また、
エンベロープ生成回路13から非時分割で供給されるエ
ンベロープ情報EN、あるいはトランケート信号TRC
を記憶する。CPU2は、記憶されたエンベロープ情報
EN、あるいはトランケート信号TRCを所定のタイミ
ングで読み出す。なお、このインターフェイス回路16
では、複音発音(例えば、8音同時発音)を実現するた
め、上記動作パラメータ(KONP,KON,KOF
P,KOF,TC,TYPE,KC,KV)を時分割で
生成し、これを楽音合成回路7の各種回路に供給するよ
うに構成されている。なお、パラメータKONは、KO
NPの入力に応じて1にセットされKOFPの発生に応
じてリセットされ、パラメータKOFは、KOFPの入
力に応じて1にセットされKONPの発生に応じてリセ
ットされる。
ブロック図である。この図に示すように、インタフェー
ス回路16は、CPU2から供給される各種信号から楽
音合成に必要な各種動作パラメータを発生する。また、
エンベロープ生成回路13から非時分割で供給されるエ
ンベロープ情報EN、あるいはトランケート信号TRC
を記憶する。CPU2は、記憶されたエンベロープ情報
EN、あるいはトランケート信号TRCを所定のタイミ
ングで読み出す。なお、このインターフェイス回路16
では、複音発音(例えば、8音同時発音)を実現するた
め、上記動作パラメータ(KONP,KON,KOF
P,KOF,TC,TYPE,KC,KV)を時分割で
生成し、これを楽音合成回路7の各種回路に供給するよ
うに構成されている。なお、パラメータKONは、KO
NPの入力に応じて1にセットされKOFPの発生に応
じてリセットされ、パラメータKOFは、KOFPの入
力に応じて1にセットされKONPの発生に応じてリセ
ットされる。
【0026】E.エンベロープ生成回路13の構成 前述したエンベロープ生成回路13は、レート/ターゲ
ット設定部20と、状態制御部23と、エンベロープ形
成部30と、エンベロープ情報発生部40とからなり、
以下では、これら各部の構成について順次説明する。 レート/ターゲット設定部20の構成 まず、図6はレート/ターゲット設定部20の構成を示
すブロック図である。この図において、21は変換テー
ブルであり、供給されるキーコードKCおよび音色番号
TCに応じて変換テーブルを参照し、各種パラメータを
発生する。この各種パラメータとは、アタックレートA
R、第1ディケイレートD1R、第1ディケイレベルD
1L、第2ディケイレートD2R、第2ディケイレベル
D2Lおよび第3ディケイレートD3Rである。
ット設定部20と、状態制御部23と、エンベロープ形
成部30と、エンベロープ情報発生部40とからなり、
以下では、これら各部の構成について順次説明する。 レート/ターゲット設定部20の構成 まず、図6はレート/ターゲット設定部20の構成を示
すブロック図である。この図において、21は変換テー
ブルであり、供給されるキーコードKCおよび音色番号
TCに応じて変換テーブルを参照し、各種パラメータを
発生する。この各種パラメータとは、アタックレートA
R、第1ディケイレートD1R、第1ディケイレベルD
1L、第2ディケイレートD2R、第2ディケイレベル
D2Lおよび第3ディケイレートD3Rである。
【0027】ここで、上記パラメータについて、図10
(ロ)に示すエンベロープ波形例を参照して説明する。
まず、アタックレートARとは、キーオンと共に立上が
るエンベロープ波形の傾きを表すデータである。第1お
よび第2ディケイレートD1R,D2Rとは、それぞれ
2段減衰過程を再現する減衰レートである。すなわち、
エンベロープ波形の立上がりピークから第1ディケイレ
ベルD1Lにまで減衰する場合には、この第1ディケイ
レートD1Rで減衰し、続いて第2ディケイレベルD2
Lにまで減衰する際に第2ディケイレートD2Rが使用
される。また、第3ディケイレートとは、サステイン状
態後にリリースされる際の減衰レートとなる。
(ロ)に示すエンベロープ波形例を参照して説明する。
まず、アタックレートARとは、キーオンと共に立上が
るエンベロープ波形の傾きを表すデータである。第1お
よび第2ディケイレートD1R,D2Rとは、それぞれ
2段減衰過程を再現する減衰レートである。すなわち、
エンベロープ波形の立上がりピークから第1ディケイレ
ベルD1Lにまで減衰する場合には、この第1ディケイ
レートD1Rで減衰し、続いて第2ディケイレベルD2
Lにまで減衰する際に第2ディケイレートD2Rが使用
される。また、第3ディケイレートとは、サステイン状
態後にリリースされる際の減衰レートとなる。
【0028】次に、再び図6に戻り、レート/ターゲッ
ト設定部20の構成について説明する。図において、2
2は選択回路である。この選択回路22は、現在の波形
制御状態を表すステート信号S1,S0に基づき、次に
波形制御する際の指標となる制御パラメータ(RAT
E,TARGET,HOLD,AT0)を生成する。こ
の制御パラメータの内、RATEはエンベロープ信号E
NVの傾きを表すデータであり、例えば、キーオンと共
にエンベロープ波形を立上がらせる場合、アタックレー
トARが選択され、これがデータRATEとして次段へ
出力される。また、エンベロープ波形を減衰させる場合
には、第1ディケイレートD1R、第2ディケイレート
D2Rおよび第3ディケイレートD3Rのいずれかが選
択され、データRATEとして出力される。この選択に
際しては、上記ステート信号S1,S0が参照される。
ト設定部20の構成について説明する。図において、2
2は選択回路である。この選択回路22は、現在の波形
制御状態を表すステート信号S1,S0に基づき、次に
波形制御する際の指標となる制御パラメータ(RAT
E,TARGET,HOLD,AT0)を生成する。こ
の制御パラメータの内、RATEはエンベロープ信号E
NVの傾きを表すデータであり、例えば、キーオンと共
にエンベロープ波形を立上がらせる場合、アタックレー
トARが選択され、これがデータRATEとして次段へ
出力される。また、エンベロープ波形を減衰させる場合
には、第1ディケイレートD1R、第2ディケイレート
D2Rおよび第3ディケイレートD3Rのいずれかが選
択され、データRATEとして出力される。この選択に
際しては、上記ステート信号S1,S0が参照される。
【0029】次に、上記制御パラメータの内、データT
ARGETは減衰過程にあるエンベロープ信号ENVの
振幅を制御する際の目標値であり、上述した第1ディケ
イレベルD1Lおよび第2ディケイレベルD2Lのいず
れかが選択される。また、データHOLDとは、エンベ
ロープ波形におけるサステイン状態を形成する際に参照
されるデータである。また、データAT0は、エンベロ
ープ波形立上がり部分のアタックレベルを表すデータで
ある。なお、このように一意的にアタックレベルを発生
しているのは、発音開始時の遅れを防ぐためである。例
えば、テーブル参照方式でアタックレベルを発生させる
ようにすると、楽音発生に際してディレイが生じ、発音
の開始が遅れてしまうからである。
ARGETは減衰過程にあるエンベロープ信号ENVの
振幅を制御する際の目標値であり、上述した第1ディケ
イレベルD1Lおよび第2ディケイレベルD2Lのいず
れかが選択される。また、データHOLDとは、エンベ
ロープ波形におけるサステイン状態を形成する際に参照
されるデータである。また、データAT0は、エンベロ
ープ波形立上がり部分のアタックレベルを表すデータで
ある。なお、このように一意的にアタックレベルを発生
しているのは、発音開始時の遅れを防ぐためである。例
えば、テーブル参照方式でアタックレベルを発生させる
ようにすると、楽音発生に際してディレイが生じ、発音
の開始が遅れてしまうからである。
【0030】状態制御部23の構成 図7は、状態制御部23の構成を示す回路図である。こ
の状態制御部23はLSI化された状態管理ユニット2
3aとタイミング制御ユニット23bとから構成されて
いる。この図において、24,…,24は入力信号を反
転して出力するインバータである。25,25はシフト
レジスタであり、エンベロープ信号ENVの状態を表す
ステート信号S1,S0がそれぞれ一時記憶される。2
6は、マトリクス配置され、図中の白丸で示される各入
力信号の論理積を出力するアンドゲート、27はオアゲ
ートである。
の状態制御部23はLSI化された状態管理ユニット2
3aとタイミング制御ユニット23bとから構成されて
いる。この図において、24,…,24は入力信号を反
転して出力するインバータである。25,25はシフト
レジスタであり、エンベロープ信号ENVの状態を表す
ステート信号S1,S0がそれぞれ一時記憶される。2
6は、マトリクス配置され、図中の白丸で示される各入
力信号の論理積を出力するアンドゲート、27はオアゲ
ートである。
【0031】状態管理ユニット23aは、現在のエンベ
ロープ信号ENVの状態と、各部から供給される入力情
報IDとに応じて、次に制御すべき状態を表すステート
データDSを発生する。このステートデータDSの生成
過程については、後述する。
ロープ信号ENVの状態と、各部から供給される入力情
報IDとに応じて、次に制御すべき状態を表すステート
データDSを発生する。このステートデータDSの生成
過程については、後述する。
【0032】タイミング制御ユニット23bは、上記ユ
ニット23aと同様に、現在の状態と各部から供給され
る入力情報IDとに応じて、エンベロープ発生部30
(後述する)に対し、次にロードすべきデータを指示す
る選択信号SELを発生する。例えば、図中に示すライ
ンAに示す入力関係では、ダンプ状態にあり、かつ、現
在の状態が「3」の場合には、信号「ADDER SE
L」(後述する)が生成される。なお、このようにして
生成される選択信号SELは、後述するエンベロープ形
成部30において用いられる。
ニット23aと同様に、現在の状態と各部から供給され
る入力情報IDとに応じて、エンベロープ発生部30
(後述する)に対し、次にロードすべきデータを指示す
る選択信号SELを発生する。例えば、図中に示すライ
ンAに示す入力関係では、ダンプ状態にあり、かつ、現
在の状態が「3」の場合には、信号「ADDER SE
L」(後述する)が生成される。なお、このようにして
生成される選択信号SELは、後述するエンベロープ形
成部30において用いられる。
【0033】エンベロープ形成部30の構成 図8は、エンベロープ形成部30の構成を示すブロック
図である。この図において、31はセレクタであり、4
入力端「00」〜「11」に各々セットされた12ビッ
トのデータの内、いずれかが上述したステート信号S
1,S0に応じて選択され出力される。すなわち、入力
端「00(0)」が選択された場合には”0000”
(16進表示)が、入力端「01(1)」が選択された
場合には12ビットで表された第1ディケイレベルD1
Lが、入力端「10(2)」が選択された場合には、1
2ビットで表された第2ディケイレベルD2Lが、入力
端「11(3)」が選択された場合には”1FFF”
(16進表示)がそれぞれ出力端OUTから出力され
る。この出力端OUTから出力される12ビットのデー
タは、エンベロープ信号ENVの振幅レベルを制御する
際の目標値となるものであり、目標データTARGET
と定義する。
図である。この図において、31はセレクタであり、4
入力端「00」〜「11」に各々セットされた12ビッ
トのデータの内、いずれかが上述したステート信号S
1,S0に応じて選択され出力される。すなわち、入力
端「00(0)」が選択された場合には”0000”
(16進表示)が、入力端「01(1)」が選択された
場合には12ビットで表された第1ディケイレベルD1
Lが、入力端「10(2)」が選択された場合には、1
2ビットで表された第2ディケイレベルD2Lが、入力
端「11(3)」が選択された場合には”1FFF”
(16進表示)がそれぞれ出力端OUTから出力され
る。この出力端OUTから出力される12ビットのデー
タは、エンベロープ信号ENVの振幅レベルを制御する
際の目標値となるものであり、目標データTARGET
と定義する。
【0034】次に、32は第1比較回路であり、入力端
Aに供給される現在のエンベロープ振幅レベルを表すデ
ータEGと、入力端Bに供給される上記目標データTA
RGETとを比較し、「A>B」なる場合にデータGT
を発生し、「A=B」なる場合にデータEQを発生す
る。33は第1比較回路32の比較結果に応じて新たな
エンベロープ振幅レベルを算出する演算回路である。こ
の演算回路33は、データEGが目標データTARGE
Tより大きい場合には、入力端Aに供給されるデータE
Gを、入力端Bに供給されるデータRATE、すなわ
ち、エンベロープ信号ENVの傾きを表すデータ(6ビ
ット)に応じて減算し、この減算結果をデータCEGと
して出力する。このデータCEGは、新たなエンベロー
プ振幅レベルを表すデータとなる。一方、データEGが
目標データTARGETより小さい(GT=0)の場合
には、データEGとデータRATEとを加算してデータ
CEQとして出力する。この加算によりオーバーフロー
が生じた場合には、データOVFが出力される。
Aに供給される現在のエンベロープ振幅レベルを表すデ
ータEGと、入力端Bに供給される上記目標データTA
RGETとを比較し、「A>B」なる場合にデータGT
を発生し、「A=B」なる場合にデータEQを発生す
る。33は第1比較回路32の比較結果に応じて新たな
エンベロープ振幅レベルを算出する演算回路である。こ
の演算回路33は、データEGが目標データTARGE
Tより大きい場合には、入力端Aに供給されるデータE
Gを、入力端Bに供給されるデータRATE、すなわ
ち、エンベロープ信号ENVの傾きを表すデータ(6ビ
ット)に応じて減算し、この減算結果をデータCEGと
して出力する。このデータCEGは、新たなエンベロー
プ振幅レベルを表すデータとなる。一方、データEGが
目標データTARGETより小さい(GT=0)の場合
には、データEGとデータRATEとを加算してデータ
CEQとして出力する。この加算によりオーバーフロー
が生じた場合には、データOVFが出力される。
【0035】次に、34は第2比較回路であり、入力端
Aに供給されるデータCEGと、入力端Bに供給される
目標データTARGETとを比較し、「A>B」なる場
合にデータCGTを発生する。この第2比較回路34
は、第1比較回路32と同様の構成である。このよう
に、演算回路33の前後段にそれぞれ第1比較回路32
と第2比較回路34とを設けたのは、次の理由による。
Aに供給されるデータCEGと、入力端Bに供給される
目標データTARGETとを比較し、「A>B」なる場
合にデータCGTを発生する。この第2比較回路34
は、第1比較回路32と同様の構成である。このよう
に、演算回路33の前後段にそれぞれ第1比較回路32
と第2比較回路34とを設けたのは、次の理由による。
【0036】演算回路33において、エンベロープのア
タック部では、現在のエンベロープの振幅レベルからア
タックレートを減算し、ループ部では、現在のエンベロ
ープの振幅レベルにレートを加算しなければならない。
そこで、ループ部においては、常に現在のエンベロープ
の振幅レベルは目標となる振幅レベルよりも小さいこと
を利用して、まず、第1比較回路32によって、現在の
エンベロープ振幅レベルと目標となる振幅レベルとを比
較し、現在のエンベロープの振幅レベルが目標となる振
幅レベルよりも大きいときには演算回路33で減算し小
さいときには加算するようにする。
タック部では、現在のエンベロープの振幅レベルからア
タックレートを減算し、ループ部では、現在のエンベロ
ープの振幅レベルにレートを加算しなければならない。
そこで、ループ部においては、常に現在のエンベロープ
の振幅レベルは目標となる振幅レベルよりも小さいこと
を利用して、まず、第1比較回路32によって、現在の
エンベロープ振幅レベルと目標となる振幅レベルとを比
較し、現在のエンベロープの振幅レベルが目標となる振
幅レベルよりも大きいときには演算回路33で減算し小
さいときには加算するようにする。
【0037】このようにした場合、第1比較回路32に
おいて、ループ部であるにもかかわらず、演算回路の演
算結果(すなわち、現在のエンベロープの振幅レベル)
が目標となるレベルよりも大きくなってしまうことがあ
る。そこで、第2比較回路34で演算回路33により生
成された新たなエンベロープ振幅レベルと目標となる振
幅レベルとを比較して、エンベロープ信号ENVの振幅
が目標値に達したことを検出するようにして、セレクタ
35において目標となる振幅レベルを現在のエンベロー
プの振幅レベルとして出力して第1比較回路に供給する
ようにしている訳である。
おいて、ループ部であるにもかかわらず、演算回路の演
算結果(すなわち、現在のエンベロープの振幅レベル)
が目標となるレベルよりも大きくなってしまうことがあ
る。そこで、第2比較回路34で演算回路33により生
成された新たなエンベロープ振幅レベルと目標となる振
幅レベルとを比較して、エンベロープ信号ENVの振幅
が目標値に達したことを検出するようにして、セレクタ
35において目標となる振幅レベルを現在のエンベロー
プの振幅レベルとして出力して第1比較回路に供給する
ようにしている訳である。
【0038】次に、35はセレクタであり、入力端A〜
Cに供給されるデータのいずれか1つを選択信号SEL
に応じて選択して出力する。ここで、入力端Aには上述
したデータCEGが供給され、入力端Bには”1FFF
(16進表示)”が供給され、入力端Cには前述した目
標データTARGETが供給される。また、この選択信
号SELは、前述したタイミング制御ユニット23b
(図7参照)において発生する信号であり、入力端Aに
供給されるデータを選択する信号「ADDERSEL」
と、入力端Bに供給されるデータを選択する信号「1F
FF SEL」と、入力端Cに供給されるデータを選択
する信号「TARGET SEL」とからなる。
Cに供給されるデータのいずれか1つを選択信号SEL
に応じて選択して出力する。ここで、入力端Aには上述
したデータCEGが供給され、入力端Bには”1FFF
(16進表示)”が供給され、入力端Cには前述した目
標データTARGETが供給される。また、この選択信
号SELは、前述したタイミング制御ユニット23b
(図7参照)において発生する信号であり、入力端Aに
供給されるデータを選択する信号「ADDERSEL」
と、入力端Bに供給されるデータを選択する信号「1F
FF SEL」と、入力端Cに供給されるデータを選択
する信号「TARGET SEL」とからなる。
【0039】次に、36はシフトレジスタであり、セレ
クタ35から出力されるデータを一時記憶する。なお、
このシフトレジスタ36は、8音同時発音に対応して時
分割動作するように構成されている。37は変換テーブ
ルであり、押鍵速度信号KVに基づき生成される押鍵情
報IT(イニシャルタッチ)、すなわち、演奏者の押鍵
タッチに対応した乗算係数Kを発生する。38は乗算器
であり、シフトレジスタ36から出力されるデータに乗
算係数Kを乗算し、この乗算結果をエンベロープ信号E
NVとして出力する。
クタ35から出力されるデータを一時記憶する。なお、
このシフトレジスタ36は、8音同時発音に対応して時
分割動作するように構成されている。37は変換テーブ
ルであり、押鍵速度信号KVに基づき生成される押鍵情
報IT(イニシャルタッチ)、すなわち、演奏者の押鍵
タッチに対応した乗算係数Kを発生する。38は乗算器
であり、シフトレジスタ36から出力されるデータに乗
算係数Kを乗算し、この乗算結果をエンベロープ信号E
NVとして出力する。
【0040】39は、図9に示すように、排他的オアゲ
ート39a,39bと、オアゲート39cとから構成さ
れる検出回路である。この検出回路39は、前述したデ
ータEQ、データGT、データOVFおよびデータCG
Tに基づき、現状のエンベロープ振幅レベルの状態を検
出する。すなわち、現状のエンベロープ振幅レベルが目
標値より大きい場合を表すデータGTと、算出されたエ
ンベロープ振幅レベルが目標値より大、あるいは等しい
場合を表すデータTGTEQとを発生する。なお、この
検出回路39から出力されるデータGTおよびデータT
GTEQは、前述した状態管理ユニット23aの入力情
報IDとして用いられる。
ート39a,39bと、オアゲート39cとから構成さ
れる検出回路である。この検出回路39は、前述したデ
ータEQ、データGT、データOVFおよびデータCG
Tに基づき、現状のエンベロープ振幅レベルの状態を検
出する。すなわち、現状のエンベロープ振幅レベルが目
標値より大きい場合を表すデータGTと、算出されたエ
ンベロープ振幅レベルが目標値より大、あるいは等しい
場合を表すデータTGTEQとを発生する。なお、この
検出回路39から出力されるデータGTおよびデータT
GTEQは、前述した状態管理ユニット23aの入力情
報IDとして用いられる。
【0041】以上に説明したレート/ターゲット設定部
20、状態制御部23およびエンベロープ形成部30の
構成によれば、エンベロープ生成回路13において規定
される動作モードに従って、以下に示すエンベロープ信
号ENVが生成される。なお、ここで言う動作モードと
は、通常の減衰過程を経る「ノーマルモード」と、前述
した2段減衰過程を経る「ピアノモード」とであり、こ
れらは外部から供給されるデータTYPE(図示略)に
基づいて設定される。以下、これら動作モード下におい
て発生するエンベロープ信号ENVについて図10を参
照し、説明する。
20、状態制御部23およびエンベロープ形成部30の
構成によれば、エンベロープ生成回路13において規定
される動作モードに従って、以下に示すエンベロープ信
号ENVが生成される。なお、ここで言う動作モードと
は、通常の減衰過程を経る「ノーマルモード」と、前述
した2段減衰過程を経る「ピアノモード」とであり、こ
れらは外部から供給されるデータTYPE(図示略)に
基づいて設定される。以下、これら動作モード下におい
て発生するエンベロープ信号ENVについて図10を参
照し、説明する。
【0042】 a)ノーマルモード時のエンベロープ信号ENV この「ノーマルモード」では、エンベロープ信号ENV
の波形が図10(イ)に示す態様で制御される。 (イ)キーオフ状態あるいはダンプ状態にある場合 この場合、図7に示すように、状態管理ユニット23a
では、ラインa(ダンプ状態)またはラインb(キーオ
フ状態)に示す入力関係に基づきステートデータDSが
「3」となる。また、タイミング制御ユニット23bで
は、ラインBに示す入力関係に基づき、信号「TARG
ET SEL」が生成される。なお、この時の目標デー
タTARGETには、セレクタ31において”1FF
F”がセットされている。
の波形が図10(イ)に示す態様で制御される。 (イ)キーオフ状態あるいはダンプ状態にある場合 この場合、図7に示すように、状態管理ユニット23a
では、ラインa(ダンプ状態)またはラインb(キーオ
フ状態)に示す入力関係に基づきステートデータDSが
「3」となる。また、タイミング制御ユニット23bで
は、ラインBに示す入力関係に基づき、信号「TARG
ET SEL」が生成される。なお、この時の目標デー
タTARGETには、セレクタ31において”1FF
F”がセットされている。
【0043】(ロ)キーオン時点の場合 キーオンがなされた場合、レート/ターゲット設定回路
20(図6参照)において生成されるアタックレートA
Rと、アタックレベルAT0(”0000”)とに基づ
きエンベロープ信号ENVが立上がる。この際のステー
トデータDSは一意的に「0」となる。なお、この立上
がりに先立ち、タイミング制御ユニット23bでは、ラ
インCに示す入力関係に基づき、信号「1FFF SE
L」を生成する。このようにしたのは、データEGを一
旦、”1FFF”のレベルにリセットするためである。
20(図6参照)において生成されるアタックレートA
Rと、アタックレベルAT0(”0000”)とに基づ
きエンベロープ信号ENVが立上がる。この際のステー
トデータDSは一意的に「0」となる。なお、この立上
がりに先立ち、タイミング制御ユニット23bでは、ラ
インCに示す入力関係に基づき、信号「1FFF SE
L」を生成する。このようにしたのは、データEGを一
旦、”1FFF”のレベルにリセットするためである。
【0044】(ハ)キーオン中にある場合 エンベロープ振幅レベルがアタックレベルAT0(”0
000”)に達し、かつ、キーオン中で以前の状態が
「0」であると、ラインcに示す入力関係からステート
データDSは「1」になる。この結果、エンベロープ信
号ENVは、第1ディケイレートD1Rで減衰する。続
いて、ラインeに示す入力関係に移行すると、ステート
データDSが「2」になり、第2ディケイレートD2R
でエンベロープ信号ENVが減衰する。そして、エンベ
ロープ振幅レベルが第2ディケイレベルD2Lに達する
と、ラインfに示す入力関係から第2ディケイレベルD
2Lに保持される。
000”)に達し、かつ、キーオン中で以前の状態が
「0」であると、ラインcに示す入力関係からステート
データDSは「1」になる。この結果、エンベロープ信
号ENVは、第1ディケイレートD1Rで減衰する。続
いて、ラインeに示す入力関係に移行すると、ステート
データDSが「2」になり、第2ディケイレートD2R
でエンベロープ信号ENVが減衰する。そして、エンベ
ロープ振幅レベルが第2ディケイレベルD2Lに達する
と、ラインfに示す入力関係から第2ディケイレベルD
2Lに保持される。
【0045】(ニ)キーオフ時の場合 キーオフ(図10(イ)に示すキーオフA)された場合
には、ラインgに示す入力関係からステートデータDS
は一意的に「3」に設定される。これにより、第3ディ
ケイレートD3Rに基づきエンベロープ信号ENVがリ
リースされることになる。
には、ラインgに示す入力関係からステートデータDS
は一意的に「3」に設定される。これにより、第3ディ
ケイレートD3Rに基づきエンベロープ信号ENVがリ
リースされることになる。
【0046】(ホ)アタック状態でキーオフされた場合 ところで、アタックレートARでエンベロープ信号EN
Vが立上がっている途中でキーオフ(キーオフB)がな
された場合には、上記項の動作に従って第3ディケイ
レートD3Rに基づき減衰する。このように、ノーマル
モードにおいては、アタック状態でキーオフされると、
2段減衰せずに直ちに減衰する。
Vが立上がっている途中でキーオフ(キーオフB)がな
された場合には、上記項の動作に従って第3ディケイ
レートD3Rに基づき減衰する。このように、ノーマル
モードにおいては、アタック状態でキーオフされると、
2段減衰せずに直ちに減衰する。
【0047】 b)ピアノモード時のエンベロープ信号ENV この「ピアノモード」にあっては、アタックレベルAT
0(”0000”)に達する押鍵操作が行われた場合、
上記ノーマルモードと同様のエンベロープ制御が実行さ
れる。したがって、このモードにおける特徴は、アタッ
ク状態でキーオフがなされても2段減衰するようにエン
ベロープ信号ENVを制御することにある。以下では、
この動作について説明する。
0(”0000”)に達する押鍵操作が行われた場合、
上記ノーマルモードと同様のエンベロープ制御が実行さ
れる。したがって、このモードにおける特徴は、アタッ
ク状態でキーオフがなされても2段減衰するようにエン
ベロープ信号ENVを制御することにある。以下では、
この動作について説明する。
【0048】(イ)第1ディケイレベルD1L以上でキ
ーオフされる場合 この場合、状態管理ユニット23aでのラインh(図7
参照)に示す入力関係からステートデータDSは「1」
となり、エンベロープ信号ENVは第1ディケイレート
D1Rで減衰する。そして、エンベロープ振幅レベルが
第2ディケイレベルに達すると、ラインkに示す入力関
係からステートデータDSが「3」となり、第3ディケ
イレートD3Rで該信号ENVが減衰する。この結果、
アタック状態でキーオフがなされてもピアノ特有の2段
減衰過程を再現することが可能になる。
ーオフされる場合 この場合、状態管理ユニット23aでのラインh(図7
参照)に示す入力関係からステートデータDSは「1」
となり、エンベロープ信号ENVは第1ディケイレート
D1Rで減衰する。そして、エンベロープ振幅レベルが
第2ディケイレベルに達すると、ラインkに示す入力関
係からステートデータDSが「3」となり、第3ディケ
イレートD3Rで該信号ENVが減衰する。この結果、
アタック状態でキーオフがなされてもピアノ特有の2段
減衰過程を再現することが可能になる。
【0049】(ロ)第1ディケイレベルD1L以下でキ
ーオフされる場合 この場合においては、低い振幅レベルから減衰させるた
め、2段減衰させる必要がなく、ラインlに示す入力関
係から一意的にステートデータDSを「3」に設定し、
第3ディケイレートD3Rでエンベロープ信号ENVを
減衰させている。
ーオフされる場合 この場合においては、低い振幅レベルから減衰させるた
め、2段減衰させる必要がなく、ラインlに示す入力関
係から一意的にステートデータDSを「3」に設定し、
第3ディケイレートD3Rでエンベロープ信号ENVを
減衰させている。
【0050】エンベロープ情報発生部40の構成 次に、図11は、上述のように生成される各発音チャン
ネル毎のエンベロープ信号ENVからエンベロープ情報
ENを発生するエンベロープ情報発生部40の構成を示
すブロック図である。この図において、41はキャリー
入力端CIに「0」がセットされ、入力端A0〜A12に
供給されるエンベロープ信号ENV(13ビット)と、
入力端B0〜B12に供給されるデータ(13ビット)と
を加算する全加算器である。この入力端B0〜B12に
は、インバータ42,…,42を介して反転されるスレ
ッショルドデータTHが供給される。スレッショルドデ
ータTHは、エンベロープ信号ENVの振幅レベルを判
定するためのデータであり、スレッショルドデータTH
以上のレベルである時に、対応する発音チャンネルが減
衰状態にあると判定するようにしている。
ネル毎のエンベロープ信号ENVからエンベロープ情報
ENを発生するエンベロープ情報発生部40の構成を示
すブロック図である。この図において、41はキャリー
入力端CIに「0」がセットされ、入力端A0〜A12に
供給されるエンベロープ信号ENV(13ビット)と、
入力端B0〜B12に供給されるデータ(13ビット)と
を加算する全加算器である。この入力端B0〜B12に
は、インバータ42,…,42を介して反転されるスレ
ッショルドデータTHが供給される。スレッショルドデ
ータTHは、エンベロープ信号ENVの振幅レベルを判
定するためのデータであり、スレッショルドデータTH
以上のレベルである時に、対応する発音チャンネルが減
衰状態にあると判定するようにしている。
【0051】ここで、全加算器41は、エンベロープ信
号ENVとスレッショルドデータTHとを加算し、エン
ベロープ信号ENVのレベルが該スレッショルドより大
きくなった時点でキャリー出力端子COからキャリーア
ウトを出力する。43は前述したステート信号S1,S
0の論理和を出力するオアゲート。このオアゲート43
は、エンベロープ信号ENVがアタック状態にある時、
スレッショルドレベルより大きいと判断されないように
するため、ステート信号S1,S0のオアを形成してい
る。44はキャリー出力端COの出力と、オアゲート4
3の出力との論理積を出力するアンドゲートである。
号ENVとスレッショルドデータTHとを加算し、エン
ベロープ信号ENVのレベルが該スレッショルドより大
きくなった時点でキャリー出力端子COからキャリーア
ウトを出力する。43は前述したステート信号S1,S
0の論理和を出力するオアゲート。このオアゲート43
は、エンベロープ信号ENVがアタック状態にある時、
スレッショルドレベルより大きいと判断されないように
するため、ステート信号S1,S0のオアを形成してい
る。44はキャリー出力端COの出力と、オアゲート4
3の出力との論理積を出力するアンドゲートである。
【0052】45はインバータ、46は半加算器であ
る。半加算器46のキャリー入力端CIにはアンドゲー
ト44の出力が供給される。半加算器46の出力の上位
7ビットS0〜S6は、遅延回路48に入力される。この
遅延回路48は、入力信号を1クロック分遅延して出力
するものであり、その出力はアンドゲート48の一方の
入力端に供給される。このアンドゲート48の出力は、
半加算器46の入力端A1〜A7に接続されている。ま
た、アンドゲート48の他方の入力端には、インバータ
45の出力が供給されている。この半加算器46の8ビ
ット出力は、各発音チャンネルに対応したエンベロープ
情報ENを表している。
る。半加算器46のキャリー入力端CIにはアンドゲー
ト44の出力が供給される。半加算器46の出力の上位
7ビットS0〜S6は、遅延回路48に入力される。この
遅延回路48は、入力信号を1クロック分遅延して出力
するものであり、その出力はアンドゲート48の一方の
入力端に供給される。このアンドゲート48の出力は、
半加算器46の入力端A1〜A7に接続されている。ま
た、アンドゲート48の他方の入力端には、インバータ
45の出力が供給されている。この半加算器46の8ビ
ット出力は、各発音チャンネルに対応したエンベロープ
情報ENを表している。
【0053】ここで、半加算器46と遅延回路47とは
ループ回路を形成しており、エンベロープ信号ENVが
スレッショルドレベルTH以上である場合、対応する発
音チャンネルのエンベロープ情報ENを「1」としてラ
ッチ回路49に出力する。すなわち、まず、0/8のタ
イミングにて半加算器46がクリアされ、この後に対応
する発音チャンネルのエンベロープ信号ENVがスレッ
ショルドレベルTH以上であったら、「1」を立てて行
く。そして、7/8のタイミング毎にラッチされ、これ
がエンベロープ情報ENとして前述したインタフェース
回路16を介してCPU2に供給される。なお、ここで
言う0/8のタイミングとは、8クロックで8チャンネ
ル分(第0〜第7チャンネル)のエンベロープ情報EN
を生成する際の最初のクロックタイミングを指してい
る。
ループ回路を形成しており、エンベロープ信号ENVが
スレッショルドレベルTH以上である場合、対応する発
音チャンネルのエンベロープ情報ENを「1」としてラ
ッチ回路49に出力する。すなわち、まず、0/8のタ
イミングにて半加算器46がクリアされ、この後に対応
する発音チャンネルのエンベロープ信号ENVがスレッ
ショルドレベルTH以上であったら、「1」を立てて行
く。そして、7/8のタイミング毎にラッチされ、これ
がエンベロープ情報ENとして前述したインタフェース
回路16を介してCPU2に供給される。なお、ここで
言う0/8のタイミングとは、8クロックで8チャンネ
ル分(第0〜第7チャンネル)のエンベロープ情報EN
を生成する際の最初のクロックタイミングを指してい
る。
【0054】F.実施例の動作 次に、図12〜図18を参照し、上記構成による実施例
の動作について説明する。なお、ここでは、最初にCP
U2において実行されるメインルーチンの動作を示した
後、このメインルーチンを構成する各処理ルーチンにつ
いて順次説明する。
の動作について説明する。なお、ここでは、最初にCP
U2において実行されるメインルーチンの動作を示した
後、このメインルーチンを構成する各処理ルーチンにつ
いて順次説明する。
【0055】メインルーチンの動作 この実施例である電子ピアノに電源が投入されると、ま
ず、CPU2は図12に示すメインルーチンを起動し、
該ルーチンのステップSa1に処理を進める。CPU2
の処理がステップSa1に進むと、各種レジスタやフラ
グ値を初期設定するイニシャライズが行われ、次のステ
ップSa2に進む。ステップSa2では、鍵盤1を走査
して該鍵盤1の押離鍵状態を検出し、検出した鍵イベン
トに応じた発音/消音する鍵処理が行われる。
ず、CPU2は図12に示すメインルーチンを起動し、
該ルーチンのステップSa1に処理を進める。CPU2
の処理がステップSa1に進むと、各種レジスタやフラ
グ値を初期設定するイニシャライズが行われ、次のステ
ップSa2に進む。ステップSa2では、鍵盤1を走査
して該鍵盤1の押離鍵状態を検出し、検出した鍵イベン
トに応じた発音/消音する鍵処理が行われる。
【0056】次いで、ステップSa3に進むと、各発音
チャンネルに対して発音状態を検出し、これに基づき、
発音が完了した空きチャンネル等を設定する終了チャン
ネル検出処理が実行される。そして、以後、上述したス
テップSa2に戻り、電源が切断されるまでステップS
a2〜Sa3の処理を繰り返し実行する。このように、
メインルーチンにおいては、CPU2が各種イベントに
応じた楽音合成を指示するように動作し、この楽音合成
は後述する各種処理によって実現される。
チャンネルに対して発音状態を検出し、これに基づき、
発音が完了した空きチャンネル等を設定する終了チャン
ネル検出処理が実行される。そして、以後、上述したス
テップSa2に戻り、電源が切断されるまでステップS
a2〜Sa3の処理を繰り返し実行する。このように、
メインルーチンにおいては、CPU2が各種イベントに
応じた楽音合成を指示するように動作し、この楽音合成
は後述する各種処理によって実現される。
【0057】鍵処理ルーチンの動作 CPU2の処理が上述したステップSa2に進むと、図
13に示す鍵処理ルーチンが起動され、該ルーチンのス
テップSb1に進む。ステップSb1では、鍵盤1を走
査して該鍵盤1の押離鍵状態を検出する。次いで、ステ
ップSb2に進むと、この鍵盤1の走査において鍵イベ
ントを検出したか否か、すなわち、演奏者による押鍵操
作の有無を判断する。ここで、押鍵操作がなされず、鍵
イベントが発生しない時には、このルーチンを完了し、
メインルーチンへ復帰する。一方、押鍵操作がなされる
と、判断結果が「YES」となり、次のステップSb3
へ進む。
13に示す鍵処理ルーチンが起動され、該ルーチンのス
テップSb1に進む。ステップSb1では、鍵盤1を走
査して該鍵盤1の押離鍵状態を検出する。次いで、ステ
ップSb2に進むと、この鍵盤1の走査において鍵イベ
ントを検出したか否か、すなわち、演奏者による押鍵操
作の有無を判断する。ここで、押鍵操作がなされず、鍵
イベントが発生しない時には、このルーチンを完了し、
メインルーチンへ復帰する。一方、押鍵操作がなされる
と、判断結果が「YES」となり、次のステップSb3
へ進む。
【0058】ステップSb3では、検出した鍵イベント
を一時記憶するレジスタKEV、キーコードKCを一時
記憶するレジスタKCおよび押鍵速度を一時記憶するレ
ジスタKVに、それぞれ検出した値をセットし、次のス
テップSb4に進む。ステップSb4では、レジスタK
EVの値がキーオン信号KONに対応するものであるか
否かを判断する。ここで、キーオンイベントであると、
判断結果が「YES」となり、次のステップSb5に進
み、キーオン(発音)処理が行われる。これに対し、レ
ジスタKEVの内容がキーオフイベントKOFFである
場合には、この判断結果が「NO」となり、ステップS
b6に進み、キーオフ(消音)処理が行われる。
を一時記憶するレジスタKEV、キーコードKCを一時
記憶するレジスタKCおよび押鍵速度を一時記憶するレ
ジスタKVに、それぞれ検出した値をセットし、次のス
テップSb4に進む。ステップSb4では、レジスタK
EVの値がキーオン信号KONに対応するものであるか
否かを判断する。ここで、キーオンイベントであると、
判断結果が「YES」となり、次のステップSb5に進
み、キーオン(発音)処理が行われる。これに対し、レ
ジスタKEVの内容がキーオフイベントKOFFである
場合には、この判断結果が「NO」となり、ステップS
b6に進み、キーオフ(消音)処理が行われる。
【0059】 キーオン(KON)処理ルーチンの動作 このルーチンは、押鍵操作がなされた場合に起動され、
CPU2の処理は図14に示すキーオン処理ルーチンの
ステップSc1に進む。まず、ステップSc1では、発
音チャンネルの内、第0チャンネルから順次割当可能で
あるか否かを判断するため、チャンネル番号を記憶する
レジスタCHに「0」を設定し、次のステップSc2に
進む。なお、この実施例では、同時発音チャンネル数を
8チャンネル分具備するものとしている。ステップSc
2では、各チャンネル毎の発音状態が記憶されるレジス
タST[CH]が「0」、すなわち、この場合、第0チ
ャンネルが空きチャンネルであるかを判断する。ここ
で、空きチャンネルとは、発音待機状態を指す。
CPU2の処理は図14に示すキーオン処理ルーチンの
ステップSc1に進む。まず、ステップSc1では、発
音チャンネルの内、第0チャンネルから順次割当可能で
あるか否かを判断するため、チャンネル番号を記憶する
レジスタCHに「0」を設定し、次のステップSc2に
進む。なお、この実施例では、同時発音チャンネル数を
8チャンネル分具備するものとしている。ステップSc
2では、各チャンネル毎の発音状態が記憶されるレジス
タST[CH]が「0」、すなわち、この場合、第0チ
ャンネルが空きチャンネルであるかを判断する。ここ
で、空きチャンネルとは、発音待機状態を指す。
【0060】ところで、このレジスタST[CH]の値
が「1」の時には、対応する発音チャンネルがキーオン
による発音持続状態を表し、また、「2」の時にはダン
パ等による発音持続状態を表す。さらに、「3」の時に
はリリース波形発音状態を表すようになっている。そし
て、いま、例えば、対応する発音チャンネルの状態が
「0」、すなわち、空きチャンネル状態にあると、上記
ステップSc2の判断結果が「YES」となり、後述の
ステップSc5へ進む。一方、空きチャンネルでない場
合には、判断結果が「NO」となり、次のステップSc
3に進む。次いで、ステップSb3では、次の発音チャ
ンネルの状態を検索すべく、レジスタCHの内容を
「1」インクリメントし、次のステップSc4に進む。
が「1」の時には、対応する発音チャンネルがキーオン
による発音持続状態を表し、また、「2」の時にはダン
パ等による発音持続状態を表す。さらに、「3」の時に
はリリース波形発音状態を表すようになっている。そし
て、いま、例えば、対応する発音チャンネルの状態が
「0」、すなわち、空きチャンネル状態にあると、上記
ステップSc2の判断結果が「YES」となり、後述の
ステップSc5へ進む。一方、空きチャンネルでない場
合には、判断結果が「NO」となり、次のステップSc
3に進む。次いで、ステップSb3では、次の発音チャ
ンネルの状態を検索すべく、レジスタCHの内容を
「1」インクリメントし、次のステップSc4に進む。
【0061】ステップSb4では、インクリメントされ
たレジスタCHの値が「8」、すなわち、全発音チャン
ネル数分の状態検索がなされたか否かを判断する。ここ
で、8チャンネル分の検索がなされていない場合には、
判断結果が「NO」となり、上述したステップSc2に
戻り、新たな発音チャンネルの状態が判定される。一
方、全発音チャンネルの状態判定がなされた場合には、
ここでの判断結果が「YES」となり、このルーチンを
完了し、メインルーチンに復帰する。
たレジスタCHの値が「8」、すなわち、全発音チャン
ネル数分の状態検索がなされたか否かを判断する。ここ
で、8チャンネル分の検索がなされていない場合には、
判断結果が「NO」となり、上述したステップSc2に
戻り、新たな発音チャンネルの状態が判定される。一
方、全発音チャンネルの状態判定がなされた場合には、
ここでの判断結果が「YES」となり、このルーチンを
完了し、メインルーチンに復帰する。
【0062】なお、このステップSb4における判断結
果が「YES」となった時には、全ての発音チャンネル
が何らかの形で発音中であることを示している。ここで
は、いわゆる先着優先の発音割当方式を用いるので、全
ての発音チャンネルが埋まっている場合には、いずれか
のチャンネルが発音終了するまで新たな押鍵音を割り当
てない。なお、こうした発音割り当てについては後述す
る。
果が「YES」となった時には、全ての発音チャンネル
が何らかの形で発音中であることを示している。ここで
は、いわゆる先着優先の発音割当方式を用いるので、全
ての発音チャンネルが埋まっている場合には、いずれか
のチャンネルが発音終了するまで新たな押鍵音を割り当
てない。なお、こうした発音割り当てについては後述す
る。
【0063】次に、ステップSc5に進むと、ステップ
Sc2において空きチャンネルと判断された発音チャン
ネルの状態を、発音持続状態として表すため、レジスタ
ST[CH]に「1」をセットする。次いで、ステップ
Sc6では、この発音チャンネルに対応してキーコード
KCが記憶されるレジスタSTKC[CH]に、発音す
べきキーコードKCを設定し、次のステップSc7に進
む。ステップSc7では、楽音合成回路7(以下、これ
を音源と略す)に対してキーコードKC、押鍵速度信号
KV、キーオンパルス信号KONPを出力し、このキー
オン処理ルーチンを終了する。この結果、音源はこれら
情報に基づいた楽音信号W5を発生する。
Sc2において空きチャンネルと判断された発音チャン
ネルの状態を、発音持続状態として表すため、レジスタ
ST[CH]に「1」をセットする。次いで、ステップ
Sc6では、この発音チャンネルに対応してキーコード
KCが記憶されるレジスタSTKC[CH]に、発音す
べきキーコードKCを設定し、次のステップSc7に進
む。ステップSc7では、楽音合成回路7(以下、これ
を音源と略す)に対してキーコードKC、押鍵速度信号
KV、キーオンパルス信号KONPを出力し、このキー
オン処理ルーチンを終了する。この結果、音源はこれら
情報に基づいた楽音信号W5を発生する。
【0064】キーオフ(KOFF)処理ルーチンの動
作 次に、演奏者による離鍵操作がなされると、図15に示
すキーオフ処理ルーチンが起動され、CPU2の処理は
該ルーチンのステップSd1に進む。ステップSd1で
は、第0チャンネルから割当可能であるかを判断するた
め、発音チャンネル番号を記憶するレジスタCHに
「0」を設定し、次のステップSd2に進む。ステップ
Sd2では、対応する発音チャンネルで現在発音されて
いるキーコードKCが今回キーオフされたキーコードK
Cと同一であるかが判断される。ここで、現在発音中の
キーコードとキーオフされたキーコードとが同一である
と、判断結果が「YES」となり、後述するステップS
d5に進む。
作 次に、演奏者による離鍵操作がなされると、図15に示
すキーオフ処理ルーチンが起動され、CPU2の処理は
該ルーチンのステップSd1に進む。ステップSd1で
は、第0チャンネルから割当可能であるかを判断するた
め、発音チャンネル番号を記憶するレジスタCHに
「0」を設定し、次のステップSd2に進む。ステップ
Sd2では、対応する発音チャンネルで現在発音されて
いるキーコードKCが今回キーオフされたキーコードK
Cと同一であるかが判断される。ここで、現在発音中の
キーコードとキーオフされたキーコードとが同一である
と、判断結果が「YES」となり、後述するステップS
d5に進む。
【0065】一方、ここでの判断結果が「NO」の場
合、つまり、現在発音中のキーコードとキーオフされた
キーコードとが同一でない時には、ステップSd3に進
む。ステップSd3では、次の発音チャンネルにおける
キーコードKCを検索すべく、レジスタCHの値を
「1」インクリメントし、続いて、ステップSc4で
は、このインクリメントされたレジスタCHの値が
「8」であるか否かを判断する。そして、レジスタCH
の値が「8」である場合には、対応する楽音がもう発音
されていないことに相当する。これは、例えば、押鍵が
持続されて発音が完全に減衰してしまった状態に相当す
るものであり、こうした場合には、何もせずにこのキー
オフ処理を終了する。これに対し、レジスタ値が「8」
でない場合には、判断結果が「NO」となり、上述のス
テップSd2に戻り、全発音チャンネル分の検索を繰返
す。
合、つまり、現在発音中のキーコードとキーオフされた
キーコードとが同一でない時には、ステップSd3に進
む。ステップSd3では、次の発音チャンネルにおける
キーコードKCを検索すべく、レジスタCHの値を
「1」インクリメントし、続いて、ステップSc4で
は、このインクリメントされたレジスタCHの値が
「8」であるか否かを判断する。そして、レジスタCH
の値が「8」である場合には、対応する楽音がもう発音
されていないことに相当する。これは、例えば、押鍵が
持続されて発音が完全に減衰してしまった状態に相当す
るものであり、こうした場合には、何もせずにこのキー
オフ処理を終了する。これに対し、レジスタ値が「8」
でない場合には、判断結果が「NO」となり、上述のス
テップSd2に戻り、全発音チャンネル分の検索を繰返
す。
【0066】次いで、上述したステップSd2におい
て、キーオフに対応するキーコードKCが検索された場
合には、ステップSd5に進む。ステップSc5では、
前述した各チャンネル毎の状態が記憶されるレジスタS
T[CH]に「2」を設定する。ここで、「2」が設定
されると、ダンパペダル等の操作によって発音が持続さ
れている状態を表す。そして、このような状態設定がな
された後、ステップSd6に進み、レジスタST[C
H]に「0」をセットし、対応する発音チャンネルを発
音待機状態とする。次いで、ステップSd7に進むと、
音源の対応する発音チャンネルにキーオフパルス信号K
OFPを供給して発音完了の旨を表し、メインルーチン
へ復帰する。
て、キーオフに対応するキーコードKCが検索された場
合には、ステップSd5に進む。ステップSc5では、
前述した各チャンネル毎の状態が記憶されるレジスタS
T[CH]に「2」を設定する。ここで、「2」が設定
されると、ダンパペダル等の操作によって発音が持続さ
れている状態を表す。そして、このような状態設定がな
された後、ステップSd6に進み、レジスタST[C
H]に「0」をセットし、対応する発音チャンネルを発
音待機状態とする。次いで、ステップSd7に進むと、
音源の対応する発音チャンネルにキーオフパルス信号K
OFPを供給して発音完了の旨を表し、メインルーチン
へ復帰する。
【0067】終了チャンネル検出処理ルーチンの動作 CPU2の処理が前述したステップSa3(図12参
照)に進むと、図16に示す終了チャンネル検出処理ル
ーチンが起動され、該ルーチンのステップSe1に進
む。このルーチンにおいては、各発音チャンネル毎のエ
ンベロープ情報ENに基づき、発音を終了させるチャン
ネルを検出する処理がなされる。すなわち、エンベロー
プ情報ENは、前述したように、エンベロープ信号EN
VのレベルがスレッショルドレベルTH以下となった発
音チャンネルを表すデータであり、この場合、各発音チ
ャンネルに対応した8ビット幅のデータである。
照)に進むと、図16に示す終了チャンネル検出処理ル
ーチンが起動され、該ルーチンのステップSe1に進
む。このルーチンにおいては、各発音チャンネル毎のエ
ンベロープ情報ENに基づき、発音を終了させるチャン
ネルを検出する処理がなされる。すなわち、エンベロー
プ情報ENは、前述したように、エンベロープ信号EN
VのレベルがスレッショルドレベルTH以下となった発
音チャンネルを表すデータであり、この場合、各発音チ
ャンネルに対応した8ビット幅のデータである。
【0068】まず、ステップSe1に進むと、この8ビ
ット幅のエンベロープ情報ENをそのまま取り込み、次
のステップSe2に進む。ステップSe2では、レジス
タiに「0」をセットする。ここで、レジスタiは、8
ビットのエンベロープ情報ENを1ビットづつシフトさ
せる際の変数を一時記憶するものである。そして、ステ
ップSe3に進むと、エンベロープ情報ENと01H
(16進表示)との論理積をとり、これが「1」である
か否かを判断する。すなわち、該情報ENのLSB(最
下位ビット)が「1」、つまり、第0チャンネルのエン
ベロープ値が減衰状態にあるか否かを判断している。
ット幅のエンベロープ情報ENをそのまま取り込み、次
のステップSe2に進む。ステップSe2では、レジス
タiに「0」をセットする。ここで、レジスタiは、8
ビットのエンベロープ情報ENを1ビットづつシフトさ
せる際の変数を一時記憶するものである。そして、ステ
ップSe3に進むと、エンベロープ情報ENと01H
(16進表示)との論理積をとり、これが「1」である
か否かを判断する。すなわち、該情報ENのLSB(最
下位ビット)が「1」、つまり、第0チャンネルのエン
ベロープ値が減衰状態にあるか否かを判断している。
【0069】ここで、例えば、第0チャンネルのエンベ
ロープ値が減衰状態にあると、判断結果が「YES」と
なり、次のステップSe4に進む。これに対し、第0チ
ャンネルのエンベロープ値が減衰していない場合には、
判断結果が「NO」となり、後述のステップSe6に進
む。次いで、ステップSe4に進むと、発音状態が記憶
されるレジスタST[0]に「0」をセットする。これ
は、第0チャンネルが空きチャンネルに設定されたこと
を表している。次に、ステップSe5に進むと、キーコ
ードKCが記憶されるレジスタSTKC[0]に「0」
をセットする。これにより、該チャンネルは、いづれの
キーコードKCも割り当てられていないことになる。
ロープ値が減衰状態にあると、判断結果が「YES」と
なり、次のステップSe4に進む。これに対し、第0チ
ャンネルのエンベロープ値が減衰していない場合には、
判断結果が「NO」となり、後述のステップSe6に進
む。次いで、ステップSe4に進むと、発音状態が記憶
されるレジスタST[0]に「0」をセットする。これ
は、第0チャンネルが空きチャンネルに設定されたこと
を表している。次に、ステップSe5に進むと、キーコ
ードKCが記憶されるレジスタSTKC[0]に「0」
をセットする。これにより、該チャンネルは、いづれの
キーコードKCも割り当てられていないことになる。
【0070】次に、ステップSe6に進むと、エンベロ
ープ情報ENを右側に1ビットシフトさせて該情報EN
の2SBをLSBに設定する。そして、ステップSe7
では、上述したレジスタiの値を1インクリメントし、
次のステップSe8に進む。ステップSe8では、レジ
スタiの値が「8」、すなわち、全発音チャンネル分の
エンベロープ情報ENについて発音終了判定したか否か
を判断する。ここで、全発音チャンネル分の判定が完了
していない場合には、判断結果が「NO」となり、前述
したステップSe3に戻る。これにより、次の発音チャ
ンネルの終了判定がなされる。一方、8ビット分のビッ
トシフトが行われ、全発音チャンネルに関する発音終了
判定がなされると、判断結果が「YES」となり、この
ルーチンを完了し、メインルーチンに復帰する。
ープ情報ENを右側に1ビットシフトさせて該情報EN
の2SBをLSBに設定する。そして、ステップSe7
では、上述したレジスタiの値を1インクリメントし、
次のステップSe8に進む。ステップSe8では、レジ
スタiの値が「8」、すなわち、全発音チャンネル分の
エンベロープ情報ENについて発音終了判定したか否か
を判断する。ここで、全発音チャンネル分の判定が完了
していない場合には、判断結果が「NO」となり、前述
したステップSe3に戻る。これにより、次の発音チャ
ンネルの終了判定がなされる。一方、8ビット分のビッ
トシフトが行われ、全発音チャンネルに関する発音終了
判定がなされると、判断結果が「YES」となり、この
ルーチンを完了し、メインルーチンに復帰する。
【0071】このように、上述した実施例によれば、C
PU2は、エンベロープ生成回路13から非時分割で供
給されるエンベロープ情報ENに基づいて発音終了チャ
ンネルを認識し、発音割り当てを行う。ここで、エンベ
ロープ情報ENは、各発音チャンネルの発音状況、すな
わち、減衰状態であるか否かを「1」または「0」で表
現しており、しかも、全発音チャンネル分の発音状況を
一度に非時分割でCPU2に与えるようにしている。そ
して、このようにすることで、CPU側に負担がかから
ない発音割当処理が実現する訳である。なお、本実施例
においては、CPU2は、エンベロープ生成回路13か
ら供給されるエンベロープ情報ENに基づいて発音割当
処理を行うようにしたが、これに加えて、トランケート
処理等も行うようにしてもよい。
PU2は、エンベロープ生成回路13から非時分割で供
給されるエンベロープ情報ENに基づいて発音終了チャ
ンネルを認識し、発音割り当てを行う。ここで、エンベ
ロープ情報ENは、各発音チャンネルの発音状況、すな
わち、減衰状態であるか否かを「1」または「0」で表
現しており、しかも、全発音チャンネル分の発音状況を
一度に非時分割でCPU2に与えるようにしている。そ
して、このようにすることで、CPU側に負担がかから
ない発音割当処理が実現する訳である。なお、本実施例
においては、CPU2は、エンベロープ生成回路13か
ら供給されるエンベロープ情報ENに基づいて発音割当
処理を行うようにしたが、これに加えて、トランケート
処理等も行うようにしてもよい。
【0072】G.他の実施例 上述した実施例においては、エンベロープ生成回路13
を構成するエンベロープ情報発生部40が各発音チャン
ネルの発音状況を「1」または「0」で表すエンベロー
プ情報ENを発生し、これに基づき発音割当処理がなさ
れている。これに替えて、図17に示す構成のトランケ
ート信号発生部50を具備し、トランケート処理を行う
ことができる。以下、このトランケート信号発生部50
の構成とその動作について説明する。
を構成するエンベロープ情報発生部40が各発音チャン
ネルの発音状況を「1」または「0」で表すエンベロー
プ情報ENを発生し、これに基づき発音割当処理がなさ
れている。これに替えて、図17に示す構成のトランケ
ート信号発生部50を具備し、トランケート処理を行う
ことができる。以下、このトランケート信号発生部50
の構成とその動作について説明する。
【0073】図17において、51は比較回路であり、
入力端Aと入力端Bとに供給される信号を比較し、「A
<B」なる場合に信号Cabを発生する。52は入力端
Aと入力端Bとに供給される信号のいずれかを選択して
出力するセレクタである。このセレクタ52は、セレク
タ端SBに上記信号Cabが供給された場合、入力端B
に供給されるエンベロープ信号ENVを選択して出力す
る。なお、このエンベロープ信号ENVは、前述したよ
うに、エンベロープ形成部30から出力されるものであ
る。
入力端Aと入力端Bとに供給される信号を比較し、「A
<B」なる場合に信号Cabを発生する。52は入力端
Aと入力端Bとに供給される信号のいずれかを選択して
出力するセレクタである。このセレクタ52は、セレク
タ端SBに上記信号Cabが供給された場合、入力端B
に供給されるエンベロープ信号ENVを選択して出力す
る。なお、このエンベロープ信号ENVは、前述したよ
うに、エンベロープ形成部30から出力されるものであ
る。
【0074】53はラッチ回路である。このラッチ回路
53は、セレクタ52から供給される信号を、信号Ca
bに応じてラッチし、これを出力端Qから出力する。5
4は0/8のタイミングで供給されるパルス信号を反転
して出力するインバータである。55はラッチ回路53
の出力とインバータ54の出力との論理積を発生するア
ンドゲートである。このアンドゲートの出力は、上述し
た比較回路51およびセレクタ52の各入力端Aに供給
される。一方、これらの各入力端Bには、エンベロープ
信号ENVが供給されるようになっている。56はクロ
ック信号CKをカウントする8進カウンタであり、0/
8毎のタイミングでリセットされる。57,58は、そ
れぞれラッチ回路である。ラッチ回路57は、信号Ca
bに応じて8進カウンタ56の出力をラッチする。一
方、ラッチ回路58は、7/8毎のタイミングでラッチ
回路57の出力をラッチする。
53は、セレクタ52から供給される信号を、信号Ca
bに応じてラッチし、これを出力端Qから出力する。5
4は0/8のタイミングで供給されるパルス信号を反転
して出力するインバータである。55はラッチ回路53
の出力とインバータ54の出力との論理積を発生するア
ンドゲートである。このアンドゲートの出力は、上述し
た比較回路51およびセレクタ52の各入力端Aに供給
される。一方、これらの各入力端Bには、エンベロープ
信号ENVが供給されるようになっている。56はクロ
ック信号CKをカウントする8進カウンタであり、0/
8毎のタイミングでリセットされる。57,58は、そ
れぞれラッチ回路である。ラッチ回路57は、信号Ca
bに応じて8進カウンタ56の出力をラッチする。一
方、ラッチ回路58は、7/8毎のタイミングでラッチ
回路57の出力をラッチする。
【0075】上記構成によれば、0/8のタイミングで
パルス信号が供給され、これにより、例えば、アンドゲ
ート55より「0000」(16進表示)のデータが出
力されるとする。すなわち、エンベロープ信号ENVの
最大値(図10参照)に相当するデータがアンドゲート
55から出力されると、これはセレクタ52および比較
回路51の入力端Aに与えられる。一方、各入力端Bに
は現在の対応発音チャンネルにおけるエンベロープ信号
ENVが供給される。
パルス信号が供給され、これにより、例えば、アンドゲ
ート55より「0000」(16進表示)のデータが出
力されるとする。すなわち、エンベロープ信号ENVの
最大値(図10参照)に相当するデータがアンドゲート
55から出力されると、これはセレクタ52および比較
回路51の入力端Aに与えられる。一方、各入力端Bに
は現在の対応発音チャンネルにおけるエンベロープ信号
ENVが供給される。
【0076】そして、ここでは、「A<B」なる関係か
らセレクタ52はエンベロープ信号ENVを選択し、こ
れをラッチ回路53へ出力する。これにより、次のタイ
ミングでは、この選択したエンベロープ信号ENVが各
入力端Aに供給され、再び新たなエンベロープ信号EN
Vと比較される。このように、構成要素51〜55は、
0/8のタイミング毎にラッチしたデータと供給される
エンベロープ信号ENVとを順次比較し、レベルが低い
方のエンベロープ信号を保持する。
らセレクタ52はエンベロープ信号ENVを選択し、こ
れをラッチ回路53へ出力する。これにより、次のタイ
ミングでは、この選択したエンベロープ信号ENVが各
入力端Aに供給され、再び新たなエンベロープ信号EN
Vと比較される。このように、構成要素51〜55は、
0/8のタイミング毎にラッチしたデータと供給される
エンベロープ信号ENVとを順次比較し、レベルが低い
方のエンベロープ信号を保持する。
【0077】一方、構成要素56〜58は、比較回路5
1が信号Cabを発生する毎、つまり、より低いエンベ
ロープレベルを検出する毎に8進カウンタ56のカウン
ト値をラッチし、これを7/8のタイミング毎にトラン
ケート信号TRCとして発生する。すなわち、発音チャ
ンネル分(8チャンネル)のカウント動作の内、最も小
さいエンベロープレベルにある発音チャンネル番号に相
当する値がトランケート信号TRCとして出力される訳
である。このエンベロープ最小レベルの発音チャンネル
番号を表すトランケート信号TRCは、図18に示すキ
ーオン処理にて用いられ、トランケート処理を実現して
いる。
1が信号Cabを発生する毎、つまり、より低いエンベ
ロープレベルを検出する毎に8進カウンタ56のカウン
ト値をラッチし、これを7/8のタイミング毎にトラン
ケート信号TRCとして発生する。すなわち、発音チャ
ンネル分(8チャンネル)のカウント動作の内、最も小
さいエンベロープレベルにある発音チャンネル番号に相
当する値がトランケート信号TRCとして出力される訳
である。このエンベロープ最小レベルの発音チャンネル
番号を表すトランケート信号TRCは、図18に示すキ
ーオン処理にて用いられ、トランケート処理を実現して
いる。
【0078】次に、図18を参照し、このトランケート
信号TRCを用いたキーオン処理でのトランケート処理
について説明する。まず、CPU2の処理が前述したス
テップSb5に進むと、この図に示すキーオン処理ルー
チンが起動され、該ルーチンのステップSf1に進む。
ステップSf1に進むと、第0チャンネルから順次割当
可能であるか否かを判断するため、チャンネル番号を記
憶するレジスタCHに「0」を設定し、次のステップS
b2に進む。
信号TRCを用いたキーオン処理でのトランケート処理
について説明する。まず、CPU2の処理が前述したス
テップSb5に進むと、この図に示すキーオン処理ルー
チンが起動され、該ルーチンのステップSf1に進む。
ステップSf1に進むと、第0チャンネルから順次割当
可能であるか否かを判断するため、チャンネル番号を記
憶するレジスタCHに「0」を設定し、次のステップS
b2に進む。
【0079】ステップSf2では、各チャンネル毎の状
態が記憶されるレジスタST[CH]が「0」、すなわ
ち第0チャンネルが現在空きチャンネルであるかを判断
する。ここで、空きチャンネルとは、発音まで待機して
いる状態を指している。そして、いま、例えば、対応す
るチャンネルの状態が「0」、すなわち、空きチャンネ
ル状態にあると、上記ステップSf2の判断結果が「Y
ES」となり、後述のステップSf8に進む。
態が記憶されるレジスタST[CH]が「0」、すなわ
ち第0チャンネルが現在空きチャンネルであるかを判断
する。ここで、空きチャンネルとは、発音まで待機して
いる状態を指している。そして、いま、例えば、対応す
るチャンネルの状態が「0」、すなわち、空きチャンネ
ル状態にあると、上記ステップSf2の判断結果が「Y
ES」となり、後述のステップSf8に進む。
【0080】一方、空きチャンネルでない場合には、判
断結果が「NO」となり、次のステップSf3に進む。
そして、ステップSf3では、次の発音チャンネルの発
音状態を検索すべく、レジスタCHの値を1インクリメ
ントし、次のステップSf4に進む。ステップSf4で
は、インクリメントされたレジスタCHの値が「8」、
すなわち、全発音チャンネル数分の状態検索がなされた
か否かを判断する。ここで、8チャンネル分の検索がな
されていない場合には、判断結果が「NO」となり、上
記ステップSf2に戻り、次の発音チャンネルの状態が
判定される。
断結果が「NO」となり、次のステップSf3に進む。
そして、ステップSf3では、次の発音チャンネルの発
音状態を検索すべく、レジスタCHの値を1インクリメ
ントし、次のステップSf4に進む。ステップSf4で
は、インクリメントされたレジスタCHの値が「8」、
すなわち、全発音チャンネル数分の状態検索がなされた
か否かを判断する。ここで、8チャンネル分の検索がな
されていない場合には、判断結果が「NO」となり、上
記ステップSf2に戻り、次の発音チャンネルの状態が
判定される。
【0081】これに対し、全チャンネルの状態判定が行
われた場合には、判断結果が「YES」となり、次のス
テップSf5に進む。なお、このステップSf4におけ
る判断結果が「YES」となった時には、全ての発音チ
ャンネルが何らかの形で発音中であることを示してい
る。ここでは、いわゆる後着優先の発音割当方式を用
い、全ての発音チャンネルが埋まっていても新たな押鍵
があれば何れかの発音チャンネルを強制的に消音して、
そこに新たな押鍵音を割り当てる処理を行う。
われた場合には、判断結果が「YES」となり、次のス
テップSf5に進む。なお、このステップSf4におけ
る判断結果が「YES」となった時には、全ての発音チ
ャンネルが何らかの形で発音中であることを示してい
る。ここでは、いわゆる後着優先の発音割当方式を用
い、全ての発音チャンネルが埋まっていても新たな押鍵
があれば何れかの発音チャンネルを強制的に消音して、
そこに新たな押鍵音を割り当てる処理を行う。
【0082】ステップSf5では、レジスタTCHに書
き込まれたトランケート優先チャンネル番号を読み出
す。このレジスタTCHには、前述したトランケート信
号発生部50において生成されたトランケート信号TR
Cが書き込まれる。したがって、このステップSf5で
は、最も減衰が進んでいる発音チャンネル番号を得る。
次いで、ステップSf6に進むと、この最も減衰が進ん
でいるチャンネルを選択し、これを強制的に消音する。
次いで、ステップSf7に進むと、こうして発音停止さ
れた発音チャンネルの番号、すなわち、レジスタTCH
にセットされている発音チャンネル番号をレジスタCH
に設定し、次のステップSf8に進む。
き込まれたトランケート優先チャンネル番号を読み出
す。このレジスタTCHには、前述したトランケート信
号発生部50において生成されたトランケート信号TR
Cが書き込まれる。したがって、このステップSf5で
は、最も減衰が進んでいる発音チャンネル番号を得る。
次いで、ステップSf6に進むと、この最も減衰が進ん
でいるチャンネルを選択し、これを強制的に消音する。
次いで、ステップSf7に進むと、こうして発音停止さ
れた発音チャンネルの番号、すなわち、レジスタTCH
にセットされている発音チャンネル番号をレジスタCH
に設定し、次のステップSf8に進む。
【0083】ステップSf8では、その空きチャンネル
の状態を、発音持続状態として表すため、レジスタST
[CH]に「1」をセットする。次いで、ステップSf
9に進むと、レジスタSTKC[CH]に押鍵に応じて
発音すべきキーコードKCを設定し、次のステップSf
10に進む。そして、ステップSf10では、楽音合成
回路7の対応する発音チャンネルへキーコードKC、押
鍵速度信号KV、キーオンパルス信号KONPを出力
し、このキーオン処理ルーチンを終了する。これによ
り、楽音合成回路7は、トランケートされた発音チャン
ネルから上記の各情報に基づいた楽音信号W5を発生す
る。
の状態を、発音持続状態として表すため、レジスタST
[CH]に「1」をセットする。次いで、ステップSf
9に進むと、レジスタSTKC[CH]に押鍵に応じて
発音すべきキーコードKCを設定し、次のステップSf
10に進む。そして、ステップSf10では、楽音合成
回路7の対応する発音チャンネルへキーコードKC、押
鍵速度信号KV、キーオンパルス信号KONPを出力
し、このキーオン処理ルーチンを終了する。これによ
り、楽音合成回路7は、トランケートされた発音チャン
ネルから上記の各情報に基づいた楽音信号W5を発生す
る。
【0084】このように、他の実施例においては、各発
音チャンネルの内、最も減衰が進んでいる発音チャンネ
ル番号を検出し、これをCPU2側に供給するようにし
ているので、CPU側に負担がかからないトランケート
処理が実現する。すなわち、従来のように、エンベロー
プ値という比較的情報量の多いデータを各発音チャンネ
ル毎にCPU側へ送出する態様ではないから、多くの同
時発音チャンネル数を備えた場合においても極めて短時
間でトランケート処理を行うことができる。
音チャンネルの内、最も減衰が進んでいる発音チャンネ
ル番号を検出し、これをCPU2側に供給するようにし
ているので、CPU側に負担がかからないトランケート
処理が実現する。すなわち、従来のように、エンベロー
プ値という比較的情報量の多いデータを各発音チャンネ
ル毎にCPU側へ送出する態様ではないから、多くの同
時発音チャンネル数を備えた場合においても極めて短時
間でトランケート処理を行うことができる。
【0085】また、上述した実施例によれば、エンベロ
ープ情報ENが各発音チャンネルの発音状況を「1」ま
たは「0」という単純な形で表すため、これを用いた効
率良い効果音処理をも実現できる。例えば、LFO(低
周波発振器)により生成されるモジュレーションや、ビ
ブラートなどの効果音は、CPU側の演算に基づいて付
与されるものであって、この効果音を付与する発音チャ
ンネルをエンベロープ情報ENから求めれば、該当チャ
ンネル分だけの演算を行えば良いことになる。したがっ
て、この場合においてもCPU側の負荷を軽減させるこ
とができる。
ープ情報ENが各発音チャンネルの発音状況を「1」ま
たは「0」という単純な形で表すため、これを用いた効
率良い効果音処理をも実現できる。例えば、LFO(低
周波発振器)により生成されるモジュレーションや、ビ
ブラートなどの効果音は、CPU側の演算に基づいて付
与されるものであって、この効果音を付与する発音チャ
ンネルをエンベロープ情報ENから求めれば、該当チャ
ンネル分だけの演算を行えば良いことになる。したがっ
て、この場合においてもCPU側の負荷を軽減させるこ
とができる。
【0086】
【発明の効果】以上説明したように、この発明によれ
ば、楽音合成手段が複数の発音チャンネルのエンベロー
プに関するデータ圧縮されたエンベロープ情報を出力
し、制御手段がエンベロープ情報に基づき楽音合成手段
に出力する楽音情報を制御するので、従来のように、エ
ンベロープ値という比較的情報量の多いデータを各発音
チャンネル毎にCPU側へ送出する態様ではないから、
多くの同時発音チャンネル数を備えた場合でも時間的制
約を受けずに楽音制御を行うことができる。
ば、楽音合成手段が複数の発音チャンネルのエンベロー
プに関するデータ圧縮されたエンベロープ情報を出力
し、制御手段がエンベロープ情報に基づき楽音合成手段
に出力する楽音情報を制御するので、従来のように、エ
ンベロープ値という比較的情報量の多いデータを各発音
チャンネル毎にCPU側へ送出する態様ではないから、
多くの同時発音チャンネル数を備えた場合でも時間的制
約を受けずに楽音制御を行うことができる。
【図1】 この発明の一実施例である電子ピアノの全体
構成を示すブロック図。
構成を示すブロック図。
【図2】 同実施例における楽音合成回路7の構成を示
すブロック図。
すブロック図。
【図3】 同実施例における波形記憶回路10の記憶形
態を説明するための図。
態を説明するための図。
【図4】 同実施例における波形記憶回路10のメモリ
マップを示す図。
マップを示す図。
【図5】 同実施例におけるインタフェース回路16の
構成を示すブロック図。
構成を示すブロック図。
【図6】 同実施例におけるレート/ターゲット設定部
20の構成を示すブロック図。
20の構成を示すブロック図。
【図7】 同実施例における状態制御部23の構成を示
す回路図。
す回路図。
【図8】 同実施例におけるエンベロープ形成部30の
構成を示すブロック図。
構成を示すブロック図。
【図9】 同実施例における検出回路39の構成を示す
回路図。
回路図。
【図10】 同実施例におけるエンベロープ信号ENV
の制御例を示す図。
の制御例を示す図。
【図11】 同実施例におけるエンベロープ情報発生部
40の構成を示すブロック図。
40の構成を示すブロック図。
【図12】 同実施例におけるメインルーチンの動作を
説明するためのフローチャート。
説明するためのフローチャート。
【図13】 同実施例における鍵処理ルーチンの動作を
説明するためのフローチャート。
説明するためのフローチャート。
【図14】 同実施例におけるキーオン処理ルーチンの
動作を説明するためのフローチャート。
動作を説明するためのフローチャート。
【図15】 同実施例におけるキーオフ処理ルーチンの
動作を説明するためのフローチャート。
動作を説明するためのフローチャート。
【図16】 同実施例における終了チャンネル検出処理
ルーチンの動作を説明するためのフローチャート。
ルーチンの動作を説明するためのフローチャート。
【図17】 他の実施例におけるトランケート信号発生
部50の構成を示すブロック図。
部50の構成を示すブロック図。
【図18】 他の実施例におけるキーオン処理ルーチン
の動作を説明するためのフローチャート。
の動作を説明するためのフローチャート。
2…CPU(演算処理手段、発音割り当て手段)、7…
楽音合成回路、13…エンベロープ生成回路、40…エ
ンベロープ情報発生部(変換手段)、50…トランケー
ト信号発生部(変換手段)。
楽音合成回路、13…エンベロープ生成回路、40…エ
ンベロープ情報発生部(変換手段)、50…トランケー
ト信号発生部(変換手段)。
Claims (1)
- 【請求項1】 入力される楽音情報に基づき所定のエン
ベロープが付与された楽音信号を出力する複数の発音チ
ャンネルを有するとともに、前記複数の発音チャンネル
のエンベロープに関するデータ圧縮されたエンベロープ
情報を出力する楽音合成手段と、 入力される演奏データに基づき前記楽音情報を出力する
とともに、前記楽音合成手段から出力されたエンベロー
プ情報に基づき前記楽音情報を制御する制御手段とを具
備することを特徴とする電子楽器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4035420A JPH05232958A (ja) | 1992-02-21 | 1992-02-21 | 電子楽器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4035420A JPH05232958A (ja) | 1992-02-21 | 1992-02-21 | 電子楽器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05232958A true JPH05232958A (ja) | 1993-09-10 |
Family
ID=12441382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4035420A Pending JPH05232958A (ja) | 1992-02-21 | 1992-02-21 | 電子楽器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05232958A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010191124A (ja) * | 2009-02-18 | 2010-09-02 | Casio Computer Co Ltd | 効果音発生装置 |
-
1992
- 1992-02-21 JP JP4035420A patent/JPH05232958A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010191124A (ja) * | 2009-02-18 | 2010-09-02 | Casio Computer Co Ltd | 効果音発生装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3243821B2 (ja) | 電子楽器 | |
EP0312062A2 (en) | Electronic musical instrument | |
US5354948A (en) | Tone signal generation device for generating complex tones by combining different tone sources | |
US6762357B2 (en) | Resonance apparatus, resonance method and computer program for resonance processing | |
US5428183A (en) | Tone signal generating apparatus for performing a timbre change by storing a full frequency band in a wave memory | |
US4890527A (en) | Mixing type tone signal generation device employing two channels generating tones based upon different parameter | |
US6180866B1 (en) | Reverberating/resonating apparatus and method | |
JP2009048104A (ja) | 成分音合成装置及び成分音合成方法。 | |
JPH05232958A (ja) | 電子楽器 | |
JP2538809B2 (ja) | 楽音発生装置 | |
JP2701177B2 (ja) | 楽音発生装置 | |
JP2698942B2 (ja) | 楽音発生装置 | |
JP3018620B2 (ja) | 電子楽器 | |
JP2705422B2 (ja) | 電子楽器 | |
JP2629418B2 (ja) | 楽音合成装置 | |
JP2537340B2 (ja) | 楽音発生装置 | |
JP2725479B2 (ja) | 電子楽器 | |
JP3261713B2 (ja) | 楽音発生装置 | |
JP2715795B2 (ja) | 発音割当手段を有する楽音合成装置 | |
JPH0462595A (ja) | 電子楽器用処理装置 | |
JP2953217B2 (ja) | 電子楽器 | |
JPH05134671A (ja) | 電子楽器 | |
JPH05181479A (ja) | 電子楽器の発音チャンネル割当装置 | |
JP2853588B2 (ja) | 電子楽器 | |
JPH0667670A (ja) | 電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20020319 |