(57)【要約】  楽音データを圧縮せずに多重化して記録した記憶モジュールにアクセスモジュールを接続する。読み出し指示部が各発音チャンネルの読み出し要求状況と読み出し対象である不揮発性記憶モジュールのアクセス状況に基づいて、読み出し指示を記憶モジュールに転送し、記憶モジュールから並列的に楽音データを読み出す。この楽音生成システムでは、複数の楽音データの読み出しの際に複数の不揮発性記憶モジュールから並列的に読み出すことができるため、発音遅延時間を許容時間内にすることができる。そのため、現在主流である大容量ＮＡＮＤフラッシュメモリを楽音データ用のメモリとして使用して高音質かつ小型の楽音生成システムを実現することができる。
2010010646.tif 000002
【特許請求の範囲】
【請求項１】
楽音データを多重化して記録した複数の不揮発性記憶モジュールに読み出し指示を行うアクセスモジュールであって、
外部からの１つの発音指示に応じて前記いずれかの不揮発性記憶モジュールからデータの読み出しを行い、当該読み出しを完了する前に、他の発音指示があったときに該読み出し中の不揮発性記憶モジュールと異なる不揮発性記憶モジュールから読み出しを並行して行う読み出し指示部、を具備するアクセスモジュール。
【請求項２】
前記アクセスモジュールは、外部からの複数の発音指示を複数の発音チャンネルにアサインするＣＰＵ部を更に有するものであり、
前記読み出し指示部は、前記ＣＰＵ部がアサインした複数の発音チャンネルに基づき前記複数の不揮発性記憶モジュールのいずれかに読み出し指示を行う請求項１に記載のアクセスモジュール。
【請求項３】
前記読み出し指示部は、前記発音チャンネル毎に前記不揮発性記憶モジュールへの読み出し指示状態を登録するチャンネルレジスタを有する請求項１に記載のアクセスモジュール。
【請求項４】
前記読み出し指示部は、前記不揮発性記憶モジュール毎にアクセス状態を登録するＭＭレジスタを有する請求項１に記載のアクセスモジュール。
【請求項５】
前記複数の不揮発性記憶モジュールのうち少なくとも１つの不揮発性記憶モジュールには、少なくとも前記楽音データのサンプリング周波数に係る情報を含む記録データ特性情報を保持し、
前記アクセスモジュールは、前記不揮発性記憶モジュールから取得した記録データ特性情報に基づき楽音生成処理を行う入出力部を更に有する請求項１に記載のアクセスモジュール。
【請求項６】
複数の不揮発性記憶モジュールに読み出し及び書き込みを行うアクセスモジュールであって、
外部から取得した楽音データを多重化する多重化部、及び前記複数の不揮発性記憶モジュールに保持される楽音データをファイルとして管理するファイルシステム部を含むＣＰＵ部と、
前記多重化部によって多重化された楽音データを前記複数の不揮発性記憶モジュールに記録する書き込み指示部と、
外部からの１つの発音指示に応じて前記いずれかの不揮発性記憶モジュールからデータの読み出しを行い、当該読み出しを完了する前に、他の発音指示があったときに該読み出し中の不揮発性記憶モジュールと異なる不揮発性記憶モジュールから読み出しを並行して行う読み出し指示部と、を具備するアクセスモジュール。
【請求項７】
前記ＣＰＵ部は、外部からの複数の発音指示を複数の発音チャンネルにアサインする機能を有し、
前記読み出し指示部は、前記ＣＰＵ部がアサインした複数の発音チャンネルに基づき前記複数の不揮発性記憶モジュールのいずれかに読み出し指示を行う請求項６に記載のアクセスモジュール。
【請求項８】
前記読み出し指示部は、前記発音チャンネル毎に前記不揮発性記憶モジュールへの読み出し指示状態を登録するチャンネルレジスタを有する請求項６に記載のアクセスモジュール。
【請求項９】
前記読み出し指示部は、前記不揮発性記憶モジュール毎にアクセス状態を登録するＭＭレジスタを有する請求項６に記載のアクセスモジュール。
【請求項１０】
前記複数の不揮発性記憶モジュールのうち少なくとも１つの不揮発性記憶モジュールには、少なくとも前記楽音データのサンプリング周波数に係る情報を含む記録データ特性情報を保持し、
前記アクセスモジュールは、前記不揮発性記憶モジュールから取得した記録データ特性情報に基づき楽音生成処理を行う入出力部を更に有する請求項６に記載のアクセスモジュール。
【請求項１１】
夫々同一の楽音データを記録されており、外部からの読み出し指示に応じて並列にデータの読み出しを行う複数の不揮発性記憶モジュールを含んでなる記憶モジュール。
【請求項１２】
アクセスモジュールと、前記アクセスモジュールからの読み出し指示に応じて並列にデータの読み出しを行う複数の不揮発性記憶モジュールを含む楽音生成システムであって、
前記複数の不揮発性記憶モジュールは、同一の楽音データが記録されたものであり、
前記アクセスモジュールは、
外部からの１つの発音指示に応じて前記いずれかの不揮発性記憶モジュールからデータの読み出しを行い、当該読み出しを完了する前に、他の発音指示があったときに該読み出し中の不揮発性記憶モジュールと異なる不揮発性記憶モジュールから読み出しを並行して行う読み出し指示部、を具備する楽音生成システム。
【請求項１３】
前記不揮発性記憶モジュールは、メモリバンクとして多値ＮＡＮＤフラッシュメモリを有する請求項１２に記載の楽音生成システム。
【請求項１４】
アクセスモジュールと、前記アクセスモジュールからの読み出し指示に応じて並列にデータの読み出しを行う複数の不揮発性記憶モジュールを含む楽音生成システムであって、
前記複数の不揮発性記憶モジュールは、同一の楽音データが記録されたものであり、
前記アクセスモジュールは、
外部から取得した楽音データを多重化する多重化部、及び前記複数の不揮発性記憶モジュールに保持される楽音データをファイルとして管理するファイルシステム部を含むＣＰＵ部と、
前記多重化部によって多重化された楽音データを前記複数の不揮発性記憶モジュールに記録する書き込み指示部と、
外部からの１つの発音指示に応じて前記いずれかの不揮発性記憶モジュールからデータの読み出しを行い、当該読み出しを完了する前に、他の発音指示があったときに該読み出し中の不揮発性記憶モジュールと異なる不揮発性記憶モジュールから読み出しを並行して行う読み出し指示部と、を具備する楽音生成システム。
【請求項１５】
前記不揮発性記憶モジュールは、メモリバンクとして多値ＮＡＮＤフラッシュメモリを有する請求項１４に記載の楽音生成システム。
【請求項１６】
複数の不揮発性記憶モジュールに接続され、楽音データを書き込むデータ書き込みモジュールであって、
外部から取得した楽音データを多重化する多重化部と、
前記多重化部によって多重化された前記楽音データをファイルとして管理するファイルシステム部と、
前記多重化部によって多重化された楽音データを、前記複数の不揮発性記憶モジュールに書き込む書き込み指示部と、を備えたデータ書き込みモジュール。
【請求項１７】
複数の不揮発性記憶モジュールに接続され、楽音データを書き込むデータ書き込みモジュールであって、
前記複数の不揮発性記憶モジュールのうちいずれかから取得した楽音データを多重化する多重化部と、
前記多重化部によって多重化された前記楽音データをファイルとして管理するファイルシステム部と、
前記多重化部によって多重化された楽音データを前記複数の不揮発性記憶モジュールのうち他の不揮発性記憶モジュールに書き込む書き込み指示部と、を備えたデータ書き込みモジュール。
【請求項１８】
前記データ書き込みモジュールは、接続されている不揮発性記憶モジュールのいずれかが楽音データを保持していることを検出する入出力部を更に有する請求項１７記載のデータ書き込みモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽器音などの楽音データを予め記憶した複数の不揮発性記憶モジュールから楽音データを読み出し、該楽音データに信号処理を施すことにより楽音を生成するアクセスモジュール、複数の不揮発性記憶モジュールを含む記憶モジュール、複数の不揮発性記憶モジュールにアクセスモジュールを構成要件として加えた楽音生成システム、及び楽音データを不揮発性記憶モジュールに書き込むためのデータ書き込みモジュールに関する。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを備える不揮発性記憶モジュールは、着脱型の記憶装置として半導体メモリカードを中心にその需要が広まっている。半導体メモリカードは、光ディスクやテープメディアなどと比較して非常に高価格なものではあるが、小型・軽量・耐震性・取り扱いの簡便さなどのメリットにより、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体としてその需要が広まっている。【０００３】
この半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラなどのアクセスモジュールからの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行う。また非着脱型の不揮発性記憶モジュールとして、デジタルスチルカメラやポータブルオーディオ機器本体内に組み込まれたもの、あるいはハードディスクの代替として、パーソナルコンピュータに組み込まれたものもある。【０００４】
フラッシュメモリは、メモリセルアレイと、メモリセルアレイから読み出したデータを一時的に保持するため、あるいは外部から書き込まれたデータを一時的に保持するためのＩ／Ｏレジスタ（ＲＡＭ）などから構成される。フラッシュメモリはメモリセルアレイを構成するメモリセルへの書き込みや消去に比較的長い時間を必要とするため、複数のメモリセルを一括して消去したり書き込んだりできる構造となっている。具体的には、フラッシュメモリは複数の物理ブロックから構成され、各物理ブロックは複数のページを含む。データの消去は物理ブロック単位で、書き込みはページ単位で行われる。【０００５】
さて、電子楽器などの楽音データをＲＯＭに保持した楽音生成システムがある。楽音生成システムは、鍵盤などの打鍵操作に応じて楽器の音（以下、楽音という）を生成するシステムである。楽音生成システムは通常３２チャンネル以上の発音チャンネルを有しており、例えば打鍵された順に発音チャンネルを割り当てて楽音を生成する。このシステムではランダムな打鍵操作に対応して楽音を生成しなければならないので、ランダム読み出し速度の速いマスクＲＯＭが楽音データ用のＲＯＭとして使われている。【０００６】
特許文献１によれば、フラッシュメモリの技術進歩に伴い、マスクＲＯＭのビット単価よりもフラッシュメモリのビット単価が下がることが予測されている。特許文献１には、マスクＲＯＭよりもランダム読み出し速度の遅いフラッシュメモリを楽音データ用のＲＯＭとして利用することによりシステムコストを合理化する技術が開示されている。【０００７】
その予測通り、フラッシュメモリは大容量化と低コスト化への要望に対応し、多値化とプロセスシュリンクによりギガビットクラスの多値ＮＡＮＤフラッシュメモリ（以下、大容量フラッシュメモリという）が主流となってきた。それによりフラッシュメモリはビット単価がマスクＲＯＭよりも遙かに安価になると共に、単位面積当たりの容量もマスクＲＯＭよりも遙かに大容量となり、システムの低価格化と小型化の可能性がますます高まっている。【０００８】
尚、特許文献１の実施例で用いられた２値ＮＡＮＤフラッシュメモリ（品番：ＴＣ５８Ｖ６４ＦＴ）は、容量が６４Ｍｂｉｔ、メモリセルアレイからＩ／Ｏレジスタへアクセスしてデータを読み出すリードタイム（以下、ＴＲという）は７μ秒と、２値ＮＡＮＤフラッシュメモリの中でも小容量かつ高速である旧式タイプのフラッシュメモリである。
【特許文献１】特開２０００−２８４７８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ここで高音質を維持するため、ピアノ等の楽器音をデジタル録音した楽音データを非圧縮でマスクＲＯＭやＮＡＮＤフラッシュメモリに記憶した高音質の楽音生成システムについて検討する。この場合には、例えばサンプリング周波数を４４．１ｋＨｚ、１つの鍵盤あたりの発音時間を４０秒、楽音データ１サンプルあたりの語長を２Ｂｙｔｅ、ピアノの総鍵盤数を８８鍵盤とし、最も強く打鍵したときと最も弱く打鍵したときの２タッチを記録する場合には、式（１）に示すように約６２１ＭＢｙｔｅの容量が必要となる。
４４．１×４０×２×２×８８≒６２１ＭＢｙｔｅ  ・・・（１）【００１０】
従って前述した容量６４Ｍｂｉｔの２値ＮＡＮＤフラッシュメモリを使用した場合、式（２）に示すように約７８個のＮＡＮＤフラッシュメモリを実装する必要がある。
６２１ＭＢｙｔｅ÷６４Ｍｂｉｔ≒７８個  ・・・（２）
従って楽音生成システムを小型化することが困難となる。【００１１】
一方、現在主流であるギガビットクラスの多値ＮＡＮＤフラッシュメモリを使用した場合は、多値ＮＡＮＤフラッシュメモリを１個〜数個程度実装するだけで、６２１ＭＢｙｔｅ分の楽音データを圧縮することなく記憶することができる。【００１２】
しかしながら、多値ＮＡＮＤフラッシュメモリは、大容量データを一度に読み書きする速度を高めるためにページサイズを拡張したこと、及び多値化したことにより、リードタイムＴＲが５０μ秒と桁違いに長くなった。楽音生成システムでは、通常３２チャンネルを同時に発音することが要求される。しかし３２チャンネル目の楽音を生成しようとすると、式（３）に示すように発音遅延時間は少なくとも１．６ｍ秒となる。
発音遅延時間＝５０μ秒×３２＝１．６ｍ秒  ・・・（３）
尚、発音遅延時間とは、打鍵操作〜発音開始までの時間であり、その許容範囲は一般的に１ｍ秒以内とされている。これが１ｍ秒を超えてしまうと演奏上違和感をきたし、楽音生成システムとして成り立たない。【００１３】
そこで、本発明は、現在主流である大容量フラッシュメモリなどのメモリを楽音データ用のメモリとして使用した場合においても、高音質かつ小型の楽音生成システムを実現することができる、アクセスモジュール、記憶モジュール、楽音生成システム、及びデータ書き込みモジュールを提供することを目的とする。
【課題を解決するための手段】
【００１４】
この課題を解決するために、本発明のアクセスモジュールは、楽音データを多重化して記録した複数の不揮発性記憶モジュールに読み出し指示を行うアクセスモジュールであって、外部からの１つの発音指示に応じて前記いずれかの不揮発性記憶モジュールからデータの読み出しを行い、当該読み出しを完了する前に、他の発音指示があったときに該読み出し中の不揮発性記憶モジュールと異なる不揮発性記憶モジュールから読み出しを並行して行う読み出し指示部、を具備するものである。【００１５】
ここで前記アクセスモジュールは、外部からの複数の発音指示を複数の発音チャンネルにアサインするＣＰＵ部を更に有するものであり、前記読み出し指示部は、前記ＣＰＵ部がアサインした複数の発音チャンネルに基づき前記複数の不揮発性記憶モジュールのいずれかに読み出し指示を行うようにしてもよい。【００１６】
ここで前記読み出し指示部は、前記発音チャンネル毎に前記不揮発性記憶モジュールへの読み出し指示状態を登録するチャンネルレジスタを有するようにしてもよい。【００１７】
ここで前記読み出し指示部は、前記不揮発性記憶モジュール毎にアクセス状態を登録するＭＭレジスタを有するようにしてもよい。【００１８】
ここで前記複数の不揮発性記憶モジュールのうち少なくとも１つの不揮発性記憶モジュールには、少なくとも前記楽音データのサンプリング周波数に係る情報を含む記録データ特性情報を保持し、前記アクセスモジュールは、前記不揮発性記憶モジュールから取得した記録データ特性情報に基づき楽音生成処理を行う入出力部を更に有するようにしてもよい。【００１９】
この課題を解決するために、本発明のアクセスモジュールは、複数の不揮発性記憶モジュールに読み出し及び書き込みを行うアクセスモジュールであって、外部から取得した楽音データを多重化する多重化部、及び前記複数の不揮発性記憶モジュールに保持される楽音データをファイルとして管理するファイルシステム部を含むＣＰＵ部と、前記多重化部によって多重化された楽音データを前記複数の不揮発性記憶モジュールに記録する書き込み指示部と、外部からの１つの発音指示に応じて前記いずれかの不揮発性記憶モジュールからデータの読み出しを行い、当該読み出しを完了する前に、他の発音指示があったときに該読み出し中の不揮発性記憶モジュールと異なる不揮発性記憶モジュールから読み出しを並行して行う読み出し指示部と、を具備するものである。【００２０】
ここで前記ＣＰＵ部は、外部からの複数の発音指示を複数の発音チャンネルにアサインする機能を有し、前記読み出し指示部は、前記ＣＰＵ部がアサインした複数の発音チャンネルに基づき前記複数の不揮発性記憶モジュールのいずれかに読み出し指示を行うようにしてもよい。【００２１】
ここで前記読み出し指示部は、前記発音チャンネル毎に前記不揮発性記憶モジュールへの読み出し指示状態を登録するチャンネルレジスタを有するようにしてもよい。【００２２】
ここで前記読み出し指示部は、前記不揮発性記憶モジュール毎にアクセス状態を登録するＭＭレジスタを有するようにしてもよい。【００２３】
ここで前記複数の不揮発性記憶モジュールのうち少なくとも１つの不揮発性記憶モジュールには、少なくとも前記楽音データのサンプリング周波数に係る情報を含む記録データ特性情報を保持し、前記アクセスモジュールは、前記不揮発性記憶モジュールから取得した記録データ特性情報に基づき楽音生成処理を行う入出力部を更に有するようにしてもよい。【００２４】
この課題を解決するために、本発明の記憶モジュールは、夫々同一の楽音データを記録されており、外部からの読み出し指示に応じて並列にデータの読み出しを行う複数の不揮発性記憶モジュールを含んでなるものである。【００２５】
この課題を解決するために、本発明の楽音生成システムは、アクセスモジュールと、前記アクセスモジュールからの読み出し指示に応じて並列にデータの読み出しを行う複数の不揮発性記憶モジュールを含む楽音生成システムであって、前記複数の不揮発性記憶モジュールは、同一の楽音データが記録されたものであり、前記アクセスモジュールは、外部からの１つの発音指示に応じて前記いずれかの不揮発性記憶モジュールからデータの読み出しを行い、当該読み出しを完了する前に、他の発音指示があったときに該読み出し中の不揮発性記憶モジュールと異なる不揮発性記憶モジュールから読み出しを並行して行う読み出し指示部、を具備するものである。【００２６】
ここで前記不揮発性記憶モジュールは、メモリバンクとして多値ＮＡＮＤフラッシュメモリを有するようにしてもよい。【００２７】
この課題を解決するために、本発明の楽音生成システムは、アクセスモジュールと、前記アクセスモジュールからの読み出し指示に応じて並列にデータの読み出しを行う複数の不揮発性記憶モジュールを含む楽音生成システムであって、前記複数の不揮発性記憶モジュールは、同一の楽音データが記録されたものであり、前記アクセスモジュールは、外部から取得した楽音データを多重化する多重化部、及び前記複数の不揮発性記憶モジュールに保持される楽音データをファイルとして管理するファイルシステム部を含むＣＰＵ部と、前記多重化部によって多重化された楽音データを前記複数の不揮発性記憶モジュールに記録する書き込み指示部と、外部からの１つの発音指示に応じて前記いずれかの不揮発性記憶モジュールからデータの読み出しを行い、当該読み出しを完了する前に、他の発音指示があったときに該読み出し中の不揮発性記憶モジュールと異なる不揮発性記憶モジュールから読み出しを並行して行う読み出し指示部と、を具備するものである。【００２８】
ここで前記不揮発性記憶モジュールは、メモリバンクとして多値ＮＡＮＤフラッシュメモリを有するようにしてもよい。【００２９】
この課題を解決するために、本発明のデータ書き込みモジュールは、複数の不揮発性記憶モジュールに接続され、楽音データを書き込むデータ書き込みモジュールであって、外部から取得した楽音データを多重化する多重化部と、前記多重化部によって多重化された前記楽音データをファイルとして管理するファイルシステム部と、前記多重化部によって多重化された楽音データを、前記複数の不揮発性記憶モジュールに書き込む書き込み指示部と、を備えたものである。【００３０】
この課題を解決するために、本発明のデータ書き込みモジュールは、複数の不揮発性記憶モジュールに接続され、楽音データを書き込むデータ書き込みモジュールであって、前記複数の不揮発性記憶モジュールのうちいずれかから取得した楽音データを多重化する多重化部と、前記多重化部によって多重化された前記楽音データをファイルとして管理するファイルシステム部と、前記多重化部によって多重化された楽音データを前記複数の不揮発性記憶モジュールのうち他の不揮発性記憶モジュールに書き込む書き込み指示部と、を備えたものである。【００３１】
ここで前記データ書き込みモジュールは、接続されている不揮発性記憶モジュールのいずれかが楽音データを保持していることを検出する入出力部を更に有するようにしてもよい。
【発明の効果】
【００３２】
本発明によれば、複数の不揮発性記憶モジュールに楽音データを圧縮することなく多重化して記録しておき、アクセスモジュールの読み出し指示部が、外部からの発音指示に従って前記複数の不揮発性記憶モジュールから並列的に楽音データを読み出せるようにしている。このため楽音生成システムのような、どの音高の楽音データの読み出し指示がなされるか予想のつかないシステムにおいて、複数のデータの読み出しの際に複数の不揮発性記憶モジュールから並列的に読み出すことができ、発音遅延時間をその許容範囲である１ｍ秒よりも短くすることが可能となる。従って、不揮発性記憶モジュールとして現在主流である大容量フラッシュメモリを楽音データ用のメモリとして使用して、低価格かつ小型化することができる。またこの不揮発性記憶モジュールを使用できるアクセスモジュール、及びアクセスモジュールと不揮発性記憶モジュールを含めた楽音生成システムを実現することが可能となる。
【図面の簡単な説明】
【００３３】
【図１Ａ】図１Ａは本発明の第１の実施の形態による楽音生成システムの記憶モジュールを示すブロック図である。
【図１Ｂ】図１Ｂは本発明の第１の実施の形態による楽音生成システムのアクセスモジュールを示すブロック図である。
【図２】図２は不揮発性メモリバンク１１２〜１４２のメモリセルアレイの構造を説明した説明図である。
【図３】図３はページ内の記録フォーマットをＰＢ０のＰ０を例に説明した図である。
【図４】図４は物理セクタ番号ＰＳＮを示すビットフォーマットである。
【図５】図５は楽音データバッファ２３１を示すブロック図である。
【図６Ａ】図６Ａはチャンネルアサインテーブル２３２を示す説明図である。
【図６Ｂ】図６Ｂはチャンネルアサインテーブル２３２を示す説明図である。
【図６Ｃ】図６Ｃはチャンネルアサインテーブル２３２を示す説明図である。
【図７】図７はＮＮテーブル２３３Ａを示す説明図である。
【図８】図８はチャンネルレジスタ２４１を示すメモリマップである。
【図９】図９はＭＭレジスタ２４２を示すメモリマップである。
【図１０】図１０は楽音データ１サンプルを示すビットフォーマットである。
【図１１】図１１はピアノの楽音データの特性情報を示す説明図である。
【図１２】図１２はメモリ構成情報を示す説明図である。
【図１３Ａ】図１３ＡはＣＰＵ部２３０Ａ，２３０Ｂのメインルーチンを示すフローチャートである。
【図１３Ｂ】図１３ＢはＣＰＵ部２３０Ａ，２３０Ｂの割り込みルーチンを示すフローチャートである。
【図１４Ａ】図１４Ａは読み出し指示部２４０のメインルーチンを示すフローチャートである。
【図１４Ｂ】図１４Ｂは読み出し指示部２４０の割り込みルーチン１を示すフローチャートである。
【図１４Ｃ】図１４Ｃは読み出し指示部２４０の割り込みルーチン２を示すフローチャートである。
【図１５】図１５は読み出し指示情報を示すビットフォーマットである。
【図１６】図１６は演奏データを示すビットフォーマットである。
【図１７】図１７はメモリコントローラの処理を示すフローチャートである。
【図１８】図１８はメモリコントローラが不揮発性メモリバンクに発行するリードコマンドのタイムチャートである。
【図１９】図１９は記憶モジュール１００Ａ，１００Ｂから外部バス上に読み出された際の楽音データを示すビットフォーマットである。
【図２０】図２０は信号処理部２２０の処理を示すフローチャートである。
【図２１】図２１はＰＤが値０の時の打鍵後のＬＤの時間変化を示すグラフである。
【図２２】図２２はＰＤが値１の時の打鍵後のＬＤの時間変化を示すグラフである。
【図２３】図２３は１サンプリング周期あたりの信号処理を示すタイムスロット図である。
【図２４Ａ】図２４Ａは楽音生成システムのタイムチャートである。
【図２４Ｂ】図２４Ｂは楽音生成システムのタイムチャートである。
【図２４Ｃ】図２４Ｃは楽音生成システムのタイムチャートである。
【図２５Ａ】図２５Ａは本発明の第２の実施の形態における楽音生成システムの記憶モジュールを示すブロック図である。
【図２５Ｂ】図２５Ｂは本発明の第２の実施の形態による楽音生成システムのアクセスモジュールを示すブロック図である。
【図２６Ａ】図２６Ａは論理アドレスとＬＳＮとの関係を説明した説明図である。
【図２６Ｂ】図２６Ｂは不揮発性メモリバンク１１０Ｂ〜１４０Ｂ内の構造とＬＳＮとの関係を説明した説明図である。
【図２７】図２７はページ内の記録フォーマットをＰＢ０のＰ０を例に説明した図である。
【図２８】図２８はＬＳＮとＰＳＮ（物理セクタ番号）の対応関係を示すビットフォーマットである。
【図２９】図２９はＮＮテーブル２３３Ｂを示す説明図である。
【図３０Ａ】図３０Ａはメモリ構成情報の読み出し指示情報を示すビットフォーマットである。
【図３０Ｂ】図３０Ｂは楽音データや記録データ特性情報の読み出し指示情報を示すビットフォーマットである。
【図３１】図３１はアクセスモジュール２００Ｂの楽音データ書き込み処理を示すフローチャートである。
【図３２】図３２はインターネット３１０から取得した楽音データのファイルアロケーションを示す説明図である。
【図３３Ａ】図３３Ａは楽音データの書き込み前における不揮発性メモリバンク１１２〜１４２の記憶状態を表す説明図である。
【図３３Ｂ】図３３Ｂは楽音データの書き込み後における不揮発性メモリバンク１１２〜１４２の記憶状態を表す説明図である。
【図３４】図３４は楽音データの書き込み指示情報を示すビットマップである。
【図３５】図３５は本発明の第３の実施の形態におけるデータ書き込みシステムの書き込みモジュールを示すブロック図である。
【図３６】図３６は本発明の第４の実施の形態におけるデータ書き込みシステムの書き込みモジュールを示すブロック図である。
【符号の説明】
【００３４】
１００Ａ，１００Ｂ  記憶モジュール
１１０Ａ，１１０Ｂ，１２０Ａ，１２０Ｂ，１３０Ａ，１３０Ｂ，１４０Ａ，１４０Ｂ  不揮発性記憶モジュール
１１１Ａ，１１１Ｂ，１２１Ａ，１２１Ｂ，１３１Ａ，１３１Ｂ，１４１Ａ，１４１Ｂ  メモリコントローラ
１１２，１２２，１３２，１４２  不揮発性メモリバンク
１１３，１２３，１３３，１４３  Ｉ／Ｏレジスタ
１１４，１２４，１３４，１４４  メモリセルアレイ
２００Ａ，２００Ｂ  アクセスモジュール
２１０，４１０，５１０  入出力部
２２０  信号処理部
２３０，４２０，５２０  ＣＰＵ部
２３１  楽音データバッファ
２３１＿０〜２３１＿３  バッファ
２３１＿０ａ，２３１＿０ｂ，２３１＿１ａ，２３１＿１ｂ  デュアルポートＲＡＭ
２３１＿２ａ，２３１＿２ｂ，２３１＿３ａ，２３１＿３ｂ  デュアルポートＲＡＭ
２３１＿０ｃ，２３１＿１ｃ，２３１＿２ｃ，２３１＿３ｃ  マルチプレクサ
２３１＿０ｄ，２３１＿１ｄ，２３１＿２ｄ，２３１＿３ｄ  デマルチプレクサ
２３２  チャンネルアサインテーブル
２３３Ａ，２３３Ｂ  ＮＮテーブル
２３４  演奏データバッファ
２３５  転送監視部
２３６  ファイルシステム部
２３７  多重化部
２４０  読み出し指示部
２５０，４３０，５３０  書き込み指示部
３００  マスターキーボード
３１０  インターネット
４００，５００  データ書き込みモジュール
【発明を実施するための最良の形態】
【００３５】
（第１の実施の形態）
図１Ａ，図１Ｂは、本発明の第１の実施の形態における楽音生成システムを示すブロック図である。楽音生成システムは、図１Ａに示す記憶モジュール１００Ａと、図１Ｂに示すアクセスモジュール２００Ａとを含んで構成される。記憶モジュール１００Ａは不揮発性記憶モジュール１１０Ａ，１２０Ａ，１３０Ａ，１４０Ａを１つの筐体内に納め、アクセスモジュールに装着して使用するものである。不揮発性記憶モジュール１１０Ａ，１２０Ａ，１３０Ａ，１４０Ａは夫々メモリコントローラ１１１Ａ，１２１Ａ，１３１Ａ，１４１Ａと、不揮発性メモリバンク１１２，１２２，１３２，１４２とを含む。【００３６】
アクセスモジュール２００Ａは、入出力部２１０Ａ、信号処理部２２０、ＣＰＵ部２３０Ａ、読み出し指示部２４０を含み、３２チャンネル分の楽音を同時に出力できるようにしたものである。以下、チャンネル番号をＣＨ０〜ＣＨ３１とする。ＣＰＵ部２３０Ａは楽音データバッファ２３１、チャンネルアサインテーブル２３２、ＮＮテーブル２３３Ａ、演奏データバッファ２３４、及び転送監視部２３５を含む。【００３７】
次に不揮発性記憶モジュール１１０Ａ〜１４０Ａの各部について詳細に説明する。不揮発性メモリバンク１１２〜１４２はフラッシュメモリであり、夫々Ｉ／Ｏレジスタ１１３，１２３，１３３，１４３とメモリセルアレイ１１４，１２４，１３４，１４４を含む。Ｉ／Ｏレジスタ１１３〜１４３は、夫々４０９６Ｂｙｔｅ＋１２８Ｂｙｔｅの容量を有するＲＡＭである。メモリセルアレイ１１４〜１４４は、夫々１０２４個の物理ブロックを有する。物理ブロックはフラッシュメモリの消去単位である。尚、以降、物理ブロックをＰＢ、物理ブロック番号をＰＢＮ、物理セクタ番号をＰＢＮ、物理ブロック番号ＰＢＮが例えば０の物理ブロックをＰＢ０とする。【００３８】
図２は、不揮発性メモリバンク１１２〜１４２のメモリセルアレイの構造を説明した説明図である。不揮発性メモリバンク１１２〜１４２は夫々物理ブロックＰＢ０〜ＰＢ１０２３を有している。また各物理ブロックは夫々２５６ページ（Ｐ０〜Ｐ２５５）から構成される。【００３９】
図３は、各ページ内の記録フォーマットについて、物理ブロックＰＢ０のページＰ０を例に説明した図である。全物理ブロックの各ページは、４０９６Ｂｙｔｅのデータ領域と１２８Ｂｙｔｅの冗長領域とから成る。本実施の形態において、データ領域は８セクタに分割される。各セクタは５１２Ｂｙｔｅの容量を持つ。また冗長領域は使用しない。尚記録されているデータの詳細については後述する。【００４０】
図４は、物理セクタ番号ＰＳＮを示すビットフォーマットである。図４において、ビットｂ０〜ｂ２はページ内セクタ選択ビットであり、ｂ３〜ｂ１０はページ番号、ｂ１１〜ｂ２０は物理ブロック番号を示している。【００４１】
ページ内セクタ選択ビットは、ページをセクタサイズで割り算した商に相当するビットである。本実施の形態は、ページサイズを４０９６＋１２８Ｂｙｔｅ、セクタサイズを５１２Ｂｙｔｅとした場合、即ち図３に示すように１ページが８個のセクタに分割される場合であり、これらを前述した物理アドレスの下位３ｂｉｔによって選択する。尚ページサイズやセクタサイズは前述した値に限定される必要はなく、その値に応じてページ内セクタ選択ビットを可変としても構わない。【００４２】
メモリコントローラ１１１Ａ〜１４１Ａは、アクセスモジュール２００Ａから供給された読み出し指示情報を、不揮発性メモリバンク１１２〜１４２へのリードコマンドに変換するためのインターフェース回路やバッファ等を備えたものである。該インターフェース回路は市販のメモリカード（例えばＳＤカード）にも搭載されているものであるので、説明を省略する。【００４３】
次にアクセスモジュール２００Ａの各ブロックについて、図１Ｂを用いて詳細に説明する。演奏データは、外部のマスターキーボード３００の打鍵などの操作に応じて生成され、入出力部２１０Ａを介してＣＰＵ部２３０Ａに取り込まれる。入出力部２１０Ａはマスターキーボード３００から演奏データを入力するための端子と、信号処理部２２０が生成した楽音をデジタル−アナログ変換するＤＡコンバータと、該変換後の楽音を増幅するアンプ部、及びその出力を外部に出力するためのラインアウト端子を含む。【００４４】
信号処理部２２０は、ＣＰＵ部２３０Ａから供給された最大で３２チャンネル分の楽音データの補間演算やレベル制御を行った後に、発音チャンネルのミキシングや、リバーブなどのエフェクト処理を行うことにより楽音を生成するブロックである。信号処理部２２０はデジタルシグナルプロセッサ（以下、ＤＳＰという）、該ＤＳＰのプログラムを格納したＲＯＭ、及びエフェクタ処理に必要な遅延素子のために、あるいはパラメータを一時記憶するために必要なＲＡＭなどによって構成される。【００４５】
ＣＰＵ部２３０Ａは、入出力部２１０Ａが受信した演奏データについてチャンネルアサイン処理を行い、読み出し指示部２４０に対して不揮発性記憶モジュール１１０Ａ〜１４０Ａの読み出しを要求する。またＣＰＵ部２３０Ａは、読み出し指示部２４０が不揮発性記憶モジュール１１０Ａ〜１４０Ａから読み出した楽音データと、演奏データの一部を信号処理部２２０に供給する。【００４６】
図５は、ＣＰＵ部２３０Ａに含まれる楽音データバッファ２３１を示すブロック図である。楽音データバッファ２３１は２３１＿０〜２３１＿３の４つのバッファから構成される。各バッファの内部の回路構成は夫々同一であり、下記（ａ）〜（ｄ）に示す通り、発音チャンネルによって使い分けられる。
（ａ）バッファ２３１＿０
・・・ＣＨ０、４、８、１２、１６、２０、２４、２８の楽音データの一時記憶用
（ｂ）バッファ２３１＿０
・・・ＣＨ１、５、９、１３、１７、２１、２５、２９の楽音データの一時記憶用
（ｃ）バッファ２３１＿０
・・・ＣＨ２、６、１０、１４、１８、２２、２６、３０の楽音データの一時記憶用
（ｄ）バッファ２３１＿０
・・・ＣＨ３、７、１１、１５、１９、２３、２７、３１の楽音データの一時記憶用【００４７】
バッファ２３１＿０は、デュアルポートＲＡＭ２３１＿０ａ，２３１＿０ｂ及びマルチプレクサ２３１＿０ｃ、デマルチプレクサ２３１＿０ｄを有している。デュアルポートＲＡＭ２３１＿０ａ，２３１＿０ｂは夫々ＣＨ０，４，８・・・２８迄の８つの分のデータを一時記憶する４ｋＢｙｔｅのＲＡＭであり、１チャンネルあたり５１２Ｂｙｔｅの記憶容量を有する。バッファ２３１＿１は、デュアルポートＲＡＭ２３１＿１ａ，２３１＿１ｂ及びマルチプレクサ２３１＿１ｃ、デマルチプレクサ２３１＿１ｄを有している。デュアルポートＲＡＭ２３１＿１ａ，２３１＿１ｂは夫々ＣＨ１，５，９・・・２９迄の８つの分のデータを一時記憶する４ｋＢｙｔｅのＲＡＭであり、１チャンネルあたり５１２Ｂｙｔｅの記憶容量を有する。又他のバッファバッファ２３１＿２、２３１＿３についても同様の構成であり、前述のチャンネル用のバッファとして用いられる。【００４８】
図６Ａ〜図６Ｃは、ＣＰＵ部２３０Ａに含まれるチャンネルアサインテーブル２３２を示す説明図である。チャンネルアサインテーブル２３２は、全チャンネル、即ちＣＨ０〜ＣＨ３１の発音状態などのステータスを表す以下の情報が保持されている。以下これらの情報について説明する。
発音中フラグＳＯＮは対応するチャンネルが発音中か否かを示すフラグであり、値０の時は発音中チャンネル、値１の時は空きチャンネルであることを示す。
ＫＯＮフラグは打鍵してから離鍵されるまでの間に値１になるフラグである。
ノートナンバーＮＮはピアノの鍵盤位置に対応する１６進数の番号である。
タッチパラメータＴＰは打鍵の強さに対応する強弱情報である。
レベルデータＬＤは打鍵の強さに応じて決まる楽音の音量に対応するものである。
強制消音フラグＦは楽音を強制的に消音するためのフラグである。
セクタカウントＳＣは楽音データが１セクタ分即ち１２８サンプル分読み出される毎にカウントアップするカウンタである。
ウェーブエンドフラグＷＥは楽音データの最終サンプル即ちｓ１７６３９９９が楽音生成のために処理されたことを示すフラグである。
エンベロープエンドフラグＥＥは打鍵の状態やサスティンペダルの状態に応じて変化する楽音の音量変化（以下、エンベロープＥＮＶという）が、聴感上聞こえない音量レベルになった時に値１にセットされるフラグである。
楽音データ読み出し要求フラグＤＱは信号処理部２２０が楽音の生成として使用した楽音データのサンプル数が所定の閾値（例えば９６サンプル）に到達した時点でセットされるフラグである。
選択フラグＭは楽音データバッファ２３１のうちバッファ２３１＿０については、デュアルポートＲＡＭ２３１＿０ａと２３１＿０ｂのどちらに楽音データを書き込むかを選択するフラグである。バッファ２３１＿１〜２３１＿３も同様である。
選択フラグＤはバッファ２３１＿０については、デュアルポートＲＡＭ２３１＿０ａと２３１＿０ｂのどちらに記憶されている楽音データを信号処理部２２０に転送するかを選択するフラグである。バッファ２３１＿１〜２３１＿３も同様である。尚、フラグＤとＭは、バッファ２３１＿０については、値０の時にデュアルポートＲＡＭ２３１＿０ａを選択し、値１の時にデュアルポートＲＡＭ２３１＿０ｂを選択する。バッファ２３１＿１〜２３１＿３も同様である。【００４９】
図７は、ＣＰＵ部２３０Ａに保持されているＮＮテーブル２３３Ａを示す説明図である。ＮＮテーブルとは、ノートナンバーＮＮと、該ＮＮに対応する楽音データを記憶した物理ブロック番号との関係を示すテーブルである。【００５０】
演奏データバッファ２３４はマスターキーボード３００から入力された複数の演奏データを保持するＦＩＦＯである。【００５１】
ＣＰＵ部２３０Ａ内の転送監視部２３５は、データ転送を監視し、各バッファ２３１＿０〜２３１＿３の２つのいずれかのチャンネルに対応するエリアにデータが一時記憶され終わると、信号処理部２２０に対して転送完了フラグＴＲＮＦを転送するものである。【００５２】
読み出し指示部２４０は、ＣＰＵ部２３０Ａの読み出し要求と不揮発性記憶モジュール１１０Ａ〜１４０Ａのアクセス状態に応じて、不揮発性記憶モジュール１１０Ａ〜１４０Ａに読み出し指示情報を転送するブロックである。【００５３】
読み出し指示部２４０は、チャンネルレジスタ２４１及びＭＭレジスタ２４２を含んでいる。【００５４】
図８は、読み出し指示部２４０に含まれるチャンネルレジスタ２４１を示すメモリマップである。チャンネルレジスタ２４１は、３２チャンネル分の読み出し指示状態を表すレジスタであり、３２チャンネル分について、読み出し指示情報と読み出し要求フラグＲＲＱ、読み出し指示情報転送フラグＲＤＴを有している。読み出し要求フラグＲＲＱ（以下、ＲＲＱという）は、ＣＰＵ部２３０Ａが読み出し要求をしない間は値０であり、要求があれば値１となるフラグである。読み出し指示情報転送フラグＲＤＴ（以下、ＲＤＴという）は、読み出し指示部２４０が読み出し指示情報を不揮発性記憶モジュール１１０Ａ〜１４０Ａのいずれかに転送した時に立てられ、要求をしなくなったときにリセットされるフラグである。【００５５】
図９は、読み出し指示部２４０に含まれるＭＭレジスタ２４２を示すメモリマップである。ＭＭレジスタ２４２は、不揮発性記憶モジュール１１０Ａ〜１４０Ａのアクセス状態を表すレジスタであり、不揮発性記憶モジュール１１０Ａ〜１４０Ａの４モジュール分について読み出し中フラグＲＢＳＹを有している。不揮発性記憶モジュール１１０はＭＭＮが０（以下、ＭＭ０という）、不揮発性記憶モジュール１２０はＭＭＮが１（以下、ＭＭ１という）、不揮発性記憶モジュール１３０はＭＭＮが２（以下、ＭＭ２という）、不揮発性記憶モジュール１４０はＭＭＮが３（以下、ＭＭ３という）に対応する。読み出し中フラグＲＢＳＹ（以下、ＲＢＳＹという）は、読み出し指示部２４０が不揮発性記憶モジュール１１０Ａ〜１４０Ａに読み出し指示情報を転送したときに値１にセットされ、不揮発性記憶モジュール１１０Ａ〜１４０Ａから該読み出し指示情報に対応するデータ（５１２Ｂｙｔｅ分）が読み出されたときに値０にリセットされる。【００５６】
また、ＭＭレジスタ２４２は、不揮発性記憶モジュールＭＭ０〜ＭＭ３の夫々に８個の登録枠１〜８を含み、夫々の登録枠１〜８はＭＡＦとＣＨＮを含む。ＭＡＦはモジュールアサインフラグを示し、このフラグが値１の場合、対応する不揮発性記憶モジュールに読み出し指示情報が転送されていて発音中であることを表す。ＭＡＦは対応するチャンネルの発音が終了した時点で値０にリセットされる。またＣＨＮは、発音中のチャンネル番号を表す。不揮発性記憶モジュール１１０Ａ〜１４０Ａは、夫々最大８チャンネル分の読み出し指示情報を受け付けることが可能となる。【００５７】
［初期状態］
まず、記憶モジュール１００Ａ、あるいは図１Ａと図１Ｂに示した楽音生成システムの出荷前において、メーカー側で処理する初期化の内容について説明する。本実施の形態では、ピアノの楽音データを４４．１ｋＨｚのサンプリング周波数でデジタル録音した場合において、各音高毎に約４０秒分の楽音データを圧縮せずに各不揮発性メモリバンク１１２〜１４２に記録する。尚ピアノの鍵盤を打鍵してから音が十分減衰するまでの時間を４０秒とする。この場合には式（４）に示すとおり、１７６４０００サンプルとなる。
４４．１ｋＨｚ×４０秒＝１７６４０００サンプル  ・・・（４）【００５８】
ここでは最強タッチと最弱タッチの２種類について、あらかじめデジタル録音したピアノの楽音データを、図２に示すように不揮発性メモリバンク１１２の物理ブロックＰＢ０〜ＰＢ７０３に、ピアノの最低音から最高音に至る８８鍵分の楽音データを昇順に書き込む。不揮発性メモリバンク１２２〜１４２にも夫々同一のデータを同様に書き込む。これによって同一のデータを４つの並列化された不揮発性メモリバンクに多重化して記録する。【００５９】
各メモリバンクのＰＢ０〜ＰＢ７には、ピアノの最低音のデータが記録され、ＰＢ０のＰ０から昇順に打鍵直後の先頭サンプル（ｓ０）から順番に最後尾サンプル（ｓ１７６３９９９）までの１７６４０００サンプル分の楽音データが記憶されている。但し図３に示すように、５１２Ｂｙｔｅ単位で、最弱タッチと最強タッチの２種類の楽音データが組となって書き込まれる。【００６０】
図１０は、楽音データの１サンプルを示すビットフォーマットである。図１０においてｂ１５には正負を表すサインビットが書き込まれ、ｂ１５〜ｂ１までの１５ビットが楽音データの１サンプルとして使用される。ｂ０にはウェーブエンドフラグＷＥが記録される。フラグＷＥは対応するサンプルが最終サンプルかどうかを示すフラグであり、値１の場合は最終サンプルであるとする。【００６１】
更に初期化の際には、不揮発性メモリバンク１１２の最終物理ブロックＰＢ１０２３のページＰ０には、記憶モジュール１００Ａに記録されているピアノの楽音データの特性情報（以下、記録データ特性情報という）と記憶モジュール１００Ａのメモリ構成に係る情報（以下、メモリ構成情報という）を書き込んでおく。【００６２】
図１１は、記録データ特性情報の一例を示す説明図である。この特性情報には少なくとも楽音データのサンプリング周波数（この場合は４４．１ｋＨｚ）の情報が含まれている。またリバーブ及びコーラスはエフェクト処理をする際に用いられる。尚図１１のテーブルにおいて、備考欄は実際に記録されているものではなく、参考情報である。【００６３】
図１２は、記憶モジュール１００Ａのメモリ構成情報の一例を示す説明図である。ここで図１２のセクタサイズは１回の読み出し指示毎に読み出すデータのサイズを示しており、リードタイムＴＲはメモリセルアレイからＩＯレジスタへの読み出し時間を示す。転送時間ＴＴ１は各メモリバンクのＩＯレジスタからメモリコントローラ内にバッファリングする時間を示す。尚図１２のテーブルにおいて、備考欄は実際に記録されているものではなく、参考情報である。【００６４】
以上のように構成された、本発明の第１の実施の形態における楽音生成システムの動作について説明する。
［電源立ち上げ時の初期化処理］
アクセスモジュール２００Ａ及び記憶モジュール１００Ａの電源立ち上げ後、夫々初期化処理を開始する。記憶モジュール１００Ａの初期化処理は夫々のメモリコントローラが行い、初期化が完了するとアクセスモジュール２００Ａに対してアクセスを許可する。なお、メモリコントローラの初期化処理については一般的であるので説明を省略する。【００６５】
アクセスモジュール２００Ａは初期化処理を、ＣＰＵ部２３０Ａと読み出し指示部２４０に分かれて行う。【００６６】
、アクセスモジュール２００ＡのＣＰＵ部２３０Ａは図１３Ａのフローチャートに示すように、Ｓ１００において初期化処理を行う。初期化処理では、信号処理部２２０のリセットや、楽音データバッファ２３１内のバッファ２３１＿０〜２３１＿３内の各デュアルポートＲＡＭをクリアする。信号処理部２２０をリセットすることにより、信号処理部２２０は内部のＤＳＰのプログラムカウンタのカウントアップを開始する。また図６Ａ〜図６Ｃに示すチャンネルアサインテーブル２３２の初期設定、即ち以下の処理を行う。
（１）ＳＯＮを値０、即ちＣＨ０〜３１を空きチャンネルに設定
（２）ＫＯＮ、ＰＤ、ＮＮ、ＴＰ、ＬＤ、Ｆ、ＳＣ、ＷＥ、ＤＱ、Ｍ、Ｄを値０に設定
（３）ＥＥを値１に設定【００６７】
その後、アクセスモジュール２００Ａは不揮発性記憶モジュール１１０Ａに対して、記録データ特性情報とメモリ構成情報の読み出し指示情報を転送する。図１５は、アクセスモジュール２００Ａから不揮発性記憶モジュール１１０に対する読み出し指示情報を示すビットフォーマットである。尚、ｂ２２とｂ２１は読み出し以外の指示にも拡張できるように設けたが、本実施の形態においては、読み出し以外の指示は行わないので値１１に固定する。尚これらの特性情報は、不揮発性メモリバンク１１２のＰＢ１０２３のＰ０の０番地から５１２Ｂｙｔｅ分以内に書き込まれている。アクセスモジュール２００Ａは、この読み出し指示情報を不揮発性記憶モジュール１１０に転送することによって、記録データ特性情報とメモリ構成情報を読み出すことができる。【００６８】
ＣＰＵ部２３０Ａは、図１１に示す記録データ特性情報を取得すると、サンプリング周期（２２．７μｓ）を信号処理部２２０内のタイマーにセットし、１サンプリング時間の信号処理のタイムスロットの１周期を決定する。このタイマーは信号処理部２２０内のＤＳＰの１周期を制御するためのタイマーとして機能する。ＣＰＵ部２３０Ａは記録データ特性情報内の１サンプル容量（２Ｂｙｔｅ）とフラグ割り当てビット（ｂ０）を信号処理部２２０内のＲＡＭのパラメータとして書き込み、楽音データが図１０に示すビットフォーマットのどのビット位置に相当するかを決定するためのパラメータとして使用する。【００６９】
また、ＣＰＵ部２３０Ａは記録データ特性情報内の最大発音チャンネル数（３２ＣＨ）によって、チャンネルアサインテーブル２３２のチャンネル枠を決定すると共に、信号処理部２２０のタイムスロットのチャンネル数を決定する。また、信号処理部２２０はリバーブとコーラスによりエフェクト処理を決定する。図示の場合にはエフェクト処理としてリバーブのみを行うことを決定する。【００７０】
さらに、ＣＰＵ部２３０Ａは、図１２に示すメモリ構成情報を取得すると、不揮発性記憶モジュール数に基づき、式（５）を実行することにより並列数を求める。
並列数＝不揮発性記憶モジュール数  ・・・（５）【００７１】
１つの不揮発性記憶モジュールあたりにアサインされる、即ち読み出し指示情報が転送されるチャンネルの最大数（モジュール当たり最大チャンネル数）は、式（６）によって与えられる。尚、％はモジュロを表す演算子である。
モジュール当たり最大チャンネル数＝ＣＨＮ÷並列数  ・・・（６）
本実施の形態においては、ＣＨＮは３２、並列数が４であるので、式（６）によれば不揮発性記憶モジュール１１０Ａ〜１４０Ａの夫々は最大８チャンネル分の読み出し指示情報をアサインすることが可能となる。各チャンネルをどの不揮発性記憶モジュールにアサインするかについては後述する。【００７２】
ＣＰＵ部２３０Ａは、図１２に示すメモリ構成情報の中のセクタサイズ（５１２Ｂｙｔｅ）を参照し、記憶モジュール１００Ａからのデータの読み出し単位のサイズを５１２Ｂｙｔｅとして管理する。また式（７）を実行することにより、セクタ毎の総サンプル数（以下、ｕｓｎという）を決定する。
ｕｓｎ＝セクタサイズ／１サンプルサイズ／タッチ数  ・・・（７）
本実施の形態においては、セクタサイズが５１２Ｂｙｔｅ、１サンプルサイズが２Ｂｙｔｅ、タッチ数が２であるので、ｕｓｎ＝１２８サンプルとなる。【００７３】
さらにＣＰＵ部２３０Ａは、図１１に示す記録データ特性情報の中の１ノートあたりの占有容量と、メモリ構成情報の中のページサイズと１物理ブロックあたりのページ数ＴＰＮ（この場合は２５６）に基づき、式（８）を実行することにより、１ノートあたり必要な物理ブロック数を算出する。
１ノートあたり必要な物理ブロック数
＝１ノートあたりの占有容量／（ページサイズ×ＴＰＮ）＝８個  ・・・（８）
そして、最低音Ａ-1から最高音Ｃ7まで夫々のノートに対応するＰＢＮを決定し、図７に示すＮＮテーブル２３３Ａを生成する。【００７４】
以上メインルーチンにおいて、記録データ特性情報とメモリ構成情報を読み出し、各種パラメータの設定処理によってＣＰＵ部２３０Ａは初期化処理（Ｓ１００）を終える。【００７５】
図１４Ａは、読み出し指示部２４０の通常処理、図１４Ｂ及び図１４Ｃはその割り込み処理を示すフローチャートである。
読み出し指示部２４０は、図１４Ａのフローチャートに示すように、Ｓ２００において初期化処理を行う。初期化処理では、記憶モジュール１００Ａの全ての不揮発性記憶モジュールからアクセス許可を受信すると、ＣＰＵ部２３０Ａに対してアクセス可能であることを通知する。【００７６】
ＣＰＵ部２３０Ａは読み出し指示部２４０からアクセス可の通知を受けると、Ｓ１１０から通常動作処理Ｓ１０１に移行し、割り込みをイネーブルにして外部のマスターキーボード３００からの演奏データを受付ける。【００７７】
［通常動作時の処理］
（１）全体的な動作説明
演奏データの入力から楽音の生成に至る全体的な動作説明を、ＣＰＵ部２３０Ａのフローチャート及び読み出し指示部２４０のフローチャートを中心に説明する。なお、ＣＰＵ部２３０Ａのフローチャートと読み出し指示部２４０のフローチャートは独立して実行されるものである。【００７８】
図１３ＢはＣＰＵ部２３０Ａの割り込みルーチンを示しており、マスターキーボード３００の演奏操作によって演奏データがアクセスモジュール２００Ａに転送された際に起動される。図１３Ａに示すメインルーチンの処理中にマスターキーボード３００の演奏操作がなされると、即座に割り込みルーチンに移行する。尚、割り込みルーチンは多重割り込みが可能、即ち割り込みルーチン中であっても、次の割り込みを受け付けるものとする。【００７９】
一方、読み出し指示部２４０のフローチャートにおいて、割り込みルーチンは、図１４Ｂに示す割り込みルーチン１と図１４Ｃの割り込みルーチン２とからなり、それらに優先順位はなく、またいずれも多重割り込みが可能である。割り込みルーチン１はＣＰＵ部２３０Ａから読み出し要求があった時に起動され、割り込みルーチン２は記憶モジュール１００Ａから楽音データを受信した時に起動されるルーチンである。【００８０】
まず、通常動作処理Ｓ１０１への移行後、マスターキーボード３００の演奏操作がなされないとすると、全チャンネルの強制消音フラグＦは値０であり、また読み出し要求フラグＤＱは値０であるので、Ｓ１０２とＳ１０７の分岐はＮｏとなり、Ｓ１０２とＳ１０７の分岐処理を永続的に実行することとなる。【００８１】
マスターキーボード３００の演奏操作がなされると、図１３Ｂに示す割り込みルーチンが起動される。この割り込み処理について説明する。【００８２】
図１６は、マスターキーボード３００から転送される演奏データを示すビットフォーマットである。演奏データには、打鍵に応じて生成される打鍵データと、サスティンペダルのＯＮ／ＯＦＦ操作に応じて生成されるペダルデータの２種類がある。それらのデータはｂ１５の値によって識別される。打鍵データにおいて、ＫＯＮフラグ、ノートナンバーＮＮ、及びタッチパラメータＴＰは前述のものである。ペダルデータにおいて、ＰＤはサスティンペダルがＯＮされた時に値１になるフラグである。尚、サスティンペダルとは、離鍵時にも音を持続させるためのペダルであり、本物のピアノにも備えられたペダルである。割り込みルーチンにおいて、まずマスターキーボード３００から入出力部２１０Ａを介して転送された演奏データを、演奏データバッファ２３４に取得する（Ｓ１２０）。この演奏データのフォーマットは図１６に示すように、打鍵データまたはペダルデータのいずれかである。演奏データバッファ２３４に、既に取得した未処理の演奏データがなければ（Ｓ１２１）、今回取得した演奏データをチェックする（Ｓ１２２）。具体的には図１６に示す演奏データのｂ１５を調べることにより、打鍵データであるかペダルデータであるかを識別する。演奏データがペダルデータである場合は（Ｓ１２３）、図１６に示すペダルデータ内のｂ１４即ちＰＤフラグをそのままチャンネルアサインテーブル２３２内のＰＤにコピーし（Ｓ１２４）、Ｓ１３２に移行する。一方演奏データが打鍵データの場合は（Ｓ１２３）、図１６に示す打鍵データのｂ１４からＫＯＮフラグを抽出し（Ｓ１２５）、Ｓ１２６においてＫＯＮの値をチェックし、ＫＯＮが値０の場合即ち離鍵の場合は、Ｓ１３２に移行する。【００８３】
ＫＯＮが値１の場合即ち打鍵の場合は、チャンネルアサインテーブル２３２内において空きチャンネルがあるかどうかを調べる（Ｓ１２７）。具体的には、ＣＨ０から昇順に値０の発音中フラグＳＯＮがあるかどうかを調べ、あれば最初に見つかったチャンネルに該演奏データをアサインする（Ｓ１２９）。チャンネルアサイン処理においては、下記の通りアサイン先のチャンネルの各情報の設定を行う。
（１）ＳＯＮを値１にセット
（２）ＮＮとＴＰを打鍵データからコピー
（３）ＳＣ、ＷＥ、ＥＥ、ＤＱ、Ｍ、Ｄを値０に設定【００８４】
さて、ＣＰＵ部２３０Ａはチャンネルアサイン処理の後、読み出し指示部２４０に対して読み出し要求と共に図１５に示す楽音データの読み出し指示情報を渡す。読み出し指示情報は以下の手順で求められる。
（ａ）打鍵データのＮＮに基づきＮＮテーブル２３３Ａを参照し、先頭ＰＢＮを求める。
（ｂ）先頭ＰＢＮとＳＣに基づき式（９）を実行することによりＰＳＮを求める。
ＰＳＮ＝（先頭ＰＢＮ＜＜１１）＋ＳＣ  ・・・（９）
但し、＆は論理積をとる演算子、｜は論理和をとる演算子、＜＜は左にビットシフトする演算子である。
（ｃ）式（９）により求められたＰＳＮは２１ビットであり、その上位の２ビットは「１１」である。従って次の式（１０）を実行することにより読み出し指示情報を求める。尚、“０ｘ”は１６進数を表す記号である。図１５はこの読み出し指示情報を示す。
読み出し指示情報＝０ｘ６０００００｜ＰＳＮ  ・・・（１０）【００８５】
このようにして、ＣＰＵ部２３０Ａは読み出し先のＰＳＮを決定し、図１５に示すフォーマットにて読み出し指示部２４０に読み出し指示情報を渡す。読み出し指示部２４０は、読み出し要求と対応するＣＨＮと読み出し指示情報を受け取ると、まず受け取ったＣＨＮと読み出し指示情報をチャンネルレジスタ２４１に登録する。その後、ＭＭレジスタ２４２に基づき読み出し対象となる不揮発性記憶モジュールを決定する。そして楽音データの読み出し中でなければ、チャンネルレジスタ２４１に登録されている読み出し指示情報を該不揮発性記憶モジュールに転送し、所望の楽音データを読み出す。【００８６】
次に読み出し指示部２４０による記憶モジュール１００Ａの楽音データの読み出しについて図１４Ａ〜図１４Ｃ及び図１７のフローチャートを中心に説明する。まず、読み出し指示部２４０は図１４Ａに示すメインルーチンにおいて、前述した初期化処理（Ｓ２００）の後に、通常処理（Ｓ２０１）に移行する。ＣＰＵ部２３０Ａから読み出し要求がない間は、チャンネルレジスタ２４１内のＲＲＱは全て値０であり、その場合はＣＰＵ部２３０Ａが管理しているＥＥの変化をモニターし、その結果に応じてＭＭレジスタ２４２のフラグ操作を行う（Ｓ２０３）。具体的には、ＭＭレジスタ２４２のＭＡＦが値１となっているチャンネルについて、ＥＥが値０から値１に変化、即ち発音中から無音状態に変化したチャンネルはＭＡＦを値０にリセットし、登録枠から該チャンネルを除外する。その後Ｓ２０２に戻り、以降、Ｓ２０２とＳ２０３の判断分岐を永続的に実行し続けることとなる。【００８７】
そして、ＣＰＵ部２３０Ａから読み出し要求を受け取ると、メインルーチンのＳ２０２とＳ２０３のループから図１４Ｂの割り込みルーチン１に移行し、チャンネルレジスタ２４１に読み出し指示情報を登録し、読み出し指示情報と同時に転送されるＣＨＮをチャンネルレジスタ２４１のＣＨＮ欄に登録する（Ｓ２２０）。さらに、前記ＣＨＮに対応するＲＲＱを値１にセットし（Ｓ２２１）、割り込みを終了しメインルーチンに戻る。なお、図８に示す例は、ＣＰＵ部２３０ＡからＣＨ０〜３の読み出し要求がなされ、以降に説明する処理によって各フラグが変化する様子を示した例である。具体的には、ＣＨ０〜３の読み出し要求と不揮発性記憶モジュール１１０Ａ〜１４０Ａへの読み出し指示情報の転送を完了し、不揮発性記憶モジュール１１０Ａ、１２０Ａからアクセスモジュール２００Ａへの楽音データの転送を完了した時点までを表している。この動作によって、チャンネルレジスタ２４１内の各フラグの値が変化することとなる。また、ＭＭレジスタ２４２（図９）についても、各不揮発性記憶モジュール（ＭＭ０〜ＭＭ３）が読み出し中か否かを示すフラグＲＢＳＹ等の値を変化させることとなる。【００８８】
図１４Ａのメインルーチンにおいては、ＣＨ０〜３のＲＲＱが値１となったので、Ｓ２０２からＳ２０４に移行し、ＭＭレジスタ２４２に基づきアサイン状況、ＣＨ０〜３に対応する読み出し指示情報が不揮発性記憶モジュールにアサイン（転送）されたかどうかについてチェックする。具体的にはＳ２０５において、登録枠１〜８をチェックしＭＡＦが値１になっているＣＨＮがＣＨ０〜３のいずれかであれば、既にアサイン済みであると判断する。そしてＭＡＦが値１になっているＣＨＮがＣＨ０〜３である不揮発性記憶メモリモジュールを読み出し指示情報の転送先に決定する（Ｓ２０６）。【００８９】
一方、アサイン済みでなければ、Ｓ２０７において、ＭＭレジスタ２４２においてＭＡＦが値１となっている登録枠の個数（登録数）を計数し、登録数が最も少ない不揮発性記憶モジュールを読み出し指示情報の転送先に決定する。なお、登録数が最も少ない不揮発性記憶モジュールが複数ある場合は不揮発性記憶モジュールの番号の小さい方を優先的に選択する。その後、読み出し指示情報の転送先に決定した不揮発性記憶モジュールにおいて、ＭＡＦが値０となっている登録枠のいずれかのＭＡＦを値１にセットすると共に、対応するＣＨＮ欄にアサイン対象であるＣＨＮの値を登録する（Ｓ２０７）。なお、最初は、ＭＭレジスタ２４２は未登録状態であるので、ＣＨ０〜３は図９に示すように夫々ＭＭ０〜３の登録枠１に登録されることとなる。【００９０】
次に、ＭＭレジスタ２４２の読み出し中フラグＲＢＳＹを参照し、不揮発性記憶モジュール１１０Ａ〜１４０Ａが読み出し中か否かを判断する（Ｓ２０９）。最初は、ＭＭレジスタ２４２のＲＢＳＹは全て値０、即ち不揮発性記憶モジュール１１０Ａ〜１４０Ａ全てが読み出し中ではないので、まずＣＨ０の処理においてＳ２１０に移行する。【００９１】
そして、読み出し指示部２４０はＣＨ０に対応する読み出し指示を不揮発性記憶モジュール１１０に転送し（Ｓ２１０）、チャンネルレジスタ２４１の対応するチャンネルのＲＤＴを値１にセットする（Ｓ２１１）。さらに、ＭＭレジスタ２４２の対応する記憶モジュール（ＭＭ０）のＲＢＳＹを値１にセットすると共に、ＭＭ０の読み出し中ＣＨＮの欄に０を設定する（Ｓ２１２）。これは不揮発性記憶モジュール１１０からＣＨ０の楽音データを読み出し中であることを示している。【００９２】
以上の処理をチャンネルレジスタ２４１においてＲＲＱが値１となっているチャンネル、即ちＣＨ０〜３迄を実行する。【００９３】
図１７は、各メモリコントローラの処理を示すフローチャートである。読み出し指示情報を受信すると（Ｓ３００）、該読み出し指示情報に含まれるＰＳＮを読み出し先アドレスとしてリードコマンドを不揮発性メモリバンクに出力する（Ｓ３０１）。その結果読み出された楽音データをアクセスモジュール２００Ａに転送する（Ｓ３０２）。【００９４】
図１８は、メモリコントローラが不揮発性メモリバンクに発行するリードコマンドのタイムチャートである。コマンド１は、次に物理アドレスの転送開始を通知するコマンドであり、コマンド２はメモリセルアレイからＩ／Ｏレジスタに物理アドレスに記憶されている楽音データを読み出すことを指示するコマンドである。【００９５】
ここで、リードコマンドは図１８に示す通り、時刻t1にコマンド１を出力した直後に物理アドレスを出力し、その後、コマンド２を出力する。このアドレッシングタイムＴＡは数百ｎ秒程度であるので時間的に無視できる。【００９６】
なお、図１８における物理アドレスとは、図４のＰＢＮとページ番号とページ内セクタ選択ビットによって５１２Ｂｙｔｅ単位で指定される物理アドレスである。また、この物理アドレスは、読み出したい楽音データが記憶されているスタート番地（バイト単位）を指定するものであり、該スタート番地から対応するページの最終番地までの楽音データがＴＲ中に対応するＩ／Ｏレジスタに読み出される。その後、転送時間ＴＴ１の間に５１２個のリードクロックを与えることによって、所望の５１２Ｂｙｔｅ分の楽音データがＩ／Ｏレジスタからメモリコントローラに読み出されることとなる。【００９７】
さて、読み出し指示部２４０が、ＣＨ０〜３に対応する読み出し指示情報を夫々不揮発性記憶モジュール１１０Ａ〜１４０Ａに発行し終わると、ＣＨ０〜３のＲＤＴが全て値０となる。従って図１４Ａにおいて、再びＳ２０２からＳ２０３の判断分岐をループするようになる。【００９８】
アクセスモジュール２００Ａは転送された楽音データを読み出し指示部２４０を介して楽音データバッファ２３１に一時記憶する。この時、読み出し指示部２４０は５１２Ｂｙｔｅ分（１セクタ分）の楽音データを受け取ったことを検知すると、図１４Ｃの割り込みルーチン２に制御を移し、ＭＭレジスタ２４２の対応するＭＭＮのＲＢＳＹを値０にリセットし（Ｓ２３０）、さらにチャンネルレジスタ２４１の対応するＣＨＮのＲＤＴとＲＲＱを値０にリセットする（Ｓ２３１）。さらに、ＭＭレジスタ２４２の対応するＭＭＮの読み出し中ＣＨＮを取得し（Ｓ２３２）、受信した楽音データを、楽音データバッファ２３１内のどのバッファに一時記憶するかを決定する。【００９９】
チャンネルレジスタ２４１のＲＲＱが値０になっているエリアは、次の新たな読み出し指示情報のエリアとして解放されたエリアとなる。因みに、ＲＲＱが値０になっている場合は、Ｓ２３１によりＲＤＴも値０になっているし、Ｓ２３０によりＭＮレジスタ２４２のＲＢＳＹも値０になっている。なお、チャンネルレジスタ２４１への読み出し指示情報の登録は、最上段のエリアから順に使用され、最下段に到達した時点で再び最上に戻るように、即ち巡回的に使用される。【０１００】
アクセスモジュール２００Ａは、いずれかの不揮発性記憶モジュールから楽音データを受信すると、該楽音データに付加されたＣＨＮに対応する楽音データバッファ２３１のエリアに、該楽音データを一時記憶する。【０１０１】
次にメモリコントローラから楽音データバッファ２３１への楽音データを転送する転送時間ＴＴ２について説明する。ＴＴ２の値はアクセスモジュール２００Ａの仕様によって決まるパラメータであり、アクセスモジュール２００Ａが外部バスを介して記憶モジュール１００Ａに送信するクロック（図示せず）の周波数に依存する。本実施の形態ではアクセスモジュール２００Ａと不揮発性記憶モジュール１１０Ａから１４０Ａの夫々を繋ぐ外部バスのバス幅を１Ｂｙｔｅとし、４０ＭＨｚの転送周波数で転送するものとする。この場合、転送時間ＴＴ２は、式（１１）により、約１２．８μ秒となる。
５１２Ｂｙｔｅ×（２５ｎ秒／Ｂｙｔｅ）＝１２．８μ秒  ・・・（１１）【０１０２】
読み出し指示情報の転送に応じて、不揮発性記憶モジュール１１０Ａ〜１４０Ａのいずれかから読み出された楽音データは、読み出し指示部２４０を介してＣＰＵ部２３０Ａに転送される。ここでは不揮発性記憶モジュール１１０Ａから読み出すものとする。図１９は、不揮発性記憶モジュール１１０Ａから外部バス上に読み出された際の楽音データを示すビットフォーマットである。このビットフォーマットに示すように最弱タッチと最強タッチの楽音データが含まれている。ＣＰＵ部２３０Ａでは楽音データを楽音データバッファ２３１内のバッファ２３１＿０に転送し、図５のマルチプレクサ２３１＿０ｃ（Ｍ＝０）を介してデュアルポートＲＡＭ２３１＿０ａのＣＨ０に対応するエリアに一時記憶する。尚、楽音データの一時記憶に際して、バッファ２３１＿０〜２３１＿３の選択、あるいは各バッファ内のデュアルポートＲＡＭの記憶領域の選択は、後述するＭＭレジスタ２４２に登録されたＣＨＮによって決定する。【０１０３】
先頭セクタの全サンプル、即ち最弱タッチ及び最強タッチ夫々についてｓ０〜Ｓ１２７までの５１２ＢｙｔｅがデュアルポートＲＡＭ２３１＿０ａのＣＨ０に対応するエリアに一時記憶され終わると、ＣＰＵ部２３０Ａ内の転送監視部２３５が信号処理部２２０に対して転送完了フラグＴＲＮＦを転送する。尚、ＣＰＵ部のＳ１３０以降の処理と、楽音データバッファ２３１への楽音データ転送（転送監視を含む）は並行して実行される。【０１０４】
Ｓ１３０の後に、信号処理部２２０による発音（Ｓ１３１）を行う。発音の制御では、ＴＰ／０ｘ７Ｆの演算によりレベルデータＬＤを算出してそれをチャンネルアサインテーブル２３２のＬＤに設定し、Ｓ１２５で抽出したＫＯＮをチャンネルアサインテーブル２３２のＫＯＮに設定する。０ｘ７ＦはＴＰの最大値を表す。即ちレベルデータＬＤは、タッチパラメータＴＰに応じて値０以上１以下の値をとる。信号処理部２２０の動作については後述する。【０１０５】
さて、Ｓ１２７において、空きチャンネルがなかった場合、即ちチャンネルアサインテーブル２３２内のＳＯＮが全て値１であった場合は、チャンネルアサインテーブル２３２の強制消音フラグＦを値１にセットし（Ｓ１２８）、Ｓ１３２に移行する。【０１０６】
その後、次に処理すべき楽音データの有無をチェックし（Ｓ１３２）、有ればＳ１２１に戻る。Ｓ１２１では既に前回の演奏データは処理を完了しているので、無条件でＳ１２２以降の処理に移行する。一方、Ｓ１３２において、次に処理すべき楽音データが無ければ、割り込みルーチンを終了する。この場合にはメインルーチンに戻って、該割り込みルーチンに移行した時に実行していた処理を続行する。【０１０７】
次に、信号処理部２２０の動作について、図２０のフローチャートを中心に説明する。まず、Ｓ４００において式（１２）に従ってイニシャルフラグＩＮＩを設定する。
ＩＮＩ＝ＫＯＮ＆ＥＥ  ・・・（１２）【０１０８】
ここで式（１１）においてＥＥをＩＮＩの算出要素にした理由について説明する。後述するように全チャンネルが発音中（ＥＥの値が０）の状態において、新たな打鍵を行った場合、ノイズが生じないようにするために、新たな打鍵に対応するチャンネルの急速消音を行ってから、即ちＥＥが値１及びＳＯＮが値０になるのを待ってから、新たな打鍵に対応した発音を開始する必要がある。【０１０９】
但し、新たな打鍵があってから発音開始されるまでの遅延時間を短くするため、急速消音を指示すると同時に、新たな打鍵に対応するチャンネルアサイン処理（Ｓ１２９）と楽音データの読み出し指示（Ｓ１３０）を行う必要がある。しかし、新たな打鍵がなされる直前に少なくとも新たな打鍵がアサインされるチャンネルのＫＯＮが値１であった場合、新たな打鍵に対応するチャンネルは、ＫＯＮが値０を経ることなく、即ち値１のままで、急速消音に続いて新たな発音制御を行うこととなる。このような場合に、発音開始時刻を決定する要素としてＫＯＮが使えないので、式（１２）においてＥＥをＩＮＩの算出要素にした。尚、式（１２）は、上述の動作に限らず、如何なるケースにおいても適用できる。【０１１０】
次いでＳ４０１において、ＩＮＩとＴＲＮＦについて判定する。ＣＰＵ部２３０Ａから信号処理部２２０内のＲＡＭに転送完了フラグＴＲＮＦが転送されると、ＩＮＩとＴＲＮＦが共に１となるので、Ｓ４０２に進んで各種パラメータの初期設定を行う。パラメータの初期設定では、信号処理部２２０内のカウンタに保持したｓｎを値０に設定し、信号処理部２２０内のＲＡＭに保持した転送完了フラグＴＲＮＦを値０に設定する。【０１１１】
さて、Ｓ４０１あるいはＳ４０２の後、補間処理を行う（Ｓ４０３）。補間処理とは打鍵の強さ、即ちタッチパラメータＴＰの値に応じて楽音の音色を変更する処理である。一般的には、強打鍵時の音色の方が弱打鍵時の音色よりも高域成分に富んだ音色であることが知られている。そこで本実施の形態においては、強打鍵時の音色の代表である最強タッチの楽音データと、弱打鍵時の音色の代表である最弱タッチの楽音データとを、タッチパラメータＴＰに基づいて２点間直線補間することによって、ＴＰに応じて音色を変更できるようにした。具体的には式（１３）に従った補間処理を行う。尚、ｗは補間後の楽音データの１サンプルの値、ｗａは最弱タッチに対応する楽音データの１サンプルの値、ｗｂは最強タッチに対応する楽音データの１サンプルの値、αは値０〜１の補間係数である。
ｗ＝ｗｂ×α＋ｗａ（１−α）  ・・・（１３）
但し、α＝ＴＰ／０ｘ７Ｆ【０１１２】
補間処理の後に、式（１４）に従ったエンベロープ（以下、ＥＮＶという）の算出を行う（Ｓ４０４）。
ＥＮＶ＝ＬＤ×ＲＥＬ  ・・・（１４）
但し、ＲＥＬは次のように決定される。
（ａ）Ｆ＝１の場合は、
ＲＥＬ＝ｇ
（ｂ）Ｆ＝０かつＫＯＮ＝０かつＰＤ＝０の場合は
ＲＥＬ＝ＲＥＬ＿ｏｌｄ×０．５
（ｃ）上記以外の場合は、
ＲＥＬ＝１
尚、ＲＥＬは減衰パラメータ、ＲＥＬ＿ｏｌｄは前サンプリング期間のＲＥＬ、ｇは減衰変数である。【０１１３】
ｇはＦ＝１がＣＰＵ部２３０Ａから転送された時点のサンプリング周期において０．８７５、次のサンプリング期間において０．７５０、以降０．１２５ずつ小さくなり、値０になった時点以降は値０を維持する時変パラメータとする。このように決めておけばＦ＝１が転送されてから８サンプルでＥＮＶは値０に到達する。また信号処理部２２０はＲＥＬ＿ｏｌｄを内部のＲＡＭに保持し、式（１４）の実行毎にＲＥＬに更新する。従ってＲＥＬは指数関数的に０に漸近することとなる。【０１１４】
図２１と図２２はＥＮＶの時間変化を示している。図２１はＰＤが値０の場合、即ちサスティンペダルがＯＦＦされている場合である。この場合にはＫＯＮが値１の間は前述の（ｃ）のようにＥＮＶは変化せず、値０になった時、即ち離鍵した時以降にＥＮＶは指数関数的に減衰することとなる。図２２はＰＤが値１の場合、即ちサスティンペダルがＯＮされている場合である。この場合はＫＯＮが値１になっても前述した（ｃ）の状態が続き、打鍵時のＥＮＶの値のままとなる。図２１及び図２２のいずれの場合においても、強制消音の指示があった時、即ちＦ＝１となった時点で、前述した（ａ）の場合となり、ＲＥＬは時変パラメータｇとなる。従って破線で示す８サンプリング周期でＥＮＶは値０に直線的に減衰することとなる。尚、１サンプリング周期は式（１５）に従う。
１／サンプリング周波数（４４．１ｋＨｚ）≒約２２．７μ秒  ・・・（１５）
従って８サンプリング周期は約１８２μ秒となる。【０１１５】
ＥＮＶの算出の後、ＥＮＶと閾値ＥＮＶｔｈとの比較を行う（Ｓ４０５）。ＥＮＶｔｈは、聴感上十分聞こえないレベルの値である。Ｓ４０５でＥＮＶがＥＮＶｔｈ未満になった場合に、ＣＰＵ部２３０Ａ内のチャンネルアサインテーブル２３２内の対応するチャンネルのＥＥを値１に、ＳＯＮを値０に更新する（Ｓ４０６）。尚、ＳＯＮが値０に更新したチャンネルは、以降空きチャンネルとして管理される。【０１１６】
次に、式（１６）に基づきエンベロープ処理後のデジタルデータＷを求める（Ｓ４０７）。
Ｗ＝ｗ×ＥＮＶ  ・・・（１６）
尚、前述した通り楽音データはピアノの音を鍵盤毎にデジタル録音したデータであるので、ＥＮＶのレベルが時間的に変化しなくても、Ｗの波高値は時間的に減衰するので聴感上は減衰して聞こえる。【０１１７】
次に、ＷＥが値１、即ち任意の打鍵に対応する楽音データが最終サンプル（ｓ１７６３９９９サンプル）まで到達するか、あるいはＥＥが値１、即ちＥＮＶが聴感上聞こえないレベルに到達すると（Ｓ４０８）、もはや信号処理を続けて出力する必要がない。従ってセクタ番号ｓｎのインクリメントや選択フラグＤのトグル動作が不要となるので、Ｓ４１４にジャンプする。それ以外の場合にはＳ４０９に移行し、ｓｎのインクリメントを行う。尚ウェーブエンドフラグＷＥは図１０に示すように楽音データバッファ２３４から取得した楽音データのｂ０に記録されているフラグであり、ｓ１７６３９９９サンプルのみＷＥが値１である。ｂ０が値０の楽音データをＳ４０３において読み出すまでは、対応するチャンネルのＷＥは値１のままである。【０１１８】
Ｓ４１０においてセクタ番号ｓｎのインクリメントの結果ｓｎが値９６になった場合はＳ４１１に進む。そして次の楽音データ１セクタ分を読み出すために、チャンネルアサインテーブル２３２内の対応するチャンネルのＳＣをインクリメントすると共に楽音データ読出要求フラグＤＱを値１に設定する。ｓｎが９６以外ならこの処理を行うことなくＳ４１２に進む。【０１１９】
次にＳ４１２においてｓｎが１２７、即ち楽音データ１セクタ分の中の最後のサンプルに到達したか否かを判断し、到達した場合は選択フラグＤのトグル、即ち現在の値と逆の論理に変更する。この操作においては、チャンネルアサインテーブル２３２内の対応するチャンネルのＤを、例えば０から１に切換えると共に、楽音データバッファ２３１のデマルチプレクサ、例えば２３１＿０ｄの入力を切り換える。これにより、楽音データの読み出し元を、デュアルポートＲＡＭ２３１＿０ａからデュアルポートＲＡＭ２３１＿０ｂに切り替える。【０１２０】
次にＳ４１４において信号処理部２２０が内部保持しているＣＨＮをインクリメントし、ＣＨＮが０でなければ次のチャンネルの処理に移行すべくＳ４０１に戻る。但しＣＨＮは５ビットのカウンタに保持されＣＨ０〜ＣＨ３１を巡回的に更新する。Ｓ４１５でＣＨＮが値０になった時、即ちＣＨ３１までの処理が終了した時、ミキシング処理（Ｓ４１６）に移行する。【０１２１】
ミキシング処理では、ＣＨ０〜３１までのＷｎを式（１７）に基づいてミキシング処理する。
Ｗｘ＝（Ｗ０＋Ｗ１＋・・・・＋Ｗ３１）／３２  ・・・（１７）【０１２２】
ここでＷｎ（ｎはＣＨＮに対応する０〜３１の整数）は任意のチャンネルのＷとし、Ｗｘはミキシング結果である。ミキシングの後Ｓ４１７において更にエフェクト処理を行う。【０１２３】
図２３は、１サンプリング周期あたりの信号処理を示すタイムスロット図である。図２３において、左側が時刻の早い方であり、ＣＨ０〜３１までの補間処理やレベル制御の後、ＣＨ０〜３１までの楽音のミキシング処理（ＭＩＸ）、及びリバーブやコーラスなどのエフェクト処理（ＥＦＦＥＣＴ）がなされる。信号処理部２２０はこれらの一連の処理をサンプリング周期である２２．７μ秒毎に巡回して実行する。【０１２４】
以上説明した信号処理は、１サンプリング周期（２２．７μ秒）毎に繰り返して実行され、２２．７μ秒毎に処理後の楽音データが入出力部２１０ＡのＤＡコンバータにてデジタル−アナログ変更がなされ、その結果が所望の楽音としてラインアウト端子を介して外部に出力される。該楽音は外部のアンプとスピーカを介してピアノの演奏音が得られる。【０１２５】
さて、図１３ＡのＣＰＵ部２３０Ａのメインルーチンの説明に戻り、Ｓ１０２以降の処理について説明する。ＣＰＵ部２３０ＡはＳ１０２においてチャンネルアサインテーブル２３２において全てのチャンネルのＦを調べる。Ｆが値１のチャンネルの中でＥＥが値１のチャンネルがあれば、該チャンネルのＦを値０にクリアし（Ｓ１０３）、該チャンネルにチャンネルアサイン処理を行う（Ｓ１０４）。尚ＥＥのクリアは、前述したとおり信号処理部２２０がＳ４０２にて行う。【０１２６】
次に楽音データの読み出し要求（Ｓ１０５）と信号処理部２２０の発音制御（Ｓ１０６）を行う。Ｓ１０５とＳ１０６は前述したＳ１３０とＳ１３１と同じ処理である。【０１２７】
次にＳ１０７において、ＤＱが値１のチャンネルをサーチし、あればＳ１０８において該チャンネルの楽音データの読み出し要求を行う。尚Ｓ１０７やＳ１０２におけるチャンネルアサインテーブル２３２のサーチはＣＨ０から昇順に行う。【０１２８】
（２）発音遅延時間に関する説明
以上の処理を踏まえ、さまざまな打鍵方法別に、図２４Ａ〜図２４Ｃに示すタイムチャートと、図６Ａ〜図６Ｃに示すチャンネルアサインテーブル２３２を用いて、打鍵から楽音が発音されるまでの動作、及び発音遅延時間について説明する。【０１２９】
（２−１）離散的な打鍵の場合
図２４Ａは離散的な打鍵を行った場合の動作を説明したタイムチャート、図６Ａは該打鍵に対応するチャンネルアサインテーブル２３２内のパラメータの変化を表したものである。まず無音状態からマスターキーボード３００によってＮＮが０ｘ１９、０ｘ１Ｃ、０ｘ１Ｅ、０ｘ２０に対応する４つの鍵盤が時刻t0に同時に打鍵され、その後、数十μ秒ずつの時間間隔をおいて、ＮＮが０ｘ２５の鍵盤、ＮＮが０ｘ２９の鍵盤、最後にＮＮが０ｘ２Ｃと０ｘ２Ｆの２つの鍵盤が打鍵される場合について説明する。各打鍵は、前述したＣＰＵ部２３０Ａのチャンネルアサイン処理により夫々ＣＨ０〜７に割り当てられ、打鍵タイミングにＣＰＵ部２３０Ａの処理遅延を付加したタイミングで、ＣＨ０〜７の読み出し要求が読み出し指示部２４０に出力される。さらに読み出し指示部２４０が前述したように不揮発性記憶モジュール群のアクセス状況に応じて、読み出し指示情報を記憶モジュール１００Ａに転送する。【０１３０】
不揮発性メモリバンクからのメモリコントローラへの楽音データの読み出し中、及びメモリコントローラからアクセスモジュール２００Ａへのデータ転送中の間は、アクセスモジュール２００Ａは次の読み出し指示情報を転送できない。このため、記憶モジュール１００Ａへの読み出し指示情報の転送タイミングは、図２４Ａに示すタイミングで、ＣＨ０〜７の読み出し指示がアクセスモジュール２００Ａから記憶モジュール１００Ａに転送される。この転送タイミングに応じて、夫々のメモリバンク１１２〜１４２においてリードタイムＴＲの間にメモリセルアレイよりＩ／Ｏレジスタに読み出される。【０１３１】
その後、楽音データは、転送時間ＴＴ１の間にＩ／Ｏレジスタからメモリコントローラに読み出され、転送時間ＴＴ２の間にメモリコントローラから読み出し指示部２４０を介して楽音データバッファ２３１に一時記憶されることとなる。【０１３２】
信号処理部２２０は楽音データバッファ２３１に記憶された楽音データを用いて前述した通り楽音の生成処理を行う。信号処理部２２０は１サンプリング周期毎にＣＨ０〜３１までの処理を時分割にて行う。即ち２２．７μ秒毎に各チャンネルの楽音データがｓ０から順番に使用されることとなる。【０１３３】
ＣＨ０〜３においては、図２４Ａの時刻t2から始まる最初のタイムスロットにおいて、ｓ０が使用されることとなる。前記タイムスロットから４タイムスロット遅れてＣＨ４、５のｓ０が使用され始め、さらに３タイムスロット遅れてＣＨ６、７が使用され始める。【０１３４】
各チャンネルにおいて、ｓ０を使用したタイムスロットから数えて１２７番目のタイムスロットで５１２Ｂｙｔｅ分の楽音データを全て使いきる。このため前述した通り、ｓｎが９６になった時刻t4で、あらかじめ次の５１２Ｂｙｔｅ分の楽音データを取得しておく必要がある。尚９６に限る必要はなく、次の５１２Ｂｙｔｅ分の楽音データの処理に間に合うように、該５１２Ｂｙｔｅ分の楽音データを取得できれば、別の値であってもよい。【０１３５】
これに対応して図２４Ａの破線で示したタイミングで、ＣＨ０〜７の読み出し指示がアクセスモジュール２００Ａから記憶モジュール１００Ａに転送される。読み出し指示の間隔は、基本的にタイムスロットの間隔即ち２２．７μ秒毎になる。【０１３６】
次に、発音遅延時間について説明する。発音遅延時間とは、打鍵時刻からｓ０に対応する楽音を生成するまでの時間をいう。図２４Ａの場合は、図面によればＣＨ４の発音遅延時刻t1〜t3で最大であり、該発音遅延時間は１５０μ秒以下であると言える。これは発音遅延時間の許容範囲である１ｍ秒より十分短い値であるので、図２４Ａの場合においては、本実施の形態の楽音生成システムは、電子楽器などの楽音生成システムとして適用できる。【０１３７】
（２−２）集中的な打鍵の場合
次に、３２チャンネル全てを使用して一度に発音する場合について説明する。図２４Ｂはマスターキーボード３００により３２個の鍵盤を時刻t0に同時に打鍵した場合の動作を説明したタイムチャート、図６Ｂはこの打鍵に対応するチャンネルアサインテーブル２３２内のパラメータの変化を表したものである。尚、このような打鍵方法は通常の演奏ではあまりなされない方法である。【０１３８】
このような場合においては、例えば図６Ｂに示すように、ＮＮが０ｘ２８〜０ｘ４７に対応する３２個の鍵盤が同時に打鍵される。この打鍵は、前述したＣＰＵ部２３０Ａのチャンネルアサイン処理によりＣＨ０〜３１に割り当てられ、打鍵タイミングにＣＰＵ部２３０Ａの処理遅延を付加したタイミングで、ＣＨ０〜３１の読み出し要求が読み出し指示部２４０に出力され、さらに該読み出し要求に対応する読み出し指示情報がアクセスモジュール２００Ａから記憶モジュール１００Ａに転送される。以降は、図２４Ｂに示すように、楽音データが楽音データバッファ２３１に転送され、楽音を生成することとなる。【０１３９】
この場合、最も発音遅延時間が長くなるのはＣＨ２８〜３１であり、発音遅延時間は時刻t0〜t1まで、即ち図２４Ｂの図面上６５０μ秒以下であると言える。これは発音遅延時間の許容範囲である１ｍ秒より短い値であるので、図２４Ｂの場合においても、本実施の形態の楽音生成システムは、電子楽器などの楽音生成システムとして適用できる。【０１４０】
（２−３）急速消音の後に集中的な打鍵を行う場合
最後に、急速消音の後に３２チャンネル全てを使用して一度に発音する場合について、図２４Ｃと図６Ｃを用いて説明する。この場合は、例えば（２−２）に示した打鍵、即ち図６Ｃに示したようにＮＮが０ｘ２８〜０ｘ４７に対応する３２個の鍵盤が時刻t0に打鍵された状態のままで、新たに時刻t1にＮＮが０ｘ４８〜０ｘ６７に対応する３２個の鍵盤が打鍵された場合、即ち最大発音チャンネル数（３２チャンネル）を超えた発音となる。【０１４１】
このように最大発音チャンネル数を超えた発音制御をする場合は、既に発音されている３２チャンネル分全てを前もって急速消音し、該３２チャンネル分のＥＥを値１にする。そして聴感上聞こえないレベルまで消音した後に、該３２チャンネルに新たな打鍵を割り当てる必要がある。このような場合が最も発音遅延時間が長くなる場合である。【０１４２】
このような急速消音を行う期間は、図２４Ｃにおいて、時刻t1の打鍵直後の８サンプリング周期に相当する１８２μ秒の期間である。図６Ｃにおいて全チャンネルは、既に打鍵されていた鍵盤が離鍵されることなくかつ発音された状態において、新たな打鍵が行われたチャンネルとなるので、ＫＯＮ、ＳＯＮ共に値１から始まることとなる。そして信号処理部２２０の急速消音処理によりＥＥが値１に、ＳＯＮが値０になり、その結果、ＣＰＵ部２３０Ａのチャンネルアサイン処理によりＣＨ０〜３１の読み出し指示情報が記憶モジュール１００Ａに転送されることとなる。それ以降のタイムチャートは図２４Ｂに示すタイムチャートと同様である。【０１４３】
この場合、最も発音遅延時間が長くなるのはＣＨ２８〜３１であり、該発音遅延時間は時刻t1〜t3まで、即ち図２４Ｃの図面上８５０μ秒以下であると言える。これは発音遅延時間の許容範囲である１ｍ秒より短い値であるので、本実施の形態の楽音生成システムは、電子楽器などの楽音生成システムとして適用できる。【０１４４】
以上のように、第1の実施の形態に示す楽音生成システムでは、不揮発性メモリバンク１１２〜１４２毎に楽音データを記録することにより多重化しておき、データ読み出し部１２０が、アクセスモジュール２００Ａからの読み出し指示に従って前記複数の不揮発性メモリバンクから並列的に楽音データを読み出すようにした。このため楽音生成システムのような、どの音高の楽音データの読み出し指示がなされるか予想のつかないシステムにおいても、複数のデータの読み出し時に複数の不揮発性メモリバンクから並列的に読み出すことができる。従って発音遅延時間をその許容範囲である１ｍ秒よりも短くすることができる。即ち、現在主流である大容量フラッシュメモリを楽音データ用のメモリとして使用した場合においても、低価格かつ小型の楽音信号発生装置を実現することが可能となる。【０１４５】
（第２の実施の形態）
図２５Ａ，図２５Ｂは、本発明の第２の実施の形態における楽音生成システムを示すブロック図である。本実施の形態の楽音生成システムも記憶モジュール１００Ｂとアクセスモジュール２００Ｂを有している。記憶モジュールは４つの不揮発性記憶モジュール１１０Ｂ，１２０Ｂ，１３０Ｂ，１４０Ｂを有しており、不揮発性記憶モジュール１１０Ｂはメモリコントローラ１１１Ｂ、不揮発性メモリバンク１１２から成っている。その他の不揮発性記憶モジュールも同様である。又アクセスモジュール２００Ｂは入出力部２１０Ｂ、信号処理部２２０、ＣＰＵ部２３０Ｂ、読み出し指示部２４０及び書き込み指示部２５０を有する。基本的な構成は第1の実施の形態の楽音生成システムと同じであり、相違点は下記（ａ）〜（ｃ）である。
（ａ）ＣＰＵ部２３０ＢはＮＮテーブル２３３Ｂ、ファイルシステム部２３６と多重化部２３７を備える。その他のブロックについては第１の実施の形態と同一である。ＣＰＵ部２３０Ｂはインターネット３１０からダウンロードした楽音データを書き込み指示部２５０を介して記憶モジュール１００Ｂに書き込むと共に、該楽音データをファイルとして管理するものである。
（ｂ）メモリコントローラ１１１Ｂ，１２１Ｂ，１３１Ｂ，１４１Ｂは論物変換機能を有する。
（ｃ）入出力部２１０Ｂにはインターネット３１０が接続されており、ユーザによるダウンロードの指示に応じて必要なデータをダウンロードできるものとする。【０１４６】
図２６Ａは、論理アドレス空間とクラスタ番号ＣＬＮ及び論理セクタ番号ＬＳＮとの関係を説明した説明図であり、図２６Ｂは論理セクタ番号ＬＳＮと不揮発性メモリバンク１１２〜１４２内のメモリセルアレイ１１４〜１４４内の構造との関係を説明した物理アドレス空間の説明図である。ここで論理アドレス空間はＣＬ０〜ＣＬ１３０９４３から成る。１クラスタは３２ｋＢｙｔｅの容量とする。一方不揮発性メモリバンク１１２〜１４２は夫々物理ブロックＰＢ０〜ＰＢ１０２３を有している。また各物理ブロックは夫々２５６ページ（Ｐ０〜Ｐ２５５）から構成される。ここでは各不揮発性メモリバンク１１２〜１４２のＰＢ１〜ＰＢ７０４に楽音データが保持されている。ここで、論理アドレス空間は、ＰＢ０〜ＰＢ１０２２までに対応するものとする。即ちＰＢ１０２３は論理アドレス指定によって読み書きできない領域（以下、システム領域という）である。これはユーザが誤って消去しないようにするためであり、メーカー側が直接物理アドレス指定によって書き込むことが可能である。【０１４７】
図２７は、楽音データを記録した各ページ内の記録フォーマットについて、物理ブロックＰＢ１のページＰ０を例に説明した図である。全物理ブロックの各ページは、４０９６Ｂｙｔｅのデータ領域と１２８Ｂｙｔｅの冗長領域とから成る。本実施の形態において、データ領域は８セクタに分割される。各セクタは５１２Ｂｙｔｅの容量を持つ。また冗長領域は使用しない。【０１４８】
図２８は、論理セクタ番号ＬＳＮと物理セクタ番号ＰＳＮとの対応関係を示すビットフォーマットである。図２８において、ＬＳＮのビットｂ０〜ｂ２はページ内セクタ選択ビットであり、ｂ３，ｂ４はＭＭＮ、ｂ５〜ｂ１２はページ番号、ｂ１３〜ｂ２２は論理ブロック番号ＬＢＮを示している。クラスタ番号ＣＬＮはｂ２２〜ｂ５に相当する。ＭＭＮは不揮発性記憶モジュール１１０Ｂ〜１４０Ｂを選択するビットであり、ＭＭＮが値０のときに不揮発性記憶モジュール１１０を、ＭＭＮが値１の時に記憶モジュール１２０を、ＭＭＮが値２のときに不揮発性記憶モジュール１３０を、ＭＭＮが値３のときに不揮発性記憶モジュール１４０を、夫々選択する。またメモリコントローラ１１１Ｂ〜１４１ＢがＬＳＮのｂ２２〜ｂ１３を論理物理変換することによってＰＢＮが決まる。ＬＳＮのｂ１２〜ｂ５及びｂ２〜ｂ０は夫々ＰＳＮのｂ１０〜ｂ３、ｂ２〜ｂ０にそのまま対応する。【０１４９】
但し、図２８に示すＬＳＮのビットフォーマットは記憶モジュール１００Ｂの並列数が４の場合の例であり、並列数によってＭＭＮに割り当てられるビット数を変化させても構わない。例えば並列数が２の場合は、バンクセレクトに割り当てられるビット数は１（ｂ３）となり、それに伴いページ番号はｂ１１〜ｂ４にＬＢＮはｂ２１〜ｂ１２に割り当てられることとなる。また、ページ内セクタ選択ビットは、ページをセクタサイズで割り算した商に相当するビットである。本実施の形態においては、ページサイズを４０９６＋１２８Ｂｙｔｅ、セクタサイズを５１２Ｂｙｔｅとした場合、即ち図３に示すように１ページが８個のセクタに分割される場合であり、これらを前述した物理アドレスの下位３ｂｉｔによって選択する。尚ページサイズやセクタサイズは前述した値に限定される必要はなく、その値に応じてページ内セクタ選択ビットを可変としても構わない。【０１５０】
メモリコントローラ１１１Ｂ〜１４１Ｂは、アクセスモジュール２００Ｂから供給された読み出し指示情報を、不揮発性メモリバンク１１２〜１４２へのリードコマンドに変換するためのインターフェース回路やバッファ等を備えたものである。さらに、メモリコントローラ１１１Ｂ〜１４１Ｂは、図２８に示すようにＬＳＮの上位１０ビットをＰＢＮに変換する論物変換機能を有する。該インターフェース回路や論物変換機能は市販のメモリカード（例えばＳＤカード）にも搭載されているものであるので説明を省略する。【０１５１】
次にアクセスモジュール２００Ｂの各ブロックについて、図２５Ｂを用いて主に第1の実施の形態との相違点について説明する。【０１５２】
ＣＰＵ部２３０Ｂのファイルシステム部２３６は、楽音データをファイルとして管理するためのものである。多重化部２３７は、楽音データをファイルとして書き込む際に楽音データを多重化するものである。尚、ファイルシステム部２３６と多重化部２３７の詳細については後述する。【０１５３】
図２９は、ＣＰＵ部２３０Ｂに保持されているＮＮテーブル２３３Ｂを示す説明図である。本実施の形態のＮＮテーブル２３３Ｂは、ノートナンバーＮＮと、該ＮＮに対応する楽音データを記憶したクラスタ番号ＣＬＮとの関係を示すテーブルである。【０１５４】
読み出し指示部２４０は、第1の実施の形態の読み出し指示部２４０と同様である。【０１５５】
書き込み指示部２５０は、前述したＣＰＵ部２３０Ｂの楽音データの書き込み指示を記憶モジュール１００Ｂに転送するものである。【０１５６】
［初期状態］
まず、記憶モジュール１００Ｂ、あるいは図２５Ａと図２５Ｂに示した楽音生成システムの出荷前において、メーカー側で処理する初期化の内容について説明する。【０１５７】
メーカー側の書き込み装置、例えばＦＡＴファイルシステムに準拠するパソコンなどの装置が、不揮発性記憶モジュール１００Ｂ〜１４０Ｂを物理フォーマットする。その後書き込み装置により、図２６Ａに示すように論理アドレス空間における管理情報領域（ＣＬ０，ＣＬ１）には、ＦＡＴテーブルやルートディレクトエントリなどの管理情報をアロケートし、クラスタＣＬ２以降の通常領域には楽音データをアロケートする。【０１５８】
ここで図２６Ａ、図２６Ｂに示すように、不揮発性メモリバンク１１２のＰＢ０のＰ０はＬＳ０〜７に対応し、不揮発性メモリバンク１２２のＰＢ０のＰ０はＬＳ８〜１５に対応する。同様に、不揮発性メモリバンク１３２のＰＢ０のＰ０はＬＳ１６〜２３に対応し、不揮発性メモリバンク１４２のＰＢ０のＰ０はＬＳ２０〜３１に対応する。この関係は、図２８に示すＬＳＮ，ＰＳＮのビットフォーマットに従う。【０１５９】
次に楽音データは先頭論理アドレスから４ＭＢｙｔｅオフセットを加えたクラスタ（ＣＬ１２８）から最低音の音名（Ａ-1）から順番にアロケートするものとする。【０１６０】
このアロケートにより、不揮発性メモリバンク１１２〜１４２のＰＢ０のＰ０〜Ｐ３のエリアに管理情報が書き込まれ、ＰＢ１以降に楽音データが書き込まれる。該楽音データの先頭アドレスであるＣＬ１２８やファイル名、あるいは該楽音データが記憶された時刻情報などはファイルエントリ（ＦＥ）に保持される。このファイルエントリ（ＦＥ）は図２６Ａに示すようにＣＬ２の先頭の５１２Ｂｙｔｅにアロケートされ、物理空間上では図２６Ｂに示すように不揮発性メモリバンク１１２のＰＢ０のＰ４に書き込まれる。【０１６１】
ファイルエントリの論理アドレスは、管理情報内のルートディレクトリエントリから辿れるようになっている。なおＦＡＴファイルシステムは一般的な技術であるので詳細説明は省略する。【０１６２】
第２の実施の形態においても、最強タッチと最弱タッチの２種類について、ピアノの楽音データを４４．１ｋＨｚのサンプリング周波数でデジタル録音する。そして式（４）に示すとおり、１７６４０００サンプルについて、図２６Ｂに示すように不揮発性メモリバンク１１２の物理ブロックＰＢ１〜ＰＢ７０４に、ピアノの最低音から最高音に至る８８鍵分の楽音データを昇順に書き込む。不揮発性メモリバンク１２２〜１４２にも夫々同一のデータを同様に書き込む。これによって同一のデータを４つの並列化された不揮発性メモリバンクに多重化して記録する。例えば、図２６Ｂにおいて、各不揮発性メモリバンクのＰＢ１のＰ０に書き込まれるデータＬＳ８１９２〜ＬＳ８１９９、ＬＳ８２００〜ＬＳ８２０７、ＬＳ８２０８〜ＬＳ８２１５、ＬＳ８２１６〜ＬＳ８２２３は同じものである。【０１６３】
各メモリバンクのＰＢ１〜ＰＢ８には、ピアノの最低音のデータが記録され、ＰＢ１のＰ０から昇順に打鍵直後の先頭サンプル（ｓ０）から順番に最後尾サンプル（ｓ１７６３９９９）までの１７６４０００サンプル分の楽音データが記憶されている。但し図２７に示すように、５１２Ｂｙｔｅ単位で、最弱タッチと最強タッチの２種類の楽音データが組となって書き込まれる。なお、楽音データの１サンプルを示すビットフォーマットは、図１０に示す第1の実施の形態のものと同じである。【０１６４】
論理アドレスと物理アドレスは図２８に示す通り、各メモリコントローラ１１１Ｂ〜１４１Ｂによって論物変換が行われる。尚、簡単のため、全ての物理ブロックは正常なブロックであるとする。但し、初期不良ブロックがある場合は、論物変換の手法により該初期不良ブロックを使用しないようにすればよい。論物変換を行うための論物変換テーブル（図２６Ｂ中でＣＴとする）は不揮発性メモリバンク１１２のＰＢ１０２３に保持される。論物変換は一般的な技術であるので詳細な説明を省略する。【０１６５】
更に初期化の際には、図２６Ｂに示すように不揮発性メモリバンク１４２の物理ブロックＰＢ１０２２の最終ページには、記憶モジュール１００Ｂに記録されているピアノの楽音データの特性情報（以下、記録データ特性情報といい、図中でＲＤＩとする）を書き込み、物理ブロックＰＢ１０２３の最終ページには記憶モジュール１００Ｂのメモリ構成に係る情報（以下、メモリ構成情報といい、図中でＭＳＩとする）を書き込んでおく。なお、記録データ特性情報とメモリ構成情報は、第1の実施の形態と同じものであり、夫々図１１と図１２に示す。【０１６６】
以上のように構成された、本発明の第２の実施の形態における楽音生成システムの動作について説明する。
［電源立ち上げ時の初期化処理］
アクセスモジュール２００Ｂ及び記憶モジュール１００Ｂの電源立ち上げ後、夫々初期化処理を開始する。記憶モジュール１００Ｂの初期化処理は夫々のメモリコントローラが行い、初期化が完了するとアクセスモジュール２００Ｂに対してアクセスを許可する。なお、メモリコントローラの初期化処理については一般的であるので説明を省略する。【０１６７】
アクセスモジュール２００Ｂの初期化処理は、読み出し指示部２４０とＣＰＵ部２３０Ｂに分かれて行われる。【０１６８】
読み出し指示部２４０は、第1の実施の形態と同様、図１４ＡのフローチャートのＳ２００において初期化処理を行う。初期化処理では、記憶モジュール１００Ｂの全ての不揮発性記憶モジュールからアクセス許可を受信すると、ＣＰＵ部２３０Ｂに対してアクセス可能であることを通知する。【０１６９】
一方、アクセスモジュール２００ＢのＣＰＵ部２３０Ｂは第1の実施の形態（図１３Ａ）と同様にＳ１００において初期化処理を行う。初期化処理では、ＣＰＵ部２３０Ｂは、不揮発性メモリバンク１１２〜１４２のＰＢ０に記憶されたＦＡＴテーブルやファイルエントリをファイルシステム部２３６に読み出し、ファイルシステム部２３６は、既に記憶モジュール１００Ｂに記憶されている楽音データの開始クラスタ番号（ＣＬ１２８）を認識する。【０１７０】
さらに、その後、アクセスモジュール２００Ｂは読み出し指示部２４０を介し記憶モジュール１００Ｂに対して、記録データ特性情報とメモリ構成情報の読み出し指示情報を転送する。これによりＣＰＵ部２３０Ｂは不揮発性メモリバンク１４２のＰＢ１０２２に記憶された記録データ特性情報、及びＰＢ１０２３に記憶されたメモリ構成情報を読み出す。図３０Ａはメモリ構成情報を読み出すための読み出し指示情報を示す。尚、図３０Ａにおいて、ｂ２２〜ｂ２１はメモリ構成情報の読み出しコードを示す。＊はどのような値であっても構わないことを表す記号である。その他の初期化処理については、第1の実施の形態と同様である。【０１７１】
ＣＰＵ部２３０Ｂは、図１２に示すメモリ構成情報を取得すると、不揮発性記憶モジュール数に基づき、式（５）を実行することにより並列数を求める。本実施の形態では不揮発性記憶モジュール数は４である。こうして求めた並列数によりＬＳＮのビットフォーマットが決まる。本実施の形態においては、並列数が値４であるので、ＭＭＮのビット数は２となり、ＬＳＮのビットフォーマットは図２８に示すとおり２３ビットとなる。また例えば不揮発性記憶モジュール数が値２の場合には、並列数が２となり、ＭＭＮに割り当てられるビット数は１（ｂ３）となり、それに伴いページ番号はｂ１１〜ｂ４にＰＢＮはｂ２１〜ｂ１２に割り当てられることとなる。【０１７２】
さらに、ＣＰＵ部２３０Ｂは、第1の実施の形態と同様に、式（６）〜式（８）に基づき、１モジュール当たり最大チャンネル数、セクタ毎の総サンプル数ｕｓｎ、１ノートあたり必要な物理ブロック数を求める。そして、ファイルシステム部２３６がファイルエントリから抽出した楽音データの開始クラスタ（ＣＬ１２８）に基づき、最低音Ａ-1から最高音Ｃ7まで夫々のノートに対応するＰＢＮを決定し、図２９に示すＮＮテーブル２３３Ｂを生成する。【０１７３】
以上メインルーチンにおいて、記録データ特性情報とメモリ構成情報を読み出し、各種パラメータの設定処理によってＣＰＵ部２３０Ｂは初期化処理（Ｓ１００）を終える。そして読み出し指示部２４０からアクセス可の通知を受けると、Ｓ１１０から通常動作処理Ｓ１０１に移行し、割り込みをイネーブルにして外部のマスターキーボード３００からの演奏データを受付ける。【０１７４】
［通常動作時の処理］
基本的な動作は、第1の実施の形態と同様であるので、ここでは、２つの相違点、即ち（１）読み出し指示情報の生成と（２）楽音データの書き込み処理について説明する。
（１）読み出し指示情報の生成
ＣＰＵ部２３０Ｂは、マスターキーボード３００の打鍵操作に応じたチャンネルアサイン処理の後、読み出し指示部２４０に対して読み出し要求と共に楽音データの読み出し指示情報を渡す。読み出し指示情報は以下の手順で求められる。
（ａ）打鍵データのＮＮに基づきＮＮテーブル２３３Ｂを参照し、先頭ＣＬＮを求める。
（ｂ）先頭ＣＬＮとＳＣと式（１８）に基づき、ＬＳＮを求める。
ＬＳＮ＝（先頭ＣＬＮ＜＜６）＋［｛（ＳＣ＆０ｘＦＦＦ８）＜＜２｝｜
（ＳＣ＆０ｘ０００７）］  ・・・（１８）
但し、式（１８）で求められたＬＳＮは、（ｂ４、ｂ３）の値を０とし、ＭＭＮが値０の場合のＬＳＮである。また、＆は論理積をとる演算子、｜は論理和をとる演算子、＜＜は左にビットシフトする演算子である。尚、“０ｘ”は１６進数を表す記号である。式（１８）においてＮＮテーブルの先頭のＣＬＮを６ビットシフトすることによって図２８に示すｂ５〜２２までの論理セクタ番号ＬＳＮとすることができる。またセクタカウントＳＣのｂ０〜ｂ２をマスクして２ビットシフトさせることによってページ番号とすることができる。更にセクタカウントの下位３ビットを加えることによってＬＳＮが得られる。
（ｃ）式（１８）により求められたＬＳＮに基づき式（１９）を実行することにより、図３０Ｂに示すように読み出し指示情報を求める。なおＬＳＮの上位１８ビットはＣＬＮに相当する。
読み出し指示情報＝０ｘ６００００００｜ＬＳＮの上位１８ビット
｜ＬＳＮの下位３ビット          ・・・（１９）【０１７５】
このようにしてＣＰＵ部２３０Ｂは読み出し指示情報を決定し、読み出し指示部２４０に渡す。読み出し指示部２４０は前述の場合と同様に、ＭＭレジスタ２４２によって使用する不揮発性記憶モジュールを選択する。読み出し指示部２４０はこうして得られた読み出し指示情報を選択した不揮発性記憶モジュール１００Ｂ〜１４０Ｂのいずれかに転送する。楽音データの読み出す動作については、第1の実施の形態と同様である。但し、前述したとおり本実施の形態ではメモリコントローラ１１１Ｂ〜１４１Ｂの論物変換処理によって、図３０Ｂに示す読み出し指示情報のｂ２０〜ｂ１１の１０ビット分は、図２８に示すようにＰＢＮに変換され、その結果得られたＰＳＮが不揮発性メモリバンク１１２〜１４２に与えられることとなる。【０１７６】
以降、楽音の出力までの一連の処理については第1の実施の形態と同じであり、発音遅延時間も同様にして１ｍ秒以内にすることが可能となる。【０１７７】
（２）楽音データ書き込み処理
次にアクセスモジュール２００Ｂの楽音データ書き込み処理について図３１を中心に説明する。図３１は、アクセスモジュール２００Ｂの楽音データ書き込み処理を示すフローチャートである。楽音データの書き込みは入出力部２１０Ｂを通じてユーザの書き込み指示によって開始される。【０１７８】
まず、楽音データの書き込みに先立って、アクセスモジュール２００Ｂが不揮発性記憶モジュール１１０Ｂ〜１４０Ｂに記憶されているデータを消去すべく、物理フォーマットを行う（Ｓ５００）。図３２はインターネット３１０から取得した楽音データのファイルアロケーションを示す説明図である。物理フォーマットにより論理アドレス空間が一旦論理消去され、ファイルシステム部２３６は書き込み指示部２５０を介して不揮発性記憶モジュール１１０Ｂ〜１４０Ｂに消去指示を転送する。なお消去指示の仕様に係る詳細説明は省略する。【０１７９】
ここで、簡単のため図２８におけるＬＳＮのｂ２２〜ｂ１３とＰＳＮのｂ２０〜ｂ１１は一対一に対応しているものとする。そうすると、前述した消去指示により不揮発性メモリバンク１１２〜１４２のＰＢ０〜ＰＢ１０２２は物理消去されることとなる。なお、ＰＢ１０２３は前述した通り、論理アドレスの範囲外であるので物理消去されない。更にＰＢ０〜１０２２の物理ブロックが消去されたことを示すＦＡＴテーブル等をＰＢ０に記録する（Ｓ５０１）。【０１８０】
図３３Ａは、楽音データの書き込み前における不揮発性メモリバンク１１２〜１４２の記憶状態を表す説明図である。図３３Ａにおいて、不揮発性メモリバンク１１２〜１４２のＰＢ０には、前述した物理フォーマット（Ｓ５００）の後の書き込みにより、通常領域が全て論理消去されていたことを管理するためのＦＡＴテーブルなどが記憶されている。それに伴い不揮発性メモリバンク１１２〜１４２のＰＢ１〜ＰＢ１０２２は全て消去された状態となっている。【０１８１】
次に不揮発性メモリバンク１４２のＰＢ１０２３に記憶されたメモリ構成情報（ＭＳＩ）を読み出す（Ｓ５０２）。多重化部２３７はメモリ構成情報内のページサイズ（４ｋＢｙｔｅ）を多重化単位サイズとする（Ｓ５０３）。【０１８２】
次にＣＰＵ部２３０Ｂは、入出力部２１０Ｂを介して入力されたユーザのダウンロード指示に応じて、インターネット３１０から楽音データのダウンロードを開始する（Ｓ５０４）。【０１８３】
インターネットからダウンロードされる情報は、図３２に示すようにヘッダーと楽音データとからなる形式である。ヘッダーには楽音データ長や記録データ特性情報ＲＤＩなどが含まれる。ＣＰＵ部２３０Ｂは記録データ特性情報をＣＬ１３０９４３の最後尾のＬＳＮにアロケートすると共に（Ｓ５０５）、書き込み指示部２５０は書き込み指示情報により記録データ特性情報を書き込む（Ｓ５０６）。この時、書き込み指示情報は不揮発性記憶モジュール１４０Ｂに転送され、メモリコントローラ１４１Ｂは不揮発性メモリバンク１１３のＰＢ１０２２のＰ２５５の最後尾のＰＳＮに記録データ特性情報を書き込む。【０１８４】
なお前述した書き込みにおいて、書き込み先の物理ブロックが不良ブロックになった場合は、メモリコントローラ１４１Ｂが他の空き物理ブロックをサーチし、該空きブロックに書き込み直すと共に、該空きブロックを論物変換テーブルに登録することとなる。他のメモリコントローラ１１１Ｂ〜１３１Ｂも同様である。【０１８５】
次にＣＰＵ部２３０Ｂの多重化部２３７は、図３２に示すように、多重化単位サイズ（４ｋＢｙｔｅ）毎に並列数（４並列）分、楽音データを論理アドレス空間に多重化して、多重化した楽音データをファイルシステム部２３６に渡す。ファイルシステム部２３６はこの多重化された楽音データを論理アドレス空間にアロケートする（Ｓ５０７）。なお図３２においては、簡単のために楽音データの先頭のアロケート先をＣＬ１２８としたが、空きクラスタであればどこを先頭クラスタとしてもよい。【０１８６】
前述したアロケートに伴い、ＣＰＵ部２３０Ｂは図２８に示すＬＳＮを書き込み指示部２５０に渡し、書き込み指示部２５０は該ＬＳＮからビットｂ３，ｂ４を除き、図３４に示す書き込み指示情報を生成する。そして書き込み指示部２５０は記憶モジュール１００Ｂに転送することにより楽音データの書き込みを行う（Ｓ５０８）。この時、図２８に示すＬＳＮのＭＭＮによって転送先となる不揮発性記憶モジュールが決まる。例えば、図３２のＬＳ８１９２〜８１９９はＭＭＮが値０となるので、ＬＳ８１９２〜８１９９に対応する楽音データは不揮発性記憶モジュール１１０Ｂに書き込まれることとなる。【０１８７】
その後、楽音データと、該楽音データに対応する記録データ特性情報をセットとして１つの楽音データファイルとして登録すべく、ＦＡＴテーブルの書き込みと（Ｓ５０９）、ファイルエントリの書き込みを行う（Ｓ５１０）。【０１８８】
こうして最低音から最高音までの楽音データを不揮発性メモリバンク１１２〜１４２に多重化して書き込むことにより、その記憶状態は図３３Ａに示す状態から図３３Ｂに示す状態に変化する。図３３Ｂは、楽音データの書き込み後における不揮発性メモリバンク１１２〜１４２の記憶状態を表す説明図である。図３３Ｂにおいて、楽音データは不揮発性メモリバンク１１２〜１４２のＰＢ１〜ＰＢ７０４に記憶され、記録データ特性情報は不揮発性メモリバンク１４２のＰＢ１０２２に記憶される。またＦＡＴテーブルやファイルエントリなどの管理情報は、不揮発性メモリバンク１１２〜１４２のＰＢ０に記憶されたものから更新されるため、その他の空き物理ブロックの中で不揮発性メモリバンク１１２〜１４２のＰＢ７０５に記憶される。なお空き物理ブロックであれば、ＰＢ７０５に限定されることはない。【０１８９】
以上のように、アクセスモジュール２００Ｂが、インターネット３１０などから取得した楽音データを、メモリ構成情報に基づいて論理アドレス空間上に多重化してアロケートし、さらに該アロケートに伴い記憶モジュール１００Ｂに楽音データを書き込む。こうして得られた楽音データを保持する記憶モジュール１００Ｂをアクセスモジュール２００Ｂに接続する。そしてマスターキーボード３００の打鍵に応じて発音させることにより、簡単に音色の更新ができる。【０１９０】
また記憶モジュール１００Ｂに記憶された楽音データはファイルシステム部２３６によって楽音データファイルとして管理されるので、同じファイルシステム（ＦＡＴファイルシステム）に基づくパーソナルコンピュータなどの装置で管理したり編集したりすることができる。また他の記録装置や記録媒体などへのコピーも容易に行うことができる。【０１９１】
なお、楽音データを不揮発性メモリバンク１１２〜１４２に書き込む際に、不良ブロックが発生した場合は、各メモリコントローラが論物変換を行い、空きの良ブロックに書き込み直せばよい。【０１９２】
なお、アクセスモジュール２００Ｂが記憶モジュール１００Ｂに書き込む楽音データをインターネット３１０から取得したが、パーソナルコンピュータなど他の装置から取得するようにしても構わない。【０１９３】
以上のように、第２の実施の形態に示す楽音生成システムでは、不揮発性メモリバンク１１２〜１４２毎に楽音データを記録することにより多重化しておき、読み出し指示部２４０が、前記複数の不揮発性メモリバンクから並列的に楽音データを読み出すようにした。このため楽音生成システムのような、どの音高の楽音データの読み出し指示がなされるか予想のつかないシステムにおいても、複数のデータの読み出し時に複数の不揮発性メモリバンクから並列的に読み出すことができる。従って発音遅延時間をその許容範囲である１ｍ秒よりも短くすることができる。即ち、現在主流である大容量の多値ＮＡＮＤフラッシュメモリを楽音データ用のメモリとして使用した場合においても、低価格かつ小型の楽音信号発生装置を実現することが可能となる。【０１９４】
さらに、第２の実施の形態における楽音生成システムはＦＡＴファイルシステムに基づいたシステムである。ＦＡＴファイルシステムは汎用的なファイルシステムであり、アクセスモジュールによって楽音データを書き込むことができる。従ってユーザが好みに応じて書き換えた楽音データを用いることができるので、汎用性の高いシステムであると言える。【０１９５】
（第３の実施の形態）
次に本発明の第３の実施の形態におけるデータ書き込みシステムについて、図３５を用いて説明する。本実施の形態のデータ書き込みシステムは、データ書き込みモジュール４００と記憶モジュール１００Ｂとから構成される。記憶モジュール１００Ｂは、前述した第２の実施の形態における記憶モジュール１００Ｂと同じものである。データ書き込みモジュール４００は第２の実施の形態のアクセスモジュール２００Ｂのデータ書き込みのための機能を抽出したもので、図３５に示すように、入出力部４１０、ＣＰＵ部４２０、書き込み指示部４３０を含む。データ書き込みモジュール４００の入出力部４１０にはインターネット３１０が接続されており、ユーザによるダウンロードの指示に応じて必要なデータをダウンロードできるものとする。ＣＰＵ部４２０は第２の実施の形態と同様のファイルシステム部２３６、及び多重化部２３７を含む。データ書き込みモジュール４００は第２の実施の形態のアクセスモジュール２００Ｂのデータ書き込み処理を実行するので、詳細な説明を省略する。【０１９６】
またデータ書き込みモジュール４００はパーソナルコンピュータなどの装置であってもよく、パーソナルコンピュータなどに組み込まれたアクセス回路モジュールであってもよい。【０１９７】
以上のように、第３の実施の形態に示すデータ書き込みモジュールでは、楽音データをファイルとして多重化して書き込んで管理できるので、インターネットなどからダウンロードした楽音データを不揮発性記憶モジュールに書き込むことにより簡単に音色の更新ができる。尚、楽音データはインターネット以外のソースから取り込むようにしてもよい。【０１９８】
（第４の実施の形態）
次に本発明の第４の実施の形態におけるデータ書き込みシステムについて図３６を用いて説明する。本実施の形態のデータ書き込みシステムは、データ書き込みモジュール４００と記憶モジュール１００Ｂとから構成される。本実施の形態のデータ書き込みシステムは、基本的に第３の実施の形態のデータ書き込みシステムとほぼ同様であり、相違点は楽音データの取得元がインターネット３１０ではなく、記憶モジュール１００Ｂの中の１つの不揮発性記憶モジュールである点である。ここでは不揮発性記憶モジュール１１０Ｂのデータを他のモジュールにも書き込むものとし、以下、マスター記憶モジュールという。なお、マスター記憶モジュールはデータ書き込みモジュール５００に着脱可能なモジュールとする。【０１９９】
不揮発性記憶モジュール１１０Ｂがデータ書き込みモジュール５００に装着されると、入出力部５１０は装着された不揮発性記憶モジュール１１０Ｂがマスター記憶モジュールであると判別する。このときＣＰＵ部５２０のファイルシステム部２３６は、自動的にマスター記憶モジュールに記憶された楽音データを読み出し、多重化部２３７によってそのデータを多重化する。そして書き込み指示部５３０の制御に基づいて不揮発性記憶モジュール１１０Ｂ〜１４０Ｂに多重化して書き込む。データ書き込みモジュール５００は第２の実施の形態のアクセスモジュール２００Ｂのデータ書き込み処理を実行するので、詳細な説明を省略する。なお、入出力部５１０は、ユーザのコピー指示に基づいて、マスター記憶モジュールの判別と、楽音データの読み出し開始を判断しても良い。【０２００】
また入出力部５１０は前述したようにマスター記憶モジュールを判別するので、ファイルシステム部２３６はマスター記憶モジュールには再度書き込まないように制御することも可能である。【０２０１】
またデータ書き込みモジュール５００はパーソナルコンピュータなどの装置であってもよく、パーソナルコンピュータなどに組み込まれたアクセス回路モジュールであってもよい。【０２０２】
以上のように、第４の実施の形態に示すデータ書き込みモジュールでは、楽音データをファイルとして多重化して書き込んで管理できるので、マスター記憶モジュールから読み出した楽音データを不揮発性記憶モジュールに書き込むことにより簡単に音色の更新ができる。【０２０３】
第１〜４の実施の形態においてはピアノの音をデジタル録音したデータを楽音データとして不揮発性メモリバンク１１２〜１４２に記録したが、ピアノ以外の楽器音や音声、あるいはその他のデータを記憶しても構わない。また楽音データは、デジタル録音したデータではなく人工的に作られたデータであってもよい。またＭＰ３などの圧縮技術によって圧縮されたデータであっても構わない。但しその場合は信号処理部２２０に該圧縮データを伸張する処理、即ちデコード処理を実行させる必要がある。また打鍵強度に対応して２種類の楽音データを予め記憶したが、１種類あるいは３種類以上であっても構わない。但し１種類の場合は、信号処理部２２０による補間処理は不要であり、３種類以上の場合は該補間処理の方法を３点間直線補間などに拡張すればよい。また補間処理ではなくフィルタリング処理を用いても構わない。【０２０４】
尚、１つの鍵盤に対応する楽音データを約４０秒分としたが、それに限定されることはなく、またＮＮに応じて楽音データの時間長を変えてもよい。通常ピアノの場合は低音ほど発音時間が長いので、低音側の楽音データの時間長を比較的長めにして、高音側の楽音データの時間長を比較的短めにした方が記憶容量を合理化でき好ましい。また、楽音データの多重化に際して、不揮発性メモリバンク１１２〜１４２に同一の楽音データを記録するようにしたが、聴感上同じように聞こえるのであれば、不揮発性メモリバンク１１２〜１４２間で楽音データの値が多少違っていても差し支えない。【０２０５】
記憶モジュール１００Ａ，１００Ｂはメモリカードのようなリムーバブル記憶装置であってもよいし、電子楽器などの装置に組み込まれたメモリ部であってもよい。また、アクセスモジュール２００Ａ，２００Ｂは電子楽器などの装置であってもよいし、電子楽器などの装置に組み込まれたアクセス回路部であってもよい。【０２０６】
第１〜４の実施の形態においては不揮発性記憶モジュールの数を４個としたが、それ以外の数であっても構わない。不揮発性記憶モジュールの数が多いほど、より発音遅延時間を短くすることができる。また、セクタサイズ即ち１回あたりの楽音データの読み出しサイズを５１２Ｂｙｔｅとしたが、その他のサイズであってもよい。該サイズが小さいほど楽音データバッファのＲＡＭ容量を合理化できるが、必要以上に小さくすると楽音生成処理が破綻する。また、１つの不揮発性記憶モジュール内に複数不揮発性メモリバンクを含んでも構わない。【０２０７】
尚、第１〜４の実施の形態においては図１４ＡのＳ２０２〜Ｓ２０８に示す通り、不揮発性記憶モジュール群のアサイン状況に応じて読み出し指示情報の転送先の不揮発性記憶モジュールを決定するようにしたが、例えば下記（ａ）〜（ｄ）に示すようにＣＨＮとＭＭＮとの関係を固定化しても構わない。
（ａ）ＣＨ０、４、８、１２、１６、２０、２４、２８
・・・ＭＭ０（不揮発性記憶モジュール１１０Ａ，１１０Ｂ）
（ｂ）ＣＨ１、５、９、１３、１７、２１、２５、２９
・・・ＭＭ１（不揮発性記憶モジュール１２０Ａ，１２０Ｂ）
（ｃ）ＣＨ２、６、１０、１４、１８、２２、２６、３０
・・・ＭＭ２（不揮発性記憶モジュール１３０Ａ，１３０Ｂ）
（ｄ）ＣＨ３、７、１１、１５、１９、２３、２７、３１
・・・ＭＭ３（不揮発性記憶モジュール１４０Ａ，１４０Ｂ）【０２０８】
尚、楽音データをページ内に連続的に配置したが、配置の規則性を記憶モジュール１００Ａ，１００Ｂやアクセスモジュール２００Ａ，２００Ｂが認識していれば、不連続であっても構わない。また、第１の実施の形態ではＰＢ０を先頭ブロックとして楽音データの最低音から順に連続的に配置したが、配置の規則性を記憶モジュール１００Ａ，１００Ｂやアクセスモジュール２００Ａ，２００Ｂが認識していれば、ＰＢ０が先頭ブロックでなくてもよく、また不連続であっても構わない。【０２０９】
尚、不揮発性メモリバンクをフラッシュメモリとしたが、本発明はその他の不揮発性メモリを用いた場合に適用できる。【０２１０】
不揮発性メモリバンクに楽音データ特性情報とメモリ構成情報とを保持するようにしているが、これらの情報を保持する別の不揮発性メモリを設けておいてもよい。あるいは、前記メモリ構成情報は、予め規格化された情報として扱っても構わない。【０２１１】
尚、メモリコントローラ１１１Ａ，１１１Ｂ〜１４１Ａ，１４１Ｂはアクセスモジュール２００Ａ又は２００Ｂ側にあっても構わない。その場合、不揮発性メモリバンク１１２〜１４２は夫々が１つのメモリチップにパッケージされたものであってもよいし、あるいは不揮発性メモリバンク１１２〜１４２の中の２個以上をまとめて１つのメモリチップにパッケージされたものであってもよい。【０２１２】
尚、マスターキーボード３００から演奏情報を入力したがそれ以外の形態の入力コントローラ、例えば弦を弾くことによって演奏データを出力するギター型のコントローラや、物を叩くことによって演奏データを出力するスティック型のコントローラ、あるいは加速度センサを備えたもので、それを振る動作に従って演奏データを出力するタイプのコントローラであってもよい。また、パーソナルコンピュータなどの装置から、あるいはネットワークを介してスタンダードＭＩＤＩファイルのような演奏データをアクセスモジュール２００Ｂに入力するようにしても構わない。
【産業上の利用可能性】
【０２１３】
本発明にかかる楽音生成システムは、不揮発性メモリを楽音データ用のメモリとして使用する方法を提案したものであり、電子楽器やカラオケ装置、あるいは楽音生成機能（例えばサウンドカード）を有するパーソナルコンピュータや携帯電話などにおいて有益である。
【図１Ａ】
2010010646.tif 000003
【図１Ｂ】
2010010646.tif 000004
【図２】
2010010646.tif 000005
【図３】
2010010646.tif 000006
【図４】
2010010646.tif 000007
【図５】
2010010646.tif 000008
【図６Ａ】
2010010646.tif 000009
【図６Ｂ】
2010010646.tif 000010
【図６Ｃ】
2010010646.tif 000011
【図７】
2010010646.tif 000012
【図８】
2010010646.tif 000013
【図９】
2010010646.tif 000014
【図１０】
2010010646.tif 000015
【図１１】
2010010646.tif 000016
【図１２】
2010010646.tif 000017
【図１３Ａ】
2010010646.tif 000018
【図１３Ｂ】
2010010646.tif 000019
【図１４Ａ】
2010010646.tif 000020
【図１４Ｂ】
2010010646.tif 000021
【図１４Ｃ】
2010010646.tif 000022
【図１５】
2010010646.tif 000023
【図１６】
2010010646.tif 000024
【図１７】
2010010646.tif 000025
【図１８】
2010010646.tif 000026
【図１９】
2010010646.tif 000027
【図２０】
2010010646.tif 000028
【図２１】
2010010646.tif 000029
【図２２】
2010010646.tif 000030
【図２３】
2010010646.tif 000031
【図２４Ａ】
2010010646.tif 000032
【図２４Ｂ】
2010010646.tif 000033
【図２４Ｃ】
2010010646.tif 000034
【図２５Ａ】
2010010646.tif 000035
【図２５Ｂ】
2010010646.tif 000036
【図２６Ａ】
2010010646.tif 000037
【図２６Ｂ】
2010010646.tif 000038
【図２７】
2010010646.tif 000039
【図２８】
2010010646.tif 000040
【図２９】
2010010646.tif 000041
【図３０Ａ】
2010010646.tif 000042
【図３０Ｂ】
2010010646.tif 000043
【図３１】
2010010646.tif 000044
【図３２】
2010010646.tif 000045
【図３３Ａ】
2010010646.tif 000046
【図３３Ｂ】
2010010646.tif 000047
【図３４】
2010010646.tif 000048
【図３５】
2010010646.tif 000049
【図３６】
2010010646.tif 000050
【手続補正書】
【提出日】平成22年3月15日(2010.3.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
楽音データを多重化して記録した複数の不揮発性記憶モジュールに読み出し指示を行うアクセスモジュールであって、
外部からの１つの発音指示に応じて前記いずれかの不揮発性記憶モジュールからデータの読み出しを行い、当該読み出しを完了する前に、他の発音指示があったときに該読み出し中の不揮発性記憶モジュールと異なる不揮発性記憶モジュールから読み出しを並行して行う読み出し指示部、を具備し、
前記読み出し指示部は、読み出し単位毎に複数サンプルのデータをまとめて読み出す事を特徴とするアクセスモジュール。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
図１２は、記憶モジュール１００Ａのメモリ構成情報の一例を示す説明図である。ここで図１２のセクタサイズは１回の読み出し指示毎に読み出すデータのサイズを示しており、リードタイムＴＲはメモリセルアレイからＩＯレジスタへの読み出し時間を示す。転送時間ＴＴ１は各メモリバンクのＩＯレジスタからメモリコントローラ内にバッファリングする時間を示す。なお、図１２のＴＲとＴＴを合わせて期間を読み出し単位とし、その時間を読み出し単位時間とする。尚図１２のテーブルにおいて、備考欄は実際に記録されているものではなく、参考情報である。
【国際調査報告】
2010010646.tif 000051
2010010646.tif 000052
2010010646.tif 000053
2010010646.tif 000054
2010010646.tif 000055
2010010646.tif 000056
2010010646.tif 000057