説明

発音チャンネル割当装置およびプログラム

【課題】楽器の処理速度向上を図る発音チャンネル割当装置を実現する。
【解決手段】CPU10は、発音中で最も番号の大きい発音チャンネルを検索し、該当する発音チャンネルの番号を最大チャンネル番号として更新しておき、消音イベントが発生した場合には、先頭から最大チャンネル番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき発音チャンネルを探し出し、一定周期毎のタイマイベントが発生した場合には、先頭から最大チャンネル番号までの各発音チャンネルの内、発音中のチャンネルの楽音についてエンベロープ制御などの継続的な変化を与える周期処理を施す。したがって、イベント発生の度に全ての発音チャンネルについて状態調査する必要が無くなり、CPU負荷軽減による楽器の処理速度向上を図る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子楽器に用いる発音チャンネル割当装置およびプログラムに関する。
【背景技術】
【0002】
発音チャンネルの数が鍵の数より少ない電子楽器においては、全ての発音チャンネルが楽音を発生している最中に新たな押鍵がなされた場合、この新たな押鍵に対応して発音すべき発音チャンネルを割り当てる発音チャンネル割当装置を備えている。従来、この種の装置では、全ての発音チャンネルの内、最も減衰の進んだエンベロープレベルの楽音を発生している発音チャンネルへ新たに押鍵された鍵の楽音発生をアサインしたり、最も古く離鍵された発音チャンネルへ新たに押鍵された鍵の楽音発生をアサインする方式などが知られている。
【0003】
近年では、例えば特許文献1に開示されるように、各音色を表わす楽音パラメータにリリース優先フラグRPFを設け、エンベロープのリリース形状に特徴がある音色のリリース優先フラグRPFを「1」にセットしておき、全ての発音チャンネルが発音中に新たな楽音を発音しなければならない場合に、リリース優先フラグRPFが「1」の音色の楽音を発音している発音チャンネルについては新たな楽音の発音を割り当てないようにして楽音の音色の特徴を考慮した発音割り当てを行う技術が知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第3567293号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、周知のように、発音中にノートオフ、ペダル操作、ホイール操作などの演奏イベントが発生した場合や、エンベロープジェネレータ制御、LFO制御、ポルタメント効果付与等の、発音中のチャンネルの楽音に対して継続的な変化を与える為のタイマイベントが発生した場合には、発音チャンネル割当装置が全ての発音チャンネルについて発音中であるかどうかを判別する状態調査を行い、その状態調査の結果に基づき音源が必要な発音チャンネルにのみ所要のイベント処理を施すようになっている。
【0006】
したがって、音源の高性能化に伴い発音チャンネル数が増加すると、各発音チャンネルの状態調査に要するCPU負荷が増大し、これにより、例えば同時発音する発音チャンネルを「256」チャンネル備える音源において4チャンネルしか使用していない状態であっても、残りの「252」チャンネルについても状態調査するという無駄が生じ、結果的に楽器の処理速度低下を招いてしまうという問題がある。
【0007】
本発明は、このような事情に鑑みてなされたもので、楽器の処理速度向上を図ることができる発音チャンネル割当装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明の発音チャンネル割当装置は、先頭から連続する番号の夫々が付加された複数の発音チャンネルと、
所定の周期で、前記複数の発音チャンネルのうち発音中で最も番号の大きい発音チャンネルを検索し、当該検索された発音チャンネルの番号を最大チャンネルの番号として更新する第1の更新手段と、
発音イベントに応じて前記複数の発音チャンネルの中から消音している発音チャンネルを検索し、当該検索された発音チャンネルの発音開始を指示する発音指示手段と、
消音イベントに応じて、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき音を発音中の発音チャンネルを検索し、該当する発音チャンネルの消音を指示する消音指示手段と、
前記所定の周期で、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルのうち、発音中の発音チャンネルにて生成される音の制御を指示する修飾指示手段と
を具備することを特徴とする。
【発明の効果】
【0009】
本発明では、楽器の処理速度向上を図ることができる。
【図面の簡単な説明】
【0010】
【図1】実施の一形態による発音チャンネル割当装置を備えた電子楽器100の全体構成を示すブロック図である。
【図2】音源18の構成を示すブロック図である。
【図3】ADSR型エンベロープ波形を説明するための図である。
【図4】アサイン処理の動作を示すフローチャートである。
【図5】押鍵処理の動作を示すフローチャートである。
【図6】離鍵処理の動作を示すフローチャートである。
【図7】周期処理の動作を示すフローチャートである。
【図8】図7に続く周期処理の動作を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態について説明する。
A.構成
(1)全体構成
図1は、本発明の実施の一形態による発音チャンネル割当装置を備えた電子楽器100の全体構成を示すブロック図である。この図において、CPU10は、鍵盤13の押離鍵操作およびピッチベンダー15の操作で生じる演奏イベントや、発音中のチャンネルの楽音に対して継続的な変化を与える為のタイマイベントが発生した場合に、発音チャンネル割当装置の機能に相当するアサイン処理を実行すると共に、楽器各部を制御する。本発明の要旨に係わるアサイン処理の動作については追って詳述する。
【0012】
ROM11は、CPU10にロードされる各種制御プログラムを記憶する。ここで言う各種制御プログラムとは電子楽器全体の動作を司る処理を行うものであり、後述するアサイン処理も含まれる。アサイン処理は、押鍵処理、離鍵処理および周期処理から構成される。RAM12には、CPU10の処理に用いられる各種レジスタ・フラグデータが一時記憶される。鍵盤13およびキースキャナ14は、演奏操作(押離鍵操作)に応じたキーオン/キーオフ信号、鍵番号およびベロシティ等の演奏情報を出力する。ピッチベンダー15およびA/D変換器16は、ベンダーホイール操作に応じて発音音高を変化させるデータPBを発生する。
【0013】
表示部17は、CPU10から供給される表示制御信号に応じて、楽器の動作状態や設定状態などを画面表示する。音源18は、周知の波形メモリ読みだし方式にて構成され、CPU10から供給されるパラメータで指定される音色、音高および音量の楽音出力を発生する。音源18の構成については追って述べる。サウンドシステム19は、音源18が発生する楽音出力をアナログ形式の楽音信号に変換すると共に、当該楽音信号から不要ノイズを除去する等のフィルタリングを施した後、レベル増幅してスピーカから放音する。
【0014】
(2)音源18の構成
次に、図2を参照して音源18の構成について説明する。音源18は、周知のDSPから構成される。したがって、図2はそのDSPにおいて実行されるマイクロプログラムの各機能をハードウェアイメージとして捉えた機能ブロックを図示している。
【0015】
図2において、複音同時発音する各発音チャンネルに相当する波形発生部18−0〜18−nは、それぞれボイスと呼ばれる。1つのボイス(波形発生部)は、発振器18a、エンベロープジェネレータ(以下、EGと略称する)18bおよび増幅器18cから構成される。発振器18aは、CPU10から供給されるパラメータに従い、指定音色の波形データを発音音高に応じた読み出し速度で波形メモリ18dから読み出して出力する。波形メモリ18dの読み出し速度は、LFO(低周波発振器)18eから出力される低周波信号と、ピッチベンダー15の出力(データPB)とを加算した加算器18fの出力に応じて変調される。読み出し速度の変調により発音音高が変化する。
【0016】
エンベロープジェネレータ(以下、EGと略称する)18bは、CPU10から与えられる目標レベルおよび到達速度(レート)に従い、図3に図示する周知のADSR型(アタックA、ディケイD、サスティンSおよびリリースR)の音量エンベロープ波形を発生する。DCAで構成される増幅器18cは、EG18bから供給される音量エンベロープ波形に応じて、発振器18aが出力する波形データの音量レベルを制御して出力する。ミキサ18gは、各ボイス(波形発生部18−0〜18−n)が発生する波形データを混合して楽音出力を形成する。
【0017】
B.動作
次に、図4〜図8を参照して上記構成による電子楽器100が備える発音チャンネル割当装置の動作を説明する。以下では、発音チャンネル割当装置の動作として、CPU10が実行するアサイン処理、当該アサイン処理からコールされる押鍵処理、離鍵処理および周期処理の各動作について述べる。
【0018】
(1)アサイン処理の動作
図4は、アサイン処理の動作を示すフローチャートである。アサイン処理は、電子楽器100の電源投入以降、タイマインタラプトとして一定周期毎に実行が開始される。本処理の実行タイミングになると、先ずステップSA1に進み、電源投入の有無を判断し、電源投入された場合には判断結果が「YES」になり、ステップSA5に進み、未発音状態を表すべく最大ボイス番号を初期値「−1」にセットしたり、各ボイスの状態を示す状態レジスタを初期化したりするイニシャライズを実行してこの処理を終了する。
【0019】
これに対し、既に電源投入済みであると、上記ステップSA1の判断結果は「NO」になり、ステップSA2に進み、押鍵の有無、すなわちキーオンイベントが発生したかどうかを判断する。キーオンイベントが発生していれば、判断結果は「YES」になり、ステップSA6を介して押鍵処理を実行する。
【0020】
押鍵処理では、後述するように、音源18が備える複数のボイス(波形発生部18−0〜18−n)の内、0番目のボイスから順番に停止中のボイスを検索し、停止中のボイスが見つからなければ、同様に0番目のボイスから順番にリリース中のボイスを検索する。そして、停止中のボイスあるいはリリース中のボイスが見つかると、該当ボイス(停止中又はリリース中のボイス)のエンベロープ状態をアタック状態に更新すると共に、該当ボイスの番号が現在の最大ボイス番号を上回っていれば、該当ボイスの番号を最大ボイス番号に更新した後、エンベロープ状態をアタック状態に更新された該当ボイスを発音させるよう音源18に指示する。
【0021】
一方、キーオンイベントが発生していなければ、上記ステップSA2の判断結果は「NO」となり、ステップSA3に進み、離鍵の有無、すなわちキーオフイベントが発生したかどうかを判断する。キーオフイベントが発生していれば、判断結果は「YES」になり、ステップSA7を介して離鍵処理を実行する。離鍵処理では、後述するように、音源18の0番目から最大ボイス番号までの各ボイスの内、エンベロープ状態が「アタック」、「ディケイ」および「サスティン」の何れかの状態であって、かつ発音音高が離鍵された鍵の鍵番号に合致する消音対象ボイスを検索し、消音対象ボイスが見つかると、その該当ボイス(消音対象ボイス)のエンベロープ状態をリリースに更新した後、該当ボイスをリリース減衰をさせるよう音源18に指示する。
【0022】
キーオフイベントが発生していなければ、上記ステップSA3の判断結果は「NO」になり、ステップSA4に進み、一定時間(例えば1msec)が経過したか否かを判断する。インターバルタイマ(不図示)により計時される時間が一定時間未満であれば、判断結果は「NO」となり、この処理を終了し、一定時間経過すると、判断結果が「YES」になり、ステップSA8を介して周期処理を実行した後、この処理を終了する。
【0023】
周期処理では、後述するように、0番目から最大ボイス番号までボイス番号Vを歩進させながら、当該ボイス番号Vで指定されるボイスにおいて、ベンダーホイール操作に応じて生成されるデータPBと、LFO18eから出力される低周波信号とを加算する加算器18fの出力信号に応じて、波形メモリ18dの読み出し速度を変調して発音音高を変化させるピッチ変調制御処理や、エンベロープ状態の進行を管理するエンベロープ制御処理を実行する。そして、歩進されたボイス番号Vが最大ボイス番号に達すると、全てのボイスの内、停止中以外のボイス(発音中のボイス)の中で最も番号の大きいボイスを検索し、該当するボイスの番号を最大ボイス番号に更新する。
【0024】
(2)押鍵処理の動作
次に、図5を参照して押鍵処理の動作を説明する。上述したアサイン処理のステップSA6(図4参照)を介して本処理が実行されると、CPU10は図5に図示するステップSB1に処理を進め、音源18が備える複数のボイス(波形発生部18−0〜18−n)の内、0番目のボイス(波形発生部18−0)から順番に停止中のボイスを検索する。次いで、ステップSB2では、停止中のボイスが見つかったか否かを判断する。停止中のボイスが見つかったならば、判断結果は「YES」になり、後述のステップSB5に進む。
【0025】
一方、停止中のボイスが見つからなければ、上記ステップSB2の判断結果が「NO」になり、ステップSB3に進み、0番目のボイスから順番にリリース中のボイスを検索する。そして、ステップSB4では、リリース中のボイスが見つかったか否かを判断する。リリース中のボイスも見つからなければ、判断結果は「NO」になり、本処理を終える。この場合、全てのボイスが占有状態にある為にトランケートされず、新たな発音割当は行われない。これに対し、リリース中のボイスが見つかると、上記ステップSB4の判断結果は「YES」になり、ステップSB5に進む。
【0026】
ステップSB5では、該当ボイス(停止中又はリリース中のボイス)のエンベロープ状態をアタック状態に更新する。続くステップSB6では、該当ボイス(停止中又はリリース中のボイス)の番号が、現在の最大ボイス番号を上回っているか否かを判断する。該当ボイス(停止中又はリリース中のボイス)の番号が、現在の最大ボイス番号を上回っていなければ、判断結果は「NO」になり、ステップSB8に進む。
【0027】
一方、該当ボイス(停止中又はリリース中のボイス)の番号が、現在の最大ボイス番号を上回っていれば、判断結果は「YES」になり、ステップSB7に進み、該当ボイスの番号を最大ボイス番号に更新した後、ステップSB8に進む。そして、ステップSB8では、エンベロープ状態をアタック状態に更新された該当ボイスを発音させるよう音源18に指示して本処理を終える。
【0028】
このように、押鍵処理では、音源18が備える複数のボイス(波形発生部18−0〜18−n)の内、0番目のボイスから順番に停止中のボイスを検索し、停止中のボイスが見つからなければ、同様に0番目のボイスから順番にリリース中のボイスを検索する。そして、停止中のボイスあるいはリリース中のボイスが見つかると、該当ボイス(停止中又はリリース中のボイス)のエンベロープ状態をアタック状態に更新すると共に、該当ボイスの番号が現在の最大ボイス番号を上回っていれば、該当ボイスの番号を最大ボイス番号に更新した後、エンベロープ状態をアタック状態に更新された該当ボイスを発音させるよう音源18に指示する。
【0029】
(3)離鍵処理の動作
次に、図6を参照して離鍵処理の動作を説明する。前述したアサイン処理のステップSA7(図4参照)を介して本処理が実行されると、CPU10は図6に図示するステップSC1に処理を進め、音源18の0番目から最大ボイス番号までの各ボイスの中から消音対象ボイスを検索する。ここで言う消音対象ボイスとは、エンベロープ状態が「アタック」、「ディケイ」および「サスティン」の何れかの状態であって、かつ発音音高が離鍵された鍵の鍵番号に対応するボイスを指す。
【0030】
次いで、ステップSC2では、該当ボイス(消音対象ボイス)の有無を判断する。該当ボイス(消音対象ボイス)が見つからなければ、判断結果は「NO」になり、本処理を終えるが、該当ボイス(消音対象ボイス)が見つかると、上記ステップSC2の判断結果は「YES」になり、ステップSC3に進む。ステップSC3では、該当ボイス(消音対象ボイス)のエンベロープ状態をリリースに更新し、続くステップSC4では、該当ボイス(消音対象ボイス)をリリース減衰をさせるよう音源18に指示して本処理を終える。
【0031】
このように、離鍵処理では、音源18の0番目から最大ボイス番号の各ボイスの中から、エンベロープ状態が「アタック」、「ディケイ」および「サスティン」の何れかの状態であって、かつ発音音高が離鍵された鍵の鍵番号に対応する消音対象ボイスを検索し、消音対象ボイスが見つかると、その該当ボイス(消音対象ボイス)のエンベロープ状態をリリースに更新した後、該当ボイスをリリース減衰をさせるよう音源18に指示する。
【0032】
(4)周期処理の動作
次に、図7〜図8を参照して周期処理の動作を説明する。前述したアサイン処理のステップSA8(図4参照)を介して本処理が実行されると、CPU10は図7に図示するステップSD1に処理を進め、ピッチベンダー15のベンダーホイール操作に応じたデータPBを発生させるピッチベンダー制御処理を実行する。続いて、ステップSD2では、例えば低周波信号(正弦波)の読み出し位相に応じた信号レベルをLFO波形テーブルから読み出す等のLFO計算処理を実行する。
【0033】
次いで、ステップSD3では、ボイスカウンタVに初期値「0」をストアする。以下、ボイスカウンタVの値をボイス番号Vと称す。そして、ステップSD4に進むと、ボイス番号Vで指定されるボイス(波形発生部18−V)において、ベンダーホイール操作に応じて生成されるデータPBと、LFO18eから出力される低周波信号とを加算する加算器18fの出力信号に応じて、波形メモリ18dの読み出し速度を変調して発音音高を変化させるピッチ変調制御処理を実行する。
【0034】
続いて、ステップSD5〜SD7(図8参照)では、ボイス番号Vで指定されるボイスのエンベロープ状態が「アタック目標到達」、「ディケイ目標到達」および「リリース目標到達」の何れであるかを判別する。ボイス番号Vで指定されるボイスのエンベロープ状態が「アタック目標到達」、「ディケイ目標到達」および「リリース目標到達」の何れでもない停止中ならば、ステップSD5〜SD7の各判断結果は何れも「NO」になり、後述するステップSD10(図8参照)に処理を進める。
【0035】
一方、ボイス番号Vで指定されるボイスのエンベロープ状態が、「アタック目標到達」、「ディケイ目標到達」および「リリース目標到達」の何れかに該当する場合には、対応する処理を実行する。以下、ボイス番号Vで指定されるボイスのエンベロープ状態が「アタック目標レベルに到達した場合」、「ディケイ目標レベルに到達した場合」および「リリース目標レベルに到達した場合」に分けて動作説明を進める。
【0036】
(a)アタック目標レベルに到達した場合
ボイス番号Vで指定されるボイスのエンベロープ状態がアタック目標レベルに到達すると、ステップSD5の判断結果が「YES」になり、ステップSD8に進み、ボイス番号Vで指定されるボイスのエンベロープ状態をディケイに更新し、続くステップSD9では、当該ボイスのEG18bに対して次の目標値であるサスティンレベルおよびディケイレートをセットするディケイ移行処理を実行する。
【0037】
この後、図8に図示するステップSD10に進み、ボイス番号Vをインクリメントして歩進させ、続くステップSD11では、歩進されたボイス番号Vが最大ボイス番号を超えたか否かを判断する。歩進されたボイス番号Vが最大ボイス番号を超えていなければ、判断結果は「NO」に前述のステップSD4(図7参照)に処理を戻す。これに対し、歩進されたボイス番号Vが最大ボイス番号を超えると、上記ステップSD11の判断結果が「YES」となり、本処理を終える。
【0038】
(b)ディケイ目標レベルに到達した場合
ボイス番号Vで指定されるボイスのエンベロープ状態がディケイ目標レベルに到達すると、ステップSD6(図8参照)の判断結果が「YES」になり、ステップSD12に進む。ステップSD12では、サスティンレベルが「0」であるか否かを判断する。サスティンレベルが「0」であると、判断結果は「YES」になり、後述のステップSD14に進み、エンベロープ状態を停止状態に更新し、一方、サスティンレベルが「0」でなければ、判断結果は「NO」になり、ステップSD13に進み、ボイス番号Vで指定されるボイスのエンベロープ状態をサスティンに更新する。
【0039】
この後、ステップSD10に進み、ボイス番号Vをインクリメントして歩進させ、続くステップSD11では、歩進されたボイス番号Vが最大ボイス番号を超えたか否かを判断する。歩進されたボイス番号Vが最大ボイス番号を超えていなければ、判断結果は「NO」に前述のステップSD4(図7参照)に処理を戻す。これに対し、歩進されたボイス番号Vが最大ボイス番号を超えると、上記ステップSD11の判断結果が「YES」となり、本処理を終える。
【0040】
(c)リリース目標レベルに到達した場合
ボイス番号Vで指定されるボイスのエンベロープ状態がリリース目標レベルに到達すると、ステップSD7(図8参照)の判断結果が「YES」になり、ステップSD14に進む。ステップSD14では、ボイス番号Vで指定されるボイスのエンベロープ状態を停止状態に更新し、続くステップSD15では、ボイス番号Vで指定されるボイスの消音を音源18に指示するボイス停止処理を実行する。そして、ステップSD16に進み、歩進されたボイス番号Vが最大ボイス番号に達したか否かを判断する。
【0041】
歩進されたボイス番号Vが最大ボイス番号に達していなければ、判断結果は「NO」になり、上述のステップSD10に処理を戻す。これに対し、歩進されたボイス番号Vが最大ボイス番号に達すると、上記ステップSD16の判断結果は「YES」になり、ステップSD17に進み、全てのボイスの内、停止中以外のボイス(発音中にあるボイス)の中で最も番号の大きいボイスを検索し、該当するボイスの番号を最大ボイス番号に更新した後、上述のステップSD10に処理を戻す。
【0042】
このように、一定周期毎に実行される周期処理では、0番目から最大ボイス番号までボイス番号Vを歩進させながら、ボイス番号Vで指定されるボイスにおいて、ベンダーホイール操作に応じて生成されるデータPBと、LFO18eから出力される低周波信号とを加算する加算器18fの出力信号に応じて、波形メモリ18dの読み出し速度を変調して発音音高を変化させるピッチ変調制御処理や、エンベロープ状態の進行を管理するエンベロープ制御処理を実行する。そして、歩進されたボイス番号Vが最大ボイス番号に達すると、全てのボイスの内、発音中にあるボイスの中で最も番号の大きいボイスを検索し、該当するボイスの番号を最大ボイス番号に更新する。
【0043】
以上説明したように、本実施形態では、チャンネル番号を有する複数の発音チャンネルの内、発音中で最も番号の大きい発音チャンネルを検索し、該当する発音チャンネルの番号を最大チャンネル番号として更新しておき、消音イベントが発生した場合には、先頭から最大チャンネル番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき発音チャンネルを探し出し、一定周期毎のタイマイベントが発生した場合には、先頭から最大チャンネル番号までの各発音チャンネルの内、発音中のチャンネルの楽音についてエンベロープ制御などの継続的な変化を与える周期処理を施すようにしたので、従来のように、イベント発生の度に全ての発音チャンネルについて状態調査する必要が無くなり、これによりCPU負荷軽減による楽器の処理速度向上を図ることが可能になる。
【0044】
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
【0045】
(付記)
[請求項1]
先頭から連続する番号の夫々が付加された複数の発音チャンネルと、
所定の周期で、前記複数の発音チャンネルのうち発音中で最も番号の大きい発音チャンネルを検索し、当該検索された発音チャンネルの番号を最大チャンネルの番号として更新する第1の更新手段と、
発音イベントに応じて前記複数の発音チャンネルの中から消音している発音チャンネルを検索し、当該検索された発音チャンネルの発音開始を指示する発音指示手段と、
消音イベントに応じて、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき音を発音中の発音チャンネルを検索し、該当する発音チャンネルの消音を指示する消音指示手段と、
前記所定の周期で、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルのうち、発音中の発音チャンネルにて生成される音の制御を指示する修飾指示手段と
を具備することを特徴とする発音チャンネル割当装置。
【0046】
[請求項2]
前記発音指示手段は、前記発音開始された発音チャンネルの番号が、前記第1の更新手段により更新された最大チャンネルの番号を超えた場合に、その新たな発音を割り当てた発音チャンネルの番号を最大チャンネルの番号に更新する第2の更新手段を備えることを特徴とする請求項1記載の発音チャンネル割当装置。
【0047】
[請求項3]
先頭から連続する番号の夫々が付加された複数の発音チャンネルを有する発音チャンネル割当装置に搭載されるコンピュータに、
所定の周期で、前記複数の発音チャンネルのうち発音中で最も番号の大きい発音チャンネルを検索し、当該検索された発音チャンネルの番号を最大チャンネルの番号として更新する第1の更新ステップと、
発音イベントに応じて前記複数の発音チャンネルの中から消音している発音チャンネルを検索し、当該検索された発音チャンネルの発音開始を指示する発音指示ステップと、
消音イベントに応じて、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき音を発音中の発音チャンネルを検索し、該当する発音チャンネルの消音を指示する消音指示ステップと、
前記所定の周期で、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルのうち、発音中の発音チャンネルにて生成される音の制御を指示する修飾指示ステップと
を具備することを特徴とするプログラム。
【0048】
[請求項4]
前記発音指示ステップは、前記発音開始された発音チャンネルの番号が、前記第1の更新ステップにより更新された最大チャンネルの番号を超えた場合に、その新たな発音を割り当てた発音チャンネルの番 号を最大チャンネルの番号に更新する第2の更新ステップを備えることを特徴とする請求項3記載のプログラム。
【符号の説明】
【0049】
10 CPU
11 ROM
12 RAM
13 鍵盤
14 キースキャナ
15 ピッチベンダー
16 A/D変換器
17 表示部
18 音源
19 サウンドシステム
100 電子楽器

【特許請求の範囲】
【請求項1】
先頭から連続する番号の夫々が付加された複数の発音チャンネルと、
所定の周期で、前記複数の発音チャンネルのうち発音中で最も番号の大きい発音チャンネルを検索し、当該検索された発音チャンネルの番号を最大チャンネルの番号として更新する第1の更新手段と、
発音イベントに応じて前記複数の発音チャンネルの中から消音している発音チャンネルを検索し、当該検索された発音チャンネルの発音開始を指示する発音指示手段と、
消音イベントに応じて、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき音を発音中の発音チャンネルを検索し、該当する発音チャンネルの消音を指示する消音指示手段と、
前記所定の周期で、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルのうち、発音中の発音チャンネルにて生成される音の制御を指示する修飾指示手段と
を具備することを特徴とする発音チャンネル割当装置。
【請求項2】
前記発音指示手段は、前記発音開始された発音チャンネルの番号が、前記第1の更新手段により更新された最大チャンネルの番号を超えた場合に、その新たな発音を割り当てた発音チャンネルの番号を最大チャンネルの番号に更新する第2の更新手段を備えることを特徴とする請求項1記載の発音チャンネル割当装置。
【請求項3】
先頭から連続する番号の夫々が付加された複数の発音チャンネルを有する発音チャンネル割当装置に搭載されるコンピュータに、
所定の周期で、前記複数の発音チャンネルのうち発音中で最も番号の大きい発音チャンネルを検索し、当該検索された発音チャンネルの番号を最大チャンネルの番号として更新する第1の更新ステップと、
発音イベントに応じて前記複数の発音チャンネルの中から消音している発音チャンネルを検索し、当該検索された発音チャンネルの発音開始を指示する発音指示ステップと、
消音イベントに応じて、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルの中から当該消音イベントに対応した消音すべき音を発音中の発音チャンネルを検索し、該当する発音チャンネルの消音を指示する消音指示ステップと、
前記所定の周期で、先頭から前記更新された最大チャンネルの番号までの各発音チャンネルのうち、発音中の発音チャンネルにて生成される音の制御を指示する修飾指示ステップと
を具備することを特徴とするプログラム。
【請求項4】
前記発音指示ステップは、前記発音開始された発音チャンネルの番号が、前記第1の更新ステップにより更新された最大チャンネルの番号を超えた場合に、その新たな発音を割り当てた発音チャンネルの番号を最大チャンネルの番号に更新する第2の更新ステップを備えることを特徴とする請求項3記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−83788(P2013−83788A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2011−223585(P2011−223585)
【出願日】平成23年10月11日(2011.10.11)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】