(57)【特許請求の範囲】
【請求項１】
サンプリング周期内に時分割で夫々楽音波形を出力する複数の発音チャンネルと、
これら発音チャンネルそれぞれに設けられ、当該各発音チャンネルから出力される楽音波形に対して、異なる種類のエフェクト毎に当該楽音波形の減衰量を設定する設定手段と、
サンプリング周期内に時分割で入力される複数の楽音波形それぞれに対して、異なる種類のエフェクトを並列的に付加するエフェクト処理を施す複数のエフェクトチャンネルと、
これらエフェクトチャンネルにて、前記設定手段にて設定された減衰量に基づいて減衰された各楽音波形に対してエフェクト処理を施した場合に要する動作時間の総和が、波形サンプリング周期を超えるか否かを判定する判定手段と、
この判定手段にてサンプリング周期を超えないと判断された場合は、前記減衰された各楽音波形を前記複数のエフェクトチャンネルに入力させ、サンプリング周期を超えたと判断された場合は、前記楽音波形に対して割り当てられたエフェクトのうち、前記減衰された各楽音波形の総和が最も小さい種類のエフェクト処理を中止させるように前記エフェクトチャンネルを制御する割当て制御手段を具備することを特徴とする効果付加装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子楽器等に用いて好適な効果付加装置に関する。
【０００２】
【従来の技術】
従来より、電子楽器等の音源から供給される楽音波形に対してリバーブやディレイ等の各種エフェクト
（効果）を付加して効果音を発生する効果付加装置が知られている。
近年、この種の装置では、音源のマルチ・ティンバー化に伴い、音源側が複数同時発音する各音色の楽音波形について、複数種のエフェクトを共通に付加したり、あるいは音色毎に異なるエフェクトを付加し得るよう、高速に波形処理するＤＳＰ（デジタル・シグナル・プロセッサ）にて構成される場合が多い。
【０００３】
【発明が解決しようとする課題】
ところで、ＤＳＰにて構成される従来の効果付加装置では、ＤＳＰの処理能力に応じて同時に付加し得るエフェクトの種類が決ってしまう。つまり、従来では、各音色毎に割り当てるエフェクトは動作中に変更し得ず、固定的に割り当てる形態である為、音源の各発音チャンネルにそれぞれ割り当てられる各エフェクト処理に要するＤＳＰの演算時間が、楽音波形の１サンプリング周期を超えてしまうと、リアルタイムな効果付加を行うことができず、この結果、同時に付加し得るエフェクトの種類が制限される訳である。
この為、例えば、「コーラス」と「ディストーション」とを同時に効果付加し得ない制限があるような場合、ストリング音に「コーラス」をかけつつ、ギター音に「ディストーション」をかけることができない等、効果態様に制約が出てくるという問題が生じている。
【０００４】
そこで本発明は、このような事情に鑑みてなされたもので、制約なく多種多様な効果態様を実現することができる効果付加装置を提供することを目的としている。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の発明では、サンプリング周期内に時分割で夫々楽音波形を出力する複数の発音チャンネルと、これら発音チャンネルそれぞれに設けられ、当該各発音チャンネルから出力される楽音波形に対して、異なる種類のエフェクト毎に当該楽音波形の減衰量を設定する設定手段と、サンプリング周期内に時分割で入力される複数の楽音波形それぞれに対して、異なる種類のエフェクトを並列的に付加するエフェクト処理を施す複数のエフェクトチャンネルと、これらエフェクトチャンネルにて、前記設定手段にて設定された減衰量に基づいて減衰された各楽音波形に対してエフェクト処理を施した場合に要する動作時間の総和が、波形サンプリング周期を超えるか否かを判定する判定手段と、この判定手段にてサンプリング周期を超えないと判断された場合は、前記減衰された各楽音波形を前記複数のエフェクトチャンネルに入力させ、サンプリング周期を超えたと判断された場合は、前記楽音波形に対して割り当てられたエフェクトのうち、前記減衰された各楽音波形の総和が最も小さい種類のエフェクト処理を中止させるように前記エフェクトチャンネルを制御する割当て制御手段を具備することを特徴とする。
【００１０】
本発明では、時分割入力される複数の楽音波形について、それぞれ異なる種類のエフェクトを並列的に付加するエフェクト処理に要する動作時間が、サンプリング周期を超える場合は、前記複数の楽音波形が入力されるに際して夫々に設定された減衰量により減衰された楽音波形の総和が最も小さい種類のエフェクト処理を中止させるので、見かけ上、処理可能なエフェクト種類が増加し、これにより同時に付加し得るエフェクト種類が制限されずに、多種多様な効果態様を実現することが可能になる。
【００１１】
【発明の実施の形態】
本発明による効果付加装置は、周知の電子楽器やパーソナルコンピュータを用いたＤＴＭ（デスク・トップ・ミュージック）装置、あるいは音源を搭載する各種アミューズメント機器などに適用され得る。以下では、本発明の実施の形態である効果付加装置を実施例として図面を参照して説明する。
【００１２】
Ａ．実施例の構成
図１は、本発明の一実施例による効果付加装置の機能構成を示すブロック図である。なお、この図に示す構成はＤＳＰが実行するマイクロプログラム（アルゴリズム）にて具現する機能をブロック図として表現したものである。
さて、図１において、ＥＡ−１〜ＥＡ−Ｎは音源側の各発音チャンネルＴＧＣ１〜ＴＧＣｎに各々対応して設けられるエフェクトアサイナである。エフェクトアサイナＥＡは、図２に図示するように、制御信号ＳＣに応じて開閉制御されるスイッチＳＷと制御信号ＡＴＣに応じてその減衰量が制御されるアッテネータＡＴＴとを直列接続してなる回路を、後述するエフェクトチャンネルＥＣ−１〜ＥＣ−８に各々対応させてパラレル配列したものであって、対応する発音チャンネルＴＧＣから供給される楽音波形Ｗｉｎを、上記制御信号ＳＣ，ＡＴＣに応じて出力端Ｗｏｕｔ１〜Ｗｏｕｔ８に供給する。
【００１３】
エフェクトチャンネルＥＣ１〜ＥＣ８は、各エフェクトアサイナＥＡ−１〜ＥＡ−Ｎを介してアサインされる楽音波形Ｗｉｎに対してそれぞれ独立したエフェクト
（効果）を付加するチャンネルである。これらエフェクトチャンネルＥＣは、楽音波形Ｗｉｎの１サンプリング周期以内に、各々が独立して異なるエフェクトを並列的に時分割処理する。
ここで、エフェクトチャンネルＥＣの動作タイミングについて図３を参照して説明しておく。図３に図示する一例は、エフェクトチャンネルＥＣ１〜ＥＣ４が並列的に時分割処理される場合を図示したものである。この図において、各エフェクトチャンネルＥＣ１〜ＥＣ４の占有時間が異なるのは、それぞれ処理するエフェクト種類が異なることに起因する。そして、これら占有時間の総和が１サンプリング周期以内に収まれば、各エフェクトチャンネルＥＣ１〜ＥＣ４において処理される各エフェクトが同時に付加し得ることになる。
【００１４】
さて、再び図１に戻り、実施例の構成について説明を続ける。図１において、ＣＵは上述したエフェクトアサイナＥＡ−１〜ＥＡ−Ｎに対して、制御信号ＳＣ，ＡＴＣを供給する制御部である。
つまり、この制御部ＣＵは、どのエフェクトチャンネルＥＣに対して、どの程度の量の楽音波形Ｗｉｎを割り当てるかを、各発音チャンネルＴＧＣ１〜ＴＧＣｎからの入力状況に応じて動的に制御する。
ここで、図４〜図５を参照して制御部ＣＵが行う動的割り当て制御について述べておく。いま例えば、発音チャンネルＴＧＣ１〜ＴＧＣ６の各音色に割り当てられるエフェクトチャンネルＥＣを以下の通りに設定しているとする。
【００１５】
発音チャンネルＴＧＣ１（ピアノ）      →エフェクトチャンネルＥＣ１
発音チャンネルＴＧＣ２（ベース）      →エフェクトチャンネルＥＣ１
発音チャンネルＴＧＣ３（ドラム）      →エフェクトチャンネルＥＣ２
発音チャンネルＴＧＣ４（ストリングス）→エフェクトチャンネルＥＣ５
発音チャンネルＴＧＣ５（ギター）      →エフェクトチャンネルＥＣ３
発音チャンネルＴＧＣ６（フルート）    →エフェクトチャンネルＥＣ４
【００１６】
そして、各エフェクトチャンネルＥＣ１〜ＥＣ５に割り当てられるエフェクト種類と、そのエフェクト実行に必要なクロック数は、次のようになっている。
エフェクトチャンネルＥＣ１  →リバーブ        （３００クロック）
エフェクトチャンネルＥＣ２  →ゲートリバーブ  （２００クロック）
エフェクトチャンネルＥＣ３  →ディストーション（１５０クロック）
エフェクトチャンネルＥＣ４  →ディレイ        （２００クロック）
エフェクトチャンネルＥＣ５  →コーラス        （３００クロック）
【００１７】
さて、上記エフェクトチャンネルＥＣ１〜ＥＣ５のそれぞれを独立して同時に動作させる場合を想定すると、その占有時間の総和は１１５０クロックとなり、１サンプリング周期当り演算可能なクロック数が１０２４クロックだとすると、これを上回ってしまい、この為、これらエフェクトを同時に付加することが叶わなくなる。
そこで、制御部ＣＵでは、発音チャンネルＴＧＣ６のフルート音が入力されていない時には、エフェクトチャンネルＥＣ４（ディレイ）に対しての動作割り当てを止め、エフェクトチャンネルＥＣ１，ＥＣ２，ＥＣ３およびＥＣ５について動作割り当てする。
そうすると、図４に示すように、これらエフェクトチャンネルＥＣ１，ＥＣ２，ＥＣ３およびＥＣ５を同時に動作させても、その占有時間の総和は９５０クロック分となり、１サンプリング周期（１０２４クロック）以内に収まり、この場合、「リバーブ」、「ゲートリバーブ」、「ディストーション」および「コーラス」の各エフェクトを同時付加することができる。
【００１８】
また、一方、発音チャンネルＴＧＣ５のギター音が入力されていない時には、エフェクトチャンネルＥＣ３（ディストーション）に対しての動作割り当てを止め、エフェクトチャンネルＥＣ１，ＥＣ２，ＥＣ４およびＥＣ５について割り当てる。
そうすると、図５に示すように、これらエフェクトチャンネルＥＣ１，ＥＣ２，ＥＣ４およびＥＣ５を同時に動作させても、その占有時間の総和は１０００クロックとなり、この場合も１サンプリング周期（１０２４クロック）以内に収まるので、「リバーブ」、「ゲートリバーブ」、「ディレイ」および「コーラス」の各エフェクトの同時付加が可能になる。
【００１９】
このように、制御部ＣＵでは、各発音チャンネルＴＧＣ１〜ＴＧＣｎからの入力状況に応じて、割り当てるべきエフェクト種類を動的に制御しており、この割り当てに際しては、例えば、以下に示す優先順位に従う。
すなわち、エフェクト処理に要する占有時間が１サンプリング周期を超える時には、
１．入力があるエフェクトチャンネル
２．より多くの発音チャンネルが割り当てられるエフェクトチャンネル
３．より大きな信号レベルの楽音波形Ｗｉｎが入力されるエフェクトチャンネル
の順で、割り当てるべきエフェクトチャンネルを勘案する。つまり、エフェクト動作を止めてもその影響が最も少なくなるよう、利用されている発音チャンネルが少ないエフェクトや、入力レベルの小さいエフェクトの動作を一時的に動作を止めることによって、見かけ上、処理し得るエフェクト種類を増加させているのである。
【００２０】
Ｂ．実施例の動作
次に、図６〜図１１を参照して実施例の動作について説明する。以下に述べる動作は、実際にはＤＳＰアルゴリズムに基づくプログラム処理にて実現されるものであるが、ここでは前述の機能構成に対応させ、制御部ＣＵを動作の主体と見做している。
制御部ＣＵが実行する処理は、１サンプリング周期毎に実行されるメインルーチン、このメインルーチンからコールされるミキシング処理ルーチン、エフェクト割り当て処理ルーチン、効果付加処理ルーチンおよび出力処理ルーチンからなり、これら処理について順番に説明して行く。なお、この動作説明では発音チャンネルＴＧＣ１〜ＴＧＣ１６に対応するエフェクトチャンネルＥＣ１〜ＥＣ８を有するものを想定している。
【００２１】
▲１▼メインルーチンの動作（動作概要）
装置電源が投入されると、制御部ＣＵは図６に示すメインルーチンを１サンプリング周期毎に実行する。メインルーチンが実行されると、先ずステップＳＡ１に処理を進め、音源側の各発音チャンネルＴＧＣ１〜ＴＧＣ１６からそれぞれ供給される楽音波形Ｗｉｎを、各エフェクトチャンネルＥＣ１〜ＥＣ８毎の入力とするミキシング処理を実行する。
次いで、このミキシング処理によって、各エフェクトチャンネルＥＣ１〜ＥＣ８の入力が定まると、ステップＳＡ２に進み、その入力状況に応じて使用するエフェクトチャンネルを決定する効果割り当て処理を実行する。続いて、ステップＳＡ３では、この効果割り当て処理にて決定された各エフェクトを演算して効果付加する効果付加処理を行い、この後、ステップＳＡ４に進み、効果付加された各エフェクトチャンネルの出力を全て加算して最終的な効果音を生成する出力処理を実行する。
【００２２】
▲２▼ミキシング処理ルーチンの動作
次に、図７を参照してミキシング処理ルーチンの動作について説明する。上述したステップＳＡ１を介して本ルーチンが実行されると、制御部ＣＵはステップＳＢ１に処理を進め、まずレジスタｎ，ｍを初期セットする。ここで、レジスタｎはエフェクトチャンネル番号ｎがセットされるレジスタであり、一方、レジスタｍは音源側の発音チャンネル番号ｍがセットされるレジスタである。
次いで、ステップＳＢ２に進むと、各エフェクトチャンネル毎の入力波形値を保持するレジスタＥＣＴＩＮ（ｎ）をゼロリセットしておき、続くステップＳＢ３では、レジスタＳＧＯＵＴ（ｍ）の値にレジスタＥＣＴＤＰＴ（ｎ，ｍ）の値を乗算した結果を上記レジスタＥＣＴＩＮ（ｎ）にストアする。
【００２３】
ここで、レジスタＳＧＯＵＴ（ｍ）には発音チャンネル番号ｍの楽音波形Ｗｉｎがストアされ、レジスタＥＣＴＤＰＴ（ｎ，ｍ）には発音チャンネル番号ｍの楽音波形Ｗｉｎに対してエフェクトチャンネル番号ｎのエフェクトが付加される度合い（効果深さ）がストアされている。
つまり、このレジスタＥＣＴＤＰＴ（ｎ，ｍ）には前述したアッテネータＡＴＴ（図２参照）の減衰量を制御する制御信号ＡＴＣに対応する値が格納されており、この値はユーザー指定の効果態様に応じて予め任意設定されるパラメータである。
【００２４】
次に、ステップＳＢ４では、発音チャンネル番号ｍを１インクリメントして歩進させ、続くステップＳＢ５では、この歩進された発音チャンネル番号ｍが「１７」以上か、つまり、全ての発音チャンネルＴＧＣ１〜ＴＧＣ１６の各楽音波形Ｗｉｎに対してエフェクトチャンネルＥＣ１のエフェクトが付加される度合いを乗算した結果を累算することによって、エフェクトチャンネルＥＣ１への入力波形値を算出し終えた否かを判断する。
そして、エフェクトチャンネルＥＣ１への入力波形値を算出し終えていない時には、ここでの判断結果が「ＮＯ」となり、上記ステップＳＢ３に処理を戻し、全発音チャンネルについての累算が完了するまで上記ステップＳＢ３〜Ｓ５を繰り返す。そして、累算が完了してエフェクトチャンネルＥＣ１への入力波形値が算出されると、上記ステップＳＢ５の判断結果が「ＹＥＳ」となり、次のステップＳＢ６に処理を進める。
【００２５】
次に、ステップＳＢ６に進むと、発音チャンネル番号ｍを「１」にリセットし、続くステップＳＢ７ではエフェクトチャンネル番号ｎを１インクリメントして歩進させる。そして、ステップＳＢ８では、この歩進されたエフェクトチャンネル番号ｎが「９」以上か、つまり、全てのエフェクトチャンネルＥＣ１〜ＥＣ８について入力波形値が算出されたかどうかを判断する。
算出し終えていないと、ここでの判断結果は「ＮＯ」となり、上記ステップＳＢ２に処理を戻し、以後、全てのエフェクトチャンネルＥＣ１〜ＥＣ８について入力波形値を算出し終えるまでステップＳＢ２〜ＳＢ７を繰り返す。そして、算出し終えた時点で、判断結果が「ＹＥＳ」となり、本ルーチンを完了させる。
このように、ミキシング処理ルーチンでは、全ての発音チャンネルＴＧＣ１〜ＴＧＣ１６の各楽音波形Ｗｉｎについて、各エフェクトチャンネル毎の効果付加する度合いを乗算し、それを全て加算することによって、各エフェクトチャンネルＥＣ１〜ＥＣ８にそれぞれ入力される波形値を算出するようにしている。
【００２６】
▲３▼効果割り当て処理ルーチンの動作
次に、図８〜図９を参照して効果割り当て処理ルーチンの動作について説明する。
さて、以上のようにして、各エフェクトチャンネルＥＣ１〜ＥＣ８についての入力波形値が定まると、前述したステップＳＡ２を介して図８に示す効果割り当て処理ルーチンを実行し、ステップＳＣ１に処理を進める。ステップＳＣ１では、レジスタｎ，ｍに格納されるエフェクトチャンネル番号ｎ、発音チャンネル番号ｍをそれぞれ初期値セットし、続くステップＳＣ２ではレジスタＥＣＴＵＳＲ（ｎ）をゼロリセットする。このレジスタＥＣＴＵＳＲ（ｎ）は、エフェクトチャンネル番号ｎを使用する発音チャンネルの数を保持するレジスタである。
【００２７】
次いで、ステップＳＣ３〜ＳＣ８では、各エフェクトチャンネルＥＣ１〜ＥＣ８毎に使用する発音チャンネルの数を、レジスタＥＣＴＳＷ（ｎ，ｍ）の値に基づき見積もる。
すなわち、ステップＳＣ３では、前述したスイッチＳＷ（図２参照）をオンオフ制御する制御信号ＳＣに対応したスイッチ値（「０」でスイッチオフ、「１」でスイッチオンを表わす）をレジスタＥＣＴＳＷ（ｎ，ｍ）から読み出してレジスタＥＣＴＵＳＲ（ｎ）に加算する。なお、このレジスタＥＣＴＳＷ（ｎ，ｍ）にストアされるスイッチ値は、ユーザー指定の効果態様に応じて予め任意設定されるパラメータである。
【００２８】
次に、ステップＳＣ４に進むと、発音チャンネル番号ｍを歩進させ、続くステップＳＣ５ではレジスタＥＣＴＳＷ（ｎ，ｍ）から全発音チャンネル分のスイッチ値を読み出し終えたか否かを判断する。
ここで、読み出しの途中であると、判断結果が「ＮＯ」となり、上記ステップＳＣ３に処理を戻し、以後、全発音チャンネル分のスイッチ値を読み出し終えるまでステップＳＣ３〜ＳＣ５を繰り返してレジスタＥＣＴＵＳＲ（ｎ）にスイッチ値を累算して行く。そして、読み出し終えた時に判断結果が「ＹＥＳ」となり、次のステップＳＣ６に処理を進める。
【００２９】
ステップＳＣ６では、発音チャンネル番号ｍを「１」にリセットし、続くステップＳＣ７ではエフェクトチャンネル番号ｎを１インクリメントして歩進させる。そして、ステップＳＣ８では、全エフェクトチャンネルＥＣ１〜ＥＣ８について、それぞれ使用する発音チャンネルの数を見積もり終えたか否かを判断し、その途中であれば、判断結果が「ＮＯ」となり、上記ステップＳＣ３に処理を戻すが、各エフェクトチャンネルＥＣ１〜ＥＣ８毎に、使用する発音チャンネルの数を算出し終えたら、判断結果が「ＹＥＳ」となり、図９に示すステップＳＣ９に処理を進める。
【００３０】
こうして、各エフェクトチャンネルＥＣ１〜ＥＣ８毎に、それぞれ使用する発音チャンネルの数が見積もられると、ステップＳＣ９〜ＳＣ１３を経て、１サンプリング周期当りに要する処理クロック数を算出する。
まず、ステップＳＣ９では、エフェクトチャンネル番号ｎを「１」にリセットする一方、クロック累算値が格納されるレジスタＴＣＬＫをゼロリセットしておく。次に、ステップＳＣ１０に進むと、エフェクトチャンネル番号ｎに対応してレジスタＥＣＴＵＳＲ（ｎ）から読み出される、発音チャンネル数が「０」か否か、つまり、エフェクトチャンネル番号ｎを使う発音チャンネルの有無を判断する。
【００３１】
ここで、エフェクトチャンネル番号ｎを使う発音チャンネルが有る場合には、レジスタＥＣＴＵＳＲ（ｎ）の値は「０」ではないので、判断結果が「ＮＯ」となり、次のステップＳＣ１１に処理を進める。ステップＳＣ１１では、レジスタＥＣＴＣＬＫ（ｎ）に格納される１サンプリング周期当りに要する処理クロック数を読み出してレジスタＴＣＬＫに加算して次のステップＳＣ１２に進む。
なお、このレジスタＥＣＴＣＬＫ（ｎ）にストアされる処理クロック数は、エフェクトチャンネル番号ｎに割り当てられるエフェクト種類に対応した規定値である。
【００３２】
一方、エフェクトチャンネル番号ｎを使う発音チャンネルが無い場合には、レジスタＥＣＴＵＳＲ（ｎ）の値が「０」となるので、判断結果が「ＹＥＳ」となり、ステップＳＣ１２に処理を進める。ステップＳＣ１２では、エフェクトチャンネル番号ｎを１インクリメントして歩進させ、続くステップＳＣ１３では、この歩進されたエフェクトチャンネル番号ｎが「９」以上、つまり、全てのエフェクトチャンネルＥＣ１〜ＥＣ８の処理クロック数を累算し終えたかどうかを判断する。そして、累算の途中であれば、判断結果が「ＮＯ」となり、上記ステップＳＣ１０に処理を戻してステップＳＣ１０〜ＳＣ１２を繰り返すが、クロック累算値が算出されると、判断結果が「ＹＥＳ」となり、ステップＳＣ１４に処理を進める。
【００３３】
ステップＳＣ１４では、クロック累算値がレジスタＭＡＸＣＬＫに格納される最大クロック数を超過したか否かを判断する。このレジスタＭＡＸＣＬＫに格納される最大クロック数とは、ＤＳＰにおいて１サンプリング周期当り演算可能なクロック数であり、例えば、前述した一例（図４および図５参照）の場合、１０２４クロックである。
つまり、使用される複数のエフェクトチャンネルＥＣをそれぞれ独立して同時に動作した場合の占有時間の総和（クロック累算値）が、１サンプリング周期当り演算可能なクロック数を超過しているかどうかを判断し、超過していない時には、判断結果が「ＮＯ」となり、この場合、使用される複数のエフェクトチャンネルＥＣの全てがそれぞれ独立して同時に動作し得るから、何も処理せずに本ルーチンを完了させる。
【００３４】
これに対し、超過した時には、上記ステップＳＣ１４の判断結果が「ＹＥＳ」となり、ステップＳＣ１５に進み、前述したレジスタＥＣＴＤＰＴ（ｎ，ｍ）からエフェクトチャンネル番号ｎ毎に、各発音チャンネル番号ｍ順に効果付加する度合い（効果深さ）を読み出してその総和を算出し、その総和のうちで最小の値をとるエフェクトチャンネル番号ｎを求める。つまり、エフェクト動作を止めた時に効果音への影響が最も少ないエフェクトチャンネル番号ｎを探し出すのである。
そして、ステップＳＣ１６では、こうして求めたエフェクトチャンネル番号ｎに対応するレジスタＥＣＴＵＳＲ（ｎ）に「０」をセットして、対応するエフェクトチャンネルＥＣｎの使用を停止させてステップＳＣ９に処理を戻す。以後、１サンプリング周期当り演算可能なクロック数に収まる迄、上述したステップＳＣ９〜ＳＣ１６の処理を繰り返し実行する。これにより、前述した優先順位に基づく動的なエフェクトチャンネル割り当てが行われる訳である。
【００３５】
▲４▼効果付加処理ルーチンの動作
次に、図１０を参照して効果付加処理ルーチンの動作について説明する。上述した効果割り当て処理ルーチンによって、独立して同時に動作する複数のエフェクトチャンネルが定まると、制御部ＣＵは前述したステップＳＡ３（図６参照）を介して本ルーチンを実行し、図１０に示すステップＳＤ１に処理を進める。ステップＳＤ１では、エフェクトチャンネル番号ｎを「１」にセットし、続くステップＳＤ２では、エフェクトチャンネル番号ｎに対応したレジスタＥＣＴＵＳＲ（ｎ）が「０」、すなわち、未使用のエフェクトチャンネルであるかどうかを判断する。
未使用のエフェクトチャンネルならば、判断結果が「ＹＥＳ」となり、後述するステップＳＤ４に処理を進めるが、使用中のエフェクトチャンネルである時には判断結果が「ＮＯ」となり、次のステップＳＤ３に処理を進め、そのエフェクトチャンネルに割り当てられているエフェクト種ＥＣＴ（ｎ）の演算を実行し、その結果をレジスタＥＣＴＯＵＴ（ｎ）にストアした後、ステップＳＤ４に処理を進める。
【００３６】
ステップＳＤ４では、エフェクトチャンネル番号ｎを１インクリメントして歩進させ、続くステップＳＤ５ではこの歩進されたエフェクトチャンネル番号ｎが「９」以上であるか、つまり、全てのエフェクトチャンネルＥＣ１〜ＥＣ８について、対応するエフェクト種ＥＣＴ（ｎ）の演算が完了したかどうかを判断する。
そして、未完である時には、判断結果が「ＮＯ」となり、上述したステップＳＤ２に処理を戻して再びステップＳＤ２〜ＳＤ４を繰り返す。一方、全てのエフェクトチャンネルＥＣ１〜ＥＣ８について、対応するエフェクト種ＥＣＴ（ｎ）の演算が完了したならば、判断結果が「ＹＥＳ」となり、本ルーチンを完了させる。
【００３７】
▲５▼出力処理ルーチンの動作
次に、図１１を参照して出力処理ルーチンの動作について説明する。前述したステップＳＡ４（図６参照）を介して本ルーチンが実行されると、図１１に示すステップＳＥ１に処理を進め、レジスタｎに格納されるエフェクトチャンネル番号ｎを「１」にセットすると共に、効果付加出力値を保持するレジスタＯＵＴをゼロリセットする。
次いで、ステップＳＥ２では、エフェクトチャンネル番号ｎに対応したレジスタＥＣＴＵＳＲ（ｎ）の値が「１」、つまり、使用中のエフェクトチャンネルであるか否かを判断する。そして、使用中のエフェクトチャンネルであれば、ここでの判断結果が「ＹＥＳ」となり、次のステップＳＥ３に処理を進め、上述の効果付加処理ルーチンにてレジスタＥＣＴＯＵＴ（ｎ）にストアされた演算結果を読み出してレジスタＯＵＴに加算する。
【００３８】
一方、未使用のエフェクトチャンネルの場合には、判断結果が「ＮＯ」となり、ステップＳＥ４に処理を進め、エフェクトチャンネル番号ｎを１インクリメントして歩進させ、続くステップＳＥ５ではこの歩進されたエフェクトチャンネル番号ｎが「９」以上であるか、つまり、全てのエフェクトチャンネルＥＣ１〜ＥＣ８について演算結果を累算し終えたかどうかを判断する。
ここで、累算の途中である場合には、判断結果が「ＮＯ」となり、上記ステップＳＥ２に処理を戻す。以後、全てのエフェクトチャンネルＥＣ１〜ＥＣ８について演算結果を累算し終える迄、ステップＳＥ２〜ＳＥ５を繰り返し実行する。そして、演算結果の累算が終わると、レジスタＯＵＴには演算結果を累算してなる効果音が格納され、かつ、ステップＳＥ５の判断結果が「ＹＥＳ」となり、本ルーチンが完了する。
【００３９】
このように、本実施例によれば、エフェクト処理に要する占有時間が１サンプリング周期を超える場合には、各発音チャンネルＴＧＣ１〜ＴＧＣｎからの入力状況に応じて、割り当てるべきエフェクト種類を動的に制御するので、見かけ上、処理可能なエフェクト種類が増加し、この結果、制約なく多種多様な効果態様を実現することが可能になっている。
【００４０】
なお、上述した実施例では、１サンプリング周期毎に、各発音チャンネルＴＧＣ１〜ＴＧＣｎからの入力状況に応じて使用するエフェクト種類を切り替えるが、このエフェクト切り替えに際して突然消音させると、その替り目で波形不連続が生じてノイズ発生に要因になったり、不自然な効果音になるという弊害が生じる虞がある。
そこで、エフェクト切り替えに際しては動作を停止させるエフェクト種類に対応する効果音の音量を徐々に下げる一方、新たに割り当てられたエフェクト種類に対応する効果音の音量を徐々に上げる、所謂、クロスフェード処理を施して上述の弊害を回避するようにしても良い。
【００４１】
また、本実施例では、予め定められた優先順位を勘案して割り当てるべきエフェクト種類を選定する形態としたが、これに替えて、例えば、入力レベルが小さいエフェクトチャンネルや、使用する発音チャンネル数が少ないエフェクトチャンネルについては同じエフェクト種でありながらも処理クロック数が少ない代替エフェクトを割り当てる形態にしても良い。
この代替エフェクトとしては、例えば、フィルタやリバーブ等の複数段の畳み込み演算が必要なエフェクトであれば、その遅延段数や演算ビット数を低減させる等の手法が考えられる。このようにすれば、演算精度を犠牲にするものの、効果音全体としてはより多くの種類のエフェクトを同時付加できる。
【００４２】
なお、上述した実施例では、エフェクトチャンネルの利用頻度などの優先順位に基づき割り当てるべきエフェクト種類を選定したが、これに加えて、発音チャンネルの利用頻度も併せて勘案した動的な割り当てを行う態様としても良い。つまり、音源側の制御と効果付加装置側の制御とを一体化し、発音チャンネル割り当てとエフェクトチャンネル割り当てとを並行して同時に行うとこで、ロスタイム無く効率良い割り当て制御が期待でき、より一層、多種多様な効果付加を実現し得る。
【００４３】
【発明の効果】
請求項１に記載の発明では、時分割入力される複数の楽音波形について、それぞれ異なる種類のエフェクトを並列的に付加するエフェクト処理に要する動作時間が、サンプリング周期を超える場合は、前記複数の楽音波形が入力されるに際して夫々に設定された減衰量により減衰された楽音波形の総和が最も小さい種類のエフェクト処理を中止させるので、見かけ上、処理可能なエフェクト種類が増加し、これにより同時に付加し得るエフェクト種類が制限されずに、多種多様な効果態様を実現することが可能になる。
【図面の簡単な説明】
【図１】本発明による一実施例の機能構成を示すブロック図である。
【図２】エフェクトアサイナＥＡの構成を示すブロック図である。
【図３】エフェクトチャンネルＥＣの動作タイミングの一例を説明するための図である。
【図４】制御部ＣＵが行う動的割り当て制御の一例を説明するための図である。
【図５】制御部ＣＵが行う動的割り当て制御の一例を説明するための図である。
【図６】メインルーチンの動作を示すフローチャートである。
【図７】ミキシング処理ルーチンの動作を示すフローチャートである。
【図８】効果割当て処理ルーチンの動作を示すフローチャートである。
【図９】効果割当て処理ルーチンの動作を示すフローチャートである。
【図１０】効果付加処理ルーチンの動作を示すフローチャートである。
【図１１】出力処理ルーチンの動作を示すフローチャートである。
【符号の説明】
ＥＡ−１〜ＥＡ−Ｎ  エフェクトアサイナ
ＥＣ１〜ＥＣ８  エフェクトチャンネル
ＣＵ  制御部
【図１】
0003620264.tif 000002
【図２】
0003620264.tif 000003
【図３】
0003620264.tif 000004
【図４】
0003620264.tif 000005
【図５】
0003620264.tif 000006
【図６】
0003620264.tif 000007
【図７】
0003620264.tif 000008
【図８】
0003620264.tif 000009
【図９】
0003620264.tif 000010
【図１０】
0003620264.tif 000011
【図１１】
0003620264.tif 000012