(57)【要約】【課題】  複数のパートから成る楽音信号を合成する音源において、何れかのパートのパート音量が絞られた場合は該パートに属する発音チャンネルを解放することによって音源のリソースを有効利用できるようにするとともに、該パート音量が再び上昇した場合には、発音を再開させる。【解決手段】  電子楽器にノートオンイベントが発生すると、該イベントに応じて音源に発音チャンネルが割り当てられ発音が開始されるとともに、該ノートオンイベントの内容がノートオン情報としてノートオンバッファに記録される。あるパートのパート音量が閾値ＴＨ以上の値から閾値ＴＨ未満の値に変更されると、該パートに係る全発音チャンネルが解放される（ＳＰ９２）。その後、該パート音量が再び該閾値ＴＨ以上に変更されると、ノートオン情報に基づいて音源に発音チャンネルが割り当てられ、発音が再開される（ＳＰ８２）。【選択図】  図６
2006171442.tif 000002
【特許請求の範囲】
【請求項１】
複数のパートの楽音信号を生成する音源を制御する音源の制御方法において、
前記複数のパートのうち何れか一のパートに設定するゲインであるパート音量が変更されると、該パート音量が所定の閾値以上の値から前記閾値未満の値に変更されたか否かを判定する第１のパート音量変更状態判定過程と、
前記第１のパート音量変更状態判定過程における判定結果が肯定的であったことを条件として、前記音源に対して前記一のパートに属する発音チャンネルを解放させる発音停止過程と
を有することを特徴とする音源の制御方法。
【請求項２】
供給されたノートオンイベントの内容をノートオン情報として所定のバッファ領域に記憶する過程と、
前記発音停止過程によって前記一のパートに属する発音チャンネルが解放された後、前記パート音量が前記閾値未満の値から前記閾値以上の値に変更されたか否かを判定する第２のパート音量変更状態判定過程と、
前記第２のパート音量変更状態判定過程における判定結果が肯定的であったことを条件として、前記一のパートに属するノートオン情報を前記バッファ領域から読み出し、該読み出したノートオン情報に対応して前記音源に発音チャンネルを確保し、該発音チャンネルにおける発音を開始させる発音開始過程と、
をさらに有することを特徴とする請求項１記載の音源の制御方法。
【請求項３】
請求項１または２の何れかに記載の音源の制御方法を実行することを特徴とする音源の制御装置。
【請求項４】
請求項１または２の何れかに記載の音源の制御方法を処理装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多数のパートから成る演奏情報に基づく楽音信号の合成に用いて好適な音源の制御方法、音源の制御装置およびプログラムに関する。
【背景技術】
【０００２】
電子オルガン等の大型の電子楽器においては、複数種類の演奏操作子（上鍵盤、下鍵盤、足鍵盤等）が設けられており、一般的にこれらの演奏操作子は種類毎に別々のパートに割り当てられる。また、電子楽器に対して外部から演奏情報を供給することができ、この演奏情報も一般的には複数のパートから構成されている。演奏情報に基づいて生成された楽音信号の音量はボリュームによって調節することができるが、大型の電子楽器においては、パート毎に音量が調節できるとともに、楽音信号全体としての音量も調節できる。このように、各パートに係る楽音信号の音量（パート音量）を調節するボリュームを「パートボリューム」といい、全パートに渡る楽音信号全体の音量（マスタ音量）を調節するボリュームを「マスタボリューム」という。
【０００３】
このように、多数のパートの楽音信号を合成するためには、音源装置において確保すべき発音チャンネル数も必然的に多くなるが、特に廉価な電子楽器においては充分な発音チャンネル数を確保することが困難な場合がある。このため、特許文献１に開示されている技術においては、パート音量の状態に着目して、割り当てるべき発音チャンネルの数を節約する技術が開示されている。すなわち、同文献のものにおいては、音源装置における全発音チャンネルは原則的には自動演奏に係る複数のパート対してのみ割り当てられ、仮に鍵盤を操作してマニュアル演奏を行おうとしても、発音チャンネルが割り当てられず、従ってマニュアル演奏に対応する楽音信号も生成されない。しかし、自動演奏に係るパートのパート音量のうち何れかが「０」（無音）に設定されていると、当該パートに割り当てられていた発音チャンネルがマニュアル演奏用の発音チャンネルとして再割当される。そして、パート音量が「０」に設定されたパートについては、ノートオン信号が供給されたとしても、発音チャンネルは一切割り当てられない。
【０００４】
【特許文献１】特公平５− ５３５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１に開示された技術においては、ノートオン信号が供給されたときに対応するパート音量が「０以外の値」であれば、そのノートオン信号に対して発音チャンネルが割り当てられるが、その後にパート音量が「０」にされたとしても、当該発音チャンネルはアサインされたままの状態になる。これにより、発音される楽音信号に対してなんら寄与しない発音チャンネルが発生し、音源装置のリソースが無駄に消費されるという問題があった。
この発明は上述した事情に鑑みてなされたものであり、音源装置のリソースを有効に利用できる音源の制御方法、音源の制御装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項１記載の音源の制御方法にあっては、複数のパートの楽音信号を生成する音源（１２）を制御する音源の制御方法において、前記複数のパートのうち何れか一のパートに設定するゲインであるパート音量が変更されると、該パート音量が所定の閾値（ＴＨ）以上の値から前記閾値（ＴＨ）未満の値に変更されたか否かを判定する第１のパート音量変更状態判定過程（ＳＰ７０）と、前記第１のパート音量変更状態判定過程（ＳＰ７０）における判定結果が肯定的であったことを条件として、前記音源（１２）に対して前記一のパートに属する発音チャンネルを解放させる発音停止過程（ＳＰ９２）とを有することを特徴とする。
さらに、請求項２記載の構成にあっては、請求項１記載の音源の制御方法において、供給されたノートオンイベントの内容をノートオン情報として所定のバッファ領域に記憶する過程と、前記発音停止過程（ＳＰ９２）によって前記一のパートに属する発音チャンネルが解放された後、前記パート音量が前記閾値（ＴＨ）未満の値から前記閾値（ＴＨ）以上の値に変更されたか否かを判定する第２のパート音量変更状態判定過程（ＳＰ７０）と、前記第２のパート音量変更状態判定過程（ＳＰ７０）における判定結果が肯定的であったことを条件として、前記一のパートに属するノートオン情報を前記バッファ領域から読み出し、該読み出したノートオン情報に対応して前記音源（１２）に発音チャンネルを確保し、該発音チャンネルにおける発音を開始させる発音開始過程と、をさらに有することを特徴とする。
また、請求項３記載の音源の制御装置にあっては、請求項１または２の何れかに記載の音源の制御方法を実行することを特徴とする。
また、請求項４記載のプログラムにあっては、請求項１または２の何れかに記載の音源の制御方法を処理装置に実行させることを特徴とする。
【発明の効果】
【０００７】
このように、本発明によれば、何れかのパート音量が所定の閾値以上の値から該閾値未満の値に変更されると、該パートに属する発音チャンネルを解放させるから、音源装置のリソースを有効に利用することができる。
【発明を実施するための最良の形態】
【０００８】
1．実施例の概要
本実施例においては、なんらかのノートオンイベントが発生すると、当該ノートオンイベントに係る情報が「ノートオン情報」としてメモリ内に記憶される。そして、対応するパート音量の値が適宜参照され、該パートの楽音信号を発音すべき状態になると、該ノートオン情報に基づいて発音チャンネルが確保され、楽音信号が生成される。一方、対応するパート音量の値に応じて該パートの楽音信号を消音すべき状態になると、対応する発音チャンネルは解放されるが、ノートオン情報はそのままメモリ内に残される。これにより、パート音量が再び上昇したときに該ノートオン情報に対応して再び発音チャンネルが割り当てられる。このノートオン情報は、例えばノートオフ信号が供給される等、パート音量に関わらず発音する必要性がなくなったときにメモリ内から消去される。これにより、ノートオン情報がメモリ内に残存している限りにおいては、パートボリュームの操作のみによって対応する楽音信号の発音／消音状態を制御することができる。そして、消音状態においては音源回路から発音チャンネルを確実に解放するため、音源回路のリソースを有効に利用することができる。
【０００９】
2．実施例の構成
まず、本発明の一実施例の電子楽器のハードウェア構成を図１を参照し説明する。
図において、４は通信インタフェースであり、ＭＩＤＩ鍵盤、シーケンサ等の外部機器２との間でＭＩＤＩ信号を入出力する。８は表示回路であり、表示部６に各種情報を表示する。１２は音源回路であり、バス１８を介して供給された演奏情報に基づいて楽音信号を合成し、該楽音信号をサウンドシステム１０を介して発音させる。１４は鍵盤やスイッチ、ボリューム等から成る操作子群であり、その操作状態は検出回路１６を介して検出される。２４はＣＰＵであり、ＲＯＭ２０に格納された制御プログラムに基づいて、バス１８を介して各部を制御する。２２はＲＡＭであり、ＣＰＵ２４によって読み出し／書き込み自在になっており、該制御プログラムに使用される各種データ等を格納する。
【００１０】
上記音源回路１２は、複数の発音チャンネルのデジタルの楽音信号を合成するとともにこれら楽音信号をミキシングするＤＳＰと、ミキシングされた楽音信号をアナログ信号に変換するＤＡコンバータとから構成される。このＤＳＰはマイクロプログラムに基づいて動作するが、このマイクロプログラムによって実現されるアルゴリズムの構成を図２に示す。図２において３０は波形合成部であり、複数の発音チャンネルの楽音信号を合成する。これら楽音信号は、ｎ個の「パート」のうち何れかに分類される。
【００１１】
３２−１〜３２−ｎはパート音量調節部であり、操作子群１４に設けられたパートボリュームの操作量、または通信インタフェース４を介して受信したＭＩＤＩ信号のチャンネルボリュームメッセージに応じて、各パート音量（パート毎のゲインの値）を設定する。なお、チャンネルボリュームメッセージとは、「０」〜「１２７」の範囲の整数の値を有し、「０」は無音、「１２７」は最大音量に対応する。「パート音量」は、このＭＩＤＩ規格のチャンネルボリュームメッセージと同様のデータである。３４は混合部であり、パート毎にゲイン調節された楽音信号をミキシングする。３６はマスタ音量調節部であり、操作子群１４に設けられたマスタボリュームの操作量に応じて、ミキシングされた楽音信号全体のゲインを設定する。３８はＤＡコンバータであり、このゲイン調節された楽音信号をアナログ信号に変換し、サウンドシステム１０に供給する。
【００１２】
3．実施例の動作
3．1．ノートオンイベント
検出回路１６において操作子群１４に含まれる鍵盤の押鍵操作が検出され、または通信インタフェース４を介して外部機器２からノートオン信号が供給されると、ＣＰＵ２４においてノートオンイベントが発生し、図３に示すノートオンイベントルーチンが起動される。図において処理がステップＳＰ２に進むと、当該ノートオンイベントに係るパートが検出される。すなわち、操作子群１４の演奏操作子によってノートオンイベントが発生したのであれば該演奏操作子の種類（上鍵盤、下鍵盤、足鍵盤等）に応じてパートが特定され、外部機器２から供給されたノートオン信号であれば、そのノートオン信号に含まれるＭＩＤＩチャンネルの指定によってパートが特定される。
【００１３】
次に、処理がステップＳＰ４に進むと、検出したパートの、現在設定されているパート音量が検出される。次に、処理がステップＳＰ６に進むと、この検出されたパートのパート音量が所定値の閾値ＴＨ未満であるか否かが判定される。なお、閾値ＴＨには、「０」とみなして差し支えない程度の低い値が予め設定されている。ここで「ＮＯ」と判定されると、処理はステップＳＰ８に進み、音源回路１２における空きチャンネルが検出される。なお、音源回路１２において全ての空きチャンネルが使用されている場合には、トランケート処理（例えば、最も振幅の小さい楽音信号に係る発音チャンネルを強制的に解放する処理）によって、強制的に空きチャンネルが確保される。この点は、後述するステップＳＰ８０の処理においても同様である。
【００１４】
空きチャンネルが検索されると、処理はステップＳＰ１０に進み、この検出した発音チャンネルに対して、発生したノートオンイベントが割り当てられる。これにより、以後、当該発音チャンネルにおいて楽音信号の合成が開始され、該楽音信号はパート音量調節部３２−１〜３２−ｎのうち対応するものと、マスタ音量調節部３６とによって音量調節された後、サウンドシステム１０を介して発音される。次に、処理がステップＳＰ１２に進むと、当該ノートオンイベントに係るノートオン情報が、ＲＡＭ２２の「ノートオンバッファ」なる領域内に記憶される。ここで、ノートオン情報は、対象となるノートオンイベントの内容と、該ノートオンイベントの発生時刻と、該ノートオンイベントが属するパートとから成る情報である。
【００１５】
一方、対応するパート音量が閾値ＴＨ未満であればステップＳＰ６において「ＹＥＳ」と判定され、上記ステップＳＰ８，ＳＰ１０はスキップされ、ステップＳＰ１２のみが実行される。従って、当該ノートオンイベントについては音源回路１２内の発音チャンネルへ割り当てられることなく（発音されることなく）、そのノートオン情報はノートオンバッファ内に記憶されることになる。
【００１６】
3．2．ノートオフイベント
また、検出回路１６において操作子群１４に含まれる演奏操作子の離鍵操作が検出され、または通信インタフェース４を介して外部機器２からノートオフ信号が供給されると、ＣＰＵ２４においてノートオフイベントが発生し、図４に示すノートオフイベントルーチンが起動される。図において処理がステップＳＰ２０に進むと、音源回路１２内でノートオンイベントが割り当てられている発音チャンネルの中から、当該ノートオフイベントに対応する発音チャンネルが検索される。また該発音チャンネルが割り当てられていた場合にはそのチャンネル番号も検出される。ここで、「対応する発音チャンネル」とは、パートおよび音高が該ノートオフイベントに一致するノートオンイベントが割り当てられている発音チャンネルの意味である。
【００１７】
次に、処理がステップＳＰ２２に進むと、このステップＳＰ２０において該当する発音チャンネルが検出されたか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ２４に進み、音源回路１２に対して当該発音チャンネルに係るノートオフ指令が供給される。これにより、当該発音チャンネルにおいては消音処理が実行され、楽音信号が徐々に減衰され、やがて当該発音チャンネルは解放されることになる。一方、ステップＳＰ２２において「ＮＯ」と判定されると、ステップＳＰ２４はスキップされる。何れの場合も次に処理がステップＳＰ２６に進むと、対象となるノートオフイベントの属するパートに設定されている音色種類が検出される。
【００１８】
ここで、「音色種類」について説明しておく。本実施例においては、各パートに対して任意の音色を割り当てることができるが、これらの音色は「減衰音」または「持続音」の何れかの「音色種類」に分類されている。そして、「減衰音」とは、ノートオンが発生した後に次第に減衰して消音する、例えば打楽器音などの音色を指し、「持続音」とは、ノートオンが発生した後にノートオフが発生するまで持続する、例えばオルガンなどの音色を指す。次に、処理がステップＳＰ２８に進むと、検出した音色種類が「減衰音」であるか否かが判定される。音色種類が「持続音」であった場合にはここで「ＮＯ」と判定され、処理はステップＳＰ３０に進む。ここでは、ノートオンバッファから当該ノートオフに対応するノートオンに係るノートオン情報が削除される。一方、音色種類が「減衰音」であった場合はステップＳＰ２８において「ＹＥＳ」と判定され、ステップＳＰ３０の処理はスキップされる。これは、減衰音に係るノートオン情報は、後述するタイマ割込み処理によって自動的に削除されるためである。
【００１９】
3．3．タイマ割込み
本実施例の電子楽器においては、所定時間毎にタイマ割込みが発生する。ここで、「所定時間」はＭＩＤＩクロック毎、またはそれより短い周期に設定するとよい。タイマ割込みが発生すると、図５に示すタイマ割込みルーチンが起動される。図５において処理がステップＳＰ４０に進むと、ノートオンバッファに記録されている全てのノートオン情報が検索される。次に、処理がステップＳＰ４２に進むと、この検索結果に基づいて、なんらかのノートオン情報がノートオンバッファに記録されているか否かが判定される。
【００２０】
ここで「ＮＯ」と判定されると、そのまま本ルーチンの処理が終了する。一方、ステップＳＰ４２において「ＹＥＳ」と判定されると、処理はステップＳＰ４４に進み、ノートオン情報中のパート情報に基づいて、各ノートオン情報に係る音色が調査される。次に、処理がステップＳＰ４６に進むと、これら調査された音色の中から、減衰音の音色種類に属するものが検索される。次に、処理がステップＳＰ４８に進むと、ステップＳＰ４６の検索結果に基づいて、該当するノートオン情報（すなわち減衰音に係るノートオン情報）がノートオンバッファ中に存在するか否かが判定される。「ＮＯ」と判定されると、そのまま本ルーチンの処理が終了する。
【００２１】
一方、ステップＳＰ４８において「ＹＥＳ」と判定されると、処理はステップＳＰ５０に進み、検索されたノートオン情報の数が変数ｍに代入される。また、以降の処理において、この検索されたノートオン情報をＮＯＮ[k] （ｋ＝１〜ｍ）と表記する。次に処理がステップＳＰ５２に進むと、ノートオン情報ＮＯＮ[m] の音色に対する減衰時間がＲＯＭ２０から読み出される。なお、「減衰時間」とは、減衰音に分類される各音色毎に予め定義された時間であり、その音色のノートオンが発生した後に楽音信号の振幅が「０とみなし得る程度の低いレベル」まで減衰するまでの最大時間である。
【００２２】
次に、処理がステップＳＰ５４に進むと、ノートオン情報ＮＯＮ[m] の、ノートオンの継続時間が計算により求められる。ここで「継続時間」とは、当該ノートオン情報に係るノートオンイベントが発生した後の経過時間であり、具体的には、現在時刻から該ノートオンイベントの発生時刻（これはノートオン情報に含まれる）を減算することによって求められる。次に、処理がステップＳＰ５６に進むと、継続時間が減衰時間を超えているか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ５８に進み、ノートオンバッファからノートオン情報ＮＯＮ[m] に関するノートオン情報が削除される。すなわち、このノートオン情報に対応して発音された楽音信号は、「０とみなし得る程度の低いレベル」まで既に減衰している筈であるから、ノートオン情報を削除しても差し支えないのである。
【００２３】
一方、ステップＳＰ５６において「ＮＯ」と判定されると、ステップＳＰ５８はスキップされる。次に、処理がステップＳＰ６０に進むと、変数ｍが「１」だけデクリメントされる。次に、処理がステップＳＰ６２に進むと、変数ｍは「０」になったか否かが判定される。ここで「ＮＯ」と判定されると、処理はステップＳＰ５２に戻り、新たな変数ｍに対応するノートオン情報ＮＯＮ[m] に対して、同様の処理が繰り返される。そして、ステップＳＰ６０において変数ｍが「０」になった場合には、上記ステップＳＰ４８において検出された全てのノートオン情報に対してステップＳＰ５２〜ＳＰ６０の処理が実行されたことになる。かかる場合はステップＳＰ６２において「ＹＥＳ」と判定され、本ルーチンの処理が終了する。
【００２４】
3．4．パート音量変更
3．4．1．閾値ＴＨに対する大小関係に変更が無かった場合
操作子群１４中の何れかのパートボリュームの操作が検出され、または外部機器２からチャンネルボリュームメッセージが供給されると、その操作やメッセージによって音量が変更されるべきパートを処理の対象（対象パート）として図６に示すパート音量変更イベントルーチンが起動される。図６において処理がステップＳＰ７０に進むと、パート音量の変更態様に基づいて処理が分岐される。まず、変更前後のパート音量と閾値ＴＨとの大小関係に変更が無かった場合、すなわち変更前後のパート音量が共に閾値ＴＨ未満であった場合、あるいは変更前後のパート音量が共に閾値ＴＨ以上であった場合には、処理はステップＳＰ９４に進む。ここでは、パート音量調節部３２−１〜３２−ｎのうち対応するもののパート音量が変更され、処理が終了する。これにより、当該パートの楽音信号の音量は、変更後のパート音量に基づいて増減されることになる。
【００２５】
3．4．2．閾値ＴＨ未満から閾値ＴＨ以上に変更された場合
また、変更前のパート音量が閾値ＴＨ未満であって、このパート音量が閾値ＴＨ以上になるように変更された場合は、処理はステップＳＰ７２に進む。ここでは、ノートオンバッファの中から当該パートに属するノートオン情報が検索される。次に、処理がステップＳＰ７４に進むと、該ステップＳＰ７２の処理において該当するノートオン情報が検索されたか否かが判定される。ここで「ＮＯ」と判定されると、処理はステップＳＰ９４に進み、上述したように変更後のパート音量がパート音量調節部３２−１〜３２−ｎのうち対応するものに反映される。
【００２６】
一方、ステップＳＰ７４において「ＹＥＳ」と判定されると、処理はステップＳＰ７８に進み、検索されたノートオン情報の数が変数ｍに代入される。次に、処理がステップＳＰ８０に進むと、音源回路１２における空きチャンネルが検出される。なお、上述したように空きチャンネルが存在しなかった場合には、トランケート処理によって強制的に空きチャンネルが確保される。次に、処理がステップＳＰ８２に進むと、検出された空きチャンネルに対してノートオン情報ＮＯＮ[m] が割り当てられる。これにより、以後、当該発音チャンネルにおいて楽音信号の合成が開始され、該楽音信号はパート音量調節部３２−１〜３２−ｎのうち対応するものと、マスタ音量調節部３６とによって音量調節された後、サウンドシステム１０を介して発音される。
【００２７】
次に、処理がステップＳＰ８４に進むと、変数ｍが「１」だけデクリメントされる。次に、処理がステップＳＰ８６に進むと、変数ｍは「０」になったか否かが判定される。ここで「ＮＯ」と判定されると、処理はステップＳＰ８０に戻り、新たな変数ｍに対応するノートオン情報ＮＯＮ[m] に対して、同様に発音チャンネルが割り当てる処理が繰り返される。そして、ステップＳＰ８４において変数ｍが「０」になった場合には、ステップＳＰ７４において検出された全てのノートオン情報に対してステップＳＰ８０〜ＳＰ８４の処理が実行され、これらノートオン情報に基づいて音源回路１２における発音処理が開始されたことになる。かかる場合はステップＳＰ８６において「ＹＥＳ」と判定され、ステップＳＰ９４において変更後のパート音量がパート音量調節部３２−１〜３２−ｎのうち対応するものに反映される。
【００２８】
3．4．3．閾値ＴＨ以上から閾値ＴＨ未満に変更された場合
また、変更前のパート音量が閾値ＴＨ以上であって、このパート音量が閾値ＴＨ未満になるように変更された場合は、処理はステップＳＰ８８に進む。ここでは、音源回路１２において当該パートに属するノートオンイベントに係る発音チャンネルが検索される。次に、処理がステップＳＰ９０に進むと、該当する発音チャンネルが検出されたか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ９２に進み、検出した全ての発音チャンネルに対してノートオフ指令が供給される。
【００２９】
これにより、これら全ての発音チャンネルにおいては消音処理が実行され、楽音信号が徐々に減衰され、やがて当該発音チャンネルは解放されることになる。一方、ステップＳＰ９０において「ＮＯ」と判定されると、ステップＳＰ９２はスキップされる。何れの場合も次に処理がステップＳＰ９４に進むと、変更後のパート音量がパート音量調節部３２−１〜３２−ｎのうち対応するものに反映される。但し、検出された発音チャンネルが解放されたとしても、その発音チャンネルに割り当てられていたノートオンイベントのノートオン情報は、ノートオンバッファ内に引き続き残存するから、パート音量が再び閾値ＴＨ以上にされると、上記ステップＳＰ７２〜ＳＰ８６の処理により、楽音信号の発音が再開されるのである。
【００３０】
4．変形例
本発明は上述した実施例に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施例においては、タイマ割込みルーチン（図５）において、各減衰音に係るノートオン情報の継続時間が減衰時間を超えているか否かが判定され、その結果に基づいてノートオン情報が削除された。しかし、かかる処理はタイマ割込み処理中で実行する必要は必ずしもなく、例えばパート音量変更イベントルーチン（図６）においてステップＳＰ７２の直前に実行するようにしてもよい。要するに、パート音量が閾値ＴＨ未満から閾値ＴＨ以上に変更され、対応するノートオン情報に基づいて発音チャンネルを割り当てる際に、継続時間が減衰時間を超えているノートオン情報に対しては発音チャンネルを割り当てないようにすればよい。
【００３１】
(2)上記実施例のノートオフイベントルーチン（図４）においては、減衰音のノートオフイベントが発生した場合であっても対応するノートオン情報は削除されなかった（ＳＰ２８）。しかし、減衰音に対しても、ノートオフイベントが発生したときにノートオン情報を削除するようにしてもよい。かかる場合には、ノートオフイベント発生タイミング、または継続時間が減衰時間を超えたタイミングのうち何れか早い方において、該ノートオン情報が削除されることになる。
【００３２】
(3)上記実施例のタイマ割込みルーチン（図５）のステップＳＰ５４においては、現在時刻からノートオンイベントの発生時刻を減算することによって経過時間を求めたが、現在時刻からノートオフイベントの発生時刻を減算することによって経過時間を求めても良い。かかる計算を行うためには、上記ノートオンバッファと同様にＲＡＭ２２内にノートオフバッファを確保し、ノートオフイベントが発生すると、その内容と発生時刻とをノートオフ情報として該ノートオフバッファに記憶するようにするとよい。
【００３３】
(4)上記実施例においては、電子楽器上で動作するプログラムによって各種処理を行ったが、このプログラムのみをＣＤ−ＲＯＭ、フレキシブルディスク等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施例の電子楽器のブロック図である。
【図２】音源回路１２におけるアルゴリズムのブロック図である。
【図３】ノートオンイベントルーチンのフローチャートである。
【図４】ノートオフイベントルーチンのフローチャートである。
【図５】タイマ割込みルーチンのフローチャートである。
【図６】パート音量変更イベントルーチンのフローチャートである。
【符号の説明】
【００３５】
２：外部機器、４：通信インタフェース、６：表示部、８：表示回路、１０：サウンドシステム、１２：音源回路、１４：操作子群、１６：検出回路、１８：バス、２０：ＲＯＭ、２２：ＲＡＭ、２４：ＣＰＵ、３０：波形合成部、３２−１〜３２−ｎ：パート音量調節部、３４：混合部、３６：マスタ音量調節部、３８：ＤＡコンバータ。
【図１】
2006171442.tif 000003
【図２】
2006171442.tif 000004
【図３】
2006171442.tif 000005
【図４】
2006171442.tif 000006
【図５】
2006171442.tif 000007
【図６】
2006171442.tif 000008