JP2010522360A - オーディオファイルを処理するための波形フェッチ装置 - Google Patents

オーディオファイルを処理するための波形フェッチ装置 Download PDF

Info

Publication number
JP2010522360A
JP2010522360A JP2010501072A JP2010501072A JP2010522360A JP 2010522360 A JP2010522360 A JP 2010522360A JP 2010501072 A JP2010501072 A JP 2010501072A JP 2010501072 A JP2010501072 A JP 2010501072A JP 2010522360 A JP2010522360 A JP 2010522360A
Authority
JP
Japan
Prior art keywords
waveform
waveform sample
request
samples
audio processing
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.)
Granted
Application number
JP2010501072A
Other languages
English (en)
Other versions
JP5199334B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2010522360A publication Critical patent/JP2010522360A/ja
Application granted granted Critical
Publication of JP5199334B2 publication Critical patent/JP5199334B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G10KSOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
    • G10K15/00Acoustics not otherwise provided for
    • G10K15/02Synthesis of acoustic waves
    • 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
    • G10H1/00Details of electrophonic musical instruments
    • 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/641Waveform sampler, i.e. music samplers; Sampled music loop processing, wherein a loop is a sample of a performance that has been edited to repeat seamlessly without clicks or artifacts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

本開示は、1つまたは複数のオーディオファイル、例えば電子楽器デジタルインタフェース(MIDI)ファイル等、から生成された様々なオーディオ合成パラメータ、をサービス提供するために同時に動作する複数のハードウェア処理エレメントのそれぞれのために波形サンプルを検索するように動作する、波形フェッチ装置を利用する技術を説明する。一例においては、方法は、オーディオ処理エレメントから波形サンプルについてのリクエストを受信することと、リクエストに含まれた位相インクリメントと、リクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードと、に基づいて、リクエストされた波形サンプルについての波形サンプル数を計算し、波形サンプル数を使用してローカルキャッシュから波形サンプルを検索し、リクエストしているオーディオ処理エレメントに対して検索された波形サンプルを送信することによって、リクエストをサービス提供することと、を備えている。

Description

関連出願
(米国特許法第119条の下の優先権主張)
本願は、ここでの譲受人に譲渡され、ここに参照することによりここに明示的に組み込まれ、2007年3月22日に出願された「オーディオファイルを処理するための波形フェッチ装置(“Waveform fetch unit for processing audio files”)」と題された米国仮特許出願第60/896,414号の優先権を主張する。
本開示は、オーディオデバイス(audio devices)に関し、より具体的には、電子楽器デジタルインタフェース(musical instrument digital interface)(MIDI)のようなオーディオフォーマットに基づいてオーディオ出力を生成するオーディオデバイスに関する。
背景
電子楽器デジタルインタフェース(MIDI)は、音楽、スピーチ、音色(tones)、アラート、及び同様なもののような、オーディオサウンドの、作成(creation)、通信(communication)及び/または再生(playback)において使用されるフォーマットである。MIDIフォーマット再生をサポートするデバイスは、様々な「ボイス(voices)」を作成するために使用されることができるオーディオ情報のセット(sets of audio information)を保存することができる。各ボイスは、例えば特定の楽器による音符(musical note)のような、1つまたは複数のサウンドに対応することができる。例えば、第1のボイスは、ピアノによって演奏されるような中央C(middle C)に対応することができ、第2のボイスはトロンボーンによって演奏されるような中央Cに対応することができ、第3のボイスは、トロンボーン等によって演奏されるようなD#などに対応することができる。特定の楽器によって演奏されるような音符を複製する(replicate)ために、MIDIコンプライアントデバイス(MIDI compliant device)は、例えば低周波数発振器のビヘービア、ビブラートのような効果、そしてサウンドの認知に影響を与えることができる多数の他のオーディオ特性、のような様々なオーディオ特性を指定するボイス、についての1セットの情報を含むことができる。ほとんどのどの音も、MIDIファイルで定義され、伝達され、MIDIフォーマットをサポートするデバイスによって再生される(reproduced)ことができる。
MIDIフォーマットをサポートするデバイスは、デバイスが音符(note)を作成することを開始すべきであるということを示すイベント(event)が生じるときに、音符(あるいは他のサウンド)を作ることができる。同様に、デバイスは、デバイスが音符を作ることを停止すべきであるということを示すイベントが生じるときに、音符を作ることを止める。全体の音楽作品(entire musical composition)は、いつあるボイスが開始し停止すべきかを示すイベントを指定することによって、MIDIフォーマットにしたがって符号化されることができる。このように、音楽作品はMIDIフォーマットにしたがってコンパクトファイルフォーマット(compact file format)で、保存され送信されることができる。
MIDIは、広範囲のデバイス(devices)においてサポートされている。例えば、無線電話(radiotelephones)のような無線通信デバイスは、着信音(ringtones)あるいは他のオーディオ出力のようなダウンロード可能なサウンドについて、MIDIファイルをサポートすることができる。アップルコンピュータ社によって販売される「iPod」デバイス、また、マイクロソフト株式会社によって販売される「Zune」デバイス、のようなデジタル音楽プレイヤー(Digital music players)はまた、MIDIファイルフォーマットをサポートすることができる。MIDIフォーマットをサポートする他のデバイスは、様々なミュージックシンセサイザー(music synthesizers)、無線モバイルデバイス、ダイレクト双方向通信デバイス(direct two-way communication devices)(しばしばウォーキートーキーと呼ばれる)、ネットワーク電話、パーソナルコンピュータ、デスクトップ且つラップトップコンピュータ、ワークステーション(workstations)、衛星無線デバイス(satellite radio devices)、インターコムデバイス(intercom devices)、無線ブロードキャスティングデバイス(radio broadcasting devices)、ハンドヘルドゲーミングデバイス(hand-held gaming devices)、デバイスにおいてインストールされた回路基板(circuit boards installed in devices)、情報キオスク(information kiosks)、ビデオゲームコンソール(video game consoles)、子供用の様々なコンピュータ化されたおもちゃ(various computerized toys for children)、自動車、船、及び飛行機で使用されている搭載コンピュータ(on-board computers used in automobiles, watercraft and aircraft)、及び広範囲の他のデバイスを含むことができる。
概して、本開示は、オーディオファイルを処理するための技術を説明する。技術は、電子楽器デジタルインタフェース(MIDI)フォーマットに応じるオーディオファイルの再生について特に有用でありうるが、本技術が他のオーディオのフォーマット、技術、あるいは標準(other audio formats, techniques or standards)に有用でありうる。ここにおいて使用されているように、用語MIDIファイルは、MIDIフォーマットに合わせる少なくとも1つのオーディオトラックを含むいずれのファイルを指す。本開示によると、技術は、MIDIファイルのような1つまたは複数のオーディオファイルから生成された様々なオーディオ合成パラメータ(audio synthesis parameters)をサービス提供するように同時に動作する複数のハードウェア処理エレメントのそれぞれの代わりに、波形サンプルを検索するように動作する波形フェッチ装置(waveform fetch unit)を活用する。
一態様において、本開示は、オーディオ処理エレメントから波形サンプルについてのリクエストを受信することと(receiving a request for a waveform sample from an audio processing element)、リクエストに含まれた位相インクリメントと、リクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードと、に基づいて、リクエストされた波形サンプルについての波形サンプル数を計算し(calculating a waveform sample number for the requested waveform sample based on a phase increment contained in the request and an audio synthesis parameter control word associated with the requested waveform sample)、波形サンプル数を使用してローカルキャッシュから波形サンプルを検索し(retrieving the waveform sample from a local cache using the waveform sample number)、そしてリクエストしているオーディオ処理エレメントに対して検索された波形サンプルを送信する(sending the retrieved waveform sample to the requesting audio processing element)ことによって、リクエストをサービス提供することと(servicing the request)、を備えている方法を提供する。
別の態様において、本開示は、オーディオ処理エレメントから波形サンプルについてのリクエストを受信するオーディオ処理エレメントインタフェース(an audio processing element interface that receives a request for a waveform sample from an audio processing element)と、リクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードを得る合成パラメータインタフェース(a synthesis parameter interface that obtains an audio synthesis parameter control word associated with the requested waveform sample)と、リクエストされた波形サンプルを保存するためのローカルキャッシュ(a local cache for storing the requested waveform sample)と、を備えているデバイスを提示する。デバイスは、リクエストに含まれた位相インクリメントと、オーディオ合成パラメータ制御ワードと、に基づいて、リクエストされた波形サンプルについての波形サンプル数を計算し、そして、波形サンプル数を使用して、ローカルキャッシュから波形サンプルを検索するフェッチ装置(fetch unit)をさらに備えている。オーディオ処理エレメントインタフェースは、リクエストしているオーディオ処理エレメントに対して、検索された波形サンプルを送信する。
別の態様において、本開示は、オーディオ処理エレメントから波形サンプルについてのリクエストを受信するための手段(means for receiving a request for a waveform sample from an audio processing element)と、リクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードを得るための手段(means for obtaining an audio synthesis parameter control word associated with the requested waveform sample)と、リクエストされた波形サンプルを保存するための手段(means for storing the requested waveform sample)と、を備えているデバイスを提供する。デバイスは、リクエストに含まれた位相インクリメントと、オーディオ合成パラメータ制御ワードと、に基づいて、リクエストされた波形サンプルについての波形サンプル数を計算するための手段と、波形サンプル数を使用してローカルキャッシュから波形サンプルを検索するための手段と、リクエストしているオーディオ処理エレメントに対して、検索された波形サンプルを送信するための手段と、をさらに備えている。
別の態様においては、本開示は、1つまたは複数のプロセッサにおいて実行するときに、1つまたは複数のプロセッサに、オーディオ処理エレメントから波形サンプルについてのリクエストを受信させ、リクエストをサービス提供させる、インストラクション(instructions)を備えているコンピュータ可読メディア(computer-readable medium)を提供する。リクエストをサービス提供することは、リクエストに含まれた位相インクリメントと、リクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードと、に基づいて、リクエストされた波形サンプルについての波形サンプル数を計算することと、波形サンプル数を使用してローカルキャッシュから波形サンプルを検索することと、リクエストしているオーディオ処理エレメントに対して、検索された波形サンプルを送信することと、を含むことができる。
別の態様において、本開示は、オーディオ処理エレメントから波形サンプルについてのリクエストを受信し、リクエストをサービス提供するように、適用された回路を提供しており、リクエストをサービス提供することは、リクエストに含まれた位相インクリメントと、リクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードと、に基づいて、リクエストされた波形サンプルについての波形サンプル数を計算することと、波形サンプル数を使用してローカルキャッシュから波形サンプルを検索することと、リクエストしているオーディオ処理エレメントに対して、検索された波形サンプルを送信することと、を含んでいる。
本開示の1つまたは複数の態様の詳細は、添付図面及び、下記の詳細な説明において、記載されている。本発明の他の特徴、目的、及び利点は、詳細な説明及び図面から、そして、特許請求項の範囲から、明らかであろう。
図1は、本開示に従った、オーディオファイルを処理するための技術をインプリメントする(implement)ことができる例示的なオーディオデバイスを図示するブロック図である。 図2は、本開示によるオーディオ合成パラメータを処理するためのハードウェア装置の一例のブロック図である。 図3は、本開示による波形フェッチ装置の例示的なアーキテクチャを図示するブロック図である。 図4は、本開示の教示に整合する例示的な技術を図示するフロー図である。 図5は、本開示の教示に整合する例示的な技術を図示するフロー図である。
詳細な説明
本開示は、オーディオファイルを処理するための技術を説明している。本技術は、合成パラメータを活用する、他のオーディオフォーマット、技術、あるいは標準に有用でありうるが、本技術は、電子楽器デジタルインタフェース(MIDI)フォーマットに応じるオーディオファイルの再生について特に有用でありうる。ここにおいて使用されているように、用語MIDIファイルは、MIDIフォーマットに合わせる少なくとも1つのオーディオトラックを含む、いずれのオーディオデータあるいはファイルを指す。MIDIトラックを含むことができる様々なファイルフォーマットの例は、いくつかをあげると、CMX、SMAF、XMF、SP−MIDIを含んでいる。CMXは、クァルコム社によって開発された、コンパクトメディア拡張(Compact Media Extensions)を表わす。SMAFは、ヤマハ社によって開発された、合成音楽モバイルアプリケーションフォーマット(Synthetic Music Mobile Application Format)を表わす。XMFは、eXtensibleミュージックフォーマット(eXtensible Music Format)を表わし、SP−MIDIは、スケーラブルポリフォニーMIDI(Scalable Polyphony MIDI)を表わす。
MIDIファイルあるいは他のオーディオファイルは、オーディオフレーム内のデバイス間で伝達されることができ、オーディオ情報あるいはオーディオ−ビデオ(マルチメディア)情報を含むことができる。オーディオフレームは、単一のオーディオファイル(single audio file)、マルチプルオーディオファイル(multiple audio files)、あるいは可能であれば1つまたは複数のオーディオファイル及び符号化されたビデオフレームのような他の情報、を備えることができる。オーディオフレーム内のいずれのオーディオデータも、ここにおいて使用されているように、オーディオファイルと名づけられることができ、上記でリストされたストリーミングオーディオデータ(streaming audio data)あるいは1つまたは複数のオーディオファイルフォーマットを含んでいる。本開示にしたがって、技術は、複数の処理エレメントのそれぞれの代わりに(例、専用MIDIハードウェア装置内で)波形サンプルを検索する波形フェッチ装置(waveform fetch unit)(WFU)を活用する。
説明された技術は、MIDIファイルのようなオーディオファイルの処理を改善することができる。本技術は、異なるタスクを、ソフトウェア、ファームウェア、及びハードウェアへと、分けることができる。汎用プロセッサは、オーディオフレームのオーディオファイルをパースするために、したがってタイミングパラメータを識別することができ、そして、オーディオファイルに関連づけられたイベントをスケジュールするために、ソフトウェアを実行することができる。スケジュールされたイベントは、そのあとで、オーディオファイルにおいてタイミングパラメータによって指定されるように、同期化された方法でDSPによってサービス提供されることができる。汎用プロセッサは、時間同期化された方法(time-synchronized manner)でDSPに対してイベントをディスパッチし(dispatches)、そしてDSPは、合成パラメータを生成するために、時間同期化されたスケジュールにしたがってイベントを処理する。DSPは、そのあとで、ハードウェア装置のエレメントを処理することによって、合成パラメータの処理をスケジュールし、ハードウェア装置は、処理エレメント、WFU、及び他のコンポーネントを使用して、合成パラメータに基づいたオーディオサンプルを生成することができる。
本開示によると、処理エレメントによるリクエストに応じて、WFUによって検索された正確な波形サンプルは、現在の位相同様、処理エレメントによって供給された、位相インクリメントに依存する。WFUは、波形サンプルがキャッシュされるかどうかをチェックし、波形サンプルを検索し、そして、リクエストしている処理エレメントに波形サンプルを戻す前に、データフォーマット化を実行することができる。波形サンプルは外部ストレージ装置に保存され、WFUは、バス混雑(bus congestion)を緩和するためにキャッシング戦略(caching strategy)を使用する。
図1は、例示的なオーディオデバイス4を図示するブロック図である。オーディオデバイス4は、MIDIファイル、例えば少なくとも1つのMIDIトラックを含むファイル、を処理することができるいずれのデバイスも備えることができる。オーディオデバイス4の例は、無線電話、ネットワーク電話、デジタルミュージックプレイヤー、ミュージックシンセサイザー、無線モバイルデバイス、ダイレクト2方式通信デバイス(ウォーキートーキーとしばしば呼ばれる)、パーソナルコンピュータ、デスクトップあるいはラップトップコンピュータ、ワークステーション、衛星無線デバイス、インターコムデバイス、無線ブロードキャスティングデバイス、ハンドヘルドゲーミングデバイス、デバイスにおいてインストールされた回路基板、キオスクデバイス、ビデオゲームコンソール、子供用の様々なコンピュータ化されたおもちゃ、ビデオゲームコンソール、自動車、船、あるいは飛行機において使用される搭載コンピュータ、あるいは広範囲の他のデバイス、のような無線通信デバイスを含む。
図1で図示された様々なコンポーネントは、本開示の態様を説明するために提供されている。しかしながら、他のコンポーネントは存在するかもしれないし、また図示されたコンポーネントのうちのいくつかは、いくつかのインプリメンテーションにおいて含まれないかもしれない。例えば、オーディオデバイス4が、無線電話(radiotelephone)である場合、アンテナ、送信機(transmitter)、受信機、及びモデム(モジュレータ−デモジュレータ)は、オーディオファイルの無線通信を容易にするために含まれることができる。
図1の例で図示されているように、オーディオデバイス4は、MIDIファイルを保存するオーディオストレージ装置6を含む。また、MIDIファイルは一般に、MIDIフォーマットで符号化された少なくとも1つのトラックを含む、いずれのオーディオファイルを指す。オーディオストレージ装置(audio storage unit)6はいずれの揮発性あるいは不揮発性のメモリあるいはストレージも備えていてもよい。本開示の目的のために、オーディオストレージ装置6は、プロセッサ8にMIDIファイルを転送するストレージ装置として見られることができ、あるいは、プロセッサ8は、ファイルが処理されるために、オーディオストレージ装置6からMIDIファイルを検索する。勿論、オーディオストレージ装置6はまた、デジタル音楽プレイヤーに関連づけられたストレージ装置、あるいは、別のデバイスからの情報転送に関連づけられた一時的なストレージ装置、であることができる。オーディオストレージ装置6は、データバスあるいは他の接続を介して、プロセッサ8に結合された、個別の揮発性メモリチップあるいは不揮発性ストレージデバイスであってもよい。メモリまたはストレージ装置のコントローラ(示されていない)は、オーディオストレージ装置6からの情報の転送を容易にするために含まれることができる。
本開示によると、デバイス4は、ソフトウェア、ハードウェア、およびファームウェアの間のMIDI処理タスクを分離するアーキテクチャをインプリメントする。特に、デバイス4は、プロセッサ8、DSP12、及びオーディオハードウェア装置(audio hardware unit)14を含む。これらのコンポーネントのそれぞれは、メモリ装置(memory unit)10に、例えば直接にあるいはバスを介して、結合されることができる。プロセッサ8は、MIDIファイルをパースしMIDIファイルに関連づけられたMIDIイベントをスケジュールするソフトウェアを実行する汎用プロセッサを備えることができる。スケジュールされたイベントは、MIDIファイルにおけるタイミングパラメータによって指定されるように、時間同期化された方法でDSP12にディスパッチされることができ、その結果、同期化された方法においてDSP12によってサービス提供される。DSP12は、MIDI合成パラメータを生成するために、汎用プロセッサ8によって作成され時間同期化されたスケジュールにしたがって、MIDIイベントを処理する。DSP12は、さらにオーディオハードウェア装置14によってMIDI合成パラメータの後続処理をスケジュールすることもできる。オーディオハードウェア装置14は、合成パラメータに基づいてオーディオサンプルを生成する。
プロセッサ8は、いずれの広範囲の汎用の、単一のチップマイクロプロセッサあるいはマルチのチップマイクロプロセッサを備えることができる。プロセッサ8は、CISC(コンプレクスインストラクションセットコンピュータ(Complex instruction Set Computer))設計あるいはRISC(縮小されたインストラクションコンピュータ(Reduced Instruction Set Computer))設計をインプリメントすることができる。一般に、プロセッサ8は、ソフトウェアを実行する中央処理装置(central processing unit)(CPU)を備えている。例は、インテル社、アップルコンピュータ社、サンマイクロシステムズ社、アドバンストマイクロデバイシーズ(Advanced Micro Devices)(AMD)社、及び同様な会社、のような企業の、16−ビットマイクロプロセッサ、32−ビットマイクロプロセッサ、あるいは64−ビットマイクロプロセッサを含んでいる。他の例は、IBM(International Business Machine)社、RedHat社、及び同様な会社のような企業の、Unix(登録商標)ベースマイクロプロセッサまたはLinux(登録商標)ベースマイクロプロセッサを含む。汎用プロセッサは、ARM9を備えることができ、そしてそれはARM社から市販で入手可能であり、また、DSPは、クァルコム社によって開発されたQDSP4 DSPを備えることができる。
プロセッサ8は、第1のフレーム(フレームN)についてMIDIファイルをサービス提供することができ、また、第1のフレーム(フレームN)がDSP12によってサービス提供されるとき、第2のフレーム(フレームN+1)は、プロセッサ8によって同時にサービス提供されることができる。第1のフレーム(フレームN)がオーディオハードウェア装置14によってサービス提供されるときには、第2のフレーム(フレームN+1)はDSP12によって同時にサービス提供されるが、第3のフレーム(フレームN+2)は、プロセッサ8によってサービス提供される。このように、MIDIファイル処理は、同じ時に処理されることができるパイプラインステージへと分離されており、そしてそれは効率を改善し、ひょっとしたら与えられたステージについて必要とされるコンピューテーショナルリソース(computational resources)を減らす可能性がある。例えばDSP12は、プロセッサ8あるいはMIDIハードウェア14の援助(aid)なしに、フルMIDIアルゴリズム(full MIDI algorithm)を実行する従来のDSPsに関して単純化されることができる。
いくつかのケースにおいては、MIDIハードウェア14によって生成されたオーディオサンプルは、DSP12に戻って、例えば割り込み駆動の技術(interrupt-driven techniques)を介して、配信される。このケースにおいては、DSPはさらに、オーディオサンプルに関するポスト処理技術(post-processing techniques)を実行することができる。DAC16は、ユーザに対してオーディオサウンドの出力のためにスピーカ19A及び19Bを駆動する駆動回路(drive circuit)18によって使用されることができるアナログ信号に、デジタルであるオーディオサンプルを変換する。
各オーディオフレームについては、プロセッサ8は、1つまたは複数のMIDIファイルを読み取り、MIDIファイルからMIDI命令を抽出することができる。これらのMIDIインストラクションに基づいて、プロセッサ8は、DSP12によって処理するためにMIDIイベントをスケジュールし、そして、このスケジューリングにしたがって、DSP12に対してMIDIイベントをディスパッチする。特に、プロセッサ8によるこのスケジューリングは、MIDIイベントに関連づけられたタイミングの同期化を含むことができ、MIDIファイルにおいて指定されたタイミングパラメータに基づいて識別されることができる。MIDIファイルにおけるMIDI命令は、特定のMIDIボイスに、開始するようにあるいは停止するように命令することができる。他のMIDIインストラクションは、アフタータッチ効果(aftertouch effects)、呼吸制御効果(breath control effects)、プログラム変更(program changes)、ピッチベンド効果(pitch bend effects)、パン左あるいは右のような制御メッセージ(control messages such as pan left or right)、サステインペダル効果(sustain pedal effects)、メインボリューム制御、タイミングパラメータのようなシステムメッセージ、ライトニング効果キューのようなMIDI制御メッセージ(MIDI control messages such as lighting effect cues)、及び/または他のサウンド影響に関連していてもよい。MIDIイベントをスケジュールした後で、プロセッサ8は、DSP12がイベントを処理することができるように、メモリ10あるいはDSP12にスケジューリングを提供することができる。代替的に、プロセッサ8は、時間同期化された方法でDSP12にMIDIイベントをディスパッチすることによってスケジューリングを実行することができる。
メモリ10は、プロセッサ8、DSP12、及びMIDIハードウェア14がこれらの異なるコンポーネントにデリゲートされた(delegated to)様々なタスクを実行するために必要とされたいずれの情報にアクセスすることができるように、構造化されることができる。いくつかのケースにおいては、メモリ10におけるMIDI情報のストレージレイアウトは、異なるコンポーネント8、12、及び14からの効率的なアクセスを可能にするように配置されることができる(may be arranged)。
DSP12がプロセッサ8から(あるいはメモリ10から)スケジュールされたMIDIイベントを受信するとき、DSP12は、メモリ10に戻って保存されることができるMIDI合成パラメータを生成するために、MIDIイベントを処理することができる。再び、これらのMIDIイベントがDSPによってサービス提供されるタイミングは、プロセッサ8によってスケジュールされ、そのようなスケジューリングのタスクを実行するためにDSP12についての必要性を除去することによって効率性を作る。したがって、DSP12は、第1のオーディオフレームについてのMIDIイベントをサービス提供することができるが、プロセッサ8は、次のオーディオフレームについてのMIDIイベントをスケジューリングしている。オーディオフレームは、いくつかのオーディオサンプルを含むことができる、時間のブロック、例えば10ミリ秒(ms)インターバル、を備えることができる。例えば、デジタル出力は、フレームあたり480サンプルを結果としてもたらすことができ、そしてそれは、アナログオーディオ信号へと変換されることができる。多くのイベントは、時間の1インスタントに対応することができるので、多くの音符あるいはサウンドは、MIDIフォーマットにしたがって時間の1スタンスに含まれることができる。勿論、いずれのオーディオフレームにデリゲートされた時間の量は、フレームあたりのサンプルの数同様に、異なるインプリメンテーションにおいて異なっていてもよい。
いったんDSP12がMIDI合成パラメータを生成すると、オーディオハードウェア装置14は、合成パラメータに基づいてオーディオサンプルを生成する。DSP12は、オーディオハードウェア装置14によってMIDI合成パラメータの処理をスケジュールすることができる。オーディオハードウェア装置14によって生成されたオーディオサンプルは、パルス符号変調(PCM)サンプルを備えることができ、それらはレギュラーインターバルにおいてサンプリングされるアナログ信号のデジタル表示である。オーディオハードウェア装置14による例示的なオーディオ生成のさらなる詳細は、図2に関して下記で説明される。
いくつかのケースにおいては、ポスト処理(post processing)は、オーディオサンプル上で実行される必要がありうる。このケースにおいては、オーディオハードウェア装置14は、DSP12にそのようなポスト処理を実行することを命令する、割り込みコマンド(interrupt command)をDSP12に対して送信することができる。ポスト処理は、サウンド出力を最後に高めることができる、フィルタリング、スケーリング、ボリューム調節、あるいは、広範囲なオーディオポスト処理を含むことができる。
ポスト処理に続いて、DSP12は、ポスト処理されたオーディオサンプルを、デジタルアナログ変換器(DAC)に、出力することができる。DAC16は、デジタルオーディオ信号をアナログ信号に変換し、そして、駆動回路18にアナログ信号を出力する。駆動回路18は、オーディブルサウンド(audible sound)を作成するために、1つまたは複数のスピーカ19A及び19Bを駆動するために信号を増幅することができる。
図2は、例示的なオーディオハードウェア装置20を図示するブロック図であり、それは、図1のオーディオデバイス4のオーディオハードウェア装置14に対応することができる。図2で示されたインプリメンテーションは、他のMIDIハードウェアインプリメンテーションも本開示の教示と一致して定義されることができるような、単なる例示である。図2の例で図示されるように、オーディオハードウェア装置20は、データを送信し受信するバスインタフェース30を含む。例えば、バスインタフェース30は、AMBA高機能バス(AMBA High-performance Bus)(AHB)マスターインタフェース、AHBスレーブインタフェース(AHB slave interface)、及びメモリバスインタフェース(memory bus interface)を含むことができる。AMBAは高度なマイクロプロセッサバスアーキテクチャ(advanced microprocessor bus architecture)を表わす。代替的に、バスインタフェース30は、AXIバスインタフェース、あるいは別のタイプのバスインタフェースを含んでいてもよい。AXIは、高度な拡張可能なインタフェース(advanced extensible interface)を表わす。
さらに、オーディオハードウェア装置20は、調整モジュール(coordination module)32を含んでいてもよい。調整モジュール32は、オーディオハードウェア装置20内のデータフローを調整する。オーディオハードウェア装置20がオーディオサンプルを合成し始めるためにDSP12(図1)からインストラクションを受信するとき、調整モジュール32は、DSP12(図1)によって生成された、オーディオフレームについての合成パラメータを読み取る。これらの合成パラメータは、オーディオフレームを再構築するために使用されることができる。MIDIフォーマットについては、合成パラメータは、与えられたフレーム内で、1つまたは複数のMIDIボイスの様々な音波の特性(various sonic characteristics)を説明する。例えば、1セットのMIDI合成パラメータは、共振のレベル、反響(reverberation)、ボリューム、及び/または1つまたは複数のボイスに影響を与えることができる他の特性、を指定してもよい。
調整モジュール32の指図(direction)で、合成パラメータは、メモリ装置10(図1)から、それぞれの処理エレメント34Aあるいは34Nに関連づけられたボイスパラメータセット(voice parameter set)(VPS)RAM46Aあるいは46Nへと直接ロードされることができる。DSP12(図1)の指図で、プログラムインストラクションは、メモリ10から、それぞれの処理エレメント34Aあるいは34Nに関連づけられたプログラムRAM装置44Aあるいは44Nへとロードされる。
プログラムRAM装置44Aあるいは44Nにロードされたインストラクションは、関連処理エレメント34Aあるいは34Nに、VPS RAM装置46Aあるいは46Nにおける合成パラメータのリストで示されたボイスのうちの1つを合成するように命令する。いずれの数の処理エレメント34A−34N(集約的には「処理エレメント34」)があってもよく、また、それぞれは、データを読み取り書き込むための1つまたは複数の装置(one or more units)同様に、数学的なオペレーションを実行することができる、1つまたは複数のALUsを備えることができる。2つの処理エレメント34A及び34Nのみが、簡略化のために図示されているが、さらに多くの処理エレメントがハードウェア装置20に含まれていてもよい。処理エレメント34は、互いに並列で、ボイスを合成することができる。特に、複数の異なる処理エレメント34は、異なる合成パラメータを処理するために並列で機能する。この方法において、オーディオハードウェア装置20内の複数処理エレメント34は、加速させることができ、おそらく、生成されたボイスの数を増大させることができ、その結果、オーディオサンプルの生成を改善する。
調整モジュール32が処理エレメント34のうちの1つにボイスを合成させるように命令するとき、処理エレメント34のそれぞれは、合成パラメータによって定義される1つまたは複数のインストラクションを実行することができる。再び、これらのインストラクションは、プログラムRAM装置44Aあるいは44Nにロードされることができる。プログラムRAM装置44Aあるいは44Nへとロードされたインストラクションは、処理エレメント34のうちのそれぞれ1つにボイスの合成(voice synthesis)を実行させる。例えば、処理エレメント34は、合成パラメータで指定された波形のために波形フェッチ装置(waveform fetch unit)(WFU)に対してリクエストを送信することができる。処理エレメント34のそれぞれはWFU36を使用することができる。処理エレメント34のそれぞれはWFU36を使用することができる。2つ以上の処理エレメント34が同じ時間においてWFU36の使用をリクエストする場合には、WFU36は、いずれのコンフリクト(conflicts)も解決するためにアービトレーションスキーム(arbitration scheme)を使用する。
ピッチインクリメント(pitch increment)、ピッチエンベロップ(pitch envelope)、及びピッチパラメータに対するLFOに基づいて、処理エレメント34は、与えられたボイスについて与えられたサンプルについての位相インクリメントを計算し(computes)、WFU36に対して位相インクリメントを送信する。WFU36は、現在の出力サンプルの補間値(an interpolated value of the current output sample)を計算するために必要とされる、波形におけるサンプルインデクス(sample indexes)を計算する。WFU36はまた、補間に必要な端数位相(fractional phase)を計算し、リクエストしている処理エレメント34にそれを送信する。WFU36は、メモリ装置10に対するアクセスを最小化するためにキャッシング戦略を活用するように設計され、その結果、バスインタフェース30の混雑を緩和する。
処理エレメント34のうちの1つからのリクエストに応じて、WFU36は、リクエストしている処理エレメントに、1つまたは複数の波形サンプルを戻す。しかしながら、波は、例えば最高波の1サイクルまで、サンプル内で位相シフトされることができるので、WFU36は、補間を使用してシフトしている位相を補償するために、2つのサンプルを戻すことができる。さらに、ステレオ信号が2つのステレオチャネル(stereophonic channels)についての2つの別個の波を含むことができるので、WFU36は、異なるチャネルについて別個のサンプルを戻すことができ、例えばステレオ出力について最高4つの別個サンプルを結果としてもたらす。
インプリメンテーションの一例においては、波形は、メモリ装置10に対してアクセスする前に、WFU36がより多くの数の波形サンプルを再使用することを可能にするように、メモリ装置10内で組織されることができる。1つの基本波形サンプルは、オクターブごとに保存されており、オクターブ内のすべての音符が補間されることができる。各オクターブが選択される基本波形サンプルは、オクターブのより高い周波数のうちの1つ(いくつかのケースにおいて最高周波数)を有するオクターブの音符に対応する。結果として、オクターブの他の音符を生成するようにフェッチされなくてはならないデータの量は低減される。この技術は、サンプルの音符(sample note)がオクターブのより低い周波数帯域においておかれたケースと比べて、多数の回数ヒットされた、キャッシュされた波形サンプルを結果としてもたらすことができ、バスインタフェース30上で減らされた帯域幅必要要件を結果としてもたらす。聴覚テストが適切な音符を選択することにおいて適用されることができ、メモリ装置10において保存された基本波形サンプルから作られる、オクターブにおける他の音符について許容可能なサウンド品質を確実にする。
WFU36は処理エレメント34のうちの1つにオーディオサンプルを戻したあとで、それぞれの処理エレメント(processing element)(PE)は、オーディオ合成パラメータに基づいて追加のプログラムインストラクションを実行することができる。特に、インストラクションは、処理エレメント34のうちの1つに、オーディオハードウェア装置20において低周波数オシレータ(low frequency oscillator)(LFO)38から、非対称三角波(asymmetric triangular wave)をリクエストさせる。LFO38によって戻された三角波で、WFU36によって戻された波形を乗算することによって、それぞれの処理エレメントは、望ましいオーディオ効果を達成するために、波形の様々な音響(sonic)特徴を操作する(manipulate)ことができる。例えば、三角波で波形を乗算することは、むしろ望ましい楽器(musical instrument)に近い音がする波形をもたらすことができる。
合成パラメータに基づいて実行された他のインストラクションは、処理エレメント34のうちのそれぞれ1つに、特定の数の回数回、波形のループを作らせ(to loop the waveform a specific number of times)、波形の振幅を調節させ、反響(reverberation)を加えさせ、ビブラート効果を加えさせ、あるいは他の効果をもたらさせることができる。このように、処理エレメント34は、1つのMIDIフレームが続く(lasts)ボイスについての波形を計算することができる。しだいに、それぞれの処理エレメントは、終了インストラクション(exit instruction)に出くわすことができる。処理エレメント34のうちの1つが終了インストラクションに出くわすとき、その処理エレメントは、調整モジュール32に対して、ボイス合成の終了を信号で送る(signals)。計算されたボイス波形は、プログラムインストラクションの実行の間に、別のストアインストラクションの指図で、サミングバッファ(summing buffer)40に提供されることができる。このことは、サミングバッファ40に、その計算されたボイス波形を保存させる。
サミングバッファ40が処理エレメント34のうち1つから計算された波形を受信するとき、サミングバッファ40は、MIDIフレームについて全体的な波形に関連づけられた適切な時間のインスタンスに対して、計算された波形を加える。したがって、サミングバッファ40は、複数の処理エレメント34の出力を組み合わせる。例えば、サミングバッファ40は、平面波(すなわち、すべてのデジタルサンプルが0である波)を最初に保存することができる。サミングバッファ40が処理エレメント34のうちの1つから計算された波形のようなオーディオ情報を受信するとき、サミングバッファ40は、サミングバッファにおいて保存される波形のそれぞれのサンプルに、計算された波形の各デジタルサンプルを加えることができる。このように、サミングバッファ40は、フルオーディオフレーム(full audio frame)についての波形の全体的なデジタル表示を蓄積し保存する。
サミングバッファ40は、処理エレメント34のうち異なるものから、異なるオーディオ情報を本質的に足す。異なるオーディオ情報は、異なる生成されたボイスに関連づけられた時間の異なるインスタンスを示す。このように、サミングバッファ40は、与えられたオーディオフレーム内で全体のオーディオコンパイル(an overall audio compilation)を表示するオーディオサンプルを作成する。
しだいに、調整モジュール32は、処理エレメント34が現在のMIDIフレームについて要求されたボイスのすべてを合成することを完了し、サミングバッファ40に対してこれらのボイスを提供したということを決定することができる。この時点においては、サミングバッファ40は、現在のMIDIフレームについての完了した波形を示すデジタルサンプルを含んでいる。調整モジュール32がこの決定を行なうとき、調整モジュール32は、DSP12(図1)に対して割り込みを送信する。割り込みに応じて、DSP12は、サミングバッファ40のコンテンツを受信するために、ダイレクトメモリ交換(direct memory exchange)(DME)を介して、サミングバッファ40(示されてはいない)における制御装置に対して、リクエストを送ることができる。代替的に、DSP12もまた、DMEを実行するために、あらかじめプログラムされることができる。DSP12は、そのあとで、アナログドメインへの変換についてDAC16にデジタルオーディオサンプルを提供する前に、デジタルオーディオサンプルに関するいずれのポスト処理も実行することができる。重要なことには、フレームN+2に関してオーディオハードウェア装置20によって実行される処理は、フレームN+1に関してDSP12(図1)による合成パラメータ生成と、そして、フレームNに関してプロセッサ8(図1)によるスケジューリングオペレーションと、同時に生じる。
キャッシュメモリ48、WFU/LFOメモリ39、及びリンクされたリストメモリ42もまた、図2において示されている。キャッシュメモリ48は、迅速で効率的な方法で基本波形をフェッチするために、WFU36によって使用されることができる。WFU/LFOメモリ39は、ボイスパラメータセットのボイスパラメータを保存するために、調整モジュール32によって使用されることができる。このように、WFU/LFOメモリ39は、波形フェッチ装置36およびLFO38のオペレーション専用のメモリとして見られることができる。リンクされたリストメモリ42は、DSP12によって生成されたボイスインジケータのリストを保存するために、使用されるメモリを備えることができる。ボイスインジケータは、メモリ10に保存された1つまたは複数の合成パラメータに対してポインタ(pointers)を備えることができる。リストにおける各ボイスインジケータは、それぞれのMIDIボイスについてのボイスパラメータセットを保存するメモリロケーションを指定することができる。様々なメモリ及び図2において示されたメモリの配置(arrangement)は、単に例示である。ここにおいて説明された技術は、様々な他のメモリ配置でインプリメントされることができるであろう。
図3は、本開示にしたがった図2のWFU36の一例のブロック図である。図3において示されているように、WFU36は、アービター(arbiter)52、合成パラメータインタフェース54、フェッチ装置56、およびキャッシュ58を含むことができる。WFU36は、外部メモリに対するアクセスを最小化するためにキャッシング戦略を利用するように設計されており、その結果、バス混雑を緩和する。下記でさらなる詳細で説明されているように、アービター54は、複数のオーディオ処理エレメント34から受信されるリクエストを扱うために、修正されたラウンドロビンアービトレーションスキーム(a modified round-robin arbitration scheme)を利用することができる。
WFU36は、オーディオ処理エレメント34のうちの1つから波形サンプルについてのリクエストを受信する。リクエストは、新しい位相値を得るために現在の位相に加えられるべき位相インクリメントを示すことができる。新しい位相値の整数部分は、フェッチされるべき波形サンプルの物理アドレスを生成するために使用される。位相値の端数部分(fractional part)は、補間に使用するオーディオ処理エレメント34にフィードバックされる。あるオーディオ処理、例えばMIDI合成は、次のサンプルにうつる前に、隣接サンプルを大いに使用するので、波形サンプルのキャッシングは、バスインタフェース30上でオーディオハードウェア装置20によって帯域幅の必要要件を減らすことを助ける。WFU36はまた、8−ビットモノ(8-bit mono)、8−ビットステレオ(8-bit stereo)、16−ビットモノ、あるいは16−ビットステレオのような、マルチプルオーディオパルスコード変調(multiple audio pulse code modulation)(PCM)フォーマットをサポートする。WFU36は、オーディオ処理エレメント34に波形サンプルを戻す前に、一定のPCMフォーマットに波形サンプルを再フォーマット化することができる。例えば、WFU36は、16ビットのステレオのフォーマットの波形サンプルを戻すことができる。
合成パラメータインタフェース54は、例えばWFU/LFOメモリ39(図2)内で、合成パラメータRAMから波形特有合成パラメータ(Waveform-specific synthesis parameters)をフェッチするために使用されている。波形特有合成パラメータは、例えば、ループビギンインジケータ及びループエンドインジケータ(loop begin and loop end indicators)を含むことができる。別の例として、波形特有合成パラメータは、合成ボイスレジスタ(synthesis voice register)(SVR)制御ワードを含むことができる。波形特有の合成パラメータは、どのようにWFU36が波形サンプルリクエストをサービス提供するかに影響を与える。例えば、WFU36は、波形サンプルがループであるか、あるいはノンループであるか(「1−ショット限り(one-shot)」)を決定するためのSVR制御ワードを使用し、代わりに、キャッシュ58あるいは外部メモリにおいて波形サンプルを配置することにおいて使用される波形サンプル数をどのようにWFU36が計算するかに影響を与える。
合成パラメータインタフェース54は、WFU/LFOメモリ39から波形特有合成パラメータを検索し、WFU36は、合成パラメータインタフェース54上のアクティビティをローカルに減らすために、波形特有合成パラメータをバッファすることができる。WFU36がオーディオ処理エレメント34のうちの1つからリクエストをサービス提供することが出来る前に、WFU36は、ローカルにバッファされたオーディオ処理エレメントによってリクエストされる波形に対応する合成パラメータを有さなくてはならない。オーディオ処理エレメント34のうちのそれぞれが合成する別のボイスが与えられ、あるいは、合成パラメータインタフェース54が合成パラメータを無効にする調整モジュール32によって命令されるときのみ、合成パラメータは、無効となる。その結果、WFU36は、リクエストされた波形サンプルのフォーマットのみが1つのリクエストから次のリクエストへと変更したとき(例えば、モノからステレオへ、あるいは8ビットから16ビットへ)、合成パラメータを再プログラムする必要がない。WFU36が、それぞれのオーディオ処理エレメントのリクエストについてバッファされた有効な合成パラメータを有さない場合には、アービター52は、最も低いプライオリティにリクエストをバンプ(bump)させてもよく、フェッチ装置56は、合成パラメータが有効である(すなわち、リクエストされた波形に対応する合成パラメータがバッファされる)別のオーディオ処理エレメント34をサービス提供することができる。合成パラメータインタフェース54が検索し、対応する合成パラメータをローカルにバッファするまで、WFU36は、オーディオ処理エレメントのそれぞれのリクエストをバンプさせることを継続することができる。このように、WFU36は、リクエストに移る前に有効となる無効合成パラメータを待機する必要がないので、不必要なストール(stalls)は回避されることができる、しかし、代わりに、無効合成パラメータを用いてリクエストをバンプさせ、そして、合成パラメータが有効な他のリクエストをサービス提供することに移ることができる。
合成パラメータインタフェース54は、任意のオーディオ処理エレメント34についての合成パラメータを無効にすることができる(消すということではない)。フェッチ装置56及び合成パラメータインタフェース54が異なるオーディオ処理エレメント34に同時に作用している場合には、何も問題は生じない。しかしながら、両方の合成パラメータインタフェース54とフェッチ装置56が、同じオーディオ処理エレメント34についての波形特定合成パラメータ(すなわち、フェッチ装置56は、合成パラメータインタフェース54がそれらに上書きをすることを試みている間に合成パラメータ値を読み取る)に作用しているケースにおいて、フェッチ装置56は、先にたって(take precedence)、フェッチ装置56のオペレーションが完了するまで合成パラメータインタフェース54がブロックすることをもたらす。したがって、合成パラメータインタフェース54からの合成パラメータ無効リクエストは、いったん、もしあるとしても、オーディオ処理エレメント34が完了するということに関して、現在実行しているフェッチ装置56のオペレーションが完了すると、効力を生ずるであろう。合成パラメータインタフェース54は、合成パラメータの環状バッファリング(circular buffering)を強化することができる。
WFU36は、オーディオ処理エレメント34のそれぞれについてキャッシュ58内で別個のキャッシュスペースを保持することができる。結果、WFU36がオーディオ処理エレメント34のうちの1つから別のものへとサービス提供することを切り替えるときには、コンテキストの切り替えはない。キャッシュ58は、ラインのサイズ=16バイト、セット=1、方法=1として分類されることができる(may be sized)。フェッチ装置56は、要求された波形サンプルがキャッシュ58内にあるかどうかを決定するために、キャッシュ58をチェックする。キャッシュミスが生じるときには、フェッチ装置56は、基本波形に対する現在のポインタと波形サンプル数に基づいた外部メモリ内で要求されたデータの物理的なアドレスを計算することができ、キューに、外部メモリから波形サンプルをフェッチするインストラクションを置くことができる。そのインストラクションは、計算された物理アドレスを含むことができる。検索モジュール57はキューをチェックし、外部メモリからキャッシュラインを検索するためにキューにおけるインストラクションをみるときに、検索モジュール57は、外部メモリからのデータと、キャッシュ58内で現在のキャッシュラインを置き換えるためにバーストリクエスト(burst request)を開始する。検索モジュール57は、外部メモリからキャッシュラインを検索したとき、フェッチ装置56は、リクエストを完了する。検索モジュール57は、キャッシュ58に対する書き込みオペレーションを扱うこと同様に、外部メモリからバーストデータを検索することに対応することができる(may be responsible for)。検索モジュール57は、フェッチ装置56からの別個の有限状態機械(a separate finite state machine)であってもよい。したがって、フェッチ装置56は、オーディオ処理エレメント34からの他のリクエストを自由に扱ってもよいが、検索モジュール57は、キャッシュラインを検索する。結果として、キャッシュヒット及びキャッシュミスの両方において生じるリクエストは、リクエストについての合成パラメータが有効で、オーディオ処理エレメントインタフェース50がビジー(busy)でない限り、WFU36によってサービス提供されることができる。インプリメンテーションに依存して、検索モジュール57は、キャッシュメモリ48(図2)から、あるいはメモリ装置10(図1)から、キャッシュラインを検索することができる。
他の実施形態においては、アービター52は、リクエストについての波形サンプルのうちいくつがキャッシュ内ですでに存在しているかに基づいて、オーディオ処理エレメントリクエストをフェッチ装置56がサービス提供することを可能にする。例えば、アービター52は、リクエストされた波形サンプルがキャッシュ58内で現在存在しないときには、最も低いプライオリティにリクエストをバンプさせてもよく、したがって、波形サンプルがキャッシュ58において早く存在するリクエストをサービス提供する。オーディオ処理エレメント34をスターブされる(from being starved)ことから防ぐために(すなわち、そのリクエストは、決してサービス提供されない)、もしそのリクエストされた波形サンプルがキャッシュ内にない場合、アービター52は、バンプされたリクエストを「スキップした」としてフラグをつけることができる。スキップされたリクエストが2回目に現れるとき、スキップされたフラグは、アービター52を再びリクエストをバンプすることから防ぐためにオーバーライドとして作用し、波形は、外部メモリから検索されることができる。望まれる場合には、増大されているプライオリティのいくつかのフラグは、アービター52によるマルチプルスキップを可能にするために使用されることができるであろう。
アービター52は、オーディオ処理エレメント34からの入って来るリクエストを仲裁することに対応する(is responsible)。フェッチ装置56は、どのサンプルを戻すかを決定することに必要とされた計算を実行する。アービター52は修正されたラウンドロビンアービトレーションスキームを使用する。リセットされたときに、WFU36は、オーディオ処理エレメント34のそれぞれにデフォルトプライオリティを割り当てており、例えば、オーディオ処理エレメント34Aは、最も高く、オーディオ処理エレメント34Nは、最も低い。リクエストは、標準ラウンドロビンアービターを使用して、最初に仲裁される。しかしながら、この初期アービトレーションの勝者(winner)は、フェッチ装置56に対するアクセスを必ずしも与えられない。代わりに、リクエストは、そのSVRデータが有効かどうか、対応するオーディオ処理エレメントインタフェース50がビジーかどうか、についてチェックされる。これらのチェックは、「勝利(win)」条件を作成するために組み合わせられる。いくつかの実施形態においては、追加チェックは、勝利条件(win condition)に必要であるかもしれない。勝利条件が生じる場合、オーディオ処理エレメントのリクエストはサービス提供される。勝利条件は、特定のリクエストについて生じない場合には、アービター52は、オーディオ処理エレメントのリクエストをさげてバンプさせ、次のオーディオ処理エレメントのリクエストの同様なチェックに移る。リクエストについてのSVRデータが無効である、あるいはオーディオ処理エレメントインタフェース50がビジーである、のいずれかのケースにおいて、リクエストは、リクエストについて計算がされないので、無限に(indefinitely)バンプさせられることができる。したがって、それらの合成パラメータが無効あるいはそれらのオーディオ処理エレメントインタフェースがビジーである場合には、オーディオ処理エレメントのリクエストはサービス提供されないので、ラウンドロビンアービトレーションは「修正された(modified)」に当てはまる(referred to)。
WFU36はまた、テストモードにおいて動作することができ、なお、WFU36は、厳密なラウンドロビン機能性を強化する。すなわち、アービター52は、リクエストに、オーディオ処理エレメント34A、オーディオ処理エレメント34B・・・オーディオ処理エレメント34Nから順に、オーディオ処理エレメント34Aに戻って、等と、サービス提供させることをもたらす。このことは、オーディオ処理エレメント34Aがノーマルモードにおいて最も高いプライオリティを有していたとしても、ノーマルモードの機能において異なり、オーディオ処理エレメント34Aがリクエストを有さずオーディオ処理エレメント34Bがリクエストを有している場合には、WFU36は、オーディオ処理エレメント34Bをサービス提供する。
いったんオーディオ処理エレメント34がアービトレーションを成功して勝ち取ると、リクエストは2つの部分、第1波形サンプル(Zと表示される)を検索することと、第2波形サンプル(Zと表示される)を検索することと、に分けられることができる。リクエストがPEから入ってくるとき、フェッチ装置56は、現在の位相に対してリクエストで提供される位相インクリメントを加え、整数及び端数のコンポーネントを備えた最終位相(final phase)を結果としてもたらす。インプリメンテーションによって、和が飽和されてもよく、あるいはロールオーバーする(roll over)こと(すなわち、循環バッファリング)が可能にされてもよい。勝利条件がリクエストについて存在する場合、フェッチ装置56は、リクエストしているオーディオ処理エレメント34についてオーディオ処理エレメントインタフェース50に対して端数位相コンポーネントを送る。整数位相コンポーネントを使用して、フェッチ装置56は次の方法でZを計算する。波形タイプが1−ショットの場合(すなわち、SVR制御の用語によって決定されるように、ループされていない)、フェッチ装置56は、整数位相コンポーネントと等しいZを計算する。波形タイプがループされ、オバーシュートがない場合、フェッチ装置56は、整数位相コンポーネントと等しいZを計算する。波形タイプがループされ、オバーシュートがある場合には、フェッチ装置56は、整数位相コンポーネントからループ長さを引いたものと等しいZを計算する。
いったんフェッチ装置56がZを計算すると、フェッチ装置56は、Zに対応する波形サンプルがキャッシュ58に現在キャッシュされるかどうかを決定する。キャッシュヒットが生じる場合、フェッチ装置56はキャッシュ58から波形サンプルを検索し、リクエストしている処理エレメントのオーディオ処理エレメントインタフェース50に対してそれを送る。キャッシュミスの場合には、フェッチ装置56は、キューに、外部メモリから波形サンプルをフェッチするようにインストラクションを配置する。検索モジュール57は、キューをチェックし、また、外部メモリからキャッシュラインを検索するためにキューにおけるインストラクションを見るとき、検索モジュール57は、外部メモリのバースト読み取り(a burst read)を始め、そのあとで、バースト読み取りの間に検索されたコンテンツと、現在のキャッシュラインを置き換える。当業者は、キャッシュミスのケースの場合(タグ数は、キューにおけるタグ数のと同じ値ではない)、検索モジュール57は、現在のキャッシュラインを置き換える前に、WFU36内の別のメモリにおいてバースト読み取りを実行することができるということを理解するであろう。他のメモリは、キャッシュメモリであってもよい。一例として、キャッシュ58は、L1キャッシュであってもよく、他のメモリはL2キャッシュであってもよい。したがって、検索モジュール57がバースト読み取りを実行することは、メモリのロケーション(WFU36の内側あるいは外側であるかどうか)と、キャッシング戦略と、に依存することができる。検索モジュール57がキャッシュラインを検索する一方で、フェッチ装置56は、オーディオ処理エレメント34からの他のリクエストを自由に扱ってもよい。波形ルックアップ値(waveform look-up values)は読み取り専用なので、フェッチ装置56は、検索モジュール57が外部のメモリから新しいキャッシュラインを検索するときに、いずれの既存キャッシュラインを廃棄する(discard)ことができる。整数の位相コンポーネントがオーバーシュートするあるいは、波形が1−ショットであるケースにおいて、フェッチ装置56は、オーディオ処理エレメントインタフェース50に対して、サンプルとして0×0を送信することができる。いったんフェッチ装置34がリクエストしているオーディオ処理エレメントインタフェース50に対して、Zに対応する波形サンプルを送信すると、フェッチ装置56は、波形サンプルZに関する同様なオペレーションを実行し、なお、Zは、Zに基づいて計算される。
各リクエストについては、フェッチ装置56は、少なくとも2つの波形サンプルを、サイクルごとに1つ(one per cycle)戻すことができる。ステレオ波形のケースにおいては、フェッチ装置56は、4つの波形サンプルを戻すことができる。さらに、フェッチ装置56は、オーディオ処理エレメント34のインプリメンテーションが補間のためにそれを必要とする場合、端数位相を戻すことができる。オーディオ処理エレメントインタフェース50は、オーディオ処理エレメント34に対して波形サンプルを押し出す(pushes)。単独のオーディオ処理エレメントインタフェース50として図示されているにもかかわらず、オーディオ処理エレメントインタフェース50は、いつかのケースにおいて、オーディオ処理エレメント34のそれぞれについての別個のインスタンスを含むことができる。オーディオ処理エレメントインタフェース50は、オーディオ処理エレメント34のそれぞれについて3セットのレジスタ、すなわち、端数位相を保存するための16−ビットのレジスタ、そして第1及び第2のサンプルを保存するための2つの32−ビットレジスタ、をそれぞれ使用することができる。オーディオ処理エレメント34がアービトレーションに勝ち、フェッチ装置56によってサービス提供されるときには、端数位相は、オーディオ処理エレメントインタフェース50によって、登録される。オーディオ処理エレメントインタフェース50は、すべてのデータが利用可能となるように待機することなく、適切なオーディオ処理エレメント34にデータを押し出すことを始めることができ、次に必要とされるデータの一部がまだ利用可能でないときにのみ、ストールする。
インプリメンテーションの一例において、WFU36は、一緒に機能しているマルチプル有限状態機械(finite state machines)(FSMs)によって制御されることができる。例えば、WFU36は、オーディオ処理エレメントインタフェース50のそれぞれについての個別のFSMs(WFU36からオーディオ処理エレメント34へのデータの移動(migration)を管理するための)、フェッチ装置56(キャッシュ58でインタフェース接続するための)、検索モジュール57(外部メモリでインタフェース接続するための)、合成パラメータインタフェース54(合成パラメータRAMでインタフェース接続するための)、アービター52(オーディオ処理エレメントから入ってくるリクエストを仲裁し、そしてどのサンプルを戻すかを決定するために必要とされた計算を実行するための)を含むことができる。波形サンプルをフェッチするために、及び、WFU36からオーディオ処理エレメント34へのデータの転送を管理するために、個別のFSMsを使用することによって、アービター52は、オーディオ処理エレメントインタフェース50は波形サンプルを転送しているが他のリクエストしているオーディオ処理エレメントをサービス提供することが自由化される。フェッチ装置56がリクエストされた波形サンプルがキャッシュ58において存在しないということを決定するとき、フェッチ装置56は、キューにおいて外部メモリからキャッシュラインを受信するためにインストラクションを置き、次のリクエストを自由にサービス提供する一方で、検索モジュール57は、外部メモリからキャッシュラインを検索する。フェッチ装置56がキャッシュ58、内部バッファ、あるいは外部メモリからデータを受信するとき、フェッチ装置56がリクエストしているオーディオ処理エレメントにデータを押し出すことよりもむしろ、フェッチ装置56は、対応しているオーディオ処理エレメントにデータを押し出し、その結果、フェッチ装置56が別のリクエストに移りサービス提供することを可能にする。このことは、オーディオ処理エレメントがすぐにデータを承認しないときには、ハンドシェークコスト(handshaking cost)及び関連の遅延を回避する。
図4は、本開示の教示に一貫した例示的な技術を図示しているフロー図である。アービター52は、オーディオ処理エレメント34からの波形サンプルについての入ってくるリクエストを仲裁するために修正されたラウンドロビンアービトレーションスキームを使用する。WFU36は、オーディオ処理エレメント34のそれぞれに、デフォルトプライオリティを割り当てており、例えば、オーディオ処理エレメント34Aは、最も高く、オーディオ処理エレメント34Nは、最も低い。リクエストがサービス提供されることを待機しているとき(60)、アービター52は、サービス提供されるべき次のオーディオ処理エレメントを選択するために、標準ラウンドロビンアービトレーションスキームを使用する。待機しているリクエストは、次にサービス提供されるオーディオ処理エレメントに対応する場合には(62)、リクエストは、勝利条件についてチェックされる(64)。例えば、リクエストは、波形サンプルについての合成パラメータデータが有効かどうか(すなわち、ローカルでバッファされる)、及び、対応するオーディオ処理エレメントインタフェース50がビジーであるかどうか、についてチェックされることができる。これらのチェックのすべては、勝利条件を作成するために組み合わせられる。勝利条件が生じる場合(64のYES分岐)、フェッチ装置56は、オーディオ処理エレメントのリクエストをサービス提供する(66)。他の実施形態は、異なるチェックを有してもよい。
リクエストについての合成パラメータが無効であり、および/または、オーディオ処理エレメントインタフェース50がビジーであるケースにおいては(64のNO分岐)、アービター52は、リクエストについていずれの計算も行われないので、最も低いプライオリティにリクエストをバンプさせることができる(66)。この技術を使用することによって、WFU36は、キャッシュヒットを結果としてもたらすリクエストと、タイムリーな方法でサービス提供されるキャッシュミスを結果としてもたらすリクエストと両方をサービス提供する。
図5は、本開示の教示と一貫して、例示的な技術を図示しているフロー図である。リクエストがアービトレーションに勝つときには(80)、WFU36は、以下のようにリクエストをサービス提供することができる。フェッチ装置56は、現在の位相に対してリクエストで提供された位相インクリメントを追加し、整数及び端数コンポーネントで最終位相を結果としてもたらす(82)。フェッチ装置56は、そのあと、補間に使用されるリクエストしているオーディオ処理エレメント34に押し出されるべき、オーディオ処理エレメントインタフェース50に対して端数位相コンポーネントを送信する(84)。上述されるように、WFU36は、例えば位相シフト、あるいは、マルチプルチャネルを説明するために、リクエストしているオーディオ処理エレメントに対してマルチプル波形サンプルを戻すことができる。フェッチ装置56は、整数位相コンポーネントを使用して、波形サンプルの波形サンプル数を計算する(86)。波形タイプが1−ショットであるとき、(すなわち、SVR制御ワードによって決定されるように、ループされていない)、フェッチ装置56は、整数位相コンポーネントと等しい第1の波形(Z)を計算する。波形タイプがループされ、オバーシュートがない場合、フェッチ装置56は、整数位相コンポーネントと等しいZを計算する。波形タイプがループされ、オバーシュートがある場合、フェッチ装置56は、整数位相コンポーネントからループ長さを差し引いたものと等しいZを計算する。
いったんフェッチ装置56がZを計算すると、フェッチ装置56は、波形サンプル数Zに対応する波形サンプルがキャッシュ58に現在キャッシュされるかどうかを決定する(88)。キャッシュヒットは、現在キャッシュされた波形サンプルを識別しているタグ(すなわち、キャッシュタグ)に対して、波形サンプル数をチェックすることによって、決定されることができる。このことは、リクエストされた波形サンプルの波形サンプル数(すなわち、ZあるいはZ)からキャッシュタグ値(すなわち、キャッシュ58で現在保存された第1のサンプルを識別しているタグ)を差し引くことによって行われる。その結果が0よりも大きく、キャッシュラインごとのサンプルの数よりも少ない場合には、キャッシュヒットが生じる。そうでなければ、キャッシュミスが生じる。キャッシュヒットが生じる場合(90のYES分岐)、フェッチ装置56は、キャッシュ58から波形サンプルを検索し(92)、オーディオ処理エレメントインタフェース50に波形サンプルを送信し、そしてそれは、リクエストしている処理エレメント34に、波形サンプルを出力する(94)。キャッシュミスの場合(90のNo分岐)には、フェッチ装置56は、キューに、外部メモリから波形サンプルを検索するために、インストラクションを置く(96)。検索モジュール57がキューをチェックし、リクエストを見るとき、検索モジュール57は、外部メモリからのラインと現在のキャッシュラインを置き換えるために、バースト読み取りを開始する(98)。フェッチ装置56は、そのあとで、キャッシュ58から波形サンプルをフェッチする(92)。波形サンプルを送信する前に、WFU36は、あるケースにおいて、波形サンプルを再フォーマットすることができる(94)。例えば、フェッチ装置56は、波形サンプルがすでに16−ビットのステレオフォーマットではない場合には、波形サンプルを16−ビットのステレオフォーマットに変換することができる。このような方法で、オーディオ処理エレメント34は、ユニフォームフォーマットにおいてWFU36から波形サンプルを受信する。オーディオ処理エレメント34は、再フォーマット化に関する計算サイクル(computation cycles)を費やすことなく、すぐに受信された波形サンプルを使用することができる。WFU36は、オーディオ処理エレメントインタフェース50に対して、波形サンプルを送信する(95)。フェッチ装置56がZに対応する波形サンプルを送信した後で、フェッチ装置56は、波形サンプルZ2、及びリクエストをサービス提供するために必要とされたいずれの追加の波形サンプルに関して同様なオペレーションを実行する(100)。
様々な例が開示において説明されてきた。ここにおいて説明された技術の1つまたは複数の態様は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの組み合わせで、インプリメントされることができる。モジュールあるいはコンポーネントとして説明されるいずれの特徴も、集積された論理デバイスにおいて一緒に、あるいは、相互運用性のある論理デバイスだがディスクリートとして別々に、インプリメントされることができる。ソフトウェアにおいてインプリメントされる場合、技術の1つまたは複数の態様は、実行されるときに上記で説明される方法の1つまたは複数を実行するインストラクションを備えているコンピュータ可読メディアによって少なくとも部分的に実現されることができる。コンピュータ可読データストレージメディアは、コンピュータプログラムプロダクトの一部を形成することができ、そしてそれは、パッケージング材料(packaging materials)を含んでいてもよい。コンピュータ可読メディアは、例えばシンクロナス動的ランダムアクセスメモリ(synchronous dynamic random access memory)(SDRAM)、読み取り専用メモリ(read-only memory)(ROM)、不揮発性ランダムアクセスメモリ(non-volatile random access memory)(NVRAM)、電子的消去可能プログラマブル読み取り専用メモリ(electrically erasable programmable read-only memory)(EEPROM)、FRASHメモリ、磁気あるいは光学データストレージメディア、及び同様なもの、のようなランダムアクセスメモリ(random access memory)(RAM)を備えていてもよい。技術は、追加的にあるいは代替的に、インストラクションあるいはデータ構造の形でコードを搬送するあるいは通信する、また、コンピュータによってアクセスされ、読み取られ、及び/または実行されることができる、コンピュータ可読通信メディアによって少なくとも一部分において実現されることができる。
そのインストラクションは、例えば1つまたは複数のデジタルシグナルプロセッサ(digital signal processors)(DSPs)、汎用マイクロプロセッサ、特定用途向け集積回路(application specific integrated circuits)(ASICs)、フィールドプログラマブルロジックアレイ(field programmable logic arrays)(FPGAs)、あるいは他の均等な集積されたあるいはディスクリートなロジック回路(other equivalent integrated or discrete logic circuitry)、のような1つまたは複数のプロセッサによって実行されることができる。したがって、ここにおいて使用される用語「プロセッサ(processor)」は、いずれの前述の構造あるいは、ここにおいて説明される技術のインプリメンテーションに適切ないずれの他の構造も指していてもよい。さらに、いくつかの態様においては、ここにおいて説明された機能性は、本開示の技術を実行するように構成されたあるいは適用された、専用のソフトウェアモジュールあるいはハードウェアモジュール内で提供されることができる。
ハードウェアにおいてインプリメントされる場合には、本開示の1つまたは複数の態様は、集積回路、チップセット、ASIC、FPGA、論理、あるいは、ここにおいて説明された技術のうち1つまたは複数を実行するように構成されたあるいは適用されたそれらの様々な組み合わせ、のような回路に向けられうる。回路は、集積回路あるいはチップセットにおいて、ここにおいて説明されているように、両方のプロセッサと、1つまたは複数のハードウェア装置の両方を含むことができる。
回路は上記で説明される機能のうちのいくつかあるいはすべてをインプリメントすることができるということを当業者が認識するであろうということもまた注目すべきである。すべての機能をインプリメントする1つの回路があってもよく、あるいは、機能をインプリメントする回路の複数のセクション(multiple sections)もまたあってもよい。現在のモバイルプラットフォーム技術を用いて、集積回路は、少なくとも1つのDSPと、DSPあるいはDSPsを制御し及び/または通信する少なくとも1つの高度な縮小インストラクションセットコンピュータ(ISC)マシン(ARM)プロセッサ(Advanced Reduced Instruction Set Computer (RISC) Machine (ARM) processor)と、を備えることができる。さらに、回路は、いくつかのセクションにおいて、設計されるあるいはインプリメントされることができ、また、いくつかのケースにおいては、セクションは、本開示において説明される異なる機能を実行するように再び使用されることができる。
様々な態様及び例が説明されてきた。しかし、修正は、以下のクレームの範囲から逸脱することなく、本開示の構造あるいは技術に対して行われることができる。例えば、他のタイプのデバイスは、ここに説明されたオーディオ処理技術をさらにインプリメントすることができる。これらおよび他の実施形態は、以下のクレームの範囲内にある。

Claims (55)

  1. オーディオ処理エレメントから波形サンプルについてのリクエストを受信することと、
    前記リクエストをサービス提供することと、
    を備えており、前記リクエストをサービス提供することは、
    前記リクエストに含まれた位相インクリメントと、前記のリクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードと、に基づいて、前記のリクエストされた波形サンプルについての波形サンプル数を計算することと、
    前記波形サンプル数を使用して、ローカルキャッシュから前記波形サンプルを検索することと、
    前記のリクエストしているオーディオ処理エレメントに対して、前記の検索された波形サンプルを送信することと、
    を含んでいる、
    方法。
  2. 波形サンプル数を計算することは、前記オーディオ合成パラメータ制御ワードが前記のリクエストされた波形サンプルがループされた波形サンプルであるということを示すときに、第1の方法にしたがって前記波形サンプル数を計算することと、そして、前記オーディオ合成パラメータ制御ワードが前記のリクエストされた波形サンプルがノンループされた波形サンプルであるということを示すときに、第2の方法にしたがって前記のリクエストされた波形サンプルについての前記波形サンプル数を計算することと、を備えている、請求項1に記載の方法。
  3. 現在キャッシュされた波形サンプルを識別しているタグと前記波形サンプル数との間の差異を決定することと、
    前記タグと前記波形サンプル数との前記差異が0よりも大きく且つキャッシュラインごとのサンプルの数よりも少ないときに、外部メモリから前記ローカルキャッシュまでの前記波形サンプルをフェッチすることと、
    をさらに備えている請求項1に記載の方法。
  4. 前記の検索された波形サンプルを前記リクエストしているオーディオ処理エレメントに対して送信することは、前記オーディオ処理エレメントに関連づけられたインタフェースに対して前記の検索された波形サンプルを送信することを備えており、また、前記インタフェースは、前記リクエストしているオーディオ処理エレメントに対して前記波形サンプルを転送する、請求項1に記載の方法。
  5. 波形サンプルについてのリクエストを受信することは、複数のオーディオ処理エレメントから複数のリクエストを受信することを備えており、
    前記リクエストをサービス提供することは、
    デフォルトプライオリティレベルが前記オーディオ処理エレメントのそれぞれに割り当てられるラウンドロビンアービトレーションと、
    前記のリクエストされた波形サンプルはすでに前記ローカルキャッシュにあるかどうかの決定と、
    に少なくとも基づいたアービトレーションにしたがった順序において前記リクエストをサービス提供することを備えている、
    請求項1に記載の方法。
  6. 前記リクエストをサービス提供することは、前記ラウンドロビンアービトレーションが前記のリクエストしているオーディオ処理エレメントが代わりにサービス提供されるべきであることを示すときに、前記複数のリクエストのうちの1つをサービス提供することを備えている、請求項5に記載の方法。
  7. 前記アービトレーションは、前記のリクエストされた波形サンプルに関連づけられたオーディオ合成パラメータがローカルにバッファされるかどうかによって、さらに決定される、請求項5に記載の方法。
  8. 前記のリクエストされた波形に関連づけられた前記オーディオ合成パラメータがローカルにバッファされないとき、
    前記リクエストをスキップすることと、
    最も低いプライオリティレベルまで、前記リクエストを移動させることと、
    をさらに備えている請求項7に記載の方法。
  9. 前記アービトレーションは、リクエストに関連づけられたオーディオ処理エレメントインタフェースがビジーであるかによってさらに決定され、前記リクエストに関連づけられたオーディオ処理エレメントインタフェースがビジーであるときには、最も低いプライオリティレベルまで、前記リクエストを移動させること、をさらに備えている、請求項5に記載の方法。
  10. 前記波形サンプルを前記のリクエストしているオーディオ処理エレメントに対して送信する前に、前記波形サンプルを再フォーマット化すること、をさらに備えている請求項1に記載の方法。
  11. 前記波形サンプルを再フォーマット化することは、16−ビットステレオフォーマットに前記波形サンプルを変換することを備えている、請求項10に記載の方法。
  12. 波形サンプルについてのリクエストを受信することは、電子楽器デジタルインタフェース(MIDI)の波形サンプルについてのリクエストを受信することを備えており、また、前記オーディオ合成パラメータ制御ワードは、MIDI合成パラメータ制御ワードを備えている、請求項1に記載の方法。
  13. オーディオ処理エレメントから波形サンプルについてのリクエストを受信するオーディオ処理エレメントインタフェースと、
    前記のリクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードを得る、合成パラメータインタフェースと、
    前記のリクエストされた波形サンプルを保存するためのローカルキャッシュと、
    前記リクエストに含まれた位相インクリメントと、前記オーディオ合成パラメータ制御ワードと、に基づいて、前記のリクエストされた波形サンプルについての波形サンプル数を計算し、そして、前記波形サンプル数を使用して前記ローカルキャッシュから前記波形サンプルを検索するフェッチ装置と、
    を備えており、
    前記オーディオ処理エレメントインタフェースは、前記のリクエストしているオーディオ処理エレメントに対して、前記の検索された波形サンプルを送信する、
    デバイス。
  14. 前記フェッチ装置は、前記オーディオ合成パラメータ制御ワードが前記のリクエストされた波形サンプルがループされた波形サンプルであるということを示すときに、第1の方法にしたがって前記波形サンプル数を計算し、そして、前記オーディオ合成パラメータ制御ワードが前記のリクエストされた波形サンプルがノンループされた波形サンプルであるということを示すときに、第2の方法にしたがって前記のリクエストされた波形サンプルについての前記波形サンプル数を計算する、請求項13に記載のデバイス。
  15. 前記フェッチ装置は、
    現在キャッシュされた波形サンプルを識別しているタグと前記波形サンプル数との間の差異を決定し、
    前記タグと前記波形サンプル数との間の前記差異が0よりも大きく、且つキャッシュラインごとのサンプルの数よりも少ないときに、外部メモリから前記ローカルキャッシュまでの前記波形サンプルを検索モジュールがフェッチするように命令する、請求項13に記載のデバイス。
  16. 前記フェッチ装置は、前記オーディオ処理エレメントインタフェースに対して、前記の検索された波形サンプルを送信し、前記オーディオ処理エレメントインタフェースは、前記のリクエストしているオーディオ処理エレメントに対して、前記の検索された波形サンプルを転送する、請求項13に記載のデバイス。
  17. 前記オーディオ処理エレメントインタフェースは、複数のオーディオ処理エレメントから複数のリクエストを受信し、
    前記複数のリクエストが、デフォルトプライオリティレベルが前記オーディオ処理エレメントのそれぞれに割り当てられるラウンドロビンアービトレーションにしたがって前記フェッチ装置によってサービス提供されるべき順序を決定するアービター、
    をさらに備えている、
    請求項13に記載のデバイス。
  18. 前記フェッチ装置は、前記アービターが、前記のリクエストしているオーディオ処理エレメントが代わりにサービス提供されるべきで、前記のリクエストされた波形サンプルがすでに前記ローカルキャッシュにあるということを示すときに、前記複数のリクエストのうちの1つをサービス提供する、請求項17に記載のデバイス。
  19. 前記アービターは、前記のリクエストされた波形サンプルに関連づけられたオーディオ合成パラメータがローカルにバッファされるかにさらに基づいて前記複数のリクエストがサービス提供されるべきである前記順序、を決定する、請求項17に記載のデバイス。
  20. 前記のリクエストされた波形に関連づけられた前記オーディオ合成パラメータがローカルにバッファされないとき、前記アービターは、前記リクエストをスキップし、最も低いプライオリティレベルまで、前記リクエストを移動させる、請求項19に記載のデバイス。
  21. 前記アービターは、前記リクエストに関連づけられたオーディオ処理エレメントインタフェースがビジーであるかにさらに基づいて前記複数のリクエストがサービス提供されるべき前記順序、を決定し、前記フェッチ装置は、前記リクエストに関連づけられたオーディオ処理エレメントインタフェースがビジーであるときには、最も低いプライオリティレベルまで前記リクエストを移動させる、請求項17に記載のデバイス。
  22. 前記フェッチ装置は、前記波形サンプルを前記のリクエストしているオーディオ処理エレメントに送信する前に、前記波形サンプルを再フォーマット化する、請求項13に記載のデバイス。
  23. 前記フェッチ装置は、16−ビットステレオフォーマットに前記波形サンプルを変換することによって、前記波形サンプルを再フォーマット化する、請求項22に記載のデバイス。
  24. 前記波形サンプルは、電子楽器デジタルインタフェース(MIDI)波形サンプルを備えており、また、前記オーディオ合成パラメータ制御ワードは、MIDI合成パラメータ制御ワードを備えている、請求項13に記載のデバイス。
  25. 前記フェッチ装置が前記ローカルキャッシュ内に前記のリクエストされた波形サンプルが存在しないということを決定するときに、前記フェッチ装置は、外部メモリから前記のリクエストされた波形サンプルを検索するインストラクションを設置し、
    前記キューから前記命令を読み取り、そして前記インストラクションにしたがって前記外部メモリから前記ローカルキャッシュまで前記のリクエストされた波形サンプルに対応するキャッシュラインを検索する検索モジュール、をさらに備えている請求項13に記載のデバイス。
  26. オーディオ処理エレメントから波形サンプルについてのリクエストを受信するための手段と、
    前記のリクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードを得るための手段と、
    前記のリクエストされた波形サンプルを保存するための手段と、
    前記リクエストに含まれた位相インクリメントと、前記オーディオ合成パラメータ制御ワードと、に基づいて、前記のリクエストされた波形サンプルについての波形サンプル数を計算するための手段と、
    前記波形サンプル数を使用して前記ローカルキャッシュから前記波形サンプルを検索するための手段と、
    前記のリクエストしているオーディオ処理エレメントに対して、前記の検索された波形サンプルを送信するための手段と、
    を備えているデバイス。
  27. 前記波形サンプル数を計算するための前記手段は、
    前記オーディオ合成パラメータ制御ワードが前記のリクエストされた波形サンプルがループされた波形サンプルであるということを示すときに、第1の方法にしたがって前記波形サンプル数を計算するための手段と、前記オーディオ合成パラメータ制御ワードが前記のリクエストされた波形サンプルがノンループされた波形サンプルであるということを示すときに、第2の方法にしたがって前記のリクエストされた波形サンプルについての前記波形サンプル数を計算するための手段と、
    を備えている、
    請求項26に記載のデバイス。
  28. 現在キャッシュされた波形サンプルを識別しているタグと前記波形サンプル数との間の差異を決定するための手段と、
    前記タグと前記波形サンプル数との前記差異が0よりも大きく、且つキャッシュラインごとのサンプルの数よりも少ないときに、外部メモリから前記ローカルキャッシュまで前記波形サンプルをフェッチするための手段と、
    をさらに備えている請求項26に記載のデバイス。
  29. 受信するための前記手段は、波形サンプルについての複数のリクエストを受信するための手段を備えており、
    デフォルトプライオリティレベルが前記リクエストのそれぞれに割り当てられているラウンドロビンアービトレーションにしたがって前記複数のリクエストがサービス提供されるべきである順序を決定するための手段、
    をさらに備えている、
    請求項26に記載のデバイス。
  30. 16−ビットステレオフォーマットに前記波形サンプルを変換することによって、前記波形サンプルを再フォーマット化するための手段、をさらに備えている請求項26に記載のデバイス。
  31. 前記波形サンプルは、電子楽器デジタルインタフェース(MIDI)の波形サンプルを備えており、また、前記オーディオ合成パラメータ制御ワードは、MIDI合成パラメータ制御ワードを備えている、請求項26に記載のデバイス。
  32. コンピュータ可読メディアであって、1つまたは複数のプロセッサにおいて実行するときに、前記1つまたは複数のプロセッサに、
    オーディオ処理エレメントから波形サンプルについてのリクエストを受信させ、
    前記リクエストをサービス提供させる、
    インストラクション、を備えており、前記リクエストをサービス提供することは、
    前記リクエストに含まれた位相インクリメントと、前記のリクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードと、に基づいて、前記のリクエストされた波形サンプルについての波形サンプル数を計算することと、
    前記波形サンプル数を使用してローカルキャッシュから前記波形サンプルを検索することと、
    前記のリクエストしているオーディオ処理エレメントに対して、前記の検索された波形サンプルを送信することと
    を含む、
    コンピュータ可読メディア。
  33. 波形サンプル数を計算することは、前記オーディオ合成パラメータ制御ワードが前記のリクエストされた波形サンプルがループされた波形サンプルであるということを示すときに、第1の方法にしたがって前記波形サンプル数を計算することと、前記オーディオ合成パラメータ制御ワードが前記のリクエストされた波形サンプルがノンループされた波形サンプルであるということを示すときに、第2の方法にしたがって前記のリクエストされた波形サンプルについて前記波形サンプル数を計算することと、を備えている、請求項32に記載のコンピュータ可読メディア。
  34. 実行するときに前記1つまたは複数のプロセッサに
    現在キャッシュされた波形サンプルを識別しているタグと前記波形サンプル数との間の差異を決定させ、
    前記タグと前記波形サンプル数との前記差異が0よりも大きく、且つキャッシュラインごとのサンプルの数よりも少ないときに、外部メモリから前記ローカルキャッシュまで前記波形サンプルをフェッチさせる、
    インストラクション、をさらに備えている請求項32に記載のコンピュータ可読メディア。
  35. 前記の検索された波形サンプルを前記のリクエストしているオーディオ処理エレメントに対して送信することは、前記オーディオ処理エレメントに関連づけられたインタフェースに対して前記の検索された波形サンプルを送信することを備えており、また、前記インタフェースは、前記のリクエストしているオーディオ処理エレメントに対して前記波形サンプルを転送する、請求項32に記載のコンピュータ可読メディア。
  36. 波形サンプルについてのリクエストを受信することは、複数のオーディオ処理エレメントから複数のリクエストを受信することを備えており、
    前記リクエストをサービス提供することは、
    デフォルトプライオリティレベルが前記オーディオ処理エレメントのそれぞれに割り当てられるラウンドロビンアービトレーションと、
    前記のリクエストされた波形サンプルはすでに前記ローカルキャッシュにあるかどうかの決定と、
    に少なくとも基づいたアービトレーションにしたがった順序において前記リクエストをサービス提供することを備えている、
    請求項32に記載のコンピュータ可読メディア。
  37. 前記リクエストをサービス提供することは、前記ラウンドロビンアービトレーションが前記のリクエストしているオーディオ処理エレメントが代わりにサービス提供されるべきであることを示すときに、前記複数のリクエストのうちの1つをサービス提供することを備えている、請求項36に記載のコンピュータ可読メディア。
  38. 前記アービトレーションは、前記のリクエストされた波形サンプルに関連づけられたオーディオ合成パラメータがローカルにバッファされるかどうかによって、さらに決定される、請求項36に記載のコンピュータ可読メディア。
  39. 前記のリクエストされた波形に関連づけられた前記オーディオ合成パラメータがローカルにバッファされないときには、実行するときに前記1つまたは複数のプロセッサに、
    前記リクエストをスキップさせ、
    最も低いプライオリティレベルまで前記リクエストを移動させる、
    インストラクション、
    をさらに備えている請求項38に記載のコンピュータ可読メディア。
  40. 前記アービトレーションは、リクエストに関連づけられたオーディオ処理エレメントインタフェースがビジーであるかどうかによってさらに決定され、前記リクエストに関連づけられたオーディオ処理エレメントインタフェースがビジーであるときには、最も低いプライオリティレベルまで前記リクエストを移動させることをさらに備えている、請求項36に記載のコンピュータ可読メディア。
  41. 前記波形サンプルを前記のリクエストしているオーディオ処理エレメントに対して送信する前に、前記1つまたは複数のプロセッサに前記波形サンプルを再フォーマット化させるインストラクション、
    をさらに備えている請求項32に記載のコンピュータ可読メディア。
  42. 前記波形サンプルを再フォーマット化することは、16−ビットステレオフォーマットに前記波形サンプルを変換することを備えている、請求項41に記載のコンピュータ可読メディア。
  43. 波形サンプルについてのリクエストを受信することは、電子楽器デジタルインタフェース(MIDI)の波形サンプルについてのリクエストを受信することを備えており、また、前記オーディオ合成パラメータ制御ワードは、MIDI合成パラメータ制御ワードを備えている、請求項32に記載のコンピュータ可読メディア。
  44. オーディオ処理エレメントから波形サンプルについてのリクエストを受信するように、
    前記リクエストをサービス提供するように、
    適用されており、
    前記リクエストをサービス提供することは、
    前記リクエストに含まれた位相インクリメントと、前記のリクエストされた波形サンプルに関連づけられたオーディオ合成パラメータ制御ワードと、に基づいて、前記のリクエストされた波形サンプルについての波形サンプル数を計算することと、
    前記波形サンプル数を使用してローカルキャッシュから前記波形サンプルを検索することと、
    前記のリクエストしているオーディオ処理エレメントに対して、前記の検索された波形サンプルを送信することと、
    を含んでいる、
    回路。
  45. 波形サンプル数を計算することは、前記オーディオ合成パラメータ制御ワードが前記のリクエストされた波形サンプルがループされた波形サンプルであるということを示すときに、第1の方法にしたがって前記波形サンプル数を計算することと、前記オーディオ合成パラメータ制御ワードが前記のリクエストされた波形サンプルがノンループされた波形サンプルであるということを示すときに、第2の方法にしたがって前記のリクエストされた波形サンプルについての前記波形サンプル数を計算することと、を備えている、請求項44に記載の回路。
  46. 前記回路は、
    現在キャッシュされた波形サンプルを識別しているタグと前記波形サンプル数との間の差異を決定するように、
    前記タグと前記波形サンプル数との前記差異が0よりも大きく、且つキャッシュラインごとのサンプルの数よりも少ないときに、外部メモリから前記ローカルキャッシュまで前記波形サンプルをフェッチするように、
    適用されている、請求項44に記載の回路。
  47. 前記の検索された波形サンプルを前記のリクエストしているオーディオ処理エレメントに対して送信することは、前記オーディオ処理エレメントに関連づけられたインタフェースに対して前記の検索された波形サンプルを送信することを備えており、また、前記インタフェースは、前記のリクエストしているオーディオ処理エレメントに対して前記波形サンプルを転送する、請求項44に記載の回路。
  48. 波形サンプルについてのリクエストを受信することは、複数のオーディオ処理エレメントから複数のリクエストを受信することを備えており、
    前記リクエストをサービス提供することは、
    デフォルトプライオリティレベルが前記オーディオ処理エレメントのそれぞれに割り当てられるラウンドロビンアービトレーションと、
    前記のリクエストされた波形サンプルはすでに前記ローカルキャッシュにあるかどうかの決定と、
    に少なくとも基づいたアービトレーションにしたがった順序において前記リクエストをサービス提供することを備えている、
    請求項44に記載の回路。
  49. 前記リクエストをサービス提供することは、前記ラウンドロビンアービトレーションが前記のリクエストしているオーディオ処理エレメントが代わりにサービス提供されるべきであることを示すときに、前記複数のリクエストのうちの1つをサービス提供することを備えている、請求項48に記載の回路。
  50. 前記アービトレーションは、前記のリクエストされた波形サンプルに関連づけられたオーディオ合成パラメータがローカルにバッファされるかどうかによって、さらに決定される、請求項48に記載の回路。
  51. 前記回路は、前記のリクエストされた波形に関連づけられた前記オーディオ合成パラメータがローカルにバッファされないとき、
    前記リクエストをスキップするように
    最も低いプライオリティレベルまで前記リクエストを移動させるように、
    適用される、請求項50に記載の回路。
  52. 前記アービトレーションは、リクエストに関連づけられたオーディオ処理エレメントインタフェースがビジーであるかどうかによってさらに決定され、前記リクエストに関連づけられたオーディオ処理エレメントインタフェースがビジーであるときには、最も低いプライオリティレベルまで前記リクエストを移動させることをさらに備えている、請求項48に記載の回路。
  53. 前記波形サンプルを前記のリクエストしているオーディオ処理エレメントに対して送信する前に、前記回路は、前記波形サンプルを再フォーマット化するように適用される、請求項44に記載の回路。
  54. 前記波形サンプルを再フォーマット化することは、16−ビットステレオフォーマットに前記波形サンプルを変換することを備えている、請求項53に記載の回路。
  55. 波形サンプルについてのリクエストを受信することは、電子楽器デジタルインタフェース(MIDI)の波形サンプルについてのリクエストを受信することを備えており、また、前記オーディオ合成パラメータ制御ワードは、MIDI合成パラメータ制御ワードを備えている、請求項44に記載の回路。
JP2010501072A 2007-03-22 2008-03-17 オーディオファイルを処理するための波形フェッチ装置 Expired - Fee Related JP5199334B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US89641407P 2007-03-22 2007-03-22
US60/896,414 2007-03-22
US12/041,834 US7807914B2 (en) 2007-03-22 2008-03-04 Waveform fetch unit for processing audio files
US12/041,834 2008-03-04
PCT/US2008/057221 WO2008118672A2 (en) 2007-03-22 2008-03-17 Waveform fetch unit for processing audio files

Publications (2)

Publication Number Publication Date
JP2010522360A true JP2010522360A (ja) 2010-07-01
JP5199334B2 JP5199334B2 (ja) 2013-05-15

Family

ID=39773418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010501072A Expired - Fee Related JP5199334B2 (ja) 2007-03-22 2008-03-17 オーディオファイルを処理するための波形フェッチ装置

Country Status (7)

Country Link
US (1) US7807914B2 (ja)
EP (1) EP2126892A2 (ja)
JP (1) JP5199334B2 (ja)
KR (1) KR101108460B1 (ja)
CN (1) CN101636779B (ja)
TW (1) TW200903448A (ja)
WO (1) WO2008118672A2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009032B2 (en) * 2006-11-09 2015-04-14 Broadcom Corporation Method and system for performing sample rate conversion
US7893343B2 (en) * 2007-03-22 2011-02-22 Qualcomm Incorporated Musical instrument digital interface parameter storage
US8183452B2 (en) * 2010-03-23 2012-05-22 Yamaha Corporation Tone generation apparatus
CN101819763B (zh) * 2010-03-30 2012-07-04 深圳市五巨科技有限公司 一种同时播放多个midi文件的方法和装置
JP6430609B1 (ja) * 2017-10-20 2018-11-28 EncodeRing株式会社 装身具造形システム、装身具造形プログラム及び装身具造形方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0926791A (ja) * 1995-07-12 1997-01-28 Yamaha Corp 楽音発生方法及び波形記憶方法
JP2000221983A (ja) * 1999-02-02 2000-08-11 Yamaha Corp 音源装置
JP2000276172A (ja) * 1999-03-24 2000-10-06 Yamaha Corp 楽音生成装置および記憶媒体
JP2001112099A (ja) * 1999-10-12 2001-04-20 Olympus Optical Co Ltd 音声データ処理システム、音声データ処理方法、該音声データ処理を行うためのプログラムを記録した記録媒体、音声記録装置及び、音声データ処理装置
JP2004157350A (ja) * 2002-11-07 2004-06-03 Yamaha Corp 演奏情報処理方法、演奏情報処理装置およびプログラム
JP2005049497A (ja) * 2003-07-31 2005-02-24 Yamaha Corp 音源回路の制御プログラムおよび音源回路の制御装置
JP2005508545A (ja) * 2001-11-07 2005-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 非均一メモリ・アクセス(numa)コンピュータ・システムでタスクをディスパッチする方法および装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5342990A (en) * 1990-01-05 1994-08-30 E-Mu Systems, Inc. Digital sampling instrument employing cache-memory
US5809342A (en) * 1996-03-25 1998-09-15 Advanced Micro Devices, Inc. Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
US5717154A (en) * 1996-03-25 1998-02-10 Advanced Micro Devices, Inc. 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
SG67993A1 (en) 1996-08-30 1999-10-19 Yamaha Corp Sound source system based on computer software and method of generating acoustic waveform data
US5977469A (en) * 1997-01-17 1999-11-02 Seer Systems, Inc. Real-time waveform substituting sound engine
US5918302A (en) * 1998-09-04 1999-06-29 Atmel Corporation Digital sound-producing integrated circuit with virtual cache
US6157978A (en) * 1998-09-16 2000-12-05 Neomagic Corp. Multimedia round-robin arbitration with phantom slots for super-priority real-time agent
US6347344B1 (en) * 1998-10-14 2002-02-12 Hitachi, Ltd. Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor
US20060005690A1 (en) * 2002-09-02 2006-01-12 Thomas Jacobsson Sound synthesiser
EP1580729B1 (en) 2004-03-26 2008-02-13 Yamaha Corporation Sound waveform synthesizer
US7420115B2 (en) * 2004-12-28 2008-09-02 Yamaha Corporation Memory access controller for musical sound generating system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0926791A (ja) * 1995-07-12 1997-01-28 Yamaha Corp 楽音発生方法及び波形記憶方法
JP2000221983A (ja) * 1999-02-02 2000-08-11 Yamaha Corp 音源装置
JP2000276172A (ja) * 1999-03-24 2000-10-06 Yamaha Corp 楽音生成装置および記憶媒体
JP2001112099A (ja) * 1999-10-12 2001-04-20 Olympus Optical Co Ltd 音声データ処理システム、音声データ処理方法、該音声データ処理を行うためのプログラムを記録した記録媒体、音声記録装置及び、音声データ処理装置
JP2005508545A (ja) * 2001-11-07 2005-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 非均一メモリ・アクセス(numa)コンピュータ・システムでタスクをディスパッチする方法および装置
JP2004157350A (ja) * 2002-11-07 2004-06-03 Yamaha Corp 演奏情報処理方法、演奏情報処理装置およびプログラム
JP2005049497A (ja) * 2003-07-31 2005-02-24 Yamaha Corp 音源回路の制御プログラムおよび音源回路の制御装置

Also Published As

Publication number Publication date
WO2008118672A2 (en) 2008-10-02
KR20090132616A (ko) 2009-12-30
JP5199334B2 (ja) 2013-05-15
CN101636779A (zh) 2010-01-27
US7807914B2 (en) 2010-10-05
EP2126892A2 (en) 2009-12-02
KR101108460B1 (ko) 2012-02-09
US20080229911A1 (en) 2008-09-25
WO2008118672A3 (en) 2009-02-19
CN101636779B (zh) 2013-03-20
TW200903448A (en) 2009-01-16

Similar Documents

Publication Publication Date Title
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
JP5134078B2 (ja) 楽器ディジタルインタフェースハードウエア命令
JP5199334B2 (ja) オーディオファイルを処理するための波形フェッチ装置
US7807915B2 (en) Bandwidth control for retrieval of reference waveforms in an audio device
US5809342A (en) Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
US7663046B2 (en) Pipeline techniques for processing musical instrument digital interface (MIDI) files
US7723601B2 (en) Shared buffer management for processing audio files
US7893343B2 (en) Musical instrument digital interface parameter storage
US7663051B2 (en) Audio processing hardware elements

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120406

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120413

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120508

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120515

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121204

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: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees