JP3991475B2 - 音声データ処理装置およびコンピュータシステム - Google Patents
音声データ処理装置およびコンピュータシステム Download PDFInfo
- Publication number
- JP3991475B2 JP3991475B2 JP29108698A JP29108698A JP3991475B2 JP 3991475 B2 JP3991475 B2 JP 3991475B2 JP 29108698 A JP29108698 A JP 29108698A JP 29108698 A JP29108698 A JP 29108698A JP 3991475 B2 JP3991475 B2 JP 3991475B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- effect
- buffer
- samples
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、例えば、ディレイ系のエフェクト処理をローカルなメモリを使用することなく実行するのに好適な音声データ処理装置およびコンピュータシステムに関する。
【0002】
【従来の技術】
近年のパーソナルコンピュータでは、音源LSIを搭載して各種のサウンド処理を行うものが多い。音源LSIの代表的な処理としては、制御データと波形データとに基づいてデジタル音声データを再生する再生処理がある。波形データは楽器の演奏音を所定のレートでサンプリングして得られたものであり、制御データは、音色、再生ピッチおよび音量等を指示する。サウンド処理機能を有するパーソナルコンピュータは、通常、装置全体をOSに従って制御するCPU、音源LSI、制御データおよび波形データあるいは他のアプリケーションプログラムを格納するメインメモリ、各構成部分を接続しデータの授受を行うためのバス等から構成されている。
【0003】
帯域幅の広いバス(例えば、PCIバス)を採用したパーソナルコンピュータにおいては、音源LSIが、処理を行うために必要なデータをメインメモリからバスを介して取得する構成が可能となるが、バスを長時間占有すると、他のアプリケーションがバスを使用する時間が短くなる。この結果、コンピュータシステム全体としてみると、円滑な動作に支障をきたすことになる。そのような問題を解決するため、本出願人はフレーム処理を導入した音源LSIを先に提案している(特願平9−200662号)。そのような音源LSIのフレーム処理では、出力サンプリング周波数(DACレート)48KHzで256サンプル出力するのに要する時間(5.3ms)を1フレーム(FRAME)とするフレーム単位でDACレートとは非同期に一括してデジタル音声データを生成しており、コンピュータシステムは1フレームの処理に必要なデータを一括してメインメモリから音源LSIにバースト転送している。バースト転送によるバスの占有時間は、1フレーム期間と比較してごく短いので、コンピュータシステム全体として円滑な動作が保証される。
【0004】
【発明が解決しようとする課題】
ところで、コンピュータシステムで実行されるサウンド処理には、上述した再生処理の他に、代表的なものとしてエフェクト処理がある。エフェクト処理は、リバーブやコーラスあるいはバリエーションといった、音響効果を再生音声データに付与するものであり、これにより、変化に富んだ再生音を生成することができる。このため、音源LSIにエフェクト処理を実行させたいといった要求がある。このエフェクト処理の中にはディレイ系と呼ばれる処理がある。ディレイ系のエフェクト処理では比較的長時間遅延された再生音声データと現在の再生音声データとを合成することによって、再生音声データに音響効果を付与している。このため、ディレイ系のエフェクト処理では、再生音声データを遅延するためのメモリが必要となる。
しかしながら、音源LSIにローカルなメモリを設けると、音源LSIのチップ面積が増大し、そのコストが上昇するといった問題があった。また、エフェクト処理を音源LSIで実行させないで、CPUを使ってソフト的に実行させるというアプローチも考えられるが、その場合には、CPUの処理負荷が増大するといった問題があった。
【0005】
本発明は、上述した事情に鑑みてなされたものであり、遅延が必要とされる音声データの波形処理において、ローカルなメモリを設けることなく、波形処理を実行する音声データ処理装置およびコンピュータシステムを提供することを目的とする。
【0006】
【課題を解決するための手段】
上記課題を解決するため請求項1に記載の発明にあっては、データの読み書き可能なシステムメモリを有するコンピュータシステムのバスに接続されて、遅延を行うエフェクト処理を施したエフェクトデータを生成する音声データ処理装置であって、所定単位時間に出力されるべき複数サンプルのデータである再生データを、その所定単位時間で一括して生成する再生処理手段と、前記再生処理手段により生成された、遅延を行うべき再生データを、エフェクト処理用データとして、前記複数サンプル単位で記憶するエフェクト用バッファと、前記エフェクト処理用データを、前記エフェクト処理用バッファから前記システムメモリへ前記複数サンプル単位で一括して転送する転送手段と、入力バッファと、前記システムメモリにて遅延が施された前記エフェクト処理用データを、前記システムメモリから前記入力バッファへと、前記複数サンプル単位で一括して取り込む取込手段と、前記入力バッファに取り込まれた、前記遅延が施されたエフェクト処理用データに対して演算処理を行って、前記複数サンプル単位のエフェクトデータを生成するエフェクト処理手段と、前記エフェクト処理手段によって生成された前記エフェクトデータを、前記複数サンプル単位で一時記憶し、一定の出力レートに従い出力する出力バッファとを備えることを特徴とする。
【0009】
また、請求項2に記載の発明にあっては、上記エフェクト処理手段は、時分割で、複数種類のエフェクトデータを生成し、上記出力バッファは、前記再生データと前記再生データに対応するエフェクトデータを累算することを特徴とする。
【0010】
また、請求項3に記載の発明にあっては、データの読み書き可能なシステムメモリ、CPU、および遅延を行うエフェクト処理を施したエフェクトデータを生成する音声データ処理装置がバスで接続されたコンピュータシステムであって、上記音声データ処理装置は、所定単位時間に出力されるべき複数サンプルのデータである再生データを、その所定単位時間で一括して生成する再生処理手段と、前記再生処理手段により生成された、遅延を行うべき再生データを、エフェクト処理用データとして、前記複数サンプル単位で記憶するエフェクト用バッファと、前記エフェクト処理用データを、前記エフェクト処理用バッファから前記システムメモリへ前記複数サンプル単位で一括して転送する転送手段と、入力バッファと、前記システムメモリにて遅延が施された前記エフェクト処理用データを、前記システムメモリから前記入力バッファへと、前記複数サンプル単位で一括して取り込む取込手段と、前記入力バッファに取り込まれた、前記遅延が施されたエフェクト処理用データに対して演算処理を行って、前記複数サンプル単位のエフェクトデータを生成するエフェクト処理手段と、前記エフェクト処理手段によって生成された前記エフェクトデータを、前記複数サンプル単位で一時記憶し、一定の出力レートに従い出力する出力バッファとを備えることを特徴とする。
【0011】
【発明の実施の形態】
1.コンピュータシステムの全体構成
以下、図面を参照しつつ、本発明に係わる一実施形態であるコンピュータシステムの構成を説明する。図1は本実施形態に係わるコンピュータシステムのブロック図である。
【0012】
図において、CPU20は、バス60を介して各構成部分に接続されており、コンピュータシステムA全体を制御する。RAM30はメインメモリ(システムメモリ)に相当する読み書き可能なメモリであって、CPU20の作業領域として機能する。また、RAM30のある記憶領域は各種の波形データWDを記憶する周知のウエーブテーブルとして機能するとともに、他の記憶領域は、エフェクト処理における遅延メモリとして機能する。
また、ROM40は読出専用のメモリであって、そこにはブートプログラム等が格納されている。また、ハードディスク50は、二次記憶装置に相当し、そこにはアプリケーションプログラムやデバイスドライバDDやマイクロプログラムMP等のプログラム、および制御データCDや波形データWDといった各種のデータが格納されている。そして、これらのプログラムやデータは必要に応じてRAM30にロードされるようになっている。
【0013】
ここで、制御データCDは、アプリケーションプログラムから与えられるMIDIフォーマット等の演奏指示に応答して音源LSI10を駆動するデータであり、音色情報(当該音色に対応する波形データWDが格納されているアドレス)、ピッチ情報、音量情報の他、エフェクト処理を指示するエフェクト情報等から構成されている。また、波形データWDは、例えば、ギターやピアノといった各種の音色に対応する楽器によって実際に発音させた楽音等をサンプリングして得られたデータである。
【0014】
また、OSの起動時にデバイスドライバDD、マイクロプログラムMP、および波形データWD等がバス60を介してRAM30に転送されるとともに、上位のアプリケーションによって参照指示される制御データCDが必要に応じてRAM30に転送される。また、RAM30に格納されたマイクロプログラムMPは音源LSI10に転送される。バス60としては、大量のデータを高速転送できるものであればその種類は問わないが、この例にあっては、バースト転送モードを備えたPCIバス(Peripheral Component Interconnect Bus)を用いるものとする。
【0015】
ここで、波形データWDは、ハードディスク50に格納されているデータの中から使用頻度の高い音色に対応するものが選択されRAM30に記憶され、必要に応じてRAM30とハードディスク50との間で波形データWDのやり取りが行われる。また、RAM30において、波形データWDは物理アドレスが連続する連続直線領域に格納されるようになっている。物理アドレスが不連続であると、論理アドレスから物理アドレスを算出する必要があるため、これを回避してOSの負荷を軽減するためである。
【0016】
2.音源ボードの構成および動作の概略
図1に示す音源ボード100は、図示せぬ拡張スロット(PCIスロット)に装着されるようになっており、そこには、出力音声データSDを生成する音源LSI10と出力音声データSDをアナログ信号に変換したのもを出力音声信号Sとして出力するDAC16が設けられている。なお、音源LSI10はコンピュータシステムAのマザーボード上に実装するようにしてもよい。音源LSI10内で出力音声データSDを生成する処理は、サブフレームと呼ばれる一定の時間単位で行われるようになっており、この例では、出力音声データSDを出力サンプリングレート(DACレート=48kHz)で256サンプルだけ出力する時間(約5.3ms)を1フレームとして、これをさらに4分割したもの(64サンプル分の時間=約1.3ms)を1サブフレームとしている。あるサブフレームで一括生成された64サンプルは一旦出力バッファ15に格納され、次のサブフレームにおいて、出力サンプリングレートに対応してDAC16に供給される。
【0017】
また、音源LSI10は、複数音(例えば64チャンネル)同時発音可能になっている。あるサブフレームの合成音声データを生成するに当たって、まず、チャンネルch1についての再生データ(64サンプル)を作成するとともに出力バッファ15に格納し、次に、チャンネルch2についても同様に再生データ(64サンプル)を作成するとともに、チャンネルch1の再生データと対応したサンプル同士を加算した64サンプルを作成し出力バッファ15に格納する(累算処理)。このような処理をNチャンネル(MAX64チャンネル)分繰り返し、最終的にNチャンネル分を累算した64サンプルの合成音声データを出力バッファ15に格納する。この合成音声データは、後述するエフェクトデータを付加され、出力音声データSDとして次のサブフレームにおいてDAC16へ供給される。
【0018】
詳細は後述するが、音源LSI10は、各チャンネルの再生データに対して、選択的に、エフェクトを付与することが可能になっており、そのためにこの音源LSI10は、上記した同時発音数に対応した再生チャンネルと同様のエフェクトチャンネルを有しており、また、ハードウェア的にはエフェクト用バッファを備えている。そして、エフェクトデータ作成の前段階として、上記したサブフレームの各チャンネルの再生処理の過程において、エフェクトを付与しないでそのまま出力するチャンネルについては再生データを出力バッファ15のみに格納(累算)し、エフェクトを付与するチャンネルについては、出力バッファ15とともにエフェクト用バッファにも格納(累算)する。そして、エフェクト用バッファに現在または過去のサブフレームで格納されたエフェクト処理用データに対してエフェクトチャンネルを使用してエフェクトデータを作成し、出力バッファ15に格納(累算)する。
【0019】
上記説明した音源ボード100の動作概略をサブフレーム毎の処理に着目して整理すると、図2のようになる。
図2(a)に示すとおり、音源ボード100では、サブフレーム毎に、再生チャンネル処理CH1〜CHN(Nは64以下)およびエフェクトチャンネル処理(コーラスチャンネル処理とリバーブチャンネル処理で構成される)を出力サンプリング周波数(DACレート=48KHz)とは非同期に一括して行う。各チャンネル処理では、それぞれ、次のサブフレームで出力する64サンプルを作成する。
各再生チャンネル処理では、それぞれ、(1)RAM30から制御データCDの取り込み、以下、制御データCDに従って、(2)RAM30から波形データWDの取り込み、(3)再生データの生成、(4)再生データの出力バッファ15およびエフェクト用バッファへの格納(累算)、等を行う。
エフェクトチャンネル処理では、それぞれ、(1)RAM30から制御データCDの取り込み、(2)RAM30からエフェクト処理用データ(遅延済み)の取り込み、(3)エフェクト用バッファからRAM30への書込み、(4)中間データおよびエフェクトデータの生成、(5)エフェクトデータの出力バッファ15およびエフェクト用バッファへの格納(累算)、等を行う。なお、エフェクト処理の上記(2)、(3)、(4)、(5)については、処理の内容に応じて、必ずしも上記順序で行われるわけではなく、それぞれ、1回きり行われるわけでもない。
以上の処理により、出力バッファ15上に次のサブフレームでDAC16へ送り出す出力音声データSDが得られる。
また、図2(b)に示すとおり、音源ボード100では、各サブフレームにおいて、前サブフレームにおいて作成された出力音声データSDを、出力サンプリング周波数(DACレート=48kHz)に従い、DAC16に順次送出する。
【0020】
2−1:音源LSI
図1に戻って、音源LSI10は、制御部11、PCIバスインターフェース12、入力バッファ13、演算部14および出力バッファ15から構成される。まず、制御部11はRAM30から転送されるマイクロプログラムMPをその内部に設けられたメモリ(図示略)に記憶し、マイクロプログラムMPに従って音源LSI10の各部を制御する命令iを発行する。次に、PCIバスインターフェース12は、バスマスタ機能を有している。このため、音源LSI10は、CPU20にさほど負荷をかけないで、RAM30から制御データCDや波形データWD、あるいはエフェクト処理に必要なデータを直接読み出すことが可能である。
【0021】
2−1−1:入力バッファ
次に、入力バッファ13は、PCIバスインターフェース12を介してRAM30からバースト転送される制御データCDや波形データWD、あるいはエフェクト処理に必要なデータ(コーラス処理用データCPDやリバーブ処理用データRPD)をを一旦記憶する。
【0022】
2−1−2:演算部
次に、演算部14は、サブチャンネル毎に、各再生チャンネル処理、コーラスチャンネル処理、およびリバーブチャンネル処理をマイクロプログラムMPに従って時分割で実行できるように構成されており、その内部には上記したコーラス用およびリバーブ用バッファ141、142を備えている。なお、この例では、リバーブやコーラスといった2種類のエフェクト処理を実行するため、エフェクト処理用に2個のバッファを用意したが、3種類以上のエフェクト処理を行うのであれば、その種類に応じた数のバッファを用意すれば良い。
【0023】
ここで、演算部14の処理を、周辺も含めて、機能ブロック図として図3に示す。
図3に示したとおり、この演算部14の演算処理には、Nチャンネルの再生チャンネル処理145、コーラスチャンネル処理143、リバーブチャンネル処理144およびミキサ処理がある。すなわち、再生チャンネル処理とは、各チャンネル(MAX64チャンネル)の64サンプルの再生データを作成する処理であり、コーラスチャンネル処理とは、コーラス用バッファ141に格納されたデータに基づき64サンプルのコーラスデータを作成する処理であり、リバーブチャンネル処理とは、リバーブ用バッファ142に格納されたデータに基づき64サンプルのリバーブデータを作成する処理である。また、ミキサ処理とは、各再生チャンネル処理で作成されたそれぞれ64サンプル、コーラスチャンネル処理で作成されたコーラスデータ64サンプルおよびリバーブチャンネル処理で作成されたリバーブデータ64サンプルを、出力バッファ15、コーラス用バッファ141およびリバーブ用バッファ142上で累算する処理である。
【0024】
各再生チャンネル処理では、まず、そのチャンネルに対応した制御データCDをRAM30から入力バッファ13に取り込む。次に、制御データCD中に含まれるピッチ情報、サンプリングレートおよび出力サンプリングレート(DACレート)を考慮して1サブフレーム分の64サンプルを作成するのに必要な波形データWDをRAM30から入力バッファ13に取り込む。この取り込みは、先頭アドレスとサンプル数とを指定することでバースト転送により行われる。すなわち、RAM30の波形データWD内の所定の連続領域が切り出されて音源LSIに一括して転送されることになる。この後、制御データCDのピッチ情報や音量情報に基づいて、波形データWDに変換処理を施して64サンプルを作成する。なお、この64サンプルは、1サンプル生成される度に所定の係数を乗算された後に出力バッファ15、コーラス用バッファ141およびリバーブ用バッファ142に格納(累算)される。最後に、制御データCDをRAM30にライトバックして、当該再生チャンネルの処理を終了する。このような処理がチャンネル数回繰り返し実行される。
【0025】
次に、コーラスチャンネル処理143およびリバーブチャンネル処理144は、コーラス用バッファ141およびリバーブ用バッファ142に格納されたそれぞれ64サンプルのコーラス処理用データCPDおよびリバーブ処理用データRPDに基づき、それぞれ64サンプルのコーラスデータおよびリバーブデータを作成する処理であるが、詳細は後述する。
【0026】
次に、ミキサ処理について説明する。なお、ここでは説明の便宜上、ミキサ処理を、再生チャンネル処理145、コーラスチャンネル処理143およびリバーブチャンネル処理144と分けて説明しているが、ミキサ処理は、各再生チャンネル処理の中、コーラスチャンネル処理143の中およびリバーブチャンネル処理144の中でそれぞれ行われる。このミキサ処理は、各再生チャンネル処理で作成された再生データを、そのまま出力するかコーラスデータまたは/およびリバーブデータを作成するかに応じて振り分ける処理、さらに、コーラスデータまたはリバーブデータを、そのまま出力するか再度コーラスデータまたは/およびリバーブデータを作成するかに応じて振り分ける処理である。すなわち、外部に出力する場合には出力バッファ15に格納(累算)し、コーラスデータを作成する場合にはコーラス用バッファ141に格納(累算)し、リバーブデータを作成する場合にはリバーブ用バッファ142に格納(累算)する。なお、各バッファにサンプルを格納する際には、そこに既に格納されている対応サンプルを読み出して、新たに生成されたサンプルと加算して格納している。
【0027】
なお、図3より明らかなように、各再生チャンネルでは、エフェクト付与のON/OFFの選択をできるのみならず、出力バッファ15、コーラス用バッファ141およびリバーブ用バッファに適当な比率で振り分けることにより、エフェクトをかける度合を選択することもできるとともに、図4(a)に示すように、2つのエフェクトデータを並列的に作成することもできる。さらに、図4(b)に示すように、コーラスチャンネル処理143で作成したコーラスデータをリバーブ用バッファ142に振り分けることにより、コーラスリバーブデータを作成することもできるし、図4(c)に示すように、その逆もできる。
コーラス用バッファ141とリバーブ用バッファ142は、比較的長時間の遅延をコンピュータシステムA側のRAM30を利用して実現するために設けられている。すなわち、これらのバッファは、遅延すべきデータをバースト転送によりRAM30に転送するためバッファとして設けられている。
【0028】
2−1−3:出力バッファ
再び図1に戻って、出力バッファ15は、第1バッファ151および第2バッファ152から構成されて、サブフレーム周期で、それぞれの役割が切り換えられる。すなわち、あるサブフレームでは、第1バッファ151に、各再生チャンネル処理で作成された再生データ(それぞれ64サンプル)、コーラスチャンネル処理で作成されたコーラスデータ(64サンプル)およびリバーブチャンネル処理で作成されたリバーブデータ(64サンプル)が書き込まれる(累算処理される)とともに、第2バッファ152に格納された64サンプル(前サブフレームにおいて累算処理された64サンプル)が出力音声データSDとして出力サンプリングレートに従いDAC16へと読み出される。次のサブフレームでは、第1バッファ151に格納された64サンプルが出力音声データSDとしてDAC16へと読み出されるとともに、第2バッファ152で累算処理が行われる。
【0029】
3.エフェクト処理
次に、演算部14で実行するエフェクト処理について詳細に説明する。
3−1:コーラス処理
図5は、エフェクト処理の一例であるコーラス効果の等価回路を示す図である。
【0030】
コーラスチャンネル処理は、コーラス用バッファ141上での累算により得られたコーラス処理用データCPDを遅延するメモリ201、所定の係数を入力データに乗算して出力する係数器202〜205、および加算器209、210から構成されている。なお、係数器206から加算器211のパスは、各再生チャンネル処理の中で、出力バッファ15上でのミキサ処理として行われる。また、係数器212からコーラス用バッファ141のパスは、各再生チャンネル処理の中で、コーラス用バッファ141上でのミキサ処理として行われる。
係数器202、203および加算器209は、メモリ201の出力端子C1,C2から出力されるコーラス処理用データCPDを合成して出力し、一方、係数器204、205および加算器210は、メモリ201の出力端子C3,C4から出力されるコーラス処理用データCPDを合成して出力する。出力端子C1と出力端子C2とは、常にアドレスが1つ離れたコーラス処理用データCPDを出力する。また同様に、出力端子C3と出力端子C4とは、常にアドレスが1つ離れたコーラス処理用データCPDを出力する。図6は、出力端子C1から出力されるコーラス処理用データCPDのアドレスの変化と出力端子C3から出力されるコーラス処理用データCPDのアドレスの変化とを図示したものである。この図に示すように各アドレスは正弦波状に変動する。
【0031】
加算器209,210の各出力データは、係数器207,208を介して加算器211に出力される。なお、この係数器207,208および加算器211の演算はコーラスチャンネル処理の中での出力バッファ15へのミキサ処理に相当する。このように各再生チャンネル処理で作成された再生データとコーラスチャンネル処理で作成された2系統のコーラスデータCOがミキシングされて、コーラス効果が得られる。
コーラスデータCOは、遅延時間を正弦波状に変動させたコーラス処理用データCPDに基づいて生成されるので、仮想的な発音源が視聴者の周りを回っているように感じられる音響効果を付与することができる。
【0032】
ここで、図5のコーラス効果の等価回路と図1のコンピュータシステムAで行われる実際の処理との間の対応関係を図7に、またそのフローチャートを図8に示す。
図7において点線で囲った部分が演算部14において行われる処理である。あるサブフレームにおいて作成されたNチャンネルの再生データ(それぞれ64サンプル)は、コーラス効果を付与するか否か、または、どの程度付与するかに応じて、係数乗算処理(212)されてコーラス用バッファ141上でミキシングされる。一方、Nチャンネルの再生データは、直後、係数乗算処理(206)されて出力バッファ(15、211)上でミキシングされる。なお、一旦作成されたコーラスデータまたはリバーブデータに再度コーラス効果を付与するために、そのような64サンプルをコーラス用バッファ141上で累算することもあり得る。この累算された64サンプルをコーラス処理用データCPDとしてメモリ(RAM30、201)にバースト転送される(図8のステップC1)。
【0033】
コーラスチャンネル処理では、所定のサブフレーム周期前にメモリ(RAM30,201)に記憶されたコーラス処理用データCPDをバースト転送することにより、入力バッファ13にコーラス処理用データCPDを取り込む(ステップC2、C4)。これにより、あるサブフレームにおいてコーラスチャンネル処理を実行するために必要なコーラス処理用データCPDを音源LSI10が取得することができる。
次に、読出アドレスを可変しつつ入力バッファ13からコーラス処理用データCPDを読み出して積和演算を実行することにより、図5に示す等価回路の加算器209,210の出力データを生成する。そして、これらの出力データに係数乗算処理(207、208)を行い、出力バッファ(15、201)上でミキシングする(ステップC3,C5)ことによって、コーラス効果を実現できる。
【0034】
このようにコーラスチャンネル処理では、あるサブフレームの再生チャンネル処理によって生成されたデータの一部または全部をコーラス処理用データCPDとしてRAM30に書き戻し、その後、RAM30から当該サブフレームで必要とされるコーラス処理用データCPDを一括して取り込んでいる。なお、RAM30/バッファ13、14間の転送と演算処理とは、パイプライン的に並行して行うのが好ましい。
【0035】
3−2:リバーブ処理
図9は、エフェクト処理の一例であるリバーブ効果の等価回路を示す図である。この図に示すようにリバーブ効果の等価回路は、巡回型ローパスフィルタF1、オールパスフィルタF2,F3,F8、およびコムフィルタF4,F5,F6,F7から大略構成されている。なお、係数器328から加算器330のパスは、各再生チャンネル処理の中で、出力バッファ15上でのミキサ処理として行われる。また、係数器327からリバーブ用バッファ142のパスは、各再生チャンネル処理の中で、リバーブ用バッファ142上でのミキサ処理として行われる。
巡回型ローパスフィルタF1は、出力データを係数器302を介してフィードバックするとともに、フィードバックされたデータとリバーブ処理用バッファ142上で累算されたリバーブ処理用データRPDとを加算(303)してメモリ301に入力するように構成されている。これにより、過去のリバーブ処理用データRPDが係数器302のフィードバック係数に従って減衰しながら現在のリバーブ処理用データRPDと加算されることになる。なお、メモリ301には、中間の出力端子が設けられており、そこから取り出されたリバーブ処理用データRPDが、係数器304を介して、加算器321に供給されるようになっている。このように巡回型ローパスフィルタF1は、メモリ301の出力データが入力にフィードバックされる構成となっている。
【0036】
次に、各オールパスフィルタF2,F3,F8は、ゲインが一定で位相のみを調整するフィルタである。オールパスフィルタF2,F3は、巡回型ローパスフィルタF1によって変化した位相を調整するために使用され、一方、オールパスフィルタF8は、リバーブデータREを生成するために用いられる。各オールパスフィルタF2,F3,F8は、同様の構成部分を備えているので、ここでは、オールパスフィルタF2について説明する。図に示すように、オールパスフィルタF2は、メモリ306の出力データを係数器309を介して加算器312にフィードバックし、これを係数器310を介して供給されるリバーブ処理用データRPDと加算してメモリ306に供給している。そして、メモリ306の出力データを係数器308を介して加算器311に供給するとともに、リバーブ処理用データRPDを係数器307を介して加算器311に供給し、両者を加算して出力データを得ている。このように、オールパスフィルタF2は、メモリ306の出力データを入力にフィードバックする構成となっている。
【0037】
次に、各コムフィルタF4,F5,F6,F7は、櫛形の周波数特性を有するフィルタであって、ノッチ部分に相当する周波数が互いにずれるように構成されている。なお、各コムフィルタF4,F5,F6,F7は、同様の構成部分を備えているので、ここでは、コムフィルタF4について説明する。コムフィルタF4は、メモリ313の出力データを、係数器315を介して加算器320にフィードバックするとともにラッチ314で1クロック遅延した後に係数器316を介して加算器320にフィードバックする。この加算器320に係数器317を介してリバーブ処理用データRPDが供給されると、フィードバックされたデータとリバーブ処理用データRPDが加算され、メモリ313に供給される。なお、メモリ313は、中間に出力端子を備えており、そこから出力されるデータが係数器318を介してコムフィルタF4の出力データとして、加算器321に出力される。このように、コムフィルタF4は、メモリ313の出力データを入力にフィードバックする構成となっている。
【0038】
ここで、図9のリバーブ効果の等価回路と図1のコンピュータシステムAで行われる実際の処理との間の対応関係を図10に、また、そのフローチャートを図11に示す。
図10において点線で囲った部分が演算部14において行われる処理である。あるサブフレームにおいて作成されたNチャンネルの再生データ(それぞれ64サンプル)は、リバーブ効果を付与するか否か、または、どの程度付与するかに応じて、係数乗算処理(327)されてリバーブ用バッファ142上でミキシングされる。一方、Nチャンネルの再生データは、直接、係数乗算処理(328)されて出力バッファ(15、330)上でミキシングされる。なお、一旦作成されたコーラスデータまたはリバーブデータに再度リバーブ効果を付与するために、そのような64サンプルをリバーブ用バッファ142上で累算することもあり得る。
【0039】
リバーブチャンネル処理では、所定のサブフレーム前にメモリ(RAM30、301)に記憶されたリバーブ処理用データRPD(場合によっては中間データ)を、バースト転送により取り込む(図11のステップR1、R4、R12、R14)。エフェクトチャンネル処理の各フェーズの演算を実行するのに必要なリバーブ処理用データRPDを取得することができる。
また、各フェーズにおいて、入力バッファ13およびリバーブ用バッファ142からリバーブ処理用データRPDを読み出して積和演算を実行する(R2、R5、R7、R9、R13、R15)。
さらに、所定時間の遅延を実現するために、各フェーズにおいて、リバーブ用バッファ142に格納されたリバーブ処理用データRPDおよび中間データをRAM30にバースト転送する(R3、R6、R10)。
このような一連の処理を経て、最終的にオールパスフィルタ処理F8された64サンプルのデータはリバーブデータREとして係数乗算処理(329)されて出力バッファ(15、330)上でミキシングされる。
このように、各チャンネル処理で作成された再生データとリバーブチャンネル処理で作成されたリバーブデータREとを出力バッファ(15、330)上でミキシングすることによって、リバーブ効果を実現できる。
なお、RAM30/バッファ13、142間のデータ転送と演算処理とは、パイプライン的に並行して行うのが好ましい。
【0040】
以上説明したように、本実施形態によれば、コーラス処理のように遅延データを入力にフィードバックしないフィードフォワード系のエフェクト処理にあっては、あるサブフレームで生成されたコーラス処理用データCPDを音源LSI10からRAM30に一括してバースト転送し、現在のサブフレームで必要とされるコーラス処理用データCPDを演算の進行に合わせて一括して音源LSI10にバースト転送するようにした。このため、音源LSI10では、エフェクト処理に専用のメモリを設ける必要がなくなり、そのチップ面積を増大させることなくエフェクト処理を内部に取り込むことができる。この結果、コストを維持したまま音源LSI10の機能を拡充することができ、ひいてはCPU20の処理負荷を軽減し、その処理能力を他のアプリケーションに活用することが可能となる。
【0041】
また、リバーブ処理のように遅延データを入力にフィードバックするフィードバック系のエフェクト処理にあっては、あるサブフレームにおいて、演算の進行に合わせて必要とされるリバーブ処理用データRPDをRAM30から一括して音源LSI10にバースト転送し、必要に応じて、リバーブ処理用データRPDを一括してRAM30にバースト転送するようにした。このため、音源LSI10では、エフェクト処理に専用のメモリを設ける必要がなくなり、上述した場合と同様に、そのチップ面積を増大させることなくエフェクト処理を内部に取り込むことができる。
【0042】
【発明の効果】
上述したように本発明に係る発明特定事項によれば、遅延が必要とされる音声データの波形処理において、コンピュータシステムに元々あるメモリを有効に活用することにより、ローカルなメモリを設けることなく、波形処理を実行することができる。
【図面の簡単な説明】
【図1】 本発明の一実施形態に係わるコンピュータシステムのブロック図である。
【図2】 同実施形態に係る音源ボードの動作概略を説明するための図である。
【図3】 同実施形態に係る演算部の処理を周辺構成も含めて示す機能ブロック図である。
【図4】 同実施形態に係るエフェクトデータの生成の態様を示すブロック図である。
【図5】 同実施形態に係るエフェクト処理の一例であるコーラス効果の等価回路を示す図である。
【図6】 同実施形態において、出力端子C1から出力されるコーラス処理用データCPDのアドレスの変化と出力端子C3から出力されるコーラス処理用データCPDのアドレスの変化とを示した図である。
【図7】 同実施形態に係るコーラス効果の等価回路とコンピュータシステムで行われる実際の処理との間の対応関係を示すブロック図である。
【図8】 同実施形態に係るコーラス効果の等価回路とコンピュータシステムで行われる実際の処理との間の対応関係を説明するためのフローチャートである。
【図9】 同実施形態に係るエフェクト処理の一例であるリバーブ効果の等価回路を示す図である。
【図10】 同実施形態に係るリバーブ効果の等価回路とコンピュータシステムで行われる実際の処理との間の対応関係を示すブロック図である。
【図11】 同実施形態に係るリバーブ効果の等価回路とコンピュータシステムで行われる実際の処理との間の対応関係を説明するためのフローチャートである。
【符号の説明】
10…音源LSI(音声データ処理装置)、12…PCIバスインターフェース(転送手段、取込手段)、14…演算部(演算手段)、20…CPU、30…RAM(システムメモリ)、WD…波形データ、SD…出力音声データ、A…コンピュータシステム。
Claims (3)
- データの読み書き可能なシステムメモリを有するコンピュータシステムのバスに接続されて、遅延を行うエフェクト処理を施したエフェクトデータを生成する音声データ処理装置であって、
所定単位時間に出力されるべき複数サンプルのデータである再生データを、その所定単位時間で一括して生成する再生処理手段と、
前記再生処理手段により生成された、遅延を行うべき再生データを、エフェクト処理用データとして、前記複数サンプル単位で記憶するエフェクト用バッファと、
前記エフェクト処理用データを、前記エフェクト処理用バッファから前記システムメモリへ前記複数サンプル単位で一括して転送する転送手段と、
入力バッファと、
前記システムメモリにて遅延が施された前記エフェクト処理用データを、前記システムメモリから前記入力バッファへと、前記複数サンプル単位で一括して取り込む取込手段と、
前記入力バッファに取り込まれた、前記遅延が施されたエフェクト処理用データに対して演算処理を行って、前記複数サンプル単位のエフェクトデータを生成するエフェクト処理手段と、
前記エフェクト処理手段によって生成された前記エフェクトデータを、前記複数サンプル単位で一時記憶し、一定の出力レートに従い出力する出力バッファと
を備えることを特徴とする音声データ処理装置。 - 上記エフェクト処理手段は、時分割で、複数種類のエフェクトデータを生成し、
上記出力バッファは、前記再生データと前記再生データに対応するエフェクトデータを累算する
ことを特徴とする請求項1記載の音声データ処理装置。 - データの読み書き可能なシステムメモリ、CPU、および遅延を行うエフェクト処理を施したエフェクトデータを生成する音声データ処理装置がバスで接続されたコンピュータシステムであって、
上記音声データ処理装置は、
所定単位時間に出力されるべき複数サンプルのデータである再生データを、その所定単位時間で一括して生成する再生処理手段と、
前記再生処理手段により生成された、遅延を行うべき再生データを、エフェクト処理用データとして、前記複数サンプル単位で記憶するエフェクト用バッファと、
前記エフェクト処理用データを、前記エフェクト処理用バッファから前記システムメモリへ前記複数サンプル単位で一括して転送する転送手段と、
入力バッファと、
前記システムメモリにて遅延が施された前記エフェクト処理用データを、前記システムメモリから前記入力バッファへと、前記複数サンプル単位で一括して取り込む取込手段と、
前記入力バッファに取り込まれた、前記遅延が施されたエフェクト処理用データに対して演算処理を行って、前記複数サンプル単位のエフェクトデータを生成するエフェクト処理手段と、
前記エフェクト処理手段によって生成された前記エフェクトデータを、前記複数サンプル単位で一時記憶し、一定の出力レートに従い出力する出力バッファと
を備えることを特徴とするコンピュータシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29108698A JP3991475B2 (ja) | 1998-10-13 | 1998-10-13 | 音声データ処理装置およびコンピュータシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29108698A JP3991475B2 (ja) | 1998-10-13 | 1998-10-13 | 音声データ処理装置およびコンピュータシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000122650A JP2000122650A (ja) | 2000-04-28 |
JP3991475B2 true JP3991475B2 (ja) | 2007-10-17 |
Family
ID=17764269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29108698A Expired - Fee Related JP3991475B2 (ja) | 1998-10-13 | 1998-10-13 | 音声データ処理装置およびコンピュータシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3991475B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100682444B1 (ko) | 2003-10-29 | 2007-02-15 | 야마하 가부시키가이샤 | 오디오 신호 프로세서 |
-
1998
- 1998-10-13 JP JP29108698A patent/JP3991475B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000122650A (ja) | 2000-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100372311B1 (ko) | 전자악기 | |
EP0568789B1 (en) | Digital signal processing apparatus employed in electronic musical instruments | |
JP3991458B2 (ja) | 楽音データ処理装置およびコンピュータシステム | |
JP3991475B2 (ja) | 音声データ処理装置およびコンピュータシステム | |
JPH0798586A (ja) | 電子楽器の音源装置 | |
US6031916A (en) | Sound effect adding device using DSP | |
JPH07121181A (ja) | 音声情報処理装置 | |
JP2022038902A (ja) | 音響処理装置、方法、およびプログラム | |
JP3978928B2 (ja) | 楽音生成装置 | |
JP3347338B2 (ja) | 楽音合成装置 | |
JPH02187796A (ja) | 実時間ディジタル加算シンセサイザ | |
JP3781171B2 (ja) | 楽音発生方法 | |
JP4361628B2 (ja) | オーディオ信号生成装置 | |
JP3036417B2 (ja) | 信号処理装置 | |
JP3460524B2 (ja) | 曲データ加工方法、加工後曲データ再生方法および記憶媒体 | |
JP3285137B2 (ja) | 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体 | |
JPH05249954A (ja) | 効果付与装置 | |
JPH10207465A (ja) | 楽音発生方法および楽音発生装置 | |
JP2642092B2 (ja) | デジタルエフェクト装置 | |
JP2560276B2 (ja) | デジタルエフエクト装置 | |
JP4106739B2 (ja) | デジタル信号処理方法およびデジタル信号処理装置 | |
Ciesla | More Effects and Digital Audio Workstations | |
JP2024046785A (ja) | 効果付与装置、方法、及びプログラム | |
JP2000276149A (ja) | 楽音生成方法、楽音生成装置および記録媒体 | |
JP3363667B2 (ja) | カラオケ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041224 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070123 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070220 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070423 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070716 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100803 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100803 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110803 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120803 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130803 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |