JP2687810B2 - 電子楽器 - Google Patents

電子楽器

Info

Publication number
JP2687810B2
JP2687810B2 JP4064216A JP6421692A JP2687810B2 JP 2687810 B2 JP2687810 B2 JP 2687810B2 JP 4064216 A JP4064216 A JP 4064216A JP 6421692 A JP6421692 A JP 6421692A JP 2687810 B2 JP2687810 B2 JP 2687810B2
Authority
JP
Japan
Prior art keywords
channel
tone
rhythm
sounding
midi
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
Application number
JP4064216A
Other languages
English (en)
Other versions
JPH05265458A (ja
Inventor
康 桜井
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 JP4064216A priority Critical patent/JP2687810B2/ja
Publication of JPH05265458A publication Critical patent/JPH05265458A/ja
Application granted granted Critical
Publication of JP2687810B2 publication Critical patent/JP2687810B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、発生される音量等が
時間経過に従い変化する楽音を発生するとともに、発音
割当処理が良好に行える電子楽器に関する。
【0002】
【従来の技術】従来の複数の楽音発生用チャンネル(発
音チャンネル)を有する電子楽器には、メモリに記憶さ
れた波形データを演奏者による鍵盤等の操作に応じて読
み出す音源と、その波形データの振幅を制御して波形デ
ータの音量を制御するエンベロープ信号を発生するエン
ベロープジェネレータ(EG)とが設けられているもの
がある。そして、この種の電子楽器には、EGからの出
力等の様々な情報に基づいて、いずれかの発音チャンネ
ルを強制的に空きチャンネルとし、その発音チャンネル
に新たな押鍵音を割当るように制御するトランケート手
段が設けられているものがあった。
【0003】
【発明が解決しようとする課題】ところで、楽音の中に
は、異なった早さのリリースを持つもの、あるいは、ス
トリングスやパイプオルガンなどのスローアタックの音
色のものやキーオンディレイといってアタックを意識的
に遅らせたものがある。しかしながら、上述した従来の
電子楽器においては、EGから出力されている現在のエ
ンベロープ信号のレベルだけに基づいてトランケート処
理しているため、たとえば、以下に示すような不都合が
生じていた。
【0004】図12に示すように、スローアタックの音
色が割当られているチャンネルCの時刻t1におけるエ
ンベロープ信号の現在のレベルLcは、楽音の立ち上が
り部分であるにもかかわらず、チャンネルAおよびBの
時刻t1におけるエンベロープ信号の現在のレベルLa
よびLbより小さいので、チャンネルCがトランケート
処理されてしまう。したがって、まだ発音されていない
楽音が消音され、不自然である。
【0005】そこで、最も古く押鍵されたチャンネルを
検出してトランケート処理している従来の電子楽器もあ
るが、その場合には、図12に示すように、チャンネル
Aの時刻t1におけるエンベロープ信号の現在のレベル
aがチャンネルBの時刻t1におけるエンベロープ信号
の現在のレベルLbより小さいにもかかわらず、リリー
スの遅いチャンネルBがトランケート処理されてしま
う。したがって、実際に演奏者等が聴いている音におい
ては、減衰が進んでいる音よりも、まだ聴こえている音
のほうが先に消音されることになり、不自然である。こ
の発明は、このような背景の下になされたもので、スロ
ーアタックの音色や異なったリリースを持つ音色を正確
に発生でき、発音割当処理を正確に行うことができる電
子楽器を提供することを目的とする。
【0006】
【課題を解決するための手段】この発明による電子楽器
は、鍵操作情報を発生する鍵操作情報発生手段と、複数
の楽音信号発生用の発音チャンネルを有し、各発音チャ
ンネル毎に、複数の楽音信号をそれぞれ出力する楽音発
生手段と、前記複数の発音チャンネルが全て発音中であ
るか否かを検出する第1の発音チャンネル検出手段と、
該第1の発音チャンネル検出手段によって前記複数の発
音チャンネルが全て発音中であることが検出された場合
に、前記複数の発音チャンネルの中に離鍵中の発音チャ
ンネルがあるか否かを検出する第2の発音チャンネル検
出手段と、該第2の発音チャンネル検出手段によって複
数の発音チャンネルの中に離鍵中の発音チャンネルがあ
ることが検出された場合には、前記離鍵中の発音チャン
ネルの中で最もエンベロープレベルが小さい楽音信号の
発音チャンネルを検出する第1のトランケートチャンネ
ル検出処理を行って当該検出された発音チャンネルをト
ランケートし、前記第2の発音チャンネル検出手段によ
って複数の発音チャンネルの中に離鍵中の発音チャンネ
ルがないことが検出された場合には、前記第1のトラン
ケートチャンネル検出処理とは異なる第2のトランケー
トチャンネル検出処理を行って検出された発音チャンネ
ルをトランケートするトランケート手段と、該トランケ
ート手段のトランケート結果および前記鍵操作情報発生
手段から出力される新たな鍵操作情報に基づいて、新た
な楽音の発生を前記楽音発生手段のトランケートされた
発音チャンネルに割当てる割当手段とを具備することを
特徴としている。
【0007】
【作用】上記構成によれば、鍵操作情報発生手段が新た
な鍵操作情報を発生すると、第1の発音チャンネル検出
手段が複数の発音チャンネルが全て発音中であるか否か
を検出する。そして、第2の発音チャンネル検出手段
は、第1の発音チャンネル検出手段によって複数の発音
チャンネルが全て発音中であることが検出された場合に
は、複数の発音チャンネルの中に離鍵中の発音チャンネ
ルがあるか否かを検出する。
【0008】これにより、トランケート手段は、複数の
発音チャンネルの中に離鍵中の発音チャンネルがあるこ
とが検出された場合には、離鍵中の発音チャンネルの中
で最もエンベロープレベルが小さい楽音信号の発音チャ
ンネルをトランケートし、複数の発音チャンネルの中に
離鍵中の発音チャンネルがないことが検出された場合に
は、離鍵中の発音チャンネルがある場合とは異なる処理
で検出された発音チャンネルをトランケートする。した
がって、割当手段は、トランケート手段のトランケート
結果および新たな鍵操作情報に基づいて、新たな楽音の
発生を楽音発生手段のトランケートされた発音チャンネ
ルに割当てるので、楽音発生手段は、割当てられた発音
チャンネルから楽音信号を出力する。
【0009】
【実施例】以下、図面を参照して、この発明の一実施例
について説明する。図1はこの発明の一実施例による電
子楽器の構成を示すブロック図であり、この図におい
て、1は装置各部を制御するCPU(中央処理装置)、
2はCPU1にロードされる各種制御プログラムやこれ
らプログラムで用いられる各種データなどが記憶された
ROM、3はワーキングバッファやMIDIデータが格
納されるMIDIバッファなどが設けられたRAMであ
る。
【0010】また、4は複数のキーからなる鍵盤であ
り、各鍵毎の押離鍵を検出するとともに、押鍵の速度お
よび離鍵の速度を検出する機構を有し、押離鍵および押
離鍵の速度に対応した信号を発生する。5は鍵盤インタ
ーフェイスであり、鍵盤4から供給される各種信号に基
づき、音高や押鍵速度等に関する鍵情報を発生し、これ
らをCPU1が管理するデータが転送されるアドレス/
データ・バス6を介してCPU1に転送する。
【0011】さらに、7は操作パネルであり、液晶ディ
スプレイ等の表示器と、テンキーと、表示器の表示画面
の変更等を行うエンターキーと、表示器上のカーソルを
移動させるカーソルキーなどとから構成されている。そ
して、操作パネル7は、アドレス/データ・バス6およ
び操作パネルインターフェイス8を介してCPU1から
供給されるデータを表示するとともに、各キーの状態に
応じたデータを操作パネルインターフェイス8およびア
ドレス/データ・バス6を介してCPU1に転送する。
【0012】加えて、9はMIDIインターフェイスで
あり、CPU1がこのMIDIインターフェイス9およ
びMIDI規格に応じたデータが転送されるMIDI・
バス10を介して他の電子楽器等とMIDIデータ等の
交換を行う。また、11は楽音合成回路であり、CPU
1よりMIDI・バス10を介して供給される各種MI
DIデータに基づいて楽音合成を行う複数の発音チャン
ネルを有し、この発音チャンネルで形成される複数の楽
音信号を出力するとともに、各発音チャンネルの楽音信
号のエンベロープレベルを随時アドレス/データ・バス
6を介してCPU1に供給する。12はサウンドシステ
ムであり、楽音合成回路11から出力される複数の楽音
信号に対してフィルタリングを施し、不要ノイズの除
去、あるいは効果音処理などを施した後、増幅してスピ
ーカ13に与え、楽音として発音させる。
【0013】なお、通常のMIDI規格のチャンネル数
が0チャンネルから15チャンネルまでの計16個であ
るのに対して、この実施例におけるMIDI・バス10
は、0チャンネルから39チャンネルまでの計40チャ
ンネルの幅を有する拡張されたMIDI・バスである。
したがって、これ以後、これらのチャンネル番号を区別
するために、通常のMIDI規格に則ったMIDIチャ
ンネルを外部MIDIチャンネルといい、この実施例に
おけるMIDIチャンネルを、単に、MIDIチャンネ
ルということにする。
【0014】この実施例において、MIDIチャンネル
数を電子楽器内部で40に拡張したのは、以下に示す理
由による。すなわち、従来のMIDI規格のように、チ
ャンネル数が16程度と少ないと、鍵盤4による演奏
と、自動演奏、あるいは、自動リズム演奏などとを同時
に行った場合、チャンネル番号が重なってしまうことが
あり、その場合、鍵盤4を弾くことによりノートオンさ
れた発音チャンネルの楽音が外部MIDIチャンネルを
介して入力されたノートオフによって消音されてしまう
ことがあったからであり、上述したように、電子楽器内
部でMIDIチャンネルを拡張することにより、以上説
明した不都合はなくなる。
【0015】なお、図1においては、サウンドシステム
12にもMIDI・バス10が接続されているが、これ
は、このサウンドシステム12においては、各MIDI
チャンネルに対応した発音チャンネル毎に楽音のボリュ
ームを制御することができるからであり、MIDI・バ
ス10を介してサウンドシステム12の各発音チャンネ
ルへメッセージを転送することにより、たとえば、ある
発音チャンネルはこの程度のボリュームでというよう
に、各発音チャンネル毎にボリュームを制御することが
でき、全体の発音チャンネルのボリュームを制御するこ
とができる。
【0016】このような構成において、CPU1の動作
について図3〜図11のフローチャートに基づいて説明
する。図1の電子楽器に電源が投入されると、CPU1
は、まず、図3のメインルーチンのステップSA1の処
理へ進み、装置各部のイニシャライズを行う。このイニ
シャライズは、各種レジスタのゼロリセットおよび周辺
回路の初期設定となる各種変数の初期設定等である。そ
して、CPU1は、ステップSA2へ進む。
【0017】ステップSA2では、MIDI処理を行
う。この実施例においては、電子楽器の各部をそれぞれ
モジュールとしてとらえ、これらの間でのデータ通信
は、MIDIデータによって行い、各モジュールから出
力されるMIDIデータは、一旦、RAM3のMIDI
バッファに格納される。そして、CPU1は、このMI
DI処理において、RAM3のMIDIバッファに格納
されたMIDIデータを順次読み出してデータの種類に
応じた所定の処理を行うとともに、読み出したMIDI
データをMIDI・バス10を介して楽音合成回路11
に転送する。これにより、楽音合成回路11は、MID
Iデータに応じて楽音信号を出力する。なお、このMI
DI処理の詳細については、後述する。そして、このM
IDI処理が終了すると、CPU1は、ステップSA3
へ進む。
【0018】ステップSA3では、外部MIDI処理を
行う。この処理は、MIDIインターフェイス9および
MIDI・バス10を介して外部から入力されたMID
Iデータを40チャンネル分に拡張されたMIDIデー
タに変換してMIDI・バス10を介してRAM3のM
IDIバッファに格納するものである。この実施例にお
いては、チャンネル番号0〜15の計16個の外部MI
DIチャンネルは、図2に示すように、そのチャンネル
番号に9を加えたMIDIチャンネルのチャンネル番号
9〜24に割り当てられている。したがって、たとえ
ば、チャンネル番号0の外部MIDIチャンネルのノー
トオンは、チャンネル番号9のMIDIチャンネルのノ
ートオンとしてRAM3のMIDIバッファに格納され
る。そして、この外部MIDI処理が終了すると、CP
U1は、ステップSA4へ進む。
【0019】ステップSA4では、鍵盤4のいずれかの
キーが押鍵された際に働く鍵処理を行う。鍵盤4から出
力された鍵情報は、まず、鍵盤インターフェイス5およ
びアドレス/データ・バス6を介してCPU1に転送さ
れるので、CPU1は、この鍵処理において、鍵をスキ
ャンして転送された鍵情報からMIDIイベントを生成
する。この実施例においては、鍵盤4の複数のキーを上
鍵域と下鍵域とにスプリットしているので、CPU1
は、図2に示すように、上鍵域のMIDIイベントをM
IDIチャンネル0のオーケストラ1のノートオンやノ
ートオフなどの情報とし、下鍵域のMIDIイベントを
MIDIチャンネル1のオーケストラ2の情報としてR
AM3のMIDIバッファに順次格納する。なお、この
鍵処理の詳細については、後述する。そして、この鍵処
理が終了すると、CPU1は、ステップSA5へ進む。
【0020】ステップSA5では、自動演奏処理や自動
リズム演奏処理などの自動処理を行う。自動演奏処理
は、演奏者によって操作パネル7を用いて設定された曲
風(スタイル:ワルツ、ロック、タンゴなど)およびテ
ンポと、鍵盤4を用いて指定された和音情報(コードの
ルートROOTとタイプTYPE)とに基づいて自動演
奏イベントを生成する。そして、この自動演奏のイベン
トは、対応するMIDIチャンネルのイベントとしてR
AM3のMIDIデータバッファに順次格納する。
【0021】また、自動リズム演奏処理は、上述した曲
風とテンポとに基づいてリズムパターンの生成を行う。
そして、このリズムパターンも、対応するMIDIチャ
ンネルのイベントとしてRAM3のMIDIデータバッ
ファに順次格納する。なお、この自動処理の詳細につい
ては、後述する。そして、この自動処理が終了すると、
CPU1は、ステップSA6へ進む。
【0022】ステップSA6では、楽音合成回路11の
各発音チャンネルの中でエンベロープレベルがある一定
以下になった発音チャンネルを空きチャンネルとして検
出する発音チャンネル処理を、チャンネル番号0〜31
までの通常音のMIDIチャンネルに対応した発音チャ
ンネルと、チャンネル番号32〜39までのリズム音の
MIDIチャンネルに対応した発音チャンネルとについ
て別々に行う。なお、この発音チャンネル処理の詳細に
ついては、後述する。そして、この発音チャンネル処理
が終了すると、CPU1は、ステップSA7へ進む。
【0023】ステップSA7では、演奏者による操作パ
ネル7の操作に応じて曲風やテンポの設定、あるいは、
MIDIチャンネル毎の音色の設定などを行う。なお、
後述する各処理のフローチャートにおいて、代入文がな
くて定数的に使用している変数は、このパネル処理にお
いてすべて演奏者が設定するものとする。そして、この
パネル処理が終了すると、CPU1は、ステップSA8
へ進む。
【0024】ステップSA8では、この電子楽器が備え
ているシーケンサについてのMIDIチャンネル番号2
〜8のシーケンサトラック1〜7(図2参照)に関する
処理等、上述した各処理において特に説明しなかったそ
の他の処理が実行され、こうした処理完了後に、上述し
たステップSA2に戻り、電源が切断されるまでステッ
プSA2〜SA8の一連の処理が繰り返し実行される。
このように、メインルーチンにおいては、CPU1が各
種イベントに応じた楽音合成を指示するように動作し、
この楽音合成は後述する各種処理によって実現される。
【0025】次に、CPU1のMIDI処理について図
4のフローチャートに基づいて説明する。CPU1の処
理が図3のステップSA2へ進むと、図4に示すMID
I処理ルーチンが起動される。CPU1は、まず、ステ
ップSB1の処理へ進み、RAM3のMIDIバッファ
を走査した後、ステップSB2へ進む。
【0026】ステップSB2では、MIDIイベントの
有無を判断する。この判断結果が「NO」の場合、すな
わち、MIDIイベントが検出されない場合には、何も
せず、図3のメインルーチンへ戻り、ステップSA3へ
進む。いっぽう、ステップSB2の判断結果が「YE
S」の場合、すなわち、MIDIイベントが検出された
場合には、ステップSB3へ進む。
【0027】ステップSB3では、RAM3のMIDI
バッファからMIDIチャンネル番号およびMIDIイ
ベントを読み出し、それぞれレジスタMCHおよびEV
に格納した後、ステップSB4へ進む。ステップSB4
では、レジスタEVの内容がノートイベントに対応する
ものであるか否かを判断する。この実施例においては、
ノートイベントもリズムのノートイベントも形式として
は、MIDI規格のノートオンの形式である。しかし、
通常楽音とリズム楽音とを別の発音チャンネルで生成す
るようにしており、リズム楽音には、図2に示すよう
に、MIDIチャンネル番号32〜39が別途割当てら
れているので、ノートイベントとリズムのノートイベン
トとの判別は、MIDIチャンネル番号によって行う。
ステップSB4の判断結果が「YES」の場合、すなわ
ち、レジスタEVの内容がノートイベントに対応するも
のである場合には、ステップSB5へ進む。
【0028】ステップSB5では、ノートイベント処理
を行う。なお、このノートイベント処理の詳細について
は、後述する。そして、このノートイベント処理が終了
すると、CPU1は、図3のメインルーチンへ戻り、ス
テップSA3へ進む。いっぽう、ステップSB4の判断
結果が「NO」の場合、すなわち、レジスタEVの内容
がノートイベントでなく、リズムのノートイベント、あ
るいは、チャンネルイベントである場合には、ステップ
SB6へ進む。
【0029】ステップSB6では、レジスタEVの内容
がリズムのノートイベントに対応するものであるか否か
を判断する。この判断結果が「YES」の場合には、ス
テップSB7へ進む。ステップSB7では、リズムノー
トイベント処理を行う。なお、このリズムノートイベン
ト処理の詳細については、後述する。そして、このリズ
ムノートイベント処理が終了すると、CPU1は、図3
のメインルーチンへ戻り、ステップSA3へ進む。
【0030】いっぽう、ステップSB4の判断結果が
「NO」の場合、すなわち、レジスタEVの内容がリズ
ムのノートイベントでなく、チャンネルイベントである
場合には、ステップSB8へ進む。ステップSB8で
は、MIDIチャンネルの音色切り替えを要求するプロ
グラムチェンジ情報やピッチベンド情報等のチャンネル
イベントを処理するチャンネルイベント処理を行う。そ
して、このチャンネルイベント処理が終了すると、CP
U1は、図3のメインルーチンへ戻り、ステップSA3
へ進む。
【0031】次に、CPU1のノートイベント処理につ
いて図5のフローチャートに基づいて説明する。CPU
1の処理が図4のステップSB5へ進むと、図5に示す
ノートイベント処理ルーチンが起動される。CPU1
は、まず、ステップSC1の処理へ進み、レジスタEV
の内容がノートオンイベントNONに対応するものであ
るか否かを判断する。この判断結果が「YES」の場合
には、ステップSC2へ進む。
【0032】ステップSC2では、割当可能である発音
チャンネルを検出するための空き発音チャンネルのサー
チをした後、ステップSC3へ進む。ここで、空き発音
チャンネルとは、発音まで待機している状態を意味して
いる。ステップSC3では、ステップSC2の空き発音
チャンネルのサーチ処理において検出された発音チャン
ネルの状態から現在空き発音チャンネルがあるか否かを
判断する。この判断結果が「NO」の場合、すなわち、
全ての発音チャンネルが何らかの形で発音中である場合
には、ステップSC4へ進む。
【0033】ステップSC4では、発音中の発音チャン
ネルの中で最も減衰が進んでいる発音チャンネル、ある
いは、最も古く押鍵された発音チャンネルを検出し、こ
れを強制的に発音停止させて「空き発音チャンネル」と
するトランケート処理を行う。なお、このトランケート
処理の詳細については、後述する。そして、このトラン
ケート処理が終了すると、CPU1は、ステップSC6
へ進む。
【0034】いっぽう、ステップSC3の判断結果が
「YES」の場合、すなわち、現在空き発音チャンネル
がある場合には、ステップSC5へ進む。ステップSC
5では、アサインされる発音チャンネルの番号が一時格
納されるレジスタACHに、得られた空き発音チャンネ
ルの番号を格納した後、ステップSC6へ進む。ステッ
プSC6では、レジスタACHに格納された発音チャン
ネルの番号に対応した発音チャンネルの状態を発音持続
状態として表すため、レジスタST〔ACH〕の値(ス
テート信号ST)を「1」とした後、ステップSC7へ
進む。ここで、このレジスタST〔ACH〕と各発音チ
ャンネルの状態との対応は、ST〔ACH〕=「0」は
空き発音チャンネル、すなわち、チャンネル待機状態を
表し、「1」は押鍵中の発音チャンネル、すなわち、ノ
ートオンによる発音持続状態を表し、「2」は離鍵され
ているが発音中である発音チャンネル、すなわち、リリ
ース波形発音状態を表している。
【0035】ステップSC7では、発音すべきノートコ
ードNCをMIDIイベントから取り出して、各発音チ
ャンネルで発音中のノートコードNCが格納されるレジ
スタSTNC〔ACH〕に格納する。1つのノートオン
のMIDIメッセージには、MIDIチャンネル番号
と、ノートコードNCと、ベロシティNV等の情報が納
められている。そして、CPU1は、ステップSC8へ
進む。
【0036】ステップSC8では、各発音チャンネルに
アサインされているMIDIチャンネルの番号が格納さ
れるレジスタAMC〔ACH〕に、レジスタMCHに格
納されているMIDIチャンネル番号を格納した後、ス
テップSC9へ進む。ステップSC9では、レジスタA
CHに格納された発音チャンネルの番号に対応する楽音
合成回路11の空き発音チャンネルに対してMIDIチ
ャンネル番号MCH、ノートコードNC、ベロシティN
V、ノートオン情報をMIDI・バス10を介して出力
する。これらは、実際には、MIDI規格に則ったMI
DIイベントの形で送出される。これにより、楽音合成
回路11は、これらの情報に基づいた楽音信号を発生す
る。そして、CPU1は、ステップSC10へ進む。
【0037】ステップSC10では、各発音チャンネル
毎に設けられ、ノートオンされる度に1インクリメント
されるノートオンカウンタNONC〔ACH〕の値を0
にリセットする。このノートオンカウンタNONC〔A
CH〕の値が最大の発音チャンネルが最も古くから押鍵
された発音チャンネルを示しているので、それぞれのノ
ートオンカウンタNONC〔ACH〕の値を参照するこ
とにより、鍵盤4のどのキーが最も早く押鍵されたかを
知ることができる。そして、CPU1は、ステップSC
11へ進む。
【0038】ステップSC11では、発音中の発音チャ
ンネルに対応する全てのノートオンカウンタNONC
〔ACH〕の値を1ずつインクリメントする。もちろ
ん、発音していない発音チャンネルに対応するノートオ
ンカウンタNONC〔ACH〕の値をインクリメントし
てはならない。なお、ここで、発音中の発音チャンネル
に対応する全てのノートオンカウンタNONC〔AC
H〕としたのは、ノートオンされた発音チャンネルに対
応する全てのノートオンカウンタNONC〔ACH〕と
すると、発音中であるが離鍵された発音チャンネル(具
体的には、ST〔ACH〕=「2」)が、後述するトラ
ンケート処理において誤って処理されてしまうからであ
る。そして、CPU1は、図4のMIDI処理ルーチン
を経て図3のメインルーチンへ戻り、ステップSA3へ
進む。
【0039】いっぽう、ステップSC1の判断結果が
「NO」の場合、すなわち、レジスタEVの内容がノー
トオンイベントNONに対応するものでなく、ノートオ
フイベントNOFFに対応するものである場合には、ス
テップSC12へ進む。ステップSC12では、各発音
チャンネルの情報をサーチする。ここで、同じMIDI
チャンネルで同じノートコードNCを発音している発音
チャンネルがあれば、後述するように、その発音チャン
ネルのノートオフ処理を行うが、同じノートコードNC
でも、異なるMIDIチャンネルであれば、その発音チ
ャンネルはノートオフしてはならない。そこで、このこ
とを検出できるようにするため、ステップSC7および
8において、各発音チャンネル毎に、ノートコードNC
およびMIDIチャンネル番号をレジスタSTNC〔A
CH〕およびAMC〔ACH〕にそれぞれ格納している
のである。そして、CPU1は、ステップSC13へ進
む。
【0040】ステップSC13では、対応する発音チャ
ンネルがあるか否かを判断する。この判断結果が「N
O」の場合、すなわち、対応する発音チャンネルの楽音
がもう発音されていない場合、たとえば、押鍵が持続さ
れて発音が完全に減衰してしまった状態や、トランケー
ト処理により押鍵中にもかかわらず発音が強制終了させ
られた場合などには、なにもせず、図4のMIDI処理
ルーチンを経て図3のメインルーチンへ戻り、ステップ
SA3へ進む。
【0041】いっぽう、ステップSC13の判断結果が
「YES」の場合、すなわち、対応する発音チャンネル
が現在発音中である場合には、ステップSC14へ進
む。ステップSC14では、サーチされた発音チャンネ
ル番号をレジスタCHへ格納した後、ステップSC15
へ進む。ステップSC15では、上述した各発音チャン
ネル毎の状態が記憶されるレジスタST〔CH〕に離鍵
されているが発音中である発音チャンネル、すなわち、
リリース波形発音状態であることを表す「2」を格納し
た後、ステップSC16へ進む。ステップSC16で
は、レジスタCHに格納された発音チャンネルの番号に
対応する楽音合成回路11の発音チャンネルに対してノ
ートオフ情報を出力した後、図4のMIDI処理ルーチ
ンを経て図3のメインルーチンへ戻り、ステップSA3
へ進む。
【0042】次に、この発明の特徴であるCPU1のト
ランケート処理について図6のフローチャートに基づい
て説明する。CPU1の処理が図5のステップSC4へ
進むと、図6に示すトランケート処理ルーチンが起動さ
れる。CPU1は、まず、ステップSD1の処理へ進
み、各発音チャンネルの状態をスキャンする、すなわ
ち、レジスタST〔CH〕をスキャンした後、ステップ
SD2へ進む。
【0043】ステップSD2では、ノートオフ中の発音
チャンネルがあるか否か、すなわち、レジスタST〔C
H〕の値が「2」である発音チャンネルがあるか否かを
判断する。この判断結果が「YES」の場合には、ステ
ップSD3へ進む。ステップSD3では、ノートオフ中
の発音チャンネルの中でエンベロープレベルENVが最
も小さい発音チャンネル、すなわち、最も減衰が進んで
いる発音チャンネルの番号をトランケート候補の発音チ
ャンネルの番号が格納されるレジスタTCHに格納した
後、ステップSD5へ進む。
【0044】いっぽう、ステップSD2の判断結果が
「NO」の場合、すなわち、ノートオフ中の発音チャン
ネルがない場合には、ステップSD4へ進む。ステップ
SD4では、発音中の発音チャンネルの中で最も古く押
鍵された発音チャンネル、すなわち、ノートオンカウン
タNONC〔ACH〕の値が最大の発音チャンネルの番
号をレジスタTCHに格納する。これにより、ストリン
グスやパイプオルガン等のスローアタックの楽音の音色
でも、押鍵中であれば、トランケート処理されることが
ない。そして、CPU1は、ステップSD5へ進む。
【0045】ステップSD5では、レジスタTCHに格
納された発音チャンネルの番号に対応する楽音合成回路
11の発音チャンネルに対してダンプ要求信号を送出す
る。これにより、楽音合成回路11の発音チャンネル
は、ダンプ要求信号に応じて所定の速度でエンベロープ
をダンプするが、完全にダンプされるまでにある程度時
間がかかる。したがって、この発音チャンネルにすぐに
ノートオン情報が入力された場合には、不都合が生じる
可能性があるが、楽音合成回路11は、このような状態
の場合、該当する発音チャンネルのエンベロープが完全
にダンプされるまでノートオン情報を遅延させておき、
ダンプが終了した時点でノートオン情報に基づき、直ち
に発音を立ち上げる機能を有しているので、問題はな
い。そして、CPU1は、ステップSD6へ進む。ステ
ップSD6では、レジスタTCHの値をレジスタACH
に格納した後、図5のノートイベント処理ルーチンへ戻
り、ステップSC6へ進む。
【0046】次に、CPU1のリズムノートイベント処
理について図7のフローチャートに基づいて説明する。
CPU1の処理が図4のステップSB7へ進むと、図7
に示すリズムノートイベント処理ルーチンが起動され
る。CPU1は、まず、ステップSE1の処理へ進み、
レジスタEVの内容がリズムのノートオンイベントNO
Nに対応するものであるか否かを判断する。この判断結
果が「YES」の場合には、ステップSE2へ進む。
【0047】ステップSE2では、割当可能であるリズ
ムチャンネルを検出するための空きリズムチャンネルの
サーチをした後、ステップSE3へ進む。ここで、空き
リズムチャンネルとは、リズム発音まで待機している状
態を意味している。ステップSE3では、ステップSE
2の空きリズムチャンネルのサーチ処理において検出さ
れたリズムチャンネルの状態から現在空きリズムチャン
ネルがあるか否かを判断する。この判断結果が「NO」
の場合、すなわち、全てのリズムチャンネルが何らかの
形で発音中である場合には、ステップSE4へ進む。
【0048】ステップSE4では、リズム発音中のリズ
ムチャンネルの中でエンベロープレベルが最も小さいリ
ズムチャンネル、すなわち、最も減衰が進んでいるリズ
ムチャンネルを検出し、これを強制的に発音停止させて
「空きリズムチャンネル」とするリズムトランケート処
理を行う。なお、このリズムトランケート処理の詳細に
ついては、後述する。そして、このリズムトランケート
処理が終了すると、CPU1は、ステップSE6へ進
む。
【0049】いっぽう、ステップSE3の判断結果が
「YES」の場合、すなわち、現在空きリズムチャンネ
ルがある場合には、ステップSE5へ進む。ステップS
E5では、レジスタACHに得られた空きリズムチャン
ネルの番号を格納した後、ステップSE6へ進む。ステ
ップSE6では、レジスタACHに格納されたリズムチ
ャンネルの番号に対応したリズムチャンネルの状態をリ
ズム発音持続状態として表すため、レジスタRST〔A
CH〕の値を「1」とした後、ステップSE7へ進む。
ここで、このレジスタRST〔ACH〕と各リズムチャ
ンネルの状態との対応は、レジスタST〔ACH〕と各
発音チャンネルの状態との対応と同様、RST〔AC
H〕=「0」は空きリズムチャンネル、すなわち、リズ
ムチャンネル待機状態を表し、「1」はリズムノートオ
ンによるリズム発音持続状態を表し、「2」はリリース
波形発音状態を表している。
【0050】ステップSE7では、リズム発音すべきリ
ズムのノートコードNCをMIDIイベントから取り出
して、各リズムチャンネルでリズム発音中のリズムのノ
ートコードNCが格納されるレジスタRSTNC〔AC
H〕に格納する。1つのリズムのノートオンのMIDI
メッセージには、MIDIチャンネル番号と、リズムの
ノートコードNCと、ベロシティNV等の情報が納めら
れている。そして、CPU1は、ステップSE8へ進
む。
【0051】ステップSE8では、アサインされている
MIDIチャンネルの番号が格納されるレジスタRAM
C〔ACH〕に、レジスタMCHに格納されているMI
DIチャンネル番号を格納した後、ステップSE9へ進
む。ステップSE9では、レジスタACHに格納された
リズムチャンネルの番号に対応する楽音合成回路11の
空きリズムチャンネルに対してMIDIチャンネル番号
MCH、リズムのノートコードNC、ベロシティNV、
ノートオン情報をMIDI・バス10を介して出力す
る。これらは、実際には、MIDI規格に則ったMID
Iイベントの形で送出される。これにより、楽音合成回
路11は、これらの情報に基づいたリズム楽音信号を発
生する。そして、CPU1は、図4のMIDI処理ルー
チンを経て図3のメインルーチンへ戻り、ステップSA
3へ進む。
【0052】いっぽう、ステップSE1の判断結果が
「NO」の場合、すなわち、レジスタEVの内容がリズ
ムのノートオンイベントNONに対応するものでなく、
リズムのノートオフイベントNOFFに対応するもので
ある場合には、ステップSE10へ進む。ステップSE
10では、各リズムチャンネルの情報をサーチする。こ
こで、同じMIDIチャンネルで同じリズムのノートコ
ードNCを発音しているリズムチャンネルがあれば、後
述するように、そのリズムチャンネルのリズムノートオ
フ処理を行うが、同じリズムのノートコードNCでも、
異なるMIDIチャンネルであれば、そのリズムチャン
ネルはリズムノートオフしてはならない。そこで、この
ことを検出できるようにするため、ステップSE7およ
び8において、各リズムチャンネル毎に、リズムのノー
トコードNCおよびMIDIチャンネル番号をレジスタ
RSTNC〔ACH〕およびRAMC〔ACH〕にそれ
ぞれ格納しているのである。そして、CPU1は、ステ
ップSE11へ進む。
【0053】ステップSE11では、対応するリズムチ
ャンネルがあるか否かを判断する。この判断結果が「N
O」の場合、すなわち、対応するリズムチャンネルの楽
音がもうリズム発音されていない場合、たとえば、リズ
ムトランケート処理によりリズム発音が強制終了させら
れた場合などには、なにもせず、図4のMIDI処理ル
ーチンを経て図3のメインルーチンへ戻り、ステップS
A3へ進む。
【0054】いっぽう、ステップSE11の判断結果が
「YES」の場合、すなわち、対応するリズムチャンネ
ルが現在リズム発音中である場合には、ステップSE1
2へ進む。ステップSE12では、サーチされたリズム
チャンネル番号をレジスタCHへ格納した後、ステップ
SE13へ進む。ステップSE13では、上述した各リ
ズムチャンネル毎の状態が記憶されるレジスタRST
〔CH〕にリリース波形発音状態であることを表す
「2」を格納した後、ステップSE14へ進む。ステッ
プSE14では、レジスタCHに格納されたリズムチャ
ンネルの番号に対応する楽音合成回路11のリズムチャ
ンネルに対してノートオフ情報を出力した後、図4のM
IDI処理ルーチンを経て図3のメインルーチンへ戻
り、ステップSA3へ進む。
【0055】次に、CPU1のリズムトランケート処理
について図8のフローチャートに基づいて説明する。C
PU1の処理が図7のステップSE4へ進むと、図8に
示すリズムトランケート処理ルーチンが起動される。C
PU1は、まず、ステップSF1の処理へ進み、リズム
チャンネルの中で楽音合成回路11から供給されるエン
ベロープレベルENVが最も小さいリズムチャンネル、
すなわち、最も減衰が進んでいるリズムチャンネルの番
号をトランケート候補としてレジスタTCHに格納す
る。
【0056】ただし、打楽器音には、ハイハットやホイ
ッスルなどのように、キーオンとキーオフとがあるイベ
ント駆動型の音色と、ドラムなどのように、キーオンし
かないトリガ駆動型の音色とがあるので、これらの音色
のエンベロープレベルENVを一様に比較してしまう
と、すでに述べたような不都合が生じてしまう。
【0057】そこで、イベント駆動型の音色とトリガ駆
動型の音色とを区別するために、フラグEDを設け、イ
ベント駆動型の音色である場合には、フラグEDを1に
セットしておき、このステップSF1において、フラグ
EDが1にセットされている場合には、エンベロープレ
ベルENVに、図12(a)に示すように、オフセット
OFTを加えた後、トリガ駆動型の音色のエンベロープ
レベルENVと比較して評価することにする。これによ
り、イベント駆動型の音色がトランケートされにくくな
り、キーオフが処理されるので、自然であり、イベント
駆動型の打楽器音の音色を正確に発生させることができ
る。そして、CPU1は、ステップSF2へ進む。
【0058】ステップSF2では、レジスタTCHに格
納されたリズムチャンネルの番号に対応する楽音合成回
路11のリズムチャンネルに対してダンプ要求信号を送
出する。これにより、楽音合成回路11のリズムチャン
ネルは、ダンプ要求信号に応じて所定の速度でエンベロ
ープをダンプする。そして、CPU1は、ステップSF
3へ進む。ステップSF3では、レジスタTCHの値を
レジスタACHに格納した後、図7のリズムノートイベ
ント処理ルーチンへ戻り、ステップEC6へ進む。
【0059】次に、CPU1の鍵処理について図9のフ
ローチャートに基づいて説明する。CPU1の処理が図
3のステップSA4へ進むと、図9に示す鍵処理ルーチ
ンが起動される。CPU1は、まず、ステップSG1の
処理へ進み、鍵盤4をスキャンして鍵盤4の押離鍵状態
を検出した後、ステップSG2へ進む。ステップSG2
では、ステップSG1の鍵スキャン処理において検出さ
れた鍵盤4の押離鍵状態から鍵イベントの有無を判断す
る。この判断結果が「NO」の場合、すなわち、鍵イベ
ントが検出されない場合には、何もせず、図3のメイン
ルーチンへ戻り、ステップSA5へ進む。
【0060】いっぽう、ステップSG2の判断結果が
「YES」の場合、すなわち、鍵イベントが検出された
場合には、ステップSG3へ進む。ステップSG3で
は、あらかじめ設定されているモードMODEに応じて
対応するMIDIチャンネルの情報として該当するイベ
ントをRAM3のMIDIバッファにアドレス/データ
・バス6を介して格納した後、ステップSG4へ進む。
【0061】ここで、モードMODEについて説明す
る。 モードMODE=0:通常発音モード 鍵盤4の全てのイベントをチャンネル番号0のMIDI
チャンネルの情報としてRAM3のMIDIバッファに
アドレス/データ・バス6を介して格納する。 モードMODE=1:スプリットモード 鍵盤4のある点(KSP:キースプリットポイント)よ
り上の鍵域のイベントは、チャンネル番号0のMIDI
チャンネルの情報とし、キースプリットポイントKSP
より下の鍵域のイベントは、チャンネル番号1のMID
Iチャンネルの情報としてRAM3のMIDIバッファ
にアドレス/データ・バス6を介して格納する。これに
より、鍵域に応じて各MIDIチャンネルに割当てられ
た音色が発音される。なお、キースプリットポイントK
SPは、固定でも、演奏者によって設定可能でもよい。
【0062】モードMODE=2:自動伴奏モード 鍵盤4のある点(ASP:自動伴奏スプリットポイン
ト)より上の鍵域は、通常の押鍵域とし、そのイベント
は、チャンネル番号0のMIDIチャンネルの情報とし
てRAM3のMIDIバッファにアドレス/データ・バ
ス6を介して格納する。また、自動伴奏スプリットポイ
ントASPより下の鍵域は、自動伴奏用の調検出領域と
して用い、その音は発音しない、すなわち、MIDIイ
ベントとしてRAM3のMIDIバッファにアドレス/
データ・バス6を介して格納せず、検出された情報は、
コードの根音(ルート)ROOTとタイプTYPEの形
で、たとえば、演奏者が「ドミソ」と押鍵していれば、
後述するステップSG5の処理において、ルートROO
Tとして「ド」が、タイプTYPEとして「メジャー」
がRAM3に格納され、後述する自動処理で利用され
る。なお、自動伴奏スプリットポイントASPは、キー
スプリットポイントKSPと同じにしてもよい。
【0063】ステップSG4では、モードMODEが
「2」であるか否かを判断する。この判断結果が「N
O」の場合には、何もせず、図3のメインルーチンへ戻
り、ステップSA5へ進む。いっぽう、ステップSG4
の判断結果が「YES」の場合、すなわち、モードMO
DEが「2」である場合には、ステップSG5へ進む。
ステップSG5では、鍵盤4の下鍵域で押鍵されている
キーのノートナンバの組み合わせからコードのルートR
OOTとタイプTYPEとを図示せぬテーブルを参照し
て決定し、RAM3に格納した後、図3のメインルーチ
ンへ戻り、ステップSA5へ進む。
【0064】次に、CPU1の自動処理について図10
のフローチャートに基づいて説明する。CPU1の処理
が図3のステップSA5へ進むと、図10に示す自動処
理ルーチンが起動される。CPU1は、まず、ステップ
SH1の処理へ進み、モードMODEが「2」であるか
否かを判断する。この判断結果が「YES」の場合に
は、ステップSH2へ進む。
【0065】ステップSH2では、ROM2やRAM3
等の自動伴奏データエリアにあらかじめ7thの形で記
憶された自動伴奏データを、演奏者によって設定された
スタイルSTYLEおよびテンポTEMPO並びに上述
した鍵処理によって検出されてRAM3に格納されたタ
イプTYPEおよびルートROOTに応じて読み出し、
タイプTYPEに応じてメジャーやマイナー等に変更
し、ルートROOTによってシフトする。以上説明した
処理を、図2に示すチャンネル番号25〜31のMID
Iチャンネル、すなわち、自動伴奏コードトラック1〜
6および自動伴奏ベーストラックについて行い、それら
のMIDIチャンネルの情報として各イベントをRAM
3のMIDIデータバッファに順次格納した後、ステッ
プSH3へ進む。いっぽう、ステップSH1の判断結果
が「NO」の場合、すなわち、モードMODEが「2」
でない場合にも、ステップSH3へ進む。
【0066】ステップSH3では、演奏者が自動リズム
演奏を選択した場合に1にセットされる自動リズムフラ
グRHYTHMが1にセットされているか否かを判断す
る。この判断結果が「NO」の場合には、何もせず、図
3のメインルーチンへ戻り、ステップSA6へ進む。い
っぽう、ステップSH3の判断結果が「YES」の場
合、すなわち、自動リズムフラグRHYTHMが1にセ
ットされている場合には、ステップSH4へ進む。ステ
ップSH4では、ROM2やRAM3等の自動リズムデ
ータエリアにあらかじめ記憶された自動リズムデータを
演奏者によって設定されたスタイルSTYLEおよびテ
ンポTEMPOに応じて読み出す処理を、図2に示すチ
ャンネル番号32〜39のMIDIチャンネル、すなわ
ち、自動伴奏リズムトラックについて行い、それらのM
IDIチャンネルの情報として各イベントをRAM3の
MIDIデータバッファに順次格納した後、図3のメイ
ンルーチンへ戻り、ステップSA6へ進む。
【0067】次に、CPU1の発音チャンネル処理につ
いて図11のフローチャートに基づいて説明する。CP
U1の処理が図3のステップSA6へ進むと、図11に
示す発音チャンネル処理ルーチンが起動される。CPU
1は、まず、ステップSI1の処理へ進み、全発音チャ
ンネルの状態を検索するため、レジスタCHの値を
「0」に設定した後、ステップSI2へ進む。
【0068】ステップSI2では、各発音チャンネル毎
のエンベロープレベルが記憶されるレジスタENV〔C
H〕に楽音合成回路11から供給される各発音チャンネ
ルのエンベロープレベルを格納した後、ステップSI3
へ進む。ステップSI3では、各発音チャンネル毎の状
態を表すレジスタST〔CH〕が「2」、すなわち、離
鍵されているが発音状態であるか否かを判断する。この
判断結果が「YES」の場合には、ステップSI4へ進
み、いっぽう、ステップSI3の判断結果が「NO」の
場合、すなわち、空き発音チャンネルである場合には、
当該チャンネルが発音待機状態にあるから、後述するス
テップSI7へ進む。
【0069】ステップSI4では、レジスタENV〔C
H〕に格納された、レジスタCHに設定された発音チャ
ンネルの番号に対応した楽音合成回路11の発音チャン
ネルのエンベロープレベルが各音色毎にあらかじめ設定
されたスレッショルドTH(たとえば、0にかなり近い
値)より小さいか否かを判断する。この判断結果が「Y
ES」の場合には、ステップSI5へ進み、いっぽう、
ステップSI4の判断結果が「NO」の場合、すなわ
ち、レジスタENV〔CH〕に格納されたエンベロープ
レベルがスレッショルドTH以上である場合には、後述
するステップSI7へ進む。
【0070】ステップSI5では、発音チャンネルCH
は減衰しきっているため、レジスタST〔CH〕の値を
「0」に設定して発音待機状態であることを示した後、
ステップSI6へ進む。ステップSI6では、各発音チ
ャンネル毎に設けられ、ノートオンされる度に1インク
リメントされるノートオンカウンタNONC〔CH〕の
値を0にリセットした後、ステップSI7へ進む。
【0071】ステップSI7では、次の発音チャンネル
を検索するために、レジスタCHの値を1インクリメン
トした後、ステップSI7へ進む。ステップSI8で
は、このインクリメントされたレジスタCHの値が32
であるか否か、すなわち、通常音のMIDIチャンネル
に対応した発音チャンネルすべてについて上述したステ
ップSI3〜SI6の処理が終了したか否かを判断す
る。この判断結果が「NO」の場合には、ステップSI
2へ戻り、上述した処理を通常音のMIDIチャンネル
に対応した発音チャンネルすべてについて繰返す。
【0072】いっぽう、ステップSI8の判断結果が
「YES」の場合には、ステップSI9へ進む。ステッ
プSI9では、レジスタENV〔CH〕に各リズムチャ
ンネルのエンベロープレベルを格納した後、ステップS
I10へ進む。ステップSI10では、各リズムチャン
ネル毎の状態を表すレジスタRST〔CH〕が「0」で
ない、すなわち、空きリズムチャンネルでない否かを判
断する。この判断を行うのは、トリガ駆動型の音色の場
合、キーオフがないので、レジスタRST〔CH〕が
「0」か「1」にしかならないからである。ステップS
I10の判断結果が「YES」の場合には、ステップS
I11へ進み、いっぽう、ステップSI10の判断結果
が「NO」の場合、すなわち、空きリズムチャンネルで
ある場合には、当該リズムチャンネルがリズム発音待機
状態にあるから、後述するステップSI13へ進む。
【0073】ステップSI11では、レジスタENV
〔CH〕に格納された、レジスタCHに設定されたリズ
ムチャンネルの番号に対応する楽音合成回路11のリズ
ムチャンネルのエンベロープレベルが各音色毎にあらか
じめ設定されたスレッショルドTH(たとえば、0にか
なり近い値)より小さく、かつ、フラグEDが0にリセ
ットされている(トリガ駆動型の音色である)か否かを
判断する。この判断結果が「YES」の場合には、ステ
ップSI12へ進み、いっぽう、ステップSI11の判
断結果が「NO」の場合、すなわち、レジスタENV
〔CH〕に格納されたエンベロープレベルがスレッショ
ルドTH以上であるか、または、フラグEDが1にセッ
トされている(イベント駆動型の音色である)場合に
は、後述するステップSI13へ進む。
【0074】ステップSI12では、リズムチャンネル
CHは減衰しきっているため、レジスタRST〔CH〕
の値を「0」に設定してリズム発音待機状態であること
を示した後、ステップSI13へ進む。ステップSI1
3では、次のリズムチャンネルを検索するために、レジ
スタCHの値を1インクリメントした後、ステップSI
14へ進む。
【0075】ステップSI14では、このインクリメン
トされたレジスタCHの値が40であるか否か、すなわ
ち、リズム音のMIDIチャンネルに対応したリズムチ
ャンネルすべてについて上述したステップSI9〜SI
13の処理が終了したか否かを判断する。この判断結果
が「NO」の場合には、ステップSI9へ戻り、上述し
た処理をリズム音のMIDIチャンネルに対応したリズ
ムチャンネルすべてについて繰返す。いっぽう、ステッ
プSI14の判断結果が「YES」の場合、すなわち、
レジスタCHの値が40である場合には、図3のメイン
ルーチンへ戻り、ステップSA7へ進む。
【0076】なお、上述した一実施例においては、リズ
ム音についてのみこの発明に関するトランケート処理を
行うようにして、通常音の発音チャンネルとリズム音の
リズムチャンネルとを完全に独立した発音チャンネルと
した例を示したが、浮動的にアサインできるようにして
もよい。その際には、リズム音と同様に通常音にもこの
発明に関するトランケート処理を行うようにして、ノー
トイベント処理とトランケート処理の大部分を共用する
ことができる。また、上述した一実施例においては、通
常鍵域のトランケート時に、ノートオウされた発音チャ
ンネルがない場合には、最も古くキーオンされた発音チ
ャンネルをトランケートする例を示したが、これに限定
されず、たとえば、楽音合成回路11から各発音チャン
ネルのエンベロープのステートをCPU1に供給し、こ
のステートが一番進んでいる発音チャンネルをトランケ
ートしてもよく、また、CPU1が楽音合成回路11の
各発音チャンネルのエンベロープのステートを演算によ
って推測し、この推測したステートが一番進んでいる発
音チャンネルをトランケートするようにしてもよい。
【0077】
【発明の効果】以上説明したように、この発明によれ
ば、スローアタックの音色や異なったリリースを持つ音
色を正確に発生でき、発音割当処理を正確に行うことが
できるという効果がある。
【図面の簡単な説明】
【図1】 この発明の一実施例による電子楽器の構成を
示すブロック図である。
【図2】 MIDIチャンネルのそれぞれの機能の一例
を示す図である。
【図3】 この発明の一実施例におけるCPU1のメイ
ンルーチンの動作を示すフローチャートである。
【図4】 この発明の一実施例におけるCPU1のMI
DI処理ルーチンの動作を示すフローチャートである。
【図5】 この発明の一実施例におけるCPU1のノー
トイベント処理ルーチンの動作を示すフローチャートで
ある。
【図6】 この発明の一実施例におけるCPU1のトラ
ンケート処理ルーチンの動作を示すフローチャートであ
る。
【図7】 この発明の一実施例におけるCPU1のリズ
ムイベント処理ルーチンの動作を示すフローチャートで
ある。
【図8】 この発明の一実施例におけるCPU1のリズ
ムトランケート処理ルーチンの動作を示すフローチャー
トである。
【図9】 この発明の一実施例におけるCPU1の鍵処
理ルーチンの動作を示すフローチャートである。
【図10】 この発明の一実施例におけるCPU1の自
動処理ルーチンの動作を示すフローチャートである。
【図11】 この発明の一実施例におけるCPU1の発
音チャンネル処理ルーチンの動作を示すフローチャート
である。
【図12】 従来の技術の不都合点を説明するための図
である。
【符号の説明】
1……CPU、2……ROM、3……RAM、4……鍵
盤、5……鍵盤インターフェイス、6……アドレス/デ
ータ・バス、7……操作パネル、8……操作パネルイン
ターフェイス、9……MIDIインターフェイス、10
……MIDI・バス、11……楽音合成回路、12……
サウンドシステム、13……スピーカ。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 鍵操作情報を発生する鍵操作情報発生手
    段と、 複数の楽音信号発生用の発音チャンネルを有し、各発音
    チャンネル毎に、複数の楽音信号をそれぞれ出力する楽
    音発生手段と、 前記複数の発音チャンネルが全て発音中であるか否かを
    検出する第1の発音チャンネル検出手段と、 該第1の発音チャンネル検出手段によって前記複数の発
    音チャンネルが全て発音中であることが検出された場合
    に、前記複数の発音チャンネルの中に離鍵中の発音チャ
    ンネルがあるか否かを検出する第2の発音チャンネル検
    出手段と、 該第2の発音チャンネル検出手段によって複数の発音チ
    ャンネルの中に離鍵中の発音チャンネルがあることが検
    出された場合には、前記離鍵中の発音チャンネルの中で
    最もエンベロープレベルが小さい楽音信号の発音チャン
    ネルを検出する第1のトランケートチャンネル検出処理
    を行って当該検出された発音チャンネルをトランケート
    し、前記第2の発音チャンネル検出手段によって複数の
    発音チャンネルの中に離鍵中の発音チャンネルがないこ
    とが検出された場合には、前記第1のトランケートチャ
    ンネル検出処理とは異なる第2のトランケートチャンネ
    ル検出処理を行って検出された発音チャンネルをトラン
    ケートするトランケート手段と、 該トランケート手段のトランケート結果および前記鍵操
    作情報発生手段から出力される新たな鍵操作情報に基づ
    いて、新たな楽音の発生を前記楽音発生手段のトランケ
    ートされた発音チャンネルに割当てる割当手段とを具備
    することを特徴とする電子楽器。
JP4064216A 1992-03-19 1992-03-19 電子楽器 Expired - Lifetime JP2687810B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4064216A JP2687810B2 (ja) 1992-03-19 1992-03-19 電子楽器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4064216A JP2687810B2 (ja) 1992-03-19 1992-03-19 電子楽器

Publications (2)

Publication Number Publication Date
JPH05265458A JPH05265458A (ja) 1993-10-15
JP2687810B2 true JP2687810B2 (ja) 1997-12-08

Family

ID=13251678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4064216A Expired - Lifetime JP2687810B2 (ja) 1992-03-19 1992-03-19 電子楽器

Country Status (1)

Country Link
JP (1) JP2687810B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2943492B2 (ja) 1992-03-19 1999-08-30 ヤマハ株式会社 電子楽器

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5648791B2 (ja) * 2010-09-27 2015-01-07 ヤマハ株式会社 楽音信号発生装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2943492B2 (ja) 1992-03-19 1999-08-30 ヤマハ株式会社 電子楽器

Also Published As

Publication number Publication date
JPH05265458A (ja) 1993-10-15

Similar Documents

Publication Publication Date Title
KR100306032B1 (ko) 악음발생장치
JP3177374B2 (ja) 自動伴奏情報発生装置
US5345035A (en) Musical tone generating apparatus
US6066795A (en) Techniques of using computer keyboard as musical instrument keyboard
JP2705395B2 (ja) 電子楽器
JP2500489B2 (ja) 電子楽器
JP2541063B2 (ja) 電子楽器
JP2687810B2 (ja) 電子楽器
US5428183A (en) Tone signal generating apparatus for performing a timbre change by storing a full frequency band in a wave memory
JP3223756B2 (ja) ミュージックシステムおよび電子楽器
JPH0160839B2 (ja)
EP0346940B1 (en) Chord setting apparatus and electronic wind instrument using the same
JP2943492B2 (ja) 電子楽器
JP3567293B2 (ja) 発音チャンネル割当装置
JPH0638192B2 (ja) 楽音発生装置
JP2640992B2 (ja) 電子楽器の発音指示装置及び発音指示方法
JP3554770B2 (ja) 楽音発生装置
JP3667387B2 (ja) 電子楽器
JP4096814B2 (ja) 波形変調装置および波形変調プログラム
JPH05204297A (ja) 階名発生装置
JP2001051681A (ja) 自動伴奏情報発生装置
JPH01182896A (ja) 電子楽器の音域変換装置
JP2738217B2 (ja) 電子楽器
JP3386826B2 (ja) 電子楽器
JP3476863B2 (ja) 電子楽器の自動伴奏装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19970722

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070822

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080822

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090822

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100822

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100822

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 15

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 15