(57)【特許請求の範囲】
【請求項１】
楽音信号を発生するための複数のチャンネルを有する音源手段と、
新たな楽音信号の発生を前記チャンネルの何れかに割当てる割当て処理手段と、
前記新たな楽音信号の発生を割当てたチャンネルに対し同楽音信号の発生を開始させるための発音処理を行う発音処理手段と、
楽音信号を発生中のチャンネルに対し同楽音信号の発生を終了させるためのリリース処理を行うリリース処理手段とを備えた楽音発生装置において、
前記割当て処理手段は、
楽音信号を発生中のチャンネル数が複数パートのそれぞれにて楽音信号の発生の確保されるべきチャンネル数を表す所定のリザーブ数を超えている数をパート毎に超過チャンネル数として検出する超過チャンネル数検出手段と，
前記検出された超過チャンネル数が大きいパートに属するチャンネルを優先的に検索し、同検索されたチャンネルに前記新たな楽音信号の発生を割当てるチャンネル検索手段とを含むことを特徴とする楽音発生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音信号を発生するための複数のチャンネルを有する音源手段を備え、新たな楽音信号の発生を前記チャンネルの何れかに割当てて発音させる楽音発生装置に関する。
【０００２】
【従来の技術】
この種の楽音発生装置にあっては、キーオンに関する新たに入力された演奏データに応答して、同入力された演奏データに基づく新たな楽音信号の発生を音源手段のチャンネルの何れかに割当てる必要がある。この場合、楽音信号を発生中でないチャンネル（空きチャンネル）が存在するときには、そのチャンネルに前記新たな楽音信号の発生を割当てればよい。ところが、総てのチャンネルが楽音信号を発生中のときには、何れかのチャンネルを何らかの基準により選択し、同選択したチャンネルに前記新たな楽音信号の発生を割当てなければならない。
【０００３】
また、この割当て処理を行う際には、一般に、選択されたチャンネルの発音音量を急激に減少させる強制的なダンプ処理等が施される。従って、より自然な演奏を得るためには、どのチャンネルを選択するかが重要となる。そこで、従来の楽音発生装置においては、各パートに対する優先度を記憶しておくとともに、各パート毎に楽音信号の発生が確保されるべきチャンネル数（リザーブ数）を記憶しておき、総てのチャンネルが楽音信号を発生中のときにはリザーブ数を超えているパートを優先度の低いほうから順に検索し、同検索されたパートに属するチャンネルの一つに前記新たな楽音信号の発生を割当てるようにしている。
【０００４】
【発明が解決しようとする課題】
ところで、一般の楽音発生装置においては、演奏データに含まれるノートオン（押鍵）情報により楽音信号の発生が開始され、ノートオフ（離鍵）情報により同楽音信号の音量を次第に減少させるリリース処理が開始される。この場合、リリース処理中のチャンネルについては、ダンプ処理等により楽音信号の発生を直ちに停止しても、演奏の自然さは損なわれ難い。しかしながら、上記従来技術では、リリース処理中のチャンネルが存在している場合であっても、そのチャンネルの属するパートよりも優先度の低いパートの発音中のチャンネル数が同パートのリザーブ数を超えている場合には、同パートに属するチャンネルの一つ又はそれ以上に対してダンプ処理を行って新たな演奏データを割当てるため、自然な演奏が損なわれ易いという問題がある。
【０００５】
また、上記従来技術では、リザーブ数を超えているパートに属するチャンネルの何れかに新たな楽音信号の発生を割当てることにしているため、各パートの発音チャンネル数がリザーブ数以下で、音源手段の全チャンネルが発音状態になってしまった場合には、新たな楽音信号の発生を何れのチャンネルにも割当てることができないという問題がある。さらに、上記従来技術では、優先度の低いパートから順に発音チャンネル数がリザーブ数を超えているパートを検索し、同パートに属するチャンネルの何れかに新たな楽音信号の発生を割当てるため、前記検索されたパート以外のパートで、発音チャンネル数がリザーブ数よりも大きく超えているパートがあっても、前者のパートに属するチャンネルに新たな楽音信号の発生を割当ててしまい、各パート毎の発音チャンネル数に不均衡が生じるという問題もあった。
【０００６】
従って、本発明の目的は、新たな楽音信号の発生が指示されたときに、より適切なチャンネルを検索し、同検索したチャンネルに同新たな楽音信号の発生を割当てることにより、自然な演奏を行い得る楽音発生装置を提供することにある。
【００１３】
【本発明の概要】
本発明は、上記課題に対処するためになされたものであり、その構成上の特徴は、割当て処理手段に、楽音信号を発生中のチャンネル数が複数パートのそれぞれにて楽音信号の発生の確保されるべきチャンネル数を表す所定のリザーブ数を超えている数をパート毎に超過チャンネル数として検出する超過チャンネル数検出手段と，前記検出された超過チャンネル数が大きいパートに属するチャンネルを優先的に検索し、同検索されたチャンネルに新たな楽音信号の発生を割当てるチャンネル検索手段とを設けたことにある。
【００１４】
これによれば、楽音信号を発生中のチャンネル数がリザーブ数を大きく超えているパートに属するチャンネル（即ち、ダンプ処理等を伴う割当て処理を施しても十分なチャンネル数が確保されるパートに属するチャンネル）に対して楽音信号の発生の割当て処理が優先的に行われるので、各パートにおける発音チャンネル数の均衡が保たれて、より自然な演奏を達成することが可能となる。
【００１５】
【発明の実施の形態】
以下、本発明による楽音発生装置の各実施形態について図面を参照しつつ説明すると、図１は第１実施形態にかかる楽音発生装置の概略をブロック図により示したものである。この楽音発生装置は、情報（信号）の送受信が可能となるように互いにバス１０を介して接続された、パネルスイッチ１１、表示器スイッチ１２、ＭＩＤＩインターフェース１３、演奏操作子１４、タイマ１５、ＣＰＵ１６、ＲＯＭ１７、ＲＡＭ１８、ハードディスク１９、表示器２０、及び音源回路２１を備えている。また、同装置は、図示を省略した増幅器及びスピーカを含むと共に前記音源回路２１に接続されたサウンドシステム２２を備えている。
【００１６】
パネルスイッチ１１は、自動演奏、録音、再生等の開始やこれらの終了の指示等を行うためのものであって、マニュアル操作される複数のスイッチを備えている。表示器スイッチ１２は、表示器２０の表示モードを選択するためのものであって、マニュアル操作される複数のスイッチを備えている。ＭＩＤＩインターフェース１３は、外部からＭＩＤＩ情報を受信し、又は同外部にＭＩＤＩ情報を送信するためのインターフェースである。演奏操作子１４は、演奏者が演奏に使用する複数の鍵及びエクスプレッションペダル等からなる。これらのパネルスイッチ１１、表示器スイッチ１２、ＭＩＤＩインターフェース１３及び演奏操作子１４は、楽音発生装置の入力手段を構成している。
【００１７】
ＣＰＵ１６は、この楽音発生装置全体の制御を行うものであって、ＲＯＭ１７に記憶されているプログラムを実行する。タイマ１５は、ＣＰＵ１６に対し前記プログラムを実行する際に必要な時間に関する情報を提供する。ＲＯＭ１７は、前記プログラムの他に、楽音発生に必要な諸情報を記憶している。ＲＡＭ１８は、ＣＰＵ１６による前記プログラムの実行時において必要な情報等を一時的に記憶する。ハードディスク１９は、演奏データ等を記憶する外部記憶装置として機能し、ＣＰＵ１６に必要な情報を提供する。これら、タイマ１５、ＣＰＵ１６、ＲＯＭ１７、ＲＡＭ１８及びハードディスク１９は、制御手段を構成している。
【００１８】
表示器２０は、表示器スイッチ１２によって選択された表示モードで楽音発生装置の状態や楽譜等を表示するパネルであり、ＣＰＵ１６により制御される。音源回路２１は、ＣＰＵ１６からの指示に応じて楽音信号を形成してサウンドシステム２２を介し発音をするためのものであって、同楽音信号をそれぞれ形成する複数の発音チャンネル（例えば、１６チャンネル）を備えている。なお、本明細書においては、この発音チャンネルのことを単に「チャンネル」と呼ぶ。サウンドシステム２２は、増幅器及びスピーカを有するものであって、音源回路２１からの信号を増幅してスピーカから実際の音を発生する。これら、表示器２０、音源回路２１及びサウンドシステム２２は、出力手段を構成している。
【００１９】
以上のように構成された楽音発生装置においては、ＣＰＵ１６により演奏データが入力され、これに応じて必要な各種処理が行われることで演奏がなされる。具体的には、ＣＰＵ１６は、ＭＩＤＩインターフェース１３、演奏操作子１４等の入力手段を介して新たに入力される演奏データにしたがって音源回路２１における複数のチャンネルのうちの何れかを検索・選択し、同チャンネルに楽音信号の発生（演奏データ）を割当てるための処理（割当て処理）を行う。この割当て処理には、総てのチャンネルが発音中であって楽音信号の発生を割当てるチャンネルがない（空きチャンネルがない）場合に、一つのチャンネルを選択して同選択したチャンネルにて発音中の楽音の音量を急速に減少させて（楽音をダンプ処理して）楽音を消音するトランケート処理が含まれるとともに、同チャンネルに対し発音パラメータを設定する等の発音をさせるための処理（発音処理）も含まれる。そして、新たに入力された演奏データに含まれるノートオン（押鍵）情報に応答し、上記トランケート処理をも含めて同新たに入力された演奏データに応じて楽音を発生開始させるための一連の処理を「ノートオン処理」という。
【００２０】
同様に、ＣＰＵ１６は、演奏データ中に含まれるノートオフ（離鍵）に関する情報に応じ、発音中のチャンネルに対しては発音を終了（消音）させるためのリリース処理等を含む「ノートオフ処理」を行う。ここで、リリース処理とは、消音が不自然にならないように、緩やかに音量を減少させる処理のことである。
【００２１】
次に、上記ノートオン処理について図２のフローチャートを参照しつつ詳述する。ＣＰＵ１６は、新たに入力された演奏データに基づいてノートオンイベント処理ルーチンを実行すべきタイミングにあると判定すると、図２のステップ２００から処理を開始してステップ２０５に進み、同ステップ２０５にて同演奏データ中に含まれるパート番号、ノート番号、及びベロシティをそれぞれ、ＲＡＭ１８の格納領域ＰＴ、ＮＮ、及びＶＬに格納する。
【００２２】
次いで、ＣＰＵ１６はステップ２１０に進み、音源回路２１中の空きチャンネルを検出する。空きチャンネルとは発音を行っていないチャンネル、すなわち楽音信号を発生中でないチャンネルのことである。その後、ＣＰＵ１６はステップ２１５に進んで空きチャンネルがあるか否かを判定し、空きチャンネルがある場合（ステップ２１５にて「Ｙｅｓ」と判定される場合）には、ステップ２２０に進んでＲＡＭ１８の格納領域ＡＳに、検出した空きチャンネルの番号を格納する。以下、領域ＡＳに格納されたチャンネル番号にて指定されるチャンネルのことをＡＳチャンネルという。
【００２３】
次に、ＣＰＵ１６はステップ２２５に進み、領域ＰＴ、ＮＮ、及びＶＬに格納されたパート番号、ノート番号及びベロシティに基づいて生成した音源パラメータ（楽音の音色、ピッチ、音量などを制御するためのパラメータ）を、音源回路２１内に設けた音源レジスタのＡＳチャンネルに対応した記憶領域に書込む。そして、ステップ２３０にて、ＡＳチャンネルに対して前記音源パラメータに応じた発音の開始すなわち楽音信号の発生開始を指示し、その後ステップ２９５に進んで本ルーチンを一旦終了する。この結果、チャンネルは、音源パラメータに応じた楽音の発生を開始する。
【００２４】
一方、ＣＰＵ１６は、上記ステップ２１５にて空きチャンネルが存在しないと判定される場合（「Ｎｏ」と判定される場合）には、ステップ２３５に進みトランケート処理を行うべきチャンネル（トランケートチャンネル）を検索により選択し、選択したチャンネル番号を領域ＡＳに格納する。このトランケートチャンネルの選択処理（検索）方法については後に詳述する。次いで、ＣＰＵ１６はステップ２４０に進み、ＡＳチャンネルの発音音量を急激に減少させて楽音を消音するダンプ処理（急速減衰処理）を行い、その後、上記ステップ２２５，２３０の処理を実施してＡＳチャンネルから音源パラメータに応じた楽音を発生させる。
【００２５】
次に、ノートオフ処理について図３のフローチャートを参照しつつ説明する。ＣＰＵ１６は新たに入力された演奏データに基づいてノートオフイベント処理ルーチンを実行すべきタイミングにあると判定すると、図３のステップ３００から処理を開始してステップ３０５に進み、同演奏データ中に含まれるパート番号及びノート番号をＲＡＭ１８の格納領域ＰＴ及びＮＮにそれぞれ格納する。
【００２６】
次いで、ＣＰＵ１６はステップ３１０に進み、上記演奏データにより示されたノートオフすべきチャンネルを検索し、ステップ３１５にて前記検索されたチャンネルに対しリリース処理を開始し、ステップ３９５にて本ルーチンを一旦終了する。以上により、発生されている楽音が演奏データに応じて徐々に減衰された後に消音される。なお、リリース処理が終了されたチャンネルは空きチャンネルとなる。また、減衰音などの楽音であってノートオフ情報が入力されたときには既に楽音が減衰しきっている場合には、ステップ３１０にてノートオフすべきチャンネルが見つからない。したがって、この場合には、ステップ３１５にてリリース処理を行うことなく、ステップ３９５にてこのノートオフイベント処理ルーチンの実行を終了する。
【００２７】
次に、上述したステップ２３５におけるトランケートチャンネルの選択処理について、図４に示したフローチャートを参照しながら説明すると、ＣＰＵ１６は図２のステップ２３５を実行するため、図４に示したサブルーチンのステップ４００へジャンプし、続くステップ４０５にてパート検索処理１を行う。
【００２８】
具体的には、ＣＰＵ１６はパート検索処理１において、「発音中（楽音信号を発生中）のチャンネルの数がリザーブ数を超えているパートに属し、且つリリース処理中のチャンネルがある」という条件（パート検索条件１）を満足するパートを、各パートに対し予め定められている優先度の低いパートから順に検索する。ここで、リザーブ数とは、各パートにおいて発音が確保されるべきチャンネル数であって、ＲＯＭ１７内に予め記憶されている。なお、リザーブ数は、演奏させる楽曲に応じて変更する方が好ましいこともあるので、ある楽曲の演奏データ中にリザーブ数に関する情報を含ませておき、同楽曲が演奏されている間は、ＲＡＭ１７内に記憶させるようにすることもできる。また、演奏者の嗜好を反映するために、同演奏者がパネルスイッチ１１により任意に指定することができるように構成することもできる。
【００２９】
上記パート検索処理１においては、各パートを順に検索してきた結果、パート検索条件１を満足するパートが見つかれば、ＣＰＵ１６は、その時点で検索を終了し、この最初に見つけたパートをチャンネルの検索対象パートとして記憶し、そのようなパートが検索されたか否かを判断するステップ４１０に進む。この場合においては、ＣＰＵ１６はステップ４１０にて「Ｙｅｓ」と判定してステップ４１５に進み、同ステップ４１５にてチャンネル検索処理を行う。
【００３０】
このステップ４１５のチャンネル検索処理においては、まず検索対象パートとして記憶されているパートに属し、且つ既にノートオフイベント処理によるリリース処理がなされているチャンネルの中から発音音量の最も小さいチャンネルを検出し、この検出したチャンネルを上記トランケートチャンネルとするべく同チャンネルの番号をＲＡＭ１８の領域ＡＳに格納する。そして、ＣＰＵ１６は、ステップ４９５を介して上記ステップ２４０に復帰し、トランケートチャンネル選択処理を終了する。
【００３１】
また、このステップ４１５のチャンネル検索処理においては、前記検索対象パートとして記憶されているパートに属し、且つ既にノートオフイベント処理によるリリース処理がなされているチャンネルが無ければ、次に、同検索対象パートとして記憶されているパートに属し、且つ発音中である総てのチャンネルを対象にして発音音量の最も小さいチャンネルを検出し、この検出したチャンネルの番号を前記トランケートチャンネルとするべくＲＡＭ１８の領域ＡＳに格納する。そして、前記と同様に、ステップ４９５を介して上記ステップ２４０に復帰する。
【００３２】
前記のように、ステップ４１０にて「Ｙｅｓ」すなわちパート検索条件１を満足するパートが検索された場合には、検索対象パートとして記憶されているパートに属するチャンネルの中には、ノートオフイベント処理によるリリース処理がなされているチャンネルが含まれている。したがって、この場合には、ステップ４１５のチャンネル検索処理において検索対象パートとして記憶されているパートに属し、且つ既にノートオフイベント処理によるリリース処理がなされているチャンネルの中から発音音量の最も小さいチャンネルを検出し、この検出したチャンネルの番号をＲＡＭ１８の領域ＡＳに格納し、ステップ４９５を介して上記ステップ２４０に復帰する。
【００３３】
一方、ＣＰＵ１６は、上記ステップ４０５のパート検索処理１の検索を総てのパートに対して実行した結果、上記パート検索条件１を満足するパートが検索されなかった場合には、上記ステップ４１０にて「Ｎｏ」と判定してステップ４２０に進み、パート検索処理２を実行する。
【００３４】
具体的には、ＣＰＵ１６はパート検索処理２において、「発音中のチャンネルの数がリザーブ数を超えている」という条件（パート検索条件２）を満足するパートを上記優先度の低いパートから順に検索する。このパート検索処理２においても、各パートを順に検索してきた結果、パート検索条件２を満足するパートが見つかれば、ＣＰＵ１６は、その時点で検索を終了し、この最初に見つけたパートをチャンネルの検索対象パートとして記憶し、そのようなパートが検索されたか否かを判断するステップ４２５に進み、同ステップ４２５にて「Ｙｅｓ」と判定して上記ステップ４１５に進む。
【００３５】
この場合、ステップ４１０にて「Nｏ」すなわちパート検索条件１を満足するパートが無いと判定されているから、検索対象パートとして記憶されているパートに属し、且つ既にノートオフイベント処理によるリリース処理がなされているチャンネルは無いはずである。したがって、ＣＰＵ１６は、ステップ４１５にて、検索対象パートとして記憶されているパートに属し、且つ発音中である総てのチャンネルを対象にして発音音量の最も小さいチャンネルを検出し、この検出したチャンネルの番号をＲＡＭ１８の領域ＡＳに格納する。そして、ＣＰＵ１６は、ステップ４９５を介して上記ステップ２４０に復帰する。
【００３６】
一方、ＣＰＵ１６は、ステップ４２０のパート検索処理２の検索を総てのパートに対して実施した結果、上記パート検索条件２を満足するパートが検索されなかった場合には、ステップ４２５にて「Ｎｏ」と判断してステップ４３０に進み、パート検索処理３を実行する。
【００３７】
具体的には、ＣＰＵ１６はパート検索処理３において、「今回のノートオンイベントが発生したパートと同じパートに属し、且つ、発音中のチャンネルがある」という条件（パート検索条件３）を満足するパートを検索する。そして、パート検索条件３を満足するパートが検索された場合には、同検索されたパートをチャンネルの検索対象パートとして記憶し、そのようなパートが検索されたか否かを判断するステップ４３５にて「Ｙｅｓ」と判定して上記ステップ４１５に進む。
【００３８】
この場合には、ＣＰＵ１６は、ステップ４１５にて、まず検索対象パートとして記憶されているパートに属し、且つリリース処理中のチャンネルを対象にして発音音量の最も小さいチャンネルを検出する。リリース処理中のチャンネルが無ければ、前記パートに属する総ての発音中のチャンネルを対象として発生音量の最も小さいチャンネルを検出する。そして、検出したチャンネルの番号をＲＡＭ１８の領域ＡＳに格納し、ＣＰＵ１６は、ステップ４９５を介して上記ステップ２４０に復帰する。
【００３９】
一方、ＣＰＵ１６は、上記パート検索処理３を満足するパートが検索されない場合には、ステップ４３５にて「Ｎｏ」と判断してステップ４４０に進み、図２に示したノートオンイベント処理自体を中止する。換言すれば、この場合においては、トランケート処理を施すことができるチャンネルが存在しない状況であると判定し、ノートオンイベントに応じた発音を行うことなく、その処理を終了する。
【００４０】
以上、説明したように、本発明による楽音発生装置の第１実施形態においてはノートオンイベントが発生したときに、チャンネル中に空きチャンネルが存在するときはそのチャンネルに対して発音を開始させる。また、空きチャンネルが存在しない場合には、パート検索処理１〜３を順に実行し、検索されたパートに属するチャンネルから適切なチャンネルをトランケートチャンネルとして選択する。
【００４１】
従って、第１実施形態によれば、トランケート処理等により急激に音量が減少されても不自然な演奏とはなり難い（違和感が小さい）順にチャンネルが選択され、これに対してトランケート処理が行われる。この結果、入力された演奏データを割当てる空きチャンネルがチャンネル中にない場合であっても、自然な演奏を提供することができる。
【００４２】
次に、本発明による楽音発生装置の第２実施形態について説明すると、第２実施形態はトランケートチャンネル選択処理のみが第１実施形態のそれと異なり、他の点については第１実施形態と同一である。従って、以下においては、図５に示したトランケートチャンネル選択処理を説明する。
【００４３】
第２実施形態においても、ノートオンイベントが発生すると、ＣＰＵ１６は図２に示したノートオンイベント処理を実行し、チャンネル中に空きチャンネルが存在するときはステップ２１５〜２３０の実行により、同空きチャンネルにおいて上記ノートオンイベントに対応した楽音が発音開始されるように音源回路２１を制御する。一方、空きチャンネルが存在しない場合には、ＣＰＵ１６はステップ２３５に進み、図５に示したトランケートチャンネル選択処理サブルーチンの実行をステップ５００から開始し、ステップ５０５に進む。
【００４４】
ＣＰＵ１６は、ステップ５０５にて、第１実施形態のパート検索処理１と同一の処理を行い、パート検索条件１を満足するパートが検索された場合には、同検索されたパートをチャンネルの検索対象パートとして記憶し、そのようなパートがあるか否かを判定するステップ５１０に進む。この場合においては、ＣＰＵ１６は同ステップ５１０にて「Ｙｅｓ」と判定してステップ５１５に進み、同ステップ５１５にて上述したステップ４１５と同一のチャンネル検索処理を行う。そして、ＣＰＵ１６はステップ５９５を介して図２のステップ２４０に復帰して、このトランケートチャンネル選択処理を終了する。
【００４５】
この結果、空きチャンネルがない場合に、上記パート検索条件１を満足するパートに属する発音中のチャンネル（発音チャンネル数がリザーブ数を超えたパートに属し、且つリリース処理中のチャンネル）の中で音量が最小のものがトランケートチャンネルとして選択され、そのチャンネル番号が領域ＡＳに格納される。
【００４６】
一方、ＣＰＵ１６は、上記ステップ５０５のパート検索処理１の検索を総てのパートに対して実行した結果、上記パート検索条件１を満足するパートが検索されなかった場合には、上記ステップ５１０にて「Ｎｏ」と判定してステップ５２０に進み、パート検索処理４を実行する。
【００４７】
具体的には、ＣＰＵ１６はパート検索処理４において、「パートモードが特定パート以外のノーマルのパート（例えば、ドラムセット以外のパート）であって、発音中のチャンネルの数がそのパートのリザーブ数を超えていて、且つ、リザーブ数を超える発音中のチャンネルの数（発音中のチャンネルの数からリザーブ数を減算した値）が最も大きい」という条件（パート検索条件４）を満足するパートを検索する。そして、ＣＰＵ１６は、パート検索条件４を満足するパートが検索された場合には、同検索されたパートをチャンネルの検索対象パートとして記憶し、そのようなパートが検索されたか否かを判断するステップ５２５に進み、同ステップ５２５にて「Ｙｅｓ」と判定して上記ステップ５１５の処理を実行後、ステップ５９５を介して上記ステップ２４０に復帰する。なお、上記パート検索処理４において、リザーブ数を超える発音中のチャンネルの数が同じであるパートが２以上ある場合には、予め定められた優先度の低いパートを検索対象パートとする。
【００４８】
この結果、上記パート検索条件４を満足するパートに属する発音中のチャンネルの中で音量が最小のものがトランケートチャンネルとして選択され、そのチャンネル番号が領域ＡＳに格納される。ただし、この場合、前記ステップ５０５，５１０の処理により、発音チャンネル数がリザーブ数を超えているパートに属し、且つノートオフイベント処理に伴うリリース処理がなされているチャンネルは除外されるので、トランケートチャンネルとして選択されるチャンネルはリリース処理中のチャンネルではない。
【００４９】
一方、ＣＰＵ１６は、上記ステップ５２０のパート検索処理４の検索を総てのパートに対して実行した結果、上記パート検索条件４を満足するパートが検索されなかった場合には、上記ステップ５２５にて「Ｎｏ」と判定してステップ５３０に進み、パート検索処理５を実行する。
【００５０】
具体的には、ＣＰＵ１６はパート検索処理５において、「パートモードが特定パート（例えば、ドラムセットのパート）であって、発音中のチャンネルの数がそのパートのリザーブ数を超え、且つ、リザーブ数を超えたチャンネルの数が最も大きい」という条件（パート検索条件５）を満足するパートを検索する。なお、このようなパートは複数あり得る。そして、ＣＰＵ１６は、パート検索条件５を満足するパートが検索された場合には、同検索されたパートをチャンネルの検索対象パートとして記憶し、そのようなパートが検索されたか否かを判断するステップ５３５に進み、同ステップ５３５にて「Ｙｅｓ」と判定して上記ステップ５１５の処理を実行後、ステップ５９５を介して上記ステップ２４０に復帰する。
【００５１】
この結果、上記パート検索条件５を満足するパートに属する発音中のチャンネルの中で音量が最小のものがトランケートチャンネルとして選択され、同チャンネルの番号が領域ＡＳに格納される。ただし、この場合も、前記ステップ５０５，５１０の処理により、発音チャンネル数がリザーブ数を超えているパートに属し、且つノートオフイベント処理に伴うリリース処理がなされているチャンネルは除外されるので、トランケートチャンネルとして選択されるチャンネルはリリース処理中のチャンネルではない。
【００５２】
一方、ＣＰＵ１６は、上記ステップ５３０のパート検索処理５の検索を総てのパートに対して実行した結果、上記パート検索条件５を満足するパートが検索されなかった場合には、上記ステップ５２５にて「Ｎｏ」と判定してステップ５４０に進み、パート検索処理６を実行する。
【００５３】
具体的には、ＣＰＵ１６はパート検索処理６において、「発音中のチャンネルを含み、且つ、その発音中のチャンネルの中にリリース処理中のチャンネルがある」という条件（パート検索条件６）を満足するパートを予め定められた優先度の低い方から順に検索する。この場合、前記特定パート（例えば、ドラムセットのパート）以外のパートの優先度は、同特定パートの優先度よりも低く設定されている。このパート検索処理６においても、各パートを順に検索してきた結果、パート検索条件６を満足するパートが見つかれば、ＣＰＵ１６は、その時点で検索を終了し、この最初に見つけたパートをチャンネルの検索対象パートとして記憶する。そして、そのようなパートが検索されたか否かを判断するステップ５４５にて「Ｙｅｓ」と判定し、上記ステップ５１５の処理を実行後、ステップ５９５を介して上記ステップ２４０に復帰する。
【００５４】
この結果、上記パート検索条件６を満足するパートに属する発音中のチャンネル（リリース処理中のチャンネル）の中で音量が最小のものがトランケートすべきチャンネルとして領域ＡＳに格納される。
【００５５】
一方、ＣＰＵ１６は、上記ステップ５４０のパート検索処理６の検索を総てのパートに対して実行した結果、同パート検索条件６を満足するパートが検索されなかった場合には、上記ステップ５４５にて「Ｎｏ」と判定してステップ５５０に進み、パート検索処理７を実行する。
【００５６】
具体的には、ＣＰＵ１６はパート検索処理７において、「発音中のチャンネルがある」という条件（パート検索条件７）を満足するパートを上記優先度の低いパートから順に検索する。このパート検索処理７においても、各パートを順に検索してきた結果、パート検索条件７を満足するパートが見つかれば、ＣＰＵ１６は、その時点で検索を終了し、この最初に見つけたパートをチャンネルの検索対象パートとして記憶して上記ステップ５１５に進む。そして、ＣＰＵ１６は、検索対象パートの発音中のチャンネル（総てリリース処理中のチャンネルではない）の中から発音音量の最も小さいチャンネルを選択し、この選択したチャンネルの番号をＲＡＭ１８の領域ＡＳに格納する。そして、ＣＰＵ１６は、ステップ４９５を介して上記ステップ２４０に復帰する。
【００５７】
このようなトランケートチャンネル選択処理によりトランケートすべきチャンネルを領域ＡＳに格納した後、ＣＰＵ１６は図２のステップ２４０に進み、領域ＡＳで指定されるチャンネル（ＡＳチャンネル）の発音音量を急激に低下させて消音するダンプ処理を行い、次いで、上記ステップ２２５，２３０の処理を実施して、ＡＳチャンネルにおいて上記ノートオンイベントに対応した楽音が発音開始されるように音源回路２１を制御する。
【００５８】
以上、説明したように、本発明による楽音発生装置の第２実施形態においてはノートオンイベントが発生したときに、チャンネル中に空きチャンネルが存在するときはそのチャンネルにおいて楽音が発音開始されるように音源回路２１を制御する。また、空きチャンネルが存在しない場合には、パート検索処理１，４〜７を順に実行し、検索されたパートに属するチャンネルから適切なチャンネルをトランケートするとともに、このトランケートされたチャンネルにおいて楽音が発音開始されるように音源回路２１を制御する。
【００５９】
従って、第２実施形態によれば、特に、特定パート（例えば、ドラムセットのパート）以外のパートがドラムパートよりも低優先度とされて先に検索対象パートとなり易くなっているので、自然な演奏に必要な特定パートの発音チャンネル数が確保され、より自然な演奏が提供される。
【００６０】
次に、第２実施形態の変形例について説明すると、この変形例は図６に示したように、図５のステップ５２０〜５３０を、以下に述べるステップ６０５のパート検索処理８に置換したものである。
【００６１】
即ち、パート検索処理８においては、ＣＰＵ１６は、先ず特定パート（例えば、ドラムセットのパート）について、そのパートの発音中のチャンネル数から予め定められた固定値を減算し、減算結果の値を同パートについての発音中のチャンネル数とする。そして、ＣＰＵ１６は、総てのパート中から（前記特定パートか否かにかかわらず）「発音中のチャンネルの数がリザーブ数を超えていて、且つ、リザーブ数を超えた発音中のチャンネルの数（発音中のチャンネルからリザーブ数を減算した値）が最も大きい」という条件（パート検索条件８）を満足するパートを検索する。
【００６２】
そして、パート検索条件８を満足するパートが検索された場合には、同検索されたパートをチャンネルの検索対象パートとして記憶し、上記ステップ５１５の処理を実行後、ステップ５９５を介して上記ステップ２４０に復帰する。また、パート検索条件８を満足するパートが検索されなかった場合には、上記ステップ５４０のパート検索処理６を実行する。
【００６３】
このように、第２実施形態の変形例によれば、パートモードが特定パート（例えば、ドラムセットのパート）については、そのパートの発音中のチャンネル数から予め定められた固定値を減算しておき、その後他のパートと区別することなく「発音中のチャンネルの数がリザーブ数を超えていて、且つ、リザーブ数を超えた発音中のチャンネルの数が最も大きい」パートを検索する。この結果、自然な演奏のために必要とされる特定パートは、他のパートよりその発音中のチャンネル数がリザーブ数を多く超えるようにされ、演奏が不自然になり難くなっている。
【００６４】
以上、説明したように、本発明による楽音発生装置の各実施形態によれば、新たな楽音信号の発生をチャンネルに割当てる場合に、空きチャンネルが存在しないとき、自然な演奏が提供されるように各種のパート検索条件にしたがってパートを選択するとともに、そのパートのチャンネルの中からトランケートすべきチャンネルを選択し、そのチャンネルに新たな楽音信号の発生を割当てる。これにより、一層自然な演奏を提供することができる。
【００６５】
なお、本発明は上記実施形態に限られることなく、本発明の範囲内において種々の形態にて実施され得る。例えば、第１，第２実施形態のチャンネル検索処理（ステップ４１５，ステップ５１５）におけるチャンネルの検索条件（最も音量の小さいチャンネルを検索する）は、その他の条件に変更してもよい。即ち、この条件は、「まず、最も先にノートオフされたチャンネル、続いて、最も先にノートオンされたチャンネル」としてもよく、「最低音を除いた中で、最も低い楽音を発音（生成）中のチャンネル」等としてもよい。また、これらの条件の中のいずれか２以上の条件を組合わせたものを、同チャンネルの検索条件としてもよい。
【００６６】
また、ハード回路で構成した音源回路２１に代え、プログラム処理により楽音信号を形成するソフト音源手段を用いるようにしてもよい。この場合も、ソフト音源手段においては、楽音信号を形成する複数のチャンネルを備え、同複数のチャンネルのそれぞれにてパート毎の楽音信号を形成する。
【図面の簡単な説明】
【図１】  本発明の第１実施形態に係る楽音発生装置の全体を示すブロック図である。
【図２】  図１に示したＣＰＵが実行するノートオンイベント処理を示すフローチャートである。
【図３】  図１に示したＣＰＵが実行するノートオフイベント処理を示すフローチャートである。
【図４】  図１に示したＣＰＵが実行するトランケートチャンネル選択処理を示すフローチャートである。
【図５】  本発明の第２実施形態のＣＰＵが実行するトランケートチャンネル選択処理を示すフローチャートである。
【図６】  本発明の第２実施形態の変形例が採用するトランケートチャンネル選択処理を示すフローチャートである。
【符号の説明】
１０…バス、１１…パネルスイッチ、１２…表示器スイッチ、１３…インターフェース、１４…演奏操作子、１５…タイマ、１９…ハードディスク、２０…表示器、２１…音源回路、２２…サウンドシステム。
【図１】
0003646611.tif 000002
【図２】
0003646611.tif 000003
【図３】
0003646611.tif 000004
【図４】
0003646611.tif 000005
【図５】
0003646611.tif 000006
【図６】
0003646611.tif 000007