(57)【特許請求の範囲】
【請求項１】
先頭から連続する番号の夫々が付加された複数の発音チャンネルと、
所定の周期で、前記複数の発音チャンネルのうち発音中で最も番号の大きい発音チャンネルを検索し、当該検索された発音チャンネルの番号を最大チャンネルの番号として更新する第１の更新手段と、
発音イベントに応じて前記複数の発音チャンネルの中から消音している発音チャンネルを検索し、当該検索された発音チャンネルの発音開始を指示する発音指示手段と、
消音イベントに応じて、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき音を発音中の発音チャンネルを検索し、該当する発音チャンネルの消音を指示する消音指示手段と、
前記所定の周期で、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルのうち、発音中の発音チャンネルにて生成される音の制御を指示する修飾指示手段と
を具備することを特徴とする発音チャンネル割当装置。
【請求項２】
前記発音指示手段は、前記発音開始された発音チャンネルの番号が、前記第１の更新手段により更新された最大チャンネルの番号を超えた場合に、その新たな発音を割り当てた発音チャンネルの番号を最大チャンネルの番号に更新する第２の更新手段を備えることを特徴とする請求項１記載の発音チャンネル割当装置。
【請求項３】
先頭から連続する番号の夫々が付加された複数の発音チャンネルを有する発音チャンネル割当装置に搭載されるコンピュータに、
所定の周期で、前記複数の発音チャンネルのうち発音中で最も番号の大きい発音チャンネルを検索し、当該検索された発音チャンネルの番号を最大チャンネルの番号として更新する第１の更新ステップと、
発音イベントに応じて前記複数の発音チャンネルの中から消音している発音チャンネルを検索し、当該検索された発音チャンネルの発音開始を指示する発音指示ステップと、
消音イベントに応じて、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき音を発音中の発音チャンネルを検索し、該当する発音チャンネルの消音を指示する消音指示ステップと、
前記所定の周期で、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルのうち、発音中の発音チャンネルにて生成される音の制御を指示する修飾指示ステップと
を具備することを特徴とするプログラム。
【請求項４】
前記発音指示ステップは、前記発音開始された発音チャンネルの番号が、前記第１の更新ステップにより更新された最大チャンネルの番号を超えた場合に、その新たな発音を割り当てた発音チャンネルの番号を最大チャンネルの番号に更新する第２の更新ステップを備えることを特徴とする請求項３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽器に用いる発音チャンネル割当装置およびプログラムに関する。
【背景技術】
【０００２】
発音チャンネルの数が鍵の数より少ない電子楽器においては、全ての発音チャンネルが楽音を発生している最中に新たな押鍵がなされた場合、この新たな押鍵に対応して発音すべき発音チャンネルを割り当てる発音チャンネル割当装置を備えている。従来、この種の装置では、全ての発音チャンネルの内、最も減衰の進んだエンベロープレベルの楽音を発生している発音チャンネルへ新たに押鍵された鍵の楽音発生をアサインしたり、最も古く離鍵された発音チャンネルへ新たに押鍵された鍵の楽音発生をアサインする方式などが知られている。
【０００３】
近年では、例えば特許文献１に開示されるように、各音色を表わす楽音パラメータにリリース優先フラグＲＰＦを設け、エンベロープのリリース形状に特徴がある音色のリリース優先フラグＲＰＦを「１」にセットしておき、全ての発音チャンネルが発音中に新たな楽音を発音しなければならない場合に、リリース優先フラグＲＰＦが「１」の音色の楽音を発音している発音チャンネルについては新たな楽音の発音を割り当てないようにして楽音の音色の特徴を考慮した発音割り当てを行う技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３５６７２９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、周知のように、発音中にノートオフ、ペダル操作、ホイール操作などの演奏イベントが発生した場合や、エンベロープジェネレータ制御、ＬＦＯ制御、ポルタメント効果付与等の、発音中のチャンネルの楽音に対して継続的な変化を与える為のタイマイベントが発生した場合には、発音チャンネル割当装置が全ての発音チャンネルについて発音中であるかどうかを判別する状態調査を行い、その状態調査の結果に基づき音源が必要な発音チャンネルにのみ所要のイベント処理を施すようになっている。
【０００６】
したがって、音源の高性能化に伴い発音チャンネル数が増加すると、各発音チャンネルの状態調査に要するＣＰＵ負荷が増大し、これにより、例えば同時発音する発音チャンネルを「２５６」チャンネル備える音源において４チャンネルしか使用していない状態であっても、残りの「２５２」チャンネルについても状態調査するという無駄が生じ、結果的に楽器の処理速度低下を招いてしまうという問題がある。
【０００７】
本発明は、このような事情に鑑みてなされたもので、楽器の処理速度向上を図ることができる発音チャンネル割当装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の発音チャンネル割当装置は、先頭から連続する番号の夫々が付加された複数の発音チャンネルと、
所定の周期で、前記複数の発音チャンネルのうち発音中で最も番号の大きい発音チャンネルを検索し、当該検索された発音チャンネルの番号を最大チャンネルの番号として更新する第１の更新手段と、
発音イベントに応じて前記複数の発音チャンネルの中から消音している発音チャンネルを検索し、当該検索された発音チャンネルの発音開始を指示する発音指示手段と、
消音イベントに応じて、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき音を発音中の発音チャンネルを検索し、該当する発音チャンネルの消音を指示する消音指示手段と、
前記所定の周期で、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルのうち、発音中の発音チャンネルにて生成される音の制御を指示する修飾指示手段と
を具備することを特徴とする。
【発明の効果】
【０００９】
本発明では、楽器の処理速度向上を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施の一形態による発音チャンネル割当装置を備えた電子楽器１００の全体構成を示すブロック図である。
【図２】音源１８の構成を示すブロック図である。
【図３】ＡＤＳＲ型エンベロープ波形を説明するための図である。
【図４】アサイン処理の動作を示すフローチャートである。
【図５】押鍵処理の動作を示すフローチャートである。
【図６】離鍵処理の動作を示すフローチャートである。
【図７】周期処理の動作を示すフローチャートである。
【図８】図７に続く周期処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態について説明する。
Ａ．構成
（１）全体構成
図１は、本発明の実施の一形態による発音チャンネル割当装置を備えた電子楽器１００の全体構成を示すブロック図である。この図において、ＣＰＵ１０は、鍵盤１３の押離鍵操作およびピッチベンダー１５の操作で生じる演奏イベントや、発音中のチャンネルの楽音に対して継続的な変化を与える為のタイマイベントが発生した場合に、発音チャンネル割当装置の機能に相当するアサイン処理を実行すると共に、楽器各部を制御する。本発明の要旨に係わるアサイン処理の動作については追って詳述する。
【００１２】
ＲＯＭ１１は、ＣＰＵ１０にロードされる各種制御プログラムを記憶する。ここで言う各種制御プログラムとは電子楽器全体の動作を司る処理を行うものであり、後述するアサイン処理も含まれる。アサイン処理は、押鍵処理、離鍵処理および周期処理から構成される。ＲＡＭ１２には、ＣＰＵ１０の処理に用いられる各種レジスタ・フラグデータが一時記憶される。鍵盤１３およびキースキャナ１４は、演奏操作（押離鍵操作）に応じたキーオン／キーオフ信号、鍵番号およびベロシティ等の演奏情報を出力する。ピッチベンダー１５およびＡ／Ｄ変換器１６は、ベンダーホイール操作に応じて発音音高を変化させるデータＰＢを発生する。
【００１３】
表示部１７は、ＣＰＵ１０から供給される表示制御信号に応じて、楽器の動作状態や設定状態などを画面表示する。音源１８は、周知の波形メモリ読みだし方式にて構成され、ＣＰＵ１０から供給されるパラメータで指定される音色、音高および音量の楽音出力を発生する。音源１８の構成については追って述べる。サウンドシステム１９は、音源１８が発生する楽音出力をアナログ形式の楽音信号に変換すると共に、当該楽音信号から不要ノイズを除去する等のフィルタリングを施した後、レベル増幅してスピーカから放音する。
【００１４】
（２）音源１８の構成
次に、図２を参照して音源１８の構成について説明する。音源１８は、周知のＤＳＰから構成される。したがって、図２はそのＤＳＰにおいて実行されるマイクロプログラムの各機能をハードウェアイメージとして捉えた機能ブロックを図示している。
【００１５】
図２において、複音同時発音する各発音チャンネルに相当する波形発生部１８−０〜１８−ｎは、それぞれボイスと呼ばれる。１つのボイス（波形発生部）は、発振器１８ａ、エンベロープジェネレータ（以下、ＥＧと略称する）１８ｂおよび増幅器１８ｃから構成される。発振器１８ａは、ＣＰＵ１０から供給されるパラメータに従い、指定音色の波形データを発音音高に応じた読み出し速度で波形メモリ１８ｄから読み出して出力する。波形メモリ１８ｄの読み出し速度は、ＬＦＯ（低周波発振器）１８ｅから出力される低周波信号と、ピッチベンダー１５の出力（データＰＢ）とを加算した加算器１８ｆの出力に応じて変調される。読み出し速度の変調により発音音高が変化する。
【００１６】
エンベロープジェネレータ（以下、ＥＧと略称する）１８ｂは、ＣＰＵ１０から与えられる目標レベルおよび到達速度（レート）に従い、図３に図示する周知のＡＤＳＲ型（アタックＡ、ディケイＤ、サスティンＳおよびリリースＲ）の音量エンベロープ波形を発生する。ＤＣＡで構成される増幅器１８ｃは、ＥＧ１８ｂから供給される音量エンベロープ波形に応じて、発振器１８ａが出力する波形データの音量レベルを制御して出力する。ミキサ１８ｇは、各ボイス（波形発生部１８−０〜１８−ｎ）が発生する波形データを混合して楽音出力を形成する。
【００１７】
Ｂ．動作
次に、図４〜図８を参照して上記構成による電子楽器１００が備える発音チャンネル割当装置の動作を説明する。以下では、発音チャンネル割当装置の動作として、ＣＰＵ１０が実行するアサイン処理、当該アサイン処理からコールされる押鍵処理、離鍵処理および周期処理の各動作について述べる。
【００１８】
（１）アサイン処理の動作
図４は、アサイン処理の動作を示すフローチャートである。アサイン処理は、電子楽器１００の電源投入以降、タイマインタラプトとして一定周期毎に実行が開始される。本処理の実行タイミングになると、先ずステップＳＡ１に進み、電源投入の有無を判断し、電源投入された場合には判断結果が「ＹＥＳ」になり、ステップＳＡ５に進み、未発音状態を表すべく最大ボイス番号を初期値「−１」にセットしたり、各ボイスの状態を示す状態レジスタを初期化したりするイニシャライズを実行してこの処理を終了する。
【００１９】
これに対し、既に電源投入済みであると、上記ステップＳＡ１の判断結果は「ＮＯ」になり、ステップＳＡ２に進み、押鍵の有無、すなわちキーオンイベントが発生したかどうかを判断する。キーオンイベントが発生していれば、判断結果は「ＹＥＳ」になり、ステップＳＡ６を介して押鍵処理を実行する。
【００２０】
押鍵処理では、後述するように、音源１８が備える複数のボイス（波形発生部１８−０〜１８−ｎ）の内、０番目のボイスから順番に停止中のボイスを検索し、停止中のボイスが見つからなければ、同様に０番目のボイスから順番にリリース中のボイスを検索する。そして、停止中のボイスあるいはリリース中のボイスが見つかると、該当ボイス（停止中又はリリース中のボイス）のエンベロープ状態をアタック状態に更新すると共に、該当ボイスの番号が現在の最大ボイス番号を上回っていれば、該当ボイスの番号を最大ボイス番号に更新した後、エンベロープ状態をアタック状態に更新された該当ボイスを発音させるよう音源１８に指示する。
【００２１】
一方、キーオンイベントが発生していなければ、上記ステップＳＡ２の判断結果は「ＮＯ」となり、ステップＳＡ３に進み、離鍵の有無、すなわちキーオフイベントが発生したかどうかを判断する。キーオフイベントが発生していれば、判断結果は「ＹＥＳ」になり、ステップＳＡ７を介して離鍵処理を実行する。離鍵処理では、後述するように、音源１８の０番目から最大ボイス番号までの各ボイスの内、エンベロープ状態が「アタック」、「ディケイ」および「サスティン」の何れかの状態であって、かつ発音音高が離鍵された鍵の鍵番号に合致する消音対象ボイスを検索し、消音対象ボイスが見つかると、その該当ボイス（消音対象ボイス）のエンベロープ状態をリリースに更新した後、該当ボイスをリリース減衰をさせるよう音源１８に指示する。
【００２２】
キーオフイベントが発生していなければ、上記ステップＳＡ３の判断結果は「ＮＯ」になり、ステップＳＡ４に進み、一定時間（例えば１ｍｓｅｃ）が経過したか否かを判断する。インターバルタイマ（不図示）により計時される時間が一定時間未満であれば、判断結果は「ＮＯ」となり、この処理を終了し、一定時間経過すると、判断結果が「ＹＥＳ」になり、ステップＳＡ８を介して周期処理を実行した後、この処理を終了する。
【００２３】
周期処理では、後述するように、０番目から最大ボイス番号までボイス番号Ｖを歩進させながら、当該ボイス番号Ｖで指定されるボイスにおいて、ベンダーホイール操作に応じて生成されるデータＰＢと、ＬＦＯ１８ｅから出力される低周波信号とを加算する加算器１８ｆの出力信号に応じて、波形メモリ１８ｄの読み出し速度を変調して発音音高を変化させるピッチ変調制御処理や、エンベロープ状態の進行を管理するエンベロープ制御処理を実行する。そして、歩進されたボイス番号Ｖが最大ボイス番号に達すると、全てのボイスの内、停止中以外のボイス（発音中のボイス）の中で最も番号の大きいボイスを検索し、該当するボイスの番号を最大ボイス番号に更新する。
【００２４】
（２）押鍵処理の動作
次に、図５を参照して押鍵処理の動作を説明する。上述したアサイン処理のステップＳＡ６（図４参照）を介して本処理が実行されると、ＣＰＵ１０は図５に図示するステップＳＢ１に処理を進め、音源１８が備える複数のボイス（波形発生部１８−０〜１８−ｎ）の内、０番目のボイス（波形発生部１８−０）から順番に停止中のボイスを検索する。次いで、ステップＳＢ２では、停止中のボイスが見つかったか否かを判断する。停止中のボイスが見つかったならば、判断結果は「ＹＥＳ」になり、後述のステップＳＢ５に進む。
【００２５】
一方、停止中のボイスが見つからなければ、上記ステップＳＢ２の判断結果が「ＮＯ」になり、ステップＳＢ３に進み、０番目のボイスから順番にリリース中のボイスを検索する。そして、ステップＳＢ４では、リリース中のボイスが見つかったか否かを判断する。リリース中のボイスも見つからなければ、判断結果は「ＮＯ」になり、本処理を終える。この場合、全てのボイスが占有状態にある為にトランケートされず、新たな発音割当は行われない。これに対し、リリース中のボイスが見つかると、上記ステップＳＢ４の判断結果は「ＹＥＳ」になり、ステップＳＢ５に進む。
【００２６】
ステップＳＢ５では、該当ボイス（停止中又はリリース中のボイス）のエンベロープ状態をアタック状態に更新する。続くステップＳＢ６では、該当ボイス（停止中又はリリース中のボイス）の番号が、現在の最大ボイス番号を上回っているか否かを判断する。該当ボイス（停止中又はリリース中のボイス）の番号が、現在の最大ボイス番号を上回っていなければ、判断結果は「ＮＯ」になり、ステップＳＢ８に進む。
【００２７】
一方、該当ボイス（停止中又はリリース中のボイス）の番号が、現在の最大ボイス番号を上回っていれば、判断結果は「ＹＥＳ」になり、ステップＳＢ７に進み、該当ボイスの番号を最大ボイス番号に更新した後、ステップＳＢ８に進む。そして、ステップＳＢ８では、エンベロープ状態をアタック状態に更新された該当ボイスを発音させるよう音源１８に指示して本処理を終える。
【００２８】
このように、押鍵処理では、音源１８が備える複数のボイス（波形発生部１８−０〜１８−ｎ）の内、０番目のボイスから順番に停止中のボイスを検索し、停止中のボイスが見つからなければ、同様に０番目のボイスから順番にリリース中のボイスを検索する。そして、停止中のボイスあるいはリリース中のボイスが見つかると、該当ボイス（停止中又はリリース中のボイス）のエンベロープ状態をアタック状態に更新すると共に、該当ボイスの番号が現在の最大ボイス番号を上回っていれば、該当ボイスの番号を最大ボイス番号に更新した後、エンベロープ状態をアタック状態に更新された該当ボイスを発音させるよう音源１８に指示する。
【００２９】
（３）離鍵処理の動作
次に、図６を参照して離鍵処理の動作を説明する。前述したアサイン処理のステップＳＡ７（図４参照）を介して本処理が実行されると、ＣＰＵ１０は図６に図示するステップＳＣ１に処理を進め、音源１８の０番目から最大ボイス番号までの各ボイスの中から消音対象ボイスを検索する。ここで言う消音対象ボイスとは、エンベロープ状態が「アタック」、「ディケイ」および「サスティン」の何れかの状態であって、かつ発音音高が離鍵された鍵の鍵番号に対応するボイスを指す。
【００３０】
次いで、ステップＳＣ２では、該当ボイス（消音対象ボイス）の有無を判断する。該当ボイス（消音対象ボイス）が見つからなければ、判断結果は「ＮＯ」になり、本処理を終えるが、該当ボイス（消音対象ボイス）が見つかると、上記ステップＳＣ２の判断結果は「ＹＥＳ」になり、ステップＳＣ３に進む。ステップＳＣ３では、該当ボイス（消音対象ボイス）のエンベロープ状態をリリースに更新し、続くステップＳＣ４では、該当ボイス（消音対象ボイス）をリリース減衰をさせるよう音源１８に指示して本処理を終える。
【００３１】
このように、離鍵処理では、音源１８の０番目から最大ボイス番号の各ボイスの中から、エンベロープ状態が「アタック」、「ディケイ」および「サスティン」の何れかの状態であって、かつ発音音高が離鍵された鍵の鍵番号に対応する消音対象ボイスを検索し、消音対象ボイスが見つかると、その該当ボイス（消音対象ボイス）のエンベロープ状態をリリースに更新した後、該当ボイスをリリース減衰をさせるよう音源１８に指示する。
【００３２】
（４）周期処理の動作
次に、図７〜図８を参照して周期処理の動作を説明する。前述したアサイン処理のステップＳＡ８（図４参照）を介して本処理が実行されると、ＣＰＵ１０は図７に図示するステップＳＤ１に処理を進め、ピッチベンダー１５のベンダーホイール操作に応じたデータＰＢを発生させるピッチベンダー制御処理を実行する。続いて、ステップＳＤ２では、例えば低周波信号（正弦波）の読み出し位相に応じた信号レベルをＬＦＯ波形テーブルから読み出す等のＬＦＯ計算処理を実行する。
【００３３】
次いで、ステップＳＤ３では、ボイスカウンタＶに初期値「０」をストアする。以下、ボイスカウンタＶの値をボイス番号Ｖと称す。そして、ステップＳＤ４に進むと、ボイス番号Ｖで指定されるボイス（波形発生部１８−Ｖ）において、ベンダーホイール操作に応じて生成されるデータＰＢと、ＬＦＯ１８ｅから出力される低周波信号とを加算する加算器１８ｆの出力信号に応じて、波形メモリ１８ｄの読み出し速度を変調して発音音高を変化させるピッチ変調制御処理を実行する。
【００３４】
続いて、ステップＳＤ５〜ＳＤ７（図８参照）では、ボイス番号Ｖで指定されるボイスのエンベロープ状態が「アタック目標到達」、「ディケイ目標到達」および「リリース目標到達」の何れであるかを判別する。ボイス番号Ｖで指定されるボイスのエンベロープ状態が「アタック目標到達」、「ディケイ目標到達」および「リリース目標到達」の何れでもない停止中ならば、ステップＳＤ５〜ＳＤ７の各判断結果は何れも「ＮＯ」になり、後述するステップＳＤ１０（図８参照）に処理を進める。
【００３５】
一方、ボイス番号Ｖで指定されるボイスのエンベロープ状態が、「アタック目標到達」、「ディケイ目標到達」および「リリース目標到達」の何れかに該当する場合には、対応する処理を実行する。以下、ボイス番号Ｖで指定されるボイスのエンベロープ状態が「アタック目標レベルに到達した場合」、「ディケイ目標レベルに到達した場合」および「リリース目標レベルに到達した場合」に分けて動作説明を進める。
【００３６】
（ａ）アタック目標レベルに到達した場合
ボイス番号Ｖで指定されるボイスのエンベロープ状態がアタック目標レベルに到達すると、ステップＳＤ５の判断結果が「ＹＥＳ」になり、ステップＳＤ８に進み、ボイス番号Ｖで指定されるボイスのエンベロープ状態をディケイに更新し、続くステップＳＤ９では、当該ボイスのＥＧ１８ｂに対して次の目標値であるサスティンレベルおよびディケイレートをセットするディケイ移行処理を実行する。
【００３７】
この後、図８に図示するステップＳＤ１０に進み、ボイス番号Ｖをインクリメントして歩進させ、続くステップＳＤ１１では、歩進されたボイス番号Ｖが最大ボイス番号を超えたか否かを判断する。歩進されたボイス番号Ｖが最大ボイス番号を超えていなければ、判断結果は「ＮＯ」に前述のステップＳＤ４（図７参照）に処理を戻す。これに対し、歩進されたボイス番号Ｖが最大ボイス番号を超えると、上記ステップＳＤ１１の判断結果が「ＹＥＳ」となり、本処理を終える。
【００３８】
（ｂ）ディケイ目標レベルに到達した場合
ボイス番号Ｖで指定されるボイスのエンベロープ状態がディケイ目標レベルに到達すると、ステップＳＤ６（図８参照）の判断結果が「ＹＥＳ」になり、ステップＳＤ１２に進む。ステップＳＤ１２では、サスティンレベルが「０」であるか否かを判断する。サスティンレベルが「０」であると、判断結果は「ＹＥＳ」になり、後述のステップＳＤ１４に進み、エンベロープ状態を停止状態に更新し、一方、サスティンレベルが「０」でなければ、判断結果は「ＮＯ」になり、ステップＳＤ１３に進み、ボイス番号Ｖで指定されるボイスのエンベロープ状態をサスティンに更新する。
【００３９】
この後、ステップＳＤ１０に進み、ボイス番号Ｖをインクリメントして歩進させ、続くステップＳＤ１１では、歩進されたボイス番号Ｖが最大ボイス番号を超えたか否かを判断する。歩進されたボイス番号Ｖが最大ボイス番号を超えていなければ、判断結果は「ＮＯ」に前述のステップＳＤ４（図７参照）に処理を戻す。これに対し、歩進されたボイス番号Ｖが最大ボイス番号を超えると、上記ステップＳＤ１１の判断結果が「ＹＥＳ」となり、本処理を終える。
【００４０】
（ｃ）リリース目標レベルに到達した場合
ボイス番号Ｖで指定されるボイスのエンベロープ状態がリリース目標レベルに到達すると、ステップＳＤ７（図８参照）の判断結果が「ＹＥＳ」になり、ステップＳＤ１４に進む。ステップＳＤ１４では、ボイス番号Ｖで指定されるボイスのエンベロープ状態を停止状態に更新し、続くステップＳＤ１５では、ボイス番号Ｖで指定されるボイスの消音を音源１８に指示するボイス停止処理を実行する。そして、ステップＳＤ１６に進み、歩進されたボイス番号Ｖが最大ボイス番号に達したか否かを判断する。
【００４１】
歩進されたボイス番号Ｖが最大ボイス番号に達していなければ、判断結果は「ＮＯ」になり、上述のステップＳＤ１０に処理を戻す。これに対し、歩進されたボイス番号Ｖが最大ボイス番号に達すると、上記ステップＳＤ１６の判断結果は「ＹＥＳ」になり、ステップＳＤ１７に進み、全てのボイスの内、停止中以外のボイス（発音中にあるボイス）の中で最も番号の大きいボイスを検索し、該当するボイスの番号を最大ボイス番号に更新した後、上述のステップＳＤ１０に処理を戻す。
【００４２】
このように、一定周期毎に実行される周期処理では、０番目から最大ボイス番号までボイス番号Ｖを歩進させながら、ボイス番号Ｖで指定されるボイスにおいて、ベンダーホイール操作に応じて生成されるデータＰＢと、ＬＦＯ１８ｅから出力される低周波信号とを加算する加算器１８ｆの出力信号に応じて、波形メモリ１８ｄの読み出し速度を変調して発音音高を変化させるピッチ変調制御処理や、エンベロープ状態の進行を管理するエンベロープ制御処理を実行する。そして、歩進されたボイス番号Ｖが最大ボイス番号に達すると、全てのボイスの内、発音中にあるボイスの中で最も番号の大きいボイスを検索し、該当するボイスの番号を最大ボイス番号に更新する。
【００４３】
以上説明したように、本実施形態では、チャンネル番号を有する複数の発音チャンネルの内、発音中で最も番号の大きい発音チャンネルを検索し、該当する発音チャンネルの番号を最大チャンネル番号として更新しておき、消音イベントが発生した場合には、先頭から最大チャンネル番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき発音チャンネルを探し出し、一定周期毎のタイマイベントが発生した場合には、先頭から最大チャンネル番号までの各発音チャンネルの内、発音中のチャンネルの楽音についてエンベロープ制御などの継続的な変化を与える周期処理を施すようにしたので、従来のように、イベント発生の度に全ての発音チャンネルについて状態調査する必要が無くなり、これによりＣＰＵ負荷軽減による楽器の処理速度向上を図ることが可能になる。
【００４４】
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
【００４５】
（付記）
［請求項１］
先頭から連続する番号の夫々が付加された複数の発音チャンネルと、
所定の周期で、前記複数の発音チャンネルのうち発音中で最も番号の大きい発音チャンネルを検索し、当該検索された発音チャンネルの番号を最大チャンネルの番号として更新する第１の更新手段と、
発音イベントに応じて前記複数の発音チャンネルの中から消音している発音チャンネルを検索し、当該検索された発音チャンネルの発音開始を指示する発音指示手段と、
消音イベントに応じて、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき音を発音中の発音チャンネルを検索し、該当する発音チャンネルの消音を指示する消音指示手段と、
前記所定の周期で、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルのうち、発音中の発音チャンネルにて生成される音の制御を指示する修飾指示手段と
を具備することを特徴とする発音チャンネル割当装置。
【００４６】
［請求項２］
前記発音指示手段は、前記発音開始された発音チャンネルの番号が、前記第１の更新手段により更新された最大チャンネルの番号を超えた場合に、その新たな発音を割り当てた発音チャンネルの番号を最大チャンネルの番号に更新する第２の更新手段を備えることを特徴とする請求項１記載の発音チャンネル割当装置。
【００４７】
［請求項３］
先頭から連続する番号の夫々が付加された複数の発音チャンネルを有する発音チャンネル割当装置に搭載されるコンピュータに、
所定の周期で、前記複数の発音チャンネルのうち発音中で最も番号の大きい発音チャンネルを検索し、当該検索された発音チャンネルの番号を最大チャンネルの番号として更新する第１の更新ステップと、
発音イベントに応じて前記複数の発音チャンネルの中から消音している発音チャンネルを検索し、当該検索された発音チャンネルの発音開始を指示する発音指示ステップと、
消音イベントに応じて、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき音を発音中の発音チャンネルを検索し、該当する発音チャンネルの消音を指示する消音指示ステップと、
前記所定の周期で、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルのうち、発音中の発音チャンネルにて生成される音の制御を指示する修飾指示ステップと
を具備することを特徴とするプログラム。
【００４８】
［請求項４］
前記発音指示ステップは、前記発音開始された発音チャンネルの番号が、前記第１の更新ステップにより更新された最大チャンネルの番号を超えた場合に、その新たな発音を割り当てた発音チャンネルの番  号を最大チャンネルの番号に更新する第２の更新ステップを備えることを特徴とする請求項３記載のプログラム。
【符号の説明】
【００４９】
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  鍵盤
１４  キースキャナ
１５  ピッチベンダー
１６  Ａ／Ｄ変換器
１７  表示部
１８  音源
１９  サウンドシステム
１００  電子楽器
【図１】
0005769080.tif 000002
【図２】
0005769080.tif 000003
【図３】
0005769080.tif 000004
【図４】
0005769080.tif 000005
【図５】
0005769080.tif 000006
【図６】
0005769080.tif 000007
【図７】
0005769080.tif 000008
【図８】
0005769080.tif 000009