(57)【要約】【課題】  新たな発音の発音開始が遅れることのない楽音形成装置を提供する。【解決手段】  音源手段１のレジスタ１４は、同期書込対象のパラメータが格納される第１バッファ群１５と、同期書込対象外のパラメータが格納される第２バッファ群１６から構成される。第１バッファ群１５に同期書込対象のパラメータを書き込み中の期間にはビジーフラグがオン状態となるが、第２バッファ群１６にアクセスして同期書込対象外のパラメータの書込／読込を行うことができるようにする。【選択図】  図１
2008089642.tif 000002
【特許請求の範囲】
【請求項１】
楽音形成のための各種パラメータがレジスタに設定され、該レジスタに設定されたパラメータに基づいて楽音波形を形成して出力する音源手段と、
該音源手段の前記レジスタに楽音形成のための各種パラメータを書き込むと共に、前記レジスタから所定のパラメータの現在の値を読み込むことのできる制御手段とを備え、
前記音源手段における前記レジスタは、同期書込対象のパラメータが格納される第１レジスタと、同期書込対象外のパラメータが格納される第２レジスタからなり、前記制御手段は、前記第１レジスタに同期書込対象のパラメータを書き込み中の期間においても、前記第２のレジスタにアクセスして同期書込対象外のパラメータの書込／読込を行うことができるようにしたことを特徴とする楽音形成装置。
【請求項２】
前記制御手段は、発音チャンネル割当時において空いた発音チャンネルがない場合に、前記同期書込対象外のパラメータとされる各発音チャンネルの出力レベル情報を前記第２のレジスタから読み込み、出力レベル情報が読み込まれた発音チャンネルの内の最も出力レベル情報が小さい発音チャンネルを開放して新たな発音チャンネルとして割り当てるようにしたことを特徴とする請求項１記載の楽音形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、発音指示があった際に発音遅れが生じることなく直ちに発音することのできる楽音形成装置に関する。
【背景技術】
【０００２】
従来、電子楽器等に用いられる楽音形成装置として、自然楽器音の立上りから終了までの楽音波形サンプルの波形データを記憶した波形メモリを用意して、この波形メモリから順次楽音波形サンプルを読み出すことにより楽音信号を発生させるようにした波形メモリタイプの音源が知られている。この音源は、楽音形成装置全体の動作を制御するＣＰＵ（Central Processing Unit）とデータバスやアドレスバスを介して接続されている。音源は、バスを介して各種音源パラメータ情報を受けて内蔵するレジスタの各バッファに書き込んでいる。この場合、バッファに書き込まれるパラメータは、波形制御用パラメータ、フィルタ係数、エンベロープパラメータや音量パラメータ、ミキサー情報、エフェクト情報等とされる。
【特許文献１】特開平７−１６０２６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の楽音形成装置が備える波形メモリタイプの音源の構成を示すブロック図を図１１に示す。
図１１において、ＣＰＵ（Central Processing Unit）１１０は、楽音形成装置に備えられ楽音形成装置全体の動作を制御している。音源１００は波形メモリタイプの音源とされており、ＣＰＵインターフェース１１１を介してＣＰＵ１１０とバスにより接続されている。音源１００は、ＣＰＵインターフェース１１１を介して各種音源パラメータ情報をＣＰＵ１１０から受けてレジスタ１１４の各バッファに書き込んでいる。レジスタ１１４には、波形制御用パラメータ、フィルタ係数、エンベロープパラメータや音量パラメータ、ミキサー情報等が格納されるバッファがそれぞれ用意されている。また、発音チャンネルから読み出された現在の出力レベルが書き込まれるバッファもレジスタ１１４に用意されている。レジスタ１１４にＣＰＵ１１０から受けたパラメータを書き込む際に、同期書込対象とされているパラメータは同期書込用バッファ１１２に一時格納されて、同期書込期間となったタイミングでセレクタ１１３から出力されてレジスタ１１４に書き込まれる。また、同期書込対象外のパラメータは同期書込用バッファ１１２に書き込まれることなくセレクタ１１３から出力されてレジスタ１１４に書き込まれる。
【０００４】
波形形成部１１９は複数の発音チャンネルの各発音チャンネルにおいて、サンプリング周期毎に波形サンプルを形成している。この際に、レジスタ１１４から読込／書込（Ｒ／Ｗ）回路１１７により読み出された波形サンプルを形成する発音チャンネルのパラメータに基づいて波形メモリ１２０から波形データを読み出して、当該発音チャンネルの波形サンプルを形成している。波形形成部１１９により形成された各発音チャンネルの波形サンプルは合成されて出力される楽音波形のサンプリング周期毎にＤＡＣ（デジタル・アナログ変換器）１２１に出力されてアナログ信号に変換され放音される。また、音量演算回路１１８は、波形形成部１１９におけるＣＰＵ１１０から読込要求されたチャンネル（Ｎｃｈ）の現在の音量パラメータを算出して、レジスタ１１４に書き込むようにしている。
【０００５】
次に、図１１に示す従来の楽音形成装置における楽音形成装置が備えるＣＰＵ１１０と音源１００との動作タイミングを図１２に示す。
図１２において、横軸は時間とされており２ＤＡＣサイクル分が示されている。ＤＡＣサイクルは、最終的に出力する波形データのサンプリング周期である。発音チャンネル数が１２８チャンネルとされる場合の例が図１２に示されており、１ＤＡＣサイクル内に１２８の時分割区間が設定されている。時分割区間は、それぞれの発音チャンネルにおいて波形形成に割り当てられる１２８区間とされており、各発音チャンネルにおいて波形形成する際に必要とされるパラメータの読み出しタイミングがｔ１，ｔ２，ｔ３，・・・，ｔ１２８のタイミングとされている。そして、タイミングｔ１２８と次の１ＤＡＣサイクルが開始されるタイミングｔ０’までの区間における空き時間が同期書込を行うタイミングとされている。各発音チャンネルに割り当てられた各時分割区間においては、その発音チャンネルに対応するｔ１〜ｔ１２８の読み出しタイミングで読み出された当該発音チャンネルのパラメータに基づいて波形メモリ１２０から読み出された波形データから当該発音チャンネルの楽音波形が形成される。
【０００６】
図１２において、ＣＰＵ１１０は音源１００におけるＤＡＣサイクルの管理を行っていないことから、ＣＰＵ１１０から音源１００へのパラメータの書き込みや読み込みのコマンドは図１２に示すようにＤＡＣサイクルの各タイミングとは無関係なランダムなタイミングでＣＰＵ１１０において実行される。例えば、タイミングｔ１付近のタイミングで同期書込を行わないパラメータａを音源１００におけるレジスタ１１４の第１０チャンネル（１０ｃｈ）の位置へ書き込む書込コマンドがＣＰＵ１１０において実行されたとする。すると、このパラメータａが同期書込を行わないと判断される共に同期書込中であることを示すビジーフラグがオンとなっていないと判断されて、書込指示と書き込むパラメータａのデータと、書込先のアドレス（１０ｃｈのアドレス）とがＣＰＵ１１０から音源１００に出力される。音源１００が、書込指示とパラメータａとそのアドレスを受け取ると、受け取ったパラメータａをセレクタ１１３を介してパラメータａのアドレスで示されるレジスタ１１４の位置（１０ｃｈ）に書き込む処理が行われる。
【０００７】
また、タイミングｔ２とタイミングｔ３との間でレジスタ１１４の第３チャンネル（３ｃｈ）からパラメータｂを読み込む読込コマンドがＣＰＵ１１０において実行されると、同期書込中であることを示すビジーフラグがオンとなっていないと判断されて、この読込指示と読込先のアドレス（３ｃｈのアドレス）とを音源１００に出力する。音源１００が読込指示と読込先のアドレスとを受け取ると、読込先のアドレスで指定されるレジスタ１１４の位置（３ｃｈ）からパラメータｂを読み込んで、読み込んだパラメータｂを音源１００からＣＰＵ１１０に出力する処理が行われる。
さらに、タイミングｔ４付近で同期書込を行わないパラメータｃを音源１００におけるレジスタ１１４の第２５チャンネル（２５ｃｈ）の位置へ書き込む書込コマンドがＣＰＵ１１０において実行されると、前記したパラメータａを書き込む処理と同様の処理が行われて、パラメータｃがレジスタ１１４の第２５チャンネル（２５ｃｈ）の位置へ書き込まれる。
【０００８】
そして、その後のタイミングにおいて同期書込を行うパラメータｄを音源１００におけるレジスタ１１４の第１２チャンネル（１２ｃｈ）の位置へ書き込む書込コマンドがＣＰＵ１１０において実行されると、ＣＰＵ１１０は同期書込中であることを示すビジーフラグがオンとなっていないと判断して、パラメータｄおよび書込先のアドレス（１２ｃｈのアドレス）と、これらを同期書込用バッファ１１２に書き込む書込指示を音源１００に出力する。音源１００は、この書込指示を受け取ると受け取ったパラメータｄおよびアドレス（１２ｃｈのアドレス）を同期書込用バッファ１１２に書き込む処理を行う。
この後のタイミングにおいて、レジスタ１１４の第２７チャンネル（２７ｃｈ）からパラメータｅを読み込む読込コマンドがＣＰＵ１１０において実行されると、まだ、同期書込中であることを示すビジーフラグがオンとなっていないとＣＰＵ１１０で判断されて、この読込指示と読込先のアドレス（２７ｃｈのアドレス）とを音源１００に出力する。音源１００が読込指示と読込先のアドレスとを受け取ると、読込先のアドレスで指定されるレジスタ１１４の位置（２７ｃｈ）からパラメータｂを読み込んでＣＰＵ１１０に出力する処理が行われる。
【０００９】
さらに後のタイミングにおいて、同期書込を行うパラメータｆを音源１００におけるレジスタ１１４の第２０チャンネル（２０ｃｈ）の位置へ書き込む書込コマンドがＣＰＵ１１０において実行されると、ＣＰＵ１１０は同期書込中であることを示すビジーフラグがオンとなっていないと判断して、パラメータｆおよび書込先のアドレス（２０ｃｈのアドレス）と、これらを同期書込用バッファ１１２に書き込む書込指示を音源１００に出力する。音源１００は、この書込指示を受け取ると受け取ったパラメータｆおよびアドレス（２０ｃｈのアドレス）を同期書込用バッファ１１２に書き込む処理を行う。
さらに後のタイミングにおいて、レジスタ１１４の第１０チャンネル（１０ｃｈ）からパラメータｇを読み込む読込コマンドがＣＰＵ１１０において実行されると、同期書込中であることを示すビジーフラグがオンとなっていないとＣＰＵ１１０で判断されて、この読込指示と読込先のアドレス（１０ｃｈのアドレス）とを音源１００に出力する。音源１００が読込指示と読込先のアドレスとを受け取ると、読込先のアドレスで指定されるレジスタ１１４の位置（１０ｃｈ）からパラメータｇを読み込んでＣＰＵ１１０に出力する処理が行われる。
【００１０】
ここで、ＣＰＵ１１０が同期書込を行うパラメータが全て同期書込用バッファ１１２に書き込まれたと判断すると、ＣＰＵ１１０は同期書込指示ｈを音源１００に出力する。音源１００がこの同期書込指示ｈを受け取ると、同期書込中であることを示すビジーフラグをオン状態にして現在のＤＡＣサイクルにおいて同期書き込みする期間が到来するまで待機される。同期書き込みは、タイミングｔ１２８と次の１ＤＡＣサイクルが開始されるタイミングｔ０’までの期間における空き時間とされている。これは、１ＤＡＣサイクルの途中において同期書き込みを行うと、各発音チャンネルにおける波形データの形成はそれぞれ割り当てられた異なる時分割区間で行われているため、同期書込のタイミングによっては書き込まれたパラメータが反映される発音チャンネルと反映されない発音チャンネルとが生じてしまい、発音チャンネル間の波形データの位相がずれて聴取した際に違和感を生じるからである。このため、全ての発音チャンネルにおいて楽音波形の形成が終了してから同期書込を行うようにしている。
【００１１】
ＣＰＵ１１０は同期書込指示ｈを出力するが、同期書き込みが終了したか否かについては管理しておらず、同期書込中のタイミングにおいてもＣＰＵ１１０はパラメータの書込コマンドや読込コマンドを実行する。例えば、ビジーフラグがオンとなっている同期書込中のタイミングにおいて同期書込を行わないパラメータｉを音源１００におけるレジスタ１１４の第５０チャンネル（５０ｃｈ）の位置へ書き込む書込コマンドをＣＰＵ１１０において実行する。この場合、パラメータｉが同期書込を行うパラメータではないと判断されるものの、同期書込中であることを示すビジーフラグがオンとなっていると判断されて、ビジーフラグがオフとなるまでＣＰＵ１１０から書込指示等を音源１００に送出する処理が待機される。ここで、音源１００においてタイミングｔ１２８が経過したと判断されると、空き時間において同期書込ｈ’の処理が実行され、同期書込用バッファ１１２に格納されたパラメータｄがその書込先のアドレスで指定されるレジスタ１１４の位置（１２ｃｈ）に書き込まれると共に、パラメータｆがその書込先のアドレスで指定されるレジスタ１１４の位置（２０ｃｈ）に書き込まれる。なお、ビジーフラグは現在のＤＡＣサイクルが終了するまで（タイミングｔ０’）までオンを維持する。
【００１２】
さらに、その後のタイミングにおいてレジスタ１１４の第１７チャンネル（１７ｃｈ）からのパラメータｊの読込コマンドがＣＰＵ１１０において実行されると、同期書込中であることを示すビジーフラグがオンとなっていると判断されて、ビジーフラグがオフとなるまでＣＰＵ１１０から読込指示と読込先のアドレス（１７ｃｈのアドレス）とを音源１００に出力する処理が待機される。
ここで、現在のＤＡＣサイクルが終了すると同期書込中であることを示すビジーフラグはオフ状態となり、次のＤＡＣサイクルの開始タイミングｔ０’の後のタイミングｉ’においてＣＰＵ１１０からパラメータｉに関する書込指示等が音源１００に出力され、音源１００においてパラメータｉが、その書込先のアドレスで示されるレジスタの位置（５０ｃｈ）に書き込まれる。
【００１３】
次いで、タイミングｉ’の後のタイミングにおいて同期書込を行うパラメータｋを音源におけるレジスタの第１２チャンネル（１２ｃｈ）の位置へ書き込む書込コマンドがＣＰＵ１１０において実行される。この場合、パラメータｋが同期書込を行うパラメータと判断されると共に、同期書込中であることを示すビジーフラグがオフと判断されるが、パラメータｊの読込処理がＣＰＵ１１０において待機されていることから、この処理が終了するまでＣＰＵ１１０から書込指示等を音源１００に送出する処理が待機される。
そして、タイミングｔ１’とタイミングｔ２’との間のタイミングｊ’においてＣＰＵ１１０からパラメータｊの読込指示と読込先のアドレス（１７ｃｈのアドレス）とが音源１００に出力されて、音源１００においてパラメータｊの読込処理が実行される。この結果、その読込先のアドレスで指定されるレジスタの位置（１７ｃｈ）からパラメータｊが読み込まれＣＰＵ１１０に出力される。さらに、タイミングｔ３’付近のタイミングｋ’においてＣＰＵ１１０からパラメータｋとその書込先のアドレスを同期書込用バッファ１１２に書き込む書込指示が音源１００に出力され、音源１００において同期書込用バッファ１１２にパラメータｋのデータと書込先のアドレス（１２ｃｈのアドレス）とが書き込まれる。
【００１４】
このように、従来の楽音形成装置における音源１００が内蔵するレジスタ１１４に書き込まれるパラメータにおいては、同期書込を行うパラメータが存在している。同期書込が必要なパラメータは主に位相の操作を伴うパラメータ、例えば、ピッチにビブラートを印加したりピッチベンドのパラメータとされる。これは、ステレオのような複数の発音チャンネル間において楽音波形の位相がずれると聴取した際に違和感を生じるからである。また、同期書込が不必要なパラメータは例えばレベルに関係するパラメータとされる。なお、同期とは各発音チャンネルの波形データが合成された最終的な楽音波形のサンプリング周期を単位とする同期とされる。
そして、前述したように音源１００が内蔵するレジスタ１１４に同期するパラメータの同期書き込み中においてはビジーフラグをオンとしているため同期書込対象外のパラメータの書込／読込を行うこともできなくなる。すると、同期を行うパラメータの書き込みが終了してビジーフラグがオフとなるまでは、例えば各発音チャンネルの現在の出力レベルを読み出すことができず新たな発音の発音開始が遅れるおそれがあるという問題点があった。なお、各発音チャンネルの現在の出力レベルを読み出す理由は次の通りである。新たな発音要求があった際に割り当てる発音チャンネルがない場合は、リリース状態となっている各発音チャンネルの現在の出力レベルを読み出して、その発音チャンネルの内の最も小さい出力レベルの発音チャンネルを開放して割り当てる必要があるからである。
【００１５】
そこで、本発明は新たな発音の発音開始が遅れることのない楽音形成装置を提供することを目的としている。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、本発明の楽音形成装置における音源手段のレジスタは、同期書込対象のパラメータが格納される第１レジスタと、同期書込対象外のパラメータが格納される第２レジスタからなり、第１レジスタに同期書込対象のパラメータを書き込み中の期間においても、第２のレジスタにアクセスして同期書込対象外のパラメータの書込／読込を行うことができるようにしたことを最も主要な特徴としている。
【発明の効果】
【００１７】
本発明によれば、音源手段のレジスタは、同期書込対象のパラメータが格納される第１レジスタと、同期書込対象外のパラメータが格納される第２レジスタからなり、第１レジスタに同期書込対象のパラメータを書き込み中の期間においても、第２のレジスタにアクセスして同期書込対象外のパラメータの書込／読込を行うことができるようにしたことから、ビジーフラグがオンとなって同期書き込みを行うパラメータを書き込み中においても、同期書込対象外のパラメータの書込／読込を行うことができるようになる。これにより、新たな発音の発音開始が遅れることのない楽音形成装置とすることができる。
【発明を実施するための最良の形態】
【００１８】
本発明の実施例である楽音形成装置は、波形メモリタイプの音源を内蔵した構成とされている。図１は本発明にかかる楽音形成装置が備える音源の詳細構成を示すブロック図である。
図１において、ＣＰＵ（Central Processing Unit）１０は楽音形成装置に備えられ、楽音形成装置全体の動作を制御している。音源１は、波形メモリタイプの音源とされておりＣＰＵインターフェース１１とデータバス、アドレスバス及び制御信号バスを介してＣＰＵ１０と接続されている。楽音形成装置は、図示していないがＣＰＵ１０の各種プログラムや各種データを格納するＲＯＭ（Read Only Memory）と、ＣＰＵ１０がプログラムを実行する際のワークエリアや各種データを一時的に記憶するＲＡＭ（Random Access Memory）を備えている。また、発音すべき楽音の音高を選択するための複数の鍵を備える鍵盤を有していてもよく、鍵盤を操作すると操作された鍵に応じてノートオン、ノートオフ、ベロシティ、ピッチデータ等の各種データがＣＰＵ１０に出力される。さらに、ＲＯＭあるいはＲＡＭに記憶されている演奏データを読み出したり、外部から所望の演奏データを入力するようにしてもよい。
【００１９】
音源１は、ＣＰＵ１０と接続するためのＣＰＵインターフェース１１を有し、ＣＰＵ１０からアドレスバス、データバス及び制御信号バスおよびＣＰＵインターフェース１１を介して音源１へ音源パラメータを書き込む書込指示や音源１から音源パラメータを読み出す読込指示を受け取る。書込指示の場合は、書き込む各種音源パラメータと書込先のアドレスも受け取り、読込指示の場合は読込先のアドレスも受け取る。書込指示で受け取った各種音源パラメータは、レジスタ１４の書込先のアドレスで示されるバッファに書き込まれる。レジスタ１４は、同期書込対象のパラメータが保存される第１バッファ群１５と同期書込対象外のパラメータが保存される第２バッファ群１６とから構成されている。同期書込対象のパラメータを保存する第１バッファ群１５は、波形制御用パラメータを格納する波形制御用ＲＡＭ１５ａ、フィルタ係数を格納するフィルタ制御用ＲＡＭ１５ｂ、エンベロープパラメータや音量パラメータが格納される音量制御ＲＡＭ１５ｃ、ミキサー情報が格納されるミキサー用ＲＡＭ１５ｄの一部から構成されている。また、同期書込対象外のパラメータを保存する第２バッファ群１６は、エフェクト情報が格納されるミキサー用ＲＡＭ１５ｄの残る一部、リバーブ、コーラス、バリエーション等のエフェクトを付加する処理を行うＤＳＰ（Digital  Signal  Processor）部２５で実行されるμプログラムやエフェクトの係数が格納されるＤＳＰ用ＲＡＭ１６ａ、発音チャンネルにおける現在の出力音量情報が格納される音量読出用ＲＡＭ１６ｂとから構成されている。
【００２０】
第１バッファ群１５には、セレクタ１３を介して所定のバッファに同期書込対象のパラメータが書き込まれる。また、第２バッファ群１６にはＣＰＵインターフェース１１を介して同期書込対象外のパラメータが書き込まれる。セレクタ１３は、同期書込を行う際に同期書込用バッファ１２から読み出された同期書込を行うパラメータを選択し、当該パラメータにおける書込先のアドレスで示される第１バッファ群１５の所定のバッファに選択された当該パラメータは書き込まれる。この場合、ＣＰＵ１０から同期書込を行うパラメータを音源１がＣＰＵインターフェース１１を介して受け取った場合に、当該パラメータが書込先のアドレスと共に同期書込用バッファ１２に保存される。また、同期書込対象のパラメータではあっても同期書込を行わないパラメータを受け取った場合は、セレクタ１３はＣＰＵインターフェース１１から出力される同期書込を行わないパラメータを選択し、当該パラメータにおける書込先のアドレスで示される第１バッファ群１５の所定のバッファに選択された当該パラメータは書き込まれる。さらに、同期書込対象外のパラメータを受け取った場合は、ＣＰＵインターフェース１１から出力される同期書込対象外のパラメータが、当該パラメータにおける書込先のアドレスで示される第２バッファ群１６の所定のバッファに書き込まれる。
【００２１】
なお、同期書込対象のパラメータは主に位相の操作を伴うパラメータ、例えば、ピッチにビブラートを印加したりピッチベンドのパラメータとされる。これは、ステレオのような複数の発音チャンネルにおいては位相を揃える必要があり、このような発音チャンネルにおいて形成される楽音波形の位相がずれると聴取した際に違和感を生じるからである。そして、同期書込を行うパラメータはステレオのように複数の発音チャンネル間で位相を揃える必要がある複数の発音チャンネルにおける位相の操作を行うパラメータとされる。すなわち、同期書込用バッファ１２には同期書込を行う複数の発音チャンネルにおけるそれぞれのパラメータが保存されるようになる。そして、ＣＰＵ１０が同期書込を行うパラメータの全てを同期書込用バッファ１２に保存したと判断した際に、ＣＰＵ１０は同期書込指示を音源１に出力する。音源１は、同期書込用指示を受け取ると現在のＤＡＣサイクルにおいて同期書込用に用意された期間が到来するまで待機して、当該期間が到来した際に同期書込用バッファ１２から同期書込を行う複数のパラメータを読み出し、セレクタ１３を介してそれぞれのパラメータを第１バッファ群１５の書込先のアドレスで示されるバッファに書き込む。この場合、同期書込指示を受け取ってから現在のＤＡＣサイクルが終了するまでは同期書込中であることを示すビジーフラグがオンとされ、ビジーフラグがオンとなっている期間においては、セレクタ１３は同期書込用バッファ１２の出力を選択するようになることから、同期書込対象のパラメータではあっても同期書込を行わないパラメータを第１バッファ群１５に書き込んだり、第１バッファ群１５から読み出すことはできないようになる。しかしながら、同期書込対象外のパラメータはセレクタ１３を介することなく第２バッファ群１６から読込／書込を行うことができることから、ビジーフラグがオンとなっている期間においても、同期書込対象外のパラメータを第２バッファ群１６に書き込んだり、第２バッファ群１６から読み出すことはできるようになる。
【００２２】
ここで、波形制御用ＲＡＭ１５ａ、フィルタ制御用ＲＡＭ１５ｂ、音量制御ＲＡＭ１５ｃのＲＡＭの構造を図２（ａ）に示す。この図に示すＲＡＭの構造は音源１に用意されている発音チャンネル数が１２８チャンネルの場合とされており、波形制御用ＲＡＭ１５ａ、フィルタ制御用ＲＡＭ１５ｂ、音量制御ＲＡＭ１５ｃは、１２８チャンネルの各チャンネル毎の各種パラメータが格納されるバッファから構成されている。また、ミキサー用ＲＡＭ１５ｄのＲＡＭの構造を図２（ｂ）に示す。ミキサー用ＲＡＭ１５ｄの構造は音源１に用意されている発音チャンネル数が１２８チャンネルの場合とされており、１２８チャンネルの各チャンネル毎のミキサー用のパラメータが格納されるバッファと、ＤＳＰ部２５のエフェクトパラメータが格納されるバッファとから構成されている。さらに、ＤＳＰ用ＲＡＭ１６ａのＲＡＭ構造を図２（ｃ）に示す。ＤＳＰ用ＲＡＭ１６ａは、ＤＳＰ部２５がエフェクトを付加する処理時に実行されるエフェクト種類毎のμプログラムと、その係数が格納されるバッファから構成される。さらにまた、音量読出用ＲＡＭ１６ｂのＲＡＭ構造を図２（ｄ）に示す。音量読出用ＲＡＭ１６ｂは、音源１の発音チャンネル数によらず読み出されたある発音チャンネル（Ｎｃｈ）の音量情報が格納される１チャンネル分のバッファから構成される。
【００２３】
波形制御用ＲＡＭ１５ａ、フィルタ制御用ＲＡＭ１５ｂ、音量制御ＲＡＭ１５ｃ、ミキサー用ＲＡＭ１５ｄ、ＤＳＰ用ＲＡＭ１６ａには、それぞれ読込／書込（Ｒ／Ｗ）回路１７ａ、１７ｂ、１７ｃ、１７ｄ、１７ｅにより、それぞれのＲＡＭ用のパラメータの読込／書込が行われる。また、音量読出用ＲＡＭ１６ｂには、出力音量パラメータの読み出しが要求されたチャンネル（Ｎｃｈ）における現在の出力音量パラメータが書き込まれる。出力音量パラメータは、音量演算回路１８により演算される。すなわち、音量演算回路１８は波形制御部１９における当該チャンネル（Ｎｃｈ）の波形の現在レベルと、音量制御部２２における当該チャンネル（Ｎｃｈ）のエンベロープ等の音量制御パラメータの現在レベルとを読み込んで演算することにより、当該チャンネル（Ｎｃｈ）における現在の出力音量パラメータを算出している。
【００２４】
波形制御用ＲＡＭ１５ａからＲ／Ｗ回路１７ａにより読み出された波形制御用パラメータは波形制御部１９に供給され、波形制御部１９は波形制御パラメータにおける生成される楽音の音高を示すピッチ情報に基づいて、波形メモリ２０から波形制御パラメータにより指定された波形サンプルを読み出している。波形メモリ２０には、楽音の立上り部（アタック部）と、その後の持続部（ループ部）とからなる波形データが複数ずつ記憶されており、波形制御部１９においてピッチ情報に基づく周波数ナンバを累算した整数部に対応するアドレス値により示される波形サンプルと、その次に位置する波形サンプルの２つの波形サンプルが少なくとも読み出されて、累算した小数部に応じてサンプル値間が補間される。補間された波形データはフィルタ制御部２１に供給される。
【００２５】
フィルタ制御用ＲＡＭ１５ｂからＲ／Ｗ回路１７ｂにより読み出されたフィルタ係数はフィルタ制御部２１に供給され、フィルタ制御部２１はフィルタ係数に応じて波形制御部１９から供給された楽音波形に所望のフィルタリング処理を施し、その周波数成分の調整された楽音波形を音量制御部２２に出力する。
音量制御用ＲＡＭ１５ｃからＲ／Ｗ回路１７ｃにより読み出されたエンベロープパラメータや音量パラメータ等の音量制御パラメータは音量制御部２２に供給され、音量制御部２２はフィルタ制御部２１から供給された波形データに音量制御パラメータを乗算することにより音量制御を行っている。音量制御された楽音波形のサンプルはミキサー部２３に出力される。
【００２６】
ミキサー用ＲＡＭ１５ｄからＲ／Ｗ回路１７ｄにより読み出されたミキサー用のパラメータはミキサー部２３に供給され、ミキサー部２３はミキサー用のパラメータに応じて音量制御部２２から供給された各発音チャンネルからの楽音波形のサンプルを合成してＤＡＣ（デジタル／アナログ変換器）２４に出力している。また、ミキサー用ＲＡＭ１５ｄからＲ／Ｗ回路１７ｄにより読み出されたエフェクト用のパラメータはミキサー部２３に供給され、ＤＳＰ部２５はエフェクト用のパラメータに応じてミキサー部２３から出力される楽音波形信号にリバーブ、コーラス、ディレイ、パン等の各種音響効果を付与している。エフェクトが付与されたミキサー部２３からの楽音波形信号はＤＡＣ２４においてアナログ信号に変換され、図示しないサウンドシステムから放音される。なお、ＤＳＰ用ＲＡＭ１６ａからＲ／Ｗ回路１７ｅにより読み出されたμプログラムとエフェクト用の係数はＤＳＰ部２５に供給され、ＤＳＰ部２５において付与するエフェクト種類に応じたμプログラムが実行されることにより、ミキサー部２３から出力される楽音波形信号にエフェクトが付与されるようになる。
【００２７】
次に、図１に示す音源１と楽音形成装置が備えるＣＰＵ１０の動作タイミングを図３に示す。
図３において、横軸は時間とされており２ＤＡＣサイクル分が示されている。ＤＡＣサイクルは、ＤＡＣ２４が変換する最終的に出力される楽音波形のサンプリング周期である。発音チャンネル数が１２８チャンネルとされる場合の例が図３に示されており、１ＤＡＣサイクル内に１２８の時分割区間が設定されている。時分割区間は、ｔ１，ｔ２，ｔ３，・・・，ｔ１２８で区切られた１２８の区間とされており、タイミングｔ１〜ｔ１２８は各発音チャンネルにおいて波形形成する際に必要とされるパラメータをレジスタ１４からＲ／Ｗ回路１７ａ〜１７ｅが読み出す読み出しタイミングとされる。１ＤＡＣサイクルが開始されるタイミングｔ０からタイミングｔ１との区間は空き時間とされている。この空き時間は、タイミングｔ０において複数の回路が同時に立ち上がった場合に、その競合を解消するための空き時間とされている。また、タイミングｔ１２８と次の１ＤＡＣサイクルが開始されるタイミングｔ０’までの区間における空き時間において第１バッファ群１５に同期書込を行うパラメータが書き込まれる。各発音チャンネルに割り当てられた時分割区間ｔ１〜ｔ１２８の各時分割区間においては、各発音チャンネルの波形サンプルが波形制御部１９により波形メモリ２０から読み出されて補間され、フィルタ制御部２１においてフィルタリング処理されると共に音量制御部２２において音量制御パラメータが乗算されてミキサー部２３において他の発音チャンネルの楽音波形のサンプルと合成される。この際に、所望に応じてＤＳＰ部２５においてエフェクトが付与される。
【００２８】
ＣＰＵ１０は音源１におけるＤＡＣサイクルの管理を行っていないことから、ＣＰＵ１０から音源１におけるレジスタ１４への書き込みや読み出しのコマンドの実行タイミングは図３に示すようにＤＡＣサイクルの各タイミングとは無関係なランダムなタイミングとされる。
図３において、タイミングｔ１付近のタイミングでパラメータａを音源１におけるレジスタ１４の所望のバッファの第１０チャンネル（１０ｃｈ）の位置へ書き込む書込コマンドがＣＰＵ１０において実行されたとする。すると、このパラメータａが同期書込対象のパラメータか否かが判断され、同期書込対象のパラメータと判断された場合は同期書込中であることを示すビジーフラグの状態が判断される。ここでは、ビジーフラグがオンとなっていないと判断されて、書込指示と書き込むパラメータａのデータと、書込先のアドレスとがＣＰＵ１０から音源１に出力される。音源１が書込指示とパラメータａと書込先のアドレスをＣＰＵインタフェース１１を介して受け取ると、パラメータａの書込先のアドレスが同期書込対象のパラメータが保存される第１バッファ群１５内のアドレスとされていることから、受け取ったパラメータａをセレクタ１３を介して第１バッファ群１５のパラメータａの書込先のアドレスで指定されるバッファの位置（１０ｃｈ）に書き込む処理が行われる。
【００２９】
また、ＣＰＵ１０においてパラメータａが同期書込対象外のパラメータと判断された場合は、そのまま書込指示と書き込むパラメータａのデータと、書込先のアドレスとがＣＰＵ１０から音源１に出力される。音源１が書込指示とパラメータａと書込先のアドレスをＣＰＵインタフェース１１を介して受け取ると、パラメータａの書込先のアドレスが同期書込対象外のパラメータが保存される第２バッファ群１６内のアドレスとされていることから、受け取ったパラメータａをセレクタ１３を介することなく第１バッファ群１５のパラメータａの書込先のアドレスで指定されるバッファの位置（１０ｃｈ）に書き込む処理が行われる。
【００３０】
次いで、タイミングｔ２とタイミングｔ３との間でレジスタ１４の所望のバッファから第３チャンネル（３ｃｈ）のパラメータｂを読み込む読込コマンドがＣＰＵ１０において実行されると、パラメータｂが同期書込対象のパラメータか否かが判断され、同期書込対象のパラメータと判断された場合は同期書込中であることを示すビジーフラグの状態が判断される。ここでは、ビジーフラグがオンとなっていないと判断されて、この読込指示と読込先のアドレスとを音源１に出力する。そして、音源１が読込指示と読込先のアドレスとを受け取ると、セレクタ１３を介して第１バッファ群１５の読込先のアドレスで示されるバッファの位置（３ｃｈ）からパラメータｂを読み込んで、読み込んだパラメータｂを音源１のＣＰＵインタフェース１１を介してＣＰＵ１０に出力する処理が行われる。
【００３１】
また、ＣＰＵ１０においてパラメータｂが同期書込対象外のパラメータと判断された場合は、そのままパラメータｂの読込指示と読込先のアドレスとを音源１に出力する。そして、音源１が読込指示と読込先のアドレスとを受け取ると、セレクタ１３を介することなく第２バッファ群１６の読込先のアドレスで示されるバッファの位置（３ｃｈ）からパラメータｂを読み込んで、読み込んだパラメータｂを音源１のＣＰＵインタフェース１１を介してＣＰＵ１０に出力する処理が行われる。
さらに、タイミングｔ４付近でパラメータｃを音源１におけるレジスタ１４の所望のバッファにおける第２５チャンネル（２５ｃｈ）の位置へ書き込む書込コマンドがＣＰＵ１０において実行された場合は、同期書込中であることを示すビジーフラグがオンとなっていないことから、パラメータｃが同期書込対象のパラメータであっても同期書込対象外のパラメータであっても前記したパラメータａを書き込む処理と同様の処理が行われて、パラメータｃがレジスタ１４の所望のバッファにおける第２５チャンネル（２５ｃｈ）の位置へ書き込まれる。
【００３２】
次いで、その後のタイミングにおいて同期書込を行うパラメータｄを音源１における第１バッファ群１５の所望のバッファにおける第１２チャンネル（１２ｃｈ）の位置へ書き込む書込コマンドがＣＰＵ１０において実行されると、パラメータｂが同期書込対象のパラメータと判断されて、同期書込中であることを示すビジーフラグの状態が判断される。ここでは、ビジーフラグがオンとなっていないと判断されて、ＣＰＵ１０はパラメータｄおよび書込先のアドレスと、これらを同期書込用バッファ１２に書き込む書込指示を音源１に出力する。音源１は、この書込指示を受け取ると受け取ったパラメータｄおよび書込先のアドレス（１２ｃｈのアドレス）を同期書込用バッファ１２に書き込む処理を行う。
【００３３】
さらに、この後のタイミングにおいて、レジスタ１４の所望のバッファから第２７チャンネル（２７ｃｈ）のパラメータｅを読み込む読込コマンドがＣＰＵ１０において実行されると、同期書込中であることを示すビジーフラグがオンとなっていないことから、パラメータｅが同期書込対象のパラメータであっても同期書込対象外のパラメータであっても、前述したパラメータｂを読み出す処理と同様の処理が行われて、レジスタ１４の読込先のアドレスで示されるバッファの位置（２７ｃｈ）からパラメータｅが読み出され、読み出されたパラメータｅが音源１のＣＰＵインタフェース１１を介してＣＰＵ１０に出力される処理が行われる。
さらに後のタイミングにおいて、同期書込を行う２番目のパラメータｆを音源１における第１バッファ群１５の所望のバッファにおける第２０チャンネル（２０ｃｈ）の位置へ書き込む書込コマンドがＣＰＵ１０において実行されると、パラメータｆが同期させる必要があるパラメータと判断されると共に、同期書込中であることを示すビジーフラグの状態が判断される。ここでは、ビジーフラグがオン状態ではないと判断されて、ＣＰＵ１０はパラメータｆのデータおよび書込先のアドレスと、これらを同期書込用バッファ１２に書き込む書込指示を音源１に出力する。音源１は、この書込指示を受け取ると受け取ったパラメータｆおよび書込先のアドレス（２０ｃｈのアドレス）を同期書込用バッファ１２に書き込む処理を行う。
【００３４】
さらに後のタイミングにおいて、レジスタ１４の所望のバッファから第１０チャンネル（１０ｃｈ）のパラメータｇを読み込む読込コマンドがＣＰＵ１０において実行されると、同期書込中であることを示すビジーフラグがオンとなっていないことから、パラメータｇが同期書込対象のパラメータであっても同期書込対象外のパラメータであっても前述したパラメータｂを読み出す処理と同様の処理が行われて、レジスタ１４の読込先のアドレスで示されるバッファの位置（１０ｃｈ）からパラメータｇが読み出され、読み出されたパラメータｇが音源１のＣＰＵインタフェース１１を介してＣＰＵ１０に出力される処理が行われる。
ここで、ＣＰＵ１０が同期書込を行う全てのパラメータを同期書込用バッファ１２に書き込んだと判断すると、ＣＰＵ１０は同期書込指示ｈを音源１に出力する。音源１がこの同期書込指示ｈを受け取ると、同期書込中であることを示すビジーフラグをオンとして当該ＤＡＣサイクルにおいて同期書き込みする期間が到来するまで同期書込の実行を待機させる。同期書き込みする期間は、タイミングｔ１２８と次の１ＤＡＣサイクルが開始されるタイミングｔ０’までの期間における空き時間とされている。これは、１ＤＡＣサイクルの途中において同期書き込みを行うと、各発音チャンネルにおける波形データの形成はそれぞれ割り当てられた異なる時分割区間で行われているため、同期書込のタイミングによっては書き込まれたパラメータが反映される発音チャンネルと反映されない発音チャンネルとが生じてしまい、ステレオ等の発音チャンネル間の楽音波形の位相がずれて聴取した際に違和感を生じるおそれがあるからである。そこで、全ての発音チャンネルにおいて楽音波形の形成が終了してから同期書込を行うようにしている。
【００３５】
ＣＰＵ１０は同期書込指示ｈを出力するが、同期書き込みが終了したか否かについては管理しておらず、同期書込中のタイミングにおいてもＣＰＵ１０はパラメータの書込コマンドや読込コマンドを実行する。例えば、ビジーフラグがオンとなっている同期書込中のタイミングにおいてパラメータｉを音源１におけるレジスタ１４の所望のバッファにおける第５０チャンネル（５０ｃｈ）の位置へ書き込む書込コマンドをＣＰＵ１０は実行する。すると、このパラメータｉが同期書込対象のパラメータか否かが判断され、同期書込対象のパラメータと判断された場合は同期書込中であることを示すビジーフラグの状態が判断される。ここでは、ビジーフラグがオンと判断されるため、ビジーフラグがオフと判断されるまで書込処理の実行が待機される。
一方、パラメータｉが同期書込対象のパラメータではないと判断された場合は、ビジーフラグの状態に関わらず書込指示と書き込むパラメータｉのデータと、書込先のアドレスとがＣＰＵ１０から音源１に出力される。音源１が書込指示とパラメータｉと書込先のアドレスをＣＰＵインタフェース１１を介して受け取ると、パラメータｉのアドレスが同期書込対象外のパラメータが保存される第２バッファ群１６内のアドレスとされていることから、受け取ったパラメータｉはセレクタ１３を介することなく第２バッファ群１６のパラメータｉの書込先のアドレスで示されるバッファの位置（５０ｃｈ）に書き込まれる。
【００３６】
ここで、音源１においてタイミングｔ１２８が経過したと判断されると、タイミングｔ１２８以後の空き時間において同期書込ｈ’の処理が実行され、同期書込用バッファ１２に格納されたパラメータｄがその書込先のアドレスで示される第１バッファ群１５の位置（１２ｃｈ）に書き込まれると共に、パラメータｆがその書込先のアドレスで示される第１バッファ群１５の位置（２０ｃｈ）に書き込まれる。なお、次のＤＡＣサイクルが開始されるタイミングｔ０’までの期間における空き時間が同期書込のタイミングとして用意されていることから、ビジーフラグは次のＤＡＣサイクルが開始されるタイミングｔ０’までオンを維持する。
【００３７】
次いで、レジスタ１４の所望のバッファから第１７チャンネル（１７ｃｈ）のパラメータｊを読み出す読込コマンドがＣＰＵ１０において実行されると、パラメータｊが同期書込対象のパラメータか否かが判断され、同期書込対象のパラメータと判断された場合は同期書込中であることを示すビジーフラグの状態が判断される。ここでは、ビジーフラグがオンと判断されるため、ビジーフラグがオフと判断されるまで読込処理の実行が待機される。
一方、ＣＰＵ１０においてパラメータｊが同期書込対象のパラメータではないと判断された場合は、そのままパラメータｊの読込指示と読込先のアドレスとを音源１に出力する。そして、音源１が読込指示と読込先のアドレスとを受け取ると、セレクタ１３を介することなく第２バッファ群１６の読込先のアドレスで示されるバッファの位置（１７ｃｈ）からパラメータｊを読み込んで、読み込んだパラメータｊを音源１のＣＰＵインタフェース１１を介してＣＰＵ１０に出力する処理が行われる。
【００３８】
ここで、現在のＤＡＣサイクルが終了してビジーフラグがオフ状態になると、ビジーフラグがオフ状態になるまで待機されていた書き込み処理や読み込み処理がある場合はその処理が実行されるようになる。そして、時刻ｔ０’となって次のＤＡＣサイクルが開始された際に、同期書込を行うパラメータｋを音源１における第１バッファ群１５の所望のバッファにおける第１２チャンネル（１２ｃｈ）の位置へ書き込む書込コマンドがＣＰＵ１０において実行されると、パラメータｋが同期書込を行う必要のあるパラメータと判断されて、同期書込中であることを示すビジーフラグの状態が判断される。ここでは、ビジーフラグがオフ状態になったことから、ＣＰＵ１０はパラメータｋのデータおよび書込先のアドレスと、これらを同期書込用バッファ１２に書き込む書込指示を音源１に出力する。音源１は、この書込指示を受け取ると受け取ったパラメータｋおよび書込先のアドレス（１２ｃｈのアドレス）を同期書込用バッファ１２に書き込む処理を行う。
以降は、書込コマンドあるいは読込コマンドがＣＰＵ１０において実行されるたびに前述したパラメータの書き込みの処理あるいは読み出しの処理が音源１において行われるようになる。
【００３９】
次に、ＣＰＵ１０において書込コマンドが実行されることにより起動される書込指示処理のフローチャートを図４に示す。
書込指示処理は１書込コマンド毎に起動され、起動されるとステップＳ１０にて書き込むデータが同期書込対象のパラメータか否かが判断される。ここで、書き込むデータが同期書込対象のパラメータと判断されると、同期あり系とされてステップＳ１１に進み、同期書込中であることを示すビジーフラグの判定処理が行われる。このビジーフラグの判定処理においては、ビジーフラグがオン状態か否かが判断され、ビジーフラグがオフ状態と判断されるとそのまま判定処理は終了するが、ビジーフラグがオン状態と判断されるとビジーフラグがオフ状態と判断されるまで待機される。そして、ビジーフラグがオフ状態と判断されてビジーフラグの判定処理が終了するとステップＳ１２にて書き込むデータが同期書込を行う必要があるパラメータか否かが判断される。ここで、書き込むデータがステレオ発音している発音チャンネルのパラメータ等の場合は同期書込が必要なパラメータと判断されてステップＳ１３に進む。
【００４０】
ステップＳ１３では、同期書込を行うパラメータを音源１の同期書込用バッファ１２にセットする。具体的には、同期書込を行うパラメータのデータおよび書込先のアドレスを同期書込用バッファ１２に書き込む書込指示を音源１に出力する。次いで、ステップＳ１４にて書き込むデータが同期書込を行う最後のパラメータか否かが判断されるが、ステップＳ１３の処理の初回においては同期書込を行う複数のパラメータが揃っていないためＮＯと判断されて書込指示処理は終了する。この書込指示処理が複数回起動されてステップＳ１３において同期書込を行う全てのパラメータが揃ったと判断された場合はステップＳ１５に進み同期書込指示を音源１に出力し、書込指示処理は終了する。また、書き込むデータがステップＳ１０にて同期書込対象外のパラメータあるいはステップＳ１２にて同期書込が必要なパラメータではないと判断された場合は、ステップＳ１６に進み音源１のレジスタに書き込むデータがセットされる。具体的には、書き込むパラメータのデータと、書込先のアドレスと書込指示とを音源１に出力し、書込指示処理は終了する。
【００４１】
上述した書込指示処理のステップＳ１１において実行されるビジーフラグの判定処理のフローチャートを図５に示す。ビジーフラグの判定処理が起動されると、ステップＳ２０にて音源１における同期書込用バッファ１２におけるビジーフラグ値が取得される。ついで、取得されたビジーフラグ値からビジーフラグがオン状態か否かが判断される。ここで、ビジーフラグがオフ状態と判断された場合は、そのままビジーフラグの判定処理は終了するが、ビジーフラグがオン状態と判断された場合はステップＳ２０に戻りステップＳ２０，Ｓ２１の処理がビジーフラグがオフ状態と判断されるまで繰り返し行われる。このように、ビジーフラグの判定処理はビジーフラグがオフ状態になるまで待って、オフ状態になった時に終了するようになる。
【００４２】
次に、上述した書込指示処理のステップＳ１５においてＣＰＵ１０から出力された同期書込指示により音源１において起動される同期書込指示処理のフローチャートを図６に示す。
音源１において同期書込指示処理が起動されると、ステップＳ３０にてビジーフラグをオン状態にセットする。次いで、ステップＳ３１にて同期書込の期間が到来するまで待機される。同期書込の期間は、ＤＡＣサイクルにおいて各発音チャンネルに割り当てられた時分割区間の終了から次のＤＡＣサイクルが開始されるタイミングまでの期間とされ、この期間における空き時間が同期書込を行うタイミングとされている。そして、同期書込のタイミングが到来すると、ステップＳ３２にて同期書込用バッファ１２に格納されているパラメータとその書込先アドレスを読み込んで、書込先で指定される第１バッファ群１５の所定のバッファに読み込まれたパラメータを書き込む。この場合、複数のパラメータのデータとその書込先アドレスが順次読み出されて、書込先アドレスで指定されるバッファにそれぞれ書き込むようになる。同期書込を行うパラメータが全て書き込まれると、ステップＳ３３にて現在のＤＡＣサイクルが終了するまで待機される。そして、現在のＤＡＣサイクルが終了するとステップＳ３４に進みビジーフラグをオフ状態にセットして、同期書込指示処理は終了する。
【００４３】
次に、ＣＰＵ１０において読込コマンドが実行されることにより起動される読込指示処理のフローチャートを図７に示す。
読込指示処理は１読込コマンド毎に起動され、起動されるとステップＳ４０にて読み込むデータが同期書込対象のパラメータか否かが判断される。ここで、読み込むデータが同期書込対象のパラメータと判断されると、同期あり系とされてステップＳ４１に進み、同期書込中であることを示す図５に示すビジーフラグの判定処理が行われる。このビジーフラグの判定処理において、ビジーフラグがオン状態か否かが判断され、ビジーフラグがオフ状態と判断されるとそのまま判定処理は終了するが、ビジーフラグがオン状態と判断されるとビジーフラグがオフ状態と判断されるまで待機される。そして、ビジーフラグがオフ状態と判断されてビジーフラグの判定処理が終了するとステップＳ４２に進む。また、読み込むデータがステップＳ４０にて同期書込対象外のパラメータと判断された場合は、同期なし系とされてステップＳ４２にジャンプする。ステップＳ４２では、読み込むデータを音源１におけるレジスタ１４のバッファから取得し、読込指示処理は終了する。具体的には、読み込むパラメータの読込先のアドレスと読込指示とを音源１に出力することにより、音源１におけるレジスタ１４の読込先のアドレスで指定されるバッファから読み込むパラメータを取得する。読み込むパラメータが取得されると、読込指示処理は終了する。
【００４４】
上述した書込／読込指示処理において、書き込む／読み込むデータの種類が同期書込対象のパラメータと判断されて当該書込／読込処理の処理中において、次の書込／読込指示処理が起動された際に書き込む／読み込むデータの種類が同期書込対象外のパラメータと判断された場合は、同期書込対象のパラメータにかかる書込／読込指示処理と同期書込対象外のパラメータにかかる書込／読込指示処理とを同時に処理することができる。これは、音源１において同期書込対象のパラメータが格納される第１バッファ群１５と同期書込対象外のパラメータが格納される第２バッファ群１６に対するアクセスは同時に行うことができるからである。しかし、同じ種類のパラメータの書込／読込処理の処理を同時に複数行うことはできない。
【００４５】
次に、ＣＰＵ１０から発音チャンネルの出力レベルの読込指示があった際に音源１において起動されるレベルデータ取得処理のフローチャートを図８に示す。
図８に示すレベルデータ取得処理が起動されると、ステップＳ５０にて音量読出用ＲＡＭ１６ｂに出力レベルを読み出す発音チャンネルがセットされる。この場合、ＣＰＵ１０は出力レベルの読込指示において音量読出用ＲＡＭ１６ｂのアドレスと読み込む発音チャンネルの番号とを音源１に出力する。次いで、ステップＳ５１にてＣＰＵ１０から指定された発音チャンネルのその時点の楽音波形のレベル（ｄＢ）が波形制御部１９から取得され、ステップＳ５２にてＣＰＵ１０から指定された発音チャンネルのその時点のエンベロープや音量パラメータの音量制御パラメータのレベル（ｄＢ）が音量制御部２２から取得される。そして、ステップＳ５３にて楽音波形のレベルと音量制御パラメータのレベルとが加算されて得られた出力レベルが音量読出用ＲＡＭ１６ｂにセットされる。この出力レベルは音量読出用ＲＡＭ１６ｂからＣＰＵ１０に読み込まれて、レベルデータ取得処理は終了する。
【００４６】
次に、ＣＰＵ１０が実行するチャンネル割当処理のフローチャートを図９に示す。
図９に示すチャンネル割当処理は、ノートオンが検出されて新たに発音チャンネルを割り当てる際に起動され、ステップＳ６０にて空いた発音チャンネルがあるか否かが判断される。ここで、空いた発音チャンネルがないと判断された場合はステップＳ６１にて発音チャンネルを開放するチャンネル開放処理が実行される。そして、チャンネル開放処理により空いた発音チャンネルがステップＳ６２にて新たな発音チャンネルとして割り当てられるようになる。また、ステップＳ６０にて空いている発音チャンネルがあると判断された場合は、ステップＳ６２にジャンプして空いている発音チャンネルが新たな発音チャンネルとして割り当てられるようになる。ステップＳ６２の処理が終了するとチャンネル割当処理は終了する。
【００４７】
次に、チャンネル割当処理のステップＳ６１にて実行されるチャンネル開放処理のフローチャートを図１０に示す。
チャンネル割当処理が起動されると、ステップＳ７０にて全発音チャンネルの中からリリース状態に入っている発音チャンネルが選択される。次いで、ステップＳ７１にて選択されたリリース状態になっている発音チャンネルの中から最も出力レベルの小さい発音チャンネルが選択される。この場合の発音チャンネルの出力レベルは、前述した図８に示すレベルデータ取得処理により取得する。最も出力レベルの小さい発音チャンネルが選択されると、ステップＳ７２にて選択された発音チャンネルが開放され、チャンネル開放処理は終了する。
【産業上の利用可能性】
【００４８】
本発明において、波形制御部１９、フィルタ制御部２１、音量制御部２２、ミキサー部２３の順で当該機能部が全発音チャンネルの楽音形成に関わる処理は終了する。すると、波形制御用ＲＡＭ１５ａ、フィルタ制御用ＲＡＭ１５ｂ、音量制御用ＲＡＭ１５ｃ、ミキサー用ＲＡＭ１５ｄの順に開放されることになることから、開放され次第に当該ＲＡＭに同期書き込みを行うパラメータの書き込みを開始するのが好適とされる。
以上説明した本発明においては、波形メモリタイプの音源を内蔵した構成としたが、これに限ることはなくＦＭ音源や物理モデル音源を内蔵するようにしてよい。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施例である楽音形成装置が備える音源の詳細構成を示すブロック図である。
【図２】本発明の楽音形成装置における音源部の各種パラメータを格納するバッファの構造を示す図である。
【図３】本発明の楽音形成装置におけるＣＰＵと音源の動作タイミングを示す図である。
【図４】本発明の楽音形成装置におけるＣＰＵが実行する書込指示処理のフローチャートである。
【図５】本発明の楽音形成装置において実行される書込指示処理におけるビジーフラグの判定処理のフローチャートである。
【図６】本発明の楽音形成装置における音源が実行する同期書込指示処理のフローチャートである。
【図７】本発明の楽音形成装置におけるＣＰＵが実行する読込指示処理のフローチャートである。
【図８】本発明の楽音形成装置における音源が実行するレベルデータ取得処理のフローチャートである。
【図９】本発明の楽音形成装置におけるＣＰＵが実行するチャンネル割当処理のフローチャートである。
【図１０】本発明の楽音形成装置において実行されるチャンネル割当処理におけるチャンネル開放処理のフローチャートである。
【図１１】従来の楽音形成装置が備える波形メモリタイプの音源の構成を示すブロック図である。
【図１２】従来の楽音形成装置におけるＣＰＵと音源の動作タイミングを示す図である。
【符号の説明】
【００５０】
１  音源、１１  ＣＰＵインタフェース、１２  同期書込用バッファ、１３  セレクタ、１５  第１バッファ群、１５ａ  波形制御用ＲＡＭ、１５ｂ  フィルタ制御用ＲＡＭ、１５ｃ  音量制御ＲＡＭ、１５ｃ  音量制御用ＲＡＭ、１５ｄ  ミキサー用ＲＡＭ、１６  第２バッファ群、１６ａ  ＤＳＰ用ＲＡＭ、１６ｂ  音量読出用ＲＡＭ、１７ａ  Ｒ／Ｗ回路、１７ｂ  Ｒ／Ｗ回路、１７ｃ  Ｒ／Ｗ回路、１７ｄ  Ｒ／Ｗ回路、１７ｅ  Ｒ／Ｗ回路、１８  音量演算回路、１９  波形制御部、２０  波形メモリ、２１  フィルタ制御部、２２  音量制御部、２３  ミキサー部、２４  ＤＡＣ、２５  ＤＳＰ部、１００  音源、１１０  ＣＰＵ、１１１  ＣＰＵインターフェース、１１２  同期書込用バッファ、１１３  セレクタ、１１４  レジスタ、１１７  Ｒ／Ｗ回路、１１８  音量演算回路、１１９  波形形成部、１２０  波形メモリ、１２１  ＤＡＣ
【図１】
2008089642.tif 000003
【図２】
2008089642.tif 000004
【図３】
2008089642.tif 000005
【図４】
2008089642.tif 000006
【図５】
2008089642.tif 000007
【図６】
2008089642.tif 000008
【図７】
2008089642.tif 000009
【図８】
2008089642.tif 000010
【図９】
2008089642.tif 000011
【図１０】
2008089642.tif 000012
【図１１】
2008089642.tif 000013
【図１２】
2008089642.tif 000014