(57)【特許請求の範囲】
【請求項１】
複数の波形データを記憶する、所定のデータ転送速度を有する第１の記憶手段と、
前記複数の波形データのうちの一部の波形データを波形データ単位で記憶する第２の記憶手段であって、データ転送速度が前記第１の記憶手段より高速のものと、
複数の波形データを同時に読み出すように指示する読み出し指示を入力する入力手段と、
該入力手段によって入力された読み出し指示に係る各波形データが前記第２の記憶手段に記憶されているか否かを判別する第１の判別手段と、
該第１の判別手段による判別の結果、前記読み出し指示に係る波形データが前記第２の記憶手段に記憶されていないときには、前記読み出し指示に応じて、該読み出し指示に係る波形データを、波形データ単位で前記第１の記憶手段から読み出して前記第２の記憶手段に転送する第１の転送手段と、
前記入力された読み出し指示に応じて、前記第２の記憶手段からその読み出し指示に係る複数の波形データを読み出し、該読み出された複数の波形データに基づいて複数の楽音を同時に生成する楽音生成手段と
を有し、
前記第１の転送手段による波形データの転送と前記楽音生成手段による波形データの読み出しとは並行して実行可能である
ことを特徴とする楽音生成装置。
【請求項２】
前記第１の転送手段による波形データの転送と前記楽音生成手段による波形データの読み出しとは相互に非同期で進行し、
前記第１の転送手段は、波形データの転送を、ブロック転送やバースト転送などの高効率の転送方法で行う
ことを特徴とする請求項１に記載の楽音生成装置。
【請求項３】
前記第１の転送手段が波形データを前記第２の記憶手段に転送するのに先立ち、当該波形データを記憶するだけの十分な空き領域が前記第２の記憶手段にあるか否かを判別する第２の判別手段と、
該第２の判別手段によって十分な空き領域がないと判別されたときには、前記第２の記憶手段に既に記憶されている波形データのうち、少なくとも１つの波形データを消去して、当該波形データを記憶するのに必要な空き領域を確保する確保手段と
をさらに有することを特徴とする請求項１に記載の楽音生成装置。
【請求項４】
前記第１の転送手段は、前記第１の記憶手段の前記データ転送速度による制限内で、前記第１の記憶手段から前記第２の記憶手段へ、複数の波形データを並行して転送することが可能であることを特徴とする請求項１に記載の楽音生成装置。
【請求項５】
前記読み出し指示には、当該読み出し指示に係る各波形データの読み出し速度を指定する速度指定情報が含まれており、
前記楽音生成手段は、当該波形データを、対応する速度指定情報によって指定された読み出し速度で読み出して楽音を生成し、
前記第１の転送手段は、転送する各波形データ毎に、対応する速度指定情報に基づいてその転送速度を制御する
ことを特徴とする請求項４に記載の楽音生成装置。
【請求項６】
前記第１の転送手段による波形データの転送と前記楽音生成手段による波形データの読み出しとは相互に非同期で進行し、
前記第１の転送手段は、前記第１の記憶手段の前記データ転送速度による制限内で、前記第１の記憶手段から前記第２の記憶手段へ、複数の波形データを並行して、それぞれ異なる速度で転送することが可能であることを特徴とする請求項１に記載の楽音生成装置。
【請求項７】
音色切換を指示する音色切換指示手段と、
該音色切換指示手段により音色切換が指示されたときに、該指示された音色において優先的に用いられる１ないし複数の波形データが前記第２の記憶手段に記憶されているか否かをその各波形データ毎に判別する第３の判別手段と、
該第３の判別手段による判別の結果、前記優先的に用いられる波形データのうち前記第２の記憶手段に記憶されていないと判別された波形データについて、当該波形データを波形データ単位で前記第１の記憶手段から読み出して前記第２の記憶手段に転送する第２の転送手段と
をさらに有することを特徴とする請求項１に記載の楽音生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送速度が低速の記憶装置に記憶された波形データに基づいて、該記憶装置のデータ転送速度に依存して制限されるチャンネル数より多いチャンネル数の楽音を生成する楽音生成装置に関する。
【０００２】
【従来の技術】
従来、データ転送速度が低速の記憶装置（波形メモリ（ＲＯＭ）を含む）に記憶された波形データに基づいて楽音を生成する楽音生成装置として、次のものが知られている。すなわち、
（１）波形メモリから読み出された波形サンプルを補間することにより、目的の楽音波形を生成する楽音生成装置において、補間に用いる読み出し波形サンプルをキャッシュメモリに記憶し、このキャッシングされた波形サンプルに基づいて楽音波形を生成するもの
（２）データ転送速度が低速の記憶装置であるハードディスクに記憶された波形データを、低容量かつデータ転送速度が高速のＲＡＭにロードし、このロードされた波形データに基づいて楽音を生成する楽音生成装置
等である。
【０００３】
【発明が解決しようとする課題】
しかし、上記従来の楽音生成装置のうち（１）では、生成すべき楽音波形が進行し、この楽音波形を補間生成するための波形サンプルがキャッシュメモリに保持されていないときには、その波形サンプルを波形メモリから読み出さなければならないので、結局、生成される楽音波形のチャンネル数は波形メモリのデータ転送速度に依存することになる。
【０００４】
また、上記従来の楽音生成装置のうち（２）では、発音が指示されたときに、その発音指示された楽音に対応する波形データがＲＡＭ上にロードされていない場合には、その楽音を生成できなかった。
【０００５】
本発明は、この点に着目してなされたものであり、データ転送速度が低速の記憶装置に記憶された波形データに基づいて、該記憶装置のデータ転送速度に依存して制限されるチャンネル数より多いチャンネル数の楽音を生成することが可能な楽音生成装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の楽音生成装置は、複数の波形データを記憶する、所定のデータ転送速度を有する第１の記憶手段と、前記複数の波形データのうちの一部の波形データを波形データ単位で記憶する第２の記憶手段であって、データ転送速度が前記第１の記憶手段より高速のものと、複数の波形データを同時に読み出すように指示する読み出し指示を入力する入力手段と、該入力手段によって入力された読み出し指示に係る各波形データが前記第２の記憶手段に記憶されているか否かを判別する第１の判別手段と、該第１の判別手段による判別の結果、前記読み出し指示に係る波形データが前記第２の記憶手段に記憶されていないときには、前記読み出し指示に応じて、該読み出し指示に係る波形データを、波形データ単位で前記第１の記憶手段から読み出して前記第２の記憶手段に転送する第１の転送手段と、前記入力された読み出し指示に応じて、前記第２の記憶手段からその読み出し指示に係る複数の波形データを読み出し、該読み出された複数の波形データに基づいて複数の楽音を同時に生成する楽音生成手段とを有し、前記第１の転送手段による波形データの転送と前記楽音生成手段による波形データの読み出しとは並行して実行可能であることを特徴とする。
【０００７】
ここで、第１の記憶手段は、典型的には、波形メモリ（ＲＯＭ）であるが、これに限らず、ハードディスクやＭＤ等、データ転送速度が低速の記憶手段であればどのようなものであってもよい。第２の記憶手段は、典型的には、キャッシュメモリであるが、これに限らず、データ転送速度が高速であれば、ＲＡＭであってもよい。以上は、請求項が変わっても同様である。
【０００８】
好ましくは、前記第１の転送手段による波形データの転送と前記楽音生成手段による波形データの読み出しとは相互に非同期で進行し、前記第１の転送手段は、波形データの転送を、ブロック転送やバースト転送などの高効率の転送方法で行うことを特徴とする。
【０００９】
また、好ましくは、音色切換を指示する音色切換指示手段と、該音色切換指示手段により音色切換が指示されたときに、該指示された音色において優先的に用いられる１ないし複数の波形データが前記第２の記憶手段に記憶されているか否かをその各波形データ毎に判別する第３の判別手段と、該第３の判別手段による判別の結果、前記優先的に用いられる波形データのうち前記第２の記憶手段に記憶されていないと判別された波形データについて、当該波形データを波形データ単位で前記第１の記憶手段から読み出して前記第２の記憶手段に転送する第２の転送手段とをさらに有することを特徴とする。
【００１０】
さらに好ましくは、前記第１の転送手段が波形データを前記第２の記憶手段に転送するのに先立ち、当該波形データを記憶するだけの十分な空き領域が前記第２の記憶手段にあるか否かを判別する第２の判別手段と、該第２の判別手段によって十分な空き領域がないと判別されたときには、前記第２の記憶手段に既に記憶されている波形データのうち、少なくとも１つの波形データを消去して、当該波形データを記憶するのに必要な空き領域を確保する確保手段とをさらに有することを特徴とする。
【００１１】
また、さらに好ましくは、前記第１の転送手段は、前記第１の記憶手段の前記データ転送速度による制限内で、前記第１の記憶手段から前記第２の記憶手段へ、複数の波形データを並行して転送することが可能であることを特徴とする。
【００１２】
また、好ましくは、前記読み出し指示には、当該読み出し指示に係る各波形データの読み出し速度を指定する速度指定情報が含まれており、前記楽音生成手段は、当該波形データを、対応する速度指定情報によって指定された読み出し速度で読み出して楽音を生成し、前記第１の転送手段は、転送する各波形データ毎に、対応する速度指定情報に基づいてその転送速度を制御することを特徴とする。
【００１３】
さらに好ましくは、前記第１の転送手段による波形データの転送と前記楽音生成手段による波形データの読み出しとは相互に非同期で進行し、前記第１の転送手段は、前記第１の記憶手段の前記データ転送速度による制限内で、前記第１の記憶手段から前記第２の記憶手段へ、複数の波形データを並行して、それぞれ異なる速度で転送することが可能であることを特徴とする。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１５】
図１は、本発明の一実施の形態に係る楽音生成装置の概略構成を示すブロック図である。
【００１６】
同図に示すように、本実施の形態の楽音生成装置は、各種情報を入力するための複数のスイッチを備えたパネルスイッチ１と、各種情報等を表示する、たとえば大型液晶ディスプレイ（ＬＣＤ）および発光ダイオード（ＬＥＤ）等を備えた表示装置２と、装置全体の制御を司るＣＰＵ３と、該ＣＰＵ３が実行する制御プログラムや各種テーブルデータ等を記憶するＲＯＭ４と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ５と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ６と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するハードディスク装置７と、外部からのＭＩＤＩ（musical instrument digital interface）信号を入力したり、ＭＩＤＩ信号を外部に出力したりするＭＩＤＩインターフェース８と、ｃｈ（channel）データ（図２を用いて後述）やＣ（cache）管理データ（図３を用いて後述）等のデータを格納する領域を備えたレジスタ９とを有し、これらの各構成要素１〜９は、バス１８を介して相互に接続されている。
【００１７】
ハードディスク装置７には、前述のように、ＣＰＵ３が実行する制御プログラムも記憶でき、ＲＯＭ４に制御プログラムが記憶されていない場合には、このハードディスクに制御プログラムを記憶させておき、それをＲＡＭ５に読み込むことにより、ＲＯＭ４に制御プログラムを記憶している場合と同様の動作をＣＰＵ３にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００１８】
ＭＩＤＩインターフェース８は、専用のものに限らず、ＲＳ−２３２ＣやＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェースより構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信してもよい。
【００１９】
レジスタ９には、大容量（たとえば、１２８Ｍｗｏｒｄ）かつデータ転送速度が低速（たとえば、６Ｍｗｏｒｄ／秒）の波形メモリ（ＲＯＭ）１０に記憶されている波形データを、小容量（たとえば、４Ｍｗｏｒｄ）かつデータ転送速度が高速（たとえば、６６Ｍｗｏｒｄ／秒）のキャッシュメモリ１１にロードしたり、キャッシュメモリ１１にロードされている波形データを読み出したりするキャッシュ制御部１２と、波形データを読み出す際の１サンプル当たりのアドレスの進み量を示すＦナンバＦＮを各発音チャンネル毎に累算することにより、該各チャンネル毎の波形データの読み出しアドレス（相対アドレス）を発生する位相発生部１４と、キャッシュメモリ１１から読み出された波形データを加工するためのＤＳＰ（digital signal processor）１５が接続されている。
【００２０】
ここで、本実施の形態の楽音生成装置は、楽音を生成するときには、常にキャッシュメモリ１１からその楽音生成の基準となる波形データを読み出し、この波形データに基づいて楽音を生成する。そして、その楽音生成の基準となる波形データがキャッシュメモリ１１上に保持されていないとき、すなわちキャッシュミスが発生したときには、その波形データを波形メモリ１０から読み出して、キャッシュメモリ１１に転送した後、この波形データをキャッシュメモリ１１から読み出して楽音を生成する。このとき、後述するように、波形メモリ１０からキャッシュメモリ１１への波形データの転送速度は、キャッシュメモリ１１上の波形データの読み出しアドレスの進み量（読み出し速度）より速く設定されているので、発音の途中で、キャッシュメモリ１１に読み出すべき波形サンプルが未転送という状態にはならない。
【００２１】
本実施の形態では、装置のサンプリング周波数を、たとえば５０ｋＨｚとし、位相発生部１４によって発生された読み出しアドレスに小数部が含まれるときには、そのアドレスの波形サンプルは直線補間によって算出するようにしているため、１周期当たり２個の波形サンプルを読み出す必要があるので、サンプリング周波数は実質１００ｋＨｚとなっている。
【００２２】
この１００ｋＨｚのサンプリング周波数の１周期で、１個の波形サンプル（そのデータ容量は１ｗｏｒｄとする）を読み出せれば、１チャンネル分の楽音を生成できるので、本実施の形態のように、常にキャッシュメモリ１１をアクセスすることにより、その記憶された波形データ（波形サンプル）を読み出して楽音生成に使用したときには、６６Ｍｗｏｒｄ／秒÷１００ｋｗｏｒｄ／秒／ｃｈ＝６６０ｃｈ分の楽音を生成することができる。
【００２３】
ただし、本実施の形態では、１サンプリング周期内で、最大６Ｍｗｏｒｄ／秒のデータ転送、すなわち波形メモリ１０からキャッシュメモリ１１への波形データのデータ転送も行っているため、６Ｍｗｏｒｄ／秒÷１００ｋｗｏｒｄ／秒／ｃｈ＝６０ｃｈ分、上記６６０ｃｈから差し引く必要がある。したがって、本実施の形態の楽音生成装置は、最大６００ｃｈの楽音を生成することができる。
【００２４】
位相発生部１４は、レジスタ９に格納された各発音チャンネル（チャンネル数は、上述のように、最大６００ｃｈ）毎のｃｈデータに基づいて、該各チャンネル毎の波形データの読み出しアドレス（実数値）を発生し、その整数部をキャッシュ制御部１２に供給するとともに、その小数部をＤＳＰ１５に供給する。
【００２５】
キャッシュ制御部１２は、レジスタ９に格納されたＣ管理データに基づいて、各チャンネルで読み出そうとしている波形データがキャッシュメモリ１１に記憶されているか否かを判別し、記憶されていないときには、当該チャンネルにおける波形データの読み出しを開始すると同時に、その波形データを波形メモリ１０から読み出してキャッシュメモリ１１に転送する一方、記憶されているときには、当該チャンネルで発生された読み出しアドレスの整数部に対応する位置（およびその次の位置）の波形データをキャッシュメモリ１１から読み出して、ＤＳＰ１５に供給する。
【００２６】
ここで、波形データは、波形メモリ１０からブロック単位（１ブロックは、本実施の形態では、１ｋｗｏｒｄ）で読み出されて、キャッシュメモリ１１にロードされる。通常、読み出すべき波形データの容量は１ｋｗｏｒｄより大きいので、複数ブロックがキャッシュメモリ１１にロードされるが、この複数ブロック分の容量のまとまった空き領域がキャッシュメモリ１１に存在しない場合には、各ブロックの波形データは、キャッシュメモリ１１上で離散的に記憶される。他方、位相発生部１４は、読み出しアドレスを、当該波形データのアドレスが連続しているものとして発生する。このため、キャッシュメモリ１１上の実アドレスに対して仮想アドレスを定義し、この仮想アドレス（各ブロック毎の仮想アドレス）を再配置するすることにより、実アドレスでは依然として離散的に存在している波形データのアドレスを、見かけ上連続的にしている。この種の技術を、ガーベジ・コレクション（garbage collection）と呼んでいる。これにより、空き領域をまとめる際にキャッシュメモリ１１上に記憶されているデータを転送する必要がなくなるので、処理を高速に行うことができる。
【００２７】
キャッシュ制御部１２は、目的の波形データをキャッシュメモリ１１から読み出すために、この仮想アドレスをキャッシュメモリ１１上の実アドレスに変換するアドレス変換部１３を介して、キャッシュメモリ１１に接続されている。
【００２８】
ＤＳＰ１５は、発音チャンネル処理、エフェクト処理およびミキサ処理を行い、これら各処理の施されたデジタル楽音データをＤＡＣ（digital to analog converter）１６に出力し、ＤＡＣ１６は、ＤＳＰ１５から供給されたデジタル楽音データをアナログ楽音信号に変換し、アンプやスピーカ等からなるサウンドシステム１７を介して音響に変換される。
【００２９】
ここで、発音チャンネル処理の主なものとしては、たとえば、サンプル間補間処理、音色フィルタ処理、音量エンベロープ処理、チャンネル累算処理が挙げられる。
【００３０】
サンプル間補間処理では、キャッシュ制御部１２から供給された波形データと位相発生部１４から供給された読み出しアドレスの小数部に基づいて補間演算を行い、補間された波形データの波形サンプルを生成する。本実施の形態では、キャッシュ制御部１２は、各チャンネル当たり２個の波形サンプルをＤＳＰ１５に供給し、ＤＳＰ１５は、この２個の波形サンプルに基づいて直線補間により補間サンプルを生成する。もちろん、過去に読み出された波形サンプルを記憶しておき、この波形サンプルと新たに読み出された波形サンプルに基づいて、より高次の補間を行うようにしてもよい。
【００３１】
音色フィルタ処理では、上記補間後の波形データに対して、たとえばローパスフィルタ演算により音色制御を行う。このローパスフィルタ演算は、パラメータとして供給されたカットオフ特性やレゾナンス特性等に基づいて行われる。
【００３２】
音量エンベロープ処理では、音色フィルタ処理が施された波形データに対して、楽音の立ち上がりから立ち下がりまでの音量の時間変化（エンベロープ）を与える。この音量エンベロープ処理も、パラメータとして供給されたＥＧ（envelope generator）制御情報に基づいて行われる。
【００３３】
チャンネル累算処理では、エンベロープの付与された波形データを、各エフェクト処理（本実施の形態では、コーラス処理、リバーブ処理およびイコライザ処理の３種類の処理がある）向けにそれぞれレベル制御した後に、全チャンネル分累算し、各エフェクト処理に出力する。
【００３４】
コーラス処理では、当処理向けに出力された波形データに対してコーラス効果を付与する。
【００３５】
リバーブ処理では、当処理向けに出力された波形データに対して残響効果を付与する。
【００３６】
ミキサ処理では、コーラス効果が付与された波形データと残響効果が付与された波形データの各音量を制御し、この音量制御された各波形データとイコライザ処理向けに出力された波形データとをミキシングする。
【００３７】
イコライザ処理では、ミキサ処理によってミキシングされた波形データの周波数特性を加工制御する。
【００３８】
この周波数特性が加工制御された波形データが、ＤＳＰ１５からＤＡＣ１６に供給される。
【００３９】
以上のように、位相発生部１４およびＤＳＰ１５は、それぞれ、１サンプリング周期内で最大６００ｃｈ分の楽器生成のための処理を時分割で行う必要がある。この処理を実現するためには、必要に応じて、各回路を並列化したり、パイプライン化したりすればよい。すなわち、各処理を時分割６００ｃｈで複数段にパイプライン化した構成、２つに並列化してそれぞれ時分割３００ｃｈで複数段にパイプライン化した構成、４つに並列化してそれぞれ時分割１５０ｃｈで複数段にパイプライン化した構成等を採ることができる。一般的に、並列化の数を増やすことによりパイプラインの段数を減少させることができる。
【００４０】
図２は、レジスタ９に格納されるｃｈデータのデータフォーマットを示す図である。
【００４１】
各ｃｈデータは、それぞれ、当該発音チャンネルでの楽音生成のために必要な複数個のデータからなり、レジスタ９には、６００ｃｈ分のデータが記憶される領域ｃｈ１〜ｃｈ６００が設けられている。なお、各ｃｈデータのデータフォーマットはすべて共通であるため、同図には、ｃｈ３のｃｈデータのデータフォーマットが代表的に例示されている。
【００４２】
同図において、ｃｈデータは、ＦナンバＦＮと、生成される楽音の全体的な音量と、楽音生成に使用する、波形メモリ１０上の波形データを特定するための波形ＩＤと、波形メモリ１０（またはキャッシュメモリ１１）上の当該（波形ＩＤに対応する）波形データの先頭記憶位置（アドレス）を基準とした所定位置（たとえば、読み出し開始位置、ループ読み出し開始位置およびループ読み出し終了位置）の相対アドレス情報と、前記音色フィルタ処理でのフィルタ演算に用いるパラメータであるＤＣＦ（digital controlled filter）制御情報（前記カットオフ特性やレゾナンス特性を含む）と、前記音量エンベロープ処理での音量制御に用いるパラメータであるＥＧ制御情報と、楽音生成に用いるその他の情報と、ノートオン／オフの状態をそれぞれ“０”と“１”で示すオン／オフデータとによって構成されている。
【００４３】
ＦナンバＦＮは、上述のように、波形データを読み出す際の１サンプル当たりのアドレスの進み量を示すものであり、生成すべき楽音の音高とその生成に用いる波形データが決まれば、その値は決まる。前記位相発生部１４は、システムのサンプリング周波数（本実施の形態では、前述のように、５０ｋＨｚ）に同期して、各チャンネル毎にＦナンバＦＮを累積し、該各チャンネル毎の波形データの読み出しアドレス（相対アドレス）を発生する。
【００４４】
波形メモリ１０に記憶されている各波形データには、それぞれＩＤが付与され、ｃｈデータ内の波形ＩＤを指定することにより、目的の波形データを波形メモリ１０上で特定することができる。
【００４５】
オン／オフデータは、その値が“０”から“１”に変化した時点で、当該チャンネルの楽音の生成を開始し、“１”から“０”に変化した時点で、当該チャンネルの楽音のリリースを開始するように、前記ＤＳＰ１５に指示するためのものである。
【００４６】
図３は、レジスタ９に格納されるＣ管理データのデータフォーマットを示す図である。
【００４７】
Ｃ管理データは、キャッシュメモリ１１に格納される波形データの状態を管理するために必要な複数個のデータからなり、レジスタ９には、６００波形分のデータが記憶される領域ｃｗ１〜ｃｗ６００が設けられている。なお、各Ｃ管理データのデータフォーマットはすべて共通であるため、同図には、ｃｗ（cache wave）３のＣ管理データのデータフォーマットが例示されている。
【００４８】
同図において、Ｃ管理データは、上記ｃｈデータ内の波形ＩＤと同様に作用する波形ＩＤと、キャッシュメモリ１１への当該波形データの転送状態を示す転送ステートＴＳと、キャッシュメモリ１１へ当該波形データを転送するときの速度を示す転送速度ＴＡと、当該波形データのキャッシュメモリ１１上の記憶位置を仮想アドレスで表現するキャッシュ記憶位置仮想アドレスと、当該波形データのうちキャッシュメモリ１１に転送されたデータのデータサイズを示す転送済みサイズと、当該波形データの全データサイズを示すトータルサイズと、当該波形データの波形メモリ１０上の記憶位置を実アドレス（波形データは通常波形メモリ１０上リニアに（連続して）記憶されているため、リニアアドレスである）で示す波形メモリ記憶位置リニアアドレスとによって構成されている。
【００４９】
転送ステートＴＳは、“０”から“２”までのいずれかの整数値を採り、各整数値は、次のような状態を意味している。
【００５０】
０：当該波形ＩＤが示す波形データは楽音生成に使用されていない状態
１：当該波形ＩＤが示す波形データはキャッシュメモリ１１に転送中の状態
２：当該波形ＩＤが示す波形データはキャッシュメモリ１１に転送を完了した状態
転送速度ＴＡは、“０”から“１２０”までのいずれかの整数値を採り、１秒当たりに転送される前記ブロックのブロック数（本実施の形態では、５０ブロック＝５０ｋｗｏｒｄ）を１単位としている。たとえば、ＴＡ＝０は、キャッシュメモリ１１へのデータ転送を行わない状態を示し、ＴＡ＝１は、キャッシュメモリ１１への５０ブロック／秒のデータ転送を行う状態を示し、ＴＡ＝２は、キャッシュメモリ１１への１００ブロック／秒のデータ転送を行う状態を示し、というように、転送速度ＴＡとして設定される値が大きくなるほど、１秒間に転送されるブロック数、すなわち転送速度が速くなるようになっている。
【００５１】
ここで、１秒当たりに転送されるブロック数の１単位を５０ブロックとしたのは、この転送速度が、ＦナンバＦＮが“１”に設定されたとき（システムのサンプリング周波数（＝５０ｋＨｚ）で波形データの各波形サンプルを読み出すとき）の楽音再生に相当する速度であるからである。
【００５２】
また、転送速度ＴＡとしては、上述のように、最大“１２０”を採ることができる。これは、波形メモリ１０からのデータ転送速度が、本実施の形態では６Ｍｗｏｒｄ／秒であることによる。したがって、キャッシュメモリ１１に転送すべき波形データが複数個あるときには、“１２０”を分配する必要がある。（すなわち、各ロードに対して割り当てた転送速度ＴＡの合計値は“１２０”を超えない。）分配する方法としては、たとえば次のような方法が考えられる。すなわち、
（１）発音時のロードに対して、音色切換時のロードより、大きい整数値を優先的に割り当てる
（２）発音時のロードに対しては、その波形データを使用する発音チャンネルのＦナンバＦＮに応じた整数値以上の数を割り当てる
（３）音色切換時のロードに対しては、１２０以下の任意の整数値を割り当ててもよい（たとえば、他のロードに割り当てた転送速度ＴＡの合計が、“１２０”に到達してしまった場合には、残りの音色切換時のロードに対しては、転送速度ＴＡを“０”としてもよい）
ここで、上記（１）において、発音時のロードとは、今まさに発音されようとしている楽音に対応する波形データがキャッシュメモリ１１上に記憶されていないときに、当該波形データを波形メモリ１０から読み出してキャッシュメモリ１１にロードすることをいう。また、音色切換時のロードとは、たとえば演奏データとして音色切換を指示するデータが供給されたときに、その指示された音色で優先的に使用される（たとえば、最も頻繁に使用される）波形データがキャッシュメモリ１１上に記憶されていない場合には、本実施の形態では、当該波形データを波形メモリ１０から読み出してキャッシュメモリ１１にロードするが、このロードをいう。
【００５３】
また、上記（２）において、ＦナンバＦＮに応じた整数値とは、たとえば、ＦナンバＦＮの小数点を切り上げた値をいい、ＦＮ＝１．５のときには“２”である。転送速度ＴＡとして、ＦナンバＦＮに応じた整数値以上の整数値を設定するようにしたのは、転送速度の１単位を、ＦナンバＦＮ＝１のときに必要な転送速度を基準に設定したからであり、ＦナンバＦＮが“１”より大きい値に設定されている場合には、それに見合った転送速度で波形データをキャッシュメモリ１１に転送しないと、読み出しアドレスの進み量が転送済みの波形サンプルのアドレスを越えてしまうことがあり、このときには、楽音を再生できなくなってしまうからである。
【００５４】
さらに、上記（３）において、音色切換時のロードに対する転送速度ＴＡの設定値に、上記（２）のような条件を設けなかったのは、音色切換の指示からその音色で実際に楽音が生成されるまでの間に時間的な余裕があるからである。
【００５５】
キャッシュ記憶位置仮想アドレスは、上述のように、当該波形データのキャッシュメモリ１１上の記憶位置を仮想アドレスで表現したものであり、キャッシュメモリ１１の実アドレス空間上で離散的に配置されている、当該波形データを構成する各ブロックを、仮想アドレス空間上で連続的に再配置したものである。本実施の形態では、このキャッシュ記憶位置仮想アドレスに基づいて、当該波形データの各波形サンプルを読み出すようにしているので、位相発生部１４は、単にＦナンバＦＮを累算するだけで読み出しアドレスを発生させることができる。仮想アドレス空間上でのデータブロックの再配置は、前記キャッシュ制御部１２が自動的に行い、この結果に基づいて、キャッシュ制御部１２は、仮想アドレスと実アドレスとを相互に変換するためにアドレス変換部１３内に設けられたアドレス変換テーブルを書き換える。このキャッシュ制御部１２が実行する制御処理については、特開平６−３５４７３号公報に詳細に示されているので、その説明を省略する。この公報に記載されたハードウェア的なアドレス変換を採用することにより、仮想アドレスによるキャッシュメモリ１１へのアクセスを時間遅れなく実行することができる。
【００５６】
以上のように構成された楽音生成装置が実行する制御処理を、まずその概要を説明した後に、図４〜図７を参照して詳細に説明する。
【００５７】
本実施の形態の楽音生成装置は、主として次の制御処理を行う。すなわち、
（１）発音が指示された波形データのキャッシュヒットまたはキャッシュミスを検出し、キャッシュヒットが検出されたときには、キャッシュメモリ１１上に保持されている波形データを用いて楽音を生成し、キャッシュミスが検出されたときには、発音指示に係る波形データを波形メモリ１０から読み出して、キャッシュメモリ１１に転送し、転送後の波形データを用いて楽音を生成する
（２）音色切換が指示されたときに、その切換指示された音色で優先的に使用される波形データが、キャッシュメモリ１１上に保持されているか否かを検出し、この波形データがキャッシュメモリ１１上に保持されていないときには、この波形データを波形メモリ１０から読み出して、キャッシュメモリ１１に転送する
（３）上記（１）および（２）における波形メモリ１０からキャッシュメモリ１１への波形データの転送と、各チャンネルの楽音生成をするための、キャッシュメモリ１１に保持されている波形データ（波形サンプル）の読み出しとを非同期に行う
（４）波形データのキャッシュメモリ１１へのキャッシングを１波形単位で行う（ただし、波形メモリ１０からの波形データの転送は、１波形単位で行う必要はなく、本実施の形態では、複数に分割された波形を時分割で並行して転送している。要するに、キャッシュヒットの判定や、ヒットしなかった場合のロード指示等のキャッシュ管理が、１つの波形の中の各サンプルあるいは複数サンプル単位ではなく、各１つの波形を単位として行われるということである。また、キャッシュメモリ１１上の波形データの格納態様は、離散的であってもよいし、連続的であってもよい。）
（５）上記（１）におけるキャッシュミス時の転送、すなわち波形メモリ１０からキャッシュメモリ１１への波形データの転送を、楽音生成時の波形サンプルの読み出し速度（アドレスの進み量）より速く行う
次に、上記各制御処理（１）〜（５）の詳細を説明する。
【００５８】
図４は、本実施の形態の楽音生成装置、特に前記ＣＰＵ３が実行する音色切換イベント処理の手順を示すフローチャートであり、上記制御処理（２）を実現したものである。本処理は、演奏データとして音色切換イベントが供給されたときに、起動される。
【００５９】
同図において、まず、音色切換イベントが指示する新たな音色の音色番号（新音色番号）を取得して、ＲＡＭ５の所定位置に確保された領域ＴＣ（以下、この領域の内容を「音色ＴＣ」という）に格納する（ステップＳ１）。
【００６０】
次に、音色ＴＣにおいて使用される各種波形データ中、優先度に応じてキャッシュメモリ１１にロードする波形データの波形ＩＤを決定する（ステップＳ２）。
【００６１】
そして、この決定された波形ＩＤに対応する波形データがキャッシュメモリ１１に新規にロードすべきものであるか否かを判別する（ステップＳ３）。ここで、新規にロードすべきものであるか否かは、次のようにして判別する。
【００６２】
すなわち、ステップＳ２で決定された波形ＩＤと同一の波形ＩＤが、前記転送ステートＴＳが“０”以外のＣ管理データ中にあるか否かをチェックし、ないときに、その波形ＩＤに対応する波形データを新規にロードすべきものと判別する。
【００６３】
ステップＳ３で、目的の波形データは、キャッシュメモリ１１に転送中または転送が完了していて、新規にロードすべき波形データがないときには、直ちに本音色切換イベント処理を終了する一方、新規にロードすべき波形データがあるときには、その波形データのキャッシュメモリ１１へのロード指示を行うロード指示処理サブルーチン（図６を用いて後述する）を実行した（ステップＳ４）後に、本音色切換イベント処理を終了する。
【００６４】
ここで、ロード指示処理サブルーチンは、後述するように、転送速度ＴＡに設定する値に応じて低速ロード指示と高速ロード指示とを１つのサブルーチンで切り換え可能なように構成されており、ステップＳ４では、転送速度ＴＡに「低速」に対応する値を設定することにより低速ロード指示を行っている。これは、前述のように、音色切換時は、ロードを速く行う必要はないからである。
【００６５】
図５は、ＣＰＵ３が実行するノートオンイベント処理の手順を示すフローチャートであり、上記制御処理（１）を実現したものである。本処理は、演奏データとしてノートオンイベントが供給されたときに、起動される。
【００６６】
同図において、まず、供給されたノートオンイベントからノートナンバおよび（＆）ベロシティを取得し、それぞれ、ＲＡＭ５の所定位置に確保された領域ＮＮ（以下、この領域の内容を「ノートナンバＮＮ」という）および領域ＶＥＬ（以下、この領域の内容を「ベロシティＶＥＬ」という）に格納する（ステップＳ１１）。
【００６７】
次に、ノートナンバＮＮおよび音色ＴＣ（この音色ＴＣは、ノートオンイベントが供給されるときには既に設定されている）に対応した波形ＩＤを検出する（ステップＳ１２）。
【００６８】
そして、この検出された波形ＩＤの波形データがキャッシュメモリ１１上にロードされているか否かを判別する（ステップＳ１３）。この判別は、前記ステップＳ３での判別と同様の方法によって行う。
【００６９】
ステップＳ１３で、目的の波形データがキャッシュメモリ１１上にロードされていないときには、前記ステップＳ４と同様にして、ロード指示処理サブルーチン（ただし、高速ロード指示）を実行した（ステップＳ１４）後に、ステップＳ１５に進む一方、目的の波形データがキャッシュメモリ１１上にロードされているときには、ステップＳ１４をスキップしてステップＳ１５に進む。
【００７０】
ステップＳ１５では、空きチャンネルを検出して、そのチャンネルに発音割り当てを行う。
【００７１】
続くステップＳ１６では、割り当てたチャンネルに、音色ＴＣおよびノートナンバＮＮに応じた各種パラメータを設定する。具体的には、前記レジスタ９の６００ｃｈ分のｃｈデータ格納領域中、割り当てチャンネルに対応するｃｈデータ領域に、前記ＦナンバＦＮ、波形ＩＤ、相対アドレス、ＤＣＦ制御情報、ＥＧ制御情報およびその他の情報を書き込む。
【００７２】
そして、当該チャンネルに対してノートオンを設定した（ステップＳ１７）後に、本ノートオンイベント処理を終了する。ここで、ノートオンの設定は、上記ステップＳ１６のｃｈデータ領域中のノートオン／オフデータをノートオン（“１”）に設定することにより行う。
【００７３】
図６は、前記ステップＳ４およびＳ１４のロード指示処理サブルーチンの詳細な手順を示すフローチャートである。本ロード指示処理によって、前記制御処理（５）が実現される。
【００７４】
同図において、まず、レジスタ９の６００波形分のＣ管理データ格納領域中、転送ステートＴＳが“０”の領域ｃｗｋ（ｋは、１〜６００のいずれかの整数値）のうち最小のｋを取得する（ステップＳ２１）。
【００７５】
次に、決定（または検出）された波形ＩＤが示す波形データを記憶するためのキャッシュメモリ１１上の領域を割り当てる（ステップＳ２２）。この領域割当は、たとえば、次のようにして行う。すなわち、
（１）キャッシュメモリ１１に記憶されている複数個の波形データを仮想アドレス上で前詰めする
（２）その後に形成された空き領域中、波形ＩＤが示す波形データを書き込む領域を確保する
（３）空き領域が足りない場合には、現在使用されていない波形データが記憶されている領域を開放し、上記（１）および（２）の処理を繰り返す。
【００７６】
続くステップＳ２３では、領域ｃｗｋに必要なパラメータを設定する。具体的には、前記波形ＩＤ、転送ステートＴＳ、キャッシュ記憶位置仮想アドレス、トータルサイズおよび波形メモリ記憶位置リニアアドレスを書き込む。
【００７７】
そして、同時にロードする波形データの優先度に応じて、各波形データの転送速度ＴＡを割り当て（分配し）た（ステップＳ２４）後に、本ロード指示処理を終了する。ここで、分配は、前述した方法によって行い、この分配された各転送速度ＴＡは、当該領域ｃｗｋ中、対応する転送速度ＴＡ領域に書き込まれる。これにより、前記音色切換イベント処理では、「低速」に相当する転送速度が設定され、前記ノートオンイベント処理では、「高速」に相当する転送速度が設定される。なお、「低速」および「高速」は、音色切換イベント処理およびノート御イベント処理での転送速度の相対的な表現であって、分配の結果、ノートオンイベント処理での転送に、より大きな速度が割り当てられるという意味である。「低速」が設定された場合でも、他に転送が行われていなければ、転送速度ＴＡに“１２０”全てが割り当てられる。
【００７８】
図７は、前記キャッシュ制御部１２が実行する転送処理の手順を示すフローチャートであり、前記制御処理（３）および（４）を実現したものである。本転送処理は、上記図６のロード指示処理サブルーチンによってロード指示が行われると、起動される。
【００７９】
図７において、まず、ロードが指示（ＴＳ＝１）された領域ｃｗｋ中、最小のｋ（初期値）を検出し、ＲＡＭ５の所定位置に確保された領域Ｌ（以下、この内容を「インデックスＬ」という）に格納する（ステップＳ３１）。
【００８０】
そして、インデックスＬが示す領域ｃｗＬ内の転送速度ＴＡ（Ｌ）を取得して、ＲＡＭ５の所定位置に確保されたソフトウェアカウンタ領域ＣＮＴ（以下、この内容を「カウンタＣＮＴ」という）に格納する（ステップＳ３２）。
【００８１】
次に、インデックスＬが示す領域ｃｗＬ内の波形ＩＤ（Ｌ）に対応する波形データを波形メモリ１０から読み出して、前記ステップＳ２２で割り当てられたキャッシュメモリ１１上の領域に転送する（ステップＳ３３）。この転送は、１または複数個のブロック分、すなわち、５０ブロック／秒の転送速度が得られるだけのブロック分行われる。
【００８２】
続くステップＳ３４では、波形ＩＤ（Ｌ）に対応する波形データの転送が完了したか否かを判別する。この判別は、領域ｃｗＬ内の転送済みサイズとトータルサイズとを比較することによって行う。
【００８３】
ステップＳ３４で、波形ＩＤ（Ｌ）に対応する波形データの転送がまだ完了していないときには、カウンタＣＮＴを“１”だけデクリメントした（ステップＳ３５）後に、カウンタＣＮＴが“０”であるか否かを判別する（ステップＳ３６）。
【００８４】
ステップＳ３６で、ＣＮＴ≠０のときには、転送すべき波形データのブロックがあるので、前記ステップＳ３３に戻って、１または複数個のブロックの転送を繰り返す。
【００８５】
一方、ステップＳ３４で、波形ＩＤ（Ｌ）に対応する波形データの転送が完了したときには、領域ｃｗＬ内の転送ステートＴＳ（Ｌ）に“２”を設定した（ステップＳ３７）後に、転送ステートＴＳが“１”の領域ｃｗｋが他に存在するか否かを判別する（ステップＳ３８）。
【００８６】
ステップＳ３８で、転送ステートＴＳが“１”の領域ｃｗｋが他に存在しないときには、本転送処理を終了する一方、転送ステートＴＳが“１”の領域ｃｗｋが他に存在するときには、その領域ｃｗｋ間で、転送速度ＴＡの再配分を行う（ステップＳ３９）。再配分は、たとえば、転送中の波形データ間でトリガ要因や優先度を考慮して行う。そして、このようにして再配分された転送速度ＴＡを、対応する転送速度ＴＡ領域に書き込む。
【００８７】
続くステップＳ４０では、次に転送すべき波形データを求めるために、転送ステートＴＳが“１”の領域ｃｗｋ中の、前列に転送処理した領域ｃｗＬの次のｋ（ここで、次の“ｋ”は、循環的に選択される。たとえば、転送ステートＴＳが“１”の領域がｋ＝２，５，１０，２５のとき、ｃｗＬの“Ｌ”が“２”であれば次の“ｋ”は“５”であり、“Ｌ”が“２５”であれば、次の“ｋ”は“２”である。）を取得して、インデックスＬに設定し、前記ステップＳ３２と同様にして、インデックスＬが示す領域ｃｗＬ内の転送速度ＴＡ（Ｌ）を取得し、カウンタＣＮＴに格納した（ステップＳ４１）後に、前記ステップＳ３３に戻る。
【００８８】
一方、ステップＳ３６で、ＣＮＴ＝０のときには、転送すべき波形データのブロックがないので、上記ステップＳ４０に進む。
【００８９】
このように、本実施の形態では、楽音を生成するときには、キャッシュメモリに記憶された波形データのみを使用して高速に波形データを供給するようにしたので、波形メモリのデータ転送速度の遅さに依存する発音チャンネル数の制限を解消することができる。
【００９０】
キャッシュヒット時には、キャッシュメモリに保持された波形データを用いて楽音を生成するので、波形メモリからキャッシュメモリへの波形データの転送を行う必要がない。
【００９１】
発音が指示された波形データのキャッシュミス時には、他の要因でロードが指示された波形データより高い優先度でキャッシュメモリに転送されるとともに、その転送速度の下限は、当該波形データのＦナンバに応じて制御されるので、発音の途中にキャッシュメモリに読み出すべき波形サンプルが未転送という状態を解消することができ、楽音を安定して再生することができる。
【００９２】
波形サンプルの読み出しアドレスの進行と、波形メモリからキャッシュメモリへの波形データの転送とが非同期でなされるので、キャッシュメモリへの波形データの転送方法が制限されず、たとえばブロック転送やバースト転送等最も効率のよい転送方法を使用することができる。
【００９３】
波形データのキャッシュメモリへのキャッシングは１波形単位で行われるので、すなわち、波形データを分割して、その一部のみをキャッシングするという方法ではないので、そのデータ管理が簡単になる。
【００９４】
音色選択に応じて優先度の高い波形データを予めキャッシュメモリに記憶するようにしたので、初めて使用する波形データについても効率よくキャッシュヒットさせることができる。
【００９５】
なお、本実施の形態では、波形データを記憶する記憶装置として波形メモリ（ＲＯＭ）を使用したが、これに限らず、ランダムアクセス可能なハードディスク装置やＭＤ装置等を使用してもよい。この場合には、まず、全波形データの各先頭部のみをキャッシュメモリに記憶しておき、その後、使用される波形や必要な波形を当該記憶装置から順次キャッシュメモリに転送するようにする。
【００９６】
また、本実施の形態では、音色選択時に優先度の高い波形データをロードするようにしているが、これに限らず、演奏音域やテンポ等の変化に応じて、その後に使用されそうな波形データを予測し、この予測された波形データを予めロードするようにしてもよい。または、演奏者が今後使用したい波形データを、その使用時点に先立って指定し、この指定された波形データを予めロードするようにしてもよい。
【００９７】
さらに、本実施の形態では、波形メモリから読み出した波形データをキャッシュメモリに転送するとき、その転送場所は空いている任意の場所として、いわゆるフルアソシアティブ方式を採用したが、これに限らず、ダイレクトマップ方式またはセットアソシアティブ方式のいずれの方式を採用してもよい。
【００９８】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ３やＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは云うまでもない。
【００９９】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１００】
プログラムコードを供給するための記憶媒体としては、たとえば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ４などを用いることができる。また、他のＭＩＤＩ機器や通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【０１０１】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１０２】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ３などが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１０３】
【発明の効果】
以上説明したように、請求項１に記載の発明によれば、読み出し指示に係る波形データが第２の記憶手段に記憶されているときには、その記憶されている波形データに基づいて、また、読み出し指示に係る波形データが第２の記憶手段に記憶されていないときには、その波形データを波形データ単位で第１の記憶手段から読み出して、第２の記憶手段に転送した後、その記憶されている波形データに基づいて、楽音を生成するようにしたので、すなわち、楽音を生成するときには、データ転送速度が高速の第２の記憶手段に記憶された波形データのみを使用して高速に波形データを供給するようにしたので、データ転送速度が低速の第１の記憶手段に依存する発音チャンネル数の制限を解消することができる。
【０１０４】
また、第１の記憶手段から第２の記憶手段への波形データの転送と、第２の記憶手段から読み出された波形データに基づく楽音の生成とが非同期で行われるので、第２の記憶手段への波形データの転送方法が制限されず、たとえばブロック転送やバースト転送等最も効率のよい転送方法を使用することができる。
【０１０５】
また、読み出し指示に係る波形データが波形データ単位で第２の記憶手段に転送されるので、すなわち、波形データを分割して、その一部のみが第２の記憶手段に転送されるという方法ではないので、そのデータ管理が簡単になる。
【０１０６】
請求項７に記載の発明によれば、音色切換が指示されたときに、該指示された音色において優先的に用いられる波形データが第２の記憶手段に記憶されていないときには、該波形データが波形データ単位で第１の記憶手段から読み出されて、前記第２の記憶手段に転送されるので、初めて使用する波形データについても効率よくキャッシュヒットさせることができる。
【０１０７】
請求項５に記載の発明によれば、前記読み出し指示には、当該読み出し指示に係る各波形データの読み出し速度を指定する速度指定情報が含まれており、前記楽音生成手段は、当該波形データを、対応する速度指定情報によって指定された読み出し速度で読み出して楽音を生成し、前記第１の転送手段は、転送する各波形データ毎に、対応する速度指定情報に基づいてその転送速度を制御するようにしたので、発音の途中に第２の記憶手段に読み出すべき波形サンプルが未転送という状態を解消することができ、楽音を安定して再生することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係る楽音生成装置の概略構成を示すブロック図である。
【図２】図１のレジスタに格納されるｃｈデータのデータフォーマットを示す図である。
【図３】図１のレジスタに格納されるＣ管理データのデータフォーマットを示す図である。
【図４】図１の楽音生成装置、特にＣＰＵが実行する音色切換イベント処理の手順を示すフローチャートである。
【図５】図１のＣＰＵが実行するノートオンイベント処理の手順を示すフローチャートである。
【図６】図４または図５のロード指示処理サブルーチンの詳細な手順を示すフローチャートである。
【図７】図１のキャッシュ制御部が実行する転送処理の手順を示すフローチャートである。
【符号の説明】
３  ＣＰＵ（第１の判別手段、第２の判別手段、第３の判別手段、第１の転送手段、第２の転送手段、音色切換指示手段、確保手段）
１０  波形メモリ（第１の記憶手段）
１１  キャッシュメモリ（第２の記憶手段）
１２  キャッシュ制御部（第１の転送手段、第２の転送手段、楽音生成手段）
１３  アドレス変換部（第１の転送手段、第２の転送手段、楽音生成手段）
１５  ＤＳＰ（楽音生成手段）
【図１】
0003541718.tif 000002
【図２】
0003541718.tif 000003
【図３】
0003541718.tif 000004
【図４】
0003541718.tif 000005
【図５】
0003541718.tif 000006
【図６】
0003541718.tif 000007
【図７】
0003541718.tif 000008