(57)【要約】【課題】ＮＡＮＤ型フラッシュメモリに波形データを格納しておき、そこから波形データをバッファ経由で波形メモリに読出しつつ再生を行う楽音生成装置において、ＣＰＵにかかる負荷を軽減し、バランスの良い設計が実現できるようにすること。【解決手段】ＣＰＵへの割込み無しで、ＮＡＮＤ型フラッシュメモリに格納した波形データのページ単位での読出しを行い、波形メモリのバッファにサンプル補充ができるようにする。第１メモリからページ単位で読出して第２メモリへ書込む転送部は、各ｃｈで１ページ分のサンプルデータが第２メモリのバッファ領域から読出されている間に、波形位置情報に基づいて、そのページの次の１ページ分のサンプルデータを第１メモリから読出して当該ｃｈのバッファ領域に書込む。基本再生期間のうちに第１メモリから読出し可能な最大ページ数を全帯域幅とし、そこから各ｃｈの帯域幅を割り当てる。【選択図】図５
2010224078.tif 000002
【特許請求の範囲】
【請求項１】
所定数Ｓのチャンネルを備え、それらの各チャンネルでそれぞれ所定サンプリング周波数の楽音を生成する楽音生成装置であって、
ページ単位でのバースト読出しが可能な第１メモリであって、複数の各波形データの一連のサンプルデータを複数のページに記憶した、第１メモリと、
各チャンネルのバッファ領域を有する第２メモリと、
パラメータを設定する制御レジスタであって、各チャンネルごとの領域に、少なくとも、発音する楽音の音高に応じた速度情報、発音に使用する波形データの前記第１メモリ中の位置を示す波形位置情報、および発音する楽音の振幅を規定する振幅制御情報が設定される、制御レジスタと、
各チャンネルごとに、発音開始の指示に応じて前記速度情報の示す速度で増加するカウント値を発生し、該カウント値に応じて、前記第２メモリの当該チャンネルのバッファ領域からサンプルデータを繰り返し読出し、サンプル間補間を行う、読出部と、
前記読出部が読出す複数チャンネル分のサンプルデータを、前記第１メモリからページ単位で読出して前記第２メモリへ書込む転送部であって、各チャンネルで１ページ分のサンプルデータが前記第２メモリのバッファ領域から前記読出部により読出されている間に、前記波形位置情報に基づいて、そのページの次の１ページ分のサンプルデータを前記第１メモリから読出して当該チャンネルのバッファ領域に書込むとともに、１ページ分のサンプルデータをサンプリング周期ごとに１サンプルの速度で再生した場合の基本再生期間のうちに前記第１メモリから読出し可能な最大ページ数をＴ（このＴを「全帯域幅」と呼ぶ）とするとき、該Ｔと前記Ｓとの大小関係はＴ＞Ｓである、転送部と、
各チャンネルごとに、前記振幅制御情報に応じて、前記読出部で補間されたサンプルデータの振幅を制御し、楽音波形のサンプルデータを形成する、振幅制御部と、
新たな楽音の音高と発音開始を示す演奏情報に応じて、
（１）前記複数の波形データの１つを選択し、該波形データと該音高とに基づいて前記速度情報を商（Ｔ／Ｓ）の整数部に対応する値以下となるように決定し、
（２）該楽音に、前記所定数Ｓあるチャンネルのうちの１つを割り当て、
（３）該割り当てたチャンネルの前記制御レジスタに、前記決定した速度情報と、第１メモリにおける該波形データの記憶位置を示す波形クラスタ情報と、振幅制御情報とを設定し、
（４）該割り当てたチャンネルに発音開始を指示する、
制御部と、
を備えることを特徴とする楽音生成装置。
【請求項２】
所定数Ｓのチャンネルを備え、それらの各チャンネルでそれぞれ所定サンプリング周波数の楽音を生成する楽音生成装置であって、
ページ単位でのバースト読出しが可能な第１メモリであって、複数の各波形データの一連のサンプルデータを複数のページに記憶した、第１メモリと、
各チャンネルのバッファ領域を有する第２メモリと、
パラメータを設定する制御レジスタであって、各チャンネルごとの領域に、少なくとも、発音する楽音の音高に応じた速度情報、発音に使用する波形データの前記第１メモリ中の位置を示す波形位置情報、および発音する楽音の振幅を規定する振幅制御情報が設定される、制御レジスタと、
各チャンネルごとに、発音開始の指示に応じて前記速度情報の示す速度で増加するカウント値を発生し、該カウント値に応じて、前記第２メモリの当該チャンネルのバッファ領域からサンプルデータを繰り返し読出し、サンプル間補間を行う、読出部と、
前記読出部が読出す複数チャンネル分のサンプルデータを、前記第１メモリからページ単位で読出して前記第２メモリへ書込む転送部であって、各チャンネルで１ページ分のサンプルデータが前記第２メモリのバッファ領域から前記読出部により読出されている間に、前記波形位置情報に基づいて、そのページの次の１ページ分のサンプルデータを前記第１メモリから読出して当該チャンネルのバッファ領域に書込むとともに、１ページ分のサンプルデータをサンプリング周期ごとに１サンプルの速度で再生した場合の基本再生期間のうちに前記第１メモリから読出し可能な最大ページ数をＴ（このＴを「全帯域幅」と呼ぶ）とするとき、該Ｔと前記Ｓとの大小関係はＴ＞Ｓである、転送部と、
各チャンネルごとに、前記振幅制御情報に応じて、前記読出部で補間されたサンプルデータの振幅を制御し、楽音波形のサンプルデータを形成する、振幅制御部と、
新たな楽音の音高と発音開始を示す演奏情報に応じて、
（１）前記複数の波形データのうちの、決定される前記速度情報を商（Ｔ／Ｓ）の整数部に対応する値以下とすることができる波形データの１つを選択し、該波形データと該音高とに基づいて前記速度情報を決定し、
（２）該楽音に、前記所定数Ｓあるチャンネルのうちの１つを割り当て、
（３）該割り当てたチャンネルの前記制御レジスタに、前記決定した速度情報と、第１メモリにおける該波形データの記憶位置を示す波形クラスタ情報と、振幅制御情報とを設定し、
（４）該割り当てたチャンネルに発音開始を指示する、
制御部と、
を備えることを特徴とする楽音生成装置。
【請求項３】
所定数Ｓのチャンネルを備え、それらの各チャンネルでそれぞれ所定サンプリング周波数の楽音を生成する楽音生成装置であって、
ページ単位でのバースト読出しが可能な第１メモリであって、複数の各波形データの一連のサンプルデータを複数のページに記憶した、第１メモリと、
各チャンネルのバッファ領域を有する第２メモリと、
パラメータを設定する制御レジスタであって、各チャンネルごとの領域に、少なくとも、発音する楽音の音高に応じた速度情報、発音に使用する波形データの前記第１メモリ中の位置を示す波形位置情報、および発音する楽音の振幅を規定する振幅制御情報が設定される、制御レジスタと、
各チャンネルごとに、発音開始の指示に応じて前記速度情報の示す速度で増加するカウント値を発生し、該カウント値に応じて、前記第２メモリの当該チャンネルのバッファ領域からサンプルデータを繰り返し読出し、サンプル間補間を行う、読出部と、
前記読出部が読出す複数チャンネル分のサンプルデータを、前記第１メモリからページ単位で読出して前記第２メモリへ書込む転送部であって、各チャンネルで１ページ分のサンプルデータが前記第２メモリのバッファ領域から前記読出部により読出されている間に、前記波形位置情報に基づいて、そのページの次の１ページ分のサンプルデータを前記第１メモリから読出して当該チャンネルのバッファ領域に書込むとともに、１ページ分のサンプルデータをサンプリング周期ごとに１サンプルの速度で再生した場合の基本再生期間のうちに前記第１メモリから読出し可能な最大ページ数をＴ（このＴを「全帯域幅」と呼ぶ）とするとき、該Ｔと前記Ｓとの大小関係はＴ＞Ｓである、転送部と、
各チャンネルごとに、前記振幅制御情報に応じて、前記読出部で補間されたサンプルデータの振幅を制御し、楽音波形のサンプルデータを形成する、振幅制御部と、
新たな楽音の音高と発音開始を示す演奏情報に応じて、
（１）前記複数の波形データの１つを選択し、該波形データと該音高とに基づいて前記速度情報を決定し、
（２）該楽音に、前記所定数Ｓあるチャンネルのうちの１つを割り当て、
（３）前記全帯域幅Ｔから、該楽音の前記速度情報に応じて前記基本再生期間のうちに読出す必要のあるサンプルデータのページ数を示す帯域幅Ｕを割り当て、
（４）該割り当てたチャンネルの前記制御レジスタに、前記決定した速度情報と、第１メモリにおける該波形データの記憶位置を示す波形クラスタ情報と、振幅制御情報とを設定し、
（５）該割り当てたチャンネルに発音開始を指示する、
制御部と、
を備えることを特徴とする楽音生成装置。
【請求項４】
所定数Ｓのチャンネルを備え、それらの各チャンネルでそれぞれ所定サンプリング周波数の楽音を生成する楽音生成装置であって、
ページ単位でのバースト読出しが可能な第１メモリであって、複数の各波形データの一連のサンプルデータを複数のページに記憶した、第１メモリと、
各チャンネルのバッファ領域を有する第２メモリと、
パラメータを設定する制御レジスタであって、各チャンネルごとの領域に、少なくとも、発音する楽音の音高に応じた速度情報、発音に使用する波形データの前記第１メモリ中の位置を示す波形位置情報、および発音する楽音の振幅を規定する振幅制御情報が設定される、制御レジスタと、
各チャンネルごとに、発音開始の指示に応じて前記速度情報の示す速度で増加するカウント値を発生し、該カウント値に応じて、前記第２メモリの当該チャンネルのバッファ領域からサンプルデータを繰り返し読出し、サンプル間補間を行う、読出部と、
前記読出部が読出す複数チャンネル分のサンプルデータを、前記第１メモリからページ単位で読出して前記第２メモリへ書込む転送部であって、各チャンネルで１ページ分のサンプルデータが前記第２メモリのバッファ領域から前記読出部により読出されている間に、前記波形位置情報に基づいて、そのページの次の１ページ分のサンプルデータを前記第１メモリから読出して当該チャンネルのバッファ領域に書込むとともに、１ページ分のサンプルデータをサンプリング周期ごとに１サンプルの速度で再生した場合の基本再生期間のうちに前記第１メモリから読出し可能な最大ページ数をＴ（このＴを「全帯域幅」と呼ぶ）とするとき、該Ｔと前記Ｓとの大小関係はＴ≦Ｓである、転送部と、
各チャンネルごとに、前記振幅制御情報に応じて、前記読出部で補間されたサンプルデータの振幅を制御し、楽音波形のサンプルデータを形成する、振幅制御部と、
新たな楽音の音高と発音開始を示す演奏情報に応じて、
（１）前記複数の波形データの１つを選択し、該波形データと該音高とに基づいて前記速度情報を決定し、
（２）前記全帯域幅Ｔから、該楽音の前記速度情報に応じて前記基本再生期間のうちに読出す必要のあるサンプルデータのページ数を示す帯域幅Ｕを割り当て、
（３）該楽音に、前記所定数Ｓあるチャンネルのうちの、その時点で空きチャンネルとなっている１つを割り当て、
（４）該割り当てたチャンネルの前記制御レジスタに、前記決定した速度情報と、第１メモリにおける該波形データの記憶位置を示す波形クラスタ情報と、振幅制御情報とを設定し、
（５）該割り当てたチャンネルに発音開始を指示する、
制御部と、
を備えることを特徴とする楽音生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、波形メモリ方式の楽音生成装置に関し、特に、ＮＡＮＤ型フラッシュメモリに波形データを格納しておき、そこから波形データをバッファ経由で波形メモリに読出しつつ再生を行う楽音生成装置に関する。
【背景技術】
【０００２】
従来より、ハードディスク（ＨＤ）に波形データを格納しておき、該ＨＤからバッファに波形データを読出しつつ、該バッファから波形データを波形メモリに読出して、再生する楽音生成装置が知られている（例えば、特許文献１，２）。このような楽音生成装置では、発音指示があってからＨＤ上の波形データをバッファ経由で波形メモリに読出して再生するのでは発音開始に遅れがでてしまうので、装置の電源オン時に、予め各波形データの先頭部を波形メモリ上に読込むようにしている。そして、発音指示があったとき、直ちに波形メモリ上の当該先頭部のデータの再生を開始し、その先頭部の再生を行っている間に、引き続く波形データをＨＤからバッファ経由で波形メモリに読出す。先頭部の再生が終わった後は、前記波形メモリに読出してある波形データの再生を行いつつ、その再生の間に、次にさらに引き続く波形データをＨＤからバッファ経由で波形メモリに読出す。このような処理を繰り返して、再生を続ける。これにより、発音指示があったときに遅れなく発音開始することができる。
【０００３】
上記の方式では、バッファに読込まれた１クラスタ分の波形データ（サンプルデータ）が波形メモリに読出されるごとに（すなわち、バッファが空になると）、ＣＰＵに対して転送要求割込みが発生する。該転送要求割込みに応じて、ＣＰＵは、次に読出すべきＨＤ上の１クラスタを特定して、そのクラスタのＨＤからバッファへの転送を転送部に指示する。従って、ＣＰＵの割り込み処理は必須である。
【０００４】
また、バースト転送を利用した波形メモリ音源として、下記特許文献３に記載の技術がある。これは、波形メモリから読出した波形サンプルを一旦バッファメモリに記憶し、バッファメモリから必要な波形サンプルを選択的に読出して楽音生成するものである。波形メモリからバッファメモリへの波形サンプルの読出しは、複数サンプル単位でバースト転送する。バースト転送することにより、アクセス時間を短縮することができる。
【０００５】
一方、近年ではＮＡＮＤ型フラッシュメモリの大容量化およびコスト低下が進み、種々の装置で、大容量のデータ格納手段として、ＨＤとともにＮＡＮＤ型フラッシュメモリを使用する試みが為されている。ＮＡＮＤ型フラッシュメモリは、ページ（ＨＤのクラスタに相当する）の頭出しに時間がかかるが、読出しが始まった後のデータ転送速度は速い。また、エラー訂正コードによるエラー訂正が必須である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第２６７１７４７号公報
【特許文献２】特許第４０８９６８７号公報
【特許文献３】特許第３１６３９８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のＨＤを利用した楽音生成装置では、ＨＤのアクセス速度がボトルネックとなり、同時に再生できるｃｈ数が制限されるという問題がある。楽音生成装置では、できる限り同時発音ｃｈ数を増やすことが望まれる。そこで、ＨＤを利用する代わりにＮＡＮＤ型フラッシュメモリを使用することが考えられる。ＮＡＮＤ型フラッシュメモリのアクセス速度はＨＤよりも速いため、読出しの単位であるクラスタ（ページ）のサイズを大幅に小さくする（１０分の１以下）ことができる。しかしながら、その場合、ＣＰＵに対する転送要求の割込みの頻度が大幅に増加してしまう（１０倍以上）。すなわち、ＣＰＵにかかる負荷が大きく増加するという問題がある。
【０００８】
また、ＨＤのアクセス速度をボトルネックとして設計された従来技術の方式において、ＨＤをそのままＮＡＮＤ型フラッシュメモリに置き換えたのでは、バランスの良い設計とは言い難い。
【０００９】
本発明は、ＮＡＮＤ型フラッシュメモリに波形データを格納しておき、そこから波形データをバッファ経由で波形メモリに読出しつつ再生を行う楽音生成装置において、ＣＰＵにかかる負荷を軽減し、バランスの良い設計が実現できるようにすることを目的とするものである。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明は、所定数Ｓのチャンネルを備え、それらの各チャンネルでそれぞれ所定サンプリング周波数の楽音を生成する楽音生成装置において、ＣＰＵへの割り込み無しで、ＮＡＮＤ型フラッシュメモリ等に格納した波形データのページ単位での読出しを行い、波形メモリのバッファにサンプル補充ができるようにしたことを特徴とする。まず、一連の波形データを、高速ページ読出し可能なＮＡＮＤ型フラッシュメモリ等の第１メモリの複数ページに記憶しておく。また、各ｃｈのバッファ領域を有する第２メモリを備える。前記第１メモリからページ単位で読出して前記第２メモリへ書込む転送部は、各ｃｈで１ページ分のサンプルデータが前記第２メモリのバッファ領域から読出されている間に、波形位置情報に基づいて、そのページの次の１ページ分のサンプルデータを前記第１メモリから読出して当該チャンネルのバッファ領域に書込む。また、１ページ分のサンプルデータをサンプリング周期ごとに１サンプルの速度で再生した場合の基本再生期間のうちに前記第１メモリから読出し可能な最大ページ数をＴ（このＴを「全帯域幅」と呼ぶ）とするとき、該Ｔと前記Ｓとの大小関係はＴ＞Ｓであるようにする。制御部は、新たな楽音の音高と発音開始を示す演奏情報に応じて、各種のパラメータを制御レジスタに設定して発音開始を指示する。
【００１１】
特に、請求項１に係る発明（後述する第１実施例に対応する）は、制御部が、（１）前記複数の波形データの１つを選択し、該波形データと該音高とに基づいて前記速度情報を商（Ｔ／Ｓ）の整数部に対応する値以下となるように決定し、（２）該楽音に、前記所定数Ｓあるチャンネルのうちの１つを割り当て、（３）該割り当てたチャンネルの前記制御レジスタに、前記決定した速度情報と、第１メモリにおける該波形データの記憶位置を示す波形クラスタ情報と、振幅制御情報とを設定し、（４）該割り当てたチャンネルに発音開始を指示することを特徴とする。
【００１２】
請求項２に係る発明（後述する第１実施例に対応する）は、制御部が、（１）前記複数の波形データのうちの、決定される前記速度情報を商（Ｔ／Ｓ）の整数部に対応する値以下とすることができる波形データの１つを選択し、該波形データと該音高とに基づいて前記速度情報を決定し、（２）該楽音に、前記所定数Ｓあるチャンネルのうちの１つを割り当て、（３）該割り当てたチャンネルの前記制御レジスタに、前記決定した速度情報と、第１メモリにおける該波形データの記憶位置を示す波形クラスタ情報と、振幅制御情報とを設定し、（４）該割り当てたチャンネルに発音開始を指示することを特徴とする。
【００１３】
請求項３に係る発明（後述する第２実施例に対応する）は、制御部が、（１）前記複数の波形データの１つを選択し、該波形データと該音高とに基づいて前記速度情報を決定し、（２）該楽音に、前記所定数Ｓあるチャンネルのうちの１つを割り当て、（３）前記全帯域幅Ｔから、該楽音の前記速度情報に応じて前記基本再生期間のうちに読出す必要のあるサンプルデータのページ数を示す帯域幅Ｕを割り当て、（４）該割り当てたチャンネルの前記制御レジスタに、前記決定した速度情報と、第１メモリにおける該波形データの記憶位置を示す波形クラスタ情報と、振幅制御情報とを設定し、（５）該割り当てたチャンネルに発音開始を指示することを特徴とする。
【００１４】
請求項４に係る発明（後述する第３実施例に対応する）では、前記Ｔと前記Ｓとの大小関係はＴ≦Ｓであるようにする。また、制御部が、（１）前記複数の波形データの１つを選択し、該波形データと該音高とに基づいて前記速度情報を決定し、（２）前記全帯域幅Ｔから、該楽音の前記速度情報に応じて前記基本再生期間のうちに読出す必要のあるサンプルデータのページ数を示す帯域幅Ｕを割り当て、（３）該楽音に、前記所定数Ｓあるチャンネルのうちの、その時点で空きチャンネルとなっている１つを割り当て、（４）該割り当てたチャンネルの前記制御レジスタに、前記決定した速度情報と、第１メモリにおける該波形データの記憶位置を示す波形クラスタ情報と、振幅制御情報とを設定し、（５）該割り当てたチャンネルに発音開始を指示することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、転送部によるページ単位の転送は、制御部（ＣＰＵ）に対する割り込みを行うことなしに、自動的に行われる。従って、ＣＰＵの負荷は軽減できる。また、第１メモリから第２メモリへの波形サンプルの転送の際の各部のボトルネックを考慮したバランスの取れた設計を行うことができる。
【００１６】
特に、請求項１，２に係る各発明では、発音指示された楽音を、割り当てたｃｈで、生成させることができる。また、速度情報（Ｆナンバ）が商（Ｔ／Ｓ）の整数部に対応する値以下になるようにしているので、第１のメモリの帯域幅の割り当てを別途行う必要がない。
【００１７】
請求項３に係る発明では、全帯域幅から各ｃｈの帯域幅を割り当てるようにしているので、発音指示された楽音を、割り当てたｃｈで、割り当てた帯域幅を用いて、生成させることができる。また、第１のメモリの全帯域Ｔ内で発音に使用する帯域幅の割り当てを行っているので、速度情報の上限を制限する必要がない。
【００１８】
請求項４に係る発明では、発音指示された楽音を、割り当てた帯域幅を用いて、割り当てたｃｈで、生成させることができる。第１のメモリの全帯域Ｔ内で発音に使用する帯域幅を割り当てることにより、複数ｃｈのうちの少なくとも１つのｃｈが空きｃｈとなるので、ｃｈの割り当て処理を、その時点の空きｃｈの１つを選択するだけの簡単な処理とすることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態に係る楽音信号生成システムの全体構成図
【図２】ＮＡＮＤ型フラッシュメモリのメモリマップを示す図
【図３】波形メモリのメモリマップを示す図
【図４】波形データの転送のタイミングを説明するためのタイムチャート図
【図５】音源部と転送制御部に関する詳細図
【図６】発音開始以降の各種アドレスの時間変化（１ｃｈ分）を示す図
【図７】ノートオンイベント処理および発音割当処理のフローチャート
【図８】発音割当処理の別の実施例のフローチャート
【発明を実施するための形態】
【００２０】
以下、図面を用いて本発明の実施の形態を説明する。
【００２１】
図１は、本発明の実施の形態に係る楽音生成装置の全体構成を示す。この楽音生成装置は、汎用のＰＣ（パーソナルコンピュータ）にサウンドボードを実装して構成してもよいし、汎用のＰＣではなく電子楽器などの楽音信号生成を行う専用の装置として構成してもよい。
【００２２】
図１において、ＣＰＵ１０１は、装置全体の動作を制御する処理装置である。ランダムアクセスメモリ（ＲＡＭ）１０２は、ＣＰＵ１０１が実行するプログラムのロード領域やワーク領域に使用する揮発性メモリである。ＮＯＲ型フラッシュメモリ１０３は、イニシャルプログラムローダなどのプログラムや音色データなどの各種のデータを格納した書き替え可能な不揮発性メモリである。操作子１０４は、本システムを汎用ＰＣで構成する場合はキーボードやマウスなどであり、電子楽器などとして構成する場合は外部パネル上に設けられた各種のスイッチなどの操作子である。表示器１０５は、各種の情報を表示するためのディスプレイである。ＭＩＤＩ  Ｉ／Ｏ１０６は、各種のＭＩＤＩ機器と接続しＭＩＤＩ信号を入出力するインターフェースである。
【００２３】
ＮＡＮＤ型フラッシュメモリ１０７は、複数の波形データを格納した書き替え可能な不揮発性メモリであり、ページ単位（ここでは、１ページ＝２０４８バイト）でデータが読み書きされる。ページ単位のデータ読出しは、バースト転送で高速に行うことができる。ＮＡＮＤ型フラッシュメモリ１０７のメモリマップは、図２で詳しく説明する。ＤＰ  ＲＡＭ１０９は、ＮＡＮＤ型フラッシュメモリ１０７から波形メモリ１１１への波形データ転送用のバッファメモリであり、同時読み書きが可能なデュアルポート（２−ｐｏｒｔ）の半導体メモリにより構成されている。その容量は、１ページ（２０４８バイト）＋エラー訂正コード分である。ＤＰ  ＲＡＭ１０９は、スタティックＲＡＭ（ＳＲＡＭ）で構成されている。波形メモリ１１１は、各波形データの先頭ページ（クラスタ）のデータを予め記憶しておくプリロード領域と、各発音チャンネル（ｃｈ）毎の２ページ分のバッファ領域とを有する。波形メモリ１１１は、シンクロナスダイナミックＲＡＭ（ＳＤＲＡＭ）で構成されている。波形メモリ１１１のメモリマップは、図３で詳しく説明する。なお、ＤＰ  ＲＡＭ１０９と波形メモリ１１１とは、ランダムアクセス（個別にアドレスを指定して行う読み出しまたは書き込み）を、フラッシュメモリ１０７に比較して、極めて高速に行うことができる。さらに、連続したアドレスへのアクセスは、バーストモードを用いて高速化することができる。
【００２４】
Ｆ→ＤＰ転送部１０８は、ＮＡＮＤ型フラッシュメモリ１０７からＤＰ  ＲＡＭ１０９に波形データをページ単位で転送する処理を行う。ＤＰ→Ｍ転送部１１０は、ＤＰ  ＲＡＭ１０９から波形メモリ１１１に波形データを（１ページ分のデータを所定回数に分けて）転送する処理を行う。これらの転送部１０８，１１０は、転送制御部１１２による制御の元で動作する。転送の動作のタイミングについては、図４などで詳しく説明する。転送制御部１１２は、フラッシュメモリ１０７からＤＰ  ＲＡＭ１０９への転送とＤＰ  ＲＡＭ１０９から波形メモリ１１１への転送とを制御する。複数の転送要求が生じた場合は、（１度に１ページしか転送できないので）先着順に１ページずつ転送するよう制御する。なお、現在入手できるＮＡＮＤ型フラッシュメモリのデータ幅は８ビットに限定される。そのため、Ｆ→ＤＰ転送部１０８は、ＮＡＮＤ型フラッシュメモリの連続する２アドレスから読み出した２データをつなげて１６ビットのデータに変換し、データ幅が１６ビットであるＤＰ  ＲＡＭ１０９に書き込む。また、波形メモリ１１１のデータ幅も１６ビットであり、各アドレスに１６ビットのデータが記憶される。従って、ＤＰ→Ｍ転送部１１０は、上記Ｆ→ＤＰ転送部１０８で行っているような変換を行わなくてよい。
【００２５】
音源１１３は、複数の発音ｃｈ（ここでは１２８ｃｈとする）を備えており、各発音ｃｈ毎に読出しアドレスを生成して波形メモリ１１１から波形データ（波形サンプルデータ）を読出し、読出された波形データに対してエンベロープ付与を行い、各発音ｃｈ毎の楽音信号を生成する。さらに、音源１１３は、生成された複数ｃｈの楽音信号を混合し、混合された楽音信号に対してリバーブなどの効果を付与する。音源１１３から出力された楽音信号は、ＤＡＣ（ディジタルアナログ変換器）１１４によりアナログ音響信号に変換され、サウンドシステム１１５により放音される。
【００２６】
図２は、ＮＡＮＤ型フラッシュメモリ１０７のメモリマップを示す。ＮＡＮＤ型フラッシュメモリは、マスクＲＯＭよりもコストが安く、ページの頭出し（ここで言う「頭出し」とは、フラッシュメモリにリードコマンドとリードアドレスが与えられてからデータ読出しが開始されるまでの時間区間あるいはそこで行われる処理を指すものとする）に時間が掛かるが、読出しが始まった後のデータ転送速度は速い（バースト転送）という特徴を有する。ＮＡＮＤ型フラッシュメモリ１０７には、予め複数の波形データＷａｖｅ１，Ｗａｖｅ２，…を格納しておく。１つの波形データ、例えばＷａｖｅ２は、アドレスが連続した複数のページＷ２（０），Ｗ２（１），…に記憶する。なお、各波形データＷａｖｅ＊（＊は１，２，…）の連続する複数のページあるいはそのページに記憶された波形サンプルデータは、Ｗ＊（０），Ｗ＊（１），…と表記するものとする。上述したとおり、１ページは２０４８バイト（１０２４ワード＝１０２４サンプル）である。１つの波形が連続した複数のページに記憶されているので、どのページを読出すかページ毎に指示しなくてもよく、ｃｈ毎にページの指示は１回で済む。なお、各波形データＷａｖｅ１，Ｗａｖｅ２，…のそれぞれの先頭ページ（Ｗ＊（０））だけを、別の箇所にまとめて記憶するようにしてもよい。その場合でも、第２ページ（Ｗ＊（１））以降は、それぞれ連続して記憶されていなければならない。図中、ＷＡは、波形データの第２ページＷ＊（１）のアドレスを設定する制御レジスタの１つである（後に詳しく説明する）。また、ＮＡＮＤ型フラッシュメモリ１０７は、８ビット幅でデータを読み書きするものとする。
【００２７】
図３は、波形メモリ１１１のメモリマップを示す。波形メモリ１１１には、プリロード領域３０１とバッファ領域３０２が設けられている。プリロード領域３０１は、図２に示したＮＡＮＤ型フラッシュメモリ１０７に記憶されている波形データＷａｖｅ１，２，…の数分の各先頭ページＷ１（０），Ｗ２（０），Ｗ３（０），…を記憶する領域である。プリロード領域３０１への各先頭ページの記憶は、システム立ち上げ時に行われる。バッファ領域３０２には、発音ｃｈ数×２のバッファ、すなわち各発音ｃｈ毎の２つのバッファ（１つのバッファの大きさは１ページ＝２０４８バイトである）が設けられている。発音ｃｈｉ（ｉは１，２，…，１２８）に対応する領域をＢｉａ，Ｂｉｂで表す。Ｂｉａ，Ｂｉｂは、波形メモリ１１１のアドレス空間内に連続して配置される。
【００２８】
ＰＡは、音源１１３が波形メモリ１１１から波形サンプルを読出す際、最初に読出すべきプリロード領域３０１中の先頭ページの読出しアドレスを設定する制御レジスタの１つである。この図では第２ｃｈで波形データＷａｖｅ３の再生が指定されたケースを示しており、ＰＡでその先頭ページＷ３（０）が指定されている。矢印３１１は、音源が当該先頭ページの波形サンプルを読出す際の読出しアドレス（ピッチカウンタ）の進行方向を示す。ＢＡは、前記プリロード領域３０１の先頭ページを読み終えた後、バッファ領域３０２中のどのバッファから波形サンプルを読出すかを示す読出しアドレスを設定する制御レジスタの１つである。この図では第２ｃｈでの再生が指定されているので、ページＷ３（０）を読み終えた時点の初期値として、ＢＡには、第２ｃｈが使用するバッファＢ２ａ，Ｂ２ｂの先頭アドレスが設定される。矢印３１２は、読出しアドレス（ピッチカウンタ）の進行方向を示す。矢印３１２のようにバッファＢ２ａとＢ２ｂを読出した後、引き続きバッファの先頭に戻って矢印３１３，３１４のように読出しを続ける。このような波形メモリの読出しを行うためには、プリロード領域Ｗ３（０）の読出しを行っている間に、次に読出すべき波形サンプルデータをバッファＢ２ａに格納し、さらにバッファＢ２ａを読出している間にバッファＢ２ｂに波形サンプルデータを格納し、次にバッファＢ２ｂを読出している間にバッファＢ２ａに波形サンプルデータを格納し、…というようにバッファＢ２ａとＢ２ｂとを交互に使用して再生を続ける。なお、各ｃｈのバッファ数は３以上であってもよい。また、波形メモリ１１１は、１６ビット幅でデータを読み書きするものとする。
【００２９】
図４（ａ）は、転送制御部１１２の制御の元で転送部１０８，１１０が実行する波形データの転送のタイミングを説明するためのタイムチャートである。矢印ｔの向きに時間が進むものとする。複数の縦線４０１はサンプリングクロックの発生タイミングを示し、隣り合う縦線４０１の間の区間が１サンプリング周期（以下、１ＤＡＣという）を示している。本実施形態では、１ＤＡＣは２２．６７ｎ秒である。「ＮＡＮＤ型フラッシュ→ＤＰメモリ」と記載したタイムチャートは、Ｆ→ＤＰ転送部１０８によりＮＡＮＤ型フラッシュメモリ１０７からＤＰ  ＲＡＭ１１０に、１ページ分の波形サンプルとエラー訂正コードを転送する処理のタイムチャートである。「ＤＰメモリ→波形メモリ」と記載したタイムチャートは、ＤＰ→Ｍ転送部１１０によりＤＰ  ＲＡＭ１１０から波形メモリ１１１のバッファ領域（その中の指定したｃｈに対応するバッファ）に、１ページ分の波形サンプルを転送する処理、および、音源１１３が波形メモリ１１１から波形サンプルを読出す処理のタイムチャートである。
【００３０】
４１１は、ＮＡＮＤ型フラッシュメモリ１０７の頭出しを行っている期間を示す。頭出し４１１の後、４１２に示すように、１ページ分のデータ２０４８バイトがページ読出し（バースト転送）される。４１３はエラー訂正コードの読出し期間を示す。本実施形態では、４１１〜４１３に示すように、４ＤＡＣでＮＡＮＤ型フラッシュメモリ１０７から１ページのデータおよびエラー訂正コードを読出してＤＰ  ＲＡＭ１０７に書込むことができる。この４ＤＡＣという転送時間は、ＮＡＮＤ型フラッシュメモリ１０７のページ読出し（バースト転送）に関する仕様に基づいて決まるものである。
【００３１】
４２１は、音源１１３が楽音生成のために波形メモリ１１１から１２８ｃｈ分の波形サンプルを読出す期間である。４２２は、ＤＰ  ＲＡＭ１０７上の１ページ分の波形サンプルを波形メモリ１１１の対応するｃｈのバッファに転送する期間を示す。この転送は、ＤＲＡＭ間のデータ転送であり、バーストモードによる高速なデータ転送を行うものとする。４２３は、波形メモリ１１１のリフレッシュを行う期間である。リフレッシュ４２３の区間の時間長さは、波形メモリ１１１の仕様により決まる。１ＤＡＣからリフレッシュ４２３の区間を除いた区間を、波形サンプル読出し区間４２１とバースト転送区間４２２とで分けあう。
【００３２】
波形サンプル読出し区間４２１の時間長さは、本装置で何ｃｈの楽音生成を行うか、および、各ｃｈで何点補間を行うかという要求仕様、並びに、音源１１３が時分割で各ｃｈの波形サンプルを波形メモリ１１１から読出すときにどれ程の時間分解能で１ＤＡＣ中に何サンプル読出し可能かという仕様に基づいて、設計者が決める。バースト転送４２２の区間の時間長さは、この区間で何サンプルの転送を行う必要があるかという要求仕様、および、ＤＰ  ＲＡＭ１０７から波形メモリ１１１へのバースト転送に関する速度の仕様に基づいて、設計者が決める。ただし、ＤＰ  ＲＡＭ１０７は読出しと書込みが同時に実行可能なメモリで、その大きさは１ページ＋エラー訂正コード分であるから、フラッシュメモリ１０７からＤＰ  ＲＡＭ１０７へ読出した１ページデータは、フラッシュメモリ１０７からＤＰ  ＲＡＭ１０７へのページ読出しにかかるＤＡＣ数と同じＤＡＣ数で、ＤＰ  ＲＡＭ１０７から波形メモリ１１１に転送する必要がある。従って、１回のバースト転送４２２の区間では、１ページデータのサンプル数を前記ＤＡＣ数で割ったサンプル数（小数点以下切上げ）の転送を行う必要がある。本実施形態では、フラッシュメモリ１０７の１ページ分のデータ２０４８バイト＝１０２４サンプルをＤＰ  ＲＡＭ１０７に読出すのに４ＤＡＣかかるので、ＤＰ  ＲＡＭ１０７に読出された１ページ分のデータを波形メモリ１１１に転送するのも４ＤＡＣに分けて行う。従って、１回のバースト転送区間４２２では、１ページ分のデータ２０４８バイト＝１０２４サンプルの４分の１に当たる２５６サンプルを転送する。
【００３３】
本実施形態では、各ｃｈは２点補間を行い、全部で１２８ｃｈの楽音生成を行うことを前提とし、その処理を可能にするために必要な波形サンプル読出し区間４２１の時間長さが確保されているものとする。また、１ＤＡＣから波形サンプル読出し区間４２１とリフレッシュ４２３を除いた区間４２２で、２５６サンプル＝５１２バイトのバースト転送が可能なハードウェアを用いているものとする。なお、４ＤＡＣで１ページデータをＤＰ  ＲＡＭ１０７から波形メモリ１１１へ転送し終えた後、区間４２５で、ＤＰ  ＲＡＭ１０７内のエラー訂正コードに基づいて、それまでに波形メモリ１１１のバッファ領域に転送した１ページ分の波形サンプル２０４８バイトのエラー訂正を行う。ＮＡＮＤ型フラッシュメモリでは、このようなエラー訂正が必須である。
【００３４】
なお、ＤＰメモリ→波形メモリのバースト転送は、ＮＡＮＤ型フラッシュ→ＤＰメモリの転送が開始されたタイミングから２ＤＡＣ遅れたＤＡＣ周期から開始する。これは、付番４１２に示した２０４８バイト＝１０２４サンプルの１ページデータを付番４２２に示したバースト転送で２５６サンプルずつ４回に分けて転送することが可能となるように（要するに４回のバースト転送のそれぞれについて、そのバースト転送が開始するまでに、そのバースト転送で転送する２５６サンプルのデータがＮＡＮＤ型フラッシュメモリ１０７からＤＰ  ＲＡＭ１０９に転送し終えているように）、２ＤＡＣ遅れさせているものである。（従って、ＤＰ  ＲＡＭ１０９は、２−ｐｏｒｔでなくとも良く、例えば図１の１２１，１２２に示すような２個のＲＡＭでも良いが、ここでは書込みと読出しを安全に行うために２−ｐｏｒｔのＲＡＭを用いた。）
【００３５】
図５は、音源部１１３と転送制御部１１２に関する詳細図である。音源部１１３は、制御レジスタ（音源レジスタ）５０１を備える。制御レジスタ５０１は、各ｃｈ毎のパラメータおよびノートオンＮＯＮを記憶するレジスタである。ＣＰＵ１０１は、例えばＭＩＤＩ  Ｉ／Ｏ１０６経由で楽音発生指示を受けたとき、楽音生成するｃｈを割り当て、そのｃｈに対応する制御レジスタに、その演奏情報に基づくパラメータを設定してノートオンを書込む。これにより、音源１１３は、そのｃｈでの楽音生成処理を開始する。各レジスタの詳細を以下に示す。
【００３６】
（１）ＷＡ：図２で説明したＮＡＮＤ型フラッシュメモリ１０７中の当該ｃｈで読出す波形データＷａｖｅ＊の第２ページＷ＊（１）のアドレスをセットする。
（２）ＰＡ：図３で説明した波形メモリ１１１のプリロード領域３０１中の当該ｃｈで読出す波形データＷａｖｅ＊の先頭ページＷ＊（０）のアドレスをセットする。システム立上げ時に、ＮＡＮＤ型フラッシュメモリ１０７の全波形データＷａｖｅ１，２，…の先頭ページＷ１（０），Ｗ２（０），…が、プリロード領域３０１に既に格納されている。
（３）ＢＡ：図３で説明した波形メモリ１１１のバッファ領域３０２中の当該ｃｈに対応する１組のダブルバッファＢｎａ，Ｂｎｂのアドレスをセットする。
（４）Ｆ：Ｆナンバをセットする。Ｆナンバは、読み出される波形データのピッチをシフトするパラメータであり、その値は発生させたい楽音のピッチ（音高）に応じて決定される。すなわち、Ｆナンバの値は、波形データのピッチからシフトしなくてよい場合は「１」とされ、ピッチアップしたいときは「１」より大きな値とされ、ピッチダウンしたいときは「１」より小さな値とされる。
（５）ＩＬ，ＨＴ，１ＤＲ，１ＤＬ，２ＤＲ，２ＤＬ，ＲＲ：楽音のエンベロープを制御するためのパラメータをセットするレジスタである。ＩＬはイニシャルレベル、ＨＴはホールドタイムを示す。これらは、楽音発生開始からホールドタイムＨＴの時間区間は、エンベロープ波形として、イニシャルレベルＩＬを固定的に出し続けることを指示するパラメータである。ＮＡＮＤ型フラッシュメモリ１０７に用意してある波形データは、何れも、その立ち上がり部分については元のサンプリング波形における音量変化をそのまま利用する方がリアルな楽音が得られるような波形データとしてある。そこで、その立ち上がり部分のホールドタイムＨＴだけの時間区間ではイニシャルレベルＩＬをエンベロープ波形としている。１ＤＲは１ｓｔディケイレート、１ＤＬは１ｓｔディケイレベルである。ホールドタイムＨＴの後、１ｓｔディケイレート１ＤＲの変化率で目標値１ｓｔディケイレベル１ＤＬに至るエンベロープ波形を出力するためのパラメータである。２ｎｄディケイレート２ＤＲと２ｎｄディケイレベル２ＤＬも同様であり、１ｓｔディケイの後、２ｎｄディケイレート２ＤＲの変化率で目標値２ｎｄディケイレベル２ＤＬに至るエンベロープ波形を出力するためのパラメータである。２ｎｄディケイの後、ノートオフが来たら、リリースレートＲＲの変化率で徐々に音量レベルを減少させていく。音量レベルが所定レベル以下になったら消音する。
（６）ＮＯＮ：楽音の発生開始を指示するノートオンをセットするレジスタである。
【００３７】
ＣＰＵ１０１が、あるｃｈに対応する制御レジスタ５０１にノートオンＮＯＮも含めて上記パラメータをセットすると、音源部１１３は当該ｃｈにおける楽音発生の処理を開始する。なお、図５の音源部１１３内に示されている各種パラメータは、それぞれ、その時点で処理中のｃｈのパラメータを示している。すなわち、処理するｃｈが変われば、それに応じてパラメータの値も変化する。
【００３８】
以下、音源部１１３の各ブロックにおける１ｃｈ分の処理を説明する。同様の処理が、時分割で全１２８ｃｈに対して行われ、複数の楽音が並行して生成される。
【００３９】
ピッチカウンタ５０３には、ノートオンＮＯＮおよびＦナンバが入力する。ピッチカウンタ５０３は、ノートオン時点でゼロリセットされ、その後、１ＤＡＣ毎にＦナンバを累算する。この累算値は、整数部アドレスと小数部アドレスとして出力される。ピッチカウンタ５０３は、ノートオフ後も累算を続けるが、そのｃｈの楽音生成処理が停止されると累算を停止する。ピッチカウンタ５０３の累算値の整数部の下位１０ビットは読出部５０６に入力する。
【００４０】
ＰＢアドレス発生部５０５は、上記制御レジスタの（２）と（３）で説明したアドレスＰＡ（発音開始直後に読出すべき波形メモリ１１１のプリロード領域３０１の先頭ページのアドレス（図３））とＢＡ（波形メモリ１１１の当該ｃｈに対応するバッファアドレス（図３））を入力し、ＰＢアドレスを読出部５０６に出力する。ＰＢアドレスは、波形メモリ１１１中の読出すべき領域の先頭を指定するための上位アドレスである（実際にはＰＢアドレスは上位部分のみであるので、このＰＢアドレスの下位に１０ビット分の０を付けたアドレスが波形メモリ１１１中の読出すべき領域の先頭を指定する絶対アドレスになる）。具体的には、ＰＢアドレス発生部５０５は、発音開始直後はＰＡをＰＢアドレスとして出力し、該ＰＡで指定された波形メモリ１１１のプリロード領域３０１の先頭ページの波形サンプルデータを読み終えたら、ＢＡをＰＢアドレスとして出力し、該ＢＡで指定された波形メモリ１１１のバッファ領域３０２の当該ｃｈに対応するバッファＢ＊ａの波形サンプルデータを読み終えたら、ＢＡ＋１をＰＢアドレスとして出力し（上述したようにＢＡは下位１０ビット以下を除いた上位部分であるので、ＢＡ＋１はバッファＢ＊ｂを指すことになる）、該ＢＡ＋１で指定された波形メモリ１１１のバッファ領域３０２の当該ｃｈに対応するバッファＢ＊ｂの波形サンプルデータを読み終えたら、再びＢＡをＰＢアドレスとして出力し、以後、バッファＢ＊ａとＢ＊ｂを交互に読出すようにＢＡとＢＡ＋１を交互にＰＢアドレスとして出力する。このようなＰＢアドレスの下位に、ピッチカウンタ５０３から出力される整数部下位１０ビットを付加し、読出しアドレス（絶対アドレス）が生成される。読出部５０６は、波形メモリ１１１から、該読出しアドレスで当該ｃｈの波形サンプルデータを読出す。ここでは該読出しアドレスの波形サンプルとその次の波形サンプルの２サンプルを読出すものとする。なお、波形メモリ１１１のアドレスは、ワード単位である。
【００４１】
補間部５０７は、１ＤＡＣ毎に、読出された２サンプルの間を小数部アドレス（ピッチカウンタ５０３から出力されたもの）に応じて２点補間（直線補間）して、１つの補間サンプルを算出する。楽音生成処理が停止されたｃｈについては、補間サンプル「０」を出力する。
【００４２】
振幅エンベロープジェネレータ（ＥＧ）５０２は、当該ｃｈのエンベロープ波形生成用のパラメータに基づいて、振幅エンベロープ（ＡＥ）波形を生成し、音量制御部５０８に出力する。音量制御部５０８は、１ＤＡＣ毎に、補間サンプルの振幅をＡＥ波形の値に基づいて制御し、当該ｃｈの楽音サンプルとして出力する。累算部５０９は、１ＤＡＣ毎に、全ｃｈの各楽音サンプルを累算し、全ｃｈを混合した結果の楽音サンプルとして出力する。なお、不図示の効果付与部でリバーブその他の効果を付与して出力しても良い。
【００４３】
ピッチカウンタ５０３から出力された整数部上位ビット（整数部から下位１０ビットを除いた部分）は、Ｃアドレス発生部５０４およびＰＢアドレス発生部５０５に入力する。Ｃアドレス発生部５０４には、ＮＡＮＤ型フラッシュメモリ１０７の第２ページアドレスＷＡが入力する（図２）。Ｃアドレス発生部５０４は、入力したデータに基づいてＣアドレスを生成出力する。Ｃアドレスは、ＮＡＮＤ型フラッシュメモリ１０７の波形データの読出しページを特定するクラスタ（ページ）アドレスである。Ｃアドレスがどのように変化するかについては、図６で詳しく説明する。
【００４４】
当該ｃｈに対応して生成されたＣアドレスは、そのｃｈ番号とともに、転送制御部１１２内の転送待ちキュー５２１に入力される。転送待ちキュー５２１は、先入れ先出しのキューである。ピッチカウンタ５０３から転送指示が出力されたとき、転送待ちキュー５２１は、Ｃアドレスとｃｈ番号とを取り込んでキューに登録する。そのタイミングについては、図６で詳しく説明する。転送待ちキュー５２１に登録されたＣアドレスとｃｈ番号は、要するに、当該ｃｈ番号のｃｈについて、その時点で波形メモリ１１１から読出し再生しているページデータの読出しが終わるまでに、当該ＣアドレスのページデータをＮＡＮＤ型フラッシュメモリ１０７からＤＰ  ＲＡＭ１０９経由で波形メモリ１１１に転送しておく必要がある、ということを意味している。
【００４５】
Ｆ→ＤＰ転送指示部５２２は、ＮＡＮＤ型フラッシュメモリ１０７からＤＰ  ＲＡＭ１０９へのページデータの転送が行われていないとき、転送待ちキュー５２１からＣアドレスとｃｈ番号を取り出し、Ｆ→ＤＰ転送部１０８に、ＮＡＮＤ型フラッシュメモリ１０７中の当該Ｃアドレスで特定されるページデータをＤＰ  ＲＡＭ１０９へ転送する指示を出す。この指示に応じて、Ｆ→ＤＰ転送部１０８は、図４の「ＮＡＮＤ型フラッシュ→ＤＰメモリ」のタイムチャートで説明した１ページデータの転送（付番４１１〜４１３）を行う。具体的には、Ｆ→ＤＰ転送部１０８がフラッシュメモリ１０７にＣアドレスを指定した読出し命令を出力すると、フラッシュメモリ１０７から１ページデータがバースト転送されてくるので、その転送データをＤＰ  ＲＡＭ１０９へ書込む。
【００４６】
また、Ｆ→ＤＰ転送指示部５２２は、Ｆ→ＤＰ転送部１０８に転送指示を出したとき、ＤＰ→Ｍ転送指示部５２３に対して該転送指示とｃｈ番号を伝える。ＤＰ→Ｍ転送指示部５２３は、この転送指示を受けて、ＤＰ→Ｍ転送部１１０に当該ｃｈ番号と転送指示を出力し、ＤＰ→Ｍ転送部１１０がＤＰ  ＲＡＭ１０９のページデータを波形メモリ１１１の当該ｃｈに対応するバッファにバースト転送するように制御する。これにより、図４の「ＤＰメモリ→波形メモリ」のタイムチャートで説明したＤＰ  ＲＡＭ１１０から波形メモリ１１１のバッファ領域へのバースト転送（付番４２２）が行われる。具体的には、ＤＰ→Ｍ転送部１１０は、ＤＰ→Ｍ転送指示部５２３からｃｈ番号と転送指示を受けると、その転送指示のタイミングから２ＤＡＣ周期後の１ＤＡＣ周期の区間で、音源１１３による波形メモリ１１１のアクセス期間（図４の４２１）の後に、ＤＰ  ＲＡＭ１１０にページデータのアドレスを指定した読出し命令を出力する。これにより、ＤＰ  ＲＡＭ１１０から当該ページデータのうちの先頭の２５６Ｗがバースト転送されてくるので、その転送データを波形メモリ１１１の当該ｃｈのバッファ領域へ図４の４２２に示したように書込む。さらに、引き続く２５６Ｗ×３ブロックのデータについても、ＤＰ→Ｍ転送部１１０の制御の元で、引き続く３ＤＡＣの区間を利用して、バースト転送により波形メモリ１１１の当該ｃｈのバッファ領域へ書込む。
【００４７】
なお、ＤＰメモリ→波形メモリのバースト転送で、２５６Ｗを当該ｃｈの波形メモリ１１１のバッファ領域に転送する際、当該ｃｈのバッファはＢ＊ａ，Ｂ＊ｂの２つあり、どちらに転送するかを決めておく必要がある。本実施形態のシステムでは、その時点で、当該ｃｈについて波形メモリ１１１のプリロード領域３０１またはバッファＢ＊ａ，Ｂ＊ｂの何れかから波形サンプルの音源１１３による読出しが行われているはずであるから、プリロード領域３０１またはバッファＢ＊ａから読出しが行われているならバッファＢ＊ｂをバースト転送先とし、バッファＢ＊ｂから読出しが行われているならバッファＢ＊ａをバースト転送先としている。
【００４８】
図６は、発音開始以降の各種アドレスの時間変化（１ｃｈ分）を示す。図中、「整数部下位１０ｂｉｔｓ＆小数部」は、図５のピッチカウンタ５０３でＦナンバを累算した累算結果の整数部の下位１０ビットおよび小数部の時間変化を示す。Ｆナンバの累算に応じて値が増加していき、整数部の下位１０ビットが１０２３を越えたとき桁上がりが生じ、０に戻って（厳密には小数部の値が残っているので１以下の値である）再び増加する。これにより、図のような鋸歯状の変化を示す。「整数部上位ｂｉｔｓ」は、ピッチカウンタ５０３の上位部分（累算結果から整数部の下位１０ビットおよび小数部を除いた上位部分）の時間変化を示す。発音開始直後は０であり、以後、「整数部下位１０ｂｉｔｓ＆小数部」の桁上がりが生じる毎に、１ずつ増加していく。
【００４９】
「転送指示」は、図５のピッチカウンタ５０３から転送待ちキュー５２１に出力される転送指示信号を示す。発音開始時に付番６０１のように出力され、以後、「整数部下位１０ｂｉｔｓ＆小数部」の桁上がりが生じる毎に付番６０２，６０３のように出力される。「ＰＢアドレス」は、図５のＰＢアドレス発生部５０５から出力されるＰＢアドレスの時間変化を示す。発音開始直後はＰＢアドレスとしてＰＡ（波形メモリ１１１のプリロード領域３０１の先頭ページを指すアドレス（図３））が出力され、以後は、「整数部上位ｂｉｔｓ」がカウントアップされる毎にＢＡとＢＡ＋１（ＢＡは当該ｃｈに対応するバッファＢ＊ａのアドレス、ＢＡ＋１は当該ｃｈに対応するバッファＢ＊ｂのアドレス）が交互にＰＢアドレスとして出力される。
【００５０】
「Ｃアドレス」は、図５のＣアドレス発生部５０４が転送待ちキュー５２１に出力するＣアドレスの時間変化を示す。発音開始直後は、次に波形メモリ１１１に読出しておくべきページは、当該波形データの第２ページアドレスＷＡで指されるページであるから（図２）、ＣアドレスとしてＷＡが出力され、以後は、「整数部上位ｂｉｔｓ」がカウントアップされる毎に１ずつ増加していく。Ｃアドレスは、ＷＡに「整数部上位ｂｉｔｓ」の値を加算して生成する。ただし、転送指示が来るたびにＷＡからインクリメントしていってＣアドレスを生成してもよい。なお、ＷＡも、上記ＰＢアドレスなどと同様に、下位に１０ビットの０を付加して絶対アドレスになるものであるので、図２の例で言えば、ＷＡ＋１で第３ページＷ２（２）を指し、ＷＡ＋２で第４ページＷ２（３）を指し、…という対応となる。
【００５１】
「転送実行タイミング」は、図５のＦ→ＤＰ転送指示部５２２およびＤＰ→Ｍ転送指示部５２３が、図４で説明した転送を実際に実行するタイミングを示す。例えば、転送待ちキュー５２１に転送指示６０１が出力され、Ｃアドレスとｃｈ番号がキューに登録されたとしても、その時点で他のｃｈの転送が行われている場合があるので、直ちに図４の転送が行われるとは限らず、他のｃｈの転送が終わった後に、少し遅れた付番６１１のタイミングで転送が行われる。同様に、転送指示６０２で転送待ちキュー５２１に登録されたＣアドレスとｃｈ番号の転送は付番６１２で、転送指示６０３で転送待ちキュー５２１に登録されたＣアドレスとｃｈ番号の転送は付番６１３で、…というように、転送指示から少し遅れて転送が実行される。その遅れは、他のｃｈで実行されている転送の混み具合によるので、一定ではない。もちろん、転送指示６０１で転送待ちキュー５２１に登録した転送は転送指示６０２が来る前に実行し、転送指示６０２で転送待ちキュー５２１に登録した転送は転送指示６０３が来る前に実行し、…というように、次の転送指示が来る前に実行する必要はある。
【００５２】
ここで、ＮＡＮＤ型フラッシュメモリ１０７のアクセスに関するタイミング設計について説明する。
【００５３】
上述したように、本実施形態では、サンプリング周波数は４４．１ｋHzであり、その場合の１ＤＡＣ周期は２２．６７ｎ秒である。図２で説明したように、波形データは１ページが２０４８バイト（１０２４サンプル）のページ単位でフラッシュメモリ１０７に連続して格納されている。あるｃｈについて、１ページ分１０２４個の波形サンプルをＤＰ  ＲＡＭ１０９経由で波形メモリ１１１に転送し、それらの波形サンプルをピッチアップせずに（すなわちＦナンバ＝１）再生する場合を考えると、再生時間は１０２４ＤＡＣ（これを「基本再生期間」と呼ぶ）となる。一方、フラッシュメモリ１０７からの１ページの読出し（これを「１単位アクセス」と呼ぶ）は、図４で説明したように、４ＤＡＣかかる。従って、上記基本再生期間の間に、１０２４／４＝２５６回の単位アクセスを行うことができる。よって、ピッチアップしない場合、再生可能なｃｈ数の最大値は２５６ｃｈとなる。
【００５４】
次に、全発音ｃｈで同時に１オクターブ、ピッチアップする場合を考える。この場合、全ｃｈでＦナンバ＝２で波形サンプルが読出されるので、１単位アクセスで波形メモリ１１１に転送された１ページ分１０２４個の波形サンプルは、１ＤＡＣ毎に１つおきに使用され、前記基本再生期間の半分の５１２ＤＡＣで再生が完了することになる。従って、この再生期間の間に、５１２／４＝１２８回の単位アクセスを行うことができる。よって、全ｃｈで１オクターブのピッチアップをした場合、再生可能なｃｈ数の最大値は１２８ｃｈとなる。このケースが後述の第１実施例に相当する。
【００５５】
以上のように、発音可能ｃｈ数とＦナンバ上限値（ピッチアップの上限）とはトレードオフの関係にある。従って、フラッシュメモリ１０７の仕様（特に、ページの大きさと１単位アクセスに何ＤＡＣかかるか）に基づいて基本再生期間が決まるので、それに基づいて発音可能ｃｈ数とＦナンバ上限値（全ｃｈで同時にピッチアップするときのＦナンバ上限値）を決めればよい。すなわち、先に発音可能ｃｈ数が決まっているのであればそれに対応してＦナンバに制限をかければよい。逆に、Ｆナンバ上限値が決まっているのであればそれに対応して発音可能ｃｈ数を決めればよい。なお、ピッチダウンする場合は、１ページ分１０２４個の波形サンプルで前記基本再生期間以上の期間の再生が可能になり、その期間に上述のケースより多くの回数の単位アクセスを行うことができるので、発音可能ｃｈ数とＦナンバ上限値との関係には少し余裕が出る。
【００５６】
次に、波形メモリ１１１のアクセスに関するタイミング設計について説明する。
【００５７】
本実施形態のシステムでは、１単位アクセスでＤＰ  ＲＡＭ１０９に転送された１０２４サンプルを、４ＤＡＣに分けて２５６サンプル（５１２バイト）ずつＤＰ  ＲＡＭ１０９から波形メモリ１１１のバッファへバースト転送している（図４）。４ＤＡＣに分けて２５６サンプルずつバースト転送するのは、１単位アクセス（フラッシュメモリ１０７からの１ページデータの読出し）に４ＤＡＣかかることに合わせたものである。１ＤＡＣ周期からこのバースト転送の期間と波形メモリ１１１のリフレッシュの期間を除いた期間が、音源１１３が各発音ｃｈの楽音生成のために波形サンプルを読出す期間になる。従って、バースト転送の期間を大きく取らなければならないようなケースでは、発音ｃｈのための読出し期間を減らさないといけないので、それに応じて発音可能ｃｈ数を減らすように設計する必要がある。逆に、バースト転送の期間と回数をもっと減らすことができれば、それに応じて発音可能ｃｈ数を増加することができる。
【００５８】
ここで、「帯域幅」と「全帯域幅」について説明しておく。「全帯域幅」とは、上述した基本再生期間（１ページ分のサンプルデータをサンプリング周期ごとに１サンプルの速度で再生した場合の再生時間）にフラッシュメモリ１０７から読出し可能な最大ページ数（言い替えると、基本再生期間に転送指示を出すことができる回数の上限値）である。本実施形態では、基本再生期間が１０２４ＤＡＣで、フラッシュメモリ１０７から１ページ読出しするのに４ＤＡＣかかるので、全帯域幅は２５６である。「帯域幅」とは、ある１つのｃｈで、基本再生期間に、フラッシュメモリ１０７から読出す最大ページ数（当該ｃｈが転送指示を出す最大回数）である。例えば、あるｃｈにおいて、Ｆナンバ＝１で楽音生成するなら、基本再生期間１０２４ＤＡＣの間に１回だけ転送指示を出せば、その１回の転送で波形メモリに書込まれた１０２４サンプルで基本再生期間内におけるＦナンバ＝１の再生がまかなえるので、当該ｃｈの帯域幅は１である。もしＦナンバ＝２なら帯域幅は２である。もしＦナンバ＝１．１なら、基本再生期間の１０期間分で１１回の転送指示（１１ページ分の転送）が必要だから、前記１０期間のうちのどこかで２回の転送指示を出さなければならず、当該ｃｈの帯域幅は２となる。従って、Ｆナンバの小数部を切り上げた値が、そのｃｈの帯域幅となる。また、全ｃｈの帯域幅の和が全帯域幅を越えることがないようにすることが必要である。越えてしまうと、何れかのｃｈで発生した転送要求が処理できなくなるからである。
【００５９】
以上のようなタイミング設計に係る条件に応じて、以下では、上述の実施形態のシステムにおける第１〜第３の３つの実施例を説明する。
【００６０】
図７（ａ）は、第１〜第３実施例の何れにも適用されるノートオンイベント処理のフローチャートである。この処理は、ＣＰＵ１０１が、例えばＭＩＤＩ  Ｉ／Ｏ１０６からＭＩＤＩノートオンイベントを入力したときに、実行するものである。ステップ７０１では、入力したＭＩＤＩノートオンイベントの演奏情報に基づいて、ノートナンバとベロシティをレジスタｎｎ，ｖｅｌにセットする。ステップ７０２では、フラッシュメモリ１０７中の現在選択されている音色に対応する複数の波形データの中から、ｎｎ，ｖｅｌに応じた１つの波形データを決定（選択）する。図１のＮＯＲ型フラッシュメモリ１０３には、各音色の音色データが用意されており、その音色データ中にはｎｎ，ｖｅｌに応じた波形データを選択するための波形選択情報が含まれている。ステップ７０３では、発音ｃｈの割当を行い、そのｃｈ番号をレジスタａにセットする。ステップ７０４では、音源１１３の制御レジスタ５０１のａ ｃｈの領域に各種パラメータを設定する。ピッチシフトを制御するＦナンバは、決定された波形データをピッチシフトしない場合のピッチ（セント）と、ノートナンバｎｎの示すピッチ（セント）との音高差（セント）から決めることができる。上述したＷＡ，ＰＡやエンベロープ関連のパラメータは音色データに含まれている。ＢＡは、割り当てられたｃｈ番号から決めることができる。最後に、ステップ７０５で、ノートオンＮＯＮにａ ｃｈの発音開始指示を書込み、処理を終了する。
【００６１】
以上により、ａ ｃｈについてノートオンＮＯＮを含む音源レジスタにデータが設定されたので、これ以後は図１〜図６で説明した動作によりａ ｃｈでの発音が行われる。この発音処理は、図１のＮＡＮＤ型フラッシュメモリ１０７から音源１１３に至るハードウェアで実行され、ＣＰＵ１０１に割込みがかかることはない。
【００６２】
第１実施例について説明する。第１実施例は、Ｆナンバ上限値を２に制限するとともに、ｃｈ数Ｓを再生可能な１２８ｃｈに設定した場合（全ｃｈで同時に１オクターブピッチアップするケースを限界とする場合）である。全帯域幅Ｔが２５６であり、ｃｈ数Ｓはそれより少ない１２８ｃｈである。
【００６３】
上述したように、１つの音色について、録音時の音高を変えた複数の波形データが用意されており、図７（ａ）のステップ７０２では、音色毎の波形選択情報に応じて、フラッシュメモリ１０７中の複数の波形データの中から、ノートナンバｎｎとベロシティｖｅｌに応じた１つの波形データが選択されるようになっている。波形選択情報は、その音色の楽音を発音する全ノートナンバ、発音する全ベロシティのうちに、互いに重ならない複数の音域と強度の範囲（リージョン）を定義するとともに、その各リージョンに、その音色に対応する複数の波形データの１つを割り当てる情報である。前述したステップ７０２では、この波形選択情報をノートナンバｎｎとベロシティｖｅｌで参照し、複数の範囲の中からそのノートナンバｎｎとベロシティｖｅｌが含まれる１つのリージョンを検出して、その検出されたリージョンに割り当てられた１つの波形データを選択している。つまり、ノートナンバｎｎに応じて１つの波形データが選択されることになる。そして、ここで選択される波形データの録音時のピッチはノートナンバｎｎが示すピッチとは限らないので、前述したステップ７０４では、その波形データをノートナンバｎｎが示すピッチまでピッチシフトするためのＦナンバが決定される。
【００６４】
第１実施例では、ステップ７０２において、ステップ７０４で決定されるＦナンバが２以下となる波形データが選択されるように、この波形選択情報を工夫している。具体的には、ある音色の複数の波形データの各々について、その波形データが割り当てられるリージョンのノートナンバの上限が、その波形データを１オクターブだけピッチアップしたピッチに対応するノートナンバ以下となるようにしている。
【００６５】
このようにして、各音色の波形選択情報を用意することにより、ステップ７０２でノートナンバｎｎに応じて選択される波形データに対し、ステップ７０４で決定されるＦナンバを２以下にすることができる。なお、ここではＦナンバの上限を２に制限する例を示したが、上限は２に限らない。２．５以下、３以下等に制限した設計も可能である。要するに、全帯域幅Ｔをｃｈ数Ｓで割った商Ｔ／Ｓの整数部がＦナンバ以下になるようにすればよい。従って、この条件が満たされるように各音色ごとに複数の波形データを用意しておき、図７（ａ）のステップ７０２と７０４で楽音生成に使用する波形データとＦナンバを決定する際に、ＦナンバがＴ／Ｓの整数部以下にできるような波形データを選択し、そのようなＦナンバを決定するようにすればよい。
【００６６】
図７（ｂ）は、第１実施例の発音割当処理を示す。第１実施例では、図７（ａ）のステップ７０３で、この図７（ｂ）の処理を行う。ステップ７１１で、空きｃｈをサーチする。空きｃｈがあれば、ステップ７１３で該空きｃｈ番号をレジスタａにセットして終了する。ステップ７１２で空きｃｈがなければ、ステップ７１４で消音するｃｈの番号を決定してレジスタａにセットし、ステップ７１５でａ ｃｈを急速減衰ののち停止させてｃｈを開放し、終了する。
【００６７】
次に、第２実施例について説明する。第２実施例は、Ｆナンバ上限値を制限せず、基本再生期間において全ｃｈについての単位アクセスの回数（帯域幅）の合計は上限である全帯域幅に抑えるケースである。要するに、基本再生期間において、ピッチアップしたｃｈについては多くの回数の単位アクセスが必要になるが、逆にピッチダウンしたｃｈについては単位アクセスの数は減らせるので、全体として基本再生期間における単位アクセスの上限の数（全帯域幅）に抑えれば良いとするケースである。
【００６８】
図７（ｃ）は、第２実施例の発音割当処理を示す。第２実施例では、図７（ａ）のステップ７０３で、この図７（ｃ）の処理を行う。ステップ７２１で、ｃｅｉｌ（Ｆナンバ）をレジスタｂｗにセットする。ｃｅｉｌ（ｊ）は、数値ｊの小数部を切り上げる関数である。従って、ｂｗに、Ｆナンバの小数部を切り上げた数すなわち当該ｃｈの帯域幅がセットされることになる。一方、音源１１３の全帯域幅、すなわち前記基本再生期間に転送指示を出すことができる回数の上限は一定値（この実施形態では、１回の転送に４ＤＡＣかかるので、１０２４／４＝２５６回）であり、この値をＴｂｗとする。また、割り当て済みの全帯域幅をＡｂｗとする。ステップ７２２では、当該ｃｈにこれから割り当てようとする帯域幅ｂｗと、全帯域幅Ｔｂｗから割り当て済み帯域幅Ａｂｗを減算した値（空きの帯域幅を示している）とを比較する。前者が後者より大きければ、当該ｃｈの帯域幅を割り当てることができないので、ステップ７２３で消音するｃｈ番号を決定してレジスタｂにセットし、ステップ７２４でｂ ｃｈを急速減衰ののち停止させてｃｈを開放し、ステップ７２５でＡｂｗからＣｂｗ（ｂ）を減算して、ステップ７２２に戻る。Ｃｂｗ（ｉ）は、ｉｃｈに割り当てた帯域幅を表す。ｂ ｃｈを消音したので、ｂ ｃｈに割り当てていた帯域幅は空きとなり、その分を割り当て済み帯域幅Ａｂｗから減算するものである。
【００６９】
ステップ７２２でｂｗ≦Ｔｂｗ−Ａｂｗのときは、割り当てる帯域幅があるということであるから、ステップ７２６に進む。ステップ７２６では空きｃｈをサーチする。空きｃｈがあれば、ステップ７２８で該空きｃｈ番号をレジスタａにセットし、ステップ７３２に進む。ステップ７２７で空きｃｈがなければ、ステップ７２９で消音するｃｈの番号を決定してレジスタａにセットし、ステップ７３０でａ ｃｈを急速減衰ののち停止させてｃｈを開放し、ステップ７３１でＡｂｗからＣｂｗ（ｂ）を減算して、ステップ７３２に進む。ステップ７３２では、いまａ ｃｈに割り当てた帯域幅ｂｗをＣｂｗ（ａ）にセットし、割り当て済み帯域幅Ａｂｗにｂｗを加算する。
【００７０】
なお、ノートオフされたｃ ｃｈの楽音が所定レベル以下に減衰したら、そのｃ ｃｈを停止し空きｃｈとして開放するとともに、帯域情報の更新「Ａｂｗ←Ａｂｗ−Ｃｂｗ（ｃ）、および、Ｃｂｗ（ｃ）←０」を行うものとする。また、図７（ｃ）の処理では、Ａパートを行ってからＢパートを行うようになっているが、先にＢパートを行ってからＡパートを行うようにしてもよい。
【００７１】
次に、第３実施例について説明する。第３実施例は、基本再生期間における単位アクセスの上限値と発音可能ｃｈ数とを同数に設定することで処理を簡略化するケースである。図１から図６で説明した実施形態では、音源部１１３の全帯域幅Ｔｂｗは２５６である。第３実施例では、発音ｃｈは全部で２５６ｃｈあるものとする（図１〜６の説明で発音ｃｈ数を１２８ｃｈと説明した部分は２５６に読み替えるものとする）。その２５６ｃｈが全部発音していれば、最低でも２５６の帯域幅を使用する。逆に、未使用帯域が１つでもあるということは、１つ以上の空きｃｈが必ずあることを意味している。そのため、第３実施例では、第２実施例のＢパートに対応する処理は不要となる。
【００７２】
図４（ｂ）は、第３実施例において、図４（ａ）の期間４２１で２５６ｃｈ分の波形サンプルを、音源１１３が波形メモリ１１１から１ＤＡＣの間に読出すことを示す図である。１ｃｈ分の波形サンプルは、複数のＮサンプルをバーストモードで読出すものとする。図中、１ｃｈ’の期間で第１ｃｈのＮサンプルをバーストモードで読出し、２ｃｈ’の期間で第２ｃｈのＮサンプルをバーストモードで読出し、…、というようにする。Ｎをいくつに採るかは、何点補間を行うかによる。２点補間ならＮ＝２、３点補間ならＮ＝３、…というようにすればよい。逆に言えば、期間４２１で図４（ｂ）に示すように２５６ｃｈ分の波形サンプルを読出せる性能のハードウェアを用いる必要がある。
【００７３】
図８は、第３実施例の発音割当処理を示す。第３実施例では、図７（ａ）のステップ７０３で、この図８の処理を行う。ステップ８０１〜８０５は第２実施例の図７（ｃ）のステップ７２１〜７２５と同じである。ステップ８０６で空きｃｈをサーチするが、上述したように割り当てる帯域幅があれば空きｃｈはあるはずだから、空きｃｈサーチでは必ず空きｃｈが見つかる。ステップ８０７，８０８は、図７（ｃ）のステップ７２８，７３２と同じ処理である。
【００７４】
上記実施形態の各実施例によれば、図４で説明したように、２つの転送（フラッシュメモリ１０７からＤＰ  ＲＡＭ１０９への転送とＤＰ  ＲＡＭ１０９から波形メモリ１１１への転送）の相互タイミングを工夫して、あるページのフラッシュメモリ１０７からＤＰ  ＲＡＭ１０９への転送の完了前に、そのページ中の転送済みデータのＤＰ  ＲＡＭ１０９から波形メモリ１１１への転送を開始するようにしている。また、フラッシュメモリ１０７からＤＰ  ＲＡＭ１０９へ４ＤＡＣで転送されたページデータは、２ＤＡＣの遅れの後、ＤＰ  ＲＡＭ１０９から波形メモリ１１１へ同じ４ＤＡＣで転送される。これにより、中間バッファであるＤＰ  ＲＡＭ１０９の容量を１ページまで縮小することができた。また、ＤＰ  ＲＡＭ１０９から波形メモリ１１１への転送をバーストで行うことにより、音源部１１３による波形メモリ１１１のアクセス回数を増やし、その結果、発音可能ｃｈ数を増やすことができた。
【００７５】
なお、上記各実施例における各種の値は、それぞれ適宜変更することができる。フラッシュメモリ１０７のページのサイズは２０４８バイトに限らない。１０２４バイト、４０９６バイト等、任意のサイズであってよい（フラッシュメモリ１０７の仕様による）。基本再生期間における単位アクセス回数Ｔは２５６に限らず、３００、４５０、５１２等、任意の数であってよい（フラッシュメモリ１０７の仕様による）。波形メモリ１１１からの読出しサンプルデータ数は２５６（１ｃｈ当たり２サンプルで１２８ｃｈ分）に限らず、３１０、４６０、５１２等、任意の数であってよい（音源１１３が波形メモリ１１１から波形サンプルを読出す際、どれほどの分解能のタイムスロットで１サンプル読出し可能かの仕様による）。発音可能ｃｈ数も１２８ｃｈに限らず、（上述のボトルネックとなる種々の条件のもとで）６４、８０、１６０等、任意の数で設計することが可能である。
【００７６】
また、上記実施形態において、補間部５０７による補間処理は２点補間であったが、３点補間、４点補間等、任意数の点間の補間であってよい。ただし、例えば４点補間を行う場合は、各ｃｈで波形メモリ１１１から波形サンプルを読出すときに、１回の読出しで連続する４サンプルを読出すことになるので、発音可能ｃｈ数を減らさなければならない場合はある。波形メモリ１１１から複数サンプルを読出す場合、バーストモードにより高速に読出すようにしてもよい。上記第３実施例では、１ｃｈ毎に複数サンプルをバーストで読出す例を説明した。また、補間部５０７を、サンプルバッファを備えた補間部としてもよい。
【００７７】
上記実施形態において、任意のブロックを１チップＬＳＩ化してよい。例えば、下記のような１チップＬＳＩ化が可能である。
(1)音源部、転送制御部、Ｆ→ＤＰ転送部、ＤＰ  ＲＡＭ、およびＤＰ→Ｍ転送部の５ブロックを１チップ（集積回路）化する。波形メモリは別のチップで構成する。この場合、上記実施形態と同様に、波形メモリの書込み、および、読出しをバーストで行なって高速化する必要がある。
(2)音源部、転送制御部、Ｆ→ＤＰ転送部、ＤＰ  ＲＡＭ、ＤＰ→Ｍ転送部、および波形メモリの６ブロックを１チップ化する。この場合、内蔵される波形メモリは、読出し、および、書込みの速度が充分に高速であるので、バーストで行う必要がなくなる。
(3)さらに、１チップに各種Ｉ／ＯやＣＰＵも含めるなど、プロセスの進化に合わせて、１チップ化するブロックを増やしていくとよい。
【００７８】
上記実施形態では、各波形データをＮＡＮＤ型フラッシュメモリの連続するページに記憶したが、その代わりに、ＮＡＮＤ型フラッシュメモリの連続しない複数のページに分散して記憶するようにしてもよい。また、Ｃアドレス発生部や転送待ちキューの行っている役割を、転送要求信号を割り込み信号として、ＣＰＵが割り込み処理として実行するようにしてもよい。
【符号の説明】
【００７９】
１０１…ＣＰＵ１０１、１０２…ＲＡＭ、１０３…ＮＯＲ型フラッシュメモリ、１０４…操作子、１０５…表示器、１０６…ＭＩＤＩ  Ｉ／Ｏ、１０７…ＮＡＮＤ型フラッシュメモリ、１０８…Ｆ→ＤＰ転送部、１０９…ＤＰ  ＲＡＭ、１１０…ＤＰ→Ｍ転送部、１１１…波形メモリ、１１２…転送制御部、１１３…音源、１１４…ＤＡＣ、１１５…サウンドシステム。
【図１】
2010224078.tif 000003
【図２】
2010224078.tif 000004
【図３】
2010224078.tif 000005
【図４】
2010224078.tif 000006
【図５】
2010224078.tif 000007
【図６】
2010224078.tif 000008
【図７】
2010224078.tif 000009
【図８】
2010224078.tif 000010