(57)【特許請求の範囲】
【請求項１】
楽音信号をそれぞれ発生する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルに、楽音信号の発生指示を割り当てて楽音信号を発生する楽音信号発生装置において、
楽音信号の発生指示を異なる態様でそれぞれ行う第１モードおよび第２モードのうちのいずれか一方のモードを選択するモード選択手段と、
前記第１モードが選択されているとき、楽音信号の発生指示に応答して前記複数の楽音信号発生チャンネルの全ての中に楽音信号を発生中でない楽音信号発生チャンネルがあるかを判定し、楽音信号を発生中でない楽音信号発生チャンネルがあれば同楽音信号を発生中でない楽音信号発生チャンネルうちのいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当て、楽音信号を発生中でない楽音信号発生チャンネルがなければ楽音信号を発生中の楽音信号発生チャンネルうちのいずれかの楽音信号発生チャンネルにおける楽音信号の発生を終了させて、同楽音信号の発生を終了させた楽音信号発生チャンネルに前記楽音信号の発生指示を割り当てる第１割り当て手段と、
前記第２モードが選択されているとき、前記複数の楽音信号発生チャンネルを、複数の楽音信号発生チャンネルからなる発音用グループと複数の楽音信号発生チャンネルからなる待機用グループとの２グループに分けて管理し、前記待機用グループに属する複数の楽音信号発生チャンネルが不足したとき、前記発音用グループに属する複数の楽音信号発生チャンネルの一部を前記待機用グループに登録して、同登録した楽音信号発生チャンネルにて発生中の楽音信号をダンプ処理し、前記待機用グループに属する複数の楽音信号発生チャンネルを補充する補充手段と、
前記第２モードが選択されているとき、楽音信号の発生指示に応答して、前記発音用グループに属する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルが楽音信号を発生中でなければ、同楽音信号を発生中でないいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当て、前記発音用グループに属する全ての楽音信号発生チャンネルが楽音信号を発生中であれば、前記待機用グループに属する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当てる第２割り当て手段とを備えたことを特徴とする楽音信号発生装置。
【請求項２】
前記補充手段は、前記待機用グループに属する複数の楽音信号発生チャンネルを補充する際、前記第２割り当て手段による楽音信号の発生指示の割り当て順が最後になるように、前記ダンプ処理された楽音信号発生チャンネルを前記待機用グループに登録するようにした請求項１に記載した楽音信号発生装置。
【請求項３】
楽音信号をそれぞれ発生する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルに、楽音信号の発生指示を割り当てて楽音信号を発生する楽音信号発生方法において、
楽音信号の発生指示を異なる態様でそれぞれ行う第１モードおよび第２モードのうちのいずれか一方のモードを選択し、
前記第１モードが選択されているとき、楽音信号の発生指示に応答して前記複数の楽音信号発生チャンネルの全ての中に楽音信号を発生中でない楽音信号発生チャンネルがあるかを判定し、楽音信号を発生中でない楽音信号発生チャンネルがあれば同楽音信号を発生中でない楽音信号発生チャンネルうちのいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当て、楽音信号を発生中でない楽音信号発生チャンネルがなければ楽音信号を発生中の楽音信号発生チャンネルうちのいずれかの楽音信号発生チャンネルにおける楽音信号の発生を終了させて、同楽音信号の発生を終了させた楽音信号発生チャンネルに前記楽音信号の発生指示を割り当て、
前記第２モードが選択されているとき、前記複数の楽音信号発生チャンネルを、複数の楽音信号発生チャンネルからなる発音用グループと複数の楽音信号発生チャンネルからなる待機用グループとの２グループに分けて管理し、前記待機用グループに属する複数の楽音信号発生チャンネルが不足したとき、前記発音用グループに属する複数の楽音信号発生チャンネルの一部を前記待機用グループに登録して、同登録した楽音信号発生チャンネルにて発生中の楽音信号をダンプ処理し、前記待機用グループに属する複数の楽音信号発生チャンネルを補充し、かつ
前記第２モードが選択されているとき、楽音信号の発生指示に応答して、前記発音用グループに属する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルが楽音信号を発生中でなければ、同楽音信号を発生中でないいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当て、前記発音用グループに属する全ての楽音信号発生チャンネルが楽音信号を発生中であれば、前記待機用グループに属する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当てるようにしたことを特徴とする楽音信号発生方法。
【請求項４】
前記待機用グループに属する複数の楽音信号発生チャンネルを補充する際、前記待機用グループに属する複数の楽音信号発生チャンネルへの楽音信号の発生指示の割り当て順が最後になるように、前記ダンプ処理された楽音信号発生チャンネルを前記待機用グループに登録するようにした請求項３に記載した楽音信号発生方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音信号をそれぞれ発生する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルに、楽音信号の発生指示を割り当てて楽音信号を発生する楽音信号発生装置、同楽音信号を発生する楽音信号発生方法、及び同楽音信号を発生させるプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
従来から、楽音信号をそれぞれ発生する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルに楽音信号の発生指示を割り当てて楽音信号を発生することはよく知られている。この場合、楽音信号の発生指示があった時点で、複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルが楽音信号を発生中でなければ、同楽音信号を発生中でないいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当て、また全ての楽音信号発生チャンネルが楽音信号を発生中であれば、楽音信号の発生を中断しても聴感上最も違和感のない楽音信号を発生中の楽音信号発生チャンネル（振幅エンベロープの最も小さな楽音信号を発生中の楽音信号発生チャンネル、楽音信号の発生終了の指示（キーオフ）が最も古い楽音信号発生チャンネルなど）を選択して、同選択した楽音信号発生チャンネルに前記同楽音信号の発生指示を割り当てる。この割り当ての際には、前記選択した楽音信号発生チャンネルにて発生中の楽音信号の振幅を急速に減衰させるダンプ処理を行い、同ダンプ処理により楽音信号の発生が終了した時点で（振幅エンベロープが「０」になった時点で）、新たな楽音信号の発生指示を割り当ててノイズの発生を防止するようにしていた。
【０００３】
【発明が解決しようとする課題】
しかし、上記従来の方法にあっては、ダンプ処理により楽音信号の振幅エンベロープが減衰し始めてから減衰し終わるまでには１〜２ミリ秒程度の時間を必要とするので、全ての楽音信号発生チャンネルが楽音信号を発生中に、新たな楽音信号の発生指示があった場合には、楽音信号の発生が遅れるという問題があった。特に、全ての楽音信号発生チャンネルが楽音信号を発生中に、複数の楽音信号の発生指示がほぼ同時にあると、前記楽音信号の発生遅れが大きな問題となる。これを解決するために、ダンプ処理による楽音信号の減衰レートを高くすることも考えられるが、同減衰レートを高くした場合には楽音信号の振幅エンベロープが急峻過ぎてノイズが発生するという問題がある。他の方法として、ハード回路のみで構成した音源回路では同音源回路にダンプ処理のための補間回路を設けたり、一部をプログラム処理で構成したソフト音源にあっては同ソフト以外のハード回路部分に前記のような補間回路を設けたりすることも考えられるが、これでは回路規模が大きくなるという問題がある。また、前記ソフト音源では、ソフト部分（プログラム処理部分）に前記ダンプ処理のための演算処理を含ませることもできないわけではないが、これでは処理速度の点で他の処理に支障をきたすことがある。
【０００４】
【発明の概略】
本発明は、上記問題に対処するためになされもので、その目的は、楽音信号をそれぞれ発生する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルに、楽音信号の発生指示を割り当てて楽音信号を発生する楽音信号発生装置及び同楽音信号を発生する楽音信号発生方法において、回路規模を増大させることなく、またソフト音源にも簡単に適用できるようにしたうえで、全ての楽音信号発生チャンネルが楽音信号を発生中に、新たな楽音信号の発生指示があった場合でも、楽音信号の発生指示から遅滞なく楽音信号を発生できるようにすることにある。
【０００５】
前記目的を達成するために、本発明の構成上の特徴は、楽音信号の発生指示を異なる態様でそれぞれ行う第１モードおよび第２モードのうちのいずれか一方のモードを選択し、前記第１モードが選択されているとき、楽音信号の発生指示に応答して前記複数の楽音信号発生チャンネルの全ての中に楽音信号を発生中でない楽音信号発生チャンネルがあるかを判定し、楽音信号を発生中でない楽音信号発生チャンネルがあれば同楽音信号を発生中でない楽音信号発生チャンネルうちのいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当て、楽音信号を発生中でない楽音信号発生チャンネルがなければ楽音信号を発生中の楽音信号発生チャンネルうちのいずれかの楽音信号発生チャンネルにおける楽音信号の発生を終了させて、同楽音信号の発生を終了させた楽音信号発生チャンネルに前記楽音信号の発生指示を割り当て、前記第２モードが選択されているとき、前記複数の楽音信号発生チャンネルを、複数の楽音信号発生チャンネルからなる発音用グループと複数の楽音信号発生チャンネルからなる待機用グループとの２グループに分けて管理し、前記待機用グループに属する複数の楽音信号発生チャンネルが不足したとき、前記発音用グループに属する複数の楽音信号発生チャンネルの一部を前記待機用グループに登録して、同登録した楽音信号発生チャンネルにて発生中の楽音信号をダンプ処理し、前記待機用グループに属する複数の楽音信号発生チャンネルを補充し、かつ前記第２モードが選択されているとき、楽音信号の発生指示に応答して、前記発音用グループに属する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルが楽音信号を発生中でなければ、同楽音信号を発生中でないいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当て、前記発音用グループに属する全ての楽音信号発生チャンネルが楽音信号を発生中であれば、前記待機用グループに属する複数の楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当てるようにしたことにある。
【０００６】
このように構成した本発明においては、第２モードが選択されていれば、発音用グループに属する全ての楽音信号発生チャンネルが楽音信号を発生中である状態で、新たな楽音信号の発生指示があっても、発音用グループに属するいずれかの楽音信号発生チャンネルのダンプ処理の終了を待つことなく、前記楽音信号の発生指示が待機用グループに属するいずれかの楽音信号発生チャンネルに割り当てられる。また、待機用グループに属する楽音信号発生チャンネルが不足した場合には、待機用グループに属する楽音信号発生チャンネルが補充されるので、複数の楽音信号の発生指示も待機用グループに属する楽音信号発生チャンネルに即座に割り当てられ、楽音信号の発生遅れの問題が解消される。また、前記構成はプログラム処理により簡単に実現されるので、回路規模が増大することがないとともに、ソフト音源にも簡単に適用できる。
【０００７】
前記待機用グループに属する複数の楽音信号発生チャンネルの補充に関する一態様としては、前記待機用グループに属する複数の楽音信号発生チャンネルを補充する際、前記待機用グループに属する複数の楽音信号発生チャンネルへの楽音信号の発生指示の割り当て順が最後になるように、前記ダンプ処理された楽音信号発生チャンネルを前記待機用グループに登録するようにすればよい。
【０００９】
【実施の形態】
以下、本発明の一実施形態を図面を用いて説明すると、図１は本発明に係る電子楽器をブロック図により示している。
【００１０】
この電子楽器は、鍵盤１０及び操作パネル２０を備えている。鍵盤１０は、音高をそれぞれ指定するとともに楽音信号の発生をそれぞれ指示する複数の演奏操作子としての複数の鍵からなり、これらの各鍵の押離鍵は、鍵スイッチ回路１１内に各鍵に対応して設けた鍵スイッチにより検出されるようになっている。操作パネル２０には、発生される楽音信号の音色、同楽音信号に付与される効果などの楽音の態様を選択するための選択操作子群２１と、電子楽器の作動モードを選択するためのモード選択操作子群２２、その他の操作子群２３などが設けられているとともに、液晶ディスプレで構成されて文字などを表示する表示器２４も設けられている。これらの各操作子群２１〜２３の各操作は、操作子スイッチ回路２５内に各操作子に対応して設けた操作子スイッチにより検出されるようになっている。表示器２０の表示状態は、表示制御回路２６により制御されるようになっている。
【００１１】
これらの鍵スイッチ回路１１、操作子スイッチ回路２５及び表示制御回路２６は、バス３１に接続されている。バス３１には、マイクロコンピュータの本体部を構成するＣＰＵ３２，ＲＡＭ３３及びＲＯＭ３４が接続されているとともに、外部記憶装置４０、通信インターフェース５０及び音源回路６０も接続されている。
【００１２】
ＣＰＵ３２は、図２〜４のフローチャートに対応したプログラムの実行により、楽音信号の発生を制御する。ＲＡＭ３３及びＲＯＭ３４は、前記プログラム及び各種データを記憶するものである。特に、ＲＡＭ３３内には、少なくともチャンネルデータエリア、発音用グループエリア及び待機用グループエリアが設けられている。
【００１３】
チャンネルデータエリアは、図５に示すように、音源回路６０に設けた複数の楽音信号信号発生チャンネル（本実施形態では、０〜１２７の計１２８チャンネル）にそれぞれ対応したチャンネルデータを記憶するものである。各チャンネルデータは、ビジーフラグＢＦ、キーフラグＫＦ、キーコードＫＣ、及び鍵タッチデータ、各楽音毎に音色、効果などを制御する制御パラメータなどのその他の制御データからなる。ビジーフラグＢＦは、“１”により各楽音信号発生チャンネルが楽音信号を発生中であることを表し、“０”により楽音信号を発生していなくて該当する楽音信号発生チャンネルが空きチャンネルであることを表す。キーフラグＫＦは、”１“によりキーオン状態にある楽音信号を発生中であることを表し、”０“によりキーオフ後の楽音信号を発生中であることを表す。キーコードＫＣは、鍵盤の各鍵に対応した鍵音高を表す。
【００１４】
発音用グループエリアは、図6に示すように、発音用グループに属しているチャンネル番号を記憶するもので、待機用グループエリアは待機用グループに属しているチャンネル番号を記憶するものである。なお、発音用グループとは、音源回路６０に設けた複数の楽音信号発生チャンネルのうちで、通常時に楽音信号の発生のために使われる楽音信号発生チャンネルのことである。また、待機用グループとは、音源回路６０に設けた複数の楽音信号発生チャンネルのうちで、発音用グループに属する全ての楽音信号発生チャンネルが楽音信号を発生中である場合にのみ、楽音信号の発生のために使われる楽音信号発生チャンネルのことである。本実施形態では、音源回路６０には１２８個の楽音信号発生チャンネルが設けられており、同１２８個の楽音信号発生チャンネルのうちで、１００個の楽音信号発生チャンネルが発音用グループに属し、残りの２８個の楽音信号発生チャンネルが待機用グループに属する。
【００１５】
外部記憶装置４０は、各種データ及びプログラムを記録するためのコンパクトディスク、フレキシブルディスク、ハードディスク、光ディスクなどの記録媒体と、各種データ及びプログラムを同記録媒体から読み取るとともに同記録媒体に書き込むドライブ装置とを包含するものである。通信インターフェース５０は、ＭＩＤＩ（Musical Instrument Digital Interface）を含み、他の電子楽器、コンピュータ装置などの外部機器との接続を可能として、楽音の発生及び発生楽音の音色などを制御するための演奏データ、その他のプログラム及びデータの入出力を可能とする。
【００１６】
音源回路６０は、複数の楽音信号発生チャンネルを備え、各楽音信号発生チャンネルはバス３１を介して供給されるキーコードＫＣ、キーオン信号ＫＯＮ、キーオフ信号ＫＯＦ、各楽音制御パラメータにしたがった楽音信号を形成してそれぞれ出力する。この音源回路６０には、アンプ６１を介してスピーカ６２が接続されている。
【００１７】
次に、上記のように構成した実施形態の動作を説明する。各種データ及び図２の楽音発生制御プログラムを含む各種プログラムを記録したコンパクトディスク、フレキシブルディスク、ハードディスク、光ディスクなどの記録媒体を外部記憶装置４０のドライブにセットした状態で、電源スイッチを投入すると、同記録媒体内の各種データ及びプログラムがＲＡＭ３４に転送され、この電子楽器が楽音を発音可能な作動状態になる。なお、前記各種データ及び各種プログラムをＲＯＭ３４に予め記憶させておいて、前記電源スイッチの投入時にこの電子楽器を楽音の発音可能な作動状態に設定するようにしてもよい。
【００１８】
前記のような電子楽器の作動状態で、演奏者によって鍵盤１０が押離及び離鍵操作されると、鍵スイッチ回路１１は、前記押鍵操作に伴って同押鍵操作された鍵を表すキーコードＫＣ及びキーオン信号ＫＯＮなどの演奏データを出力し、また前記離鍵操作に伴って同離鍵操作された鍵を表すキーコードＫＣ及びキーオフ信号ＫＯＦなどの演奏データを出力する。これらの演奏データはバス３１を介してＣＰＵ３２に供給される。一方、前記のような演奏データは、この電子楽器に内蔵の自動演奏装置、自動伴奏装置などからバス３１を介してＣＰＵ３２に供給されたり、他の電子楽器、外部の自動演奏装置、コンピュータ装置などから外部の通信回線、通信インターフェース５０、バス３１を介してＣＰＵ３２に供給されることもある。
【００１９】
これらの演奏データの供給に応答して、ＣＰＵ３２は、図２のステップ１００にて楽音発生制御プログラムを実行し始める。前記開始後、ＣＰＵ３２は、ステップ１０２にて鍵スイッチ回路１１、通信インターフェース回路５０などから演奏データを入力し、ステップ１０４にて、前記演奏データが楽音信号の発生開始指示に関するものであるか否か、すなわちキーオン信号ＫＯＮを含むものであるか否かを判定する。演奏データがキーオン信号ＫＯＮを含むものであれば、ステップ１０４に“ＹＥＳ”と判定し、ステップ１０６〜１１０の処理後、ステップ１１４にてこの楽音発生制御プログラムの実行を終了する。また、演奏データがキーオン信号ＫＯＮを含むものでなければ（キーオフ信号ＫＯＦを含むものであれば）、すなわち楽音信号の発生終了指示に関するものであれば、ステップ１０４にて“ＮＯ”と判定し、ステップ１１２の処理後、ステップ１１４にてこの楽音発生制御プログラムの実行を終了する。
【００２０】
ステップ１０６〜１１０の処理は、設定モードに応じて楽音信号の発生指示を行うものである。設定モードは選択的に設定される第１及び第２モードからなり、モード選択スイッチ群２２に属する発音指示モード選択スイッチ、又は図示しないその他のスイッチ群に含まれるテンキー、カーソル、エンターキーなどにより表示器２４を用いて選択的に設定される。まず、設定モードが第１モードであり、かつ前記演奏データがキーオン信号ＫＯＮを含むものである場合について説明する。
【００２１】
この場合、前記ステップ１０４，１０６にて共に“ＹＥＳ”と判定して、ステップ１０８にて第１モードルーチンを実行する。この第１モードルーチンは、図３のステップ２００にて開始され、ステップ２０２にて、ＲＡＭ３３内のチャンネルデータエリア（図5）の全てのビジーフラグＢＦが“１”であるか否かを判定することにより、音源回路６０の全ての楽音信号発生チャンネルのうちで楽音信号を発生中でないチャンネル（空きチャンネル）があるか否かを検索する。この場合、“０”すなわち空きチャンネルを表すビジーフラグＢＦが存在すれば、同ステップ２０２にて“ＹＥＳ”と判定して、プログラムをステップ２０４に進める。
【００２２】
ステップ２０４においては、前記空きチャンネルのうちのいずれか一つ若しくは複数を発音チャンネルとして決定する。そして、ステップ２０６にて前記決定した発音チャンネルに楽音信号の発生指示を割り当てる。この楽音信号の発生指示の割り当てにおいては、チャンネルデータエリア内のビジーフラグＢＦを“１”に設定し、キーフラグＫＦを前記ステップ１０２の処理により入力したキーオン信号ＫＯＮに基づいて“１”に設定し、キーコードＫＣを前記ステップ１０２の処理により入力したキーコードＫＣに設定し、チャンネル別のその他の制御データを必要に応じて設定する。また、このチャンネルデータの設定と同時に、前記入力したキーコードＫＣ、キーオン信号ＫＯＮ、チャンネル別の制御データ、及び楽音信号の発生のために必要なその他の制御データに、前記発音チャンネルとして決定した楽音信号発生チャンネルを表すチャンネル番号データを加えて、バス３１を介して音源回路６０に転送する。前記ステップ２０６の処理後、ステップ２１４にてこの第１モードルーチンの実行を終了する。そして、楽音発生制御プログラムに復帰し、ステップ１１４にて同プログラムの実行を終了する。
【００２３】
音源回路６０は、前記供給された各種データを取り込み、チャンネル番号データにより表された楽音信号発生チャンネルにキーコードＫＣ、キーオン信号ＫＯＮ、チャンネル別の制御データ、及び楽音信号の発生のために必要なその他の制御データを割り当て、キーコードＫＣにより表された鍵音高を有するとともに各種制御データにより規定される音色及び効果の付与された楽音信号を発生し始める。この場合、制御データにより指定される音色の楽音信号が持続系のものであれば、図７(Ａ)に示すように、キーオンタイミングから急激に立ち上がり、その後減衰して離鍵されるまでサステインレベルを維持する振幅エンベロープを有する楽音信号が発生され、アンプ６１およびスピーカ６２を介して楽音として発音される。また、制御データにより指定される音色の楽音信号が減衰系のものであれば、図７(Ｂ)に示すように、キーオンタイミングから急激に立ち上がり、その後徐々に減衰する振幅エンベロープを有する楽音信号が発生される。
【００２４】
また、前記のように設定モードが第１モードである状態で、キーオフ信号ＫＯＦを含む演奏データがＣＰＵ３２に供給された場合には、前記のように図２のステップ１１２における楽音信号の発生終了処理が実行される。この楽音信号の発生終了処理において、ＲＡＭ３３内のチャンネルデータエリアを検索して前記供給された演奏データ中のキーコードＫＣと同一のキーコードＫＣを含むチャンネルデータを探し、同チャンネルデータのキーフラグＫＦを前記ステップ１０２の処理により入力したキーオフ信号ＫＯＦに基づいて“０”に変更する。このチャンネルデータの変更と同時に、前記変更したチャンネルデータに対応した楽音信号発生チャンネルにチャンネル番号データと共にキーオフ信号ＫＯＦをバス３１を介して音源回路６０に転送する。前記ステップ１１２の処理後、ステップ１１４にてこの楽音発生制御プログラムの実行を終了する。
【００２５】
音源回路６０は、前記供給されたチャンネル番号データ及びキーオフ信号ＫＯＦに基づいて、同チャンネル番号データにより表された楽音信号発生チャンネルにて発生中の楽音信号に対してキーオフ処理を施す。これにより、発生中の楽音信号が持続系のものであれば、楽音信号の振幅エンベロープは、図７(Ａ)に示すように、サステインレベルからなだらかに減衰していく。なお、発生中の楽音信号が減衰系の場合には、楽音信号の振幅エンベロープは発生される音色に応じて図７(Ｂ)に示すようにそのままなだらかに減衰したり、キーオフタイミング時点から減衰レートを高くして減衰したりする。
【００２６】
そして、これらの減衰が終了した時点で、すなわち楽音信号の振幅エンベロープのレベルが「０」又はほぼ「０」になった時点で、音源回路６０は、減衰の終了した楽音信号発生チャンネルを表すチャンネル番号と共に楽音信号の発生終了を表す終了信号をバス３１を介してＣＰＵ３２に供給する。この終了信号の到来に応答して、ＣＰＵ３２は図示しないプログラムの実行によりチャンネルデータエリア内であって前記チャンネル番号に対応したチャンネルデータ中のビジーフラグＢＦを“０”に変更しておく。これにより、前記楽音信号発生チャンネルへの楽音信号の発生指示の割り当てがふたたび可能になる。
【００２７】
一方、前記ステップ２０２の判定処理において、“ＮＯ”すなわちチャンネルデータエリア内の全てのビジーフラグＢＦが”１“であって音源回路６０の全ての楽音信号発生チャンネルのうちに空きチャンネルがないと判定されると、ＣＰＵ３２はプログラムをステップ２０８〜２１２に進める。ステップ２０８においては、音源回路６０内の全ての楽音信号発生チャンネルの中から、楽音信号の発生を中断しても聴感上最も違和感のない楽音信号を発生中の楽音信号発生チャンネルをトランケートチャンネルとして決定するとともに、同楽音信号発生チャンネルを発音チャンネルとしても決定する。なお、前記聴感上最も違和感のない楽音信号とは、振幅エンベロープの最も小さな楽音信号、又は発生終了指示（キーオフ）が最も古い楽音信号である。
【００２８】
ステップ２１０においては、前記トランケートチャンネルを表すチャンネル番号データと共にトランケート信号を音源回路６０に出力してダンプ処理を指示する。音源回路６０は、前記チャンネル番号により指定される楽音信号発生チャンネルにて発生中の楽音信号の振幅エンベロープを図７(Ａ)(Ｂ)にて破線で示すように急速に減衰させる。ステップ２１２はダンプ処理が完了したか否かを判定する処理であり、同判定処理においては音源回路６０から前記のように楽音信号の発生終了を表す終了信号の到来を待つ。ＣＰＵ３２は、終了信号が到来するまでステップ２１２にて“ＮＯ”と判定し続けて判定処理を実行し続け、終了信号が到来すると“ＹＥＳ”と判定してプログラムをステップ２０６に進める。
【００２９】
ステップ２０６においては、前述した場合と同様にして、前記ステップ２０８の処理により決定した発音チャンネルに楽音信号の発生指示を割り当て、音源回路６０にキーオン信号ＫＯＮを含む各種データを供給して楽音信号を発生開始させる。なお、前述のような第１モードの処理は従来の電子楽器においても行われていたことである。
【００３０】
次に、設定モードが第２モードである場合について説明する。この場合、前記第２モードへの設定の際に、図示しないプログラム処理により、ＲＡＭ３３内に発音用グループエリア（本実施形態では１００チャンネル分のチャンネル番号を記憶するエリア）及び待機用グループエリア（本実施形態では待機用チャンネルとしての２８チャンネル分に補足的な１チャンネル分のチャンネル番号を記憶するエリア）が確保され、初期の状態では発音用グループエリアには０〜９９のチャンネル番号が書き込まれるとともに待機用グループエリアには１００〜１２７のチャンネル番号が書き込まれる。このことは、この時点で、０〜９９番の楽音信号発生チャンネルが発音用グループに属するとともに１００〜１２７番の楽音信号発生チャンネルが待機用グループに属することを意味している。なお、待機用グループエリアの最後のアドレスにはデータは記憶されていない。
【００３１】
この場合も、演奏データがＣＰＵ３２に供給されると、ＣＰＵ３２は図２のステップ１００にて楽音発生制御プログラムの実行を開始し、ステップ１０２にて演奏データを取り込み、プログラムをステップ１０４以降に進める。演奏データがキーオン信号ＫＯＮを含むものであれば、ステップ１０４にて“ＹＥＳ”と判定する。また、設定モードは第２モードであるので、ステップ１０６にて“ＮＯ”と判定して、ステップ１１０にて第２モードルーチンを実行する。第２モードルーチンは図４に詳細に示されており、その実行はステップ３０２にて開始される。この開始後、ステップ３０２にて発音用グループエリアに記憶されている各チャンネル番号により指定される全ての楽音信号発生チャンネル（発音用チャンネル群）内に空きチャンネルがあるか否かが判定される。この判定は、ＲＡＭ３３内のチャンネルデータエリアに記憶されたチャンネルデータのうちで発音用チャンネル群（前記初期状態データは、０〜９９番の楽音信号発生チャンネル）に関する全てのビジーフラグＢＦが”１“であるか否かを調べることにより行われる。
【００３２】
そして、発音用チャンネル群内に空きチャンネルがあれば、ステップ３０２にて“ＹＥＳ”と判定し、ステップ２０４にて前記空きチャンネルうちのいずれか一つ若しくは複数を発音チャンネルとして決定する。次に、前記第１モードの場合のステップ２０６と同様なステップ３０６の処理により、前記決定した発音チャンネルに楽音信号の発生指示を割り当て、同発音チャンネルに対応した音源回路６０内の楽音信号発生チャンネルにて楽音信号の発生を開始する。
【００３３】
また、キーオフ信号ＫＯＦを含む演奏データがＣＰＵ３２に供給された場合には、前記第１モードの場合と同様な図２のステップ１０２，１０４，１１２の処理により、前記演奏データに係る楽音信号の発生が終了される。
【００３４】
次に、この第２モードにおいて、発音用チャンネル群内に空きチャンネルがない状態で、キーオン信号ＫＯＮを含む演奏データがＣＰＵ３２に供給された場合について説明する。この場合も、図２のステップ１０２による演奏データを取り込み後、ＣＰＵ３２はステップ１０４，１０６にてそれぞれ“ＹＥＳ”、“ＮＯ”と判定して、ステップ１１０の第２モードルーチンを実行する。しかし、この場合には、図４の第２モードルーチンのステップ３０２にて“ＮＯ”と判定して、プログラムをステップ３０８〜３１２に進める。
【００３５】
ステップ３０８においては、発音用グループエリアに記憶されている全てのチャンネル番号により指定される各楽音信号発生チャンネル（発音用チャンネル群）の中から、前記第１モードの場合と同様に、楽音信号の発生を中断しても聴感上最も違和感のない楽音信号を発生中の楽音信号発生チャンネルをトランケートチャンネルとして決定するとともに、同楽音信号発生チャンネルを発音チャンネルとしても決定する。ステップ３１０においては、音源回路６０内の楽音信号発生チャンネルであって前記トランケートチャンネルを表すチャンネル番号データにより指定される楽音信号発生チャンネルにて発生中の楽音信号に対して、前記第１モードの場合と同様なダンプ処理を施す。これにより、トランケートチャンネルにより指定される楽音信号の振幅エンベロープは急速に減衰していく。また、このステップ３１０においては、前記トランケートチャンネルに等しいチャンネル番号を発音用グループエリアから削除して、待機用グループエリアの最後のアドレスに書き込んでおく。すなわち、前記トランケートチャンネルに等しいチャンネル番号を発音用グループエリアから待機用グループエリアに移行しておく。
【００３６】
ステップ３１２においては、ＲＡＭ３３の待機用グループエリアの先頭アドレスに記憶されているチャンネル番号を読み出して発音チャンネルとして決定するとともに、同待機用グループエリアに記憶されている各アドレスのチャンネル番号データを順次繰り上げ、最後のアドレスのデータを消去する。具体的には、待機用グループエリアにおいて、２番目のアドレスに記憶されているチャンネル番号データを先頭のアドレスに記憶し直し、３番目のアドレスに記憶されているチャンネル番号データを２番目のアドレスに記憶し直す動作を最後のアドレスまで順次行い、最後のアドレスのデータを消去する。
【００３７】
例えば、発音用グループエリア内に０〜９９番のチャンネル番号データが番号順に記憶されているとともに、待機用グループエリアに１００〜１２７番のチャンネル番号データが記憶されている状態で（図６(Ａ)の状態）、発音用チャンネル群内の第１チャンネルをトランケートチャンネルとすると、前記ステップ３０８〜３１２の処理により、発音用及び待機用グループエリアのチャンネル番号データは図６(Ｂ)に示す状態となる。これにより、次に発音用チャンネル群内に空きチャンネルがない状態では、待機用グループエリアに記憶されているチャンネル番号のうちで同エリアの先頭から順に楽音信号の発生指示が割り当てられるようになる。その結果、ステップ３１２においては、待機用チャンネル群中から最古にダンプ処理されたチャンネルが発音チャンネルとして選択されることになる。
【００３８】
前記ステップ３０８〜３１２の処理後、前述したステップ３０６にて、前記ステップ３１２の処理により決定した発音用チャンネルに楽音信号の発生指示を割り当て、同発音チャンネルに対応した音源回路６０内の楽音信号発生チャンネルにて楽音信号の発生を開始させる。
【００３９】
上記のように動作説明からも理解できるように、上記実施形態によれば、複数の楽音信号発生チャンネルのうちの一部の楽音信号発生チャンネルを発音用グループとするとともに他の楽音信号発生チャンネルを待機用グループとし、楽音信号の発生指示があったとき、前記ステップ３０２〜３１２の処理により、発音用グループに属する楽音信号発生チャンネルのうちのいずれかの楽音信号発生チャンネルが楽音信号を発生中でなければ、同楽音信号を発生中でないいずれかの楽音信号発生チャンネルに楽音信号の発生指示を割り当て、前記発音用グループに属する全ての楽音信号発生チャンネルが楽音信号を発生中であれば、前記待機用グループに属するいずれかの楽音信号発生チャンネルに前記楽音信号の発生指示を割り当てるようにした。したがって、発音用グループに属する全ての楽音信号発生チャンネルが楽音信号を発生中である状態で、新たな楽音信号の発生指示があっても、発音用グループに属するいずれかの楽音信号発生チャンネルのダンプ処理の終了を待つことなく、楽音信号の発生指示が待機用グループに属するいずれかの楽音信号発生チャンネルに割り当てられる。
【００４０】
この場合、ステップ３０８〜３１２の処理により、発音用グループに属する全ての楽音信号発生チャンネルが楽音信号を発生中であるとき、同発音用グループに属するいずれかの楽音信号発生チャンネルに発生中の楽音信号の振幅エンベロープを急激に減衰させることを指示するダンプ処理を指示し、このダンプ処理の指示された楽音信号発生チャンネルを前記待機用グループに切り換えるとともに、楽音信号の発生指示が割り当てられた待機用グループに属する楽音信号発生チャンネルを前記発音グループに切り換えるようにしている。そして、前記グループの切り換えにより発音用グループに属する楽音信号発生チャンネルが待機用グループに切り換えられたとき、同切り換えられた楽音信号発生チャンネルへの楽音信号の発生指示の割り当て順が同待機用グループに属する楽音信号発生チャンネルのうちで最後になるようにしている。
【００４１】
したがって、楽音信号の発生指示があり、かつ前記発音用グループに属する全ての楽音信号発生チャンネルが楽音信号を発生中であっても、複数の楽音信号の発生指示も待機用グループに属する楽音信号発生チャンネルに即座に割り当てられるので、楽音信号の発生遅れの問題が解消される。また、待機用グループに切り換えられた楽音信号発生チャンネルへの楽音信号の発生指示の割り当てが最後になる結果、前記割り当て時には楽音信号発生チャンネルにおける楽音信号の振幅エンベロープがダンプ処理により「０」又はほぼ「０」になっている可能性が高く、ノイズの発生が充分に抑制される。さらに、前記構成はプログラム処理により簡単に実現されるので、回路規模が増大することがないとともに、ソフト音源にも簡単に適用できる。
【００４２】
また、上記実施形態においては、モード選択スイッチ群２２に属する発音指示モード選択スイッチの操作により、この電子楽器を第１モード又は第２モードに選択的に設定するようにして、従来と同様な態様で楽音信号の発生指示を割り当てることを可能とするとともに（図３の第１モードルーチン）、上記のような待機用チャンネルを用いた楽音信号の発生指示を割り当て可能とするようにした（図４の第２モードルーチン）。したがって、この実施形態によれば、この電子楽器の使い勝手が良好になる。
【００４３】
なお、上記実施形態においては、上記ステップ３１０の処理により、トランケートチャンネルが決定される毎に、同チャンネルを発音用グループから待機用グループに移行し、待機用グループに属する楽音信号発生チャンネルを補充するようにした。しかし、前記待機用グループの楽音信号発生チャンネルの補充に関しては、これに限らず、待機用グループに属する楽音信号発生チャンネルの数が所定値以上あるか否かを常に検査し、同チャンネル数が所定値未満になったとき、発音用グループに属する楽音信号発生チャンネルのうちで、楽音信号を既に発生していない楽音信号発生チャンネル、振幅エンベロープが最も小さい楽音信号を発生中の楽音信号発生チャンネルの順に、前記所定数の楽音信号発生チャンネルを発音用グループから待機用グループに切り換えて同待機用グループの楽音信号発生チャンネルを補充しておくようにしてもよい。この場合、上記ステップ３１０の待機用チャンネル群への以降処理を省略して、別途前記処理を実行するプログラムを所定の短時間毎に行うようにすればよい。
【００４４】
また、上記実施形態においては、ステップ３０８，３１０の処理によりトランケートチャンネルを決定してダンプ処理を行うとともに同チャンネルを待機用チャンネルに移行した後、ステップ３１２，３０６の処理により発音チャンネルの決定及び楽音信号の発生指示の同発音チャンネルへの割り当てを行うようした。しかし、前記ステップ３１２，３０６の処理と、前記ステップ３０８，３１０の処理との順番を入れ替え、発音チャンネルの決定及び楽音信号の発生指示の同発音チャンネルへの割り当てを行った後、トランケートチャンネルを決定してダンプ処理を行うとともに同チャンネルを待機用チャンネルに移行する処理を行うようにしてもよい。これによれば、上記実施形態による場合よりも、楽音信号の発生を早めることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る電子楽器の全体概略ブロック図である。
【図２】図１の電子楽器にて実行される発音発生制御プログラムに対応したフローチャートである。
【図３】図２の第１モードルーチンの詳細を示すフローチャートである。
【図４】図２の第２モードルーチンの詳細を示すフローチャートである。
【図５】ＲＡＭ内に設けたチャンネルデータエリアのメモリマップである。
【図６】(Ａ)，(Ｂ)は、ＲＡＭ内に設けた発音用グループエリア及び待機用グループエリアのメモリマップである。
【図７】（Ａ）は持続系楽音信号の振幅エンベロープの時間的変化を表す波形図であり、（Ｂ）は減衰系楽音信号の振幅エンベロープの時間的変化を表す波形図である。
【符号の説明】
１０…鍵盤、１１…鍵スイッチ回路、２０…操作パネル、２１…選択操作子群、２２…モード選択操作子群、２４…表示器、２５…操作子スイッチ回路、３１…バス、３２…ＣＰＵ、３３…ＲＡＭ、３４…ＲＯＭ、４０…外部記録装置、５０…通信インターフェース、６０…音源回路。
【図１】
0003539480.tif 000002
【図２】
0003539480.tif 000003
【図３】
0003539480.tif 000004
【図４】
0003539480.tif 000005
【図５】
0003539480.tif 000006
【図６】
0003539480.tif 000007
【図７】
0003539480.tif 000008