JP2000505566A - 周波数補正されたウェーブテーブル・データを備えるpcオーディオシステム - Google Patents

周波数補正されたウェーブテーブル・データを備えるpcオーディオシステム

Info

Publication number
JP2000505566A
JP2000505566A JP9530362A JP53036297A JP2000505566A JP 2000505566 A JP2000505566 A JP 2000505566A JP 9530362 A JP9530362 A JP 9530362A JP 53036297 A JP53036297 A JP 53036297A JP 2000505566 A JP2000505566 A JP 2000505566A
Authority
JP
Japan
Prior art keywords
frequency
data
patch
wavetable
corrected
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.)
Ceased
Application number
JP9530362A
Other languages
English (en)
Other versions
JP2000505566A5 (ja
Inventor
ヒューウィット,ラリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2000505566A publication Critical patent/JP2000505566A/ja
Publication of JP2000505566A5 publication Critical patent/JP2000505566A5/ja
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • G10H7/004Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof with one or more auxiliary processor in addition to the main processing unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/02Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/031Use of cache memory for electrophonic musical instrument processes, e.g. for improving processing capabilities or solving interfacing problems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/201Physical layer or hardware aspects of transmission to or from an electrophonic musical instrument, e.g. voltage levels, bit streams, code words or symbols over a physical link connecting network nodes or instruments
    • G10H2240/275Musical interface to a personal computer PCI bus, "peripheral component interconnect bus"

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 説明されるPCオーディオ回路(10)は、中央プロセッサ、システムメモリおよびシステムバスを含む種類のホストパーソナルコンピュータにインターフェイスしかつこれをオーディオ面で向上させる。PCオーディオ回路(10)は、複数の音声に対し、ウェーブテーブル・データを処理しかつデジタルオーディオ信号を発生するためのデジタル信号プロセッサ(DSP)(16)を含む。ウェーブテーブル・データは、ホストコンピュータのシステムメモリ内に記憶され、DSP(16)の必要に応じて、PCオーディオ回路(10)に含まれるより小さい低コストキャッシュメモリ(22)に部分的に転送される。DSP(16)は他の音声を処理する前にある活性の音声に対するデータサンプルのいくつかのフレームを処理する。この態様での処理によって、システムバス帯域幅の使用割合および最大許容可能システムバス待ち時間についての懸念が緩和される。これらの懸念はさらに、周波数補正されたウェーブテーブル・データを導出し、かつ高周波数比を有するデジタルオーディオ信号を発生するためDSP(16)により引出されるようにシステムメモリ内にこれを記憶することにより、緩和される。活性の音声各々に対して発生されたデジタルオーディオ信号はキャッシュメモリ(22)内に蓄積される。すべての活性の音声に対するデジタルオーディオ信号が蓄積されてしまったときは、キャッシュメモリ(22)から外部デジタル−アナログ変換器に蓄積されたデータが伝送される。ウェーブテーブル・データはシステムメモリ内に記憶されるので、キャッシュメモリ(22)は先行技術によるPCオーディオ回路内のローカルメモリよりも小さくかつより低価格である。したがって、ここに説明するPCオーディオ回路(10)は全体コストがより低くなる。

Description

【発明の詳細な説明】 周波数補正されたウェーブテーブル・データを備えるPCオーディオシステム この出願は、1995年8月17日に出願された出願連続番号第08/516 ,052号の一部継続出願である。 発明の背景 1.発明の分野 この発明は、ウェーブテーブル・オーディオ・シンセサイザと周波数補正され たウェーブテーブル・データを供給するメモリとを含むPCオーディオシステム に関する。より特定的には、この発明は、周波数補正されたウェーブテーブル・ データを供給するPCシステムメモリとインターフェイスする、ウェーブテーブ ル・オーディオ・シンセサイザとウェーブテーブル・キャッシュとを含む、PC オーディオシステムに関する。 2.関連技術の簡単な説明 いくつかの種類のデジタル「シンセサイザ」、すなわち、オーディオデジタル 信号処理を通じて音を発生する装置が現在利用可能である。現代のデジタルシン セサイザの一種が、ウェーブテーブル・シンセサイザである。ウェーブテーブル ・シンセサイザは、ウェーブテーブル・メモリ内に記憶されるデジタル化された 音の波形の部分またはデジタル化された音の波形全体のデジタル処理を通じて音 を発生する。ここに引用により援用される、ノリス(Norris)他による「ウェー ブテーブル・オーディオ・シンセサイザのためのデジタル信号プロセッサアーキ テクチャ(Digital signal Processor Architecture for Wavetable Audio Synt hesizer)」と題された米国特許出願連続番号第08/334,461号を参照 されたい。 ウェーブテーブル・シンセサイザは、特定のデジタル化された波形をウェーブ テーブル・メモリからデジタル−アナログ変換器(DAC)へ「プレイバック」 することにより、音を発生する。ウェーブテーブル・データのアドレス指定速度 が、アナログ出力の周波数またはピッチを制御する。ウェーブテーブル・データ のビット幅は、発生される音の分解能に影響する。たとえば、8ビット幅のデー タに対し、16ビット幅のデータの方が、より良好な分解能を達成できる。当業 界では16ビットデジタルオーディオが標準となりつつある。 ウェーブテーブル・シンセサイザは、パーソナルコンピュータに応用される。 パーソナルコンピュータは、ごく限られたオーディオ能力を備えるよう製造され るのが典型的である。こうした限られた能力は、アラームまたは他のユーザ警告 信号などのさまざまな簡単な機能に関し、ユーザに可聴信号を提供するようモノ フォニックの(モノラルの)音色(トーン)発生を行なう。典型的なパーソナル コンピュータシステムは、マルチメディアアプリケーションおよびビデオゲーム アプリケーション用に所望の改良である、ステレオの高品質オーディオを提供す る能力を有さず、また、音楽または他の複雑な音を発生または合成する内蔵能力 も持たない。外部装置において、またはアナログスピーカを通じておよびマルチ メディア(CD−ROM)アプリケーションにおいて、再生されるよう、コンピ ュータを通じ音を生成または記録するため、ユーザが音楽構成アプリケーション の使用を所望するとき、音楽合成能力が必須である。 さらに、時にユーザは、彼らのコンピュータを通じて記録またはプレイバック (再生)する前に、ステレオ装置、マイクロホン、および非MIDI電気装置な どの外部アナログ音源をデジタル方式で記録しおよび/またはデジタル源と混合 するよう、これら外部アナログ音源を使用する能力を所望する。これらの要求を 満足させるために、いくつかのアッドオン製品が開発されている。このような製 品ラインの1つは、当業界ではサウンドカードと呼ばれる。これらサウンドカー ドは、いくつかの集積回路を搭載した回路板であり、多くの場合、ウェーブテー ブル・シンセサイザ、ウェーブテーブル・メモリおよびコンピュータ製造業者に より提供される拡張スロット内にユーザがインストールする他の関連する回路を 含む。拡張スロットは、システムバスへのインターフェイスを提供し、これによ り、ホストプロセッサが、音発生にアクセスし、アプリケーションソフトウェア の制御下にあるボード上の機能を制御することができる。典型的なサウンドカー ドはまた、キーボードおよびゲーム用ジョイスティックなどのMIDI装置から の入力を受付けるよう、MIDIインターフェイスおよびゲームポートを備える 。 先行技術によるサウンドカードの一例は、アドバンスト・グラビス・アンド・ フォルテ(Advanced Gravis and Forte)がウルトラサウンド(Ultrasound)の 名称で提供しているものである。このサウンドカードは、ウェーブテーブル・シ ンセサイザ、MIDIおよびゲームインターフェイス、DMA制御ならびにアド リブ・サウンド・ブラスタ互換性論理を1つのチップ(「GF−1)に組入れた 、拡張スロット用実現例である。このASICに加え、ウルトラサウンドカード は、ウェーブテーブル・データ用のオンボードDRAM(1メガバイト)と、ア ドレスデコード用チップと、アナログ入力およびアナログ出力とインターフェイ スするための別個のアナログ回路と、別個のプログラマブルISAバスインタフ ェースチップと、介入PALチップと、別個のデジタル−アナログ/アナログ− デジタル変換器チップとを含む。ここに引用により援用される、トラバース(Tr avers)他による「ウェーブ・テーブル・シンセサイザ(Wave Table Synthesize r)」と題された米国特許出願連続番号第072,838号を参照されたい。 オンボードサウンドカードメモリは典型的には、2分の1から4メガバイトの 間の大きさを有し、音楽を合成するために使用されるすべてのウェーブテーブル ・データを記憶する。1メガバイト当り約25ドルのコストであり、サウンドカ ードメモリのコストはサウンドカードの全体のコストにおいて重要な要因である 。したがって、ウェーブテーブル・データを供給するためにもしPCシステムメ モリを使用でき、したがって、サウンドカードメモリの必要をなくすかまたは減 じれば、サウンドカードのコストが下がるであろう。 しかし、ウェーブテーブル・データの記憶のためにPCシステムメモリを利用 するといくつかの懸念が出る。懸念の1つは、利用可能なPCシステムメモリが 限られており、ウェーブテーブル・データ用に割くことができないという点であ る。しかし、より大きなシステムメモリを含みウェーブテーブル・データ用に利 用可能なスペースを有するはずであると予測される将来の最先端PCにおいては このような懸念は減じられるはずである。システムメモリの使用についての他の 懸念は、先行技術によるシンセサイザが必要とする数多くのメモリへのアクセス である。たとえば、32個の個別の音声(すなわち楽器の音)を合成できる先行 技術のウェーブテーブル・シンセサイザは、必要なデータサンプルを引出すため 22.7マイクロ秒ごとに32回メモリにアクセスせねばならない。もしシステ ムメモリに対しこれだけの数のアクセスがなされれば、容認できないほど高い割 合のシステムバスの帯域幅がシンセサイザの動作のために使用され、PCの他の 動作のために使用できるバスの帯域幅が少なくなるであろう。 またさらなる懸念は、シンセサイザが、システムメモリからウェーブテーブル ・データを受けとるよりも速く(すなわち、システムの最大バス待ち時間よりも 速く)ウェーブテーブル・データを処理するのではないかという点である。この ような状況では、処理されたデータがギャップを有するかもしれず、合成された 音楽が再生される間に不所望のポップが生じるかもしれないので、このような状 況は容認できないであろう。 したがって、システムメモリにより供給されるウェーブテーブル・データから 音楽を合成するが、容認できない割合のバス帯域幅を利用しない、PCオーディ オシステムが必要である。さらに、少なくともデータを処理する速度と同じ速さ でシステムメモリからデータを獲得する(すなわち、最大バス待ち時間がPCオ ーディオシステムのデータ処理速度以下である)PCオーディオシステムが必要 である。 発明の概要 この発明のPCオーディオ回路は、中央プロセッサ、システムメモリおよびシ ステムバスを含む種類のホストパーソナルコンピュータとインターフェイスし、 これをオーディオ面で向上させるよう設計される。PCオーディオ回路は、大き さおよびコストが著しく減じられ一度にウェーブテーブル・データ全体の部分の みを記憶することができるキャッシュメモリを含む。代わりに、すべてのウェー ブテーブル・データは、ホストPCのシステムメモリ内に記憶され、PCオーデ ィオ回路の必要に応じてキャッシュメモリに部分で転送される。PCオーディオ 回路はデータを処理し、音楽またはサウンドエフェクトなどのデジタルオーディ オ信号を発生する。キャッシュメモリは大きさおよびコストが減じられているの で、PCオーディオ回路の全体としてのコストは先行技術によるシステムよりも 低くなる。 先行技術のPCオーディオシステムとは異なり、この発明のPCオーディオ回 路は、次に指定された音声を処理する前に、音声に対するデータサンプルのいく つかのフレームを処理する。したがって、所与の音声に対するいくつかのウェー ブテーブル・データサンプルを一度にシステムメモリから引出し、キャッシュメ モリ内で利用可能にすることができ、これによって、必要とされるメモリへのア クセス総数を減じ、システムバスの帯域幅の使用割合を減じる。また、この態様 でデータサンプルを処理すると、ある並列処理動作が可能になる。たとえば、活 性の音声に対し複数のデータサンプルが処理されている間に、データサンプルの 他のグループをシステムメモリから引出し、キャッシュメモリ内での処理のため 利用可能にすることができる。これにより確実にデータが連続して供給され、最 大許容可能システムバスアクセス待ち時間についての懸念が減じられる。 この発明のPCオーディオ回路は、一度にいくつかのウェーブテーブル・デー タサンプルを引出すので、音声のデータサンプルがシステムメモリ内でブロック として合せて組織化されていることが好ましい。したがって、もしデータサンプ ルの連続した列が要求されたならば、ブロックになったデータサンプル全体に対 し増分していくシステムメモリのページモードを使用してこれらにアクセスする ことができる。好ましくは、システムメモリとPCオーディオ回路との間のバス はPCIバスであり、したがって、ページモードを通じてアクセスされるデータ をPCオーディオ回路へバーストモードで伝送することを可能にする。 好ましい実施例において、この発明のPCオーディオ回路は、PCIバスイン タフェースブロック、内部アドレスデータバス、デジタル信号プロセッサ、出力 制御ステートマシン、内部バスアービタおよびキャッシュメモリを含む。PCオ ーディオ回路は、キャッシュメモリを含むか、または集積回路の外部にあるキャ ッシュメモリを備える、モノリシック集積回路上に形成できる。システムメモリ 内のデータは、PCIバスをわたって、PCIインターフェイスブロックを通り 、内部バスをわたり、キャッシュメモリへと伝送される。 デジタル信号プロセッサ(DSP)は、キャッシュメモリ内のデータサンプル を所望のアナログオーディオ信号への変換に適したデジタルオーディオ信号に翻 訳するための計算および他の処理を行なう。好ましくは、DSPは44.1KH zのフレーム速度で、32個までの個別のデジタルオーディオ信号または音声を 発生することができる。 DSPにより各音声に対して発生されたデジタルオーディオ信号は、外部デジ タル−アナログ変換器(DAC)へのそれらの出力の準備ができるまで、キャッ シュメモリ内に蓄積されるかまたは別個のキャッシュメモリ内に蓄積されうる。 出力制御ステートマシン(OCSM)は、44.1KHzのサンプル速度でのキ ャッシュから外部DACへの蓄積されたデータの伝送を制御する。内部バスアー ビタ(IBA)は、OCSM、キャッシュ、PCIインターフェイスブロックお よびDSPを含む、内部バスにアクセスするであろうさまざまなブロック間のト ラフィックの方向付けの責任を持つ。内部バスは、PCI規格の部分として提供 されるクロックにより、ほとんどの論理とともに、33MHzで動作する。 キャッシュは、約8から32キロバイトの容量を有する低コストSRAMであ ることが好ましい。キャッシュ内の利用可能なメモリは、データサンプル記憶装 置、累算器記憶装置およびDSP用一般記憶装置に割当てることができる。デー タサンプルはデータ待ち行列AおよびB内に記憶することができ、一方、DSP により発生されたデジタルオーディオ信号は累算器待ち行列AおよびB内に記憶 することができる。適切な実現例においては、データ待ち行列AおよびBは、各 々、32個の音声の各々に対し64個の16ビットデータサンプルまで記憶し、 一方、累算器待ち行列AおよびBは各々、32個までの音声に対し発生されたデ ータサンプルを蓄積する。発生されたデータサンプルは、64個1組の16ビッ トデータサンプルとして累算器待ち行列AまたはB内に合せて蓄積される。 PCIインターフェイスブロックは、キャッシュのデータサンプルを更新する 必要があるときを検出し、バスマスタ要求を開始する。そこからデータサンプル が引出されるはずのシステムメモリ内のアドレスは、PCIインターフェイスブ ロックからPCIアドレスバスヘ送られる。PCIインターフェイスブロックの 制御下で、システムメモリから引出されたデータサンプルは内部データバスを通 ってキャッシュへと伝送される。 PCオーディオ回路の好ましい実施例の立上げ時には、活性の音声各々に対し 、 128個のデータサンプルがキャッシュ内にロードされる(データ待ち行列Aお よびBの各々の中に64個のデータサンプルずつ)。一旦データ待ち行列Aおよ びBにデータがロードされると、DSPは、第1の活性の音声に対するデータ待 ち行列の一方の中のデータサンプルを処理する。他方のデータ待ち行列はこの時 点では不活性である。次に、DSPは次に指定された活性の音声に対してのデー タサンプルを処理する。DSPがこれらのデータサンプルを処理すると同時に、 DSPにより発生されたばかりのデータサンプルが累算器待ち行列の一方の中に 蓄積される。この処理は、すべての活性の音声が処理されるまで続き、それから 累算器待ち行列はトグルし、第1の累算器待ち行列内に蓄積されたデータサンプ ルを外部DACに出力できる間、他方の累算器待ち行列は発生されるデータサン プルを蓄積するであろう。 一旦、データ待ち行列内の活性の音声各々に対するデータサンプルが処理され てしまうと、PCIインターフェイスブロックは、システムメモリからの付加的 なデータサンプルに対する要求をPCIバス上で送る。システムメモリから引出 されたデータサンプルは第1のデータ待ち行列内に記憶されるため、処理された ばかりのデータサンプルの上に重ね書きされる。これらのデータサンプルが引出 される間に、DSPは他の待ち行列内のデータサンプルを処理する。それから、 データ待ち行列はトグルし、そして処理は継続し同時に64個までのデータサン プルを処理することを可能にする。 もし、DSPが、元のオーディオ信号のアナログ−デジタル変換(記録)の間 に使用されるサンプリング周波数と同じ周波数でデータサンプルを処理するので あれば、DSPにより発生されたオーディオ信号がアナログに変換され再生され るとき、結果として得られるオーディオ信号はデータサンプルを作るために使用 された元のオーディオ信号と同じように聞こえるであろう(すなわち同じ周波数 を有するであろう)。再生されるオーディオ信号の周波数が記録周波数と同じで あるとき、その周波数比(Fc)は1に等しい。もしFc>1であれば発生された オーディオ信号は記録された信号よりも高いピッチを有するであろう。もし活性 の音声各々に対しFc=1であれば、最大の許容可能PCIバス待ち時間は、こ れが44.1KHzのフレーム速度でデータサンプルの64個のフレームを処理 するのにかかる時間に等しい。しかし、1つまたは2つ以上の活性の音声に対し てFc>1であれば、DSPは音声当りフレーム当り2つ以上のデータサンプル を処理することになるので、最大許容可能PCIバス待ち時間は減じられる。Fc が約2.0に等しければ、最大許容可能バス待ち時間の減少が問題になるであ ろう。 Fc>2の場合の待ち時間の問題は、処理されるであろうデータサンプルのみ を引出しDSPによりスキップされるであろうデータサンプルは引出さないPC オーディオ回路を有することにより回避できる。このようにすると、引出されて データ待ち行列内に記憶されるすべてのデータサンプルが処理されるであろう。 この特徴は、活性の音声に対するFcの値にアクセスし、かつ次に現在のシステ ムメモリアドレスおよびFcの値に基づき所与の音声についてデータサンプルを 引出すための次のシステムメモリアドレスを計算するための手段を、PCIイン ターフェイスブロック内に設けることにより実現される。Fc>1のときに活性 の音声各々に対して選択されたサンプルのみを引出すことにより、データサンプ ルを伝送するためにバーストモードが使用できないため、利用可能なPCI帯域 幅が減じられる。たとえバーストモードが使用されないとしても、PCオーディ オ回路の帯域幅使用割合は容認可能なものかもしれないが、使用割合はやや望ま しくないものになるであろう。 この発明の好ましい実施例において、PCオーディオシステムは、システムメ モリ内に記憶されバーストモードにおいてキャッシュメモリに伝送することがで きるウェーブテーブル・データのパッチまたは周波数補正されたファイルの作成 を容易にするドライバソフトウェアを含み、これによってPCIバス帯域幅要求 を減じる。周波数補正されたファイルまたはパッチは、Fc>2を有する音声に 対しDSPにより実際に処理されるであろうデータサンプルのみを含む。たとえ ば、Fc=4を有する活性の音声に対しては、DSPはこの活性の音声に関連す るウェーブテーブル・データのパッチ(「元のパッチ」)内の4番目ごとのデー タサンプルのみを処理すればよい。ドライバソフトウェアは4番目ごとのサンプ ルのみを含む、元のパッチの周波数補正されたものの作成を容易にする。この周 波数補正されたファイルまたはパッチはシステムメモリ内に記憶され、バースト モードにおいて、DSPによる処理のためPCオーディオ回路に伝送することが できる。 適切なPCオーディオシステムは、上述のような種類のPCオーディオ回路、 ドライバソフトウェアおよびMIDIまたは比較可能ファイルを含む。MIDI ファイルは、PCオーディオ回路により発生されるであろう歌または他のオーデ ィオ信号を定義するパラメータを含む。ドライバソフトウェアは、ファイル内に 含まれるパラメータを通訳し、かつ、システムメモリ内のウェーブテーブル・デ ータから所望のオーディオ信号を発生するようPCオーディオ回路をプログラミ ングする機能を行なう。以下に説明するように、ドライバソフトウェアは、また 、Fcの高い音声に対する周波数補正されたパッチを導出する機能を制御する命 令を含む。 システムCPUは、所与の音声に対し、その音声に対しての所望の周波数の、 音声に関連するシステムメモリ内のデータの記録周波数に対する比を決定する。 Fc>2.0の場合は、CPUは以下に説明するように周波数補正されたパッチ を導出する。 周波数補正されたパッチはいくつかの方策で導出することができる。必要とす るCPUの処理が最も少ない一方策は、その音声に対しての元のパッチからウェ ーブテーブル・データサンプルの小部分をシステムメモリ内に記憶されるパッチ または新しいファイルにコピーまたは転置することである。新しいパッチに転置 されるデータサンプルの小部分は、システムCPUにより計算されるFcの値に 基づく。周波数補正されたパッチは、元のパッチの周波数よりも高い周波数を有 する。たとえば、周波数補正されたパッチを作成するために元のパッチから4番 目ごとにデータサンプルがコピーされたのであれば、周波数補正されたパッチの 周波数は元のパッチの周波数の4倍となる。そして、周波数補正されたパッチの 有効周波数(Feff)は4に等しい。 PCオーディオ回路がデータサンプルのパッチの記録周波数の2倍を超える周 波数でオーディオ信号を発生するときバス待ち時間の問題が生ずるので、周波数 補正されたパッチを導出するときの目標は、PCオーディオ回路が所望のオーデ ィオ信号を発生するためパッチの周波数を2倍よりも高くする必要がない、十分 に高い有効パッチ周波数を提供することである。 周波数補正されたパッチを導出するもう1つの方策は、ウェーブテーブル・デ ータサンプルの元のパッチをデジタル方式でフィルタリングすることである。デ ジタル方式でのフィルタリングのためにはより多くのCPU処理が必要であるが 、デジタル方式でのフィルタリングはウェーブテーブル・データの高周波数成分 を除去し、発生されるデジタルオーディオ信号はノイズが少なくなるので、上述 の技術よりも好ましい。デジタルフィルタリング技術の一例は、n番目ごとのサ ンプルの平均を取ることである。さらなる例は、さらに多くのCPU処理パワー を必要とするが、移動平均の平均を計算することである。 システムCPUは、ドライバソフトウェアにより、(1)PCオーディオ回路 がMIDIファイルを処理する直前に必要な周波数補正されたパッチをすべて導 出するか、または、(2)PCオーディオ回路がファイルを通じて処理を行なう とともに各パッチを導出するかのいずれかに方向付けることができる。 PCオーディオ回路が周波数補正されたパッチを処理するときには、パッチの より高い周波数に対処するため調整を行なわねばならない。ドライバソフトウェ アが、PCオーディオ回路をこれらの調整を行なうようプログラミングする。た とえば、もしPCオーディオ回路がもともとFc=8でデジタルオーディオ信号 を発生するようプログラミングされているが、PCオーディオ回路がFeff=4の 周波数補正されたパッチを処理するのであれば、PCオーディオ回路はデータが Fc=2で処理されるよう、データを処理するための周波数比を4で割るようプ ログラミングされる。デジタル回路においては2の因数で除算を行なう方が容易 なので、周波数補正されたファイルは好ましくは2の因数である有効周波数を有 するべきである。 図面の簡単な説明 以下の図面に関連して好ましい実施例および代替的な実施例の以下の詳細な説 明を考慮するとき、この発明のより良い理解を得ることができる。 図1は、ホストコンピュータのシステムバスとインターフェイスする、この発 明のPCオーディオ回路のブロック図である。 図2は、どのようにメモリをこの発明のキャッシュメモリ内に割当てることが できるかを示す図である。 図3は、システムバスおよび内部バスとインターフェイスする、この発明のP CIバスインタフェースブロックのブロック図である。 図4は、内部バスとインターフェイスする、この発明の出力制御ステートマシ ンのブロック図である。 図5は、この発明により周波数補正されたウェーブテーブル・データを提供す るPCオーディオシステムのブロック図である。 詳細な説明 I.PCオーディオ回路の概観 以下の説明は、モノリシック集積回路上に形成できるPCオーディオ回路の好 ましい実施例および代替的実施例を示す。PCオーディオ回路は、中央プロセッ サ、システムメモリおよびシステムバスを含む種類のホストパーソナルコンピュ ータにインターフェイスし、これにオーディオ面の向上を行なうよう設計される 。この発明のPCオーディオ回路と先行技術によるPCオーディオ回路との根本 的な違いは、ローカルメモリの大きさが著しく減じられており(たとえば8−3 2キロバイトであり)、同時にウェーブテーブル・データ全体の部分しか記憶で きない点である。代わって、ウェーブテーブル・データすべて(たとえば1−4 メガバイト)はホストPCのシステムメモリ内に記憶され、PCオーディオ回路 の必要に応じて、キャッシュメモリとしても知られるPCオーディオ回路のロー カルメモリに部分的に転送される。PCオーディオ回路は、データを使用して、 音楽またはサウンドエフェクトなどのデジタルオーディオ信号を発生する。 「発明の背景」で説明したように、もしシステムメモリがウェーブテーブル・ データの記憶のために利用されそれによってローカルメモリの大きさが減じられ るのであれば、PCオーディオ回路の全体としてのコストが減じられるであろう 。しかし、システムメモリを使用すると、(i)容認できない割合のシステムバ スの帯域幅が使用されるのではないか、および(ii)PCオーディオ回路がホス トコンピュータの最大バス待ち時間よりも高速でウェーブテーブル・データを処 理 するのではないか、という懸念が生じる。この発明のPCオーディオ回路は、こ れらの懸念を緩和するよう設計される。 オーディオ用の典型的なフレーム速度は、44.1KHzである。このフレー ム速度では、各フレームは約22.7マイクロ秒である。したがって、もし先行 技術のPCオーディオ回路が1フレームの間に32個の音声を発生するのであれ ば、この短い時間期間の間にメモリに対し32回のデータアクセスが行なわれな ければならない。もしデータアクセスがローカルメモリに対するものであればこ れは問題とならない。しかし、もしこの数のアクセスがシステムメモリに対して 行なわれるのであれば、バスの帯域幅使用およびバス待ち時間が懸念となってく る。 先行技術のシステムとは異なり、この発明のPCオーディオ回路は、次に指定 された音声を処理する前に、音声に対するデータサンプルのいくつかのフレーム を処理する。したがって、所与の音声に対するいくつかのウェーブテーブル・デ ータサンプルを一度にシステムメモリから引出し、キャッシュメモリ内で利用可 能にすることができ、これによって、必要とされるメモリへのアクセス総数を減 じ、バス帯域幅の使用割合を減じる。また、この態様でデータサンプルを処理す ると、ある並行処理動作が可能になる。たとえば、活性の音声に対し複数のデー タサンプルが処理されている間に、データサンプルの他のグループをシステムメ モリから引出し、PCオーディオ回路のキャッシュメモリ内での処理のために利 用可能にすることができる。これにより確実にデータが連続的に供給され、バス アクセスの待ち時間に関しての懸念が減じられる。 この発明のPCオーディオ回路は、一度にいくつかのウェーブテーブル・デー タサンプルを引出すので、音声のデータサンプルがシステムメモリ内でブロック として合せて組織化されていることが好ましい。したがって、もし連続したデー タサンプルの列が要求されたならば、ブロックになったデータサンプル全体に対 し増分していくシステムメモリのページモードを使用してこれらにアクセスする ことができる。もし、システムメモリとPCオーディオ回路との間のバスがPC Iバス(すなわちより高性能のバス)であれば、ページモードを通じてアクセス されたデータをバーストモードで(すなわちより高速で)PCオーディオ回路に 伝送することができる。バーストモードの使用により、最大バス待ち時間および 帯域幅使用割合が減じられる。 II.PCオーディオ回路アーキテクチャ 図1は、PCオーディオ回路の好ましいアーキテクチャを示す。図示するよう に、PCオーディオ回路10は、PCIバスインタフェースブロック12、内部 アドレスデータバス14、デジタル信号プロセッサ16、出力制御ステートマシ ン18、内部バスアービタ20およびキャッシュメモリ22を含む。データは、 PCIバス24からPCIインターフェイスブロック12を通り内部バス14を わたってキャッシュ22へとわたされる。キャッシュ22を含むPCオーディオ 回路10は、モノリシック集積回路上に形成することができる。図1の破線のボ ックスは、このような集積回路の好ましい実施例の外辺を表わす。代替的に、キ ャッシュ22は回路の外部にあってもよい。 デジタル信号プロセッサ(DSP)16は、ここに引用により援用されるノリ ス他による米国特許出願連続番号第08/334,461号に開示されるウェー ブテーブル・シンセサイザDSPと同じようにデータに対して動作する。言換え ると、この発明のDSP16は、生のウェーブテーブル・データを所望のアナロ グオーディオ信号への変換に適したデジタルオーディオ信号に翻訳するため、計 算および他の処理を行なう。DSP16は、ROMコード26内に記憶される命 令によって動作し、好ましくは44.1KHzのフレーム速度で32個までの個 別のデジタルオーディオ信号または音声を発生することができる。しかし、上に 引用した特許出願に開示されるウェーブテーブル・シンセサイザとは異なり、こ の発明のDSP16は、フレームごと音声ごとに1つのデータサンプルではなく 、音声ごとにウェーブテーブル・データサンプルのいくつかのフレームを処理す る。DSP16の実現の詳細は、当業者の有する技量のレベル内にある。 DSP16により各音声に対して発生されたデジタルオーディオ信号は、外部 オーディオデジタル−アナログ変換器(DAC)へポート28を通つて出力され る準備ができるまで、キャッシュ22内に蓄積されるかまたは、別個のキャッシ ュメモリ内に蓄積されうる。出力制御ステートマシン(OCSM)18は、44 .1KHzのサンプル速度でのキャッシュ22から外部DACへの蓄積されたデ ー タの伝送の責任を持つ。OCSM18は、確実にサンプル速度と同期するよう、 それ自身の16.9344MHzクロック30を利用する。内部バスアービタ( IBA)20は、OCSM18、キャッシュ22、PCIインターフェイスブロ ック(PCI I/Fブロック)12およびDSP16を含む、内部バス14に アクセスするであろうさまざまなブロック間でのトラフィックの方向付けの責任 を持つ。内部バス14は、PCI規格の部分として提供されるクロック32によ り、ほとんどの論理とともに、33MHzで動作する。 内部バス 内部バス14は32ビットデータバスおよび16ビットアドレスバ スを有する。内部バスのアドレスマップは以下のとおりである。 PCIバス PCIバスは、標準PCIプラグアンドプレイ回路を通じて25 6個のI/O(バイト幅の)アドレスのブロックを割当てられる。これらのアド レスは、システムの中央プロセッサにより以下のように使用される。 ウェーブテーブル・キャッシュRAM キャッシュ22は、約8から32キロ バイトの容量を有する低コストSRAMであることが好ましい。キャッシュ22 内の利用可能なメモリは、データサンプル記憶装置、累算器記憶装置およびDS P16用の一般記憶装置に割当てることができる。図2は、どのように利用可能 なメモリをデータサンプル記憶装置および累算器記憶装置の間で適切に割当てる ことができるかを示している。データサンプルはデータ待ち行列「A」および「 B」内に記憶することができ、一方、DSP16により発生されたデジタルオー ディオ信号(発生されたデータサンプル)は累算器待ち行列「A」および「B」 内に記憶することができる。図2を参照されたい。データ待ち行列AおよびBは 各々、32個の音声の各々に対する64個の16ビットデータサンプルまで記憶 することができる。累算器待ち行列AおよびBは各々、32個までの音声に対し 発生されたデータサンプルを蓄積することができる。発生されたデータサンプル は、1組の16ビットデータサンプルとして待ち行列AまたはB内に合せて蓄積 される。1組の中に64個までのデータサンプルが存在し得る。 データ待ち行列AおよびBは合せて8キロバイトまで記憶でき、一方累算器待 ち行列AおよびBは合せて256バイトまで記憶できる。一般的DSP記憶装置 用にキャッシュ22内に付加的なメモリを設けることができる。 好ましくは、音声のための2つのデータ待ち行列の一方が、システムメモリか らデータサンプルが引出されるに従ってデータサンプルを記憶するために使用さ れ、一方、他方のデータ待ち行列はデータサンプルをDSP16に供給する。し たがって、もしデータ待ち行列AがデータサンプルをDSP16に供給するので あれば、データ待ち行列Bがシステムメモリから引出されるデータサンプルを記 憶する。データ待ち行列Bは、DSP16により処理されるべきデータサンプル の次の組で占められ、DSPがデータ待ち行列A内のデータサンプルの処理を完 了する前にいっぱいにならなければならない。さもなければ、発生されるデジタ ルオーディオ信号内に不所望のギャップができるであろう。データ待ち行列A内 のすべてのデータサンプルが処理されてしまったとき、データ待ち行列Aおよび Bはトグルし、DSP16はデータ待ち行列B内に記億されたデータサンプルを 処理し、システムメモリから引出されるデータサンプルはデータ待ち行列A内に 記憶される。このプロセスがDSP16がデータサンプルを処理し続ける限り続 く。 同様に、累算器待ち行列の一方が、外部DACに、蓄積されたデータサンプル を供給するために使用され一方、他方の累算器はDSP16により発生されたデ ータサンプルを蓄積する。したがって、もし累算器待ち行列Aが蓄積されたデー タサンプルを供給するのであれば、累算器待ち行列Bがデータサンプルを蓄積す る。活性の音声のすべてに対して、発生されたデータサンプルは、累算器待ち行 列A内のデータサンプルがすべて外部DACに伝送されてしまうよりも前に、累 算器待ち行列B内に蓄積されねばならない。さもなければ、アナログ信号内にギ ャップができるであろう。累算器待ち行列A内のデータサンプルがすべて外部D ACに伝送されてしまったとき、累算器待ち行列AおよびBはトグルし、データ 待ち行列B内に蓄積されたデータサンプルが外部DACに伝送され、発生された データサンプルがデータ待ち行列A内に蓄積される。この発明の全体動作を以下 にさらに説明する。 この発明に適したウェーブテーブル・キャッシュのためのアドレスマップは以 下のとおりである。 PCIインターフェイス 図3は、PCIインターフェイスブロック12のブ ロック図を示す。PCIインターフェイスブロック12は、PCIインターフェ イスコントローラ34、バッファ36および38、内部バスアドレスレジスタ4 0ならびにPCI I/Fブロックレジスタ42を含む。図示するように、PC Iコントローラ34は、PCIアドレスバス、バッファ36および38、内部バ スアドレスレジスタ40ならびにPCI I/Fブロックレジスタ42に接続さ れる。バッファ36は、PCIデータバス、PCIコントローラ34、内部バス アドレスレジスタ40および内部データバスに接続し、一方、バッファ38は、 PCIアドレスバス、PCIコントローラ34およびPCI I/Fブロックレ ジスタ42に接続する。内部バスアドレスレジスタ40は、PCIコントローラ 34、内部アドレスバス、内部データバスおよびバッファ36に接続する。最後 にPCI I/Fブロックレジスタ42は、バッファ38、PCIコントローラ 34ならびに内部データバスおよびアドレスバスに接続される。 PCI I/Fブロックレジスタ42は、どの音声が、キャッシュ内への付加 的なデータサンプルの記憶およびシステムメモリ内のアドレスのデータサンプル の獲得を必要としているかを示す、状態およびアドレス情報を含む。これらのレ ジスタの詳細な説明は、内部バスのための先述のアドレスマップに示す。内部バ スアドレスレジスタ40は、システム中央プロセッサによって、内部バス上のP Cオーディオ回路レジスタにアクセスするため使用される。たとえば、中央プロ セッサは、ウェーブテーブル・データ記憶位置を示すシステムメモリアドレスを 書込むために、PCI I/Fブロックレジスタへのアクセスを必要とするであ ろう。内部バスアドレスレジスタ40はまた、システムメモリからのウェーブテ ーブル・データサンプルがそこに記憶されているキャッシュ22のアドレスを記 憶する。先述のI/Oアドレステーブル内に示すように、中央プロセッサは、内 部バスアドレスレジスタ40内にバッファ36を介してそのアドレスを書込むこ とによって、内部バスを通じてレジスタにアクセスする。特定のレジスタへの書 込または読出アクセスは、上の表に特定するポートを通じて行なわれる。 PCI I/Wブロックレジスタ42内に記憶される状態情報に基づき、PC Iインターフェイスコントローラ34はデータサンプルでキャッシュ22を更新 する必要があるときを検出し、バスマスタ要求を開始する。PCIインターフェ イスコントローラ34の制御下で、そこからデータサンプルが引出されるはずの システムメモリ内のアドレスが、PCIインターフェイスブロックレジスタ42 からバッファ38を通じてPCIアドレスバスに送られる。システムメモリから 引出されたデータサンプルはPCIデータバス上でバッファ36へと送られる。 PCIインターフェイスコントローラ34の制御下で、バッファ36内のデータ サンプルは内部データバス上でキャッシュ22へと伝送される。データサンプル を記憶するためのキャッシュ22内のアドレスは、内部バスアドレスレジスタ4 0内に含まれ、内部アドレスバス上で伝送される。好ましくは、PCIインター フェイスブロック12は、一度に2つ以上の活性の音声に対するデータサンプル を要求できる。 PCIコントローラ34は、どの音声が更新中であるか、待ち行列AまたはB が更新中であるか、そして待ち行列のどの32ビットワードが更新中であるかを 決定することによって、データサンプルを記憶するためのキャッシュアドレスを 計算する。PCIコントローラ34は、待ち行列内のどのサンプルが次にPCI インターフェイスブロック12により更新されるべきであるかを決定するため、 各音声に対して1つずつ、32個の5ビットカウンタを含む。PCIインターフ ェイスブロックレジスタ42は、各音声がどの待ち行列を現在使用しているかを 示すため、各音声に対し1つずつ32個の1ビットトグルレジスタを含む。これ らのレジスタは、待ち行列がPCIインターフェイスブロック12によりいっぱ いになるごとにトグルする。PCIコントローラ34は、計算されたキャッシュ アドレスを内部バスアドレスレジスタ40内に記憶し、それらが内部アドレスバ スに出力されるときを制御する。PCIインターフェイスブロック12の実現の 詳細は、当業者の有する技量のレベル内にある。 出力制御ステートマシン 図4は、OCSM18のブロック図を示す。図示す るように、OCSM18は、バッファを備える制御ブロック46と、アドレスデ コードおよび制御ブロック48と、7ビットカウンタ50と、22.66マイク ロ秒タイマ54とを含む。図示するように、制御ブロック46は、内部アドレス バスおよび内部データバス、アドレスデコードおよび制御ブロック48、7ビッ トカウンタ50ならびにFIFO52に接続される。アドレスデコードおよび制 御ブロック48は、内部アドレスバス、制御ブロック46、7ビットカウンタ5 0およびタイマ54に接続される。7ビットカウンタ50は、アドレスデコード および制御ブロック48、制御ブロック46およびFIFO52に接続される。 7ビットカウンタは、上述の内部バスのためのアドレスマップ内に説明されてお り、OCSMサンプルカウントレジスタと呼ばれる。FIFO52は、一方を頂 部位置に他方を底部位置に、2つのデータサンプルを記憶でき、制御ブロック4 6、7ビットカウンタ50、タイマ54および外部DACに接続される。タイマ 54は、アドレスデコードおよび制御ブロック48、FIFO52およびクロッ ク発生器30に接続する。 DSP16は、その制御レジスタに書込することによりOCSM18を可能化 する。一旦OCSM18が可能化されると、制御ブロック46の制御下で、キャ ッシュ22内の累算器待ち行列から内部データバス上で制御ブロック46内のバ ッファを通りFIFO52へと2つのデータサンプルが伝送される。タイマ54 により示されるように、22.66マイクロ秒ごとに、FIFO52は底部位置 にあるデータサンプルを頂部位置にシフトし、それによって、そのデータサンプ ルの外部DACへの出力を可能化する。その前に頂部位置にあったデータサンプ ルは廃棄される。同時に、他のデータサンプルがキャッシュ22から引出されF IFO52の底部位置に記憶され、アドレスデコードおよび制御ブロック48の 制御下で7ビットカウンタ50が増分される。アドレスデコードおよび制御ブロ ック48は、7ビットカウンタ50および内部アドレスバス上で供給されるキャ ッシュアドレス情報から、キャッシュ22から引出されるべきデータサンプルの アドレスを計算する。これらの計算されたアドレスは制御ブロック46に送られ 、そこでキャッシュ22から特定のデータサンプルを要求するために使用される 。OCSM18の実現の詳細は、当業者の有する技量のレベル内にある。DSP 16は、データサンプルの次のグループの蓄積を開始する時期を決定するため、 カウンタ50のビット7を監視できる。 内部バスアービタ 内部バスアービタ20は、(i)DSP16(最低優先順 位)、(ii)PCIバスインタフェースブロック12(中間優先順位)および( iii)OCSM18(最高優先順位)からのバス要求に対し固定された優先順位 を有する簡単なアービタである。アービタ20は、最高優先順位を有する要求し てきた装置に対しバスアクセスを認め、この時点で、この装置は自由にアドレス バスおよびREADまたはWRITE信号のいずれかを駆動する。もしアクセス が読出であれば、優先順位のある装置は、データバスからのデータをつかまえる かまたは使用するであろう。もしアクセスが書込であれば、優先順位のある装置 はデータバスを駆動するであろう。アービタ20の実現の詳細は、当業者の有す る技量のレベル内にある。 III.PCオーディオシステムの動作 PCオーディオ回路10の好ましい実施例の立上がりにおいて、活性の音声各 々に対し、128個のデータサンプルがキャッシュ22内にロードされる(デー タ待ち行列AおよびBの各々に対し64個のデータサンプル)。32個の活性の 音声があると仮定すれば、これは必要とされるメモリに対しての最悪の場合であ る。 (32個の音声)(128個のサンプル/音声)(2バイト/サンプル)=8 キロバイト さらに、キャッシュ22は各々64個のデータサンプル容量を有する累算器待ち 行列AおよびBを必要とする。したがって、付加的に必要とされるメモリは、 (2個の待ち行列)(64個のサンプル/待ち行列)(2バイト/サンプル) =256バイト 先述したように、付加的なメモリが、一般DSP動作のために設けられても良い 。 一旦データ待ち行列AおよびBにデータがロードされると、DSP16は、第 1の活性の音声(たとえば、音声0)に対するデータ待ち行列の一方の中のデー タサンプルを処理する。他方のデータ待ち行列はこの時点では不活性である。次 に、DSP16は、次に指定された活性の音声(たとえば、音声1)に対しての データサンプルを処理する。DSP16がこれらのデータサンプルを処理すると 同時にDSP16により発生されたばかりのデータサンプルが累算器待ち行列の 一方の中に蓄積される。この処理は、すべての活性の音声が処理されてしまうま で続き、それから累算器待ち行列はトグルし、第1の累算器待ち行列内に蓄積さ れたデータサンプルを外部DACに出力できる間、他方の累算器待ち行列は発生 されるデータサンプルを蓄積するであろう。 また、一旦、第1のデータ待ち行列内の活性の音声各々に対するデータサンプ ルが処理さてしまうと、PCIインターフェイスブロック12は、システムメモ リからの付加的なデータサンプルに対する要求をPCIバス上で送る。システム メモリから引出されたデータサンプルは第1のデータ待ち行列内に記憶されるた め処理されたばかりのデータサンプルの上に重ね書きされる。これらの付加的な データサンプルが引出される間に、DSP16は他の待ち行列内のデータサンプ ルを処理する。それから、データ待ち行列はトグルし、そして処理は継続し同時 に64個までのデータサンプルを処理することを可能にする。 もし、DSP16が、元のオーディオ信号のアナログ−デジタル変換(記録) の間に使用されるサンプリング周波数と同じ周波数でデータサンプルを処理する のであれば、DSPにより発生されたオーディオ信号がアナログに変換され再生 されるとき、結果として得られるオーディオ信号はデータサンプルを作るために 使用された元のオーディオ信号と同じように聞こえるであろう(すなわち同じ周 波数を有するであろう)。再生されるオーディオ信号の周波数が記録周波数と同 じであるとき、その周波数比(Fc)は1に等しい。たとえば、もし、ピアノの 中央ハ音(中央ハ=440Hz)が記録され、かつFc=1であれば、発生また は再生されるオーディオ信号は記録された信号と同じ周波数であり同じように聞 こえるであろう。もしFc>1であれば、発生されたオーディオ信号はより高い ピッチを有するであろう。Fc=4の場合には、発生されるオーディオ信号は、 記録された信号のサンプリング周波数よりも2オクターブ高くなる。 もし活性の音声各々に対しFc=1であれば、最大許容可能PCIバス待ち時 間は、これが44.1KHzのフレーム速度でデータサンプルの64個のフレー ムを処理するのにかかる時間に等しい。 64フレーム×1/44100秒=1.45ミリ秒 しかし、もし、1つまたは2つ以上の活性の音声に対してFc>1であれば、D SP16は音声当りフレーム当り2つ以上のデータサンプルを処理することにな るので、最大許容可能PCIバス待ち時間が減じられる。言換えると、特定の音 声に対するデータ待ち行列内のデータサンプルは、Fc=1の場合よりも速く消 費される。たとえば、Fc=2であれば、DSP16はデータ待ち行列内のデー タサンプルを1つおきにスキップする。Fcが約2.0よりも大きい場合は、最 大許容可能バス待ち時間の減少が問題になるであろう。 Fc>2の場合の待ち時間の問題は、処理されるであろうデータサンプルのみ を引出しDSP16によりスキップされるであろうデータサンプルは引出さない PCオーディオ回路10を有することにより回避できる。このようにすると、引 出されてキャッシュ22のデータ待ち行列内に記憶されるすべてのデータサンプ ルが処理されるであろう。この特徴は、活性の音声に対するFcの値にアクセス し、かつ次に現在のシステムメモリアドレスおよびFcの値に基づき所与の音声 についてデータを引出すための次のシステムメモリアドレスを計算するための手 段を、PCIインターフェイスブロック12内に設けることにより実現される。 たとえば、もし、所与の活性の音声に対しFc=4であれば、次のシステムメモ リアドレス=現在アドレス+4である。この特徴の実現の詳細は、当業者の有す る技量のレベル内にある。 Fc>1のときに活性の音声各々に対して選択されたデータサンプルを引出す と、データサンプルの伝送のためにバーストモードを使用することができないた め、利用可能なPCI帯域幅が減じられる。しかし、バーストモードを使用しな いとしても、帯域幅の使用割合は通常容認可能なものであると予測される。 PCIバスがバーストモードにあるときは、これは典型的には60ns/32 ビットで動作し、必要とされる帯域幅は、 である(2音声=32ビットであることに注意)。4.2%という帯域幅使用は 極めて容認可能である。もしPCIバスがバーストモードになければ、これは典 型的には4分の1の速さで動作し、帯域幅使用は17%である。17%という帯 域幅使用は容認可能ではあろうが、あまり望ましくなく、過剰な量のPCIバス 帯域幅が使用される危険性を増加させる。 IV.周波数補正されたウェーブテーブル・データの提供によるPCIバス帯域幅 要求の低減 先述したように、1つまたは2つ以上の活性の音声に対しFc>2であるとき 、DSP16がデータサンプルをスキップし、Fc=1であるときよりも速くデ ータサンプルを消費するため、バス待ち時間の問題が生じるであろう。スキップ されるであろうデータサンプルではなく処理されるであろうデータサンプルのみ を引出すPCオーディオ回路10を備えることによって、このバス待ち時間の問 題を回避できる。しかし、選択されたデータサンプルのみがシステムメモリから 引出されるときは、バーストモードを使用することができず、このためPCIバ ス帯域幅使用割合が増加する。この発明の好ましい実施例において、PCオーデ ィオシステムは、システムメモリ内に記憶されバーストモードにおいてキャッシ ュメモリ22に伝送することができるウェーブテーブル・データのパッチまたは 周波数補正されたファイルの作成を容易にするドライバソフトウェアを含み、こ れによってPCIバス帯域幅要求を減じる。周波数補正されたファイルまたはパ ッチは、Fc>2を有する音声に対しDSP16により実際に処理されるであろ うデータサンプルのみを含む。たとえば、Fc=4を有する活性の音声に対して は、DSP16はこの活性の音声に関連するウェーブテーブル・データのパッチ (「元のパッチ」)内の4番目ごとのデータサンプルのみを処理すればよい。ド ライバソフトウェアは4番目ごとのサンプルのみを含む、元のパッチの周波数補 正されたものの作成を容易にする。この周波数補正されたファイルまたはパッチ はシステムメモリ内に記憶され、バーストモードにおいて、DSP16による処 理のためPCオーディオ回路に伝送することができる。 図5は、先述したように周波数補正されたパッチを提供できるPCオーディオ システムのブロック図を示す。PCオーディオシステムは、前述したような種類 のPCオーディオ回路10と、ドライバソフトウェア62と、MIDIまたは比 較可能ファイル64とを含む。PCオーディオ回路10は、PCIバス24を通 じてシステムメモリ60に接続される。ファイル64は、PCオーディオ回路1 0により発生されるであろう歌または他のオーディオ信号を規定するパラメータ を含む。ドライバソフトウェア62は、ファイル64内に含まれるパラメータの 翻訳機能およびシステムメモリ内のウェーブテーブル・データから所望のオーデ ィオ信号を発生するためのPCオーディオ回路10のプログラミング機能を行な う。以下に説明するように、ドライバソフトウェア62はまた、Fcの高い音声 に対し周波数補正されたパッチを提供する機能を制御する命令を含む。 ドライバソフトウェア62内の命令の実行に際し、システムCPUは以下のス テップを行なう。 ステップ1:ファイル64内の音色または音声のためのパラメータを引出す。 ステップ2:これらのパラメータから音声の所望のFcおよび音声に関連するシ ステムメモリ内のウェーブテーブル・データの周波数を計算する。 ステップ3:もしFc>2.0であれば、音声に関連するシステムメモリ内に記 憶されたウェーブテーブル・データのパッチから周波数補正されたパッチを導出 する。周波数補正されたパッチはシステムメモリ内に記憶される。 ステップ1および2において、システムCPUは、ファイル64内の所与の音声 について、その音声がその音声に対するシステムメモリ内のウェーブテーブル・ データの周波数よりも高周波数で再生されるのか否かを決定する。所望の周波数 の、システムメモリ内のデータの周波数に対する比は、その音声に対するFcを 決定する。CPUは次にFcの値を2.0と比較する。Fc>2.0であれば、C PUは以下に説明するように周波数補正されたパッチを導出する。ステップ1か ら3がファイル64内の各音声について繰返される。 周波数補正されたパッチはいくつかの方策で導出することができる。必要とす るCPUの処理が最も少ない一方策は、その音声に対しての元のパッチからウェ ーブテーブル・データサンプルの小部分をシステムメモリ内に記憶されるパッチ または新しいファイルにコピーまたは転置することである。新しいパッチに転置 されるデータサンプルの小部分は、システムCPUにより計算されるFcの値に 基づく。周波数補正されたパッチは、元のパッチの周波数よりも高い周波数を有 する。たとえば、周波数補正されたパッチを作成するために元のパッチから4番 目ごとにデータサンプルがコピーされたのであれば、周波数補正されたパッチの 周波数は元のパッチの周波数の4倍となる。そして、周波数補正されたパッチの 有効周波数(Feff)は4に等しい。 PCオーディオ回路10がデータサンプルのパッチの記録周波数の2倍を超え る周波数(Fc>2)でオーディオ信号を発生するときバス待ち時間の問題が生 ずるので、周波数補正されたパッチを導出するときの目標は、PCオーディオ回 路10が所望のオーディオ信号を発生するためパッチの周波数を2倍よりも高く する必要がない、十分に高い有効パッチ周波数を提供することである。たとえば 、もしFc=8であれば、システムCPUはデータサンプルを4番目ごとに新し いファイルまたはパッチにコピーしなければならない。新しいファイルまたはパ ッチは、「周波数補正」されており、有効周波数は4(Feff=4)である。し たがって、PCオーディオ回路10は、Fc=8のオーディオ信号を提供するた めにこの周波数補正されたパッチを周波数のたった2倍で処理することができる 。もし、PCオーディオ回路10がそうではなくてウェーブテーブル・データの 元のパッチを処理するのであれば、PCオーディオ回路は所望のオーディオ信号 を発生するために記録周波数の8倍(Fc=8)でデータを処理しなければなら ないであろうから、バス待ち時間の問題が発生する。 周波数補正されたパッチを導出する他の方策は、ウェーブテーブル・データサ ンプルの元のパッチをデジタル方式でフィルタリングすることである。デジタル 方式のフィルタリングにはより多くのCPU処理が必要であるが、ウェーブテー ブル・データサンプルの小部分をパッチ内に転置する先述した技術よりも好まし い。上述の技術において、ウェーブテーブル・データのパッチの高周波数成分が 周波数補正されたパッチ内のノイズに翻訳される。デジタル方式でのフィルタリ ングにより高周波数成分が除去され、したがってよりクリアな音を提供する周波 数補正されたパッチが得られる。デジタルフィルタリング技術の一例は、n番目 ごとのサンプルの平均を取るというものである。たとえば、Fc=8の音声につ いては、CPUは周波数補正されたパッチを導出するため、4番目ごとのサンプ ルの平均をとることができよう。デジタルフィルタリング技術のさらなる例は、 さらに多くのCPU処理パワーを必要とするものだが、移動平均の平均を計算す るものである。 システムCPUは、ドライバソフトウェア62によって、(1)PCオーディ オ回路10がMIDIファイル64を処理する直前に必要とされる周波数補正さ れたパッチをすべて導出するか、または(2)PCオーディオ回路10がファイ ル64を通じて処理を行なうとともに各パッチを導出するかのいずれかに方向付 けることができる。前者の技術においては、周波数補正されたパッチすべてがP Cオーディオ回路10による処理の前に導出されシステムメモリ内に記憶される のでより多くのメモリが必要である。前者の技術はまた、MIDIファイル64 を再生できるようになるまでに遅延を生ずる。もしCPUがファイル64の処理 に伴う必要な計算を行なうために十分なパワーおよび余剰時間を有するのであれ ば、後者の技術が好ましい。 PCオーディオ回路10が周波数補正されたパッチを処理するときには、パッ チのより高い周波数に対処するため調整を行なわなければならない。たとえば、 もし音声に対してはFc=8であり、かつ、周波数補正されたパッチに対しては Feff=4であれば、PCオーディオ回路10は、Fc=8のデジタルオーディオ 信号を発生するため、この周波数の8倍ではなくこの周波数の2倍でパッチを処 理するだけでよい。ドライバソフトウェア64が、PCオーディオ回路10をこ れらの調整を行なうようプログラミングする。たとえば、もしPCオーディオ回 路10がもともとFc=8でデジタルオーディ.オ信号を発生するようプログラミ ングされているが、PCオーディオ回路がFeff=4の周波数補正されたパッチ を処理するのであれば、PCオーディオ回路はデータがFc=2で処理されるよ う、データを処理するための周波数比を4で割るようプログラミングされる。デ ジタル回路においては2の因数で除算を行なう方が容易なので、周波数補正され たファイルは好ましくは2の因数である有効周波数を有するべきである。 上の議論は、PCIバス帯域幅要求を減じるための周波数補正されたパッチの 使用に焦点を当てているが、周波数補正されたパッチは、システムメモリからで はなくローカルメモリからウェーブテーブル・データを獲得するPCオーディオ システムにおいても応用される。先に延べたように、ウェーブテーブル・データ のパッチをデジタル方式でフィルタリングすることで、パッチが記録周波数より も高い周波数で再生されるとき(たとえば、Fc>2)ノイズに翻訳される高周 波数がフィルタにより取除かれる。ローカルメモリ内に記憶され、高周波数比の デジタルオーディオ信号を発生するためウェーブテーブル・シンセサイザにより 使用されるはずのウェーブテーブル・データは、シンセサイザがきれいなデジタ ルオーディオ信号を発生するよう、上述のデジタルフィルタリング技術により前 処理できる。 したがって、この発明は、この目的の実現によく適応し、ここに説明した目標 および利点ならびにこの開示から明らかとなる他の目標および利点を達成する。 開示を目的として、この発明の好ましい実施例を説明してきたが、ここに説明し たこれらの実施例に対する多くの変更および修正は、当業者には明らかであり、 この発明の精神および添付した請求の範囲の範囲内に包含される。
───────────────────────────────────────────────────── 【要約の続き】 にシステムメモリ内にこれを記憶することにより、緩和 される。活性の音声各々に対して発生されたデジタルオ ーディオ信号はキャッシュメモリ(22)内に蓄積され る。すべての活性の音声に対するデジタルオーディオ信 号が蓄積されてしまったときは、キャッシュメモリ(2 2)から外部デジタル−アナログ変換器に蓄積されたデ ータが伝送される。ウェーブテーブル・データはシステ ムメモリ内に記憶されるので、キャッシュメモリ(2 2)は先行技術によるPCオーディオ回路内のローカル メモリよりも小さくかつより低価格である。したがっ て、ここに説明するPCオーディオ回路(10)は全体 コストがより低くなる。

Claims (1)

  1. 【特許請求の範囲】 1.第1の周波数で記録されメモリ内に記憶されるウェーブテーブル・データの 第1のパッチの周波数補正されたものを提供する方法であって、前記周波数補正 されたパッチは前記メモリ内に記憶され、前記第1のパッチまたは前記周波数補 正されたパッチのいずれかがデジタルウェーブテーブル・オーディオ・シンセサ イザにより前記メモリからアクセスされ、かつ前記第1の周波数よりも高い第2 の周波数を有するデジタルオーディオ信号を発生するため使用され、前記周波数 補正されたパッチから発生されるデジタルオーディオ信号は、前記第1のパッチ から発生されるデジタルオーディオ信号よりもノイズが少なく、前記方法は、 (a) 前記メモリからウェーブテーブル・データの前記第1のパッチにアク セスするステップと、 (b) ウェーブテーブル・データの前記第1のパッチから、ウェーブテーブ ル・データの前記第1パッチのデジタル方式でフィルタリングされたものを表わ しかつ前記第1の周波数よりも大きい第3の周波数を有するウェーブテーブル・ データのパッチを導出するステップとを含み、ウェーブテーブル・データの前記 導出されたパッチは前記周波数補正されたパッチを含み、前記方法はさらに、 (c) 前記第2の周波数を有するデジタルオーディオ信号の発生における前 記デジタル・オーディオ・シンセサイザによる使用のために前記周波数補正され たパッチを前記メモリ内に記憶するステップとを含む、ウェーブテーブル・デー タの第1のパッチの周波数補正されたものを提供する方法。 2.デジタルウェーブテーブル・オーディオ・シンセサイザのシステムバス帯域 幅要求を減じるため、ウェーブテーブル・データの周波数補正されたパッチを提 供する方法であって、前記シンセサイザは、中央プロセッサと第1の周波数で記 録されたウェーブテーブル・データの1つまたは2つ以上のパッチを記憶するシ ステムメモリとシステムバスとを含む種類のホストパーソナルコンピュータをオ ーディオ面で向上させ、前記シンセサイザは、システムメモリ内に記憶されたウ ェーブテーブル・データのパッチを処理しかつ第2の周波数を有するデジタルオ ーディオ信号を発生するようプログラミングされ、前記方法は、 (a) システムメモリ内に記憶されたウェーブテーブル・データの第1のパ ッチについて、前記第2の周波数の前記第1の周波数に対する比を計算するステ ップと、 (b) もし前記比が予め定められた値よりも大きければ、前記システムメモ リからウェーブテーブル・データの前記第1のパッチにアクセスするステップと 、 (c) システムメモリからアクセスされたウェーブテーブル・データの前記 第1のパッチから、ウェーブテーブル・データの前記第1のパッチのデジタル方 式でフィルタリングされたものを表わしかつ前記第1の周波数よりも大きい第3 の周波数を有するウェーブテーブル・データのパッチを導出するステップとを含 み、ウェーブテーブル・データの前記導出されたパッチは前記周波数補正された パッチを含み、前記方法はさらに、 (d) 前記第2の周波数を有するデジタルオーディオ信号の発生における前 記デジタルウェーブテーブル・オーディオ・シンセサイザによる使用のために、 システムメモリ内にウェーブテーブル・データの前記周波数補正されたパッチを 記憶するステップとを含む、ウェーブテーブル・データの周波数補正されたパッ チを提供する方法。 3.前記予め定められた値は約2.0よりも大きい、請求項2に記載のウェーブ テーブル・データの周波数補正されたパッチを提供する方法。 4.前記第2の周波数の前記第3の周波数に対する比は、約2.0以下である、 請求項3に記載のウェーブテーブル・データの周波数補正されたパッチを提供す る方法。 5.デジタルウェーブテーブル・オーディオ・シンセサイザのシステムバス帯域 幅要求を減じるため、ウェーブテーブル・データの周波数補正されたパッチを提 供する方法であって、前記シンセサイザは、中央プロセッサと、第1の周波数で 記録されたウェーブテーブル・データの1つまたは2つ以上のパッチを記憶する システムメモリと、システムバスとを含む種類のホストパーソナルコンピュータ をオーディオ面で向上させ、前記シンセサイザは、システムメモリ内に記憶され たウェーブテーブル・データのパッチを処理しかつ第2の周波数を有するデジタ ルオーディオ信号を発生するようプログラミングされ、前記方法は、 (a) システムメモリ内に記憶されたウェーブテーブル・データの第1のパ ッチについて、前記第2の周波数の前記第1の周波数に対する比を計算するステ ップと、 (b) もし前記比が予め定められた値よりも大きければ、前記システムメモ リからウェーブテーブル・データの前記第1のパッチにアクセスするステップと 、 (c) システムメモリからアクセスされた前記第1のパッチ内のデータサン プルの小部分を転置するステップとを含み、データサンプルの前記小部分は前記 周波数補正されたパッチを含み、かつ前記第1の周波数よりも大きい第3の周波 数を有し、前記方法はさらに、 (d) 前記第2の周波数を有するデジタルオーディオ信号の発生における前 記デジタルウェーブテーブル・オーディオ・シンセサイザによる使用のために、 システムメモリ内にウェーブテーブル・データの前記周波数補正されたパッチを 記憶するステップとを含む、ウェーブテーブル・データの周波数補正されたパッ チを提供する方法。 6.前記予め定められた値は約2.0よりも大きい、請求項5に記載のウェーブ テーブル・データの周波数補正されたパッチを提供する方法。 7.前記第2の周波数の前記第3の周波数に対する比は、約2.0以下である、 請求項6に記載のウェーブテーブル・データの周波数補正されたパッチを提供す る方法。
JP9530362A 1996-02-21 1997-02-21 周波数補正されたウェーブテーブル・データを備えるpcオーディオシステム Ceased JP2000505566A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US60455896A 1996-02-21 1996-02-21
US08/604,558 1996-02-21
PCT/US1997/002811 WO1997031363A1 (en) 1996-02-21 1997-02-21 Pc audio system with frequency compensated wavetable data

Publications (2)

Publication Number Publication Date
JP2000505566A true JP2000505566A (ja) 2000-05-09
JP2000505566A5 JP2000505566A5 (ja) 2004-11-25

Family

ID=24420092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9530362A Ceased JP2000505566A (ja) 1996-02-21 1997-02-21 周波数補正されたウェーブテーブル・データを備えるpcオーディオシステム

Country Status (5)

Country Link
EP (1) EP0882286B1 (ja)
JP (1) JP2000505566A (ja)
KR (1) KR100384685B1 (ja)
DE (1) DE69702336T2 (ja)
WO (1) WO1997031363A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366971B1 (en) 1998-01-09 2002-04-02 Yamaha Corporation Audio system for playback of waveform sample data
US6180864B1 (en) * 1998-05-14 2001-01-30 Sony Computer Entertainment Inc. Tone generation device and method, and distribution medium
DE10219357B4 (de) * 2002-04-30 2004-03-11 Advanced Micro Devices, Inc., Sunnyvale Verbesserter Datentransfer in Audiocodeccontrollern

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6029794A (ja) * 1983-07-29 1985-02-15 ヤマハ株式会社 電子楽器
JP2623942B2 (ja) * 1990-09-05 1997-06-25 ヤマハ株式会社 楽音信号発生装置
GB9103239D0 (en) * 1991-02-15 1991-04-03 Kemp Michael J Improvements relating to data storage techniques

Also Published As

Publication number Publication date
EP0882286B1 (en) 2000-06-21
KR19990087044A (ko) 1999-12-15
WO1997031363A1 (en) 1997-08-28
KR100384685B1 (ko) 2003-08-14
DE69702336T2 (de) 2001-02-15
EP0882286A1 (en) 1998-12-09
DE69702336D1 (de) 2000-07-27

Similar Documents

Publication Publication Date Title
US6100461A (en) Wavetable cache using simplified looping
US5689080A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory which minimizes audio infidelity due to wavetable data access latency
US5717154A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory employing a high priority I/O bus request mechanism for improved audio fidelity
US5768628A (en) Method for providing high quality audio by storing wave tables in system memory and having a DMA controller on the sound card for transferring the wave tables
US5847304A (en) PC audio system with frequency compensated wavetable data
US5753841A (en) PC audio system with wavetable cache
US6366971B1 (en) Audio system for playback of waveform sample data
US7381879B2 (en) Sound waveform synthesizer
US6137046A (en) Tone generator device using waveform data memory provided separately therefrom
US5763801A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory
US5809342A (en) Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
JP3163984B2 (ja) 楽音発生装置
JP2000505566A (ja) 周波数補正されたウェーブテーブル・データを備えるpcオーディオシステム
EP1024475B1 (en) Musical sound generating device and method, providing medium, and data recording medium
EP0801784A1 (en) Pc audio system with wavetable cache
JP3855711B2 (ja) 音波形データ用ディジタル信号処理装置
US5901333A (en) Vertical wavetable cache architecture in which the number of queues is substantially smaller than the total number of voices stored in the system memory
KR20010021575A (ko) 음 발생 장치 및 방법
JPH07121181A (ja) 音声情報処理装置
JP3039468B2 (ja) カラオケ装置
JP2000293169A (ja) 楽音生成装置
JP2709965B2 (ja) Bgm再生に用いる音楽伝送再生システム
JP3695404B2 (ja) 波形処理デバイス
JP3322279B2 (ja) カラオケ装置
JPS6155127B2 (ja)

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040205

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070116

A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20070606

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070724