(57)【要約】エコーブロックＥＢ０〜ＥＢ（Ｎ−１）は、論理サウンドチャンネル＃０〜＃（Ｎ−１）に対応している。オンされたスイッチＳＷを有するエコーブロックに対応する論理サウンドチャンネルがエコーソースに設定される。エコーソースに設定された全エコーブロックからの出力ウェーブデータが加算器Ｍｐで加算され、ファネルシフタＦＳが加算結果σから所定ビット数のビット列を抽出し、そのビット列に対して、ＦＩＦＯバッファＢａ，Ｂｂ、乗算器Ｍｌ及び加算器Ａｌによって遅延処理を施し、エコー成分として論理チャンネル（エフェクトチャンネル）に割り当てる。エフェクトチャンネルは、論理チャンネルの中から任意に設定できる。
2007046311.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理サウンドチャンネルによって再生されたウェーブデータをミキシングして単数又は複数の物理サウンドチャンネルから出力するサウンドプロセッサであって、
前記論理サウンドチャンネルの各々に、音響効果を付与する対象のウェーブデータが割り当てられるエフェクト原音チャンネル、所定の音響効果が付与されたウェーブデータが割り当てられるエフェクトチャンネル、及び、音響効果が付与されないウェーブデータが割り当てられる非エフェクトチャンネルといった３つの属性の内の１つを設定するチャンネル設定手段と、
１以上の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合、前記エフェクト原音チャンネルによって再生されたウェーブデータに前記所定の音響効果を付与し、前記エフェクトチャンネルに割り当てる音響効果付与手段と、を備え、
前記チャンネル設定手段は、前記３つの属性の内のいずれの属性でも前記論理サウンドチャンネルに任意に設定できる、サウンドプロセッサ。
【請求項２】
前記音響効果付与手段は、前記エフェクト原音チャンネルによって再生されたウェーブデータをバッファに格納し、格納してから所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当てる、請求項１記載のサウンドプロセッサ。
【請求項３】
前記音響効果付与手段は、複数の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合に、当該複数のエフェクト原音チャンネルによって再生されたウェーブデータを加算する加算手段を含み、
前記音響効果付与手段は、前記加算結果であるウェーブデータを前記バッファに格納し、格納してから前記所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当てる、請求項２記載のサウンドプロセッサ。
【請求項４】
前記論理サウンドチャンネル毎に独立して、かつ、前記物理サウンドチャンネル毎に独立して、ウェーブデータに対して、任意の率で振幅変調を施す振幅変調手段をさらに備え、
前記音響効果付与手段は、前記論理サウンドチャンネルである前記エフェクト原音チャンネル毎に、前記複数の物理サウンドチャンネルに対する振幅変調の前記率の平均値を算出して、前記エフェクト原音チャンネル毎に、ウェーブデータに前記平均値を乗算する平均手段をさらに含み、
前記加算手段は、前記平均手段による乗算結果であるウェーブデータを加算する、請求項３記載のサウンドプロセッサ。
【請求項５】
前記音響効果付与手段は、前記加算手段による加算結果である累積ウェーブデータから、所定ビット数の複数ビットを抽出する抽出手段と、
前記累積ウェーブデータが、前記所定ビット数によって表現可能な範囲を超えている場合、前記抽出手段により抽出された前記複数ビットを所定値に置き換える飽和処理手段と、をさらに含み、
前記加算手段による加算結果であるウェーブデータが、前記所定ビット数によって表現可能な範囲内である場合、前記音響効果付与手段は、前記抽出手段により抽出された前記複数ビットで表されるウェーブデータをそのまま前記バッファに格納し、
前記累積ウェーブデータが、前記所定ビット数によって表現可能な範囲を超えている場合、前記音響効果付与手段は、前記飽和処理手段により前記所定値に置き換えられた前記複数ビットで表されるウェーブデータを前記バッファに格納し、
前記音響効果付与手段は、前記所定ビット数によって表現可能な範囲を超えているか否かに応じて前記バッファに格納したウェーブデータを前記所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当てる、請求項３記載のサウンドプロセッサ。
【請求項６】
前記抽出手段は、前記累積ウェーブデータから、前記所定ビット数の実質的に連続する前記複数ビットを抽出し、
前記飽和処理手段は、前記累積ウェーブデータのうちの、抽出された前記複数ビットより上位に位置し、前記複数ビットに含まれない全ビットが、抽出された前記複数ビットの最上位ビットと同じ値を示していない場合に、抽出された前記複数ビットを前記所定値に置き換える、請求項５記載のサウンドプロセッサ。
【請求項７】
前記音響効果付与手段は、
前記バッファに格納してから前記所定時間後に取り出して再生したウェーブデータに対して、所定の率で振幅変調を施す振幅変調手段と、
前記所定時間後の再生のための前記バッファからのウェーブデータの読出し位置から所定の距離変位された位置に格納されているウェーブデータに、前記所定の率で振幅変調が施されたウェーブデータを加算する加算手段と、を含む請求項２記載のサウンドプロセッサ。
【請求項８】
デジタル信号をアナログ信号に変換するデジタル／アナログ変換手段をさらに備え、
前記論理サウンドチャンネルによって処理されるウェーブデータは、ＰＣＭデータであり、
前記デジタル／アナログ変換手段は、前記ＰＣＭデータをアナログ信号に変換する、請求項１記載のサウンドプロセッサ。
【請求項９】
前記複数の論理サウンドチャンネルによって再生されたウェーブデータを時分割多重化して、前記デジタル／アナログ変換手段に出力する時分割多重出力手段をさらに備える請求項８記載のサウンドプロセッサ。
【請求項１０】
前記時分割多重出力手段は、前記エフェクトチャンネルによって再生されたウェーブデータを、当該エフェクトチャンネルに割り当てられた時間に出力するとともに、後続する他の前記論理サウンドチャンネルに割り当てられた時間に、前記他の論理サウンドチャンネルのウェーブデータの代わりに出力する、請求項９記載のサウンドプロセッサ。
【請求項１１】
複数の論理サウンドチャンネルによって再生されたウェーブデータをミキシングして単数又は複数の物理サウンドチャンネルから出力するサウンドプロセッサと、
外部から入力されたアナログ音声信号をデジタル音声信号に変換するアナログ／デジタル変換ユニットと、
プログラムに従って演算処理を実行する演算処理ユニットと、を備え、
前記サウンドプロセッサは、
前記論理サウンドチャンネルの各々に、音響効果を付与する対象のウェーブデータが割り当てられるエフェクト原音チャンネル、第１の所定の音響効果が付与されたウェーブデータが割り当てられる第１エフェクトチャンネル、第２の所定の音響効果が付与されたウェーブデータが割り当てられる第２エフェクトチャンネル、及び、音響効果が付与されないウェーブデータが割り当てられる非エフェクトチャンネルといった４つの属性の内の１つを設定するチャンネル設定手段と、
１以上の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合、前記エフェクト原音チャンネルによって再生されたウェーブデータを第１バッファに格納し、格納してから第１の所定時間後に取り出して再生し、前記第１エフェクトチャンネルに割り当てる第１の音響効果付与手段と、を含み、
前記チャンネル設定手段は、前記４つの属性の内のいずれの属性でも前記論理サウンドチャンネルに任意に設定でき、
前記演算処理ユニットは、前記アナログ／デジタル変換ユニットによって得られた前記デジタル音声信号を第２バッファに格納し、
前記サウンドプロセッサは、前記演算処理ユニットが前記第２バッファに格納した前記デジタル音声信号を、前記第２バッファに格納されてから第２の所定時間後に取り出して再生し、前記第２エフェクトチャンネルに割り当てる第２の音響効果付与手段をさらに含む、サウンドシステム。
【請求項１２】
前記第１の音響効果付与手段は、
前記第１バッファに格納してから前記第１の所定時間後に取り出して再生したウェーブデータに対して、第１の所定の率で振幅変調を施す振幅変調手段と、
前記第１の所定時間後の再生のための前記第１バッファからのウェーブデータの読出し位置から第１の所定の距離変位された位置に格納されているウェーブデータに、前記第１の所定の率で振幅変調が施されたウェーブデータを加算する加算手段と、を含み、
前記演算処理手段は、前記第２バッファに格納してから前記第２の所定時間後に取り出して再生したウェーブデータに対して、第２の所定の率で振幅変調を施し、そのウェーブデータを、前記第２の所定時間後の再生のための前記第２バッファからのウェーブデータの読出し位置から第２の所定の距離変位された位置に格納されているウェーブデータに加算する、請求項１１記載のサウンドシステム。
【請求項１３】
前記サウンドプロセッサは、デジタル信号をアナログ信号に変換するデジタル／アナログ変換手段をさらに含み、
前記論理サウンドチャンネルによって処理されるウェーブデータは、ＰＣＭデータであり、
前記デジタル／アナログ変換手段は、前記ＰＣＭデータをアナログ信号に変換し、
前記サウンドプロセッサは、前記複数の論理サウンドチャンネルによって再生されたウェーブデータを時分割多重化して、前記デジタル／アナログ変換手段に出力する時分割多重出力手段をさらに含み、
前記時分割多重出力手段は、前記第１エフェクトチャンネルによって再生されたウェーブデータを、当該第１エフェクトチャンネルに割り当てられた時間に出力するとともに、後続する他の前記論理サウンドチャンネルに割り当てられた時間に、前記他の論理サウンドチャンネルのウェーブデータの代わりに出力し、かつ、前記第２エフェクトチャンネルによって再生されたウェーブデータを、当該第２エフェクトチャンネルに割り当てられた時間に出力するとともに、後続する他の前記論理サウンドチャンネルに割り当てられた時間に、前記他の論理サウンドチャンネルのウェーブデータの代わりに出力する、請求項１１記載のサウンドシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェーブデータに音響効果を付与して出力するサウンドプロセッサ及びその関連技術に関する。
【背景技術】
【０００２】
特許文献１（特開昭６３−２６７９９９号公報）に開示された楽音信号発生装置は、複数のサウンドチャンネルが再生した複数の音声データを加算して、その加算音声データに共鳴効果を付与する。そして、楽音信号発生装置は、複数のサウンドチャンネルが再生した複数の音声データおよび共鳴効果が付与された加算音声データを加算して、Ｄ／Ａコンバータに出力する。
しかしながら、上記楽音信号発生装置では、全てのサウンドチャンネルからの音声データを原音として共鳴効果を付加しており、共鳴効果を付加する原音を割り当てるサウンドチャンネルを任意に設定することができない。また、共鳴効果が付加された加算音声データを割り当てるサウンドチャンネルも固定であり、任意に設定することができない。
そこで、本発明は、音響効果を付与する対象となるウェーブデータ（原音）を任意の論理サウンドチャンネルに割り当てることができ、かつ、音響効果を付与したウェーブデータを任意の論理サウンドチャンネルに割り当てることができるサウンドプロセッサ及びその関連技術を提供することを目的とする。
【発明の開示】
【０００３】
本発明の第１の観点によれば、複数の論理サウンドチャンネルによって再生されたウェーブデータをミキシングして単数又は複数の物理サウンドチャンネルから出力するサウンドプロセッサであって、前記論理サウンドチャンネルの各々に、音響効果を付与する対象のウェーブデータが割り当てられるエフェクト原音チャンネル、所定の音響効果が付与されたウェーブデータが割り当てられるエフェクトチャンネル、及び、音響効果が付与されないウェーブデータが割り当てられる非エフェクトチャンネルといった３つの属性の内の１つを設定するチャンネル設定手段と、１以上の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合、前記エフェクト原音チャンネルによって再生されたウェーブデータに前記所定の音響効果を付与し、前記エフェクトチャンネルに割り当てる音響効果付与手段と、を備え、前記チャンネル設定手段は、前記３つの属性の内のいずれの属性でも前記論理サウンドチャンネルに任意に設定できる。
この構成によれば、エフェクト原音チャンネルを任意の論理サウンドチャンネルに設定できるため、複数の論理サウンドチャンネルで再生されているウェーブデータのうち、任意の論理サウンドチャンネルで再生されているウェーブデータ（原音）に音響効果（例えば、エコー／リバーブ等）を施すことが可能となる。また、複数の論理サウンドチャンネルは等価であり、エフェクトチャンネルを任意の論理サウンドチャンネルに設定できるため、音響効果が付与されたウェーブデータを任意の論理サウンドチャンネルで再生できる。さらに、音響効果の付与が不要な場合には、全ての論理サウンドチャンネルを非エフェクトチャンネルに設定して、音響効果なしのウェーブデータの再生のために割り当てることが可能である。
このように任意の論理サウンドチャンネルに任意の属性を設定できるため、例えば、楽曲再生に割り当てられている論理サウンドチャンネルをエフェクト原音チャンネルに設定して、そこで再生されているウェーブデータにエコー等の音響効果を施す一方、効果音の再生に割り当てられている論理サウンドチャンネルを非エフェクトチャンネルに設定して、そこで再生されているウェーブデータには音響効果を施さないといった組み合わせが実現できる。また、再生されるウェーブデータにピッチ変換や振幅変調等を施す機能が論理サウンドチャンネルに設けられている場合、エフェクトチャンネルに割り当てられたウェーブデータに対しても同じ機能を利用できる。
このサウンドプロセッサにおいて、前記音響効果付与手段は、前記エフェクト原音チャンネルによって再生されたウェーブデータをバッファに格納し、格納してから所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当てる。
このように、バッファからのウェーブデータの取り出しを所定時間後に行うことにより、簡易に遅延機能を構築できる。
このサウンドプロセッサにおいて、前記音響効果付与手段は、複数の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合に、当該複数のエフェクト原音チャンネルによって再生されたウェーブデータを加算する加算手段を含み、前記音響効果付与手段は、前記加算結果であるウェーブデータを前記バッファに格納し、格納してから前記所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当てる。
この構成によれば、複数の論理サウンドチャンネルがエフェクト原音チャンネルに設定されている場合でも、バッファに格納されるのは１チャンネル分なので、当該バッファの容量を抑制できる。
このサウンドプロセッサは、前記論理サウンドチャンネル毎に独立して、かつ、前記物理サウンドチャンネル毎に独立して、ウェーブデータに対して、任意の率で振幅変調を施す振幅変調手段をさらに備え、前記音響効果付与手段は、前記論理サウンドチャンネルである前記エフェクト原音チャンネル毎に、前記複数の物理サウンドチャンネルに対する振幅変調の前記率の平均値を算出して、前記エフェクト原音チャンネル毎に、ウェーブデータに前記平均値を乗算する平均手段をさらに含み、前記加算手段は、前記平均手段による乗算結果であるウェーブデータを加算する。
この構成によれば、複数の物理サウンドチャンネル毎に論理サウンドチャンネルのミキシングバランスが異なる場合でも、バッファに格納されるのは１チャンネル分なので、バッファの容量を抑制できる。
上記サウンドプロセッサにおいて、前記音響効果付与手段は、前記加算手段による加算結果である累積ウェーブデータから、所定ビット数の複数ビットを抽出する抽出手段と、前記累積ウェーブデータが、前記所定ビット数によって表現可能な範囲を超えている場合、前記抽出手段により抽出された前記複数ビットを所定値に置き換える飽和処理手段と、をさらに含み、前記加算手段による加算結果であるウェーブデータが、前記所定ビット数によって表現可能な範囲内である場合、前記音響効果付与手段は、前記抽出手段により抽出された前記複数ビットで表されるウェーブデータをそのまま前記バッファに格納し、前記累積ウェーブデータが、前記所定ビット数によって表現可能な範囲を超えている場合、前記音響効果付与手段は、前記飽和処理手段により前記所定値に置き換えられた前記複数ビットで表されるウェーブデータを前記バッファに格納し、前記音響効果付与手段は、前記所定ビット数によって表現可能な範囲を超えているか否かに応じて前記バッファに格納したウェーブデータを前記所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当てる。
この構成によれば、累積ウェーブデータから任意のビット列が取り出せるため、エフェクトチャンネルによって再生されるウェーブデータの振幅を最適化できる。
このサウンドプロセッサにおいて、前記抽出手段は、前記累積ウェーブデータから、前記所定ビット数の実質的に連続する前記複数ビットを抽出し、前記飽和処理手段は、前記累積ウェーブデータのうちの、抽出された前記複数ビットより上位に位置し、前記複数ビットに含まれない全ビットが、抽出された前記複数ビットの最上位ビットと同じ値を示していない場合に、抽出された前記複数ビットを前記所定値に置き換える。
上記サウンドプロセッサにおいて、前記音響効果付与手段は、前記バッファに格納してから前記所定時間後に取り出して再生したウェーブデータに対して、所定の率で振幅変調を施す振幅変調手段と、前記所定時間後の再生のための前記バッファからのウェーブデータの読出し位置から所定の距離変位された位置に格納されているウェーブデータに、前記所定の率で振幅変調が施されたウェーブデータを加算する加算手段と、を含む。
この構成によれば、リバーブ機能を簡易に実現できる。
上記サウンドプロセッサは、デジタル信号をアナログ信号に変換するデジタル／アナログ変換手段をさらに備え、前記論理サウンドチャンネルによって処理されるウェーブデータは、ＰＣＭデータであり、前記デジタル／アナログ変換手段は、前記ＰＣＭデータをアナログ信号に変換する。
この構成によれば、論理サウンドチャンネルによって処理される対象はＰＣＭデータ、つまり、デジタルデータなので、音響効果を付与するための処理（例えば、遅延処理など）に必要なバッファをＲＡＭ等の手段で簡単に構築できる。また、音響効果を付与するための処理（例えば、振幅変調処理など）を小規模な論理回路及び／又は小規模なソフトウェアで行うことができる。
このサウンドプロセッサは、前記複数の論理サウンドチャンネルによって再生されたウェーブデータを時分割多重化して、前記デジタル／アナログ変換手段に出力する時分割多重出力手段をさらに備える。
この構成によれば、複数の論理サウンドチャンネルのミキシングを加算器によって行わず、時分割多重化によって実現している。従って、このミキシングための加算器が不要になるばかりか、デジタル／アナログ変換手段の解像度（ビット数）を抑制でき、コスト低減を図ることができる。
このサウンドプロセッサにおいて、前記時分割多重出力手段は、前記エフェクトチャンネルによって再生されたウェーブデータを、当該エフェクトチャンネルに割り当てられた時間に出力するとともに、後続する他の前記論理サウンドチャンネルに割り当てられた時間に、前記他の論理サウンドチャンネルのウェーブデータの代わりに出力する。
この構成によれば、時分割出力において、エフェクトチャンネル以外の他の論理サウンドチャンネルの出力時間に、エフェクトチャンネルによって再生されたウェーブデータを割り当てることができるので、簡単な回路で本来設定可能な上限を超えた音量を音響効果が付与されたウェーブデータに与えることが可能になる。
本発明の第２の観点によると、サウンドシステムは、複数の論理サウンドチャンネルによって再生されたウェーブデータをミキシングして単数又は複数の物理サウンドチャンネルから出力するサウンドプロセッサと、外部から入力されたアナログ音声信号をデジタル音声信号に変換するアナログ／デジタル変換ユニットと、プログラムに従って演算処理を実行する演算処理ユニットと、を備え、前記サウンドプロセッサは、前記論理サウンドチャンネルの各々に、音響効果を付与する対象のウェーブデータが割り当てられるエフェクト原音チャンネル、第１の所定の音響効果が付与されたウェーブデータが割り当てられる第１エフェクトチャンネル、第２の所定の音響効果が付与されたウェーブデータが割り当てられる第２エフェクトチャンネル、及び、音響効果が付与されないウェーブデータが割り当てられる非エフェクトチャンネルといった４つの属性の内の１つを設定するチャンネル設定手段と、１以上の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合、前記エフェクト原音チャンネルによって再生されたウェーブデータを第１バッファに格納し、格納してから第１の所定時間後に取り出して再生し、前記第１エフェクトチャンネルに割り当てる第１の音響効果付与手段と、を含み、前記チャンネル設定手段は、前記４つの属性の内のいずれの属性でも前記論理サウンドチャンネルに任意に設定でき、前記演算処理ユニットは、前記アナログ／デジタル変換ユニットによって得られた前記デジタル音声信号を第２バッファに格納し、前記サウンドプロセッサは、前記演算処理ユニットが前記第２バッファに格納した前記デジタル音声信号を、前記第２バッファに格納されてから第２の所定時間後に取り出して再生し、前記第２エフェクトチャンネルに割り当てる第２の音響効果付与手段をさらに含む。
この構成によれば、エフェクト原音チャンネルを任意の論理サウンドチャンネルに設定できるため、複数の論理サウンドチャンネルで再生されているウェーブデータのうち、任意の論理サウンドチャンネルで再生されているウェーブデータ（原音）に音響効果（例えば、エコー／リバーブ等）を施すことが可能となる。また、複数の論理サウンドチャンネルは等価であり、第１のエフェクトチャンネル及び第２のエフェクトチャンネルを任意の論理サウンドチャンネルに設定できるため、音響効果が付与されたウェーブデータを任意の論理サウンドチャンネルで再生できる。さらに、音響効果の付与が不要な場合には、全ての論理サウンドチャンネルを非エフェクトチャンネルに設定して、音響効果なしのウェーブデータの再生のために割り当てることが可能である。
また、外部から入力されたアナログ音声信号に対しても、デジタル音声信号に変換後に、音響効果を付与して、再生可能である。この場合、音響効果を付与するための一部の処理を演算処理ユニット（つまり、ソフトウェア）が行うので、音響効果を付与する構成を任意に構築できる。
このサウンドシステムにおいて、前記第１の音響効果付与手段は、前記第１バッファに格納してから前記第１の所定時間後に取り出して再生したウェーブデータに対して、第１の所定の率で振幅変調を施す振幅変調手段と、前記第１の所定時間後の再生のための前記第１バッファからのウェーブデータの読出し位置から第１の所定の距離変位された位置に格納されているウェーブデータに、前記第１の所定の率で振幅変調が施されたウェーブデータを加算する加算手段と、を含み、前記演算処理手段は、前記第２バッファに格納してから前記第２の所定時間後に取り出して再生したウェーブデータに対して、第２の所定の率で振幅変調を施し、そのウェーブデータを、前記第２の所定時間後の再生のための前記第２バッファからのウェーブデータの読出し位置から第２の所定の距離変位された位置に格納されているウェーブデータに加算する。
この構成によれば、簡易にリバーブ機能を実現できる。
上記サウンドシステムにおいて、前記サウンドプロセッサは、デジタル信号をアナログ信号に変換するデジタル／アナログ変換手段をさらに含み、前記論理サウンドチャンネルによって処理されるウェーブデータは、ＰＣＭデータであり、前記デジタル／アナログ変換手段は、前記ＰＣＭデータをアナログ信号に変換し、前記サウンドプロセッサは、前記複数の論理サウンドチャンネルによって再生されたウェーブデータを時分割多重化して、前記デジタル／アナログ変換手段に出力する時分割多重出力手段をさらに含み、前記時分割多重出力手段は、前記第１エフェクトチャンネルによって再生されたウェーブデータを、当該第１エフェクトチャンネルに割り当てられた時間に出力するとともに、後続する他の前記論理サウンドチャンネルに割り当てられた時間に、前記他の論理サウンドチャンネルのウェーブデータの代わりに出力し、かつ、前記第２エフェクトチャンネルによって再生されたウェーブデータを、当該第２エフェクトチャンネルに割り当てられた時間に出力するとともに、後続する他の前記論理サウンドチャンネルに割り当てられた時間に、前記他の論理サウンドチャンネルのウェーブデータの代わりに出力する。
この構成によれば、時分割出力において、第１エフェクトチャンネル及び第２エフェクトチャンネル以外の他の論理サウンドチャンネルの出力時間に、第１エフェクトチャンネルによって再生されたウェーブデータ及び第２エフェクトチャンネルによって再生されたウェーブデータを割り当てることができるので、簡単な回路で本来設定可能な上限を超えた音量を音響効果が付与されたウェーブデータに与えることが可能になる。
【図面の簡単な説明】
【０００４】
本発明の新規な特徴は、特許請求の範囲に記載されている。しかしながら、発明そのもの及びその他の特徴と効果は、添付図面を参照して具体的な実施例の詳細な説明を読むことにより容易に理解される。
図１は、本発明の実施の形態におけるマルチメディアプロセッサ１の内部構成を示すブロック図である。
図２は、一般的なエコーモデルの説明図である。
図３は、本発明の実施の形態におけるエコーモデルの説明図である。
図４は、本発明の実施の形態におけるエコー機能の概念図である。
図５は、本発明の実施の形態におけるマイクエコー機能の概念図である。
図６は、本発明の実施の形態における論理サウンドチャンネル及び物理サウンドチャンネルの概念図である。
図７は、図１のＳＰＵ１３の内部構成を示すブロック図である。
図８は、図７のデータ処理ブロック３５による時分割多重化の説明図である。
図９は、図１のメインＲＡＭ２５に構成されるエコーＦＩＦＯバッファ及びマイクエコーＦＩＦＯバッファの説明図である。
図１０は、図７のエコー機能ブロック５５の内部構成を示すブロック図である。
図１１は、図７のマイクエコー機能ブロック５７の内部構成を示すブロック図である。
図１２は、本発明の実施の形態におけるエコー成分たるウェーブデータ及びマイクエコー成分たるウェーブデータの継続出力の例示図である。
【発明を実施するための最良の形態】
【０００５】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。「０ｂ」は２進数を、「０ｘ」は１６進数を意味する。
図１は、本発明の実施の形態によるマルチメディアプロセッサ１の内部構成を示すブロック図である。図１に示すように、このマルチメディアプロセッサ１は、外部メモリインタフェース３、ＤＭＡＣ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌｌｅｒ）４、中央演算処理装置（以下、「ＣＰＵ」と呼ぶ。）５、ＣＰＵローカルＲＡＭ７、レンダリングプロセッシングユニット（以下、「ＲＰＵ」と呼ぶ。）９、カラーパレットＲＡＭ１１、サウンドプロセシングユニット（以下、「ＳＰＵ」と呼ぶ。）１３、ＳＰＵローカルＲＡＭ１５、ジオメトリエンジン（以下、「ＧＥ」と呼ぶ。）１７、Ｙソーティングユニット（以下、「ＹＳＵ」と呼ぶ。）１９、外部インタフェースブロック２１、メインＲＡＭアクセスアービタ２３、メインＲＡＭ２５、Ｉ／Ｏバス２７、ビデオＤＡＣ（ｄｉｇｉｔａｌ  ｔｏ  ａｎａｌｏｇ  ｃｏｎｖｅｒｔｅｒ）２９、オーディオＤＡＣブロック３１、及びＡ／Ｄコンバータ（以下、「ＡＤＣ」と呼ぶ。）３３を具備する。メインＲＡＭ２５及び外部メモリ５０を区別して説明する必要がないときは、「メモリＭＥＭ」と表記する。
ＣＰＵ５は、メモリＭＥＭに格納されたプログラムを実行して、各種演算やシステム全体の制御を行う。また、ＣＰＵ５は、ＤＭＡＣ４にプログラム及びデータの転送要求を行うこともできるし、ＤＭＡＣ４を介さずに、外部メモリ５０から直接プログラムコードをフェッチし、外部メモリ５０に直接データアクセスを行うこともできる。
Ｉ／Ｏバス２７は、ＣＰＵ５をバスマスタとするシステム制御用のバスであり、バススレイブである各機能ユニット（外部メモリインタフェース３、ＤＭＡＣ４、ＲＰＵ９、ＳＰＵ１３、ＧＥ１７、ＹＳＵ１９、外部インタフェースブロック２１、及びＡＤＣ３３）の制御レジスタ及びローカルＲＡＭ７，１１，１５へのアクセスに用いられる。このようにして、これらの機能ユニットは、Ｉ／Ｏバス２７を通じて、ＣＰＵ５により制御される。
ＣＰＵローカルＲＡＭ７は、ＣＰＵ５専用のＲＡＭであり、サブルーチンコールや割り込み時におけるデータの退避などを行うためのスタック領域、及びＣＰＵ５のみが扱う変数の格納領域等として使用される。
ＲＰＵ９は、ポリゴン及びスプライトから構成される三次元イメージをリアルタイムに生成する。具体的には、ＲＰＵ９は、ＹＳＵ１９によるソート済みの、ポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、メインＲＡＭ２５から読み出し、所定の処理を実行して、スクリーン（表示画面）のスキャンに合わせて水平ラインごとにイメージを生成する。生成されたイメージは、コンポジットビデオ信号波形を示すデータストリームに変換され、ビデオＤＡＣ２９に出力される。また、ＲＰＵ９は、ＤＭＡＣ４に対して、ポリゴン及びスプライトのテクスチャパターンデータの取り込みのためのＤＭＡ転送要求を行う機能を有する。
テクスチャパターンデータとは、ポリゴンまたはスプライトに貼り付けられる２次元の画素配列データであり、各画素データは、カラーパレットＲＡＭ１１のエントリを指定するための情報の一部である。以降、テクスチャパターンデータの画素を「テクセル」と呼称し、スクリーンに表示されるイメージを構成する画素を指す「ピクセル」とは区別して使用する。従って、テクスチャパターンデータは、テクセルデータの集合である。
ポリゴン構造体配列は、多角形状のグラフィック要素であるポリゴンのための構造体配列であり、スプライト構造体配列は、スクリーンに平行な矩形のグラフィック要素であるスプライトのための構造体配列である。ポリゴン構造体配列の要素を、「ポリゴン構造体インスタンス」と呼び、スプライト構造体配列の要素を、「スプライト構造体インスタンス」と呼ぶ。ただし、両者を区別して説明する必要がないときは、単に「構造体インスタンス」と呼ぶこともある。
ポリゴン構造体配列に格納された各ポリゴン構造体インスタンスは、ポリゴンごとの表示情報（スクリーンにおける頂点座標、テクスチャマッピングモードでのテクスチャパターンに関する情報及びグーローシェーディングモードでのカラーデータ（ＲＧＢのカラーコンポーネント）を含む。）であり、１つのポリゴン構造体インスタンスに１つのポリゴンが対応している。スプライト構造体配列に格納された各スプライト構造体インスタンスは、スプライトごとの表示情報（スクリーンにおける座標及びテクスチャパターンに関する情報を含む。）であり、１つのスプライト構造体インスタンスに１つのスプライトが対応している。
ビデオＤＡＣ２９は、アナログのビデオ信号を生成するためのデジタル／アナログ変換器である。ビデオＤＡＣ２９は、ＲＰＵ９から入力されたデータストリームをアナログのコンポジットビデオ信号に変換し、ビデオ信号出力端子（図示せず）からテレビジョンモニタ等（図示せず）に出力する。
カラーパレットＲＡＭ１１は、本実施の形態では５１２色すなわち５１２エントリのカラーパレットからなる。ＲＰＵ９は、テクスチャパターンデータに含まれるテクセルデータをカラーパレットのエントリを指定するインデックスの一部として、カラーパレットＲＡＭ１１を参照し、テクスチャパターンデータを、カラーデータ（ＲＧＢのカラーコンポーネント）に変換する。
本発明の特徴の１つであるＳＰＵ１３は、ＰＣＭ（ｐｕｌｓｅ  ｃｏｄｅ  ｍｏｄｕｌａｔｉｏｎ）波形データ（以下、「ウェーブデータ」と呼ぶ。）、アンプリチュードデータ、及びメインボリュームデータを生成する。具体的には、ＳＰＵ１３は、最大６４チャンネル分のウェーブデータを生成して時分割多重化するとともに、最大６４チャンネル分のエンベロープデータを生成してチャンネルボリュームデータと乗算し、アンプリチュードデータを時分割多重化する。そして、ＳＰＵ１３は、メインボリュームデータ、時分割多重化されたウェーブデータ、及び時分割多重化されたアンプリチュードデータを、オーディオＤＡＣブロック３１に出力する。また、ＳＰＵ１３は、ＤＭＡＣ４に対して、ウェーブデータ及びエンベロープデータの取り込みのためのＤＭＡ転送要求を行う機能を有する。ＳＰＵ１３の詳細は後述する。
本発明の特徴の１つであるオーディオＤＡＣブロック３１は、ＳＰＵ１３から入力されたウェーブデータ、アンプリチュードデータ、及びメインボリュームデータをそれぞれアナログ信号に変換し、結果をアナログ乗算して、アナログオーディオ信号を生成する。このアナログオーディオ信号は、オーディオ信号出力端子（図示せず）からテレビジョンモニタ等（図示せず）のオーディオ入力端子（図示せず）に出力される。
ＳＰＵローカルＲＡＭ１５は、ＳＰＵ１３がウェーブ再生及びエンベロープ生成を行う際に用いるパラメータ（例えば、ウェーブデータやエンベロープデータの格納アドレスやピッチ情報など）を格納する。
ＧＥ１７は、三次元イメージを表示するための幾何演算を実行する。具体的には、ＧＥ１７は、行列積、ベクトルアフィン変換、ベクトル直交変換、透視投影変換、頂点明度／ポリゴン明度計算（ベクトル内積）、及びポリゴン裏面カリング処理（ベクトル外積）などの演算を実行する。
ＹＳＵ１９は、メインＲＡＭ２５に格納されているポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、ソートルール１〜４に従ってソートする。この場合、ポリゴン構造体配列とスプライト構造体配列とで、別個にソートが行われる。
以下、ＹＳＵ１９によるソートルール１〜４について説明するが、その前に座標系について説明する。テレビジョンモニタ等のディスプレイ装置（図示せず）への実際の表示に用いられる二次元座標系をスクリーン座標系と呼ぶ。本実施の形態では、スクリーン座標系は、水平方向２０４８ピクセル×垂直方向１０２４ピクセルの２次元ピクセル配列から構成される。座標原点は左上にあり、右方向がＸ軸の正、下方向がＹ軸の正に相当する。ただし、実際に表示される領域は、スクリーン座標系の全空間ではなく一部の空間である。この表示領域をスクリーンと呼ぶことにする。ソートルール１〜４におけるＹ座標はスクリーン座標系の値である。
ソートルール１は、最小Ｙ座標が小さい順に、各ポリゴン構造体インスタンスを並べ替えることである。最小Ｙ座標とは、ポリゴンの全頂点のＹ座標のうち、最も小さいＹ座標のことである。ソートルール２は、最小Ｙ座標が同じである複数のポリゴンについては、デプス値が大きい順に、各ポリゴン構造体インスタンスを並べることである。なお、デプス値が大きいほど奥に描画される。
ただし、ＹＳＵ１９は、スクリーンの先頭ラインに表示されるピクセルを持つ複数のポリゴンについては、最小Ｙ座標が異なっている場合でも、それらが同一であるとみなして、ソートルール１ではなく、ソートルール２に従って、各ポリゴン構造体インスタンスの並べ替えを行う。つまり、スクリーンの先頭ラインに表示されるピクセルを持つポリゴンが複数存在する場合は、最小Ｙ座標が同一であるとみなして、デプス値が大きい順に並べ替えられる。これがソートルール３である。
インタレーススキャンの場合でも、ソートルール１〜３が適用される。ただし、奇数フィールドを表示するためのソートでは、奇数ラインに表示されるポリゴンの最小Ｙ座標及び／又はその奇数ラインの１つ前の偶数ラインに表示されるポリゴンの最小Ｙ座標が同一であるとみなして、ソートルール２によるソートを行う。ただし、先頭の奇数ラインは除く。なぜなら、その１つ前の偶数ラインが存在しないからである。一方、偶数フィールドを表示するためのソートでは、偶数ラインに表示されるポリゴンの最小Ｙ座標及び／又はその偶数ラインの１つ前の奇数ラインに表示されるポリゴンの最小Ｙ座標が同一であるとみなして、ソートルール２によるソートを行う。これがソートルール４である。
スプライトに関するソートルール１〜４は、それぞれポリゴンに関するソートルール１〜４と同様である。
外部メモリインタフェース３は、外部バス５１を介して、外部メモリ５０からのデータの読み出し、及び外部メモリ５０へのデータの書き込みを司る。この場合、外部メモリインタフェース３は、図示しないＥＢＩ優先順位テーブルに従って、ＣＰＵ５及びＤＭＡＣ４からの外部バスアクセス要求要因（外部バス５１へのアクセスを要求する要因）を調停して、いずれか１つの外部バスアクセス要求要因を選択する。そして、選択した外部バスアクセス要求要因に対して外部バス５１へのアクセスを許可する。ＥＢＩ優先順位テーブルは、ＣＰＵ５からの複数種類の外部バスアクセス要求要因及びＤＭＡＣ４からの外部バスアクセス要求要因の優先順位を定めたテーブルである。
外部バスアクセス要求要因として、ＣＰＵに含まれる図示しないＩＰＬ（ｉｎｉｔｉａｌ  ｐｒｏｇｒａｍ  ｌｏａｄｅｒ）によるブロック転送要求、ＣＰＵ５によるデータアクセス要求、ＣＰＵ５による命令フェッチ要求、及びＤＭＡＣ４によるＤＭＡ要求がある。
ＤＭＡＣ４は、メインＲＡＭ２５と、外部バス５１に接続された外部メモリ５０と、の間でＤＭＡ転送を行う。この場合、ＤＭＡＣ４は、図示しないＤＭＡ優先順位テーブルに従って、ＣＰＵ５、ＲＰＵ９、及びＳＰＵ１３からのＤＭＡ転送要求要因（ＤＭＡ転送を要求する要因）を調停して、いずれか１つのＤＭＡ転送要求要因を選択する。そして、外部メモリインタフェース３に対して、ＤＭＡ要求を行う。ＤＭＡ優先順位テーブルは、ＣＰＵ５、ＲＰＵ９、及びＳＰＵ１３からのＤＭＡ要求要因の優先順位を定めたテーブルである。
ＳＰＵ１３のＤＭＡ要求要因として、（１）ウェーブデータをウェーブバッファに転送すること、（２）エンベロープデータをエンベロープバッファに転送すること、がある。ウェーブバッファ及びエンベロープバッファは、それぞれメインＲＡＭ２５上に設定されるウェーブデータ及びエンベロープデータのテンポラリ格納領域である。なお、ＳＰＵ１３の２つのＤＭＡ要求要因間の調停は、ＳＰＵ１３内のハードウェア（図示せず）で行われ、ＤＭＡＣ４は関知しない。
ＲＰＵ９のＤＭＡ要求要因として、テクスチャパターンデータをテクスチャバッファに転送すること、がある。テクスチャバッファは、メインＲＡＭ２５上に設定されるテクスチャパターンデータのテンポラリ格納領域である。
ＣＰＵ５のＤＭＡ要求要因として、（１）仮想記憶管理においてページミスが発生した場合のページ転送、（２）アプリケーションプログラム等が要求するデータ転送、がある。なお、ＣＰＵ５内で複数のＤＭＡ転送要求が同時に発生した場合は、その調停はＣＰＵ５で実行されるソフトウェアにて行われ、ＤＭＡＣ４は関知しない。
外部インタフェースブロック２１は、周辺装置５４とのインタフェースであり、２４チャンネルのプログラマブルなデジタル入出力（Ｉ／Ｏ）ポートを含む。２４チャンネルのＩ／Ｏポートの各々は、４チャンネル分のマウスインタフェース機能、４チャンネル分のライトガンインタフェース機能、２チャンネル分の汎用タイマ／カウンタ、１チャンネル分の調歩同期式シリアルインタフェース機能、１チャンネル分の汎用パラレル／シリアル変換ポート機能のうち１または複数に内部接続されている。
ＡＤＣ３３は、４チャンネルのアナログ入力ポートに接続され、これらを介して、アナログ入力装置５２から入力されたアナログ信号をデジタル信号に変換する。例えば、マイク音声等のアナログ入力信号をサンプリングしてデジタルデータに変換する。
メインＲＡＭアクセスアービタ２３は、機能ユニット（ＣＰＵ５、ＲＰＵ９、ＧＥ１７、ＹＳＵ１９、ＤＭＡＣ４、及び外部インタフェースブロック２１（汎用パラレル／シリアル変換ポート））からのメインＲＡＭ２５へのアクセス要求を調停して、いずれかの機能ユニットにアクセス許可を出す。
メインＲＡＭ２５は、ＣＰＵ５のワーク領域、変数格納領域、および仮想記憶管理領域等として利用される。また、メインＲＡＭ２５は、ＣＰＵ５が他の機能ユニットに受け渡すデータの格納領域、ＲＰＵ９及びＳＰＵ１３が外部メモリ５０からＤＭＡによって取得したデータの格納領域、ＧＥ１７及びＹＳＵ１９の入力データ及び出力データの格納領域等としても使用される。
外部バス５１は、外部メモリ５０にアクセスするためのバスである。ＣＰＵ５およびＤＭＡＣ４から、外部メモリインタフェース３を介してアクセスされる。外部バス５１のアドレスバスは、３０ビットから成り、最大で１Ｇバイト（＝８Ｇビット）の外部メモリ５０を接続することができる。外部バス５１のデータバスは、１６ビットから成り、８ビット又は１６ビットのデータバス幅を持つ外部メモリ５０を接続できる。異なるデータバス幅を持つ外部メモリを同時に接続可能であり、アクセスする外部メモリによってデータバス幅を自動的に切り替える機能が備えられる。
以下、ＳＰＵ１３の機能について詳細に説明していく。まず、使用する用語について説明する。一般的に、エコーとは、ある音が壁や天井などに反射する場合に発生する、明確に原音が判別可能な反射音を指し、リバーブとは、個々の音の判別ができない残響音のことを指す。
図２は、一般的なエコーモデルの説明図である。図２には、音楽ホール等におけるエコー及びリバーブの一般的なモデルが示されている。このモデルにおいて、初期遅延時間は、音源と反射壁との距離によって決まる。初期反射音は、一般的にエコーと呼ばれるものであり、原音が遅延・減衰して聞こえる音である。音色は聴感上ほぼ原音に近い音として聞こえる。初期反射音の大きさと音色は、反射壁の大きさや材質によって変化する。残響音は、一般的にリバーブと呼ばれるものであり、原音や反射音が天井，床，客席，観客といった様々な物体に反射して聞こえる音である。通常、残響音だけを聞いても原音がどのような音であるかの判別はできない。残響音の大きさ，音色，持続時間は、ホールの容積，形状，材質等の様々な要素によって変化する。
このようなモデルをリアルタイムで完全にシミュレートするためには、非常に複雑な演算を高速に処理する必要があるため、本実施の形態では、簡易なモデルで擬似的にエコー及びリバーブを再現する。本実施の形態では、エコーとリバーブとを統一的に扱う音声遅延モデルを提供する。このモデルを実現する機能を「エコー機能」と呼ぶことにする。
図３は、本発明の実施の形態におけるエコーモデルの説明図である。このモデルにおいて、エコー遅延時間は、メインＲＡＭ２５上に構成されるエコーＦＩＦＯバッファによって作り出される。つまり、エコーソースに指定された（つまり、エコー機能によって音響効果を付与する対象となるウェーブデータが割り当てられる）論理サウンドチャンネルによって再生されたウェーブデータの総和がエコーＦＩＦＯバッファに順次格納され、格納されたウェーブデータ（総和）を一定時間経過後に取り出して再生することにより、遅延を発生させる。
ここで、エコーソースに指定された論理サウンドチャンネルを「エフェクト原音チャンネル」、エコー成分としてのウェーブデータ（つまり、エコー機能により音響効果が付与されたウェーブデータ）が割り当てられる論理サウンドチャンネルを「エフェクトチャンネル」、通常の音成分としてのウェーブデータ（つまり、エコー機能により音響効果が付与されないウェーブデータ）が割り当てられる論理サウンドチャンネルを「非エフェクトチャンネル」と呼ぶこともある。
ここで、物理線に対応するサウンドチャンネルを物理サウンドチャンネルと呼び、物理サウンドチャンネルに出力するウェーブデータを再生するサウンドチャンネルである論理サウンドチャンネルとは明確に区別する。
以下では、単に「サウンドチャンネル」と言う場合は、論理サウンドチャンネルを意味する。また、本実施の形態では、左右２つの物理サウンドチャンネルを設定している。従って、左音声信号（左ウェーブデータ）を再生する物理サウンドチャンネルを「左チャンネル」、右音声信号（右ウェーブデータ）を再生する物理サウンドチャンネルを「右チャンネル」と呼ぶ。
さて、リバーブ遅延時間もまた、メインＲＡＭ２５上に構成されるエコーＦＩＦＯバッファによって作り出される。但し、リバーブ遅延時間を経て再生されるウェーブデータは、リバーブを再現するために、減衰しながら繰り返し再生される。つまり、エフェクトチャンネルによって再生されたウェーブデータとエコーリリースレートＥＲとを乗算し、乗算結果をエコーＦＩＦＯバッファに格納されているウェーブデータに加算することで、図のような波形を生成する。
エフェクトチャンネルによって再生されたウェーブデータに基づく音のレベルを「Ｅｎ」、その後リバーブ遅延時間を経てエフェクトチャンネルによって再生するウェーブデータに基づく音のレベルを「Ｅ（ｎ＋１）」とすると、エコーリリースレートＥＲは、次式で表される。
ＥＲ＝Ｅ（ｎ＋１）／Ｅ（ｎ）
なお、本実施の形態では、エコー機能及び後述のマイクエコー機能を使用しない場合は、６４のサウンドチャンネルを再生可能であるが、エコー機能あるいはマイクエコー機能を用いる場合は、再生可能なサウンドチャンネルの数は４８以下に制限される。従って、４８のサウンドチャンネルの中からエコー成分を再生するための１つのエフェクトチャンネルを設定する必要がある。
本実施の形態では、ＡＤＣ３３から入力された音声データに対するエコー及びリバーブについてもハードウェアでサポートしている。この機能をマイクエコー機能と呼ぶことにする。マイクエコー機能も、エコー機能と同様に、メインＲＡＭ２５上に、遅延のためのマイクエコーＦＩＦＯバッファを構成する。但し、リバーブのために必要とされる演算は、ＣＰＵ５が行う。
なお、本実施の形態では、マイクエコー機能を用いる場合は、再生可能なサウンドチャンネルの数は４８以下に制限されるので、４８のサウンドチャンネルの中からマイクエコー成分を再生するための１つのエフェクトチャンネルを設定する必要がある。もちろん、エコー機能及びマイクエコー機能の双方を使用することもできるので、この場合は、それぞれに対して、エフェクトチャンネルを設定する。
図４は、本発明の実施の形態におけるエコー機能の概念図である。図４を参照して、エコー機能は、エコーブロックＥＢ０〜ＥＢ（Ｎ−１）、加算器Ａｐ、ファネルシフタ／飽和処理回路ＦＳ、エコーＦＩＦＯバッファＢａ，Ｂｂ、加算器Ａｌ、及び乗算器Ｍｌを含む。エコーブロックＥＢ０〜ＥＢ（Ｎ−１）の各々は、乗算器Ｍｐ及びスイッチＳＷを含む。また、エコーブロックＥＢ０〜ＥＢ（Ｎ−１）は、対応するサウンドチャンネル＃０〜（Ｎ−１）のアンプリチュード左右平均値算出部ＡＭ０〜ＡＭ（Ｎ−１）を含む。そして、サウンドチャンネル＃０〜（Ｎ−１）のウェーブデータＷ０〜Ｗ（Ｎ−１）、左アンプリチュードデータＡＭＬ０〜ＡＭＬ（Ｎ−１）、及び右アンプリチュードデータＡＭＲ０〜ＡＭＲ（Ｎ−１）が、対応するエコーブロックＥＢ０〜ＥＢ（Ｎ−１）に入力される。
左アンプリチュードデータＡＬ０〜ＡＬ（Ｎ−１）と右アンプリチュードデータＡＲ０〜ＡＲ（Ｎ−１）の平均値が、アンプリチュード左右平均値算出部ＡＭ０〜ＡＭ（Ｎ−１）によって算出され、アンプリチュード左右平均値ＡＬＲ０〜ＡＬＲ（Ｎ−１）としてエコーブロックＥＢ０〜ＥＢ（Ｎ−１）内で生成される。「Ｎ」は整数であり、１から４８までの値をとることができる。
ここで、サウンドチャンネル＃０〜＃（Ｎ−１）、エコーブロックＥＢ０〜ＥＢ（Ｎ−１）、並びに、サウンドチャンネル＃０〜＃（Ｎ−１）のウェーブデータＷ０〜Ｗ（Ｎ−１）及びアンプリチュード左右平均値ＡＬＲ０〜ＡＬＲ（Ｎ−１）を、包括的に表現するときは、それぞれ、サウンドチャンネル＃ｎ、エコーブロックＥＢｎ、並びに、サウンドチャンネル＃ｎのウェーブデータＷｎ及びアンプリチュード左右平均値ＡＬＲｎと表記する。
さて、サウンドチャンネル＃０〜＃（Ｎ−１）のうちの任意のサウンドチャンネルをエフェクト原音チャンネルに設定できる。つまり、サウンドチャンネル＃ｎのエコーブロックＥＢｎのスイッチＳＷをオンにすることにより、当該サウンドチャンネル＃ｎがエフェクト原音チャンネルに設定される。
エコーソースとなるウェーブデータは、エフェクト原音チャンネルに設定されたサウンドチャンネル＃ｎのウェーブデータＷｎとアンプリチュードの左右平均値ＡＬＲｎとの乗算結果ＥＭｎである。つまり、エフェクト原音チャンネルに設定されたサウンドチャンネル＃ｎのウェーブデータＷｎとアンプリチュード左右平均値ＡＬＲｎとが、エコーブロックＥＢｎの乗算器Ｍｐによって乗算され、乗算結果ＥＭｎが得られる。
エコーブロックＥＢｎのスイッチＳＷは、サウンドチャンネル＃ｎがエフェクト原音チャンネルに設定されている場合にオンするため、サウンドチャンネル＃ｎ毎に算出された乗算結果ＥＭｎは、エフェクト原音チャンネルに設定されたサウンドチャンネル＃ｎに限って、加算器Ａｐによって互いに加算され、総和σが算出される。これを数式で表すと、下記のようになる。
【数１】
2007046311.tif 000003
（数１）において、「ＡＭＬｎ」はサウンドチャンネル＃ｎの左アンプリチュードデータ、「ＡＭＲｎ」はサウンドチャンネル＃ｎの右アンプリチュードデータである。エフェクト原音チャンネルに設定されていないサウンドチャンネル＃ｎについては、常に、Ｗｎ＝０とする。
総和σは、２２ビットの値として得られる。ファネルシフタ／飽和処理回路ＦＳのファネルシフタは、エコーシグマウィンドウ値に従って、総和σの２２ビットのデータの中から連続した８ビットを抽出する。エフェクト原音チャンネルに設定されたサウンドチャンネル＃ｎの数、エコーソースのウェーブデータＷｎの振幅、並びにアンプリチュードデータＡＭＬｎ及びＡＭＲｎの振幅によって、総和σの結果が大きく異なるため、このファネルシフタは、値を正規化するために設けられている。
その結果、ファネルシフタ／飽和処理回路ＦＳは、８ビットのウェーブデータを後段に出力する。但し、総和σが、８ビットで表現可能な範囲を超えている場合、８ビットのウェーブデータは、８ビット中の最上位ビットである符号ビットの値に応じて、ファネルシフタ／飽和処理回路ＦＳの飽和処理回路により、所定値に飽和される。
ファネルシフタ／飽和処理回路ＦＳからの８ビットのウェーブデータは、メインＲＡＭ２５上に設けられたエコーＦＩＦＯバッファＢａに順次入力される。入力された値は、エコーＦＩＦＯバッファＢａ及びＢｂの全エントリを経過した後に、音響効果（エコー及びリバーブ）が付与されたウェーブデータとしてエフェクトチャンネルから出力される。
従って、エコー遅延時間Ｔｅｃｈｏ（図３参照）は、エコーＦＩＦＯバッファＢａのエントリ数Ｎａ及びエコーＦＩＦＯバッファＢｂのエントリ数Ｎｂと、エコーＦＩＦＯバッファＢａ及びＢｂにウェーブデータが入力される周波数ｆｅｃｈｏ（Ｈｚ）とから算出することができる。次式は、エコー遅延時間Ｔｅｃｈｏ（秒）の算出式である。
【数２】
2007046311.tif 000004
エコーＦＩＦＯバッファＢｂから出力された値は、エコー成分たるウェーブデータとしてエフェクトチャンネルから出力されるとともに、乗算器Ｍｌに出力されて、エコーリリースレートＥＲと乗算される。この乗算結果は、加算器Ａｌによって、エコーＦＩＦＯバッファＢａから出力されたウェーブデータに加算され、エコーＦＩＦＯバッファＢｂに書き込まれる。
リバーブ遅延時間Ｔｒｅｖｅｒｂ（図３参照）は、エコーＦＩＦＯバッファＢｂのエントリ数Ｎｂと、エコーＦＩＦＯバッファＢａ及びＢｂにウェーブデータが入力される周波数ｆｅｃｈｏ（Ｈｚ）とから算出できる。次式は、リバーブ遅延時間Ｔｒｅｖｅｒｂ（秒）の算出式である。
【数３】
2007046311.tif 000005
次に、マイクエコー機能について説明する。マルチメディアプロセッサ１では、マイク等の外部アナログ入力装置５２からのアナログ音声信号を、ＡＤＣ２５を用いてデジタルデータ列に変換することができる。このデジタルデータ列をマルチメディアプロセッサ１に適合する形式のＰＣＭウェーブデータに変換すると、サウンドチャンネルの一つとして変換後のＰＣＭウェーブデータを再生することができる。前述のエコー機能と同様に、このＰＣＭウェーブデータに遅延を発生させ、エコー及びリバーブの効果を実現することができる（マイクエコー機能）。
図５は、本発明の実施の形態におけるマイクエコー機能の概念図である。図５を参照して、マイクエコー機能は、ＡＤＣ２５、ＣＰＵ５、マイクエコーＦＩＦＯバッファＭＢａ，ＭＢｂ、加算器Ａｓ、及び乗算器Ｍｓを含む。
ＡＤＣ２５は、マイク等の外部アナログ入力装置５２からのアナログ音声信号を１０ビットのデジタルデータに変換する。この１０ビットのデジタルデータは符号無しの値であるため、ＣＰＵ５は、このデジタルデータを８ビットの符号付きの値（−１２７〜＋１２７の範囲）に変換して、マルチメディアプロセッサ１に適合する形式のＰＣＭウェーブデータとする。
１サンプルあたり８ビットのＰＣＭウェーブデータは、メインＲＡＭ２５上に設けられたマイクエコーＦＩＦＯバッファＭＢａに、ＣＰＵ５によって順次入力される。入力されたＰＣＭウェーブデータは、マイクエコーＦＩＦＯバッファＭＢａ及びＭＢｂの全エントリを経過した後に、音響効果（エコー及びリバーブ）が付与されたウェーブデータとして、エフェクトチャンネルから出力される。したがって、マイクエコー機能のエコー遅延時間は、エコー機能の場合と同様に（数１）により、マイクエコーＦＩＦＯバッファＭＢａ及びＭＢｂのエントリ数の総和と、マイクエコーＦＩＦＯバッファＭＢａ及びＭＢｂにウェーブデータが入力される周波数とから算出できる。
マイクエコーＦＩＦＯバッファＭＢｂから出力された値は、マイクエコー成分たるウェーブデータとしてエフェクトチャンネルから出力されるとともに、乗算器Ｍｓに出力されて、マイクエコーリリースレートと乗算される。この乗算結果は、加算器Ａｓによって、エコーＦＩＦＯバッファＭＢａから出力されたウェーブデータと加算され、マイクエコーＦＩＦＯバッファＭＢｂに書き込まれる。なお、マイクエコーリリースレートは、エコーリリースレートＥＲと同様のものである。
この場合、乗算器Ｍｓによる乗算と加算器Ａｓによる加算は、エコー機能の場合と異なりハードウェアではサポートされていないので、ＣＰＵ５（つまり、ソフトウェア）が行う。従って、ＣＰＵ５の処理内容を変更することにより、マイクエコー機能を実現するための構成内容を柔軟に変更できる。
マイクエコー機能のリバーブ遅延時間は、エコー機能の場合と同様に（数２）により、マイクエコーＦＩＦＯバッファＭＢｂのエントリ数と、マイクエコーＦＩＦＯバッファＭＢａ及びＭＢｂにウェーブデータが入力される周波数とから算出できる。
図６は、本発明の実施の形態における論理サウンドチャンネル及び物理サウンドチャンネルの概念図である。但し、この概念図は人間の聴覚に基づいて論理サウンドチャンネル及び物理サウンドチャンネルの構成を示す図であり、本発明の実施の形態における回路実装例とは必ずしも各部の構成が一致しない。図６を参照して、設定される論理サウンドチャンネル＃０〜＃（Ｋ−１）に対応して、デジタルブロックＤＩＢ０〜ＤＩＢ（Ｋ−１）が設けられる。「Ｋ」は整数であり、１から６４の値をとることができる。アナログブロックＡＮＢは、左チャンネル（物理サウンドチャンネル）に対応した、乗算器ＭＬ０〜ＭＬ（Ｋ−１）、加算器ＡＤＬ、及び乗算器ＭＬＯ、並びに、右チャンネル（物理サウンドチャンネル）に対応した、乗算器ＭＲ０〜ＭＲ（Ｋ−１）、加算器ＡＤＲ、及び乗算器ＭＲＯ、を含む。乗算器ＭＬ０〜ＭＬ（Ｋ−１）は、それぞれ、デジタルブロックＤＩＢ０〜ＤＩＢ（Ｋ−１）からの入力ＷＶＬ０〜ＷＶＬ（Ｋ−１）並びにＡＭＬ０〜ＡＭＬ（Ｋ−１）を受け、乗算器ＭＲ０〜ＭＲ（Ｋ−１）は、それぞれ、デジタルブロックＤＩＢ０〜ＤＩＢ（Ｋ−１）からの入力ＷＶＲ０〜ＷＶＲ（Ｋ−１）並びにＡＭＲ０〜ＡＭＲ（Ｋ−１）を受ける。
別の言い方をすれば、デジタルブロックＤＩＢ０〜ＤＩＢ（Ｋ−１）は、それぞれ、論理サウンドチャンネル＃０〜＃（Ｋ−１）の再生部に相当する。また、アナログブロックＡＮＢは、論理サウンドチャンネルから物理サウンドチャンネルへの変換部（左チャンネルへの変換部及び右チャンネルへの変換部）に相当する。また、アナログブロックＡＮＢから出力される音声出力信号ＡＵＬは、左チャンネル（物理サウンドチャンネル）に相当し、アナログブロックＡＮＢから出力される音声出力信号ＡＵＲは、右チャンネル（物理サウンドチャンネル）に相当する。
ここで、論理サウンドチャンネル＃０〜＃（Ｋ−１）を包括的に表現するときは、サウンドチャンネル＃ｋと表記し、デジタルブロックＤＩＢ０〜ＤＩＢ（Ｋ−１）を包括的に表現するときは、デジタルブロックＤＩＢｋと表記し、乗算器ＭＬ０〜ＭＬ（Ｋ−１）を包括的に表現するときは、乗算器ＭＬｋと表記し、乗算器ＭＲ０〜ＭＲ（Ｋ−１）を包括的に表現するときは、乗算器ＭＲｋと表記する。なお、エコー機能（マイクエコー機能）が使用される場合の論理サウンドチャンネル＃０〜＃（Ｎ−１）（Ｎ＝１〜４８）は、論理サウンドチャンネル＃０〜＃（Ｋ−１）（Ｋ＝１〜６４）のうちのｎ個である。
デジタルブロックＤＩＢｋは、対応する論理サウンドチャンネル＃ｋの再生処理を行う。デジタルブロックＤＩＢｋの各々は、スイッチＳＷｚ、ウェーブバッファＷＢＦｋ、エフェクトＦＩＦＯバッファＥＢＦ、スイッチＳＷｆ、補間フィルタＩＦ、スイッチＳＷｓ、エンベロープバッファＥＶＢＦｋ、スイッチＳＷｔ、および乗算器ＭＰ，ＭＰＬ，ＭＰＲを含む。ここで、前述のエコーＦＩＦＯバッファ及びマイクエコーＦＩＦＯバッファを包括して、エフェクトＦＩＦＯバッファＥＢＦと表記している。
ＰＣＭウェーブデータは、８ビット単位のデータストリームであり、通常、予め外部メモリ５０に格納される。論理サウンドチャンネル＃ｋの再生が開始されると、ＳＰＵ１３は、ＤＭＡＣ４にＰＣＭウェーブデータの取得要求を開始する。ＤＭＡＣ４は、ＳＰＵ１３からの要求に応じて、ＰＣＭウェーブデータを外部メモリ５０からメインＲＡＭ２５上に確保されたウェーブバッファＷＢＦｋへと転送する。このときは、スイッチＳＷｚはオンされている。
但し、ＳＰＵ１３は、ＣＰＵ５による圧縮ＰＣＭウェーブデータの解凍等が行われる場合、スイッチＳＷｚをオフにして、ＤＭＡＣ４によるＰＣＭウェーブデータの取得をディセーブルにする。この場合は、ＣＰＵ５が直接ウェーブバッファＷＢＦｋにＰＣＭウェーブデータを書き込む。
ＳＰＵ１３は、スイッチＳＷｆをウェーブバッファＷＢＦｋ側と短絡し、ウェーブバッファＷＢＦｋに格納されたＰＣＭウェーブデータをウェーブデータＷｋとして後段に送出する。
一方、論理サウンドチャンネル＃ｋがエコー成分を再生するエフェクトチャンネルに設定されている場合には、エコー成分たるＰＣＭウェーブデータは、ＳＰＵ１３によってエフェクトＦＩＦＯバッファＥＢＦ（エコーＦＩＦＯバッファ）に書き込まれる。この場合は、スイッチＳＷｆがエフェクトＦＩＦＯバッファＥＢＦ側と短絡されるため、このバッファＥＢＦから順次エコー成分たるＰＣＭウェーブデータがウェーブデータＷｋとして後段に送出される。
また、論理サウンドチャンネル＃ｋがマイクエコー成分を再生するエフェクトチャンネルに設定されている場合には、マイクエコー成分たるＰＣＭウェーブデータは、ＣＰＵ５によってエフェクトＦＩＦＯバッファＥＢＦ（マイクエコーＦＩＦＯバッファ）に書き込まれる。この場合は、スイッチＳＷｆがエフェクトＦＩＦＯバッファＥＢＦ側と短絡されるため、このバッファＥＢＦから順次マイクエコー成分たるＰＣＭウェーブデータが後段に送出される。
ＳＰＵ１３では、ウェーブバッファＷＢＦｋからの読み出し速度を変えることで、ピッチ変換が行われる。ピッチ変換に伴うエイリアスノイズの増加を防ぎ、滑らかな波形を再生するために、ＰＣＭウェーブデータの補間を行う補間フィルタＩＦが搭載される。補間を行うか否かの切り替えは、全論理サウンドチャンネル＃０〜＃（Ｋ−１）に対して一括して行われる。補間を行う場合は、スイッチＳＷ２が補間フィルタＩＦ側に短絡され、補間後のＰＣＭウェーブデータが後段に送出される。一方、補間を行わない場合は、スイッチＳＷｓがスイッチＳＷｆ側に直接短絡され、補間なしのＰＣＭウェーブデータが後段に送出される。
スイッチＳＷｓからのＰＣＭウェーブデータは、左チャンネルと右チャンネルと（左右の物理サウンドチャンネル）の両方の変換部に出力される。ここで、左チャンネルの変換部に出力されたＰＣＭウェーブデータを左ウェーブデータＷＶＬｋと表記し、右チャンネルの変換部に出力されたＰＣＭウェーブデータを右ウェーブデータＷＶＲｋと表記する。
さて、一方、エンベロープの各サンプルの生成方法は、シーケンシャルモードとリリースモードとで異なる。シーケンシャルモードでは、ＤＭＡＣ４がＳＰＵ１３からの要求に応じて外部メモリ５０からメインＲＡＭ２５上に確保されたエンベロープバッファＥＶＢＦｋにエンベロープデータ列を転送し、ＳＰＵ１３がエンベロープデータ列をデコードしてエンベロープサンプルＥＶＳｋを随時生成する。この場合、スイッチＳＷｔは、エンベロープサンプルＥＶＳｋ側に短絡されており、エンベロープサンプルＥＶＳｋが、エンベロープデータＥＶＤｋとして、後段に送出される。
一方、リリースモードでは、乗算器ＭＰによって、前回のエンベロープデータＥＶＤｋに、ＳＰＵローカルＲＡＭ１５に格納されたエンベロープリリースレートＥＶＲｋが掛け合わせられ、エンベロープサンプルが生成される。この場合は、スイッチＳＷｔが乗算器ＭＰ側に短絡され、乗算器ＭＰからのエンベロープサンプルが、エンベロープＥＶＤｋとして後段に送出される。
左チャンネルのゲインＧＬｋ及び右チャンネルのゲインＧＲｋは、論理サウンドチャンネル＃ｋ毎にＳＰＵローカルＲＡＭ１５に格納される。乗算器ＭＰＬは、エンベロープデータＥＶＤｋ（１６ビット）とゲインＧＬｋ（８ビット）とを乗算して、左チャンネルのアンプリチュードデータＡＭＬｋ（１６ビット）を生成する。乗算器ＭＰＲは、エンベロープデータＥＶＤｋ（１６ビット）とゲインＧＲｋ（８ビット）とを乗算して、右チャンネルのアンプリチュードデータＡＭＲｋ（１６ビット）を生成する。
さて、アナログブロックＡＮＢの乗算器ＭＬｋには、対応するデジタルブロックＤＩＢｋの左ウェーブデータＷＶＬｋと左アンプリチュードデータＡＭＬｋ（整数部８ビット）とが入力され、これらを乗算する。乗算器ＭＲｋには、対応するデジタルブロックＤＩＢｋの右ウェーブデータＷＶＲｋと右アンプリチュードデータＡＭＲｋ（整数部８ビット）とが入力され、これらを乗算する。
ウェーブデータＷＶＬｋとアンプリチュードデータＡＭＬｋとの乗算結果から得られる論理サウンドチャンネル＃ｋの左音声信号は、加算器ＡＤＬによって、再生中の他の全ての論理サウンドチャンネルの左音声信号と加算される。そして、乗算器ＭＬＯは、この加算結果に８ビットのメインボリュームデータＭＶを乗算し、最終的な左チャンネルの音声出力信号ＡＵＬを生成する。
ウェーブデータＷＶＲｋとアンプリチュードデータＡＭＲｋとの乗算結果から得られる論理サウンドチャンネル＃ｋの右音声信号は、加算器ＡＤＲによって、再生中の他の全ての論理サウンドチャンネルの右音声信号と加算される。そして、乗算器ＭＲＯは、この加算結果に８ビットのメインボリュームデータＭＶを乗算し、最終的な右チャンネルの音声出力信号ＡＵＲを生成する。
図７は、図１のＳＰＵ１３の内部構成を示すブロック図である。図７を参照して、ＳＰＵ１３は、データ処理ブロック３５、コマンド処理ステートマシン３７、制御レジスタセット３９、ＤＭＡリクエスタ４１、メインＲＡＭインタフェース４３、クロストーク低減回路４５、およびＳＰＵローカルＲＡＭインタフェース４７を含む。データ処理ブロック３５は、エコー機能ブロック５５およびマイクエコー機能ブロック５７を含む。
コマンド処理ステートマシン３７は、ＣＰＵ５がＩ／Ｏバス２７を通じて発行するコマンドに応じて、ＳＰＵ１３のコマンド実行における状態制御を行う。発行されるコマンドの種類は、「ＳＴＡＲＴ」、「ＳＴＯＰ」、「ＵＰＤＡＴＥ」、及び「ＮＯＰ」の４種類である。これらのコマンドは、コマンド処理ステートマシン３７のＳＰＵコマンドレジスタ３８に、対象となる論理サウンドチャンネルの番号ｋと共に書き込まれる。
コマンドＳＴＡＲＴは、指定された論理サウンドチャンネル＃ｋの再生を開始させる命令である。ＣＰＵ５は、このコマンドＳＴＡＲＴの発行前に、ＳＰＵローカルＲＡＭ１５に再生に必要なパラメータを予め書き込んでおく。コマンドＳＴＯＰは、指定された論理サウンドチャンネル＃ｋの再生を停止させる命令である。
コマンドＵＰＤＡＴＥは、論理サウンドチャンネル＃ｋの再生中に、再生に用いられるパラメータの一部を更新させる命令である。ＣＰＵ５は、このコマンドＵＰＤＡＴＥの発行前に、ＳＰＵ１３内の対応する制御レジスタ（次に説明する制御レジスタセット３９に含まれる。）に更新するパラメータを予め書き込んでおく。コマンドＮＯＰは、特に何の処理も行わせない命令である。
制御レジスタセット３９は、ＳＰＵコマンドレジスタ３８以外のＳＰＵ１３を制御するための複数の制御レジスタ（図示せず）を含む。
例えば、制御レジスタセット３９は、エコー機能設定レジスタ（図示せず）を含む。エコー機能設定レジスタには、非エフェクトチャンネルに設定（「００」）、エフェクト原音チャンネルに設定（「０１」）、エコー成分に対するエフェクトチャンネルに設定（「１０」）、マイクエコー成分に対するエフェクトチャンネルに設定（「１１」）、のうちのいずれかの値が設定される。コマンドＳＴＡＲＴが発行されると、対象となる論理サウンドチャンネルには、そのときのエコー機能設定レジスタの値に従った属性（非エフェクトチャンネル、エフェクト原音チャンネル、エコー成分に対するエフェクトチャンネル、あるいはマイクエコー成分に対するエフェクトチャンネルのいずれか）が設定される。従って、ＣＰＵ５がエコー機能設定レジスタにアクセスすることにより、各論理サウンドチャンネルに、いずれの属性でも設定できる。もちろん、いずれの論理サウンドチャンネルにもエコー成分に対するエフェクトチャンネル及び／又はマイクエコー成分に対するエフェクトチャンネルを設定しないこともできる。
ＤＭＡリクエスタ４１は、コマンド処理ステートマシン３７からの指示に従い、ウェーブデータ及びエンベロープデータを外部メモリ５０から取得するために、ＤＭＡＣ４に対してＤＭＡ転送要求を発行する。また、ＤＭＡ転送によって取得したデータをデータ処理ブロック３５に出力する。
データ処理ブロック３５は、ウェーブデータの取得及び再生、エンベロープデータの取得及びデコード、アンプリチュードデータの生成、エコー処理、並びに、マイクエコー処理を行う。
そして、データ処理ブロック３５は、左チャンネルに対する複数の論理サウンドチャンネル＃ｋのウェーブデータＷＶＬｋを時分割多重化し、左チャンネルウェーブデータＭＷＬとして、クロストーク低減回路４５に出力する。また、データ処理ブロック３５は、右チャンネルに対する複数の論理サウンドチャンネル＃ｋのウェーブデータＷＶＲｋを時分割多重化し、右チャンネルウェーブデータＭＷＲとして、クロストーク低減回路４５に出力する。
さらに、データ処理ブロック３５は、左チャンネルに対する複数の論理サウンドチャンネル＃ｋのアンプリチュードデータＡＭＬｋを時分割多重化し、左チャンネルアンプリチュードデータＭＡＭＬとして、クロストーク低減回路４５に出力する。また、データ処理ブロック３５は、右チャンネルに対する複数の論理サウンドチャンネル＃ｋのアンプリチュードデータＡＭＲｋを時分割多重化し、右チャンネルアンプリチュードデータＭＡＭＲとして、クロストーク低減回路４５に出力する。
このように、物理サウンドチャンネル毎に時分割多重化を行うことにより、物理サウンドチャンネル毎に複数の論理サウンドチャンネル＃ｋのウェーブデータのミキシング、および、物理サウンドチャンネル毎に複数の論理サウンドチャンネル＃ｋのアンプリチュードデータのミキシングを行う。これは、時分割多重化されてデジタル／アナログ変換された音声出力が、聴覚上ミキシングされて聞こえることを利用している。
図８は、図７のデータ処理ブロック３５による時分割多重化の説明図である。図８を参照して、時分割多重化（つまり、ミキシング）する論理サウンドチャンネル＃０〜＃（Ｋ−１）の総チャンネル数は、１から６４の間で、１チャンネル単位で設定可能である。つまり、多重チャンネル数Ｋの値は、１〜６４の任意の値に設定できる。
各論理サウンドチャンネル＃ｋのデータは、時分割多重化されるスロットにそれぞれ割り当てられる。Ｋチャンネルのミキシングが行われるのであれば、Ｋスロットから構成されるループが、継続的に出力される。
ここで、ＳＰＵローカルＲＡＭ１５には、複数の論理サウンドチャンネルに対応して複数の記憶領域が設けられる。各記憶領域には、対応する論理サウンドチャンネルの再生に必要なパラメータが格納される。従って、ＳＰＵローカルＲＡＭ１５に設けられている記憶領域の総数は６４であり、この内、多重チャンネル数Ｋ（＝再生する論理サウンドチャンネル数）に等しい数の記憶領域が用いられる。また、各記憶領域に格納されるパラメータには、ウェーブデータのアドレス情報も含まれ、これによって、論理サウンドチャンネルに割り当てるウェーブデータが設定される。
図７に戻って、メインＲＡＭインタフェース４３は、データ処理ブロック３５のメインＲＡＭ２５へのアクセスを仲介する。メインＲＡＭ２５へのアクセスは、（１）ＤＭＡ転送によって取得したウェーブデータ及びエンベロープデータのメインＲＡＭ２５への書き込み、（２）論理サウンドチャンネル＃ｋの再生のためのウェーブデータ及びエンベロープデータのメインＲＡＭ２５からの読み出し、（３）エコー処理及びマイクエコー処理のためのメインＲＡＭ２５へのエコー成分たるウェーブデータ及びマイクエコー成分たるウェーブデータの読み書き、において行われる。
ＳＰＵローカルＲＡＭインタフェース４７は、データ処理ブロック３５のＳＰＵローカルＲＡＭ１５へのアクセスを仲介する。ＳＰＵローカルＲＡＭ１５へのアクセスは、ウェーブデータ再生のためのパラメータ、並びに、エンベロープデータ及びアンプリチュードデータ生成のためのパラメータの読み書き、において行われる。また、ＳＰＵローカルＲＡＭインタフェース４７は、ＣＰＵ５がＩ／Ｏバス２７を通じてＳＰＵローカルＲＡＭ１５へアクセスする際の仲介も行う。
図１のオーディオＤＡＣブロック３１は、カスケード接続されたＤＡＣ（図示せず）を含む。上記のように、複数の論理サウンドチャンネル＃ｋのミキシングは、データを時分割多重化することによって行われるので、時分割多重化されたデータをそのままオーディオＤＡＣブロック３１に入力すると、カスケード接続されたＤＡＣ間における伝播遅延が、論理サウンドチャンネル＃ｋ間のクロストークを引き起こす可能性がある。
図７のクロストーク低減回路４５は、このような論理サウンドチャンネル＃ｋ間のクロストークの発生を防止する。このクロストーク低減回路４５は、各論理サウンドチャンネル＃ｋのデータをカスケード接続されたＤＡＣに出力する際に、論理サウンドチャンネル＃ｋ間に予め設定された長さの無音期間を挿入する。これにより、カスケード接続されたＤＡＣ間を、ある論理サウンドチャンネル＃ｋの信号が伝播する際に、前後の論理サウンドチャンネル＃ｋの信号と干渉が発生することを防止する。無音期間の長さは、ＣＰＵ５がＩ／Ｏバス２７を通じて、制御レジスタセット３９の対応する制御レジスタ（図示せず）に設定する。
詳細には、クロストーク低減回路４５は、左チャンネルウェーブデータＭＷＬの論理サウンドチャンネル＃ｋ間に無音期間を挿入して、左チャンネルウェーブデータＭＷＬＣとして、オーディオＤＡＣブロック３１に出力する。また、クロストーク低減回路４５は、右チャンネルウェーブデータＭＷＲの論理サウンドチャンネル＃ｋ間に無音期間を挿入して、右チャンネルウェーブデータＭＷＲＣとして、オーディオＤＡＣブロック３１に出力する。
さらに、クロストーク低減回路４５は、左チャンネルアンプリチュードデータＭＡＭＬの論理サウンドチャンネル＃ｋ間に無音期間を挿入して、左チャンネルアンプリチュードデータＭＡＬＣとして、オーディオＤＡＣブロック３１に出力する。また、クロストーク低減回路４５は、右チャンネルアンプリチュードデータＭＡＭＲの論理サウンドチャンネル＃ｋ間に無音期間を挿入して、右チャンネルアンプリチュードデータＭＡＲＣとして、オーディオＤＡＣブロック３１に出力する。
さらに、クロストーク低減回路４５は、制御レジスタセット３９の対応する制御レジスタ（図示せず）から入力されたメインボリュームデータＭＶを、そのままメインボリュームデータＭＶＣとして、オーディオＤＡＣブロック３１に出力する。
次に、エコー機能ブロック５５及びマイクエコー機能ブロック５７の詳細な説明をする前に、図４のエコーＦＩＦＯバッファＢａ，Ｂｂおよび図５のマイクエコーＦＩＦＯバッファＭＢａ，ＭＢｂについて詳細に説明する。
図９は、図１のメインＲＡＭ２５に構成されるエコーＦＩＦＯバッファ及びマイクエコーＦＩＦＯバッファの説明図である。図９を参照して、エコーＦＩＦＯバッファの領域は、メインＲＡＭ２５上に自由に設定することができる。エコーＦＩＦＯバッファの領域の始端及び終端は、それぞれ後述のエコーＦＩＦＯバッファ始端アドレスレジスタ１１５及びエコーＦＩＦＯバッファ終端アドレスレジスタ１１７で設定される（図１０参照）。
エコーＦＩＦＯバッファ始端アドレスレジスタ１１５およびエコーＦＩＦＯバッファ終端アドレスレジスタ１１７の値は、Ｉ／Ｏバス２７を通じてＣＰＵ５により設定される。
但し、それぞれのレジスタの下位３ビットには値を設定できず、エコーＦＩＦＯバッファ始端アドレスレジスタ１１５の下位３ビットは「０ｂ０００」に固定され、エコーＦＩＦＯバッファ終端アドレスレジスタ１１７の下位３ビットは「０ｂ１１１」に固定される。すなわち、エコーＦＩＦＯバッファの領域は、必ず８バイトアラインに従って配置される。これは、メインＲＡＭ２５の１ワードが６４ビット（＝８バイト）から構成されているからである。
このように、エコーＦＩＦＯバッファのサイズは自由に定められるので、必要とされるエコー遅延時間（図２参照）に応じた必要十分なサイズをメインＲＡＭ２５上に確保することができる。
同様に、マイクエコーＦＩＦＯバッファの領域は、メインＲＡＭ２５上に自由に設定することができる。マイクエコーＦＩＦＯバッファの領域の始端及び終端は、それぞれ後述のマイクエコーＦＩＦＯバッファ始端アドレスレジスタ１４１及びマイクエコーＦＩＦＯバッファ終端アドレスレジスタ１４３で設定される（図１１参照）。
マイクエコーＦＩＦＯバッファ始端アドレスレジスタ１４１及びマイクエコーＦＩＦＯバッファ終端アドレスレジスタ１４３の値は、Ｉ／Ｏバス２７を通じてＣＰＵ５により設定される。
但し、それぞれのレジスタの下位３ビットには値を設定できず、マイクエコーＦＩＦＯバッファ始端アドレスレジスタ１４１の下位３ビットは「０ｂ０００」に固定され、マイクエコーＦＩＦＯバッファ終端アドレスレジスタ１４３の下位３ビットは「０ｂ１１１」に固定される。すなわち、マイクエコーＦＩＦＯバッファの領域は、必ず８バイトアラインに従って配置される。これは、メインＲＡＭ２５の１ワードが６４ビット（＝８バイト）から構成されているからである。
このように、マイクエコーＦＩＦＯバッファのサイズは自由に定められるので、必要とされるエコー遅延時間（図２参照）に応じた必要十分なサイズをメインＲＡＭ２５上に確保することができる。
図１０は、図７のエコー機能ブロック５５の内部構成を示すブロック図である。図１０を参照して、エコー機能ブロック５５は、ウェーブデータテンポラリレジスタ７１、左アンプリチュードテンポラリレジスタ７３、右アンプリチュードテンポラリレジスタ７５、加算器７７、除算器７９、乗算器８１、加算器８３、累積値格納レジスタ８５、ファネルシフタ８７、飽和処理回路８９、マルチプレクサ（ＭＵＸ）９３、エコーＦＩＦＯバッファライトアドレスカウンタ９５、エコーライトデータバッファ９７、エコーＦＩＦＯバッファリードアドレスカウンタ９９、エコーリードデータバッファ１０１、エコーＦＩＦＯバッファリリースアドレスカウンタ１０３、リリースリードデータバッファ１０５、リリースライトデータバッファ１０７、乗算器１１１、及び加算器１１３を含む。
エコーシグマウィンドウレジスタ９１、エコーＦＩＦＯバッファ始端アドレスレジスタ１１５、エコーＦＩＦＯバッファ終端アドレスレジスタ１１７、及びエコーリリースレートレジスタ１０９は、図７の制御レジスタセット３９に含まれる。
ウェーブデータテンポラリレジスタ７１、左アンプリチュードテンポラリレジスタ７３、および右アンプリチュードテンポラリレジスタ７５は、それぞれ再生のためにクロストーク低減回路４５を介してオーディオＤＡＣブロック３１に出力されるサウンドチャンネル＃ｎの（図４参照）、ウェーブデータＷｎ、左アンプリチュードデータＡＭＬｎ、及び右アンプリチュードデータＡＭＲｎを格納するレジスタである。
左アンプリチュードテンポラリレジスタ７３及び右アンプリチュードテンポラリレジスタ７５に格納された値ＡＭＬｎ及びＡＭＲｎは、加算器７７によって互いに加算され、その加算結果は、除算器７９によって「２」で除され、左右チャンネルのアンプリチュードデータの平均値ＡＬＲｎが求められる。乗算器８１は、左右チャンネルのアンプリチュードデータの平均値ＡＬＲｎと、ウェーブデータテンポラリレジスタ７１に格納された値Ｗｎとの積ＥＭｎを算出する。乗算器８１による乗算結果の上位８ビットＥＭｎが、加算器８３によって、累積値格納レジスタ８５の格納値に加算され、この加算結果が、累積値格納レジスタ８５に格納される。但し、この加算処理は、論理サウンドチャンネル＃ｎがエコーソースとして指定されている場合にのみ行われ、エコーソースとして指定されていない論理サウンドチャンネル＃ｎに対しては、ここで破棄される。
この一連の処理は論理サウンドチャンネル＃０〜＃（Ｎ−１）の範囲で繰り返される（図４参照）。論理サウンドチャンネル＃０〜＃（Ｎ−１）の処理が完了すると、累積値格納レジスタ８５の格納値σ（２２ビット）は、ファネルシフタ８７と飽和処理回路８９とに出力される。
ファネルシフタ８７は、エコーシグマウィンドウレジスタ９１の設定値に従い、累積値格納レジスタ８５からの２２ビットの入力値σ中の連続する８ビットを選択してＭＵＸ９３に出力する。
飽和処理回路８９は、エコーシグマウィンドウレジスタ９１の設定値に従い、累積値格納レジスタ８５からの２２ビットの入力値σ中の連続する８ビットを選択するとともに、選択された８ビットより上位に位置する全てのビットを抽出する。つまり、ここで選択される８ビットは、ファネルシフタ８７が選択した８ビットと同一値である。そして、飽和処理回路８９は、２２ビットの入力値σのうち、選択された８ビットより上位に位置し、かつ選択された８ビットに含まれない全てのビットが、選択した８ビットの値の符号ビット（８ビット中の最上位ビット）と同じ値でない場合（条件１）、選択された８ビットの符号ビットの値が「０」であれば「０ｘ７Ｆ」を、符号ビットの値が「１」であれば「０ｘ８１」を、ＭＵＸ９３に出力する。
また、飽和処理回路８９は、選択した８ビットの値が「０ｘ８０」を示し、かつ、２２ビットの入力値σのうち、選択された８ビットより上位に位置し、かつ選択された８ビットに含まれない全てのビットが、「１」である場合（条件２）、「０ｘ８１」をＭＵＸ３出力する。
さらに、飽和処理回路８９は、条件１あるいは条件２が成立した場合、ＭＵＸ９３に飽和処理回路８９からの入力値を選択するための選択信号を出力する。従って、ＭＵＸ９３は、条件１あるいは条件２が成立した場合には、飽和処理回路８９からの入力値を選択してエコーライトデータバッファ９７に出力する。一方、条件１及び条件２のいずれも成立しない場合には、ＭＵＸ９３は、ファネルシフタ８７からの入力値をエコーライトデータバッファ９７に出力する。
ＭＵＸ９３から出力されたデータは、エコーライトデータバッファ９７に１バイトずつ格納される。エコーライトデータバッファ９７に８バイトのデータが格納されると、格納されたデータはエコーＦＩＦＯバッファライトアドレスカウンタ９５が示すメインＲＡＭ２５のアドレスＷＡＤ（図９のエコーＦＩＦＯバッファ参照）に書き出される。
エコーＦＩＦＯバッファライトアドレスカウンタ９５の初期値は、制御レジスタセット３９を通じてＣＰＵ５により設定される。エコーＦＩＦＯバッファライトアドレスカウンタ９５の値は、メインＲＡＭ２５への書き込みが行われる度に８ずつインクリメントされるが（８バイト単位の書き込みのため）、インクリメント後の値がエコーＦＩＦＯバッファ終端アドレスレジスタ１１７の設定値を超える場合には、インクリメントされずにエコーＦＩＦＯバッファ始端アドレスレジスタ１１５の設定値に初期化される。エコーＦＩＦＯバッファライトアドレスカウンタ９５の現在値は、制御レジスタセット３９を通じて、ＣＰＵ５から読み出すことができる。
エコー成分たるウェーブデータＷｉ（ｉは０〜（Ｎ−１）のいずれか）は、エコーＦＩＦＯバッファリードアドレスカウンタ９９が示すメインＲＡＭ２５のアドレスＲＡＤ（図９のエコーＦＩＦＯバッファ参照）から８バイト単位で読み出され、エコーリードデータバッファ１０１に格納される。エコーＦＩＦＯバッファリードアドレスカウンタ９９の初期値は、制御レジスタセット３９を通じてＣＰＵ５により設定される。
エコーＦＩＦＯバッファリードアドレスカウンタ９９の値は、１ずつインクリメントされるが、インクリメント後の値がエコーＦＩＦＯバッファ終端アドレスレジスタ１１７の設定値を超える場合には、インクリメントされずにエコーＦＩＦＯバッファ始端アドレスレジスタ１１５の設定値に初期化される。エコーＦＩＦＯバッファリードアドレスカウンタ９９の現在値は、制御レジスタセット３９を通じて、ＣＰＵ５から読み出すことができる。
ウェーブデータＷｉとして出力される１バイトのデータは、乗算器１１１によって、エコーリリースレートレジスタ１０９に格納されたエコーリリースレートＥＲと乗算される。エコーリリースレートレジスタ１０９の値ＥＲは、Ｉ／Ｏバス２７を通じてＣＰＵ５により設定される。その乗算結果は、加算器１１３によって、リリースリードデータバッファ１０５に格納された１バイトのデータと加算される。リリースリードデータバッファ１０５に格納された１バイトのデータは、エコーＦＩＦＯバッファリリースアドレスカウンタ１０３が指し示すメインＲＡＭ２５のアドレスＬＡＤ（図９のエコーＦＩＦＯバッファ参照）から読み出されたデータである。この場合の読出しは、１バイト単位で行われる。
エコーＦＩＦＯバッファリリースアドレスカウンタ１０３の初期値は、制御レジスタセット３９を通じてＣＰＵ５により設定される。エコーＦＩＦＯバッファリリースアドレスカウンタ１０３の値は、１ずつインクリメントされるが、インクリメント後の値がエコーＦＩＦＯバッファ終端アドレスレジスタ１１７の設定値を超える場合には、インクリメントされずにエコーＦＩＦＯバッファ始端アドレスレジスタ１１５の設定値に初期化される。
加算器１１３による加算結果は、リリースライトデータバッファ１０７に格納され、エコーＦＩＦＯバッファリリースアドレスカウンタ１０３が指し示すメインＲＡＭ２５のアドレスＬＡＤ（エコーＦＩＦＯバッファ）に書き戻される。エコーＦＩＦＯバッファリリースアドレスカウンタ１０３の現在値は、制御レジスタセット３９を通じて、ＣＰＵ５が読み出すことができる。
エコーＦＩＦＯバッファライトアドレスＷＡＤ、エコーＦＩＦＯバッファリードアドレスＲＡＤ、及びエコーＦＩＦＯバッファリリースアドレスＬＡＤについて詳細に説明する。まず、エコーＦＩＦＯバッファについて説明する。
さて、図９に示されるように、エコーＦＩＦＯバッファライトアドレスＷＡＤからエコーＦＩＦＯバッファリードアドレスＲＡＤを差し引いた値が、エコーＦＩＦＯバッファＢａとＢｂと（図４参照）のエントリ数の総和（Ｎａ＋Ｎｂ）となる（（数２）参照）。また、エコーＦＩＦＯバッファリリースアドレスＬＡＤからエコーＦＩＦＯバッファリードアドレスＲＡＤを差し引いた値が、エコーＦＩＦＯバッファＢｂのエントリ数Ｎｂとなる（（数３）参照）。
従って、ライトアドレスカウンタ９５、エコーライトデータバッファ９７、リードアドレスカウンタ９９、エコーリードデータバッファ１０１、リリースアドレスカウンタ１０３、リリースリードデータバッファ１０５、リリースライトデータバッファ１０７、乗算器１１１、加算器１１３、エコーリリースレートレジスタ１０９、始端アドレスレジスタ１１５、及び終端アドレスレジスタ１１７によって、図３に示したエコーモデルを生成できる。
図１１は、図７のマイクエコー機能ブロック５７の内部構成を示すブロック図である。図１１を参照して、マイクエコー機能ブロック５７は、マイクエコーＦＩＦＯバッファリードアドレスカウンタ１４５およびマイクエコーリードデータバッファ１４７を含む。マイクエコーＦＩＦＯバッファ始端アドレスレジスタ１４１およびマイクエコーＦＩＦＯバッファ終端アドレスレジスタ１４３は、図７の制御レジスタセット３９に含まれる。
マイクエコー機能が用いられる場合、マイクエコーの原音成分は、通常ＣＰＵ５からメインＲＡＭ２５上に確保されたマイクエコーＦＩＦＯバッファに直接書き込まれる。そして、マイクエコー成分たるウェーブデータＷｊ（ｊは０〜（Ｎ−１）のいずれか）は、マイクエコーＦＩＦＯバッファリードアドレスカウンタ１４５が示すメインＲＡＭ２５のアドレスＭＲＡＤ（図９のマイクエコーＦＩＦＯバッファ参照）から８バイト単位で読み出され、マイクエコーリードデータバッファ１４７に格納される。
マイクエコーＦＩＦＯバッファリードアドレスカウンタ１４５の初期値は、制御レジスタセット３９を通じてＣＰＵ５により設定される。マイクエコーＦＩＦＯバッファリードアドレスカウンタ１４５の値は、１ずつインクリメントされるが、インクリメント後の値がマイクエコーＦＩＦＯバッファ終端アドレスレジスタ１４３の設定値を超える場合には、インクリメントされずにマイクエコーＦＩＦＯバッファ始端アドレスレジスタ１４１の設定値に初期化される。マイクエコーＦＩＦＯバッファリードアドレスカウンタ１４５の現在値は、制御レジスタセット３９を通じて、ＣＰＵ５が読み出すことが可能である。
ここで、マイクエコー機能では、エコー機能の場合と異なり、乗算器１１１による乗算に相当する乗算および加算器１１３による加算に相当する加算が、ハードウェアではサポートされていないので、これらの演算はＣＰＵ５（つまり、ソフトウェア）が行う。
従って、エコー機能の、ライトアドレスカウンタ９５、エコーライトデータバッファ９７、リリースアドレスカウンタ１０３、リリースリードデータバッファ１０５、リリースライトデータバッファ１０７、乗算器１１１、加算器１１３、およびエコーリリースレートレジスタ１０９に相当する機能は、ＣＰＵ５で実行されるプログラムとメインＲＡＭ２５とによって実現される。これらと、図１１の構成と、によって、図３に示したエコーモデルと同様のマイクエコーモデルを生成できる。
さて、図９に示されるように、マイクエコーＦＩＦＯバッファライトアドレスＭＷＡＤからマイクエコーＦＩＦＯバッファリードアドレスＭＲＡＤを差し引いた値が、マイクエコーＦＩＦＯバッファＭＢａとＭＢｂと（図５参照）のエントリ数の総和（Ｎａ＋Ｎｂ）となる（（数２）参照）。また、マイクエコーＦＩＦＯバッファリリースアドレスＭＬＡＤからマイクエコーＦＩＦＯバッファリードアドレスＭＲＡＤを差し引いた値が、マイクエコーＦＩＦＯバッファＭＢｂのエントリ数Ｎｂとなる（（数３）参照）。
ここで、マイクエコーＦＩＦＯバッファライトアドレスＭＷＡＤは、メインＲＡＭ２５上に形成される、ライトアドレスカウンタ９５と同様の機能を有するライトアドレスカウンタによって生成され、マイクエコーＦＩＦＯバッファリリースアドレスＭＬＡＤは、メインＲＡＭ２５上に形成される、リリースアドレスカウンタ１０３と同様の機能を有するリリースアドレスカウンタによって生成される。
次に、エコー成分たるウェーブデータ及びマイクエコー成分たるウェーブデータの継続出力について説明する。エコー成分たるウェーブデータＷｉを割り当てることができる論理サウンドチャンネルは１つであり、マイクエコー成分たるウェーブデータＷｊを割り当てることができる論理サウンドチャンネルは１つである。
ただし、エコー成分及び／又はマイクエコー成分の出力バランスを引き上げるために、エコー成分及び／又はマイクエコー成分の出力を複数サウンドチャンネル継続して行う機能が設けられる。なお、本実施の形態では、最大の継続チャンネル数は「３２」である。また、最終サウンドチャンネルを超えて継続出力は行われない。さらに、エコー成分の継続出力のために割り当てられたサウンドチャンネルの本来の設定は無視される。この点は、マイクエコー成分の継続出力の場合も同様である。
図７を参照して、制御レジスタセット３９に含まれるエコーホールドタイムレジスタ（図示せず）に、エコー成分継続出力のディセーブルあるいはイネーブルが設定されるとともに、継続チャンネル数が設定される。エコーホールドタイムレジスタの設定に従って、データ処理ブロック３５は、エコー成分の継続出力を行う。また、制御レジスタセット３９に含まれるマイクエコーホールドタイムレジスタ（図示せず）に、マイクエコー成分継続出力のディセーブルあるいはイネーブルが設定されるとともに、継続チャンネル数が設定される。マイクエコーホールドタイムレジスタの設定に従って、データ処理ブロック３５は、マイクエコー成分の継続出力を行う。以下、具体例を挙げながら説明する。
図１２は、エコー成分たるウェーブデータ及びマイクエコー成分たるウェーブデータの継続出力の例示図である。図１２では、再生するサウンドチャンネルの数を「８」とし、サウンドチャンネル＃２にエコー成分が割り当てられ、サウンドチャンネル＃６にマイクエコー成分が割り当てられる。つまり、エコー成分に対してのエフェクトチャンネルがサウンドチャンネル＃２であり、マイクエコー成分に対してのエフェクトチャンネルがサウンドチャンネル＃６である。また、エコー成分の継続チャンネル数を「２」、マイクエコー成分の継続チャンネル数を「３」としている。
図１２に示すように、サウンドチャンネル＃２とそれに続くサウンドチャンネル＃３において、エコー成分が継続して出力される。この場合、エコー成分に割り当てられたサウンドチャンネル＃２に続くサウンドチャンネル＃３については、本来の設定が無視される。
また、サウンドチャンネル＃６とそれに続くサウンドチャンネル＃７において、マイクエコー成分が継続して出力される。この場合、マイクエコー成分に割り当てられたサウンドチャンネル＃６に続くサウンドチャンネル＃７については、本来の設定が無視される。また、この場合、設定に従って継続チャンネル数を「３」にすると、最終サウンドチャンネル＃７を超えるため、この例では、マイクエコー成分の継続出力は２チャンネル分しか行われない。
さて、以上のように、本実施の形態によればエフェクト原音チャンネルを任意の論理サウンドチャンネルに設定できるため、複数の論理サウンドチャンネルで再生されているウェーブデータのうち、任意の論理サウンドチャンネルで再生されているウェーブデータ（原音）に音響効果（例えば、エコー／リバーブ等）を施すことが可能となる。また、複数の論理サウンドチャンネルは等価であり、エフェクトチャンネルを任意の論理サウンドチャンネルに設定できるため、音響効果が付与されたウェーブデータを任意の論理サウンドチャンネルで再生できる。さらに、音響効果の付与が不要な場合には、全ての論理サウンドチャンネルを非エフェクトチャンネルに設定して、音響効果なしのウェーブデータの再生のために割り当てることが可能である。
このように任意の論理サウンドチャンネルに任意の属性を設定できるため、例えば、楽曲再生に割り当てられている論理サウンドチャンネルをエフェクト原音チャンネルに設定して、そこで再生されているウェーブデータにエコー等の音響効果を施す一方、効果音の再生に割り当てられている論理サウンドチャンネルを非エフェクトチャンネルに設定して、そこで再生されているウェーブデータには音響効果を施さないといった組み合わせが実現できる。また、再生されるウェーブデータにピッチ変換や振幅変調等を施す機能が論理サウンドチャンネルに設けられている場合、エフェクトチャンネルに割り当てられたウェーブデータに対しても同じ機能を利用できる。
また、本実施の形態では、マイクロフォン等の外部アナログ入力装置５２から入力されたアナログ音声信号に対しても、ＡＤＣ３３によってデジタル音声信号（ＰＣＭデータ）に変換後に、音響効果を付与して、再生可能である（マイクエコー機能）。この場合、音響効果を付与するための一部の処理をＣＰＵ５（つまり、ソフトウェア）が行うので、音響効果を付与する構成を任意に構築できる。つまり、図５での遅延を生成する部分ＭＢａ，ＭＢｂ，Ｍｓ及びＡｓは、必ずしもこのような構成に限られず、任意の構成により遅延機能を構築できる。
さらに、本実施の形態では、エコーＦＩＦＯバッファをメインＲＡＭ２５に構築して、そこから所定時間後にウェーブデータを取り出すことで遅延を発生させている。このように、エコーＦＩＦＯバッファによって、簡易に遅延機能を構築している。また、メインＲＡＭ２５の一部をエコーＦＩＦＯバッファとして用いているので、エコーＦＩＦＯバッファ用に確保される領域以外は、他の用途に用いることが可能である。マイクエコー機能についても同様である。
さらに、本実施の形態では、図１０の加算器８３及び累積値格納レジスタ８５を設けているので、複数の論理サウンドチャンネルがエフェクト原音チャンネルに設定されている場合でも、エコーＦＩＦＯバッファに格納されるのは１チャンネル分である。しかも、図１０の加算器７７および除算器７９を設けて、左右のアンプリチュードの平均値を求めるので、左右の物理サウンドチャンネル毎に論理サウンドチャンネルのミキシングバランスが異なる場合でも、エコーＦＩＦＯバッファに格納されるのは１チャンネル分である。以上の結果、メインＲＡＭ２５に構築するエコーＦＩＦＯバッファの容量を抑制できる。
さらに、本実施の形態では、図１０のファネルシフタ８７及び飽和処理回路８９を設けているので、累積値格納レジスタ８５から出力される格納値（累積ウェーブデータ）σから任意のビット列が取り出せるため、エフェクトチャンネルによって再生されるウェーブデータの振幅を最適化できる。
さらに、本実施の形態では、エコーＦＩＦＯバッファに格納してから所定時間後（Ｎａ＋Ｎｂ）に取り出して再生したウェーブデータＷｉに対して、所定の率（エコーリリースレート）で振幅変調を施す乗算器１１１を設けると共に、再生のためのエコーＦＩＦＯバッファからのウェーブデータＷｉの読出し位置（リードアドレスカウンタ９９が示すアドレス）ＲＡＤから所定の距離（Ｎｂ）だけ変位された位置ＬＡＤに格納されているウェーブデータに、乗算器１１１で振幅変調が施されたウェーブデータを加算する加算器１１３を設けて（図９参照）、リバーブ機能を簡易に実現している。マイクエコー機能についても、これらの処理を行う主体が、ＣＰＵ５というだけで、簡易にリバーブ機能を実現できる。
さらに、本実施の形態では、論理サウンドチャンネルによって処理される対象はＰＣＭデータ、つまり、デジタルデータなので、音響効果を付与するための処理（例えば、遅延処理など）に必要なバッファ（エコーＦＩＦＯバッファ及びマイクエコーＦＩＦＯバッファ）をＲＡＭ等の手段で簡単に構築できる（上記では、メインＲＡＭ２５上に構築）。また、音響効果を付与するための処理（例えば、振幅変調処理など）を小規模な論理回路及び／又は小規模なソフトウェアで行うことができる。
さらに、本実施の形態では、複数の論理サウンドチャンネルのミキシングを加算器によって行わず、時分割多重化（複数の論理サウンドチャンネルのＰＣＭデータを時間単位で切り換えて出力）によって実現している（図８参照）。従って、このミキシングための加算器が不要になるばかりか、オーディオＤＡＣブロック３１のＤＡＣの解像度（ビット数）を抑制でき、コスト低減を図ることができる。
さらに、本実施の形態では、時分割出力において、エフェクトチャンネル以外の他の論理サウンドチャンネルの出力時間に、エフェクトチャンネルによって再生されたウェーブデータを割り当てることができるので、簡単な回路で本来設定可能な上限を超えた音量を音響効果（エコー機能による効果、マイクエコー機能による効果）が付与されたウェーブデータに与えることが可能になる（図１２参照）。なお、複数の物理サウンドチャンネルが用いられて音楽や音声の再生が行われる場合、エコー成分を再生する論理サウンドチャンネルが１つだけでは、音量バランスが不足することがある。マイクエコー成分についても同様である。
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
（１）上記では、物理サウンドチャンネル数を複数にしたが、単数であっても、本発明は適用できる。
以上、本発明を実施例により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施例に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。
【図１】
2007046311.tif 000006
【図２】
2007046311.tif 000007
【図３】
2007046311.tif 000008
【図４】
2007046311.tif 000009
【図５】
2007046311.tif 000010
【図６】
2007046311.tif 000011
【図７】
2007046311.tif 000012
【図８】
2007046311.tif 000013
【図９】
2007046311.tif 000014
【図１０】
2007046311.tif 000015
【図１１】
2007046311.tif 000016
【図１２】
2007046311.tif 000017
【国際調査報告】
2007046311.tif 000018
2007046311.tif 000019
2007046311.tif 000020