(57)【特許請求の範囲】
【請求項１】
データの読み書き可能なシステムメモリを有するコンピュータシステムのバスに接続されて、遅延を行うエフェクト処理を施したエフェクトデータを生成する音声データ処理装置であって、
所定単位時間に出力されるべき複数サンプルのデータである再生データを、その所定単位時間で一括して生成する再生処理手段と、
前記再生処理手段により生成された、遅延を行うべき再生データを、エフェクト処理用データとして、前記複数サンプル単位で記憶するエフェクト用バッファと、
前記エフェクト処理用データを、前記エフェクト処理用バッファから前記システムメモリへ前記複数サンプル単位で一括して転送する転送手段と、
入力バッファと、
前記システムメモリにて遅延が施された前記エフェクト処理用データを、前記システムメモリから前記入力バッファへと、前記複数サンプル単位で一括して取り込む取込手段と、
前記入力バッファに取り込まれた、前記遅延が施されたエフェクト処理用データに対して演算処理を行って、前記複数サンプル単位のエフェクトデータを生成するエフェクト処理手段と、
前記エフェクト処理手段によって生成された前記エフェクトデータを、前記複数サンプル単位で一時記憶し、一定の出力レートに従い出力する出力バッファと
を備えることを特徴とする音声データ処理装置。
【請求項２】
上記エフェクト処理手段は、時分割で、複数種類のエフェクトデータを生成し、
上記出力バッファは、前記再生データと前記再生データに対応するエフェクトデータを累算する
ことを特徴とする請求項１記載の音声データ処理装置。
【請求項３】
データの読み書き可能なシステムメモリ、ＣＰＵ、および遅延を行うエフェクト処理を施したエフェクトデータを生成する音声データ処理装置がバスで接続されたコンピュータシステムであって、
上記音声データ処理装置は、
所定単位時間に出力されるべき複数サンプルのデータである再生データを、その所定単位時間で一括して生成する再生処理手段と、
前記再生処理手段により生成された、遅延を行うべき再生データを、エフェクト処理用データとして、前記複数サンプル単位で記憶するエフェクト用バッファと、
前記エフェクト処理用データを、前記エフェクト処理用バッファから前記システムメモリへ前記複数サンプル単位で一括して転送する転送手段と、
入力バッファと、
前記システムメモリにて遅延が施された前記エフェクト処理用データを、前記システムメモリから前記入力バッファへと、前記複数サンプル単位で一括して取り込む取込手段と、
前記入力バッファに取り込まれた、前記遅延が施されたエフェクト処理用データに対して演算処理を行って、前記複数サンプル単位のエフェクトデータを生成するエフェクト処理手段と、
前記エフェクト処理手段によって生成された前記エフェクトデータを、前記複数サンプル単位で一時記憶し、一定の出力レートに従い出力する出力バッファと
を備えることを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、ディレイ系のエフェクト処理をローカルなメモリを使用することなく実行するのに好適な音声データ処理装置およびコンピュータシステムに関する。
【０００２】
【従来の技術】
近年のパーソナルコンピュータでは、音源ＬＳＩを搭載して各種のサウンド処理を行うものが多い。音源ＬＳＩの代表的な処理としては、制御データと波形データとに基づいてデジタル音声データを再生する再生処理がある。波形データは楽器の演奏音を所定のレートでサンプリングして得られたものであり、制御データは、音色、再生ピッチおよび音量等を指示する。サウンド処理機能を有するパーソナルコンピュータは、通常、装置全体をＯＳに従って制御するＣＰＵ、音源ＬＳＩ、制御データおよび波形データあるいは他のアプリケーションプログラムを格納するメインメモリ、各構成部分を接続しデータの授受を行うためのバス等から構成されている。
【０００３】
帯域幅の広いバス（例えば、ＰＣＩバス）を採用したパーソナルコンピュータにおいては、音源ＬＳＩが、処理を行うために必要なデータをメインメモリからバスを介して取得する構成が可能となるが、バスを長時間占有すると、他のアプリケーションがバスを使用する時間が短くなる。この結果、コンピュータシステム全体としてみると、円滑な動作に支障をきたすことになる。そのような問題を解決するため、本出願人はフレーム処理を導入した音源ＬＳＩを先に提案している（特願平９−２００６６２号）。そのような音源ＬＳＩのフレーム処理では、出力サンプリング周波数（ＤＡＣレート）４８ＫＨzで２５６サンプル出力するのに要する時間（５．３ｍｓ）を１フレーム（FRAME）とするフレーム単位でＤＡＣレートとは非同期に一括してデジタル音声データを生成しており、コンピュータシステムは１フレームの処理に必要なデータを一括してメインメモリから音源ＬＳＩにバースト転送している。バースト転送によるバスの占有時間は、１フレーム期間と比較してごく短いので、コンピュータシステム全体として円滑な動作が保証される。
【０００４】
【発明が解決しようとする課題】
ところで、コンピュータシステムで実行されるサウンド処理には、上述した再生処理の他に、代表的なものとしてエフェクト処理がある。エフェクト処理は、リバーブやコーラスあるいはバリエーションといった、音響効果を再生音声データに付与するものであり、これにより、変化に富んだ再生音を生成することができる。このため、音源ＬＳＩにエフェクト処理を実行させたいといった要求がある。このエフェクト処理の中にはディレイ系と呼ばれる処理がある。ディレイ系のエフェクト処理では比較的長時間遅延された再生音声データと現在の再生音声データとを合成することによって、再生音声データに音響効果を付与している。このため、ディレイ系のエフェクト処理では、再生音声データを遅延するためのメモリが必要となる。
しかしながら、音源ＬＳＩにローカルなメモリを設けると、音源ＬＳＩのチップ面積が増大し、そのコストが上昇するといった問題があった。また、エフェクト処理を音源ＬＳＩで実行させないで、ＣＰＵを使ってソフト的に実行させるというアプローチも考えられるが、その場合には、ＣＰＵの処理負荷が増大するといった問題があった。
【０００５】
本発明は、上述した事情に鑑みてなされたものであり、遅延が必要とされる音声データの波形処理において、ローカルなメモリを設けることなく、波形処理を実行する音声データ処理装置およびコンピュータシステムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記課題を解決するため請求項１に記載の発明にあっては、データの読み書き可能なシステムメモリを有するコンピュータシステムのバスに接続されて、遅延を行うエフェクト処理を施したエフェクトデータを生成する音声データ処理装置であって、所定単位時間に出力されるべき複数サンプルのデータである再生データを、その所定単位時間で一括して生成する再生処理手段と、前記再生処理手段により生成された、遅延を行うべき再生データを、エフェクト処理用データとして、前記複数サンプル単位で記憶するエフェクト用バッファと、前記エフェクト処理用データを、前記エフェクト処理用バッファから前記システムメモリへ前記複数サンプル単位で一括して転送する転送手段と、入力バッファと、前記システムメモリにて遅延が施された前記エフェクト処理用データを、前記システムメモリから前記入力バッファへと、前記複数サンプル単位で一括して取り込む取込手段と、前記入力バッファに取り込まれた、前記遅延が施されたエフェクト処理用データに対して演算処理を行って、前記複数サンプル単位のエフェクトデータを生成するエフェクト処理手段と、前記エフェクト処理手段によって生成された前記エフェクトデータを、前記複数サンプル単位で一時記憶し、一定の出力レートに従い出力する出力バッファとを備えることを特徴とする。
【０００９】
また、請求項２に記載の発明にあっては、上記エフェクト処理手段は、時分割で、複数種類のエフェクトデータを生成し、上記出力バッファは、前記再生データと前記再生データに対応するエフェクトデータを累算することを特徴とする。
【００１０】
また、請求項３に記載の発明にあっては、データの読み書き可能なシステムメモリ、ＣＰＵ、および遅延を行うエフェクト処理を施したエフェクトデータを生成する音声データ処理装置がバスで接続されたコンピュータシステムであって、上記音声データ処理装置は、所定単位時間に出力されるべき複数サンプルのデータである再生データを、その所定単位時間で一括して生成する再生処理手段と、前記再生処理手段により生成された、遅延を行うべき再生データを、エフェクト処理用データとして、前記複数サンプル単位で記憶するエフェクト用バッファと、前記エフェクト処理用データを、前記エフェクト処理用バッファから前記システムメモリへ前記複数サンプル単位で一括して転送する転送手段と、入力バッファと、前記システムメモリにて遅延が施された前記エフェクト処理用データを、前記システムメモリから前記入力バッファへと、前記複数サンプル単位で一括して取り込む取込手段と、前記入力バッファに取り込まれた、前記遅延が施されたエフェクト処理用データに対して演算処理を行って、前記複数サンプル単位のエフェクトデータを生成するエフェクト処理手段と、前記エフェクト処理手段によって生成された前記エフェクトデータを、前記複数サンプル単位で一時記憶し、一定の出力レートに従い出力する出力バッファとを備えることを特徴とする。
【００１１】
【発明の実施の形態】
１．コンピュータシステムの全体構成
以下、図面を参照しつつ、本発明に係わる一実施形態であるコンピュータシステムの構成を説明する。図１は本実施形態に係わるコンピュータシステムのブロック図である。
【００１２】
図において、ＣＰＵ２０は、バス６０を介して各構成部分に接続されており、コンピュータシステムＡ全体を制御する。ＲＡＭ３０はメインメモリ（システムメモリ）に相当する読み書き可能なメモリであって、ＣＰＵ２０の作業領域として機能する。また、ＲＡＭ３０のある記憶領域は各種の波形データWDを記憶する周知のウエーブテーブルとして機能するとともに、他の記憶領域は、エフェクト処理における遅延メモリとして機能する。
また、ＲＯＭ４０は読出専用のメモリであって、そこにはブートプログラム等が格納されている。また、ハードディスク５０は、二次記憶装置に相当し、そこにはアプリケーションプログラムやデバイスドライバDDやマイクロプログラムMP等のプログラム、および制御データCDや波形データWDといった各種のデータが格納されている。そして、これらのプログラムやデータは必要に応じてＲＡＭ３０にロードされるようになっている。
【００１３】
ここで、制御データCDは、アプリケーションプログラムから与えられるＭＩＤＩフォーマット等の演奏指示に応答して音源ＬＳＩ１０を駆動するデータであり、音色情報（当該音色に対応する波形データWDが格納されているアドレス）、ピッチ情報、音量情報の他、エフェクト処理を指示するエフェクト情報等から構成されている。また、波形データWDは、例えば、ギターやピアノといった各種の音色に対応する楽器によって実際に発音させた楽音等をサンプリングして得られたデータである。
【００１４】
また、ＯＳの起動時にデバイスドライバDD、マイクロプログラムMP、および波形データWD等がバス６０を介してＲＡＭ３０に転送されるとともに、上位のアプリケーションによって参照指示される制御データCDが必要に応じてＲＡＭ３０に転送される。また、ＲＡＭ３０に格納されたマイクロプログラムMPは音源ＬＳＩ１０に転送される。バス６０としては、大量のデータを高速転送できるものであればその種類は問わないが、この例にあっては、バースト転送モードを備えたＰＣＩバス（Peripheral Component Interconnect Bus）を用いるものとする。
【００１５】
ここで、波形データWDは、ハードディスク５０に格納されているデータの中から使用頻度の高い音色に対応するものが選択されＲＡＭ３０に記憶され、必要に応じてＲＡＭ３０とハードディスク５０との間で波形データWDのやり取りが行われる。また、ＲＡＭ３０において、波形データWDは物理アドレスが連続する連続直線領域に格納されるようになっている。物理アドレスが不連続であると、論理アドレスから物理アドレスを算出する必要があるため、これを回避してＯＳの負荷を軽減するためである。
【００１６】
２．音源ボードの構成および動作の概略
図１に示す音源ボード１００は、図示せぬ拡張スロット（ＰＣＩスロット）に装着されるようになっており、そこには、出力音声データＳＤを生成する音源ＬＳＩ１０と出力音声データＳＤをアナログ信号に変換したのもを出力音声信号Ｓとして出力するＤＡＣ１６が設けられている。なお、音源ＬＳＩ１０はコンピュータシステムＡのマザーボード上に実装するようにしてもよい。音源ＬＳＩ１０内で出力音声データＳＤを生成する処理は、サブフレームと呼ばれる一定の時間単位で行われるようになっており、この例では、出力音声データＳＤを出力サンプリングレート（ＤＡＣレート＝４８kHz）で２５６サンプルだけ出力する時間（約５．３ｍｓ）を１フレームとして、これをさらに４分割したもの（６４サンプル分の時間＝約１．３ｍｓ）を１サブフレームとしている。あるサブフレームで一括生成された６４サンプルは一旦出力バッファ１５に格納され、次のサブフレームにおいて、出力サンプリングレートに対応してＤＡＣ１６に供給される。
【００１７】
また、音源ＬＳＩ１０は、複数音（例えば６４チャンネル）同時発音可能になっている。あるサブフレームの合成音声データを生成するに当たって、まず、チャンネルch１についての再生データ（６４サンプル）を作成するとともに出力バッファ１５に格納し、次に、チャンネルch２についても同様に再生データ（６４サンプル）を作成するとともに、チャンネルch１の再生データと対応したサンプル同士を加算した６４サンプルを作成し出力バッファ１５に格納する（累算処理）。このような処理をＮチャンネル（MAX６４チャンネル）分繰り返し、最終的にＮチャンネル分を累算した６４サンプルの合成音声データを出力バッファ１５に格納する。この合成音声データは、後述するエフェクトデータを付加され、出力音声データＳＤとして次のサブフレームにおいてＤＡＣ１６へ供給される。
【００１８】
詳細は後述するが、音源ＬＳＩ１０は、各チャンネルの再生データに対して、選択的に、エフェクトを付与することが可能になっており、そのためにこの音源ＬＳＩ１０は、上記した同時発音数に対応した再生チャンネルと同様のエフェクトチャンネルを有しており、また、ハードウェア的にはエフェクト用バッファを備えている。そして、エフェクトデータ作成の前段階として、上記したサブフレームの各チャンネルの再生処理の過程において、エフェクトを付与しないでそのまま出力するチャンネルについては再生データを出力バッファ１５のみに格納（累算）し、エフェクトを付与するチャンネルについては、出力バッファ１５とともにエフェクト用バッファにも格納（累算）する。そして、エフェクト用バッファに現在または過去のサブフレームで格納されたエフェクト処理用データに対してエフェクトチャンネルを使用してエフェクトデータを作成し、出力バッファ１５に格納（累算）する。
【００１９】
上記説明した音源ボード１００の動作概略をサブフレーム毎の処理に着目して整理すると、図２のようになる。
図２（ａ）に示すとおり、音源ボード１００では、サブフレーム毎に、再生チャンネル処理ＣＨ１〜ＣＨＮ（Ｎは６４以下）およびエフェクトチャンネル処理（コーラスチャンネル処理とリバーブチャンネル処理で構成される）を出力サンプリング周波数（ＤＡＣレート＝４８ＫＨｚ）とは非同期に一括して行う。各チャンネル処理では、それぞれ、次のサブフレームで出力する６４サンプルを作成する。
各再生チャンネル処理では、それぞれ、（１）ＲＡＭ３０から制御データCDの取り込み、以下、制御データCDに従って、（２）ＲＡＭ３０から波形データWDの取り込み、（３）再生データの生成、（４）再生データの出力バッファ１５およびエフェクト用バッファへの格納（累算）、等を行う。
エフェクトチャンネル処理では、それぞれ、（１）ＲＡＭ３０から制御データCDの取り込み、（２）ＲＡＭ３０からエフェクト処理用データ（遅延済み）の取り込み、（３）エフェクト用バッファからＲＡＭ３０への書込み、（４）中間データおよびエフェクトデータの生成、（５）エフェクトデータの出力バッファ１５およびエフェクト用バッファへの格納（累算）、等を行う。なお、エフェクト処理の上記（２）、（３）、（４）、（５）については、処理の内容に応じて、必ずしも上記順序で行われるわけではなく、それぞれ、１回きり行われるわけでもない。
以上の処理により、出力バッファ１５上に次のサブフレームでＤＡＣ１６へ送り出す出力音声データＳＤが得られる。
また、図２（ｂ）に示すとおり、音源ボード１００では、各サブフレームにおいて、前サブフレームにおいて作成された出力音声データＳＤを、出力サンプリング周波数（ＤＡＣレート＝４８ｋＨｚ）に従い、ＤＡＣ１６に順次送出する。
【００２０】
２−１：音源ＬＳＩ
図１に戻って、音源ＬＳＩ１０は、制御部１１、ＰＣＩバスインターフェース１２、入力バッファ１３、演算部１４および出力バッファ１５から構成される。まず、制御部１１はＲＡＭ３０から転送されるマイクロプログラムMPをその内部に設けられたメモリ（図示略）に記憶し、マイクロプログラムMPに従って音源ＬＳＩ１０の各部を制御する命令ｉを発行する。次に、ＰＣＩバスインターフェース１２は、バスマスタ機能を有している。このため、音源ＬＳＩ１０は、ＣＰＵ２０にさほど負荷をかけないで、ＲＡＭ３０から制御データCDや波形データWD、あるいはエフェクト処理に必要なデータを直接読み出すことが可能である。
【００２１】
２−１−１：入力バッファ
次に、入力バッファ１３は、ＰＣＩバスインターフェース１２を介してＲＡＭ３０からバースト転送される制御データCDや波形データWD、あるいはエフェクト処理に必要なデータ（コーラス処理用データCPDやリバーブ処理用データRPD)をを一旦記憶する。
【００２２】
２−１−２：演算部
次に、演算部１４は、サブチャンネル毎に、各再生チャンネル処理、コーラスチャンネル処理、およびリバーブチャンネル処理をマイクロプログラムＭＰに従って時分割で実行できるように構成されており、その内部には上記したコーラス用およびリバーブ用バッファ１４１、１４２を備えている。なお、この例では、リバーブやコーラスといった２種類のエフェクト処理を実行するため、エフェクト処理用に２個のバッファを用意したが、３種類以上のエフェクト処理を行うのであれば、その種類に応じた数のバッファを用意すれば良い。
【００２３】
ここで、演算部１４の処理を、周辺も含めて、機能ブロック図として図３に示す。
図３に示したとおり、この演算部１４の演算処理には、Ｎチャンネルの再生チャンネル処理１４５、コーラスチャンネル処理１４３、リバーブチャンネル処理１４４およびミキサ処理がある。すなわち、再生チャンネル処理とは、各チャンネル（MAX６４チャンネル）の６４サンプルの再生データを作成する処理であり、コーラスチャンネル処理とは、コーラス用バッファ１４１に格納されたデータに基づき６４サンプルのコーラスデータを作成する処理であり、リバーブチャンネル処理とは、リバーブ用バッファ１４２に格納されたデータに基づき６４サンプルのリバーブデータを作成する処理である。また、ミキサ処理とは、各再生チャンネル処理で作成されたそれぞれ６４サンプル、コーラスチャンネル処理で作成されたコーラスデータ６４サンプルおよびリバーブチャンネル処理で作成されたリバーブデータ６４サンプルを、出力バッファ１５、コーラス用バッファ１４１およびリバーブ用バッファ１４２上で累算する処理である。
【００２４】
各再生チャンネル処理では、まず、そのチャンネルに対応した制御データCDをＲＡＭ３０から入力バッファ１３に取り込む。次に、制御データCD中に含まれるピッチ情報、サンプリングレートおよび出力サンプリングレート（ＤＡＣレート）を考慮して１サブフレーム分の６４サンプルを作成するのに必要な波形データWDをＲＡＭ３０から入力バッファ１３に取り込む。この取り込みは、先頭アドレスとサンプル数とを指定することでバースト転送により行われる。すなわち、ＲＡＭ３０の波形データWD内の所定の連続領域が切り出されて音源ＬＳIに一括して転送されることになる。この後、制御データCDのピッチ情報や音量情報に基づいて、波形データWDに変換処理を施して６４サンプルを作成する。なお、この６４サンプルは、１サンプル生成される度に所定の係数を乗算された後に出力バッファ１５、コーラス用バッファ１４１およびリバーブ用バッファ１４２に格納（累算）される。最後に、制御データCDをＲＡＭ３０にライトバックして、当該再生チャンネルの処理を終了する。このような処理がチャンネル数回繰り返し実行される。
【００２５】
次に、コーラスチャンネル処理１４３およびリバーブチャンネル処理１４４は、コーラス用バッファ１４１およびリバーブ用バッファ１４２に格納されたそれぞれ６４サンプルのコーラス処理用データCPDおよびリバーブ処理用データRPDに基づき、それぞれ６４サンプルのコーラスデータおよびリバーブデータを作成する処理であるが、詳細は後述する。
【００２６】
次に、ミキサ処理について説明する。なお、ここでは説明の便宜上、ミキサ処理を、再生チャンネル処理１４５、コーラスチャンネル処理１４３およびリバーブチャンネル処理１４４と分けて説明しているが、ミキサ処理は、各再生チャンネル処理の中、コーラスチャンネル処理１４３の中およびリバーブチャンネル処理１４４の中でそれぞれ行われる。このミキサ処理は、各再生チャンネル処理で作成された再生データを、そのまま出力するかコーラスデータまたは／およびリバーブデータを作成するかに応じて振り分ける処理、さらに、コーラスデータまたはリバーブデータを、そのまま出力するか再度コーラスデータまたは／およびリバーブデータを作成するかに応じて振り分ける処理である。すなわち、外部に出力する場合には出力バッファ１５に格納（累算）し、コーラスデータを作成する場合にはコーラス用バッファ１４１に格納（累算）し、リバーブデータを作成する場合にはリバーブ用バッファ１４２に格納（累算）する。なお、各バッファにサンプルを格納する際には、そこに既に格納されている対応サンプルを読み出して、新たに生成されたサンプルと加算して格納している。
【００２７】
なお、図３より明らかなように、各再生チャンネルでは、エフェクト付与のＯＮ／ＯＦＦの選択をできるのみならず、出力バッファ１５、コーラス用バッファ１４１およびリバーブ用バッファに適当な比率で振り分けることにより、エフェクトをかける度合を選択することもできるとともに、図４（ａ）に示すように、２つのエフェクトデータを並列的に作成することもできる。さらに、図４（ｂ）に示すように、コーラスチャンネル処理１４３で作成したコーラスデータをリバーブ用バッファ１４２に振り分けることにより、コーラスリバーブデータを作成することもできるし、図４（ｃ）に示すように、その逆もできる。
コーラス用バッファ１４１とリバーブ用バッファ１４２は、比較的長時間の遅延をコンピュータシステムＡ側のＲＡＭ３０を利用して実現するために設けられている。すなわち、これらのバッファは、遅延すべきデータをバースト転送によりＲＡＭ３０に転送するためバッファとして設けられている。
【００２８】
２−１−３：出力バッファ
再び図１に戻って、出力バッファ１５は、第１バッファ１５１および第２バッファ１５２から構成されて、サブフレーム周期で、それぞれの役割が切り換えられる。すなわち、あるサブフレームでは、第１バッファ１５１に、各再生チャンネル処理で作成された再生データ（それぞれ６４サンプル）、コーラスチャンネル処理で作成されたコーラスデータ（６４サンプル）およびリバーブチャンネル処理で作成されたリバーブデータ（６４サンプル）が書き込まれる（累算処理される）とともに、第２バッファ１５２に格納された６４サンプル（前サブフレームにおいて累算処理された６４サンプル）が出力音声データＳＤとして出力サンプリングレートに従いＤＡＣ１６へと読み出される。次のサブフレームでは、第１バッファ１５１に格納された６４サンプルが出力音声データＳＤとしてＤＡＣ１６へと読み出されるとともに、第２バッファ１５２で累算処理が行われる。
【００２９】
３．エフェクト処理
次に、演算部１４で実行するエフェクト処理について詳細に説明する。
３−１：コーラス処理
図５は、エフェクト処理の一例であるコーラス効果の等価回路を示す図である。
【００３０】
コーラスチャンネル処理は、コーラス用バッファ１４１上での累算により得られたコーラス処理用データCPDを遅延するメモリ２０１、所定の係数を入力データに乗算して出力する係数器２０２〜２０５、および加算器２０９、２１０から構成されている。なお、係数器２０６から加算器２１１のパスは、各再生チャンネル処理の中で、出力バッファ１５上でのミキサ処理として行われる。また、係数器２１２からコーラス用バッファ１４１のパスは、各再生チャンネル処理の中で、コーラス用バッファ１４１上でのミキサ処理として行われる。
係数器２０２、２０３および加算器２０９は、メモリ２０１の出力端子C1,C2から出力されるコーラス処理用データCPDを合成して出力し、一方、係数器２０４、２０５および加算器２１０は、メモリ２０１の出力端子C3,C4から出力されるコーラス処理用データCPDを合成して出力する。出力端子C1と出力端子C2とは、常にアドレスが１つ離れたコーラス処理用データCPDを出力する。また同様に、出力端子C3と出力端子C4とは、常にアドレスが１つ離れたコーラス処理用データCPDを出力する。図６は、出力端子C1から出力されるコーラス処理用データCPDのアドレスの変化と出力端子C3から出力されるコーラス処理用データCPDのアドレスの変化とを図示したものである。この図に示すように各アドレスは正弦波状に変動する。
【００３１】
加算器２０９，２１０の各出力データは、係数器２０７，２０８を介して加算器２１１に出力される。なお、この係数器２０７，２０８および加算器２１１の演算はコーラスチャンネル処理の中での出力バッファ１５へのミキサ処理に相当する。このように各再生チャンネル処理で作成された再生データとコーラスチャンネル処理で作成された２系統のコーラスデータCOがミキシングされて、コーラス効果が得られる。
コーラスデータCOは、遅延時間を正弦波状に変動させたコーラス処理用データCPDに基づいて生成されるので、仮想的な発音源が視聴者の周りを回っているように感じられる音響効果を付与することができる。
【００３２】
ここで、図５のコーラス効果の等価回路と図１のコンピュータシステムＡで行われる実際の処理との間の対応関係を図７に、またそのフローチャートを図８に示す。
図７において点線で囲った部分が演算部１４において行われる処理である。あるサブフレームにおいて作成されたＮチャンネルの再生データ（それぞれ６４サンプル）は、コーラス効果を付与するか否か、または、どの程度付与するかに応じて、係数乗算処理（２１２）されてコーラス用バッファ１４１上でミキシングされる。一方、Ｎチャンネルの再生データは、直後、係数乗算処理（２０６）されて出力バッファ（１５、２１１）上でミキシングされる。なお、一旦作成されたコーラスデータまたはリバーブデータに再度コーラス効果を付与するために、そのような６４サンプルをコーラス用バッファ１４１上で累算することもあり得る。この累算された６４サンプルをコーラス処理用データCPDとしてメモリ（ＲＡＭ３０、２０１）にバースト転送される（図８のステップＣ１）。
【００３３】
コーラスチャンネル処理では、所定のサブフレーム周期前にメモリ（ＲＡＭ３０，２０１）に記憶されたコーラス処理用データCPDをバースト転送することにより、入力バッファ１３にコーラス処理用データCPDを取り込む（ステップＣ２、Ｃ４）。これにより、あるサブフレームにおいてコーラスチャンネル処理を実行するために必要なコーラス処理用データCPDを音源ＬＳＩ１０が取得することができる。
次に、読出アドレスを可変しつつ入力バッファ１３からコーラス処理用データCPDを読み出して積和演算を実行することにより、図５に示す等価回路の加算器２０９，２１０の出力データを生成する。そして、これらの出力データに係数乗算処理（２０７、２０８）を行い、出力バッファ（１５、２０１）上でミキシングする（ステップＣ３，Ｃ５）ことによって、コーラス効果を実現できる。
【００３４】
このようにコーラスチャンネル処理では、あるサブフレームの再生チャンネル処理によって生成されたデータの一部または全部をコーラス処理用データCPDとしてＲＡＭ３０に書き戻し、その後、ＲＡＭ３０から当該サブフレームで必要とされるコーラス処理用データCPDを一括して取り込んでいる。なお、ＲＡＭ３０／バッファ１３、１４間の転送と演算処理とは、パイプライン的に並行して行うのが好ましい。
【００３５】
３−２：リバーブ処理
図９は、エフェクト処理の一例であるリバーブ効果の等価回路を示す図である。この図に示すようにリバーブ効果の等価回路は、巡回型ローパスフィルタF1、オールパスフィルタF2,F3,F8、およびコムフィルタF4,F5,F6,F7から大略構成されている。なお、係数器３２８から加算器３３０のパスは、各再生チャンネル処理の中で、出力バッファ１５上でのミキサ処理として行われる。また、係数器３２７からリバーブ用バッファ１４２のパスは、各再生チャンネル処理の中で、リバーブ用バッファ１４２上でのミキサ処理として行われる。
巡回型ローパスフィルタF1は、出力データを係数器３０２を介してフィードバックするとともに、フィードバックされたデータとリバーブ処理用バッファ１４２上で累算されたリバーブ処理用データRPDとを加算（３０３）してメモリ３０１に入力するように構成されている。これにより、過去のリバーブ処理用データRPDが係数器３０２のフィードバック係数に従って減衰しながら現在のリバーブ処理用データRPDと加算されることになる。なお、メモリ３０１には、中間の出力端子が設けられており、そこから取り出されたリバーブ処理用データRPDが、係数器３０４を介して、加算器３２１に供給されるようになっている。このように巡回型ローパスフィルタF1は、メモリ３０１の出力データが入力にフィードバックされる構成となっている。
【００３６】
次に、各オールパスフィルタF2,F3,F8は、ゲインが一定で位相のみを調整するフィルタである。オールパスフィルタF2,F3は、巡回型ローパスフィルタF1によって変化した位相を調整するために使用され、一方、オールパスフィルタF8は、リバーブデータREを生成するために用いられる。各オールパスフィルタF2,F3,F8は、同様の構成部分を備えているので、ここでは、オールパスフィルタF2について説明する。図に示すように、オールパスフィルタF2は、メモリ３０６の出力データを係数器３０９を介して加算器３１２にフィードバックし、これを係数器３１０を介して供給されるリバーブ処理用データRPDと加算してメモリ３０６に供給している。そして、メモリ３０６の出力データを係数器３０８を介して加算器３１１に供給するとともに、リバーブ処理用データRPDを係数器３０７を介して加算器３１１に供給し、両者を加算して出力データを得ている。このように、オールパスフィルタF2は、メモリ３０６の出力データを入力にフィードバックする構成となっている。
【００３７】
次に、各コムフィルタF4,F5,F6,F7は、櫛形の周波数特性を有するフィルタであって、ノッチ部分に相当する周波数が互いにずれるように構成されている。なお、各コムフィルタF4,F5,F6,F7は、同様の構成部分を備えているので、ここでは、コムフィルタF4について説明する。コムフィルタF4は、メモリ３１３の出力データを、係数器３１５を介して加算器３２０にフィードバックするとともにラッチ３１４で１クロック遅延した後に係数器３１６を介して加算器３２０にフィードバックする。この加算器３２０に係数器３１７を介してリバーブ処理用データRPDが供給されると、フィードバックされたデータとリバーブ処理用データRPDが加算され、メモリ３１３に供給される。なお、メモリ３１３は、中間に出力端子を備えており、そこから出力されるデータが係数器３１８を介してコムフィルタF4の出力データとして、加算器３２１に出力される。このように、コムフィルタF4は、メモリ３１３の出力データを入力にフィードバックする構成となっている。
【００３８】
ここで、図９のリバーブ効果の等価回路と図１のコンピュータシステムＡで行われる実際の処理との間の対応関係を図１０に、また、そのフローチャートを図１１に示す。
図１０において点線で囲った部分が演算部１４において行われる処理である。あるサブフレームにおいて作成されたＮチャンネルの再生データ（それぞれ６４サンプル）は、リバーブ効果を付与するか否か、または、どの程度付与するかに応じて、係数乗算処理（３２７）されてリバーブ用バッファ１４２上でミキシングされる。一方、Ｎチャンネルの再生データは、直接、係数乗算処理（３２８）されて出力バッファ（１５、３３０）上でミキシングされる。なお、一旦作成されたコーラスデータまたはリバーブデータに再度リバーブ効果を付与するために、そのような６４サンプルをリバーブ用バッファ１４２上で累算することもあり得る。
【００３９】
リバーブチャンネル処理では、所定のサブフレーム前にメモリ（ＲＡＭ３０、３０１）に記憶されたリバーブ処理用データRPD（場合によっては中間データ）を、バースト転送により取り込む（図１１のステップＲ１、Ｒ４、Ｒ１２、Ｒ１４）。エフェクトチャンネル処理の各フェーズの演算を実行するのに必要なリバーブ処理用データRPDを取得することができる。
また、各フェーズにおいて、入力バッファ１３およびリバーブ用バッファ１４２からリバーブ処理用データRPDを読み出して積和演算を実行する（Ｒ２、Ｒ５、Ｒ７、Ｒ９、Ｒ１３、Ｒ１５）。
さらに、所定時間の遅延を実現するために、各フェーズにおいて、リバーブ用バッファ１４２に格納されたリバーブ処理用データRPDおよび中間データをＲＡＭ３０にバースト転送する（Ｒ３、Ｒ６、Ｒ１０）。
このような一連の処理を経て、最終的にオールパスフィルタ処理Ｆ８された６４サンプルのデータはリバーブデータREとして係数乗算処理（３２９）されて出力バッファ（１５、３３０）上でミキシングされる。
このように、各チャンネル処理で作成された再生データとリバーブチャンネル処理で作成されたリバーブデータREとを出力バッファ（１５、３３０）上でミキシングすることによって、リバーブ効果を実現できる。
なお、ＲＡＭ３０／バッファ１３、１４２間のデータ転送と演算処理とは、パイプライン的に並行して行うのが好ましい。
【００４０】
以上説明したように、本実施形態によれば、コーラス処理のように遅延データを入力にフィードバックしないフィードフォワード系のエフェクト処理にあっては、あるサブフレームで生成されたコーラス処理用データCPDを音源ＬＳＩ１０からＲＡＭ３０に一括してバースト転送し、現在のサブフレームで必要とされるコーラス処理用データCPDを演算の進行に合わせて一括して音源ＬＳＩ１０にバースト転送するようにした。このため、音源ＬＳＩ１０では、エフェクト処理に専用のメモリを設ける必要がなくなり、そのチップ面積を増大させることなくエフェクト処理を内部に取り込むことができる。この結果、コストを維持したまま音源ＬＳＩ１０の機能を拡充することができ、ひいてはＣＰＵ２０の処理負荷を軽減し、その処理能力を他のアプリケーションに活用することが可能となる。
【００４１】
また、リバーブ処理のように遅延データを入力にフィードバックするフィードバック系のエフェクト処理にあっては、あるサブフレームにおいて、演算の進行に合わせて必要とされるリバーブ処理用データRPDをＲＡＭ３０から一括して音源ＬＳＩ１０にバースト転送し、必要に応じて、リバーブ処理用データRPDを一括してＲＡＭ３０にバースト転送するようにした。このため、音源ＬＳＩ１０では、エフェクト処理に専用のメモリを設ける必要がなくなり、上述した場合と同様に、そのチップ面積を増大させることなくエフェクト処理を内部に取り込むことができる。
【００４２】
【発明の効果】
上述したように本発明に係る発明特定事項によれば、遅延が必要とされる音声データの波形処理において、コンピュータシステムに元々あるメモリを有効に活用することにより、ローカルなメモリを設けることなく、波形処理を実行することができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態に係わるコンピュータシステムのブロック図である。
【図２】  同実施形態に係る音源ボードの動作概略を説明するための図である。
【図３】  同実施形態に係る演算部の処理を周辺構成も含めて示す機能ブロック図である。
【図４】  同実施形態に係るエフェクトデータの生成の態様を示すブロック図である。
【図５】  同実施形態に係るエフェクト処理の一例であるコーラス効果の等価回路を示す図である。
【図６】  同実施形態において、出力端子C1から出力されるコーラス処理用データCPDのアドレスの変化と出力端子C3から出力されるコーラス処理用データCPDのアドレスの変化とを示した図である。
【図７】  同実施形態に係るコーラス効果の等価回路とコンピュータシステムで行われる実際の処理との間の対応関係を示すブロック図である。
【図８】  同実施形態に係るコーラス効果の等価回路とコンピュータシステムで行われる実際の処理との間の対応関係を説明するためのフローチャートである。
【図９】  同実施形態に係るエフェクト処理の一例であるリバーブ効果の等価回路を示す図である。
【図１０】  同実施形態に係るリバーブ効果の等価回路とコンピュータシステムで行われる実際の処理との間の対応関係を示すブロック図である。
【図１１】  同実施形態に係るリバーブ効果の等価回路とコンピュータシステムで行われる実際の処理との間の対応関係を説明するためのフローチャートである。
【符号の説明】
１０…音源ＬＳＩ（音声データ処理装置）、１２…ＰＣＩバスインターフェース（転送手段、取込手段）、１４…演算部（演算手段）、２０…ＣＰＵ、３０…ＲＡＭ（システムメモリ）、WD…波形データ、SD…出力音声データ、Ａ…コンピュータシステム。
【図１】
0003991475.tif 000002
【図２】
0003991475.tif 000003
【図３】
0003991475.tif 000004
【図４】
0003991475.tif 000005
【図５】
0003991475.tif 000006
【図６】
0003991475.tif 000007
【図７】
0003991475.tif 000008
【図８】
0003991475.tif 000009
【図９】
0003991475.tif 000010
【図１０】
0003991475.tif 000011
【図１１】
0003991475.tif 000012