(57)【要約】【課題】  音源処理の負荷を軽減して、全体の制御を円滑に行うことができるようにする。【解決手段】  楽音信号に対する各種類の信号処理を行う複数のモジュールプログラムを記憶するプログラムエリアと、各モジュールプログラムによって実行されるデータ群を記憶するワークエリアとが、それぞれ信号処理の種類ごとにグループに分割されているＤＳＰＲＡＭ６に対して、ＣＰＵ１は、ＤＳＰ４に対して、プログラムエリアの各グループごとにモジュールプログラムを転送し、ワークエリアの各グループごとにモジュールプログラムに対応するデータ群を転送する。この場合において、ワークエリアのデータサイズとそのデータ群のデータサイズとの差分を含むアドレス更新命令を転送するモジュールプログラムに付加する。【選択図】  図１
2005215594.tif 000002
【特許請求の範囲】
【請求項１】
楽音信号に対する複数種類の信号処理の中から各種類の信号処理に対応するモジュールプログラムを任意に組み合わせて一連の信号処理を行うアルゴリズムを記憶する第１系統の記憶エリアおよび信号処理された楽音信号のデータ群を記憶する第２系統の記憶エリアを有し、さらに各系統の記憶エリアが信号処理の種類ごとに分割されている複数の分割記憶エリアからなる記憶手段と、
各種類の信号処理のモジュールプログラムによって信号処理されるデータ群を格納する前記第２系統の記憶エリアにおける分割記憶エリアのデータサイズからその格納するデータ群のデータサイズとの差分を含むアドレス更新命令を当該モジュールプログラムに付加して、前記第１系統の記憶エリアにおける当該モジュールプログラムに対応する分割記憶エリアに転送する転送手段と、
入力される楽音信号に対して前記第１系統の記憶エリアにおける複数の分割記憶エリアから所定の順序で読み出した各種類の信号処理のモジュールプログラムを実行する際に、各モジュールプログラムによって信号処理されたデータ群を前記第２系統の記憶エリアにおける対応する分割記憶エリアの先頭アドレスから格納し、当該種類の信号処理が終了したときは、前記対応する分割記憶エリアの最終アドレスおよび当該モジュールプログラムに付加された前記差分を加算した値を次のモジュールプログラムによって信号処理されるデータ群を格納する分割記憶エリアの先頭アドレスとして指定する指定手段と、
を備えた楽音制御装置。
【請求項２】
楽音信号に対する複数種類の信号処理の中から各種類の信号処理に対応するモジュールプログラムを任意に組み合わせて一連の信号処理を行うアルゴリズムを記憶する第１系統の記憶エリアおよび信号処理された楽音信号のデータ群を記憶する第２系統の記憶エリアを有し、さらに各系統の記憶エリアが信号処理の種類ごとに分割されている複数の分割記憶エリアからなる記憶手段と、
各種類の信号処理のモジュールプログラムによって信号処理されるデータ群を格納する前記第２系統の記憶エリアにおける分割記憶エリアのデータサイズを含むアドレス更新命令を当該モジュールプログラムに付加して、前記第１系統の記憶エリアにおける当該モジュールプログラムに対応する分割記憶エリアに転送する転送手段と、
入力される楽音信号に対して前記第１系統の記憶エリアにおける複数の分割記憶エリアから所定の順序で読み出した各種類の信号処理のモジュールプログラムを実行する際に、各モジュールプログラムによって信号処理されたデータ群を前記第２系統の記憶エリアにおける対応する分割記憶エリアの先頭アドレスから格納し、当該種類の信号処理が終了したときは、前記対応する分割記憶エリアの先頭アドレスおよび当該モジュールプログラムに付加されたデータサイズを加算した値を次のモジュールプログラムによって信号処理されるデータ群を格納する分割記憶エリアの先頭アドレスとして指定する指定手段と、
を備えた楽音制御装置。
【請求項３】
楽音信号に対する複数種類の信号処理の中から各種類の信号処理に対応するモジュールプログラムを任意に組み合わせて一連の信号処理を行うアルゴリズムを記憶する第１系統の記憶エリアおよび信号処理された楽音信号のデータ群を記憶する第２系統の記憶エリアを有し、さらに各系統の記憶エリアが信号処理の種類ごとに分割されている複数の分割記憶エリアからなる記憶手段に対して、各種類の信号処理のモジュールプログラムによって信号処理されるデータ群を格納する前記第２系統の記憶エリアにおける分割記憶エリアのデータサイズからその格納するデータ群のデータサイズとの差分を含むアドレス更新命令を当該モジュールプログラムに付加して、前記第１系統の記憶エリアにおける当該モジュールプログラムに対応する分割記憶エリアに転送するステップと、
入力される楽音信号に対して前記第１系統の記憶エリアにおける複数の分割記憶エリアから所定の順序で読み出した各種類の信号処理のモジュールプログラムを実行する際に、各モジュールプログラムによって信号処理されたデータ群を前記第２系統の記憶エリアにおける対応する分割記憶エリアの先頭アドレスから格納し、当該種類の信号処理が終了したときは、前記対応する分割記憶エリアの最終アドレスおよび当該モジュールプログラムに付加された前記差分を加算した値を次のモジュールプログラムによって信号処理されるデータ群を格納する分割記憶エリアの先頭アドレスとして指定するステップと、
を実行する楽音制御処理のプログラム。
【請求項４】
楽音信号に対する複数種類の信号処理の中から各種類の信号処理に対応するモジュールプログラムを任意に組み合わせて一連の信号処理を行うアルゴリズムを記憶する第１系統の記憶エリアおよび信号処理された楽音信号のデータ群を記憶する第２系統の記憶エリアを有し、さらに各系統の記憶エリアが信号処理の種類ごとに分割されている複数の分割記憶エリアからなる記憶手段に対して、各種類の信号処理のモジュールプログラムによって信号処理されるデータ群を格納する前記第２系統の記憶エリアにおける分割記憶エリアのデータサイズを含むアドレス更新命令を当該モジュールプログラムに付加して、前記第１系統の記憶エリアにおける当該モジュールプログラムに対応する分割記憶エリアに転送するステップと、
入力される楽音信号に対して前記第１系統の記憶エリアにおける複数の分割記憶エリアから所定の順序で読み出した各種類の信号処理のモジュールプログラムを実行する際に、各モジュールプログラムによって信号処理されたデータ群を前記第２系統の記憶エリアにおける対応する分割記憶エリアの先頭アドレスから格納し、当該種類の信号処理が終了したときは、前記対応する分割記憶エリアの先頭アドレスおよび当該モジュールプログラムに付加されたデータサイズを加算した値を次のモジュールプログラムによって信号処理されるデータ群を格納する分割記憶エリアの先頭アドレスとして指定するステップと、
を実行する楽音制御処理のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音制御装置および楽音制御処理のプログラムに関し、特に、入力される楽音信号に対して信号処理を行って出力する楽音制御装置および楽音制御処理のプログラムに関するものである。
【背景技術】
【０００２】
近年の電子鍵盤楽器などの楽音制御装置においては、演奏によって入力される楽音信号や内蔵のメモリ又は外部から自動演奏として入力される楽音信号に対して、複数種類の信号処理を行う音楽性の高い音源を構成している。このような音源において、信号処理の中核をなす手段がＤＳＰ（ Digital Signal Processor ）である。通常、ＤＳＰは楽音制御装置全体を制御する制御手段、例えばＣＰＵからの指令に応じて、入力される楽音信号に対して複数種類の信号処理を行う。ＣＰＵは、ＲＯＭなどのメモリにあらかじめ記憶されている複数種類の信号処理アルゴリズムの中から、設定操作によって指定された各種類の信号処理アルゴリズム（これを「モジュールプログラム」又は単に「モジュール」と称している）を組合わせて、各種類の信号処理のためのパラメータデータおよび必要な初期データとともにＤＳＰに転送する。ＤＳＰは、各モジュールプログラムを順に実行して、入力される楽音信号に対する一連の信号処理を行って、発音手段としてのサウンドシステムなどに出力する。
【０００３】
この場合において、ＣＰＵは、各種類のモジュールプログラムによって信号処理された楽音信号のデータ群のデータサイズに対して、各種類の信号処理のグループごとに、そのデータ群を記憶するワークエリアのデータサイズについては、余裕をもたせるために多めに算出する。この算出によって一連の信号処理を行った後のデータ群を記憶するためのワークエリアが分かるので、そのワークエリアを確保する指令をモジュールプログラムとともにＤＳＰに転送する。このようなシステムにおいては、ＣＰＵはデータ群を記憶するためのワークエリアのデータサイズを決定し、ＤＳＰはそのワークエリアのアドレス管理を行う。
【０００４】
ＤＳＰは、データ群を記憶するワークエリアを含むRAMなどの記憶エリアを複数のＤＳＰ資源として指定する。複数のＤＳＰ資源には、入力される楽音信号のデータ群を記憶する記憶エリア、一連の信号処理のための複数のグループのモジュールプログラムを記憶する記憶エリア、一連の信号処理のためのパラメータデータのデータ群の記憶エリア、一連の信号処理によって生成される複数のグループのデータ群を記憶する記憶エリアがあり、さらに、複数のチャンネル数からなる発音チャンネルを割り当てるアサインデータを記憶する記憶エリアなどがある。これらのＤＳＰ資源の中で、少なくともモジュールプログラムのデータ群、および各種類の信号処理によって生成されるデータ群を記憶するための１つ以上のＤＳＰ資源については、複数のグループごとに分割して、グループごとにＤＳＰ資源を独立して管理している。このことにより、あるＤＳＰ資源のグループ内で信号処理の変更を行った場合でも、他のグループのＤＳＰ資源にはその変更の影響が及ばないという利点がある。
【０００５】
しかしながら、グループごとにＤＳＰ資源を独立して管理しているので、各種類の信号処理によって生成されるデータ群を記憶するワークエリアとしてのＤＳＰ資源は、その種類の信号処理を行うモジュールプログラムによってのみ管理が可能である。すなわち、各モジュールプログラムを順に実行して一連の信号処理を行う場合に、あるグループの実行中のモジュールプログラムにとっては、対応するワークエリアが管理可能なすべてのメモリ空間であり、次のグループのモジュールプログラムが管理するワークエリアを管理することはできない。このため、そのグループの実行中のモジュールプログラムが終了したときは、管理しているワークエリアのアドレスを１つインクリメントして次のグループに渡すことになる。ところが、任意のグループにおいて実行中のモジュールプログラムによって信号処理されたデータ群のデータサイズは、それを記憶する同じグループのワークエリアのデータサイズよりも小さいので、モジュールプログラムが終了したときは、ワークエリアに空きエリアが存在することになる。このため、最終アドレスを１つインクリメントしても、次のグループによって管理されるワークエリアの先頭アドレスが指定されない。特に、データ群を記憶するワークエリアの先頭部分に、初期データが記憶されている場合には、当のグループのモジュールプログラムを実行することもできない。
【０００６】
この対策として、ＣＰＵが各グループのモジュールプログラムをＤＳＰに転送する際に、各モジュールプログラムによって信号処理されたデータ群を記憶するワークエリアのデータサイズと、各モジュールプログラムによって実際に信号処理されるデータ群に必要なデータサイズとの差分をモジュールプログラムごとに演算し、その算出した差分をＤＳＰに転送する提案が本願出願人よりなされている。ＤＳＰは各モジュールプログラムの終了の際に、ＣＰＵから転送された差分を最終アドレスに加算することにより、次のグループによって管理されるワークエリアの先頭アドレスを指定することができる。（特許文献１参照）
【特許文献１】２００１−５４５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、最近の電子鍵盤楽器などの楽音制御装置の高級化に伴い、発音チャンネルのチャンネル数も１６チャンネル、３２チャンネル、６４チャンネルというように次第に増加し、各発音チャンネルにおける信号処理アルゴリズムの種類も多くなってきている。このため、ＤＳＰに転送するモジュールプログラムのグループ数も多くなり、各モジュールプログラムのデータ転送ごとに、データ群の転送終了の際に最終アドレスに加算する差分を求めるＣＰＵの演算処理も次第に時間が長くなり、ＣＰＵにかかる音源処理の負荷が大きくなってきている。この結果、ＣＰＵの音源処理のために装置全体の制御に支障をきたすという課題が発生してきた。
本発明は、上記従来の課題を解決するためのものであり、音源処理の負荷を軽減することによって、全体の制御を円滑に行うことができる楽音制御装置および楽音制御処理のプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に記載の楽音制御装置は、楽音信号に対する複数種類の信号処理の中から各種類の信号処理に対応するモジュールプログラムを任意に組み合わせて一連の信号処理を行うアルゴリズムを記憶する第１系統の記憶エリア（実施形態においては、図２のＤＳＰ資源１に相当する）および信号処理された楽音信号のデータ群を記憶する第２系統の記憶エリア（実施形態においては、図２のＤＳＰ資源２に相当する）を有し、さらに各系統の記憶エリアが信号処理の種類ごとに分割されている複数の分割記憶エリア（実施形態においては、図２のＧＲＯＵＰ１〜５に相当する）からなる記憶手段（実施形態においては、図１のＤＳＰＲＡＭ６に相当する）と、各種類の信号処理のモジュールプログラムによって信号処理されるデータ群を格納する第２系統の記憶エリアにおける分割記憶エリアのデータサイズからその格納するデータ群のデータサイズとの差分を含むアドレス更新命令（第１実施形態においては、図３（Ｂ）のアドレス加算命令）を当該モジュールプログラムに付加して、第１系統の記憶エリアにおける当該モジュールプログラムに対応する分割記憶エリアに転送する転送手段（実施形態においては、図１のＣＰＵ１に相当する）と、入力される楽音信号に対して第１系統の記憶エリアにおける複数の分割記憶エリアから所定の順序で読み出した各種類の信号処理のモジュールプログラムを実行する際に、各モジュールプログラムによって信号処理されたデータ群を第２系統の記憶エリアにおける対応する分割記憶エリアの先頭アドレスから格納し、当該種類の信号処理が終了したときは、対応する分割記憶エリアの最終アドレスおよび当該モジュールプログラムに付加された差分を加算した値を次のモジュールプログラムによって信号処理されるデータ群を格納する分割記憶エリアの先頭アドレスとして指定する指定手段（実施形態においては、図１のＤＳＰ４に相当する）と、を備えた構成になっている。
【０００９】
請求項２に記載の楽音制御装置は、楽音信号に対する複数種類の信号処理の中から各種類の信号処理に対応するモジュールプログラムを任意に組み合わせて一連の信号処理を行うアルゴリズムを記憶する第１系統の記憶エリア（実施形態においては、図２のＤＳＰ資源１に相当する）および信号処理された楽音信号のデータ群を記憶する第２系統の記憶エリア（実施形態においては、図２のＤＳＰ資源２に相当する）を有し、さらに各系統の記憶エリアが信号処理の種類ごとに分割されている複数の分割記憶エリア（実施形態においては、図２のＧＲＯＵＰ１〜５に相当する）からなる記憶手段（実施形態においては、図１のＤＳＰＲＡＭ６に相当する）と、各種類の信号処理のモジュールプログラムによって信号処理されるデータ群を格納する第２系統の記憶エリアにおける分割記憶エリアのデータサイズを含むアドレス更新命令を当該モジュールプログラムに付加して、第１系統の記憶エリアにおける当該モジュールプログラムに対応する分割記憶エリアに転送する転送手段（実施形態においては、図１のＣＰＵ１に相当する）と、入力される楽音信号に対して第１系統の記憶エリアにおける複数の分割記憶エリアから所定の順序で読み出した各種類の信号処理のモジュールプログラムを実行する際に、各モジュールプログラムによって信号処理されたデータ群を第２系統の記憶エリアにおける対応する分割記憶エリアの先頭アドレスから格納し、当該種類の信号処理が終了したときは、対応する分割記憶エリアの先頭アドレスおよび当該モジュールプログラムに付加されたデータサイズを加算した値を次のモジュールプログラムによって信号処理されるデータ群を格納する分割記憶エリアの先頭アドレスとして指定する指定手段（実施形態においては、図１のＤＳＰ４に相当する）と、を備えた構成になっている。
【００１０】
請求項３に記載の楽音制御処理のプログラムは、楽音信号に対する複数種類の信号処理の中から各種類の信号処理に対応するモジュールプログラムを任意に組み合わせて一連の信号処理を行うアルゴリズムを記憶する第１系統の記憶エリア（実施形態においては、図２のＤＳＰ資源１に相当する）および信号処理された楽音信号のデータ群を記憶する第２系統の記憶エリア（実施形態においては、図２のＤＳＰ資源２に相当する）を有し、さらに各系統の記憶エリアが信号処理の種類ごとに分割されている複数の分割記憶エリア（実施形態においては、図２のＧＲＯＵＰ１〜５に相当する）からなる記憶手段（実施形態においては、図１のＤＳＰＲＡＭ６に相当する）に対して、各種類の信号処理のモジュールプログラムによって信号処理されるデータ群を格納する前記第２系統の記憶エリアにおける分割記憶エリアのデータサイズからその格納するデータ群のデータサイズとの差分を含むアドレス更新命令（第１実施形態においては、図３（Ｂ）のアドレス加算命令）を当該モジュールプログラムに付加して、前記第１系統の記憶エリアにおける当該モジュールプログラムに対応する分割記憶エリアに転送する処理（実施形態においては、図４のフローチャートに相当する）と、
入力される楽音信号に対して第１系統の記憶エリアにおける複数の分割記憶エリアから所定の順序で読み出した各種類の信号処理のモジュールプログラムを実行する際に、各モジュールプログラムによって信号処理されたデータ群を第２系統の記憶エリアにおける対応する分割記憶エリアの先頭アドレスから格納し、当該種類の信号処理が終了したときは、対応する分割記憶エリアの最終アドレスおよび当該モジュールプログラムに付加された差分を加算した値を次のモジュールプログラムによって信号処理されるデータ群を格納する分割記憶エリアの先頭アドレスとして指定する処理と（実施形態においては、図５のフローチャートに相当する）を実行する。
【００１１】
請求項４に記載の楽音制御処理のプログラムは、楽音信号に対する複数種類の信号処理の中から各種類の信号処理に対応するモジュールプログラムを任意に組み合わせて一連の信号処理を行うアルゴリズムを記憶する第１系統の記憶エリア（実施形態においては、図２のＤＳＰ資源１に相当する）および信号処理された楽音信号のデータ群を記憶する第２系統の記憶エリア（実施形態においては、図２のＤＳＰ資源２に相当する）を有し、さらに各系統の記憶エリアが信号処理の種類ごとに分割されている複数の分割記憶エリア（実施形態においては、図２のＧＲＯＵＰ１〜５に相当する）からなる記憶手段（実施形態においては、図１のＤＳＰＲＡＭ６に相当する）に対して、各種類の信号処理のモジュールプログラムによって信号処理されるデータ群を格納する前記第２系統の記憶エリアにおける分割記憶エリアのデータサイズを含むアドレス更新命令を当該モジュールプログラムに付加して、第１系統の記憶エリアにおける当該モジュールプログラムに対応する分割記憶エリアに転送する処理（実施形態においては、図６のフローチャートに相当する）と、
入力される楽音信号に対して第１系統の記憶エリアにおける複数の分割記憶エリアから所定の順序で読み出した各種類の信号処理のモジュールプログラムを実行する際に、各モジュールプログラムによって信号処理されたデータ群を第２系統の記憶エリアにおける対応する分割記憶エリアの先頭アドレスから格納し、当該種類の信号処理が終了したときは、対応する分割記憶エリアの先頭アドレスおよび当該モジュールプログラムに付加されたデータサイズを加算した値を次のモジュールプログラムによって信号処理されるデータ群を格納する分割記憶エリアの先頭アドレスとして指定する処理（実施形態においては、図７のフローチャートに相当する）とを実行する。
【発明の効果】
【００１２】
本発明によれば、音源処理の負荷を軽減することによって、装置全体の制御を円滑に行うことができるという効果が得られる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明による楽音制御装置の第１、第２および第３実施形態について、図を参照して説明する。
図１は、各実施形態における楽音制御装置のシステム構成を示す概略のブロック図である。ＣＰＵ１は、ＣＰＵＲＯＭ２、ＣＰＵＲＡＭ３、ＤＳＰ４に接続され、これら各部との間でコマンドおよびデータを授受して、この楽音制御装置全体を制御する。ＣＰＵＲＯＭ２は、ＤＳＰ４に転送する楽音信号に対する複数種類の信号処理アルゴリズムを構成する各種類の信号処理に対応するモジュールプログラムを記憶しているとともに、この楽音制御処理を制御するための制御プログラム、および初期データなどを記憶している。各種類の信号処理としては、ビブラート処理、リバーブやエコーなどのエフェクト処理、コーラス処理などがあり、各種類に対応するモジュールプログラムがＣＰＵＲＯＭ２に記憶されている。その詳細な内容については後述する。ＣＰＵ１は、操作によって指定された種類の信号処理に対応するモジュールプログラムをＤＳＰ４に転送する。ＣＰＵＲＡＭ３は、ＣＰＵ１のワークエリアであり、制御に必要な各種のデータ、例えば、演奏データ、音色などの設定データ、ビブラート、リバーブ、エコー、コーラスなどの操作データを一時的に記憶する。
【００１４】
ＤＳＰ４は、ＣＰＵ１、ＤＳＰＲＯＭ５およびＤＳＰＲＡＭ６、サウンドシステム（図示せず）などに接続され、ＣＰＵ１又は入力インタフェースから入力されるデジタルの楽音信号に対して、ＣＰＵ１から転送された信号処理アルゴリズムに基づいて信号処理を行い、複数の発音チャンネルに割り当てて、Ａ／Ｄコンバータ、フィルタ、アンプ、スピーカなどからなるサウンドシステムに出力する。具体的には、ＤＳＰＲＯＭ５に格納されている制御プログラムに基づいて、ＤＳＰＲＡＭ６の複数のモジュールプログラムを順に実行して一連の信号処理を行う。
【００１５】
図２は、複数種類の信号処理に対応するＤＳＰＲＡＭ６の一部の構成を示す図である。この図に示すように、ＤＳＰＲＡＭ６の記憶エリアは、ＣＰＵ１から転送されるモジュールプログラムを記憶するプログラムエリアとしてのＤＳＰ資源１、信号処理したデータ群を記憶するワークＲＡＭすなわちワークエリアとしてのＤＳＰ資源２ないしＤＳＰ資源ｎからなる複数のＤＳＰ資源に分かれている。さらに、それぞれのＤＳＰ資源が信号処理の種類ごとに複数のグループに分割されている。図２の例ではＧＲＯＵＰ１からＧＲＯＵＰ５の５個のグループに分割されている。
【００１６】
次に、本発明の第１実施形態について説明する。
図３は、第１実施形態においてＣＰＵＲＯＭ２に格納されているモジュールプログラムおよびデータ群の構成図である。図３（Ａ）はＤＳＰ４に転送する信号処理アルゴリズムの識別情報であり、Ｇ（本実施例では５）個のグループ毎に決められた、図２のＤＳＰ資源１に対して転送すべき、図３（Ｂ）のモジュールプログラム番号と、ワークエリアのＤＳＰ資源（図２のＤＳＰ資源２〜ＤＳＰ資源ｎ）に対して転送できるデータ群から成る、Ｍ個のデータセットを示している。また、図３（Ｂ）は、図３（Ａ）のモジュールプログラム番号により指定される、信号処理アルゴリズムの各モジュールプログラム（１）ないし（Ｐ）を示している。各モジュールプログラムは、本来のＤＳＰプログラムにアドレス加算命令が付加された構成になっている。
このアドレス加算命令には、モジュールプログラムおよびデータ群を転送するＤＳＰ４側のＤＳＰＲＡＭ６において、各グループにおける確保するワークエリアのデータサイズと、実際に転送したデータ群のデータサイズとの差分のアドレスがあらかじめ含まれている。
【００１７】
そして、モジュールプログラムを指定する変数ｍ、およびグループ番号ｇにより、図３（Ａ）のプログラム番号ＰＲＧ（ｍ，ｇ）に対応して、図３（Ｂ）から選択されたモジュールプログラム（ＰＲＧ（ｍ，ｇ））が、プログラムエリアとしてのＤＳＰ資源１におけるグループ番号ｇのエリアに転送される。一方、データ群の番号をＤＡＴ（ｍ，ｉ）とすると、ｍの値で指定されたモジュールプログラムに対応するデータ群が、ワークエリアとしてのＤＳＰ資源２ないしＤＳＰ資源ｎにおいて、ｉの値で指定されたＤＳＰ資源ｉのグループ番号ｇのエリアに転送される。
【００１８】
次に、ＣＰＵ１からＤＳＰ４へのデータ転送処理の動作について、図４のフローチャートに基づいて説明する。
まず、ＤＳＰ資源を指定する変数ｉ、各ＤＳＰ資源のグループを指定する変数ｇ、およびモジュールプログラムを指定する変数ｍをすべて初期値である「１」にセットする（ステップＡ１）。そして、変数ｉをインクリメントしながら、ステップＡ２ないしステップＡ６のループ処理を繰り返す。なお、説明を簡便にするために、このフローチャートにおいては、ｍ＝１で指定されたモジュールプログラムをグループ１に転送し、ｍ＝２で指定されたモジュールプログラムをグループ２に転送する。すなわち、ｍの値で指定されたモジュールプログラムを、ｇ＝ｍのグループに転送する構成を採っている。
【００１９】
ループ処理では、変数ｉで指定されたＤＳＰ資源ｉがプログラムエリアであるか又はワークエリアであるかを判別する（ステップＡ２）。プログラムエリアである場合には、番号ＰＲＧ（ｍ，ｇ）のモジュールプログラムをプログラムエリア（ｇ，ｉ）に転送する（ステップＡ３）。一方、ＤＳＰ資源ｉがワークエリアである場合には、ＤＡＴ（ｍ，ｉ）のデータ群をワークエリア（ｇ，ｉ）に転送する（ステップＡ４）。モジュールプログラム又はデータ群を対応するエリア（ｇ，ｉ）に転送した後は、変数ｉの値をインクリメントする（ステップＡ５）。そして、ｉの値が最後のＤＳＰ資源を示す値ｎを超えたか否かを判別する（ステップＡ６）。ｉの値がｎ以下である場合には、ステップＡ２に移行して、モジュールプログラム又はデータ群を転送するループ処理を繰り返す。
【００２０】
ステップＡ６においてｉの値がｎを超えたときは、再び、変数ｉの値を「１」にセットし（ステップＡ７）、変数ｇおよび変数ｍをインクリメントして（ステップＡ８）、次のグループを指定する。このときｇおよびｍの値が最大値（ＧおよびＭ）を超えたか否かを判別し（ステップＡ９）、超えていない場合には、ステップＡ２に移行して上記のループ処理を実行する。ｇおよびｍの値が最大値を超えたときは、このデータ転送処理のフローを終了する。
【００２１】
次に、ＤＳＰ側の信号処理の動作について、図５のフローチャートに基づいて説明する。この信号処理において、ＤＳＰ４は、ＤＳＰ資源１に記憶された複数のモジュールプログラムを順に実行して、入力されるデジタル楽音信号に対する一連の信号処理を行う。
まず、ＤＳＰＲＡＭ６のグループを指定する変数ｇ、モジュールプログラムを指定する変数ｍ、ワークエリアのアドレスを指定するＡＤをすべて「１」にセットする（ステップＢ１）。次に、変数ｇおよび変数ｍをインクリメントしながら、ステップＢ２ないしステップＢ１０のループ処理を繰り返す。
【００２２】
このループ処理の最初においては、モジュールプログラム（ｍ）を実行する（ステップＢ２）。次に、ＤＳＰ資源ｉ（ｉ≧２）のワークエリア（ｇ，ｉ）が指定されているか否かを判別する（ステップＢ３）。ワークエリア（ｇ，ｉ）が指定されている場合には、ＡＤのアドレスにモジュールプログラムによって実行したデータをストアして（ステップＢ４）、ＡＤのアドレスをインクリメントする（ステップＢ５）。そして、データストアが終了したか否かを判別する（ステップＢ６）。データストアが終了していない場合には、ステップＢ４に移行して、データストアおよびアドレスインクリメントを続行する。
【００２３】
ステップＢ６においてデータストアが終了したときは、再びステップＢ３に移行して、ワークエリア（ｇ，ｉ）が指定されているか否かを判別する。ワークエリア（ｇ，ｉ）が指定されている場合には、次のデータストア処理を行うために、ステップＢ３ないしステップＢ６の処理を繰り返す。
ステップＢ３においてワークエリア（ｇ，ｉ）が指定されていない場合には、モジュールプログラムの最終ステップに達したか否かを判別する（ステップＢ７）。最終ステップに達していない場合、例えば、データストア以外のモジュールプログラム処理の場合には、ステップＢ２に移行して、ステップＢ３、ステップＢ７のループを繰り返して、データストア以外の処理を続行する。
【００２４】
ステップＢ７において、モジュールプログラムの最終ステップに達した場合には、そのモジュールプログラムに付加されたアドレス加算命令によって、そのグループのアドレスの差分（ｇ）を加算してＡＤのアドレスを更新する（ステップＢ８）。例えば、あるグループのワークＲＡＭエリアのデータサイズが１００バイトであり、その中に８０バイトのデータ群が記憶された状態で、そのグループの最終ステップに達したときは、ＣＰＵ１から転送されたそのモジュールプログラムに付加されているアドレス加算命令に含まれている２０バイト分のアドレスをＡＤのアドレスに加算する。
なお、ステップＢ４のデータストアの後にＡＤのアドレスをインクリメントするので、ステップＢ７において、モジュールプログラムが最終ステップに達したときは、ＡＤのアドレスはストアしたデータ群の最後のアドレスより１つ多く８１バイト目のアドレスになっている。したがって、更新されたＡＤのアドレスは１０１バイト目のアドレスになるので、次のグループの先頭アドレスがＡＤにセットされることになる。
【００２５】
アドレス加算命令を実行した後は、変数ｇおよびｍをインクリメントする（ステップＢ９）。このとき、ｇおよびｍの値が最大値を超えたか否かを判別する（ステップＢ１０）。最大値以下である場合には、ステップＢ２に移行して、変数ｇで指定された次のグループにおいて、新たなモジュールプログラムを実行する。
一方、ステップＢ１０においてｇおよびｍの値が最大値を超えたときは、このフローチャートを終了する。
【００２６】
以上のように、この第１実施形態によれば、楽音信号に対する各種類の信号処理を行う複数のモジュールプログラムを記憶するプログラムエリアと、各モジュールプログラムによって実行されるデータ群を記憶するワークエリアとが、それぞれ信号処理の種類ごとにグループに分割されているＤＳＰＲＡＭ６に対して、ＣＰＵ１は、プログラムエリアの各グループごとにモジュールプログラムを転送し、ワークエリアの各グループごとにモジュールプログラムに対応するデータ群を転送する。
この場合において、ＣＰＵ１は、データ群を記憶するワークエリアのデータサイズとそのデータ群のデータサイズとの差分を含むアドレス更新命令をモジュールプログラムに付加して転送する。ＤＳＰ４は、入力される楽音信号に対して、プログラムエリアから各モジュールプログラムを順に読み出して、一連の信号処理を行い、任意のグループのデータ処理が終了したときは、そのときのワークエリアのアドレスに差分を加算して、次のグループのモジュールプログラムに対応するワークエリアの先頭アドレスとして指定する。
【００２７】
これにより、ＤＳＰ４は、入力される楽音信号に対する一連の信号処理をスムーズに実行できるとともに、ＣＰＵ１が行っていたグループから次のグループに移行する際のアドレス更新の処理を各モジュールプログラムに分担することができる。したがって、ＣＰＵ１による音源処理の負荷を軽減することによって、全体の制御を円滑に行うことができる。
【００２８】
次に、本発明の第２実施形態について説明する。
第２実施形態においては、データ群を記憶するワークエリアを複数のグループに分割する場合において、同じデータサイズのグループが２つ以上になるように分割する。これにより、第１実施形態と同様に、ＣＰＵ１による音源処理の負荷を軽減することによって、全体の制御を円滑に行うことができるとともに、一連の信号処理の変更に伴って、モジュールプログラムの順序を変更した場合でも、変更先のグループにおけるワークエリアのデータアサイズが、元のグループのデータサイズと同じである場合には、そのモジュールプログラムに付加するアドレス加算命令の内容を変更する必要がないという利点がある。
【００２９】
次に、本発明の第３実施形態について説明する。
第３実施形態においては、ＣＰＵ１によるデータ転送処理およびＤＳＰ側の信号処理の一部が第１実施形態と異なるだけで、他の処理については第１実施形態と同じである。したがって、第１実施形態と同じ処理についての重複した説明は省略し、異なる処理について説明する。
【００３０】
図６は第３実施形態におけるＣＰＵ１のデータ転送処理のフローチャートである。このフローチャートのステップＡ１３において、ＣＰＵ１は、ＤＳＰ資源１において変数ｇで指定するグループのプログラムエリアに対して、番号ＰＲＧ（ｍ、ｇ）のモジュールプログラムとともに、そのグループのデータ群を記憶するワークエリアのデータサイズＳＩＺＥ（ｇ）を含むアドレス更新命令を転送する。
図７は、第３実施形態におけるＤＳＰ側の信号処理のフローチャートである。このフローチャートのステップＢ７において、プログラムの最終ステップが終了したときは、ステップＢ１８において、そのグループのワークエリアの先頭アドレスＡＤＳ（ｇ）に、そのワークエリアのデータサイズＳＩＺＥ（ｇ）を加算して、次のグループの先頭アドレスに指定する。
【００３１】
以上のように、この第３実施形態によれば、楽音信号に対する各種類の信号処理を行う複数のモジュールプログラムを記憶するプログラムエリアと、各モジュールプログラムによって実行されるデータ群を記憶するワークエリアとが、それぞれ信号処理の種類ごとにグループに分割されているＤＳＰＲＡＭ６に対して、ＣＰＵ１は、プログラムエリアの各グループごとにモジュールプログラムを転送し、ワークエリアの各グループごとにモジュールプログラムに対応するデータ群を転送する。
この場合において、ＣＰＵ１は、データ群を記憶するワークエリアのデータサイズとその先頭アドレスとを加算するアドレス更新命令をモジュールプログラムに付加して転送する。ＤＳＰ４は、入力される楽音信号に対して、プログラムエリアから各モジュールプログラムを順に読み出して一連の信号処理を行う場合に、任意のグループのデータ処理が終了したときは、そのときのワークエリアの先頭アドレスとデータサイズとを加算して、次のグループのモジュールプログラムに対応するワークエリアの先頭アドレスとして指定する。
【００３２】
これにより、ＤＳＰ４は、第１実施形態と同様に、入力される楽音信号に対する一連の信号処理をスムーズに実行できるとともに、ＣＰＵ１が行っていたグループから次のグループに移行する際のアドレス更新の処理を各モジュールプログラムに分担することができる。さらにこの場合には、モジュールプログラムの信号処理によってワークエリアにストアしたデータ群のデータサイズが何らかの要因によってＣＰＵ１が算出したデータサイズから変動した場合でも、次のグループに移行する際のアドレス更新が正しく行われる。したがって、ＣＰＵ１による音源処理の負荷を軽減することによって、全体の制御を円滑に行うことができる。
【００３３】
なお、上記各実施形態においては、ＣＰＵＲＯＭ２およびＤＳＰＲＯＭ５にあらかじめ格納されているＣＰＵ１およびＤＳＰ４の制御プログラムに基づいて、この装置全体の制御および楽音発生の制御を行う楽音制御装置について説明したが、ＣＰＵＲＯＭ２およびＤＳＰＲＯＭ５を書込み可能な不揮発性メモリで構成し、フレキシブルディスク（ＦＤ）、ＣＤなどの外部記憶媒体やインターネットなどのネットワークを介して、ＣＰＵ１およびＤＳＰ４が実行する制御プログラムをインストールする構成も可能である。この場合には、プログラムの発明を実現することができる。
【００３４】
すなわち、そのプログラムの発明は、楽音信号に対する複数種類の信号処理の中から各種類の信号処理に対応するモジュールプログラムを任意に組み合わせて一連の信号処理を行うアルゴリズムを記憶する第１系統の記憶エリアおよび信号処理された楽音信号のデータ群を記憶する第２系統の記憶エリアを有し、さらに各系統の記憶エリアが信号処理の種類ごとに分割されている複数の分割記憶エリアからなる記憶手段に対して、各種類の信号処理のモジュールプログラムによって信号処理されるデータ群を格納する前記第２系統の記憶エリアにおける分割記憶エリアのデータサイズからその格納するデータ群のデータサイズとの差分を含むアドレス更新命令を当該モジュールプログラムに付加して、前記第１系統の記憶エリアにおける当該モジュールプログラムに対応する分割記憶エリアに転送するステップと、
入力される楽音信号に対して前記第１系統の記憶エリアにおける複数の分割記憶エリアから所定の順序で読み出した各種類の信号処理のモジュールプログラムを実行する際に、各モジュールプログラムによって信号処理されたデータ群を前記第２系統の記憶エリアにおける対応する分割記憶エリアの先頭アドレスから格納し、当該種類の信号処理が終了したときは、前記対応する分割記憶エリアの最終アドレスおよび当該モジュールプログラムに付加された前記差分を加算した値を次のモジュールプログラムによって信号処理されるデータ群を格納する分割記憶エリアの先頭アドレスとして指定するステップと、
を実行する。
【００３５】
あるいは、そのプログラムの発明は、楽音信号に対する複数種類の信号処理の中から各種類の信号処理に対応するモジュールプログラムを任意に組み合わせて一連の信号処理を行うアルゴリズムを記憶する第１系統の記憶エリアおよび信号処理された楽音信号のデータ群を記憶する第２系統の記憶エリアを有し、さらに各系統の記憶エリアが信号処理の種類ごとに分割されている複数の分割記憶エリアからなる記憶手段に対して、各種類の信号処理のモジュールプログラムによって信号処理されるデータ群を格納する前記第２系統の記憶エリアにおける分割記憶エリアのデータサイズを含むアドレス更新命令を当該モジュールプログラムに付加して、前記第１系統の記憶エリアにおける当該モジュールプログラムに対応する分割記憶エリアに転送するステップと、
入力される楽音信号に対して前記第１系統の記憶エリアにおける複数の分割記憶エリアから所定の順序で読み出した各種類の信号処理のモジュールプログラムを実行する際に、各モジュールプログラムによって信号処理されたデータ群を前記第２系統の記憶エリアにおける対応する分割記憶エリアの先頭アドレスから格納し、当該種類の信号処理が終了したときは、前記対応する分割記憶エリアの先頭アドレスおよび当該モジュールプログラムに付加されたデータサイズを加算した値を次のモジュールプログラムによって信号処理されるデータ群を格納する分割記憶エリアの先頭アドレスとして指定するステップと、
を実行する。
【図面の簡単な説明】
【００３６】
【図１】本発明の楽音制御装置の第１ないし第３実施形態におけるシステムの構成を示す概略ブロック図。
【図２】図１のＤＳＰＲＡＭを構成する複数のＤＳＰ資源をグループに分割した例を示す図。
【図３】図１のＣＰＵＲＯＭに格納されているモジュールプログラムおよびデータ群の構成図。
【図４】第１実施形態におけるＣＰＵのデータ転送のフローチャート。
【図５】第１実施形態におけるＤＳＰ側の信号処理のフローチャート。
【図６】第３実施形態におけるＣＰＵのデータ転送のフローチャート。
【図７】第３実施形態におけるＤＳＰ側の信号処理のフローチャート。
【符号の説明】
【００３７】
１  ＣＰＵ
２  ＣＰＵＲＯＭ
３  ＣＰＵＲＡＭ
４  ＤＳＰ
５  ＤＳＰＲＯＭ
６  ＤＳＰＲＡＭ
【図１】
2005215594.tif 000003
【図２】
2005215594.tif 000004
【図３】
2005215594.tif 000005
【図４】
2005215594.tif 000006
【図５】
2005215594.tif 000007
【図６】
2005215594.tif 000008
【図７】
2005215594.tif 000009