(57)【特許請求の範囲】
【請求項１】
所定の圧縮方法により圧縮された楽音データを読み出す読み出し手段と、
該読み出し手段から読み出された前記楽音データを記憶するか否かを判定する第１の判定手段と、
該第１の判定手段において記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定手段と、
前記第１の判定手段において記憶しないと判定された楽音データと、前記第２の判定手段において記憶されていないと判定された楽音データとを伸張処理する伸張処理手段と、
前記第２の判定手段において記憶されていないと判定されて前記伸張処理手段によって伸張処理された楽音データを記憶する記憶手段と、
前記第２の判定手段において記憶されていると判定されて前記記憶手段から読み出された前記伸張処理された楽音データと、前記第１の判定手段において記憶しないと判定されて前記伸張処理手段によって伸張処理された楽音データとを楽音として生成する生成手段と、
を備えることを特徴とする楽音生成装置。
【請求項２】
所定の圧縮方法により圧縮された楽音データを読み出す読み出しステップと、
該読み出しステップから読み出された前記楽音データを記憶するか否かを判定する第１の判定ステップと、
該第１の判定ステップにおいて記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定ステップと、
前記第１の判定ステップにおいて記憶しないと判定された楽音データと、前記第２の判定ステップにおいて記憶されていないと判定された楽音データとを伸張処理する伸張処理ステップと、
前記第２の判定ステップにおいて記憶されていないと判定されて前記伸張処理ステップによって伸張処理された楽音データを記憶する記憶ステップと、
前記第２の判定ステップにおいて記憶されていると判定されて前記記憶ステップから読み出された前記伸張処理された楽音データと、前記第１の判定ステップにおいて記憶しないと判定されて前記伸張処理ステップによって伸張処理された楽音データとを楽音として生成する生成ステップと、
を含むことを特徴とする楽音生成方法。
【請求項３】
所定の圧縮方法により圧縮された楽音データを読み出す読み出しステップと、
該読み出しステップから読み出された前記楽音データを記憶するか否かを判定する第１の判定ステップと、
該第１の判定ステップにおいて記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定ステップと、
前記第１の判定ステップにおいて記憶しないと判定された楽音データと、前記第２の判定ステップにおいて記憶されていないと判定された楽音データとを伸張処理する伸張処理ステップと、
前記第２の判定ステップにおいて記憶されていないと判定されて前記伸張処理ステップによって伸張処理された楽音データを記憶する記憶ステップと、
前記第２の判定ステップにおいて記憶されていると判定されて前記記憶ステップから読み出された前記伸張処理された楽音データと、前記第１の判定ステップにおいて記憶しないと判定されて前記伸張処理ステップによって伸張処理された楽音データとを楽音として生成する生成ステップと、
を含む処理を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項４】
圧縮されている楽音データを記憶する第１の記憶手段と、
該第１の記憶手段からの楽音データを記憶するか否かを判定する第１の判定手段と、
該第１の判定手段において記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定手段と、
前記第１の判定手段において記憶しないと判定された楽音データと、前記第２の判定手段において記憶されていないと判定された楽音データとを伸張処理する伸張処理手段と、
前記第２の判定手段において記憶されていないと判定されて前記伸張処理手段によって伸張処理された楽音データを記憶する第２の記憶手段と、
前記第２の記憶手段からの出力または前記伸張処理手段からの出力を選択する選択手段であって、前記第２の判定手段において記憶されていると判定された場合には前記第２の記憶手段から読み出された前記伸張処理された楽音データを選択し、前記第１の判定手段において記憶しないと判定された場合には前記伸張処理手段によって伸張処理された楽音データを選択する選択手段と、
該選択手段において選択された楽音データを楽音として出力する出力手段と、
を備えることを特徴とする楽音生成装置。
【請求項５】
圧縮されている楽音データを記憶する第１の記憶ステップと、
該第１の記憶ステップからの楽音データを記憶するか否かを判定する第１の判定ステップと、
該第１の判定ステップにおいて記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定ステップと、
前記第１の判定ステップにおいて記憶しないと判定された楽音データと、前記第２の判定ステップにおいて記憶されていないと判定された楽音データとを伸張処理する伸張処理ステップと、
前記第２の判定ステップにおいて記憶されていないと判定されて前記伸張処理ステップによって伸張処理された楽音データを記憶する第２の記憶ステップと、
前記第２の記憶ステップからの出力または前記伸張処理ステップからの出力を選択する選択ステップであって、前記第２の判定ステップにおいて記憶されていると判定された場合には前記第２の記憶手段から読み出された前記伸張処理された楽音データを選択し、前記第１の判定ステップにおいて記憶しないと判定された場合には前記伸張処理ステップによって伸張処理された楽音データを選択する選択ステップと、
該選択ステップにおいて選択された楽音データを楽音として出力する出力ステップと、
を含むことを特徴とする楽音生成方法。
【請求項６】
圧縮されている楽音データを記憶する第１の記憶ステップと、
該第１の記憶ステップからの楽音データを記憶するか否かを判定する第１の判定ステップと、
該第１の判定ステップにおいて記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定ステップと、
前記第１の判定ステップにおいて記憶しないと判定された楽音データと、前記第２の判定ステップにおいて記憶されていないと判定された楽音データとを伸張処理する伸張処理ステップと、
前記第２の判定ステップにおいて記憶されていないと判定されて前記伸張処理ステップによって伸張処理された楽音データを記憶する第２の記憶ステップと、
前記第２の記憶ステップからの出力または前記伸張処理ステップからの出力を選択する選択ステップであって、前記第２の判定ステップにおいて記憶されていると判定された場合には前記第２の記憶手段から読み出された前記伸張処理された楽音データを選択し、前記第１の判定ステップにおいて記憶しないと判定された場合には前記伸張処理ステップによって伸張処理された楽音データを選択する選択ステップと、
該選択ステップにおいて選択された楽音データを楽音として出力する出力ステップと、
を含む処理を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
技術分野
本発明は楽音生成装置および方法、提供媒体、並びに、データ記録媒体に関し、特に、１つの楽音を生成するデータの先頭部分を伸張する際にかかる時間が少ない圧縮方法が用いられ、または圧縮がされず、その他の部分に高圧縮方法を用いて圧縮された楽音データを用い、そのデータの先頭部分が伸張処理され、発音されている間に、その他の部分が処理されるようにすることにより、所定の楽音が発音要求されてから、発音されるまでの遅延時間が、使用者に認識されないようにした楽音生成装置および方法、提供媒体、並びに、データ記録媒体に関する。
背景技術
電子楽器やゲーム機などにおいては、ユーザの操作は無作為に行われこのため発音される楽音は予測しがたく、予めユーザの操作を予測して、発音要求があるであろう楽音を生成しておくことは難しかった。また、電子楽器やゲーム機などでは所定の楽音の発音要求があってから、即座に発音されることも要求されている。このような予測しがたい即座の発音要求に対処するため、電子楽器やゲーム機などに使われる楽音データは、非圧縮としたりまたは伸張する際に処理時間が少ない圧縮方法、例えばＡＤＰＣＭ（Ａｄａｐｔｉｖｅ Ｄｉｆｆｅｒｅｎｔｉａｌ Ｐｕｌｓｅ Ｃｏｄｅ Ｍｏｄｕｌａｔｉｏｎ）が用いられて圧縮されていた。
例えばＭＤ（Ｍｉｎｉ Ｄｉｓｃ）などにおいては、高効率符号化音声圧縮方式として、ＡＴＲＡＣ（Ａｄａｐｔｉｖｅ Ｔｒａｎｓｆｏｒｍ Ａｃｏｕｓｔｉｃ Ｃｏｄｉｎｇ）やＡＴＲＡＣ２などが開発されてきており、かかる方式では、高音質が得られしかも、先のデータを予見して（ユーザの操作に左右されずに）データを先読みし、楽音を生成できる音楽再生装置を実現しつつある。
ここで、ＡＤＰＣＭはデータを約４分の１に圧縮するのに対し、ＡＴＲＡＣ２は約１０分の１乃至２０分の１に圧縮することが可能である。また、ＡＴＲＡＣ２で圧縮されたデータを伸張した音声は、ＡＤＰＣＭで圧縮されたデータを伸張した音よりも原音（圧縮前の音）に近い音となっている。
しかしながら、ＡＴＲＡＣ２はＡＤＰＣＭに比べて圧縮、伸張にかかる処理の負荷が重い（約２０倍）ため、ユーザの発音要求に応じて即座に発音しなければならないような電子楽器やゲーム機などにはやはり不向きとされていた。
また、電子楽器やゲーム機などでは、同時に複数の楽音が発音要求される場合があり、そのような場合にＡＴＲＡＣ２などの処理の負荷が重い圧縮方法を用いられていた場合、即座に全ての楽音が生成できない（発音できない）という課題があった。
本発明は、このような状況に鑑みてなされたものであり、１つの楽音を生成するためのデータのうち先頭部分とその他の部分とで、異なる圧縮方法を用いて圧縮された楽音データを用いることにより、または、伸張処理されたデータのうち、一部を記憶するようにすることにより、発音要求から発音されるまでの遅延時間をなくし、かつ、高効率符号化音声圧方式を用いることができるようにするものである。
発明の開示
楽音生成装置は、所定の圧縮方法により圧縮された楽音データを読み出す読み出し手段と、読み出し手段から読み出された楽音データを記憶するか否かを判定する第１の判定手段と、第１の判定手段において記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定手段と、第１の判定手段において記憶しないと判定された楽音データと、第２の判定手段において記憶されていないと判定された楽音データとを伸張処理する伸張処理手段と、第２の判定手段において記憶されていないと判定されて伸張処理手段によって伸張処理された楽音データを記憶する記憶手段と、第２の判定手段において記憶されていると判定されて記憶手段から読み出された伸張処理された楽音データと、第１の判定手段において記憶しないと判定されて伸張処理手段によって伸張処理された楽音データとを楽音として生成する生成手段と、を備える。
また、楽音生成方法は、所定の圧縮方法により圧縮された楽音データを読み出す読み出しステップと、読み出しステップから読み出された楽音データを記憶するか否かを判定する第１の判定ステップと、第１の判定ステップにおいて記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定ステップと、第１の判定ステップにおいて記憶しないと判定された楽音データと、第２の判定ステップにおいて記憶されていないと判定された楽音データとを伸張処理する伸張処理ステップと、第２の判定ステップにおいて記憶されていないと判定されて伸張処理ステップによって伸張処理された楽音データを記憶する記憶ステップと、第２の判定ステップにおいて記憶されていると判定されて記憶ステップから読み出された伸張処理された楽音データと、第１の判定ステップにおいて記憶しないと判定されて伸張処理ステップによって伸張処理された楽音データとを楽音として生成する生成ステップと、を含む。
また、コンピュータ読み取り可能な記録媒体は、所定の圧縮方法により圧縮された楽音データを読み出す読み出しステップと、読み出しステップから読み出された楽音データを記憶するか否かを判定する第１の判定ステップと、第１の判定ステップにおいて記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定ステップと、第１の判定ステップにおいて記憶しないと判定された楽音データと、第２の判定ステップにおいて記憶されていないと判定された楽音データとを伸張処理する伸張処理ステップと、第２の判定ステップにおいて記憶されていないと判定されて伸張処理ステップによって伸張処理された楽音データを記憶する記憶ステップと、第２の判定ステップにおいて記憶されていると判定されて記憶ステップから読み出された伸張処理された楽音データと、第１の判定ステップにおいて記憶しないと判定されて伸張処理ステップによって伸張処理された楽音データとを楽音として生成する生成ステップと、を含む処理を実行させるためのプログラムを記録する。
さらに、楽音生成装置は、圧縮されている楽音データを記憶する第１の記憶手段と、第１の記憶手段からの楽音データを記憶するか否かを判定する第１の判定手段と、第１の判定手段において記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定手段と、第１の判定手段において記憶しないと判定された楽音データと、第２の判定手段において記憶されていないと判定された楽音データとを伸張処理する伸張処理手段と、第２の判定手段において記憶されていないと判定されて伸張処理手段によって伸張処理された楽音データを記憶する第２の記憶手段と、第２の記憶手段からの出力または伸張処理手段からの出力を選択する選択手段であって、第２の判定手段において記憶されていると判定された場合には第２の記憶手段から読み出された伸張処理された楽音データを選択し、第１の判定手段において記憶しないと判定された場合には伸張処理手段によって伸張処理された楽音データを選択する選択手段と、選択手段からの出力を楽音として出力する出力手段と、を備える。
さらにまた、楽音生成方法は、圧縮されている楽音データを記憶する第１の記憶ステップと、第１の記憶ステップからの楽音データを記憶するか否かを判定する第１の判定ステップと、第１の判定ステップにおいて記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定ステップと、第１の判定ステップにおいて記憶しないと判定された楽音データと、第２の判定ステップにおいて記憶されていないと判定された楽音データとを伸張処理する伸張処理ステップと、第２の判定ステップにおいて記憶されていないと判定されて伸張処理ステップによって伸張処理された楽音データを記憶する第２の記憶ステップと、第２の記憶ステップからの出力または伸張処理ステップからの出力を選択する選択ステップであって、第２の判定ステップにおいて記憶されていると判定された場合には第２の記憶手段から読み出された伸張処理された楽音データを選択し、第１の判定ステップにおいて記憶しないと判定された場合には伸張処理ステップによって伸張処理された楽音データを選択する選択ステップと、選択ステップからの出力を楽音として出力する出力ステップと、を含む。
また、コンピュータ読み取り可能な記録媒体は、圧縮されている楽音データを記憶する第１の記憶ステップと、第１の記憶ステップからの楽音データを記憶するか否かを判定する第１の判定ステップと、第１の判定ステップにおいて記憶するものと判定された楽音データが記憶されているか否かを判定する第２の判定ステップと、第１の判定ステップにおいて記憶しないと判定された楽音データと、第２の判定ステップにおいて記憶されていないと判定された楽音データとを伸張処理する伸張処理ステップと、第２の判定ステップにおいて記憶されていないと判定されて伸張処理ステップによって伸張処理された楽音データを記憶する第２の記憶ステップと、第２の記憶ステップからの出力または伸張処理ステップからの出力を選択する選択ステップであって、第２の判定ステップにおいて記憶されていると判定された場合には第２の記憶手段から読み出された伸張処理された楽音データを選択し、第１の判定ステップにおいて記憶しないと判定された場合には伸張処理ステップによって伸張処理された楽音データを選択する選択ステップと、選択ステップからの出力を楽音として出力する出力ステップと、を含む処理を実行させるためのプログラムを記録する。
【図面の簡単な説明】
第１図は、本発明の楽音生成装置を適用したコンピュータエンタテイメント装置の一実施の形態の構成を示すブロック図である。
第２図は、楽音生成装置の構成を表すブロック図である。
第３図は、エンベロープ処理を説明する図である。
第４図は、伸張処理に関するデータの流れを説明する図である。
第５図は、第４図の伸張処理で扱うデータ構造を説明する図である。
第６図は、第４図の伸張処理を説明するフローチャートである。
第７図は、他の伸張処理に関するデータの流れを説明する図である。
第８図は、第７図の伸張処理で扱うデータ構造を説明する図である。
第９図は、第７図の伸張処理を説明するフローチャートである。
第１０図は、他の伸張処理を説明するフローチャートである。
発明を実施するための最良の形態
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し一例）を付加して本発明の特徴を記述すると、次のようになる。但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
第１に記載の楽音生成装置は、圧縮されていないか、または伸張処理に要する時間が短い第１の圧縮方法により圧縮された第１のデータと、第１の圧縮方法より伸張処理に要する時間が長い第２の圧縮方法により圧縮された第２のデータから構成される楽音データを読み出す読み出し手段（例えば、第６図のステップＳ１）と、読み出し手段により読み出されたデータのうち、第１のデータを必要に応じ伸張して出力する第１の出力手段（例えば、第６図のステップＳ６）と、第２のデータを伸張して出力する第２の出力手段（例えば、第６図のステップＳ７）とを備えることを特徴とする。
第５に記載の楽音生成装置は、圧縮されている楽音データを記憶する第１の記憶手段（例えば、第７図の圧縮データ部５ａ）と、第１の記憶手段より読み出された圧縮されている楽音データを伸張する伸張手段（例えば、第７図の伸張部５２）と、伸張手段により伸張された楽音データを記憶するか否かを判定する判定手段（例えば、第９図のステップＳ１３）と、判定手段の判定結果に対応して、伸張手段により伸張された楽音データを記憶する第２の記憶手段（例えば、第７図の記憶部５３、第９図のステップＳ１５）と、第２の記憶手段の出力または伸張手段の出力を選択して出力する出力手段（例えば、第９図のステップＳ１６、Ｓ２０）とを備えることを特徴とする。
第１図は、本発明の楽音生成装置をコンピュータエンタテインメント装置に適用した場合の構成例を示すブロック図である。このコンピュータエンタテインメント装置においては、ホストＣＰＵ５７に、ホストバス５５を介して１つのＬＳＩよりなるメディアプロセッサ６０が接続されている。メディアプロセッサ６０のホストインタフェース１は、ＦＩＦＯ３１、レジスタ３２、およびダイレクトバス３３により構成されており、それぞれホストバス５５と接続されている。
メディアブロセッサ６０のＣＰＵバス１１には、レジスタ３２、ダイレクトバス３３、ＣＰＵ３、命令キャッシュ６、ＳＲＡＭ７、およびビット変換部１０が接続されている。メディアプロセッサ６０のメインバス１２にはホストインタフェース１（特に、ＦＩＦＯ３１）、バスアービタ２、命令キャッシュ６、ＳＲＡＭ７、ビット変換部１０、ＤＭＡＣ（Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ Ｃｏｎｔｒｏｌｅｒ）４、ＤＲＡＭ５、およびＤＳＰ８−１乃至８−４が、それぞれ接続されている。
ホストＣＰＵ５７は、図示せぬメモリに記憶されたプログラムに従って、各種の処理を実行するようになされている。例えば、ホストＣＰＵ５７は、図示せＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ Ｄｉｓｋ−Ｒｅａｄ ｏｎｌｙ Ｍｅｍｏｒｙ）などの記録媒体から、プログラムやデータを、ＤＲＡＭ５に記憶させたり、逆にＤＲＡＭ５に記憶されているプログラムやデータを取得することができるようになされている。その際、ホストＣＰＵ５７は、ＤＭＡＣ４に要求し、ＦＩＦＯ３１とＤＲＡＭ５との間でＤＭＡ転送を実行させる。また、ホストＣＰＵ５７は、ダイレクトバス３３を介して、ＤＲＡＭ５、その他の装置に直接アクセスすることもできる。
バスアービタ２はメインバス１２の使用権を調停するようになされている。例えば、ホストＣＰＵ５７からＤＭＡＣ４に対して、データ転送などの要求があったとき、バスアービタ２は、ホストＣＰＵ５７からＤＲＡＭ５に、ＤＭＡによるデータ転送ができるように、バス権をＤＭＡＣ４に与える。
ＦＩＦＯ３１は、ホストＣＰＵ５７から出力されるデータを一時記憶し、メインバス１２を介して、ＤＲＡＭ５に出力したり、またＤＲＡＭ５から転送されるデータを一時記憶し、ホストＣＰＵ５７に出力する。レジスタ３２は、ホストＣＰＵ５７とＣＰＵ３との間でハンドシェイクするときに用いられるレジスタであり、コマンドや処理のステータスを表すデータなどをレジストする。
ＣＰＵ３は、命令キャッシュ６にアクセスし、そこに記憶されているプログラムをロードし、実行し、また、必要に応じてＳＲＡＭ７にアクセスし、所定のデータの供給を受けるようになされている。また、ＣＰＵ３は、ＳＲＡＭ７に必要とするデータがない場合、ＤＭＡＣ４に要求し、ＤＲＡＭ５からＳＲＡＭ７にＤＭＡによるデータの転送を実行させる。また、ＣＰＵ３は、命令キャッシュ６に必要とするプログラムがない場合、ＤＭＡＣ４に要求し、ＤＲＡＭ５から命令キャッシュ６に、ＤＭＡによるプログラムの転送を実行させる。
ＳＲＡＭ７は、ＣＰＵ３とＤＭＡＣ４の両方から同時に、任意のアドレスにアクセスしてデータを読み書きすることができる。例えば、デュアルポートのＳＲＡＭであり、データキャッシュ用として設けられ、ＤＲＡＭ５に記憶されているデータのうち、ＣＰＵ３からのアクセスの頻度が高いデータを、記憶するようになされている。ＳＲＡＭ７は、２バンク構成にして、一方がＣＰＵバス１１に接続され、他方がメインバス１２に接続されるようにしてもよい。
命令キャッシュ６は、任意のアドレスにアクセスしてデータを読み書きすることができるキャッシュメモリであり、ＤＲＡＭ５に記憶されているプログラムのうち、ＣＰＵ３からのアクセスの頻度が高いプログラムを、記憶するようになされている。
ビット変換回路１０は、ＣＰＵバス１１を介して入力されるデータのビット幅を、メインバス１２に対応するビット幅（例えば、１２８ビット）に変更して出力したり、メインバス１２を介して入力されるデータのビット幅（例えば、３２ビット）を、ＣＰＵバス１１に対応するビット幅に変更して出力する。
ＤＳＰ８−１は、ＤＳＰコア（ｃｏｒｅ）２３−１が各種の動作を行う際に用いられるプログラムを記憶しているプログラムＲＡＭ２１−１、データを記憶しているデータＲＡＭ２２−１、これらの記憶されたプログラムやデータの転送の管理を行うＤＭＡＣ２０−１、およびＤＳＰコア２３−１により生成されたオーディオデータを、マルチプレクサ部９に出力するオーディオインタフェース２４−１から構成されている。
説明は省略するが、ＤＳＰ８−２乃至８−４も、それそれＤＳＰ８−１と同様の内部構造を有している。マルチプレクサ部９は、オーディオインタフェース２４−１乃至２４−４から出力されたオーディオデータを選択し、スピーカ５０に出力する。
第２図は、第１図から楽音生成装置に関する部分を取り出し、各部で行う処理とデータの流れを記入した図である。ホストＣＰＵ５７（第１図）が、図示せぬＣＤ−ＲＯＭなどの記録媒体から読み出した楽音の圧縮されたデータは、ＤＲＡＭ５の圧縮データ部５ａに記憶される。記憶されたデータは、メインバス１２を介してＤＳＰ８−１に転送される。ＤＳＰ８−１は、転送された圧縮データをデコード（伸張）する。そして、この伸張されたデータは、ＤＲＡＭ５の伸張後データ部５ｂに転送されて記憶されるか、または必要に応じて、マルチプレクサ部９を介してスピーカ５０により再生される。
伸張後データ部５ｂに記憶されたデータは、ＤＳＰ８−２に読み出され、ピッチ変換が施される。ピッチ変換とは、楽音を生成する際、例えば下の音を原音とし、その原音の周波数を変化することにより、他の音程（音高）を生成することである。例えば、カセットテープレコーダにおいて、早送りを行った場合（単位時間内に通常よりも多くのデータを再生させた場合）、音が高くなったように聞こえる。このことから、音を高い方に変化させるには、読み取り速度（ピッチ）を変化させ、先のデータを読み取り、データ量を多くすることが必要であることがわかる。逆に原音よりも低い音で発音させる場合は、原音で発音させる場合よりも少ないデータで済む。
ＤＳＰ８−２によりピッチ変換されたデータは、ＤＲＡＭ５のピッチ変換済みデータ部５ｃに転送され、記憶されるか、または必要に応じてマルチプレクサ部９を介してスピーカ５０で再生される。
ピッチ変換済みデータ部５ｃに記憶されたデータは、ＤＳＰ８−３により読み出され、エンベロープ処理が施される。このエンベロープ処理は、音色を変える（設定する）ために行われる。同音程の音の音色を変化させるには、発音と消音の音量を変化させれば良い。例えば、第３図（Ａ）に示すように、発音後、すぐにその音量が最大値に達し、一定の音量が継続した後、消音後、すぐにその音量が最小値になる（消える）ように音量を変化させれば、オルガンの音色が再現でき、第３図（Ｂ）に示すように、発音後、徐々に最大音量に達し、漸次減衰した後、消音後、徐々にその音量が小さくなるように音量を変化させれば、ピアノの音色が再現できる。
ＤＳＰ８−３において、エンベロープ処理が施されたデータは、ＤＲＡＭ５のエンベロープ済みデータ部５ｄに転送され、記憶されるか、または必要に応じてマルチプレクサ部９を介してスピーカ５０により再生される。
エンベロープ済みデータ部５ｄに記憶されたデータは、ＤＳＰ８−４により読み出され、エフェクト処理が施される。エフェクト処理は、例えば、エコーや歪みなど、音に変化を付ける処理である。エフェクト処理されたデータは、ＤＲＡＭ５のエフェクト済みデータ部５ｅに転送され、記憶される。エフェクト処理を１回だけ施して終了の場合、処理が施されたデータは、マルチプレクサ部９を介してスピーカ５０により発音される。
エフェクト処理が２回以上施される場合、まずＤＳＰ８−４により１回目のエフェクト処理が施され、そのデータがエフェクト済みデータ部５ｅに一旦転送され、記憶される。そしてさらに、２回目のエフェクト処理が施される場合、ＤＳＰ８−４は、エフェクト済みデータ部５ｅに記憶されているデータを読み出し、２回目のエフェクト処理を施す。このようにして、ＤＳＰ８−４とエフェクト済みデータ部５ｅと間で、データの授受が行われることにより複数回のエフェクト処理が施される。
第４図は、第２図から、伸張処理に関わる部分を取り出したブロック図である。ＤＳＰ８−１は、機能的に内部に演算処理部５１と伸張部５２を含んでいる。演算処理部５１と伸張部５２は、第１図のＤＳＰコア２３−１とデジタルオーディオ部２４−１に相当する。
ホストＣＰＵ５７によりＣＤ−ＲＯＭ６１からよみだされ、ＤＲＡＭ５に転送されたデータは、圧縮データ部５ａに記憶される。圧縮データ部５ａに記憶されたデータは、ＤＳＰ８−１の演算処理部５１により読み出される。演算処理部５１は、伸張部５２またはマルチプレクサ部９に、読み出したデータを転送する。伸張部５２に転送されたデータは、伸張処理部が施されて、演算処理部５１に返される。そして、演算処理部５１は、必要に応じて返されたデータをＤＲＡＭ５の伸張後データ部５ｂに転送し、記憶させる。また、マルチプレクサ部９に転送されたデータは、スピーカ５０により発音される。
第５図は、ＣＤ−ＲＯＭ６１に記録されている楽音データであり、圧縮データ部５ａに記憶されているデータの構造を表している。第５図で示したデータ構造のデータは、例えば１つの効果音を出すデータであるとする（以下１効果音と、記述する）。この場合、１効果音は、１ブロックの非圧縮データ部と、４ブロックの高圧縮データ部とから構成されている。非圧縮データ部は、ヘッダ部Ｈ１とデータ部Ｄ１とから構成されている。同様に高圧縮データ部の各ブロックは、ヘッダ部Ｈ２乃至Ｈ５とデータ部Ｄ２乃至Ｄ５とから構成されている。
例えば、１効果音が“ドカーン”である場合、“ド”の部分をデータ部Ｄ１のデータ（非圧縮データ）とし、“カーン”の部分をデータ部Ｄ２乃至Ｄ５のデータ（高圧縮データ）とする。従って、１効果音を構成する楽音データの総ブロック数は、効果音の時間的な長さや、非圧縮データ、高圧縮データの各データ量により異なる。また、非圧縮データ部と高圧縮データ部のブロック数も、それぞれ１ブロック、４ブロックに限定されるものではない。
ヘッダＨ１乃至Ｈ５には、それぞれ対応するデータ部Ｄ１乃至Ｄ５のサイズ、そのデータ部が圧縮か非圧縮か、圧縮の場合その圧縮方法、などが書き込まれている。データ部Ｄ１乃至Ｄ５のサイズは、各ブロックが同サイズに統一してあるならば、書き込む必要はない。例えば、高圧縮方法としてＡＴＲＡＣ（Ａｄａｐｔｉｖｅ Ｔｒａｎｓｆｏｒｍ Ａｃｏｕｓｔｉｃ Ｃｏｄｉｎｇ）２を用いた場合、通常１ブロックのデータ部のサイズは２０４８Ｔｓ（１Ｔｓ＝１／４４１００秒なので、２０４８／４４１００秒分のデータになる）であり、このサイズで非圧縮データ部のデータ部と高圧縮データ部のデータ部のサイズを統一することにより、ヘッダ部Ｈ１乃至Ｈ５に対応するデータ部Ｄ１乃至Ｄ５のサイズを書き込む必要はなくなる。
次に、第６図のフローチャートを参照して、第４図に示した楽音生成装置の、特に伸張処理の際の動作について説明する。まず、前提として、予めＣＤ−ＲＯＭ６１から読みだされた複数の楽音データが、ＤＲＡＭ５の圧縮データ部５ａに記憶されているとする。
ステップＳ１において、演算処置部５１は、圧縮データ部５ａから、１効果音の楽音データ（第５図では、５ブロック）を読み出す。演算処理部５１は、ステップＳ２において、読み出した楽音データの各ブロックのヘッダ部に記載されているデータを読み取る。まずヘッダ部Ｈ１のデータが読み取られる。演算処理部５１は、読み取ったデータを用いて、ステップＳ３において、データ部Ｄ１のデータが圧縮されているか否かを判断する。
この場合、ヘッダ部Ｈ１の情報によりデータ部Ｄ１は、非圧縮データであると判断され、ステップＳ６に進む。ステップＳ６において、データ部Ｄ１のデータは、マルチプレクサ部９に転送され、マルチプレクサ部９によりさらにスピーカ５０に転送される。そして、スピーカ５０により発音される。ステップＳ６の処理が終了されると、ステップＳ８に進み、演算処理部５１は、処理したデータが最終ブロックであるか否かを判断する。いまの場合、最終ブロックではないので、ステップＳ２に戻る。
演算処理部５１は、ステップＳ２において、ヘッダ部Ｈ２に書き込まれているデータを読み取る。そして、ステップＳ３において、読み取られたデータを基に、圧縮データであるか否かが判断される。いまの場合ヘッダ部Ｈ２には、データ部Ｄ２が圧縮データであるということが書き込まれているので、データ部Ｄ２は、圧縮データであると判断され、ステップＳ４に進む。ステップＳ４において、演算処理部５１は、データ部Ｄ２のデータを伸張部５２に転送し、伸張処理を施される。そして、伸張処理が施されたデータは、再び演算処理部５１に返される。
演算処理部５１は、ステップＳ５において、返された伸張処理が施されたデータを、ＤＲＡＭ５に記憶させるか否かを判断する。換言すると、後段の処理（ＤＳＰ８−２乃至８−４による処理）を必要としないデータであるか否かが判断される。その結果、ＤＲＡＭ５に記憶させる必要はないと判断された場合、ステップＳ６に進む。このステップＳ６の処理は、既に説明したので、その説明は省略する。
一方、ステップＳ５において、ＤＲＡＭ５に記憶させると判断された場合、ステップＳ７に進む。ステップＳ７において、演算処理部５１は、伸張処理が施されたデータを、ＤＲＡＭ５の伸張後データ部５ｂに転送し、記憶させる。
伸張後データ部５ｂに記憶されたデータは、順次後段のＤＳＰ８−２乃至８−４により、音生成のための処理が施される。このようにして、まず非圧縮のデータ部Ｄ１を即座にスピーカにより発音させ、その間に、高圧縮のデータ部Ｄ２乃至Ｄ５を処理させるようにすることにより、所定の楽音の発音要求があってから発音されるまでの遅延を生じることなく、かつ、データ部Ｄ２乃至Ｄ５に対し、ＡＴＲＡＣ２のような圧縮率は高いが伸張処理に時間がかかる圧縮方法を用いることも可能となる。
ステップＳ７における処理が終了されたら、ステップＳ８に進み、処理されたデータは、最終ブロックであったか否かが判断される。最終ブロックでないと判断された場合、ステップＳ２に戻り、それ以降の処理が繰り返される。一方、ステップＳ８において、最終ブロックであると判断された場合、いまの場合、処理したデータがデータ部Ｄ５のデータであったと判断された場合、このフローチャートの処理は終了される。
上述した説明では、非圧縮のデータと高圧縮のデータを用いたが、非圧縮のデータの代わりに、低圧縮のデータを用いても良い。ここで、非圧縮または低圧縮と、高圧縮という記述についてだが、非圧縮または低圧縮は、伸張処理を施すのに要する時間が少ない圧縮であり、高圧縮は、その逆に伸張処理を施すのに要する時間が長い圧縮という意味で用いている。従って、本明細書中においては、高圧縮でも伸張処理の際に要する時間を少ない圧縮については、非圧縮または低圧縮と記述している。
次に、第７図に示したように、ＤＳＰ８−１内に記憶部５３を設けることにより、高圧縮を用いたデータであっても、発音要求から発音までの遅延を生じさせないようにする伸張の仕方について説明する。この記憶部５３は、第１図ではデータＲＡＭ２２−１に相当する。
第７図に示したＤＳＰ８−１を備える楽音生成装置では、第８図（Ａ）に示したデータ構造を持つデータを扱う。すなわち、１効果音全て（データ部Ｄ１１乃至Ｄ１５）が、同一の圧縮方法を用いて圧縮されており、その各データ部Ｄ１１乃至Ｄ１５にはヘッダ部Ｈ１１乃至Ｈ１５が取り付けられている。第８図（Ａ）に示したデータを伸張した伸張データｄ１１乃至ｄ１５（第８図（Ｂ））のうち、伸張データｄ１１のブロックはＤＳＰ８−１の記憶部５３に記憶され（記憶データ部）、残りの伸張データｄ１２乃至ｄ１５は、後段（ＤＳＰ８−２乃至８−４、またはマルチプレクサ部９）に転送される時点で解放（解放データ部）される。
第８図（Ａ）では、圧縮データ部は５ブロックで構成されているが、第５図のところで説明したよう、その総ブロック数は、１効果音を構成する楽音データの量に応じて変化する。また、第８図（Ｂ）では、１ブロックを記憶データとして示したが、１ブロック以上のブロックを記憶データとしても良い。この記憶部５３に記憶させるデータの量は、第８図（Ａ）で示した各ヘッダ部Ｈ１１乃至Ｈ１５に書き込まれている。このヘッダ部Ｈ１１乃至Ｈ１５には、記憶部５３に記憶させるデータ量の他に、データ部Ｄ１１乃至Ｄ１５のデータサイズや圧縮方法なども書き込まれている。
次に、第９図のフローチャートを参照して、第７図で示した楽音生成装置の伸張処理に関する部分の動作について説明する。まずステップＳ１１に置いて、演算処理部５１は、圧縮データ部５ａから、第８図（Ａ）で示したデータ構造をもつデータを読み出す。
ステップＳ１２において、演算処理部５１は、読み出したデータの各ヘッダ部Ｈ１１乃至Ｈ１５を、順次見る。まずヘッダ部Ｈ１１を見て、そこに書かれているデータを読み出す。ステップＳ１３において、読み出したヘッダ部Ｈ１１のデータを基に、データ部Ｄ１１のデータは記憶部５３に記憶させるデータであるか否かが判断される。いまの場合、ヘッダ部Ｈ１１には、データ部Ｄ１１のデータは記憶部５３に記憶させるデータであると書き込まれているので、ステップＳ１３においては、データ部Ｄ１１のデータは、記憶部５３に記憶させるデータであると判断され、ステップＳ１４に進む。
ステップＳ１３において、記憶部５３に記憶させるデータであると判断されたデータは、後述するステップＳ１５の処理において、既に記憶部５３に伸張されたデータが記憶されている場合がある。従って、ステップＳ１４においては、いまの場合、記憶部５３にデータ部Ｄ１１の伸張データｄ１１が記憶されているか否かを判断する。この判断は、データ部Ｄ１１に付けられた固有の番号を用いて行われる。
すなわち、各ヘッダ部Ｈ１１乃至Ｈ１５には、それぞれ対応するデータ部Ｄ１１乃至Ｄ１５に固有の番号が書き込まれている。そして、後述するステップＳ１５において、記憶部５３に伸張されたデータが記憶される際に、このデータ部固有の番号も記憶される。従って、ステップＳ１４において行われる処理は、演算処理部５１が、読み出したデータ部のヘッダ部に書き込まれているデータ部固有の番号と同じ番号を持つデータが、記憶部５３にあるか否かを判断する処理である。
その結果、記憶部５３には、伸張データｄｌｌが記憶されていないと判断された場合、ステップＳ１５に進む。そして、ステップＳ１５において、演算処理部５１は、データ部Ｄ１１のデータを、伸張部５２に転送し、伸張処理を施させる。伸張処理が施された伸張データｄｌｌは、演算処理部５１に返される。そして、演算処理部５１は、返された伸張データｄ１１を記憶部５３に記憶させる。さらに、演算処理部５１に返された伸張データｄｌｌは、ステップＳ１６において、マルチプレクサ部９に転送される。そして、マルチプレクサ部９に転送された伸張データｄｌｌは、スピーカ５０に転送され、発音される。
一方、ステップＳ１４において、記憶部５３に、伸張データｄ１１が既に記憶されていると判断された場合、そのデータは、読み出される。そして、ステップＳ１６において、読み出された伸張データｄｌｌは、マルチプレクサ部９を介してスピーカ５０に転送され、発音される。
ステップＳ１６における処理が終了されると、ステップＳ１７に進み、処理したデータ部は、最後のブロックのデータ部であるか否かが判断される。いまの場合、最後のブロックのデータ部Ｄ１５ではないので、ステップＳ１２に戻る。
ステップＳ１２において、次のブロックのヘッダ部、いまの場合、ヘッダ部Ｈ１２に書き込まれているデータが読み出される。ヘッダ部Ｈ１２には、データ部Ｄ１２のデータは、記憶部５３に記憶させないデータであると書き込まれているので、ステップ１２において、データ部Ｄ１２のデータは、記憶部５３に記憶させるデータではないと判断され、ステップＳ１８に進む。
ステップＳ１８において、演算処理部５１は、データ部Ｄ１２のデータを伸張部５２に転送し、伸張処理を施させる。伸張処理が施された伸張データｄ１２は、演算処理部５１に返される。そして、演算処理部５１は、ステップＳ１９において、返されたデータをＤＲＡＭ５に記憶させるか否かを判断する。ＤＲＡＭ５に記憶させると判断された場合、ステップＳ２０に進み、伸張データｄｌｌは、ＤＲＡＭ５の伸張後データ部５ｂに記憶される。そして、記憶処理が終了されると、演算処理部５１は、ステップＳ１７において、処理したデータは、最終ブロックであるか否かを判断する。いまの場合、データ部Ｄ１２を処理したので、最終ブロックではないと判断され、ステップＳ１２に戻り、それ以降の処理がデータ部Ｄ１２以降のデータにも行われる。
一方、ステップＳ１９において、ＤＲＡＭ５に記憶させるデータではない、換言すると、後段の処理が必要なく、スピーカ５０により発音させるデータであると判断された場合、ステップＳ１６に進む。ステップＳ１６以降の処理は、既に説明したので、その説明は省略する。
上述した処理が、データ部Ｄ１１乃至Ｄ１５に対して行われることにより、１効果音の楽音が生成され、スピーカ５０により発音される。このように、記憶部５３に記憶されるデータを、１効果音の先頭部分の楽音データとし、この効果音の発音要求があった場合に、即座にこの記憶されているデータをスピーカ５０により発音させることが可能となる。そして、この記憶されているデータが発音されている間に、残りの部分の楽音データを処理し、楽音を生成することにより、所定の１効果音が発音要求されてから発音されるまでの遅延時間を、ユーザが認識できない程度内におさえることが可能となる。
また、例えば、この楽音生成装置をゲーム機の効果音を生成するのに用いた場合、記憶部５３に記憶させるデータ量（ブロック数）を、使用頻度の高い効果音は２ブロック分のデータとし、使用頻度の低い効果音は１ブロック分のデータとするように、データの種類（効果音の種類）により記憶部３３に記憶されるデータ量を変化させることは可能である。また、ゲームのオープニングなどに用いられるストーリの説明などのように、通常１回若しくは数回しか使われないようなデータのヘッダ部には、１ブロックも記憶させないというデータを書き込んでおくことも可能である。
次に第５図に示したデータ構造をもつデータと、第８図に示したデータ構造をもつデータが混在したデータを扱う場合の第７図に示した楽音生成装置の伸張動作について、第１０図のフローチャートを参照して説明する。この場合、例えば、第５図に示したデータ構造は、ゲームのオープニングナレーションのように、１回または数回しか用いられないような効果音の楽音データに用いて、第８図に示したようなデータ構造は、度々用いられる効果音の楽音データに用いるようにする。このように、楽音データにあったデータ構造を持たせることにより、遅延時間が短縮された楽音生成が可能となる。
ステップＳ３１乃至Ｓ３７の処理は、第８図に示したデータ構造を持つデータが読み出された場合の処理であり、これらの各ステップの処理は、第９図のステップＳ１１乃至Ｓ１７の処理と同様の処理なので、その説明は省略する。
ステップＳ３３において、圧縮データ部５ａから読み出されたデータが、記憶部５３に記憶させるデータではないと判断された場合、ステップＳ３８に進む。演算処理部５１は、ステップＳ３８において、読み出したデータが圧縮データであるか否かを判断する。この判断は、各ブロックのヘッダ部に書き込まれているデータを用いて判断される。読み出されたデータが圧縮データではないと判断された場合、すなわち、この場合、非圧縮データであると判断された場合、ステップＳ３６に進み、このデータは、マルチプレクサ部９に転送され、さらにスピーカ５０に転送され、発音される。
一方、ステップＳ３８において、読み出されたデータが圧縮データであると判断された場合、ステップＳ４０に進む。演算処理部５１は、読み出したデータを伸張部５２に転送し、伸張処理を施させる。そして、伸張されたデータは、再び演算処理部５１に返される。
演算処理部に返されたデータは、ステップＳ４０において、ＤＲＡＭ５に記憶させるか否かが判断される。このステップＳ４０以降の処理の流れは、第９図のステップＳ１９以降の処理の流れと同様の流れなので、その説明は省略する。
上述した実施の形態では、演算処理部５１が圧縮データ部５ａからデータを読み出す際（第６図のステップＳ１、第９図のステップＳ１１、第１０図のステップＳ３１）、１効果音全てのデータ（ヘッダ部とデータ部）を読み出すようにしたが、ヘッダ部だけを読み出し、それ以降の処理を行うようにしても良い。また、各ブロック毎に読み出すようにしても良い。
また、非圧縮データ、または記憶部５３に記憶されているデータは、後段の処理が必要ないために、伸張後データ部５ｂに記憶されることはないデータとして説明したが、記憶されるようにしても良い。伸張後データ部５ｂに記憶されるようにした場合でも、それらのデータの伸張処理に要する時間はないので、所定の楽音が発音要求されてから発音されるまでの遅延時間を短縮するための手段として、本発明は有効である。
なお、本明細書中において、上記処理を実行するコンピュータプログラムをユーザに提供する提供媒体には、磁気ディスク、ＣＤ−ＲＯＭなどの情報記録媒体の他、インターネット、デジタル衛星などのネットワークによる伝送媒体も含まれる。
以上の如く第１に記載の楽音生成装置、第２に記載の楽音生成方法、および第３に記載の提供媒体、並びに第４に記載のデータ記録媒体によれば、圧縮されていないか、または伸張処理に要する時間が短い第１の圧縮方法により圧縮された第１のデータと、第１の圧縮方法より伸張処理に要する時間が長い第２の圧縮方法により圧縮された第２のデータから構成される楽音データを読み出し、読み出されたデータのうち、第１のデータを必要に応じ伸張し出力し、第２のデータを伸張して出力するようにしたので、所定の楽音の発音が要求されてから、発音されるまでの遅延時間を短縮し、かつ、その楽音データ圧縮には高効率符号化音声圧縮方式を用いることが可能となる。
第５に記載の楽音生成装置、第６に記載の楽音生成方法、および第７記載の提供媒体によれば、圧縮されている楽音データが記憶されている記憶部から読み出された楽音データを伸張し、伸張された楽音データを記憶するか否か判定し、その判定結果に対応して、伸張された楽音データを記憶し、その記憶されたデータまたは伸張されたデータを選択して出力するようにしたので、所定の楽音の発音が要求されてから、発音されるまでの遅延時間を短縮し、かつその楽音データ圧縮には高効率符号化音声圧縮方式を用いることが可能となる。
【図１】
0003801655.tif 000002
【図２】
0003801655.tif 000003
【図３】
0003801655.tif 000004
【図４】
0003801655.tif 000005
【図５】
0003801655.tif 000006
【図６】
0003801655.tif 000007
【図７】
0003801655.tif 000008
【図８】
0003801655.tif 000009
【図９】
0003801655.tif 000010
【図１０】
0003801655.tif 000011